@vtex/faststore 0.0.6 → 0.0.7

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 (132) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/catalog.json +161 -20
  3. package/dist/cli/UnreachableCaseError-Crd168Vu.js +10 -0
  4. package/dist/cli/UnreachableCaseError-Crd168Vu.js.map +1 -0
  5. package/dist/cli/cacheControl-CEojH_TM.js +158 -0
  6. package/dist/cli/cacheControl-CEojH_TM.js.map +1 -0
  7. package/dist/cli/cachePolicy-m2vASMRW.js +26 -0
  8. package/dist/cli/cachePolicy-m2vASMRW.js.map +1 -0
  9. package/dist/cli/computeCoreSchemaHash-DPJZj-qJ.js +10 -0
  10. package/dist/cli/computeCoreSchemaHash-DPJZj-qJ.js.map +1 -0
  11. package/dist/cli/default-BCQHcwbL.js +253 -0
  12. package/dist/cli/default-BCQHcwbL.js.map +1 -0
  13. package/dist/cli/disableSuggestions-yO9UqiWn.js +21 -0
  14. package/dist/cli/disableSuggestions-yO9UqiWn.js.map +1 -0
  15. package/dist/cli/dist-C1JhdHfo.js +2001 -0
  16. package/dist/cli/dist-C1JhdHfo.js.map +1 -0
  17. package/dist/cli/graphql-DG9thCDG.js +14589 -0
  18. package/dist/cli/graphql-DG9thCDG.js.map +1 -0
  19. package/dist/cli/index.d.ts +350 -0
  20. package/dist/cli/index.js +35047 -0
  21. package/dist/cli/index.js.map +1 -0
  22. package/dist/cli/index.min-BsIHDfFK.js +613 -0
  23. package/dist/cli/index.min-BsIHDfFK.js.map +1 -0
  24. package/dist/cli/inlineTrace-uLgOJ3TH.js +52 -0
  25. package/dist/cli/inlineTrace-uLgOJ3TH.js.map +1 -0
  26. package/dist/cli/internalPlugin-DnuwN4_4.js +11 -0
  27. package/dist/cli/internalPlugin-DnuwN4_4.js.map +1 -0
  28. package/dist/cli/packageVersion-DQAnIEil.js +6 -0
  29. package/dist/cli/packageVersion-DQAnIEil.js.map +1 -0
  30. package/dist/cli/rolldown-runtime-BMI-E3GI.js +44 -0
  31. package/dist/cli/schemaIsSubgraph-DoGh3OYj.js +17 -0
  32. package/dist/cli/schemaIsSubgraph-DoGh3OYj.js.map +1 -0
  33. package/dist/cli/schemaReporting-K-me-3-v.js +199 -0
  34. package/dist/cli/schemaReporting-K-me-3-v.js.map +1 -0
  35. package/dist/cli/server-runtime.js +49859 -0
  36. package/dist/cli/server-runtime.js.map +1 -0
  37. package/dist/cli/traceTreeBuilder-BIcV2U7b.js +9118 -0
  38. package/dist/cli/traceTreeBuilder-BIcV2U7b.js.map +1 -0
  39. package/dist/cli/usageReporting-Bpl8vSZX.js +10201 -0
  40. package/dist/cli/usageReporting-Bpl8vSZX.js.map +1 -0
  41. package/dist/cli/v4-CBhFvC49.js +42 -0
  42. package/dist/cli/v4-CBhFvC49.js.map +1 -0
  43. package/dist/components.d.ts +5 -3
  44. package/dist/components.js +5 -3
  45. package/dist/content-types.json +93 -0
  46. package/dist/core/dist/define-component.d.ts +37 -0
  47. package/dist/core/dist/index.d.ts +2 -2
  48. package/dist/docs/account-entry-point.md +1 -1
  49. package/dist/docs/account-menu-identity.md +160 -0
  50. package/dist/docs/account-menu.md +106 -23
  51. package/dist/docs/avatar.md +103 -0
  52. package/dist/docs/my-account-profile.md +1 -1
  53. package/dist/docs/product-shelf.md +20 -13
  54. package/dist/index.d.ts +2 -2
  55. package/dist/internal/client.js +1 -1
  56. package/dist/internal/content.d.ts +2 -2
  57. package/dist/internal/server.d.ts +4 -1
  58. package/dist/internal/server.js +4 -1
  59. package/dist/matter/account-access-gate/account-access-gate.js.map +1 -1
  60. package/dist/matter/account-entry-point/account-entry-point.js +1 -1
  61. package/dist/matter/account-entry-point/account-entry-point.js.map +1 -1
  62. package/dist/matter/account-menu/account-menu.d.ts +70 -0
  63. package/dist/matter/account-menu/account-menu.js +201 -9
  64. package/dist/matter/account-menu/account-menu.js.map +1 -1
  65. package/dist/matter/account-menu/sign-out-failure.js +50 -0
  66. package/dist/matter/account-menu/sign-out-failure.js.map +1 -0
  67. package/dist/matter/account-menu-identity/account-menu-identity.d.ts +21 -0
  68. package/dist/matter/account-menu-identity/account-menu-identity.js +88 -0
  69. package/dist/matter/account-menu-identity/account-menu-identity.js.map +1 -0
  70. package/dist/matter/card-entry/card-entry.js +1 -0
  71. package/dist/matter/card-entry/card-entry.js.map +1 -1
  72. package/dist/matter/cart/cart.js +1 -1
  73. package/dist/matter/client-preferences/client-preferences-fieldset.js +2 -2
  74. package/dist/matter/client-profile-form/client-profile-fieldset.js +2 -2
  75. package/dist/matter/identity-summary/identity-summary.js +2 -1
  76. package/dist/matter/identity-summary/identity-summary.js.map +1 -1
  77. package/dist/matter/my-account-profile/my-account-profile.d.ts +3 -0
  78. package/dist/matter/my-account-profile/my-account-profile.js +2 -1
  79. package/dist/matter/my-account-profile/my-account-profile.js.map +1 -1
  80. package/dist/matter/payment/payment-controller.js +1 -0
  81. package/dist/matter/payment/payment-controller.js.map +1 -1
  82. package/dist/matter/payment/payment.js +1 -0
  83. package/dist/matter/payment/payment.js.map +1 -1
  84. package/dist/matter/product-shelf/product-shelf.d.ts +61 -31
  85. package/dist/matter/product-shelf/product-shelf.js +157 -57
  86. package/dist/matter/product-shelf/product-shelf.js.map +1 -1
  87. package/dist/matter/saved-cards/saved-cards.js +1 -0
  88. package/dist/matter/saved-cards/saved-cards.js.map +1 -1
  89. package/dist/matter/shipping-address/shipping-address.js +2 -2
  90. package/dist/particles/avatar/avatar.d.ts +17 -0
  91. package/dist/particles/avatar/avatar.js +65 -0
  92. package/dist/particles/avatar/avatar.js.map +1 -0
  93. package/dist/schema.graphql +65 -26
  94. package/dist/sdk/analytics/use-analytics-actions.js +2 -1
  95. package/dist/sdk/analytics/use-analytics-actions.js.map +1 -1
  96. package/dist/sdk/cart/use-cart-actions.js +9 -8
  97. package/dist/sdk/cart/use-cart-actions.js.map +1 -1
  98. package/dist/sdk/cart/use-cart-validate-on-open.js +2 -1
  99. package/dist/sdk/cart/use-cart-validate-on-open.js.map +1 -1
  100. package/dist/sdk/content/create-content-runtime.d.ts +22 -1
  101. package/dist/sdk/content/create-content-runtime.js +89 -1
  102. package/dist/sdk/content/create-content-runtime.js.map +1 -1
  103. package/dist/sdk/data/empty-content-value.js +16 -0
  104. package/dist/sdk/data/empty-content-value.js.map +1 -0
  105. package/dist/sdk/data/hot-data-provider.js +2 -1
  106. package/dist/sdk/data/hot-data-provider.js.map +1 -1
  107. package/dist/sdk/data/index.js +2 -2
  108. package/dist/sdk/data/reactive-list-item-data-provider.js +2 -2
  109. package/dist/sdk/data/variables-from-content.d.ts +43 -0
  110. package/dist/sdk/data/variables-from-content.js +57 -0
  111. package/dist/sdk/data/variables-from-content.js.map +1 -0
  112. package/dist/sdk/generated/gql.js +2 -1
  113. package/dist/sdk/generated/gql.js.map +1 -1
  114. package/dist/sdk/generated/graphql.js +85 -1
  115. package/dist/sdk/generated/graphql.js.map +1 -1
  116. package/dist/sdk/identity/use-identity-actions.js +5 -4
  117. package/dist/sdk/identity/use-identity-actions.js.map +1 -1
  118. package/dist/sdk/payment/use-payment-actions.js +1 -1
  119. package/dist/sdk/payment/use-place-order.js +1 -1
  120. package/dist/sdk/region/use-region-actions.js +2 -1
  121. package/dist/sdk/region/use-region-actions.js.map +1 -1
  122. package/dist/sdk/session/read-server-session.d.ts +21 -0
  123. package/dist/sdk/session/read-server-session.js +61 -0
  124. package/dist/sdk/session/read-server-session.js.map +1 -0
  125. package/dist/sdk/session/use-session-actions.js +5 -4
  126. package/dist/sdk/session/use-session-actions.js.map +1 -1
  127. package/dist/sdk/session/use-session-revalidation.js +2 -1
  128. package/dist/sdk/session/use-session-revalidation.js.map +1 -1
  129. package/dist/sdk/shipping/use-shipping-actions.js +3 -2
  130. package/dist/sdk/shipping/use-shipping-actions.js.map +1 -1
  131. package/dist/utils/safe-href.d.ts +11 -0
  132. package/package.json +13 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traceTreeBuilder-BIcV2U7b.js","names":["exports","$protobuf","GraphQLError"],"sources":["../../../../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../../../../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../../../../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../../../../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../../../../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../../../../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../../../../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/util/longbits.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/util/minimal.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/writer.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/writer_buffer.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/reader.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/reader_buffer.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/rpc/service.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/rpc.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/roots.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/src/index-minimal.js","../../../../node_modules/.pnpm/@apollo+protobufjs@1.2.7/node_modules/@apollo/protobufjs/minimal.js","../../../../node_modules/.pnpm/@apollo+usage-reporting-protobuf@4.1.1/node_modules/@apollo/usage-reporting-protobuf/generated/esm/protobuf.js","../../../../node_modules/.pnpm/@apollo+server@5.5.0_graphql@16.13.1/node_modules/@apollo/server/dist/esm/plugin/traceTreeBuilder.js"],"sourcesContent":["\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/*\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n// global object reference\nutil.global = typeof window !== \"undefined\" && window\n || typeof global !== \"undefined\" && global\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n * @const\n */\nutil.isNode = Boolean(util.global.process && util.global.process.versions && util.global.process.versions.node);\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/*\n * Long.js's Long class if available and $ENABLE_LONG is set. This lets us leave it on\n * for this package's tests but have it be off in actual usage-reporting-protobuf use.\n * (We leave it on for some mode where there is no `process` that is used by tests.)\n */\nutil.Long = (typeof process === 'undefined' || process.env.ENABLE_LONG) ? (/* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\")) : undefined;\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/*\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/*\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: (new Error()).stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\nvar Buffer = util.Buffer;\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\nBufferWriter.alloc = function alloc_buffer(size) {\n return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size);\n};\n\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else\n buf.utf8Write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/*\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/*\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/*\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/*\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/*\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\n/* istanbul ignore else */\nif (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.Reader._configure(protobuf.BufferReader);\n protobuf.util._configure();\n}\n\n// Set up buffer utility according to the environment\nprotobuf.Writer._configure(protobuf.BufferWriter);\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\nimport $protobuf from \"@apollo/protobufjs/minimal\";\n\n// Common aliases\nconst $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nconst $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\nexport const Trace = $root.Trace = (() => {\n\n /**\n * Properties of a Trace.\n * @exports ITrace\n * @interface ITrace\n * @property {google.protobuf.ITimestamp|null} [startTime] Trace startTime\n * @property {google.protobuf.ITimestamp|null} [endTime] Trace endTime\n * @property {number|null} [durationNs] Trace durationNs\n * @property {Trace.INode|null} [root] Trace root\n * @property {boolean|null} [isIncomplete] Trace isIncomplete\n * @property {string|null} [signature] Trace signature\n * @property {string|null} [unexecutedOperationBody] Trace unexecutedOperationBody\n * @property {string|null} [unexecutedOperationName] Trace unexecutedOperationName\n * @property {Trace.IDetails|null} [details] Trace details\n * @property {string|null} [clientName] Trace clientName\n * @property {string|null} [clientVersion] Trace clientVersion\n * @property {Trace.IHTTP|null} [http] Trace http\n * @property {Trace.ICachePolicy|null} [cachePolicy] Trace cachePolicy\n * @property {Trace.IQueryPlanNode|null} [queryPlan] Trace queryPlan\n * @property {boolean|null} [fullQueryCacheHit] Trace fullQueryCacheHit\n * @property {boolean|null} [persistedQueryHit] Trace persistedQueryHit\n * @property {boolean|null} [persistedQueryRegister] Trace persistedQueryRegister\n * @property {boolean|null} [registeredOperation] Trace registeredOperation\n * @property {boolean|null} [forbiddenOperation] Trace forbiddenOperation\n * @property {number|null} [fieldExecutionWeight] Trace fieldExecutionWeight\n */\n\n /**\n * Constructs a new Trace.\n * @exports Trace\n * @classdesc Represents a Trace.\n * @implements ITrace\n * @constructor\n * @param {ITrace=} [properties] Properties to set\n */\n function Trace(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Trace startTime.\n * @member {google.protobuf.ITimestamp|null|undefined} startTime\n * @memberof Trace\n * @instance\n */\n Trace.prototype.startTime = null;\n\n /**\n * Trace endTime.\n * @member {google.protobuf.ITimestamp|null|undefined} endTime\n * @memberof Trace\n * @instance\n */\n Trace.prototype.endTime = null;\n\n /**\n * Trace durationNs.\n * @member {number} durationNs\n * @memberof Trace\n * @instance\n */\n Trace.prototype.durationNs = 0;\n\n /**\n * Trace root.\n * @member {Trace.INode|null|undefined} root\n * @memberof Trace\n * @instance\n */\n Trace.prototype.root = null;\n\n /**\n * Trace isIncomplete.\n * @member {boolean} isIncomplete\n * @memberof Trace\n * @instance\n */\n Trace.prototype.isIncomplete = false;\n\n /**\n * Trace signature.\n * @member {string} signature\n * @memberof Trace\n * @instance\n */\n Trace.prototype.signature = \"\";\n\n /**\n * Trace unexecutedOperationBody.\n * @member {string} unexecutedOperationBody\n * @memberof Trace\n * @instance\n */\n Trace.prototype.unexecutedOperationBody = \"\";\n\n /**\n * Trace unexecutedOperationName.\n * @member {string} unexecutedOperationName\n * @memberof Trace\n * @instance\n */\n Trace.prototype.unexecutedOperationName = \"\";\n\n /**\n * Trace details.\n * @member {Trace.IDetails|null|undefined} details\n * @memberof Trace\n * @instance\n */\n Trace.prototype.details = null;\n\n /**\n * Trace clientName.\n * @member {string} clientName\n * @memberof Trace\n * @instance\n */\n Trace.prototype.clientName = \"\";\n\n /**\n * Trace clientVersion.\n * @member {string} clientVersion\n * @memberof Trace\n * @instance\n */\n Trace.prototype.clientVersion = \"\";\n\n /**\n * Trace http.\n * @member {Trace.IHTTP|null|undefined} http\n * @memberof Trace\n * @instance\n */\n Trace.prototype.http = null;\n\n /**\n * Trace cachePolicy.\n * @member {Trace.ICachePolicy|null|undefined} cachePolicy\n * @memberof Trace\n * @instance\n */\n Trace.prototype.cachePolicy = null;\n\n /**\n * Trace queryPlan.\n * @member {Trace.IQueryPlanNode|null|undefined} queryPlan\n * @memberof Trace\n * @instance\n */\n Trace.prototype.queryPlan = null;\n\n /**\n * Trace fullQueryCacheHit.\n * @member {boolean} fullQueryCacheHit\n * @memberof Trace\n * @instance\n */\n Trace.prototype.fullQueryCacheHit = false;\n\n /**\n * Trace persistedQueryHit.\n * @member {boolean} persistedQueryHit\n * @memberof Trace\n * @instance\n */\n Trace.prototype.persistedQueryHit = false;\n\n /**\n * Trace persistedQueryRegister.\n * @member {boolean} persistedQueryRegister\n * @memberof Trace\n * @instance\n */\n Trace.prototype.persistedQueryRegister = false;\n\n /**\n * Trace registeredOperation.\n * @member {boolean} registeredOperation\n * @memberof Trace\n * @instance\n */\n Trace.prototype.registeredOperation = false;\n\n /**\n * Trace forbiddenOperation.\n * @member {boolean} forbiddenOperation\n * @memberof Trace\n * @instance\n */\n Trace.prototype.forbiddenOperation = false;\n\n /**\n * Trace fieldExecutionWeight.\n * @member {number} fieldExecutionWeight\n * @memberof Trace\n * @instance\n */\n Trace.prototype.fieldExecutionWeight = 0;\n\n /**\n * Creates a new Trace instance using the specified properties.\n * @function create\n * @memberof Trace\n * @static\n * @param {ITrace=} [properties] Properties to set\n * @returns {Trace} Trace instance\n */\n Trace.create = function create(properties) {\n return new Trace(properties);\n };\n\n /**\n * Encodes the specified Trace message. Does not implicitly {@link Trace.verify|verify} messages.\n * @function encode\n * @memberof Trace\n * @static\n * @param {ITrace} message Trace message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Trace.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.endTime != null && Object.hasOwnProperty.call(message, \"endTime\"))\n $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.startTime != null && Object.hasOwnProperty.call(message, \"startTime\"))\n $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.details != null && Object.hasOwnProperty.call(message, \"details\"))\n $root.Trace.Details.encode(message.details, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.clientName != null && Object.hasOwnProperty.call(message, \"clientName\"))\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.clientName);\n if (message.clientVersion != null && Object.hasOwnProperty.call(message, \"clientVersion\"))\n writer.uint32(/* id 8, wireType 2 =*/66).string(message.clientVersion);\n if (message.http != null && Object.hasOwnProperty.call(message, \"http\"))\n $root.Trace.HTTP.encode(message.http, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();\n if (message.durationNs != null && Object.hasOwnProperty.call(message, \"durationNs\"))\n writer.uint32(/* id 11, wireType 0 =*/88).uint64(message.durationNs);\n if (message.root != null && Object.hasOwnProperty.call(message, \"root\"))\n $root.Trace.Node.encode(message.root, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim();\n if (message.cachePolicy != null && Object.hasOwnProperty.call(message, \"cachePolicy\"))\n $root.Trace.CachePolicy.encode(message.cachePolicy, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim();\n if (message.signature != null && Object.hasOwnProperty.call(message, \"signature\"))\n writer.uint32(/* id 19, wireType 2 =*/154).string(message.signature);\n if (message.fullQueryCacheHit != null && Object.hasOwnProperty.call(message, \"fullQueryCacheHit\"))\n writer.uint32(/* id 20, wireType 0 =*/160).bool(message.fullQueryCacheHit);\n if (message.persistedQueryHit != null && Object.hasOwnProperty.call(message, \"persistedQueryHit\"))\n writer.uint32(/* id 21, wireType 0 =*/168).bool(message.persistedQueryHit);\n if (message.persistedQueryRegister != null && Object.hasOwnProperty.call(message, \"persistedQueryRegister\"))\n writer.uint32(/* id 22, wireType 0 =*/176).bool(message.persistedQueryRegister);\n if (message.registeredOperation != null && Object.hasOwnProperty.call(message, \"registeredOperation\"))\n writer.uint32(/* id 24, wireType 0 =*/192).bool(message.registeredOperation);\n if (message.forbiddenOperation != null && Object.hasOwnProperty.call(message, \"forbiddenOperation\"))\n writer.uint32(/* id 25, wireType 0 =*/200).bool(message.forbiddenOperation);\n if (message.queryPlan != null && Object.hasOwnProperty.call(message, \"queryPlan\"))\n $root.Trace.QueryPlanNode.encode(message.queryPlan, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim();\n if (message.unexecutedOperationBody != null && Object.hasOwnProperty.call(message, \"unexecutedOperationBody\"))\n writer.uint32(/* id 27, wireType 2 =*/218).string(message.unexecutedOperationBody);\n if (message.unexecutedOperationName != null && Object.hasOwnProperty.call(message, \"unexecutedOperationName\"))\n writer.uint32(/* id 28, wireType 2 =*/226).string(message.unexecutedOperationName);\n if (message.fieldExecutionWeight != null && Object.hasOwnProperty.call(message, \"fieldExecutionWeight\"))\n writer.uint32(/* id 31, wireType 1 =*/249).double(message.fieldExecutionWeight);\n if (message.isIncomplete != null && Object.hasOwnProperty.call(message, \"isIncomplete\"))\n writer.uint32(/* id 33, wireType 0 =*/264).bool(message.isIncomplete);\n return writer;\n };\n\n /**\n * Encodes the specified Trace message, length delimited. Does not implicitly {@link Trace.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace\n * @static\n * @param {ITrace} message Trace message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Trace.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Trace message from the specified reader or buffer.\n * @function decode\n * @memberof Trace\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace} Trace\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Trace.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 4:\n message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n case 11:\n message.durationNs = reader.uint64();\n break;\n case 14:\n message.root = $root.Trace.Node.decode(reader, reader.uint32());\n break;\n case 33:\n message.isIncomplete = reader.bool();\n break;\n case 19:\n message.signature = reader.string();\n break;\n case 27:\n message.unexecutedOperationBody = reader.string();\n break;\n case 28:\n message.unexecutedOperationName = reader.string();\n break;\n case 6:\n message.details = $root.Trace.Details.decode(reader, reader.uint32());\n break;\n case 7:\n message.clientName = reader.string();\n break;\n case 8:\n message.clientVersion = reader.string();\n break;\n case 10:\n message.http = $root.Trace.HTTP.decode(reader, reader.uint32());\n break;\n case 18:\n message.cachePolicy = $root.Trace.CachePolicy.decode(reader, reader.uint32());\n break;\n case 26:\n message.queryPlan = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n case 20:\n message.fullQueryCacheHit = reader.bool();\n break;\n case 21:\n message.persistedQueryHit = reader.bool();\n break;\n case 22:\n message.persistedQueryRegister = reader.bool();\n break;\n case 24:\n message.registeredOperation = reader.bool();\n break;\n case 25:\n message.forbiddenOperation = reader.bool();\n break;\n case 31:\n message.fieldExecutionWeight = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Trace message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace} Trace\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Trace.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Trace message.\n * @function verify\n * @memberof Trace\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Trace.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.startTime != null && message.hasOwnProperty(\"startTime\")) {\n let error = $root.google.protobuf.Timestamp.verify(message.startTime);\n if (error)\n return \"startTime.\" + error;\n }\n if (message.endTime != null && message.hasOwnProperty(\"endTime\")) {\n let error = $root.google.protobuf.Timestamp.verify(message.endTime);\n if (error)\n return \"endTime.\" + error;\n }\n if (message.durationNs != null && message.hasOwnProperty(\"durationNs\"))\n if (!$util.isInteger(message.durationNs) && !(message.durationNs && $util.isInteger(message.durationNs.low) && $util.isInteger(message.durationNs.high)))\n return \"durationNs: integer|Long expected\";\n if (message.root != null && message.hasOwnProperty(\"root\")) {\n let error = $root.Trace.Node.verify(message.root);\n if (error)\n return \"root.\" + error;\n }\n if (message.isIncomplete != null && message.hasOwnProperty(\"isIncomplete\"))\n if (typeof message.isIncomplete !== \"boolean\")\n return \"isIncomplete: boolean expected\";\n if (message.signature != null && message.hasOwnProperty(\"signature\"))\n if (!$util.isString(message.signature))\n return \"signature: string expected\";\n if (message.unexecutedOperationBody != null && message.hasOwnProperty(\"unexecutedOperationBody\"))\n if (!$util.isString(message.unexecutedOperationBody))\n return \"unexecutedOperationBody: string expected\";\n if (message.unexecutedOperationName != null && message.hasOwnProperty(\"unexecutedOperationName\"))\n if (!$util.isString(message.unexecutedOperationName))\n return \"unexecutedOperationName: string expected\";\n if (message.details != null && message.hasOwnProperty(\"details\")) {\n let error = $root.Trace.Details.verify(message.details);\n if (error)\n return \"details.\" + error;\n }\n if (message.clientName != null && message.hasOwnProperty(\"clientName\"))\n if (!$util.isString(message.clientName))\n return \"clientName: string expected\";\n if (message.clientVersion != null && message.hasOwnProperty(\"clientVersion\"))\n if (!$util.isString(message.clientVersion))\n return \"clientVersion: string expected\";\n if (message.http != null && message.hasOwnProperty(\"http\")) {\n let error = $root.Trace.HTTP.verify(message.http);\n if (error)\n return \"http.\" + error;\n }\n if (message.cachePolicy != null && message.hasOwnProperty(\"cachePolicy\")) {\n let error = $root.Trace.CachePolicy.verify(message.cachePolicy);\n if (error)\n return \"cachePolicy.\" + error;\n }\n if (message.queryPlan != null && message.hasOwnProperty(\"queryPlan\")) {\n let error = $root.Trace.QueryPlanNode.verify(message.queryPlan);\n if (error)\n return \"queryPlan.\" + error;\n }\n if (message.fullQueryCacheHit != null && message.hasOwnProperty(\"fullQueryCacheHit\"))\n if (typeof message.fullQueryCacheHit !== \"boolean\")\n return \"fullQueryCacheHit: boolean expected\";\n if (message.persistedQueryHit != null && message.hasOwnProperty(\"persistedQueryHit\"))\n if (typeof message.persistedQueryHit !== \"boolean\")\n return \"persistedQueryHit: boolean expected\";\n if (message.persistedQueryRegister != null && message.hasOwnProperty(\"persistedQueryRegister\"))\n if (typeof message.persistedQueryRegister !== \"boolean\")\n return \"persistedQueryRegister: boolean expected\";\n if (message.registeredOperation != null && message.hasOwnProperty(\"registeredOperation\"))\n if (typeof message.registeredOperation !== \"boolean\")\n return \"registeredOperation: boolean expected\";\n if (message.forbiddenOperation != null && message.hasOwnProperty(\"forbiddenOperation\"))\n if (typeof message.forbiddenOperation !== \"boolean\")\n return \"forbiddenOperation: boolean expected\";\n if (message.fieldExecutionWeight != null && message.hasOwnProperty(\"fieldExecutionWeight\"))\n if (typeof message.fieldExecutionWeight !== \"number\")\n return \"fieldExecutionWeight: number expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Trace message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace\n * @static\n * @param {Trace} message Trace\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Trace.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.endTime = null;\n object.startTime = null;\n object.details = null;\n object.clientName = \"\";\n object.clientVersion = \"\";\n object.http = null;\n object.durationNs = 0;\n object.root = null;\n object.cachePolicy = null;\n object.signature = \"\";\n object.fullQueryCacheHit = false;\n object.persistedQueryHit = false;\n object.persistedQueryRegister = false;\n object.registeredOperation = false;\n object.forbiddenOperation = false;\n object.queryPlan = null;\n object.unexecutedOperationBody = \"\";\n object.unexecutedOperationName = \"\";\n object.fieldExecutionWeight = 0;\n object.isIncomplete = false;\n }\n if (message.endTime != null && message.hasOwnProperty(\"endTime\"))\n object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options);\n if (message.startTime != null && message.hasOwnProperty(\"startTime\"))\n object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options);\n if (message.details != null && message.hasOwnProperty(\"details\"))\n object.details = $root.Trace.Details.toObject(message.details, options);\n if (message.clientName != null && message.hasOwnProperty(\"clientName\"))\n object.clientName = message.clientName;\n if (message.clientVersion != null && message.hasOwnProperty(\"clientVersion\"))\n object.clientVersion = message.clientVersion;\n if (message.http != null && message.hasOwnProperty(\"http\"))\n object.http = $root.Trace.HTTP.toObject(message.http, options);\n if (message.durationNs != null && message.hasOwnProperty(\"durationNs\"))\n if (typeof message.durationNs === \"number\")\n object.durationNs = options.longs === String ? String(message.durationNs) : message.durationNs;\n else\n object.durationNs = options.longs === String ? $util.Long.prototype.toString.call(message.durationNs) : options.longs === Number ? new $util.LongBits(message.durationNs.low >>> 0, message.durationNs.high >>> 0).toNumber(true) : message.durationNs;\n if (message.root != null && message.hasOwnProperty(\"root\"))\n object.root = $root.Trace.Node.toObject(message.root, options);\n if (message.cachePolicy != null && message.hasOwnProperty(\"cachePolicy\"))\n object.cachePolicy = $root.Trace.CachePolicy.toObject(message.cachePolicy, options);\n if (message.signature != null && message.hasOwnProperty(\"signature\"))\n object.signature = message.signature;\n if (message.fullQueryCacheHit != null && message.hasOwnProperty(\"fullQueryCacheHit\"))\n object.fullQueryCacheHit = message.fullQueryCacheHit;\n if (message.persistedQueryHit != null && message.hasOwnProperty(\"persistedQueryHit\"))\n object.persistedQueryHit = message.persistedQueryHit;\n if (message.persistedQueryRegister != null && message.hasOwnProperty(\"persistedQueryRegister\"))\n object.persistedQueryRegister = message.persistedQueryRegister;\n if (message.registeredOperation != null && message.hasOwnProperty(\"registeredOperation\"))\n object.registeredOperation = message.registeredOperation;\n if (message.forbiddenOperation != null && message.hasOwnProperty(\"forbiddenOperation\"))\n object.forbiddenOperation = message.forbiddenOperation;\n if (message.queryPlan != null && message.hasOwnProperty(\"queryPlan\"))\n object.queryPlan = $root.Trace.QueryPlanNode.toObject(message.queryPlan, options);\n if (message.unexecutedOperationBody != null && message.hasOwnProperty(\"unexecutedOperationBody\"))\n object.unexecutedOperationBody = message.unexecutedOperationBody;\n if (message.unexecutedOperationName != null && message.hasOwnProperty(\"unexecutedOperationName\"))\n object.unexecutedOperationName = message.unexecutedOperationName;\n if (message.fieldExecutionWeight != null && message.hasOwnProperty(\"fieldExecutionWeight\"))\n object.fieldExecutionWeight = options.json && !isFinite(message.fieldExecutionWeight) ? String(message.fieldExecutionWeight) : message.fieldExecutionWeight;\n if (message.isIncomplete != null && message.hasOwnProperty(\"isIncomplete\"))\n object.isIncomplete = message.isIncomplete;\n return object;\n };\n\n /**\n * Converts this Trace to JSON.\n * @function toJSON\n * @memberof Trace\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Trace.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n Trace.CachePolicy = (function() {\n\n /**\n * Properties of a CachePolicy.\n * @memberof Trace\n * @interface ICachePolicy\n * @property {Trace.CachePolicy.Scope|null} [scope] CachePolicy scope\n * @property {number|null} [maxAgeNs] CachePolicy maxAgeNs\n */\n\n /**\n * Constructs a new CachePolicy.\n * @memberof Trace\n * @classdesc Represents a CachePolicy.\n * @implements ICachePolicy\n * @constructor\n * @param {Trace.ICachePolicy=} [properties] Properties to set\n */\n function CachePolicy(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CachePolicy scope.\n * @member {Trace.CachePolicy.Scope} scope\n * @memberof Trace.CachePolicy\n * @instance\n */\n CachePolicy.prototype.scope = 0;\n\n /**\n * CachePolicy maxAgeNs.\n * @member {number} maxAgeNs\n * @memberof Trace.CachePolicy\n * @instance\n */\n CachePolicy.prototype.maxAgeNs = 0;\n\n /**\n * Creates a new CachePolicy instance using the specified properties.\n * @function create\n * @memberof Trace.CachePolicy\n * @static\n * @param {Trace.ICachePolicy=} [properties] Properties to set\n * @returns {Trace.CachePolicy} CachePolicy instance\n */\n CachePolicy.create = function create(properties) {\n return new CachePolicy(properties);\n };\n\n /**\n * Encodes the specified CachePolicy message. Does not implicitly {@link Trace.CachePolicy.verify|verify} messages.\n * @function encode\n * @memberof Trace.CachePolicy\n * @static\n * @param {Trace.ICachePolicy} message CachePolicy message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CachePolicy.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.scope != null && Object.hasOwnProperty.call(message, \"scope\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.scope);\n if (message.maxAgeNs != null && Object.hasOwnProperty.call(message, \"maxAgeNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.maxAgeNs);\n return writer;\n };\n\n /**\n * Encodes the specified CachePolicy message, length delimited. Does not implicitly {@link Trace.CachePolicy.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.CachePolicy\n * @static\n * @param {Trace.ICachePolicy} message CachePolicy message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CachePolicy.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CachePolicy message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.CachePolicy\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.CachePolicy} CachePolicy\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CachePolicy.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.CachePolicy();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.scope = reader.int32();\n break;\n case 2:\n message.maxAgeNs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CachePolicy message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.CachePolicy\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.CachePolicy} CachePolicy\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CachePolicy.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CachePolicy message.\n * @function verify\n * @memberof Trace.CachePolicy\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CachePolicy.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.scope != null && message.hasOwnProperty(\"scope\"))\n switch (message.scope) {\n default:\n return \"scope: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n if (message.maxAgeNs != null && message.hasOwnProperty(\"maxAgeNs\"))\n if (!$util.isInteger(message.maxAgeNs) && !(message.maxAgeNs && $util.isInteger(message.maxAgeNs.low) && $util.isInteger(message.maxAgeNs.high)))\n return \"maxAgeNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a CachePolicy message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.CachePolicy\n * @static\n * @param {Trace.CachePolicy} message CachePolicy\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CachePolicy.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.scope = options.enums === String ? \"UNKNOWN\" : 0;\n object.maxAgeNs = 0;\n }\n if (message.scope != null && message.hasOwnProperty(\"scope\"))\n object.scope = options.enums === String ? $root.Trace.CachePolicy.Scope[message.scope] : message.scope;\n if (message.maxAgeNs != null && message.hasOwnProperty(\"maxAgeNs\"))\n if (typeof message.maxAgeNs === \"number\")\n object.maxAgeNs = options.longs === String ? String(message.maxAgeNs) : message.maxAgeNs;\n else\n object.maxAgeNs = options.longs === String ? $util.Long.prototype.toString.call(message.maxAgeNs) : options.longs === Number ? new $util.LongBits(message.maxAgeNs.low >>> 0, message.maxAgeNs.high >>> 0).toNumber() : message.maxAgeNs;\n return object;\n };\n\n /**\n * Converts this CachePolicy to JSON.\n * @function toJSON\n * @memberof Trace.CachePolicy\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CachePolicy.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * Scope enum.\n * @name Trace.CachePolicy.Scope\n * @enum {string}\n * @property {number} UNKNOWN=0 UNKNOWN value\n * @property {number} PUBLIC=1 PUBLIC value\n * @property {number} PRIVATE=2 PRIVATE value\n */\n CachePolicy.Scope = (function() {\n const valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNKNOWN\"] = 0;\n values[valuesById[1] = \"PUBLIC\"] = 1;\n values[valuesById[2] = \"PRIVATE\"] = 2;\n return values;\n })();\n\n return CachePolicy;\n })();\n\n Trace.Details = (function() {\n\n /**\n * Properties of a Details.\n * @memberof Trace\n * @interface IDetails\n * @property {Object.<string,string>|null} [variablesJson] Details variablesJson\n * @property {string|null} [operationName] Details operationName\n */\n\n /**\n * Constructs a new Details.\n * @memberof Trace\n * @classdesc Represents a Details.\n * @implements IDetails\n * @constructor\n * @param {Trace.IDetails=} [properties] Properties to set\n */\n function Details(properties) {\n this.variablesJson = {};\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Details variablesJson.\n * @member {Object.<string,string>} variablesJson\n * @memberof Trace.Details\n * @instance\n */\n Details.prototype.variablesJson = $util.emptyObject;\n\n /**\n * Details operationName.\n * @member {string} operationName\n * @memberof Trace.Details\n * @instance\n */\n Details.prototype.operationName = \"\";\n\n /**\n * Creates a new Details instance using the specified properties.\n * @function create\n * @memberof Trace.Details\n * @static\n * @param {Trace.IDetails=} [properties] Properties to set\n * @returns {Trace.Details} Details instance\n */\n Details.create = function create(properties) {\n return new Details(properties);\n };\n\n /**\n * Encodes the specified Details message. Does not implicitly {@link Trace.Details.verify|verify} messages.\n * @function encode\n * @memberof Trace.Details\n * @static\n * @param {Trace.IDetails} message Details message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Details.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.operationName != null && Object.hasOwnProperty.call(message, \"operationName\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.operationName);\n if (message.variablesJson != null && Object.hasOwnProperty.call(message, \"variablesJson\"))\n for (let keys = Object.keys(message.variablesJson), i = 0; i < keys.length; ++i)\n writer.uint32(/* id 4, wireType 2 =*/34).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.variablesJson[keys[i]]).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Details message, length delimited. Does not implicitly {@link Trace.Details.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.Details\n * @static\n * @param {Trace.IDetails} message Details message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Details.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Details message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.Details\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.Details} Details\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Details.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.Details(), key;\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 4:\n reader.skip().pos++;\n if (message.variablesJson === $util.emptyObject)\n message.variablesJson = {};\n key = reader.string();\n reader.pos++;\n message.variablesJson[key] = reader.string();\n break;\n case 3:\n message.operationName = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Details message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.Details\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.Details} Details\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Details.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Details message.\n * @function verify\n * @memberof Trace.Details\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Details.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.variablesJson != null && message.hasOwnProperty(\"variablesJson\")) {\n if (!$util.isObject(message.variablesJson))\n return \"variablesJson: object expected\";\n let key = Object.keys(message.variablesJson);\n for (let i = 0; i < key.length; ++i)\n if (!$util.isString(message.variablesJson[key[i]]))\n return \"variablesJson: string{k:string} expected\";\n }\n if (message.operationName != null && message.hasOwnProperty(\"operationName\"))\n if (!$util.isString(message.operationName))\n return \"operationName: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Details message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.Details\n * @static\n * @param {Trace.Details} message Details\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Details.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.objects || options.defaults)\n object.variablesJson = {};\n if (options.defaults)\n object.operationName = \"\";\n if (message.operationName != null && message.hasOwnProperty(\"operationName\"))\n object.operationName = message.operationName;\n let keys2;\n if (message.variablesJson && (keys2 = Object.keys(message.variablesJson)).length) {\n object.variablesJson = {};\n for (let j = 0; j < keys2.length; ++j)\n object.variablesJson[keys2[j]] = message.variablesJson[keys2[j]];\n }\n return object;\n };\n\n /**\n * Converts this Details to JSON.\n * @function toJSON\n * @memberof Trace.Details\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Details.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Details;\n })();\n\n Trace.Error = (function() {\n\n /**\n * Properties of an Error.\n * @memberof Trace\n * @interface IError\n * @property {string|null} [message] Error message\n * @property {Array.<Trace.ILocation>|null} [location] Error location\n * @property {number|null} [timeNs] Error timeNs\n * @property {string|null} [json] Error json\n */\n\n /**\n * Constructs a new Error.\n * @memberof Trace\n * @classdesc Represents an Error.\n * @implements IError\n * @constructor\n * @param {Trace.IError=} [properties] Properties to set\n */\n function Error(properties) {\n this.location = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Error message.\n * @member {string} message\n * @memberof Trace.Error\n * @instance\n */\n Error.prototype.message = \"\";\n\n /**\n * Error location.\n * @member {Array.<Trace.ILocation>} location\n * @memberof Trace.Error\n * @instance\n */\n Error.prototype.location = $util.emptyArray;\n\n /**\n * Error timeNs.\n * @member {number} timeNs\n * @memberof Trace.Error\n * @instance\n */\n Error.prototype.timeNs = 0;\n\n /**\n * Error json.\n * @member {string} json\n * @memberof Trace.Error\n * @instance\n */\n Error.prototype.json = \"\";\n\n /**\n * Creates a new Error instance using the specified properties.\n * @function create\n * @memberof Trace.Error\n * @static\n * @param {Trace.IError=} [properties] Properties to set\n * @returns {Trace.Error} Error instance\n */\n Error.create = function create(properties) {\n return new Error(properties);\n };\n\n /**\n * Encodes the specified Error message. Does not implicitly {@link Trace.Error.verify|verify} messages.\n * @function encode\n * @memberof Trace.Error\n * @static\n * @param {Trace.IError} message Error message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Error.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.message != null && Object.hasOwnProperty.call(message, \"message\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.message);\n if (message.location != null && message.location.length)\n for (let i = 0; i < message.location.length; ++i)\n $root.Trace.Location.encode(message.location[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.timeNs != null && Object.hasOwnProperty.call(message, \"timeNs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.timeNs);\n if (message.json != null && Object.hasOwnProperty.call(message, \"json\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.json);\n return writer;\n };\n\n /**\n * Encodes the specified Error message, length delimited. Does not implicitly {@link Trace.Error.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.Error\n * @static\n * @param {Trace.IError} message Error message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Error.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an Error message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.Error\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.Error} Error\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Error.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.Error();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n case 2:\n if (!(message.location && message.location.length))\n message.location = [];\n message.location.push($root.Trace.Location.decode(reader, reader.uint32()));\n break;\n case 3:\n message.timeNs = reader.uint64();\n break;\n case 4:\n message.json = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an Error message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.Error\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.Error} Error\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Error.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an Error message.\n * @function verify\n * @memberof Trace.Error\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Error.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.message != null && message.hasOwnProperty(\"message\"))\n if (!$util.isString(message.message))\n return \"message: string expected\";\n if (message.location != null && message.hasOwnProperty(\"location\")) {\n if (!Array.isArray(message.location))\n return \"location: array expected\";\n for (let i = 0; i < message.location.length; ++i) {\n let error = $root.Trace.Location.verify(message.location[i]);\n if (error)\n return \"location.\" + error;\n }\n }\n if (message.timeNs != null && message.hasOwnProperty(\"timeNs\"))\n if (!$util.isInteger(message.timeNs) && !(message.timeNs && $util.isInteger(message.timeNs.low) && $util.isInteger(message.timeNs.high)))\n return \"timeNs: integer|Long expected\";\n if (message.json != null && message.hasOwnProperty(\"json\"))\n if (!$util.isString(message.json))\n return \"json: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from an Error message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.Error\n * @static\n * @param {Trace.Error} message Error\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Error.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults)\n object.location = [];\n if (options.defaults) {\n object.message = \"\";\n object.timeNs = 0;\n object.json = \"\";\n }\n if (message.message != null && message.hasOwnProperty(\"message\"))\n object.message = message.message;\n if (message.location && message.location.length) {\n object.location = [];\n for (let j = 0; j < message.location.length; ++j)\n object.location[j] = $root.Trace.Location.toObject(message.location[j], options);\n }\n if (message.timeNs != null && message.hasOwnProperty(\"timeNs\"))\n if (typeof message.timeNs === \"number\")\n object.timeNs = options.longs === String ? String(message.timeNs) : message.timeNs;\n else\n object.timeNs = options.longs === String ? $util.Long.prototype.toString.call(message.timeNs) : options.longs === Number ? new $util.LongBits(message.timeNs.low >>> 0, message.timeNs.high >>> 0).toNumber(true) : message.timeNs;\n if (message.json != null && message.hasOwnProperty(\"json\"))\n object.json = message.json;\n return object;\n };\n\n /**\n * Converts this Error to JSON.\n * @function toJSON\n * @memberof Trace.Error\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Error.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Error;\n })();\n\n Trace.HTTP = (function() {\n\n /**\n * Properties of a HTTP.\n * @memberof Trace\n * @interface IHTTP\n * @property {Trace.HTTP.Method|null} [method] HTTP method\n * @property {Object.<string,Trace.HTTP.IValues>|null} [requestHeaders] HTTP requestHeaders\n * @property {Object.<string,Trace.HTTP.IValues>|null} [responseHeaders] HTTP responseHeaders\n * @property {number|null} [statusCode] HTTP statusCode\n */\n\n /**\n * Constructs a new HTTP.\n * @memberof Trace\n * @classdesc Represents a HTTP.\n * @implements IHTTP\n * @constructor\n * @param {Trace.IHTTP=} [properties] Properties to set\n */\n function HTTP(properties) {\n this.requestHeaders = {};\n this.responseHeaders = {};\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * HTTP method.\n * @member {Trace.HTTP.Method} method\n * @memberof Trace.HTTP\n * @instance\n */\n HTTP.prototype.method = 0;\n\n /**\n * HTTP requestHeaders.\n * @member {Object.<string,Trace.HTTP.IValues>} requestHeaders\n * @memberof Trace.HTTP\n * @instance\n */\n HTTP.prototype.requestHeaders = $util.emptyObject;\n\n /**\n * HTTP responseHeaders.\n * @member {Object.<string,Trace.HTTP.IValues>} responseHeaders\n * @memberof Trace.HTTP\n * @instance\n */\n HTTP.prototype.responseHeaders = $util.emptyObject;\n\n /**\n * HTTP statusCode.\n * @member {number} statusCode\n * @memberof Trace.HTTP\n * @instance\n */\n HTTP.prototype.statusCode = 0;\n\n /**\n * Creates a new HTTP instance using the specified properties.\n * @function create\n * @memberof Trace.HTTP\n * @static\n * @param {Trace.IHTTP=} [properties] Properties to set\n * @returns {Trace.HTTP} HTTP instance\n */\n HTTP.create = function create(properties) {\n return new HTTP(properties);\n };\n\n /**\n * Encodes the specified HTTP message. Does not implicitly {@link Trace.HTTP.verify|verify} messages.\n * @function encode\n * @memberof Trace.HTTP\n * @static\n * @param {Trace.IHTTP} message HTTP message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HTTP.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.method != null && Object.hasOwnProperty.call(message, \"method\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.method);\n if (message.requestHeaders != null && Object.hasOwnProperty.call(message, \"requestHeaders\"))\n for (let keys = Object.keys(message.requestHeaders), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 4, wireType 2 =*/34).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.Trace.HTTP.Values.encode(message.requestHeaders[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n if (message.responseHeaders != null && Object.hasOwnProperty.call(message, \"responseHeaders\"))\n for (let keys = Object.keys(message.responseHeaders), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 5, wireType 2 =*/42).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.Trace.HTTP.Values.encode(message.responseHeaders[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n if (message.statusCode != null && Object.hasOwnProperty.call(message, \"statusCode\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.statusCode);\n return writer;\n };\n\n /**\n * Encodes the specified HTTP message, length delimited. Does not implicitly {@link Trace.HTTP.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.HTTP\n * @static\n * @param {Trace.IHTTP} message HTTP message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HTTP.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a HTTP message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.HTTP\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.HTTP} HTTP\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HTTP.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.HTTP(), key;\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.method = reader.int32();\n break;\n case 4:\n reader.skip().pos++;\n if (message.requestHeaders === $util.emptyObject)\n message.requestHeaders = {};\n key = reader.string();\n reader.pos++;\n message.requestHeaders[key] = $root.Trace.HTTP.Values.decode(reader, reader.uint32());\n break;\n case 5:\n reader.skip().pos++;\n if (message.responseHeaders === $util.emptyObject)\n message.responseHeaders = {};\n key = reader.string();\n reader.pos++;\n message.responseHeaders[key] = $root.Trace.HTTP.Values.decode(reader, reader.uint32());\n break;\n case 6:\n message.statusCode = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a HTTP message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.HTTP\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.HTTP} HTTP\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HTTP.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a HTTP message.\n * @function verify\n * @memberof Trace.HTTP\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n HTTP.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.method != null && message.hasOwnProperty(\"method\"))\n switch (message.method) {\n default:\n return \"method: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n break;\n }\n if (message.requestHeaders != null && message.hasOwnProperty(\"requestHeaders\")) {\n if (!$util.isObject(message.requestHeaders))\n return \"requestHeaders: object expected\";\n let key = Object.keys(message.requestHeaders);\n for (let i = 0; i < key.length; ++i) {\n let error = $root.Trace.HTTP.Values.verify(message.requestHeaders[key[i]]);\n if (error)\n return \"requestHeaders.\" + error;\n }\n }\n if (message.responseHeaders != null && message.hasOwnProperty(\"responseHeaders\")) {\n if (!$util.isObject(message.responseHeaders))\n return \"responseHeaders: object expected\";\n let key = Object.keys(message.responseHeaders);\n for (let i = 0; i < key.length; ++i) {\n let error = $root.Trace.HTTP.Values.verify(message.responseHeaders[key[i]]);\n if (error)\n return \"responseHeaders.\" + error;\n }\n }\n if (message.statusCode != null && message.hasOwnProperty(\"statusCode\"))\n if (!$util.isInteger(message.statusCode))\n return \"statusCode: integer expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a HTTP message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.HTTP\n * @static\n * @param {Trace.HTTP} message HTTP\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n HTTP.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.objects || options.defaults) {\n object.requestHeaders = {};\n object.responseHeaders = {};\n }\n if (options.defaults) {\n object.method = options.enums === String ? \"UNKNOWN\" : 0;\n object.statusCode = 0;\n }\n if (message.method != null && message.hasOwnProperty(\"method\"))\n object.method = options.enums === String ? $root.Trace.HTTP.Method[message.method] : message.method;\n let keys2;\n if (message.requestHeaders && (keys2 = Object.keys(message.requestHeaders)).length) {\n object.requestHeaders = {};\n for (let j = 0; j < keys2.length; ++j)\n object.requestHeaders[keys2[j]] = $root.Trace.HTTP.Values.toObject(message.requestHeaders[keys2[j]], options);\n }\n if (message.responseHeaders && (keys2 = Object.keys(message.responseHeaders)).length) {\n object.responseHeaders = {};\n for (let j = 0; j < keys2.length; ++j)\n object.responseHeaders[keys2[j]] = $root.Trace.HTTP.Values.toObject(message.responseHeaders[keys2[j]], options);\n }\n if (message.statusCode != null && message.hasOwnProperty(\"statusCode\"))\n object.statusCode = message.statusCode;\n return object;\n };\n\n /**\n * Converts this HTTP to JSON.\n * @function toJSON\n * @memberof Trace.HTTP\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n HTTP.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n HTTP.Values = (function() {\n\n /**\n * Properties of a Values.\n * @memberof Trace.HTTP\n * @interface IValues\n * @property {Array.<string>|null} [value] Values value\n */\n\n /**\n * Constructs a new Values.\n * @memberof Trace.HTTP\n * @classdesc Represents a Values.\n * @implements IValues\n * @constructor\n * @param {Trace.HTTP.IValues=} [properties] Properties to set\n */\n function Values(properties) {\n this.value = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Values value.\n * @member {Array.<string>} value\n * @memberof Trace.HTTP.Values\n * @instance\n */\n Values.prototype.value = $util.emptyArray;\n\n /**\n * Creates a new Values instance using the specified properties.\n * @function create\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Trace.HTTP.IValues=} [properties] Properties to set\n * @returns {Trace.HTTP.Values} Values instance\n */\n Values.create = function create(properties) {\n return new Values(properties);\n };\n\n /**\n * Encodes the specified Values message. Does not implicitly {@link Trace.HTTP.Values.verify|verify} messages.\n * @function encode\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Trace.HTTP.IValues} message Values message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Values.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.value != null && message.value.length)\n for (let i = 0; i < message.value.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.value[i]);\n return writer;\n };\n\n /**\n * Encodes the specified Values message, length delimited. Does not implicitly {@link Trace.HTTP.Values.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Trace.HTTP.IValues} message Values message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Values.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Values message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.HTTP.Values\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.HTTP.Values} Values\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Values.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.HTTP.Values();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.value && message.value.length))\n message.value = [];\n message.value.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Values message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.HTTP.Values\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.HTTP.Values} Values\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Values.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Values message.\n * @function verify\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Values.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.value != null && message.hasOwnProperty(\"value\")) {\n if (!Array.isArray(message.value))\n return \"value: array expected\";\n for (let i = 0; i < message.value.length; ++i)\n if (!$util.isString(message.value[i]))\n return \"value: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a plain object from a Values message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Trace.HTTP.Values} message Values\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Values.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults)\n object.value = [];\n if (message.value && message.value.length) {\n object.value = [];\n for (let j = 0; j < message.value.length; ++j)\n object.value[j] = message.value[j];\n }\n return object;\n };\n\n /**\n * Converts this Values to JSON.\n * @function toJSON\n * @memberof Trace.HTTP.Values\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Values.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Values;\n })();\n\n /**\n * Method enum.\n * @name Trace.HTTP.Method\n * @enum {string}\n * @property {number} UNKNOWN=0 UNKNOWN value\n * @property {number} OPTIONS=1 OPTIONS value\n * @property {number} GET=2 GET value\n * @property {number} HEAD=3 HEAD value\n * @property {number} POST=4 POST value\n * @property {number} PUT=5 PUT value\n * @property {number} DELETE=6 DELETE value\n * @property {number} TRACE=7 TRACE value\n * @property {number} CONNECT=8 CONNECT value\n * @property {number} PATCH=9 PATCH value\n */\n HTTP.Method = (function() {\n const valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNKNOWN\"] = 0;\n values[valuesById[1] = \"OPTIONS\"] = 1;\n values[valuesById[2] = \"GET\"] = 2;\n values[valuesById[3] = \"HEAD\"] = 3;\n values[valuesById[4] = \"POST\"] = 4;\n values[valuesById[5] = \"PUT\"] = 5;\n values[valuesById[6] = \"DELETE\"] = 6;\n values[valuesById[7] = \"TRACE\"] = 7;\n values[valuesById[8] = \"CONNECT\"] = 8;\n values[valuesById[9] = \"PATCH\"] = 9;\n return values;\n })();\n\n return HTTP;\n })();\n\n Trace.Location = (function() {\n\n /**\n * Properties of a Location.\n * @memberof Trace\n * @interface ILocation\n * @property {number|null} [line] Location line\n * @property {number|null} [column] Location column\n */\n\n /**\n * Constructs a new Location.\n * @memberof Trace\n * @classdesc Represents a Location.\n * @implements ILocation\n * @constructor\n * @param {Trace.ILocation=} [properties] Properties to set\n */\n function Location(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Location line.\n * @member {number} line\n * @memberof Trace.Location\n * @instance\n */\n Location.prototype.line = 0;\n\n /**\n * Location column.\n * @member {number} column\n * @memberof Trace.Location\n * @instance\n */\n Location.prototype.column = 0;\n\n /**\n * Creates a new Location instance using the specified properties.\n * @function create\n * @memberof Trace.Location\n * @static\n * @param {Trace.ILocation=} [properties] Properties to set\n * @returns {Trace.Location} Location instance\n */\n Location.create = function create(properties) {\n return new Location(properties);\n };\n\n /**\n * Encodes the specified Location message. Does not implicitly {@link Trace.Location.verify|verify} messages.\n * @function encode\n * @memberof Trace.Location\n * @static\n * @param {Trace.ILocation} message Location message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Location.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.line != null && Object.hasOwnProperty.call(message, \"line\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.line);\n if (message.column != null && Object.hasOwnProperty.call(message, \"column\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.column);\n return writer;\n };\n\n /**\n * Encodes the specified Location message, length delimited. Does not implicitly {@link Trace.Location.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.Location\n * @static\n * @param {Trace.ILocation} message Location message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Location.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Location message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.Location\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.Location} Location\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Location.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.Location();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.line = reader.uint32();\n break;\n case 2:\n message.column = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Location message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.Location\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.Location} Location\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Location.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Location message.\n * @function verify\n * @memberof Trace.Location\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Location.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.line != null && message.hasOwnProperty(\"line\"))\n if (!$util.isInteger(message.line))\n return \"line: integer expected\";\n if (message.column != null && message.hasOwnProperty(\"column\"))\n if (!$util.isInteger(message.column))\n return \"column: integer expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Location message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.Location\n * @static\n * @param {Trace.Location} message Location\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Location.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.line = 0;\n object.column = 0;\n }\n if (message.line != null && message.hasOwnProperty(\"line\"))\n object.line = message.line;\n if (message.column != null && message.hasOwnProperty(\"column\"))\n object.column = message.column;\n return object;\n };\n\n /**\n * Converts this Location to JSON.\n * @function toJSON\n * @memberof Trace.Location\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Location.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Location;\n })();\n\n Trace.Node = (function() {\n\n /**\n * Properties of a Node.\n * @memberof Trace\n * @interface INode\n * @property {string|null} [responseName] Node responseName\n * @property {number|null} [index] Node index\n * @property {string|null} [originalFieldName] Node originalFieldName\n * @property {string|null} [type] Node type\n * @property {string|null} [parentType] Node parentType\n * @property {Trace.ICachePolicy|null} [cachePolicy] Node cachePolicy\n * @property {number|null} [startTime] Node startTime\n * @property {number|null} [endTime] Node endTime\n * @property {Array.<Trace.IError>|null} [error] Node error\n * @property {Array.<Trace.INode>|null} [child] Node child\n */\n\n /**\n * Constructs a new Node.\n * @memberof Trace\n * @classdesc Represents a Node.\n * @implements INode\n * @constructor\n * @param {Trace.INode=} [properties] Properties to set\n */\n function Node(properties) {\n this.error = [];\n this.child = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Node responseName.\n * @member {string} responseName\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.responseName = \"\";\n\n /**\n * Node index.\n * @member {number} index\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.index = 0;\n\n /**\n * Node originalFieldName.\n * @member {string} originalFieldName\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.originalFieldName = \"\";\n\n /**\n * Node type.\n * @member {string} type\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.type = \"\";\n\n /**\n * Node parentType.\n * @member {string} parentType\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.parentType = \"\";\n\n /**\n * Node cachePolicy.\n * @member {Trace.ICachePolicy|null|undefined} cachePolicy\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.cachePolicy = null;\n\n /**\n * Node startTime.\n * @member {number} startTime\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.startTime = 0;\n\n /**\n * Node endTime.\n * @member {number} endTime\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.endTime = 0;\n\n /**\n * Node error.\n * @member {Array.<Trace.IError>} error\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.error = $util.emptyArray;\n\n /**\n * Node child.\n * @member {Array.<Trace.INode>} child\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.child = $util.emptyArray;\n\n // OneOf field names bound to virtual getters and setters\n let $oneOfFields;\n\n /**\n * Node id.\n * @member {\"responseName\"|\"index\"|undefined} id\n * @memberof Trace.Node\n * @instance\n */\n Object.defineProperty(Node.prototype, \"id\", {\n get: $util.oneOfGetter($oneOfFields = [\"responseName\", \"index\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new Node instance using the specified properties.\n * @function create\n * @memberof Trace.Node\n * @static\n * @param {Trace.INode=} [properties] Properties to set\n * @returns {Trace.Node} Node instance\n */\n Node.create = function create(properties) {\n return new Node(properties);\n };\n\n /**\n * Encodes the specified Node message. Does not implicitly {@link Trace.Node.verify|verify} messages.\n * @function encode\n * @memberof Trace.Node\n * @static\n * @param {Trace.INode} message Node message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Node.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.responseName != null && Object.hasOwnProperty.call(message, \"responseName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.responseName);\n if (message.index != null && Object.hasOwnProperty.call(message, \"index\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.index);\n if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.type);\n if (message.cachePolicy != null && Object.hasOwnProperty.call(message, \"cachePolicy\"))\n $root.Trace.CachePolicy.encode(message.cachePolicy, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.startTime != null && Object.hasOwnProperty.call(message, \"startTime\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.startTime);\n if (message.endTime != null && Object.hasOwnProperty.call(message, \"endTime\"))\n writer.uint32(/* id 9, wireType 0 =*/72).uint64(message.endTime);\n if (message.error != null && message.error.length)\n for (let i = 0; i < message.error.length; ++i)\n $root.Trace.Error.encode(message.error[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();\n if (message.child != null && message.child.length)\n for (let i = 0; i < message.child.length; ++i)\n $root.Trace.Node.encode(message.child[i], writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();\n if (message.parentType != null && Object.hasOwnProperty.call(message, \"parentType\"))\n writer.uint32(/* id 13, wireType 2 =*/106).string(message.parentType);\n if (message.originalFieldName != null && Object.hasOwnProperty.call(message, \"originalFieldName\"))\n writer.uint32(/* id 14, wireType 2 =*/114).string(message.originalFieldName);\n return writer;\n };\n\n /**\n * Encodes the specified Node message, length delimited. Does not implicitly {@link Trace.Node.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.Node\n * @static\n * @param {Trace.INode} message Node message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Node.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Node message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.Node\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.Node} Node\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Node.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.Node();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.responseName = reader.string();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 14:\n message.originalFieldName = reader.string();\n break;\n case 3:\n message.type = reader.string();\n break;\n case 13:\n message.parentType = reader.string();\n break;\n case 5:\n message.cachePolicy = $root.Trace.CachePolicy.decode(reader, reader.uint32());\n break;\n case 8:\n message.startTime = reader.uint64();\n break;\n case 9:\n message.endTime = reader.uint64();\n break;\n case 11:\n if (!(message.error && message.error.length))\n message.error = [];\n message.error.push($root.Trace.Error.decode(reader, reader.uint32()));\n break;\n case 12:\n if (!(message.child && message.child.length))\n message.child = [];\n message.child.push($root.Trace.Node.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Node message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.Node\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.Node} Node\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Node.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Node message.\n * @function verify\n * @memberof Trace.Node\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Node.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n let properties = {};\n if (message.responseName != null && message.hasOwnProperty(\"responseName\")) {\n properties.id = 1;\n if (!$util.isString(message.responseName))\n return \"responseName: string expected\";\n }\n if (message.index != null && message.hasOwnProperty(\"index\")) {\n if (properties.id === 1)\n return \"id: multiple values\";\n properties.id = 1;\n if (!$util.isInteger(message.index))\n return \"index: integer expected\";\n }\n if (message.originalFieldName != null && message.hasOwnProperty(\"originalFieldName\"))\n if (!$util.isString(message.originalFieldName))\n return \"originalFieldName: string expected\";\n if (message.type != null && message.hasOwnProperty(\"type\"))\n if (!$util.isString(message.type))\n return \"type: string expected\";\n if (message.parentType != null && message.hasOwnProperty(\"parentType\"))\n if (!$util.isString(message.parentType))\n return \"parentType: string expected\";\n if (message.cachePolicy != null && message.hasOwnProperty(\"cachePolicy\")) {\n let error = $root.Trace.CachePolicy.verify(message.cachePolicy);\n if (error)\n return \"cachePolicy.\" + error;\n }\n if (message.startTime != null && message.hasOwnProperty(\"startTime\"))\n if (!$util.isInteger(message.startTime) && !(message.startTime && $util.isInteger(message.startTime.low) && $util.isInteger(message.startTime.high)))\n return \"startTime: integer|Long expected\";\n if (message.endTime != null && message.hasOwnProperty(\"endTime\"))\n if (!$util.isInteger(message.endTime) && !(message.endTime && $util.isInteger(message.endTime.low) && $util.isInteger(message.endTime.high)))\n return \"endTime: integer|Long expected\";\n if (message.error != null && message.hasOwnProperty(\"error\")) {\n if (!Array.isArray(message.error))\n return \"error: array expected\";\n for (let i = 0; i < message.error.length; ++i) {\n let error = $root.Trace.Error.verify(message.error[i]);\n if (error)\n return \"error.\" + error;\n }\n }\n if (message.child != null && message.hasOwnProperty(\"child\")) {\n if (!Array.isArray(message.child))\n return \"child: array expected\";\n for (let i = 0; i < message.child.length; ++i) {\n let error = $root.Trace.Node.verify(message.child[i]);\n if (error)\n return \"child.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a Node message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.Node\n * @static\n * @param {Trace.Node} message Node\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Node.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults) {\n object.error = [];\n object.child = [];\n }\n if (options.defaults) {\n object.type = \"\";\n object.cachePolicy = null;\n object.startTime = 0;\n object.endTime = 0;\n object.parentType = \"\";\n object.originalFieldName = \"\";\n }\n if (message.responseName != null && message.hasOwnProperty(\"responseName\")) {\n object.responseName = message.responseName;\n if (options.oneofs)\n object.id = \"responseName\";\n }\n if (message.index != null && message.hasOwnProperty(\"index\")) {\n object.index = message.index;\n if (options.oneofs)\n object.id = \"index\";\n }\n if (message.type != null && message.hasOwnProperty(\"type\"))\n object.type = message.type;\n if (message.cachePolicy != null && message.hasOwnProperty(\"cachePolicy\"))\n object.cachePolicy = $root.Trace.CachePolicy.toObject(message.cachePolicy, options);\n if (message.startTime != null && message.hasOwnProperty(\"startTime\"))\n if (typeof message.startTime === \"number\")\n object.startTime = options.longs === String ? String(message.startTime) : message.startTime;\n else\n object.startTime = options.longs === String ? $util.Long.prototype.toString.call(message.startTime) : options.longs === Number ? new $util.LongBits(message.startTime.low >>> 0, message.startTime.high >>> 0).toNumber(true) : message.startTime;\n if (message.endTime != null && message.hasOwnProperty(\"endTime\"))\n if (typeof message.endTime === \"number\")\n object.endTime = options.longs === String ? String(message.endTime) : message.endTime;\n else\n object.endTime = options.longs === String ? $util.Long.prototype.toString.call(message.endTime) : options.longs === Number ? new $util.LongBits(message.endTime.low >>> 0, message.endTime.high >>> 0).toNumber(true) : message.endTime;\n if (message.error && message.error.length) {\n object.error = [];\n for (let j = 0; j < message.error.length; ++j)\n object.error[j] = $root.Trace.Error.toObject(message.error[j], options);\n }\n if (message.child && message.child.length) {\n object.child = [];\n for (let j = 0; j < message.child.length; ++j)\n object.child[j] = $root.Trace.Node.toObject(message.child[j], options);\n }\n if (message.parentType != null && message.hasOwnProperty(\"parentType\"))\n object.parentType = message.parentType;\n if (message.originalFieldName != null && message.hasOwnProperty(\"originalFieldName\"))\n object.originalFieldName = message.originalFieldName;\n return object;\n };\n\n /**\n * Converts this Node to JSON.\n * @function toJSON\n * @memberof Trace.Node\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Node.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Node;\n })();\n\n Trace.QueryPlanNode = (function() {\n\n /**\n * Properties of a QueryPlanNode.\n * @memberof Trace\n * @interface IQueryPlanNode\n * @property {Trace.QueryPlanNode.ISequenceNode|null} [sequence] QueryPlanNode sequence\n * @property {Trace.QueryPlanNode.IParallelNode|null} [parallel] QueryPlanNode parallel\n * @property {Trace.QueryPlanNode.IFetchNode|null} [fetch] QueryPlanNode fetch\n * @property {Trace.QueryPlanNode.IFlattenNode|null} [flatten] QueryPlanNode flatten\n * @property {Trace.QueryPlanNode.IDeferNode|null} [defer] QueryPlanNode defer\n * @property {Trace.QueryPlanNode.IConditionNode|null} [condition] QueryPlanNode condition\n */\n\n /**\n * Constructs a new QueryPlanNode.\n * @memberof Trace\n * @classdesc Represents a QueryPlanNode.\n * @implements IQueryPlanNode\n * @constructor\n * @param {Trace.IQueryPlanNode=} [properties] Properties to set\n */\n function QueryPlanNode(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * QueryPlanNode sequence.\n * @member {Trace.QueryPlanNode.ISequenceNode|null|undefined} sequence\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.sequence = null;\n\n /**\n * QueryPlanNode parallel.\n * @member {Trace.QueryPlanNode.IParallelNode|null|undefined} parallel\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.parallel = null;\n\n /**\n * QueryPlanNode fetch.\n * @member {Trace.QueryPlanNode.IFetchNode|null|undefined} fetch\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.fetch = null;\n\n /**\n * QueryPlanNode flatten.\n * @member {Trace.QueryPlanNode.IFlattenNode|null|undefined} flatten\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.flatten = null;\n\n /**\n * QueryPlanNode defer.\n * @member {Trace.QueryPlanNode.IDeferNode|null|undefined} defer\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.defer = null;\n\n /**\n * QueryPlanNode condition.\n * @member {Trace.QueryPlanNode.IConditionNode|null|undefined} condition\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.condition = null;\n\n // OneOf field names bound to virtual getters and setters\n let $oneOfFields;\n\n /**\n * QueryPlanNode node.\n * @member {\"sequence\"|\"parallel\"|\"fetch\"|\"flatten\"|\"defer\"|\"condition\"|undefined} node\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n Object.defineProperty(QueryPlanNode.prototype, \"node\", {\n get: $util.oneOfGetter($oneOfFields = [\"sequence\", \"parallel\", \"fetch\", \"flatten\", \"defer\", \"condition\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new QueryPlanNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Trace.IQueryPlanNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode} QueryPlanNode instance\n */\n QueryPlanNode.create = function create(properties) {\n return new QueryPlanNode(properties);\n };\n\n /**\n * Encodes the specified QueryPlanNode message. Does not implicitly {@link Trace.QueryPlanNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Trace.IQueryPlanNode} message QueryPlanNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryPlanNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.sequence != null && Object.hasOwnProperty.call(message, \"sequence\"))\n $root.Trace.QueryPlanNode.SequenceNode.encode(message.sequence, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.parallel != null && Object.hasOwnProperty.call(message, \"parallel\"))\n $root.Trace.QueryPlanNode.ParallelNode.encode(message.parallel, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.fetch != null && Object.hasOwnProperty.call(message, \"fetch\"))\n $root.Trace.QueryPlanNode.FetchNode.encode(message.fetch, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.flatten != null && Object.hasOwnProperty.call(message, \"flatten\"))\n $root.Trace.QueryPlanNode.FlattenNode.encode(message.flatten, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.defer != null && Object.hasOwnProperty.call(message, \"defer\"))\n $root.Trace.QueryPlanNode.DeferNode.encode(message.defer, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.condition != null && Object.hasOwnProperty.call(message, \"condition\"))\n $root.Trace.QueryPlanNode.ConditionNode.encode(message.condition, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified QueryPlanNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Trace.IQueryPlanNode} message QueryPlanNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryPlanNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryPlanNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode} QueryPlanNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryPlanNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = $root.Trace.QueryPlanNode.SequenceNode.decode(reader, reader.uint32());\n break;\n case 2:\n message.parallel = $root.Trace.QueryPlanNode.ParallelNode.decode(reader, reader.uint32());\n break;\n case 3:\n message.fetch = $root.Trace.QueryPlanNode.FetchNode.decode(reader, reader.uint32());\n break;\n case 4:\n message.flatten = $root.Trace.QueryPlanNode.FlattenNode.decode(reader, reader.uint32());\n break;\n case 5:\n message.defer = $root.Trace.QueryPlanNode.DeferNode.decode(reader, reader.uint32());\n break;\n case 6:\n message.condition = $root.Trace.QueryPlanNode.ConditionNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryPlanNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode} QueryPlanNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryPlanNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryPlanNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryPlanNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n let properties = {};\n if (message.sequence != null && message.hasOwnProperty(\"sequence\")) {\n properties.node = 1;\n {\n let error = $root.Trace.QueryPlanNode.SequenceNode.verify(message.sequence);\n if (error)\n return \"sequence.\" + error;\n }\n }\n if (message.parallel != null && message.hasOwnProperty(\"parallel\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n let error = $root.Trace.QueryPlanNode.ParallelNode.verify(message.parallel);\n if (error)\n return \"parallel.\" + error;\n }\n }\n if (message.fetch != null && message.hasOwnProperty(\"fetch\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n let error = $root.Trace.QueryPlanNode.FetchNode.verify(message.fetch);\n if (error)\n return \"fetch.\" + error;\n }\n }\n if (message.flatten != null && message.hasOwnProperty(\"flatten\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n let error = $root.Trace.QueryPlanNode.FlattenNode.verify(message.flatten);\n if (error)\n return \"flatten.\" + error;\n }\n }\n if (message.defer != null && message.hasOwnProperty(\"defer\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n let error = $root.Trace.QueryPlanNode.DeferNode.verify(message.defer);\n if (error)\n return \"defer.\" + error;\n }\n }\n if (message.condition != null && message.hasOwnProperty(\"condition\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n let error = $root.Trace.QueryPlanNode.ConditionNode.verify(message.condition);\n if (error)\n return \"condition.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a QueryPlanNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Trace.QueryPlanNode} message QueryPlanNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryPlanNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (message.sequence != null && message.hasOwnProperty(\"sequence\")) {\n object.sequence = $root.Trace.QueryPlanNode.SequenceNode.toObject(message.sequence, options);\n if (options.oneofs)\n object.node = \"sequence\";\n }\n if (message.parallel != null && message.hasOwnProperty(\"parallel\")) {\n object.parallel = $root.Trace.QueryPlanNode.ParallelNode.toObject(message.parallel, options);\n if (options.oneofs)\n object.node = \"parallel\";\n }\n if (message.fetch != null && message.hasOwnProperty(\"fetch\")) {\n object.fetch = $root.Trace.QueryPlanNode.FetchNode.toObject(message.fetch, options);\n if (options.oneofs)\n object.node = \"fetch\";\n }\n if (message.flatten != null && message.hasOwnProperty(\"flatten\")) {\n object.flatten = $root.Trace.QueryPlanNode.FlattenNode.toObject(message.flatten, options);\n if (options.oneofs)\n object.node = \"flatten\";\n }\n if (message.defer != null && message.hasOwnProperty(\"defer\")) {\n object.defer = $root.Trace.QueryPlanNode.DeferNode.toObject(message.defer, options);\n if (options.oneofs)\n object.node = \"defer\";\n }\n if (message.condition != null && message.hasOwnProperty(\"condition\")) {\n object.condition = $root.Trace.QueryPlanNode.ConditionNode.toObject(message.condition, options);\n if (options.oneofs)\n object.node = \"condition\";\n }\n return object;\n };\n\n /**\n * Converts this QueryPlanNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryPlanNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n QueryPlanNode.SequenceNode = (function() {\n\n /**\n * Properties of a SequenceNode.\n * @memberof Trace.QueryPlanNode\n * @interface ISequenceNode\n * @property {Array.<Trace.IQueryPlanNode>|null} [nodes] SequenceNode nodes\n */\n\n /**\n * Constructs a new SequenceNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a SequenceNode.\n * @implements ISequenceNode\n * @constructor\n * @param {Trace.QueryPlanNode.ISequenceNode=} [properties] Properties to set\n */\n function SequenceNode(properties) {\n this.nodes = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * SequenceNode nodes.\n * @member {Array.<Trace.IQueryPlanNode>} nodes\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @instance\n */\n SequenceNode.prototype.nodes = $util.emptyArray;\n\n /**\n * Creates a new SequenceNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Trace.QueryPlanNode.ISequenceNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.SequenceNode} SequenceNode instance\n */\n SequenceNode.create = function create(properties) {\n return new SequenceNode(properties);\n };\n\n /**\n * Encodes the specified SequenceNode message. Does not implicitly {@link Trace.QueryPlanNode.SequenceNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Trace.QueryPlanNode.ISequenceNode} message SequenceNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SequenceNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.nodes != null && message.nodes.length)\n for (let i = 0; i < message.nodes.length; ++i)\n $root.Trace.QueryPlanNode.encode(message.nodes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified SequenceNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.SequenceNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Trace.QueryPlanNode.ISequenceNode} message SequenceNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SequenceNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a SequenceNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.SequenceNode} SequenceNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SequenceNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.SequenceNode();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.nodes && message.nodes.length))\n message.nodes = [];\n message.nodes.push($root.Trace.QueryPlanNode.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a SequenceNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.SequenceNode} SequenceNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SequenceNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a SequenceNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n SequenceNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.nodes != null && message.hasOwnProperty(\"nodes\")) {\n if (!Array.isArray(message.nodes))\n return \"nodes: array expected\";\n for (let i = 0; i < message.nodes.length; ++i) {\n let error = $root.Trace.QueryPlanNode.verify(message.nodes[i]);\n if (error)\n return \"nodes.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a SequenceNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Trace.QueryPlanNode.SequenceNode} message SequenceNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n SequenceNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults)\n object.nodes = [];\n if (message.nodes && message.nodes.length) {\n object.nodes = [];\n for (let j = 0; j < message.nodes.length; ++j)\n object.nodes[j] = $root.Trace.QueryPlanNode.toObject(message.nodes[j], options);\n }\n return object;\n };\n\n /**\n * Converts this SequenceNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n SequenceNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return SequenceNode;\n })();\n\n QueryPlanNode.ParallelNode = (function() {\n\n /**\n * Properties of a ParallelNode.\n * @memberof Trace.QueryPlanNode\n * @interface IParallelNode\n * @property {Array.<Trace.IQueryPlanNode>|null} [nodes] ParallelNode nodes\n */\n\n /**\n * Constructs a new ParallelNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a ParallelNode.\n * @implements IParallelNode\n * @constructor\n * @param {Trace.QueryPlanNode.IParallelNode=} [properties] Properties to set\n */\n function ParallelNode(properties) {\n this.nodes = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ParallelNode nodes.\n * @member {Array.<Trace.IQueryPlanNode>} nodes\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @instance\n */\n ParallelNode.prototype.nodes = $util.emptyArray;\n\n /**\n * Creates a new ParallelNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Trace.QueryPlanNode.IParallelNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.ParallelNode} ParallelNode instance\n */\n ParallelNode.create = function create(properties) {\n return new ParallelNode(properties);\n };\n\n /**\n * Encodes the specified ParallelNode message. Does not implicitly {@link Trace.QueryPlanNode.ParallelNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Trace.QueryPlanNode.IParallelNode} message ParallelNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ParallelNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.nodes != null && message.nodes.length)\n for (let i = 0; i < message.nodes.length; ++i)\n $root.Trace.QueryPlanNode.encode(message.nodes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ParallelNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.ParallelNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Trace.QueryPlanNode.IParallelNode} message ParallelNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ParallelNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ParallelNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.ParallelNode} ParallelNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ParallelNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.ParallelNode();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.nodes && message.nodes.length))\n message.nodes = [];\n message.nodes.push($root.Trace.QueryPlanNode.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ParallelNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.ParallelNode} ParallelNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ParallelNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ParallelNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ParallelNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.nodes != null && message.hasOwnProperty(\"nodes\")) {\n if (!Array.isArray(message.nodes))\n return \"nodes: array expected\";\n for (let i = 0; i < message.nodes.length; ++i) {\n let error = $root.Trace.QueryPlanNode.verify(message.nodes[i]);\n if (error)\n return \"nodes.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ParallelNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Trace.QueryPlanNode.ParallelNode} message ParallelNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ParallelNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults)\n object.nodes = [];\n if (message.nodes && message.nodes.length) {\n object.nodes = [];\n for (let j = 0; j < message.nodes.length; ++j)\n object.nodes[j] = $root.Trace.QueryPlanNode.toObject(message.nodes[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ParallelNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ParallelNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ParallelNode;\n })();\n\n QueryPlanNode.FetchNode = (function() {\n\n /**\n * Properties of a FetchNode.\n * @memberof Trace.QueryPlanNode\n * @interface IFetchNode\n * @property {string|null} [serviceName] FetchNode serviceName\n * @property {boolean|null} [traceParsingFailed] FetchNode traceParsingFailed\n * @property {ITrace|null} [trace] FetchNode trace\n * @property {number|null} [sentTimeOffset] FetchNode sentTimeOffset\n * @property {google.protobuf.ITimestamp|null} [sentTime] FetchNode sentTime\n * @property {google.protobuf.ITimestamp|null} [receivedTime] FetchNode receivedTime\n */\n\n /**\n * Constructs a new FetchNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a FetchNode.\n * @implements IFetchNode\n * @constructor\n * @param {Trace.QueryPlanNode.IFetchNode=} [properties] Properties to set\n */\n function FetchNode(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FetchNode serviceName.\n * @member {string} serviceName\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.serviceName = \"\";\n\n /**\n * FetchNode traceParsingFailed.\n * @member {boolean} traceParsingFailed\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.traceParsingFailed = false;\n\n /**\n * FetchNode trace.\n * @member {ITrace|null|undefined} trace\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.trace = null;\n\n /**\n * FetchNode sentTimeOffset.\n * @member {number} sentTimeOffset\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.sentTimeOffset = 0;\n\n /**\n * FetchNode sentTime.\n * @member {google.protobuf.ITimestamp|null|undefined} sentTime\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.sentTime = null;\n\n /**\n * FetchNode receivedTime.\n * @member {google.protobuf.ITimestamp|null|undefined} receivedTime\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.receivedTime = null;\n\n /**\n * Creates a new FetchNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Trace.QueryPlanNode.IFetchNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.FetchNode} FetchNode instance\n */\n FetchNode.create = function create(properties) {\n return new FetchNode(properties);\n };\n\n /**\n * Encodes the specified FetchNode message. Does not implicitly {@link Trace.QueryPlanNode.FetchNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Trace.QueryPlanNode.IFetchNode} message FetchNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FetchNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.serviceName != null && Object.hasOwnProperty.call(message, \"serviceName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.serviceName);\n if (message.traceParsingFailed != null && Object.hasOwnProperty.call(message, \"traceParsingFailed\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.traceParsingFailed);\n if (message.trace != null && Object.hasOwnProperty.call(message, \"trace\"))\n $root.Trace.encode(message.trace, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.sentTimeOffset != null && Object.hasOwnProperty.call(message, \"sentTimeOffset\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.sentTimeOffset);\n if (message.sentTime != null && Object.hasOwnProperty.call(message, \"sentTime\"))\n $root.google.protobuf.Timestamp.encode(message.sentTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.receivedTime != null && Object.hasOwnProperty.call(message, \"receivedTime\"))\n $root.google.protobuf.Timestamp.encode(message.receivedTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified FetchNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.FetchNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Trace.QueryPlanNode.IFetchNode} message FetchNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FetchNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FetchNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.FetchNode} FetchNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FetchNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.FetchNode();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.serviceName = reader.string();\n break;\n case 2:\n message.traceParsingFailed = reader.bool();\n break;\n case 3:\n message.trace = $root.Trace.decode(reader, reader.uint32());\n break;\n case 4:\n message.sentTimeOffset = reader.uint64();\n break;\n case 5:\n message.sentTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.receivedTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FetchNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.FetchNode} FetchNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FetchNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FetchNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FetchNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.serviceName != null && message.hasOwnProperty(\"serviceName\"))\n if (!$util.isString(message.serviceName))\n return \"serviceName: string expected\";\n if (message.traceParsingFailed != null && message.hasOwnProperty(\"traceParsingFailed\"))\n if (typeof message.traceParsingFailed !== \"boolean\")\n return \"traceParsingFailed: boolean expected\";\n if (message.trace != null && message.hasOwnProperty(\"trace\")) {\n let error = $root.Trace.verify(message.trace);\n if (error)\n return \"trace.\" + error;\n }\n if (message.sentTimeOffset != null && message.hasOwnProperty(\"sentTimeOffset\"))\n if (!$util.isInteger(message.sentTimeOffset) && !(message.sentTimeOffset && $util.isInteger(message.sentTimeOffset.low) && $util.isInteger(message.sentTimeOffset.high)))\n return \"sentTimeOffset: integer|Long expected\";\n if (message.sentTime != null && message.hasOwnProperty(\"sentTime\")) {\n let error = $root.google.protobuf.Timestamp.verify(message.sentTime);\n if (error)\n return \"sentTime.\" + error;\n }\n if (message.receivedTime != null && message.hasOwnProperty(\"receivedTime\")) {\n let error = $root.google.protobuf.Timestamp.verify(message.receivedTime);\n if (error)\n return \"receivedTime.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a FetchNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Trace.QueryPlanNode.FetchNode} message FetchNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FetchNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.serviceName = \"\";\n object.traceParsingFailed = false;\n object.trace = null;\n object.sentTimeOffset = 0;\n object.sentTime = null;\n object.receivedTime = null;\n }\n if (message.serviceName != null && message.hasOwnProperty(\"serviceName\"))\n object.serviceName = message.serviceName;\n if (message.traceParsingFailed != null && message.hasOwnProperty(\"traceParsingFailed\"))\n object.traceParsingFailed = message.traceParsingFailed;\n if (message.trace != null && message.hasOwnProperty(\"trace\"))\n object.trace = $root.Trace.toObject(message.trace, options);\n if (message.sentTimeOffset != null && message.hasOwnProperty(\"sentTimeOffset\"))\n if (typeof message.sentTimeOffset === \"number\")\n object.sentTimeOffset = options.longs === String ? String(message.sentTimeOffset) : message.sentTimeOffset;\n else\n object.sentTimeOffset = options.longs === String ? $util.Long.prototype.toString.call(message.sentTimeOffset) : options.longs === Number ? new $util.LongBits(message.sentTimeOffset.low >>> 0, message.sentTimeOffset.high >>> 0).toNumber(true) : message.sentTimeOffset;\n if (message.sentTime != null && message.hasOwnProperty(\"sentTime\"))\n object.sentTime = $root.google.protobuf.Timestamp.toObject(message.sentTime, options);\n if (message.receivedTime != null && message.hasOwnProperty(\"receivedTime\"))\n object.receivedTime = $root.google.protobuf.Timestamp.toObject(message.receivedTime, options);\n return object;\n };\n\n /**\n * Converts this FetchNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FetchNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FetchNode;\n })();\n\n QueryPlanNode.FlattenNode = (function() {\n\n /**\n * Properties of a FlattenNode.\n * @memberof Trace.QueryPlanNode\n * @interface IFlattenNode\n * @property {Array.<Trace.QueryPlanNode.IResponsePathElement>|null} [responsePath] FlattenNode responsePath\n * @property {Trace.IQueryPlanNode|null} [node] FlattenNode node\n */\n\n /**\n * Constructs a new FlattenNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a FlattenNode.\n * @implements IFlattenNode\n * @constructor\n * @param {Trace.QueryPlanNode.IFlattenNode=} [properties] Properties to set\n */\n function FlattenNode(properties) {\n this.responsePath = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FlattenNode responsePath.\n * @member {Array.<Trace.QueryPlanNode.IResponsePathElement>} responsePath\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @instance\n */\n FlattenNode.prototype.responsePath = $util.emptyArray;\n\n /**\n * FlattenNode node.\n * @member {Trace.IQueryPlanNode|null|undefined} node\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @instance\n */\n FlattenNode.prototype.node = null;\n\n /**\n * Creates a new FlattenNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Trace.QueryPlanNode.IFlattenNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.FlattenNode} FlattenNode instance\n */\n FlattenNode.create = function create(properties) {\n return new FlattenNode(properties);\n };\n\n /**\n * Encodes the specified FlattenNode message. Does not implicitly {@link Trace.QueryPlanNode.FlattenNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Trace.QueryPlanNode.IFlattenNode} message FlattenNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FlattenNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.responsePath != null && message.responsePath.length)\n for (let i = 0; i < message.responsePath.length; ++i)\n $root.Trace.QueryPlanNode.ResponsePathElement.encode(message.responsePath[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.node != null && Object.hasOwnProperty.call(message, \"node\"))\n $root.Trace.QueryPlanNode.encode(message.node, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified FlattenNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.FlattenNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Trace.QueryPlanNode.IFlattenNode} message FlattenNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FlattenNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FlattenNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.FlattenNode} FlattenNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FlattenNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.FlattenNode();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.responsePath && message.responsePath.length))\n message.responsePath = [];\n message.responsePath.push($root.Trace.QueryPlanNode.ResponsePathElement.decode(reader, reader.uint32()));\n break;\n case 2:\n message.node = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FlattenNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.FlattenNode} FlattenNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FlattenNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FlattenNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FlattenNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.responsePath != null && message.hasOwnProperty(\"responsePath\")) {\n if (!Array.isArray(message.responsePath))\n return \"responsePath: array expected\";\n for (let i = 0; i < message.responsePath.length; ++i) {\n let error = $root.Trace.QueryPlanNode.ResponsePathElement.verify(message.responsePath[i]);\n if (error)\n return \"responsePath.\" + error;\n }\n }\n if (message.node != null && message.hasOwnProperty(\"node\")) {\n let error = $root.Trace.QueryPlanNode.verify(message.node);\n if (error)\n return \"node.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a FlattenNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Trace.QueryPlanNode.FlattenNode} message FlattenNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FlattenNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults)\n object.responsePath = [];\n if (options.defaults)\n object.node = null;\n if (message.responsePath && message.responsePath.length) {\n object.responsePath = [];\n for (let j = 0; j < message.responsePath.length; ++j)\n object.responsePath[j] = $root.Trace.QueryPlanNode.ResponsePathElement.toObject(message.responsePath[j], options);\n }\n if (message.node != null && message.hasOwnProperty(\"node\"))\n object.node = $root.Trace.QueryPlanNode.toObject(message.node, options);\n return object;\n };\n\n /**\n * Converts this FlattenNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FlattenNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FlattenNode;\n })();\n\n QueryPlanNode.DeferNode = (function() {\n\n /**\n * Properties of a DeferNode.\n * @memberof Trace.QueryPlanNode\n * @interface IDeferNode\n * @property {Trace.QueryPlanNode.IDeferNodePrimary|null} [primary] DeferNode primary\n * @property {Array.<Trace.QueryPlanNode.IDeferredNode>|null} [deferred] DeferNode deferred\n */\n\n /**\n * Constructs a new DeferNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a DeferNode.\n * @implements IDeferNode\n * @constructor\n * @param {Trace.QueryPlanNode.IDeferNode=} [properties] Properties to set\n */\n function DeferNode(properties) {\n this.deferred = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DeferNode primary.\n * @member {Trace.QueryPlanNode.IDeferNodePrimary|null|undefined} primary\n * @memberof Trace.QueryPlanNode.DeferNode\n * @instance\n */\n DeferNode.prototype.primary = null;\n\n /**\n * DeferNode deferred.\n * @member {Array.<Trace.QueryPlanNode.IDeferredNode>} deferred\n * @memberof Trace.QueryPlanNode.DeferNode\n * @instance\n */\n DeferNode.prototype.deferred = $util.emptyArray;\n\n /**\n * Creates a new DeferNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.DeferNode} DeferNode instance\n */\n DeferNode.create = function create(properties) {\n return new DeferNode(properties);\n };\n\n /**\n * Encodes the specified DeferNode message. Does not implicitly {@link Trace.QueryPlanNode.DeferNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferNode} message DeferNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.primary != null && Object.hasOwnProperty.call(message, \"primary\"))\n $root.Trace.QueryPlanNode.DeferNodePrimary.encode(message.primary, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.deferred != null && message.deferred.length)\n for (let i = 0; i < message.deferred.length; ++i)\n $root.Trace.QueryPlanNode.DeferredNode.encode(message.deferred[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified DeferNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.DeferNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferNode} message DeferNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DeferNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.DeferNode} DeferNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.DeferNode();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.primary = $root.Trace.QueryPlanNode.DeferNodePrimary.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.deferred && message.deferred.length))\n message.deferred = [];\n message.deferred.push($root.Trace.QueryPlanNode.DeferredNode.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DeferNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.DeferNode} DeferNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DeferNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DeferNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.primary != null && message.hasOwnProperty(\"primary\")) {\n let error = $root.Trace.QueryPlanNode.DeferNodePrimary.verify(message.primary);\n if (error)\n return \"primary.\" + error;\n }\n if (message.deferred != null && message.hasOwnProperty(\"deferred\")) {\n if (!Array.isArray(message.deferred))\n return \"deferred: array expected\";\n for (let i = 0; i < message.deferred.length; ++i) {\n let error = $root.Trace.QueryPlanNode.DeferredNode.verify(message.deferred[i]);\n if (error)\n return \"deferred.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a DeferNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Trace.QueryPlanNode.DeferNode} message DeferNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DeferNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults)\n object.deferred = [];\n if (options.defaults)\n object.primary = null;\n if (message.primary != null && message.hasOwnProperty(\"primary\"))\n object.primary = $root.Trace.QueryPlanNode.DeferNodePrimary.toObject(message.primary, options);\n if (message.deferred && message.deferred.length) {\n object.deferred = [];\n for (let j = 0; j < message.deferred.length; ++j)\n object.deferred[j] = $root.Trace.QueryPlanNode.DeferredNode.toObject(message.deferred[j], options);\n }\n return object;\n };\n\n /**\n * Converts this DeferNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.DeferNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DeferNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DeferNode;\n })();\n\n QueryPlanNode.ConditionNode = (function() {\n\n /**\n * Properties of a ConditionNode.\n * @memberof Trace.QueryPlanNode\n * @interface IConditionNode\n * @property {string|null} [condition] ConditionNode condition\n * @property {Trace.IQueryPlanNode|null} [ifClause] ConditionNode ifClause\n * @property {Trace.IQueryPlanNode|null} [elseClause] ConditionNode elseClause\n */\n\n /**\n * Constructs a new ConditionNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a ConditionNode.\n * @implements IConditionNode\n * @constructor\n * @param {Trace.QueryPlanNode.IConditionNode=} [properties] Properties to set\n */\n function ConditionNode(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ConditionNode condition.\n * @member {string} condition\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @instance\n */\n ConditionNode.prototype.condition = \"\";\n\n /**\n * ConditionNode ifClause.\n * @member {Trace.IQueryPlanNode|null|undefined} ifClause\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @instance\n */\n ConditionNode.prototype.ifClause = null;\n\n /**\n * ConditionNode elseClause.\n * @member {Trace.IQueryPlanNode|null|undefined} elseClause\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @instance\n */\n ConditionNode.prototype.elseClause = null;\n\n /**\n * Creates a new ConditionNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Trace.QueryPlanNode.IConditionNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.ConditionNode} ConditionNode instance\n */\n ConditionNode.create = function create(properties) {\n return new ConditionNode(properties);\n };\n\n /**\n * Encodes the specified ConditionNode message. Does not implicitly {@link Trace.QueryPlanNode.ConditionNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Trace.QueryPlanNode.IConditionNode} message ConditionNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ConditionNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.condition != null && Object.hasOwnProperty.call(message, \"condition\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.condition);\n if (message.ifClause != null && Object.hasOwnProperty.call(message, \"ifClause\"))\n $root.Trace.QueryPlanNode.encode(message.ifClause, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.elseClause != null && Object.hasOwnProperty.call(message, \"elseClause\"))\n $root.Trace.QueryPlanNode.encode(message.elseClause, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ConditionNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.ConditionNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Trace.QueryPlanNode.IConditionNode} message ConditionNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ConditionNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ConditionNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.ConditionNode} ConditionNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ConditionNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.ConditionNode();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.condition = reader.string();\n break;\n case 2:\n message.ifClause = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n case 3:\n message.elseClause = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ConditionNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.ConditionNode} ConditionNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ConditionNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ConditionNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ConditionNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.condition != null && message.hasOwnProperty(\"condition\"))\n if (!$util.isString(message.condition))\n return \"condition: string expected\";\n if (message.ifClause != null && message.hasOwnProperty(\"ifClause\")) {\n let error = $root.Trace.QueryPlanNode.verify(message.ifClause);\n if (error)\n return \"ifClause.\" + error;\n }\n if (message.elseClause != null && message.hasOwnProperty(\"elseClause\")) {\n let error = $root.Trace.QueryPlanNode.verify(message.elseClause);\n if (error)\n return \"elseClause.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ConditionNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Trace.QueryPlanNode.ConditionNode} message ConditionNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ConditionNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.condition = \"\";\n object.ifClause = null;\n object.elseClause = null;\n }\n if (message.condition != null && message.hasOwnProperty(\"condition\"))\n object.condition = message.condition;\n if (message.ifClause != null && message.hasOwnProperty(\"ifClause\"))\n object.ifClause = $root.Trace.QueryPlanNode.toObject(message.ifClause, options);\n if (message.elseClause != null && message.hasOwnProperty(\"elseClause\"))\n object.elseClause = $root.Trace.QueryPlanNode.toObject(message.elseClause, options);\n return object;\n };\n\n /**\n * Converts this ConditionNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ConditionNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ConditionNode;\n })();\n\n QueryPlanNode.DeferNodePrimary = (function() {\n\n /**\n * Properties of a DeferNodePrimary.\n * @memberof Trace.QueryPlanNode\n * @interface IDeferNodePrimary\n * @property {Trace.IQueryPlanNode|null} [node] DeferNodePrimary node\n */\n\n /**\n * Constructs a new DeferNodePrimary.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a DeferNodePrimary.\n * @implements IDeferNodePrimary\n * @constructor\n * @param {Trace.QueryPlanNode.IDeferNodePrimary=} [properties] Properties to set\n */\n function DeferNodePrimary(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DeferNodePrimary node.\n * @member {Trace.IQueryPlanNode|null|undefined} node\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @instance\n */\n DeferNodePrimary.prototype.node = null;\n\n /**\n * Creates a new DeferNodePrimary instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Trace.QueryPlanNode.IDeferNodePrimary=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.DeferNodePrimary} DeferNodePrimary instance\n */\n DeferNodePrimary.create = function create(properties) {\n return new DeferNodePrimary(properties);\n };\n\n /**\n * Encodes the specified DeferNodePrimary message. Does not implicitly {@link Trace.QueryPlanNode.DeferNodePrimary.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Trace.QueryPlanNode.IDeferNodePrimary} message DeferNodePrimary message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferNodePrimary.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.node != null && Object.hasOwnProperty.call(message, \"node\"))\n $root.Trace.QueryPlanNode.encode(message.node, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified DeferNodePrimary message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.DeferNodePrimary.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Trace.QueryPlanNode.IDeferNodePrimary} message DeferNodePrimary message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferNodePrimary.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DeferNodePrimary message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.DeferNodePrimary} DeferNodePrimary\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferNodePrimary.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.DeferNodePrimary();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.node = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DeferNodePrimary message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.DeferNodePrimary} DeferNodePrimary\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferNodePrimary.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DeferNodePrimary message.\n * @function verify\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DeferNodePrimary.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.node != null && message.hasOwnProperty(\"node\")) {\n let error = $root.Trace.QueryPlanNode.verify(message.node);\n if (error)\n return \"node.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a DeferNodePrimary message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Trace.QueryPlanNode.DeferNodePrimary} message DeferNodePrimary\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DeferNodePrimary.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults)\n object.node = null;\n if (message.node != null && message.hasOwnProperty(\"node\"))\n object.node = $root.Trace.QueryPlanNode.toObject(message.node, options);\n return object;\n };\n\n /**\n * Converts this DeferNodePrimary to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DeferNodePrimary.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DeferNodePrimary;\n })();\n\n QueryPlanNode.DeferredNode = (function() {\n\n /**\n * Properties of a DeferredNode.\n * @memberof Trace.QueryPlanNode\n * @interface IDeferredNode\n * @property {Array.<Trace.QueryPlanNode.IDeferredNodeDepends>|null} [depends] DeferredNode depends\n * @property {string|null} [label] DeferredNode label\n * @property {Array.<Trace.QueryPlanNode.IResponsePathElement>|null} [path] DeferredNode path\n * @property {Trace.IQueryPlanNode|null} [node] DeferredNode node\n */\n\n /**\n * Constructs a new DeferredNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a DeferredNode.\n * @implements IDeferredNode\n * @constructor\n * @param {Trace.QueryPlanNode.IDeferredNode=} [properties] Properties to set\n */\n function DeferredNode(properties) {\n this.depends = [];\n this.path = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DeferredNode depends.\n * @member {Array.<Trace.QueryPlanNode.IDeferredNodeDepends>} depends\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n */\n DeferredNode.prototype.depends = $util.emptyArray;\n\n /**\n * DeferredNode label.\n * @member {string} label\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n */\n DeferredNode.prototype.label = \"\";\n\n /**\n * DeferredNode path.\n * @member {Array.<Trace.QueryPlanNode.IResponsePathElement>} path\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n */\n DeferredNode.prototype.path = $util.emptyArray;\n\n /**\n * DeferredNode node.\n * @member {Trace.IQueryPlanNode|null|undefined} node\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n */\n DeferredNode.prototype.node = null;\n\n /**\n * Creates a new DeferredNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.DeferredNode} DeferredNode instance\n */\n DeferredNode.create = function create(properties) {\n return new DeferredNode(properties);\n };\n\n /**\n * Encodes the specified DeferredNode message. Does not implicitly {@link Trace.QueryPlanNode.DeferredNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNode} message DeferredNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferredNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.depends != null && message.depends.length)\n for (let i = 0; i < message.depends.length; ++i)\n $root.Trace.QueryPlanNode.DeferredNodeDepends.encode(message.depends[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.label != null && Object.hasOwnProperty.call(message, \"label\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.label);\n if (message.path != null && message.path.length)\n for (let i = 0; i < message.path.length; ++i)\n $root.Trace.QueryPlanNode.ResponsePathElement.encode(message.path[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.node != null && Object.hasOwnProperty.call(message, \"node\"))\n $root.Trace.QueryPlanNode.encode(message.node, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified DeferredNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.DeferredNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNode} message DeferredNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferredNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DeferredNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.DeferredNode} DeferredNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferredNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.DeferredNode();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.depends && message.depends.length))\n message.depends = [];\n message.depends.push($root.Trace.QueryPlanNode.DeferredNodeDepends.decode(reader, reader.uint32()));\n break;\n case 2:\n message.label = reader.string();\n break;\n case 3:\n if (!(message.path && message.path.length))\n message.path = [];\n message.path.push($root.Trace.QueryPlanNode.ResponsePathElement.decode(reader, reader.uint32()));\n break;\n case 4:\n message.node = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DeferredNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.DeferredNode} DeferredNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferredNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DeferredNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DeferredNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.depends != null && message.hasOwnProperty(\"depends\")) {\n if (!Array.isArray(message.depends))\n return \"depends: array expected\";\n for (let i = 0; i < message.depends.length; ++i) {\n let error = $root.Trace.QueryPlanNode.DeferredNodeDepends.verify(message.depends[i]);\n if (error)\n return \"depends.\" + error;\n }\n }\n if (message.label != null && message.hasOwnProperty(\"label\"))\n if (!$util.isString(message.label))\n return \"label: string expected\";\n if (message.path != null && message.hasOwnProperty(\"path\")) {\n if (!Array.isArray(message.path))\n return \"path: array expected\";\n for (let i = 0; i < message.path.length; ++i) {\n let error = $root.Trace.QueryPlanNode.ResponsePathElement.verify(message.path[i]);\n if (error)\n return \"path.\" + error;\n }\n }\n if (message.node != null && message.hasOwnProperty(\"node\")) {\n let error = $root.Trace.QueryPlanNode.verify(message.node);\n if (error)\n return \"node.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a DeferredNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Trace.QueryPlanNode.DeferredNode} message DeferredNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DeferredNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults) {\n object.depends = [];\n object.path = [];\n }\n if (options.defaults) {\n object.label = \"\";\n object.node = null;\n }\n if (message.depends && message.depends.length) {\n object.depends = [];\n for (let j = 0; j < message.depends.length; ++j)\n object.depends[j] = $root.Trace.QueryPlanNode.DeferredNodeDepends.toObject(message.depends[j], options);\n }\n if (message.label != null && message.hasOwnProperty(\"label\"))\n object.label = message.label;\n if (message.path && message.path.length) {\n object.path = [];\n for (let j = 0; j < message.path.length; ++j)\n object.path[j] = $root.Trace.QueryPlanNode.ResponsePathElement.toObject(message.path[j], options);\n }\n if (message.node != null && message.hasOwnProperty(\"node\"))\n object.node = $root.Trace.QueryPlanNode.toObject(message.node, options);\n return object;\n };\n\n /**\n * Converts this DeferredNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DeferredNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DeferredNode;\n })();\n\n QueryPlanNode.DeferredNodeDepends = (function() {\n\n /**\n * Properties of a DeferredNodeDepends.\n * @memberof Trace.QueryPlanNode\n * @interface IDeferredNodeDepends\n * @property {string|null} [id] DeferredNodeDepends id\n * @property {string|null} [deferLabel] DeferredNodeDepends deferLabel\n */\n\n /**\n * Constructs a new DeferredNodeDepends.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a DeferredNodeDepends.\n * @implements IDeferredNodeDepends\n * @constructor\n * @param {Trace.QueryPlanNode.IDeferredNodeDepends=} [properties] Properties to set\n */\n function DeferredNodeDepends(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DeferredNodeDepends id.\n * @member {string} id\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @instance\n */\n DeferredNodeDepends.prototype.id = \"\";\n\n /**\n * DeferredNodeDepends deferLabel.\n * @member {string} deferLabel\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @instance\n */\n DeferredNodeDepends.prototype.deferLabel = \"\";\n\n /**\n * Creates a new DeferredNodeDepends instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNodeDepends=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.DeferredNodeDepends} DeferredNodeDepends instance\n */\n DeferredNodeDepends.create = function create(properties) {\n return new DeferredNodeDepends(properties);\n };\n\n /**\n * Encodes the specified DeferredNodeDepends message. Does not implicitly {@link Trace.QueryPlanNode.DeferredNodeDepends.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNodeDepends} message DeferredNodeDepends message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferredNodeDepends.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.id != null && Object.hasOwnProperty.call(message, \"id\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.id);\n if (message.deferLabel != null && Object.hasOwnProperty.call(message, \"deferLabel\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.deferLabel);\n return writer;\n };\n\n /**\n * Encodes the specified DeferredNodeDepends message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.DeferredNodeDepends.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNodeDepends} message DeferredNodeDepends message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferredNodeDepends.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DeferredNodeDepends message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.DeferredNodeDepends} DeferredNodeDepends\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferredNodeDepends.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.DeferredNodeDepends();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.deferLabel = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DeferredNodeDepends message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.DeferredNodeDepends} DeferredNodeDepends\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferredNodeDepends.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DeferredNodeDepends message.\n * @function verify\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DeferredNodeDepends.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (!$util.isString(message.id))\n return \"id: string expected\";\n if (message.deferLabel != null && message.hasOwnProperty(\"deferLabel\"))\n if (!$util.isString(message.deferLabel))\n return \"deferLabel: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a DeferredNodeDepends message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Trace.QueryPlanNode.DeferredNodeDepends} message DeferredNodeDepends\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DeferredNodeDepends.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.id = \"\";\n object.deferLabel = \"\";\n }\n if (message.id != null && message.hasOwnProperty(\"id\"))\n object.id = message.id;\n if (message.deferLabel != null && message.hasOwnProperty(\"deferLabel\"))\n object.deferLabel = message.deferLabel;\n return object;\n };\n\n /**\n * Converts this DeferredNodeDepends to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DeferredNodeDepends.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DeferredNodeDepends;\n })();\n\n QueryPlanNode.ResponsePathElement = (function() {\n\n /**\n * Properties of a ResponsePathElement.\n * @memberof Trace.QueryPlanNode\n * @interface IResponsePathElement\n * @property {string|null} [fieldName] ResponsePathElement fieldName\n * @property {number|null} [index] ResponsePathElement index\n */\n\n /**\n * Constructs a new ResponsePathElement.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a ResponsePathElement.\n * @implements IResponsePathElement\n * @constructor\n * @param {Trace.QueryPlanNode.IResponsePathElement=} [properties] Properties to set\n */\n function ResponsePathElement(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ResponsePathElement fieldName.\n * @member {string} fieldName\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @instance\n */\n ResponsePathElement.prototype.fieldName = \"\";\n\n /**\n * ResponsePathElement index.\n * @member {number} index\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @instance\n */\n ResponsePathElement.prototype.index = 0;\n\n // OneOf field names bound to virtual getters and setters\n let $oneOfFields;\n\n /**\n * ResponsePathElement id.\n * @member {\"fieldName\"|\"index\"|undefined} id\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @instance\n */\n Object.defineProperty(ResponsePathElement.prototype, \"id\", {\n get: $util.oneOfGetter($oneOfFields = [\"fieldName\", \"index\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new ResponsePathElement instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Trace.QueryPlanNode.IResponsePathElement=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.ResponsePathElement} ResponsePathElement instance\n */\n ResponsePathElement.create = function create(properties) {\n return new ResponsePathElement(properties);\n };\n\n /**\n * Encodes the specified ResponsePathElement message. Does not implicitly {@link Trace.QueryPlanNode.ResponsePathElement.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Trace.QueryPlanNode.IResponsePathElement} message ResponsePathElement message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ResponsePathElement.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.fieldName != null && Object.hasOwnProperty.call(message, \"fieldName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName);\n if (message.index != null && Object.hasOwnProperty.call(message, \"index\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.index);\n return writer;\n };\n\n /**\n * Encodes the specified ResponsePathElement message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.ResponsePathElement.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Trace.QueryPlanNode.IResponsePathElement} message ResponsePathElement message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ResponsePathElement.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ResponsePathElement message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.ResponsePathElement} ResponsePathElement\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ResponsePathElement.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.ResponsePathElement();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fieldName = reader.string();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ResponsePathElement message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.ResponsePathElement} ResponsePathElement\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ResponsePathElement.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ResponsePathElement message.\n * @function verify\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ResponsePathElement.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n let properties = {};\n if (message.fieldName != null && message.hasOwnProperty(\"fieldName\")) {\n properties.id = 1;\n if (!$util.isString(message.fieldName))\n return \"fieldName: string expected\";\n }\n if (message.index != null && message.hasOwnProperty(\"index\")) {\n if (properties.id === 1)\n return \"id: multiple values\";\n properties.id = 1;\n if (!$util.isInteger(message.index))\n return \"index: integer expected\";\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ResponsePathElement message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Trace.QueryPlanNode.ResponsePathElement} message ResponsePathElement\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ResponsePathElement.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (message.fieldName != null && message.hasOwnProperty(\"fieldName\")) {\n object.fieldName = message.fieldName;\n if (options.oneofs)\n object.id = \"fieldName\";\n }\n if (message.index != null && message.hasOwnProperty(\"index\")) {\n object.index = message.index;\n if (options.oneofs)\n object.id = \"index\";\n }\n return object;\n };\n\n /**\n * Converts this ResponsePathElement to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ResponsePathElement.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ResponsePathElement;\n })();\n\n return QueryPlanNode;\n })();\n\n return Trace;\n})();\n\nexport const ReportHeader = $root.ReportHeader = (() => {\n\n /**\n * Properties of a ReportHeader.\n * @exports IReportHeader\n * @interface IReportHeader\n * @property {string|null} [graphRef] ReportHeader graphRef\n * @property {string|null} [hostname] ReportHeader hostname\n * @property {string|null} [agentVersion] ReportHeader agentVersion\n * @property {string|null} [serviceVersion] ReportHeader serviceVersion\n * @property {string|null} [runtimeVersion] ReportHeader runtimeVersion\n * @property {string|null} [uname] ReportHeader uname\n * @property {string|null} [executableSchemaId] ReportHeader executableSchemaId\n */\n\n /**\n * Constructs a new ReportHeader.\n * @exports ReportHeader\n * @classdesc Represents a ReportHeader.\n * @implements IReportHeader\n * @constructor\n * @param {IReportHeader=} [properties] Properties to set\n */\n function ReportHeader(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ReportHeader graphRef.\n * @member {string} graphRef\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.graphRef = \"\";\n\n /**\n * ReportHeader hostname.\n * @member {string} hostname\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.hostname = \"\";\n\n /**\n * ReportHeader agentVersion.\n * @member {string} agentVersion\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.agentVersion = \"\";\n\n /**\n * ReportHeader serviceVersion.\n * @member {string} serviceVersion\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.serviceVersion = \"\";\n\n /**\n * ReportHeader runtimeVersion.\n * @member {string} runtimeVersion\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.runtimeVersion = \"\";\n\n /**\n * ReportHeader uname.\n * @member {string} uname\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.uname = \"\";\n\n /**\n * ReportHeader executableSchemaId.\n * @member {string} executableSchemaId\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.executableSchemaId = \"\";\n\n /**\n * Creates a new ReportHeader instance using the specified properties.\n * @function create\n * @memberof ReportHeader\n * @static\n * @param {IReportHeader=} [properties] Properties to set\n * @returns {ReportHeader} ReportHeader instance\n */\n ReportHeader.create = function create(properties) {\n return new ReportHeader(properties);\n };\n\n /**\n * Encodes the specified ReportHeader message. Does not implicitly {@link ReportHeader.verify|verify} messages.\n * @function encode\n * @memberof ReportHeader\n * @static\n * @param {IReportHeader} message ReportHeader message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReportHeader.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hostname != null && Object.hasOwnProperty.call(message, \"hostname\"))\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.hostname);\n if (message.agentVersion != null && Object.hasOwnProperty.call(message, \"agentVersion\"))\n writer.uint32(/* id 6, wireType 2 =*/50).string(message.agentVersion);\n if (message.serviceVersion != null && Object.hasOwnProperty.call(message, \"serviceVersion\"))\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.serviceVersion);\n if (message.runtimeVersion != null && Object.hasOwnProperty.call(message, \"runtimeVersion\"))\n writer.uint32(/* id 8, wireType 2 =*/66).string(message.runtimeVersion);\n if (message.uname != null && Object.hasOwnProperty.call(message, \"uname\"))\n writer.uint32(/* id 9, wireType 2 =*/74).string(message.uname);\n if (message.executableSchemaId != null && Object.hasOwnProperty.call(message, \"executableSchemaId\"))\n writer.uint32(/* id 11, wireType 2 =*/90).string(message.executableSchemaId);\n if (message.graphRef != null && Object.hasOwnProperty.call(message, \"graphRef\"))\n writer.uint32(/* id 12, wireType 2 =*/98).string(message.graphRef);\n return writer;\n };\n\n /**\n * Encodes the specified ReportHeader message, length delimited. Does not implicitly {@link ReportHeader.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ReportHeader\n * @static\n * @param {IReportHeader} message ReportHeader message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReportHeader.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ReportHeader message from the specified reader or buffer.\n * @function decode\n * @memberof ReportHeader\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ReportHeader} ReportHeader\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReportHeader.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.ReportHeader();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 12:\n message.graphRef = reader.string();\n break;\n case 5:\n message.hostname = reader.string();\n break;\n case 6:\n message.agentVersion = reader.string();\n break;\n case 7:\n message.serviceVersion = reader.string();\n break;\n case 8:\n message.runtimeVersion = reader.string();\n break;\n case 9:\n message.uname = reader.string();\n break;\n case 11:\n message.executableSchemaId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ReportHeader message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ReportHeader\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ReportHeader} ReportHeader\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReportHeader.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ReportHeader message.\n * @function verify\n * @memberof ReportHeader\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ReportHeader.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.graphRef != null && message.hasOwnProperty(\"graphRef\"))\n if (!$util.isString(message.graphRef))\n return \"graphRef: string expected\";\n if (message.hostname != null && message.hasOwnProperty(\"hostname\"))\n if (!$util.isString(message.hostname))\n return \"hostname: string expected\";\n if (message.agentVersion != null && message.hasOwnProperty(\"agentVersion\"))\n if (!$util.isString(message.agentVersion))\n return \"agentVersion: string expected\";\n if (message.serviceVersion != null && message.hasOwnProperty(\"serviceVersion\"))\n if (!$util.isString(message.serviceVersion))\n return \"serviceVersion: string expected\";\n if (message.runtimeVersion != null && message.hasOwnProperty(\"runtimeVersion\"))\n if (!$util.isString(message.runtimeVersion))\n return \"runtimeVersion: string expected\";\n if (message.uname != null && message.hasOwnProperty(\"uname\"))\n if (!$util.isString(message.uname))\n return \"uname: string expected\";\n if (message.executableSchemaId != null && message.hasOwnProperty(\"executableSchemaId\"))\n if (!$util.isString(message.executableSchemaId))\n return \"executableSchemaId: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a ReportHeader message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ReportHeader\n * @static\n * @param {ReportHeader} message ReportHeader\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ReportHeader.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.hostname = \"\";\n object.agentVersion = \"\";\n object.serviceVersion = \"\";\n object.runtimeVersion = \"\";\n object.uname = \"\";\n object.executableSchemaId = \"\";\n object.graphRef = \"\";\n }\n if (message.hostname != null && message.hasOwnProperty(\"hostname\"))\n object.hostname = message.hostname;\n if (message.agentVersion != null && message.hasOwnProperty(\"agentVersion\"))\n object.agentVersion = message.agentVersion;\n if (message.serviceVersion != null && message.hasOwnProperty(\"serviceVersion\"))\n object.serviceVersion = message.serviceVersion;\n if (message.runtimeVersion != null && message.hasOwnProperty(\"runtimeVersion\"))\n object.runtimeVersion = message.runtimeVersion;\n if (message.uname != null && message.hasOwnProperty(\"uname\"))\n object.uname = message.uname;\n if (message.executableSchemaId != null && message.hasOwnProperty(\"executableSchemaId\"))\n object.executableSchemaId = message.executableSchemaId;\n if (message.graphRef != null && message.hasOwnProperty(\"graphRef\"))\n object.graphRef = message.graphRef;\n return object;\n };\n\n /**\n * Converts this ReportHeader to JSON.\n * @function toJSON\n * @memberof ReportHeader\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ReportHeader.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ReportHeader;\n})();\n\nexport const PathErrorStats = $root.PathErrorStats = (() => {\n\n /**\n * Properties of a PathErrorStats.\n * @exports IPathErrorStats\n * @interface IPathErrorStats\n * @property {Object.<string,IPathErrorStats>|null} [children] PathErrorStats children\n * @property {number|null} [errorsCount] PathErrorStats errorsCount\n * @property {number|null} [requestsWithErrorsCount] PathErrorStats requestsWithErrorsCount\n */\n\n /**\n * Constructs a new PathErrorStats.\n * @exports PathErrorStats\n * @classdesc Represents a PathErrorStats.\n * @implements IPathErrorStats\n * @constructor\n * @param {IPathErrorStats=} [properties] Properties to set\n */\n function PathErrorStats(properties) {\n this.children = {};\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * PathErrorStats children.\n * @member {Object.<string,IPathErrorStats>} children\n * @memberof PathErrorStats\n * @instance\n */\n PathErrorStats.prototype.children = $util.emptyObject;\n\n /**\n * PathErrorStats errorsCount.\n * @member {number} errorsCount\n * @memberof PathErrorStats\n * @instance\n */\n PathErrorStats.prototype.errorsCount = 0;\n\n /**\n * PathErrorStats requestsWithErrorsCount.\n * @member {number} requestsWithErrorsCount\n * @memberof PathErrorStats\n * @instance\n */\n PathErrorStats.prototype.requestsWithErrorsCount = 0;\n\n /**\n * Creates a new PathErrorStats instance using the specified properties.\n * @function create\n * @memberof PathErrorStats\n * @static\n * @param {IPathErrorStats=} [properties] Properties to set\n * @returns {PathErrorStats} PathErrorStats instance\n */\n PathErrorStats.create = function create(properties) {\n return new PathErrorStats(properties);\n };\n\n /**\n * Encodes the specified PathErrorStats message. Does not implicitly {@link PathErrorStats.verify|verify} messages.\n * @function encode\n * @memberof PathErrorStats\n * @static\n * @param {IPathErrorStats} message PathErrorStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PathErrorStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.children != null && Object.hasOwnProperty.call(message, \"children\"))\n for (let keys = Object.keys(message.children), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.PathErrorStats.encode(message.children[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n if (message.errorsCount != null && Object.hasOwnProperty.call(message, \"errorsCount\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.errorsCount);\n if (message.requestsWithErrorsCount != null && Object.hasOwnProperty.call(message, \"requestsWithErrorsCount\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.requestsWithErrorsCount);\n return writer;\n };\n\n /**\n * Encodes the specified PathErrorStats message, length delimited. Does not implicitly {@link PathErrorStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof PathErrorStats\n * @static\n * @param {IPathErrorStats} message PathErrorStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PathErrorStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a PathErrorStats message from the specified reader or buffer.\n * @function decode\n * @memberof PathErrorStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {PathErrorStats} PathErrorStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PathErrorStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.PathErrorStats(), key;\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n reader.skip().pos++;\n if (message.children === $util.emptyObject)\n message.children = {};\n key = reader.string();\n reader.pos++;\n message.children[key] = $root.PathErrorStats.decode(reader, reader.uint32());\n break;\n case 4:\n message.errorsCount = reader.uint64();\n break;\n case 5:\n message.requestsWithErrorsCount = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a PathErrorStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof PathErrorStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {PathErrorStats} PathErrorStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PathErrorStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a PathErrorStats message.\n * @function verify\n * @memberof PathErrorStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n PathErrorStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.children != null && message.hasOwnProperty(\"children\")) {\n if (!$util.isObject(message.children))\n return \"children: object expected\";\n let key = Object.keys(message.children);\n for (let i = 0; i < key.length; ++i) {\n let error = $root.PathErrorStats.verify(message.children[key[i]]);\n if (error)\n return \"children.\" + error;\n }\n }\n if (message.errorsCount != null && message.hasOwnProperty(\"errorsCount\"))\n if (!$util.isInteger(message.errorsCount) && !(message.errorsCount && $util.isInteger(message.errorsCount.low) && $util.isInteger(message.errorsCount.high)))\n return \"errorsCount: integer|Long expected\";\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (!$util.isInteger(message.requestsWithErrorsCount) && !(message.requestsWithErrorsCount && $util.isInteger(message.requestsWithErrorsCount.low) && $util.isInteger(message.requestsWithErrorsCount.high)))\n return \"requestsWithErrorsCount: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a PathErrorStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof PathErrorStats\n * @static\n * @param {PathErrorStats} message PathErrorStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n PathErrorStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.objects || options.defaults)\n object.children = {};\n if (options.defaults) {\n object.errorsCount = 0;\n object.requestsWithErrorsCount = 0;\n }\n let keys2;\n if (message.children && (keys2 = Object.keys(message.children)).length) {\n object.children = {};\n for (let j = 0; j < keys2.length; ++j)\n object.children[keys2[j]] = $root.PathErrorStats.toObject(message.children[keys2[j]], options);\n }\n if (message.errorsCount != null && message.hasOwnProperty(\"errorsCount\"))\n if (typeof message.errorsCount === \"number\")\n object.errorsCount = options.longs === String ? String(message.errorsCount) : message.errorsCount;\n else\n object.errorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.errorsCount) : options.longs === Number ? new $util.LongBits(message.errorsCount.low >>> 0, message.errorsCount.high >>> 0).toNumber(true) : message.errorsCount;\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (typeof message.requestsWithErrorsCount === \"number\")\n object.requestsWithErrorsCount = options.longs === String ? String(message.requestsWithErrorsCount) : message.requestsWithErrorsCount;\n else\n object.requestsWithErrorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.requestsWithErrorsCount) : options.longs === Number ? new $util.LongBits(message.requestsWithErrorsCount.low >>> 0, message.requestsWithErrorsCount.high >>> 0).toNumber(true) : message.requestsWithErrorsCount;\n return object;\n };\n\n /**\n * Converts this PathErrorStats to JSON.\n * @function toJSON\n * @memberof PathErrorStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n PathErrorStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return PathErrorStats;\n})();\n\nexport const QueryLatencyStats = $root.QueryLatencyStats = (() => {\n\n /**\n * Properties of a QueryLatencyStats.\n * @exports IQueryLatencyStats\n * @interface IQueryLatencyStats\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [latencyCount] QueryLatencyStats latencyCount\n * @property {number|null} [requestCount] QueryLatencyStats requestCount\n * @property {number|null} [cacheHits] QueryLatencyStats cacheHits\n * @property {number|null} [persistedQueryHits] QueryLatencyStats persistedQueryHits\n * @property {number|null} [persistedQueryMisses] QueryLatencyStats persistedQueryMisses\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [cacheLatencyCount] QueryLatencyStats cacheLatencyCount\n * @property {IPathErrorStats|null} [rootErrorStats] QueryLatencyStats rootErrorStats\n * @property {number|null} [requestsWithErrorsCount] QueryLatencyStats requestsWithErrorsCount\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [publicCacheTtlCount] QueryLatencyStats publicCacheTtlCount\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [privateCacheTtlCount] QueryLatencyStats privateCacheTtlCount\n * @property {number|null} [registeredOperationCount] QueryLatencyStats registeredOperationCount\n * @property {number|null} [forbiddenOperationCount] QueryLatencyStats forbiddenOperationCount\n * @property {number|null} [requestsWithoutFieldInstrumentation] QueryLatencyStats requestsWithoutFieldInstrumentation\n */\n\n /**\n * Constructs a new QueryLatencyStats.\n * @exports QueryLatencyStats\n * @classdesc Represents a QueryLatencyStats.\n * @implements IQueryLatencyStats\n * @constructor\n * @param {IQueryLatencyStats=} [properties] Properties to set\n */\n function QueryLatencyStats(properties) {\n this.latencyCount = [];\n this.cacheLatencyCount = [];\n this.publicCacheTtlCount = [];\n this.privateCacheTtlCount = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * QueryLatencyStats latencyCount.\n * @member {Array.<number>} latencyCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.latencyCount = $util.emptyArray;\n\n /**\n * QueryLatencyStats requestCount.\n * @member {number} requestCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.requestCount = 0;\n\n /**\n * QueryLatencyStats cacheHits.\n * @member {number} cacheHits\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.cacheHits = 0;\n\n /**\n * QueryLatencyStats persistedQueryHits.\n * @member {number} persistedQueryHits\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.persistedQueryHits = 0;\n\n /**\n * QueryLatencyStats persistedQueryMisses.\n * @member {number} persistedQueryMisses\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.persistedQueryMisses = 0;\n\n /**\n * QueryLatencyStats cacheLatencyCount.\n * @member {Array.<number>} cacheLatencyCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.cacheLatencyCount = $util.emptyArray;\n\n /**\n * QueryLatencyStats rootErrorStats.\n * @member {IPathErrorStats|null|undefined} rootErrorStats\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.rootErrorStats = null;\n\n /**\n * QueryLatencyStats requestsWithErrorsCount.\n * @member {number} requestsWithErrorsCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.requestsWithErrorsCount = 0;\n\n /**\n * QueryLatencyStats publicCacheTtlCount.\n * @member {Array.<number>} publicCacheTtlCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.publicCacheTtlCount = $util.emptyArray;\n\n /**\n * QueryLatencyStats privateCacheTtlCount.\n * @member {Array.<number>} privateCacheTtlCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.privateCacheTtlCount = $util.emptyArray;\n\n /**\n * QueryLatencyStats registeredOperationCount.\n * @member {number} registeredOperationCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.registeredOperationCount = 0;\n\n /**\n * QueryLatencyStats forbiddenOperationCount.\n * @member {number} forbiddenOperationCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.forbiddenOperationCount = 0;\n\n /**\n * QueryLatencyStats requestsWithoutFieldInstrumentation.\n * @member {number} requestsWithoutFieldInstrumentation\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.requestsWithoutFieldInstrumentation = 0;\n\n /**\n * Creates a new QueryLatencyStats instance using the specified properties.\n * @function create\n * @memberof QueryLatencyStats\n * @static\n * @param {IQueryLatencyStats=} [properties] Properties to set\n * @returns {QueryLatencyStats} QueryLatencyStats instance\n */\n QueryLatencyStats.create = function create(properties) {\n return new QueryLatencyStats(properties);\n };\n\n /**\n * Encodes the specified QueryLatencyStats message. Does not implicitly {@link QueryLatencyStats.verify|verify} messages.\n * @function encode\n * @memberof QueryLatencyStats\n * @static\n * @param {IQueryLatencyStats} message QueryLatencyStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryLatencyStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.requestCount != null && Object.hasOwnProperty.call(message, \"requestCount\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.requestCount);\n if (message.cacheHits != null && Object.hasOwnProperty.call(message, \"cacheHits\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.cacheHits);\n if (message.persistedQueryHits != null && Object.hasOwnProperty.call(message, \"persistedQueryHits\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.persistedQueryHits);\n if (message.persistedQueryMisses != null && Object.hasOwnProperty.call(message, \"persistedQueryMisses\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.persistedQueryMisses);\n if (message.rootErrorStats != null && Object.hasOwnProperty.call(message, \"rootErrorStats\"))\n $root.PathErrorStats.encode(message.rootErrorStats, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.requestsWithErrorsCount != null && Object.hasOwnProperty.call(message, \"requestsWithErrorsCount\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.requestsWithErrorsCount);\n if (message.registeredOperationCount != null && Object.hasOwnProperty.call(message, \"registeredOperationCount\"))\n writer.uint32(/* id 11, wireType 0 =*/88).uint64(message.registeredOperationCount);\n if (message.forbiddenOperationCount != null && Object.hasOwnProperty.call(message, \"forbiddenOperationCount\"))\n writer.uint32(/* id 12, wireType 0 =*/96).uint64(message.forbiddenOperationCount);\n let array13;\n if (message.latencyCount != null && message.latencyCount.toArray)\n array13 = message.latencyCount.toArray();\n else\n array13 = message.latencyCount;\n if (array13 != null && array13.length) {\n writer.uint32(/* id 13, wireType 2 =*/106).fork();\n for (let i = 0; i < array13.length; ++i)\n writer.sint64(array13[i]);\n writer.ldelim();\n }\n let array14;\n if (message.cacheLatencyCount != null && message.cacheLatencyCount.toArray)\n array14 = message.cacheLatencyCount.toArray();\n else\n array14 = message.cacheLatencyCount;\n if (array14 != null && array14.length) {\n writer.uint32(/* id 14, wireType 2 =*/114).fork();\n for (let i = 0; i < array14.length; ++i)\n writer.sint64(array14[i]);\n writer.ldelim();\n }\n let array15;\n if (message.publicCacheTtlCount != null && message.publicCacheTtlCount.toArray)\n array15 = message.publicCacheTtlCount.toArray();\n else\n array15 = message.publicCacheTtlCount;\n if (array15 != null && array15.length) {\n writer.uint32(/* id 15, wireType 2 =*/122).fork();\n for (let i = 0; i < array15.length; ++i)\n writer.sint64(array15[i]);\n writer.ldelim();\n }\n let array16;\n if (message.privateCacheTtlCount != null && message.privateCacheTtlCount.toArray)\n array16 = message.privateCacheTtlCount.toArray();\n else\n array16 = message.privateCacheTtlCount;\n if (array16 != null && array16.length) {\n writer.uint32(/* id 16, wireType 2 =*/130).fork();\n for (let i = 0; i < array16.length; ++i)\n writer.sint64(array16[i]);\n writer.ldelim();\n }\n if (message.requestsWithoutFieldInstrumentation != null && Object.hasOwnProperty.call(message, \"requestsWithoutFieldInstrumentation\"))\n writer.uint32(/* id 17, wireType 0 =*/136).uint64(message.requestsWithoutFieldInstrumentation);\n return writer;\n };\n\n /**\n * Encodes the specified QueryLatencyStats message, length delimited. Does not implicitly {@link QueryLatencyStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof QueryLatencyStats\n * @static\n * @param {IQueryLatencyStats} message QueryLatencyStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryLatencyStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryLatencyStats message from the specified reader or buffer.\n * @function decode\n * @memberof QueryLatencyStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {QueryLatencyStats} QueryLatencyStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryLatencyStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.QueryLatencyStats();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 13:\n if (!(message.latencyCount && message.latencyCount.length))\n message.latencyCount = [];\n if ((tag & 7) === 2) {\n let end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.latencyCount.push(reader.sint64());\n } else\n message.latencyCount.push(reader.sint64());\n break;\n case 2:\n message.requestCount = reader.uint64();\n break;\n case 3:\n message.cacheHits = reader.uint64();\n break;\n case 4:\n message.persistedQueryHits = reader.uint64();\n break;\n case 5:\n message.persistedQueryMisses = reader.uint64();\n break;\n case 14:\n if (!(message.cacheLatencyCount && message.cacheLatencyCount.length))\n message.cacheLatencyCount = [];\n if ((tag & 7) === 2) {\n let end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.cacheLatencyCount.push(reader.sint64());\n } else\n message.cacheLatencyCount.push(reader.sint64());\n break;\n case 7:\n message.rootErrorStats = $root.PathErrorStats.decode(reader, reader.uint32());\n break;\n case 8:\n message.requestsWithErrorsCount = reader.uint64();\n break;\n case 15:\n if (!(message.publicCacheTtlCount && message.publicCacheTtlCount.length))\n message.publicCacheTtlCount = [];\n if ((tag & 7) === 2) {\n let end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.publicCacheTtlCount.push(reader.sint64());\n } else\n message.publicCacheTtlCount.push(reader.sint64());\n break;\n case 16:\n if (!(message.privateCacheTtlCount && message.privateCacheTtlCount.length))\n message.privateCacheTtlCount = [];\n if ((tag & 7) === 2) {\n let end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.privateCacheTtlCount.push(reader.sint64());\n } else\n message.privateCacheTtlCount.push(reader.sint64());\n break;\n case 11:\n message.registeredOperationCount = reader.uint64();\n break;\n case 12:\n message.forbiddenOperationCount = reader.uint64();\n break;\n case 17:\n message.requestsWithoutFieldInstrumentation = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryLatencyStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof QueryLatencyStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {QueryLatencyStats} QueryLatencyStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryLatencyStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryLatencyStats message.\n * @function verify\n * @memberof QueryLatencyStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryLatencyStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.latencyCount != null && message.hasOwnProperty(\"latencyCount\")) {\n let array13;\n if (message.latencyCount != null && message.latencyCount.toArray)\n array13 = message.latencyCount.toArray();\n else\n array13 = message.latencyCount;\n if (!Array.isArray(array13))\n return \"latencyCount: array expected\";\n for (let i = 0; i < array13.length; ++i)\n if (!$util.isInteger(array13[i]) && !(array13[i] && $util.isInteger(array13[i].low) && $util.isInteger(array13[i].high)))\n return \"latencyCount: integer|Long[] expected\";\n }\n if (message.requestCount != null && message.hasOwnProperty(\"requestCount\"))\n if (!$util.isInteger(message.requestCount) && !(message.requestCount && $util.isInteger(message.requestCount.low) && $util.isInteger(message.requestCount.high)))\n return \"requestCount: integer|Long expected\";\n if (message.cacheHits != null && message.hasOwnProperty(\"cacheHits\"))\n if (!$util.isInteger(message.cacheHits) && !(message.cacheHits && $util.isInteger(message.cacheHits.low) && $util.isInteger(message.cacheHits.high)))\n return \"cacheHits: integer|Long expected\";\n if (message.persistedQueryHits != null && message.hasOwnProperty(\"persistedQueryHits\"))\n if (!$util.isInteger(message.persistedQueryHits) && !(message.persistedQueryHits && $util.isInteger(message.persistedQueryHits.low) && $util.isInteger(message.persistedQueryHits.high)))\n return \"persistedQueryHits: integer|Long expected\";\n if (message.persistedQueryMisses != null && message.hasOwnProperty(\"persistedQueryMisses\"))\n if (!$util.isInteger(message.persistedQueryMisses) && !(message.persistedQueryMisses && $util.isInteger(message.persistedQueryMisses.low) && $util.isInteger(message.persistedQueryMisses.high)))\n return \"persistedQueryMisses: integer|Long expected\";\n if (message.cacheLatencyCount != null && message.hasOwnProperty(\"cacheLatencyCount\")) {\n let array14;\n if (message.cacheLatencyCount != null && message.cacheLatencyCount.toArray)\n array14 = message.cacheLatencyCount.toArray();\n else\n array14 = message.cacheLatencyCount;\n if (!Array.isArray(array14))\n return \"cacheLatencyCount: array expected\";\n for (let i = 0; i < array14.length; ++i)\n if (!$util.isInteger(array14[i]) && !(array14[i] && $util.isInteger(array14[i].low) && $util.isInteger(array14[i].high)))\n return \"cacheLatencyCount: integer|Long[] expected\";\n }\n if (message.rootErrorStats != null && message.hasOwnProperty(\"rootErrorStats\")) {\n let error = $root.PathErrorStats.verify(message.rootErrorStats);\n if (error)\n return \"rootErrorStats.\" + error;\n }\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (!$util.isInteger(message.requestsWithErrorsCount) && !(message.requestsWithErrorsCount && $util.isInteger(message.requestsWithErrorsCount.low) && $util.isInteger(message.requestsWithErrorsCount.high)))\n return \"requestsWithErrorsCount: integer|Long expected\";\n if (message.publicCacheTtlCount != null && message.hasOwnProperty(\"publicCacheTtlCount\")) {\n let array15;\n if (message.publicCacheTtlCount != null && message.publicCacheTtlCount.toArray)\n array15 = message.publicCacheTtlCount.toArray();\n else\n array15 = message.publicCacheTtlCount;\n if (!Array.isArray(array15))\n return \"publicCacheTtlCount: array expected\";\n for (let i = 0; i < array15.length; ++i)\n if (!$util.isInteger(array15[i]) && !(array15[i] && $util.isInteger(array15[i].low) && $util.isInteger(array15[i].high)))\n return \"publicCacheTtlCount: integer|Long[] expected\";\n }\n if (message.privateCacheTtlCount != null && message.hasOwnProperty(\"privateCacheTtlCount\")) {\n let array16;\n if (message.privateCacheTtlCount != null && message.privateCacheTtlCount.toArray)\n array16 = message.privateCacheTtlCount.toArray();\n else\n array16 = message.privateCacheTtlCount;\n if (!Array.isArray(array16))\n return \"privateCacheTtlCount: array expected\";\n for (let i = 0; i < array16.length; ++i)\n if (!$util.isInteger(array16[i]) && !(array16[i] && $util.isInteger(array16[i].low) && $util.isInteger(array16[i].high)))\n return \"privateCacheTtlCount: integer|Long[] expected\";\n }\n if (message.registeredOperationCount != null && message.hasOwnProperty(\"registeredOperationCount\"))\n if (!$util.isInteger(message.registeredOperationCount) && !(message.registeredOperationCount && $util.isInteger(message.registeredOperationCount.low) && $util.isInteger(message.registeredOperationCount.high)))\n return \"registeredOperationCount: integer|Long expected\";\n if (message.forbiddenOperationCount != null && message.hasOwnProperty(\"forbiddenOperationCount\"))\n if (!$util.isInteger(message.forbiddenOperationCount) && !(message.forbiddenOperationCount && $util.isInteger(message.forbiddenOperationCount.low) && $util.isInteger(message.forbiddenOperationCount.high)))\n return \"forbiddenOperationCount: integer|Long expected\";\n if (message.requestsWithoutFieldInstrumentation != null && message.hasOwnProperty(\"requestsWithoutFieldInstrumentation\"))\n if (!$util.isInteger(message.requestsWithoutFieldInstrumentation) && !(message.requestsWithoutFieldInstrumentation && $util.isInteger(message.requestsWithoutFieldInstrumentation.low) && $util.isInteger(message.requestsWithoutFieldInstrumentation.high)))\n return \"requestsWithoutFieldInstrumentation: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a QueryLatencyStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof QueryLatencyStats\n * @static\n * @param {QueryLatencyStats} message QueryLatencyStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryLatencyStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults) {\n object.latencyCount = [];\n object.cacheLatencyCount = [];\n object.publicCacheTtlCount = [];\n object.privateCacheTtlCount = [];\n }\n if (options.defaults) {\n object.requestCount = 0;\n object.cacheHits = 0;\n object.persistedQueryHits = 0;\n object.persistedQueryMisses = 0;\n object.rootErrorStats = null;\n object.requestsWithErrorsCount = 0;\n object.registeredOperationCount = 0;\n object.forbiddenOperationCount = 0;\n object.requestsWithoutFieldInstrumentation = 0;\n }\n if (message.requestCount != null && message.hasOwnProperty(\"requestCount\"))\n if (typeof message.requestCount === \"number\")\n object.requestCount = options.longs === String ? String(message.requestCount) : message.requestCount;\n else\n object.requestCount = options.longs === String ? $util.Long.prototype.toString.call(message.requestCount) : options.longs === Number ? new $util.LongBits(message.requestCount.low >>> 0, message.requestCount.high >>> 0).toNumber(true) : message.requestCount;\n if (message.cacheHits != null && message.hasOwnProperty(\"cacheHits\"))\n if (typeof message.cacheHits === \"number\")\n object.cacheHits = options.longs === String ? String(message.cacheHits) : message.cacheHits;\n else\n object.cacheHits = options.longs === String ? $util.Long.prototype.toString.call(message.cacheHits) : options.longs === Number ? new $util.LongBits(message.cacheHits.low >>> 0, message.cacheHits.high >>> 0).toNumber(true) : message.cacheHits;\n if (message.persistedQueryHits != null && message.hasOwnProperty(\"persistedQueryHits\"))\n if (typeof message.persistedQueryHits === \"number\")\n object.persistedQueryHits = options.longs === String ? String(message.persistedQueryHits) : message.persistedQueryHits;\n else\n object.persistedQueryHits = options.longs === String ? $util.Long.prototype.toString.call(message.persistedQueryHits) : options.longs === Number ? new $util.LongBits(message.persistedQueryHits.low >>> 0, message.persistedQueryHits.high >>> 0).toNumber(true) : message.persistedQueryHits;\n if (message.persistedQueryMisses != null && message.hasOwnProperty(\"persistedQueryMisses\"))\n if (typeof message.persistedQueryMisses === \"number\")\n object.persistedQueryMisses = options.longs === String ? String(message.persistedQueryMisses) : message.persistedQueryMisses;\n else\n object.persistedQueryMisses = options.longs === String ? $util.Long.prototype.toString.call(message.persistedQueryMisses) : options.longs === Number ? new $util.LongBits(message.persistedQueryMisses.low >>> 0, message.persistedQueryMisses.high >>> 0).toNumber(true) : message.persistedQueryMisses;\n if (message.rootErrorStats != null && message.hasOwnProperty(\"rootErrorStats\"))\n object.rootErrorStats = $root.PathErrorStats.toObject(message.rootErrorStats, options);\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (typeof message.requestsWithErrorsCount === \"number\")\n object.requestsWithErrorsCount = options.longs === String ? String(message.requestsWithErrorsCount) : message.requestsWithErrorsCount;\n else\n object.requestsWithErrorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.requestsWithErrorsCount) : options.longs === Number ? new $util.LongBits(message.requestsWithErrorsCount.low >>> 0, message.requestsWithErrorsCount.high >>> 0).toNumber(true) : message.requestsWithErrorsCount;\n if (message.registeredOperationCount != null && message.hasOwnProperty(\"registeredOperationCount\"))\n if (typeof message.registeredOperationCount === \"number\")\n object.registeredOperationCount = options.longs === String ? String(message.registeredOperationCount) : message.registeredOperationCount;\n else\n object.registeredOperationCount = options.longs === String ? $util.Long.prototype.toString.call(message.registeredOperationCount) : options.longs === Number ? new $util.LongBits(message.registeredOperationCount.low >>> 0, message.registeredOperationCount.high >>> 0).toNumber(true) : message.registeredOperationCount;\n if (message.forbiddenOperationCount != null && message.hasOwnProperty(\"forbiddenOperationCount\"))\n if (typeof message.forbiddenOperationCount === \"number\")\n object.forbiddenOperationCount = options.longs === String ? String(message.forbiddenOperationCount) : message.forbiddenOperationCount;\n else\n object.forbiddenOperationCount = options.longs === String ? $util.Long.prototype.toString.call(message.forbiddenOperationCount) : options.longs === Number ? new $util.LongBits(message.forbiddenOperationCount.low >>> 0, message.forbiddenOperationCount.high >>> 0).toNumber(true) : message.forbiddenOperationCount;\n if (message.latencyCount && message.latencyCount.length) {\n object.latencyCount = [];\n for (let j = 0; j < message.latencyCount.length; ++j)\n if (typeof message.latencyCount[j] === \"number\")\n object.latencyCount[j] = options.longs === String ? String(message.latencyCount[j]) : message.latencyCount[j];\n else\n object.latencyCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.latencyCount[j]) : options.longs === Number ? new $util.LongBits(message.latencyCount[j].low >>> 0, message.latencyCount[j].high >>> 0).toNumber() : message.latencyCount[j];\n }\n if (message.cacheLatencyCount && message.cacheLatencyCount.length) {\n object.cacheLatencyCount = [];\n for (let j = 0; j < message.cacheLatencyCount.length; ++j)\n if (typeof message.cacheLatencyCount[j] === \"number\")\n object.cacheLatencyCount[j] = options.longs === String ? String(message.cacheLatencyCount[j]) : message.cacheLatencyCount[j];\n else\n object.cacheLatencyCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.cacheLatencyCount[j]) : options.longs === Number ? new $util.LongBits(message.cacheLatencyCount[j].low >>> 0, message.cacheLatencyCount[j].high >>> 0).toNumber() : message.cacheLatencyCount[j];\n }\n if (message.publicCacheTtlCount && message.publicCacheTtlCount.length) {\n object.publicCacheTtlCount = [];\n for (let j = 0; j < message.publicCacheTtlCount.length; ++j)\n if (typeof message.publicCacheTtlCount[j] === \"number\")\n object.publicCacheTtlCount[j] = options.longs === String ? String(message.publicCacheTtlCount[j]) : message.publicCacheTtlCount[j];\n else\n object.publicCacheTtlCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.publicCacheTtlCount[j]) : options.longs === Number ? new $util.LongBits(message.publicCacheTtlCount[j].low >>> 0, message.publicCacheTtlCount[j].high >>> 0).toNumber() : message.publicCacheTtlCount[j];\n }\n if (message.privateCacheTtlCount && message.privateCacheTtlCount.length) {\n object.privateCacheTtlCount = [];\n for (let j = 0; j < message.privateCacheTtlCount.length; ++j)\n if (typeof message.privateCacheTtlCount[j] === \"number\")\n object.privateCacheTtlCount[j] = options.longs === String ? String(message.privateCacheTtlCount[j]) : message.privateCacheTtlCount[j];\n else\n object.privateCacheTtlCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.privateCacheTtlCount[j]) : options.longs === Number ? new $util.LongBits(message.privateCacheTtlCount[j].low >>> 0, message.privateCacheTtlCount[j].high >>> 0).toNumber() : message.privateCacheTtlCount[j];\n }\n if (message.requestsWithoutFieldInstrumentation != null && message.hasOwnProperty(\"requestsWithoutFieldInstrumentation\"))\n if (typeof message.requestsWithoutFieldInstrumentation === \"number\")\n object.requestsWithoutFieldInstrumentation = options.longs === String ? String(message.requestsWithoutFieldInstrumentation) : message.requestsWithoutFieldInstrumentation;\n else\n object.requestsWithoutFieldInstrumentation = options.longs === String ? $util.Long.prototype.toString.call(message.requestsWithoutFieldInstrumentation) : options.longs === Number ? new $util.LongBits(message.requestsWithoutFieldInstrumentation.low >>> 0, message.requestsWithoutFieldInstrumentation.high >>> 0).toNumber(true) : message.requestsWithoutFieldInstrumentation;\n return object;\n };\n\n /**\n * Converts this QueryLatencyStats to JSON.\n * @function toJSON\n * @memberof QueryLatencyStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryLatencyStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return QueryLatencyStats;\n})();\n\nexport const StatsContext = $root.StatsContext = (() => {\n\n /**\n * Properties of a StatsContext.\n * @exports IStatsContext\n * @interface IStatsContext\n * @property {string|null} [clientName] StatsContext clientName\n * @property {string|null} [clientVersion] StatsContext clientVersion\n */\n\n /**\n * Constructs a new StatsContext.\n * @exports StatsContext\n * @classdesc Represents a StatsContext.\n * @implements IStatsContext\n * @constructor\n * @param {IStatsContext=} [properties] Properties to set\n */\n function StatsContext(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * StatsContext clientName.\n * @member {string} clientName\n * @memberof StatsContext\n * @instance\n */\n StatsContext.prototype.clientName = \"\";\n\n /**\n * StatsContext clientVersion.\n * @member {string} clientVersion\n * @memberof StatsContext\n * @instance\n */\n StatsContext.prototype.clientVersion = \"\";\n\n /**\n * Creates a new StatsContext instance using the specified properties.\n * @function create\n * @memberof StatsContext\n * @static\n * @param {IStatsContext=} [properties] Properties to set\n * @returns {StatsContext} StatsContext instance\n */\n StatsContext.create = function create(properties) {\n return new StatsContext(properties);\n };\n\n /**\n * Encodes the specified StatsContext message. Does not implicitly {@link StatsContext.verify|verify} messages.\n * @function encode\n * @memberof StatsContext\n * @static\n * @param {IStatsContext} message StatsContext message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatsContext.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.clientName != null && Object.hasOwnProperty.call(message, \"clientName\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.clientName);\n if (message.clientVersion != null && Object.hasOwnProperty.call(message, \"clientVersion\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.clientVersion);\n return writer;\n };\n\n /**\n * Encodes the specified StatsContext message, length delimited. Does not implicitly {@link StatsContext.verify|verify} messages.\n * @function encodeDelimited\n * @memberof StatsContext\n * @static\n * @param {IStatsContext} message StatsContext message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatsContext.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a StatsContext message from the specified reader or buffer.\n * @function decode\n * @memberof StatsContext\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {StatsContext} StatsContext\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatsContext.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.StatsContext();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.clientName = reader.string();\n break;\n case 3:\n message.clientVersion = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a StatsContext message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof StatsContext\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {StatsContext} StatsContext\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatsContext.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a StatsContext message.\n * @function verify\n * @memberof StatsContext\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n StatsContext.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.clientName != null && message.hasOwnProperty(\"clientName\"))\n if (!$util.isString(message.clientName))\n return \"clientName: string expected\";\n if (message.clientVersion != null && message.hasOwnProperty(\"clientVersion\"))\n if (!$util.isString(message.clientVersion))\n return \"clientVersion: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a StatsContext message. Also converts values to other types if specified.\n * @function toObject\n * @memberof StatsContext\n * @static\n * @param {StatsContext} message StatsContext\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n StatsContext.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.clientName = \"\";\n object.clientVersion = \"\";\n }\n if (message.clientName != null && message.hasOwnProperty(\"clientName\"))\n object.clientName = message.clientName;\n if (message.clientVersion != null && message.hasOwnProperty(\"clientVersion\"))\n object.clientVersion = message.clientVersion;\n return object;\n };\n\n /**\n * Converts this StatsContext to JSON.\n * @function toJSON\n * @memberof StatsContext\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n StatsContext.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return StatsContext;\n})();\n\nexport const ContextualizedQueryLatencyStats = $root.ContextualizedQueryLatencyStats = (() => {\n\n /**\n * Properties of a ContextualizedQueryLatencyStats.\n * @exports IContextualizedQueryLatencyStats\n * @interface IContextualizedQueryLatencyStats\n * @property {IQueryLatencyStats|null} [queryLatencyStats] ContextualizedQueryLatencyStats queryLatencyStats\n * @property {IStatsContext|null} [context] ContextualizedQueryLatencyStats context\n */\n\n /**\n * Constructs a new ContextualizedQueryLatencyStats.\n * @exports ContextualizedQueryLatencyStats\n * @classdesc Represents a ContextualizedQueryLatencyStats.\n * @implements IContextualizedQueryLatencyStats\n * @constructor\n * @param {IContextualizedQueryLatencyStats=} [properties] Properties to set\n */\n function ContextualizedQueryLatencyStats(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ContextualizedQueryLatencyStats queryLatencyStats.\n * @member {IQueryLatencyStats|null|undefined} queryLatencyStats\n * @memberof ContextualizedQueryLatencyStats\n * @instance\n */\n ContextualizedQueryLatencyStats.prototype.queryLatencyStats = null;\n\n /**\n * ContextualizedQueryLatencyStats context.\n * @member {IStatsContext|null|undefined} context\n * @memberof ContextualizedQueryLatencyStats\n * @instance\n */\n ContextualizedQueryLatencyStats.prototype.context = null;\n\n /**\n * Creates a new ContextualizedQueryLatencyStats instance using the specified properties.\n * @function create\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {IContextualizedQueryLatencyStats=} [properties] Properties to set\n * @returns {ContextualizedQueryLatencyStats} ContextualizedQueryLatencyStats instance\n */\n ContextualizedQueryLatencyStats.create = function create(properties) {\n return new ContextualizedQueryLatencyStats(properties);\n };\n\n /**\n * Encodes the specified ContextualizedQueryLatencyStats message. Does not implicitly {@link ContextualizedQueryLatencyStats.verify|verify} messages.\n * @function encode\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {IContextualizedQueryLatencyStats} message ContextualizedQueryLatencyStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedQueryLatencyStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.queryLatencyStats != null && Object.hasOwnProperty.call(message, \"queryLatencyStats\"))\n $root.QueryLatencyStats.encode(message.queryLatencyStats, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.context != null && Object.hasOwnProperty.call(message, \"context\"))\n $root.StatsContext.encode(message.context, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ContextualizedQueryLatencyStats message, length delimited. Does not implicitly {@link ContextualizedQueryLatencyStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {IContextualizedQueryLatencyStats} message ContextualizedQueryLatencyStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedQueryLatencyStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ContextualizedQueryLatencyStats message from the specified reader or buffer.\n * @function decode\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ContextualizedQueryLatencyStats} ContextualizedQueryLatencyStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedQueryLatencyStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.ContextualizedQueryLatencyStats();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.queryLatencyStats = $root.QueryLatencyStats.decode(reader, reader.uint32());\n break;\n case 2:\n message.context = $root.StatsContext.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ContextualizedQueryLatencyStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ContextualizedQueryLatencyStats} ContextualizedQueryLatencyStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedQueryLatencyStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ContextualizedQueryLatencyStats message.\n * @function verify\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ContextualizedQueryLatencyStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.queryLatencyStats != null && message.hasOwnProperty(\"queryLatencyStats\")) {\n let error = $root.QueryLatencyStats.verify(message.queryLatencyStats);\n if (error)\n return \"queryLatencyStats.\" + error;\n }\n if (message.context != null && message.hasOwnProperty(\"context\")) {\n let error = $root.StatsContext.verify(message.context);\n if (error)\n return \"context.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ContextualizedQueryLatencyStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {ContextualizedQueryLatencyStats} message ContextualizedQueryLatencyStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ContextualizedQueryLatencyStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.queryLatencyStats = null;\n object.context = null;\n }\n if (message.queryLatencyStats != null && message.hasOwnProperty(\"queryLatencyStats\"))\n object.queryLatencyStats = $root.QueryLatencyStats.toObject(message.queryLatencyStats, options);\n if (message.context != null && message.hasOwnProperty(\"context\"))\n object.context = $root.StatsContext.toObject(message.context, options);\n return object;\n };\n\n /**\n * Converts this ContextualizedQueryLatencyStats to JSON.\n * @function toJSON\n * @memberof ContextualizedQueryLatencyStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ContextualizedQueryLatencyStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ContextualizedQueryLatencyStats;\n})();\n\nexport const ContextualizedTypeStats = $root.ContextualizedTypeStats = (() => {\n\n /**\n * Properties of a ContextualizedTypeStats.\n * @exports IContextualizedTypeStats\n * @interface IContextualizedTypeStats\n * @property {IStatsContext|null} [context] ContextualizedTypeStats context\n * @property {Object.<string,ITypeStat>|null} [perTypeStat] ContextualizedTypeStats perTypeStat\n */\n\n /**\n * Constructs a new ContextualizedTypeStats.\n * @exports ContextualizedTypeStats\n * @classdesc Represents a ContextualizedTypeStats.\n * @implements IContextualizedTypeStats\n * @constructor\n * @param {IContextualizedTypeStats=} [properties] Properties to set\n */\n function ContextualizedTypeStats(properties) {\n this.perTypeStat = {};\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ContextualizedTypeStats context.\n * @member {IStatsContext|null|undefined} context\n * @memberof ContextualizedTypeStats\n * @instance\n */\n ContextualizedTypeStats.prototype.context = null;\n\n /**\n * ContextualizedTypeStats perTypeStat.\n * @member {Object.<string,ITypeStat>} perTypeStat\n * @memberof ContextualizedTypeStats\n * @instance\n */\n ContextualizedTypeStats.prototype.perTypeStat = $util.emptyObject;\n\n /**\n * Creates a new ContextualizedTypeStats instance using the specified properties.\n * @function create\n * @memberof ContextualizedTypeStats\n * @static\n * @param {IContextualizedTypeStats=} [properties] Properties to set\n * @returns {ContextualizedTypeStats} ContextualizedTypeStats instance\n */\n ContextualizedTypeStats.create = function create(properties) {\n return new ContextualizedTypeStats(properties);\n };\n\n /**\n * Encodes the specified ContextualizedTypeStats message. Does not implicitly {@link ContextualizedTypeStats.verify|verify} messages.\n * @function encode\n * @memberof ContextualizedTypeStats\n * @static\n * @param {IContextualizedTypeStats} message ContextualizedTypeStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedTypeStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.context != null && Object.hasOwnProperty.call(message, \"context\"))\n $root.StatsContext.encode(message.context, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.perTypeStat != null && Object.hasOwnProperty.call(message, \"perTypeStat\"))\n for (let keys = Object.keys(message.perTypeStat), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.TypeStat.encode(message.perTypeStat[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified ContextualizedTypeStats message, length delimited. Does not implicitly {@link ContextualizedTypeStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ContextualizedTypeStats\n * @static\n * @param {IContextualizedTypeStats} message ContextualizedTypeStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedTypeStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ContextualizedTypeStats message from the specified reader or buffer.\n * @function decode\n * @memberof ContextualizedTypeStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ContextualizedTypeStats} ContextualizedTypeStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedTypeStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.ContextualizedTypeStats(), key;\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.context = $root.StatsContext.decode(reader, reader.uint32());\n break;\n case 2:\n reader.skip().pos++;\n if (message.perTypeStat === $util.emptyObject)\n message.perTypeStat = {};\n key = reader.string();\n reader.pos++;\n message.perTypeStat[key] = $root.TypeStat.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ContextualizedTypeStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ContextualizedTypeStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ContextualizedTypeStats} ContextualizedTypeStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedTypeStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ContextualizedTypeStats message.\n * @function verify\n * @memberof ContextualizedTypeStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ContextualizedTypeStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.context != null && message.hasOwnProperty(\"context\")) {\n let error = $root.StatsContext.verify(message.context);\n if (error)\n return \"context.\" + error;\n }\n if (message.perTypeStat != null && message.hasOwnProperty(\"perTypeStat\")) {\n if (!$util.isObject(message.perTypeStat))\n return \"perTypeStat: object expected\";\n let key = Object.keys(message.perTypeStat);\n for (let i = 0; i < key.length; ++i) {\n let error = $root.TypeStat.verify(message.perTypeStat[key[i]]);\n if (error)\n return \"perTypeStat.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ContextualizedTypeStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ContextualizedTypeStats\n * @static\n * @param {ContextualizedTypeStats} message ContextualizedTypeStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ContextualizedTypeStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.objects || options.defaults)\n object.perTypeStat = {};\n if (options.defaults)\n object.context = null;\n if (message.context != null && message.hasOwnProperty(\"context\"))\n object.context = $root.StatsContext.toObject(message.context, options);\n let keys2;\n if (message.perTypeStat && (keys2 = Object.keys(message.perTypeStat)).length) {\n object.perTypeStat = {};\n for (let j = 0; j < keys2.length; ++j)\n object.perTypeStat[keys2[j]] = $root.TypeStat.toObject(message.perTypeStat[keys2[j]], options);\n }\n return object;\n };\n\n /**\n * Converts this ContextualizedTypeStats to JSON.\n * @function toJSON\n * @memberof ContextualizedTypeStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ContextualizedTypeStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ContextualizedTypeStats;\n})();\n\nexport const FieldStat = $root.FieldStat = (() => {\n\n /**\n * Properties of a FieldStat.\n * @exports IFieldStat\n * @interface IFieldStat\n * @property {string|null} [returnType] FieldStat returnType\n * @property {number|null} [errorsCount] FieldStat errorsCount\n * @property {number|null} [observedExecutionCount] FieldStat observedExecutionCount\n * @property {number|null} [estimatedExecutionCount] FieldStat estimatedExecutionCount\n * @property {number|null} [requestsWithErrorsCount] FieldStat requestsWithErrorsCount\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [latencyCount] FieldStat latencyCount\n */\n\n /**\n * Constructs a new FieldStat.\n * @exports FieldStat\n * @classdesc Represents a FieldStat.\n * @implements IFieldStat\n * @constructor\n * @param {IFieldStat=} [properties] Properties to set\n */\n function FieldStat(properties) {\n this.latencyCount = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FieldStat returnType.\n * @member {string} returnType\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.returnType = \"\";\n\n /**\n * FieldStat errorsCount.\n * @member {number} errorsCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.errorsCount = 0;\n\n /**\n * FieldStat observedExecutionCount.\n * @member {number} observedExecutionCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.observedExecutionCount = 0;\n\n /**\n * FieldStat estimatedExecutionCount.\n * @member {number} estimatedExecutionCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.estimatedExecutionCount = 0;\n\n /**\n * FieldStat requestsWithErrorsCount.\n * @member {number} requestsWithErrorsCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.requestsWithErrorsCount = 0;\n\n /**\n * FieldStat latencyCount.\n * @member {Array.<number>} latencyCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.latencyCount = $util.emptyArray;\n\n /**\n * Creates a new FieldStat instance using the specified properties.\n * @function create\n * @memberof FieldStat\n * @static\n * @param {IFieldStat=} [properties] Properties to set\n * @returns {FieldStat} FieldStat instance\n */\n FieldStat.create = function create(properties) {\n return new FieldStat(properties);\n };\n\n /**\n * Encodes the specified FieldStat message. Does not implicitly {@link FieldStat.verify|verify} messages.\n * @function encode\n * @memberof FieldStat\n * @static\n * @param {IFieldStat} message FieldStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FieldStat.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.returnType != null && Object.hasOwnProperty.call(message, \"returnType\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.returnType);\n if (message.errorsCount != null && Object.hasOwnProperty.call(message, \"errorsCount\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.errorsCount);\n if (message.observedExecutionCount != null && Object.hasOwnProperty.call(message, \"observedExecutionCount\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.observedExecutionCount);\n if (message.requestsWithErrorsCount != null && Object.hasOwnProperty.call(message, \"requestsWithErrorsCount\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.requestsWithErrorsCount);\n let array9;\n if (message.latencyCount != null && message.latencyCount.toArray)\n array9 = message.latencyCount.toArray();\n else\n array9 = message.latencyCount;\n if (array9 != null && array9.length) {\n writer.uint32(/* id 9, wireType 2 =*/74).fork();\n for (let i = 0; i < array9.length; ++i)\n writer.sint64(array9[i]);\n writer.ldelim();\n }\n if (message.estimatedExecutionCount != null && Object.hasOwnProperty.call(message, \"estimatedExecutionCount\"))\n writer.uint32(/* id 10, wireType 0 =*/80).uint64(message.estimatedExecutionCount);\n return writer;\n };\n\n /**\n * Encodes the specified FieldStat message, length delimited. Does not implicitly {@link FieldStat.verify|verify} messages.\n * @function encodeDelimited\n * @memberof FieldStat\n * @static\n * @param {IFieldStat} message FieldStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FieldStat.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FieldStat message from the specified reader or buffer.\n * @function decode\n * @memberof FieldStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {FieldStat} FieldStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FieldStat.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.FieldStat();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 3:\n message.returnType = reader.string();\n break;\n case 4:\n message.errorsCount = reader.uint64();\n break;\n case 5:\n message.observedExecutionCount = reader.uint64();\n break;\n case 10:\n message.estimatedExecutionCount = reader.uint64();\n break;\n case 6:\n message.requestsWithErrorsCount = reader.uint64();\n break;\n case 9:\n if (!(message.latencyCount && message.latencyCount.length))\n message.latencyCount = [];\n if ((tag & 7) === 2) {\n let end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.latencyCount.push(reader.sint64());\n } else\n message.latencyCount.push(reader.sint64());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FieldStat message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof FieldStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {FieldStat} FieldStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FieldStat.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FieldStat message.\n * @function verify\n * @memberof FieldStat\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FieldStat.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.returnType != null && message.hasOwnProperty(\"returnType\"))\n if (!$util.isString(message.returnType))\n return \"returnType: string expected\";\n if (message.errorsCount != null && message.hasOwnProperty(\"errorsCount\"))\n if (!$util.isInteger(message.errorsCount) && !(message.errorsCount && $util.isInteger(message.errorsCount.low) && $util.isInteger(message.errorsCount.high)))\n return \"errorsCount: integer|Long expected\";\n if (message.observedExecutionCount != null && message.hasOwnProperty(\"observedExecutionCount\"))\n if (!$util.isInteger(message.observedExecutionCount) && !(message.observedExecutionCount && $util.isInteger(message.observedExecutionCount.low) && $util.isInteger(message.observedExecutionCount.high)))\n return \"observedExecutionCount: integer|Long expected\";\n if (message.estimatedExecutionCount != null && message.hasOwnProperty(\"estimatedExecutionCount\"))\n if (!$util.isInteger(message.estimatedExecutionCount) && !(message.estimatedExecutionCount && $util.isInteger(message.estimatedExecutionCount.low) && $util.isInteger(message.estimatedExecutionCount.high)))\n return \"estimatedExecutionCount: integer|Long expected\";\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (!$util.isInteger(message.requestsWithErrorsCount) && !(message.requestsWithErrorsCount && $util.isInteger(message.requestsWithErrorsCount.low) && $util.isInteger(message.requestsWithErrorsCount.high)))\n return \"requestsWithErrorsCount: integer|Long expected\";\n if (message.latencyCount != null && message.hasOwnProperty(\"latencyCount\")) {\n let array9;\n if (message.latencyCount != null && message.latencyCount.toArray)\n array9 = message.latencyCount.toArray();\n else\n array9 = message.latencyCount;\n if (!Array.isArray(array9))\n return \"latencyCount: array expected\";\n for (let i = 0; i < array9.length; ++i)\n if (!$util.isInteger(array9[i]) && !(array9[i] && $util.isInteger(array9[i].low) && $util.isInteger(array9[i].high)))\n return \"latencyCount: integer|Long[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a plain object from a FieldStat message. Also converts values to other types if specified.\n * @function toObject\n * @memberof FieldStat\n * @static\n * @param {FieldStat} message FieldStat\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FieldStat.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults)\n object.latencyCount = [];\n if (options.defaults) {\n object.returnType = \"\";\n object.errorsCount = 0;\n object.observedExecutionCount = 0;\n object.requestsWithErrorsCount = 0;\n object.estimatedExecutionCount = 0;\n }\n if (message.returnType != null && message.hasOwnProperty(\"returnType\"))\n object.returnType = message.returnType;\n if (message.errorsCount != null && message.hasOwnProperty(\"errorsCount\"))\n if (typeof message.errorsCount === \"number\")\n object.errorsCount = options.longs === String ? String(message.errorsCount) : message.errorsCount;\n else\n object.errorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.errorsCount) : options.longs === Number ? new $util.LongBits(message.errorsCount.low >>> 0, message.errorsCount.high >>> 0).toNumber(true) : message.errorsCount;\n if (message.observedExecutionCount != null && message.hasOwnProperty(\"observedExecutionCount\"))\n if (typeof message.observedExecutionCount === \"number\")\n object.observedExecutionCount = options.longs === String ? String(message.observedExecutionCount) : message.observedExecutionCount;\n else\n object.observedExecutionCount = options.longs === String ? $util.Long.prototype.toString.call(message.observedExecutionCount) : options.longs === Number ? new $util.LongBits(message.observedExecutionCount.low >>> 0, message.observedExecutionCount.high >>> 0).toNumber(true) : message.observedExecutionCount;\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (typeof message.requestsWithErrorsCount === \"number\")\n object.requestsWithErrorsCount = options.longs === String ? String(message.requestsWithErrorsCount) : message.requestsWithErrorsCount;\n else\n object.requestsWithErrorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.requestsWithErrorsCount) : options.longs === Number ? new $util.LongBits(message.requestsWithErrorsCount.low >>> 0, message.requestsWithErrorsCount.high >>> 0).toNumber(true) : message.requestsWithErrorsCount;\n if (message.latencyCount && message.latencyCount.length) {\n object.latencyCount = [];\n for (let j = 0; j < message.latencyCount.length; ++j)\n if (typeof message.latencyCount[j] === \"number\")\n object.latencyCount[j] = options.longs === String ? String(message.latencyCount[j]) : message.latencyCount[j];\n else\n object.latencyCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.latencyCount[j]) : options.longs === Number ? new $util.LongBits(message.latencyCount[j].low >>> 0, message.latencyCount[j].high >>> 0).toNumber() : message.latencyCount[j];\n }\n if (message.estimatedExecutionCount != null && message.hasOwnProperty(\"estimatedExecutionCount\"))\n if (typeof message.estimatedExecutionCount === \"number\")\n object.estimatedExecutionCount = options.longs === String ? String(message.estimatedExecutionCount) : message.estimatedExecutionCount;\n else\n object.estimatedExecutionCount = options.longs === String ? $util.Long.prototype.toString.call(message.estimatedExecutionCount) : options.longs === Number ? new $util.LongBits(message.estimatedExecutionCount.low >>> 0, message.estimatedExecutionCount.high >>> 0).toNumber(true) : message.estimatedExecutionCount;\n return object;\n };\n\n /**\n * Converts this FieldStat to JSON.\n * @function toJSON\n * @memberof FieldStat\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FieldStat.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FieldStat;\n})();\n\nexport const TypeStat = $root.TypeStat = (() => {\n\n /**\n * Properties of a TypeStat.\n * @exports ITypeStat\n * @interface ITypeStat\n * @property {Object.<string,IFieldStat>|null} [perFieldStat] TypeStat perFieldStat\n */\n\n /**\n * Constructs a new TypeStat.\n * @exports TypeStat\n * @classdesc Represents a TypeStat.\n * @implements ITypeStat\n * @constructor\n * @param {ITypeStat=} [properties] Properties to set\n */\n function TypeStat(properties) {\n this.perFieldStat = {};\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TypeStat perFieldStat.\n * @member {Object.<string,IFieldStat>} perFieldStat\n * @memberof TypeStat\n * @instance\n */\n TypeStat.prototype.perFieldStat = $util.emptyObject;\n\n /**\n * Creates a new TypeStat instance using the specified properties.\n * @function create\n * @memberof TypeStat\n * @static\n * @param {ITypeStat=} [properties] Properties to set\n * @returns {TypeStat} TypeStat instance\n */\n TypeStat.create = function create(properties) {\n return new TypeStat(properties);\n };\n\n /**\n * Encodes the specified TypeStat message. Does not implicitly {@link TypeStat.verify|verify} messages.\n * @function encode\n * @memberof TypeStat\n * @static\n * @param {ITypeStat} message TypeStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TypeStat.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.perFieldStat != null && Object.hasOwnProperty.call(message, \"perFieldStat\"))\n for (let keys = Object.keys(message.perFieldStat), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 3, wireType 2 =*/26).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.FieldStat.encode(message.perFieldStat[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified TypeStat message, length delimited. Does not implicitly {@link TypeStat.verify|verify} messages.\n * @function encodeDelimited\n * @memberof TypeStat\n * @static\n * @param {ITypeStat} message TypeStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TypeStat.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TypeStat message from the specified reader or buffer.\n * @function decode\n * @memberof TypeStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {TypeStat} TypeStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TypeStat.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.TypeStat(), key;\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 3:\n reader.skip().pos++;\n if (message.perFieldStat === $util.emptyObject)\n message.perFieldStat = {};\n key = reader.string();\n reader.pos++;\n message.perFieldStat[key] = $root.FieldStat.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TypeStat message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof TypeStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {TypeStat} TypeStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TypeStat.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TypeStat message.\n * @function verify\n * @memberof TypeStat\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TypeStat.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.perFieldStat != null && message.hasOwnProperty(\"perFieldStat\")) {\n if (!$util.isObject(message.perFieldStat))\n return \"perFieldStat: object expected\";\n let key = Object.keys(message.perFieldStat);\n for (let i = 0; i < key.length; ++i) {\n let error = $root.FieldStat.verify(message.perFieldStat[key[i]]);\n if (error)\n return \"perFieldStat.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a TypeStat message. Also converts values to other types if specified.\n * @function toObject\n * @memberof TypeStat\n * @static\n * @param {TypeStat} message TypeStat\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TypeStat.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.objects || options.defaults)\n object.perFieldStat = {};\n let keys2;\n if (message.perFieldStat && (keys2 = Object.keys(message.perFieldStat)).length) {\n object.perFieldStat = {};\n for (let j = 0; j < keys2.length; ++j)\n object.perFieldStat[keys2[j]] = $root.FieldStat.toObject(message.perFieldStat[keys2[j]], options);\n }\n return object;\n };\n\n /**\n * Converts this TypeStat to JSON.\n * @function toJSON\n * @memberof TypeStat\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TypeStat.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TypeStat;\n})();\n\nexport const ReferencedFieldsForType = $root.ReferencedFieldsForType = (() => {\n\n /**\n * Properties of a ReferencedFieldsForType.\n * @exports IReferencedFieldsForType\n * @interface IReferencedFieldsForType\n * @property {Array.<string>|null} [fieldNames] ReferencedFieldsForType fieldNames\n * @property {boolean|null} [isInterface] ReferencedFieldsForType isInterface\n */\n\n /**\n * Constructs a new ReferencedFieldsForType.\n * @exports ReferencedFieldsForType\n * @classdesc Represents a ReferencedFieldsForType.\n * @implements IReferencedFieldsForType\n * @constructor\n * @param {IReferencedFieldsForType=} [properties] Properties to set\n */\n function ReferencedFieldsForType(properties) {\n this.fieldNames = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ReferencedFieldsForType fieldNames.\n * @member {Array.<string>} fieldNames\n * @memberof ReferencedFieldsForType\n * @instance\n */\n ReferencedFieldsForType.prototype.fieldNames = $util.emptyArray;\n\n /**\n * ReferencedFieldsForType isInterface.\n * @member {boolean} isInterface\n * @memberof ReferencedFieldsForType\n * @instance\n */\n ReferencedFieldsForType.prototype.isInterface = false;\n\n /**\n * Creates a new ReferencedFieldsForType instance using the specified properties.\n * @function create\n * @memberof ReferencedFieldsForType\n * @static\n * @param {IReferencedFieldsForType=} [properties] Properties to set\n * @returns {ReferencedFieldsForType} ReferencedFieldsForType instance\n */\n ReferencedFieldsForType.create = function create(properties) {\n return new ReferencedFieldsForType(properties);\n };\n\n /**\n * Encodes the specified ReferencedFieldsForType message. Does not implicitly {@link ReferencedFieldsForType.verify|verify} messages.\n * @function encode\n * @memberof ReferencedFieldsForType\n * @static\n * @param {IReferencedFieldsForType} message ReferencedFieldsForType message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReferencedFieldsForType.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.fieldNames != null && message.fieldNames.length)\n for (let i = 0; i < message.fieldNames.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldNames[i]);\n if (message.isInterface != null && Object.hasOwnProperty.call(message, \"isInterface\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isInterface);\n return writer;\n };\n\n /**\n * Encodes the specified ReferencedFieldsForType message, length delimited. Does not implicitly {@link ReferencedFieldsForType.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ReferencedFieldsForType\n * @static\n * @param {IReferencedFieldsForType} message ReferencedFieldsForType message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReferencedFieldsForType.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ReferencedFieldsForType message from the specified reader or buffer.\n * @function decode\n * @memberof ReferencedFieldsForType\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ReferencedFieldsForType} ReferencedFieldsForType\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReferencedFieldsForType.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.ReferencedFieldsForType();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.fieldNames && message.fieldNames.length))\n message.fieldNames = [];\n message.fieldNames.push(reader.string());\n break;\n case 2:\n message.isInterface = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ReferencedFieldsForType message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ReferencedFieldsForType\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ReferencedFieldsForType} ReferencedFieldsForType\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReferencedFieldsForType.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ReferencedFieldsForType message.\n * @function verify\n * @memberof ReferencedFieldsForType\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ReferencedFieldsForType.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.fieldNames != null && message.hasOwnProperty(\"fieldNames\")) {\n if (!Array.isArray(message.fieldNames))\n return \"fieldNames: array expected\";\n for (let i = 0; i < message.fieldNames.length; ++i)\n if (!$util.isString(message.fieldNames[i]))\n return \"fieldNames: string[] expected\";\n }\n if (message.isInterface != null && message.hasOwnProperty(\"isInterface\"))\n if (typeof message.isInterface !== \"boolean\")\n return \"isInterface: boolean expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a ReferencedFieldsForType message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ReferencedFieldsForType\n * @static\n * @param {ReferencedFieldsForType} message ReferencedFieldsForType\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ReferencedFieldsForType.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults)\n object.fieldNames = [];\n if (options.defaults)\n object.isInterface = false;\n if (message.fieldNames && message.fieldNames.length) {\n object.fieldNames = [];\n for (let j = 0; j < message.fieldNames.length; ++j)\n object.fieldNames[j] = message.fieldNames[j];\n }\n if (message.isInterface != null && message.hasOwnProperty(\"isInterface\"))\n object.isInterface = message.isInterface;\n return object;\n };\n\n /**\n * Converts this ReferencedFieldsForType to JSON.\n * @function toJSON\n * @memberof ReferencedFieldsForType\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ReferencedFieldsForType.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ReferencedFieldsForType;\n})();\n\nexport const Report = $root.Report = (() => {\n\n /**\n * Properties of a Report.\n * @exports IReport\n * @interface IReport\n * @property {IReportHeader|null} [header] Report header\n * @property {Object.<string,ITracesAndStats>|null} [tracesPerQuery] Report tracesPerQuery\n * @property {google.protobuf.ITimestamp|null} [endTime] Report endTime\n * @property {number|null} [operationCount] Report operationCount\n * @property {boolean|null} [tracesPreAggregated] Report tracesPreAggregated\n */\n\n /**\n * Constructs a new Report.\n * @exports Report\n * @classdesc Represents a Report.\n * @implements IReport\n * @constructor\n * @param {IReport=} [properties] Properties to set\n */\n function Report(properties) {\n this.tracesPerQuery = {};\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Report header.\n * @member {IReportHeader|null|undefined} header\n * @memberof Report\n * @instance\n */\n Report.prototype.header = null;\n\n /**\n * Report tracesPerQuery.\n * @member {Object.<string,ITracesAndStats>} tracesPerQuery\n * @memberof Report\n * @instance\n */\n Report.prototype.tracesPerQuery = $util.emptyObject;\n\n /**\n * Report endTime.\n * @member {google.protobuf.ITimestamp|null|undefined} endTime\n * @memberof Report\n * @instance\n */\n Report.prototype.endTime = null;\n\n /**\n * Report operationCount.\n * @member {number} operationCount\n * @memberof Report\n * @instance\n */\n Report.prototype.operationCount = 0;\n\n /**\n * Report tracesPreAggregated.\n * @member {boolean} tracesPreAggregated\n * @memberof Report\n * @instance\n */\n Report.prototype.tracesPreAggregated = false;\n\n /**\n * Creates a new Report instance using the specified properties.\n * @function create\n * @memberof Report\n * @static\n * @param {IReport=} [properties] Properties to set\n * @returns {Report} Report instance\n */\n Report.create = function create(properties) {\n return new Report(properties);\n };\n\n /**\n * Encodes the specified Report message. Does not implicitly {@link Report.verify|verify} messages.\n * @function encode\n * @memberof Report\n * @static\n * @param {IReport} message Report message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Report.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.header != null && Object.hasOwnProperty.call(message, \"header\"))\n $root.ReportHeader.encode(message.header, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.endTime != null && Object.hasOwnProperty.call(message, \"endTime\"))\n $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.tracesPerQuery != null && Object.hasOwnProperty.call(message, \"tracesPerQuery\"))\n for (let keys = Object.keys(message.tracesPerQuery), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 5, wireType 2 =*/42).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.TracesAndStats.encode(message.tracesPerQuery[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n if (message.operationCount != null && Object.hasOwnProperty.call(message, \"operationCount\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.operationCount);\n if (message.tracesPreAggregated != null && Object.hasOwnProperty.call(message, \"tracesPreAggregated\"))\n writer.uint32(/* id 7, wireType 0 =*/56).bool(message.tracesPreAggregated);\n return writer;\n };\n\n /**\n * Encodes the specified Report message, length delimited. Does not implicitly {@link Report.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Report\n * @static\n * @param {IReport} message Report message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Report.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Report message from the specified reader or buffer.\n * @function decode\n * @memberof Report\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Report} Report\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Report.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Report(), key;\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = $root.ReportHeader.decode(reader, reader.uint32());\n break;\n case 5:\n reader.skip().pos++;\n if (message.tracesPerQuery === $util.emptyObject)\n message.tracesPerQuery = {};\n key = reader.string();\n reader.pos++;\n message.tracesPerQuery[key] = $root.TracesAndStats.decode(reader, reader.uint32());\n break;\n case 2:\n message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.operationCount = reader.uint64();\n break;\n case 7:\n message.tracesPreAggregated = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Report message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Report\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Report} Report\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Report.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Report message.\n * @function verify\n * @memberof Report\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Report.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.header != null && message.hasOwnProperty(\"header\")) {\n let error = $root.ReportHeader.verify(message.header);\n if (error)\n return \"header.\" + error;\n }\n if (message.tracesPerQuery != null && message.hasOwnProperty(\"tracesPerQuery\")) {\n if (!$util.isObject(message.tracesPerQuery))\n return \"tracesPerQuery: object expected\";\n let key = Object.keys(message.tracesPerQuery);\n for (let i = 0; i < key.length; ++i) {\n let error = $root.TracesAndStats.verify(message.tracesPerQuery[key[i]]);\n if (error)\n return \"tracesPerQuery.\" + error;\n }\n }\n if (message.endTime != null && message.hasOwnProperty(\"endTime\")) {\n let error = $root.google.protobuf.Timestamp.verify(message.endTime);\n if (error)\n return \"endTime.\" + error;\n }\n if (message.operationCount != null && message.hasOwnProperty(\"operationCount\"))\n if (!$util.isInteger(message.operationCount) && !(message.operationCount && $util.isInteger(message.operationCount.low) && $util.isInteger(message.operationCount.high)))\n return \"operationCount: integer|Long expected\";\n if (message.tracesPreAggregated != null && message.hasOwnProperty(\"tracesPreAggregated\"))\n if (typeof message.tracesPreAggregated !== \"boolean\")\n return \"tracesPreAggregated: boolean expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Report message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Report\n * @static\n * @param {Report} message Report\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Report.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.objects || options.defaults)\n object.tracesPerQuery = {};\n if (options.defaults) {\n object.header = null;\n object.endTime = null;\n object.operationCount = 0;\n object.tracesPreAggregated = false;\n }\n if (message.header != null && message.hasOwnProperty(\"header\"))\n object.header = $root.ReportHeader.toObject(message.header, options);\n if (message.endTime != null && message.hasOwnProperty(\"endTime\"))\n object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options);\n let keys2;\n if (message.tracesPerQuery && (keys2 = Object.keys(message.tracesPerQuery)).length) {\n object.tracesPerQuery = {};\n for (let j = 0; j < keys2.length; ++j)\n object.tracesPerQuery[keys2[j]] = $root.TracesAndStats.toObject(message.tracesPerQuery[keys2[j]], options);\n }\n if (message.operationCount != null && message.hasOwnProperty(\"operationCount\"))\n if (typeof message.operationCount === \"number\")\n object.operationCount = options.longs === String ? String(message.operationCount) : message.operationCount;\n else\n object.operationCount = options.longs === String ? $util.Long.prototype.toString.call(message.operationCount) : options.longs === Number ? new $util.LongBits(message.operationCount.low >>> 0, message.operationCount.high >>> 0).toNumber(true) : message.operationCount;\n if (message.tracesPreAggregated != null && message.hasOwnProperty(\"tracesPreAggregated\"))\n object.tracesPreAggregated = message.tracesPreAggregated;\n return object;\n };\n\n /**\n * Converts this Report to JSON.\n * @function toJSON\n * @memberof Report\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Report.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Report;\n})();\n\nexport const ContextualizedStats = $root.ContextualizedStats = (() => {\n\n /**\n * Properties of a ContextualizedStats.\n * @exports IContextualizedStats\n * @interface IContextualizedStats\n * @property {IStatsContext|null} [context] ContextualizedStats context\n * @property {IQueryLatencyStats|null} [queryLatencyStats] ContextualizedStats queryLatencyStats\n * @property {Object.<string,ITypeStat>|null} [perTypeStat] ContextualizedStats perTypeStat\n */\n\n /**\n * Constructs a new ContextualizedStats.\n * @exports ContextualizedStats\n * @classdesc Represents a ContextualizedStats.\n * @implements IContextualizedStats\n * @constructor\n * @param {IContextualizedStats=} [properties] Properties to set\n */\n function ContextualizedStats(properties) {\n this.perTypeStat = {};\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ContextualizedStats context.\n * @member {IStatsContext|null|undefined} context\n * @memberof ContextualizedStats\n * @instance\n */\n ContextualizedStats.prototype.context = null;\n\n /**\n * ContextualizedStats queryLatencyStats.\n * @member {IQueryLatencyStats|null|undefined} queryLatencyStats\n * @memberof ContextualizedStats\n * @instance\n */\n ContextualizedStats.prototype.queryLatencyStats = null;\n\n /**\n * ContextualizedStats perTypeStat.\n * @member {Object.<string,ITypeStat>} perTypeStat\n * @memberof ContextualizedStats\n * @instance\n */\n ContextualizedStats.prototype.perTypeStat = $util.emptyObject;\n\n /**\n * Creates a new ContextualizedStats instance using the specified properties.\n * @function create\n * @memberof ContextualizedStats\n * @static\n * @param {IContextualizedStats=} [properties] Properties to set\n * @returns {ContextualizedStats} ContextualizedStats instance\n */\n ContextualizedStats.create = function create(properties) {\n return new ContextualizedStats(properties);\n };\n\n /**\n * Encodes the specified ContextualizedStats message. Does not implicitly {@link ContextualizedStats.verify|verify} messages.\n * @function encode\n * @memberof ContextualizedStats\n * @static\n * @param {IContextualizedStats} message ContextualizedStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.context != null && Object.hasOwnProperty.call(message, \"context\"))\n $root.StatsContext.encode(message.context, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.queryLatencyStats != null && Object.hasOwnProperty.call(message, \"queryLatencyStats\"))\n $root.QueryLatencyStats.encode(message.queryLatencyStats, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.perTypeStat != null && Object.hasOwnProperty.call(message, \"perTypeStat\"))\n for (let keys = Object.keys(message.perTypeStat), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 3, wireType 2 =*/26).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.TypeStat.encode(message.perTypeStat[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified ContextualizedStats message, length delimited. Does not implicitly {@link ContextualizedStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ContextualizedStats\n * @static\n * @param {IContextualizedStats} message ContextualizedStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ContextualizedStats message from the specified reader or buffer.\n * @function decode\n * @memberof ContextualizedStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ContextualizedStats} ContextualizedStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.ContextualizedStats(), key;\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.context = $root.StatsContext.decode(reader, reader.uint32());\n break;\n case 2:\n message.queryLatencyStats = $root.QueryLatencyStats.decode(reader, reader.uint32());\n break;\n case 3:\n reader.skip().pos++;\n if (message.perTypeStat === $util.emptyObject)\n message.perTypeStat = {};\n key = reader.string();\n reader.pos++;\n message.perTypeStat[key] = $root.TypeStat.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ContextualizedStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ContextualizedStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ContextualizedStats} ContextualizedStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ContextualizedStats message.\n * @function verify\n * @memberof ContextualizedStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ContextualizedStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.context != null && message.hasOwnProperty(\"context\")) {\n let error = $root.StatsContext.verify(message.context);\n if (error)\n return \"context.\" + error;\n }\n if (message.queryLatencyStats != null && message.hasOwnProperty(\"queryLatencyStats\")) {\n let error = $root.QueryLatencyStats.verify(message.queryLatencyStats);\n if (error)\n return \"queryLatencyStats.\" + error;\n }\n if (message.perTypeStat != null && message.hasOwnProperty(\"perTypeStat\")) {\n if (!$util.isObject(message.perTypeStat))\n return \"perTypeStat: object expected\";\n let key = Object.keys(message.perTypeStat);\n for (let i = 0; i < key.length; ++i) {\n let error = $root.TypeStat.verify(message.perTypeStat[key[i]]);\n if (error)\n return \"perTypeStat.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ContextualizedStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ContextualizedStats\n * @static\n * @param {ContextualizedStats} message ContextualizedStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ContextualizedStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.objects || options.defaults)\n object.perTypeStat = {};\n if (options.defaults) {\n object.context = null;\n object.queryLatencyStats = null;\n }\n if (message.context != null && message.hasOwnProperty(\"context\"))\n object.context = $root.StatsContext.toObject(message.context, options);\n if (message.queryLatencyStats != null && message.hasOwnProperty(\"queryLatencyStats\"))\n object.queryLatencyStats = $root.QueryLatencyStats.toObject(message.queryLatencyStats, options);\n let keys2;\n if (message.perTypeStat && (keys2 = Object.keys(message.perTypeStat)).length) {\n object.perTypeStat = {};\n for (let j = 0; j < keys2.length; ++j)\n object.perTypeStat[keys2[j]] = $root.TypeStat.toObject(message.perTypeStat[keys2[j]], options);\n }\n return object;\n };\n\n /**\n * Converts this ContextualizedStats to JSON.\n * @function toJSON\n * @memberof ContextualizedStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ContextualizedStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ContextualizedStats;\n})();\n\nexport const TracesAndStats = $root.TracesAndStats = (() => {\n\n /**\n * Properties of a TracesAndStats.\n * @exports ITracesAndStats\n * @interface ITracesAndStats\n * @property {Array.<ITrace|Uint8Array>|null} [trace] TracesAndStats trace\n * @property {$protobuf.ToArray.<IContextualizedStats>|Array.<IContextualizedStats>|null} [statsWithContext] TracesAndStats statsWithContext\n * @property {Object.<string,IReferencedFieldsForType>|null} [referencedFieldsByType] TracesAndStats referencedFieldsByType\n * @property {Array.<ITrace|Uint8Array>|null} [internalTracesContributingToStats] TracesAndStats internalTracesContributingToStats\n */\n\n /**\n * Constructs a new TracesAndStats.\n * @exports TracesAndStats\n * @classdesc Represents a TracesAndStats.\n * @implements ITracesAndStats\n * @constructor\n * @param {ITracesAndStats=} [properties] Properties to set\n */\n function TracesAndStats(properties) {\n this.trace = [];\n this.statsWithContext = [];\n this.referencedFieldsByType = {};\n this.internalTracesContributingToStats = [];\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TracesAndStats trace.\n * @member {Array.<ITrace|Uint8Array>} trace\n * @memberof TracesAndStats\n * @instance\n */\n TracesAndStats.prototype.trace = $util.emptyArray;\n\n /**\n * TracesAndStats statsWithContext.\n * @member {Array.<IContextualizedStats>} statsWithContext\n * @memberof TracesAndStats\n * @instance\n */\n TracesAndStats.prototype.statsWithContext = $util.emptyArray;\n\n /**\n * TracesAndStats referencedFieldsByType.\n * @member {Object.<string,IReferencedFieldsForType>} referencedFieldsByType\n * @memberof TracesAndStats\n * @instance\n */\n TracesAndStats.prototype.referencedFieldsByType = $util.emptyObject;\n\n /**\n * TracesAndStats internalTracesContributingToStats.\n * @member {Array.<ITrace|Uint8Array>} internalTracesContributingToStats\n * @memberof TracesAndStats\n * @instance\n */\n TracesAndStats.prototype.internalTracesContributingToStats = $util.emptyArray;\n\n /**\n * Creates a new TracesAndStats instance using the specified properties.\n * @function create\n * @memberof TracesAndStats\n * @static\n * @param {ITracesAndStats=} [properties] Properties to set\n * @returns {TracesAndStats} TracesAndStats instance\n */\n TracesAndStats.create = function create(properties) {\n return new TracesAndStats(properties);\n };\n\n /**\n * Encodes the specified TracesAndStats message. Does not implicitly {@link TracesAndStats.verify|verify} messages.\n * @function encode\n * @memberof TracesAndStats\n * @static\n * @param {ITracesAndStats} message TracesAndStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TracesAndStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.trace != null && message.trace.length)\n for (let i = 0; i < message.trace.length; ++i)\n if (message.trace[i] instanceof Uint8Array) {\n writer.uint32(/* id 1, wireType 2 =*/10);\n writer.bytes(message.trace[i]);\n } else\n $root.Trace.encode(message.trace[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n let array2;\n if (message.statsWithContext != null && message.statsWithContext.toArray)\n array2 = message.statsWithContext.toArray();\n else\n array2 = message.statsWithContext;\n if (array2 != null && array2.length)\n for (let i = 0; i < array2.length; ++i)\n $root.ContextualizedStats.encode(array2[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.internalTracesContributingToStats != null && message.internalTracesContributingToStats.length)\n for (let i = 0; i < message.internalTracesContributingToStats.length; ++i)\n if (message.internalTracesContributingToStats[i] instanceof Uint8Array) {\n writer.uint32(/* id 3, wireType 2 =*/26);\n writer.bytes(message.internalTracesContributingToStats[i]);\n } else\n $root.Trace.encode(message.internalTracesContributingToStats[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.referencedFieldsByType != null && Object.hasOwnProperty.call(message, \"referencedFieldsByType\"))\n for (let keys = Object.keys(message.referencedFieldsByType), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 4, wireType 2 =*/34).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.ReferencedFieldsForType.encode(message.referencedFieldsByType[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified TracesAndStats message, length delimited. Does not implicitly {@link TracesAndStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof TracesAndStats\n * @static\n * @param {ITracesAndStats} message TracesAndStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TracesAndStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TracesAndStats message from the specified reader or buffer.\n * @function decode\n * @memberof TracesAndStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {TracesAndStats} TracesAndStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TracesAndStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.TracesAndStats(), key;\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.trace && message.trace.length))\n message.trace = [];\n message.trace.push($root.Trace.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.statsWithContext && message.statsWithContext.length))\n message.statsWithContext = [];\n message.statsWithContext.push($root.ContextualizedStats.decode(reader, reader.uint32()));\n break;\n case 4:\n reader.skip().pos++;\n if (message.referencedFieldsByType === $util.emptyObject)\n message.referencedFieldsByType = {};\n key = reader.string();\n reader.pos++;\n message.referencedFieldsByType[key] = $root.ReferencedFieldsForType.decode(reader, reader.uint32());\n break;\n case 3:\n if (!(message.internalTracesContributingToStats && message.internalTracesContributingToStats.length))\n message.internalTracesContributingToStats = [];\n message.internalTracesContributingToStats.push($root.Trace.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TracesAndStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof TracesAndStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {TracesAndStats} TracesAndStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TracesAndStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TracesAndStats message.\n * @function verify\n * @memberof TracesAndStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TracesAndStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.trace != null && message.hasOwnProperty(\"trace\")) {\n if (!Array.isArray(message.trace))\n return \"trace: array expected\";\n for (let i = 0; i < message.trace.length; ++i)\n if (!(message.trace[i] instanceof Uint8Array)) {\n let error = $root.Trace.verify(message.trace[i]);\n if (error)\n return \"trace.\" + error;\n }\n }\n if (message.statsWithContext != null && message.hasOwnProperty(\"statsWithContext\")) {\n let array2;\n if (message.statsWithContext != null && message.statsWithContext.toArray)\n array2 = message.statsWithContext.toArray();\n else\n array2 = message.statsWithContext;\n if (!Array.isArray(array2))\n return \"statsWithContext: array expected\";\n for (let i = 0; i < array2.length; ++i) {\n let error = $root.ContextualizedStats.verify(array2[i]);\n if (error)\n return \"statsWithContext.\" + error;\n }\n }\n if (message.referencedFieldsByType != null && message.hasOwnProperty(\"referencedFieldsByType\")) {\n if (!$util.isObject(message.referencedFieldsByType))\n return \"referencedFieldsByType: object expected\";\n let key = Object.keys(message.referencedFieldsByType);\n for (let i = 0; i < key.length; ++i) {\n let error = $root.ReferencedFieldsForType.verify(message.referencedFieldsByType[key[i]]);\n if (error)\n return \"referencedFieldsByType.\" + error;\n }\n }\n if (message.internalTracesContributingToStats != null && message.hasOwnProperty(\"internalTracesContributingToStats\")) {\n if (!Array.isArray(message.internalTracesContributingToStats))\n return \"internalTracesContributingToStats: array expected\";\n for (let i = 0; i < message.internalTracesContributingToStats.length; ++i)\n if (!(message.internalTracesContributingToStats[i] instanceof Uint8Array)) {\n let error = $root.Trace.verify(message.internalTracesContributingToStats[i]);\n if (error)\n return \"internalTracesContributingToStats.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a TracesAndStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof TracesAndStats\n * @static\n * @param {TracesAndStats} message TracesAndStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TracesAndStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.arrays || options.defaults) {\n object.trace = [];\n object.statsWithContext = [];\n object.internalTracesContributingToStats = [];\n }\n if (options.objects || options.defaults)\n object.referencedFieldsByType = {};\n if (message.trace && message.trace.length) {\n object.trace = [];\n for (let j = 0; j < message.trace.length; ++j)\n object.trace[j] = $root.Trace.toObject(message.trace[j], options);\n }\n if (message.statsWithContext && message.statsWithContext.length) {\n object.statsWithContext = [];\n for (let j = 0; j < message.statsWithContext.length; ++j)\n object.statsWithContext[j] = $root.ContextualizedStats.toObject(message.statsWithContext[j], options);\n }\n if (message.internalTracesContributingToStats && message.internalTracesContributingToStats.length) {\n object.internalTracesContributingToStats = [];\n for (let j = 0; j < message.internalTracesContributingToStats.length; ++j)\n object.internalTracesContributingToStats[j] = $root.Trace.toObject(message.internalTracesContributingToStats[j], options);\n }\n let keys2;\n if (message.referencedFieldsByType && (keys2 = Object.keys(message.referencedFieldsByType)).length) {\n object.referencedFieldsByType = {};\n for (let j = 0; j < keys2.length; ++j)\n object.referencedFieldsByType[keys2[j]] = $root.ReferencedFieldsForType.toObject(message.referencedFieldsByType[keys2[j]], options);\n }\n return object;\n };\n\n /**\n * Converts this TracesAndStats to JSON.\n * @function toJSON\n * @memberof TracesAndStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TracesAndStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TracesAndStats;\n})();\n\nexport const google = $root.google = (() => {\n\n /**\n * Namespace google.\n * @exports google\n * @namespace\n */\n const google = {};\n\n google.protobuf = (function() {\n\n /**\n * Namespace protobuf.\n * @memberof google\n * @namespace\n */\n const protobuf = {};\n\n protobuf.Timestamp = (function() {\n\n /**\n * Properties of a Timestamp.\n * @memberof google.protobuf\n * @interface ITimestamp\n * @property {number|null} [seconds] Timestamp seconds\n * @property {number|null} [nanos] Timestamp nanos\n */\n\n /**\n * Constructs a new Timestamp.\n * @memberof google.protobuf\n * @classdesc Represents a Timestamp.\n * @implements ITimestamp\n * @constructor\n * @param {google.protobuf.ITimestamp=} [properties] Properties to set\n */\n function Timestamp(properties) {\n if (properties)\n for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Timestamp seconds.\n * @member {number} seconds\n * @memberof google.protobuf.Timestamp\n * @instance\n */\n Timestamp.prototype.seconds = 0;\n\n /**\n * Timestamp nanos.\n * @member {number} nanos\n * @memberof google.protobuf.Timestamp\n * @instance\n */\n Timestamp.prototype.nanos = 0;\n\n /**\n * Creates a new Timestamp instance using the specified properties.\n * @function create\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {google.protobuf.ITimestamp=} [properties] Properties to set\n * @returns {google.protobuf.Timestamp} Timestamp instance\n */\n Timestamp.create = function create(properties) {\n return new Timestamp(properties);\n };\n\n /**\n * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.\n * @function encode\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Timestamp.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.seconds != null && Object.hasOwnProperty.call(message, \"seconds\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds);\n if (message.nanos != null && Object.hasOwnProperty.call(message, \"nanos\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos);\n return writer;\n };\n\n /**\n * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.\n * @function encodeDelimited\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Timestamp.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Timestamp message from the specified reader or buffer.\n * @function decode\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {google.protobuf.Timestamp} Timestamp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Timestamp.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n let end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Timestamp();\n while (reader.pos < end) {\n let tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Timestamp message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {google.protobuf.Timestamp} Timestamp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Timestamp.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Timestamp message.\n * @function verify\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Timestamp.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.seconds != null && message.hasOwnProperty(\"seconds\"))\n if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high)))\n return \"seconds: integer|Long expected\";\n if (message.nanos != null && message.hasOwnProperty(\"nanos\"))\n if (!$util.isInteger(message.nanos))\n return \"nanos: integer expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Timestamp message. Also converts values to other types if specified.\n * @function toObject\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {google.protobuf.Timestamp} message Timestamp\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Timestamp.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n let object = {};\n if (options.defaults) {\n object.seconds = 0;\n object.nanos = 0;\n }\n if (message.seconds != null && message.hasOwnProperty(\"seconds\"))\n if (typeof message.seconds === \"number\")\n object.seconds = options.longs === String ? String(message.seconds) : message.seconds;\n else\n object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds;\n if (message.nanos != null && message.hasOwnProperty(\"nanos\"))\n object.nanos = message.nanos;\n return object;\n };\n\n /**\n * Converts this Timestamp to JSON.\n * @function toJSON\n * @memberof google.protobuf.Timestamp\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Timestamp.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Timestamp;\n })();\n\n return protobuf;\n })();\n\n return google;\n})();\n\nexport { $root as default };\n","import { GraphQLError, } from 'graphql';\nimport { Trace, google } from '@apollo/usage-reporting-protobuf';\nimport { UnreachableCaseError } from '../utils/UnreachableCaseError.js';\nfunction internalError(message) {\n return new Error(`[internal apollo-server error] ${message}`);\n}\nexport class TraceTreeBuilder {\n rootNode = new Trace.Node();\n trace = new Trace({\n root: this.rootNode,\n fieldExecutionWeight: 1,\n });\n startHrTime;\n stopped = false;\n nodes = new Map([\n [responsePathAsString(), this.rootNode],\n ]);\n transformError;\n constructor(options) {\n const { sendErrors, maskedBy } = options;\n if (!sendErrors || 'masked' in sendErrors) {\n this.transformError = () => new GraphQLError('<masked>', {\n extensions: { maskedBy },\n });\n }\n else if ('transform' in sendErrors) {\n this.transformError = sendErrors.transform;\n }\n else if ('unmodified' in sendErrors) {\n this.transformError = null;\n }\n else {\n throw new UnreachableCaseError(sendErrors);\n }\n }\n startTiming() {\n if (this.startHrTime) {\n throw internalError('startTiming called twice!');\n }\n if (this.stopped) {\n throw internalError('startTiming called after stopTiming!');\n }\n this.trace.startTime = dateToProtoTimestamp(new Date());\n this.startHrTime = process.hrtime();\n }\n stopTiming() {\n if (!this.startHrTime) {\n throw internalError('stopTiming called before startTiming!');\n }\n if (this.stopped) {\n throw internalError('stopTiming called twice!');\n }\n this.trace.durationNs = durationHrTimeToNanos(process.hrtime(this.startHrTime));\n this.trace.endTime = dateToProtoTimestamp(new Date());\n this.stopped = true;\n }\n willResolveField(info) {\n if (!this.startHrTime) {\n throw internalError('willResolveField called before startTiming!');\n }\n if (this.stopped) {\n return () => { };\n }\n const path = info.path;\n const node = this.newNode(path);\n node.type = info.returnType.toString();\n node.parentType = info.parentType.toString();\n node.startTime = durationHrTimeToNanos(process.hrtime(this.startHrTime));\n if (typeof path.key === 'string' && path.key !== info.fieldName) {\n node.originalFieldName = info.fieldName;\n }\n return () => {\n node.endTime = durationHrTimeToNanos(process.hrtime(this.startHrTime));\n };\n }\n didEncounterErrors(errors) {\n errors.forEach((err) => {\n if (err.extensions?.serviceName) {\n return;\n }\n const errorForReporting = this.transformAndNormalizeError(err);\n if (errorForReporting === null) {\n return;\n }\n this.addProtobufError(errorForReporting.path, errorToProtobufError(errorForReporting));\n });\n }\n addProtobufError(path, error) {\n if (!this.startHrTime) {\n throw internalError('addProtobufError called before startTiming!');\n }\n if (this.stopped) {\n throw internalError('addProtobufError called after stopTiming!');\n }\n let node = this.rootNode;\n if (Array.isArray(path)) {\n const specificNode = this.nodes.get(path.join('.'));\n if (specificNode) {\n node = specificNode;\n }\n else {\n const responsePath = responsePathFromArray(path, this.rootNode);\n if (!responsePath) {\n throw internalError('addProtobufError called with invalid path!');\n }\n node = this.newNode(responsePath);\n }\n }\n node.error.push(error);\n }\n newNode(path) {\n const node = new Trace.Node();\n const id = path.key;\n if (typeof id === 'number') {\n node.index = id;\n }\n else {\n node.responseName = id;\n }\n this.nodes.set(responsePathAsString(path), node);\n const parentNode = this.ensureParentNode(path);\n parentNode.child.push(node);\n return node;\n }\n ensureParentNode(path) {\n const parentPath = responsePathAsString(path.prev);\n const parentNode = this.nodes.get(parentPath);\n if (parentNode) {\n return parentNode;\n }\n return this.newNode(path.prev);\n }\n transformAndNormalizeError(err) {\n if (this.transformError) {\n const clonedError = Object.assign(Object.create(Object.getPrototypeOf(err)), err);\n const rewrittenError = this.transformError(clonedError);\n if (rewrittenError === null) {\n return null;\n }\n if (!(rewrittenError instanceof GraphQLError)) {\n return err;\n }\n return new GraphQLError(rewrittenError.message, {\n nodes: err.nodes,\n source: err.source,\n positions: err.positions,\n path: err.path,\n originalError: err.originalError,\n extensions: rewrittenError.extensions || err.extensions,\n });\n }\n return err;\n }\n}\nfunction durationHrTimeToNanos(hrtime) {\n return hrtime[0] * 1e9 + hrtime[1];\n}\nfunction responsePathAsString(p) {\n if (p === undefined) {\n return '';\n }\n let res = String(p.key);\n while ((p = p.prev) !== undefined) {\n res = `${p.key}.${res}`;\n }\n return res;\n}\nfunction responsePathFromArray(path, node) {\n let responsePath;\n let nodePtr = node;\n for (const key of path) {\n nodePtr = nodePtr?.child?.find((child) => child.responseName === key);\n responsePath = {\n key,\n prev: responsePath,\n typename: nodePtr?.type ?? undefined,\n };\n }\n return responsePath;\n}\nfunction errorToProtobufError(error) {\n return new Trace.Error({\n message: error.message,\n location: (error.locations || []).map(({ line, column }) => new Trace.Location({ line, column })),\n json: JSON.stringify(error),\n });\n}\nexport function dateToProtoTimestamp(date) {\n const totalMillis = +date;\n const millis = totalMillis % 1000;\n return new google.protobuf.Timestamp({\n seconds: (totalMillis - millis) / 1000,\n nanos: millis * 1e6,\n });\n}\n//# sourceMappingURL=traceTreeBuilder.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"mappings":";;;;;CACA,OAAO,UAAU;;;;;;;;;;;;;;;;;CAmBjB,SAAS,UAAU,IAAI,KAAmB;EACtC,IAAI,SAAU,IAAI,MAAM,UAAU,SAAS,CAAC,GACxC,SAAU,GACV,QAAU,GACV,UAAU;EACd,OAAO,QAAQ,UAAU,QACrB,OAAO,YAAY,UAAU;EACjC,OAAO,IAAI,QAAQ,SAAS,SAAS,SAAS,QAAQ;GAClD,OAAO,UAAU,SAAS,SAAS,KAAmB;IAClD,IAAI,SAAS;KACT,UAAU;KACV,IAAI,KACA,OAAO,GAAG;UACT;MACD,IAAI,SAAS,IAAI,MAAM,UAAU,SAAS,CAAC,GACvC,SAAS;MACb,OAAO,SAAS,OAAO,QACnB,OAAO,YAAY,UAAU;MACjC,QAAQ,MAAM,MAAM,MAAM;KAC9B;IACJ;GACJ;GACA,IAAI;IACA,GAAG,MAAM,OAAO,MAAM,MAAM;GAChC,SAAS,KAAK;IACV,IAAI,SAAS;KACT,UAAU;KACV,OAAO,GAAG;IACd;GACJ;EACJ,CAAC;CACL;;;;;;;;;;CC5CA,IAAI,SAAS;;;;;;CAOb,OAAO,SAAS,SAAS,OAAO,QAAQ;EACpC,IAAI,IAAI,OAAO;EACf,IAAI,CAAC,GACD,OAAO;EACX,IAAI,IAAI;EACR,OAAO,EAAE,IAAI,IAAI,KAAK,OAAO,OAAO,CAAC,MAAM,KACvC,EAAE;EACN,OAAO,KAAK,KAAK,OAAO,SAAS,CAAC,IAAI,IAAI;CAC9C;CAGA,IAAI,MAAM,IAAI,MAAM,EAAE;CAGtB,IAAI,MAAM,IAAI,MAAM,GAAG;CAGvB,KAAK,IAAI,IAAI,GAAG,IAAI,KAChB,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM;;;;;;;;CASrF,OAAO,SAAS,SAAS,OAAO,QAAQ,OAAO,KAAK;EAChD,IAAI,QAAQ,MACR,QAAQ,CAAC;EACb,IAAI,IAAI,GACJ,IAAI,GACJ;EACJ,OAAO,QAAQ,KAAK;GAChB,IAAI,IAAI,OAAO;GACf,QAAQ,GAAR;IACI,KAAK;KACD,MAAM,OAAO,IAAI,KAAK;KACtB,KAAK,IAAI,MAAM;KACf,IAAI;KACJ;IACJ,KAAK;KACD,MAAM,OAAO,IAAI,IAAI,KAAK;KAC1B,KAAK,IAAI,OAAO;KAChB,IAAI;KACJ;IACJ,KAAK;KACD,MAAM,OAAO,IAAI,IAAI,KAAK;KAC1B,MAAM,OAAO,IAAI,IAAI;KACrB,IAAI;GAEZ;GACA,IAAI,IAAI,MAAM;IACV,CAAC,UAAU,QAAQ,CAAC,GAAA,CAAI,KAAK,OAAO,aAAa,MAAM,QAAQ,KAAK,CAAC;IACrE,IAAI;GACR;EACJ;EACA,IAAI,GAAG;GACH,MAAM,OAAO,IAAI;GACjB,MAAM,OAAO;GACb,IAAI,MAAM,GACN,MAAM,OAAO;EACrB;EACA,IAAI,OAAO;GACP,IAAI,GACA,MAAM,KAAK,OAAO,aAAa,MAAM,QAAQ,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC;GACnE,OAAO,MAAM,KAAK,EAAE;EACxB;EACA,OAAO,OAAO,aAAa,MAAM,QAAQ,MAAM,MAAM,GAAG,CAAC,CAAC;CAC9D;CAEA,IAAI,kBAAkB;;;;;;;;;CAUtB,OAAO,SAAS,SAAS,OAAO,QAAQ,QAAQ,QAAQ;EACpD,IAAI,QAAQ;EACZ,IAAI,IAAI,GACJ;EACJ,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,SAAS;GAChC,IAAI,IAAI,OAAO,WAAW,GAAG;GAC7B,IAAI,MAAM,MAAM,IAAI,GAChB;GACJ,KAAK,IAAI,IAAI,QAAQ,KAAA,GACjB,MAAM,MAAM,eAAe;GAC/B,QAAQ,GAAR;IACI,KAAK;KACD,IAAI;KACJ,IAAI;KACJ;IACJ,KAAK;KACD,OAAO,YAAY,KAAK,KAAK,IAAI,OAAO;KACxC,IAAI;KACJ,IAAI;KACJ;IACJ,KAAK;KACD,OAAO,aAAa,IAAI,OAAO,KAAK,IAAI,OAAO;KAC/C,IAAI;KACJ,IAAI;KACJ;IACJ,KAAK;KACD,OAAO,aAAa,IAAI,MAAM,IAAI;KAClC,IAAI;GAEZ;EACJ;EACA,IAAI,MAAM,GACN,MAAM,MAAM,eAAe;EAC/B,OAAO,SAAS;CACpB;;;;;;CAOA,OAAO,OAAO,SAAS,KAAK,QAAQ;EAChC,OAAO,mEAAmE,KAAK,MAAM;CACzF;;;;;CCzIA,OAAO,UAAU;;;;;;;CAQjB,SAAS,eAAe;;;;;;EAOpB,KAAK,aAAa,CAAC;CACvB;;;;;;;;CASA,aAAa,UAAU,KAAK,SAAS,GAAG,KAAK,IAAI,KAAK;EAClD,CAAC,KAAK,WAAW,SAAS,KAAK,WAAW,OAAO,CAAC,GAAA,CAAI,KAAK;GACjD;GACN,KAAM,OAAO;EACjB,CAAC;EACD,OAAO;CACX;;;;;;;CAQA,aAAa,UAAU,MAAM,SAAS,IAAI,KAAK,IAAI;EAC/C,IAAI,QAAQ,KAAA,GACR,KAAK,aAAa,CAAC;OAEnB,IAAI,OAAO,KAAA,GACP,KAAK,WAAW,OAAO,CAAC;OACvB;GACD,IAAI,YAAY,KAAK,WAAW;GAChC,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,SAC1B,IAAI,UAAU,EAAE,CAAC,OAAO,IACpB,UAAU,OAAO,GAAG,CAAC;QAErB,EAAE;EACd;EAEJ,OAAO;CACX;;;;;;;CAQA,aAAa,UAAU,OAAO,SAAS,KAAK,KAAK;EAC7C,IAAI,YAAY,KAAK,WAAW;EAChC,IAAI,WAAW;GACX,IAAI,OAAO,CAAC,GACR,IAAI;GACR,OAAO,IAAI,UAAU,SACjB,KAAK,KAAK,UAAU,IAAI;GAC5B,KAAK,IAAI,GAAG,IAAI,UAAU,SACtB,UAAU,EAAE,CAAC,GAAG,MAAM,UAAU,IAAI,CAAC,KAAK,IAAI;EACtD;EACA,OAAO;CACX;;;;;CCzEA,OAAO,UAAU,QAAQ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFhC,SAAS,QAAQ,WAAS;EAGtB,IAAI,OAAO,iBAAiB,aAAa,CAAC,WAAW;GAEjD,IAAI,MAAM,IAAI,aAAa,CAAE,EAAG,CAAC,GAC7B,MAAM,IAAI,WAAW,IAAI,MAAM,GAC/B,KAAM,IAAI,OAAO;GAErB,SAAS,mBAAmB,KAAK,KAAK,KAAK;IACvC,IAAI,KAAK;IACT,IAAI,OAAW,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;GACvB;GAEA,SAAS,mBAAmB,KAAK,KAAK,KAAK;IACvC,IAAI,KAAK;IACT,IAAI,OAAW,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;GACvB;;GAGA,UAAQ,eAAe,KAAK,qBAAqB;;GAEjD,UAAQ,eAAe,KAAK,qBAAqB;GAEjD,SAAS,kBAAkB,KAAK,KAAK;IACjC,IAAI,KAAK,IAAI;IACb,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,OAAO,IAAI;GACf;GAEA,SAAS,kBAAkB,KAAK,KAAK;IACjC,IAAI,KAAK,IAAI;IACb,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,OAAO,IAAI;GACf;;GAGA,UAAQ,cAAc,KAAK,oBAAoB;;GAE/C,UAAQ,cAAc,KAAK,oBAAoB;EAGnD,EAAA,CAAG;OAAQ,CAAC,WAAW;GAEnB,SAAS,mBAAmB,WAAW,KAAK,KAAK,KAAK;IAClD,IAAI,OAAO,MAAM,IAAI,IAAI;IACzB,IAAI,MACA,MAAM,CAAC;IACX,IAAI,QAAQ,GACR,UAAU,IAAI,MAAM,IAAmB,IAAqB,YAAY,KAAK,GAAG;SAC/E,IAAI,MAAM,GAAG,GACd,UAAU,YAAY,KAAK,GAAG;SAC7B,IAAI,MAAM,sBACX,WAAW,QAAQ,KAAK,gBAAgB,GAAG,KAAK,GAAG;SAClD,IAAI,MAAM,uBACX,WAAW,QAAQ,KAAK,KAAK,MAAM,MAAM,oBAAqB,OAAO,GAAG,KAAK,GAAG;SAC/E;KACD,IAAI,WAAW,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,GAC9C,WAAW,KAAK,MAAM,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,IAAI;KACpE,WAAW,QAAQ,KAAK,WAAW,OAAO,KAAK,cAAc,GAAG,KAAK,GAAG;IAC5E;GACJ;GAEA,UAAQ,eAAe,mBAAmB,KAAK,MAAM,WAAW;GAChE,UAAQ,eAAe,mBAAmB,KAAK,MAAM,WAAW;GAEhE,SAAS,kBAAkB,UAAU,KAAK,KAAK;IAC3C,IAAI,OAAO,SAAS,KAAK,GAAG,GACxB,QAAQ,QAAQ,MAAM,IAAI,GAC1B,WAAW,SAAS,KAAK,KACzB,WAAW,OAAO;IACtB,OAAO,aAAa,MACd,WACA,MACA,OAAO,WACP,aAAa,IACb,OAAO,uBAAwB,WAC/B,OAAO,KAAK,IAAI,GAAG,WAAW,GAAG,KAAK,WAAW;GAC3D;GAEA,UAAQ,cAAc,kBAAkB,KAAK,MAAM,UAAU;GAC7D,UAAQ,cAAc,kBAAkB,KAAK,MAAM,UAAU;EAEjE,EAAA,CAAG;EAGH,IAAI,OAAO,iBAAiB,aAAa,CAAC,WAAW;GAEjD,IAAI,MAAM,IAAI,aAAa,CAAC,EAAE,CAAC,GAC3B,MAAM,IAAI,WAAW,IAAI,MAAM,GAC/B,KAAM,IAAI,OAAO;GAErB,SAAS,oBAAoB,KAAK,KAAK,KAAK;IACxC,IAAI,KAAK;IACT,IAAI,OAAW,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;GACvB;GAEA,SAAS,oBAAoB,KAAK,KAAK,KAAK;IACxC,IAAI,KAAK;IACT,IAAI,OAAW,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;IACnB,IAAI,MAAM,KAAK,IAAI;GACvB;;GAGA,UAAQ,gBAAgB,KAAK,sBAAsB;;GAEnD,UAAQ,gBAAgB,KAAK,sBAAsB;GAEnD,SAAS,mBAAmB,KAAK,KAAK;IAClC,IAAI,KAAK,IAAI;IACb,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,OAAO,IAAI;GACf;GAEA,SAAS,mBAAmB,KAAK,KAAK;IAClC,IAAI,KAAK,IAAI;IACb,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,IAAI,KAAK,IAAI,MAAM;IACnB,OAAO,IAAI;GACf;;GAGA,UAAQ,eAAe,KAAK,qBAAqB;;GAEjD,UAAQ,eAAe,KAAK,qBAAqB;EAGrD,EAAA,CAAG;OAAQ,CAAC,WAAW;GAEnB,SAAS,oBAAoB,WAAW,MAAM,MAAM,KAAK,KAAK,KAAK;IAC/D,IAAI,OAAO,MAAM,IAAI,IAAI;IACzB,IAAI,MACA,MAAM,CAAC;IACX,IAAI,QAAQ,GAAG;KACX,UAAU,GAAG,KAAK,MAAM,IAAI;KAC5B,UAAU,IAAI,MAAM,IAAmB,IAAqB,YAAY,KAAK,MAAM,IAAI;IAC3F,OAAO,IAAI,MAAM,GAAG,GAAG;KACnB,UAAU,GAAG,KAAK,MAAM,IAAI;KAC5B,UAAU,YAAY,KAAK,MAAM,IAAI;IACzC,OAAO,IAAI,MAAM,uBAAyB;KACtC,UAAU,GAAG,KAAK,MAAM,IAAI;KAC5B,WAAW,QAAQ,KAAK,gBAAgB,GAAG,KAAK,MAAM,IAAI;IAC9D,OAAO;KACH,IAAI;KACJ,IAAI,MAAM,wBAAyB;MAC/B,WAAW,MAAM;MACjB,UAAU,aAAa,GAAG,KAAK,MAAM,IAAI;MACzC,WAAW,QAAQ,KAAK,WAAW,gBAAgB,GAAG,KAAK,MAAM,IAAI;KACzE,OAAO;MACH,IAAI,WAAW,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG;MAClD,IAAI,aAAa,MACb,WAAW;MACf,WAAW,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ;MACtC,UAAU,WAAW,qBAAqB,GAAG,KAAK,MAAM,IAAI;MAC5D,WAAW,QAAQ,KAAK,WAAW,QAAQ,KAAK,WAAW,UAAU,aAAa,GAAG,KAAK,MAAM,IAAI;KACxG;IACJ;GACJ;GAEA,UAAQ,gBAAgB,oBAAoB,KAAK,MAAM,aAAa,GAAG,CAAC;GACxE,UAAQ,gBAAgB,oBAAoB,KAAK,MAAM,aAAa,GAAG,CAAC;GAExE,SAAS,mBAAmB,UAAU,MAAM,MAAM,KAAK,KAAK;IACxD,IAAI,KAAK,SAAS,KAAK,MAAM,IAAI,GAC7B,KAAK,SAAS,KAAK,MAAM,IAAI;IACjC,IAAI,QAAQ,MAAM,MAAM,IAAI,GACxB,WAAW,OAAO,KAAK,MACvB,WAAW,cAAc,KAAK,WAAW;IAC7C,OAAO,aAAa,OACd,WACA,MACA,OAAO,WACP,aAAa,IACb,OAAO,SAAS,WAChB,OAAO,KAAK,IAAI,GAAG,WAAW,IAAI,KAAK,WAAW;GAC5D;GAEA,UAAQ,eAAe,mBAAmB,KAAK,MAAM,YAAY,GAAG,CAAC;GACrE,UAAQ,eAAe,mBAAmB,KAAK,MAAM,YAAY,GAAG,CAAC;EAEzE,EAAA,CAAG;EAEH,OAAOA;CACX;CAIA,SAAS,YAAY,KAAK,KAAK,KAAK;EAChC,IAAI,OAAY,MAAa;EAC7B,IAAI,MAAM,KAAM,QAAQ,IAAK;EAC7B,IAAI,MAAM,KAAM,QAAQ,KAAK;EAC7B,IAAI,MAAM,KAAM,QAAQ;CAC5B;CAEA,SAAS,YAAY,KAAK,KAAK,KAAK;EAChC,IAAI,OAAY,QAAQ;EACxB,IAAI,MAAM,KAAM,QAAQ,KAAK;EAC7B,IAAI,MAAM,KAAM,QAAQ,IAAK;EAC7B,IAAI,MAAM,KAAM,MAAa;CACjC;CAEA,SAAS,WAAW,KAAK,KAAK;EAC1B,QAAQ,IAAI,OACJ,IAAI,MAAM,MAAM,IAChB,IAAI,MAAM,MAAM,KAChB,IAAI,MAAM,MAAM,QAAQ;CACpC;CAEA,SAAS,WAAW,KAAK,KAAK;EAC1B,QAAQ,IAAI,QAAY,KAChB,IAAI,MAAM,MAAM,KAChB,IAAI,MAAM,MAAM,IAChB,IAAI,MAAM,QAAQ;CAC9B;;;;;CC7UA,OAAO,UAAU;;;;;;;CAQjB,SAAS,QAAQ,YAAY;EACzB,IAAI;GACA,IAAI,MAAM,KAAK,QAAQ,QAAQ,KAAI,IAAI,CAAC,CAAC,CAAC,UAAU;GACpD,IAAI,QAAQ,IAAI,UAAU,OAAO,KAAK,GAAG,CAAC,CAAC,SACvC,OAAO;EACf,SAAS,GAAG,CAAC;EACb,OAAO;CACX;;;;;;;;;;CCTA,IAAI,OAAO;;;;;;CAOX,KAAK,SAAS,SAAS,YAAY,QAAQ;EACvC,IAAI,MAAM,GACN,IAAI;EACR,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GAAG;GACpC,IAAI,OAAO,WAAW,CAAC;GACvB,IAAI,IAAI,KACJ,OAAO;QACN,IAAI,IAAI,MACT,OAAO;QACN,KAAK,IAAI,WAAY,UAAW,OAAO,WAAW,IAAI,CAAC,IAAI,WAAY,OAAQ;IAChF,EAAE;IACF,OAAO;GACX,OACI,OAAO;EACf;EACA,OAAO;CACX;;;;;;;;CASA,KAAK,OAAO,SAAS,UAAU,QAAQ,OAAO,KAAK;EAE/C,IADU,MAAM,QACN,GACN,OAAO;EACX,IAAI,QAAQ,MACR,QAAQ,CAAC,GACT,IAAI,GACJ;EACJ,OAAO,QAAQ,KAAK;GAChB,IAAI,OAAO;GACX,IAAI,IAAI,KACJ,MAAM,OAAO;QACZ,IAAI,IAAI,OAAO,IAAI,KACpB,MAAM,QAAQ,IAAI,OAAO,IAAI,OAAO,WAAW;QAC9C,IAAI,IAAI,OAAO,IAAI,KAAK;IACzB,MAAM,IAAI,MAAM,MAAM,OAAO,WAAW,OAAO,MAAM,OAAO,WAAW,OAAO,IAAI,OAAO,WAAW,MAAM;IAC1G,MAAM,OAAO,SAAU,KAAK;IAC5B,MAAM,OAAO,SAAU,IAAI;GAC/B,OACI,MAAM,QAAQ,IAAI,OAAO,MAAM,OAAO,WAAW,OAAO,IAAI,OAAO,WAAW;GAClF,IAAI,IAAI,MAAM;IACV,CAAC,UAAU,QAAQ,CAAC,GAAA,CAAI,KAAK,OAAO,aAAa,MAAM,QAAQ,KAAK,CAAC;IACrE,IAAI;GACR;EACJ;EACA,IAAI,OAAO;GACP,IAAI,GACA,MAAM,KAAK,OAAO,aAAa,MAAM,QAAQ,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC;GACnE,OAAO,MAAM,KAAK,EAAE;EACxB;EACA,OAAO,OAAO,aAAa,MAAM,QAAQ,MAAM,MAAM,GAAG,CAAC,CAAC;CAC9D;;;;;;;;CASA,KAAK,QAAQ,SAAS,WAAW,QAAQ,QAAQ,QAAQ;EACrD,IAAI,QAAQ,QACR,IACA;EACJ,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GAAG;GACpC,KAAK,OAAO,WAAW,CAAC;GACxB,IAAI,KAAK,KACL,OAAO,YAAY;QAChB,IAAI,KAAK,MAAM;IAClB,OAAO,YAAY,MAAM,IAAU;IACnC,OAAO,YAAY,KAAW,KAAK;GACvC,OAAO,KAAK,KAAK,WAAY,WAAY,KAAK,OAAO,WAAW,IAAI,CAAC,KAAK,WAAY,OAAQ;IAC1F,KAAK,UAAY,KAAK,SAAW,OAAO,KAAK;IAC7C,EAAE;IACF,OAAO,YAAY,MAAM,KAAU;IACnC,OAAO,YAAY,MAAM,KAAK,KAAK;IACnC,OAAO,YAAY,MAAM,IAAK,KAAK;IACnC,OAAO,YAAY,KAAW,KAAK;GACvC,OAAO;IACH,OAAO,YAAY,MAAM,KAAU;IACnC,OAAO,YAAY,MAAM,IAAK,KAAK;IACnC,OAAO,YAAY,KAAW,KAAK;GACvC;EACJ;EACA,OAAO,SAAS;CACpB;;;;;CCvGA,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BjB,SAAS,KAAK,OAAO,OAAO,MAAM;EAC9B,IAAI,OAAS,QAAQ;EACrB,IAAI,MAAS,SAAS;EACtB,IAAI,OAAS;EACb,IAAI,SAAS;EACb,OAAO,SAAS,WAAW,MAAM;GAC7B,IAAI,OAAO,KAAK,OAAO,KACnB,OAAO,MAAM,IAAI;GACrB,IAAI,SAAS,OAAO,MAAM;IACtB,OAAO,MAAM,IAAI;IACjB,SAAS;GACb;GACA,IAAI,MAAM,MAAM,KAAK,MAAM,QAAQ,UAAU,IAAI;GACjD,IAAI,SAAS,GACT,UAAU,SAAS,KAAK;GAC5B,OAAO;EACX;CACJ;;;;;CC9CA,OAAO,UAAU;CAEjB,IAAI,OAAA,kBAAA;;;;;;;;;CAUJ,SAAS,SAAS,IAAI,IAAI;;;;;EAStB,KAAK,KAAK,OAAO;;;;;EAMjB,KAAK,KAAK,OAAO;CACrB;;;;;;CAOA,IAAI,OAAO,SAAS,OAAO,IAAI,SAAS,GAAG,CAAC;CAE5C,KAAK,WAAW,WAAW;EAAE,OAAO;CAAG;CACvC,KAAK,WAAW,KAAK,WAAW,WAAW;EAAE,OAAO;CAAM;CAC1D,KAAK,SAAS,WAAW;EAAE,OAAO;CAAG;;;;;;CAOrC,IAAI,WAAW,SAAS,WAAW;;;;;;CAOnC,SAAS,aAAa,SAAS,WAAW,OAAO;EAC7C,IAAI,UAAU,GACV,OAAO;EACX,IAAI,OAAO,QAAQ;EACnB,IAAI,MACA,QAAQ,CAAC;EACb,IAAI,KAAK,UAAU,GACf,MAAM,QAAQ,MAAM,eAAe;EACvC,IAAI,MAAM;GACN,KAAK,CAAC,OAAO;GACb,KAAK,CAAC,OAAO;GACb,IAAI,EAAE,KAAK,YAAY;IACnB,KAAK;IACL,IAAI,EAAE,KAAK,YACP,KAAK;GACb;EACJ;EACA,OAAO,IAAI,SAAS,IAAI,EAAE;CAC9B;;;;;;CAOA,SAAS,OAAO,SAAS,KAAK,OAAO;EACjC,IAAI,OAAO,UAAU,UACjB,OAAO,SAAS,WAAW,KAAK;EACpC,IAAI,KAAK,SAAS,KAAK,GAAG;;GAEtB,IAAI,KAAK,MACL,QAAQ,KAAK,KAAK,WAAW,KAAK;QAElC,OAAO,SAAS,WAAW,SAAS,OAAO,EAAE,CAAC;EACtD;EACA,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI;CACvF;;;;;;CAOA,SAAS,UAAU,WAAW,SAAS,SAAS,UAAU;EACtD,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI;GAC7B,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,GACtB,KAAK,CAAC,KAAK,OAAW;GAC1B,IAAI,CAAC,IACD,KAAK,KAAK,MAAM;GACpB,OAAO,EAAE,KAAK,KAAK;EACvB;EACA,OAAO,KAAK,KAAK,KAAK,KAAK;CAC/B;CAOA,SAAS,UAAU,SAAS,SAAS,OAAO,UAAU;EAClD,OAAO,KAAK,OACN,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,QAAQ,QAAQ,CAAC,IAEzD;GAAE,KAAK,KAAK,KAAK;GAAG,MAAM,KAAK,KAAK;GAAG,UAAU,QAAQ,QAAQ;EAAE;CAC7E;CAEA,IAAI,aAAa,OAAO,UAAU;;;;;;CAOlC,SAAS,WAAW,SAAS,SAAS,MAAM;EACxC,IAAI,SAAS,UACT,OAAO;EACX,OAAO,IAAI,UACL,WAAW,KAAK,MAAM,CAAC,IACvB,WAAW,KAAK,MAAM,CAAC,KAAK,IAC5B,WAAW,KAAK,MAAM,CAAC,KAAK,KAC5B,WAAW,KAAK,MAAM,CAAC,KAAK,QAAQ,IAEpC,WAAW,KAAK,MAAM,CAAC,IACvB,WAAW,KAAK,MAAM,CAAC,KAAK,IAC5B,WAAW,KAAK,MAAM,CAAC,KAAK,KAC5B,WAAW,KAAK,MAAM,CAAC,KAAK,QAAQ,CAC1C;CACJ;;;;;CAMA,SAAS,UAAU,SAAS,SAAS,SAAS;EAC1C,OAAO,OAAO,aACV,KAAK,KAAY,KACjB,KAAK,OAAO,IAAK,KACjB,KAAK,OAAO,KAAK,KACjB,KAAK,OAAO,IACZ,KAAK,KAAY,KACjB,KAAK,OAAO,IAAK,KACjB,KAAK,OAAO,KAAK,KACjB,KAAK,OAAO,EAChB;CACJ;;;;;CAMA,SAAS,UAAU,WAAW,SAAS,WAAW;EAC9C,IAAI,OAAS,KAAK,MAAM;EACxB,KAAK,OAAQ,KAAK,MAAM,IAAI,KAAK,OAAO,MAAM,UAAU;EACxD,KAAK,MAAQ,KAAK,MAAM,IAAsB,UAAU;EACxD,OAAO;CACX;;;;;CAMA,SAAS,UAAU,WAAW,SAAS,WAAW;EAC9C,IAAI,OAAO,EAAE,KAAK,KAAK;EACvB,KAAK,OAAQ,KAAK,OAAO,IAAI,KAAK,MAAM,MAAM,UAAU;EACxD,KAAK,MAAQ,KAAK,OAAO,IAAqB,UAAU;EACxD,OAAO;CACX;;;;;CAMA,SAAS,UAAU,SAAS,SAAS,SAAS;EAC1C,IAAI,QAAS,KAAK,IACd,SAAS,KAAK,OAAO,KAAK,KAAK,MAAM,OAAO,GAC5C,QAAS,KAAK,OAAO;EACzB,OAAO,UAAU,IACV,UAAU,IACR,QAAQ,QACN,QAAQ,MAAM,IAAI,IAClB,QAAQ,UAAU,IAAI,IACxB,QAAQ,QACN,QAAQ,MAAM,IAAI,IAClB,QAAQ,UAAU,IAAI,IAC1B,QAAQ,MAAM,IAAI;CAC7B;;;;;CCtMA,IAAI,OAAO;CAGX,KAAK,YAAA,kBAAA;CAGL,KAAK,SAAA,eAAA;CAGL,KAAK,eAAA,qBAAA;CAGL,KAAK,QAAA,cAAA;CAGL,KAAK,UAAA,gBAAA;CAGL,KAAK,OAAA,aAAA;CAGL,KAAK,OAAA,aAAA;CAGL,KAAK,WAAA,iBAAA;CAGL,KAAK,SAAS,OAAO,WAAW,eAAe,UACjC,OAAO,WAAW,eAAe,UACjC,OAAO,SAAW,eAAe,QAAA;;;;;;;CAS/C,KAAK,aAAa,OAAO,SAAS,OAAO,OAAO,CAAC,CAAC,+BAA+B,CAAC;;;;;;CAOlF,KAAK,cAAc,OAAO,SAAS,OAAO,OAAO,CAAC,CAAC,+BAA+B,CAAC;;;;;;;CAQnF,KAAK,SAAS,QAAQ,KAAK,OAAO,WAAW,KAAK,OAAO,QAAQ,YAAY,KAAK,OAAO,QAAQ,SAAS,IAAI;;;;;;;CAQ9G,KAAK,YAAY,OAAO,wCAAwC,SAAS,UAAU,OAAO;EACtF,OAAO,OAAO,UAAU,YAAY,SAAS,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM;CACjF;;;;;;CAOA,KAAK,WAAW,SAAS,SAAS,OAAO;EACrC,OAAO,OAAO,UAAU,YAAY,iBAAiB;CACzD;;;;;;CAOA,KAAK,WAAW,SAAS,SAAS,OAAO;EACrC,OAAO,SAAS,OAAO,UAAU;CACrC;;;;;;;;;CAUA,KAAK,QAQL,KAAK,QAAQ,SAAS,MAAM,KAAK,MAAM;EACnC,IAAI,QAAQ,IAAI;EAChB,IAAI,SAAS,QAAQ,IAAI,eAAe,IAAI,GACxC,OAAO,OAAO,UAAU,aAAa,MAAM,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,KAAK,KAAK,CAAC,CAAC,UAAU;EAC5G,OAAO;CACX;;;;;;;;;;;CAaA,KAAK,UAAU,WAAW;EACtB,IAAI;GACA,IAAI,SAAS,KAAK,QAAQ,QAAQ,CAAC,CAAC;GAEpC,OAAO,OAAO,UAAU,YAAY,oCAAoC;EAC5E,SAAS,GAAG;;GAER,OAAO;EACX;CACJ,EAAA,CAAG;CAGH,KAAK,eAAe;CAGpB,KAAK,sBAAsB;;;;;;CAO3B,KAAK,YAAY,SAAS,UAAU,aAAa;;EAE7C,OAAO,OAAO,gBAAgB,WACxB,KAAK,SACD,KAAK,oBAAoB,WAAW,IACpC,IAAI,KAAK,MAAM,WAAW,IAC9B,KAAK,SACD,KAAK,aAAa,WAAW,IAC7B,OAAO,eAAe,cAClB,cACA,IAAI,WAAW,WAAW;CAC5C;;;;;CAMA,KAAK,QAAQ,OAAO,eAAe,cAAc,aAAwC;CAOzF,KAAK,OAAQ,OAAO,YAAY,eAAe,QAAQ,IAAI,yCAA2C,KAAK,OAAO,sCAAsC,KAAK,OAAO,QAAQ,mCACrI,KAAK,OAAO,QACvC,KAAK,QAAQ,MAAM,IAAK,KAAA;;;;;;CAOpC,KAAK,SAAS;;;;;;CAOd,KAAK,UAAU;;;;;;CAOf,KAAK,UAAU;CAOf,KAAK,aAAa,SAAS,WAAW,OAAO;EACzC,OAAO,QACD,KAAK,SAAS,KAAK,KAAK,CAAC,CAAC,OAAO,IACjC,KAAK,SAAS;CACxB;CAQA,KAAK,eAAe,SAAS,aAAa,MAAM,UAAU;EACtD,IAAI,OAAO,KAAK,SAAS,SAAS,IAAI;EACtC,IAAI,KAAK,MACL,OAAO,KAAK,KAAK,SAAS,KAAK,IAAI,KAAK,IAAI,QAAQ;EACxD,OAAO,KAAK,SAAS,QAAQ,QAAQ,CAAC;CAC1C;;;;;;;;;CAUA,SAAS,MAAM,KAAK,KAAK,UAAU;EAC/B,KAAK,IAAI,OAAO,OAAO,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GACxD,IAAI,IAAI,KAAK,QAAQ,KAAA,KAAa,CAAC,UAC/B,IAAI,KAAK,MAAM,IAAI,KAAK;EAChC,OAAO;CACX;CAEA,KAAK,QAAQ;;;;;;CAOb,KAAK,UAAU,SAAS,QAAQ,KAAK;EACjC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,UAAU,CAAC;CACxD;;;;;;;CAQA,SAAS,SAAS,MAAM;EAEpB,SAAS,YAAY,SAAS,YAAY;GAEtC,IAAI,EAAE,gBAAgB,cAClB,OAAO,IAAI,YAAY,SAAS,UAAU;GAK9C,OAAO,eAAe,MAAM,WAAW,EAAE,KAAK,WAAW;IAAE,OAAO;GAAS,EAAE,CAAC;;GAG9E,IAAI,MAAM,mBACN,MAAM,kBAAkB,MAAM,WAAW;QAEzC,OAAO,eAAe,MAAM,SAAS,EAAE,wBAAQ,IAAI,MAAM,EAAA,CAAG,SAAS,GAAG,CAAC;GAE7E,IAAI,YACA,MAAM,MAAM,UAAU;EAC9B;EAEA,CAAC,YAAY,YAAY,OAAO,OAAO,MAAM,SAAS,EAAA,CAAG,cAAc;EAEvE,OAAO,eAAe,YAAY,WAAW,QAAQ,EAAE,KAAK,WAAW;GAAE,OAAO;EAAM,EAAE,CAAC;EAEzF,YAAY,UAAU,WAAW,SAAS,WAAW;GACjD,OAAO,KAAK,OAAO,OAAO,KAAK;EACnC;EAEA,OAAO;CACX;CAEA,KAAK,WAAW;;;;;;;;;;;;;;;;;;CAmBhB,KAAK,gBAAgB,SAAS,eAAe;;;;;;;;;;;;;;;;;CAoB7C,KAAK,cAAc,SAAS,SAAS,YAAY;EAC7C,IAAI,WAAW,CAAC;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,EAAE,GACrC,SAAS,WAAW,MAAM;;;;;;EAO9B,OAAO,WAAW;GACd,KAAK,IAAI,OAAO,OAAO,KAAK,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,IAAI,EAAE,GAC9D,IAAI,SAAS,KAAK,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAA,KAAa,KAAK,KAAK,QAAQ,MAC5E,OAAO,KAAK;EACxB;CACJ;;;;;;;;;;;;;CAeA,KAAK,cAAc,SAAS,SAAS,YAAY;;;;;;;EAQ7C,OAAO,SAAS,MAAM;GAClB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,EAAE,GACrC,IAAI,WAAW,OAAO,MAClB,OAAO,KAAK,WAAW;EACnC;CACJ;;;;;;;;;;;;;;;;;CAkBA,KAAK,gBAAgB;EACjB,OAAO;EACP,OAAO;EACP,OAAO;EACP,MAAM;CACV;CAGA,KAAK,aAAa,WAAW;EACzB,IAAI,SAAS,KAAK;;EAElB,IAAI,CAAC,QAAQ;GACT,KAAK,eAAe,KAAK,sBAAsB;GAC/C;EACJ;EAGA,KAAK,eAAe,OAAO,SAAS,WAAW,QAAQ,OAAO;;EAE1D,SAAS,YAAY,OAAO,UAAU;GAClC,OAAO,IAAI,OAAO,OAAO,QAAQ;EACrC;EACJ,KAAK,sBAAsB,OAAO;;EAE9B,SAAS,mBAAmB,MAAM;GAC9B,OAAO,IAAI,OAAO,IAAI;EAC1B;CACR;;;;;CCpZA,OAAO,UAAU;CAEjB,IAAI,OAAA,kBAAA;CAEJ,IAAI;CAEJ,IAAI,WAAY,KAAK;CACjB,IAAA,SAAY,KAAK;CACjB,IAAA,OAAY,KAAK;;;;;;;;;;CAWrB,SAAS,GAAG,IAAI,KAAK,KAAK;;;;;EAMtB,KAAK,KAAK;;;;;EAMV,KAAK,MAAM;;;;;EAMX,KAAK,OAAO,KAAA;;;;;EAMZ,KAAK,MAAM;CACf;;CAGA,SAAS,OAAO,CAAC;;;;;;;;;CAUjB,SAAS,MAAM,QAAQ;;;;;EAMnB,KAAK,OAAO,OAAO;;;;;EAMnB,KAAK,OAAO,OAAO;;;;;EAMnB,KAAK,MAAM,OAAO;;;;;EAMlB,KAAK,OAAO,OAAO;CACvB;;;;;;CAOA,SAAS,SAAS;;;;;EAMd,KAAK,MAAM;;;;;EAMX,KAAK,OAAO,IAAI,GAAG,MAAM,GAAG,CAAC;;;;;EAM7B,KAAK,OAAO,KAAK;;;;;EAMjB,KAAK,SAAS;CAOlB;;;;;;CAOA,OAAO,SAAS,KAAK,SACf,SAAS,sBAAsB;EAC7B,QAAQ,OAAO,SAAS,SAAS,gBAAgB;GAC7C,OAAO,IAAI,aAAa;EAC5B,EAAA,CAAG;CACP,IAEE,SAAS,eAAe;EACtB,OAAO,IAAI,OAAO;CACtB;;;;;;CAOJ,OAAO,QAAQ,SAAS,MAAM,MAAM;EAChC,OAAO,IAAI,KAAK,MAAM,IAAI;CAC9B;;CAIA,IAAI,KAAK,UAAU,OACf,OAAO,QAAQ,KAAK,KAAK,OAAO,OAAO,KAAK,MAAM,UAAU,QAAQ;;;;;;;;;CAUxE,OAAO,UAAU,QAAQ,SAAS,KAAK,IAAI,KAAK,KAAK;EACjD,KAAK,OAAO,KAAK,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,GAAG;EAChD,KAAK,OAAO;EACZ,OAAO;CACX;CAEA,SAAS,UAAU,KAAK,KAAK,KAAK;EAC9B,IAAI,OAAO,MAAM;CACrB;CAEA,SAAS,cAAc,KAAK,KAAK,KAAK;EAClC,OAAO,MAAM,KAAK;GACd,IAAI,SAAS,MAAM,MAAM;GACzB,SAAS;EACb;EACA,IAAI,OAAO;CACf;;;;;;;;;;CAWA,SAAS,SAAS,KAAK,KAAK;EACxB,KAAK,MAAM;EACX,KAAK,OAAO,KAAA;EACZ,KAAK,MAAM;CACf;CAEA,SAAS,YAAY,OAAO,OAAO,GAAG,SAAS;CAC/C,SAAS,UAAU,KAAK;;;;;;CAOxB,OAAO,UAAU,SAAS,SAAS,aAAa,OAAO;EAGnD,KAAK,QAAQ,KAAK,OAAO,KAAK,KAAK,OAAO,IAAI,UACzC,QAAQ,UAAU,KACT,MAAY,IACpB,QAAQ,QAAY,IACpB,QAAQ,UAAY,IACpB,QAAQ,YAAY,IACA,GAC1B,KAAK,EAAA,CAAG;EACR,OAAO;CACX;;;;;;;CAQA,OAAO,UAAU,QAAQ,SAAS,YAAY,OAAO;EACjD,OAAO,QAAQ,IACT,KAAK,MAAM,eAAe,IAAI,SAAS,WAAW,KAAK,CAAC,IACxD,KAAK,OAAO,KAAK;CAC3B;;;;;;CAOA,OAAO,UAAU,SAAS,SAAS,aAAa,OAAO;EACnD,OAAO,KAAK,QAAQ,SAAS,IAAI,SAAS,QAAQ,CAAC;CACvD;CAEA,SAAS,cAAc,KAAK,KAAK,KAAK;EAClC,OAAO,IAAI,IAAI;GACX,IAAI,SAAS,IAAI,KAAK,MAAM;GAC5B,IAAI,MAAM,IAAI,OAAO,IAAI,IAAI,MAAM,QAAQ;GAC3C,IAAI,QAAQ;EAChB;EACA,OAAO,IAAI,KAAK,KAAK;GACjB,IAAI,SAAS,IAAI,KAAK,MAAM;GAC5B,IAAI,KAAK,IAAI,OAAO;EACxB;EACA,IAAI,SAAS,IAAI;CACrB;;;;;;;CAQA,OAAO,UAAU,SAAS,SAAS,aAAa,OAAO;EACnD,IAAI,OAAO,SAAS,KAAK,KAAK;EAC9B,OAAO,KAAK,MAAM,eAAe,KAAK,OAAO,GAAG,IAAI;CACxD;;;;;;;;CASA,OAAO,UAAU,QAAQ,OAAO,UAAU;;;;;;;CAQ1C,OAAO,UAAU,SAAS,SAAS,aAAa,OAAO;EACnD,IAAI,OAAO,SAAS,KAAK,KAAK,CAAC,CAAC,SAAS;EACzC,OAAO,KAAK,MAAM,eAAe,KAAK,OAAO,GAAG,IAAI;CACxD;;;;;;CAOA,OAAO,UAAU,OAAO,SAAS,WAAW,OAAO;EAC/C,OAAO,KAAK,MAAM,WAAW,GAAG,QAAQ,IAAI,CAAC;CACjD;CAEA,SAAS,aAAa,KAAK,KAAK,KAAK;EACjC,IAAI,OAAY,MAAc;EAC9B,IAAI,MAAM,KAAM,QAAQ,IAAM;EAC9B,IAAI,MAAM,KAAM,QAAQ,KAAM;EAC9B,IAAI,MAAM,KAAM,QAAQ;CAC5B;;;;;;CAOA,OAAO,UAAU,UAAU,SAAS,cAAc,OAAO;EACrD,OAAO,KAAK,MAAM,cAAc,GAAG,UAAU,CAAC;CAClD;;;;;;;CAQA,OAAO,UAAU,WAAW,OAAO,UAAU;;;;;;;CAQ7C,OAAO,UAAU,UAAU,SAAS,cAAc,OAAO;EACrD,IAAI,OAAO,SAAS,KAAK,KAAK;EAC9B,OAAO,KAAK,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE;CAC9E;;;;;;;;CASA,OAAO,UAAU,WAAW,OAAO,UAAU;;;;;;;CAQ7C,OAAO,UAAU,QAAQ,SAAS,YAAY,OAAO;EACjD,OAAO,KAAK,MAAM,KAAK,MAAM,cAAc,GAAG,KAAK;CACvD;;;;;;;CAQA,OAAO,UAAU,SAAS,SAAS,aAAa,OAAO;EACnD,OAAO,KAAK,MAAM,KAAK,MAAM,eAAe,GAAG,KAAK;CACxD;CAEA,IAAI,aAAa,KAAK,MAAM,UAAU,MAChC,SAAS,eAAe,KAAK,KAAK,KAAK;EACrC,IAAI,IAAI,KAAK,GAAG;CACpB,IAEE,SAAS,eAAe,KAAK,KAAK,KAAK;EACrC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAC9B,IAAI,MAAM,KAAK,IAAI;CAC3B;;;;;;CAOJ,OAAO,UAAU,QAAQ,SAAS,YAAY,OAAO;EACjD,IAAI,MAAM,MAAM,WAAW;EAC3B,IAAI,CAAC,KACD,OAAO,KAAK,MAAM,WAAW,GAAG,CAAC;EACrC,IAAI,KAAK,SAAS,KAAK,GAAG;GACtB,IAAI,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,KAAK,CAAC;GACjD,OAAO,OAAO,OAAO,KAAK,CAAC;GAC3B,QAAQ;EACZ;EACA,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC,MAAM,YAAY,KAAK,KAAK;CACxD;;;;;;CAOA,OAAO,UAAU,SAAS,SAAS,aAAa,OAAO;EACnD,IAAI,MAAM,KAAK,OAAO,KAAK;EAC3B,OAAO,MACD,KAAK,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,OAAO,KAAK,KAAK,IAC7C,KAAK,MAAM,WAAW,GAAG,CAAC;CACpC;;;;;;CAOA,OAAO,UAAU,OAAO,SAAS,OAAO;EACpC,KAAK,SAAS,IAAI,MAAM,IAAI;EAC5B,KAAK,OAAO,KAAK,OAAO,IAAI,GAAG,MAAM,GAAG,CAAC;EACzC,KAAK,MAAM;EACX,OAAO;CACX;;;;;CAMA,OAAO,UAAU,QAAQ,SAAS,QAAQ;EACtC,IAAI,KAAK,QAAQ;GACb,KAAK,OAAS,KAAK,OAAO;GAC1B,KAAK,OAAS,KAAK,OAAO;GAC1B,KAAK,MAAS,KAAK,OAAO;GAC1B,KAAK,SAAS,KAAK,OAAO;EAC9B,OAAO;GACH,KAAK,OAAO,KAAK,OAAO,IAAI,GAAG,MAAM,GAAG,CAAC;GACzC,KAAK,MAAO;EAChB;EACA,OAAO;CACX;;;;;CAMA,OAAO,UAAU,SAAS,SAAS,SAAS;EACxC,IAAI,OAAO,KAAK,MACZ,OAAO,KAAK,MACZ,MAAO,KAAK;EAChB,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG;EACvB,IAAI,KAAK;GACL,KAAK,KAAK,OAAO,KAAK;GACtB,KAAK,OAAO;GACZ,KAAK,OAAO;EAChB;EACA,OAAO;CACX;;;;;CAMA,OAAO,UAAU,SAAS,SAAS,SAAS;EACxC,IAAI,OAAO,KAAK,KAAK,MACjB,MAAO,KAAK,YAAY,MAAM,KAAK,GAAG,GACtC,MAAO;EACX,OAAO,MAAM;GACT,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG;GAC1B,OAAO,KAAK;GACZ,OAAO,KAAK;EAChB;EAEA,OAAO;CACX;CAEA,OAAO,aAAa,SAAS,eAAe;EACxC,eAAe;CACnB;;;;;CCzcA,OAAO,UAAU;CAGjB,IAAI,SAAA,eAAA;CACJ,CAAC,aAAa,YAAY,OAAO,OAAO,OAAO,SAAS,EAAA,CAAG,cAAc;CAEzE,IAAI,OAAA,kBAAA;CAEJ,IAAI,SAAS,KAAK;;;;;;;CAQlB,SAAS,eAAe;EACpB,OAAO,KAAK,IAAI;CACpB;;;;;;CAOA,aAAa,QAAQ,SAAS,aAAa,MAAM;EAC7C,QAAQ,aAAa,QAAQ,KAAK,oBAAA,CAAqB,IAAI;CAC/D;CAEA,IAAI,mBAAmB,UAAU,OAAO,qBAAqB,cAAc,OAAO,UAAU,IAAI,SAAS,QACnG,SAAS,qBAAqB,KAAK,KAAK,KAAK;EAC3C,IAAI,IAAI,KAAK,GAAG;CAEpB,IAEE,SAAS,sBAAsB,KAAK,KAAK,KAAK;EAC5C,IAAI,IAAI,MACJ,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,MAAM;OAC/B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,SACzB,IAAI,SAAS,IAAI;CACzB;;;;CAKJ,aAAa,UAAU,QAAQ,SAAS,mBAAmB,OAAO;EAC9D,IAAI,KAAK,SAAS,KAAK,GACnB,QAAQ,KAAK,aAAa,OAAO,QAAQ;EAC7C,IAAI,MAAM,MAAM,WAAW;EAC3B,KAAK,OAAO,GAAG;EACf,IAAI,KACA,KAAK,MAAM,kBAAkB,KAAK,KAAK;EAC3C,OAAO;CACX;CAEA,SAAS,kBAAkB,KAAK,KAAK,KAAK;EACtC,IAAI,IAAI,SAAS,IACb,KAAK,KAAK,MAAM,KAAK,KAAK,GAAG;OAE7B,IAAI,UAAU,KAAK,GAAG;CAC9B;;;;CAKA,aAAa,UAAU,SAAS,SAAS,oBAAoB,OAAO;EAChE,IAAI,MAAM,OAAO,WAAW,KAAK;EACjC,KAAK,OAAO,GAAG;EACf,IAAI,KACA,KAAK,MAAM,mBAAmB,KAAK,KAAK;EAC5C,OAAO;CACX;;;;;;;;;;;CCvEA,OAAO,UAAU;CAEjB,IAAI,OAAA,kBAAA;CAEJ,IAAI;CAEJ,IAAI,WAAY,KAAK;CACjB,IAAA,OAAY,KAAK;;CAGrB,SAAS,gBAAgB,QAAQ,aAAa;EAC1C,OAAO,WAAW,yBAAyB,OAAO,MAAM,SAAS,eAAe,KAAK,QAAQ,OAAO,GAAG;CAC3G;;;;;;;CAQA,SAAS,OAAO,QAAQ;;;;;EAMpB,KAAK,MAAM;;;;;EAMX,KAAK,MAAM;;;;;EAMX,KAAK,MAAM,OAAO;CACtB;CAEA,IAAI,eAAe,OAAO,eAAe,cACnC,SAAS,mBAAmB,QAAQ;EAClC,IAAI,kBAAkB,cAAc,MAAM,QAAQ,MAAM,GACpD,OAAO,IAAI,OAAO,MAAM;EAC5B,MAAM,MAAM,gBAAgB;CAChC,IAEE,SAAS,aAAa,QAAQ;EAC5B,IAAI,MAAM,QAAQ,MAAM,GACpB,OAAO,IAAI,OAAO,MAAM;EAC5B,MAAM,MAAM,gBAAgB;CAChC;;;;;;;;CASJ,OAAO,SAAS,KAAK,SACf,SAAS,oBAAoB,QAAQ;EACnC,QAAQ,OAAO,SAAS,SAAS,cAAc,QAAQ;GACnD,OAAO,KAAK,OAAO,SAAS,MAAM,IAC5B,IAAI,aAAa,MAAM,IAEvB,aAAa,MAAM;EAC7B,EAAA,CAAG,MAAM;CACb,IAEE;CAEN,OAAO,UAAU,SAAS,KAAK,MAAM,UAAU,uCAAuC,KAAK,MAAM,UAAU;;;;;;CAO3G,OAAO,UAAU,UAAU,SAAS,oBAAoB;EACpD,IAAI,QAAQ;EACZ,OAAO,SAAS,cAAc;GAC1B,SAAkB,KAAK,IAAI,KAAK,OAAO,SAAgB;GAAG,IAAI,KAAK,IAAI,KAAK,SAAS,KAAK,OAAO;GACjG,SAAS,SAAS,KAAK,IAAI,KAAK,OAAO,QAAS,OAAO;GAAG,IAAI,KAAK,IAAI,KAAK,SAAS,KAAK,OAAO;GACjG,SAAS,SAAS,KAAK,IAAI,KAAK,OAAO,QAAQ,QAAQ;GAAG,IAAI,KAAK,IAAI,KAAK,SAAS,KAAK,OAAO;GACjG,SAAS,SAAS,KAAK,IAAI,KAAK,OAAO,QAAQ,QAAQ;GAAG,IAAI,KAAK,IAAI,KAAK,SAAS,KAAK,OAAO;GACjG,SAAS,SAAS,KAAK,IAAI,KAAK,OAAQ,OAAO,QAAQ;GAAG,IAAI,KAAK,IAAI,KAAK,SAAS,KAAK,OAAO;;GAGjG,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK;IAC5B,KAAK,MAAM,KAAK;IAChB,MAAM,gBAAgB,MAAM,EAAE;GAClC;GACA,OAAO;EACX;CACJ,EAAA,CAAG;;;;;CAMH,OAAO,UAAU,QAAQ,SAAS,aAAa;EAC3C,OAAO,KAAK,OAAO,IAAI;CAC3B;;;;;CAMA,OAAO,UAAU,SAAS,SAAS,cAAc;EAC7C,IAAI,QAAQ,KAAK,OAAO;EACxB,OAAO,UAAU,IAAI,EAAE,QAAQ,KAAK;CACxC;CAIA,SAAS,iBAAiB;EAEtB,IAAI,OAAO,IAAI,SAAS,GAAG,CAAC;EAC5B,IAAI,IAAI;EACR,IAAI,KAAK,MAAM,KAAK,MAAM,GAAG;GACzB,OAAO,IAAI,GAAG,EAAE,GAAG;IAEf,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,OAAO;IAC9D,IAAI,KAAK,IAAI,KAAK,SAAS,KACvB,OAAO;GACf;GAEA,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,QAAQ,QAAQ;GAC3D,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,QAAS,OAAO;GAC3D,IAAI,KAAK,IAAI,KAAK,SAAS,KACvB,OAAO;GACX,IAAI;EACR,OAAO;GACH,OAAO,IAAI,GAAG,EAAE,GAAG;;IAEf,IAAI,KAAK,OAAO,KAAK,KACjB,MAAM,gBAAgB,IAAI;IAE9B,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,OAAO;IAC9D,IAAI,KAAK,IAAI,KAAK,SAAS,KACvB,OAAO;GACf;GAEA,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,SAAS,QAAQ,IAAI,OAAO;GAChE,OAAO;EACX;EACA,IAAI,KAAK,MAAM,KAAK,MAAM,GACtB,OAAO,IAAI,GAAG,EAAE,GAAG;GAEf,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,IAAI,OAAO;GAClE,IAAI,KAAK,IAAI,KAAK,SAAS,KACvB,OAAO;EACf;OAEA,OAAO,IAAI,GAAG,EAAE,GAAG;;GAEf,IAAI,KAAK,OAAO,KAAK,KACjB,MAAM,gBAAgB,IAAI;GAE9B,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,IAAI,OAAO;GAClE,IAAI,KAAK,IAAI,KAAK,SAAS,KACvB,OAAO;EACf;;EAGJ,MAAM,MAAM,yBAAyB;CACzC;;;;;CA6BA,OAAO,UAAU,OAAO,SAAS,YAAY;EACzC,OAAO,KAAK,OAAO,MAAM;CAC7B;CAEA,SAAS,gBAAgB,KAAK,KAAK;EAC/B,QAAQ,IAAI,MAAM,KACV,IAAI,MAAM,MAAM,IAChB,IAAI,MAAM,MAAM,KAChB,IAAI,MAAM,MAAM,QAAQ;CACpC;;;;;CAMA,OAAO,UAAU,UAAU,SAAS,eAAe;;EAG/C,IAAI,KAAK,MAAM,IAAI,KAAK,KACpB,MAAM,gBAAgB,MAAM,CAAC;EAEjC,OAAO,gBAAgB,KAAK,KAAK,KAAK,OAAO,CAAC;CAClD;;;;;CAMA,OAAO,UAAU,WAAW,SAAS,gBAAgB;;EAGjD,IAAI,KAAK,MAAM,IAAI,KAAK,KACpB,MAAM,gBAAgB,MAAM,CAAC;EAEjC,OAAO,gBAAgB,KAAK,KAAK,KAAK,OAAO,CAAC,IAAI;CACtD;CAIA,SAAS,cAAgC;;EAGrC,IAAI,KAAK,MAAM,IAAI,KAAK,KACpB,MAAM,gBAAgB,MAAM,CAAC;EAEjC,OAAO,IAAI,SAAS,gBAAgB,KAAK,KAAK,KAAK,OAAO,CAAC,GAAG,gBAAgB,KAAK,KAAK,KAAK,OAAO,CAAC,CAAC;CAC1G;;;;;;CAuBA,OAAO,UAAU,QAAQ,SAAS,aAAa;;EAG3C,IAAI,KAAK,MAAM,IAAI,KAAK,KACpB,MAAM,gBAAgB,MAAM,CAAC;EAEjC,IAAI,QAAQ,KAAK,MAAM,YAAY,KAAK,KAAK,KAAK,GAAG;EACrD,KAAK,OAAO;EACZ,OAAO;CACX;;;;;;CAOA,OAAO,UAAU,SAAS,SAAS,cAAc;;EAG7C,IAAI,KAAK,MAAM,IAAI,KAAK,KACpB,MAAM,gBAAgB,MAAM,CAAC;EAEjC,IAAI,QAAQ,KAAK,MAAM,aAAa,KAAK,KAAK,KAAK,GAAG;EACtD,KAAK,OAAO;EACZ,OAAO;CACX;;;;;CAMA,OAAO,UAAU,QAAQ,SAAS,aAAa;EAC3C,IAAI,SAAS,KAAK,OAAO,GACrB,QAAS,KAAK,KACd,MAAS,KAAK,MAAM;;EAGxB,IAAI,MAAM,KAAK,KACX,MAAM,gBAAgB,MAAM,MAAM;EAEtC,KAAK,OAAO;EACZ,IAAI,MAAM,QAAQ,KAAK,GAAG,GACtB,OAAO,KAAK,IAAI,MAAM,OAAO,GAAG;EACpC,OAAO,UAAU,MACX,IAAI,KAAK,IAAI,YAAY,CAAC,IAC1B,KAAK,OAAO,KAAK,KAAK,KAAK,OAAO,GAAG;CAC/C;;;;;CAMA,OAAO,UAAU,SAAS,SAAS,cAAc;EAC7C,IAAI,QAAQ,KAAK,MAAM;EACvB,OAAO,KAAK,KAAK,OAAO,GAAG,MAAM,MAAM;CAC3C;;;;;;CAOA,OAAO,UAAU,OAAO,SAAS,KAAK,QAAQ;EAC1C,IAAI,OAAO,WAAW,UAAU;;GAE5B,IAAI,KAAK,MAAM,SAAS,KAAK,KACzB,MAAM,gBAAgB,MAAM,MAAM;GACtC,KAAK,OAAO;EAChB,OACI;;GAEI,IAAI,KAAK,OAAO,KAAK,KACjB,MAAM,gBAAgB,IAAI;SACzB,KAAK,IAAI,KAAK,SAAS;EAEpC,OAAO;CACX;;;;;;CAOA,OAAO,UAAU,WAAW,SAAS,UAAU;EAC3C,QAAQ,UAAR;GACI,KAAK;IACD,KAAK,KAAK;IACV;GACJ,KAAK;IACD,KAAK,KAAK,CAAC;IACX;GACJ,KAAK;IACD,KAAK,KAAK,KAAK,OAAO,CAAC;IACvB;GACJ,KAAK;IACD,QAAQ,WAAW,KAAK,OAAO,IAAI,OAAO,GACtC,KAAK,SAAS,QAAQ;IAE1B;GACJ,KAAK;IACD,KAAK,KAAK,CAAC;IACX;;GAGJ,SACI,MAAM,MAAM,uBAAuB,WAAW,gBAAgB,KAAK,GAAG;EAC9E;EACA,OAAO;CACX;CAEA,OAAO,aAAa,SAAS,eAAe;EACxC,eAAe;EAEf,IAAI,KAAK,KAAK,OAAO,sCAAsC;EAC3D,KAAK,MAAM,OAAO,WAAW;GAEzB,OAAO,SAAS,aAAa;IACzB,OAAO,eAAe,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK;GAC9C;GAEA,QAAQ,SAAS,cAAc;IAC3B,OAAO,eAAe,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI;GAC7C;GAEA,QAAQ,SAAS,cAAc;IAC3B,OAAO,eAAe,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK;GACzD;GAEA,SAAS,SAAS,eAAe;IAC7B,OAAO,YAAY,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI;GAC1C;GAEA,UAAU,SAAS,gBAAgB;IAC/B,OAAO,YAAY,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK;GAC3C;EAEJ,CAAC;CACL;;;;;CCnZA,OAAO,UAAU;CAGjB,IAAI,SAAA,eAAA;CACJ,CAAC,aAAa,YAAY,OAAO,OAAO,OAAO,SAAS,EAAA,CAAG,cAAc;CAEzE,IAAI,OAAA,kBAAA;;;;;;;;CASJ,SAAS,aAAa,QAAQ;EAC1B,OAAO,KAAK,MAAM,MAAM;;;;;;CAO5B;;CAGA,IAAI,KAAK,QACL,aAAa,UAAU,SAAS,KAAK,OAAO,UAAU;;;;CAK1D,aAAa,UAAU,SAAS,SAAS,qBAAqB;EAC1D,IAAI,MAAM,KAAK,OAAO;EACtB,OAAO,KAAK,IAAI,UAAU,KAAK,KAAK,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,KAAK,KAAK,GAAG,CAAC;CACrF;;;;;;;;;;;CCnCA,OAAO,UAAU;CAEjB,IAAI,OAAA,kBAAA;CAGJ,CAAC,QAAQ,YAAY,OAAO,OAAO,KAAK,aAAa,SAAS,EAAA,CAAG,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC/E,SAAS,QAAQ,SAAS,kBAAkB,mBAAmB;EAE3D,IAAI,OAAO,YAAY,YACnB,MAAM,UAAU,4BAA4B;EAEhD,KAAK,aAAa,KAAK,IAAI;;;;;EAM3B,KAAK,UAAU;;;;;EAMf,KAAK,mBAAmB,QAAQ,gBAAgB;;;;;EAMhD,KAAK,oBAAoB,QAAQ,iBAAiB;CACtD;;;;;;;;;;;;CAaA,QAAQ,UAAU,UAAU,SAAS,QAAQ,QAAQ,aAAa,cAAc,SAAS,UAAU;EAE/F,IAAI,CAAC,SACD,MAAM,UAAU,2BAA2B;EAE/C,IAAI,OAAO;EACX,IAAI,CAAC,UACD,OAAO,KAAK,UAAU,SAAS,MAAM,QAAQ,aAAa,cAAc,OAAO;EAEnF,IAAI,CAAC,KAAK,SAAS;GACf,WAAW,WAAW;IAAE,SAAS,MAAM,eAAe,CAAC;GAAG,GAAG,CAAC;GAC9D;EACJ;EAEA,IAAI;GACA,OAAO,KAAK,QACR,QACA,YAAY,KAAK,mBAAmB,oBAAoB,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,GAClF,SAAS,YAAY,KAAK,UAAU;IAEhC,IAAI,KAAK;KACL,KAAK,KAAK,SAAS,KAAK,MAAM;KAC9B,OAAO,SAAS,GAAG;IACvB;IAEA,IAAI,aAAa,MAAM;KACnB,KAAK,IAAqB,IAAI;KAC9B;IACJ;IAEA,IAAI,EAAE,oBAAoB,eACtB,IAAI;KACA,WAAW,aAAa,KAAK,oBAAoB,oBAAoB,SAAS,CAAC,QAAQ;IAC3F,SAAS,KAAK;KACV,KAAK,KAAK,SAAS,KAAK,MAAM;KAC9B,OAAO,SAAS,GAAG;IACvB;IAGJ,KAAK,KAAK,QAAQ,UAAU,MAAM;IAClC,OAAO,SAAS,MAAM,QAAQ;GAClC,CACJ;EACJ,SAAS,KAAK;GACV,KAAK,KAAK,SAAS,KAAK,MAAM;GAC9B,WAAW,WAAW;IAAE,SAAS,GAAG;GAAG,GAAG,CAAC;GAC3C;EACJ;CACJ;;;;;;CAOA,QAAQ,UAAU,MAAM,SAAS,IAAI,YAAY;EAC7C,IAAI,KAAK,SAAS;GACd,IAAI,CAAC,YACD,KAAK,QAAQ,MAAM,MAAM,IAAI;GACjC,KAAK,UAAU;GACf,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI;EACzB;EACA,OAAO;CACX;;;;;;;;;CCvIA,IAAI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BV,IAAI,UAAA,gBAAA;;;;;CClCJ,OAAO,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;CCAlB,IAAI,WAAW;;;;;;;CAQf,SAAS,QAAQ;CAGjB,SAAS,SAAA,eAAA;CACT,SAAS,eAAA,sBAAA;CACT,SAAS,SAAA,eAAA;CACT,SAAS,eAAA,sBAAA;CAGT,SAAS,OAAA,kBAAA;CACT,SAAS,MAAA,YAAA;CACT,SAAS,QAAA,cAAA;CACT,SAAS,YAAe;;;;;;CAOxB,SAAS,YAAY;EACjB,SAAS,OAAO,WAAW,SAAS,YAAY;EAChD,SAAS,KAAK,WAAW;CAC7B;CAGA,SAAS,OAAO,WAAW,SAAS,YAAY;CAChD,UAAU;;;;;CChCV,OAAO,UAAA,sBAAA;;;;;;ACCP,MAAM,UAAUC,eAAAA,QAAU;AAAQ,MAAA,UAAUA,eAAAA,QAAU;AAAQ,MAAA,QAAQA,eAAAA,QAAU;AAGhF,MAAM,QAAQA,eAAAA,QAAU,MAAM,eAAe,eAAA,QAAU,MAAM,aAAa,CAAC;AAE3E,MAAa,QAAQ,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCtC,SAAS,MAAM,YAAY;EACvB,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,MAAM,UAAU,YAAY;;;;;;;CAQ5B,MAAM,UAAU,UAAU;;;;;;;CAQ1B,MAAM,UAAU,aAAa;;;;;;;CAQ7B,MAAM,UAAU,OAAO;;;;;;;CAQvB,MAAM,UAAU,eAAe;;;;;;;CAQ/B,MAAM,UAAU,YAAY;;;;;;;CAQ5B,MAAM,UAAU,0BAA0B;;;;;;;CAQ1C,MAAM,UAAU,0BAA0B;;;;;;;CAQ1C,MAAM,UAAU,UAAU;;;;;;;CAQ1B,MAAM,UAAU,aAAa;;;;;;;CAQ7B,MAAM,UAAU,gBAAgB;;;;;;;CAQhC,MAAM,UAAU,OAAO;;;;;;;CAQvB,MAAM,UAAU,cAAc;;;;;;;CAQ9B,MAAM,UAAU,YAAY;;;;;;;CAQ5B,MAAM,UAAU,oBAAoB;;;;;;;CAQpC,MAAM,UAAU,oBAAoB;;;;;;;CAQpC,MAAM,UAAU,yBAAyB;;;;;;;CAQzC,MAAM,UAAU,sBAAsB;;;;;;;CAQtC,MAAM,UAAU,qBAAqB;;;;;;;CAQrC,MAAM,UAAU,uBAAuB;;;;;;;;;CAUvC,MAAM,SAAS,SAAS,OAAO,YAAY;EACvC,OAAO,IAAI,MAAM,UAAU;CAC/B;;;;;;;;;;CAWA,MAAM,SAAS,SAAS,OAAO,SAAS,QAAQ;EAC5C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,SAAS,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACpH,IAAI,QAAQ,aAAa,QAAQ,OAAO,eAAe,KAAK,SAAS,WAAW,GAC5E,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,WAAW,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACtH,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,MAAM,MAAM,QAAQ,OAAO,QAAQ,SAAS,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACxG,IAAI,QAAQ,cAAc,QAAQ,OAAO,eAAe,KAAK,SAAS,YAAY,GAC9E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,UAAU;EACtE,IAAI,QAAQ,iBAAiB,QAAQ,OAAO,eAAe,KAAK,SAAS,eAAe,GACpF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,aAAa;EACzE,IAAI,QAAQ,QAAQ,QAAQ,OAAO,eAAe,KAAK,SAAS,MAAM,GAClE,MAAM,MAAM,KAAK,OAAO,QAAQ,MAAM,OAAO,OAA+B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACnG,IAAI,QAAQ,cAAc,QAAQ,OAAO,eAAe,KAAK,SAAS,YAAY,GAC9E,OAAO,OAA+B,EAAE,CAAC,CAAC,OAAO,QAAQ,UAAU;EACvE,IAAI,QAAQ,QAAQ,QAAQ,OAAO,eAAe,KAAK,SAAS,MAAM,GAClE,MAAM,MAAM,KAAK,OAAO,QAAQ,MAAM,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACpG,IAAI,QAAQ,eAAe,QAAQ,OAAO,eAAe,KAAK,SAAS,aAAa,GAChF,MAAM,MAAM,YAAY,OAAO,QAAQ,aAAa,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EAClH,IAAI,QAAQ,aAAa,QAAQ,OAAO,eAAe,KAAK,SAAS,WAAW,GAC5E,OAAO,OAA+B,GAAG,CAAC,CAAC,OAAO,QAAQ,SAAS;EACvE,IAAI,QAAQ,qBAAqB,QAAQ,OAAO,eAAe,KAAK,SAAS,mBAAmB,GAC5F,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,QAAQ,iBAAiB;EAC7E,IAAI,QAAQ,qBAAqB,QAAQ,OAAO,eAAe,KAAK,SAAS,mBAAmB,GAC5F,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,QAAQ,iBAAiB;EAC7E,IAAI,QAAQ,0BAA0B,QAAQ,OAAO,eAAe,KAAK,SAAS,wBAAwB,GACtG,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,QAAQ,sBAAsB;EAClF,IAAI,QAAQ,uBAAuB,QAAQ,OAAO,eAAe,KAAK,SAAS,qBAAqB,GAChG,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,QAAQ,mBAAmB;EAC/E,IAAI,QAAQ,sBAAsB,QAAQ,OAAO,eAAe,KAAK,SAAS,oBAAoB,GAC9F,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,QAAQ,kBAAkB;EAC9E,IAAI,QAAQ,aAAa,QAAQ,OAAO,eAAe,KAAK,SAAS,WAAW,GAC5E,MAAM,MAAM,cAAc,OAAO,QAAQ,WAAW,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EAClH,IAAI,QAAQ,2BAA2B,QAAQ,OAAO,eAAe,KAAK,SAAS,yBAAyB,GACxG,OAAO,OAA+B,GAAG,CAAC,CAAC,OAAO,QAAQ,uBAAuB;EACrF,IAAI,QAAQ,2BAA2B,QAAQ,OAAO,eAAe,KAAK,SAAS,yBAAyB,GACxG,OAAO,OAA+B,GAAG,CAAC,CAAC,OAAO,QAAQ,uBAAuB;EACrF,IAAI,QAAQ,wBAAwB,QAAQ,OAAO,eAAe,KAAK,SAAS,sBAAsB,GAClG,OAAO,OAA+B,GAAG,CAAC,CAAC,OAAO,QAAQ,oBAAoB;EAClF,IAAI,QAAQ,gBAAgB,QAAQ,OAAO,eAAe,KAAK,SAAS,cAAc,GAClF,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK,QAAQ,YAAY;EACxE,OAAO;CACX;;;;;;;;;;CAWA,MAAM,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EAC9D,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,MAAM,SAAS,SAAS,OAAO,QAAQ,QAAQ;EAC3C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM;EAC7F,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,QAAQ,YAAY,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,OAAO,OAAO,CAAC;KAClF;IACJ,KAAK;KACD,QAAQ,UAAU,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,OAAO,OAAO,CAAC;KAChF;IACJ,KAAK;KACD,QAAQ,aAAa,OAAO,OAAO;KACnC;IACJ,KAAK;KACD,QAAQ,OAAO,MAAM,MAAM,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;KAC9D;IACJ,KAAK;KACD,QAAQ,eAAe,OAAO,KAAK;KACnC;IACJ,KAAK;KACD,QAAQ,YAAY,OAAO,OAAO;KAClC;IACJ,KAAK;KACD,QAAQ,0BAA0B,OAAO,OAAO;KAChD;IACJ,KAAK;KACD,QAAQ,0BAA0B,OAAO,OAAO;KAChD;IACJ,KAAK;KACD,QAAQ,UAAU,MAAM,MAAM,QAAQ,OAAO,QAAQ,OAAO,OAAO,CAAC;KACpE;IACJ,KAAK;KACD,QAAQ,aAAa,OAAO,OAAO;KACnC;IACJ,KAAK;KACD,QAAQ,gBAAgB,OAAO,OAAO;KACtC;IACJ,KAAK;KACD,QAAQ,OAAO,MAAM,MAAM,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;KAC9D;IACJ,KAAK;KACD,QAAQ,cAAc,MAAM,MAAM,YAAY,OAAO,QAAQ,OAAO,OAAO,CAAC;KAC5E;IACJ,KAAK;KACD,QAAQ,YAAY,MAAM,MAAM,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC;KAC5E;IACJ,KAAK;KACD,QAAQ,oBAAoB,OAAO,KAAK;KACxC;IACJ,KAAK;KACD,QAAQ,oBAAoB,OAAO,KAAK;KACxC;IACJ,KAAK;KACD,QAAQ,yBAAyB,OAAO,KAAK;KAC7C;IACJ,KAAK;KACD,QAAQ,sBAAsB,OAAO,KAAK;KAC1C;IACJ,KAAK;KACD,QAAQ,qBAAqB,OAAO,KAAK;KACzC;IACJ,KAAK;KACD,QAAQ,uBAAuB,OAAO,OAAO;KAC7C;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,MAAM,kBAAkB,SAAS,gBAAgB,QAAQ;EACrD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,MAAM,SAAS,SAAS,OAAO,SAAS;EACpC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAAG;GAClE,IAAI,QAAQ,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,SAAS;GACpE,IAAI,OACA,OAAO,eAAe;EAC9B;EACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;GAC9D,IAAI,QAAQ,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,OAAO;GAClE,IAAI,OACA,OAAO,aAAa;EAC5B;EACA,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAC7D;OAAA,CAAC,MAAM,UAAU,QAAQ,UAAU,KAAK,EAAE,QAAQ,cAAc,MAAM,UAAU,QAAQ,WAAW,GAAG,KAAK,MAAM,UAAU,QAAQ,WAAW,IAAI,IAClJ,OAAO;EAAA;EACf,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GAAG;GACxD,IAAI,QAAQ,MAAM,MAAM,KAAK,OAAO,QAAQ,IAAI;GAChD,IAAI,OACA,OAAO,UAAU;EACzB;EACA,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GACjE;OAAA,OAAO,QAAQ,iBAAiB,WAChC,OAAO;EAAA;EACf,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC3D;OAAA,CAAC,MAAM,SAAS,QAAQ,SAAS,GACjC,OAAO;EAAA;EACf,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GACvF;OAAA,CAAC,MAAM,SAAS,QAAQ,uBAAuB,GAC/C,OAAO;EAAA;EACf,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GACvF;OAAA,CAAC,MAAM,SAAS,QAAQ,uBAAuB,GAC/C,OAAO;EAAA;EACf,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;GAC9D,IAAI,QAAQ,MAAM,MAAM,QAAQ,OAAO,QAAQ,OAAO;GACtD,IAAI,OACA,OAAO,aAAa;EAC5B;EACA,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAC7D;OAAA,CAAC,MAAM,SAAS,QAAQ,UAAU,GAClC,OAAO;EAAA;EACf,IAAI,QAAQ,iBAAiB,QAAQ,QAAQ,eAAe,eAAe,GACnE;OAAA,CAAC,MAAM,SAAS,QAAQ,aAAa,GACrC,OAAO;EAAA;EACf,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GAAG;GACxD,IAAI,QAAQ,MAAM,MAAM,KAAK,OAAO,QAAQ,IAAI;GAChD,IAAI,OACA,OAAO,UAAU;EACzB;EACA,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GAAG;GACtE,IAAI,QAAQ,MAAM,MAAM,YAAY,OAAO,QAAQ,WAAW;GAC9D,IAAI,OACA,OAAO,iBAAiB;EAChC;EACA,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAAG;GAClE,IAAI,QAAQ,MAAM,MAAM,cAAc,OAAO,QAAQ,SAAS;GAC9D,IAAI,OACA,OAAO,eAAe;EAC9B;EACA,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAC3E;OAAA,OAAO,QAAQ,sBAAsB,WACrC,OAAO;EAAA;EACf,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAC3E;OAAA,OAAO,QAAQ,sBAAsB,WACrC,OAAO;EAAA;EACf,IAAI,QAAQ,0BAA0B,QAAQ,QAAQ,eAAe,wBAAwB,GACrF;OAAA,OAAO,QAAQ,2BAA2B,WAC1C,OAAO;EAAA;EACf,IAAI,QAAQ,uBAAuB,QAAQ,QAAQ,eAAe,qBAAqB,GAC/E;OAAA,OAAO,QAAQ,wBAAwB,WACvC,OAAO;EAAA;EACf,IAAI,QAAQ,sBAAsB,QAAQ,QAAQ,eAAe,oBAAoB,GAC7E;OAAA,OAAO,QAAQ,uBAAuB,WACtC,OAAO;EAAA;EACf,IAAI,QAAQ,wBAAwB,QAAQ,QAAQ,eAAe,sBAAsB,GACjF;OAAA,OAAO,QAAQ,yBAAyB,UACxC,OAAO;EAAA;EACf,OAAO;CACX;;;;;;;;;;CAWA,MAAM,WAAW,SAAS,SAAS,SAAS,SAAS;EACjD,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,UAAU;GAClB,OAAO,UAAU;GACjB,OAAO,YAAY;GACnB,OAAO,UAAU;GACjB,OAAO,aAAa;GACpB,OAAO,gBAAgB;GACvB,OAAO,OAAO;GACd,OAAO,aAAa;GACpB,OAAO,OAAO;GACd,OAAO,cAAc;GACrB,OAAO,YAAY;GACnB,OAAO,oBAAoB;GAC3B,OAAO,oBAAoB;GAC3B,OAAO,yBAAyB;GAChC,OAAO,sBAAsB;GAC7B,OAAO,qBAAqB;GAC5B,OAAO,YAAY;GACnB,OAAO,0BAA0B;GACjC,OAAO,0BAA0B;GACjC,OAAO,uBAAuB;GAC9B,OAAO,eAAe;EAC1B;EACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,OAAO,UAAU,MAAM,OAAO,SAAS,UAAU,SAAS,QAAQ,SAAS,OAAO;EACtF,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC/D,OAAO,YAAY,MAAM,OAAO,SAAS,UAAU,SAAS,QAAQ,WAAW,OAAO;EAC1F,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,OAAO,UAAU,MAAM,MAAM,QAAQ,SAAS,QAAQ,SAAS,OAAO;EAC1E,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GACjE,OAAO,aAAa,QAAQ;EAChC,IAAI,QAAQ,iBAAiB,QAAQ,QAAQ,eAAe,eAAe,GACvE,OAAO,gBAAgB,QAAQ;EACnC,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACrD,OAAO,OAAO,MAAM,MAAM,KAAK,SAAS,QAAQ,MAAM,OAAO;EACjE,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GACjE,IAAI,OAAO,QAAQ,eAAe,UAC9B,OAAO,aAAa,QAAQ,UAAU,SAAS,OAAO,QAAQ,UAAU,IAAI,QAAQ;OAEpF,OAAO,aAAa,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,UAAU,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,WAAW,QAAQ,GAAG,QAAQ,WAAW,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACpP,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACrD,OAAO,OAAO,MAAM,MAAM,KAAK,SAAS,QAAQ,MAAM,OAAO;EACjE,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GACnE,OAAO,cAAc,MAAM,MAAM,YAAY,SAAS,QAAQ,aAAa,OAAO;EACtF,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC/D,OAAO,YAAY,QAAQ;EAC/B,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAC/E,OAAO,oBAAoB,QAAQ;EACvC,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAC/E,OAAO,oBAAoB,QAAQ;EACvC,IAAI,QAAQ,0BAA0B,QAAQ,QAAQ,eAAe,wBAAwB,GACzF,OAAO,yBAAyB,QAAQ;EAC5C,IAAI,QAAQ,uBAAuB,QAAQ,QAAQ,eAAe,qBAAqB,GACnF,OAAO,sBAAsB,QAAQ;EACzC,IAAI,QAAQ,sBAAsB,QAAQ,QAAQ,eAAe,oBAAoB,GACjF,OAAO,qBAAqB,QAAQ;EACxC,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC/D,OAAO,YAAY,MAAM,MAAM,cAAc,SAAS,QAAQ,WAAW,OAAO;EACpF,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GAC3F,OAAO,0BAA0B,QAAQ;EAC7C,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GAC3F,OAAO,0BAA0B,QAAQ;EAC7C,IAAI,QAAQ,wBAAwB,QAAQ,QAAQ,eAAe,sBAAsB,GACrF,OAAO,uBAAuB,QAAQ,QAAQ,CAAC,SAAS,QAAQ,oBAAoB,IAAI,OAAO,QAAQ,oBAAoB,IAAI,QAAQ;EAC3I,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GACrE,OAAO,eAAe,QAAQ;EAClC,OAAO;CACX;;;;;;;;CASA,MAAM,UAAU,SAAS,SAAS,SAAS;EACvC,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,MAAM,eAAe,WAAW;;;;;;;;;;;;;;;;EAkB5B,SAAS,YAAY,YAAY;GAC7B,IAAI,YACK;SAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;GAAA;EAChD;;;;;;;EAQA,YAAY,UAAU,QAAQ;;;;;;;EAQ9B,YAAY,UAAU,WAAW;;;;;;;;;EAUjC,YAAY,SAAS,SAAS,OAAO,YAAY;GAC7C,OAAO,IAAI,YAAY,UAAU;EACrC;;;;;;;;;;EAWA,YAAY,SAAS,SAAS,OAAO,SAAS,QAAQ;GAClD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;GAC5B,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,OAAO,OAA8B,CAAC,CAAC,CAAC,MAAM,QAAQ,KAAK;GAC/D,IAAI,QAAQ,YAAY,QAAQ,OAAO,eAAe,KAAK,SAAS,UAAU,GAC1E,OAAO,OAA8B,EAAE,CAAC,CAAC,MAAM,QAAQ,QAAQ;GACnE,OAAO;EACX;;;;;;;;;;EAWA,YAAY,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;GACpE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;EAC/C;;;;;;;;;;;;EAaA,YAAY,SAAS,SAAS,OAAO,QAAQ,QAAQ;GACjD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;GAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,YAAY;GACzG,OAAO,OAAO,MAAM,KAAK;IACrB,IAAI,MAAM,OAAO,OAAO;IACxB,QAAQ,QAAQ,GAAhB;KACA,KAAK;MACD,QAAQ,QAAQ,OAAO,MAAM;MAC7B;KACJ,KAAK;MACD,QAAQ,WAAW,OAAO,MAAM;MAChC;KACJ,SACI,OAAO,SAAS,MAAM,CAAC;IAE3B;GACJ;GACA,OAAO;EACX;;;;;;;;;;;EAYA,YAAY,kBAAkB,SAAS,gBAAgB,QAAQ;GAC3D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;GAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;EAC9C;;;;;;;;;EAUA,YAAY,SAAS,SAAS,OAAO,SAAS;GAC1C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;GACX,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACvD,QAAQ,QAAQ,OAAhB;IACA,SACI,OAAO;IACX,KAAK;IACL,KAAK;IACL,KAAK;GAEL;GACJ,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GACzD;QAAA,CAAC,MAAM,UAAU,QAAQ,QAAQ,KAAK,EAAE,QAAQ,YAAY,MAAM,UAAU,QAAQ,SAAS,GAAG,KAAK,MAAM,UAAU,QAAQ,SAAS,IAAI,IAC1I,OAAO;GAAA;GACf,OAAO;EACX;;;;;;;;;;EAWA,YAAY,WAAW,SAAS,SAAS,SAAS,SAAS;GACvD,IAAI,CAAC,SACD,UAAU,CAAC;GACf,IAAI,SAAS,CAAC;GACd,IAAI,QAAQ,UAAU;IAClB,OAAO,QAAQ,QAAQ,UAAU,SAAS,YAAY;IACtD,OAAO,WAAW;GACtB;GACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACvD,OAAO,QAAQ,QAAQ,UAAU,SAAS,MAAM,MAAM,YAAY,MAAM,QAAQ,SAAS,QAAQ;GACrG,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAC7D,IAAI,OAAO,QAAQ,aAAa,UAC5B,OAAO,WAAW,QAAQ,UAAU,SAAS,OAAO,QAAQ,QAAQ,IAAI,QAAQ;QAEhF,OAAO,WAAW,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,QAAQ,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,SAAS,QAAQ,GAAG,QAAQ,SAAS,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ;GACxO,OAAO;EACX;;;;;;;;EASA,YAAY,UAAU,SAAS,SAAS,SAAS;GAC7C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;EACvE;;;;;;;;;EAUA,YAAY,SAAS,WAAW;GAC5B,MAAM,aAAa,CAAC,GAAG,SAAS,OAAO,OAAO,UAAU;GACxD,OAAO,WAAW,KAAK,aAAa;GACpC,OAAO,WAAW,KAAK,YAAY;GACnC,OAAO,WAAW,KAAK,aAAa;GACpC,OAAO;EACX,EAAA,CAAG;EAEH,OAAO;CACX,EAAA,CAAG;CAEH,MAAM,WAAW,WAAW;;;;;;;;;;;;;;;;EAkBxB,SAAS,QAAQ,YAAY;GACzB,KAAK,gBAAgB,CAAC;GACtB,IAAI,YACK;SAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;GAAA;EAChD;;;;;;;EAQA,QAAQ,UAAU,gBAAgB,MAAM;;;;;;;EAQxC,QAAQ,UAAU,gBAAgB;;;;;;;;;EAUlC,QAAQ,SAAS,SAAS,OAAO,YAAY;GACzC,OAAO,IAAI,QAAQ,UAAU;EACjC;;;;;;;;;;EAWA,QAAQ,SAAS,SAAS,OAAO,SAAS,QAAQ;GAC9C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;GAC5B,IAAI,QAAQ,iBAAiB,QAAQ,OAAO,eAAe,KAAK,SAAS,eAAe,GACpF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,aAAa;GACzE,IAAI,QAAQ,iBAAiB,QAAQ,OAAO,eAAe,KAAK,SAAS,eAAe,GACpF,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,aAAa,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC1E,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,cAAc,KAAK,GAAG,CAAC,CAAC,OAAO;GAC1L,OAAO;EACX;;;;;;;;;;EAWA,QAAQ,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;GAChE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;EAC/C;;;;;;;;;;;;EAaA,QAAQ,SAAS,SAAS,OAAO,QAAQ,QAAQ;GAC7C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;GAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,QAAQ,GAAG;GACxG,OAAO,OAAO,MAAM,KAAK;IACrB,IAAI,MAAM,OAAO,OAAO;IACxB,QAAQ,QAAQ,GAAhB;KACA,KAAK;MACD,OAAO,KAAK,CAAC,CAAC;MACd,IAAI,QAAQ,kBAAkB,MAAM,aAChC,QAAQ,gBAAgB,CAAC;MAC7B,MAAM,OAAO,OAAO;MACpB,OAAO;MACP,QAAQ,cAAc,OAAO,OAAO,OAAO;MAC3C;KACJ,KAAK;MACD,QAAQ,gBAAgB,OAAO,OAAO;MACtC;KACJ,SACI,OAAO,SAAS,MAAM,CAAC;IAE3B;GACJ;GACA,OAAO;EACX;;;;;;;;;;;EAYA,QAAQ,kBAAkB,SAAS,gBAAgB,QAAQ;GACvD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;GAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;EAC9C;;;;;;;;;EAUA,QAAQ,SAAS,SAAS,OAAO,SAAS;GACtC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;GACX,IAAI,QAAQ,iBAAiB,QAAQ,QAAQ,eAAe,eAAe,GAAG;IAC1E,IAAI,CAAC,MAAM,SAAS,QAAQ,aAAa,GACrC,OAAO;IACX,IAAI,MAAM,OAAO,KAAK,QAAQ,aAAa;IAC3C,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAC9B,IAAI,CAAC,MAAM,SAAS,QAAQ,cAAc,IAAI,GAAG,GAC7C,OAAO;GACnB;GACA,IAAI,QAAQ,iBAAiB,QAAQ,QAAQ,eAAe,eAAe,GACnE;QAAA,CAAC,MAAM,SAAS,QAAQ,aAAa,GACrC,OAAO;GAAA;GACf,OAAO;EACX;;;;;;;;;;EAWA,QAAQ,WAAW,SAAS,SAAS,SAAS,SAAS;GACnD,IAAI,CAAC,SACD,UAAU,CAAC;GACf,IAAI,SAAS,CAAC;GACd,IAAI,QAAQ,WAAW,QAAQ,UAC3B,OAAO,gBAAgB,CAAC;GAC5B,IAAI,QAAQ,UACR,OAAO,gBAAgB;GAC3B,IAAI,QAAQ,iBAAiB,QAAQ,QAAQ,eAAe,eAAe,GACvE,OAAO,gBAAgB,QAAQ;GACnC,IAAI;GACJ,IAAI,QAAQ,kBAAkB,QAAQ,OAAO,KAAK,QAAQ,aAAa,EAAA,CAAG,QAAQ;IAC9E,OAAO,gBAAgB,CAAC;IACxB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,cAAc,MAAM,MAAM,QAAQ,cAAc,MAAM;GACrE;GACA,OAAO;EACX;;;;;;;;EASA,QAAQ,UAAU,SAAS,SAAS,SAAS;GACzC,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;EACvE;EAEA,OAAO;CACX,EAAA,CAAG;CAEH,MAAM,SAAS,WAAW;;;;;;;;;;;;;;;;;;EAoBtB,SAAS,MAAM,YAAY;GACvB,KAAK,WAAW,CAAC;GACjB,IAAI,YACK;SAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;GAAA;EAChD;;;;;;;EAQA,MAAM,UAAU,UAAU;;;;;;;EAQ1B,MAAM,UAAU,WAAW,MAAM;;;;;;;EAQjC,MAAM,UAAU,SAAS;;;;;;;EAQzB,MAAM,UAAU,OAAO;;;;;;;;;EAUvB,MAAM,SAAS,SAAS,OAAO,YAAY;GACvC,OAAO,IAAI,MAAM,UAAU;EAC/B;;;;;;;;;;EAWA,MAAM,SAAS,SAAS,OAAO,SAAS,QAAQ;GAC5C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;GAC5B,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,OAAO;GACnE,IAAI,QAAQ,YAAY,QAAQ,QAAQ,SAAS,QAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,SAAS,QAAQ,EAAE,GAC3C,MAAM,MAAM,SAAS,OAAO,QAAQ,SAAS,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GACjH,IAAI,QAAQ,UAAU,QAAQ,OAAO,eAAe,KAAK,SAAS,QAAQ,GACtE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,MAAM;GAClE,IAAI,QAAQ,QAAQ,QAAQ,OAAO,eAAe,KAAK,SAAS,MAAM,GAClE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,IAAI;GAChE,OAAO;EACX;;;;;;;;;;EAWA,MAAM,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;GAC9D,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;EAC/C;;;;;;;;;;;;EAaA,MAAM,SAAS,SAAS,OAAO,QAAQ,QAAQ;GAC3C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;GAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,MAAM;GACnG,OAAO,OAAO,MAAM,KAAK;IACrB,IAAI,MAAM,OAAO,OAAO;IACxB,QAAQ,QAAQ,GAAhB;KACA,KAAK;MACD,QAAQ,UAAU,OAAO,OAAO;MAChC;KACJ,KAAK;MACD,IAAI,EAAE,QAAQ,YAAY,QAAQ,SAAS,SACvC,QAAQ,WAAW,CAAC;MACxB,QAAQ,SAAS,KAAK,MAAM,MAAM,SAAS,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;MAC1E;KACJ,KAAK;MACD,QAAQ,SAAS,OAAO,OAAO;MAC/B;KACJ,KAAK;MACD,QAAQ,OAAO,OAAO,OAAO;MAC7B;KACJ,SACI,OAAO,SAAS,MAAM,CAAC;IAE3B;GACJ;GACA,OAAO;EACX;;;;;;;;;;;EAYA,MAAM,kBAAkB,SAAS,gBAAgB,QAAQ;GACrD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;GAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;EAC9C;;;;;;;;;EAUA,MAAM,SAAS,SAAS,OAAO,SAAS;GACpC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;GACX,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GACvD;QAAA,CAAC,MAAM,SAAS,QAAQ,OAAO,GAC/B,OAAO;GAAA;GACf,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;IAChE,IAAI,CAAC,MAAM,QAAQ,QAAQ,QAAQ,GAC/B,OAAO;IACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,SAAS,QAAQ,EAAE,GAAG;KAC9C,IAAI,QAAQ,MAAM,MAAM,SAAS,OAAO,QAAQ,SAAS,EAAE;KAC3D,IAAI,OACA,OAAO,cAAc;IAC7B;GACJ;GACA,IAAI,QAAQ,UAAU,QAAQ,QAAQ,eAAe,QAAQ,GACrD;QAAA,CAAC,MAAM,UAAU,QAAQ,MAAM,KAAK,EAAE,QAAQ,UAAU,MAAM,UAAU,QAAQ,OAAO,GAAG,KAAK,MAAM,UAAU,QAAQ,OAAO,IAAI,IAClI,OAAO;GAAA;GACf,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACjD;QAAA,CAAC,MAAM,SAAS,QAAQ,IAAI,GAC5B,OAAO;GAAA;GACf,OAAO;EACX;;;;;;;;;;EAWA,MAAM,WAAW,SAAS,SAAS,SAAS,SAAS;GACjD,IAAI,CAAC,SACD,UAAU,CAAC;GACf,IAAI,SAAS,CAAC;GACd,IAAI,QAAQ,UAAU,QAAQ,UAC1B,OAAO,WAAW,CAAC;GACvB,IAAI,QAAQ,UAAU;IAClB,OAAO,UAAU;IACjB,OAAO,SAAS;IAChB,OAAO,OAAO;GAClB;GACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,OAAO,UAAU,QAAQ;GAC7B,IAAI,QAAQ,YAAY,QAAQ,SAAS,QAAQ;IAC7C,OAAO,WAAW,CAAC;IACnB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,SAAS,QAAQ,EAAE,GAC3C,OAAO,SAAS,KAAK,MAAM,MAAM,SAAS,SAAS,QAAQ,SAAS,IAAI,OAAO;GACvF;GACA,IAAI,QAAQ,UAAU,QAAQ,QAAQ,eAAe,QAAQ,GACzD,IAAI,OAAO,QAAQ,WAAW,UAC1B,OAAO,SAAS,QAAQ,UAAU,SAAS,OAAO,QAAQ,MAAM,IAAI,QAAQ;QAE5E,OAAO,SAAS,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,MAAM,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,OAAO,QAAQ,GAAG,QAAQ,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;GACpO,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACrD,OAAO,OAAO,QAAQ;GAC1B,OAAO;EACX;;;;;;;;EASA,MAAM,UAAU,SAAS,SAAS,SAAS;GACvC,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;EACvE;EAEA,OAAO;CACX,EAAA,CAAG;CAEH,MAAM,QAAQ,WAAW;;;;;;;;;;;;;;;;;;EAoBrB,SAAS,KAAK,YAAY;GACtB,KAAK,iBAAiB,CAAC;GACvB,KAAK,kBAAkB,CAAC;GACxB,IAAI,YACK;SAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;GAAA;EAChD;;;;;;;EAQA,KAAK,UAAU,SAAS;;;;;;;EAQxB,KAAK,UAAU,iBAAiB,MAAM;;;;;;;EAQtC,KAAK,UAAU,kBAAkB,MAAM;;;;;;;EAQvC,KAAK,UAAU,aAAa;;;;;;;;;EAU5B,KAAK,SAAS,SAAS,OAAO,YAAY;GACtC,OAAO,IAAI,KAAK,UAAU;EAC9B;;;;;;;;;;EAWA,KAAK,SAAS,SAAS,OAAO,SAAS,QAAQ;GAC3C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;GAC5B,IAAI,QAAQ,UAAU,QAAQ,OAAO,eAAe,KAAK,SAAS,QAAQ,GACtE,OAAO,OAA8B,CAAC,CAAC,CAAC,MAAM,QAAQ,MAAM;GAChE,IAAI,QAAQ,kBAAkB,QAAQ,OAAO,eAAe,KAAK,SAAS,gBAAgB,GACtF,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,cAAc,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;IAC9E,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;IAChG,MAAM,MAAM,KAAK,OAAO,OAAO,QAAQ,eAAe,KAAK,KAAK,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;GACrI;GACJ,IAAI,QAAQ,mBAAmB,QAAQ,OAAO,eAAe,KAAK,SAAS,iBAAiB,GACxF,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,eAAe,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;IAC/E,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;IAChG,MAAM,MAAM,KAAK,OAAO,OAAO,QAAQ,gBAAgB,KAAK,KAAK,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;GACtI;GACJ,IAAI,QAAQ,cAAc,QAAQ,OAAO,eAAe,KAAK,SAAS,YAAY,GAC9E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,UAAU;GACtE,OAAO;EACX;;;;;;;;;;EAWA,KAAK,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;GAC7D,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;EAC/C;;;;;;;;;;;;EAaA,KAAK,SAAS,SAAS,OAAO,QAAQ,QAAQ;GAC1C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;GAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,KAAK,GAAG;GACrG,OAAO,OAAO,MAAM,KAAK;IACrB,IAAI,MAAM,OAAO,OAAO;IACxB,QAAQ,QAAQ,GAAhB;KACA,KAAK;MACD,QAAQ,SAAS,OAAO,MAAM;MAC9B;KACJ,KAAK;MACD,OAAO,KAAK,CAAC,CAAC;MACd,IAAI,QAAQ,mBAAmB,MAAM,aACjC,QAAQ,iBAAiB,CAAC;MAC9B,MAAM,OAAO,OAAO;MACpB,OAAO;MACP,QAAQ,eAAe,OAAO,MAAM,MAAM,KAAK,OAAO,OAAO,QAAQ,OAAO,OAAO,CAAC;MACpF;KACJ,KAAK;MACD,OAAO,KAAK,CAAC,CAAC;MACd,IAAI,QAAQ,oBAAoB,MAAM,aAClC,QAAQ,kBAAkB,CAAC;MAC/B,MAAM,OAAO,OAAO;MACpB,OAAO;MACP,QAAQ,gBAAgB,OAAO,MAAM,MAAM,KAAK,OAAO,OAAO,QAAQ,OAAO,OAAO,CAAC;MACrF;KACJ,KAAK;MACD,QAAQ,aAAa,OAAO,OAAO;MACnC;KACJ,SACI,OAAO,SAAS,MAAM,CAAC;IAE3B;GACJ;GACA,OAAO;EACX;;;;;;;;;;;EAYA,KAAK,kBAAkB,SAAS,gBAAgB,QAAQ;GACpD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;GAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;EAC9C;;;;;;;;;EAUA,KAAK,SAAS,SAAS,OAAO,SAAS;GACnC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;GACX,IAAI,QAAQ,UAAU,QAAQ,QAAQ,eAAe,QAAQ,GACzD,QAAQ,QAAQ,QAAhB;IACA,SACI,OAAO;IACX,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;GAEL;GACJ,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GAAG;IAC5E,IAAI,CAAC,MAAM,SAAS,QAAQ,cAAc,GACtC,OAAO;IACX,IAAI,MAAM,OAAO,KAAK,QAAQ,cAAc;IAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAAG;KACjC,IAAI,QAAQ,MAAM,MAAM,KAAK,OAAO,OAAO,QAAQ,eAAe,IAAI,GAAG;KACzE,IAAI,OACA,OAAO,oBAAoB;IACnC;GACJ;GACA,IAAI,QAAQ,mBAAmB,QAAQ,QAAQ,eAAe,iBAAiB,GAAG;IAC9E,IAAI,CAAC,MAAM,SAAS,QAAQ,eAAe,GACvC,OAAO;IACX,IAAI,MAAM,OAAO,KAAK,QAAQ,eAAe;IAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAAG;KACjC,IAAI,QAAQ,MAAM,MAAM,KAAK,OAAO,OAAO,QAAQ,gBAAgB,IAAI,GAAG;KAC1E,IAAI,OACA,OAAO,qBAAqB;IACpC;GACJ;GACA,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAC7D;QAAA,CAAC,MAAM,UAAU,QAAQ,UAAU,GACnC,OAAO;GAAA;GACf,OAAO;EACX;;;;;;;;;;EAWA,KAAK,WAAW,SAAS,SAAS,SAAS,SAAS;GAChD,IAAI,CAAC,SACD,UAAU,CAAC;GACf,IAAI,SAAS,CAAC;GACd,IAAI,QAAQ,WAAW,QAAQ,UAAU;IACrC,OAAO,iBAAiB,CAAC;IACzB,OAAO,kBAAkB,CAAC;GAC9B;GACA,IAAI,QAAQ,UAAU;IAClB,OAAO,SAAS,QAAQ,UAAU,SAAS,YAAY;IACvD,OAAO,aAAa;GACxB;GACA,IAAI,QAAQ,UAAU,QAAQ,QAAQ,eAAe,QAAQ,GACzD,OAAO,SAAS,QAAQ,UAAU,SAAS,MAAM,MAAM,KAAK,OAAO,QAAQ,UAAU,QAAQ;GACjG,IAAI;GACJ,IAAI,QAAQ,mBAAmB,QAAQ,OAAO,KAAK,QAAQ,cAAc,EAAA,CAAG,QAAQ;IAChF,OAAO,iBAAiB,CAAC;IACzB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,eAAe,MAAM,MAAM,MAAM,MAAM,KAAK,OAAO,SAAS,QAAQ,eAAe,MAAM,KAAK,OAAO;GACpH;GACA,IAAI,QAAQ,oBAAoB,QAAQ,OAAO,KAAK,QAAQ,eAAe,EAAA,CAAG,QAAQ;IAClF,OAAO,kBAAkB,CAAC;IAC1B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,gBAAgB,MAAM,MAAM,MAAM,MAAM,KAAK,OAAO,SAAS,QAAQ,gBAAgB,MAAM,KAAK,OAAO;GACtH;GACA,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GACjE,OAAO,aAAa,QAAQ;GAChC,OAAO;EACX;;;;;;;;EASA,KAAK,UAAU,SAAS,SAAS,SAAS;GACtC,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;EACvE;EAEA,KAAK,UAAU,WAAW;;;;;;;;;;;;;;;GAiBtB,SAAS,OAAO,YAAY;IACxB,KAAK,QAAQ,CAAC;IACd,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,OAAO,UAAU,QAAQ,MAAM;;;;;;;;;GAU/B,OAAO,SAAS,SAAS,OAAO,YAAY;IACxC,OAAO,IAAI,OAAO,UAAU;GAChC;;;;;;;;;;GAWA,OAAO,SAAS,SAAS,OAAO,SAAS,QAAQ;IAC7C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM,QACvC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,MAAM,EAAE;IACxE,OAAO;GACX;;;;;;;;;;GAWA,OAAO,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IAC/D,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,OAAO,SAAS,SAAS,OAAO,QAAQ,QAAQ;IAC5C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,KAAK,OAAO;IACzG,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,IAAI,EAAE,QAAQ,SAAS,QAAQ,MAAM,SACjC,QAAQ,QAAQ,CAAC;OACrB,QAAQ,MAAM,KAAK,OAAO,OAAO,CAAC;OAClC;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,OAAO,kBAAkB,SAAS,gBAAgB,QAAQ;IACtD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,OAAO,SAAS,SAAS,OAAO,SAAS;IACrC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;KAC1D,IAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,GAC5B,OAAO;KACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,IAAI,CAAC,MAAM,SAAS,QAAQ,MAAM,EAAE,GAChC,OAAO;IACnB;IACA,OAAO;GACX;;;;;;;;;;GAWA,OAAO,WAAW,SAAS,SAAS,SAAS,SAAS;IAClD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU,QAAQ,UAC1B,OAAO,QAAQ,CAAC;IACpB,IAAI,QAAQ,SAAS,QAAQ,MAAM,QAAQ;KACvC,OAAO,QAAQ,CAAC;KAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,OAAO,MAAM,KAAK,QAAQ,MAAM;IACxC;IACA,OAAO;GACX;;;;;;;;GASA,OAAO,UAAU,SAAS,SAAS,SAAS;IACxC,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;;;;;;;;;;;;;;;;EAiBH,KAAK,UAAU,WAAW;GACtB,MAAM,aAAa,CAAC,GAAG,SAAS,OAAO,OAAO,UAAU;GACxD,OAAO,WAAW,KAAK,aAAa;GACpC,OAAO,WAAW,KAAK,aAAa;GACpC,OAAO,WAAW,KAAK,SAAS;GAChC,OAAO,WAAW,KAAK,UAAU;GACjC,OAAO,WAAW,KAAK,UAAU;GACjC,OAAO,WAAW,KAAK,SAAS;GAChC,OAAO,WAAW,KAAK,YAAY;GACnC,OAAO,WAAW,KAAK,WAAW;GAClC,OAAO,WAAW,KAAK,aAAa;GACpC,OAAO,WAAW,KAAK,WAAW;GAClC,OAAO;EACX,EAAA,CAAG;EAEH,OAAO;CACX,EAAA,CAAG;CAEH,MAAM,YAAY,WAAW;;;;;;;;;;;;;;;;EAkBzB,SAAS,SAAS,YAAY;GAC1B,IAAI,YACK;SAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;GAAA;EAChD;;;;;;;EAQA,SAAS,UAAU,OAAO;;;;;;;EAQ1B,SAAS,UAAU,SAAS;;;;;;;;;EAU5B,SAAS,SAAS,SAAS,OAAO,YAAY;GAC1C,OAAO,IAAI,SAAS,UAAU;EAClC;;;;;;;;;;EAWA,SAAS,SAAS,SAAS,OAAO,SAAS,QAAQ;GAC/C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;GAC5B,IAAI,QAAQ,QAAQ,QAAQ,OAAO,eAAe,KAAK,SAAS,MAAM,GAClE,OAAO,OAA8B,CAAC,CAAC,CAAC,OAAO,QAAQ,IAAI;GAC/D,IAAI,QAAQ,UAAU,QAAQ,OAAO,eAAe,KAAK,SAAS,QAAQ,GACtE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,MAAM;GAClE,OAAO;EACX;;;;;;;;;;EAWA,SAAS,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;GACjE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;EAC/C;;;;;;;;;;;;EAaA,SAAS,SAAS,SAAS,OAAO,QAAQ,QAAQ;GAC9C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;GAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,SAAS;GACtG,OAAO,OAAO,MAAM,KAAK;IACrB,IAAI,MAAM,OAAO,OAAO;IACxB,QAAQ,QAAQ,GAAhB;KACA,KAAK;MACD,QAAQ,OAAO,OAAO,OAAO;MAC7B;KACJ,KAAK;MACD,QAAQ,SAAS,OAAO,OAAO;MAC/B;KACJ,SACI,OAAO,SAAS,MAAM,CAAC;IAE3B;GACJ;GACA,OAAO;EACX;;;;;;;;;;;EAYA,SAAS,kBAAkB,SAAS,gBAAgB,QAAQ;GACxD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;GAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;EAC9C;;;;;;;;;EAUA,SAAS,SAAS,SAAS,OAAO,SAAS;GACvC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;GACX,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACjD;QAAA,CAAC,MAAM,UAAU,QAAQ,IAAI,GAC7B,OAAO;GAAA;GACf,IAAI,QAAQ,UAAU,QAAQ,QAAQ,eAAe,QAAQ,GACrD;QAAA,CAAC,MAAM,UAAU,QAAQ,MAAM,GAC/B,OAAO;GAAA;GACf,OAAO;EACX;;;;;;;;;;EAWA,SAAS,WAAW,SAAS,SAAS,SAAS,SAAS;GACpD,IAAI,CAAC,SACD,UAAU,CAAC;GACf,IAAI,SAAS,CAAC;GACd,IAAI,QAAQ,UAAU;IAClB,OAAO,OAAO;IACd,OAAO,SAAS;GACpB;GACA,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACrD,OAAO,OAAO,QAAQ;GAC1B,IAAI,QAAQ,UAAU,QAAQ,QAAQ,eAAe,QAAQ,GACzD,OAAO,SAAS,QAAQ;GAC5B,OAAO;EACX;;;;;;;;EASA,SAAS,UAAU,SAAS,SAAS,SAAS;GAC1C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;EACvE;EAEA,OAAO;CACX,EAAA,CAAG;CAEH,MAAM,QAAQ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;EA0BrB,SAAS,KAAK,YAAY;GACtB,KAAK,QAAQ,CAAC;GACd,KAAK,QAAQ,CAAC;GACd,IAAI,YACK;SAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;GAAA;EAChD;;;;;;;EAQA,KAAK,UAAU,eAAe;;;;;;;EAQ9B,KAAK,UAAU,QAAQ;;;;;;;EAQvB,KAAK,UAAU,oBAAoB;;;;;;;EAQnC,KAAK,UAAU,OAAO;;;;;;;EAQtB,KAAK,UAAU,aAAa;;;;;;;EAQ5B,KAAK,UAAU,cAAc;;;;;;;EAQ7B,KAAK,UAAU,YAAY;;;;;;;EAQ3B,KAAK,UAAU,UAAU;;;;;;;EAQzB,KAAK,UAAU,QAAQ,MAAM;;;;;;;EAQ7B,KAAK,UAAU,QAAQ,MAAM;EAG7B,IAAI;;;;;;;EAQJ,OAAO,eAAe,KAAK,WAAW,MAAM;GACxC,KAAK,MAAM,YAAY,eAAe,CAAC,gBAAgB,OAAO,CAAC;GAC/D,KAAK,MAAM,YAAY,YAAY;EACvC,CAAC;;;;;;;;;EAUD,KAAK,SAAS,SAAS,OAAO,YAAY;GACtC,OAAO,IAAI,KAAK,UAAU;EAC9B;;;;;;;;;;EAWA,KAAK,SAAS,SAAS,OAAO,SAAS,QAAQ;GAC3C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;GAC5B,IAAI,QAAQ,gBAAgB,QAAQ,OAAO,eAAe,KAAK,SAAS,cAAc,GAClF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,YAAY;GACxE,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK;GACjE,IAAI,QAAQ,QAAQ,QAAQ,OAAO,eAAe,KAAK,SAAS,MAAM,GAClE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,IAAI;GAChE,IAAI,QAAQ,eAAe,QAAQ,OAAO,eAAe,KAAK,SAAS,aAAa,GAChF,MAAM,MAAM,YAAY,OAAO,QAAQ,aAAa,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GAChH,IAAI,QAAQ,aAAa,QAAQ,OAAO,eAAe,KAAK,SAAS,WAAW,GAC5E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,SAAS;GACrE,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,OAAO;GACnE,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM,QACvC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,MAAM,MAAM,MAAM,OAAO,QAAQ,MAAM,IAAI,OAAO,OAA+B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GAC5G,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM,QACvC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,MAAM,MAAM,KAAK,OAAO,QAAQ,MAAM,IAAI,OAAO,OAA+B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GAC3G,IAAI,QAAQ,cAAc,QAAQ,OAAO,eAAe,KAAK,SAAS,YAAY,GAC9E,OAAO,OAA+B,GAAG,CAAC,CAAC,OAAO,QAAQ,UAAU;GACxE,IAAI,QAAQ,qBAAqB,QAAQ,OAAO,eAAe,KAAK,SAAS,mBAAmB,GAC5F,OAAO,OAA+B,GAAG,CAAC,CAAC,OAAO,QAAQ,iBAAiB;GAC/E,OAAO;EACX;;;;;;;;;;EAWA,KAAK,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;GAC7D,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;EAC/C;;;;;;;;;;;;EAaA,KAAK,SAAS,SAAS,OAAO,QAAQ,QAAQ;GAC1C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;GAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,KAAK;GAClG,OAAO,OAAO,MAAM,KAAK;IACrB,IAAI,MAAM,OAAO,OAAO;IACxB,QAAQ,QAAQ,GAAhB;KACA,KAAK;MACD,QAAQ,eAAe,OAAO,OAAO;MACrC;KACJ,KAAK;MACD,QAAQ,QAAQ,OAAO,OAAO;MAC9B;KACJ,KAAK;MACD,QAAQ,oBAAoB,OAAO,OAAO;MAC1C;KACJ,KAAK;MACD,QAAQ,OAAO,OAAO,OAAO;MAC7B;KACJ,KAAK;MACD,QAAQ,aAAa,OAAO,OAAO;MACnC;KACJ,KAAK;MACD,QAAQ,cAAc,MAAM,MAAM,YAAY,OAAO,QAAQ,OAAO,OAAO,CAAC;MAC5E;KACJ,KAAK;MACD,QAAQ,YAAY,OAAO,OAAO;MAClC;KACJ,KAAK;MACD,QAAQ,UAAU,OAAO,OAAO;MAChC;KACJ,KAAK;MACD,IAAI,EAAE,QAAQ,SAAS,QAAQ,MAAM,SACjC,QAAQ,QAAQ,CAAC;MACrB,QAAQ,MAAM,KAAK,MAAM,MAAM,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;MACpE;KACJ,KAAK;MACD,IAAI,EAAE,QAAQ,SAAS,QAAQ,MAAM,SACjC,QAAQ,QAAQ,CAAC;MACrB,QAAQ,MAAM,KAAK,MAAM,MAAM,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;MACnE;KACJ,SACI,OAAO,SAAS,MAAM,CAAC;IAE3B;GACJ;GACA,OAAO;EACX;;;;;;;;;;;EAYA,KAAK,kBAAkB,SAAS,gBAAgB,QAAQ;GACpD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;GAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;EAC9C;;;;;;;;;EAUA,KAAK,SAAS,SAAS,OAAO,SAAS;GACnC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;GACX,IAAI,aAAa,CAAC;GAClB,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GAAG;IACxE,WAAW,KAAK;IAChB,IAAI,CAAC,MAAM,SAAS,QAAQ,YAAY,GACpC,OAAO;GACf;GACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;IAC1D,IAAI,WAAW,OAAO,GAClB,OAAO;IACX,WAAW,KAAK;IAChB,IAAI,CAAC,MAAM,UAAU,QAAQ,KAAK,GAC9B,OAAO;GACf;GACA,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAC3E;QAAA,CAAC,MAAM,SAAS,QAAQ,iBAAiB,GACzC,OAAO;GAAA;GACf,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACjD;QAAA,CAAC,MAAM,SAAS,QAAQ,IAAI,GAC5B,OAAO;GAAA;GACf,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAC7D;QAAA,CAAC,MAAM,SAAS,QAAQ,UAAU,GAClC,OAAO;GAAA;GACf,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GAAG;IACtE,IAAI,QAAQ,MAAM,MAAM,YAAY,OAAO,QAAQ,WAAW;IAC9D,IAAI,OACA,OAAO,iBAAiB;GAChC;GACA,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC3D;QAAA,CAAC,MAAM,UAAU,QAAQ,SAAS,KAAK,EAAE,QAAQ,aAAa,MAAM,UAAU,QAAQ,UAAU,GAAG,KAAK,MAAM,UAAU,QAAQ,UAAU,IAAI,IAC9I,OAAO;GAAA;GACf,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GACvD;QAAA,CAAC,MAAM,UAAU,QAAQ,OAAO,KAAK,EAAE,QAAQ,WAAW,MAAM,UAAU,QAAQ,QAAQ,GAAG,KAAK,MAAM,UAAU,QAAQ,QAAQ,IAAI,IACtI,OAAO;GAAA;GACf,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;IAC1D,IAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,GAC5B,OAAO;IACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GAAG;KAC3C,IAAI,QAAQ,MAAM,MAAM,MAAM,OAAO,QAAQ,MAAM,EAAE;KACrD,IAAI,OACA,OAAO,WAAW;IAC1B;GACJ;GACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;IAC1D,IAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,GAC5B,OAAO;IACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GAAG;KAC3C,IAAI,QAAQ,MAAM,MAAM,KAAK,OAAO,QAAQ,MAAM,EAAE;KACpD,IAAI,OACA,OAAO,WAAW;IAC1B;GACJ;GACA,OAAO;EACX;;;;;;;;;;EAWA,KAAK,WAAW,SAAS,SAAS,SAAS,SAAS;GAChD,IAAI,CAAC,SACD,UAAU,CAAC;GACf,IAAI,SAAS,CAAC;GACd,IAAI,QAAQ,UAAU,QAAQ,UAAU;IACpC,OAAO,QAAQ,CAAC;IAChB,OAAO,QAAQ,CAAC;GACpB;GACA,IAAI,QAAQ,UAAU;IAClB,OAAO,OAAO;IACd,OAAO,cAAc;IACrB,OAAO,YAAY;IACnB,OAAO,UAAU;IACjB,OAAO,aAAa;IACpB,OAAO,oBAAoB;GAC/B;GACA,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GAAG;IACxE,OAAO,eAAe,QAAQ;IAC9B,IAAI,QAAQ,QACR,OAAO,KAAK;GACpB;GACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;IAC1D,OAAO,QAAQ,QAAQ;IACvB,IAAI,QAAQ,QACR,OAAO,KAAK;GACpB;GACA,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACrD,OAAO,OAAO,QAAQ;GAC1B,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GACnE,OAAO,cAAc,MAAM,MAAM,YAAY,SAAS,QAAQ,aAAa,OAAO;GACtF,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC/D,IAAI,OAAO,QAAQ,cAAc,UAC7B,OAAO,YAAY,QAAQ,UAAU,SAAS,OAAO,QAAQ,SAAS,IAAI,QAAQ;QAElF,OAAO,YAAY,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,SAAS,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,UAAU,QAAQ,GAAG,QAAQ,UAAU,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;GAChP,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,IAAI,OAAO,QAAQ,YAAY,UAC3B,OAAO,UAAU,QAAQ,UAAU,SAAS,OAAO,QAAQ,OAAO,IAAI,QAAQ;QAE9E,OAAO,UAAU,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,OAAO,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,QAAQ,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;GACxO,IAAI,QAAQ,SAAS,QAAQ,MAAM,QAAQ;IACvC,OAAO,QAAQ,CAAC;IAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,OAAO,MAAM,KAAK,MAAM,MAAM,MAAM,SAAS,QAAQ,MAAM,IAAI,OAAO;GAC9E;GACA,IAAI,QAAQ,SAAS,QAAQ,MAAM,QAAQ;IACvC,OAAO,QAAQ,CAAC;IAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,OAAO,MAAM,KAAK,MAAM,MAAM,KAAK,SAAS,QAAQ,MAAM,IAAI,OAAO;GAC7E;GACA,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GACjE,OAAO,aAAa,QAAQ;GAChC,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAC/E,OAAO,oBAAoB,QAAQ;GACvC,OAAO;EACX;;;;;;;;EASA,KAAK,UAAU,SAAS,SAAS,SAAS;GACtC,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;EACvE;EAEA,OAAO;CACX,EAAA,CAAG;CAEH,MAAM,iBAAiB,WAAW;;;;;;;;;;;;;;;;;;;;EAsB9B,SAAS,cAAc,YAAY;GAC/B,IAAI,YACK;SAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;GAAA;EAChD;;;;;;;EAQA,cAAc,UAAU,WAAW;;;;;;;EAQnC,cAAc,UAAU,WAAW;;;;;;;EAQnC,cAAc,UAAU,QAAQ;;;;;;;EAQhC,cAAc,UAAU,UAAU;;;;;;;EAQlC,cAAc,UAAU,QAAQ;;;;;;;EAQhC,cAAc,UAAU,YAAY;EAGpC,IAAI;;;;;;;EAQJ,OAAO,eAAe,cAAc,WAAW,QAAQ;GACnD,KAAK,MAAM,YAAY,eAAe;IAAC;IAAY;IAAY;IAAS;IAAW;IAAS;GAAW,CAAC;GACxG,KAAK,MAAM,YAAY,YAAY;EACvC,CAAC;;;;;;;;;EAUD,cAAc,SAAS,SAAS,OAAO,YAAY;GAC/C,OAAO,IAAI,cAAc,UAAU;EACvC;;;;;;;;;;EAWA,cAAc,SAAS,SAAS,OAAO,SAAS,QAAQ;GACpD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;GAC5B,IAAI,QAAQ,YAAY,QAAQ,OAAO,eAAe,KAAK,SAAS,UAAU,GAC1E,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,UAAU,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GAC5H,IAAI,QAAQ,YAAY,QAAQ,OAAO,eAAe,KAAK,SAAS,UAAU,GAC1E,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,UAAU,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GAC5H,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,MAAM,MAAM,cAAc,UAAU,OAAO,QAAQ,OAAO,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GACtH,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,MAAM,MAAM,cAAc,YAAY,OAAO,QAAQ,SAAS,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GAC1H,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,MAAM,MAAM,cAAc,UAAU,OAAO,QAAQ,OAAO,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GACtH,IAAI,QAAQ,aAAa,QAAQ,OAAO,eAAe,KAAK,SAAS,WAAW,GAC5E,MAAM,MAAM,cAAc,cAAc,OAAO,QAAQ,WAAW,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;GAC9H,OAAO;EACX;;;;;;;;;;EAWA,cAAc,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;GACtE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;EAC/C;;;;;;;;;;;;EAaA,cAAc,SAAS,SAAS,OAAO,QAAQ,QAAQ;GACnD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;GAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc;GAC3G,OAAO,OAAO,MAAM,KAAK;IACrB,IAAI,MAAM,OAAO,OAAO;IACxB,QAAQ,QAAQ,GAAhB;KACA,KAAK;MACD,QAAQ,WAAW,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,OAAO,OAAO,CAAC;MACxF;KACJ,KAAK;MACD,QAAQ,WAAW,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,OAAO,OAAO,CAAC;MACxF;KACJ,KAAK;MACD,QAAQ,QAAQ,MAAM,MAAM,cAAc,UAAU,OAAO,QAAQ,OAAO,OAAO,CAAC;MAClF;KACJ,KAAK;MACD,QAAQ,UAAU,MAAM,MAAM,cAAc,YAAY,OAAO,QAAQ,OAAO,OAAO,CAAC;MACtF;KACJ,KAAK;MACD,QAAQ,QAAQ,MAAM,MAAM,cAAc,UAAU,OAAO,QAAQ,OAAO,OAAO,CAAC;MAClF;KACJ,KAAK;MACD,QAAQ,YAAY,MAAM,MAAM,cAAc,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC;MAC1F;KACJ,SACI,OAAO,SAAS,MAAM,CAAC;IAE3B;GACJ;GACA,OAAO;EACX;;;;;;;;;;;EAYA,cAAc,kBAAkB,SAAS,gBAAgB,QAAQ;GAC7D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;GAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;EAC9C;;;;;;;;;EAUA,cAAc,SAAS,SAAS,OAAO,SAAS;GAC5C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;GACX,IAAI,aAAa,CAAC;GAClB,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;IAChE,WAAW,OAAO;IAClB;KACI,IAAI,QAAQ,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,QAAQ;KAC1E,IAAI,OACA,OAAO,cAAc;IAC7B;GACJ;GACA,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;IAChE,IAAI,WAAW,SAAS,GACpB,OAAO;IACX,WAAW,OAAO;IAClB;KACI,IAAI,QAAQ,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,QAAQ;KAC1E,IAAI,OACA,OAAO,cAAc;IAC7B;GACJ;GACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;IAC1D,IAAI,WAAW,SAAS,GACpB,OAAO;IACX,WAAW,OAAO;IAClB;KACI,IAAI,QAAQ,MAAM,MAAM,cAAc,UAAU,OAAO,QAAQ,KAAK;KACpE,IAAI,OACA,OAAO,WAAW;IAC1B;GACJ;GACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;IAC9D,IAAI,WAAW,SAAS,GACpB,OAAO;IACX,WAAW,OAAO;IAClB;KACI,IAAI,QAAQ,MAAM,MAAM,cAAc,YAAY,OAAO,QAAQ,OAAO;KACxE,IAAI,OACA,OAAO,aAAa;IAC5B;GACJ;GACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;IAC1D,IAAI,WAAW,SAAS,GACpB,OAAO;IACX,WAAW,OAAO;IAClB;KACI,IAAI,QAAQ,MAAM,MAAM,cAAc,UAAU,OAAO,QAAQ,KAAK;KACpE,IAAI,OACA,OAAO,WAAW;IAC1B;GACJ;GACA,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAAG;IAClE,IAAI,WAAW,SAAS,GACpB,OAAO;IACX,WAAW,OAAO;IAClB;KACI,IAAI,QAAQ,MAAM,MAAM,cAAc,cAAc,OAAO,QAAQ,SAAS;KAC5E,IAAI,OACA,OAAO,eAAe;IAC9B;GACJ;GACA,OAAO;EACX;;;;;;;;;;EAWA,cAAc,WAAW,SAAS,SAAS,SAAS,SAAS;GACzD,IAAI,CAAC,SACD,UAAU,CAAC;GACf,IAAI,SAAS,CAAC;GACd,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;IAChE,OAAO,WAAW,MAAM,MAAM,cAAc,aAAa,SAAS,QAAQ,UAAU,OAAO;IAC3F,IAAI,QAAQ,QACR,OAAO,OAAO;GACtB;GACA,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;IAChE,OAAO,WAAW,MAAM,MAAM,cAAc,aAAa,SAAS,QAAQ,UAAU,OAAO;IAC3F,IAAI,QAAQ,QACR,OAAO,OAAO;GACtB;GACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;IAC1D,OAAO,QAAQ,MAAM,MAAM,cAAc,UAAU,SAAS,QAAQ,OAAO,OAAO;IAClF,IAAI,QAAQ,QACR,OAAO,OAAO;GACtB;GACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;IAC9D,OAAO,UAAU,MAAM,MAAM,cAAc,YAAY,SAAS,QAAQ,SAAS,OAAO;IACxF,IAAI,QAAQ,QACR,OAAO,OAAO;GACtB;GACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;IAC1D,OAAO,QAAQ,MAAM,MAAM,cAAc,UAAU,SAAS,QAAQ,OAAO,OAAO;IAClF,IAAI,QAAQ,QACR,OAAO,OAAO;GACtB;GACA,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAAG;IAClE,OAAO,YAAY,MAAM,MAAM,cAAc,cAAc,SAAS,QAAQ,WAAW,OAAO;IAC9F,IAAI,QAAQ,QACR,OAAO,OAAO;GACtB;GACA,OAAO;EACX;;;;;;;;EASA,cAAc,UAAU,SAAS,SAAS,SAAS;GAC/C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;EACvE;EAEA,cAAc,gBAAgB,WAAW;;;;;;;;;;;;;;;GAiBrC,SAAS,aAAa,YAAY;IAC9B,KAAK,QAAQ,CAAC;IACd,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,aAAa,UAAU,QAAQ,MAAM;;;;;;;;;GAUrC,aAAa,SAAS,SAAS,OAAO,YAAY;IAC9C,OAAO,IAAI,aAAa,UAAU;GACtC;;;;;;;;;;GAWA,aAAa,SAAS,SAAS,OAAO,SAAS,QAAQ;IACnD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM,QACvC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,MAAM,MAAM,cAAc,OAAO,QAAQ,MAAM,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IACnH,OAAO;GACX;;;;;;;;;;GAWA,aAAa,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IACrE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,aAAa,SAAS,SAAS,OAAO,QAAQ,QAAQ;IAClD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,aAAa;IACxH,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,IAAI,EAAE,QAAQ,SAAS,QAAQ,MAAM,SACjC,QAAQ,QAAQ,CAAC;OACrB,QAAQ,MAAM,KAAK,MAAM,MAAM,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;OAC5E;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,aAAa,kBAAkB,SAAS,gBAAgB,QAAQ;IAC5D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,aAAa,SAAS,SAAS,OAAO,SAAS;IAC3C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;KAC1D,IAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,GAC5B,OAAO;KACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GAAG;MAC3C,IAAI,QAAQ,MAAM,MAAM,cAAc,OAAO,QAAQ,MAAM,EAAE;MAC7D,IAAI,OACA,OAAO,WAAW;KAC1B;IACJ;IACA,OAAO;GACX;;;;;;;;;;GAWA,aAAa,WAAW,SAAS,SAAS,SAAS,SAAS;IACxD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU,QAAQ,UAC1B,OAAO,QAAQ,CAAC;IACpB,IAAI,QAAQ,SAAS,QAAQ,MAAM,QAAQ;KACvC,OAAO,QAAQ,CAAC;KAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,OAAO,MAAM,KAAK,MAAM,MAAM,cAAc,SAAS,QAAQ,MAAM,IAAI,OAAO;IACtF;IACA,OAAO;GACX;;;;;;;;GASA,aAAa,UAAU,SAAS,SAAS,SAAS;IAC9C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,gBAAgB,WAAW;;;;;;;;;;;;;;;GAiBrC,SAAS,aAAa,YAAY;IAC9B,KAAK,QAAQ,CAAC;IACd,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,aAAa,UAAU,QAAQ,MAAM;;;;;;;;;GAUrC,aAAa,SAAS,SAAS,OAAO,YAAY;IAC9C,OAAO,IAAI,aAAa,UAAU;GACtC;;;;;;;;;;GAWA,aAAa,SAAS,SAAS,OAAO,SAAS,QAAQ;IACnD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM,QACvC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,MAAM,MAAM,cAAc,OAAO,QAAQ,MAAM,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IACnH,OAAO;GACX;;;;;;;;;;GAWA,aAAa,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IACrE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,aAAa,SAAS,SAAS,OAAO,QAAQ,QAAQ;IAClD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,aAAa;IACxH,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,IAAI,EAAE,QAAQ,SAAS,QAAQ,MAAM,SACjC,QAAQ,QAAQ,CAAC;OACrB,QAAQ,MAAM,KAAK,MAAM,MAAM,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;OAC5E;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,aAAa,kBAAkB,SAAS,gBAAgB,QAAQ;IAC5D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,aAAa,SAAS,SAAS,OAAO,SAAS;IAC3C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;KAC1D,IAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,GAC5B,OAAO;KACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GAAG;MAC3C,IAAI,QAAQ,MAAM,MAAM,cAAc,OAAO,QAAQ,MAAM,EAAE;MAC7D,IAAI,OACA,OAAO,WAAW;KAC1B;IACJ;IACA,OAAO;GACX;;;;;;;;;;GAWA,aAAa,WAAW,SAAS,SAAS,SAAS,SAAS;IACxD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU,QAAQ,UAC1B,OAAO,QAAQ,CAAC;IACpB,IAAI,QAAQ,SAAS,QAAQ,MAAM,QAAQ;KACvC,OAAO,QAAQ,CAAC;KAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,OAAO,MAAM,KAAK,MAAM,MAAM,cAAc,SAAS,QAAQ,MAAM,IAAI,OAAO;IACtF;IACA,OAAO;GACX;;;;;;;;GASA,aAAa,UAAU,SAAS,SAAS,SAAS;IAC9C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,aAAa,WAAW;;;;;;;;;;;;;;;;;;;;GAsBlC,SAAS,UAAU,YAAY;IAC3B,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,UAAU,UAAU,cAAc;;;;;;;GAQlC,UAAU,UAAU,qBAAqB;;;;;;;GAQzC,UAAU,UAAU,QAAQ;;;;;;;GAQ5B,UAAU,UAAU,iBAAiB;;;;;;;GAQrC,UAAU,UAAU,WAAW;;;;;;;GAQ/B,UAAU,UAAU,eAAe;;;;;;;;;GAUnC,UAAU,SAAS,SAAS,OAAO,YAAY;IAC3C,OAAO,IAAI,UAAU,UAAU;GACnC;;;;;;;;;;GAWA,UAAU,SAAS,SAAS,OAAO,SAAS,QAAQ;IAChD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,eAAe,QAAQ,OAAO,eAAe,KAAK,SAAS,aAAa,GAChF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,WAAW;IACvE,IAAI,QAAQ,sBAAsB,QAAQ,OAAO,eAAe,KAAK,SAAS,oBAAoB,GAC9F,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,QAAQ,kBAAkB;IAC5E,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,MAAM,MAAM,OAAO,QAAQ,OAAO,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IAC9F,IAAI,QAAQ,kBAAkB,QAAQ,OAAO,eAAe,KAAK,SAAS,gBAAgB,GACtF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,cAAc;IAC1E,IAAI,QAAQ,YAAY,QAAQ,OAAO,eAAe,KAAK,SAAS,UAAU,GAC1E,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,UAAU,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IACrH,IAAI,QAAQ,gBAAgB,QAAQ,OAAO,eAAe,KAAK,SAAS,cAAc,GAClF,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,cAAc,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IACzH,OAAO;GACX;;;;;;;;;;GAWA,UAAU,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IAClE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,UAAU,SAAS,SAAS,OAAO,QAAQ,QAAQ;IAC/C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,UAAU;IACrH,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,QAAQ,cAAc,OAAO,OAAO;OACpC;MACJ,KAAK;OACD,QAAQ,qBAAqB,OAAO,KAAK;OACzC;MACJ,KAAK;OACD,QAAQ,QAAQ,MAAM,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC;OAC1D;MACJ,KAAK;OACD,QAAQ,iBAAiB,OAAO,OAAO;OACvC;MACJ,KAAK;OACD,QAAQ,WAAW,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,OAAO,OAAO,CAAC;OACjF;MACJ,KAAK;OACD,QAAQ,eAAe,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,OAAO,OAAO,CAAC;OACrF;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,UAAU,kBAAkB,SAAS,gBAAgB,QAAQ;IACzD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,UAAU,SAAS,SAAS,OAAO,SAAS;IACxC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GAC/D;SAAA,CAAC,MAAM,SAAS,QAAQ,WAAW,GACnC,OAAO;IAAA;IACf,IAAI,QAAQ,sBAAsB,QAAQ,QAAQ,eAAe,oBAAoB,GAC7E;SAAA,OAAO,QAAQ,uBAAuB,WACtC,OAAO;IAAA;IACf,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;KAC1D,IAAI,QAAQ,MAAM,MAAM,OAAO,QAAQ,KAAK;KAC5C,IAAI,OACA,OAAO,WAAW;IAC1B;IACA,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACrE;SAAA,CAAC,MAAM,UAAU,QAAQ,cAAc,KAAK,EAAE,QAAQ,kBAAkB,MAAM,UAAU,QAAQ,eAAe,GAAG,KAAK,MAAM,UAAU,QAAQ,eAAe,IAAI,IAClK,OAAO;IAAA;IACf,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;KAChE,IAAI,QAAQ,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,QAAQ;KACnE,IAAI,OACA,OAAO,cAAc;IAC7B;IACA,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GAAG;KACxE,IAAI,QAAQ,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,YAAY;KACvE,IAAI,OACA,OAAO,kBAAkB;IACjC;IACA,OAAO;GACX;;;;;;;;;;GAWA,UAAU,WAAW,SAAS,SAAS,SAAS,SAAS;IACrD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU;KAClB,OAAO,cAAc;KACrB,OAAO,qBAAqB;KAC5B,OAAO,QAAQ;KACf,OAAO,iBAAiB;KACxB,OAAO,WAAW;KAClB,OAAO,eAAe;IAC1B;IACA,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GACnE,OAAO,cAAc,QAAQ;IACjC,IAAI,QAAQ,sBAAsB,QAAQ,QAAQ,eAAe,oBAAoB,GACjF,OAAO,qBAAqB,QAAQ;IACxC,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACvD,OAAO,QAAQ,MAAM,MAAM,SAAS,QAAQ,OAAO,OAAO;IAC9D,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACzE,IAAI,OAAO,QAAQ,mBAAmB,UAClC,OAAO,iBAAiB,QAAQ,UAAU,SAAS,OAAO,QAAQ,cAAc,IAAI,QAAQ;SAE5F,OAAO,iBAAiB,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,cAAc,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,eAAe,QAAQ,GAAG,QAAQ,eAAe,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;IACpQ,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAC7D,OAAO,WAAW,MAAM,OAAO,SAAS,UAAU,SAAS,QAAQ,UAAU,OAAO;IACxF,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GACrE,OAAO,eAAe,MAAM,OAAO,SAAS,UAAU,SAAS,QAAQ,cAAc,OAAO;IAChG,OAAO;GACX;;;;;;;;GASA,UAAU,UAAU,SAAS,SAAS,SAAS;IAC3C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,eAAe,WAAW;;;;;;;;;;;;;;;;GAkBpC,SAAS,YAAY,YAAY;IAC7B,KAAK,eAAe,CAAC;IACrB,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,YAAY,UAAU,eAAe,MAAM;;;;;;;GAQ3C,YAAY,UAAU,OAAO;;;;;;;;;GAU7B,YAAY,SAAS,SAAS,OAAO,YAAY;IAC7C,OAAO,IAAI,YAAY,UAAU;GACrC;;;;;;;;;;GAWA,YAAY,SAAS,SAAS,OAAO,SAAS,QAAQ;IAClD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,aAAa,QACrD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,aAAa,QAAQ,EAAE,GAC/C,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,aAAa,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IAC9I,IAAI,QAAQ,QAAQ,QAAQ,OAAO,eAAe,KAAK,SAAS,MAAM,GAClE,MAAM,MAAM,cAAc,OAAO,QAAQ,MAAM,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IAC3G,OAAO;GACX;;;;;;;;;;GAWA,YAAY,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IACpE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,YAAY,SAAS,SAAS,OAAO,QAAQ,QAAQ;IACjD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,YAAY;IACvH,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,IAAI,EAAE,QAAQ,gBAAgB,QAAQ,aAAa,SAC/C,QAAQ,eAAe,CAAC;OAC5B,QAAQ,aAAa,KAAK,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;OACvG;MACJ,KAAK;OACD,QAAQ,OAAO,MAAM,MAAM,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC;OACvE;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,YAAY,kBAAkB,SAAS,gBAAgB,QAAQ;IAC3D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,YAAY,SAAS,SAAS,OAAO,SAAS;IAC1C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GAAG;KACxE,IAAI,CAAC,MAAM,QAAQ,QAAQ,YAAY,GACnC,OAAO;KACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,aAAa,QAAQ,EAAE,GAAG;MAClD,IAAI,QAAQ,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,aAAa,EAAE;MACxF,IAAI,OACA,OAAO,kBAAkB;KACjC;IACJ;IACA,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GAAG;KACxD,IAAI,QAAQ,MAAM,MAAM,cAAc,OAAO,QAAQ,IAAI;KACzD,IAAI,OACA,OAAO,UAAU;IACzB;IACA,OAAO;GACX;;;;;;;;;;GAWA,YAAY,WAAW,SAAS,SAAS,SAAS,SAAS;IACvD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU,QAAQ,UAC1B,OAAO,eAAe,CAAC;IAC3B,IAAI,QAAQ,UACR,OAAO,OAAO;IAClB,IAAI,QAAQ,gBAAgB,QAAQ,aAAa,QAAQ;KACrD,OAAO,eAAe,CAAC;KACvB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,aAAa,QAAQ,EAAE,GAC/C,OAAO,aAAa,KAAK,MAAM,MAAM,cAAc,oBAAoB,SAAS,QAAQ,aAAa,IAAI,OAAO;IACxH;IACA,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACrD,OAAO,OAAO,MAAM,MAAM,cAAc,SAAS,QAAQ,MAAM,OAAO;IAC1E,OAAO;GACX;;;;;;;;GASA,YAAY,UAAU,SAAS,SAAS,SAAS;IAC7C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,aAAa,WAAW;;;;;;;;;;;;;;;;GAkBlC,SAAS,UAAU,YAAY;IAC3B,KAAK,WAAW,CAAC;IACjB,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,UAAU,UAAU,UAAU;;;;;;;GAQ9B,UAAU,UAAU,WAAW,MAAM;;;;;;;;;GAUrC,UAAU,SAAS,SAAS,OAAO,YAAY;IAC3C,OAAO,IAAI,UAAU,UAAU;GACnC;;;;;;;;;;GAWA,UAAU,SAAS,SAAS,OAAO,SAAS,QAAQ;IAChD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,MAAM,MAAM,cAAc,iBAAiB,OAAO,QAAQ,SAAS,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IAC/H,IAAI,QAAQ,YAAY,QAAQ,QAAQ,SAAS,QAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,SAAS,QAAQ,EAAE,GAC3C,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,SAAS,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IACnI,OAAO;GACX;;;;;;;;;;GAWA,UAAU,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IAClE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,UAAU,SAAS,SAAS,OAAO,QAAQ,QAAQ;IAC/C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,UAAU;IACrH,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,QAAQ,UAAU,MAAM,MAAM,cAAc,iBAAiB,OAAO,QAAQ,OAAO,OAAO,CAAC;OAC3F;MACJ,KAAK;OACD,IAAI,EAAE,QAAQ,YAAY,QAAQ,SAAS,SACvC,QAAQ,WAAW,CAAC;OACxB,QAAQ,SAAS,KAAK,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;OAC5F;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,UAAU,kBAAkB,SAAS,gBAAgB,QAAQ;IACzD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,UAAU,SAAS,SAAS,OAAO,SAAS;IACxC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;KAC9D,IAAI,QAAQ,MAAM,MAAM,cAAc,iBAAiB,OAAO,QAAQ,OAAO;KAC7E,IAAI,OACA,OAAO,aAAa;IAC5B;IACA,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;KAChE,IAAI,CAAC,MAAM,QAAQ,QAAQ,QAAQ,GAC/B,OAAO;KACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,SAAS,QAAQ,EAAE,GAAG;MAC9C,IAAI,QAAQ,MAAM,MAAM,cAAc,aAAa,OAAO,QAAQ,SAAS,EAAE;MAC7E,IAAI,OACA,OAAO,cAAc;KAC7B;IACJ;IACA,OAAO;GACX;;;;;;;;;;GAWA,UAAU,WAAW,SAAS,SAAS,SAAS,SAAS;IACrD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU,QAAQ,UAC1B,OAAO,WAAW,CAAC;IACvB,IAAI,QAAQ,UACR,OAAO,UAAU;IACrB,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,OAAO,UAAU,MAAM,MAAM,cAAc,iBAAiB,SAAS,QAAQ,SAAS,OAAO;IACjG,IAAI,QAAQ,YAAY,QAAQ,SAAS,QAAQ;KAC7C,OAAO,WAAW,CAAC;KACnB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,SAAS,QAAQ,EAAE,GAC3C,OAAO,SAAS,KAAK,MAAM,MAAM,cAAc,aAAa,SAAS,QAAQ,SAAS,IAAI,OAAO;IACzG;IACA,OAAO;GACX;;;;;;;;GASA,UAAU,UAAU,SAAS,SAAS,SAAS;IAC3C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,iBAAiB,WAAW;;;;;;;;;;;;;;;;;GAmBtC,SAAS,cAAc,YAAY;IAC/B,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,cAAc,UAAU,YAAY;;;;;;;GAQpC,cAAc,UAAU,WAAW;;;;;;;GAQnC,cAAc,UAAU,aAAa;;;;;;;;;GAUrC,cAAc,SAAS,SAAS,OAAO,YAAY;IAC/C,OAAO,IAAI,cAAc,UAAU;GACvC;;;;;;;;;;GAWA,cAAc,SAAS,SAAS,OAAO,SAAS,QAAQ;IACpD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,aAAa,QAAQ,OAAO,eAAe,KAAK,SAAS,WAAW,GAC5E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,SAAS;IACrE,IAAI,QAAQ,YAAY,QAAQ,OAAO,eAAe,KAAK,SAAS,UAAU,GAC1E,MAAM,MAAM,cAAc,OAAO,QAAQ,UAAU,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IAC/G,IAAI,QAAQ,cAAc,QAAQ,OAAO,eAAe,KAAK,SAAS,YAAY,GAC9E,MAAM,MAAM,cAAc,OAAO,QAAQ,YAAY,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IACjH,OAAO;GACX;;;;;;;;;;GAWA,cAAc,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IACtE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,cAAc,SAAS,SAAS,OAAO,QAAQ,QAAQ;IACnD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,cAAc;IACzH,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,QAAQ,YAAY,OAAO,OAAO;OAClC;MACJ,KAAK;OACD,QAAQ,WAAW,MAAM,MAAM,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC;OAC3E;MACJ,KAAK;OACD,QAAQ,aAAa,MAAM,MAAM,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC;OAC7E;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,cAAc,kBAAkB,SAAS,gBAAgB,QAAQ;IAC7D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,cAAc,SAAS,SAAS,OAAO,SAAS;IAC5C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC3D;SAAA,CAAC,MAAM,SAAS,QAAQ,SAAS,GACjC,OAAO;IAAA;IACf,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;KAChE,IAAI,QAAQ,MAAM,MAAM,cAAc,OAAO,QAAQ,QAAQ;KAC7D,IAAI,OACA,OAAO,cAAc;IAC7B;IACA,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAAG;KACpE,IAAI,QAAQ,MAAM,MAAM,cAAc,OAAO,QAAQ,UAAU;KAC/D,IAAI,OACA,OAAO,gBAAgB;IAC/B;IACA,OAAO;GACX;;;;;;;;;;GAWA,cAAc,WAAW,SAAS,SAAS,SAAS,SAAS;IACzD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU;KAClB,OAAO,YAAY;KACnB,OAAO,WAAW;KAClB,OAAO,aAAa;IACxB;IACA,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC/D,OAAO,YAAY,QAAQ;IAC/B,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAC7D,OAAO,WAAW,MAAM,MAAM,cAAc,SAAS,QAAQ,UAAU,OAAO;IAClF,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GACjE,OAAO,aAAa,MAAM,MAAM,cAAc,SAAS,QAAQ,YAAY,OAAO;IACtF,OAAO;GACX;;;;;;;;GASA,cAAc,UAAU,SAAS,SAAS,SAAS;IAC/C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,oBAAoB,WAAW;;;;;;;;;;;;;;;GAiBzC,SAAS,iBAAiB,YAAY;IAClC,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,iBAAiB,UAAU,OAAO;;;;;;;;;GAUlC,iBAAiB,SAAS,SAAS,OAAO,YAAY;IAClD,OAAO,IAAI,iBAAiB,UAAU;GAC1C;;;;;;;;;;GAWA,iBAAiB,SAAS,SAAS,OAAO,SAAS,QAAQ;IACvD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,QAAQ,QAAQ,OAAO,eAAe,KAAK,SAAS,MAAM,GAClE,MAAM,MAAM,cAAc,OAAO,QAAQ,MAAM,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IAC3G,OAAO;GACX;;;;;;;;;;GAWA,iBAAiB,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IACzE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,iBAAiB,SAAS,SAAS,OAAO,QAAQ,QAAQ;IACtD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,iBAAiB;IAC5H,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,QAAQ,OAAO,MAAM,MAAM,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC;OACvE;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,iBAAiB,kBAAkB,SAAS,gBAAgB,QAAQ;IAChE,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,iBAAiB,SAAS,SAAS,OAAO,SAAS;IAC/C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GAAG;KACxD,IAAI,QAAQ,MAAM,MAAM,cAAc,OAAO,QAAQ,IAAI;KACzD,IAAI,OACA,OAAO,UAAU;IACzB;IACA,OAAO;GACX;;;;;;;;;;GAWA,iBAAiB,WAAW,SAAS,SAAS,SAAS,SAAS;IAC5D,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UACR,OAAO,OAAO;IAClB,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACrD,OAAO,OAAO,MAAM,MAAM,cAAc,SAAS,QAAQ,MAAM,OAAO;IAC1E,OAAO;GACX;;;;;;;;GASA,iBAAiB,UAAU,SAAS,SAAS,SAAS;IAClD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,gBAAgB,WAAW;;;;;;;;;;;;;;;;;;GAoBrC,SAAS,aAAa,YAAY;IAC9B,KAAK,UAAU,CAAC;IAChB,KAAK,OAAO,CAAC;IACb,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,aAAa,UAAU,UAAU,MAAM;;;;;;;GAQvC,aAAa,UAAU,QAAQ;;;;;;;GAQ/B,aAAa,UAAU,OAAO,MAAM;;;;;;;GAQpC,aAAa,UAAU,OAAO;;;;;;;;;GAU9B,aAAa,SAAS,SAAS,OAAO,YAAY;IAC9C,OAAO,IAAI,aAAa,UAAU;GACtC;;;;;;;;;;GAWA,aAAa,SAAS,SAAS,OAAO,SAAS,QAAQ;IACnD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,WAAW,QAAQ,QAAQ,QAAQ,QAC3C,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,QAAQ,EAAE,GAC1C,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,QAAQ,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IACzI,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK;IACjE,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,KAAK,QACrC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK,QAAQ,EAAE,GACvC,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,KAAK,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IACtI,IAAI,QAAQ,QAAQ,QAAQ,OAAO,eAAe,KAAK,SAAS,MAAM,GAClE,MAAM,MAAM,cAAc,OAAO,QAAQ,MAAM,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;IAC3G,OAAO;GACX;;;;;;;;;;GAWA,aAAa,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IACrE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,aAAa,SAAS,SAAS,OAAO,QAAQ,QAAQ;IAClD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,aAAa;IACxH,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,IAAI,EAAE,QAAQ,WAAW,QAAQ,QAAQ,SACrC,QAAQ,UAAU,CAAC;OACvB,QAAQ,QAAQ,KAAK,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;OAClG;MACJ,KAAK;OACD,QAAQ,QAAQ,OAAO,OAAO;OAC9B;MACJ,KAAK;OACD,IAAI,EAAE,QAAQ,QAAQ,QAAQ,KAAK,SAC/B,QAAQ,OAAO,CAAC;OACpB,QAAQ,KAAK,KAAK,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;OAC/F;MACJ,KAAK;OACD,QAAQ,OAAO,MAAM,MAAM,cAAc,OAAO,QAAQ,OAAO,OAAO,CAAC;OACvE;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,aAAa,kBAAkB,SAAS,gBAAgB,QAAQ;IAC5D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,aAAa,SAAS,SAAS,OAAO,SAAS;IAC3C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;KAC9D,IAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,GAC9B,OAAO;KACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,QAAQ,EAAE,GAAG;MAC7C,IAAI,QAAQ,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,QAAQ,EAAE;MACnF,IAAI,OACA,OAAO,aAAa;KAC5B;IACJ;IACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACnD;SAAA,CAAC,MAAM,SAAS,QAAQ,KAAK,GAC7B,OAAO;IAAA;IACf,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GAAG;KACxD,IAAI,CAAC,MAAM,QAAQ,QAAQ,IAAI,GAC3B,OAAO;KACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK,QAAQ,EAAE,GAAG;MAC1C,IAAI,QAAQ,MAAM,MAAM,cAAc,oBAAoB,OAAO,QAAQ,KAAK,EAAE;MAChF,IAAI,OACA,OAAO,UAAU;KACzB;IACJ;IACA,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GAAG;KACxD,IAAI,QAAQ,MAAM,MAAM,cAAc,OAAO,QAAQ,IAAI;KACzD,IAAI,OACA,OAAO,UAAU;IACzB;IACA,OAAO;GACX;;;;;;;;;;GAWA,aAAa,WAAW,SAAS,SAAS,SAAS,SAAS;IACxD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU,QAAQ,UAAU;KACpC,OAAO,UAAU,CAAC;KAClB,OAAO,OAAO,CAAC;IACnB;IACA,IAAI,QAAQ,UAAU;KAClB,OAAO,QAAQ;KACf,OAAO,OAAO;IAClB;IACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,QAAQ;KAC3C,OAAO,UAAU,CAAC;KAClB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,QAAQ,EAAE,GAC1C,OAAO,QAAQ,KAAK,MAAM,MAAM,cAAc,oBAAoB,SAAS,QAAQ,QAAQ,IAAI,OAAO;IAC9G;IACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACvD,OAAO,QAAQ,QAAQ;IAC3B,IAAI,QAAQ,QAAQ,QAAQ,KAAK,QAAQ;KACrC,OAAO,OAAO,CAAC;KACf,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK,QAAQ,EAAE,GACvC,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,oBAAoB,SAAS,QAAQ,KAAK,IAAI,OAAO;IACxG;IACA,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,MAAM,GACrD,OAAO,OAAO,MAAM,MAAM,cAAc,SAAS,QAAQ,MAAM,OAAO;IAC1E,OAAO;GACX;;;;;;;;GASA,aAAa,UAAU,SAAS,SAAS,SAAS;IAC9C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,uBAAuB,WAAW;;;;;;;;;;;;;;;;GAkB5C,SAAS,oBAAoB,YAAY;IACrC,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,oBAAoB,UAAU,KAAK;;;;;;;GAQnC,oBAAoB,UAAU,aAAa;;;;;;;;;GAU3C,oBAAoB,SAAS,SAAS,OAAO,YAAY;IACrD,OAAO,IAAI,oBAAoB,UAAU;GAC7C;;;;;;;;;;GAWA,oBAAoB,SAAS,SAAS,OAAO,SAAS,QAAQ;IAC1D,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,MAAM,QAAQ,OAAO,eAAe,KAAK,SAAS,IAAI,GAC9D,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,EAAE;IAC9D,IAAI,QAAQ,cAAc,QAAQ,OAAO,eAAe,KAAK,SAAS,YAAY,GAC9E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,UAAU;IACtE,OAAO;GACX;;;;;;;;;;GAWA,oBAAoB,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IAC5E,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,oBAAoB,SAAS,SAAS,OAAO,QAAQ,QAAQ;IACzD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,oBAAoB;IAC/H,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,QAAQ,KAAK,OAAO,OAAO;OAC3B;MACJ,KAAK;OACD,QAAQ,aAAa,OAAO,OAAO;OACnC;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,oBAAoB,kBAAkB,SAAS,gBAAgB,QAAQ;IACnE,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,oBAAoB,SAAS,SAAS,OAAO,SAAS;IAClD,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,MAAM,QAAQ,QAAQ,eAAe,IAAI,GAC7C;SAAA,CAAC,MAAM,SAAS,QAAQ,EAAE,GAC1B,OAAO;IAAA;IACf,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAC7D;SAAA,CAAC,MAAM,SAAS,QAAQ,UAAU,GAClC,OAAO;IAAA;IACf,OAAO;GACX;;;;;;;;;;GAWA,oBAAoB,WAAW,SAAS,SAAS,SAAS,SAAS;IAC/D,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU;KAClB,OAAO,KAAK;KACZ,OAAO,aAAa;IACxB;IACA,IAAI,QAAQ,MAAM,QAAQ,QAAQ,eAAe,IAAI,GACjD,OAAO,KAAK,QAAQ;IACxB,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GACjE,OAAO,aAAa,QAAQ;IAChC,OAAO;GACX;;;;;;;;GASA,oBAAoB,UAAU,SAAS,SAAS,SAAS;IACrD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,cAAc,uBAAuB,WAAW;;;;;;;;;;;;;;;;GAkB5C,SAAS,oBAAoB,YAAY;IACrC,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,oBAAoB,UAAU,YAAY;;;;;;;GAQ1C,oBAAoB,UAAU,QAAQ;GAGtC,IAAI;;;;;;;GAQJ,OAAO,eAAe,oBAAoB,WAAW,MAAM;IACvD,KAAK,MAAM,YAAY,eAAe,CAAC,aAAa,OAAO,CAAC;IAC5D,KAAK,MAAM,YAAY,YAAY;GACvC,CAAC;;;;;;;;;GAUD,oBAAoB,SAAS,SAAS,OAAO,YAAY;IACrD,OAAO,IAAI,oBAAoB,UAAU;GAC7C;;;;;;;;;;GAWA,oBAAoB,SAAS,SAAS,OAAO,SAAS,QAAQ;IAC1D,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,aAAa,QAAQ,OAAO,eAAe,KAAK,SAAS,WAAW,GAC5E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,SAAS;IACrE,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK;IACjE,OAAO;GACX;;;;;;;;;;GAWA,oBAAoB,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IAC5E,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,oBAAoB,SAAS,SAAS,OAAO,QAAQ,QAAQ;IACzD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,MAAM,cAAc,oBAAoB;IAC/H,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,QAAQ,YAAY,OAAO,OAAO;OAClC;MACJ,KAAK;OACD,QAAQ,QAAQ,OAAO,OAAO;OAC9B;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,oBAAoB,kBAAkB,SAAS,gBAAgB,QAAQ;IACnE,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,oBAAoB,SAAS,SAAS,OAAO,SAAS;IAClD,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,aAAa,CAAC;IAClB,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAAG;KAClE,WAAW,KAAK;KAChB,IAAI,CAAC,MAAM,SAAS,QAAQ,SAAS,GACjC,OAAO;IACf;IACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;KAC1D,IAAI,WAAW,OAAO,GAClB,OAAO;KACX,WAAW,KAAK;KAChB,IAAI,CAAC,MAAM,UAAU,QAAQ,KAAK,GAC9B,OAAO;IACf;IACA,OAAO;GACX;;;;;;;;;;GAWA,oBAAoB,WAAW,SAAS,SAAS,SAAS,SAAS;IAC/D,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAAG;KAClE,OAAO,YAAY,QAAQ;KAC3B,IAAI,QAAQ,QACR,OAAO,KAAK;IACpB;IACA,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;KAC1D,OAAO,QAAQ,QAAQ;KACvB,IAAI,QAAQ,QACR,OAAO,KAAK;IACpB;IACA,OAAO;GACX;;;;;;;;GASA,oBAAoB,UAAU,SAAS,SAAS,SAAS;IACrD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,OAAO;CACX,EAAA,CAAG;CAEH,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,eAAe,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;CAuBpD,SAAS,aAAa,YAAY;EAC9B,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,aAAa,UAAU,WAAW;;;;;;;CAQlC,aAAa,UAAU,WAAW;;;;;;;CAQlC,aAAa,UAAU,eAAe;;;;;;;CAQtC,aAAa,UAAU,iBAAiB;;;;;;;CAQxC,aAAa,UAAU,iBAAiB;;;;;;;CAQxC,aAAa,UAAU,QAAQ;;;;;;;CAQ/B,aAAa,UAAU,qBAAqB;;;;;;;;;CAU5C,aAAa,SAAS,SAAS,OAAO,YAAY;EAC9C,OAAO,IAAI,aAAa,UAAU;CACtC;;;;;;;;;;CAWA,aAAa,SAAS,SAAS,OAAO,SAAS,QAAQ;EACnD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,YAAY,QAAQ,OAAO,eAAe,KAAK,SAAS,UAAU,GAC1E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,QAAQ;EACpE,IAAI,QAAQ,gBAAgB,QAAQ,OAAO,eAAe,KAAK,SAAS,cAAc,GAClF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,YAAY;EACxE,IAAI,QAAQ,kBAAkB,QAAQ,OAAO,eAAe,KAAK,SAAS,gBAAgB,GACtF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,cAAc;EAC1E,IAAI,QAAQ,kBAAkB,QAAQ,OAAO,eAAe,KAAK,SAAS,gBAAgB,GACtF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,cAAc;EAC1E,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK;EACjE,IAAI,QAAQ,sBAAsB,QAAQ,OAAO,eAAe,KAAK,SAAS,oBAAoB,GAC9F,OAAO,OAA+B,EAAE,CAAC,CAAC,OAAO,QAAQ,kBAAkB;EAC/E,IAAI,QAAQ,YAAY,QAAQ,OAAO,eAAe,KAAK,SAAS,UAAU,GAC1E,OAAO,OAA+B,EAAE,CAAC,CAAC,OAAO,QAAQ,QAAQ;EACrE,OAAO;CACX;;;;;;;;;;CAWA,aAAa,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EACrE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,aAAa,SAAS,SAAS,OAAO,QAAQ,QAAQ;EAClD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,aAAa;EACpG,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,QAAQ,WAAW,OAAO,OAAO;KACjC;IACJ,KAAK;KACD,QAAQ,WAAW,OAAO,OAAO;KACjC;IACJ,KAAK;KACD,QAAQ,eAAe,OAAO,OAAO;KACrC;IACJ,KAAK;KACD,QAAQ,iBAAiB,OAAO,OAAO;KACvC;IACJ,KAAK;KACD,QAAQ,iBAAiB,OAAO,OAAO;KACvC;IACJ,KAAK;KACD,QAAQ,QAAQ,OAAO,OAAO;KAC9B;IACJ,KAAK;KACD,QAAQ,qBAAqB,OAAO,OAAO;KAC3C;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,aAAa,kBAAkB,SAAS,gBAAgB,QAAQ;EAC5D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,aAAa,SAAS,SAAS,OAAO,SAAS;EAC3C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GACzD;OAAA,CAAC,MAAM,SAAS,QAAQ,QAAQ,GAChC,OAAO;EAAA;EACf,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GACzD;OAAA,CAAC,MAAM,SAAS,QAAQ,QAAQ,GAChC,OAAO;EAAA;EACf,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GACjE;OAAA,CAAC,MAAM,SAAS,QAAQ,YAAY,GACpC,OAAO;EAAA;EACf,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACrE;OAAA,CAAC,MAAM,SAAS,QAAQ,cAAc,GACtC,OAAO;EAAA;EACf,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACrE;OAAA,CAAC,MAAM,SAAS,QAAQ,cAAc,GACtC,OAAO;EAAA;EACf,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACnD;OAAA,CAAC,MAAM,SAAS,QAAQ,KAAK,GAC7B,OAAO;EAAA;EACf,IAAI,QAAQ,sBAAsB,QAAQ,QAAQ,eAAe,oBAAoB,GAC7E;OAAA,CAAC,MAAM,SAAS,QAAQ,kBAAkB,GAC1C,OAAO;EAAA;EACf,OAAO;CACX;;;;;;;;;;CAWA,aAAa,WAAW,SAAS,SAAS,SAAS,SAAS;EACxD,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,UAAU;GAClB,OAAO,WAAW;GAClB,OAAO,eAAe;GACtB,OAAO,iBAAiB;GACxB,OAAO,iBAAiB;GACxB,OAAO,QAAQ;GACf,OAAO,qBAAqB;GAC5B,OAAO,WAAW;EACtB;EACA,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAC7D,OAAO,WAAW,QAAQ;EAC9B,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GACrE,OAAO,eAAe,QAAQ;EAClC,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACzE,OAAO,iBAAiB,QAAQ;EACpC,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACzE,OAAO,iBAAiB,QAAQ;EACpC,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACvD,OAAO,QAAQ,QAAQ;EAC3B,IAAI,QAAQ,sBAAsB,QAAQ,QAAQ,eAAe,oBAAoB,GACjF,OAAO,qBAAqB,QAAQ;EACxC,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAC7D,OAAO,WAAW,QAAQ;EAC9B,OAAO;CACX;;;;;;;;CASA,aAAa,UAAU,SAAS,SAAS,SAAS;EAC9C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,iBAAiB,MAAM,wBAAwB;;;;;;;;;;;;;;;;;CAmBxD,SAAS,eAAe,YAAY;EAChC,KAAK,WAAW,CAAC;EACjB,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,eAAe,UAAU,WAAW,MAAM;;;;;;;CAQ1C,eAAe,UAAU,cAAc;;;;;;;CAQvC,eAAe,UAAU,0BAA0B;;;;;;;;;CAUnD,eAAe,SAAS,SAAS,OAAO,YAAY;EAChD,OAAO,IAAI,eAAe,UAAU;CACxC;;;;;;;;;;CAWA,eAAe,SAAS,SAAS,OAAO,SAAS,QAAQ;EACrD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,YAAY,QAAQ,OAAO,eAAe,KAAK,SAAS,UAAU,GAC1E,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,QAAQ,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;GACxE,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;GAChG,MAAM,eAAe,OAAO,QAAQ,SAAS,KAAK,KAAK,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;EAC5H;EACJ,IAAI,QAAQ,eAAe,QAAQ,OAAO,eAAe,KAAK,SAAS,aAAa,GAChF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,WAAW;EACvE,IAAI,QAAQ,2BAA2B,QAAQ,OAAO,eAAe,KAAK,SAAS,yBAAyB,GACxG,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,uBAAuB;EACnF,OAAO;CACX;;;;;;;;;;CAWA,eAAe,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EACvE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,eAAe,SAAS,SAAS,OAAO,QAAQ,QAAQ;EACpD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,eAAe,GAAG;EACzG,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,OAAO,KAAK,CAAC,CAAC;KACd,IAAI,QAAQ,aAAa,MAAM,aAC3B,QAAQ,WAAW,CAAC;KACxB,MAAM,OAAO,OAAO;KACpB,OAAO;KACP,QAAQ,SAAS,OAAO,MAAM,eAAe,OAAO,QAAQ,OAAO,OAAO,CAAC;KAC3E;IACJ,KAAK;KACD,QAAQ,cAAc,OAAO,OAAO;KACpC;IACJ,KAAK;KACD,QAAQ,0BAA0B,OAAO,OAAO;KAChD;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,eAAe,kBAAkB,SAAS,gBAAgB,QAAQ;EAC9D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,eAAe,SAAS,SAAS,OAAO,SAAS;EAC7C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,YAAY,QAAQ,QAAQ,eAAe,UAAU,GAAG;GAChE,IAAI,CAAC,MAAM,SAAS,QAAQ,QAAQ,GAChC,OAAO;GACX,IAAI,MAAM,OAAO,KAAK,QAAQ,QAAQ;GACtC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAAG;IACjC,IAAI,QAAQ,MAAM,eAAe,OAAO,QAAQ,SAAS,IAAI,GAAG;IAChE,IAAI,OACA,OAAO,cAAc;GAC7B;EACJ;EACA,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GAC/D;OAAA,CAAC,MAAM,UAAU,QAAQ,WAAW,KAAK,EAAE,QAAQ,eAAe,MAAM,UAAU,QAAQ,YAAY,GAAG,KAAK,MAAM,UAAU,QAAQ,YAAY,IAAI,IACtJ,OAAO;EAAA;EACf,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GACvF;OAAA,CAAC,MAAM,UAAU,QAAQ,uBAAuB,KAAK,EAAE,QAAQ,2BAA2B,MAAM,UAAU,QAAQ,wBAAwB,GAAG,KAAK,MAAM,UAAU,QAAQ,wBAAwB,IAAI,IACtM,OAAO;EAAA;EACf,OAAO;CACX;;;;;;;;;;CAWA,eAAe,WAAW,SAAS,SAAS,SAAS,SAAS;EAC1D,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,WAAW,QAAQ,UAC3B,OAAO,WAAW,CAAC;EACvB,IAAI,QAAQ,UAAU;GAClB,OAAO,cAAc;GACrB,OAAO,0BAA0B;EACrC;EACA,IAAI;EACJ,IAAI,QAAQ,aAAa,QAAQ,OAAO,KAAK,QAAQ,QAAQ,EAAA,CAAG,QAAQ;GACpE,OAAO,WAAW,CAAC;GACnB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,SAAS,MAAM,MAAM,MAAM,eAAe,SAAS,QAAQ,SAAS,MAAM,KAAK,OAAO;EACrG;EACA,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GACnE,IAAI,OAAO,QAAQ,gBAAgB,UAC/B,OAAO,cAAc,QAAQ,UAAU,SAAS,OAAO,QAAQ,WAAW,IAAI,QAAQ;OAEtF,OAAO,cAAc,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,WAAW,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,YAAY,QAAQ,GAAG,QAAQ,YAAY,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACxP,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GAC3F,IAAI,OAAO,QAAQ,4BAA4B,UAC3C,OAAO,0BAA0B,QAAQ,UAAU,SAAS,OAAO,QAAQ,uBAAuB,IAAI,QAAQ;OAE9G,OAAO,0BAA0B,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,uBAAuB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,wBAAwB,QAAQ,GAAG,QAAQ,wBAAwB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACxS,OAAO;CACX;;;;;;;;CASA,eAAe,UAAU,SAAS,SAAS,SAAS;EAChD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,oBAAoB,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B9D,SAAS,kBAAkB,YAAY;EACnC,KAAK,eAAe,CAAC;EACrB,KAAK,oBAAoB,CAAC;EAC1B,KAAK,sBAAsB,CAAC;EAC5B,KAAK,uBAAuB,CAAC;EAC7B,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,kBAAkB,UAAU,eAAe,MAAM;;;;;;;CAQjD,kBAAkB,UAAU,eAAe;;;;;;;CAQ3C,kBAAkB,UAAU,YAAY;;;;;;;CAQxC,kBAAkB,UAAU,qBAAqB;;;;;;;CAQjD,kBAAkB,UAAU,uBAAuB;;;;;;;CAQnD,kBAAkB,UAAU,oBAAoB,MAAM;;;;;;;CAQtD,kBAAkB,UAAU,iBAAiB;;;;;;;CAQ7C,kBAAkB,UAAU,0BAA0B;;;;;;;CAQtD,kBAAkB,UAAU,sBAAsB,MAAM;;;;;;;CAQxD,kBAAkB,UAAU,uBAAuB,MAAM;;;;;;;CAQzD,kBAAkB,UAAU,2BAA2B;;;;;;;CAQvD,kBAAkB,UAAU,0BAA0B;;;;;;;CAQtD,kBAAkB,UAAU,sCAAsC;;;;;;;;;CAUlE,kBAAkB,SAAS,SAAS,OAAO,YAAY;EACnD,OAAO,IAAI,kBAAkB,UAAU;CAC3C;;;;;;;;;;CAWA,kBAAkB,SAAS,SAAS,OAAO,SAAS,QAAQ;EACxD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,gBAAgB,QAAQ,OAAO,eAAe,KAAK,SAAS,cAAc,GAClF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,YAAY;EACxE,IAAI,QAAQ,aAAa,QAAQ,OAAO,eAAe,KAAK,SAAS,WAAW,GAC5E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,SAAS;EACrE,IAAI,QAAQ,sBAAsB,QAAQ,OAAO,eAAe,KAAK,SAAS,oBAAoB,GAC9F,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,kBAAkB;EAC9E,IAAI,QAAQ,wBAAwB,QAAQ,OAAO,eAAe,KAAK,SAAS,sBAAsB,GAClG,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,oBAAoB;EAChF,IAAI,QAAQ,kBAAkB,QAAQ,OAAO,eAAe,KAAK,SAAS,gBAAgB,GACtF,MAAM,eAAe,OAAO,QAAQ,gBAAgB,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EAChH,IAAI,QAAQ,2BAA2B,QAAQ,OAAO,eAAe,KAAK,SAAS,yBAAyB,GACxG,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,uBAAuB;EACnF,IAAI,QAAQ,4BAA4B,QAAQ,OAAO,eAAe,KAAK,SAAS,0BAA0B,GAC1G,OAAO,OAA+B,EAAE,CAAC,CAAC,OAAO,QAAQ,wBAAwB;EACrF,IAAI,QAAQ,2BAA2B,QAAQ,OAAO,eAAe,KAAK,SAAS,yBAAyB,GACxG,OAAO,OAA+B,EAAE,CAAC,CAAC,OAAO,QAAQ,uBAAuB;EACpF,IAAI;EACJ,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,aAAa,SACrD,UAAU,QAAQ,aAAa,QAAQ;OAEvC,UAAU,QAAQ;EACtB,IAAI,WAAW,QAAQ,QAAQ,QAAQ;GACnC,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK;GAChD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAClC,OAAO,OAAO,QAAQ,EAAE;GAC5B,OAAO,OAAO;EAClB;EACA,IAAI;EACJ,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,kBAAkB,SAC/D,UAAU,QAAQ,kBAAkB,QAAQ;OAE5C,UAAU,QAAQ;EACtB,IAAI,WAAW,QAAQ,QAAQ,QAAQ;GACnC,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK;GAChD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAClC,OAAO,OAAO,QAAQ,EAAE;GAC5B,OAAO,OAAO;EAClB;EACA,IAAI;EACJ,IAAI,QAAQ,uBAAuB,QAAQ,QAAQ,oBAAoB,SACnE,UAAU,QAAQ,oBAAoB,QAAQ;OAE9C,UAAU,QAAQ;EACtB,IAAI,WAAW,QAAQ,QAAQ,QAAQ;GACnC,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK;GAChD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAClC,OAAO,OAAO,QAAQ,EAAE;GAC5B,OAAO,OAAO;EAClB;EACA,IAAI;EACJ,IAAI,QAAQ,wBAAwB,QAAQ,QAAQ,qBAAqB,SACrE,UAAU,QAAQ,qBAAqB,QAAQ;OAE/C,UAAU,QAAQ;EACtB,IAAI,WAAW,QAAQ,QAAQ,QAAQ;GACnC,OAAO,OAA+B,GAAG,CAAC,CAAC,KAAK;GAChD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAClC,OAAO,OAAO,QAAQ,EAAE;GAC5B,OAAO,OAAO;EAClB;EACA,IAAI,QAAQ,uCAAuC,QAAQ,OAAO,eAAe,KAAK,SAAS,qCAAqC,GAChI,OAAO,OAA+B,GAAG,CAAC,CAAC,OAAO,QAAQ,mCAAmC;EACjG,OAAO;CACX;;;;;;;;;;CAWA,kBAAkB,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EAC1E,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,kBAAkB,SAAS,SAAS,OAAO,QAAQ,QAAQ;EACvD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,kBAAkB;EACzG,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,IAAI,EAAE,QAAQ,gBAAgB,QAAQ,aAAa,SAC/C,QAAQ,eAAe,CAAC;KAC5B,KAAK,MAAM,OAAO,GAAG;MACjB,IAAI,OAAO,OAAO,OAAO,IAAI,OAAO;MACpC,OAAO,OAAO,MAAM,MAChB,QAAQ,aAAa,KAAK,OAAO,OAAO,CAAC;KACjD,OACI,QAAQ,aAAa,KAAK,OAAO,OAAO,CAAC;KAC7C;IACJ,KAAK;KACD,QAAQ,eAAe,OAAO,OAAO;KACrC;IACJ,KAAK;KACD,QAAQ,YAAY,OAAO,OAAO;KAClC;IACJ,KAAK;KACD,QAAQ,qBAAqB,OAAO,OAAO;KAC3C;IACJ,KAAK;KACD,QAAQ,uBAAuB,OAAO,OAAO;KAC7C;IACJ,KAAK;KACD,IAAI,EAAE,QAAQ,qBAAqB,QAAQ,kBAAkB,SACzD,QAAQ,oBAAoB,CAAC;KACjC,KAAK,MAAM,OAAO,GAAG;MACjB,IAAI,OAAO,OAAO,OAAO,IAAI,OAAO;MACpC,OAAO,OAAO,MAAM,MAChB,QAAQ,kBAAkB,KAAK,OAAO,OAAO,CAAC;KACtD,OACI,QAAQ,kBAAkB,KAAK,OAAO,OAAO,CAAC;KAClD;IACJ,KAAK;KACD,QAAQ,iBAAiB,MAAM,eAAe,OAAO,QAAQ,OAAO,OAAO,CAAC;KAC5E;IACJ,KAAK;KACD,QAAQ,0BAA0B,OAAO,OAAO;KAChD;IACJ,KAAK;KACD,IAAI,EAAE,QAAQ,uBAAuB,QAAQ,oBAAoB,SAC7D,QAAQ,sBAAsB,CAAC;KACnC,KAAK,MAAM,OAAO,GAAG;MACjB,IAAI,OAAO,OAAO,OAAO,IAAI,OAAO;MACpC,OAAO,OAAO,MAAM,MAChB,QAAQ,oBAAoB,KAAK,OAAO,OAAO,CAAC;KACxD,OACI,QAAQ,oBAAoB,KAAK,OAAO,OAAO,CAAC;KACpD;IACJ,KAAK;KACD,IAAI,EAAE,QAAQ,wBAAwB,QAAQ,qBAAqB,SAC/D,QAAQ,uBAAuB,CAAC;KACpC,KAAK,MAAM,OAAO,GAAG;MACjB,IAAI,OAAO,OAAO,OAAO,IAAI,OAAO;MACpC,OAAO,OAAO,MAAM,MAChB,QAAQ,qBAAqB,KAAK,OAAO,OAAO,CAAC;KACzD,OACI,QAAQ,qBAAqB,KAAK,OAAO,OAAO,CAAC;KACrD;IACJ,KAAK;KACD,QAAQ,2BAA2B,OAAO,OAAO;KACjD;IACJ,KAAK;KACD,QAAQ,0BAA0B,OAAO,OAAO;KAChD;IACJ,KAAK;KACD,QAAQ,sCAAsC,OAAO,OAAO;KAC5D;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,kBAAkB,kBAAkB,SAAS,gBAAgB,QAAQ;EACjE,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,kBAAkB,SAAS,SAAS,OAAO,SAAS;EAChD,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GAAG;GACxE,IAAI;GACJ,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,aAAa,SACrD,UAAU,QAAQ,aAAa,QAAQ;QAEvC,UAAU,QAAQ;GACtB,IAAI,CAAC,MAAM,QAAQ,OAAO,GACtB,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAClC,IAAI,CAAC,MAAM,UAAU,QAAQ,EAAE,KAAK,EAAE,QAAQ,MAAM,MAAM,UAAU,QAAQ,EAAE,CAAC,GAAG,KAAK,MAAM,UAAU,QAAQ,EAAE,CAAC,IAAI,IAClH,OAAO;EACnB;EACA,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GACjE;OAAA,CAAC,MAAM,UAAU,QAAQ,YAAY,KAAK,EAAE,QAAQ,gBAAgB,MAAM,UAAU,QAAQ,aAAa,GAAG,KAAK,MAAM,UAAU,QAAQ,aAAa,IAAI,IAC1J,OAAO;EAAA;EACf,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC3D;OAAA,CAAC,MAAM,UAAU,QAAQ,SAAS,KAAK,EAAE,QAAQ,aAAa,MAAM,UAAU,QAAQ,UAAU,GAAG,KAAK,MAAM,UAAU,QAAQ,UAAU,IAAI,IAC9I,OAAO;EAAA;EACf,IAAI,QAAQ,sBAAsB,QAAQ,QAAQ,eAAe,oBAAoB,GAC7E;OAAA,CAAC,MAAM,UAAU,QAAQ,kBAAkB,KAAK,EAAE,QAAQ,sBAAsB,MAAM,UAAU,QAAQ,mBAAmB,GAAG,KAAK,MAAM,UAAU,QAAQ,mBAAmB,IAAI,IAClL,OAAO;EAAA;EACf,IAAI,QAAQ,wBAAwB,QAAQ,QAAQ,eAAe,sBAAsB,GACjF;OAAA,CAAC,MAAM,UAAU,QAAQ,oBAAoB,KAAK,EAAE,QAAQ,wBAAwB,MAAM,UAAU,QAAQ,qBAAqB,GAAG,KAAK,MAAM,UAAU,QAAQ,qBAAqB,IAAI,IAC1L,OAAO;EAAA;EACf,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAAG;GAClF,IAAI;GACJ,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,kBAAkB,SAC/D,UAAU,QAAQ,kBAAkB,QAAQ;QAE5C,UAAU,QAAQ;GACtB,IAAI,CAAC,MAAM,QAAQ,OAAO,GACtB,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAClC,IAAI,CAAC,MAAM,UAAU,QAAQ,EAAE,KAAK,EAAE,QAAQ,MAAM,MAAM,UAAU,QAAQ,EAAE,CAAC,GAAG,KAAK,MAAM,UAAU,QAAQ,EAAE,CAAC,IAAI,IAClH,OAAO;EACnB;EACA,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GAAG;GAC5E,IAAI,QAAQ,MAAM,eAAe,OAAO,QAAQ,cAAc;GAC9D,IAAI,OACA,OAAO,oBAAoB;EACnC;EACA,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GACvF;OAAA,CAAC,MAAM,UAAU,QAAQ,uBAAuB,KAAK,EAAE,QAAQ,2BAA2B,MAAM,UAAU,QAAQ,wBAAwB,GAAG,KAAK,MAAM,UAAU,QAAQ,wBAAwB,IAAI,IACtM,OAAO;EAAA;EACf,IAAI,QAAQ,uBAAuB,QAAQ,QAAQ,eAAe,qBAAqB,GAAG;GACtF,IAAI;GACJ,IAAI,QAAQ,uBAAuB,QAAQ,QAAQ,oBAAoB,SACnE,UAAU,QAAQ,oBAAoB,QAAQ;QAE9C,UAAU,QAAQ;GACtB,IAAI,CAAC,MAAM,QAAQ,OAAO,GACtB,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAClC,IAAI,CAAC,MAAM,UAAU,QAAQ,EAAE,KAAK,EAAE,QAAQ,MAAM,MAAM,UAAU,QAAQ,EAAE,CAAC,GAAG,KAAK,MAAM,UAAU,QAAQ,EAAE,CAAC,IAAI,IAClH,OAAO;EACnB;EACA,IAAI,QAAQ,wBAAwB,QAAQ,QAAQ,eAAe,sBAAsB,GAAG;GACxF,IAAI;GACJ,IAAI,QAAQ,wBAAwB,QAAQ,QAAQ,qBAAqB,SACrE,UAAU,QAAQ,qBAAqB,QAAQ;QAE/C,UAAU,QAAQ;GACtB,IAAI,CAAC,MAAM,QAAQ,OAAO,GACtB,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,EAAE,GAClC,IAAI,CAAC,MAAM,UAAU,QAAQ,EAAE,KAAK,EAAE,QAAQ,MAAM,MAAM,UAAU,QAAQ,EAAE,CAAC,GAAG,KAAK,MAAM,UAAU,QAAQ,EAAE,CAAC,IAAI,IAClH,OAAO;EACnB;EACA,IAAI,QAAQ,4BAA4B,QAAQ,QAAQ,eAAe,0BAA0B,GACzF;OAAA,CAAC,MAAM,UAAU,QAAQ,wBAAwB,KAAK,EAAE,QAAQ,4BAA4B,MAAM,UAAU,QAAQ,yBAAyB,GAAG,KAAK,MAAM,UAAU,QAAQ,yBAAyB,IAAI,IAC1M,OAAO;EAAA;EACf,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GACvF;OAAA,CAAC,MAAM,UAAU,QAAQ,uBAAuB,KAAK,EAAE,QAAQ,2BAA2B,MAAM,UAAU,QAAQ,wBAAwB,GAAG,KAAK,MAAM,UAAU,QAAQ,wBAAwB,IAAI,IACtM,OAAO;EAAA;EACf,IAAI,QAAQ,uCAAuC,QAAQ,QAAQ,eAAe,qCAAqC,GAC/G;OAAA,CAAC,MAAM,UAAU,QAAQ,mCAAmC,KAAK,EAAE,QAAQ,uCAAuC,MAAM,UAAU,QAAQ,oCAAoC,GAAG,KAAK,MAAM,UAAU,QAAQ,oCAAoC,IAAI,IACtP,OAAO;EAAA;EACf,OAAO;CACX;;;;;;;;;;CAWA,kBAAkB,WAAW,SAAS,SAAS,SAAS,SAAS;EAC7D,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,UAAU,QAAQ,UAAU;GACpC,OAAO,eAAe,CAAC;GACvB,OAAO,oBAAoB,CAAC;GAC5B,OAAO,sBAAsB,CAAC;GAC9B,OAAO,uBAAuB,CAAC;EACnC;EACA,IAAI,QAAQ,UAAU;GAClB,OAAO,eAAe;GACtB,OAAO,YAAY;GACnB,OAAO,qBAAqB;GAC5B,OAAO,uBAAuB;GAC9B,OAAO,iBAAiB;GACxB,OAAO,0BAA0B;GACjC,OAAO,2BAA2B;GAClC,OAAO,0BAA0B;GACjC,OAAO,sCAAsC;EACjD;EACA,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GACrE,IAAI,OAAO,QAAQ,iBAAiB,UAChC,OAAO,eAAe,QAAQ,UAAU,SAAS,OAAO,QAAQ,YAAY,IAAI,QAAQ;OAExF,OAAO,eAAe,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,YAAY,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,aAAa,QAAQ,GAAG,QAAQ,aAAa,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EAC5P,IAAI,QAAQ,aAAa,QAAQ,QAAQ,eAAe,WAAW,GAC/D,IAAI,OAAO,QAAQ,cAAc,UAC7B,OAAO,YAAY,QAAQ,UAAU,SAAS,OAAO,QAAQ,SAAS,IAAI,QAAQ;OAElF,OAAO,YAAY,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,SAAS,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,UAAU,QAAQ,GAAG,QAAQ,UAAU,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EAChP,IAAI,QAAQ,sBAAsB,QAAQ,QAAQ,eAAe,oBAAoB,GACjF,IAAI,OAAO,QAAQ,uBAAuB,UACtC,OAAO,qBAAqB,QAAQ,UAAU,SAAS,OAAO,QAAQ,kBAAkB,IAAI,QAAQ;OAEpG,OAAO,qBAAqB,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,kBAAkB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,mBAAmB,QAAQ,GAAG,QAAQ,mBAAmB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACpR,IAAI,QAAQ,wBAAwB,QAAQ,QAAQ,eAAe,sBAAsB,GACrF,IAAI,OAAO,QAAQ,yBAAyB,UACxC,OAAO,uBAAuB,QAAQ,UAAU,SAAS,OAAO,QAAQ,oBAAoB,IAAI,QAAQ;OAExG,OAAO,uBAAuB,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,oBAAoB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,qBAAqB,QAAQ,GAAG,QAAQ,qBAAqB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EAC5R,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACzE,OAAO,iBAAiB,MAAM,eAAe,SAAS,QAAQ,gBAAgB,OAAO;EACzF,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GAC3F,IAAI,OAAO,QAAQ,4BAA4B,UAC3C,OAAO,0BAA0B,QAAQ,UAAU,SAAS,OAAO,QAAQ,uBAAuB,IAAI,QAAQ;OAE9G,OAAO,0BAA0B,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,uBAAuB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,wBAAwB,QAAQ,GAAG,QAAQ,wBAAwB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACxS,IAAI,QAAQ,4BAA4B,QAAQ,QAAQ,eAAe,0BAA0B,GAC7F,IAAI,OAAO,QAAQ,6BAA6B,UAC5C,OAAO,2BAA2B,QAAQ,UAAU,SAAS,OAAO,QAAQ,wBAAwB,IAAI,QAAQ;OAEhH,OAAO,2BAA2B,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,wBAAwB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,yBAAyB,QAAQ,GAAG,QAAQ,yBAAyB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EAC5S,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GAC3F,IAAI,OAAO,QAAQ,4BAA4B,UAC3C,OAAO,0BAA0B,QAAQ,UAAU,SAAS,OAAO,QAAQ,uBAAuB,IAAI,QAAQ;OAE9G,OAAO,0BAA0B,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,uBAAuB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,wBAAwB,QAAQ,GAAG,QAAQ,wBAAwB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACxS,IAAI,QAAQ,gBAAgB,QAAQ,aAAa,QAAQ;GACrD,OAAO,eAAe,CAAC;GACvB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,aAAa,QAAQ,EAAE,GAC/C,IAAI,OAAO,QAAQ,aAAa,OAAO,UACnC,OAAO,aAAa,KAAK,QAAQ,UAAU,SAAS,OAAO,QAAQ,aAAa,EAAE,IAAI,QAAQ,aAAa;QAE3G,OAAO,aAAa,KAAK,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,aAAa,EAAE,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,aAAa,EAAE,CAAC,QAAQ,GAAG,QAAQ,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,aAAa;EACrR;EACA,IAAI,QAAQ,qBAAqB,QAAQ,kBAAkB,QAAQ;GAC/D,OAAO,oBAAoB,CAAC;GAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,kBAAkB,QAAQ,EAAE,GACpD,IAAI,OAAO,QAAQ,kBAAkB,OAAO,UACxC,OAAO,kBAAkB,KAAK,QAAQ,UAAU,SAAS,OAAO,QAAQ,kBAAkB,EAAE,IAAI,QAAQ,kBAAkB;QAE1H,OAAO,kBAAkB,KAAK,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,kBAAkB,EAAE,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,kBAAkB,EAAE,CAAC,QAAQ,GAAG,QAAQ,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,kBAAkB;EAC9S;EACA,IAAI,QAAQ,uBAAuB,QAAQ,oBAAoB,QAAQ;GACnE,OAAO,sBAAsB,CAAC;GAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,oBAAoB,QAAQ,EAAE,GACtD,IAAI,OAAO,QAAQ,oBAAoB,OAAO,UAC1C,OAAO,oBAAoB,KAAK,QAAQ,UAAU,SAAS,OAAO,QAAQ,oBAAoB,EAAE,IAAI,QAAQ,oBAAoB;QAEhI,OAAO,oBAAoB,KAAK,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,oBAAoB,EAAE,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,oBAAoB,EAAE,CAAC,QAAQ,GAAG,QAAQ,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,oBAAoB;EACxT;EACA,IAAI,QAAQ,wBAAwB,QAAQ,qBAAqB,QAAQ;GACrE,OAAO,uBAAuB,CAAC;GAC/B,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,qBAAqB,QAAQ,EAAE,GACvD,IAAI,OAAO,QAAQ,qBAAqB,OAAO,UAC3C,OAAO,qBAAqB,KAAK,QAAQ,UAAU,SAAS,OAAO,QAAQ,qBAAqB,EAAE,IAAI,QAAQ,qBAAqB;QAEnI,OAAO,qBAAqB,KAAK,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,qBAAqB,EAAE,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,qBAAqB,EAAE,CAAC,QAAQ,GAAG,QAAQ,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,qBAAqB;EAC7T;EACA,IAAI,QAAQ,uCAAuC,QAAQ,QAAQ,eAAe,qCAAqC,GACnH,IAAI,OAAO,QAAQ,wCAAwC,UACvD,OAAO,sCAAsC,QAAQ,UAAU,SAAS,OAAO,QAAQ,mCAAmC,IAAI,QAAQ;OAEtI,OAAO,sCAAsC,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,mCAAmC,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,oCAAoC,QAAQ,GAAG,QAAQ,oCAAoC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACxV,OAAO;CACX;;;;;;;;CASA,kBAAkB,UAAU,SAAS,SAAS,SAAS;EACnD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,eAAe,MAAM,sBAAsB;;;;;;;;;;;;;;;;CAkBpD,SAAS,aAAa,YAAY;EAC9B,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,aAAa,UAAU,aAAa;;;;;;;CAQpC,aAAa,UAAU,gBAAgB;;;;;;;;;CAUvC,aAAa,SAAS,SAAS,OAAO,YAAY;EAC9C,OAAO,IAAI,aAAa,UAAU;CACtC;;;;;;;;;;CAWA,aAAa,SAAS,SAAS,OAAO,SAAS,QAAQ;EACnD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,cAAc,QAAQ,OAAO,eAAe,KAAK,SAAS,YAAY,GAC9E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,UAAU;EACtE,IAAI,QAAQ,iBAAiB,QAAQ,OAAO,eAAe,KAAK,SAAS,eAAe,GACpF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,aAAa;EACzE,OAAO;CACX;;;;;;;;;;CAWA,aAAa,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EACrE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,aAAa,SAAS,SAAS,OAAO,QAAQ,QAAQ;EAClD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,aAAa;EACpG,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,QAAQ,aAAa,OAAO,OAAO;KACnC;IACJ,KAAK;KACD,QAAQ,gBAAgB,OAAO,OAAO;KACtC;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,aAAa,kBAAkB,SAAS,gBAAgB,QAAQ;EAC5D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,aAAa,SAAS,SAAS,OAAO,SAAS;EAC3C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAC7D;OAAA,CAAC,MAAM,SAAS,QAAQ,UAAU,GAClC,OAAO;EAAA;EACf,IAAI,QAAQ,iBAAiB,QAAQ,QAAQ,eAAe,eAAe,GACnE;OAAA,CAAC,MAAM,SAAS,QAAQ,aAAa,GACrC,OAAO;EAAA;EACf,OAAO;CACX;;;;;;;;;;CAWA,aAAa,WAAW,SAAS,SAAS,SAAS,SAAS;EACxD,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,UAAU;GAClB,OAAO,aAAa;GACpB,OAAO,gBAAgB;EAC3B;EACA,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GACjE,OAAO,aAAa,QAAQ;EAChC,IAAI,QAAQ,iBAAiB,QAAQ,QAAQ,eAAe,eAAe,GACvE,OAAO,gBAAgB,QAAQ;EACnC,OAAO;CACX;;;;;;;;CASA,aAAa,UAAU,SAAS,SAAS,SAAS;EAC9C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,kCAAkC,MAAM,yCAAyC;;;;;;;;;;;;;;;;CAkB1F,SAAS,gCAAgC,YAAY;EACjD,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,gCAAgC,UAAU,oBAAoB;;;;;;;CAQ9D,gCAAgC,UAAU,UAAU;;;;;;;;;CAUpD,gCAAgC,SAAS,SAAS,OAAO,YAAY;EACjE,OAAO,IAAI,gCAAgC,UAAU;CACzD;;;;;;;;;;CAWA,gCAAgC,SAAS,SAAS,OAAO,SAAS,QAAQ;EACtE,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,qBAAqB,QAAQ,OAAO,eAAe,KAAK,SAAS,mBAAmB,GAC5F,MAAM,kBAAkB,OAAO,QAAQ,mBAAmB,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACtH,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,MAAM,aAAa,OAAO,QAAQ,SAAS,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACvG,OAAO;CACX;;;;;;;;;;CAWA,gCAAgC,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EACxF,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,gCAAgC,SAAS,SAAS,OAAO,QAAQ,QAAQ;EACrE,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,gCAAgC;EACvH,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,QAAQ,oBAAoB,MAAM,kBAAkB,OAAO,QAAQ,OAAO,OAAO,CAAC;KAClF;IACJ,KAAK;KACD,QAAQ,UAAU,MAAM,aAAa,OAAO,QAAQ,OAAO,OAAO,CAAC;KACnE;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,gCAAgC,kBAAkB,SAAS,gBAAgB,QAAQ;EAC/E,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,gCAAgC,SAAS,SAAS,OAAO,SAAS;EAC9D,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAAG;GAClF,IAAI,QAAQ,MAAM,kBAAkB,OAAO,QAAQ,iBAAiB;GACpE,IAAI,OACA,OAAO,uBAAuB;EACtC;EACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;GAC9D,IAAI,QAAQ,MAAM,aAAa,OAAO,QAAQ,OAAO;GACrD,IAAI,OACA,OAAO,aAAa;EAC5B;EACA,OAAO;CACX;;;;;;;;;;CAWA,gCAAgC,WAAW,SAAS,SAAS,SAAS,SAAS;EAC3E,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,UAAU;GAClB,OAAO,oBAAoB;GAC3B,OAAO,UAAU;EACrB;EACA,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAC/E,OAAO,oBAAoB,MAAM,kBAAkB,SAAS,QAAQ,mBAAmB,OAAO;EAClG,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,OAAO,UAAU,MAAM,aAAa,SAAS,QAAQ,SAAS,OAAO;EACzE,OAAO;CACX;;;;;;;;CASA,gCAAgC,UAAU,SAAS,SAAS,SAAS;EACjE,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,0BAA0B,MAAM,iCAAiC;;;;;;;;;;;;;;;;CAkB1E,SAAS,wBAAwB,YAAY;EACzC,KAAK,cAAc,CAAC;EACpB,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,wBAAwB,UAAU,UAAU;;;;;;;CAQ5C,wBAAwB,UAAU,cAAc,MAAM;;;;;;;;;CAUtD,wBAAwB,SAAS,SAAS,OAAO,YAAY;EACzD,OAAO,IAAI,wBAAwB,UAAU;CACjD;;;;;;;;;;CAWA,wBAAwB,SAAS,SAAS,OAAO,SAAS,QAAQ;EAC9D,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,MAAM,aAAa,OAAO,QAAQ,SAAS,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACvG,IAAI,QAAQ,eAAe,QAAQ,OAAO,eAAe,KAAK,SAAS,aAAa,GAChF,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,WAAW,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;GAC3E,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;GAChG,MAAM,SAAS,OAAO,QAAQ,YAAY,KAAK,KAAK,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;EACzH;EACJ,OAAO;CACX;;;;;;;;;;CAWA,wBAAwB,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EAChF,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,wBAAwB,SAAS,SAAS,OAAO,QAAQ,QAAQ;EAC7D,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,wBAAwB,GAAG;EAClH,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,QAAQ,UAAU,MAAM,aAAa,OAAO,QAAQ,OAAO,OAAO,CAAC;KACnE;IACJ,KAAK;KACD,OAAO,KAAK,CAAC,CAAC;KACd,IAAI,QAAQ,gBAAgB,MAAM,aAC9B,QAAQ,cAAc,CAAC;KAC3B,MAAM,OAAO,OAAO;KACpB,OAAO;KACP,QAAQ,YAAY,OAAO,MAAM,SAAS,OAAO,QAAQ,OAAO,OAAO,CAAC;KACxE;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,wBAAwB,kBAAkB,SAAS,gBAAgB,QAAQ;EACvE,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,wBAAwB,SAAS,SAAS,OAAO,SAAS;EACtD,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;GAC9D,IAAI,QAAQ,MAAM,aAAa,OAAO,QAAQ,OAAO;GACrD,IAAI,OACA,OAAO,aAAa;EAC5B;EACA,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GAAG;GACtE,IAAI,CAAC,MAAM,SAAS,QAAQ,WAAW,GACnC,OAAO;GACX,IAAI,MAAM,OAAO,KAAK,QAAQ,WAAW;GACzC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAAG;IACjC,IAAI,QAAQ,MAAM,SAAS,OAAO,QAAQ,YAAY,IAAI,GAAG;IAC7D,IAAI,OACA,OAAO,iBAAiB;GAChC;EACJ;EACA,OAAO;CACX;;;;;;;;;;CAWA,wBAAwB,WAAW,SAAS,SAAS,SAAS,SAAS;EACnE,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,WAAW,QAAQ,UAC3B,OAAO,cAAc,CAAC;EAC1B,IAAI,QAAQ,UACR,OAAO,UAAU;EACrB,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,OAAO,UAAU,MAAM,aAAa,SAAS,QAAQ,SAAS,OAAO;EACzE,IAAI;EACJ,IAAI,QAAQ,gBAAgB,QAAQ,OAAO,KAAK,QAAQ,WAAW,EAAA,CAAG,QAAQ;GAC1E,OAAO,cAAc,CAAC;GACtB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,YAAY,MAAM,MAAM,MAAM,SAAS,SAAS,QAAQ,YAAY,MAAM,KAAK,OAAO;EACrG;EACA,OAAO;CACX;;;;;;;;CASA,wBAAwB,UAAU,SAAS,SAAS,SAAS;EACzD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,YAAY,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;CAsB9C,SAAS,UAAU,YAAY;EAC3B,KAAK,eAAe,CAAC;EACrB,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,UAAU,UAAU,aAAa;;;;;;;CAQjC,UAAU,UAAU,cAAc;;;;;;;CAQlC,UAAU,UAAU,yBAAyB;;;;;;;CAQ7C,UAAU,UAAU,0BAA0B;;;;;;;CAQ9C,UAAU,UAAU,0BAA0B;;;;;;;CAQ9C,UAAU,UAAU,eAAe,MAAM;;;;;;;;;CAUzC,UAAU,SAAS,SAAS,OAAO,YAAY;EAC3C,OAAO,IAAI,UAAU,UAAU;CACnC;;;;;;;;;;CAWA,UAAU,SAAS,SAAS,OAAO,SAAS,QAAQ;EAChD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,cAAc,QAAQ,OAAO,eAAe,KAAK,SAAS,YAAY,GAC9E,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,UAAU;EACtE,IAAI,QAAQ,eAAe,QAAQ,OAAO,eAAe,KAAK,SAAS,aAAa,GAChF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,WAAW;EACvE,IAAI,QAAQ,0BAA0B,QAAQ,OAAO,eAAe,KAAK,SAAS,wBAAwB,GACtG,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,sBAAsB;EAClF,IAAI,QAAQ,2BAA2B,QAAQ,OAAO,eAAe,KAAK,SAAS,yBAAyB,GACxG,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,uBAAuB;EACnF,IAAI;EACJ,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,aAAa,SACrD,SAAS,QAAQ,aAAa,QAAQ;OAEtC,SAAS,QAAQ;EACrB,IAAI,UAAU,QAAQ,OAAO,QAAQ;GACjC,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK;GAC9C,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GACjC,OAAO,OAAO,OAAO,EAAE;GAC3B,OAAO,OAAO;EAClB;EACA,IAAI,QAAQ,2BAA2B,QAAQ,OAAO,eAAe,KAAK,SAAS,yBAAyB,GACxG,OAAO,OAA+B,EAAE,CAAC,CAAC,OAAO,QAAQ,uBAAuB;EACpF,OAAO;CACX;;;;;;;;;;CAWA,UAAU,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EAClE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,UAAU,SAAS,SAAS,OAAO,QAAQ,QAAQ;EAC/C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,UAAU;EACjG,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,QAAQ,aAAa,OAAO,OAAO;KACnC;IACJ,KAAK;KACD,QAAQ,cAAc,OAAO,OAAO;KACpC;IACJ,KAAK;KACD,QAAQ,yBAAyB,OAAO,OAAO;KAC/C;IACJ,KAAK;KACD,QAAQ,0BAA0B,OAAO,OAAO;KAChD;IACJ,KAAK;KACD,QAAQ,0BAA0B,OAAO,OAAO;KAChD;IACJ,KAAK;KACD,IAAI,EAAE,QAAQ,gBAAgB,QAAQ,aAAa,SAC/C,QAAQ,eAAe,CAAC;KAC5B,KAAK,MAAM,OAAO,GAAG;MACjB,IAAI,OAAO,OAAO,OAAO,IAAI,OAAO;MACpC,OAAO,OAAO,MAAM,MAChB,QAAQ,aAAa,KAAK,OAAO,OAAO,CAAC;KACjD,OACI,QAAQ,aAAa,KAAK,OAAO,OAAO,CAAC;KAC7C;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,UAAU,kBAAkB,SAAS,gBAAgB,QAAQ;EACzD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,UAAU,SAAS,SAAS,OAAO,SAAS;EACxC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAC7D;OAAA,CAAC,MAAM,SAAS,QAAQ,UAAU,GAClC,OAAO;EAAA;EACf,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GAC/D;OAAA,CAAC,MAAM,UAAU,QAAQ,WAAW,KAAK,EAAE,QAAQ,eAAe,MAAM,UAAU,QAAQ,YAAY,GAAG,KAAK,MAAM,UAAU,QAAQ,YAAY,IAAI,IACtJ,OAAO;EAAA;EACf,IAAI,QAAQ,0BAA0B,QAAQ,QAAQ,eAAe,wBAAwB,GACrF;OAAA,CAAC,MAAM,UAAU,QAAQ,sBAAsB,KAAK,EAAE,QAAQ,0BAA0B,MAAM,UAAU,QAAQ,uBAAuB,GAAG,KAAK,MAAM,UAAU,QAAQ,uBAAuB,IAAI,IAClM,OAAO;EAAA;EACf,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GACvF;OAAA,CAAC,MAAM,UAAU,QAAQ,uBAAuB,KAAK,EAAE,QAAQ,2BAA2B,MAAM,UAAU,QAAQ,wBAAwB,GAAG,KAAK,MAAM,UAAU,QAAQ,wBAAwB,IAAI,IACtM,OAAO;EAAA;EACf,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GACvF;OAAA,CAAC,MAAM,UAAU,QAAQ,uBAAuB,KAAK,EAAE,QAAQ,2BAA2B,MAAM,UAAU,QAAQ,wBAAwB,GAAG,KAAK,MAAM,UAAU,QAAQ,wBAAwB,IAAI,IACtM,OAAO;EAAA;EACf,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GAAG;GACxE,IAAI;GACJ,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,aAAa,SACrD,SAAS,QAAQ,aAAa,QAAQ;QAEtC,SAAS,QAAQ;GACrB,IAAI,CAAC,MAAM,QAAQ,MAAM,GACrB,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GACjC,IAAI,CAAC,MAAM,UAAU,OAAO,EAAE,KAAK,EAAE,OAAO,MAAM,MAAM,UAAU,OAAO,EAAE,CAAC,GAAG,KAAK,MAAM,UAAU,OAAO,EAAE,CAAC,IAAI,IAC9G,OAAO;EACnB;EACA,OAAO;CACX;;;;;;;;;;CAWA,UAAU,WAAW,SAAS,SAAS,SAAS,SAAS;EACrD,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,UAAU,QAAQ,UAC1B,OAAO,eAAe,CAAC;EAC3B,IAAI,QAAQ,UAAU;GAClB,OAAO,aAAa;GACpB,OAAO,cAAc;GACrB,OAAO,yBAAyB;GAChC,OAAO,0BAA0B;GACjC,OAAO,0BAA0B;EACrC;EACA,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GACjE,OAAO,aAAa,QAAQ;EAChC,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GACnE,IAAI,OAAO,QAAQ,gBAAgB,UAC/B,OAAO,cAAc,QAAQ,UAAU,SAAS,OAAO,QAAQ,WAAW,IAAI,QAAQ;OAEtF,OAAO,cAAc,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,WAAW,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,YAAY,QAAQ,GAAG,QAAQ,YAAY,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACxP,IAAI,QAAQ,0BAA0B,QAAQ,QAAQ,eAAe,wBAAwB,GACzF,IAAI,OAAO,QAAQ,2BAA2B,UAC1C,OAAO,yBAAyB,QAAQ,UAAU,SAAS,OAAO,QAAQ,sBAAsB,IAAI,QAAQ;OAE5G,OAAO,yBAAyB,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,sBAAsB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,uBAAuB,QAAQ,GAAG,QAAQ,uBAAuB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACpS,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GAC3F,IAAI,OAAO,QAAQ,4BAA4B,UAC3C,OAAO,0BAA0B,QAAQ,UAAU,SAAS,OAAO,QAAQ,uBAAuB,IAAI,QAAQ;OAE9G,OAAO,0BAA0B,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,uBAAuB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,wBAAwB,QAAQ,GAAG,QAAQ,wBAAwB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACxS,IAAI,QAAQ,gBAAgB,QAAQ,aAAa,QAAQ;GACrD,OAAO,eAAe,CAAC;GACvB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,aAAa,QAAQ,EAAE,GAC/C,IAAI,OAAO,QAAQ,aAAa,OAAO,UACnC,OAAO,aAAa,KAAK,QAAQ,UAAU,SAAS,OAAO,QAAQ,aAAa,EAAE,IAAI,QAAQ,aAAa;QAE3G,OAAO,aAAa,KAAK,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,aAAa,EAAE,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,aAAa,EAAE,CAAC,QAAQ,GAAG,QAAQ,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,aAAa;EACrR;EACA,IAAI,QAAQ,2BAA2B,QAAQ,QAAQ,eAAe,yBAAyB,GAC3F,IAAI,OAAO,QAAQ,4BAA4B,UAC3C,OAAO,0BAA0B,QAAQ,UAAU,SAAS,OAAO,QAAQ,uBAAuB,IAAI,QAAQ;OAE9G,OAAO,0BAA0B,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,uBAAuB,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,wBAAwB,QAAQ,GAAG,QAAQ,wBAAwB,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACxS,OAAO;CACX;;;;;;;;CASA,UAAU,UAAU,SAAS,SAAS,SAAS;EAC3C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,WAAW,MAAM,kBAAkB;;;;;;;;;;;;;;;CAiB5C,SAAS,SAAS,YAAY;EAC1B,KAAK,eAAe,CAAC;EACrB,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,SAAS,UAAU,eAAe,MAAM;;;;;;;;;CAUxC,SAAS,SAAS,SAAS,OAAO,YAAY;EAC1C,OAAO,IAAI,SAAS,UAAU;CAClC;;;;;;;;;;CAWA,SAAS,SAAS,SAAS,OAAO,SAAS,QAAQ;EAC/C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,gBAAgB,QAAQ,OAAO,eAAe,KAAK,SAAS,cAAc,GAClF,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;GAC5E,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;GAChG,MAAM,UAAU,OAAO,QAAQ,aAAa,KAAK,KAAK,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;EAC3H;EACJ,OAAO;CACX;;;;;;;;;;CAWA,SAAS,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EACjE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,SAAS,SAAS,SAAS,OAAO,QAAQ,QAAQ;EAC9C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,SAAS,GAAG;EACnG,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,OAAO,KAAK,CAAC,CAAC;KACd,IAAI,QAAQ,iBAAiB,MAAM,aAC/B,QAAQ,eAAe,CAAC;KAC5B,MAAM,OAAO,OAAO;KACpB,OAAO;KACP,QAAQ,aAAa,OAAO,MAAM,UAAU,OAAO,QAAQ,OAAO,OAAO,CAAC;KAC1E;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,SAAS,kBAAkB,SAAS,gBAAgB,QAAQ;EACxD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,SAAS,SAAS,SAAS,OAAO,SAAS;EACvC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,gBAAgB,QAAQ,QAAQ,eAAe,cAAc,GAAG;GACxE,IAAI,CAAC,MAAM,SAAS,QAAQ,YAAY,GACpC,OAAO;GACX,IAAI,MAAM,OAAO,KAAK,QAAQ,YAAY;GAC1C,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAAG;IACjC,IAAI,QAAQ,MAAM,UAAU,OAAO,QAAQ,aAAa,IAAI,GAAG;IAC/D,IAAI,OACA,OAAO,kBAAkB;GACjC;EACJ;EACA,OAAO;CACX;;;;;;;;;;CAWA,SAAS,WAAW,SAAS,SAAS,SAAS,SAAS;EACpD,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,WAAW,QAAQ,UAC3B,OAAO,eAAe,CAAC;EAC3B,IAAI;EACJ,IAAI,QAAQ,iBAAiB,QAAQ,OAAO,KAAK,QAAQ,YAAY,EAAA,CAAG,QAAQ;GAC5E,OAAO,eAAe,CAAC;GACvB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,aAAa,MAAM,MAAM,MAAM,UAAU,SAAS,QAAQ,aAAa,MAAM,KAAK,OAAO;EACxG;EACA,OAAO;CACX;;;;;;;;CASA,SAAS,UAAU,SAAS,SAAS,SAAS;EAC1C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,0BAA0B,MAAM,iCAAiC;;;;;;;;;;;;;;;;CAkB1E,SAAS,wBAAwB,YAAY;EACzC,KAAK,aAAa,CAAC;EACnB,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,wBAAwB,UAAU,aAAa,MAAM;;;;;;;CAQrD,wBAAwB,UAAU,cAAc;;;;;;;;;CAUhD,wBAAwB,SAAS,SAAS,OAAO,YAAY;EACzD,OAAO,IAAI,wBAAwB,UAAU;CACjD;;;;;;;;;;CAWA,wBAAwB,SAAS,SAAS,OAAO,SAAS,QAAQ;EAC9D,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,cAAc,QAAQ,QAAQ,WAAW,QACjD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,WAAW,QAAQ,EAAE,GAC7C,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,WAAW,EAAE;EAC7E,IAAI,QAAQ,eAAe,QAAQ,OAAO,eAAe,KAAK,SAAS,aAAa,GAChF,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,QAAQ,WAAW;EACrE,OAAO;CACX;;;;;;;;;;CAWA,wBAAwB,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EAChF,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,wBAAwB,SAAS,SAAS,OAAO,QAAQ,QAAQ;EAC7D,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,wBAAwB;EAC/G,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,IAAI,EAAE,QAAQ,cAAc,QAAQ,WAAW,SAC3C,QAAQ,aAAa,CAAC;KAC1B,QAAQ,WAAW,KAAK,OAAO,OAAO,CAAC;KACvC;IACJ,KAAK;KACD,QAAQ,cAAc,OAAO,KAAK;KAClC;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,wBAAwB,kBAAkB,SAAS,gBAAgB,QAAQ;EACvE,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,wBAAwB,SAAS,SAAS,OAAO,SAAS;EACtD,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,cAAc,QAAQ,QAAQ,eAAe,YAAY,GAAG;GACpE,IAAI,CAAC,MAAM,QAAQ,QAAQ,UAAU,GACjC,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,WAAW,QAAQ,EAAE,GAC7C,IAAI,CAAC,MAAM,SAAS,QAAQ,WAAW,EAAE,GACrC,OAAO;EACnB;EACA,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GAC/D;OAAA,OAAO,QAAQ,gBAAgB,WAC/B,OAAO;EAAA;EACf,OAAO;CACX;;;;;;;;;;CAWA,wBAAwB,WAAW,SAAS,SAAS,SAAS,SAAS;EACnE,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,UAAU,QAAQ,UAC1B,OAAO,aAAa,CAAC;EACzB,IAAI,QAAQ,UACR,OAAO,cAAc;EACzB,IAAI,QAAQ,cAAc,QAAQ,WAAW,QAAQ;GACjD,OAAO,aAAa,CAAC;GACrB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,WAAW,QAAQ,EAAE,GAC7C,OAAO,WAAW,KAAK,QAAQ,WAAW;EAClD;EACA,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GACnE,OAAO,cAAc,QAAQ;EACjC,OAAO;CACX;;;;;;;;CASA,wBAAwB,UAAU,SAAS,SAAS,SAAS;EACzD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,SAAS,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CAqBxC,SAAS,OAAO,YAAY;EACxB,KAAK,iBAAiB,CAAC;EACvB,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,OAAO,UAAU,SAAS;;;;;;;CAQ1B,OAAO,UAAU,iBAAiB,MAAM;;;;;;;CAQxC,OAAO,UAAU,UAAU;;;;;;;CAQ3B,OAAO,UAAU,iBAAiB;;;;;;;CAQlC,OAAO,UAAU,sBAAsB;;;;;;;;;CAUvC,OAAO,SAAS,SAAS,OAAO,YAAY;EACxC,OAAO,IAAI,OAAO,UAAU;CAChC;;;;;;;;;;CAWA,OAAO,SAAS,SAAS,OAAO,SAAS,QAAQ;EAC7C,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,UAAU,QAAQ,OAAO,eAAe,KAAK,SAAS,QAAQ,GACtE,MAAM,aAAa,OAAO,QAAQ,QAAQ,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACtG,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,SAAS,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACpH,IAAI,QAAQ,kBAAkB,QAAQ,OAAO,eAAe,KAAK,SAAS,gBAAgB,GACtF,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,cAAc,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;GAC9E,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;GAChG,MAAM,eAAe,OAAO,QAAQ,eAAe,KAAK,KAAK,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;EAClI;EACJ,IAAI,QAAQ,kBAAkB,QAAQ,OAAO,eAAe,KAAK,SAAS,gBAAgB,GACtF,OAAO,OAA8B,EAAE,CAAC,CAAC,OAAO,QAAQ,cAAc;EAC1E,IAAI,QAAQ,uBAAuB,QAAQ,OAAO,eAAe,KAAK,SAAS,qBAAqB,GAChG,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,QAAQ,mBAAmB;EAC7E,OAAO;CACX;;;;;;;;;;CAWA,OAAO,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EAC/D,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,OAAO,SAAS,SAAS,OAAO,QAAQ,QAAQ;EAC5C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,OAAO,GAAG;EACjG,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,QAAQ,SAAS,MAAM,aAAa,OAAO,QAAQ,OAAO,OAAO,CAAC;KAClE;IACJ,KAAK;KACD,OAAO,KAAK,CAAC,CAAC;KACd,IAAI,QAAQ,mBAAmB,MAAM,aACjC,QAAQ,iBAAiB,CAAC;KAC9B,MAAM,OAAO,OAAO;KACpB,OAAO;KACP,QAAQ,eAAe,OAAO,MAAM,eAAe,OAAO,QAAQ,OAAO,OAAO,CAAC;KACjF;IACJ,KAAK;KACD,QAAQ,UAAU,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,OAAO,OAAO,CAAC;KAChF;IACJ,KAAK;KACD,QAAQ,iBAAiB,OAAO,OAAO;KACvC;IACJ,KAAK;KACD,QAAQ,sBAAsB,OAAO,KAAK;KAC1C;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,OAAO,kBAAkB,SAAS,gBAAgB,QAAQ;EACtD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,OAAO,SAAS,SAAS,OAAO,SAAS;EACrC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,UAAU,QAAQ,QAAQ,eAAe,QAAQ,GAAG;GAC5D,IAAI,QAAQ,MAAM,aAAa,OAAO,QAAQ,MAAM;GACpD,IAAI,OACA,OAAO,YAAY;EAC3B;EACA,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GAAG;GAC5E,IAAI,CAAC,MAAM,SAAS,QAAQ,cAAc,GACtC,OAAO;GACX,IAAI,MAAM,OAAO,KAAK,QAAQ,cAAc;GAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAAG;IACjC,IAAI,QAAQ,MAAM,eAAe,OAAO,QAAQ,eAAe,IAAI,GAAG;IACtE,IAAI,OACA,OAAO,oBAAoB;GACnC;EACJ;EACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;GAC9D,IAAI,QAAQ,MAAM,OAAO,SAAS,UAAU,OAAO,QAAQ,OAAO;GAClE,IAAI,OACA,OAAO,aAAa;EAC5B;EACA,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACrE;OAAA,CAAC,MAAM,UAAU,QAAQ,cAAc,KAAK,EAAE,QAAQ,kBAAkB,MAAM,UAAU,QAAQ,eAAe,GAAG,KAAK,MAAM,UAAU,QAAQ,eAAe,IAAI,IAClK,OAAO;EAAA;EACf,IAAI,QAAQ,uBAAuB,QAAQ,QAAQ,eAAe,qBAAqB,GAC/E;OAAA,OAAO,QAAQ,wBAAwB,WACvC,OAAO;EAAA;EACf,OAAO;CACX;;;;;;;;;;CAWA,OAAO,WAAW,SAAS,SAAS,SAAS,SAAS;EAClD,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,WAAW,QAAQ,UAC3B,OAAO,iBAAiB,CAAC;EAC7B,IAAI,QAAQ,UAAU;GAClB,OAAO,SAAS;GAChB,OAAO,UAAU;GACjB,OAAO,iBAAiB;GACxB,OAAO,sBAAsB;EACjC;EACA,IAAI,QAAQ,UAAU,QAAQ,QAAQ,eAAe,QAAQ,GACzD,OAAO,SAAS,MAAM,aAAa,SAAS,QAAQ,QAAQ,OAAO;EACvE,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,OAAO,UAAU,MAAM,OAAO,SAAS,UAAU,SAAS,QAAQ,SAAS,OAAO;EACtF,IAAI;EACJ,IAAI,QAAQ,mBAAmB,QAAQ,OAAO,KAAK,QAAQ,cAAc,EAAA,CAAG,QAAQ;GAChF,OAAO,iBAAiB,CAAC;GACzB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,eAAe,MAAM,MAAM,MAAM,eAAe,SAAS,QAAQ,eAAe,MAAM,KAAK,OAAO;EACjH;EACA,IAAI,QAAQ,kBAAkB,QAAQ,QAAQ,eAAe,gBAAgB,GACzE,IAAI,OAAO,QAAQ,mBAAmB,UAClC,OAAO,iBAAiB,QAAQ,UAAU,SAAS,OAAO,QAAQ,cAAc,IAAI,QAAQ;OAE5F,OAAO,iBAAiB,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,cAAc,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,eAAe,QAAQ,GAAG,QAAQ,eAAe,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,QAAQ;EACpQ,IAAI,QAAQ,uBAAuB,QAAQ,QAAQ,eAAe,qBAAqB,GACnF,OAAO,sBAAsB,QAAQ;EACzC,OAAO;CACX;;;;;;;;CASA,OAAO,UAAU,SAAS,SAAS,SAAS;EACxC,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,sBAAsB,MAAM,6BAA6B;;;;;;;;;;;;;;;;;CAmBlE,SAAS,oBAAoB,YAAY;EACrC,KAAK,cAAc,CAAC;EACpB,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,oBAAoB,UAAU,UAAU;;;;;;;CAQxC,oBAAoB,UAAU,oBAAoB;;;;;;;CAQlD,oBAAoB,UAAU,cAAc,MAAM;;;;;;;;;CAUlD,oBAAoB,SAAS,SAAS,OAAO,YAAY;EACrD,OAAO,IAAI,oBAAoB,UAAU;CAC7C;;;;;;;;;;CAWA,oBAAoB,SAAS,SAAS,OAAO,SAAS,QAAQ;EAC1D,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,MAAM,aAAa,OAAO,QAAQ,SAAS,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACvG,IAAI,QAAQ,qBAAqB,QAAQ,OAAO,eAAe,KAAK,SAAS,mBAAmB,GAC5F,MAAM,kBAAkB,OAAO,QAAQ,mBAAmB,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACtH,IAAI,QAAQ,eAAe,QAAQ,OAAO,eAAe,KAAK,SAAS,aAAa,GAChF,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,WAAW,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;GAC3E,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;GAChG,MAAM,SAAS,OAAO,QAAQ,YAAY,KAAK,KAAK,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;EACzH;EACJ,OAAO;CACX;;;;;;;;;;CAWA,oBAAoB,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EAC5E,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,oBAAoB,SAAS,SAAS,OAAO,QAAQ,QAAQ;EACzD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,oBAAoB,GAAG;EAC9G,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,QAAQ,UAAU,MAAM,aAAa,OAAO,QAAQ,OAAO,OAAO,CAAC;KACnE;IACJ,KAAK;KACD,QAAQ,oBAAoB,MAAM,kBAAkB,OAAO,QAAQ,OAAO,OAAO,CAAC;KAClF;IACJ,KAAK;KACD,OAAO,KAAK,CAAC,CAAC;KACd,IAAI,QAAQ,gBAAgB,MAAM,aAC9B,QAAQ,cAAc,CAAC;KAC3B,MAAM,OAAO,OAAO;KACpB,OAAO;KACP,QAAQ,YAAY,OAAO,MAAM,SAAS,OAAO,QAAQ,OAAO,OAAO,CAAC;KACxE;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,oBAAoB,kBAAkB,SAAS,gBAAgB,QAAQ;EACnE,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,oBAAoB,SAAS,SAAS,OAAO,SAAS;EAClD,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAAG;GAC9D,IAAI,QAAQ,MAAM,aAAa,OAAO,QAAQ,OAAO;GACrD,IAAI,OACA,OAAO,aAAa;EAC5B;EACA,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAAG;GAClF,IAAI,QAAQ,MAAM,kBAAkB,OAAO,QAAQ,iBAAiB;GACpE,IAAI,OACA,OAAO,uBAAuB;EACtC;EACA,IAAI,QAAQ,eAAe,QAAQ,QAAQ,eAAe,aAAa,GAAG;GACtE,IAAI,CAAC,MAAM,SAAS,QAAQ,WAAW,GACnC,OAAO;GACX,IAAI,MAAM,OAAO,KAAK,QAAQ,WAAW;GACzC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAAG;IACjC,IAAI,QAAQ,MAAM,SAAS,OAAO,QAAQ,YAAY,IAAI,GAAG;IAC7D,IAAI,OACA,OAAO,iBAAiB;GAChC;EACJ;EACA,OAAO;CACX;;;;;;;;;;CAWA,oBAAoB,WAAW,SAAS,SAAS,SAAS,SAAS;EAC/D,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,WAAW,QAAQ,UAC3B,OAAO,cAAc,CAAC;EAC1B,IAAI,QAAQ,UAAU;GAClB,OAAO,UAAU;GACjB,OAAO,oBAAoB;EAC/B;EACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,OAAO,UAAU,MAAM,aAAa,SAAS,QAAQ,SAAS,OAAO;EACzE,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,eAAe,mBAAmB,GAC/E,OAAO,oBAAoB,MAAM,kBAAkB,SAAS,QAAQ,mBAAmB,OAAO;EAClG,IAAI;EACJ,IAAI,QAAQ,gBAAgB,QAAQ,OAAO,KAAK,QAAQ,WAAW,EAAA,CAAG,QAAQ;GAC1E,OAAO,cAAc,CAAC;GACtB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,YAAY,MAAM,MAAM,MAAM,SAAS,SAAS,QAAQ,YAAY,MAAM,KAAK,OAAO;EACrG;EACA,OAAO;CACX;;;;;;;;CASA,oBAAoB,UAAU,SAAS,SAAS,SAAS;EACrD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,iBAAiB,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;CAoBxD,SAAS,eAAe,YAAY;EAChC,KAAK,QAAQ,CAAC;EACd,KAAK,mBAAmB,CAAC;EACzB,KAAK,yBAAyB,CAAC;EAC/B,KAAK,oCAAoC,CAAC;EAC1C,IAAI,YACK;QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;EAAA;CAChD;;;;;;;CAQA,eAAe,UAAU,QAAQ,MAAM;;;;;;;CAQvC,eAAe,UAAU,mBAAmB,MAAM;;;;;;;CAQlD,eAAe,UAAU,yBAAyB,MAAM;;;;;;;CAQxD,eAAe,UAAU,oCAAoC,MAAM;;;;;;;;;CAUnE,eAAe,SAAS,SAAS,OAAO,YAAY;EAChD,OAAO,IAAI,eAAe,UAAU;CACxC;;;;;;;;;;CAWA,eAAe,SAAS,SAAS,OAAO,SAAS,QAAQ;EACrD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;EAC5B,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM,QACvC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,IAAI,QAAQ,MAAM,cAAc,YAAY;GACxC,OAAO,OAA8B,EAAE;GACvC,OAAO,MAAM,QAAQ,MAAM,EAAE;EACjC,OACI,MAAM,MAAM,OAAO,QAAQ,MAAM,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACzG,IAAI;EACJ,IAAI,QAAQ,oBAAoB,QAAQ,QAAQ,iBAAiB,SAC7D,SAAS,QAAQ,iBAAiB,QAAQ;OAE1C,SAAS,QAAQ;EACrB,IAAI,UAAU,QAAQ,OAAO,QACzB,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GACjC,MAAM,oBAAoB,OAAO,OAAO,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EAC5G,IAAI,QAAQ,qCAAqC,QAAQ,QAAQ,kCAAkC,QAC/F,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,kCAAkC,QAAQ,EAAE,GACpE,IAAI,QAAQ,kCAAkC,cAAc,YAAY;GACpE,OAAO,OAA8B,EAAE;GACvC,OAAO,MAAM,QAAQ,kCAAkC,EAAE;EAC7D,OACI,MAAM,MAAM,OAAO,QAAQ,kCAAkC,IAAI,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EACrI,IAAI,QAAQ,0BAA0B,QAAQ,OAAO,eAAe,KAAK,SAAS,wBAAwB,GACtG,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,sBAAsB,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;GACtF,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAA8B,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;GAChG,MAAM,wBAAwB,OAAO,QAAQ,uBAAuB,KAAK,KAAK,OAAO,OAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;EACnJ;EACJ,OAAO;CACX;;;;;;;;;;CAWA,eAAe,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;EACvE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;CAC/C;;;;;;;;;;;;CAaA,eAAe,SAAS,SAAS,OAAO,QAAQ,QAAQ;EACpD,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;EAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,eAAe,GAAG;EACzG,OAAO,OAAO,MAAM,KAAK;GACrB,IAAI,MAAM,OAAO,OAAO;GACxB,QAAQ,QAAQ,GAAhB;IACA,KAAK;KACD,IAAI,EAAE,QAAQ,SAAS,QAAQ,MAAM,SACjC,QAAQ,QAAQ,CAAC;KACrB,QAAQ,MAAM,KAAK,MAAM,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;KAC9D;IACJ,KAAK;KACD,IAAI,EAAE,QAAQ,oBAAoB,QAAQ,iBAAiB,SACvD,QAAQ,mBAAmB,CAAC;KAChC,QAAQ,iBAAiB,KAAK,MAAM,oBAAoB,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;KACvF;IACJ,KAAK;KACD,OAAO,KAAK,CAAC,CAAC;KACd,IAAI,QAAQ,2BAA2B,MAAM,aACzC,QAAQ,yBAAyB,CAAC;KACtC,MAAM,OAAO,OAAO;KACpB,OAAO;KACP,QAAQ,uBAAuB,OAAO,MAAM,wBAAwB,OAAO,QAAQ,OAAO,OAAO,CAAC;KAClG;IACJ,KAAK;KACD,IAAI,EAAE,QAAQ,qCAAqC,QAAQ,kCAAkC,SACzF,QAAQ,oCAAoC,CAAC;KACjD,QAAQ,kCAAkC,KAAK,MAAM,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;KAC1F;IACJ,SACI,OAAO,SAAS,MAAM,CAAC;GAE3B;EACJ;EACA,OAAO;CACX;;;;;;;;;;;CAYA,eAAe,kBAAkB,SAAS,gBAAgB,QAAQ;EAC9D,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;EAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;CAC9C;;;;;;;;;CAUA,eAAe,SAAS,SAAS,OAAO,SAAS;EAC7C,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;EACX,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GAAG;GAC1D,IAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,GAC5B,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,IAAI,EAAE,QAAQ,MAAM,cAAc,aAAa;IAC3C,IAAI,QAAQ,MAAM,MAAM,OAAO,QAAQ,MAAM,EAAE;IAC/C,IAAI,OACA,OAAO,WAAW;GAC1B;EACR;EACA,IAAI,QAAQ,oBAAoB,QAAQ,QAAQ,eAAe,kBAAkB,GAAG;GAChF,IAAI;GACJ,IAAI,QAAQ,oBAAoB,QAAQ,QAAQ,iBAAiB,SAC7D,SAAS,QAAQ,iBAAiB,QAAQ;QAE1C,SAAS,QAAQ;GACrB,IAAI,CAAC,MAAM,QAAQ,MAAM,GACrB,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GAAG;IACpC,IAAI,QAAQ,MAAM,oBAAoB,OAAO,OAAO,EAAE;IACtD,IAAI,OACA,OAAO,sBAAsB;GACrC;EACJ;EACA,IAAI,QAAQ,0BAA0B,QAAQ,QAAQ,eAAe,wBAAwB,GAAG;GAC5F,IAAI,CAAC,MAAM,SAAS,QAAQ,sBAAsB,GAC9C,OAAO;GACX,IAAI,MAAM,OAAO,KAAK,QAAQ,sBAAsB;GACpD,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,GAAG;IACjC,IAAI,QAAQ,MAAM,wBAAwB,OAAO,QAAQ,uBAAuB,IAAI,GAAG;IACvF,IAAI,OACA,OAAO,4BAA4B;GAC3C;EACJ;EACA,IAAI,QAAQ,qCAAqC,QAAQ,QAAQ,eAAe,mCAAmC,GAAG;GAClH,IAAI,CAAC,MAAM,QAAQ,QAAQ,iCAAiC,GACxD,OAAO;GACX,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,kCAAkC,QAAQ,EAAE,GACpE,IAAI,EAAE,QAAQ,kCAAkC,cAAc,aAAa;IACvE,IAAI,QAAQ,MAAM,MAAM,OAAO,QAAQ,kCAAkC,EAAE;IAC3E,IAAI,OACA,OAAO,uCAAuC;GACtD;EACR;EACA,OAAO;CACX;;;;;;;;;;CAWA,eAAe,WAAW,SAAS,SAAS,SAAS,SAAS;EAC1D,IAAI,CAAC,SACD,UAAU,CAAC;EACf,IAAI,SAAS,CAAC;EACd,IAAI,QAAQ,UAAU,QAAQ,UAAU;GACpC,OAAO,QAAQ,CAAC;GAChB,OAAO,mBAAmB,CAAC;GAC3B,OAAO,oCAAoC,CAAC;EAChD;EACA,IAAI,QAAQ,WAAW,QAAQ,UAC3B,OAAO,yBAAyB,CAAC;EACrC,IAAI,QAAQ,SAAS,QAAQ,MAAM,QAAQ;GACvC,OAAO,QAAQ,CAAC;GAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,EAAE,GACxC,OAAO,MAAM,KAAK,MAAM,MAAM,SAAS,QAAQ,MAAM,IAAI,OAAO;EACxE;EACA,IAAI,QAAQ,oBAAoB,QAAQ,iBAAiB,QAAQ;GAC7D,OAAO,mBAAmB,CAAC;GAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,iBAAiB,QAAQ,EAAE,GACnD,OAAO,iBAAiB,KAAK,MAAM,oBAAoB,SAAS,QAAQ,iBAAiB,IAAI,OAAO;EAC5G;EACA,IAAI,QAAQ,qCAAqC,QAAQ,kCAAkC,QAAQ;GAC/F,OAAO,oCAAoC,CAAC;GAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,kCAAkC,QAAQ,EAAE,GACpE,OAAO,kCAAkC,KAAK,MAAM,MAAM,SAAS,QAAQ,kCAAkC,IAAI,OAAO;EAChI;EACA,IAAI;EACJ,IAAI,QAAQ,2BAA2B,QAAQ,OAAO,KAAK,QAAQ,sBAAsB,EAAA,CAAG,QAAQ;GAChG,OAAO,yBAAyB,CAAC;GACjC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,GAChC,OAAO,uBAAuB,MAAM,MAAM,MAAM,wBAAwB,SAAS,QAAQ,uBAAuB,MAAM,KAAK,OAAO;EAC1I;EACA,OAAO;CACX;;;;;;;;CASA,eAAe,UAAU,SAAS,SAAS,SAAS;EAChD,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;CACvE;CAEA,OAAO;AACX,EAAA,CAAG;AAEH,MAAa,SAAS,MAAM,gBAAgB;;;;;;CAOxC,MAAM,SAAS,CAAC;CAEhB,OAAO,YAAY,WAAW;;;;;;EAO1B,MAAM,WAAW,CAAC;EAElB,SAAS,aAAa,WAAW;;;;;;;;;;;;;;;;GAkB7B,SAAS,UAAU,YAAY;IAC3B,IAAI,YACK;UAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE,GAC/D,IAAI,WAAW,KAAK,OAAO,MACvB,KAAK,KAAK,MAAM,WAAW,KAAK;IAAA;GAChD;;;;;;;GAQA,UAAU,UAAU,UAAU;;;;;;;GAQ9B,UAAU,UAAU,QAAQ;;;;;;;;;GAU5B,UAAU,SAAS,SAAS,OAAO,YAAY;IAC3C,OAAO,IAAI,UAAU,UAAU;GACnC;;;;;;;;;;GAWA,UAAU,SAAS,SAAS,OAAO,SAAS,QAAQ;IAChD,IAAI,CAAC,QACD,SAAS,QAAQ,OAAO;IAC5B,IAAI,QAAQ,WAAW,QAAQ,OAAO,eAAe,KAAK,SAAS,SAAS,GACxE,OAAO,OAA8B,CAAC,CAAC,CAAC,MAAM,QAAQ,OAAO;IACjE,IAAI,QAAQ,SAAS,QAAQ,OAAO,eAAe,KAAK,SAAS,OAAO,GACpE,OAAO,OAA8B,EAAE,CAAC,CAAC,MAAM,QAAQ,KAAK;IAChE,OAAO;GACX;;;;;;;;;;GAWA,UAAU,kBAAkB,SAAS,gBAAgB,SAAS,QAAQ;IAClE,OAAO,KAAK,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO;GAC/C;;;;;;;;;;;;GAaA,UAAU,SAAS,SAAS,OAAO,QAAQ,QAAQ;IAC/C,IAAI,EAAE,kBAAkB,UACpB,SAAS,QAAQ,OAAO,MAAM;IAClC,IAAI,MAAM,WAAW,KAAA,IAAY,OAAO,MAAM,OAAO,MAAM,QAAQ,UAAU,IAAI,MAAM,OAAO,SAAS,UAAU;IACjH,OAAO,OAAO,MAAM,KAAK;KACrB,IAAI,MAAM,OAAO,OAAO;KACxB,QAAQ,QAAQ,GAAhB;MACA,KAAK;OACD,QAAQ,UAAU,OAAO,MAAM;OAC/B;MACJ,KAAK;OACD,QAAQ,QAAQ,OAAO,MAAM;OAC7B;MACJ,SACI,OAAO,SAAS,MAAM,CAAC;KAE3B;IACJ;IACA,OAAO;GACX;;;;;;;;;;;GAYA,UAAU,kBAAkB,SAAS,gBAAgB,QAAQ;IACzD,IAAI,EAAE,kBAAkB,UACpB,SAAS,IAAI,QAAQ,MAAM;IAC/B,OAAO,KAAK,OAAO,QAAQ,OAAO,OAAO,CAAC;GAC9C;;;;;;;;;GAUA,UAAU,SAAS,SAAS,OAAO,SAAS;IACxC,IAAI,OAAO,YAAY,YAAY,YAAY,MAC3C,OAAO;IACX,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GACvD;SAAA,CAAC,MAAM,UAAU,QAAQ,OAAO,KAAK,EAAE,QAAQ,WAAW,MAAM,UAAU,QAAQ,QAAQ,GAAG,KAAK,MAAM,UAAU,QAAQ,QAAQ,IAAI,IACtI,OAAO;IAAA;IACf,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACnD;SAAA,CAAC,MAAM,UAAU,QAAQ,KAAK,GAC9B,OAAO;IAAA;IACf,OAAO;GACX;;;;;;;;;;GAWA,UAAU,WAAW,SAAS,SAAS,SAAS,SAAS;IACrD,IAAI,CAAC,SACD,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,UAAU;KAClB,OAAO,UAAU;KACjB,OAAO,QAAQ;IACnB;IACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,SAAS,GAC3D,IAAI,OAAO,QAAQ,YAAY,UAC3B,OAAO,UAAU,QAAQ,UAAU,SAAS,OAAO,QAAQ,OAAO,IAAI,QAAQ;SAE9E,OAAO,UAAU,QAAQ,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,QAAQ,OAAO,IAAI,QAAQ,UAAU,SAAS,IAAI,MAAM,SAAS,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,QAAQ,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ;IACpO,IAAI,QAAQ,SAAS,QAAQ,QAAQ,eAAe,OAAO,GACvD,OAAO,QAAQ,QAAQ;IAC3B,OAAO;GACX;;;;;;;;GASA,UAAU,UAAU,SAAS,SAAS,SAAS;IAC3C,OAAO,KAAK,YAAY,SAAS,MAAMA,eAAAA,QAAU,KAAK,aAAa;GACvE;GAEA,OAAO;EACX,EAAA,CAAG;EAEH,OAAO;CACX,EAAA,CAAG;CAEH,OAAO;AACX,EAAA,CAAG;;;AC5iQH,SAAS,cAAc,SAAS;CAC5B,uBAAO,IAAI,MAAM,kCAAkC,SAAS;AAChE;AACA,IAAa,mBAAb,MAA8B;CAC1B,WAAW,IAAI,MAAM,KAAK;CAC1B,QAAQ,IAAI,MAAM;EACd,MAAM,KAAK;EACX,sBAAsB;CAC1B,CAAC;CACD;CACA,UAAU;CACV,wBAAQ,IAAI,IAAI,CACZ,CAAC,qBAAqB,GAAG,KAAK,QAAQ,CAC1C,CAAC;CACD;CACA,YAAY,SAAS;EACjB,MAAM,EAAE,YAAY,aAAa;EACjC,IAAI,CAAC,cAAc,YAAY,YAC3B,KAAK,uBAAuB,IAAIC,eAAAA,aAAa,YAAY,EACrD,YAAY,EAAE,SAAS,EAC3B,CAAC;OAEA,IAAI,eAAe,YACpB,KAAK,iBAAiB,WAAW;OAEhC,IAAI,gBAAgB,YACrB,KAAK,iBAAiB;OAGtB,MAAM,IAAI,qBAAqB,UAAU;CAEjD;CACA,cAAc;EACV,IAAI,KAAK,aACL,MAAM,cAAc,2BAA2B;EAEnD,IAAI,KAAK,SACL,MAAM,cAAc,sCAAsC;EAE9D,KAAK,MAAM,YAAY,qCAAqB,IAAI,KAAK,CAAC;EACtD,KAAK,cAAc,QAAQ,OAAO;CACtC;CACA,aAAa;EACT,IAAI,CAAC,KAAK,aACN,MAAM,cAAc,uCAAuC;EAE/D,IAAI,KAAK,SACL,MAAM,cAAc,0BAA0B;EAElD,KAAK,MAAM,aAAa,sBAAsB,QAAQ,OAAO,KAAK,WAAW,CAAC;EAC9E,KAAK,MAAM,UAAU,qCAAqB,IAAI,KAAK,CAAC;EACpD,KAAK,UAAU;CACnB;CACA,iBAAiB,MAAM;EACnB,IAAI,CAAC,KAAK,aACN,MAAM,cAAc,6CAA6C;EAErE,IAAI,KAAK,SACL,aAAa,CAAE;EAEnB,MAAM,OAAO,KAAK;EAClB,MAAM,OAAO,KAAK,QAAQ,IAAI;EAC9B,KAAK,OAAO,KAAK,WAAW,SAAS;EACrC,KAAK,aAAa,KAAK,WAAW,SAAS;EAC3C,KAAK,YAAY,sBAAsB,QAAQ,OAAO,KAAK,WAAW,CAAC;EACvE,IAAI,OAAO,KAAK,QAAQ,YAAY,KAAK,QAAQ,KAAK,WAClD,KAAK,oBAAoB,KAAK;EAElC,aAAa;GACT,KAAK,UAAU,sBAAsB,QAAQ,OAAO,KAAK,WAAW,CAAC;EACzE;CACJ;CACA,mBAAmB,QAAQ;EACvB,OAAO,SAAS,QAAQ;GACpB,IAAI,IAAI,YAAY,aAChB;GAEJ,MAAM,oBAAoB,KAAK,2BAA2B,GAAG;GAC7D,IAAI,sBAAsB,MACtB;GAEJ,KAAK,iBAAiB,kBAAkB,MAAM,qBAAqB,iBAAiB,CAAC;EACzF,CAAC;CACL;CACA,iBAAiB,MAAM,OAAO;EAC1B,IAAI,CAAC,KAAK,aACN,MAAM,cAAc,6CAA6C;EAErE,IAAI,KAAK,SACL,MAAM,cAAc,2CAA2C;EAEnE,IAAI,OAAO,KAAK;EAChB,IAAI,MAAM,QAAQ,IAAI,GAAG;GACrB,MAAM,eAAe,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;GAClD,IAAI,cACA,OAAO;QAEN;IACD,MAAM,eAAe,sBAAsB,MAAM,KAAK,QAAQ;IAC9D,IAAI,CAAC,cACD,MAAM,cAAc,4CAA4C;IAEpE,OAAO,KAAK,QAAQ,YAAY;GACpC;EACJ;EACA,KAAK,MAAM,KAAK,KAAK;CACzB;CACA,QAAQ,MAAM;EACV,MAAM,OAAO,IAAI,MAAM,KAAK;EAC5B,MAAM,KAAK,KAAK;EAChB,IAAI,OAAO,OAAO,UACd,KAAK,QAAQ;OAGb,KAAK,eAAe;EAExB,KAAK,MAAM,IAAI,qBAAqB,IAAI,GAAG,IAAI;EAE/C,KADwB,iBAAiB,IAChC,CAAC,CAAC,MAAM,KAAK,IAAI;EAC1B,OAAO;CACX;CACA,iBAAiB,MAAM;EACnB,MAAM,aAAa,qBAAqB,KAAK,IAAI;EACjD,MAAM,aAAa,KAAK,MAAM,IAAI,UAAU;EAC5C,IAAI,YACA,OAAO;EAEX,OAAO,KAAK,QAAQ,KAAK,IAAI;CACjC;CACA,2BAA2B,KAAK;EAC5B,IAAI,KAAK,gBAAgB;GACrB,MAAM,cAAc,OAAO,OAAO,OAAO,OAAO,OAAO,eAAe,GAAG,CAAC,GAAG,GAAG;GAChF,MAAM,iBAAiB,KAAK,eAAe,WAAW;GACtD,IAAI,mBAAmB,MACnB,OAAO;GAEX,IAAI,EAAE,0BAA0BA,eAAAA,eAC5B,OAAO;GAEX,OAAO,IAAIA,eAAAA,aAAa,eAAe,SAAS;IAC5C,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,WAAW,IAAI;IACf,MAAM,IAAI;IACV,eAAe,IAAI;IACnB,YAAY,eAAe,cAAc,IAAI;GACjD,CAAC;EACL;EACA,OAAO;CACX;AACJ;AACA,SAAS,sBAAsB,QAAQ;CACnC,OAAO,OAAO,KAAK,MAAM,OAAO;AACpC;AACA,SAAS,qBAAqB,GAAG;CAC7B,IAAI,MAAM,KAAA,GACN,OAAO;CAEX,IAAI,MAAM,OAAO,EAAE,GAAG;CACtB,QAAQ,IAAI,EAAE,UAAU,KAAA,GACpB,MAAM,GAAG,EAAE,IAAI,GAAG;CAEtB,OAAO;AACX;AACA,SAAS,sBAAsB,MAAM,MAAM;CACvC,IAAI;CACJ,IAAI,UAAU;CACd,KAAK,MAAM,OAAO,MAAM;EACpB,UAAU,SAAS,OAAO,MAAM,UAAU,MAAM,iBAAiB,GAAG;EACpE,eAAe;GACX;GACA,MAAM;GACN,UAAU,SAAS,QAAQ,KAAA;EAC/B;CACJ;CACA,OAAO;AACX;AACA,SAAS,qBAAqB,OAAO;CACjC,OAAO,IAAI,MAAM,MAAM;EACnB,SAAS,MAAM;EACf,WAAW,MAAM,aAAa,CAAC,EAAA,CAAG,KAAK,EAAE,MAAM,aAAa,IAAI,MAAM,SAAS;GAAE;GAAM;EAAO,CAAC,CAAC;EAChG,MAAM,KAAK,UAAU,KAAK;CAC9B,CAAC;AACL;AACA,SAAgB,qBAAqB,MAAM;CACvC,MAAM,cAAc,CAAC;CACrB,MAAM,SAAS,cAAc;CAC7B,OAAO,IAAI,OAAO,SAAS,UAAU;EACjC,UAAU,cAAc,UAAU;EAClC,OAAO,SAAS;CACpB,CAAC;AACL"}