@powersync/common 1.42.0 → 1.43.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.mjs","sources":["../../../node_modules/js-logger/src/logger.js","../lib/db/DBAdapter.js","../lib/db/crud/SyncProgress.js","../lib/db/crud/SyncStatus.js","../lib/db/crud/UploadQueueStatus.js","../lib/utils/BaseObserver.js","../lib/utils/ControlledExecutor.js","../lib/utils/async.js","../lib/client/ConnectionManager.js","../lib/client/watched/processors/comparators.js","../lib/utils/MetaBaseObserver.js","../lib/client/watched/WatchedQuery.js","../lib/client/watched/processors/AbstractQueryProcessor.js","../lib/client/watched/processors/DifferentialQueryProcessor.js","../lib/client/watched/processors/OnChangeQueryProcessor.js","../lib/client/CustomQuery.js","../lib/client/SQLOpenFactory.js","../lib/client/sync/bucket/BucketStorageAdapter.js","../lib/client/sync/bucket/CrudBatch.js","../lib/client/sync/bucket/CrudEntry.js","../lib/client/sync/bucket/CrudTransaction.js","../lib/utils/AbortOperation.js","../lib/client/sync/bucket/OpType.js","../lib/client/sync/bucket/OplogEntry.js","../lib/client/sync/bucket/SyncDataBucket.js","../../../node_modules/rsocket-core/dist/Frames.js","../../../node_modules/rsocket-core/dist/Codecs.js","../../../node_modules/rsocket-core/dist/Common.js","../../../node_modules/rsocket-core/dist/Deferred.js","../../../node_modules/rsocket-core/dist/Errors.js","../../../node_modules/rsocket-core/dist/RSocket.js","../../../node_modules/rsocket-core/dist/ClientServerMultiplexerDemultiplexer.js","../../../node_modules/rsocket-core/dist/Fragmenter.js","../../../node_modules/rsocket-core/dist/Reassembler.js","../../../node_modules/rsocket-core/dist/RequestChannelStream.js","../../../node_modules/rsocket-core/dist/RequestFnFStream.js","../../../node_modules/rsocket-core/dist/RequestResponseStream.js","../../../node_modules/rsocket-core/dist/RequestStreamStream.js","../../../node_modules/rsocket-core/dist/RSocketSupport.js","../../../node_modules/rsocket-core/dist/Resume.js","../../../node_modules/rsocket-core/dist/RSocketConnector.js","../../../node_modules/rsocket-core/dist/RSocketServer.js","../../../node_modules/rsocket-core/dist/Transport.js","../../../node_modules/rsocket-core/dist/index.js","../lib/utils/DataStream.js","../../../node_modules/rsocket-websocket-client/dist/WebsocketDuplexConnection.js","../lib/client/sync/stream/WebsocketClientTransport.js","../lib/client/sync/stream/AbstractRemote.js","../lib/client/sync/stream/core-instruction.js","../lib/client/sync/stream/streaming-sync-types.js","../lib/client/sync/stream/AbstractStreamingSyncImplementation.js","../lib/client/triggers/TriggerManager.js","../lib/client/triggers/TriggerManagerImpl.js","../lib/client/AbstractPowerSyncDatabase.js","../lib/client/AbstractPowerSyncOpenFactory.js","../lib/client/runOnSchemaChange.js","../lib/client/compilableQueryWatch.js","../lib/client/constants.js","../lib/client/sync/bucket/SqliteBucketStorage.js","../lib/client/sync/bucket/SyncDataBatch.js","../lib/db/schema/Column.js","../lib/db/schema/IndexedColumn.js","../lib/db/schema/Index.js","../lib/db/schema/RawTable.js","../lib/db/schema/Schema.js","../lib/db/schema/Table.js","../lib/db/schema/TableV2.js","../lib/client/triggers/sanitizeSQL.js","../lib/client/watched/GetAllQuery.js","../lib/utils/Logger.js","../lib/utils/parseQuery.js"],"sourcesContent":["/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.6.1\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.TRACE = defineLogLevel(1, 'TRACE');\r\n\tLogger.DEBUG = defineLogLevel(2, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(3, 'INFO');\r\n\tLogger.TIME = defineLogLevel(4, 'TIME');\r\n\tLogger.WARN = defineLogLevel(5, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\t// Gets the current logging level for the logging instance\r\n\t\tgetLevel: function () {\r\n\t\t\treturn this.context.filterLevel;\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\ttrace: function () {\r\n\t\t\tthis.invoke(Logger.TRACE, arguments);\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.trace = bind(globalLogger, globalLogger.trace);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Gets the global logging filter level\r\n\tLogger.getLevel = function() {\r\n\t\treturn globalLogger.getLevel();\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t} else if (context.level === Logger.DEBUG && console.debug) {\r\n\t\t\t\t\thdlr = console.debug;\r\n\t\t\t\t} else if (context.level === Logger.TRACE && console.trace) {\r\n\t\t\t\t\thdlr = console.trace;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Createa an alias to useDefaults to avoid reaking a react-hooks rule.\r\n\tLogger.setDefaults = Logger.useDefaults;\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n","/**\n * Set of generic interfaces to allow PowerSync compatibility with\n * different SQLite DB implementations.\n */\n/**\n * Update table operation numbers from SQLite\n */\nexport var RowUpdateType;\n(function (RowUpdateType) {\n RowUpdateType[RowUpdateType[\"SQLITE_INSERT\"] = 18] = \"SQLITE_INSERT\";\n RowUpdateType[RowUpdateType[\"SQLITE_DELETE\"] = 9] = \"SQLITE_DELETE\";\n RowUpdateType[RowUpdateType[\"SQLITE_UPDATE\"] = 23] = \"SQLITE_UPDATE\";\n})(RowUpdateType || (RowUpdateType = {}));\nexport function isBatchedUpdateNotification(update) {\n return 'tables' in update;\n}\nexport function extractTableUpdates(update) {\n return isBatchedUpdateNotification(update) ? update.tables : [update.table];\n}\n//# sourceMappingURL=DBAdapter.js.map","/**\n * @internal The priority used by the core extension to indicate that a full sync was completed.\n */\nexport const FULL_SYNC_PRIORITY = 2147483647;\n/**\n * Provides realtime progress on how PowerSync is downloading rows.\n *\n * The progress until the next complete sync is available through the fields on {@link ProgressWithOperations},\n * which this class implements.\n * Additionally, the {@link SyncProgress.untilPriority} method can be used to otbain progress towards\n * a specific priority (instead of the progress for the entire download).\n *\n * The reported progress always reflects the status towards the end of a sync iteration (after\n * which a consistent snapshot of all buckets is available locally).\n *\n * In rare cases (in particular, when a [compacting](https://docs.powersync.com/usage/lifecycle-maintenance/compacting-buckets)\n * operation takes place between syncs), it's possible for the returned numbers to be slightly\n * inaccurate. For this reason, {@link SyncProgress} should be seen as an approximation of progress.\n * The information returned is good enough to build progress bars, but not exact enough to track\n * individual download counts.\n *\n * Also note that data is downloaded in bulk, which means that individual counters are unlikely\n * to be updated one-by-one.\n */\nexport class SyncProgress {\n internal;\n totalOperations;\n downloadedOperations;\n downloadedFraction;\n constructor(internal) {\n this.internal = internal;\n const untilCompletion = this.untilPriority(FULL_SYNC_PRIORITY);\n this.totalOperations = untilCompletion.totalOperations;\n this.downloadedOperations = untilCompletion.downloadedOperations;\n this.downloadedFraction = untilCompletion.downloadedFraction;\n }\n /**\n * Returns download progress towards all data up until the specified priority being received.\n *\n * The returned {@link ProgressWithOperations} tracks the target amount of operations that need\n * to be downloaded in total and how many of them have already been received.\n */\n untilPriority(priority) {\n let total = 0;\n let downloaded = 0;\n for (const progress of Object.values(this.internal)) {\n // Include higher-priority buckets, which are represented by lower numbers.\n if (progress.priority <= priority) {\n downloaded += progress.since_last;\n total += progress.target_count - progress.at_last;\n }\n }\n let progress = total == 0 ? 0.0 : downloaded / total;\n return {\n totalOperations: total,\n downloadedOperations: downloaded,\n downloadedFraction: progress\n };\n }\n}\n//# sourceMappingURL=SyncProgress.js.map","import { SyncProgress } from './SyncProgress.js';\nexport class SyncStatus {\n options;\n constructor(options) {\n this.options = options;\n }\n /**\n * Returns the used sync client implementation (either the one implemented in JavaScript or the newer Rust-based\n * implementation).\n *\n * This information is only available after a connection has been requested.\n */\n get clientImplementation() {\n return this.options.clientImplementation;\n }\n /**\n * Indicates if the client is currently connected to the PowerSync service.\n *\n * @returns {boolean} True if connected, false otherwise. Defaults to false if not specified.\n */\n get connected() {\n return this.options.connected ?? false;\n }\n /**\n * Indicates if the client is in the process of establishing a connection to the PowerSync service.\n *\n * @returns {boolean} True if connecting, false otherwise. Defaults to false if not specified.\n */\n get connecting() {\n return this.options.connecting ?? false;\n }\n /**\n * Time that a last sync has fully completed, if any.\n * This timestamp is reset to null after a restart of the PowerSync service.\n *\n * @returns {Date | undefined} The timestamp of the last successful sync, or undefined if no sync has completed.\n */\n get lastSyncedAt() {\n return this.options.lastSyncedAt;\n }\n /**\n * Indicates whether there has been at least one full sync completed since initialization.\n *\n * @returns {boolean | undefined} True if at least one sync has completed, false if no sync has completed,\n * or undefined when the state is still being loaded from the database.\n */\n get hasSynced() {\n return this.options.hasSynced;\n }\n /**\n * Provides the current data flow status regarding uploads and downloads.\n *\n * @returns {SyncDataFlowStatus} An object containing:\n * - downloading: True if actively downloading changes (only when connected is also true)\n * - uploading: True if actively uploading changes\n * Defaults to {downloading: false, uploading: false} if not specified.\n */\n get dataFlowStatus() {\n return (this.options.dataFlow ?? {\n /**\n * true if actively downloading changes.\n * This is only true when {@link connected} is also true.\n */\n downloading: false,\n /**\n * true if uploading changes.\n */\n uploading: false\n });\n }\n /**\n * All sync streams currently being tracked in teh database.\n *\n * This returns null when the database is currently being opened and we don't have reliable information about all\n * included streams yet.\n *\n * @experimental Sync streams are currently in alpha.\n */\n get syncStreams() {\n return this.options.dataFlow?.internalStreamSubscriptions?.map((core) => new SyncStreamStatusView(this, core));\n }\n /**\n * If the `stream` appears in {@link syncStreams}, returns the current status for that stream.\n *\n * @experimental Sync streams are currently in alpha.\n */\n forStream(stream) {\n const asJson = JSON.stringify(stream.parameters);\n const raw = this.options.dataFlow?.internalStreamSubscriptions?.find((r) => r.name == stream.name && asJson == JSON.stringify(r.parameters));\n return raw && new SyncStreamStatusView(this, raw);\n }\n /**\n * Provides sync status information for all bucket priorities, sorted by priority (highest first).\n *\n * @returns {SyncPriorityStatus[]} An array of status entries for different sync priority levels,\n * sorted with highest priorities (lower numbers) first.\n */\n get priorityStatusEntries() {\n return (this.options.priorityStatusEntries ?? []).slice().sort(SyncStatus.comparePriorities);\n }\n /**\n * A realtime progress report on how many operations have been downloaded and\n * how many are necessary in total to complete the next sync iteration.\n *\n * This field is only set when {@link SyncDataFlowStatus#downloading} is also true.\n */\n get downloadProgress() {\n const internalProgress = this.options.dataFlow?.downloadProgress;\n if (internalProgress == null) {\n return null;\n }\n return new SyncProgress(internalProgress);\n }\n /**\n * Reports the sync status (a pair of {@link SyncStatus#hasSynced} and {@link SyncStatus#lastSyncedAt} fields)\n * for a specific bucket priority level.\n *\n * When buckets with different priorities are declared, PowerSync may choose to synchronize higher-priority\n * buckets first. When a consistent view over all buckets for all priorities up until the given priority is\n * reached, PowerSync makes data from those buckets available before lower-priority buckets have finished\n * syncing.\n *\n * This method returns the status for the requested priority or the next higher priority level that has\n * status information available. This is because when PowerSync makes data for a given priority available,\n * all buckets in higher-priorities are guaranteed to be consistent with that checkpoint.\n *\n * For example, if PowerSync just finished synchronizing buckets in priority level 3, calling this method\n * with a priority of 1 may return information for priority level 3.\n *\n * @param {number} priority The bucket priority for which the status should be reported\n * @returns {SyncPriorityStatus} Status information for the requested priority level or the next higher level with available status\n */\n statusForPriority(priority) {\n // priorityStatusEntries are sorted by ascending priorities (so higher numbers to lower numbers).\n for (const known of this.priorityStatusEntries) {\n // We look for the first entry that doesn't have a higher priority.\n if (known.priority >= priority) {\n return known;\n }\n }\n // If we have a complete sync, that necessarily includes all priorities.\n return {\n priority,\n lastSyncedAt: this.lastSyncedAt,\n hasSynced: this.hasSynced\n };\n }\n /**\n * Compares this SyncStatus instance with another to determine if they are equal.\n * Equality is determined by comparing the serialized JSON representation of both instances.\n *\n * @param {SyncStatus} status The SyncStatus instance to compare against\n * @returns {boolean} True if the instances are considered equal, false otherwise\n */\n isEqual(status) {\n /**\n * By default Error object are serialized to an empty object.\n * This replaces Errors with more useful information before serialization.\n */\n const replacer = (_, value) => {\n if (value instanceof Error) {\n return {\n name: value.name,\n message: value.message,\n stack: value.stack\n };\n }\n return value;\n };\n return JSON.stringify(this.options, replacer) == JSON.stringify(status.options, replacer);\n }\n /**\n * Creates a human-readable string representation of the current sync status.\n * Includes information about connection state, sync completion, and data flow.\n *\n * @returns {string} A string representation of the sync status\n */\n getMessage() {\n const dataFlow = this.dataFlowStatus;\n return `SyncStatus<connected: ${this.connected} connecting: ${this.connecting} lastSyncedAt: ${this.lastSyncedAt} hasSynced: ${this.hasSynced}. Downloading: ${dataFlow.downloading}. Uploading: ${dataFlow.uploading}. UploadError: ${dataFlow.uploadError}, DownloadError?: ${dataFlow.downloadError}>`;\n }\n /**\n * Serializes the SyncStatus instance to a plain object.\n *\n * @returns {SyncStatusOptions} A plain object representation of the sync status\n */\n toJSON() {\n return {\n connected: this.connected,\n connecting: this.connecting,\n dataFlow: this.dataFlowStatus,\n lastSyncedAt: this.lastSyncedAt,\n hasSynced: this.hasSynced,\n priorityStatusEntries: this.priorityStatusEntries\n };\n }\n static comparePriorities(a, b) {\n return b.priority - a.priority; // Reverse because higher priorities have lower numbers\n }\n}\nclass SyncStreamStatusView {\n status;\n core;\n subscription;\n constructor(status, core) {\n this.status = status;\n this.core = core;\n this.subscription = {\n name: core.name,\n parameters: core.parameters,\n active: core.active,\n isDefault: core.is_default,\n hasExplicitSubscription: core.has_explicit_subscription,\n expiresAt: core.expires_at != null ? new Date(core.expires_at * 1000) : null,\n hasSynced: core.last_synced_at != null,\n lastSyncedAt: core.last_synced_at != null ? new Date(core.last_synced_at * 1000) : null\n };\n }\n get progress() {\n if (this.status.dataFlowStatus.downloadProgress == null) {\n // Don't make download progress public if we're not currently downloading.\n return null;\n }\n const { total, downloaded } = this.core.progress;\n const progress = total == 0 ? 0.0 : downloaded / total;\n return { totalOperations: total, downloadedOperations: downloaded, downloadedFraction: progress };\n }\n get priority() {\n return this.core.priority;\n }\n}\n//# sourceMappingURL=SyncStatus.js.map","export class UploadQueueStats {\n count;\n size;\n constructor(\n /**\n * Number of records in the upload queue.\n */\n count, \n /**\n * Size of the upload queue in bytes.\n */\n size = null) {\n this.count = count;\n this.size = size;\n }\n toString() {\n if (this.size == null) {\n return `UploadQueueStats<count:${this.count}>`;\n }\n else {\n return `UploadQueueStats<count: $count size: ${this.size / 1024}kB>`;\n }\n }\n}\n//# sourceMappingURL=UploadQueueStatus.js.map","export class BaseObserver {\n listeners = new Set();\n constructor() { }\n dispose() {\n this.listeners.clear();\n }\n /**\n * Register a listener for updates to the PowerSync client.\n */\n registerListener(listener) {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n iterateListeners(cb) {\n for (const listener of this.listeners) {\n cb(listener);\n }\n }\n async iterateAsyncListeners(cb) {\n for (let i of Array.from(this.listeners.values())) {\n await cb(i);\n }\n }\n}\n//# sourceMappingURL=BaseObserver.js.map","export class ControlledExecutor {\n task;\n /**\n * Represents the currently running task, which could be a Promise or undefined if no task is running.\n */\n runningTask;\n pendingTaskParam;\n /**\n * Flag to determine if throttling is enabled, which controls whether tasks are queued or run immediately.\n */\n isThrottling;\n closed;\n constructor(task, options) {\n this.task = task;\n const { throttleEnabled = true } = options ?? {};\n this.isThrottling = throttleEnabled;\n this.closed = false;\n }\n schedule(param) {\n if (this.closed) {\n return;\n }\n if (!this.isThrottling) {\n this.task(param);\n return;\n }\n if (this.runningTask) {\n // set or replace the pending task param with latest one\n this.pendingTaskParam = param;\n return;\n }\n this.execute(param);\n }\n dispose() {\n this.closed = true;\n if (this.runningTask) {\n this.runningTask = undefined;\n }\n }\n async execute(param) {\n this.runningTask = this.task(param);\n await this.runningTask;\n this.runningTask = undefined;\n if (this.pendingTaskParam) {\n const pendingParam = this.pendingTaskParam;\n this.pendingTaskParam = undefined;\n this.execute(pendingParam);\n }\n }\n}\n//# sourceMappingURL=ControlledExecutor.js.map","/**\n * A ponyfill for `Symbol.asyncIterator` that is compatible with the\n * [recommended polyfill](https://github.com/Azure/azure-sdk-for-js/blob/%40azure/core-asynciterator-polyfill_1.0.2/sdk/core/core-asynciterator-polyfill/src/index.ts#L4-L6)\n * we recommend for React Native.\n *\n * As long as we use this symbol (instead of `for await` and `async *`) in this package, we can be compatible with async\n * iterators without requiring them.\n */\nexport const symbolAsyncIterator = Symbol.asyncIterator ?? Symbol.for('Symbol.asyncIterator');\n/**\n * Throttle a function to be called at most once every \"wait\" milliseconds,\n * on the trailing edge.\n *\n * Roughly equivalent to lodash/throttle with {leading: false, trailing: true}\n */\nexport function throttleTrailing(func, wait) {\n let timeoutId = null;\n const later = () => {\n func();\n timeoutId = null;\n };\n return function () {\n if (timeoutId == null) {\n timeoutId = setTimeout(later, wait);\n }\n };\n}\n/**\n * Throttle a function to be called at most once every \"wait\" milliseconds,\n * on the leading and trailing edge.\n *\n * Roughly equivalent to lodash/throttle with {leading: true, trailing: true}\n */\nexport function throttleLeadingTrailing(func, wait) {\n let timeoutId = null;\n let lastCallTime = 0;\n const invokeFunction = () => {\n func();\n lastCallTime = Date.now();\n timeoutId = null;\n };\n return function () {\n const now = Date.now();\n const timeToWait = wait - (now - lastCallTime);\n if (timeToWait <= 0) {\n // Leading edge: Call the function immediately if enough time has passed\n invokeFunction();\n }\n else if (!timeoutId) {\n // Set a timeout for the trailing edge if not already set\n timeoutId = setTimeout(invokeFunction, timeToWait);\n }\n };\n}\n//# sourceMappingURL=async.js.map","import { BaseObserver } from '../utils/BaseObserver.js';\n/**\n * @internal\n */\nexport class ConnectionManager extends BaseObserver {\n options;\n /**\n * Tracks active connection attempts\n */\n connectingPromise;\n /**\n * Tracks actively instantiating a streaming sync implementation.\n */\n syncStreamInitPromise;\n /**\n * Active disconnect operation. Calling disconnect multiple times\n * will resolve to the same operation.\n */\n disconnectingPromise;\n /**\n * Tracks the last parameters supplied to `connect` calls.\n * Calling `connect` multiple times in succession will result in:\n * - 1 pending connection operation which will be aborted.\n * - updating the last set of parameters while waiting for the pending\n * attempt to be aborted\n * - internally connecting with the last set of parameters\n */\n pendingConnectionOptions;\n syncStreamImplementation;\n /**\n * Additional cleanup function which is called after the sync stream implementation\n * is disposed.\n */\n syncDisposer;\n /**\n * Subscriptions managed in this connection manager.\n *\n * On the web, these local subscriptions are merged across tabs by a shared worker.\n */\n locallyActiveSubscriptions = new Map();\n constructor(options) {\n super();\n this.options = options;\n this.connectingPromise = null;\n this.syncStreamInitPromise = null;\n this.disconnectingPromise = null;\n this.pendingConnectionOptions = null;\n this.syncStreamImplementation = null;\n this.syncDisposer = null;\n }\n get connector() {\n return this.pendingConnectionOptions?.connector ?? null;\n }\n get connectionOptions() {\n return this.pendingConnectionOptions?.options ?? null;\n }\n get logger() {\n return this.options.logger;\n }\n async close() {\n await this.syncStreamImplementation?.dispose();\n await this.syncDisposer?.();\n }\n async connect(connector, options) {\n // Keep track if there were pending operations before this call\n const hadPendingOptions = !!this.pendingConnectionOptions;\n // Update pending options to the latest values\n this.pendingConnectionOptions = {\n connector,\n options\n };\n // Disconnecting here provides aborting in progress connection attempts.\n // The connectInternal method will clear pending options once it starts connecting (with the options).\n // We only need to trigger a disconnect here if we have already reached the point of connecting.\n // If we do already have pending options, a disconnect has already been performed.\n // The connectInternal method also does a sanity disconnect to prevent straggler connections.\n // We should also disconnect if we have already completed a connection attempt.\n if (!hadPendingOptions || this.syncStreamImplementation) {\n await this.disconnectInternal();\n }\n // Triggers a connect which checks if pending options are available after the connect completes.\n // The completion can be for a successful, unsuccessful or aborted connection attempt.\n // If pending options are available another connection will be triggered.\n const checkConnection = async () => {\n if (this.pendingConnectionOptions) {\n // Pending options have been placed while connecting.\n // Need to reconnect.\n this.connectingPromise = this.connectInternal()\n .catch(() => { })\n .finally(checkConnection);\n return this.connectingPromise;\n }\n else {\n // Clear the connecting promise, done.\n this.connectingPromise = null;\n return;\n }\n };\n this.connectingPromise ??= this.connectInternal()\n .catch(() => { })\n .finally(checkConnection);\n return this.connectingPromise;\n }\n async connectInternal() {\n let appliedOptions = null;\n // This method ensures a disconnect before any connection attempt\n await this.disconnectInternal();\n /**\n * This portion creates a sync implementation which can be racy when disconnecting or\n * if multiple tabs on web are in use.\n * This is protected in an exclusive lock.\n * The promise tracks the creation which is used to synchronize disconnect attempts.\n */\n this.syncStreamInitPromise = new Promise(async (resolve, reject) => {\n try {\n if (!this.pendingConnectionOptions) {\n this.logger.debug('No pending connection options found, not creating sync stream implementation');\n // A disconnect could have cleared this.\n resolve();\n return;\n }\n if (this.disconnectingPromise) {\n resolve();\n return;\n }\n const { connector, options } = this.pendingConnectionOptions;\n appliedOptions = options;\n this.pendingConnectionOptions = null;\n const { sync, onDispose } = await this.options.createSyncImplementation(connector, {\n subscriptions: this.activeStreams,\n ...options\n });\n this.iterateListeners((l) => l.syncStreamCreated?.(sync));\n this.syncStreamImplementation = sync;\n this.syncDisposer = onDispose;\n await this.syncStreamImplementation.waitForReady();\n resolve();\n }\n catch (error) {\n reject(error);\n }\n });\n await this.syncStreamInitPromise;\n this.syncStreamInitPromise = null;\n if (!appliedOptions) {\n // A disconnect could have cleared the options which did not create a syncStreamImplementation\n return;\n }\n // It might be possible that a disconnect triggered between the last check\n // and this point. Awaiting here allows the sync stream to be cleared if disconnected.\n await this.disconnectingPromise;\n this.logger.debug('Attempting to connect to PowerSync instance');\n await this.syncStreamImplementation?.connect(appliedOptions);\n }\n /**\n * Close the sync connection.\n *\n * Use {@link connect} to connect again.\n */\n async disconnect() {\n // This will help abort pending connects\n this.pendingConnectionOptions = null;\n await this.disconnectInternal();\n }\n async disconnectInternal() {\n if (this.disconnectingPromise) {\n // A disconnect is already in progress\n return this.disconnectingPromise;\n }\n this.disconnectingPromise = this.performDisconnect();\n await this.disconnectingPromise;\n this.disconnectingPromise = null;\n }\n async performDisconnect() {\n // Wait if a sync stream implementation is being created before closing it\n // (syncStreamImplementation must be assigned before we can properly dispose it)\n await this.syncStreamInitPromise;\n // Keep reference to the sync stream implementation and disposer\n // The class members will be cleared before we trigger the disconnect\n // to prevent any further calls to the sync stream implementation.\n const sync = this.syncStreamImplementation;\n this.syncStreamImplementation = null;\n const disposer = this.syncDisposer;\n this.syncDisposer = null;\n await sync?.disconnect();\n await sync?.dispose();\n await disposer?.();\n }\n stream(adapter, name, parameters) {\n const desc = { name, parameters };\n const waitForFirstSync = (abort) => {\n return adapter.firstStatusMatching((s) => s.forStream(desc)?.subscription.hasSynced, abort);\n };\n return {\n ...desc,\n subscribe: async (options) => {\n // NOTE: We also run this command if a subscription already exists, because this increases the expiry date\n // (relevant if the app is closed before connecting again, where the last subscribe call determines the ttl).\n await adapter.rustSubscriptionsCommand({\n subscribe: {\n stream: {\n name,\n params: parameters\n },\n ttl: options?.ttl,\n priority: options?.priority\n }\n });\n if (!this.syncStreamImplementation) {\n // We're not connected. So, update the offline sync status to reflect the new subscription.\n // (With an active iteration, the sync client would include it in its state).\n await adapter.resolveOfflineSyncStatus();\n }\n const key = `${name}|${JSON.stringify(parameters)}`;\n let subscription = this.locallyActiveSubscriptions.get(key);\n if (subscription == null) {\n const clearSubscription = () => {\n this.locallyActiveSubscriptions.delete(key);\n this.subscriptionsMayHaveChanged();\n };\n subscription = new ActiveSubscription(name, parameters, this.logger, waitForFirstSync, clearSubscription);\n this.locallyActiveSubscriptions.set(key, subscription);\n this.subscriptionsMayHaveChanged();\n }\n return new SyncStreamSubscriptionHandle(subscription);\n },\n unsubscribeAll: async () => {\n await adapter.rustSubscriptionsCommand({ unsubscribe: { name, params: parameters } });\n this.subscriptionsMayHaveChanged();\n }\n };\n }\n /**\n * @internal exposed for testing\n */\n get activeStreams() {\n return [...this.locallyActiveSubscriptions.values()].map((a) => ({ name: a.name, params: a.parameters }));\n }\n subscriptionsMayHaveChanged() {\n this.syncStreamImplementation?.updateSubscriptions(this.activeStreams);\n }\n}\nclass ActiveSubscription {\n name;\n parameters;\n logger;\n waitForFirstSync;\n clearSubscription;\n refcount = 0;\n constructor(name, parameters, logger, waitForFirstSync, clearSubscription) {\n this.name = name;\n this.parameters = parameters;\n this.logger = logger;\n this.waitForFirstSync = waitForFirstSync;\n this.clearSubscription = clearSubscription;\n }\n decrementRefCount() {\n this.refcount--;\n if (this.refcount == 0) {\n this.clearSubscription();\n }\n }\n}\nclass SyncStreamSubscriptionHandle {\n subscription;\n active = true;\n constructor(subscription) {\n this.subscription = subscription;\n subscription.refcount++;\n _finalizer?.register(this, subscription);\n }\n get name() {\n return this.subscription.name;\n }\n get parameters() {\n return this.subscription.parameters;\n }\n waitForFirstSync(abort) {\n return this.subscription.waitForFirstSync(abort);\n }\n unsubscribe() {\n if (this.active) {\n this.active = false;\n _finalizer?.unregister(this);\n this.subscription.decrementRefCount();\n }\n }\n}\nconst _finalizer = 'FinalizationRegistry' in globalThis\n ? new FinalizationRegistry((sub) => {\n sub.logger.warn(`A subscription to ${sub.name} with params ${JSON.stringify(sub.parameters)} leaked! Please ensure calling unsubscribe() when you don't need a subscription anymore. For global subscriptions, consider storing them in global fields to avoid this warning.`);\n })\n : null;\n//# sourceMappingURL=ConnectionManager.js.map","/**\n * An efficient comparator for {@link WatchedQuery} created with {@link Query#watch}. This has the ability to determine if a query\n * result has changes without necessarily processing all items in the result.\n */\nexport class ArrayComparator {\n options;\n constructor(options) {\n this.options = options;\n }\n checkEquality(current, previous) {\n if (current.length === 0 && previous.length === 0) {\n return true;\n }\n if (current.length !== previous.length) {\n return false;\n }\n const { compareBy } = this.options;\n // At this point the lengths are equal\n for (let i = 0; i < current.length; i++) {\n const currentItem = compareBy(current[i]);\n const previousItem = compareBy(previous[i]);\n if (currentItem !== previousItem) {\n return false;\n }\n }\n return true;\n }\n}\n/**\n * Watched query comparator that always reports changed result sets.\n */\nexport const FalsyComparator = {\n checkEquality: () => false // Default comparator that always returns false\n};\n//# sourceMappingURL=comparators.js.map","import { BaseObserver } from './BaseObserver.js';\n/**\n * A BaseObserver that tracks the counts of listeners for each event type.\n */\nexport class MetaBaseObserver extends BaseObserver {\n get listenerCounts() {\n const counts = {};\n let total = 0;\n for (const listener of this.listeners) {\n for (const key in listener) {\n if (listener[key]) {\n counts[key] = (counts[key] ?? 0) + 1;\n total++;\n }\n }\n }\n return {\n ...counts,\n total\n };\n }\n get listenerMeta() {\n return {\n counts: this.listenerCounts,\n // Allows registering a meta listener that will be notified of changes in listener counts\n registerListener: (listener) => {\n return this.metaListener.registerListener(listener);\n }\n };\n }\n metaListener;\n constructor() {\n super();\n this.metaListener = new BaseObserver();\n }\n registerListener(listener) {\n const dispose = super.registerListener(listener);\n const updatedCount = this.listenerCounts;\n this.metaListener.iterateListeners((l) => {\n l.listenersChanged?.(updatedCount);\n });\n return () => {\n dispose();\n const updatedCount = this.listenerCounts;\n this.metaListener.iterateListeners((l) => {\n l.listenersChanged?.(updatedCount);\n });\n };\n }\n}\n//# sourceMappingURL=MetaBaseObserver.js.map","export var WatchedQueryListenerEvent;\n(function (WatchedQueryListenerEvent) {\n WatchedQueryListenerEvent[\"ON_DATA\"] = \"onData\";\n WatchedQueryListenerEvent[\"ON_ERROR\"] = \"onError\";\n WatchedQueryListenerEvent[\"ON_STATE_CHANGE\"] = \"onStateChange\";\n WatchedQueryListenerEvent[\"SETTINGS_WILL_UPDATE\"] = \"settingsWillUpdate\";\n WatchedQueryListenerEvent[\"CLOSED\"] = \"closed\";\n})(WatchedQueryListenerEvent || (WatchedQueryListenerEvent = {}));\nexport const DEFAULT_WATCH_THROTTLE_MS = 30;\nexport const DEFAULT_WATCH_QUERY_OPTIONS = {\n throttleMs: DEFAULT_WATCH_THROTTLE_MS,\n reportFetching: true\n};\n//# sourceMappingURL=WatchedQuery.js.map","import { MetaBaseObserver } from '../../../utils/MetaBaseObserver.js';\nimport { WatchedQueryListenerEvent } from '../WatchedQuery.js';\n/**\n * Performs underlying watching and yields a stream of results.\n * @internal\n */\nexport class AbstractQueryProcessor extends MetaBaseObserver {\n options;\n state;\n abortController;\n initialized;\n _closed;\n disposeListeners;\n get closed() {\n return this._closed;\n }\n constructor(options) {\n super();\n this.options = options;\n this.abortController = new AbortController();\n this._closed = false;\n this.state = this.constructInitialState();\n this.disposeListeners = null;\n this.initialized = this.init(this.abortController.signal);\n }\n constructInitialState() {\n return {\n isLoading: true,\n isFetching: this.reportFetching, // Only set to true if we will report updates in future\n error: null,\n lastUpdated: null,\n data: this.options.placeholderData\n };\n }\n get reportFetching() {\n return this.options.watchOptions.reportFetching ?? true;\n }\n async updateSettingsInternal(settings, signal) {\n // This may have been aborted while awaiting or if multiple calls to `updateSettings` were made\n if (this._closed || signal.aborted) {\n return;\n }\n this.options.watchOptions = settings;\n this.iterateListeners((l) => l[WatchedQueryListenerEvent.SETTINGS_WILL_UPDATE]?.());\n if (!this.state.isFetching && this.reportFetching) {\n await this.updateState({\n isFetching: true\n });\n }\n await this.runWithReporting(() => this.linkQuery({\n abortSignal: signal,\n settings\n }));\n }\n /**\n * Updates the underlying query.\n */\n async updateSettings(settings) {\n // Abort the previous request\n this.abortController.abort();\n // Keep track of this controller's abort status\n const abortController = new AbortController();\n // Allow this to be aborted externally\n this.abortController = abortController;\n await this.initialized;\n return this.updateSettingsInternal(settings, abortController.signal);\n }\n async updateState(update) {\n if (this._closed) {\n return;\n }\n if (typeof update.error !== 'undefined') {\n await this.iterateAsyncListenersWithError(async (l) => l.onError?.(update.error));\n // An error always stops for the current fetching state\n update.isFetching = false;\n update.isLoading = false;\n }\n Object.assign(this.state, { lastUpdated: new Date() }, update);\n if (typeof update.data !== 'undefined') {\n await this.iterateAsyncListenersWithError(async (l) => l.onData?.(this.state.data));\n }\n await this.iterateAsyncListenersWithError(async (l) => l.onStateChange?.(this.state));\n }\n /**\n * Configures base DB listeners and links the query to listeners.\n */\n async init(signal) {\n const { db } = this.options;\n const disposeCloseListener = db.registerListener({\n closing: async () => {\n await this.close();\n }\n });\n // Wait for the schema to be set before listening to changes\n await db.waitForReady();\n const disposeSchemaListener = db.registerListener({\n schemaChanged: async () => {\n await this.runWithReporting(async () => {\n await this.updateSettings(this.options.watchOptions);\n });\n }\n });\n this.disposeListeners = () => {\n disposeCloseListener();\n disposeSchemaListener();\n };\n // Initial setup\n await this.runWithReporting(async () => {\n await this.updateSettingsInternal(this.options.watchOptions, signal);\n });\n }\n async close() {\n this._closed = true;\n this.abortController.abort();\n this.disposeListeners?.();\n this.disposeListeners = null;\n this.iterateListeners((l) => l.closed?.());\n this.listeners.clear();\n }\n /**\n * Runs a callback and reports errors to the error listeners.\n */\n async runWithReporting(callback) {\n try {\n await callback();\n }\n catch (error) {\n // This will update the error on the state and iterate error listeners\n await this.updateState({ error });\n }\n }\n /**\n * Iterate listeners and reports errors to onError handlers.\n */\n async iterateAsyncListenersWithError(callback) {\n try {\n await this.iterateAsyncListeners(async (l) => callback(l));\n }\n catch (error) {\n try {\n await this.iterateAsyncListeners(async (l) => l.onError?.(error));\n }\n catch (error) {\n // Errors here are ignored\n // since we are already in an error state\n this.options.db.logger.error('Watched query error handler threw an Error', error);\n }\n }\n }\n}\n//# sourceMappingURL=AbstractQueryProcessor.js.map","import { AbstractQueryProcessor } from './AbstractQueryProcessor.js';\n/**\n * An empty differential result set.\n * This is used as the initial state for differential incrementally watched queries.\n */\nexport const EMPTY_DIFFERENTIAL = {\n added: [],\n all: [],\n removed: [],\n updated: [],\n unchanged: []\n};\n/**\n * Default implementation of the {@link DifferentialWatchedQueryComparator} for watched queries.\n * It keys items by their `id` property if available, alternatively it uses JSON stringification\n * of the entire item for the key and comparison.\n */\nexport const DEFAULT_ROW_COMPARATOR = {\n keyBy: (item) => {\n if (item && typeof item == 'object' && typeof item['id'] == 'string') {\n return item['id'];\n }\n return JSON.stringify(item);\n },\n compareBy: (item) => JSON.stringify(item)\n};\n/**\n * Uses the PowerSync onChange event to trigger watched queries.\n * Results are emitted on every change of the relevant tables.\n * @internal\n */\nexport class DifferentialQueryProcessor extends AbstractQueryProcessor {\n options;\n comparator;\n constructor(options) {\n super(options);\n this.options = options;\n this.comparator = options.rowComparator ?? DEFAULT_ROW_COMPARATOR;\n }\n /*\n * @returns If the sets are equal\n */\n differentiate(current, previousMap) {\n const { keyBy, compareBy } = this.comparator;\n let hasChanged = false;\n const currentMap = new Map();\n const removedTracker = new Set(previousMap.keys());\n // Allow mutating to populate the data temporarily.\n const diff = {\n all: [],\n added: [],\n removed: [],\n updated: [],\n unchanged: []\n };\n /**\n * Looping over the current result set array is important to preserve\n * the ordering of the result set.\n * We can replace items in the current array with previous object references if they are equal.\n */\n for (const item of current) {\n const key = keyBy(item);\n const hash = compareBy(item);\n currentMap.set(key, { hash, item });\n const previousItem = previousMap.get(key);\n if (!previousItem) {\n // New item\n hasChanged = true;\n diff.added.push(item);\n diff.all.push(item);\n }\n else {\n // Existing item\n if (hash == previousItem.hash) {\n diff.unchanged.push(previousItem.item);\n // Use the previous object reference\n diff.all.push(previousItem.item);\n // update the map to preserve the reference\n currentMap.set(key, previousItem);\n }\n else {\n hasChanged = true;\n diff.updated.push({ current: item, previous: previousItem.item });\n // Use the new reference\n diff.all.push(item);\n }\n }\n // The item is present, we don't consider it removed\n removedTracker.delete(key);\n }\n diff.removed = Array.from(removedTracker).map((key) => previousMap.get(key).item);\n hasChanged = hasChanged || diff.removed.length > 0;\n return {\n diff,\n hasChanged,\n map: currentMap\n };\n }\n async linkQuery(options) {\n const { db, watchOptions } = this.options;\n const { abortSignal } = options;\n const compiledQuery = watchOptions.query.compile();\n const tables = await db.resolveTables(compiledQuery.sql, compiledQuery.parameters, {\n tables: options.settings.triggerOnTables\n });\n let currentMap = new Map();\n // populate the currentMap from the placeholder data\n this.state.data.forEach((item) => {\n currentMap.set(this.comparator.keyBy(item), {\n hash: this.comparator.compareBy(item),\n item\n });\n });\n db.onChangeWithCallback({\n onChange: async () => {\n if (this.closed || abortSignal.aborted) {\n return;\n }\n // This fires for each change of the relevant tables\n try {\n if (this.reportFetching && !this.state.isFetching) {\n await this.updateState({ isFetching: true });\n }\n const partialStateUpdate = {};\n // Always run the query if an underlying table has changed\n const result = await watchOptions.query.execute({\n sql: compiledQuery.sql,\n // Allows casting from ReadOnlyArray[unknown] to Array<unknown>\n // This allows simpler compatibility with PowerSync queries\n parameters: [...compiledQuery.parameters],\n db: this.options.db\n });\n if (abortSignal.aborted) {\n return;\n }\n if (this.reportFetching) {\n partialStateUpdate.isFetching = false;\n }\n if (this.state.isLoading) {\n partialStateUpdate.isLoading = false;\n }\n const { diff, hasChanged, map } = this.differentiate(result, currentMap);\n // Update for future comparisons\n currentMap = map;\n if (hasChanged) {\n await this.iterateAsyncListenersWithError((l) => l.onDiff?.(diff));\n Object.assign(partialStateUpdate, {\n data: diff.all\n });\n }\n if (this.state.error) {\n partialStateUpdate.error = null;\n }\n if (Object.keys(partialStateUpdate).length > 0) {\n await this.updateState(partialStateUpdate);\n }\n }\n catch (error) {\n await this.updateState({ error });\n }\n },\n onError: async (error) => {\n await this.updateState({ error });\n }\n }, {\n signal: abortSignal,\n tables,\n throttleMs: watchOptions.throttleMs,\n triggerImmediate: true // used to emit the initial state\n });\n }\n}\n//# sourceMappingURL=DifferentialQueryProcessor.js.map","import { AbstractQueryProcessor } from './AbstractQueryProcessor.js';\n/**\n * Uses the PowerSync onChange event to trigger watched queries.\n * Results are emitted on every change of the relevant tables.\n * @internal\n */\nexport class OnChangeQueryProcessor extends AbstractQueryProcessor {\n options;\n constructor(options) {\n super(options);\n this.options = options;\n }\n /**\n * @returns If the sets are equal\n */\n checkEquality(current, previous) {\n // Use the provided comparator if available. Assume values are unique if not available.\n return this.options.comparator?.checkEquality?.(current, previous) ?? false;\n }\n async linkQuery(options) {\n const { db, watchOptions } = this.options;\n const { abortSignal } = options;\n const compiledQuery = watchOptions.query.compile();\n const tables = await db.resolveTables(compiledQuery.sql, compiledQuery.parameters, {\n tables: options.settings.triggerOnTables\n });\n db.onChangeWithCallback({\n onChange: async () => {\n if (this.closed || abortSignal.aborted) {\n return;\n }\n // This fires for each change of the relevant tables\n try {\n if (this.reportFetching && !this.state.isFetching) {\n await this.updateState({ isFetching: true });\n }\n const partialStateUpdate = {};\n // Always run the query if an underlying table has changed\n const result = await watchOptions.query.execute({\n sql: compiledQuery.sql,\n // Allows casting from ReadOnlyArray[unknown] to Array<unknown>\n // This allows simpler compatibility with PowerSync queries\n parameters: [...compiledQuery.parameters],\n db: this.options.db\n });\n if (abortSignal.aborted) {\n return;\n }\n if (this.reportFetching) {\n partialStateUpdate.isFetching = false;\n }\n if (this.state.isLoading) {\n partialStateUpdate.isLoading = false;\n }\n // Check if the result has changed\n if (!this.checkEquality(result, this.state.data)) {\n Object.assign(partialStateUpdate, {\n data: result\n });\n }\n if (this.state.error) {\n partialStateUpdate.error = null;\n }\n if (Object.keys(partialStateUpdate).length > 0) {\n await this.updateState(partialStateUpdate);\n }\n }\n catch (error) {\n await this.updateState({ error });\n }\n },\n onError: async (error) => {\n await this.updateState({ error });\n }\n }, {\n signal: abortSignal,\n tables,\n throttleMs: watchOptions.throttleMs,\n triggerImmediate: true // used to emit the initial state\n });\n }\n}\n//# sourceMappingURL=OnChangeQueryProcessor.js.map","import { FalsyComparator } from './watched/processors/comparators.js';\nimport { DifferentialQueryProcessor } from './watched/processors/DifferentialQueryProcessor.js';\nimport { OnChangeQueryProcessor } from './watched/processors/OnChangeQueryProcessor.js';\nimport { DEFAULT_WATCH_QUERY_OPTIONS } from './watched/WatchedQuery.js';\n/**\n * @internal\n */\nexport class CustomQuery {\n options;\n constructor(options) {\n this.options = options;\n }\n resolveOptions(options) {\n return {\n reportFetching: options?.reportFetching ?? DEFAULT_WATCH_QUERY_OPTIONS.reportFetching,\n throttleMs: options?.throttleMs ?? DEFAULT_WATCH_QUERY_OPTIONS.throttleMs,\n triggerOnTables: options?.triggerOnTables\n };\n }\n watch(watchOptions) {\n return new OnChangeQueryProcessor({\n db: this.options.db,\n comparator: watchOptions?.comparator ?? FalsyComparator,\n placeholderData: watchOptions?.placeholderData ?? [],\n watchOptions: {\n ...this.resolveOptions(watchOptions),\n query: this.options.query\n }\n });\n }\n differentialWatch(differentialWatchOptions) {\n return new DifferentialQueryProcessor({\n db: this.options.db,\n rowComparator: differentialWatchOptions?.rowComparator,\n placeholderData: differentialWatchOptions?.placeholderData ?? [],\n watchOptions: {\n ...this.resolveOptions(differentialWatchOptions),\n query: this.options.query\n }\n });\n }\n}\n//# sourceMappingURL=CustomQuery.js.map","/**\n * Tests if the input is a {@link SQLOpenOptions}\n */\nexport const isSQLOpenOptions = (test) => {\n // typeof null is `object`, but you cannot use the `in` operator on `null.\n return test && typeof test == 'object' && 'dbFilename' in test;\n};\n/**\n * Tests if input is a {@link SQLOpenFactory}\n */\nexport const isSQLOpenFactory = (test) => {\n return typeof test?.openDB == 'function';\n};\n/**\n * Tests if input is a {@link DBAdapter}\n */\nexport const isDBAdapter = (test) => {\n return typeof test?.writeTransaction == 'function';\n};\n//# sourceMappingURL=SQLOpenFactory.js.map","export var PSInternalTable;\n(function (PSInternalTable) {\n PSInternalTable[\"DATA\"] = \"ps_data\";\n PSInternalTable[\"CRUD\"] = \"ps_crud\";\n PSInternalTable[\"BUCKETS\"] = \"ps_buckets\";\n PSInternalTable[\"OPLOG\"] = \"ps_oplog\";\n PSInternalTable[\"UNTYPED\"] = \"ps_untyped\";\n})(PSInternalTable || (PSInternalTable = {}));\nexport var PowerSyncControlCommand;\n(function (PowerSyncControlCommand) {\n PowerSyncControlCommand[\"PROCESS_TEXT_LINE\"] = \"line_text\";\n PowerSyncControlCommand[\"PROCESS_BSON_LINE\"] = \"line_binary\";\n PowerSyncControlCommand[\"STOP\"] = \"stop\";\n PowerSyncControlCommand[\"START\"] = \"start\";\n PowerSyncControlCommand[\"NOTIFY_TOKEN_REFRESHED\"] = \"refreshed_token\";\n PowerSyncControlCommand[\"NOTIFY_CRUD_UPLOAD_COMPLETED\"] = \"completed_upload\";\n PowerSyncControlCommand[\"UPDATE_SUBSCRIPTIONS\"] = \"update_subscriptions\";\n})(PowerSyncControlCommand || (PowerSyncControlCommand = {}));\n//# sourceMappingURL=BucketStorageAdapter.js.map","/**\n * A batch of client-side changes.\n */\nexport class CrudBatch {\n crud;\n haveMore;\n complete;\n constructor(\n /**\n * List of client-side changes.\n */\n crud, \n /**\n * true if there are more changes in the local queue.\n */\n haveMore, \n /**\n * Call to remove the changes from the local queue, once successfully uploaded.\n */\n complete) {\n this.crud = crud;\n this.haveMore = haveMore;\n this.complete = complete;\n }\n}\n//# sourceMappingURL=CrudBatch.js.map","/**\n * Type of local change.\n */\nexport var UpdateType;\n(function (UpdateType) {\n /** Insert or replace existing row. All non-null columns are included in the data. Generated by INSERT statements. */\n UpdateType[\"PUT\"] = \"PUT\";\n /** Update existing row. Contains the id, and value of each changed column. Generated by UPDATE statements. */\n UpdateType[\"PATCH\"] = \"PATCH\";\n /** Delete existing row. Contains the id. Generated by DELETE statements. */\n UpdateType[\"DELETE\"] = \"DELETE\";\n})(UpdateType || (UpdateType = {}));\n/**\n * A single client-side change.\n */\nexport class CrudEntry {\n /**\n * Auto-incrementing client-side id.\n */\n clientId;\n /**\n * ID of the changed row.\n */\n id;\n /**\n * Type of change.\n */\n op;\n /**\n * Data associated with the change.\n */\n opData;\n /**\n * For tables where the `trackPreviousValues` option has been enabled, this tracks previous values for\n * `UPDATE` and `DELETE` statements.\n */\n previousValues;\n /**\n * Table that contained the change.\n */\n table;\n /**\n * Auto-incrementing transaction id. This is the same for all operations within the same transaction.\n */\n transactionId;\n /**\n * Client-side metadata attached with this write.\n *\n * This field is only available when the `trackMetadata` option was set to `true` when creating a table\n * and the insert or update statement set the `_metadata` column.\n */\n metadata;\n static fromRow(dbRow) {\n const data = JSON.parse(dbRow.data);\n return new CrudEntry(parseInt(dbRow.id), data.op, data.type, data.id, dbRow.tx_id, data.data, data.old, data.metadata);\n }\n constructor(clientId, op, table, id, transactionId, opData, previousValues, metadata) {\n this.clientId = clientId;\n this.id = id;\n this.op = op;\n this.opData = opData;\n this.table = table;\n this.transactionId = transactionId;\n this.previousValues = previousValues;\n this.metadata = metadata;\n }\n /**\n * Converts the change to JSON format.\n */\n toJSON() {\n return {\n op_id: this.clientId,\n op: this.op,\n type: this.table,\n id: this.id,\n tx_id: this.transactionId,\n data: this.opData,\n old: this.previousValues,\n metadata: this.metadata\n };\n }\n equals(entry) {\n return JSON.stringify(this.toComparisonArray()) == JSON.stringify(entry.toComparisonArray());\n }\n /**\n * The hash code for this object.\n * @deprecated This should not be necessary in the JS SDK.\n * Use the @see CrudEntry#equals method instead.\n * TODO remove in the next major release.\n */\n hashCode() {\n return JSON.stringify(this.toComparisonArray());\n }\n /**\n * Generates an array for use in deep comparison operations\n */\n toComparisonArray() {\n return [\n this.transactionId,\n this.clientId,\n this.op,\n this.table,\n this.id,\n this.opData,\n this.previousValues,\n this.metadata\n ];\n }\n}\n//# sourceMappingURL=CrudEntry.js.map","import { CrudBatch } from './CrudBatch.js';\nexport class CrudTransaction extends CrudBatch {\n crud;\n complete;\n transactionId;\n constructor(\n /**\n * List of client-side changes.\n */\n crud, \n /**\n * Call to remove the changes from the local queue, once successfully uploaded.\n */\n complete, \n /**\n * If null, this contains a list of changes recorded without an explicit transaction associated.\n */\n transactionId) {\n super(crud, false, complete);\n this.crud = crud;\n this.complete = complete;\n this.transactionId = transactionId;\n }\n}\n//# sourceMappingURL=CrudTransaction.js.map","/**\n * Calls to Abortcontroller.abort(reason: any) will result in the\n * `reason` being thrown. This is not necessarily an error,\n * but extends error for better logging purposes.\n */\nexport class AbortOperation extends Error {\n reason;\n constructor(reason) {\n super(reason);\n this.reason = reason;\n // Set the prototype explicitly\n Object.setPrototypeOf(this, AbortOperation.prototype);\n // Capture stack trace\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AbortOperation);\n }\n }\n}\n//# sourceMappingURL=AbortOperation.js.map","export var OpTypeEnum;\n(function (OpTypeEnum) {\n OpTypeEnum[OpTypeEnum[\"CLEAR\"] = 1] = \"CLEAR\";\n OpTypeEnum[OpTypeEnum[\"MOVE\"] = 2] = \"MOVE\";\n OpTypeEnum[OpTypeEnum[\"PUT\"] = 3] = \"PUT\";\n OpTypeEnum[OpTypeEnum[\"REMOVE\"] = 4] = \"REMOVE\";\n})(OpTypeEnum || (OpTypeEnum = {}));\n/**\n * Used internally for sync buckets.\n */\nexport class OpType {\n value;\n static fromJSON(jsonValue) {\n return new OpType(OpTypeEnum[jsonValue]);\n }\n constructor(value) {\n this.value = value;\n }\n toJSON() {\n return Object.entries(OpTypeEnum).find(([, value]) => value === this.value)[0];\n }\n}\n//# sourceMappingURL=OpType.js.map","import { OpType } from './OpType.js';\nexport class OplogEntry {\n op_id;\n op;\n checksum;\n subkey;\n object_type;\n object_id;\n data;\n static fromRow(row) {\n return new OplogEntry(row.op_id, OpType.fromJSON(row.op), row.checksum, row.subkey, row.object_type, row.object_id, row.data);\n }\n constructor(op_id, op, checksum, subkey, object_type, object_id, data) {\n this.op_id = op_id;\n this.op = op;\n this.checksum = checksum;\n this.subkey = subkey;\n this.object_type = object_type;\n this.object_id = object_id;\n this.data = data;\n }\n toJSON(fixedKeyEncoding = false) {\n return {\n op_id: this.op_id,\n op: this.op.toJSON(),\n object_type: this.object_type,\n object_id: this.object_id,\n checksum: this.checksum,\n data: this.data,\n // Older versions of the JS SDK used to always JSON.stringify here. That has always been wrong,\n // but we need to migrate gradually to not break existing databases.\n subkey: fixedKeyEncoding ? this.subkey : JSON.stringify(this.subkey)\n };\n }\n}\n//# sourceMappingURL=OplogEntry.js.map","import { OplogEntry } from './OplogEntry.js';\nexport class SyncDataBucket {\n bucket;\n data;\n has_more;\n after;\n next_after;\n static fromRow(row) {\n return new SyncDataBucket(row.bucket, row.data.map((entry) => OplogEntry.fromRow(entry)), row.has_more ?? false, row.after, row.next_after);\n }\n constructor(bucket, data, \n /**\n * True if the response does not contain all the data for this bucket, and another request must be made.\n */\n has_more, \n /**\n * The `after` specified in the request.\n */\n after, \n /**\n * Use this for the next request.\n */\n next_after) {\n this.bucket = bucket;\n this.data = data;\n this.has_more = has_more;\n this.after = after;\n this.next_after = next_after;\n }\n toJSON(fixedKeyEncoding = false) {\n return {\n bucket: this.bucket,\n has_more: this.has_more,\n after: this.after,\n next_after: this.next_after,\n data: this.data.map((entry) => entry.toJSON(fixedKeyEncoding))\n };\n }\n}\n//# sourceMappingURL=SyncDataBucket.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Frame = exports.Lengths = exports.Flags = exports.FrameTypes = void 0;\nvar FrameTypes;\n(function (FrameTypes) {\n FrameTypes[FrameTypes[\"RESERVED\"] = 0] = \"RESERVED\";\n FrameTypes[FrameTypes[\"SETUP\"] = 1] = \"SETUP\";\n FrameTypes[FrameTypes[\"LEASE\"] = 2] = \"LEASE\";\n FrameTypes[FrameTypes[\"KEEPALIVE\"] = 3] = \"KEEPALIVE\";\n FrameTypes[FrameTypes[\"REQUEST_RESPONSE\"] = 4] = \"REQUEST_RESPONSE\";\n FrameTypes[FrameTypes[\"REQUEST_FNF\"] = 5] = \"REQUEST_FNF\";\n FrameTypes[FrameTypes[\"REQUEST_STREAM\"] = 6] = \"REQUEST_STREAM\";\n FrameTypes[FrameTypes[\"REQUEST_CHANNEL\"] = 7] = \"REQUEST_CHANNEL\";\n FrameTypes[FrameTypes[\"REQUEST_N\"] = 8] = \"REQUEST_N\";\n FrameTypes[FrameTypes[\"CANCEL\"] = 9] = \"CANCEL\";\n FrameTypes[FrameTypes[\"PAYLOAD\"] = 10] = \"PAYLOAD\";\n FrameTypes[FrameTypes[\"ERROR\"] = 11] = \"ERROR\";\n FrameTypes[FrameTypes[\"METADATA_PUSH\"] = 12] = \"METADATA_PUSH\";\n FrameTypes[FrameTypes[\"RESUME\"] = 13] = \"RESUME\";\n FrameTypes[FrameTypes[\"RESUME_OK\"] = 14] = \"RESUME_OK\";\n FrameTypes[FrameTypes[\"EXT\"] = 63] = \"EXT\";\n})(FrameTypes = exports.FrameTypes || (exports.FrameTypes = {}));\nvar Flags;\n(function (Flags) {\n Flags[Flags[\"NONE\"] = 0] = \"NONE\";\n Flags[Flags[\"COMPLETE\"] = 64] = \"COMPLETE\";\n Flags[Flags[\"FOLLOWS\"] = 128] = \"FOLLOWS\";\n Flags[Flags[\"IGNORE\"] = 512] = \"IGNORE\";\n Flags[Flags[\"LEASE\"] = 64] = \"LEASE\";\n Flags[Flags[\"METADATA\"] = 256] = \"METADATA\";\n Flags[Flags[\"NEXT\"] = 32] = \"NEXT\";\n Flags[Flags[\"RESPOND\"] = 128] = \"RESPOND\";\n Flags[Flags[\"RESUME_ENABLE\"] = 128] = \"RESUME_ENABLE\";\n})(Flags = exports.Flags || (exports.Flags = {}));\n(function (Flags) {\n function hasMetadata(flags) {\n return (flags & Flags.METADATA) === Flags.METADATA;\n }\n Flags.hasMetadata = hasMetadata;\n function hasComplete(flags) {\n return (flags & Flags.COMPLETE) === Flags.COMPLETE;\n }\n Flags.hasComplete = hasComplete;\n function hasNext(flags) {\n return (flags & Flags.NEXT) === Flags.NEXT;\n }\n Flags.hasNext = hasNext;\n function hasFollows(flags) {\n return (flags & Flags.FOLLOWS) === Flags.FOLLOWS;\n }\n Flags.hasFollows = hasFollows;\n function hasIgnore(flags) {\n return (flags & Flags.IGNORE) === Flags.IGNORE;\n }\n Flags.hasIgnore = hasIgnore;\n function hasRespond(flags) {\n return (flags & Flags.RESPOND) === Flags.RESPOND;\n }\n Flags.hasRespond = hasRespond;\n function hasLease(flags) {\n return (flags & Flags.LEASE) === Flags.LEASE;\n }\n Flags.hasLease = hasLease;\n function hasResume(flags) {\n return (flags & Flags.RESUME_ENABLE) === Flags.RESUME_ENABLE;\n }\n Flags.hasResume = hasResume;\n})(Flags = exports.Flags || (exports.Flags = {}));\nvar Lengths;\n(function (Lengths) {\n Lengths[Lengths[\"FRAME\"] = 3] = \"FRAME\";\n Lengths[Lengths[\"HEADER\"] = 6] = \"HEADER\";\n Lengths[Lengths[\"METADATA\"] = 3] = \"METADATA\";\n Lengths[Lengths[\"REQUEST\"] = 3] = \"REQUEST\";\n})(Lengths = exports.Lengths || (exports.Lengths = {}));\nvar Frame;\n(function (Frame) {\n function isConnection(frame) {\n return frame.streamId === 0;\n }\n Frame.isConnection = isConnection;\n function isRequest(frame) {\n return (FrameTypes.REQUEST_RESPONSE <= frame.type &&\n frame.type <= FrameTypes.REQUEST_CHANNEL);\n }\n Frame.isRequest = isRequest;\n})(Frame = exports.Frame || (exports.Frame = {}));\n//# sourceMappingURL=Frames.js.map","/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\"use strict\";\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deserializer = exports.sizeOfFrame = exports.serializeFrame = exports.deserializeFrame = exports.serializeFrameWithLength = exports.deserializeFrames = exports.deserializeFrameWithLength = exports.writeUInt64BE = exports.readUInt64BE = exports.writeUInt24BE = exports.readUInt24BE = exports.MAX_VERSION = exports.MAX_TTL = exports.MAX_STREAM_ID = exports.MAX_RESUME_LENGTH = exports.MAX_REQUEST_N = exports.MAX_REQUEST_COUNT = exports.MAX_MIME_LENGTH = exports.MAX_METADATA_LENGTH = exports.MAX_LIFETIME = exports.MAX_KEEPALIVE = exports.MAX_CODE = exports.FRAME_TYPE_OFFFSET = exports.FLAGS_MASK = void 0;\nvar Frames_1 = require(\"./Frames\");\nexports.FLAGS_MASK = 0x3ff; // low 10 bits\nexports.FRAME_TYPE_OFFFSET = 10; // frame type is offset 10 bytes within the uint16 containing type + flags\nexports.MAX_CODE = 0x7fffffff; // uint31\nexports.MAX_KEEPALIVE = 0x7fffffff; // uint31\nexports.MAX_LIFETIME = 0x7fffffff; // uint31\nexports.MAX_METADATA_LENGTH = 0xffffff; // uint24\nexports.MAX_MIME_LENGTH = 0xff; // int8\nexports.MAX_REQUEST_COUNT = 0x7fffffff; // uint31\nexports.MAX_REQUEST_N = 0x7fffffff; // uint31\nexports.MAX_RESUME_LENGTH = 0xffff; // uint16\nexports.MAX_STREAM_ID = 0x7fffffff; // uint31\nexports.MAX_TTL = 0x7fffffff; // uint31\nexports.MAX_VERSION = 0xffff; // uint16\n/**\n * Mimimum value that would overflow bitwise operators (2^32).\n */\nvar BITWISE_OVERFLOW = 0x100000000;\n/**\n * Read a uint24 from a buffer starting at the given offset.\n */\nfunction readUInt24BE(buffer, offset) {\n var val1 = buffer.readUInt8(offset) << 16;\n var val2 = buffer.readUInt8(offset + 1) << 8;\n var val3 = buffer.readUInt8(offset + 2);\n return val1 | val2 | val3;\n}\nexports.readUInt24BE = readUInt24BE;\n/**\n * Writes a uint24 to a buffer starting at the given offset, returning the\n * offset of the next byte.\n */\nfunction writeUInt24BE(buffer, value, offset) {\n offset = buffer.writeUInt8(value >>> 16, offset); // 3rd byte\n offset = buffer.writeUInt8((value >>> 8) & 0xff, offset); // 2nd byte\n return buffer.writeUInt8(value & 0xff, offset); // 1st byte\n}\nexports.writeUInt24BE = writeUInt24BE;\n/**\n * Read a uint64 (technically supports up to 53 bits per JS number\n * representation).\n */\nfunction readUInt64BE(buffer, offset) {\n var high = buffer.readUInt32BE(offset);\n var low = buffer.readUInt32BE(offset + 4);\n return high * BITWISE_OVERFLOW + low;\n}\nexports.readUInt64BE = readUInt64BE;\n/**\n * Write a uint64 (technically supports up to 53 bits per JS number\n * representation).\n */\nfunction writeUInt64BE(buffer, value, offset) {\n var high = (value / BITWISE_OVERFLOW) | 0;\n var low = value % BITWISE_OVERFLOW;\n offset = buffer.writeUInt32BE(high, offset); // first half of uint64\n return buffer.writeUInt32BE(low, offset); // second half of uint64\n}\nexports.writeUInt64BE = writeUInt64BE;\n/**\n * Frame header is:\n * - stream id (uint32 = 4)\n * - type + flags (uint 16 = 2)\n */\nvar FRAME_HEADER_SIZE = 6;\n/**\n * Size of frame length and metadata length fields.\n */\nvar UINT24_SIZE = 3;\n/**\n * Reads a frame from a buffer that is prefixed with the frame length.\n */\nfunction deserializeFrameWithLength(buffer) {\n var frameLength = readUInt24BE(buffer, 0);\n return deserializeFrame(buffer.slice(UINT24_SIZE, UINT24_SIZE + frameLength));\n}\nexports.deserializeFrameWithLength = deserializeFrameWithLength;\n/**\n * Given a buffer that may contain zero or more length-prefixed frames followed\n * by zero or more bytes of a (partial) subsequent frame, returns an array of\n * the frames and an int representing the buffer offset.\n */\nfunction deserializeFrames(buffer) {\n var offset, frameLength, frameStart, frameEnd, frameBuffer, frame;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n offset = 0;\n _a.label = 1;\n case 1:\n if (!(offset + UINT24_SIZE < buffer.length)) return [3 /*break*/, 3];\n frameLength = readUInt24BE(buffer, offset);\n frameStart = offset + UINT24_SIZE;\n frameEnd = frameStart + frameLength;\n if (frameEnd > buffer.length) {\n // not all bytes of next frame received\n return [3 /*break*/, 3];\n }\n frameBuffer = buffer.slice(frameStart, frameEnd);\n frame = deserializeFrame(frameBuffer);\n offset = frameEnd;\n return [4 /*yield*/, [frame, offset]];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n}\nexports.deserializeFrames = deserializeFrames;\n/**\n * Writes a frame to a buffer with a length prefix.\n */\nfunction serializeFrameWithLength(frame) {\n var buffer = serializeFrame(frame);\n var lengthPrefixed = Buffer.allocUnsafe(buffer.length + UINT24_SIZE);\n writeUInt24BE(lengthPrefixed, buffer.length, 0);\n buffer.copy(lengthPrefixed, UINT24_SIZE);\n return lengthPrefixed;\n}\nexports.serializeFrameWithLength = serializeFrameWithLength;\n/**\n * Read a frame from the buffer.\n */\nfunction deserializeFrame(buffer) {\n var offset = 0;\n var streamId = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // streamId >= 0,\n // 'RSocketBinaryFraming: Invalid frame, expected a positive stream id, got `%s.',\n // streamId,\n // );\n var typeAndFlags = buffer.readUInt16BE(offset);\n offset += 2;\n var type = typeAndFlags >>> exports.FRAME_TYPE_OFFFSET; // keep highest 6 bits\n var flags = typeAndFlags & exports.FLAGS_MASK; // keep lowest 10 bits\n switch (type) {\n case Frames_1.FrameTypes.SETUP:\n return deserializeSetupFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.PAYLOAD:\n return deserializePayloadFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.ERROR:\n return deserializeErrorFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.KEEPALIVE:\n return deserializeKeepAliveFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_FNF:\n return deserializeRequestFnfFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_RESPONSE:\n return deserializeRequestResponseFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_STREAM:\n return deserializeRequestStreamFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_CHANNEL:\n return deserializeRequestChannelFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.METADATA_PUSH:\n return deserializeMetadataPushFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_N:\n return deserializeRequestNFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.RESUME:\n return deserializeResumeFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.RESUME_OK:\n return deserializeResumeOkFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.CANCEL:\n return deserializeCancelFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.LEASE:\n return deserializeLeaseFrame(buffer, streamId, flags);\n default:\n // invariant(\n // false,\n // \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n // getFrameTypeName(type)\n // );\n }\n}\nexports.deserializeFrame = deserializeFrame;\n/**\n * Convert the frame to a (binary) buffer.\n */\nfunction serializeFrame(frame) {\n switch (frame.type) {\n case Frames_1.FrameTypes.SETUP:\n return serializeSetupFrame(frame);\n case Frames_1.FrameTypes.PAYLOAD:\n return serializePayloadFrame(frame);\n case Frames_1.FrameTypes.ERROR:\n return serializeErrorFrame(frame);\n case Frames_1.FrameTypes.KEEPALIVE:\n return serializeKeepAliveFrame(frame);\n case Frames_1.FrameTypes.REQUEST_FNF:\n case Frames_1.FrameTypes.REQUEST_RESPONSE:\n return serializeRequestFrame(frame);\n case Frames_1.FrameTypes.REQUEST_STREAM:\n case Frames_1.FrameTypes.REQUEST_CHANNEL:\n return serializeRequestManyFrame(frame);\n case Frames_1.FrameTypes.METADATA_PUSH:\n return serializeMetadataPushFrame(frame);\n case Frames_1.FrameTypes.REQUEST_N:\n return serializeRequestNFrame(frame);\n case Frames_1.FrameTypes.RESUME:\n return serializeResumeFrame(frame);\n case Frames_1.FrameTypes.RESUME_OK:\n return serializeResumeOkFrame(frame);\n case Frames_1.FrameTypes.CANCEL:\n return serializeCancelFrame(frame);\n case Frames_1.FrameTypes.LEASE:\n return serializeLeaseFrame(frame);\n default:\n // invariant(\n // false,\n // \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n // getFrameTypeName(frame.type)\n // );\n }\n}\nexports.serializeFrame = serializeFrame;\n/**\n * Byte size of frame without size prefix\n */\nfunction sizeOfFrame(frame) {\n switch (frame.type) {\n case Frames_1.FrameTypes.SETUP:\n return sizeOfSetupFrame(frame);\n case Frames_1.FrameTypes.PAYLOAD:\n return sizeOfPayloadFrame(frame);\n case Frames_1.FrameTypes.ERROR:\n return sizeOfErrorFrame(frame);\n case Frames_1.FrameTypes.KEEPALIVE:\n return sizeOfKeepAliveFrame(frame);\n case Frames_1.FrameTypes.REQUEST_FNF:\n case Frames_1.FrameTypes.REQUEST_RESPONSE:\n return sizeOfRequestFrame(frame);\n case Frames_1.FrameTypes.REQUEST_STREAM:\n case Frames_1.FrameTypes.REQUEST_CHANNEL:\n return sizeOfRequestManyFrame(frame);\n case Frames_1.FrameTypes.METADATA_PUSH:\n return sizeOfMetadataPushFrame(frame);\n case Frames_1.FrameTypes.REQUEST_N:\n return sizeOfRequestNFrame(frame);\n case Frames_1.FrameTypes.RESUME:\n return sizeOfResumeFrame(frame);\n case Frames_1.FrameTypes.RESUME_OK:\n return sizeOfResumeOkFrame(frame);\n case Frames_1.FrameTypes.CANCEL:\n return sizeOfCancelFrame(frame);\n case Frames_1.FrameTypes.LEASE:\n return sizeOfLeaseFrame(frame);\n default:\n // invariant(\n // false,\n // \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n // getFrameTypeName(frame.type)\n // );\n }\n}\nexports.sizeOfFrame = sizeOfFrame;\n/**\n * Writes a SETUP frame into a new buffer and returns it.\n *\n * Prefix size is:\n * - version (2x uint16 = 4)\n * - keepalive (uint32 = 4)\n * - lifetime (uint32 = 4)\n * - mime lengths (2x uint8 = 2)\n */\nvar SETUP_FIXED_SIZE = 14;\nvar RESUME_TOKEN_LENGTH_SIZE = 2;\nfunction serializeSetupFrame(frame) {\n var resumeTokenLength = frame.resumeToken != null ? frame.resumeToken.byteLength : 0;\n var metadataMimeTypeLength = frame.metadataMimeType != null\n ? Buffer.byteLength(frame.metadataMimeType, \"ascii\")\n : 0;\n var dataMimeTypeLength = frame.dataMimeType != null\n ? Buffer.byteLength(frame.dataMimeType, \"ascii\")\n : 0;\n var payloadLength = getPayloadLength(frame);\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE +\n SETUP_FIXED_SIZE + //\n (resumeTokenLength ? RESUME_TOKEN_LENGTH_SIZE + resumeTokenLength : 0) +\n metadataMimeTypeLength +\n dataMimeTypeLength +\n payloadLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt16BE(frame.majorVersion, offset);\n offset = buffer.writeUInt16BE(frame.minorVersion, offset);\n offset = buffer.writeUInt32BE(frame.keepAlive, offset);\n offset = buffer.writeUInt32BE(frame.lifetime, offset);\n if (frame.flags & Frames_1.Flags.RESUME_ENABLE) {\n offset = buffer.writeUInt16BE(resumeTokenLength, offset);\n if (frame.resumeToken != null) {\n offset += frame.resumeToken.copy(buffer, offset);\n }\n }\n offset = buffer.writeUInt8(metadataMimeTypeLength, offset);\n if (frame.metadataMimeType != null) {\n offset += buffer.write(frame.metadataMimeType, offset, offset + metadataMimeTypeLength, \"ascii\");\n }\n offset = buffer.writeUInt8(dataMimeTypeLength, offset);\n if (frame.dataMimeType != null) {\n offset += buffer.write(frame.dataMimeType, offset, offset + dataMimeTypeLength, \"ascii\");\n }\n writePayload(frame, buffer, offset);\n return buffer;\n}\nfunction sizeOfSetupFrame(frame) {\n var resumeTokenLength = frame.resumeToken != null ? frame.resumeToken.byteLength : 0;\n var metadataMimeTypeLength = frame.metadataMimeType != null\n ? Buffer.byteLength(frame.metadataMimeType, \"ascii\")\n : 0;\n var dataMimeTypeLength = frame.dataMimeType != null\n ? Buffer.byteLength(frame.dataMimeType, \"ascii\")\n : 0;\n var payloadLength = getPayloadLength(frame);\n return (FRAME_HEADER_SIZE +\n SETUP_FIXED_SIZE + //\n (resumeTokenLength ? RESUME_TOKEN_LENGTH_SIZE + resumeTokenLength : 0) +\n metadataMimeTypeLength +\n dataMimeTypeLength +\n payloadLength);\n}\n/**\n * Reads a SETUP frame from the buffer and returns it.\n */\nfunction deserializeSetupFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // 'RSocketBinaryFraming: Invalid SETUP frame, expected stream id to be 0.',\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var majorVersion = buffer.readUInt16BE(offset);\n offset += 2;\n var minorVersion = buffer.readUInt16BE(offset);\n offset += 2;\n var keepAlive = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // keepAlive >= 0 && keepAlive <= MAX_KEEPALIVE,\n // 'RSocketBinaryFraming: Invalid SETUP frame, expected keepAlive to be ' +\n // '>= 0 and <= %s. Got `%s`.',\n // MAX_KEEPALIVE,\n // keepAlive,\n // );\n var lifetime = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // lifetime >= 0 && lifetime <= MAX_LIFETIME,\n // 'RSocketBinaryFraming: Invalid SETUP frame, expected lifetime to be ' +\n // '>= 0 and <= %s. Got `%s`.',\n // MAX_LIFETIME,\n // lifetime,\n // );\n var resumeToken = null;\n if (flags & Frames_1.Flags.RESUME_ENABLE) {\n var resumeTokenLength = buffer.readInt16BE(offset);\n offset += 2;\n // invariant(\n // resumeTokenLength >= 0 && resumeTokenLength <= MAX_RESUME_LENGTH,\n // 'RSocketBinaryFraming: Invalid SETUP frame, expected resumeToken length ' +\n // 'to be >= 0 and <= %s. Got `%s`.',\n // MAX_RESUME_LENGTH,\n // resumeTokenLength,\n // );\n resumeToken = buffer.slice(offset, offset + resumeTokenLength);\n offset += resumeTokenLength;\n }\n var metadataMimeTypeLength = buffer.readUInt8(offset);\n offset += 1;\n var metadataMimeType = buffer.toString(\"ascii\", offset, offset + metadataMimeTypeLength);\n offset += metadataMimeTypeLength;\n var dataMimeTypeLength = buffer.readUInt8(offset);\n offset += 1;\n var dataMimeType = buffer.toString(\"ascii\", offset, offset + dataMimeTypeLength);\n offset += dataMimeTypeLength;\n var frame = {\n data: null,\n dataMimeType: dataMimeType,\n flags: flags,\n keepAlive: keepAlive,\n lifetime: lifetime,\n majorVersion: majorVersion,\n metadata: null,\n metadataMimeType: metadataMimeType,\n minorVersion: minorVersion,\n resumeToken: resumeToken,\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.SETUP,\n };\n readPayload(buffer, frame, offset);\n return frame;\n}\n/**\n * Writes an ERROR frame into a new buffer and returns it.\n *\n * Prefix size is for the error code (uint32 = 4).\n */\nvar ERROR_FIXED_SIZE = 4;\nfunction serializeErrorFrame(frame) {\n var messageLength = frame.message != null ? Buffer.byteLength(frame.message, \"utf8\") : 0;\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + ERROR_FIXED_SIZE + messageLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt32BE(frame.code, offset);\n if (frame.message != null) {\n buffer.write(frame.message, offset, offset + messageLength, \"utf8\");\n }\n return buffer;\n}\nfunction sizeOfErrorFrame(frame) {\n var messageLength = frame.message != null ? Buffer.byteLength(frame.message, \"utf8\") : 0;\n return FRAME_HEADER_SIZE + ERROR_FIXED_SIZE + messageLength;\n}\n/**\n * Reads an ERROR frame from the buffer and returns it.\n */\nfunction deserializeErrorFrame(buffer, streamId, flags) {\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var code = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // code >= 0 && code <= MAX_CODE,\n // \"RSocketBinaryFraming: Invalid ERROR frame, expected code to be >= 0 and <= %s. Got `%s`.\",\n // MAX_CODE,\n // code\n // );\n var messageLength = buffer.length - offset;\n var message = \"\";\n if (messageLength > 0) {\n message = buffer.toString(\"utf8\", offset, offset + messageLength);\n offset += messageLength;\n }\n return {\n code: code,\n flags: flags,\n message: message,\n streamId: streamId,\n type: Frames_1.FrameTypes.ERROR,\n };\n}\n/**\n * Writes a KEEPALIVE frame into a new buffer and returns it.\n *\n * Prefix size is for the last received position (uint64 = 8).\n */\nvar KEEPALIVE_FIXED_SIZE = 8;\nfunction serializeKeepAliveFrame(frame) {\n var dataLength = frame.data != null ? frame.data.byteLength : 0;\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + KEEPALIVE_FIXED_SIZE + dataLength);\n var offset = writeHeader(frame, buffer);\n offset = writeUInt64BE(buffer, frame.lastReceivedPosition, offset);\n if (frame.data != null) {\n frame.data.copy(buffer, offset);\n }\n return buffer;\n}\nfunction sizeOfKeepAliveFrame(frame) {\n var dataLength = frame.data != null ? frame.data.byteLength : 0;\n return FRAME_HEADER_SIZE + KEEPALIVE_FIXED_SIZE + dataLength;\n}\n/**\n * Reads a KEEPALIVE frame from the buffer and returns it.\n */\nfunction deserializeKeepAliveFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid KEEPALIVE frame, expected stream id to be 0.\"\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var lastReceivedPosition = readUInt64BE(buffer, offset);\n offset += 8;\n var data = null;\n if (offset < buffer.length) {\n data = buffer.slice(offset, buffer.length);\n }\n return {\n data: data,\n flags: flags,\n lastReceivedPosition: lastReceivedPosition,\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.KEEPALIVE,\n };\n}\n/**\n * Writes a LEASE frame into a new buffer and returns it.\n *\n * Prefix size is for the ttl (uint32) and requestcount (uint32).\n */\nvar LEASE_FIXED_SIZE = 8;\nfunction serializeLeaseFrame(frame) {\n var metaLength = frame.metadata != null ? frame.metadata.byteLength : 0;\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + LEASE_FIXED_SIZE + metaLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt32BE(frame.ttl, offset);\n offset = buffer.writeUInt32BE(frame.requestCount, offset);\n if (frame.metadata != null) {\n frame.metadata.copy(buffer, offset);\n }\n return buffer;\n}\nfunction sizeOfLeaseFrame(frame) {\n var metaLength = frame.metadata != null ? frame.metadata.byteLength : 0;\n return FRAME_HEADER_SIZE + LEASE_FIXED_SIZE + metaLength;\n}\n/**\n * Reads a LEASE frame from the buffer and returns it.\n */\nfunction deserializeLeaseFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid LEASE frame, expected stream id to be 0.\"\n // );\n // const length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var ttl = buffer.readUInt32BE(offset);\n offset += 4;\n var requestCount = buffer.readUInt32BE(offset);\n offset += 4;\n var metadata = null;\n if (offset < buffer.length) {\n metadata = buffer.slice(offset, buffer.length);\n }\n return {\n flags: flags,\n metadata: metadata,\n requestCount: requestCount,\n // streamId,\n streamId: 0,\n ttl: ttl,\n type: Frames_1.FrameTypes.LEASE,\n };\n}\n/**\n * Writes a REQUEST_FNF or REQUEST_RESPONSE frame to a new buffer and returns\n * it.\n *\n * Note that these frames have the same shape and only differ in their type.\n */\nfunction serializeRequestFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + payloadLength);\n var offset = writeHeader(frame, buffer);\n writePayload(frame, buffer, offset);\n return buffer;\n}\nfunction sizeOfRequestFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n return FRAME_HEADER_SIZE + payloadLength;\n}\n/**\n * Writes a METADATA_PUSH frame to a new buffer and returns\n * it.\n */\nfunction serializeMetadataPushFrame(frame) {\n var metadata = frame.metadata;\n if (metadata != null) {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + metadata.byteLength);\n var offset = writeHeader(frame, buffer);\n metadata.copy(buffer, offset);\n return buffer;\n }\n else {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE);\n writeHeader(frame, buffer);\n return buffer;\n }\n}\nfunction sizeOfMetadataPushFrame(frame) {\n return (FRAME_HEADER_SIZE + (frame.metadata != null ? frame.metadata.byteLength : 0));\n}\nfunction deserializeRequestFnfFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_FNF frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_FNF,\n };\n readPayload(buffer, frame, FRAME_HEADER_SIZE);\n return frame;\n}\nfunction deserializeRequestResponseFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_RESPONSE frame, expected stream id to be > 0.\"\n // );\n // const length = buffer.length;\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_RESPONSE,\n };\n readPayload(buffer, frame, FRAME_HEADER_SIZE);\n return frame;\n}\nfunction deserializeMetadataPushFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid METADATA_PUSH frame, expected stream id to be 0.\"\n // );\n // const length = buffer.length;\n return {\n flags: flags,\n // length,\n metadata: length === FRAME_HEADER_SIZE\n ? null\n : buffer.slice(FRAME_HEADER_SIZE, length),\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.METADATA_PUSH,\n };\n}\n/**\n * Writes a REQUEST_STREAM or REQUEST_CHANNEL frame to a new buffer and returns\n * it.\n *\n * Note that these frames have the same shape and only differ in their type.\n *\n * Prefix size is for requestN (uint32 = 4).\n */\nvar REQUEST_MANY_HEADER = 4;\nfunction serializeRequestManyFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + REQUEST_MANY_HEADER + payloadLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt32BE(frame.requestN, offset);\n writePayload(frame, buffer, offset);\n return buffer;\n}\nfunction sizeOfRequestManyFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n return FRAME_HEADER_SIZE + REQUEST_MANY_HEADER + payloadLength;\n}\nfunction deserializeRequestStreamFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var requestN = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // requestN > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n // requestN\n // );\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n requestN: requestN,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_STREAM,\n };\n readPayload(buffer, frame, offset);\n return frame;\n}\nfunction deserializeRequestChannelFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_CHANNEL frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var requestN = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // requestN > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n // requestN\n // );\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n requestN: requestN,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_CHANNEL,\n };\n readPayload(buffer, frame, offset);\n return frame;\n}\n/**\n * Writes a REQUEST_N frame to a new buffer and returns it.\n *\n * Prefix size is for requestN (uint32 = 4).\n */\nvar REQUEST_N_HEADER = 4;\nfunction serializeRequestNFrame(frame) {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + REQUEST_N_HEADER);\n var offset = writeHeader(frame, buffer);\n buffer.writeUInt32BE(frame.requestN, offset);\n return buffer;\n}\nfunction sizeOfRequestNFrame(frame) {\n return FRAME_HEADER_SIZE + REQUEST_N_HEADER;\n}\nfunction deserializeRequestNFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_N frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var requestN = buffer.readInt32BE(FRAME_HEADER_SIZE);\n // invariant(\n // requestN > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n // requestN\n // );\n return {\n flags: flags,\n // length,\n requestN: requestN,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_N,\n };\n}\n/**\n * Writes a CANCEL frame to a new buffer and returns it.\n */\nfunction serializeCancelFrame(frame) {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE);\n writeHeader(frame, buffer);\n return buffer;\n}\nfunction sizeOfCancelFrame(frame) {\n return FRAME_HEADER_SIZE;\n}\nfunction deserializeCancelFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid CANCEL frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n return {\n flags: flags,\n // length,\n streamId: streamId,\n type: Frames_1.FrameTypes.CANCEL,\n };\n}\n/**\n * Writes a PAYLOAD frame to a new buffer and returns it.\n */\nfunction serializePayloadFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + payloadLength);\n var offset = writeHeader(frame, buffer);\n writePayload(frame, buffer, offset);\n return buffer;\n}\nfunction sizeOfPayloadFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n return FRAME_HEADER_SIZE + payloadLength;\n}\nfunction deserializePayloadFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid PAYLOAD frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n streamId: streamId,\n type: Frames_1.FrameTypes.PAYLOAD,\n };\n readPayload(buffer, frame, FRAME_HEADER_SIZE);\n return frame;\n}\n/**\n * Writes a RESUME frame into a new buffer and returns it.\n *\n * Fixed size is:\n * - major version (uint16 = 2)\n * - minor version (uint16 = 2)\n * - token length (uint16 = 2)\n * - client position (uint64 = 8)\n * - server position (uint64 = 8)\n */\nvar RESUME_FIXED_SIZE = 22;\nfunction serializeResumeFrame(frame) {\n var resumeTokenLength = frame.resumeToken.byteLength;\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + RESUME_FIXED_SIZE + resumeTokenLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt16BE(frame.majorVersion, offset);\n offset = buffer.writeUInt16BE(frame.minorVersion, offset);\n offset = buffer.writeUInt16BE(resumeTokenLength, offset);\n offset += frame.resumeToken.copy(buffer, offset);\n offset = writeUInt64BE(buffer, frame.serverPosition, offset);\n writeUInt64BE(buffer, frame.clientPosition, offset);\n return buffer;\n}\nfunction sizeOfResumeFrame(frame) {\n var resumeTokenLength = frame.resumeToken.byteLength;\n return FRAME_HEADER_SIZE + RESUME_FIXED_SIZE + resumeTokenLength;\n}\nfunction deserializeResumeFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid RESUME frame, expected stream id to be 0.\"\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var majorVersion = buffer.readUInt16BE(offset);\n offset += 2;\n var minorVersion = buffer.readUInt16BE(offset);\n offset += 2;\n var resumeTokenLength = buffer.readInt16BE(offset);\n offset += 2;\n // invariant(\n // resumeTokenLength >= 0 && resumeTokenLength <= MAX_RESUME_LENGTH,\n // \"RSocketBinaryFraming: Invalid SETUP frame, expected resumeToken length \" +\n // \"to be >= 0 and <= %s. Got `%s`.\",\n // MAX_RESUME_LENGTH,\n // resumeTokenLength\n // );\n var resumeToken = buffer.slice(offset, offset + resumeTokenLength);\n offset += resumeTokenLength;\n var serverPosition = readUInt64BE(buffer, offset);\n offset += 8;\n var clientPosition = readUInt64BE(buffer, offset);\n offset += 8;\n return {\n clientPosition: clientPosition,\n flags: flags,\n // length,\n majorVersion: majorVersion,\n minorVersion: minorVersion,\n resumeToken: resumeToken,\n serverPosition: serverPosition,\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.RESUME,\n };\n}\n/**\n * Writes a RESUME_OK frame into a new buffer and returns it.\n *\n * Fixed size is:\n * - client position (uint64 = 8)\n */\nvar RESUME_OK_FIXED_SIZE = 8;\nfunction serializeResumeOkFrame(frame) {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + RESUME_OK_FIXED_SIZE);\n var offset = writeHeader(frame, buffer);\n writeUInt64BE(buffer, frame.clientPosition, offset);\n return buffer;\n}\nfunction sizeOfResumeOkFrame(frame) {\n return FRAME_HEADER_SIZE + RESUME_OK_FIXED_SIZE;\n}\nfunction deserializeResumeOkFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid RESUME frame, expected stream id to be 0.\"\n // );\n var length = buffer.length;\n var clientPosition = readUInt64BE(buffer, FRAME_HEADER_SIZE);\n return {\n clientPosition: clientPosition,\n flags: flags,\n // length,\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.RESUME_OK,\n };\n}\n/**\n * Write the header of the frame into the buffer.\n */\nfunction writeHeader(frame, buffer) {\n var offset = buffer.writeInt32BE(frame.streamId, 0);\n // shift frame to high 6 bits, extract lowest 10 bits from flags\n return buffer.writeUInt16BE((frame.type << exports.FRAME_TYPE_OFFFSET) | (frame.flags & exports.FLAGS_MASK), offset);\n}\n/**\n * Determine the length of the payload section of a frame. Only applies to\n * frame types that MAY have both metadata and data.\n */\nfunction getPayloadLength(frame) {\n var payloadLength = 0;\n if (frame.data != null) {\n payloadLength += frame.data.byteLength;\n }\n if (Frames_1.Flags.hasMetadata(frame.flags)) {\n payloadLength += UINT24_SIZE;\n if (frame.metadata != null) {\n payloadLength += frame.metadata.byteLength;\n }\n }\n return payloadLength;\n}\n/**\n * Write the payload of a frame into the given buffer. Only applies to frame\n * types that MAY have both metadata and data.\n */\nfunction writePayload(frame, buffer, offset) {\n if (Frames_1.Flags.hasMetadata(frame.flags)) {\n if (frame.metadata != null) {\n var metaLength = frame.metadata.byteLength;\n offset = writeUInt24BE(buffer, metaLength, offset);\n offset += frame.metadata.copy(buffer, offset);\n }\n else {\n offset = writeUInt24BE(buffer, 0, offset);\n }\n }\n if (frame.data != null) {\n frame.data.copy(buffer, offset);\n }\n}\n/**\n * Read the payload from a buffer and write it into the frame. Only applies to\n * frame types that MAY have both metadata and data.\n */\nfunction readPayload(buffer, frame, offset) {\n if (Frames_1.Flags.hasMetadata(frame.flags)) {\n var metaLength = readUInt24BE(buffer, offset);\n offset += UINT24_SIZE;\n if (metaLength > 0) {\n frame.metadata = buffer.slice(offset, offset + metaLength);\n offset += metaLength;\n }\n }\n if (offset < buffer.length) {\n frame.data = buffer.slice(offset, buffer.length);\n }\n}\n// exported as class to facilitate testing\nvar Deserializer = /** @class */ (function () {\n function Deserializer() {\n }\n /**\n * Read a frame from the buffer.\n */\n Deserializer.prototype.deserializeFrame = function (buffer) {\n return deserializeFrame(buffer);\n };\n /**\n * Reads a frame from a buffer that is prefixed with the frame length.\n */\n Deserializer.prototype.deserializeFrameWithLength = function (buffer) {\n return deserializeFrameWithLength(buffer);\n };\n /**\n * Given a buffer that may contain zero or more length-prefixed frames followed\n * by zero or more bytes of a (partial) subsequent frame, returns an array of\n * the frames and a int representing the buffer offset.\n */\n Deserializer.prototype.deserializeFrames = function (buffer) {\n return deserializeFrames(buffer);\n };\n return Deserializer;\n}());\nexports.Deserializer = Deserializer;\n//# sourceMappingURL=Codecs.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Common.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deferred = void 0;\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n this._done = false;\n this.onCloseCallbacks = [];\n }\n Object.defineProperty(Deferred.prototype, \"done\", {\n get: function () {\n return this._done;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Signals to an observer that the Deferred operation has been closed, which invokes\n * the provided `onClose` callback.\n */\n Deferred.prototype.close = function (error) {\n var e_1, _a, e_2, _b;\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n this._done = true;\n this._error = error;\n if (error) {\n try {\n for (var _c = __values(this.onCloseCallbacks), _d = _c.next(); !_d.done; _d = _c.next()) {\n var callback = _d.value;\n callback(error);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return;\n }\n try {\n for (var _e = __values(this.onCloseCallbacks), _f = _e.next(); !_f.done; _f = _e.next()) {\n var callback = _f.value;\n callback();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n /**\n * Registers a callback to be called when the Closeable is closed. optionally with an Error.\n */\n Deferred.prototype.onClose = function (callback) {\n if (this._done) {\n callback(this._error);\n return;\n }\n this.onCloseCallbacks.push(callback);\n };\n return Deferred;\n}());\nexports.Deferred = Deferred;\n//# sourceMappingURL=Deferred.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorCodes = exports.RSocketError = void 0;\nvar RSocketError = /** @class */ (function (_super) {\n __extends(RSocketError, _super);\n function RSocketError(code, message) {\n var _this = _super.call(this, message) || this;\n _this.code = code;\n return _this;\n }\n return RSocketError;\n}(Error));\nexports.RSocketError = RSocketError;\nvar ErrorCodes;\n(function (ErrorCodes) {\n ErrorCodes[ErrorCodes[\"RESERVED\"] = 0] = \"RESERVED\";\n ErrorCodes[ErrorCodes[\"INVALID_SETUP\"] = 1] = \"INVALID_SETUP\";\n ErrorCodes[ErrorCodes[\"UNSUPPORTED_SETUP\"] = 2] = \"UNSUPPORTED_SETUP\";\n ErrorCodes[ErrorCodes[\"REJECTED_SETUP\"] = 3] = \"REJECTED_SETUP\";\n ErrorCodes[ErrorCodes[\"REJECTED_RESUME\"] = 4] = \"REJECTED_RESUME\";\n ErrorCodes[ErrorCodes[\"CONNECTION_CLOSE\"] = 258] = \"CONNECTION_CLOSE\";\n ErrorCodes[ErrorCodes[\"CONNECTION_ERROR\"] = 257] = \"CONNECTION_ERROR\";\n ErrorCodes[ErrorCodes[\"APPLICATION_ERROR\"] = 513] = \"APPLICATION_ERROR\";\n ErrorCodes[ErrorCodes[\"REJECTED\"] = 514] = \"REJECTED\";\n ErrorCodes[ErrorCodes[\"CANCELED\"] = 515] = \"CANCELED\";\n ErrorCodes[ErrorCodes[\"INVALID\"] = 516] = \"INVALID\";\n ErrorCodes[ErrorCodes[\"RESERVED_EXTENSION\"] = 4294967295] = \"RESERVED_EXTENSION\";\n})(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {}));\n//# sourceMappingURL=Errors.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=RSocket.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = exports.ResumableClientServerInputMultiplexerDemultiplexer = exports.ClientServerInputMultiplexerDemultiplexer = exports.StreamIdGenerator = void 0;\nvar _1 = require(\".\");\nvar Deferred_1 = require(\"./Deferred\");\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar StreamIdGenerator;\n(function (StreamIdGenerator) {\n function create(seedId) {\n return new StreamIdGeneratorImpl(seedId);\n }\n StreamIdGenerator.create = create;\n var StreamIdGeneratorImpl = /** @class */ (function () {\n function StreamIdGeneratorImpl(currentId) {\n this.currentId = currentId;\n }\n StreamIdGeneratorImpl.prototype.next = function (handler) {\n var nextId = this.currentId + 2;\n if (!handler(nextId)) {\n return;\n }\n this.currentId = nextId;\n };\n return StreamIdGeneratorImpl;\n }());\n})(StreamIdGenerator = exports.StreamIdGenerator || (exports.StreamIdGenerator = {}));\nvar ClientServerInputMultiplexerDemultiplexer = /** @class */ (function (_super) {\n __extends(ClientServerInputMultiplexerDemultiplexer, _super);\n function ClientServerInputMultiplexerDemultiplexer(streamIdSupplier, outbound, closeable) {\n var _this = _super.call(this) || this;\n _this.streamIdSupplier = streamIdSupplier;\n _this.outbound = outbound;\n _this.closeable = closeable;\n _this.registry = {};\n closeable.onClose(_this.close.bind(_this));\n return _this;\n }\n ClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n if (Frames_1.Frame.isConnection(frame)) {\n if (frame.type === _1.FrameTypes.RESERVED) {\n // TODO: throw\n return;\n }\n this.connectionFramesHandler.handle(frame);\n // TODO: Connection Handler\n }\n else if (Frames_1.Frame.isRequest(frame)) {\n if (this.registry[frame.streamId]) {\n // TODO: Send error and close connection\n return;\n }\n this.requestFramesHandler.handle(frame, this);\n }\n else {\n var handler = this.registry[frame.streamId];\n if (!handler) {\n // TODO: add validation\n return;\n }\n handler.handle(frame);\n }\n // TODO: add extensions support\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.connectionInbound = function (handler) {\n if (this.connectionFramesHandler) {\n throw new Error(\"Connection frame handler has already been installed\");\n }\n this.connectionFramesHandler = handler;\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.handleRequestStream = function (handler) {\n if (this.requestFramesHandler) {\n throw new Error(\"Stream handler has already been installed\");\n }\n this.requestFramesHandler = handler;\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.send = function (frame) {\n this.outbound.send(frame);\n };\n Object.defineProperty(ClientServerInputMultiplexerDemultiplexer.prototype, \"connectionOutbound\", {\n get: function () {\n return this;\n },\n enumerable: false,\n configurable: true\n });\n ClientServerInputMultiplexerDemultiplexer.prototype.createRequestStream = function (streamHandler) {\n var _this = this;\n // handle requester side stream registration\n if (this.done) {\n streamHandler.handleReject(new Error(\"Already closed\"));\n return;\n }\n var registry = this.registry;\n this.streamIdSupplier.next(function (streamId) { return streamHandler.handleReady(streamId, _this); }, Object.keys(registry));\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.connect = function (handler) {\n this.registry[handler.streamId] = handler;\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.disconnect = function (stream) {\n delete this.registry[stream.streamId];\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.close = function (error) {\n if (this.done) {\n _super.prototype.close.call(this, error);\n return;\n }\n for (var streamId in this.registry) {\n var stream = this.registry[streamId];\n stream.close(new Error(\"Closed. \".concat(error ? \"Original cause [\".concat(error, \"].\") : \"\")));\n }\n _super.prototype.close.call(this, error);\n };\n return ClientServerInputMultiplexerDemultiplexer;\n}(Deferred_1.Deferred));\nexports.ClientServerInputMultiplexerDemultiplexer = ClientServerInputMultiplexerDemultiplexer;\nvar ResumableClientServerInputMultiplexerDemultiplexer = /** @class */ (function (_super) {\n __extends(ResumableClientServerInputMultiplexerDemultiplexer, _super);\n function ResumableClientServerInputMultiplexerDemultiplexer(streamIdSupplier, outbound, closeable, frameStore, token, sessionStoreOrReconnector, sessionTimeout) {\n var _this = _super.call(this, streamIdSupplier, outbound, new Deferred_1.Deferred()) || this;\n _this.frameStore = frameStore;\n _this.token = token;\n _this.sessionTimeout = sessionTimeout;\n if (sessionStoreOrReconnector instanceof Function) {\n _this.reconnector = sessionStoreOrReconnector;\n }\n else {\n _this.sessionStore = sessionStoreOrReconnector;\n }\n closeable.onClose(_this.handleConnectionClose.bind(_this));\n return _this;\n }\n ResumableClientServerInputMultiplexerDemultiplexer.prototype.send = function (frame) {\n if (Frames_1.Frame.isConnection(frame)) {\n if (frame.type === _1.FrameTypes.KEEPALIVE) {\n frame.lastReceivedPosition = this.frameStore.lastReceivedFramePosition;\n }\n else if (frame.type === _1.FrameTypes.ERROR) {\n this.outbound.send(frame);\n if (this.sessionStore) {\n delete this.sessionStore[this.token];\n }\n _super.prototype.close.call(this, new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n }\n else {\n this.frameStore.store(frame);\n }\n this.outbound.send(frame);\n };\n ResumableClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n if (Frames_1.Frame.isConnection(frame)) {\n if (frame.type === _1.FrameTypes.KEEPALIVE) {\n try {\n this.frameStore.dropTo(frame.lastReceivedPosition);\n }\n catch (re) {\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n flags: _1.Flags.NONE,\n code: re.code,\n message: re.message,\n });\n this.close(re);\n }\n }\n else if (frame.type === _1.FrameTypes.ERROR) {\n _super.prototype.handle.call(this, frame);\n if (this.sessionStore) {\n delete this.sessionStore[this.token];\n }\n _super.prototype.close.call(this, new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n }\n else {\n this.frameStore.record(frame);\n }\n _super.prototype.handle.call(this, frame);\n };\n ResumableClientServerInputMultiplexerDemultiplexer.prototype.resume = function (frame, outbound, closeable) {\n this.outbound = outbound;\n switch (frame.type) {\n case _1.FrameTypes.RESUME: {\n clearTimeout(this.timeoutId);\n if (this.frameStore.lastReceivedFramePosition < frame.clientPosition) {\n var e = new Errors_1.RSocketError(_1.ErrorCodes.REJECTED_RESUME, \"Impossible to resume since first available client frame position is greater than last received server frame position\");\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n flags: _1.Flags.NONE,\n code: e.code,\n message: e.message,\n });\n this.close(e);\n return;\n }\n try {\n this.frameStore.dropTo(frame.serverPosition);\n }\n catch (re) {\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n flags: _1.Flags.NONE,\n code: re.code,\n message: re.message,\n });\n this.close(re);\n return;\n }\n this.outbound.send({\n type: _1.FrameTypes.RESUME_OK,\n streamId: 0,\n flags: _1.Flags.NONE,\n clientPosition: this.frameStore.lastReceivedFramePosition,\n });\n break;\n }\n case _1.FrameTypes.RESUME_OK: {\n try {\n this.frameStore.dropTo(frame.clientPosition);\n }\n catch (re) {\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n flags: _1.Flags.NONE,\n code: re.code,\n message: re.message,\n });\n this.close(re);\n }\n break;\n }\n }\n this.frameStore.drain(this.outbound.send.bind(this.outbound));\n closeable.onClose(this.handleConnectionClose.bind(this));\n this.connectionFramesHandler.resume();\n };\n ResumableClientServerInputMultiplexerDemultiplexer.prototype.handleConnectionClose = function (_error) {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.connectionFramesHandler.pause();\n if (!this.reconnector) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.reconnector(this, this.frameStore)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n this.close(e_1);\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n this.timeoutId = setTimeout(this.close.bind(this), this.sessionTimeout);\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n return ResumableClientServerInputMultiplexerDemultiplexer;\n}(ClientServerInputMultiplexerDemultiplexer));\nexports.ResumableClientServerInputMultiplexerDemultiplexer = ResumableClientServerInputMultiplexerDemultiplexer;\nvar ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = /** @class */ (function () {\n function ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(outbound, closeable, delegate) {\n this.outbound = outbound;\n this.closeable = closeable;\n this.delegate = delegate;\n this.resumed = false;\n }\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.close = function () {\n this.delegate.close();\n };\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.onClose = function (callback) {\n this.delegate.onClose(callback);\n };\n Object.defineProperty(ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype, \"connectionOutbound\", {\n get: function () {\n return this.delegate.connectionOutbound;\n },\n enumerable: false,\n configurable: true\n });\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.createRequestStream = function (streamHandler) {\n this.delegate.createRequestStream(streamHandler);\n };\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.connectionInbound = function (handler) {\n this.delegate.connectionInbound(handler);\n };\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.handleRequestStream = function (handler) {\n this.delegate.handleRequestStream(handler);\n };\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n var _this = this;\n if (!this.resumed) {\n if (frame.type === _1.FrameTypes.RESUME_OK) {\n this.resumed = true;\n this.delegate.resume(frame, this.outbound, this.closeable);\n return;\n }\n else {\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n code: _1.ErrorCodes.CONNECTION_ERROR,\n message: \"Incomplete RESUME handshake. Unexpected frame \".concat(frame.type, \" received\"),\n flags: _1.Flags.NONE,\n });\n this.closeable.close();\n this.closeable.onClose(function () {\n return _this.delegate.close(new Errors_1.RSocketError(_1.ErrorCodes.CONNECTION_ERROR, \"Incomplete RESUME handshake. Unexpected frame \".concat(frame.type, \" received\")));\n });\n }\n return;\n }\n this.delegate.handle(frame);\n };\n return ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer;\n}());\nexports.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer;\n//# sourceMappingURL=ClientServerMultiplexerDemultiplexer.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fragmentWithRequestN = exports.fragment = exports.isFragmentable = void 0;\nvar Frames_1 = require(\"./Frames\");\nfunction isFragmentable(payload, fragmentSize, frameType) {\n if (fragmentSize === 0) {\n return false;\n }\n return (payload.data.byteLength +\n (payload.metadata ? payload.metadata.byteLength + Frames_1.Lengths.METADATA : 0) +\n (frameType == Frames_1.FrameTypes.REQUEST_STREAM ||\n frameType == Frames_1.FrameTypes.REQUEST_CHANNEL\n ? Frames_1.Lengths.REQUEST\n : 0) >\n fragmentSize);\n}\nexports.isFragmentable = isFragmentable;\nfunction fragment(streamId, payload, fragmentSize, frameType, isComplete) {\n var dataLength, firstFrame, remaining, metadata, metadataLength, metadataPosition, nextMetadataPosition, nextMetadataPosition, dataPosition, data, nextDataPosition, nextDataPosition;\n var _a, _b;\n if (isComplete === void 0) { isComplete = false; }\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n dataLength = (_b = (_a = payload.data) === null || _a === void 0 ? void 0 : _a.byteLength) !== null && _b !== void 0 ? _b : 0;\n firstFrame = frameType !== Frames_1.FrameTypes.PAYLOAD;\n remaining = fragmentSize;\n if (!payload.metadata) return [3 /*break*/, 6];\n metadataLength = payload.metadata.byteLength;\n if (!(metadataLength === 0)) return [3 /*break*/, 1];\n remaining -= Frames_1.Lengths.METADATA;\n metadata = Buffer.allocUnsafe(0);\n return [3 /*break*/, 6];\n case 1:\n metadataPosition = 0;\n if (!firstFrame) return [3 /*break*/, 3];\n remaining -= Frames_1.Lengths.METADATA;\n nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n remaining -= metadata.byteLength;\n metadataPosition = nextMetadataPosition;\n if (!(remaining === 0)) return [3 /*break*/, 3];\n firstFrame = false;\n return [4 /*yield*/, {\n type: frameType,\n flags: Frames_1.Flags.FOLLOWS | Frames_1.Flags.METADATA,\n data: undefined,\n metadata: metadata,\n streamId: streamId,\n }];\n case 2:\n _c.sent();\n metadata = undefined;\n remaining = fragmentSize;\n _c.label = 3;\n case 3:\n if (!(metadataPosition < metadataLength)) return [3 /*break*/, 6];\n remaining -= Frames_1.Lengths.METADATA;\n nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n remaining -= metadata.byteLength;\n metadataPosition = nextMetadataPosition;\n if (!(remaining === 0 || dataLength === 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, {\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT |\n Frames_1.Flags.METADATA |\n (metadataPosition === metadataLength &&\n isComplete &&\n dataLength === 0\n ? Frames_1.Flags.COMPLETE\n : Frames_1.Flags.FOLLOWS),\n data: undefined,\n metadata: metadata,\n streamId: streamId,\n }];\n case 4:\n _c.sent();\n metadata = undefined;\n remaining = fragmentSize;\n _c.label = 5;\n case 5: return [3 /*break*/, 3];\n case 6:\n dataPosition = 0;\n if (!firstFrame) return [3 /*break*/, 8];\n nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n data = payload.data.slice(dataPosition, nextDataPosition);\n remaining -= data.byteLength;\n dataPosition = nextDataPosition;\n return [4 /*yield*/, {\n type: frameType,\n flags: Frames_1.Flags.FOLLOWS | (metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n data: data,\n metadata: metadata,\n streamId: streamId,\n }];\n case 7:\n _c.sent();\n metadata = undefined;\n data = undefined;\n remaining = fragmentSize;\n _c.label = 8;\n case 8:\n if (!(dataPosition < dataLength)) return [3 /*break*/, 10];\n nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n data = payload.data.slice(dataPosition, nextDataPosition);\n remaining -= data.byteLength;\n dataPosition = nextDataPosition;\n return [4 /*yield*/, {\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: dataPosition === dataLength\n ? (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n Frames_1.Flags.NEXT |\n (metadata ? Frames_1.Flags.METADATA : 0)\n : Frames_1.Flags.FOLLOWS | Frames_1.Flags.NEXT | (metadata ? Frames_1.Flags.METADATA : 0),\n data: data,\n metadata: metadata,\n streamId: streamId,\n }];\n case 9:\n _c.sent();\n metadata = undefined;\n data = undefined;\n remaining = fragmentSize;\n return [3 /*break*/, 8];\n case 10: return [2 /*return*/];\n }\n });\n}\nexports.fragment = fragment;\nfunction fragmentWithRequestN(streamId, payload, fragmentSize, frameType, requestN, isComplete) {\n var dataLength, firstFrame, remaining, metadata, metadataLength, metadataPosition, nextMetadataPosition, nextMetadataPosition, dataPosition, data, nextDataPosition, nextDataPosition;\n var _a, _b;\n if (isComplete === void 0) { isComplete = false; }\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n dataLength = (_b = (_a = payload.data) === null || _a === void 0 ? void 0 : _a.byteLength) !== null && _b !== void 0 ? _b : 0;\n firstFrame = true;\n remaining = fragmentSize;\n if (!payload.metadata) return [3 /*break*/, 6];\n metadataLength = payload.metadata.byteLength;\n if (!(metadataLength === 0)) return [3 /*break*/, 1];\n remaining -= Frames_1.Lengths.METADATA;\n metadata = Buffer.allocUnsafe(0);\n return [3 /*break*/, 6];\n case 1:\n metadataPosition = 0;\n if (!firstFrame) return [3 /*break*/, 3];\n remaining -= Frames_1.Lengths.METADATA + Frames_1.Lengths.REQUEST;\n nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n remaining -= metadata.byteLength;\n metadataPosition = nextMetadataPosition;\n if (!(remaining === 0)) return [3 /*break*/, 3];\n firstFrame = false;\n return [4 /*yield*/, {\n type: frameType,\n flags: Frames_1.Flags.FOLLOWS | Frames_1.Flags.METADATA,\n data: undefined,\n requestN: requestN,\n metadata: metadata,\n streamId: streamId,\n }];\n case 2:\n _c.sent();\n metadata = undefined;\n remaining = fragmentSize;\n _c.label = 3;\n case 3:\n if (!(metadataPosition < metadataLength)) return [3 /*break*/, 6];\n remaining -= Frames_1.Lengths.METADATA;\n nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n remaining -= metadata.byteLength;\n metadataPosition = nextMetadataPosition;\n if (!(remaining === 0 || dataLength === 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, {\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT |\n Frames_1.Flags.METADATA |\n (metadataPosition === metadataLength &&\n isComplete &&\n dataLength === 0\n ? Frames_1.Flags.COMPLETE\n : Frames_1.Flags.FOLLOWS),\n data: undefined,\n metadata: metadata,\n streamId: streamId,\n }];\n case 4:\n _c.sent();\n metadata = undefined;\n remaining = fragmentSize;\n _c.label = 5;\n case 5: return [3 /*break*/, 3];\n case 6:\n dataPosition = 0;\n if (!firstFrame) return [3 /*break*/, 8];\n remaining -= Frames_1.Lengths.REQUEST;\n nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n data = payload.data.slice(dataPosition, nextDataPosition);\n remaining -= data.byteLength;\n dataPosition = nextDataPosition;\n return [4 /*yield*/, {\n type: frameType,\n flags: Frames_1.Flags.FOLLOWS | (metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n data: data,\n requestN: requestN,\n metadata: metadata,\n streamId: streamId,\n }];\n case 7:\n _c.sent();\n metadata = undefined;\n data = undefined;\n remaining = fragmentSize;\n _c.label = 8;\n case 8:\n if (!(dataPosition < dataLength)) return [3 /*break*/, 10];\n nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n data = payload.data.slice(dataPosition, nextDataPosition);\n remaining -= data.byteLength;\n dataPosition = nextDataPosition;\n return [4 /*yield*/, {\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: dataPosition === dataLength\n ? (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n Frames_1.Flags.NEXT |\n (metadata ? Frames_1.Flags.METADATA : 0)\n : Frames_1.Flags.FOLLOWS | Frames_1.Flags.NEXT | (metadata ? Frames_1.Flags.METADATA : 0),\n data: data,\n metadata: metadata,\n streamId: streamId,\n }];\n case 9:\n _c.sent();\n metadata = undefined;\n data = undefined;\n remaining = fragmentSize;\n return [3 /*break*/, 8];\n case 10: return [2 /*return*/];\n }\n });\n}\nexports.fragmentWithRequestN = fragmentWithRequestN;\n//# sourceMappingURL=Fragmenter.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cancel = exports.reassemble = exports.add = void 0;\nfunction add(holder, dataFragment, metadataFragment) {\n if (!holder.hasFragments) {\n holder.hasFragments = true;\n holder.data = dataFragment;\n if (metadataFragment) {\n holder.metadata = metadataFragment;\n }\n return true;\n }\n // TODO: add validation\n holder.data = holder.data\n ? Buffer.concat([holder.data, dataFragment])\n : dataFragment;\n if (holder.metadata && metadataFragment) {\n holder.metadata = Buffer.concat([holder.metadata, metadataFragment]);\n }\n return true;\n}\nexports.add = add;\nfunction reassemble(holder, dataFragment, metadataFragment) {\n // TODO: add validation\n holder.hasFragments = false;\n var data = holder.data\n ? Buffer.concat([holder.data, dataFragment])\n : dataFragment;\n holder.data = undefined;\n if (holder.metadata) {\n var metadata = metadataFragment\n ? Buffer.concat([holder.metadata, metadataFragment])\n : holder.metadata;\n holder.metadata = undefined;\n return {\n data: data,\n metadata: metadata,\n };\n }\n return {\n data: data,\n };\n}\nexports.reassemble = reassemble;\nfunction cancel(holder) {\n holder.hasFragments = false;\n holder.data = undefined;\n holder.metadata = undefined;\n}\nexports.cancel = cancel;\n//# sourceMappingURL=Reassembler.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestChannelResponderStream = exports.RequestChannelRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestChannelRequesterStream = /** @class */ (function () {\n function RequestChannelRequesterStream(payload, isComplete, receiver, fragmentSize, initialRequestN, leaseManager) {\n this.payload = payload;\n this.isComplete = isComplete;\n this.receiver = receiver;\n this.fragmentSize = fragmentSize;\n this.initialRequestN = initialRequestN;\n this.leaseManager = leaseManager;\n this.streamType = Frames_1.FrameTypes.REQUEST_CHANNEL;\n // TODO: add payload size validation\n }\n RequestChannelRequesterStream.prototype.handleReady = function (streamId, stream) {\n var e_1, _a;\n if (this.outboundDone) {\n return false;\n }\n this.streamId = streamId;\n this.stream = stream;\n stream.connect(this);\n var isCompleted = this.isComplete;\n if (isCompleted) {\n this.outboundDone = isCompleted;\n }\n if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_CHANNEL)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragmentWithRequestN)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_CHANNEL, this.initialRequestN, isCompleted)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_CHANNEL,\n data: this.payload.data,\n metadata: this.payload.metadata,\n requestN: this.initialRequestN,\n flags: (this.payload.metadata !== undefined ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n (isCompleted ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE),\n streamId: streamId,\n });\n }\n if (this.hasExtension) {\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: streamId,\n extendedContent: this.extendedContent,\n extendedType: this.extendedType,\n flags: this.flags,\n });\n }\n return true;\n };\n RequestChannelRequesterStream.prototype.handleReject = function (error) {\n if (this.inboundDone) {\n return;\n }\n this.inboundDone = true;\n this.outboundDone = true;\n this.receiver.onError(error);\n };\n RequestChannelRequesterStream.prototype.handle = function (frame) {\n var errorMessage;\n var frameType = frame.type;\n switch (frameType) {\n case Frames_1.FrameTypes.PAYLOAD: {\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n var hasNext = Frames_1.Flags.hasNext(frame.flags);\n if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n if (hasComplete) {\n this.inboundDone = true;\n if (this.outboundDone) {\n this.stream.disconnect(this);\n }\n if (!hasNext) {\n // TODO: add validation no frame in reassembly\n this.receiver.onComplete();\n return;\n }\n }\n var payload = this.hasFragments\n ? Reassembler.reassemble(this, frame.data, frame.metadata)\n : {\n data: frame.data,\n metadata: frame.metadata,\n };\n this.receiver.onNext(payload, hasComplete);\n return;\n }\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected frame size\";\n break;\n }\n case Frames_1.FrameTypes.CANCEL: {\n if (this.outboundDone) {\n return;\n }\n this.outboundDone = true;\n if (this.inboundDone) {\n this.stream.disconnect(this);\n }\n this.receiver.cancel();\n return;\n }\n case Frames_1.FrameTypes.REQUEST_N: {\n if (this.outboundDone) {\n return;\n }\n if (this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.request(frame.requestN);\n return;\n }\n case Frames_1.FrameTypes.ERROR: {\n var outboundDone = this.outboundDone;\n this.inboundDone = true;\n this.outboundDone = true;\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n if (!outboundDone) {\n this.receiver.cancel();\n }\n this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n case Frames_1.FrameTypes.EXT:\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n default: {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n }\n }\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n });\n this.stream.disconnect(this);\n };\n RequestChannelRequesterStream.prototype.request = function (n) {\n if (this.inboundDone) {\n return;\n }\n if (!this.streamId) {\n this.initialRequestN += n;\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_N,\n flags: Frames_1.Flags.NONE,\n requestN: n,\n streamId: this.streamId,\n });\n };\n RequestChannelRequesterStream.prototype.cancel = function () {\n var _a;\n var inboundDone = this.inboundDone;\n var outboundDone = this.outboundDone;\n if (inboundDone && outboundDone) {\n return;\n }\n this.inboundDone = true;\n this.outboundDone = true;\n if (!outboundDone) {\n this.receiver.cancel();\n }\n if (!this.streamId) {\n (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n return;\n }\n this.stream.send({\n type: inboundDone ? Frames_1.FrameTypes.ERROR : Frames_1.FrameTypes.CANCEL,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n code: Errors_1.ErrorCodes.CANCELED,\n message: \"Cancelled\",\n });\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n };\n RequestChannelRequesterStream.prototype.onNext = function (payload, isComplete) {\n var e_2, _a;\n if (this.outboundDone) {\n return;\n }\n if (isComplete) {\n this.outboundDone = true;\n if (this.inboundDone) {\n this.stream.disconnect(this);\n }\n }\n if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isComplete)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n streamId: this.streamId,\n flags: Frames_1.Flags.NEXT |\n (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE),\n data: payload.data,\n metadata: payload.metadata,\n });\n }\n };\n RequestChannelRequesterStream.prototype.onComplete = function () {\n if (!this.streamId) {\n this.isComplete = true;\n return;\n }\n if (this.outboundDone) {\n return;\n }\n this.outboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n streamId: this.streamId,\n flags: Frames_1.Flags.COMPLETE,\n data: null,\n metadata: null,\n });\n if (this.inboundDone) {\n this.stream.disconnect(this);\n }\n };\n RequestChannelRequesterStream.prototype.onError = function (error) {\n if (this.outboundDone) {\n return;\n }\n var inboundDone = this.inboundDone;\n this.outboundDone = true;\n this.inboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n code: error instanceof Errors_1.RSocketError\n ? error.code\n : Errors_1.ErrorCodes.APPLICATION_ERROR,\n message: error.message,\n });\n this.stream.disconnect(this);\n if (!inboundDone) {\n this.receiver.onError(error);\n }\n };\n RequestChannelRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.outboundDone) {\n return;\n }\n if (!this.streamId) {\n this.hasExtension = true;\n this.extendedType = extendedType;\n this.extendedContent = content;\n this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n return;\n }\n this.stream.send({\n streamId: this.streamId,\n type: Frames_1.FrameTypes.EXT,\n extendedType: extendedType,\n extendedContent: content,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n });\n };\n RequestChannelRequesterStream.prototype.close = function (error) {\n if (this.inboundDone && this.outboundDone) {\n return;\n }\n var inboundDone = this.inboundDone;\n var outboundDone = this.outboundDone;\n this.inboundDone = true;\n this.outboundDone = true;\n Reassembler.cancel(this);\n if (!outboundDone) {\n this.receiver.cancel();\n }\n if (!inboundDone) {\n if (error) {\n this.receiver.onError(error);\n }\n else {\n this.receiver.onComplete();\n }\n }\n };\n return RequestChannelRequesterStream;\n}());\nexports.RequestChannelRequesterStream = RequestChannelRequesterStream;\nvar RequestChannelResponderStream = /** @class */ (function () {\n function RequestChannelResponderStream(streamId, stream, fragmentSize, handler, frame) {\n this.streamId = streamId;\n this.stream = stream;\n this.fragmentSize = fragmentSize;\n this.handler = handler;\n this.streamType = Frames_1.FrameTypes.REQUEST_CHANNEL;\n stream.connect(this);\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n Reassembler.add(this, frame.data, frame.metadata);\n this.initialRequestN = frame.requestN;\n this.isComplete = Frames_1.Flags.hasComplete(frame.flags);\n return;\n }\n var payload = {\n data: frame.data,\n metadata: frame.metadata,\n };\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n this.inboundDone = hasComplete;\n try {\n this.receiver = handler(payload, frame.requestN, hasComplete, this);\n if (this.outboundDone && this.defferedError) {\n this.receiver.onError(this.defferedError);\n }\n }\n catch (error) {\n if (this.outboundDone && !this.inboundDone) {\n this.cancel();\n }\n else {\n this.inboundDone = true;\n }\n this.onError(error);\n }\n }\n RequestChannelResponderStream.prototype.handle = function (frame) {\n var errorMessage;\n var frameType = frame.type;\n switch (frameType) {\n case Frames_1.FrameTypes.PAYLOAD: {\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected frame size\";\n break;\n }\n var payload = this.hasFragments\n ? Reassembler.reassemble(this, frame.data, frame.metadata)\n : {\n data: frame.data,\n metadata: frame.metadata,\n };\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n if (!this.receiver) {\n var inboundDone = this.isComplete || hasComplete;\n if (inboundDone) {\n this.inboundDone = true;\n if (this.outboundDone) {\n this.stream.disconnect(this);\n }\n }\n try {\n this.receiver = this.handler(payload, this.initialRequestN, inboundDone, this);\n if (this.outboundDone && this.defferedError) {\n }\n }\n catch (error) {\n if (this.outboundDone && !this.inboundDone) {\n this.cancel();\n }\n else {\n this.inboundDone = true;\n }\n this.onError(error);\n }\n }\n else {\n if (hasComplete) {\n this.inboundDone = true;\n if (this.outboundDone) {\n this.stream.disconnect(this);\n }\n if (!Frames_1.Flags.hasNext(frame.flags)) {\n this.receiver.onComplete();\n return;\n }\n }\n this.receiver.onNext(payload, hasComplete);\n }\n return;\n }\n case Frames_1.FrameTypes.REQUEST_N: {\n if (!this.receiver || this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.request(frame.requestN);\n return;\n }\n case Frames_1.FrameTypes.ERROR:\n case Frames_1.FrameTypes.CANCEL: {\n var inboundDone = this.inboundDone;\n var outboundDone = this.outboundDone;\n this.inboundDone = true;\n this.outboundDone = true;\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n if (!this.receiver) {\n return;\n }\n if (!outboundDone) {\n this.receiver.cancel();\n }\n if (!inboundDone) {\n var error = frameType === Frames_1.FrameTypes.CANCEL\n ? new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, \"Cancelled\")\n : new Errors_1.RSocketError(frame.code, frame.message);\n this.receiver.onError(error);\n }\n return;\n }\n case Frames_1.FrameTypes.EXT: {\n if (!this.receiver || this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n default: {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n // TODO: throws if strict\n }\n }\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.CANCELED,\n message: errorMessage,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n };\n RequestChannelResponderStream.prototype.onError = function (error) {\n if (this.outboundDone) {\n console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n var inboundDone = this.inboundDone;\n this.outboundDone = true;\n this.inboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: error instanceof Errors_1.RSocketError\n ? error.code\n : Errors_1.ErrorCodes.APPLICATION_ERROR,\n message: error.message,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n if (!inboundDone) {\n if (this.receiver) {\n this.receiver.onError(error);\n }\n else {\n this.defferedError = error;\n }\n }\n };\n RequestChannelResponderStream.prototype.onNext = function (payload, isCompletion) {\n var e_3, _a;\n if (this.outboundDone) {\n return;\n }\n if (isCompletion) {\n this.outboundDone = true;\n }\n // TODO: add payload size validation\n if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isCompletion)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT |\n (isCompletion ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n data: payload.data,\n metadata: payload.metadata,\n streamId: this.streamId,\n });\n }\n if (isCompletion && this.inboundDone) {\n this.stream.disconnect(this);\n }\n };\n RequestChannelResponderStream.prototype.onComplete = function () {\n if (this.outboundDone) {\n return;\n }\n this.outboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.COMPLETE,\n streamId: this.streamId,\n data: null,\n metadata: null,\n });\n if (this.inboundDone) {\n this.stream.disconnect(this);\n }\n };\n RequestChannelResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.outboundDone && this.inboundDone) {\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: this.streamId,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n extendedType: extendedType,\n extendedContent: content,\n });\n };\n RequestChannelResponderStream.prototype.request = function (n) {\n if (this.inboundDone) {\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_N,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n requestN: n,\n });\n };\n RequestChannelResponderStream.prototype.cancel = function () {\n if (this.inboundDone) {\n return;\n }\n this.inboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n });\n if (this.outboundDone) {\n this.stream.disconnect(this);\n }\n };\n RequestChannelResponderStream.prototype.close = function (error) {\n if (this.inboundDone && this.outboundDone) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n var inboundDone = this.inboundDone;\n var outboundDone = this.outboundDone;\n this.inboundDone = true;\n this.outboundDone = true;\n Reassembler.cancel(this);\n var receiver = this.receiver;\n if (!receiver) {\n return;\n }\n if (!outboundDone) {\n receiver.cancel();\n }\n if (!inboundDone) {\n if (error) {\n receiver.onError(error);\n }\n else {\n receiver.onComplete();\n }\n }\n };\n return RequestChannelResponderStream;\n}());\nexports.RequestChannelResponderStream = RequestChannelResponderStream;\n//# sourceMappingURL=RequestChannelStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestFnfResponderStream = exports.RequestFnFRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestFnFRequesterStream = /** @class */ (function () {\n function RequestFnFRequesterStream(payload, receiver, fragmentSize, leaseManager) {\n this.payload = payload;\n this.receiver = receiver;\n this.fragmentSize = fragmentSize;\n this.leaseManager = leaseManager;\n this.streamType = Frames_1.FrameTypes.REQUEST_FNF;\n }\n RequestFnFRequesterStream.prototype.handleReady = function (streamId, stream) {\n var e_1, _a;\n if (this.done) {\n return false;\n }\n this.streamId = streamId;\n if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_FNF)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_FNF)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n stream.send(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n stream.send({\n type: Frames_1.FrameTypes.REQUEST_FNF,\n data: this.payload.data,\n metadata: this.payload.metadata,\n flags: this.payload.metadata ? Frames_1.Flags.METADATA : 0,\n streamId: streamId,\n });\n }\n this.done = true;\n this.receiver.onComplete();\n return true;\n };\n RequestFnFRequesterStream.prototype.handleReject = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n this.receiver.onError(error);\n };\n RequestFnFRequesterStream.prototype.cancel = function () {\n var _a;\n if (this.done) {\n return;\n }\n this.done = true;\n (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n };\n RequestFnFRequesterStream.prototype.handle = function (frame) {\n if (frame.type == Frames_1.FrameTypes.ERROR) {\n this.close(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, \"Received invalid frame\"));\n };\n RequestFnFRequesterStream.prototype.close = function (error) {\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n if (error) {\n this.receiver.onError(error);\n }\n else {\n this.receiver.onComplete();\n }\n };\n return RequestFnFRequesterStream;\n}());\nexports.RequestFnFRequesterStream = RequestFnFRequesterStream;\nvar RequestFnfResponderStream = /** @class */ (function () {\n function RequestFnfResponderStream(streamId, stream, handler, frame) {\n this.streamId = streamId;\n this.stream = stream;\n this.handler = handler;\n this.streamType = Frames_1.FrameTypes.REQUEST_FNF;\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n Reassembler.add(this, frame.data, frame.metadata);\n stream.connect(this);\n return;\n }\n var payload = {\n data: frame.data,\n metadata: frame.metadata,\n };\n try {\n this.cancellable = handler(payload, this);\n }\n catch (e) {\n // do nothing\n }\n }\n RequestFnfResponderStream.prototype.handle = function (frame) {\n var errorMessage;\n if (frame.type == Frames_1.FrameTypes.PAYLOAD) {\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected fragment size\";\n }\n else {\n this.stream.disconnect(this);\n var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n try {\n this.cancellable = this.handler(payload, this);\n }\n catch (e) {\n // do nothing\n }\n return;\n }\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n }\n this.done = true;\n if (frame.type != Frames_1.FrameTypes.CANCEL && frame.type != Frames_1.FrameTypes.ERROR) {\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.CANCELED,\n message: errorMessage,\n });\n }\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n // TODO: throws if strict\n };\n RequestFnfResponderStream.prototype.close = function (error) {\n var _a;\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n this.done = true;\n Reassembler.cancel(this);\n (_a = this.cancellable) === null || _a === void 0 ? void 0 : _a.cancel();\n };\n RequestFnfResponderStream.prototype.onError = function (error) { };\n RequestFnfResponderStream.prototype.onComplete = function () { };\n return RequestFnfResponderStream;\n}());\nexports.RequestFnfResponderStream = RequestFnfResponderStream;\n/*\nexport function request(\n payload: Payload,\n responderStream: UnidirectionalStream\n): Handler<Cancellable> {\n return {\n create: (r) => {\n const response = new RequestFnFRequesterHandler(\n payload,\n responderStream,\n r\n );\n\n r.add(response);\n\n return response;\n },\n };\n}\n\nexport function response(\n handler: (payload: Payload, responderStream: UnidirectionalStream,) => void\n): Handler<void> {\n return {\n create: (r) => new RequestFnfResponderHandler(),\n };\n} */\n//# sourceMappingURL=RequestFnFStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestResponseResponderStream = exports.RequestResponseRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestResponseRequesterStream = /** @class */ (function () {\n function RequestResponseRequesterStream(payload, receiver, fragmentSize, leaseManager) {\n this.payload = payload;\n this.receiver = receiver;\n this.fragmentSize = fragmentSize;\n this.leaseManager = leaseManager;\n this.streamType = Frames_1.FrameTypes.REQUEST_RESPONSE;\n }\n RequestResponseRequesterStream.prototype.handleReady = function (streamId, stream) {\n var e_1, _a;\n if (this.done) {\n return false;\n }\n this.streamId = streamId;\n this.stream = stream;\n stream.connect(this);\n if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_RESPONSE)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_RESPONSE)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_RESPONSE,\n data: this.payload.data,\n metadata: this.payload.metadata,\n flags: this.payload.metadata ? Frames_1.Flags.METADATA : 0,\n streamId: streamId,\n });\n }\n if (this.hasExtension) {\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: streamId,\n extendedContent: this.extendedContent,\n extendedType: this.extendedType,\n flags: this.flags,\n });\n }\n return true;\n };\n RequestResponseRequesterStream.prototype.handleReject = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n this.receiver.onError(error);\n };\n RequestResponseRequesterStream.prototype.handle = function (frame) {\n var errorMessage;\n var frameType = frame.type;\n switch (frameType) {\n case Frames_1.FrameTypes.PAYLOAD: {\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n var hasPayload = Frames_1.Flags.hasNext(frame.flags);\n if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n this.done = true;\n this.stream.disconnect(this);\n if (!hasPayload) {\n // TODO: add validation no frame in reassembly\n this.receiver.onComplete();\n return;\n }\n var payload = this.hasFragments\n ? Reassembler.reassemble(this, frame.data, frame.metadata)\n : {\n data: frame.data,\n metadata: frame.metadata,\n };\n this.receiver.onNext(payload, true);\n return;\n }\n if (!Reassembler.add(this, frame.data, frame.metadata)) {\n errorMessage = \"Unexpected fragment size\";\n break;\n }\n return;\n }\n case Frames_1.FrameTypes.ERROR: {\n this.done = true;\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n case Frames_1.FrameTypes.EXT: {\n if (this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n default: {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n }\n }\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n });\n this.stream.disconnect(this);\n // TODO: throw an exception if strict frame handling mode\n };\n RequestResponseRequesterStream.prototype.cancel = function () {\n var _a;\n if (this.done) {\n return;\n }\n this.done = true;\n if (!this.streamId) {\n (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n };\n RequestResponseRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.done) {\n return;\n }\n if (!this.streamId) {\n this.hasExtension = true;\n this.extendedType = extendedType;\n this.extendedContent = content;\n this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n return;\n }\n this.stream.send({\n streamId: this.streamId,\n type: Frames_1.FrameTypes.EXT,\n extendedType: extendedType,\n extendedContent: content,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n });\n };\n RequestResponseRequesterStream.prototype.close = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n Reassembler.cancel(this);\n if (error) {\n this.receiver.onError(error);\n }\n else {\n this.receiver.onComplete();\n }\n };\n return RequestResponseRequesterStream;\n}());\nexports.RequestResponseRequesterStream = RequestResponseRequesterStream;\nvar RequestResponseResponderStream = /** @class */ (function () {\n function RequestResponseResponderStream(streamId, stream, fragmentSize, handler, frame) {\n this.streamId = streamId;\n this.stream = stream;\n this.fragmentSize = fragmentSize;\n this.handler = handler;\n this.streamType = Frames_1.FrameTypes.REQUEST_RESPONSE;\n stream.connect(this);\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n Reassembler.add(this, frame.data, frame.metadata);\n return;\n }\n var payload = {\n data: frame.data,\n metadata: frame.metadata,\n };\n try {\n this.receiver = handler(payload, this);\n }\n catch (error) {\n this.onError(error);\n }\n }\n RequestResponseResponderStream.prototype.handle = function (frame) {\n var _a;\n var errorMessage;\n if (!this.receiver || this.hasFragments) {\n if (frame.type === Frames_1.FrameTypes.PAYLOAD) {\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected fragment size\";\n }\n else {\n var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n try {\n this.receiver = this.handler(payload, this);\n }\n catch (error) {\n this.onError(error);\n }\n return;\n }\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"] during reassembly\");\n }\n }\n else if (frame.type === Frames_1.FrameTypes.EXT) {\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n }\n this.done = true;\n (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n if (frame.type !== Frames_1.FrameTypes.CANCEL && frame.type !== Frames_1.FrameTypes.ERROR) {\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.CANCELED,\n message: errorMessage,\n streamId: this.streamId,\n });\n }\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n // TODO: throws if strict\n };\n RequestResponseResponderStream.prototype.onError = function (error) {\n if (this.done) {\n console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n this.done = true;\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: error instanceof Errors_1.RSocketError\n ? error.code\n : Errors_1.ErrorCodes.APPLICATION_ERROR,\n message: error.message,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n };\n RequestResponseResponderStream.prototype.onNext = function (payload, isCompletion) {\n var e_2, _a;\n if (this.done) {\n return;\n }\n this.done = true;\n // TODO: add payload size validation\n if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, true)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT | Frames_1.Flags.COMPLETE | (payload.metadata ? Frames_1.Flags.METADATA : 0),\n data: payload.data,\n metadata: payload.metadata,\n streamId: this.streamId,\n });\n }\n this.stream.disconnect(this);\n };\n RequestResponseResponderStream.prototype.onComplete = function () {\n if (this.done) {\n return;\n }\n this.done = true;\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.COMPLETE,\n streamId: this.streamId,\n data: null,\n metadata: null,\n });\n this.stream.disconnect(this);\n };\n RequestResponseResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.done) {\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: this.streamId,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n extendedType: extendedType,\n extendedContent: content,\n });\n };\n RequestResponseResponderStream.prototype.close = function (error) {\n var _a;\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n Reassembler.cancel(this);\n (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n };\n return RequestResponseResponderStream;\n}());\nexports.RequestResponseResponderStream = RequestResponseResponderStream;\n//# sourceMappingURL=RequestResponseStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestStreamResponderStream = exports.RequestStreamRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestStreamRequesterStream = /** @class */ (function () {\n function RequestStreamRequesterStream(payload, receiver, fragmentSize, initialRequestN, leaseManager) {\n this.payload = payload;\n this.receiver = receiver;\n this.fragmentSize = fragmentSize;\n this.initialRequestN = initialRequestN;\n this.leaseManager = leaseManager;\n this.streamType = Frames_1.FrameTypes.REQUEST_STREAM;\n // TODO: add payload size validation\n }\n RequestStreamRequesterStream.prototype.handleReady = function (streamId, stream) {\n var e_1, _a;\n if (this.done) {\n return false;\n }\n this.streamId = streamId;\n this.stream = stream;\n stream.connect(this);\n if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_STREAM)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragmentWithRequestN)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_STREAM, this.initialRequestN)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_STREAM,\n data: this.payload.data,\n metadata: this.payload.metadata,\n requestN: this.initialRequestN,\n flags: this.payload.metadata !== undefined ? Frames_1.Flags.METADATA : 0,\n streamId: streamId,\n });\n }\n if (this.hasExtension) {\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: streamId,\n extendedContent: this.extendedContent,\n extendedType: this.extendedType,\n flags: this.flags,\n });\n }\n return true;\n };\n RequestStreamRequesterStream.prototype.handleReject = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n this.receiver.onError(error);\n };\n RequestStreamRequesterStream.prototype.handle = function (frame) {\n var errorMessage;\n var frameType = frame.type;\n switch (frameType) {\n case Frames_1.FrameTypes.PAYLOAD: {\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n var hasNext = Frames_1.Flags.hasNext(frame.flags);\n if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n if (hasComplete) {\n this.done = true;\n this.stream.disconnect(this);\n if (!hasNext) {\n // TODO: add validation no frame in reassembly\n this.receiver.onComplete();\n return;\n }\n }\n var payload = this.hasFragments\n ? Reassembler.reassemble(this, frame.data, frame.metadata)\n : {\n data: frame.data,\n metadata: frame.metadata,\n };\n this.receiver.onNext(payload, hasComplete);\n return;\n }\n if (!Reassembler.add(this, frame.data, frame.metadata)) {\n errorMessage = \"Unexpected fragment size\";\n break;\n }\n return;\n }\n case Frames_1.FrameTypes.ERROR: {\n this.done = true;\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n case Frames_1.FrameTypes.EXT: {\n if (this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n default: {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n }\n }\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n });\n this.stream.disconnect(this);\n // TODO: throw an exception if strict frame handling mode\n };\n RequestStreamRequesterStream.prototype.request = function (n) {\n if (this.done) {\n return;\n }\n if (!this.streamId) {\n this.initialRequestN += n;\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_N,\n flags: Frames_1.Flags.NONE,\n requestN: n,\n streamId: this.streamId,\n });\n };\n RequestStreamRequesterStream.prototype.cancel = function () {\n var _a;\n if (this.done) {\n return;\n }\n this.done = true;\n if (!this.streamId) {\n (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n };\n RequestStreamRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.done) {\n return;\n }\n if (!this.streamId) {\n this.hasExtension = true;\n this.extendedType = extendedType;\n this.extendedContent = content;\n this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n return;\n }\n this.stream.send({\n streamId: this.streamId,\n type: Frames_1.FrameTypes.EXT,\n extendedType: extendedType,\n extendedContent: content,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n });\n };\n RequestStreamRequesterStream.prototype.close = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n Reassembler.cancel(this);\n if (error) {\n this.receiver.onError(error);\n }\n else {\n this.receiver.onComplete();\n }\n };\n return RequestStreamRequesterStream;\n}());\nexports.RequestStreamRequesterStream = RequestStreamRequesterStream;\nvar RequestStreamResponderStream = /** @class */ (function () {\n function RequestStreamResponderStream(streamId, stream, fragmentSize, handler, frame) {\n this.streamId = streamId;\n this.stream = stream;\n this.fragmentSize = fragmentSize;\n this.handler = handler;\n this.streamType = Frames_1.FrameTypes.REQUEST_STREAM;\n stream.connect(this);\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n this.initialRequestN = frame.requestN;\n Reassembler.add(this, frame.data, frame.metadata);\n return;\n }\n var payload = {\n data: frame.data,\n metadata: frame.metadata,\n };\n try {\n this.receiver = handler(payload, frame.requestN, this);\n }\n catch (error) {\n this.onError(error);\n }\n }\n RequestStreamResponderStream.prototype.handle = function (frame) {\n var _a;\n var errorMessage;\n if (!this.receiver || this.hasFragments) {\n if (frame.type === Frames_1.FrameTypes.PAYLOAD) {\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected frame size\";\n }\n else {\n var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n try {\n this.receiver = this.handler(payload, this.initialRequestN, this);\n }\n catch (error) {\n this.onError(error);\n }\n return;\n }\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"] during reassembly\");\n }\n }\n else if (frame.type === Frames_1.FrameTypes.REQUEST_N) {\n this.receiver.request(frame.requestN);\n return;\n }\n else if (frame.type === Frames_1.FrameTypes.EXT) {\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n }\n this.done = true;\n Reassembler.cancel(this);\n (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n if (frame.type !== Frames_1.FrameTypes.CANCEL && frame.type !== Frames_1.FrameTypes.ERROR) {\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.CANCELED,\n message: errorMessage,\n streamId: this.streamId,\n });\n }\n this.stream.disconnect(this);\n // TODO: throws if strict\n };\n RequestStreamResponderStream.prototype.onError = function (error) {\n if (this.done) {\n console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n this.done = true;\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: error instanceof Errors_1.RSocketError\n ? error.code\n : Errors_1.ErrorCodes.APPLICATION_ERROR,\n message: error.message,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n };\n RequestStreamResponderStream.prototype.onNext = function (payload, isCompletion) {\n var e_2, _a;\n if (this.done) {\n return;\n }\n if (isCompletion) {\n this.done = true;\n }\n // TODO: add payload size validation\n if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isCompletion)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT |\n (isCompletion ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n data: payload.data,\n metadata: payload.metadata,\n streamId: this.streamId,\n });\n }\n if (isCompletion) {\n this.stream.disconnect(this);\n }\n };\n RequestStreamResponderStream.prototype.onComplete = function () {\n if (this.done) {\n return;\n }\n this.done = true;\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.COMPLETE,\n streamId: this.streamId,\n data: null,\n metadata: null,\n });\n this.stream.disconnect(this);\n };\n RequestStreamResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.done) {\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: this.streamId,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n extendedType: extendedType,\n extendedContent: content,\n });\n };\n RequestStreamResponderStream.prototype.close = function (error) {\n var _a;\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n Reassembler.cancel(this);\n (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n };\n return RequestStreamResponderStream;\n}());\nexports.RequestStreamResponderStream = RequestStreamResponderStream;\n//# sourceMappingURL=RequestStreamStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeepAliveSender = exports.KeepAliveHandler = exports.DefaultConnectionFrameHandler = exports.DefaultStreamRequestHandler = exports.LeaseHandler = exports.RSocketRequester = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar RequestChannelStream_1 = require(\"./RequestChannelStream\");\nvar RequestFnFStream_1 = require(\"./RequestFnFStream\");\nvar RequestResponseStream_1 = require(\"./RequestResponseStream\");\nvar RequestStreamStream_1 = require(\"./RequestStreamStream\");\nvar RSocketRequester = /** @class */ (function () {\n function RSocketRequester(connection, fragmentSize, leaseManager) {\n this.connection = connection;\n this.fragmentSize = fragmentSize;\n this.leaseManager = leaseManager;\n }\n RSocketRequester.prototype.fireAndForget = function (payload, responderStream) {\n var handler = new RequestFnFStream_1.RequestFnFRequesterStream(payload, responderStream, this.fragmentSize, this.leaseManager);\n if (this.leaseManager) {\n this.leaseManager.requestLease(handler);\n }\n else {\n this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n }\n return handler;\n };\n RSocketRequester.prototype.requestResponse = function (payload, responderStream) {\n var handler = new RequestResponseStream_1.RequestResponseRequesterStream(payload, responderStream, this.fragmentSize, this.leaseManager);\n if (this.leaseManager) {\n this.leaseManager.requestLease(handler);\n }\n else {\n this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n }\n return handler;\n };\n RSocketRequester.prototype.requestStream = function (payload, initialRequestN, responderStream) {\n var handler = new RequestStreamStream_1.RequestStreamRequesterStream(payload, responderStream, this.fragmentSize, initialRequestN, this.leaseManager);\n if (this.leaseManager) {\n this.leaseManager.requestLease(handler);\n }\n else {\n this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n }\n return handler;\n };\n RSocketRequester.prototype.requestChannel = function (payload, initialRequestN, isCompleted, responderStream) {\n var handler = new RequestChannelStream_1.RequestChannelRequesterStream(payload, isCompleted, responderStream, this.fragmentSize, initialRequestN, this.leaseManager);\n if (this.leaseManager) {\n this.leaseManager.requestLease(handler);\n }\n else {\n this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n }\n return handler;\n };\n RSocketRequester.prototype.metadataPush = function (metadata, responderStream) {\n throw new Error(\"Method not implemented.\");\n };\n RSocketRequester.prototype.close = function (error) {\n this.connection.close(error);\n };\n RSocketRequester.prototype.onClose = function (callback) {\n this.connection.onClose(callback);\n };\n return RSocketRequester;\n}());\nexports.RSocketRequester = RSocketRequester;\nvar LeaseHandler = /** @class */ (function () {\n function LeaseHandler(maxPendingRequests, multiplexer) {\n this.maxPendingRequests = maxPendingRequests;\n this.multiplexer = multiplexer;\n this.pendingRequests = [];\n this.expirationTime = 0;\n this.availableLease = 0;\n }\n LeaseHandler.prototype.handle = function (frame) {\n this.expirationTime = frame.ttl + Date.now();\n this.availableLease = frame.requestCount;\n while (this.availableLease > 0 && this.pendingRequests.length > 0) {\n var handler = this.pendingRequests.shift();\n this.availableLease--;\n this.multiplexer.createRequestStream(handler);\n }\n };\n LeaseHandler.prototype.requestLease = function (handler) {\n var availableLease = this.availableLease;\n if (availableLease > 0 && Date.now() < this.expirationTime) {\n this.availableLease = availableLease - 1;\n this.multiplexer.createRequestStream(handler);\n return;\n }\n if (this.pendingRequests.length >= this.maxPendingRequests) {\n handler.handleReject(new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED, \"No available lease given\"));\n return;\n }\n this.pendingRequests.push(handler);\n };\n LeaseHandler.prototype.cancelRequest = function (handler) {\n var index = this.pendingRequests.indexOf(handler);\n if (index > -1) {\n this.pendingRequests.splice(index, 1);\n }\n };\n return LeaseHandler;\n}());\nexports.LeaseHandler = LeaseHandler;\nvar DefaultStreamRequestHandler = /** @class */ (function () {\n function DefaultStreamRequestHandler(rsocket, fragmentSize) {\n this.rsocket = rsocket;\n this.fragmentSize = fragmentSize;\n }\n DefaultStreamRequestHandler.prototype.handle = function (frame, stream) {\n switch (frame.type) {\n case Frames_1.FrameTypes.REQUEST_FNF:\n if (this.rsocket.fireAndForget) {\n new RequestFnFStream_1.RequestFnfResponderStream(frame.streamId, stream, this.rsocket.fireAndForget.bind(this.rsocket), frame);\n }\n return;\n case Frames_1.FrameTypes.REQUEST_RESPONSE:\n if (this.rsocket.requestResponse) {\n new RequestResponseStream_1.RequestResponseResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestResponse.bind(this.rsocket), frame);\n return;\n }\n this.rejectRequest(frame.streamId, stream);\n return;\n case Frames_1.FrameTypes.REQUEST_STREAM:\n if (this.rsocket.requestStream) {\n new RequestStreamStream_1.RequestStreamResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestStream.bind(this.rsocket), frame);\n return;\n }\n this.rejectRequest(frame.streamId, stream);\n return;\n case Frames_1.FrameTypes.REQUEST_CHANNEL:\n if (this.rsocket.requestChannel) {\n new RequestChannelStream_1.RequestChannelResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestChannel.bind(this.rsocket), frame);\n return;\n }\n this.rejectRequest(frame.streamId, stream);\n return;\n }\n };\n DefaultStreamRequestHandler.prototype.rejectRequest = function (streamId, stream) {\n stream.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: streamId,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.REJECTED,\n message: \"No available handler found\",\n });\n };\n DefaultStreamRequestHandler.prototype.close = function () { };\n return DefaultStreamRequestHandler;\n}());\nexports.DefaultStreamRequestHandler = DefaultStreamRequestHandler;\nvar DefaultConnectionFrameHandler = /** @class */ (function () {\n function DefaultConnectionFrameHandler(connection, keepAliveHandler, keepAliveSender, leaseHandler, rsocket) {\n this.connection = connection;\n this.keepAliveHandler = keepAliveHandler;\n this.keepAliveSender = keepAliveSender;\n this.leaseHandler = leaseHandler;\n this.rsocket = rsocket;\n }\n DefaultConnectionFrameHandler.prototype.handle = function (frame) {\n switch (frame.type) {\n case Frames_1.FrameTypes.KEEPALIVE:\n this.keepAliveHandler.handle(frame);\n return;\n case Frames_1.FrameTypes.LEASE:\n if (this.leaseHandler) {\n this.leaseHandler.handle(frame);\n return;\n }\n // TODO throw exception and close connection\n return;\n case Frames_1.FrameTypes.ERROR:\n // TODO: add code validation\n this.connection.close(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n case Frames_1.FrameTypes.METADATA_PUSH:\n if (this.rsocket.metadataPush) {\n // this.rsocket.metadataPush()\n }\n return;\n default:\n this.connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n message: \"Received unknown frame type\",\n code: Errors_1.ErrorCodes.CONNECTION_ERROR,\n });\n // TODO: throw an exception and close connection\n }\n };\n DefaultConnectionFrameHandler.prototype.pause = function () {\n var _a;\n this.keepAliveHandler.pause();\n (_a = this.keepAliveSender) === null || _a === void 0 ? void 0 : _a.pause();\n };\n DefaultConnectionFrameHandler.prototype.resume = function () {\n var _a;\n this.keepAliveHandler.start();\n (_a = this.keepAliveSender) === null || _a === void 0 ? void 0 : _a.start();\n };\n DefaultConnectionFrameHandler.prototype.close = function (error) {\n var _a;\n this.keepAliveHandler.close();\n (_a = this.rsocket.close) === null || _a === void 0 ? void 0 : _a.call(this.rsocket, error);\n };\n return DefaultConnectionFrameHandler;\n}());\nexports.DefaultConnectionFrameHandler = DefaultConnectionFrameHandler;\nvar KeepAliveHandlerStates;\n(function (KeepAliveHandlerStates) {\n KeepAliveHandlerStates[KeepAliveHandlerStates[\"Paused\"] = 0] = \"Paused\";\n KeepAliveHandlerStates[KeepAliveHandlerStates[\"Running\"] = 1] = \"Running\";\n KeepAliveHandlerStates[KeepAliveHandlerStates[\"Closed\"] = 2] = \"Closed\";\n})(KeepAliveHandlerStates || (KeepAliveHandlerStates = {}));\nvar KeepAliveHandler = /** @class */ (function () {\n function KeepAliveHandler(connection, keepAliveTimeoutDuration) {\n this.connection = connection;\n this.keepAliveTimeoutDuration = keepAliveTimeoutDuration;\n this.state = KeepAliveHandlerStates.Paused;\n this.outbound = connection.multiplexerDemultiplexer.connectionOutbound;\n }\n KeepAliveHandler.prototype.handle = function (frame) {\n this.keepAliveLastReceivedMillis = Date.now();\n if (Frames_1.Flags.hasRespond(frame.flags)) {\n this.outbound.send({\n type: Frames_1.FrameTypes.KEEPALIVE,\n streamId: 0,\n data: frame.data,\n flags: frame.flags ^ Frames_1.Flags.RESPOND,\n lastReceivedPosition: 0,\n });\n }\n };\n KeepAliveHandler.prototype.start = function () {\n if (this.state !== KeepAliveHandlerStates.Paused) {\n return;\n }\n this.keepAliveLastReceivedMillis = Date.now();\n this.state = KeepAliveHandlerStates.Running;\n this.activeTimeout = setTimeout(this.timeoutCheck.bind(this), this.keepAliveTimeoutDuration);\n };\n KeepAliveHandler.prototype.pause = function () {\n if (this.state !== KeepAliveHandlerStates.Running) {\n return;\n }\n this.state = KeepAliveHandlerStates.Paused;\n clearTimeout(this.activeTimeout);\n };\n KeepAliveHandler.prototype.close = function () {\n this.state = KeepAliveHandlerStates.Closed;\n clearTimeout(this.activeTimeout);\n };\n KeepAliveHandler.prototype.timeoutCheck = function () {\n var now = Date.now();\n var noKeepAliveDuration = now - this.keepAliveLastReceivedMillis;\n if (noKeepAliveDuration >= this.keepAliveTimeoutDuration) {\n this.connection.close(new Error(\"No keep-alive acks for \".concat(this.keepAliveTimeoutDuration, \" millis\")));\n }\n else {\n this.activeTimeout = setTimeout(this.timeoutCheck.bind(this), Math.max(100, this.keepAliveTimeoutDuration - noKeepAliveDuration));\n }\n };\n return KeepAliveHandler;\n}());\nexports.KeepAliveHandler = KeepAliveHandler;\nvar KeepAliveSenderStates;\n(function (KeepAliveSenderStates) {\n KeepAliveSenderStates[KeepAliveSenderStates[\"Paused\"] = 0] = \"Paused\";\n KeepAliveSenderStates[KeepAliveSenderStates[\"Running\"] = 1] = \"Running\";\n KeepAliveSenderStates[KeepAliveSenderStates[\"Closed\"] = 2] = \"Closed\";\n})(KeepAliveSenderStates || (KeepAliveSenderStates = {}));\nvar KeepAliveSender = /** @class */ (function () {\n function KeepAliveSender(outbound, keepAlivePeriodDuration) {\n this.outbound = outbound;\n this.keepAlivePeriodDuration = keepAlivePeriodDuration;\n this.state = KeepAliveSenderStates.Paused;\n }\n KeepAliveSender.prototype.sendKeepAlive = function () {\n this.outbound.send({\n type: Frames_1.FrameTypes.KEEPALIVE,\n streamId: 0,\n data: undefined,\n flags: Frames_1.Flags.RESPOND,\n lastReceivedPosition: 0,\n });\n };\n KeepAliveSender.prototype.start = function () {\n if (this.state !== KeepAliveSenderStates.Paused) {\n return;\n }\n this.state = KeepAliveSenderStates.Running;\n this.activeInterval = setInterval(this.sendKeepAlive.bind(this), this.keepAlivePeriodDuration);\n };\n KeepAliveSender.prototype.pause = function () {\n if (this.state !== KeepAliveSenderStates.Running) {\n return;\n }\n this.state = KeepAliveSenderStates.Paused;\n clearInterval(this.activeInterval);\n };\n KeepAliveSender.prototype.close = function () {\n this.state = KeepAliveSenderStates.Closed;\n clearInterval(this.activeInterval);\n };\n return KeepAliveSender;\n}());\nexports.KeepAliveSender = KeepAliveSender;\n//# sourceMappingURL=RSocketSupport.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FrameStore = void 0;\nvar _1 = require(\".\");\nvar Codecs_1 = require(\"./Codecs\");\nvar FrameStore = /** @class */ (function () {\n function FrameStore() {\n this.storedFrames = [];\n this._lastReceivedFramePosition = 0;\n this._firstAvailableFramePosition = 0;\n this._lastSentFramePosition = 0;\n }\n Object.defineProperty(FrameStore.prototype, \"lastReceivedFramePosition\", {\n get: function () {\n return this._lastReceivedFramePosition;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FrameStore.prototype, \"firstAvailableFramePosition\", {\n get: function () {\n return this._firstAvailableFramePosition;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FrameStore.prototype, \"lastSentFramePosition\", {\n get: function () {\n return this._lastSentFramePosition;\n },\n enumerable: false,\n configurable: true\n });\n FrameStore.prototype.store = function (frame) {\n this._lastSentFramePosition += (0, Codecs_1.sizeOfFrame)(frame);\n this.storedFrames.push(frame);\n };\n FrameStore.prototype.record = function (frame) {\n this._lastReceivedFramePosition += (0, Codecs_1.sizeOfFrame)(frame);\n };\n FrameStore.prototype.dropTo = function (lastReceivedPosition) {\n var bytesToDrop = lastReceivedPosition - this._firstAvailableFramePosition;\n while (bytesToDrop > 0 && this.storedFrames.length > 0) {\n var storedFrame = this.storedFrames.shift();\n bytesToDrop -= (0, Codecs_1.sizeOfFrame)(storedFrame);\n }\n if (bytesToDrop !== 0) {\n throw new _1.RSocketError(_1.ErrorCodes.CONNECTION_ERROR, \"State inconsistency. Expected bytes to drop \".concat(lastReceivedPosition - this._firstAvailableFramePosition, \" but actual \").concat(bytesToDrop));\n }\n this._firstAvailableFramePosition = lastReceivedPosition;\n };\n FrameStore.prototype.drain = function (consumer) {\n var e_1, _a;\n try {\n for (var _b = __values(this.storedFrames), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n consumer(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n return FrameStore;\n}());\nexports.FrameStore = FrameStore;\n//# sourceMappingURL=Resume.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RSocketConnector = void 0;\nvar ClientServerMultiplexerDemultiplexer_1 = require(\"./ClientServerMultiplexerDemultiplexer\");\nvar Frames_1 = require(\"./Frames\");\nvar RSocketSupport_1 = require(\"./RSocketSupport\");\nvar Resume_1 = require(\"./Resume\");\nvar RSocketConnector = /** @class */ (function () {\n function RSocketConnector(config) {\n this.config = config;\n }\n RSocketConnector.prototype.connect = function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;\n return __awaiter(this, void 0, void 0, function () {\n var config, setupFrame, connection, keepAliveSender, keepAliveHandler, leaseHandler, responder, connectionFrameHandler, streamsHandler;\n var _this = this;\n return __generator(this, function (_w) {\n switch (_w.label) {\n case 0:\n config = this.config;\n setupFrame = {\n type: Frames_1.FrameTypes.SETUP,\n dataMimeType: (_b = (_a = config.setup) === null || _a === void 0 ? void 0 : _a.dataMimeType) !== null && _b !== void 0 ? _b : \"application/octet-stream\",\n metadataMimeType: (_d = (_c = config.setup) === null || _c === void 0 ? void 0 : _c.metadataMimeType) !== null && _d !== void 0 ? _d : \"application/octet-stream\",\n keepAlive: (_f = (_e = config.setup) === null || _e === void 0 ? void 0 : _e.keepAlive) !== null && _f !== void 0 ? _f : 60000,\n lifetime: (_h = (_g = config.setup) === null || _g === void 0 ? void 0 : _g.lifetime) !== null && _h !== void 0 ? _h : 300000,\n metadata: (_k = (_j = config.setup) === null || _j === void 0 ? void 0 : _j.payload) === null || _k === void 0 ? void 0 : _k.metadata,\n data: (_m = (_l = config.setup) === null || _l === void 0 ? void 0 : _l.payload) === null || _m === void 0 ? void 0 : _m.data,\n resumeToken: (_p = (_o = config.resume) === null || _o === void 0 ? void 0 : _o.tokenGenerator()) !== null && _p !== void 0 ? _p : null,\n streamId: 0,\n majorVersion: 1,\n minorVersion: 0,\n flags: (((_r = (_q = config.setup) === null || _q === void 0 ? void 0 : _q.payload) === null || _r === void 0 ? void 0 : _r.metadata) ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n (config.lease ? Frames_1.Flags.LEASE : Frames_1.Flags.NONE) |\n (config.resume ? Frames_1.Flags.RESUME_ENABLE : Frames_1.Flags.NONE),\n };\n return [4 /*yield*/, config.transport.connect(function (outbound) {\n return config.resume\n ? new ClientServerMultiplexerDemultiplexer_1.ResumableClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(-1), outbound, outbound, new Resume_1.FrameStore(), // TODO: add size control\n setupFrame.resumeToken.toString(), function (self, frameStore) { return __awaiter(_this, void 0, void 0, function () {\n var multiplexerDemultiplexerProvider, reconnectionAttempts, reconnector;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n multiplexerDemultiplexerProvider = function (outbound) {\n outbound.send({\n type: Frames_1.FrameTypes.RESUME,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n clientPosition: frameStore.firstAvailableFramePosition,\n serverPosition: frameStore.lastReceivedFramePosition,\n majorVersion: setupFrame.minorVersion,\n minorVersion: setupFrame.majorVersion,\n resumeToken: setupFrame.resumeToken,\n });\n return new ClientServerMultiplexerDemultiplexer_1.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(outbound, outbound, self);\n };\n reconnectionAttempts = -1;\n reconnector = function () {\n reconnectionAttempts++;\n return config.resume\n .reconnectFunction(reconnectionAttempts)\n .then(function () {\n return config.transport\n .connect(multiplexerDemultiplexerProvider)\n .catch(reconnector);\n });\n };\n return [4 /*yield*/, reconnector()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); })\n : new ClientServerMultiplexerDemultiplexer_1.ClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(-1), outbound, outbound);\n })];\n case 1:\n connection = _w.sent();\n keepAliveSender = new RSocketSupport_1.KeepAliveSender(connection.multiplexerDemultiplexer.connectionOutbound, setupFrame.keepAlive);\n keepAliveHandler = new RSocketSupport_1.KeepAliveHandler(connection, setupFrame.lifetime);\n leaseHandler = config.lease\n ? new RSocketSupport_1.LeaseHandler((_s = config.lease.maxPendingRequests) !== null && _s !== void 0 ? _s : 256, connection.multiplexerDemultiplexer)\n : undefined;\n responder = (_t = config.responder) !== null && _t !== void 0 ? _t : {};\n connectionFrameHandler = new RSocketSupport_1.DefaultConnectionFrameHandler(connection, keepAliveHandler, keepAliveSender, leaseHandler, responder);\n streamsHandler = new RSocketSupport_1.DefaultStreamRequestHandler(responder, 0);\n connection.onClose(function (e) {\n keepAliveSender.close();\n keepAliveHandler.close();\n connectionFrameHandler.close(e);\n });\n connection.multiplexerDemultiplexer.connectionInbound(connectionFrameHandler);\n connection.multiplexerDemultiplexer.handleRequestStream(streamsHandler);\n connection.multiplexerDemultiplexer.connectionOutbound.send(setupFrame);\n keepAliveHandler.start();\n keepAliveSender.start();\n return [2 /*return*/, new RSocketSupport_1.RSocketRequester(connection, (_v = (_u = config.fragmentation) === null || _u === void 0 ? void 0 : _u.maxOutboundFragmentSize) !== null && _v !== void 0 ? _v : 0, leaseHandler)];\n }\n });\n });\n };\n return RSocketConnector;\n}());\nexports.RSocketConnector = RSocketConnector;\n//# sourceMappingURL=RSocketConnector.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RSocketServer = void 0;\nvar ClientServerMultiplexerDemultiplexer_1 = require(\"./ClientServerMultiplexerDemultiplexer\");\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar RSocketSupport_1 = require(\"./RSocketSupport\");\nvar Resume_1 = require(\"./Resume\");\nvar RSocketServer = /** @class */ (function () {\n function RSocketServer(config) {\n var _a, _b;\n this.acceptor = config.acceptor;\n this.transport = config.transport;\n this.lease = config.lease;\n this.serverSideKeepAlive = config.serverSideKeepAlive;\n this.sessionStore = config.resume ? {} : undefined;\n this.sessionTimeout = (_b = (_a = config.resume) === null || _a === void 0 ? void 0 : _a.sessionTimeout) !== null && _b !== void 0 ? _b : undefined;\n }\n RSocketServer.prototype.bind = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.transport.bind(function (frame, connection) { return __awaiter(_this, void 0, void 0, function () {\n var _a, error, error, leaseHandler, requester, responder, keepAliveHandler_1, keepAliveSender_1, connectionFrameHandler_1, streamsHandler, e_1;\n var _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = frame.type;\n switch (_a) {\n case Frames_1.FrameTypes.SETUP: return [3 /*break*/, 1];\n case Frames_1.FrameTypes.RESUME: return [3 /*break*/, 5];\n }\n return [3 /*break*/, 6];\n case 1:\n _f.trys.push([1, 3, , 4]);\n if (this.lease && !Frames_1.Flags.hasLease(frame.flags)) {\n error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"Lease has to be enabled\");\n connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n code: error.code,\n message: error.message,\n });\n connection.close(error);\n return [2 /*return*/];\n }\n if (Frames_1.Flags.hasLease(frame.flags) && !this.lease) {\n error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"Lease has to be disabled\");\n connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n code: error.code,\n message: error.message,\n });\n connection.close(error);\n return [2 /*return*/];\n }\n leaseHandler = Frames_1.Flags.hasLease(frame.flags)\n ? new RSocketSupport_1.LeaseHandler((_b = this.lease.maxPendingRequests) !== null && _b !== void 0 ? _b : 256, connection.multiplexerDemultiplexer)\n : undefined;\n requester = new RSocketSupport_1.RSocketRequester(connection, (_d = (_c = this.fragmentation) === null || _c === void 0 ? void 0 : _c.maxOutboundFragmentSize) !== null && _d !== void 0 ? _d : 0, leaseHandler);\n return [4 /*yield*/, this.acceptor.accept({\n data: frame.data,\n dataMimeType: frame.dataMimeType,\n metadata: frame.metadata,\n metadataMimeType: frame.metadataMimeType,\n flags: frame.flags,\n keepAliveMaxLifetime: frame.lifetime,\n keepAliveInterval: frame.keepAlive,\n resumeToken: frame.resumeToken,\n }, requester)];\n case 2:\n responder = _f.sent();\n keepAliveHandler_1 = new RSocketSupport_1.KeepAliveHandler(connection, frame.lifetime);\n keepAliveSender_1 = this.serverSideKeepAlive\n ? new RSocketSupport_1.KeepAliveSender(connection.multiplexerDemultiplexer.connectionOutbound, frame.keepAlive)\n : undefined;\n connectionFrameHandler_1 = new RSocketSupport_1.DefaultConnectionFrameHandler(connection, keepAliveHandler_1, keepAliveSender_1, leaseHandler, responder);\n streamsHandler = new RSocketSupport_1.DefaultStreamRequestHandler(responder, 0);\n connection.onClose(function (e) {\n keepAliveSender_1 === null || keepAliveSender_1 === void 0 ? void 0 : keepAliveSender_1.close();\n keepAliveHandler_1.close();\n connectionFrameHandler_1.close(e);\n });\n connection.multiplexerDemultiplexer.connectionInbound(connectionFrameHandler_1);\n connection.multiplexerDemultiplexer.handleRequestStream(streamsHandler);\n keepAliveHandler_1.start();\n keepAliveSender_1 === null || keepAliveSender_1 === void 0 ? void 0 : keepAliveSender_1.start();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _f.sent();\n connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n code: Errors_1.ErrorCodes.REJECTED_SETUP,\n message: (_e = e_1.message) !== null && _e !== void 0 ? _e : \"\",\n flags: Frames_1.Flags.NONE,\n });\n connection.close(e_1 instanceof Errors_1.RSocketError\n ? e_1\n : new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, e_1.message));\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n case 5:\n {\n // frame should be handled earlier\n return [2 /*return*/];\n }\n _f.label = 6;\n case 6:\n {\n connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n code: Errors_1.ErrorCodes.UNSUPPORTED_SETUP,\n message: \"Unsupported setup\",\n flags: Frames_1.Flags.NONE,\n });\n connection.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.UNSUPPORTED_SETUP));\n }\n _f.label = 7;\n case 7: return [2 /*return*/];\n }\n });\n }); }, function (frame, outbound) {\n if (frame.type === Frames_1.FrameTypes.RESUME) {\n if (_this.sessionStore) {\n var multiplexerDemultiplexer = _this.sessionStore[frame.resumeToken.toString()];\n if (!multiplexerDemultiplexer) {\n outbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n code: Errors_1.ErrorCodes.REJECTED_RESUME,\n message: \"No session found for the given resume token\",\n flags: Frames_1.Flags.NONE,\n });\n outbound.close();\n return;\n }\n multiplexerDemultiplexer.resume(frame, outbound, outbound);\n return multiplexerDemultiplexer;\n }\n outbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n code: Errors_1.ErrorCodes.REJECTED_RESUME,\n message: \"Resume is not enabled\",\n flags: Frames_1.Flags.NONE,\n });\n outbound.close();\n return;\n }\n else if (frame.type === Frames_1.FrameTypes.SETUP) {\n if (Frames_1.Flags.hasResume(frame.flags)) {\n if (!_this.sessionStore) {\n var error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"No resume support\");\n outbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n code: error.code,\n message: error.message,\n });\n outbound.close(error);\n return;\n }\n var multiplexerDumiltiplexer = new ClientServerMultiplexerDemultiplexer_1.ResumableClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(0), outbound, outbound, new Resume_1.FrameStore(), // TODO: add size parameter\n frame.resumeToken.toString(), _this.sessionStore, _this.sessionTimeout);\n _this.sessionStore[frame.resumeToken.toString()] =\n multiplexerDumiltiplexer;\n return multiplexerDumiltiplexer;\n }\n }\n return new ClientServerMultiplexerDemultiplexer_1.ClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(0), outbound, outbound);\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n return RSocketServer;\n}());\nexports.RSocketServer = RSocketServer;\n//# sourceMappingURL=RSocketServer.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Transport.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Codecs\"), exports);\n__exportStar(require(\"./Common\"), exports);\n__exportStar(require(\"./Deferred\"), exports);\n__exportStar(require(\"./Errors\"), exports);\n__exportStar(require(\"./Frames\"), exports);\n__exportStar(require(\"./RSocket\"), exports);\n__exportStar(require(\"./RSocketConnector\"), exports);\n__exportStar(require(\"./RSocketServer\"), exports);\n__exportStar(require(\"./Transport\"), exports);\n//# sourceMappingURL=index.js.map","import Logger from 'js-logger';\nimport { BaseObserver } from './BaseObserver.js';\nexport const DEFAULT_PRESSURE_LIMITS = {\n highWater: 10,\n lowWater: 0\n};\n/**\n * A very basic implementation of a data stream with backpressure support which does not use\n * native JS streams or async iterators.\n * This is handy for environments such as React Native which need polyfills for the above.\n */\nexport class DataStream extends BaseObserver {\n options;\n dataQueue;\n isClosed;\n processingPromise;\n notifyDataAdded;\n logger;\n mapLine;\n constructor(options) {\n super();\n this.options = options;\n this.processingPromise = null;\n this.isClosed = false;\n this.dataQueue = [];\n this.mapLine = options?.mapLine ?? ((line) => line);\n this.logger = options?.logger ?? Logger.get('DataStream');\n if (options?.closeOnError) {\n const l = this.registerListener({\n error: (ex) => {\n l?.();\n this.close();\n }\n });\n }\n }\n get highWatermark() {\n return this.options?.pressure?.highWaterMark ?? DEFAULT_PRESSURE_LIMITS.highWater;\n }\n get lowWatermark() {\n return this.options?.pressure?.lowWaterMark ?? DEFAULT_PRESSURE_LIMITS.lowWater;\n }\n get closed() {\n return this.isClosed;\n }\n async close() {\n this.isClosed = true;\n await this.processingPromise;\n this.iterateListeners((l) => l.closed?.());\n // Discard any data in the queue\n this.dataQueue = [];\n this.listeners.clear();\n }\n /**\n * Enqueues data for the consumers to read\n */\n enqueueData(data) {\n if (this.isClosed) {\n throw new Error('Cannot enqueue data into closed stream.');\n }\n this.dataQueue.push(data);\n this.notifyDataAdded?.();\n this.processQueue();\n }\n /**\n * Reads data once from the data stream\n * @returns a Data payload or Null if the stream closed.\n */\n async read() {\n if (this.closed) {\n return null;\n }\n return new Promise((resolve, reject) => {\n const l = this.registerListener({\n data: async (data) => {\n resolve(data);\n // Remove the listener\n l?.();\n },\n closed: () => {\n resolve(null);\n l?.();\n },\n error: (ex) => {\n reject(ex);\n l?.();\n }\n });\n this.processQueue();\n });\n }\n /**\n * Executes a callback for each data item in the stream\n */\n forEach(callback) {\n if (this.dataQueue.length <= this.lowWatermark) {\n this.iterateAsyncErrored(async (l) => l.lowWater?.());\n }\n return this.registerListener({\n data: callback\n });\n }\n processQueue() {\n if (this.processingPromise) {\n return;\n }\n const promise = (this.processingPromise = this._processQueue());\n promise.finally(() => {\n return (this.processingPromise = null);\n });\n return promise;\n }\n hasDataReader() {\n return Array.from(this.listeners.values()).some((l) => !!l.data);\n }\n async _processQueue() {\n /**\n * Allow listeners to mutate the queue before processing.\n * This allows for operations such as dropping or compressing data\n * on high water or requesting more data on low water.\n */\n if (this.dataQueue.length >= this.highWatermark) {\n await this.iterateAsyncErrored(async (l) => l.highWater?.());\n }\n if (this.isClosed || !this.hasDataReader()) {\n return;\n }\n if (this.dataQueue.length) {\n const data = this.dataQueue.shift();\n const mapped = this.mapLine(data);\n await this.iterateAsyncErrored(async (l) => l.data?.(mapped));\n }\n if (this.dataQueue.length <= this.lowWatermark) {\n const dataAdded = new Promise((resolve) => {\n this.notifyDataAdded = resolve;\n });\n await Promise.race([this.iterateAsyncErrored(async (l) => l.lowWater?.()), dataAdded]);\n this.notifyDataAdded = null;\n }\n if (this.dataQueue.length > 0) {\n // Next tick\n setTimeout(() => this.processQueue());\n }\n }\n async iterateAsyncErrored(cb) {\n // Important: We need to copy the listeners, as calling a listener could result in adding another\n // listener, resulting in infinite loops.\n const listeners = Array.from(this.listeners.values());\n for (let i of listeners) {\n try {\n await cb(i);\n }\n catch (ex) {\n this.logger.error(ex);\n this.iterateListeners((l) => l.error?.(ex));\n }\n }\n }\n}\n//# sourceMappingURL=DataStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketDuplexConnection = void 0;\nvar rsocket_core_1 = require(\"rsocket-core\");\nvar WebsocketDuplexConnection = /** @class */ (function (_super) {\n __extends(WebsocketDuplexConnection, _super);\n function WebsocketDuplexConnection(websocket, deserializer, multiplexerDemultiplexerFactory) {\n var _this = _super.call(this) || this;\n _this.websocket = websocket;\n _this.deserializer = deserializer;\n _this.handleClosed = function (e) {\n _this.close(new Error(e.reason || \"WebsocketDuplexConnection: Socket closed unexpectedly.\"));\n };\n _this.handleError = function (e) {\n _this.close(e.error);\n };\n _this.handleMessage = function (message) {\n try {\n var buffer = Buffer.from(message.data);\n var frame = _this.deserializer.deserializeFrame(buffer);\n _this.multiplexerDemultiplexer.handle(frame);\n }\n catch (error) {\n _this.close(error);\n }\n };\n websocket.addEventListener(\"close\", _this.handleClosed);\n websocket.addEventListener(\"error\", _this.handleError);\n websocket.addEventListener(\"message\", _this.handleMessage);\n _this.multiplexerDemultiplexer = multiplexerDemultiplexerFactory(_this);\n return _this;\n }\n Object.defineProperty(WebsocketDuplexConnection.prototype, \"availability\", {\n get: function () {\n return this.done ? 0 : 1;\n },\n enumerable: false,\n configurable: true\n });\n WebsocketDuplexConnection.prototype.close = function (error) {\n if (this.done) {\n _super.prototype.close.call(this, error);\n return;\n }\n this.websocket.removeEventListener(\"close\", this.handleClosed);\n this.websocket.removeEventListener(\"error\", this.handleError);\n this.websocket.removeEventListener(\"message\", this.handleMessage);\n this.websocket.close();\n delete this.websocket;\n _super.prototype.close.call(this, error);\n };\n WebsocketDuplexConnection.prototype.send = function (frame) {\n if (this.done) {\n return;\n }\n var buffer = (0, rsocket_core_1.serializeFrame)(frame);\n this.websocket.send(buffer);\n };\n return WebsocketDuplexConnection;\n}(rsocket_core_1.Deferred));\nexports.WebsocketDuplexConnection = WebsocketDuplexConnection;\n//# sourceMappingURL=WebsocketDuplexConnection.js.map","/**\n * Adapted from rsocket-websocket-client\n * https://github.com/rsocket/rsocket-js/blob/e224cf379e747c4f1ddc4f2fa111854626cc8575/packages/rsocket-websocket-client/src/WebsocketClientTransport.ts#L17\n * This adds additional error handling for React Native iOS.\n * This particularly adds a close listener to handle cases where the WebSocket\n * connection closes immediately after opening without emitting an error.\n */\nimport { Deserializer } from 'rsocket-core';\nimport { WebsocketDuplexConnection } from 'rsocket-websocket-client/dist/WebsocketDuplexConnection.js';\nexport class WebsocketClientTransport {\n url;\n factory;\n constructor(options) {\n this.url = options.url;\n this.factory = options.wsCreator ?? ((url) => new WebSocket(url));\n }\n connect(multiplexerDemultiplexerFactory) {\n return new Promise((resolve, reject) => {\n const websocket = this.factory(this.url);\n websocket.binaryType = 'arraybuffer';\n let removeListeners;\n const openListener = () => {\n removeListeners();\n resolve(new WebsocketDuplexConnection(websocket, new Deserializer(), multiplexerDemultiplexerFactory));\n };\n const errorListener = (ev) => {\n removeListeners();\n // We add a default error in that case.\n if (ev.error != null) {\n // undici typically provides an error object\n reject(ev.error);\n }\n else if (ev.message != null) {\n // React Native typically does not provide an error object, but does provide a message\n reject(new Error(`Failed to create websocket connection: ${ev.message}`));\n }\n else {\n // Browsers often provide no details at all\n reject(new Error(`Failed to create websocket connection to ${this.url}`));\n }\n };\n /**\n * In some cases, such as React Native iOS, the WebSocket connection may close immediately after opening\n * without and error. In such cases, we need to handle the close event to reject the promise.\n */\n const closeListener = () => {\n removeListeners();\n reject(new Error('WebSocket connection closed while opening'));\n };\n removeListeners = () => {\n websocket.removeEventListener('open', openListener);\n websocket.removeEventListener('error', errorListener);\n websocket.removeEventListener('close', closeListener);\n };\n websocket.addEventListener('open', openListener);\n websocket.addEventListener('error', errorListener);\n websocket.addEventListener('close', closeListener);\n });\n }\n}\n//# sourceMappingURL=WebsocketClientTransport.js.map","import Logger from 'js-logger';\nimport { RSocketConnector } from 'rsocket-core';\nimport PACKAGE from '../../../../package.json' with { type: 'json' };\nimport { AbortOperation } from '../../../utils/AbortOperation.js';\nimport { DataStream } from '../../../utils/DataStream.js';\nimport { WebsocketClientTransport } from './WebsocketClientTransport.js';\nconst POWERSYNC_TRAILING_SLASH_MATCH = /\\/+$/;\nconst POWERSYNC_JS_VERSION = PACKAGE.version;\nconst SYNC_QUEUE_REQUEST_LOW_WATER = 5;\n// Keep alive message is sent every period\nconst KEEP_ALIVE_MS = 20_000;\n// One message of any type must be received in this period.\nconst SOCKET_TIMEOUT_MS = 30_000;\n// One keepalive message must be received in this period.\n// If there is a backlog of messages (for example on slow connections), keepalive messages could be delayed\n// significantly. Therefore this is longer than the socket timeout.\nconst KEEP_ALIVE_LIFETIME_MS = 90_000;\nexport const DEFAULT_REMOTE_LOGGER = Logger.get('PowerSyncRemote');\nexport var FetchStrategy;\n(function (FetchStrategy) {\n /**\n * Queues multiple sync events before processing, reducing round-trips.\n * This comes at the cost of more processing overhead, which may cause ACK timeouts on older/weaker devices for big enough datasets.\n */\n FetchStrategy[\"Buffered\"] = \"buffered\";\n /**\n * Processes each sync event immediately before requesting the next.\n * This reduces processing overhead and improves real-time responsiveness.\n */\n FetchStrategy[\"Sequential\"] = \"sequential\";\n})(FetchStrategy || (FetchStrategy = {}));\n/**\n * Class wrapper for providing a fetch implementation.\n * The class wrapper is used to distinguish the fetchImplementation\n * option in [AbstractRemoteOptions] from the general fetch method\n * which is typeof \"function\"\n */\nexport class FetchImplementationProvider {\n getFetch() {\n throw new Error('Unspecified fetch implementation');\n }\n}\nexport const DEFAULT_REMOTE_OPTIONS = {\n socketUrlTransformer: (url) => url.replace(/^https?:\\/\\//, function (match) {\n return match === 'https://' ? 'wss://' : 'ws://';\n }),\n fetchImplementation: new FetchImplementationProvider(),\n fetchOptions: {}\n};\nexport class AbstractRemote {\n connector;\n logger;\n credentials = null;\n options;\n constructor(connector, logger = DEFAULT_REMOTE_LOGGER, options) {\n this.connector = connector;\n this.logger = logger;\n this.options = {\n ...DEFAULT_REMOTE_OPTIONS,\n ...(options ?? {})\n };\n }\n /**\n * @returns a fetch implementation (function)\n * which can be called to perform fetch requests\n */\n get fetch() {\n const { fetchImplementation } = this.options;\n return fetchImplementation instanceof FetchImplementationProvider\n ? fetchImplementation.getFetch()\n : fetchImplementation;\n }\n /**\n * Get credentials currently cached, or fetch new credentials if none are\n * available.\n *\n * These credentials may have expired already.\n */\n async getCredentials() {\n if (this.credentials) {\n return this.credentials;\n }\n return this.prefetchCredentials();\n }\n /**\n * Fetch a new set of credentials and cache it.\n *\n * Until this call succeeds, `getCredentials` will still return the\n * old credentials.\n *\n * This may be called before the current credentials have expired.\n */\n async prefetchCredentials() {\n this.credentials = await this.fetchCredentials();\n return this.credentials;\n }\n /**\n * Get credentials for PowerSync.\n *\n * This should always fetch a fresh set of credentials - don't use cached\n * values.\n */\n async fetchCredentials() {\n const credentials = await this.connector.fetchCredentials();\n if (credentials?.endpoint.match(POWERSYNC_TRAILING_SLASH_MATCH)) {\n throw new Error(`A trailing forward slash \"/\" was found in the fetchCredentials endpoint: \"${credentials.endpoint}\". Remove the trailing forward slash \"/\" to fix this error.`);\n }\n return credentials;\n }\n /***\n * Immediately invalidate credentials.\n *\n * This may be called when the current credentials have expired.\n */\n invalidateCredentials() {\n this.credentials = null;\n this.connector.invalidateCredentials?.();\n }\n getUserAgent() {\n return `powersync-js/${POWERSYNC_JS_VERSION}`;\n }\n async buildRequest(path) {\n const credentials = await this.getCredentials();\n if (credentials != null && (credentials.endpoint == null || credentials.endpoint == '')) {\n throw new Error('PowerSync endpoint not configured');\n }\n else if (credentials?.token == null || credentials?.token == '') {\n const error = new Error(`Not signed in`);\n error.status = 401;\n throw error;\n }\n const userAgent = this.getUserAgent();\n return {\n url: credentials.endpoint + path,\n headers: {\n 'content-type': 'application/json',\n Authorization: `Token ${credentials.token}`,\n 'x-user-agent': userAgent\n }\n };\n }\n async post(path, data, headers = {}) {\n const request = await this.buildRequest(path);\n const res = await this.fetch(request.url, {\n method: 'POST',\n headers: {\n ...headers,\n ...request.headers\n },\n body: JSON.stringify(data)\n });\n if (res.status === 401) {\n this.invalidateCredentials();\n }\n if (!res.ok) {\n throw new Error(`Received ${res.status} - ${res.statusText} when posting to ${path}: ${await res.text()}}`);\n }\n return res.json();\n }\n async get(path, headers) {\n const request = await this.buildRequest(path);\n const res = await this.fetch(request.url, {\n method: 'GET',\n headers: {\n ...headers,\n ...request.headers\n }\n });\n if (res.status === 401) {\n this.invalidateCredentials();\n }\n if (!res.ok) {\n throw new Error(`Received ${res.status} - ${res.statusText} when getting from ${path}: ${await res.text()}}`);\n }\n return res.json();\n }\n /**\n * @returns A text decoder decoding UTF-8. This is a method to allow patching it for Hermes which doesn't support the\n * builtin, without forcing us to bundle a polyfill with `@powersync/common`.\n */\n createTextDecoder() {\n return new TextDecoder();\n }\n createSocket(url) {\n return new WebSocket(url);\n }\n /**\n * Returns a data stream of sync line data.\n *\n * @param map Maps received payload frames to the typed event value.\n * @param bson A BSON encoder and decoder. When set, the data stream will be requested with a BSON payload\n * (required for compatibility with older sync services).\n */\n async socketStreamRaw(options, map, bson) {\n const { path, fetchStrategy = FetchStrategy.Buffered } = options;\n const mimeType = bson == null ? 'application/json' : 'application/bson';\n function toBuffer(js) {\n let contents;\n if (bson != null) {\n contents = bson.serialize(js);\n }\n else {\n contents = JSON.stringify(js);\n }\n return Buffer.from(contents);\n }\n const syncQueueRequestSize = fetchStrategy == FetchStrategy.Buffered ? 10 : 1;\n const request = await this.buildRequest(path);\n // Add the user agent in the setup payload - we can't set custom\n // headers with websockets on web. The browser userAgent is however added\n // automatically as a header.\n const userAgent = this.getUserAgent();\n const stream = new DataStream({\n logger: this.logger,\n pressure: {\n lowWaterMark: SYNC_QUEUE_REQUEST_LOW_WATER\n },\n mapLine: map\n });\n // Handle upstream abort\n if (options.abortSignal?.aborted) {\n throw new AbortOperation('Connection request aborted');\n }\n else {\n options.abortSignal?.addEventListener('abort', () => {\n stream.close();\n }, { once: true });\n }\n let keepAliveTimeout;\n const resetTimeout = () => {\n clearTimeout(keepAliveTimeout);\n keepAliveTimeout = setTimeout(() => {\n this.logger.error(`No data received on WebSocket in ${SOCKET_TIMEOUT_MS}ms, closing connection.`);\n stream.close();\n }, SOCKET_TIMEOUT_MS);\n };\n resetTimeout();\n // Typescript complains about this being `never` if it's not assigned here.\n // This is assigned in `wsCreator`.\n let disposeSocketConnectionTimeout = () => { };\n const url = this.options.socketUrlTransformer(request.url);\n const connector = new RSocketConnector({\n transport: new WebsocketClientTransport({\n url,\n wsCreator: (url) => {\n const socket = this.createSocket(url);\n disposeSocketConnectionTimeout = stream.registerListener({\n closed: () => {\n // Allow closing the underlying WebSocket if the stream was closed before the\n // RSocket connect completed. This should effectively abort the request.\n socket.close();\n }\n });\n socket.addEventListener('message', (event) => {\n resetTimeout();\n });\n return socket;\n }\n }),\n setup: {\n keepAlive: KEEP_ALIVE_MS,\n lifetime: KEEP_ALIVE_LIFETIME_MS,\n dataMimeType: mimeType,\n metadataMimeType: mimeType,\n payload: {\n data: null,\n metadata: toBuffer({\n token: request.headers.Authorization,\n user_agent: userAgent\n })\n }\n }\n });\n let rsocket;\n try {\n rsocket = await connector.connect();\n // The connection is established, we no longer need to monitor the initial timeout\n disposeSocketConnectionTimeout();\n }\n catch (ex) {\n this.logger.error(`Failed to connect WebSocket`, ex);\n clearTimeout(keepAliveTimeout);\n if (!stream.closed) {\n await stream.close();\n }\n throw ex;\n }\n resetTimeout();\n let socketIsClosed = false;\n const closeSocket = () => {\n clearTimeout(keepAliveTimeout);\n if (socketIsClosed) {\n return;\n }\n socketIsClosed = true;\n rsocket.close();\n };\n // Helps to prevent double close scenarios\n rsocket.onClose(() => (socketIsClosed = true));\n // We initially request this amount and expect these to arrive eventually\n let pendingEventsCount = syncQueueRequestSize;\n const disposeClosedListener = stream.registerListener({\n closed: () => {\n closeSocket();\n disposeClosedListener();\n }\n });\n const socket = await new Promise((resolve, reject) => {\n let connectionEstablished = false;\n const res = rsocket.requestStream({\n data: toBuffer(options.data),\n metadata: toBuffer({\n path\n })\n }, syncQueueRequestSize, // The initial N amount\n {\n onError: (e) => {\n if (e.message.includes('PSYNC_')) {\n if (e.message.includes('PSYNC_S21')) {\n this.invalidateCredentials();\n }\n }\n else {\n // Possible that connection is with an older service, always invalidate to be safe\n if (e.message !== 'Closed. ') {\n this.invalidateCredentials();\n }\n }\n // Don't log closed as an error\n if (e.message !== 'Closed. ') {\n this.logger.error(e);\n }\n // RSocket will close the RSocket stream automatically\n // Close the downstream stream as well - this will close the RSocket connection and WebSocket\n stream.close();\n // Handles cases where the connection failed e.g. auth error or connection error\n if (!connectionEstablished) {\n reject(e);\n }\n },\n onNext: (payload) => {\n // The connection is active\n if (!connectionEstablished) {\n connectionEstablished = true;\n resolve(res);\n }\n const { data } = payload;\n // Less events are now pending\n pendingEventsCount--;\n if (!data) {\n return;\n }\n stream.enqueueData(data);\n },\n onComplete: () => {\n stream.close();\n },\n onExtension: () => { }\n });\n });\n const l = stream.registerListener({\n lowWater: async () => {\n // Request to fill up the queue\n const required = syncQueueRequestSize - pendingEventsCount;\n if (required > 0) {\n socket.request(syncQueueRequestSize - pendingEventsCount);\n pendingEventsCount = syncQueueRequestSize;\n }\n },\n closed: () => {\n l();\n }\n });\n return stream;\n }\n /**\n * Connects to the sync/stream http endpoint, mapping and emitting each received string line.\n */\n async postStreamRaw(options, mapLine) {\n const { data, path, headers, abortSignal } = options;\n const request = await this.buildRequest(path);\n /**\n * This abort controller will abort pending fetch requests.\n * If the request has resolved, it will be used to close the readable stream.\n * Which will cancel the network request.\n *\n * This nested controller is required since:\n * Aborting the active fetch request while it is being consumed seems to throw\n * an unhandled exception on the window level.\n */\n if (abortSignal?.aborted) {\n throw new AbortOperation('Abort request received before making postStreamRaw request');\n }\n const controller = new AbortController();\n let requestResolved = false;\n abortSignal?.addEventListener('abort', () => {\n if (!requestResolved) {\n // Only abort via the abort controller if the request has not resolved yet\n controller.abort(abortSignal.reason ??\n new AbortOperation('Cancelling network request before it resolves. Abort signal has been received.'));\n }\n });\n const res = await this.fetch(request.url, {\n method: 'POST',\n headers: { ...headers, ...request.headers },\n body: JSON.stringify(data),\n signal: controller.signal,\n cache: 'no-store',\n ...(this.options.fetchOptions ?? {}),\n ...options.fetchOptions\n }).catch((ex) => {\n if (ex.name == 'AbortError') {\n throw new AbortOperation(`Pending fetch request to ${request.url} has been aborted.`);\n }\n throw ex;\n });\n if (!res) {\n throw new Error('Fetch request was aborted');\n }\n requestResolved = true;\n if (!res.ok || !res.body) {\n const text = await res.text();\n this.logger.error(`Could not POST streaming to ${path} - ${res.status} - ${res.statusText}: ${text}`);\n const error = new Error(`HTTP ${res.statusText}: ${text}`);\n error.status = res.status;\n throw error;\n }\n // Create a new stream splitting the response at line endings while also handling cancellations\n // by closing the reader.\n const reader = res.body.getReader();\n let readerReleased = false;\n // This will close the network request and read stream\n const closeReader = async () => {\n try {\n readerReleased = true;\n await reader.cancel();\n }\n catch (ex) {\n // an error will throw if the reader hasn't been used yet\n }\n reader.releaseLock();\n };\n const stream = new DataStream({\n logger: this.logger,\n mapLine: mapLine\n });\n abortSignal?.addEventListener('abort', () => {\n closeReader();\n stream.close();\n });\n const decoder = this.createTextDecoder();\n let buffer = '';\n const l = stream.registerListener({\n lowWater: async () => {\n if (stream.closed || abortSignal?.aborted || readerReleased) {\n return;\n }\n try {\n let didCompleteLine = false;\n while (!didCompleteLine) {\n const { done, value } = await reader.read();\n if (done) {\n const remaining = buffer.trim();\n if (remaining.length != 0) {\n stream.enqueueData(remaining);\n }\n stream.close();\n await closeReader();\n return;\n }\n const data = decoder.decode(value, { stream: true });\n buffer += data;\n const lines = buffer.split('\\n');\n for (var i = 0; i < lines.length - 1; i++) {\n var l = lines[i].trim();\n if (l.length > 0) {\n stream.enqueueData(l);\n didCompleteLine = true;\n }\n }\n buffer = lines[lines.length - 1];\n }\n }\n catch (ex) {\n stream.close();\n throw ex;\n }\n },\n closed: () => {\n closeReader();\n l?.();\n }\n });\n return stream;\n }\n}\n//# sourceMappingURL=AbstractRemote.js.map","import { FULL_SYNC_PRIORITY } from '../../../db/crud/SyncProgress.js';\nfunction priorityToJs(status) {\n return {\n priority: status.priority,\n hasSynced: status.has_synced ?? undefined,\n lastSyncedAt: status.last_synced_at != null ? new Date(status.last_synced_at * 1000) : undefined\n };\n}\nexport function coreStatusToJs(status) {\n const coreCompleteSync = status.priority_status.find((s) => s.priority == FULL_SYNC_PRIORITY);\n const completeSync = coreCompleteSync != null ? priorityToJs(coreCompleteSync) : null;\n return {\n connected: status.connected,\n connecting: status.connecting,\n dataFlow: {\n // We expose downloading as a boolean field, the core extension reports download information as a nullable\n // download status. When that status is non-null, a download is in progress.\n downloading: status.downloading != null,\n downloadProgress: status.downloading?.buckets,\n internalStreamSubscriptions: status.streams\n },\n lastSyncedAt: completeSync?.lastSyncedAt,\n hasSynced: completeSync?.hasSynced,\n priorityStatusEntries: status.priority_status.map(priorityToJs)\n };\n}\n//# sourceMappingURL=core-instruction.js.map","export function isStreamingSyncData(line) {\n return line.data != null;\n}\nexport function isStreamingKeepalive(line) {\n return line.token_expires_in != null;\n}\nexport function isStreamingSyncCheckpoint(line) {\n return line.checkpoint != null;\n}\nexport function isStreamingSyncCheckpointComplete(line) {\n return line.checkpoint_complete != null;\n}\nexport function isStreamingSyncCheckpointPartiallyComplete(line) {\n return line.partial_checkpoint_complete != null;\n}\nexport function isStreamingSyncCheckpointDiff(line) {\n return line.checkpoint_diff != null;\n}\nexport function isContinueCheckpointRequest(request) {\n return (Array.isArray(request.buckets) &&\n typeof request.checkpoint_token == 'string');\n}\nexport function isSyncNewCheckpointRequest(request) {\n return typeof request.request_checkpoint == 'object';\n}\n//# sourceMappingURL=streaming-sync-types.js.map","import Logger from 'js-logger';\nimport { SyncStatus } from '../../../db/crud/SyncStatus.js';\nimport { AbortOperation } from '../../../utils/AbortOperation.js';\nimport { BaseObserver } from '../../../utils/BaseObserver.js';\nimport { throttleLeadingTrailing } from '../../../utils/async.js';\nimport { PowerSyncControlCommand } from '../bucket/BucketStorageAdapter.js';\nimport { SyncDataBucket } from '../bucket/SyncDataBucket.js';\nimport { FetchStrategy } from './AbstractRemote.js';\nimport { coreStatusToJs } from './core-instruction.js';\nimport { isStreamingKeepalive, isStreamingSyncCheckpoint, isStreamingSyncCheckpointComplete, isStreamingSyncCheckpointDiff, isStreamingSyncCheckpointPartiallyComplete, isStreamingSyncData } from './streaming-sync-types.js';\nexport var LockType;\n(function (LockType) {\n LockType[\"CRUD\"] = \"crud\";\n LockType[\"SYNC\"] = \"sync\";\n})(LockType || (LockType = {}));\nexport var SyncStreamConnectionMethod;\n(function (SyncStreamConnectionMethod) {\n SyncStreamConnectionMethod[\"HTTP\"] = \"http\";\n SyncStreamConnectionMethod[\"WEB_SOCKET\"] = \"web-socket\";\n})(SyncStreamConnectionMethod || (SyncStreamConnectionMethod = {}));\nexport var SyncClientImplementation;\n(function (SyncClientImplementation) {\n /**\n * Decodes and handles sync lines received from the sync service in JavaScript.\n *\n * This is the default option.\n *\n * @deprecated Don't use {@link SyncClientImplementation.JAVASCRIPT} directly. Instead, use\n * {@link DEFAULT_SYNC_CLIENT_IMPLEMENTATION} or omit the option. The explicit choice to use\n * the JavaScript-based sync implementation will be removed from a future version of the SDK.\n */\n SyncClientImplementation[\"JAVASCRIPT\"] = \"js\";\n /**\n * This implementation offloads the sync line decoding and handling into the PowerSync\n * core extension.\n *\n * @experimental\n * While this implementation is more performant than {@link SyncClientImplementation.JAVASCRIPT},\n * it has seen less real-world testing and is marked as __experimental__ at the moment.\n *\n * ## Compatibility warning\n *\n * The Rust sync client stores sync data in a format that is slightly different than the one used\n * by the old {@link JAVASCRIPT} implementation. When adopting the {@link RUST} client on existing\n * databases, the PowerSync SDK will migrate the format automatically.\n * Further, the {@link JAVASCRIPT} client in recent versions of the PowerSync JS SDK (starting from\n * the version introducing {@link RUST} as an option) also supports the new format, so you can switch\n * back to {@link JAVASCRIPT} later.\n *\n * __However__: Upgrading the SDK version, then adopting {@link RUST} as a sync client and later\n * downgrading the SDK to an older version (necessarily using the JavaScript-based implementation then)\n * can lead to sync issues.\n */\n SyncClientImplementation[\"RUST\"] = \"rust\";\n})(SyncClientImplementation || (SyncClientImplementation = {}));\n/**\n * The default {@link SyncClientImplementation} to use.\n *\n * Please use this field instead of {@link SyncClientImplementation.JAVASCRIPT} directly. A future version\n * of the PowerSync SDK will enable {@link SyncClientImplementation.RUST} by default and remove the JavaScript\n * option.\n */\nexport const DEFAULT_SYNC_CLIENT_IMPLEMENTATION = SyncClientImplementation.JAVASCRIPT;\nexport const DEFAULT_CRUD_UPLOAD_THROTTLE_MS = 1000;\nexport const DEFAULT_RETRY_DELAY_MS = 5000;\nexport const DEFAULT_STREAMING_SYNC_OPTIONS = {\n retryDelayMs: DEFAULT_RETRY_DELAY_MS,\n crudUploadThrottleMs: DEFAULT_CRUD_UPLOAD_THROTTLE_MS\n};\nexport const DEFAULT_STREAM_CONNECTION_OPTIONS = {\n connectionMethod: SyncStreamConnectionMethod.WEB_SOCKET,\n clientImplementation: DEFAULT_SYNC_CLIENT_IMPLEMENTATION,\n fetchStrategy: FetchStrategy.Buffered,\n params: {},\n serializedSchema: undefined,\n includeDefaultStreams: true\n};\n// The priority we assume when we receive checkpoint lines where no priority is set.\n// This is the default priority used by the sync service, but can be set to an arbitrary\n// value since sync services without priorities also won't send partial sync completion\n// messages.\nconst FALLBACK_PRIORITY = 3;\nexport class AbstractStreamingSyncImplementation extends BaseObserver {\n _lastSyncedAt;\n options;\n abortController;\n // In rare cases, mostly for tests, uploads can be triggered without being properly connected.\n // This allows ensuring that all upload processes can be aborted.\n uploadAbortController;\n crudUpdateListener;\n streamingSyncPromise;\n logger;\n activeStreams;\n isUploadingCrud = false;\n notifyCompletedUploads;\n handleActiveStreamsChange;\n syncStatus;\n triggerCrudUpload;\n constructor(options) {\n super();\n this.options = options;\n this.activeStreams = options.subscriptions;\n this.logger = options.logger ?? Logger.get('PowerSyncStream');\n this.syncStatus = new SyncStatus({\n connected: false,\n connecting: false,\n lastSyncedAt: undefined,\n dataFlow: {\n uploading: false,\n downloading: false\n }\n });\n this.abortController = null;\n this.triggerCrudUpload = throttleLeadingTrailing(() => {\n if (!this.syncStatus.connected || this.isUploadingCrud) {\n return;\n }\n this.isUploadingCrud = true;\n this._uploadAllCrud().finally(() => {\n this.notifyCompletedUploads?.();\n this.isUploadingCrud = false;\n });\n }, this.options.crudUploadThrottleMs);\n }\n async waitForReady() { }\n waitForStatus(status) {\n return this.waitUntilStatusMatches((currentStatus) => {\n /**\n * Match only the partial status options provided in the\n * matching status\n */\n const matchPartialObject = (compA, compB) => {\n return Object.entries(compA).every(([key, value]) => {\n const comparisonBValue = compB[key];\n if (typeof value == 'object' && typeof comparisonBValue == 'object') {\n return matchPartialObject(value, comparisonBValue);\n }\n return value == comparisonBValue;\n });\n };\n return matchPartialObject(status, currentStatus);\n });\n }\n waitUntilStatusMatches(predicate) {\n return new Promise((resolve) => {\n if (predicate(this.syncStatus)) {\n resolve();\n return;\n }\n const l = this.registerListener({\n statusChanged: (updatedStatus) => {\n if (predicate(updatedStatus)) {\n resolve();\n l?.();\n }\n }\n });\n });\n }\n get lastSyncedAt() {\n const lastSynced = this.syncStatus.lastSyncedAt;\n return lastSynced && new Date(lastSynced);\n }\n get isConnected() {\n return this.syncStatus.connected;\n }\n async dispose() {\n super.dispose();\n this.crudUpdateListener?.();\n this.crudUpdateListener = undefined;\n this.uploadAbortController?.abort();\n }\n async hasCompletedSync() {\n return this.options.adapter.hasCompletedSync();\n }\n async getWriteCheckpoint() {\n const clientId = await this.options.adapter.getClientId();\n let path = `/write-checkpoint2.json?client_id=${clientId}`;\n const response = await this.options.remote.get(path);\n const checkpoint = response['data']['write_checkpoint'];\n this.logger.debug(`Created write checkpoint: ${checkpoint}`);\n return checkpoint;\n }\n async _uploadAllCrud() {\n return this.obtainLock({\n type: LockType.CRUD,\n callback: async () => {\n /**\n * Keep track of the first item in the CRUD queue for the last `uploadCrud` iteration.\n */\n let checkedCrudItem;\n const controller = new AbortController();\n this.uploadAbortController = controller;\n this.abortController?.signal.addEventListener('abort', () => {\n controller.abort();\n }, { once: true });\n while (!controller.signal.aborted) {\n try {\n /**\n * This is the first item in the FIFO CRUD queue.\n */\n const nextCrudItem = await this.options.adapter.nextCrudItem();\n if (nextCrudItem) {\n this.updateSyncStatus({\n dataFlow: {\n uploading: true\n }\n });\n if (nextCrudItem.clientId == checkedCrudItem?.clientId) {\n // This will force a higher log level than exceptions which are caught here.\n this.logger.warn(`Potentially previously uploaded CRUD entries are still present in the upload queue.\nMake sure to handle uploads and complete CRUD transactions or batches by calling and awaiting their [.complete()] method.\nThe next upload iteration will be delayed.`);\n throw new Error('Delaying due to previously encountered CRUD item.');\n }\n checkedCrudItem = nextCrudItem;\n await this.options.uploadCrud();\n this.updateSyncStatus({\n dataFlow: {\n uploadError: undefined\n }\n });\n }\n else {\n // Uploading is completed\n const neededUpdate = await this.options.adapter.updateLocalTarget(() => this.getWriteCheckpoint());\n if (neededUpdate == false && checkedCrudItem != null) {\n // Only log this if there was something to upload\n this.logger.debug('Upload complete, no write checkpoint needed.');\n }\n break;\n }\n }\n catch (ex) {\n checkedCrudItem = undefined;\n this.updateSyncStatus({\n dataFlow: {\n uploading: false,\n uploadError: ex\n }\n });\n await this.delayRetry(controller.signal);\n if (!this.isConnected) {\n // Exit the upload loop if the sync stream is no longer connected\n break;\n }\n this.logger.debug(`Caught exception when uploading. Upload will retry after a delay. Exception: ${ex.message}`);\n }\n finally {\n this.updateSyncStatus({\n dataFlow: {\n uploading: false\n }\n });\n }\n }\n this.uploadAbortController = null;\n }\n });\n }\n async connect(options) {\n if (this.abortController) {\n await this.disconnect();\n }\n const controller = new AbortController();\n this.abortController = controller;\n this.streamingSyncPromise = this.streamingSync(this.abortController.signal, options);\n // Return a promise that resolves when the connection status is updated to indicate that we're connected.\n return new Promise((resolve) => {\n const disposer = this.registerListener({\n statusChanged: (status) => {\n if (status.dataFlowStatus.downloadError != null) {\n this.logger.warn('Initial connect attempt did not successfully connect to server');\n }\n else if (status.connecting) {\n // Still connecting.\n return;\n }\n disposer();\n resolve();\n }\n });\n });\n }\n async disconnect() {\n if (!this.abortController) {\n return;\n }\n // This might be called multiple times\n if (!this.abortController.signal.aborted) {\n this.abortController.abort(new AbortOperation('Disconnect has been requested'));\n }\n // Await any pending operations before completing the disconnect operation\n try {\n await this.streamingSyncPromise;\n }\n catch (ex) {\n // The operation might have failed, all we care about is if it has completed\n this.logger.warn(ex);\n }\n this.streamingSyncPromise = undefined;\n this.abortController = null;\n this.updateSyncStatus({ connected: false, connecting: false });\n }\n /**\n * @deprecated use [connect instead]\n */\n async streamingSync(signal, options) {\n if (!signal) {\n this.abortController = new AbortController();\n signal = this.abortController.signal;\n }\n /**\n * Listen for CRUD updates and trigger upstream uploads\n */\n this.crudUpdateListener = this.options.adapter.registerListener({\n crudUpdate: () => this.triggerCrudUpload()\n });\n /**\n * Create a new abort controller which aborts items downstream.\n * This is needed to close any previous connections on exception.\n */\n let nestedAbortController = new AbortController();\n signal.addEventListener('abort', () => {\n /**\n * A request for disconnect was received upstream. Relay the request\n * to the nested abort controller.\n */\n nestedAbortController.abort(signal?.reason ?? new AbortOperation('Received command to disconnect from upstream'));\n this.crudUpdateListener?.();\n this.crudUpdateListener = undefined;\n this.updateSyncStatus({\n connected: false,\n connecting: false,\n dataFlow: {\n downloading: false,\n downloadProgress: null\n }\n });\n });\n /**\n * This loops runs until [retry] is false or the abort signal is set to aborted.\n * Aborting the nestedAbortController will:\n * - Abort any pending fetch requests\n * - Close any sync stream ReadableStreams (which will also close any established network requests)\n */\n while (true) {\n this.updateSyncStatus({ connecting: true });\n let shouldDelayRetry = true;\n let result = null;\n try {\n if (signal?.aborted) {\n break;\n }\n result = await this.streamingSyncIteration(nestedAbortController.signal, options);\n // Continue immediately, streamingSyncIteration will wait before completing if necessary.\n }\n catch (ex) {\n /**\n * Either:\n * - A network request failed with a failed connection or not OKAY response code.\n * - There was a sync processing error.\n * - The connection was aborted.\n * This loop will retry after a delay if the connection was not aborted.\n * The nested abort controller will cleanup any open network requests and streams.\n * The WebRemote should only abort pending fetch requests or close active Readable streams.\n */\n if (ex instanceof AbortOperation) {\n this.logger.warn(ex);\n shouldDelayRetry = false;\n // A disconnect was requested, we should not delay since there is no explicit retry\n }\n else {\n this.logger.error(ex);\n }\n this.updateSyncStatus({\n dataFlow: {\n downloadError: ex\n }\n });\n }\n finally {\n this.notifyCompletedUploads = undefined;\n if (!signal.aborted) {\n nestedAbortController.abort(new AbortOperation('Closing sync stream network requests before retry.'));\n nestedAbortController = new AbortController();\n }\n if (result?.immediateRestart != true) {\n this.updateSyncStatus({\n connected: false,\n connecting: true // May be unnecessary\n });\n // On error, wait a little before retrying\n if (shouldDelayRetry) {\n await this.delayRetry(nestedAbortController.signal);\n }\n }\n }\n }\n // Mark as disconnected if here\n this.updateSyncStatus({ connected: false, connecting: false });\n }\n async collectLocalBucketState() {\n const bucketEntries = await this.options.adapter.getBucketStates();\n const req = bucketEntries.map((entry) => ({\n name: entry.bucket,\n after: entry.op_id\n }));\n const localDescriptions = new Map();\n for (const entry of bucketEntries) {\n localDescriptions.set(entry.bucket, null);\n }\n return [req, localDescriptions];\n }\n /**\n * Older versions of the JS SDK used to encode subkeys as JSON in {@link OplogEntry.toJSON}.\n * Because subkeys are always strings, this leads to quotes being added around them in `ps_oplog`.\n * While this is not a problem as long as it's done consistently, it causes issues when a database\n * created by the JS SDK is used with other SDKs, or (more likely) when the new Rust sync client\n * is enabled.\n *\n * So, we add a migration from the old key format (with quotes) to the new one (no quotes). The\n * migration is only triggered when necessary (for now). The function returns whether the new format\n * should be used, so that the JS SDK is able to write to updated databases.\n *\n * @param requireFixedKeyFormat Whether we require the new format or also support the old one.\n * The Rust client requires the new subkey format.\n * @returns Whether the database is now using the new, fixed subkey format.\n */\n async requireKeyFormat(requireFixedKeyFormat) {\n const hasMigrated = await this.options.adapter.hasMigratedSubkeys();\n if (requireFixedKeyFormat && !hasMigrated) {\n await this.options.adapter.migrateToFixedSubkeys();\n return true;\n }\n else {\n return hasMigrated;\n }\n }\n streamingSyncIteration(signal, options) {\n return this.obtainLock({\n type: LockType.SYNC,\n signal,\n callback: async () => {\n const resolvedOptions = {\n ...DEFAULT_STREAM_CONNECTION_OPTIONS,\n ...(options ?? {})\n };\n const clientImplementation = resolvedOptions.clientImplementation;\n this.updateSyncStatus({ clientImplementation });\n if (clientImplementation == SyncClientImplementation.JAVASCRIPT) {\n await this.legacyStreamingSyncIteration(signal, resolvedOptions);\n return null;\n }\n else {\n await this.requireKeyFormat(true);\n return await this.rustSyncIteration(signal, resolvedOptions);\n }\n }\n });\n }\n async legacyStreamingSyncIteration(signal, resolvedOptions) {\n const rawTables = resolvedOptions.serializedSchema?.raw_tables;\n if (rawTables != null && rawTables.length) {\n this.logger.warn('Raw tables require the Rust-based sync client. The JS client will ignore them.');\n }\n this.logger.debug('Streaming sync iteration started');\n this.options.adapter.startSession();\n let [req, bucketMap] = await this.collectLocalBucketState();\n let targetCheckpoint = null;\n // A checkpoint that has been validated but not applied (e.g. due to pending local writes)\n let pendingValidatedCheckpoint = null;\n const clientId = await this.options.adapter.getClientId();\n const usingFixedKeyFormat = await this.requireKeyFormat(false);\n this.logger.debug('Requesting stream from server');\n const syncOptions = {\n path: '/sync/stream',\n abortSignal: signal,\n data: {\n buckets: req,\n include_checksum: true,\n raw_data: true,\n parameters: resolvedOptions.params,\n client_id: clientId\n }\n };\n let stream;\n if (resolvedOptions?.connectionMethod == SyncStreamConnectionMethod.HTTP) {\n stream = await this.options.remote.postStreamRaw(syncOptions, (line) => {\n if (typeof line == 'string') {\n return JSON.parse(line);\n }\n else {\n // Directly enqueued by us\n return line;\n }\n });\n }\n else {\n const bson = await this.options.remote.getBSON();\n stream = await this.options.remote.socketStreamRaw({\n ...syncOptions,\n ...{ fetchStrategy: resolvedOptions.fetchStrategy }\n }, (payload) => {\n if (payload instanceof Uint8Array) {\n return bson.deserialize(payload);\n }\n else {\n // Directly enqueued by us\n return payload;\n }\n }, bson);\n }\n this.logger.debug('Stream established. Processing events');\n this.notifyCompletedUploads = () => {\n if (!stream.closed) {\n stream.enqueueData({ crud_upload_completed: null });\n }\n };\n while (!stream.closed) {\n const line = await stream.read();\n if (!line) {\n // The stream has closed while waiting\n return;\n }\n if ('crud_upload_completed' in line) {\n if (pendingValidatedCheckpoint != null) {\n const { applied, endIteration } = await this.applyCheckpoint(pendingValidatedCheckpoint);\n if (applied) {\n pendingValidatedCheckpoint = null;\n }\n else if (endIteration) {\n break;\n }\n }\n continue;\n }\n // A connection is active and messages are being received\n if (!this.syncStatus.connected) {\n // There is a connection now\n Promise.resolve().then(() => this.triggerCrudUpload());\n this.updateSyncStatus({\n connected: true\n });\n }\n if (isStreamingSyncCheckpoint(line)) {\n targetCheckpoint = line.checkpoint;\n // New checkpoint - existing validated checkpoint is no longer valid\n pendingValidatedCheckpoint = null;\n const bucketsToDelete = new Set(bucketMap.keys());\n const newBuckets = new Map();\n for (const checksum of line.checkpoint.buckets) {\n newBuckets.set(checksum.bucket, {\n name: checksum.bucket,\n priority: checksum.priority ?? FALLBACK_PRIORITY\n });\n bucketsToDelete.delete(checksum.bucket);\n }\n if (bucketsToDelete.size > 0) {\n this.logger.debug('Removing buckets', [...bucketsToDelete]);\n }\n bucketMap = newBuckets;\n await this.options.adapter.removeBuckets([...bucketsToDelete]);\n await this.options.adapter.setTargetCheckpoint(targetCheckpoint);\n await this.updateSyncStatusForStartingCheckpoint(targetCheckpoint);\n }\n else if (isStreamingSyncCheckpointComplete(line)) {\n const result = await this.applyCheckpoint(targetCheckpoint);\n if (result.endIteration) {\n return;\n }\n else if (!result.applied) {\n // \"Could not apply checkpoint due to local data\". We need to retry after\n // finishing uploads.\n pendingValidatedCheckpoint = targetCheckpoint;\n }\n else {\n // Nothing to retry later. This would likely already be null from the last\n // checksum or checksum_diff operation, but we make sure.\n pendingValidatedCheckpoint = null;\n }\n }\n else if (isStreamingSyncCheckpointPartiallyComplete(line)) {\n const priority = line.partial_checkpoint_complete.priority;\n this.logger.debug('Partial checkpoint complete', priority);\n const result = await this.options.adapter.syncLocalDatabase(targetCheckpoint, priority);\n if (!result.checkpointValid) {\n // This means checksums failed. Start again with a new checkpoint.\n // TODO: better back-off\n await new Promise((resolve) => setTimeout(resolve, 50));\n return;\n }\n else if (!result.ready) {\n // If we have pending uploads, we can't complete new checkpoints outside of priority 0.\n // We'll resolve this for a complete checkpoint.\n }\n else {\n // We'll keep on downloading, but can report that this priority is synced now.\n this.logger.debug('partial checkpoint validation succeeded');\n // All states with a higher priority can be deleted since this partial sync includes them.\n const priorityStates = this.syncStatus.priorityStatusEntries.filter((s) => s.priority <= priority);\n priorityStates.push({\n priority,\n lastSyncedAt: new Date(),\n hasSynced: true\n });\n this.updateSyncStatus({\n connected: true,\n priorityStatusEntries: priorityStates\n });\n }\n }\n else if (isStreamingSyncCheckpointDiff(line)) {\n // TODO: It may be faster to just keep track of the diff, instead of the entire checkpoint\n if (targetCheckpoint == null) {\n throw new Error('Checkpoint diff without previous checkpoint');\n }\n // New checkpoint - existing validated checkpoint is no longer valid\n pendingValidatedCheckpoint = null;\n const diff = line.checkpoint_diff;\n const newBuckets = new Map();\n for (const checksum of targetCheckpoint.buckets) {\n newBuckets.set(checksum.bucket, checksum);\n }\n for (const checksum of diff.updated_buckets) {\n newBuckets.set(checksum.bucket, checksum);\n }\n for (const bucket of diff.removed_buckets) {\n newBuckets.delete(bucket);\n }\n const newCheckpoint = {\n last_op_id: diff.last_op_id,\n buckets: [...newBuckets.values()],\n write_checkpoint: diff.write_checkpoint\n };\n targetCheckpoint = newCheckpoint;\n await this.updateSyncStatusForStartingCheckpoint(targetCheckpoint);\n bucketMap = new Map();\n newBuckets.forEach((checksum, name) => bucketMap.set(name, {\n name: checksum.bucket,\n priority: checksum.priority ?? FALLBACK_PRIORITY\n }));\n const bucketsToDelete = diff.removed_buckets;\n if (bucketsToDelete.length > 0) {\n this.logger.debug('Remove buckets', bucketsToDelete);\n }\n await this.options.adapter.removeBuckets(bucketsToDelete);\n await this.options.adapter.setTargetCheckpoint(targetCheckpoint);\n }\n else if (isStreamingSyncData(line)) {\n const { data } = line;\n const previousProgress = this.syncStatus.dataFlowStatus.downloadProgress;\n let updatedProgress = null;\n if (previousProgress) {\n updatedProgress = { ...previousProgress };\n const progressForBucket = updatedProgress[data.bucket];\n if (progressForBucket) {\n updatedProgress[data.bucket] = {\n ...progressForBucket,\n since_last: progressForBucket.since_last + data.data.length\n };\n }\n }\n this.updateSyncStatus({\n dataFlow: {\n downloading: true,\n downloadProgress: updatedProgress\n }\n });\n await this.options.adapter.saveSyncData({ buckets: [SyncDataBucket.fromRow(data)] }, usingFixedKeyFormat);\n }\n else if (isStreamingKeepalive(line)) {\n const remaining_seconds = line.token_expires_in;\n if (remaining_seconds == 0) {\n // Connection would be closed automatically right after this\n this.logger.debug('Token expiring; reconnect');\n /**\n * For a rare case where the backend connector does not update the token\n * (uses the same one), this should have some delay.\n */\n await this.delayRetry();\n return;\n }\n else if (remaining_seconds < 30) {\n this.logger.debug('Token will expire soon; reconnect');\n // Pre-emptively refresh the token\n this.options.remote.invalidateCredentials();\n return;\n }\n this.triggerCrudUpload();\n }\n else {\n this.logger.debug('Received unknown sync line', line);\n }\n }\n this.logger.debug('Stream input empty');\n // Connection closed. Likely due to auth issue.\n return;\n }\n async rustSyncIteration(signal, resolvedOptions) {\n const syncImplementation = this;\n const adapter = this.options.adapter;\n const remote = this.options.remote;\n let receivingLines = null;\n let hadSyncLine = false;\n let hideDisconnectOnRestart = false;\n if (signal.aborted) {\n throw new AbortOperation('Connection request has been aborted');\n }\n const abortController = new AbortController();\n signal.addEventListener('abort', () => abortController.abort());\n // Pending sync lines received from the service, as well as local events that trigger a powersync_control\n // invocation (local events include refreshed tokens and completed uploads).\n // This is a single data stream so that we can handle all control calls from a single place.\n let controlInvocations = null;\n async function connect(instr) {\n const syncOptions = {\n path: '/sync/stream',\n abortSignal: abortController.signal,\n data: instr.request\n };\n if (resolvedOptions.connectionMethod == SyncStreamConnectionMethod.HTTP) {\n controlInvocations = await remote.postStreamRaw(syncOptions, (line) => {\n if (typeof line == 'string') {\n return {\n command: PowerSyncControlCommand.PROCESS_TEXT_LINE,\n payload: line\n };\n }\n else {\n // Directly enqueued by us\n return line;\n }\n });\n }\n else {\n controlInvocations = await remote.socketStreamRaw({\n ...syncOptions,\n fetchStrategy: resolvedOptions.fetchStrategy\n }, (payload) => {\n if (payload instanceof Uint8Array) {\n return {\n command: PowerSyncControlCommand.PROCESS_BSON_LINE,\n payload: payload\n };\n }\n else {\n // Directly enqueued by us\n return payload;\n }\n });\n }\n // The rust client will set connected: true after the first sync line because that's when it gets invoked, but\n // we're already connected here and can report that.\n syncImplementation.updateSyncStatus({ connected: true });\n try {\n while (!controlInvocations.closed) {\n const line = await controlInvocations.read();\n if (line == null) {\n return;\n }\n await control(line.command, line.payload);\n if (!hadSyncLine) {\n syncImplementation.triggerCrudUpload();\n hadSyncLine = true;\n }\n }\n }\n finally {\n const activeInstructions = controlInvocations;\n // We concurrently add events to the active data stream when e.g. a CRUD upload is completed or a token is\n // refreshed. That would throw after closing (and we can't handle those events either way), so set this back\n // to null.\n controlInvocations = null;\n await activeInstructions.close();\n }\n }\n async function stop() {\n await control(PowerSyncControlCommand.STOP);\n }\n async function control(op, payload) {\n const rawResponse = await adapter.control(op, payload ?? null);\n const logger = syncImplementation.logger;\n logger.trace('powersync_control', op, payload == null || typeof payload == 'string' ? payload : '<bytes>', rawResponse);\n await handleInstructions(JSON.parse(rawResponse));\n }\n async function handleInstruction(instruction) {\n if ('LogLine' in instruction) {\n switch (instruction.LogLine.severity) {\n case 'DEBUG':\n syncImplementation.logger.debug(instruction.LogLine.line);\n break;\n case 'INFO':\n syncImplementation.logger.info(instruction.LogLine.line);\n break;\n case 'WARNING':\n syncImplementation.logger.warn(instruction.LogLine.line);\n break;\n }\n }\n else if ('UpdateSyncStatus' in instruction) {\n syncImplementation.updateSyncStatus(coreStatusToJs(instruction.UpdateSyncStatus.status));\n }\n else if ('EstablishSyncStream' in instruction) {\n if (receivingLines != null) {\n // Already connected, this shouldn't happen during a single iteration.\n throw 'Unexpected request to establish sync stream, already connected';\n }\n receivingLines = connect(instruction.EstablishSyncStream);\n }\n else if ('FetchCredentials' in instruction) {\n if (instruction.FetchCredentials.did_expire) {\n remote.invalidateCredentials();\n }\n else {\n remote.invalidateCredentials();\n // Restart iteration after the credentials have been refreshed.\n remote.fetchCredentials().then((_) => {\n controlInvocations?.enqueueData({ command: PowerSyncControlCommand.NOTIFY_TOKEN_REFRESHED });\n }, (err) => {\n syncImplementation.logger.warn('Could not prefetch credentials', err);\n });\n }\n }\n else if ('CloseSyncStream' in instruction) {\n abortController.abort();\n hideDisconnectOnRestart = instruction.CloseSyncStream.hide_disconnect;\n }\n else if ('FlushFileSystem' in instruction) {\n // Not necessary on JS platforms.\n }\n else if ('DidCompleteSync' in instruction) {\n syncImplementation.updateSyncStatus({\n dataFlow: {\n downloadError: undefined\n }\n });\n }\n }\n async function handleInstructions(instructions) {\n for (const instr of instructions) {\n await handleInstruction(instr);\n }\n }\n try {\n const options = {\n parameters: resolvedOptions.params,\n active_streams: this.activeStreams,\n include_defaults: resolvedOptions.includeDefaultStreams\n };\n if (resolvedOptions.serializedSchema) {\n options.schema = resolvedOptions.serializedSchema;\n }\n await control(PowerSyncControlCommand.START, JSON.stringify(options));\n this.notifyCompletedUploads = () => {\n if (controlInvocations && !controlInvocations?.closed) {\n controlInvocations.enqueueData({ command: PowerSyncControlCommand.NOTIFY_CRUD_UPLOAD_COMPLETED });\n }\n };\n this.handleActiveStreamsChange = () => {\n if (controlInvocations && !controlInvocations?.closed) {\n controlInvocations.enqueueData({\n command: PowerSyncControlCommand.UPDATE_SUBSCRIPTIONS,\n payload: JSON.stringify(this.activeStreams)\n });\n }\n };\n await receivingLines;\n }\n finally {\n this.notifyCompletedUploads = this.handleActiveStreamsChange = undefined;\n await stop();\n }\n return { immediateRestart: hideDisconnectOnRestart };\n }\n async updateSyncStatusForStartingCheckpoint(checkpoint) {\n const localProgress = await this.options.adapter.getBucketOperationProgress();\n const progress = {};\n let invalidated = false;\n for (const bucket of checkpoint.buckets) {\n const savedProgress = localProgress[bucket.bucket];\n const atLast = savedProgress?.atLast ?? 0;\n const sinceLast = savedProgress?.sinceLast ?? 0;\n progress[bucket.bucket] = {\n // The fallback priority doesn't matter here, but 3 is the one newer versions of the sync service\n // will use by default.\n priority: bucket.priority ?? 3,\n at_last: atLast,\n since_last: sinceLast,\n target_count: bucket.count ?? 0\n };\n if (bucket.count != null && bucket.count < atLast + sinceLast) {\n // Either due to a defrag / sync rule deploy or a compaction operation, the size\n // of the bucket shrank so much that the local ops exceed the ops in the updated\n // bucket. We can't prossibly report progress in this case (it would overshoot 100%).\n invalidated = true;\n }\n }\n if (invalidated) {\n for (const bucket in progress) {\n const bucketProgress = progress[bucket];\n bucketProgress.at_last = 0;\n bucketProgress.since_last = 0;\n }\n }\n this.updateSyncStatus({\n dataFlow: {\n downloading: true,\n downloadProgress: progress\n }\n });\n }\n async applyCheckpoint(checkpoint) {\n let result = await this.options.adapter.syncLocalDatabase(checkpoint);\n if (!result.checkpointValid) {\n this.logger.debug(`Checksum mismatch in checkpoint ${checkpoint.last_op_id}, will reconnect`);\n // This means checksums failed. Start again with a new checkpoint.\n // TODO: better back-off\n await new Promise((resolve) => setTimeout(resolve, 50));\n return { applied: false, endIteration: true };\n }\n else if (!result.ready) {\n this.logger.debug(`Could not apply checkpoint ${checkpoint.last_op_id} due to local data. We will retry applying the checkpoint after that upload is completed.`);\n return { applied: false, endIteration: false };\n }\n this.logger.debug(`Applied checkpoint ${checkpoint.last_op_id}`, checkpoint);\n this.updateSyncStatus({\n connected: true,\n lastSyncedAt: new Date(),\n dataFlow: {\n downloading: false,\n downloadProgress: null,\n downloadError: undefined\n }\n });\n return { applied: true, endIteration: false };\n }\n updateSyncStatus(options) {\n const updatedStatus = new SyncStatus({\n connected: options.connected ?? this.syncStatus.connected,\n connecting: !options.connected && (options.connecting ?? this.syncStatus.connecting),\n lastSyncedAt: options.lastSyncedAt ?? this.syncStatus.lastSyncedAt,\n dataFlow: {\n ...this.syncStatus.dataFlowStatus,\n ...options.dataFlow\n },\n priorityStatusEntries: options.priorityStatusEntries ?? this.syncStatus.priorityStatusEntries,\n clientImplementation: options.clientImplementation ?? this.syncStatus.clientImplementation\n });\n if (!this.syncStatus.isEqual(updatedStatus)) {\n this.syncStatus = updatedStatus;\n // Only trigger this is there was a change\n this.iterateListeners((cb) => cb.statusChanged?.(updatedStatus));\n }\n // trigger this for all updates\n this.iterateListeners((cb) => cb.statusUpdated?.(options));\n }\n async delayRetry(signal) {\n return new Promise((resolve) => {\n if (signal?.aborted) {\n // If the signal is already aborted, resolve immediately\n resolve();\n return;\n }\n const { retryDelayMs } = this.options;\n let timeoutId;\n const endDelay = () => {\n resolve();\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n signal?.removeEventListener('abort', endDelay);\n };\n signal?.addEventListener('abort', endDelay, { once: true });\n timeoutId = setTimeout(endDelay, retryDelayMs);\n });\n }\n updateSubscriptions(subscriptions) {\n this.activeStreams = subscriptions;\n this.handleActiveStreamsChange?.();\n }\n}\n//# sourceMappingURL=AbstractStreamingSyncImplementation.js.map","/**\n * SQLite operations to track changes for with {@link TriggerManager}\n * @experimental\n */\nexport var DiffTriggerOperation;\n(function (DiffTriggerOperation) {\n DiffTriggerOperation[\"INSERT\"] = \"INSERT\";\n DiffTriggerOperation[\"UPDATE\"] = \"UPDATE\";\n DiffTriggerOperation[\"DELETE\"] = \"DELETE\";\n})(DiffTriggerOperation || (DiffTriggerOperation = {}));\n//# sourceMappingURL=TriggerManager.js.map","import { DEFAULT_WATCH_THROTTLE_MS } from '../watched/WatchedQuery.js';\nimport { DiffTriggerOperation } from './TriggerManager.js';\nexport class TriggerManagerImpl {\n options;\n schema;\n constructor(options) {\n this.options = options;\n this.schema = options.schema;\n options.db.registerListener({\n schemaChanged: (schema) => {\n this.schema = schema;\n }\n });\n }\n get db() {\n return this.options.db;\n }\n async getUUID() {\n const { id: uuid } = await this.db.get(/* sql */ `\n SELECT\n uuid () as id\n `);\n // Replace dashes with underscores for SQLite table/trigger name compatibility\n return uuid.replace(/-/g, '_');\n }\n async removeTriggers(tx, triggerIds) {\n for (const triggerId of triggerIds) {\n await tx.execute(/* sql */ `DROP TRIGGER IF EXISTS ${triggerId}; `);\n }\n }\n async createDiffTrigger(options) {\n await this.db.waitForReady();\n const { source, destination, columns, when, hooks } = options;\n const operations = Object.keys(when);\n if (operations.length == 0) {\n throw new Error('At least one WHEN operation must be specified for the trigger.');\n }\n const whenClauses = Object.fromEntries(Object.entries(when).map(([operation, filter]) => [operation, `WHEN ${filter}`]));\n /**\n * Allow specifying the View name as the source.\n * We can lookup the internal table name from the schema.\n */\n const sourceDefinition = this.schema.tables.find((table) => table.viewName == source);\n if (!sourceDefinition) {\n throw new Error(`Source table or view \"${source}\" not found in the schema.`);\n }\n const replicatedColumns = columns ?? sourceDefinition.columns.map((col) => col.name);\n const internalSource = sourceDefinition.internalName;\n const triggerIds = [];\n const id = await this.getUUID();\n /**\n * We default to replicating all columns if no columns array is provided.\n */\n const jsonFragment = (source = 'NEW') => {\n if (columns == null) {\n // Track all columns\n return `${source}.data`;\n }\n else if (columns.length == 0) {\n // Don't track any columns except for the id\n return `'{}'`;\n }\n else {\n // Filter the data by the replicated columns\n return `json_object(${replicatedColumns.map((col) => `'${col}', json_extract(${source}.data, '$.${col}')`).join(', ')})`;\n }\n };\n const disposeWarningListener = this.db.registerListener({\n schemaChanged: () => {\n this.db.logger.warn(`The PowerSync schema has changed while previously configured triggers are still operational. This might cause unexpected results.`);\n }\n });\n /**\n * Declare the cleanup function early since if any of the init steps fail,\n * we need to ensure we can cleanup the created resources.\n * We unfortunately cannot rely on transaction rollback.\n */\n const cleanup = async () => {\n disposeWarningListener();\n return this.db.writeLock(async (tx) => {\n await this.removeTriggers(tx, triggerIds);\n await tx.execute(/* sql */ `DROP TABLE IF EXISTS ${destination};`);\n });\n };\n const setup = async (tx) => {\n // Allow user code to execute in this lock context before the trigger is created.\n await hooks?.beforeCreate?.(tx);\n await tx.execute(/* sql */ `\n CREATE TEMP TABLE ${destination} (\n operation_id INTEGER PRIMARY KEY AUTOINCREMENT,\n id TEXT,\n operation TEXT,\n timestamp TEXT,\n value TEXT,\n previous_value TEXT\n );\n `);\n if (operations.includes(DiffTriggerOperation.INSERT)) {\n const insertTriggerId = `ps_temp_trigger_insert_${id}`;\n triggerIds.push(insertTriggerId);\n await tx.execute(/* sql */ `\n CREATE TEMP TRIGGER ${insertTriggerId} AFTER INSERT ON ${internalSource} ${whenClauses[DiffTriggerOperation.INSERT]} BEGIN\n INSERT INTO\n ${destination} (id, operation, timestamp, value)\n VALUES\n (\n NEW.id,\n 'INSERT',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${jsonFragment('NEW')}\n );\n\n END;\n `);\n }\n if (operations.includes(DiffTriggerOperation.UPDATE)) {\n const updateTriggerId = `ps_temp_trigger_update_${id}`;\n triggerIds.push(updateTriggerId);\n await tx.execute(/* sql */ `\n CREATE TEMP TRIGGER ${updateTriggerId} AFTER\n UPDATE ON ${internalSource} ${whenClauses[DiffTriggerOperation.UPDATE]} BEGIN\n INSERT INTO\n ${destination} (id, operation, timestamp, value, previous_value)\n VALUES\n (\n NEW.id,\n 'UPDATE',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${jsonFragment('NEW')},\n ${jsonFragment('OLD')}\n );\n\n END;\n `);\n }\n if (operations.includes(DiffTriggerOperation.DELETE)) {\n const deleteTriggerId = `ps_temp_trigger_delete_${id}`;\n triggerIds.push(deleteTriggerId);\n // Create delete trigger for basic JSON\n await tx.execute(/* sql */ `\n CREATE TEMP TRIGGER ${deleteTriggerId} AFTER DELETE ON ${internalSource} ${whenClauses[DiffTriggerOperation.DELETE]} BEGIN\n INSERT INTO\n ${destination} (id, operation, timestamp, value)\n VALUES\n (\n OLD.id,\n 'DELETE',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${jsonFragment('OLD')}\n );\n\n END;\n `);\n }\n };\n try {\n await this.db.writeLock(setup);\n return cleanup;\n }\n catch (error) {\n try {\n await cleanup();\n }\n catch (cleanupError) {\n throw new AggregateError([error, cleanupError], 'Error during operation and cleanup');\n }\n throw error;\n }\n }\n async trackTableDiff(options) {\n const { source, when, columns, hooks, throttleMs = DEFAULT_WATCH_THROTTLE_MS } = options;\n await this.db.waitForReady();\n /**\n * Allow specifying the View name as the source.\n * We can lookup the internal table name from the schema.\n */\n const sourceDefinition = this.schema.tables.find((table) => table.viewName == source);\n if (!sourceDefinition) {\n throw new Error(`Source table or view \"${source}\" not found in the schema.`);\n }\n // The columns to present in the onChange context methods.\n // If no array is provided, we use all columns from the source table.\n const contextColumns = columns ?? sourceDefinition.columns.map((col) => col.name);\n const id = await this.getUUID();\n const destination = `ps_temp_track_${source}_${id}`;\n // register an onChange before the trigger is created\n const abortController = new AbortController();\n const abortOnChange = () => abortController.abort();\n this.db.onChange({\n // Note that the onChange events here have their execution scheduled.\n // Callbacks are throttled and are sequential.\n onChange: async () => {\n if (abortController.signal.aborted)\n return;\n // Run the handler in a write lock to keep the state of the\n // destination table consistent.\n await this.db.writeTransaction(async (tx) => {\n const callbackResult = await options.onChange({\n ...tx,\n destinationTable: destination,\n withDiff: async (query, params, options) => {\n // Wrap the query to expose the destination table\n const operationIdSelect = options?.castOperationIdAsText\n ? 'id, operation, CAST(operation_id AS TEXT) as operation_id, timestamp, value, previous_value'\n : '*';\n const wrappedQuery = /* sql */ `\n WITH\n DIFF AS (\n SELECT\n ${operationIdSelect}\n FROM\n ${destination}\n ORDER BY\n operation_id ASC\n ) ${query}\n `;\n return tx.getAll(wrappedQuery, params);\n },\n withExtractedDiff: async (query, params) => {\n // Wrap the query to expose the destination table\n const wrappedQuery = /* sql */ `\n WITH\n DIFF AS (\n SELECT\n id,\n ${contextColumns.length > 0\n ? `${contextColumns.map((col) => `json_extract(value, '$.${col}') as ${col}`).join(', ')},`\n : ''} operation_id as __operation_id,\n operation as __operation,\n timestamp as __timestamp,\n previous_value as __previous_value\n FROM\n ${destination}\n ORDER BY\n __operation_id ASC\n ) ${query}\n `;\n return tx.getAll(wrappedQuery, params);\n }\n });\n // Clear the destination table after processing\n await tx.execute(/* sql */ `DELETE FROM ${destination};`);\n return callbackResult;\n });\n }\n }, { tables: [destination], signal: abortController.signal, throttleMs });\n try {\n const removeTrigger = await this.createDiffTrigger({\n source,\n destination,\n columns: contextColumns,\n when,\n hooks\n });\n return async () => {\n abortOnChange();\n await removeTrigger();\n };\n }\n catch (error) {\n try {\n abortOnChange();\n }\n catch (cleanupError) {\n throw new AggregateError([error, cleanupError], 'Error during operation and cleanup');\n }\n throw error;\n }\n }\n}\n//# sourceMappingURL=TriggerManagerImpl.js.map","import { Mutex } from 'async-mutex';\nimport { EventIterator } from 'event-iterator';\nimport Logger from 'js-logger';\nimport { isBatchedUpdateNotification } from '../db/DBAdapter.js';\nimport { SyncStatus } from '../db/crud/SyncStatus.js';\nimport { UploadQueueStats } from '../db/crud/UploadQueueStatus.js';\nimport { BaseObserver } from '../utils/BaseObserver.js';\nimport { ControlledExecutor } from '../utils/ControlledExecutor.js';\nimport { symbolAsyncIterator, throttleTrailing } from '../utils/async.js';\nimport { ConnectionManager } from './ConnectionManager.js';\nimport { CustomQuery } from './CustomQuery.js';\nimport { isDBAdapter, isSQLOpenFactory, isSQLOpenOptions } from './SQLOpenFactory.js';\nimport { PSInternalTable } from './sync/bucket/BucketStorageAdapter.js';\nimport { CrudBatch } from './sync/bucket/CrudBatch.js';\nimport { CrudEntry } from './sync/bucket/CrudEntry.js';\nimport { CrudTransaction } from './sync/bucket/CrudTransaction.js';\nimport { DEFAULT_CRUD_UPLOAD_THROTTLE_MS, DEFAULT_RETRY_DELAY_MS } from './sync/stream/AbstractStreamingSyncImplementation.js';\nimport { TriggerManagerImpl } from './triggers/TriggerManagerImpl.js';\nimport { DEFAULT_WATCH_THROTTLE_MS } from './watched/WatchedQuery.js';\nimport { OnChangeQueryProcessor } from './watched/processors/OnChangeQueryProcessor.js';\nimport { coreStatusToJs } from './sync/stream/core-instruction.js';\nconst POWERSYNC_TABLE_MATCH = /(^ps_data__|^ps_data_local__)/;\nconst DEFAULT_DISCONNECT_CLEAR_OPTIONS = {\n clearLocal: true\n};\nexport const DEFAULT_POWERSYNC_CLOSE_OPTIONS = {\n disconnect: true\n};\nexport const DEFAULT_POWERSYNC_DB_OPTIONS = {\n retryDelayMs: 5000,\n crudUploadThrottleMs: DEFAULT_CRUD_UPLOAD_THROTTLE_MS\n};\nexport const DEFAULT_CRUD_BATCH_LIMIT = 100;\n/**\n * Requesting nested or recursive locks can block the application in some circumstances.\n * This default lock timeout will act as a failsafe to throw an error if a lock cannot\n * be obtained.\n */\nexport const DEFAULT_LOCK_TIMEOUT_MS = 120_000; // 2 mins\n/**\n * Tests if the input is a {@link PowerSyncDatabaseOptionsWithSettings}\n * @internal\n */\nexport const isPowerSyncDatabaseOptionsWithSettings = (test) => {\n return typeof test == 'object' && isSQLOpenOptions(test.database);\n};\nexport class AbstractPowerSyncDatabase extends BaseObserver {\n options;\n /**\n * Returns true if the connection is closed.\n */\n closed;\n ready;\n /**\n * Current connection status.\n */\n currentStatus;\n sdkVersion;\n bucketStorageAdapter;\n _isReadyPromise;\n connectionManager;\n subscriptions;\n get syncStreamImplementation() {\n return this.connectionManager.syncStreamImplementation;\n }\n /**\n * The connector used to connect to the PowerSync service.\n *\n * @returns The connector used to connect to the PowerSync service or null if `connect()` has not been called.\n */\n get connector() {\n return this.connectionManager.connector;\n }\n /**\n * The resolved connection options used to connect to the PowerSync service.\n *\n * @returns The resolved connection options used to connect to the PowerSync service or null if `connect()` has not been called.\n */\n get connectionOptions() {\n return this.connectionManager.connectionOptions;\n }\n _schema;\n _database;\n runExclusiveMutex;\n /**\n * @experimental\n * Allows creating SQLite triggers which can be used to track various operations on SQLite tables.\n */\n triggers;\n logger;\n constructor(options) {\n super();\n this.options = options;\n const { database, schema } = options;\n if (typeof schema?.toJSON != 'function') {\n throw new Error('The `schema` option should be provided and should be an instance of `Schema`.');\n }\n if (isDBAdapter(database)) {\n this._database = database;\n }\n else if (isSQLOpenFactory(database)) {\n this._database = database.openDB();\n }\n else if (isPowerSyncDatabaseOptionsWithSettings(options)) {\n this._database = this.openDBAdapter(options);\n }\n else {\n throw new Error('The provided `database` option is invalid.');\n }\n this.logger = options.logger ?? Logger.get(`PowerSyncDatabase[${this._database.name}]`);\n this.bucketStorageAdapter = this.generateBucketStorageAdapter();\n this.closed = false;\n this.currentStatus = new SyncStatus({});\n this.options = { ...DEFAULT_POWERSYNC_DB_OPTIONS, ...options };\n this._schema = schema;\n this.ready = false;\n this.sdkVersion = '';\n this.runExclusiveMutex = new Mutex();\n // Start async init\n this.subscriptions = {\n firstStatusMatching: (predicate, abort) => this.waitForStatus(predicate, abort),\n resolveOfflineSyncStatus: () => this.resolveOfflineSyncStatus(),\n rustSubscriptionsCommand: async (payload) => {\n await this.writeTransaction((tx) => {\n return tx.execute('select powersync_control(?,?)', ['subscriptions', JSON.stringify(payload)]);\n });\n }\n };\n this.connectionManager = new ConnectionManager({\n createSyncImplementation: async (connector, options) => {\n await this.waitForReady();\n return this.runExclusive(async () => {\n const sync = this.generateSyncStreamImplementation(connector, this.resolvedConnectionOptions(options));\n const onDispose = sync.registerListener({\n statusChanged: (status) => {\n this.currentStatus = new SyncStatus({\n ...status.toJSON(),\n hasSynced: this.currentStatus?.hasSynced || !!status.lastSyncedAt\n });\n this.iterateListeners((cb) => cb.statusChanged?.(this.currentStatus));\n }\n });\n await sync.waitForReady();\n return {\n sync,\n onDispose\n };\n });\n },\n logger: this.logger\n });\n this._isReadyPromise = this.initialize();\n this.triggers = new TriggerManagerImpl({\n db: this,\n schema: this.schema\n });\n }\n /**\n * Schema used for the local database.\n */\n get schema() {\n return this._schema;\n }\n /**\n * The underlying database.\n *\n * For the most part, behavior is the same whether querying on the underlying database, or on {@link AbstractPowerSyncDatabase}.\n */\n get database() {\n return this._database;\n }\n /**\n * Whether a connection to the PowerSync service is currently open.\n */\n get connected() {\n return this.currentStatus?.connected || false;\n }\n get connecting() {\n return this.currentStatus?.connecting || false;\n }\n /**\n * @returns A promise which will resolve once initialization is completed.\n */\n async waitForReady() {\n if (this.ready) {\n return;\n }\n await this._isReadyPromise;\n }\n /**\n * Wait for the first sync operation to complete.\n *\n * @param request Either an abort signal (after which the promise will complete regardless of\n * whether a full sync was completed) or an object providing an abort signal and a priority target.\n * When a priority target is set, the promise may complete when all buckets with the given (or higher)\n * priorities have been synchronized. This can be earlier than a complete sync.\n * @returns A promise which will resolve once the first full sync has completed.\n */\n async waitForFirstSync(request) {\n const signal = request instanceof AbortSignal ? request : request?.signal;\n const priority = request && 'priority' in request ? request.priority : undefined;\n const statusMatches = priority === undefined\n ? (status) => status.hasSynced\n : (status) => status.statusForPriority(priority).hasSynced;\n return this.waitForStatus(statusMatches, signal);\n }\n /**\n * Waits for the first sync status for which the `status` callback returns a truthy value.\n */\n async waitForStatus(predicate, signal) {\n if (predicate(this.currentStatus)) {\n return;\n }\n return new Promise((resolve) => {\n const dispose = this.registerListener({\n statusChanged: (status) => {\n if (predicate(status)) {\n abort();\n }\n }\n });\n function abort() {\n dispose();\n resolve();\n }\n if (signal?.aborted) {\n abort();\n }\n else {\n signal?.addEventListener('abort', abort);\n }\n });\n }\n /**\n * Entry point for executing initialization logic.\n * This is to be automatically executed in the constructor.\n */\n async initialize() {\n await this._initialize();\n await this.bucketStorageAdapter.init();\n await this._loadVersion();\n await this.updateSchema(this.options.schema);\n await this.resolveOfflineSyncStatus();\n await this.database.execute('PRAGMA RECURSIVE_TRIGGERS=TRUE');\n this.ready = true;\n this.iterateListeners((cb) => cb.initialized?.());\n }\n async _loadVersion() {\n try {\n const { version } = await this.database.get('SELECT powersync_rs_version() as version');\n this.sdkVersion = version;\n }\n catch (e) {\n throw new Error(`The powersync extension is not loaded correctly. Details: ${e.message}`);\n }\n let versionInts;\n try {\n versionInts = this.sdkVersion.split(/[.\\/]/)\n .slice(0, 3)\n .map((n) => parseInt(n));\n }\n catch (e) {\n throw new Error(`Unsupported powersync extension version. Need >=0.4.5 <1.0.0, got: ${this.sdkVersion}. Details: ${e.message}`);\n }\n // Validate >=0.4.5 <1.0.0\n if (versionInts[0] != 0 || versionInts[1] < 4 || (versionInts[1] == 4 && versionInts[2] < 5)) {\n throw new Error(`Unsupported powersync extension version. Need >=0.4.5 <1.0.0, got: ${this.sdkVersion}`);\n }\n }\n async resolveOfflineSyncStatus() {\n const result = await this.database.get('SELECT powersync_offline_sync_status() as r');\n const parsed = JSON.parse(result.r);\n const updatedStatus = new SyncStatus({\n ...this.currentStatus.toJSON(),\n ...coreStatusToJs(parsed)\n });\n if (!updatedStatus.isEqual(this.currentStatus)) {\n this.currentStatus = updatedStatus;\n this.iterateListeners((l) => l.statusChanged?.(this.currentStatus));\n }\n }\n /**\n * Replace the schema with a new version. This is for advanced use cases - typically the schema should just be specified once in the constructor.\n *\n * Cannot be used while connected - this should only be called before {@link AbstractPowerSyncDatabase.connect}.\n */\n async updateSchema(schema) {\n if (this.syncStreamImplementation) {\n throw new Error('Cannot update schema while connected');\n }\n /**\n * TODO\n * Validations only show a warning for now.\n * The next major release should throw an exception.\n */\n try {\n schema.validate();\n }\n catch (ex) {\n this.logger.warn('Schema validation failed. Unexpected behaviour could occur', ex);\n }\n this._schema = schema;\n await this.database.execute('SELECT powersync_replace_schema(?)', [JSON.stringify(this.schema.toJSON())]);\n await this.database.refreshSchema();\n this.iterateListeners(async (cb) => cb.schemaChanged?.(schema));\n }\n /**\n * Wait for initialization to complete.\n * While initializing is automatic, this helps to catch and report initialization errors.\n */\n async init() {\n return this.waitForReady();\n }\n // Use the options passed in during connect, or fallback to the options set during database creation or fallback to the default options\n resolvedConnectionOptions(options) {\n return {\n ...options,\n retryDelayMs: options?.retryDelayMs ?? this.options.retryDelayMs ?? this.options.retryDelay ?? DEFAULT_RETRY_DELAY_MS,\n crudUploadThrottleMs: options?.crudUploadThrottleMs ?? this.options.crudUploadThrottleMs ?? DEFAULT_CRUD_UPLOAD_THROTTLE_MS\n };\n }\n /**\n * @deprecated Use {@link AbstractPowerSyncDatabase#close} instead.\n * Clears all listeners registered by {@link AbstractPowerSyncDatabase#registerListener}.\n */\n dispose() {\n return super.dispose();\n }\n /**\n * Locking mechanism for exclusively running critical portions of connect/disconnect operations.\n * Locking here is mostly only important on web for multiple tab scenarios.\n */\n runExclusive(callback) {\n return this.runExclusiveMutex.runExclusive(callback);\n }\n /**\n * Connects to stream of events from the PowerSync instance.\n */\n async connect(connector, options) {\n const resolvedOptions = options ?? {};\n resolvedOptions.serializedSchema = this.schema.toJSON();\n return this.connectionManager.connect(connector, resolvedOptions);\n }\n /**\n * Close the sync connection.\n *\n * Use {@link connect} to connect again.\n */\n async disconnect() {\n return this.connectionManager.disconnect();\n }\n /**\n * Disconnect and clear the database.\n * Use this when logging out.\n * The database can still be queried after this is called, but the tables\n * would be empty.\n *\n * To preserve data in local-only tables, set clearLocal to false.\n */\n async disconnectAndClear(options = DEFAULT_DISCONNECT_CLEAR_OPTIONS) {\n await this.disconnect();\n await this.waitForReady();\n const { clearLocal } = options;\n // TODO DB name, verify this is necessary with extension\n await this.database.writeTransaction(async (tx) => {\n await tx.execute('SELECT powersync_clear(?)', [clearLocal ? 1 : 0]);\n });\n // The data has been deleted - reset the sync status\n this.currentStatus = new SyncStatus({});\n this.iterateListeners((l) => l.statusChanged?.(this.currentStatus));\n }\n /**\n * Create a sync stream to query its status or to subscribe to it.\n *\n * @param name The name of the stream to subscribe to.\n * @param params Optional parameters for the stream subscription.\n * @returns A {@link SyncStream} instance that can be subscribed to.\n * @experimental Sync streams are currently in alpha.\n */\n syncStream(name, params) {\n return this.connectionManager.stream(this.subscriptions, name, params ?? null);\n }\n /**\n * Close the database, releasing resources.\n *\n * Also disconnects any active connection.\n *\n * Once close is called, this connection cannot be used again - a new one\n * must be constructed.\n */\n async close(options = DEFAULT_POWERSYNC_CLOSE_OPTIONS) {\n await this.waitForReady();\n if (this.closed) {\n return;\n }\n await this.iterateAsyncListeners(async (cb) => cb.closing?.());\n const { disconnect } = options;\n if (disconnect) {\n await this.disconnect();\n }\n await this.connectionManager.close();\n await this.database.close();\n this.closed = true;\n await this.iterateAsyncListeners(async (cb) => cb.closed?.());\n }\n /**\n * Get upload queue size estimate and count.\n */\n async getUploadQueueStats(includeSize) {\n return this.readTransaction(async (tx) => {\n if (includeSize) {\n const result = await tx.execute(`SELECT SUM(cast(data as blob) + 20) as size, count(*) as count FROM ${PSInternalTable.CRUD}`);\n const row = result.rows.item(0);\n return new UploadQueueStats(row?.count ?? 0, row?.size ?? 0);\n }\n else {\n const result = await tx.execute(`SELECT count(*) as count FROM ${PSInternalTable.CRUD}`);\n const row = result.rows.item(0);\n return new UploadQueueStats(row?.count ?? 0);\n }\n });\n }\n /**\n * Get a batch of CRUD data to upload.\n *\n * Returns null if there is no data to upload.\n *\n * Use this from the {@link PowerSyncBackendConnector.uploadData} callback.\n *\n * Once the data have been successfully uploaded, call {@link CrudBatch.complete} before\n * requesting the next batch.\n *\n * Use {@link limit} to specify the maximum number of updates to return in a single\n * batch.\n *\n * This method does include transaction ids in the result, but does not group\n * data by transaction. One batch may contain data from multiple transactions,\n * and a single transaction may be split over multiple batches.\n *\n * @param limit Maximum number of CRUD entries to include in the batch\n * @returns A batch of CRUD operations to upload, or null if there are none\n */\n async getCrudBatch(limit = DEFAULT_CRUD_BATCH_LIMIT) {\n const result = await this.getAll(`SELECT id, tx_id, data FROM ${PSInternalTable.CRUD} ORDER BY id ASC LIMIT ?`, [limit + 1]);\n const all = result.map((row) => CrudEntry.fromRow(row)) ?? [];\n let haveMore = false;\n if (all.length > limit) {\n all.pop();\n haveMore = true;\n }\n if (all.length == 0) {\n return null;\n }\n const last = all[all.length - 1];\n return new CrudBatch(all, haveMore, async (writeCheckpoint) => this.handleCrudCheckpoint(last.clientId, writeCheckpoint));\n }\n /**\n * Get the next recorded transaction to upload.\n *\n * Returns null if there is no data to upload.\n *\n * Use this from the {@link PowerSyncBackendConnector.uploadData} callback.\n *\n * Once the data have been successfully uploaded, call {@link CrudTransaction.complete} before\n * requesting the next transaction.\n *\n * Unlike {@link getCrudBatch}, this only returns data from a single transaction at a time.\n * All data for the transaction is loaded into memory.\n *\n * @returns A transaction of CRUD operations to upload, or null if there are none\n */\n async getNextCrudTransaction() {\n const iterator = this.getCrudTransactions()[symbolAsyncIterator]();\n return (await iterator.next()).value;\n }\n /**\n * Returns an async iterator of completed transactions with local writes against the database.\n *\n * This is typically used from the {@link PowerSyncBackendConnector.uploadData} callback. Each entry emitted by the\n * returned iterator is a full transaction containing all local writes made while that transaction was active.\n *\n * Unlike {@link getNextCrudTransaction}, which always returns the oldest transaction that hasn't been\n * {@link CrudTransaction.complete}d yet, this iterator can be used to receive multiple transactions. Calling\n * {@link CrudTransaction.complete} will mark that and all prior transactions emitted by the iterator as completed.\n *\n * This can be used to upload multiple transactions in a single batch, e.g with:\n *\n * ```JavaScript\n * let lastTransaction = null;\n * let batch = [];\n *\n * for await (const transaction of database.getCrudTransactions()) {\n * batch.push(...transaction.crud);\n * lastTransaction = transaction;\n *\n * if (batch.length > 10) {\n * break;\n * }\n * }\n * ```\n *\n * If there is no local data to upload, the async iterator complete without emitting any items.\n *\n * Note that iterating over async iterables requires a [polyfill](https://github.com/powersync-ja/powersync-js/tree/main/packages/react-native#babel-plugins-watched-queries)\n * for React Native.\n */\n getCrudTransactions() {\n return {\n [symbolAsyncIterator]: () => {\n let lastCrudItemId = -1;\n const sql = `\nWITH RECURSIVE crud_entries AS (\n SELECT id, tx_id, data FROM ps_crud WHERE id = (SELECT min(id) FROM ps_crud WHERE id > ?)\n UNION ALL\n SELECT ps_crud.id, ps_crud.tx_id, ps_crud.data FROM ps_crud\n INNER JOIN crud_entries ON crud_entries.id + 1 = rowid\n WHERE crud_entries.tx_id = ps_crud.tx_id\n)\nSELECT * FROM crud_entries;\n `;\n return {\n next: async () => {\n const nextTransaction = await this.database.getAll(sql, [lastCrudItemId]);\n if (nextTransaction.length == 0) {\n return { done: true, value: null };\n }\n const items = nextTransaction.map((row) => CrudEntry.fromRow(row));\n const last = items[items.length - 1];\n const txId = last.transactionId;\n lastCrudItemId = last.clientId;\n return {\n done: false,\n value: new CrudTransaction(items, async (writeCheckpoint) => this.handleCrudCheckpoint(last.clientId, writeCheckpoint), txId)\n };\n }\n };\n }\n };\n }\n /**\n * Get an unique client id for this database.\n *\n * The id is not reset when the database is cleared, only when the database is deleted.\n *\n * @returns A unique identifier for the database instance\n */\n async getClientId() {\n return this.bucketStorageAdapter.getClientId();\n }\n async handleCrudCheckpoint(lastClientId, writeCheckpoint) {\n return this.writeTransaction(async (tx) => {\n await tx.execute(`DELETE FROM ${PSInternalTable.CRUD} WHERE id <= ?`, [lastClientId]);\n if (writeCheckpoint) {\n const check = await tx.execute(`SELECT 1 FROM ${PSInternalTable.CRUD} LIMIT 1`);\n if (!check.rows?.length) {\n await tx.execute(`UPDATE ${PSInternalTable.BUCKETS} SET target_op = CAST(? as INTEGER) WHERE name='$local'`, [\n writeCheckpoint\n ]);\n }\n }\n else {\n await tx.execute(`UPDATE ${PSInternalTable.BUCKETS} SET target_op = CAST(? as INTEGER) WHERE name='$local'`, [\n this.bucketStorageAdapter.getMaxOpId()\n ]);\n }\n });\n }\n /**\n * Execute a SQL write (INSERT/UPDATE/DELETE) query\n * and optionally return results.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns The query result as an object with structured key-value pairs\n */\n async execute(sql, parameters) {\n return this.writeLock((tx) => tx.execute(sql, parameters));\n }\n /**\n * Execute a SQL write (INSERT/UPDATE/DELETE) query directly on the database without any PowerSync processing.\n * This bypasses certain PowerSync abstractions and is useful for accessing the raw database results.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns The raw query result from the underlying database as a nested array of raw values, where each row is\n * represented as an array of column values without field names.\n */\n async executeRaw(sql, parameters) {\n await this.waitForReady();\n return this.database.executeRaw(sql, parameters);\n }\n /**\n * Execute a write query (INSERT/UPDATE/DELETE) multiple times with each parameter set\n * and optionally return results.\n * This is faster than executing separately with each parameter set.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional 2D array of parameter sets, where each inner array is a set of parameters for one execution\n * @returns The query result\n */\n async executeBatch(sql, parameters) {\n await this.waitForReady();\n return this.database.executeBatch(sql, parameters);\n }\n /**\n * Execute a read-only query and return results.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns An array of results\n */\n async getAll(sql, parameters) {\n await this.waitForReady();\n return this.database.getAll(sql, parameters);\n }\n /**\n * Execute a read-only query and return the first result, or null if the ResultSet is empty.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns The first result if found, or null if no results are returned\n */\n async getOptional(sql, parameters) {\n await this.waitForReady();\n return this.database.getOptional(sql, parameters);\n }\n /**\n * Execute a read-only query and return the first result, error if the ResultSet is empty.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns The first result matching the query\n * @throws Error if no rows are returned\n */\n async get(sql, parameters) {\n await this.waitForReady();\n return this.database.get(sql, parameters);\n }\n /**\n * Takes a read lock, without starting a transaction.\n * In most cases, {@link readTransaction} should be used instead.\n */\n async readLock(callback) {\n await this.waitForReady();\n return this.database.readLock(callback);\n }\n /**\n * Takes a global lock, without starting a transaction.\n * In most cases, {@link writeTransaction} should be used instead.\n */\n async writeLock(callback) {\n await this.waitForReady();\n return this.database.writeLock(callback);\n }\n /**\n * Open a read-only transaction.\n * Read transactions can run concurrently to a write transaction.\n * Changes from any write transaction are not visible to read transactions started before it.\n *\n * @param callback Function to execute within the transaction\n * @param lockTimeout Time in milliseconds to wait for a lock before throwing an error\n * @returns The result of the callback\n * @throws Error if the lock cannot be obtained within the timeout period\n */\n async readTransaction(callback, lockTimeout = DEFAULT_LOCK_TIMEOUT_MS) {\n await this.waitForReady();\n return this.database.readTransaction(async (tx) => {\n const res = await callback({ ...tx });\n await tx.rollback();\n return res;\n }, { timeoutMs: lockTimeout });\n }\n /**\n * Open a read-write transaction.\n * This takes a global lock - only one write transaction can execute against the database at a time.\n * Statements within the transaction must be done on the provided {@link Transaction} interface.\n *\n * @param callback Function to execute within the transaction\n * @param lockTimeout Time in milliseconds to wait for a lock before throwing an error\n * @returns The result of the callback\n * @throws Error if the lock cannot be obtained within the timeout period\n */\n async writeTransaction(callback, lockTimeout = DEFAULT_LOCK_TIMEOUT_MS) {\n await this.waitForReady();\n return this.database.writeTransaction(async (tx) => {\n const res = await callback(tx);\n await tx.commit();\n return res;\n }, { timeoutMs: lockTimeout });\n }\n watch(sql, parameters, handlerOrOptions, maybeOptions) {\n if (handlerOrOptions && typeof handlerOrOptions === 'object' && 'onResult' in handlerOrOptions) {\n const handler = handlerOrOptions;\n const options = maybeOptions;\n return this.watchWithCallback(sql, parameters, handler, options);\n }\n const options = handlerOrOptions;\n return this.watchWithAsyncGenerator(sql, parameters, options);\n }\n /**\n * Allows defining a query which can be used to build a {@link WatchedQuery}.\n * The defined query will be executed with {@link AbstractPowerSyncDatabase#getAll}.\n * An optional mapper function can be provided to transform the results.\n *\n * @example\n * ```javascript\n * const watchedTodos = powersync.query({\n * sql: `SELECT photo_id as id FROM todos WHERE photo_id IS NOT NULL`,\n * parameters: [],\n * mapper: (row) => ({\n * ...row,\n * created_at: new Date(row.created_at as string)\n * })\n * })\n * .watch()\n * // OR use .differentialWatch() for fine-grained watches.\n * ```\n */\n query(query) {\n const { sql, parameters = [], mapper } = query;\n const compatibleQuery = {\n compile: () => ({\n sql,\n parameters\n }),\n execute: async ({ sql, parameters }) => {\n const result = await this.getAll(sql, parameters);\n return mapper ? result.map(mapper) : result;\n }\n };\n return this.customQuery(compatibleQuery);\n }\n /**\n * Allows building a {@link WatchedQuery} using an existing {@link WatchCompatibleQuery}.\n * The watched query will use the provided {@link WatchCompatibleQuery.execute} method to query results.\n *\n * @example\n * ```javascript\n *\n * // Potentially a query from an ORM like Drizzle\n * const query = db.select().from(lists);\n *\n * const watchedTodos = powersync.customQuery(query)\n * .watch()\n * // OR use .differentialWatch() for fine-grained watches.\n * ```\n */\n customQuery(query) {\n return new CustomQuery({\n db: this,\n query\n });\n }\n /**\n * Execute a read query every time the source tables are modified.\n * Use {@link SQLWatchOptions.throttleMs} to specify the minimum interval between queries.\n * Source tables are automatically detected using `EXPLAIN QUERY PLAN`.\n *\n * Note that the `onChange` callback member of the handler is required.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @param handler Callbacks for handling results and errors\n * @param options Options for configuring watch behavior\n */\n watchWithCallback(sql, parameters, handler, options) {\n const { onResult, onError = (e) => this.logger.error(e) } = handler ?? {};\n if (!onResult) {\n throw new Error('onResult is required');\n }\n const { comparator } = options ?? {};\n // This API yields a QueryResult type.\n // This is not a standard Array result, which makes it incompatible with the .query API.\n const watchedQuery = new OnChangeQueryProcessor({\n db: this,\n comparator,\n placeholderData: null,\n watchOptions: {\n query: {\n compile: () => ({\n sql: sql,\n parameters: parameters ?? []\n }),\n execute: () => this.executeReadOnly(sql, parameters)\n },\n reportFetching: false,\n throttleMs: options?.throttleMs ?? DEFAULT_WATCH_THROTTLE_MS,\n triggerOnTables: options?.tables\n }\n });\n const dispose = watchedQuery.registerListener({\n onData: (data) => {\n if (!data) {\n // This should not happen. We only use null for the initial data.\n return;\n }\n onResult(data);\n },\n onError: (error) => {\n onError(error);\n }\n });\n options?.signal?.addEventListener('abort', () => {\n dispose();\n watchedQuery.close();\n });\n }\n /**\n * Execute a read query every time the source tables are modified.\n * Use {@link SQLWatchOptions.throttleMs} to specify the minimum interval between queries.\n * Source tables are automatically detected using `EXPLAIN QUERY PLAN`.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @param options Options for configuring watch behavior\n * @returns An AsyncIterable that yields QueryResults whenever the data changes\n */\n watchWithAsyncGenerator(sql, parameters, options) {\n return new EventIterator((eventOptions) => {\n const handler = {\n onResult: (result) => {\n eventOptions.push(result);\n },\n onError: (error) => {\n eventOptions.fail(error);\n }\n };\n this.watchWithCallback(sql, parameters, handler, options);\n options?.signal?.addEventListener('abort', () => {\n eventOptions.stop();\n });\n });\n }\n /**\n * Resolves the list of tables that are used in a SQL query.\n * If tables are specified in the options, those are used directly.\n * Otherwise, analyzes the query using EXPLAIN to determine which tables are accessed.\n *\n * @param sql The SQL query to analyze\n * @param parameters Optional parameters for the SQL query\n * @param options Optional watch options that may contain explicit table list\n * @returns Array of table names that the query depends on\n */\n async resolveTables(sql, parameters, options) {\n const resolvedTables = options?.tables ? [...options.tables] : [];\n if (!options?.tables) {\n const explained = await this.getAll(`EXPLAIN ${sql}`, parameters);\n const rootPages = explained\n .filter((row) => row.opcode == 'OpenRead' && row.p3 == 0 && typeof row.p2 == 'number')\n .map((row) => row.p2);\n const tables = await this.getAll(`SELECT DISTINCT tbl_name FROM sqlite_master WHERE rootpage IN (SELECT json_each.value FROM json_each(?))`, [JSON.stringify(rootPages)]);\n for (const table of tables) {\n resolvedTables.push(table.tbl_name.replace(POWERSYNC_TABLE_MATCH, ''));\n }\n }\n return resolvedTables;\n }\n onChange(handlerOrOptions, maybeOptions) {\n if (handlerOrOptions && typeof handlerOrOptions === 'object' && 'onChange' in handlerOrOptions) {\n const handler = handlerOrOptions;\n const options = maybeOptions;\n return this.onChangeWithCallback(handler, options);\n }\n const options = handlerOrOptions;\n return this.onChangeWithAsyncGenerator(options);\n }\n /**\n * Invoke the provided callback on any changes to any of the specified tables.\n *\n * This is preferred over {@link watchWithCallback} when multiple queries need to be performed\n * together when data is changed.\n *\n * Note that the `onChange` callback member of the handler is required.\n *\n * @param handler Callbacks for handling change events and errors\n * @param options Options for configuring watch behavior\n * @returns A dispose function to stop watching for changes\n */\n onChangeWithCallback(handler, options) {\n const { onChange, onError = (e) => this.logger.error(e) } = handler ?? {};\n if (!onChange) {\n throw new Error('onChange is required');\n }\n const resolvedOptions = options ?? {};\n const watchedTables = new Set((resolvedOptions?.tables ?? []).flatMap((table) => [table, `ps_data__${table}`, `ps_data_local__${table}`]));\n const changedTables = new Set();\n const throttleMs = resolvedOptions.throttleMs ?? DEFAULT_WATCH_THROTTLE_MS;\n const executor = new ControlledExecutor(async (e) => {\n await onChange(e);\n });\n const flushTableUpdates = throttleTrailing(() => this.handleTableChanges(changedTables, watchedTables, (intersection) => {\n if (resolvedOptions?.signal?.aborted)\n return;\n executor.schedule({ changedTables: intersection });\n }), throttleMs);\n if (options?.triggerImmediate) {\n executor.schedule({ changedTables: [] });\n }\n const dispose = this.database.registerListener({\n tablesUpdated: async (update) => {\n try {\n this.processTableUpdates(update, changedTables);\n flushTableUpdates();\n }\n catch (error) {\n onError?.(error);\n }\n }\n });\n resolvedOptions.signal?.addEventListener('abort', () => {\n executor.dispose();\n dispose();\n });\n return () => dispose();\n }\n /**\n * Create a Stream of changes to any of the specified tables.\n *\n * This is preferred over {@link watchWithAsyncGenerator} when multiple queries need to be performed\n * together when data is changed.\n *\n * Note: do not declare this as `async *onChange` as it will not work in React Native.\n *\n * @param options Options for configuring watch behavior\n * @returns An AsyncIterable that yields change events whenever the specified tables change\n */\n onChangeWithAsyncGenerator(options) {\n const resolvedOptions = options ?? {};\n return new EventIterator((eventOptions) => {\n const dispose = this.onChangeWithCallback({\n onChange: (event) => {\n eventOptions.push(event);\n },\n onError: (error) => {\n eventOptions.fail(error);\n }\n }, options);\n resolvedOptions.signal?.addEventListener('abort', () => {\n eventOptions.stop();\n // Maybe fail?\n });\n return () => dispose();\n });\n }\n handleTableChanges(changedTables, watchedTables, onDetectedChanges) {\n if (changedTables.size > 0) {\n const intersection = Array.from(changedTables.values()).filter((change) => watchedTables.has(change));\n if (intersection.length) {\n onDetectedChanges(intersection);\n }\n }\n changedTables.clear();\n }\n processTableUpdates(updateNotification, changedTables) {\n const tables = isBatchedUpdateNotification(updateNotification)\n ? updateNotification.tables\n : [updateNotification.table];\n for (const table of tables) {\n changedTables.add(table);\n }\n }\n /**\n * @ignore\n */\n async executeReadOnly(sql, params) {\n await this.waitForReady();\n return this.database.readLock((tx) => tx.execute(sql, params));\n }\n}\n//# sourceMappingURL=AbstractPowerSyncDatabase.js.map","import Logger from 'js-logger';\nexport class AbstractPowerSyncDatabaseOpenFactory {\n options;\n constructor(options) {\n this.options = options;\n options.logger = options.logger ?? Logger.get(`PowerSync ${this.options.dbFilename}`);\n }\n /**\n * Schema used for the local database.\n */\n get schema() {\n return this.options.schema;\n }\n generateOptions() {\n return {\n database: this.openDB(),\n ...this.options\n };\n }\n getInstance() {\n const options = this.generateOptions();\n return this.generateInstance(options);\n }\n}\n//# sourceMappingURL=AbstractPowerSyncOpenFactory.js.map","export function runOnSchemaChange(callback, db, options) {\n const triggerWatchedQuery = () => {\n const abortController = new AbortController();\n let disposeSchemaListener = null;\n const stopWatching = () => {\n abortController.abort('Abort triggered');\n disposeSchemaListener?.();\n disposeSchemaListener = null;\n // Stop listening to upstream abort for this watch\n options?.signal?.removeEventListener('abort', stopWatching);\n };\n options?.signal?.addEventListener('abort', stopWatching);\n disposeSchemaListener = db.registerListener({\n schemaChanged: async () => {\n stopWatching();\n // Re trigger the watched query (recursively), setTimeout ensures that we don't modify the list of listeners while iterating through them\n setTimeout(() => triggerWatchedQuery(), 0);\n }\n });\n callback(abortController.signal);\n };\n triggerWatchedQuery();\n}\n//# sourceMappingURL=runOnSchemaChange.js.map","import { runOnSchemaChange } from './runOnSchemaChange.js';\nexport function compilableQueryWatch(db, query, handler, options) {\n const { onResult, onError = (e) => { } } = handler ?? {};\n if (!onResult) {\n throw new Error('onResult is required');\n }\n const watchQuery = async (abortSignal) => {\n try {\n const toSql = query.compile();\n const resolvedTables = await db.resolveTables(toSql.sql, toSql.parameters, options);\n // Fetch initial data\n const result = await query.execute();\n onResult(result);\n db.onChangeWithCallback({\n onChange: async () => {\n try {\n const result = await query.execute();\n onResult(result);\n }\n catch (error) {\n onError(error);\n }\n },\n onError\n }, {\n ...(options ?? {}),\n tables: resolvedTables,\n // Override the abort signal since we intercept it\n signal: abortSignal\n });\n }\n catch (error) {\n onError(error);\n }\n };\n runOnSchemaChange(watchQuery, db, options);\n}\n//# sourceMappingURL=compilableQueryWatch.js.map","export const MAX_OP_ID = '9223372036854775807';\n//# sourceMappingURL=constants.js.map","import Logger from 'js-logger';\nimport { extractTableUpdates } from '../../../db/DBAdapter.js';\nimport { BaseObserver } from '../../../utils/BaseObserver.js';\nimport { MAX_OP_ID } from '../../constants.js';\nimport { PSInternalTable } from './BucketStorageAdapter.js';\nimport { CrudEntry } from './CrudEntry.js';\nexport class SqliteBucketStorage extends BaseObserver {\n db;\n logger;\n tableNames;\n _hasCompletedSync;\n updateListener;\n _clientId;\n constructor(db, logger = Logger.get('SqliteBucketStorage')) {\n super();\n this.db = db;\n this.logger = logger;\n this._hasCompletedSync = false;\n this.tableNames = new Set();\n this.updateListener = db.registerListener({\n tablesUpdated: (update) => {\n const tables = extractTableUpdates(update);\n if (tables.includes(PSInternalTable.CRUD)) {\n this.iterateListeners((l) => l.crudUpdate?.());\n }\n }\n });\n }\n async init() {\n this._hasCompletedSync = false;\n const existingTableRows = await this.db.getAll(`SELECT name FROM sqlite_master WHERE type='table' AND name GLOB 'ps_data_*'`);\n for (const row of existingTableRows ?? []) {\n this.tableNames.add(row.name);\n }\n }\n async dispose() {\n this.updateListener?.();\n }\n async _getClientId() {\n const row = await this.db.get('SELECT powersync_client_id() as client_id');\n return row['client_id'];\n }\n getClientId() {\n if (this._clientId == null) {\n this._clientId = this._getClientId();\n }\n return this._clientId;\n }\n getMaxOpId() {\n return MAX_OP_ID;\n }\n /**\n * Reset any caches.\n */\n startSession() { }\n async getBucketStates() {\n const result = await this.db.getAll(\"SELECT name as bucket, cast(last_op as TEXT) as op_id FROM ps_buckets WHERE pending_delete = 0 AND name != '$local'\");\n return result;\n }\n async getBucketOperationProgress() {\n const rows = await this.db.getAll('SELECT name, count_at_last, count_since_last FROM ps_buckets');\n return Object.fromEntries(rows.map((r) => [r.name, { atLast: r.count_at_last, sinceLast: r.count_since_last }]));\n }\n async saveSyncData(batch, fixedKeyFormat = false) {\n await this.writeTransaction(async (tx) => {\n for (const b of batch.buckets) {\n await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', [\n 'save',\n JSON.stringify({ buckets: [b.toJSON(fixedKeyFormat)] })\n ]);\n this.logger.debug(`Saved batch of data for bucket: ${b.bucket}, operations: ${b.data.length}`);\n }\n });\n }\n async removeBuckets(buckets) {\n for (const bucket of buckets) {\n await this.deleteBucket(bucket);\n }\n }\n /**\n * Mark a bucket for deletion.\n */\n async deleteBucket(bucket) {\n await this.writeTransaction(async (tx) => {\n await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', ['delete_bucket', bucket]);\n });\n this.logger.debug(`Done deleting bucket ${bucket}`);\n }\n async hasCompletedSync() {\n if (this._hasCompletedSync) {\n return true;\n }\n const r = await this.db.get(`SELECT powersync_last_synced_at() as synced_at`);\n const completed = r.synced_at != null;\n if (completed) {\n this._hasCompletedSync = true;\n }\n return completed;\n }\n async syncLocalDatabase(checkpoint, priority) {\n const r = await this.validateChecksums(checkpoint, priority);\n if (!r.checkpointValid) {\n this.logger.error('Checksums failed for', r.checkpointFailures);\n for (const b of r.checkpointFailures ?? []) {\n await this.deleteBucket(b);\n }\n return { ready: false, checkpointValid: false, checkpointFailures: r.checkpointFailures };\n }\n if (priority == null) {\n this.logger.debug(`Validated checksums checkpoint ${checkpoint.last_op_id}`);\n }\n else {\n this.logger.debug(`Validated checksums for partial checkpoint ${checkpoint.last_op_id}, priority ${priority}`);\n }\n let buckets = checkpoint.buckets;\n if (priority !== undefined) {\n buckets = buckets.filter((b) => hasMatchingPriority(priority, b));\n }\n const bucketNames = buckets.map((b) => b.bucket);\n await this.writeTransaction(async (tx) => {\n await tx.execute(`UPDATE ps_buckets SET last_op = ? WHERE name IN (SELECT json_each.value FROM json_each(?))`, [\n checkpoint.last_op_id,\n JSON.stringify(bucketNames)\n ]);\n if (priority == null && checkpoint.write_checkpoint) {\n await tx.execute(\"UPDATE ps_buckets SET last_op = ? WHERE name = '$local'\", [checkpoint.write_checkpoint]);\n }\n });\n const valid = await this.updateObjectsFromBuckets(checkpoint, priority);\n if (!valid) {\n return { ready: false, checkpointValid: true };\n }\n return {\n ready: true,\n checkpointValid: true\n };\n }\n /**\n * Atomically update the local state to the current checkpoint.\n *\n * This includes creating new tables, dropping old tables, and copying data over from the oplog.\n */\n async updateObjectsFromBuckets(checkpoint, priority) {\n let arg = '';\n if (priority !== undefined) {\n const affectedBuckets = [];\n for (const desc of checkpoint.buckets) {\n if (hasMatchingPriority(priority, desc)) {\n affectedBuckets.push(desc.bucket);\n }\n }\n arg = JSON.stringify({ priority, buckets: affectedBuckets });\n }\n return this.writeTransaction(async (tx) => {\n const { insertId: result } = await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', [\n 'sync_local',\n arg\n ]);\n if (result == 1) {\n if (priority == null) {\n const bucketToCount = Object.fromEntries(checkpoint.buckets.map((b) => [b.bucket, b.count]));\n // The two parameters could be replaced with one, but: https://github.com/powersync-ja/better-sqlite3/pull/6\n const jsonBucketCount = JSON.stringify(bucketToCount);\n await tx.execute(\"UPDATE ps_buckets SET count_since_last = 0, count_at_last = ?->name WHERE name != '$local' AND ?->name IS NOT NULL\", [jsonBucketCount, jsonBucketCount]);\n }\n return true;\n }\n else {\n return false;\n }\n });\n }\n async validateChecksums(checkpoint, priority) {\n if (priority !== undefined) {\n // Only validate the buckets within the priority we care about\n const newBuckets = checkpoint.buckets.filter((cs) => hasMatchingPriority(priority, cs));\n checkpoint = { ...checkpoint, buckets: newBuckets };\n }\n const rs = await this.db.execute('SELECT powersync_validate_checkpoint(?) as result', [\n JSON.stringify({ ...checkpoint })\n ]);\n const resultItem = rs.rows?.item(0);\n if (!resultItem) {\n return {\n checkpointValid: false,\n ready: false,\n checkpointFailures: []\n };\n }\n const result = JSON.parse(resultItem['result']);\n if (result['valid']) {\n return { ready: true, checkpointValid: true };\n }\n else {\n return {\n checkpointValid: false,\n ready: false,\n checkpointFailures: result['failed_buckets']\n };\n }\n }\n async updateLocalTarget(cb) {\n const rs1 = await this.db.getAll(\"SELECT target_op FROM ps_buckets WHERE name = '$local' AND target_op = CAST(? as INTEGER)\", [MAX_OP_ID]);\n if (!rs1.length) {\n // Nothing to update\n return false;\n }\n const rs = await this.db.getAll(\"SELECT seq FROM sqlite_sequence WHERE name = 'ps_crud'\");\n if (!rs.length) {\n // Nothing to update\n return false;\n }\n const seqBefore = rs[0]['seq'];\n const opId = await cb();\n return this.writeTransaction(async (tx) => {\n const anyData = await tx.execute('SELECT 1 FROM ps_crud LIMIT 1');\n if (anyData.rows?.length) {\n // if isNotEmpty\n this.logger.debug(`New data uploaded since write checkpoint ${opId} - need new write checkpoint`);\n return false;\n }\n const rs = await tx.execute(\"SELECT seq FROM sqlite_sequence WHERE name = 'ps_crud'\");\n if (!rs.rows?.length) {\n // assert isNotEmpty\n throw new Error('SQLite Sequence should not be empty');\n }\n const seqAfter = rs.rows?.item(0)['seq'];\n if (seqAfter != seqBefore) {\n this.logger.debug(`New data uploaded since write checpoint ${opId} - need new write checkpoint (sequence updated)`);\n // New crud data may have been uploaded since we got the checkpoint. Abort.\n return false;\n }\n this.logger.debug(`Updating target write checkpoint to ${opId}`);\n await tx.execute(\"UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'\", [opId]);\n return true;\n });\n }\n async nextCrudItem() {\n const next = await this.db.getOptional('SELECT * FROM ps_crud ORDER BY id ASC LIMIT 1');\n if (!next) {\n return;\n }\n return CrudEntry.fromRow(next);\n }\n async hasCrud() {\n const anyData = await this.db.getOptional('SELECT 1 FROM ps_crud LIMIT 1');\n return !!anyData;\n }\n /**\n * Get a batch of objects to send to the server.\n * When the objects are successfully sent to the server, call .complete()\n */\n async getCrudBatch(limit = 100) {\n if (!(await this.hasCrud())) {\n return null;\n }\n const crudResult = await this.db.getAll('SELECT * FROM ps_crud ORDER BY id ASC LIMIT ?', [limit]);\n const all = [];\n for (const row of crudResult) {\n all.push(CrudEntry.fromRow(row));\n }\n if (all.length === 0) {\n return null;\n }\n const last = all[all.length - 1];\n return {\n crud: all,\n haveMore: true,\n complete: async (writeCheckpoint) => {\n return this.writeTransaction(async (tx) => {\n await tx.execute('DELETE FROM ps_crud WHERE id <= ?', [last.clientId]);\n if (writeCheckpoint) {\n const crudResult = await tx.execute('SELECT 1 FROM ps_crud LIMIT 1');\n if (crudResult.rows?.length) {\n await tx.execute(\"UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'\", [\n writeCheckpoint\n ]);\n }\n }\n else {\n await tx.execute(\"UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'\", [\n this.getMaxOpId()\n ]);\n }\n });\n }\n };\n }\n async writeTransaction(callback, options) {\n return this.db.writeTransaction(callback, options);\n }\n /**\n * Set a target checkpoint.\n */\n async setTargetCheckpoint(checkpoint) {\n // No-op for now\n }\n async control(op, payload) {\n return await this.writeTransaction(async (tx) => {\n const [[raw]] = await tx.executeRaw('SELECT powersync_control(?, ?)', [op, payload]);\n return raw;\n });\n }\n async hasMigratedSubkeys() {\n const { r } = await this.db.get('SELECT EXISTS(SELECT * FROM ps_kv WHERE key = ?) as r', [\n SqliteBucketStorage._subkeyMigrationKey\n ]);\n return r != 0;\n }\n async migrateToFixedSubkeys() {\n await this.writeTransaction(async (tx) => {\n await tx.execute('UPDATE ps_oplog SET key = powersync_remove_duplicate_key_encoding(key);');\n await tx.execute('INSERT OR REPLACE INTO ps_kv (key, value) VALUES (?, ?);', [\n SqliteBucketStorage._subkeyMigrationKey,\n '1'\n ]);\n });\n }\n static _subkeyMigrationKey = 'powersync_js_migrated_subkeys';\n}\nfunction hasMatchingPriority(priority, bucket) {\n return bucket.priority != null && bucket.priority <= priority;\n}\n//# sourceMappingURL=SqliteBucketStorage.js.map","import { SyncDataBucket } from './SyncDataBucket.js';\n// TODO JSON\nexport class SyncDataBatch {\n buckets;\n static fromJSON(json) {\n return new SyncDataBatch(json.buckets.map((bucket) => SyncDataBucket.fromRow(bucket)));\n }\n constructor(buckets) {\n this.buckets = buckets;\n }\n}\n//# sourceMappingURL=SyncDataBatch.js.map","// https://www.sqlite.org/lang_expr.html#castexpr\nexport var ColumnType;\n(function (ColumnType) {\n ColumnType[\"TEXT\"] = \"TEXT\";\n ColumnType[\"INTEGER\"] = \"INTEGER\";\n ColumnType[\"REAL\"] = \"REAL\";\n})(ColumnType || (ColumnType = {}));\nconst text = {\n type: ColumnType.TEXT\n};\nconst integer = {\n type: ColumnType.INTEGER\n};\nconst real = {\n type: ColumnType.REAL\n};\n// powersync-sqlite-core limits the number of column per table to 1999, due to internal SQLite limits.\n// In earlier versions this was limited to 63.\nexport const MAX_AMOUNT_OF_COLUMNS = 1999;\nexport const column = {\n text,\n integer,\n real\n};\nexport class Column {\n options;\n constructor(options) {\n this.options = options;\n }\n get name() {\n return this.options.name;\n }\n get type() {\n return this.options.type;\n }\n toJSON() {\n return {\n name: this.name,\n type: this.type\n };\n }\n}\n//# sourceMappingURL=Column.js.map","import { ColumnType } from './Column.js';\nexport const DEFAULT_INDEX_COLUMN_OPTIONS = {\n ascending: true\n};\nexport class IndexedColumn {\n options;\n static createAscending(column) {\n return new IndexedColumn({\n name: column,\n ascending: true\n });\n }\n constructor(options) {\n this.options = { ...DEFAULT_INDEX_COLUMN_OPTIONS, ...options };\n }\n get name() {\n return this.options.name;\n }\n get ascending() {\n return this.options.ascending;\n }\n toJSON(table) {\n return {\n name: this.name,\n ascending: this.ascending,\n type: table.columns.find((column) => column.name === this.name)?.type ?? ColumnType.TEXT\n };\n }\n}\n//# sourceMappingURL=IndexedColumn.js.map","import { IndexedColumn } from './IndexedColumn.js';\nexport const DEFAULT_INDEX_OPTIONS = {\n columns: []\n};\nexport class Index {\n options;\n static createAscending(options, columnNames) {\n return new Index({\n ...options,\n columns: columnNames.map((name) => IndexedColumn.createAscending(name))\n });\n }\n constructor(options) {\n this.options = options;\n this.options = { ...DEFAULT_INDEX_OPTIONS, ...options };\n }\n get name() {\n return this.options.name;\n }\n get columns() {\n return this.options.columns ?? [];\n }\n toJSON(table) {\n return {\n name: this.name,\n columns: this.columns.map((c) => c.toJSON(table))\n };\n }\n}\n//# sourceMappingURL=Index.js.map","/**\n * Instructs PowerSync to sync data into a \"raw\" table.\n *\n * Since raw tables are not backed by JSON, running complex queries on them may be more efficient. Further, they allow\n * using client-side table and column constraints.\n *\n * To collect local writes to raw tables with PowerSync, custom triggers are required. See\n * {@link https://docs.powersync.com/usage/use-case-examples/raw-tables the documentation} for details and an example on\n * using raw tables.\n *\n * Note that raw tables are only supported when using the new `SyncClientImplementation.rust` sync client.\n *\n * @experimental Please note that this feature is experimental at the moment, and not covered by PowerSync semver or\n * stability guarantees.\n */\nexport class RawTable {\n /**\n * The name of the table.\n *\n * This does not have to match the actual table name in the schema - {@link put} and {@link delete} are free to use\n * another table. Instead, this name is used by the sync client to recognize that operations on this table (as it\n * appears in the source / backend database) are to be handled specially.\n */\n name;\n put;\n delete;\n constructor(name, type) {\n this.name = name;\n this.put = type.put;\n this.delete = type.delete;\n }\n}\n//# sourceMappingURL=RawTable.js.map","import { RawTable } from './RawTable.js';\n/**\n * A schema is a collection of tables. It is used to define the structure of a database.\n */\nexport class Schema {\n /*\n Only available when constructing with mapped typed definition columns\n */\n types;\n props;\n tables;\n rawTables;\n constructor(tables) {\n if (Array.isArray(tables)) {\n /*\n We need to validate that the tables have a name here because a user could pass in an array\n of Tables that don't have a name because they are using the V2 syntax.\n Therefore, 'convertToClassicTables' won't be called on the tables resulting in a runtime error.\n */\n for (const table of tables) {\n if (table.name === '') {\n throw new Error(\"It appears you are trying to create a new Schema with an array instead of an object. Passing in an object instead of an array into 'new Schema()' may resolve your issue.\");\n }\n }\n this.tables = tables;\n }\n else {\n // Update the table entries with the provided table name key\n this.props = Object.fromEntries(Object.entries(tables).map(([tableName, table]) => [tableName, table.copyWithName(tableName)]));\n this.tables = Object.values(this.props);\n }\n this.rawTables = [];\n }\n /**\n * Adds raw tables to this schema. Raw tables are identified by their name, but entirely managed by the application\n * developer instead of automatically by PowerSync.\n * Since raw tables are not backed by JSON, running complex queries on them may be more efficient. Further, they allow\n * using client-side table and column constraints.\n * Note that raw tables are only supported when using the new `SyncClientImplementation.rust` sync client.\n *\n * @param tables An object of (table name, raw table definition) entries.\n * @experimental Note that the raw tables API is still experimental and may change in the future.\n */\n withRawTables(tables) {\n for (const [name, rawTableDefinition] of Object.entries(tables)) {\n this.rawTables.push(new RawTable(name, rawTableDefinition));\n }\n }\n validate() {\n for (const table of this.tables) {\n table.validate();\n }\n }\n toJSON() {\n return {\n tables: this.tables.map((t) => t.toJSON()),\n raw_tables: this.rawTables\n };\n }\n}\n//# sourceMappingURL=Schema.js.map","import { Column, ColumnType, MAX_AMOUNT_OF_COLUMNS } from './Column.js';\nimport { Index } from './Index.js';\nimport { IndexedColumn } from './IndexedColumn.js';\nexport const DEFAULT_TABLE_OPTIONS = {\n indexes: [],\n insertOnly: false,\n localOnly: false,\n trackPrevious: false,\n trackMetadata: false,\n ignoreEmptyUpdates: false\n};\nexport const InvalidSQLCharacters = /[\"'%,.#\\s[\\]]/;\nexport class Table {\n options;\n _mappedColumns;\n static createLocalOnly(options) {\n return new Table({ ...options, localOnly: true, insertOnly: false });\n }\n static createInsertOnly(options) {\n return new Table({ ...options, localOnly: false, insertOnly: true });\n }\n /**\n * Create a table.\n * @deprecated This was only only included for TableV2 and is no longer necessary.\n * Prefer to use new Table() directly.\n *\n * TODO remove in the next major release.\n */\n static createTable(name, table) {\n return new Table({\n name,\n columns: table.columns,\n indexes: table.indexes,\n localOnly: table.options.localOnly,\n insertOnly: table.options.insertOnly,\n viewName: table.options.viewName\n });\n }\n constructor(optionsOrColumns, v2Options) {\n if (this.isTableV1(optionsOrColumns)) {\n this.initTableV1(optionsOrColumns);\n }\n else {\n this.initTableV2(optionsOrColumns, v2Options);\n }\n }\n copyWithName(name) {\n return new Table({\n ...this.options,\n name\n });\n }\n isTableV1(arg) {\n return 'columns' in arg && Array.isArray(arg.columns);\n }\n initTableV1(options) {\n this.options = {\n ...options,\n indexes: options.indexes || []\n };\n this.applyDefaultOptions();\n }\n initTableV2(columns, options) {\n const convertedColumns = Object.entries(columns).map(([name, columnInfo]) => new Column({ name, type: columnInfo.type }));\n const convertedIndexes = Object.entries(options?.indexes ?? {}).map(([name, columnNames]) => new Index({\n name,\n columns: columnNames.map((name) => new IndexedColumn({\n name: name.replace(/^-/, ''),\n ascending: !name.startsWith('-')\n }))\n }));\n this.options = {\n name: '',\n columns: convertedColumns,\n indexes: convertedIndexes,\n viewName: options?.viewName,\n insertOnly: options?.insertOnly,\n localOnly: options?.localOnly,\n trackPrevious: options?.trackPrevious,\n trackMetadata: options?.trackMetadata,\n ignoreEmptyUpdates: options?.ignoreEmptyUpdates\n };\n this.applyDefaultOptions();\n this._mappedColumns = columns;\n }\n applyDefaultOptions() {\n this.options.insertOnly ??= DEFAULT_TABLE_OPTIONS.insertOnly;\n this.options.localOnly ??= DEFAULT_TABLE_OPTIONS.localOnly;\n this.options.trackPrevious ??= DEFAULT_TABLE_OPTIONS.trackPrevious;\n this.options.trackMetadata ??= DEFAULT_TABLE_OPTIONS.trackMetadata;\n this.options.ignoreEmptyUpdates ??= DEFAULT_TABLE_OPTIONS.ignoreEmptyUpdates;\n }\n get name() {\n return this.options.name;\n }\n get viewNameOverride() {\n return this.options.viewName;\n }\n get viewName() {\n return this.viewNameOverride ?? this.name;\n }\n get columns() {\n return this.options.columns;\n }\n get columnMap() {\n return (this._mappedColumns ??\n this.columns.reduce((hash, column) => {\n hash[column.name] = { type: column.type ?? ColumnType.TEXT };\n return hash;\n }, {}));\n }\n get indexes() {\n return this.options.indexes ?? [];\n }\n get localOnly() {\n return this.options.localOnly;\n }\n get insertOnly() {\n return this.options.insertOnly;\n }\n get trackPrevious() {\n return this.options.trackPrevious;\n }\n get trackMetadata() {\n return this.options.trackMetadata;\n }\n get ignoreEmptyUpdates() {\n return this.options.ignoreEmptyUpdates;\n }\n get internalName() {\n if (this.options.localOnly) {\n return `ps_data_local__${this.name}`;\n }\n return `ps_data__${this.name}`;\n }\n get validName() {\n if (InvalidSQLCharacters.test(this.name)) {\n return false;\n }\n if (this.viewNameOverride != null && InvalidSQLCharacters.test(this.viewNameOverride)) {\n return false;\n }\n return true;\n }\n validate() {\n if (InvalidSQLCharacters.test(this.name)) {\n throw new Error(`Invalid characters in table name: ${this.name}`);\n }\n if (this.viewNameOverride && InvalidSQLCharacters.test(this.viewNameOverride)) {\n throw new Error(`Invalid characters in view name: ${this.viewNameOverride}`);\n }\n if (this.columns.length > MAX_AMOUNT_OF_COLUMNS) {\n throw new Error(`Table has too many columns. The maximum number of columns is ${MAX_AMOUNT_OF_COLUMNS}.`);\n }\n if (this.trackMetadata && this.localOnly) {\n throw new Error(`Can't include metadata for local-only tables.`);\n }\n if (this.trackPrevious != false && this.localOnly) {\n throw new Error(`Can't include old values for local-only tables.`);\n }\n const columnNames = new Set();\n columnNames.add('id');\n for (const column of this.columns) {\n const { name: columnName } = column;\n if (column.name === 'id') {\n throw new Error(`An id column is automatically added, custom id columns are not supported`);\n }\n if (columnNames.has(columnName)) {\n throw new Error(`Duplicate column ${columnName}`);\n }\n if (InvalidSQLCharacters.test(columnName)) {\n throw new Error(`Invalid characters in column name: ${column.name}`);\n }\n columnNames.add(columnName);\n }\n const indexNames = new Set();\n for (const index of this.indexes) {\n if (indexNames.has(index.name)) {\n throw new Error(`Duplicate index ${index.name}`);\n }\n if (InvalidSQLCharacters.test(index.name)) {\n throw new Error(`Invalid characters in index name: ${index.name}`);\n }\n for (const column of index.columns) {\n if (!columnNames.has(column.name)) {\n throw new Error(`Column ${column.name} not found for index ${index.name}`);\n }\n }\n indexNames.add(index.name);\n }\n }\n toJSON() {\n const trackPrevious = this.trackPrevious;\n return {\n name: this.name,\n view_name: this.viewName,\n local_only: this.localOnly,\n insert_only: this.insertOnly,\n include_old: trackPrevious && (trackPrevious.columns ?? true),\n include_old_only_when_changed: typeof trackPrevious == 'object' && trackPrevious.onlyWhenChanged == true,\n include_metadata: this.trackMetadata,\n ignore_empty_update: this.ignoreEmptyUpdates,\n columns: this.columns.map((c) => c.toJSON()),\n indexes: this.indexes.map((e) => e.toJSON(this))\n };\n }\n}\n//# sourceMappingURL=Table.js.map","import { Table } from './Table.js';\n/**\n Generate a new table from the columns and indexes\n @deprecated You should use {@link Table} instead as it now allows TableV2 syntax.\n This will be removed in the next major release.\n*/\nexport class TableV2 extends Table {\n}\n//# sourceMappingURL=TableV2.js.map","function sanitizeString(input) {\n return `'${input.replace(/'/g, \"''\")}'`;\n}\n/**\n * Helper function for sanitizing UUID input strings.\n * Typically used with {@link sanitizeSQL}.\n */\nexport function sanitizeUUID(uuid) {\n const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n const isValid = uuidRegex.test(uuid);\n if (!isValid) {\n throw new Error(`${uuid} is not a valid UUID`);\n }\n return uuid;\n}\n/**\n * SQL string template function for {@link TrackDiffOptions#when} and {@link CreateDiffTriggerOptions#when}.\n *\n * This function performs basic string interpolation for SQLite WHEN clauses.\n *\n * **String placeholders:**\n * - All string values passed as placeholders are automatically wrapped in single quotes (`'`).\n * - Do not manually wrap placeholders in single quotes in your template string; the function will handle quoting and escaping for you.\n * - Any single quotes within the string value are escaped by doubling them (`''`), as required by SQL syntax.\n *\n * **Other types:**\n * - `null` and `undefined` are converted to SQL `NULL`.\n * - Objects are stringified using `JSON.stringify()` and wrapped in single quotes, with any single quotes inside the stringified value escaped.\n * - Numbers and other primitive types are inserted directly.\n *\n * **Usage example:**\n * ```typescript\n * const myID = \"O'Reilly\";\n * const clause = sanitizeSQL`New.id = ${myID}`;\n * // Result: \"New.id = 'O''Reilly'\"\n * ```\n *\n * Avoid manually quoting placeholders:\n * ```typescript\n * // Incorrect:\n * sanitizeSQL`New.id = '${myID}'` // Produces double quotes: New.id = ''O''Reilly''\n * ```\n */\nexport function sanitizeSQL(strings, ...values) {\n let result = '';\n strings.forEach((str, i) => {\n result += str;\n if (i < values.length) {\n // For SQL, escape single quotes in string values\n const value = values[i];\n if (typeof value == 'string') {\n result += sanitizeString(value);\n }\n else if (value == null) {\n result += 'NULL';\n }\n else if (typeof value == 'object') {\n // Stringify the object and escape single quotes in the result\n const stringified = JSON.stringify(value);\n result += sanitizeString(stringified);\n }\n else {\n result += value;\n }\n }\n });\n return result;\n}\n//# sourceMappingURL=sanitizeSQL.js.map","/**\n * Performs a {@link AbstractPowerSyncDatabase.getAll} operation for a watched query.\n */\nexport class GetAllQuery {\n options;\n constructor(options) {\n this.options = options;\n }\n compile() {\n return {\n sql: this.options.sql,\n parameters: this.options.parameters ?? []\n };\n }\n async execute(options) {\n const { db } = options;\n const { sql, parameters = [] } = this.compile();\n const rawResult = await db.getAll(sql, [...parameters]);\n if (this.options.mapper) {\n return rawResult.map(this.options.mapper);\n }\n return rawResult;\n }\n}\n//# sourceMappingURL=GetAllQuery.js.map","import Logger from 'js-logger';\nconst TypedLogger = Logger;\nexport const LogLevel = {\n TRACE: TypedLogger.TRACE,\n DEBUG: TypedLogger.DEBUG,\n INFO: TypedLogger.INFO,\n TIME: TypedLogger.TIME,\n WARN: TypedLogger.WARN,\n ERROR: TypedLogger.ERROR,\n OFF: TypedLogger.OFF\n};\n/**\n * Retrieves the base (default) logger instance.\n *\n * This base logger controls the default logging configuration and is shared\n * across all loggers created with `createLogger`. Adjusting settings on this\n * base logger affects all loggers derived from it unless explicitly overridden.\n *\n */\nexport function createBaseLogger() {\n return Logger;\n}\n/**\n * Creates and configures a new named logger based on the base logger.\n *\n * Named loggers allow specific modules or areas of your application to have\n * their own logging levels and behaviors. These loggers inherit configuration\n * from the base logger by default but can override settings independently.\n */\nexport function createLogger(name, options = {}) {\n const logger = Logger.get(name);\n if (options.logLevel) {\n logger.setLevel(options.logLevel);\n }\n return logger;\n}\n//# sourceMappingURL=Logger.js.map","export const parseQuery = (query, parameters) => {\n let sqlStatement;\n if (typeof query == 'string') {\n sqlStatement = query;\n }\n else {\n const hasAdditionalParameters = parameters.length > 0;\n if (hasAdditionalParameters) {\n throw new Error('You cannot pass parameters to a compiled query.');\n }\n const compiled = query.compile();\n sqlStatement = compiled.sql;\n parameters = compiled.parameters;\n }\n return { sqlStatement, parameters: parameters };\n};\n//# sourceMappingURL=parseQuery.js.map"],"names":["this","require$$0","Deferred_1","Deferred","require$$1","require$$2","require$$3","require$$4","require$$5","RSocketConnector_1","RSocketConnector","RSocketServer_1","RSocketServer","require$$6","require$$7","require$$8","WebsocketDuplexConnection_1","WebsocketDuplexConnection","Deserializer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EAKA,CAAC,UAAU,MAAM,EAAE;AAEnB;AACA;AACA,GAAC,IAAI,MAAM,GAAG,GAAG,CAAC;AAClB;AACA;AACA,GAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1B;AACA;GACC,IAAI,UAAU,CAAC;AAChB;AACA;AACA,GAAC,IAAI,0BAA0B,GAAG,EAAE,CAAC;AACrC;AACA;AACA,GAAC,IAAI,IAAI,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AAClC,IAAE,OAAO,WAAW;KACjB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACvC,IAAA,CAAG,CAAC;AACJ,GAAA,CAAE,CAAC;AACH;AACA;GACC,IAAI,KAAK,GAAG,YAAY;AACzB,IAAE,IAAI,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACjD,IAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,KAAG,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;AACxB,MAAI,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACzD,OAAK,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;MAChC,CAAK;KACL,CAAI;IACJ,CAAG;IACD,OAAO,MAAM,CAAC;AAChB,GAAA,CAAE,CAAC;AACH;AACA;AACA,GAAC,IAAI,cAAc,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;IAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtC,GAAA,CAAE,CAAC;AACH;AACA;GACC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;GAC1C,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;GAC1C,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;GACxC,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;GACxC,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;GACxC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;GAC1C,MAAM,CAAC,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACxC;AACA;AACA;AACA,GAAC,IAAI,gBAAgB,GAAG,SAAS,cAAc,EAAE;AACjD,IAAE,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;IAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAC5C,IAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,GAAA,CAAE,CAAC;AACH;GACC,gBAAgB,CAAC,SAAS,GAAG;AAC9B;AACA,IAAE,QAAQ,EAAE,UAAU,QAAQ,EAAE;AAChC;AACA,KAAG,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE;AACxC,MAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC;KACxC,CAAI;IACJ,CAAG;AACH;AACA;IACE,QAAQ,EAAE,YAAY;AACxB,KAAG,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IACnC,CAAG;AACH;AACA;AACA,IAAE,UAAU,EAAE,UAAU,GAAG,EAAE;KAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;KAC3C,OAAO,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;IACzC,CAAG;AACH;IACE,KAAK,EAAE,YAAY;KAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAG;AACH;IACE,KAAK,EAAE,YAAY;KAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAG;AACH;IACE,IAAI,EAAE,YAAY;KACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvC,CAAG;AACH;IACE,IAAI,EAAE,YAAY;KACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvC,CAAG;AACH;IACE,KAAK,EAAE,YAAY;KAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAG;AACH;AACA,IAAE,IAAI,EAAE,UAAU,KAAK,EAAE;KACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACtD,MAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;KACjD,CAAI;IACJ,CAAG;AACH;AACA,IAAE,OAAO,EAAE,UAAU,KAAK,EAAE;KACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACtD,MAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KAC/C,CAAI;IACJ,CAAG;AACH;AACA;AACA,IAAE,MAAM,EAAE,UAAU,KAAK,EAAE,OAAO,EAAE;KACjC,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC7C,MAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;KAC/D,CAAI;IACJ,CAAG;AACH,IAAE,CAAC;AACH;AACA;AACA,GAAC,IAAI,YAAY,GAAG,IAAI,gBAAgB,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE;AACA;AACA,GAAC,CAAC,WAAW;AACb;AACA,IAAE,IAAI,CAAC,GAAG,MAAM,CAAC;AACjB;AACA,IAAE,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACnD,IAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACnD,IAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AACjD,IAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AACvD,IAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AACjD,IAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AACjD,IAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACnD;AACA;AACA,IAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,GAAA,CAAE,EAAE,EAAE;AACN;AACA;AACA;AACA;AACA,GAAC,MAAM,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE;IACnC,UAAU,GAAG,IAAI,CAAC;AACpB,GAAA,CAAE,CAAC;AACH;AACA;AACA;AACA,GAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AACnC;AACA,IAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/B;AACA;AACA,IAAE,KAAK,IAAI,GAAG,IAAI,0BAA0B,EAAE;AAC9C,KAAG,IAAI,0BAA0B,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;MACnD,0BAA0B,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACpD,CAAI;IACJ,CAAG;AACH,GAAA,CAAE,CAAC;AACH;AACA;AACA,GAAC,MAAM,CAAC,QAAQ,GAAG,WAAW;AAC9B,IAAE,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC;AACjC,GAAA,CAAE,CAAC;AACH;AACA;AACA;AACA,GAAC,MAAM,CAAC,GAAG,GAAG,UAAU,IAAI,EAAE;AAC9B;AACA,IAAE,OAAO,0BAA0B,CAAC,IAAI,CAAC;MACrC,0BAA0B,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1G,GAAA,CAAE,CAAC;AACH;AACA;AACA;AACA;AACA,GAAC,MAAM,CAAC,oBAAoB,GAAG,UAAU,OAAO,EAAE;AAClD,IAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B;AACA,IAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC/F;AACA,KAAG,IAAI,OAAO,CAAC,IAAI,EAAE;AACrB,MAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;KAC/C,CAAI;AACJ,IAAA,CAAG,CAAC;AACJ;AACA;AACA;AACA,IAAE,IAAI,wBAAwB,GAAG,EAAE,CAAC;AACpC;AACA;AACA,IAAE,IAAI,mBAAmB,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE;AACtD,KAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1D,IAAA,CAAG,CAAC;AACJ;AACA;AACA,IAAE,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;KACnC,OAAO,YAAY,mBAAA,CAAoB,CAAC;IAC3C,CAAG;AACH;AACA,IAAE,OAAO,SAAS,QAAQ,EAAE,OAAO,EAAE;AACrC;AACA,KAAG,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnD;AACA,KAAG,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;KACvB,IAAI,UAAU,CAAC;AAClB;KACG,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE;MAClC,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/E;AACA,MAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AACjC,OAAK,IAAI,OAAO,CAAC,IAAI,EAAE;AACvB,QAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;OAC/B,CAAM;YACI;QACJ,wBAAwB,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;OAClE,CAAM;MACN,CAAK;WACI;AACT,OAAK,IAAI,OAAO,CAAC,OAAO,EAAE;AAC1B,QAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;OAClC,CAAM;YACI;AACV,QAAM,mBAAmB,CAAC,IAAI,EAAE,EAAE,UAAU,GAAG,IAAI;AACnD,UAAQ,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;OAC/E,CAAM;MACN,CAAK;KACL,CAAI;UACI;AACR;AACA,MAAI,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;AACvD,OAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACzB,MAAA,CAAK,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE;AAChE,OAAK,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;AAC1B,MAAA,CAAK,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;AAC9D,OAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACzB,MAAA,CAAK,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE;AAChE,OAAK,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;AAC1B,MAAA,CAAK,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE;AAChE,OAAK,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;MAC1B,CAAK;AACL;MACI,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,MAAI,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACxC,CAAI;AACJ,IAAA,CAAG,CAAC;AACJ,GAAA,CAAE,CAAC;AACH;AACA;AACA;AACA,GAAC,MAAM,CAAC,WAAW,GAAG,SAAS,OAAO,EAAE;AACxC,IAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,GAAA,CAAE,CAAC;AACH;AACA;AACA,GAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACzC;AACA;GAIM,IAAqC,MAAM,CAAC,OAAO,EAAE;IACzD,MAAA,CAAA,OAAA,GAAiB,MAAM,CAAC;GAC1B,CAAE;QACI;AACN,IAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;AACrC;AACA,IAAE,MAAM,CAAC,UAAU,GAAG,YAAY;AAClC,KAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;KACnC,OAAO,MAAM,CAAC;AACjB,IAAA,CAAG,CAAC;AACJ;AACA,IAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;GACzB,CAAE;EACF,CAAC,CAACA,MAAI,CAAC,EAAA;;;;;;;;ACvRP;AACA;AACA;AACA;AACA;AACA;AACA;AACU,IAAC;AACX,CAAC,UAAU,aAAa,EAAE;AAC1B,IAAI,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;AACxE,IAAI,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe;AACvE,IAAI,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;AACxE,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC;AAClC,SAAS,2BAA2B,CAAC,MAAM,EAAE;AACpD,IAAI,OAAO,QAAQ,IAAI,MAAM;AAC7B;AACO,SAAS,mBAAmB,CAAC,MAAM,EAAE;AAC5C,IAAI,OAAO,2BAA2B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/E;;AClBA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,YAAY,CAAC;AAC1B,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,oBAAoB;AACxB,IAAI,kBAAkB;AACtB,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;AACtE,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe;AAC9D,QAAQ,IAAI,CAAC,oBAAoB,GAAG,eAAe,CAAC,oBAAoB;AACxE,QAAQ,IAAI,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB;AACpE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC5B,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,IAAI,UAAU,GAAG,CAAC;AAC1B,QAAQ,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7D;AACA,YAAY,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,EAAE;AAC/C,gBAAgB,UAAU,IAAI,QAAQ,CAAC,UAAU;AACjD,gBAAgB,KAAK,IAAI,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,OAAO;AACjE,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,QAAQ,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,UAAU,GAAG,KAAK;AAC5D,QAAQ,OAAO;AACf,YAAY,eAAe,EAAE,KAAK;AAClC,YAAY,oBAAoB,EAAE,UAAU;AAC5C,YAAY,kBAAkB,EAAE;AAChC,SAAS;AACT,IAAI;AACJ;;AC1DO,MAAM,UAAU,CAAC;AACxB,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,oBAAoB,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB;AAChD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK;AAC9C,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK;AAC/C,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY;AACxC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI;AACzC;AACA;AACA;AACA;AACA,YAAY,WAAW,EAAE,KAAK;AAC9B;AACA;AACA;AACA,YAAY,SAAS,EAAE;AACvB,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,2BAA2B,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtH,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;AACxD,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACpJ,QAAQ,OAAO,GAAG,IAAI,IAAI,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC;AACzD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,qBAAqB,GAAG;AAChC,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACpG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB;AACxE,QAAQ,IAAI,gBAAgB,IAAI,IAAI,EAAE;AACtC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,IAAI,YAAY,CAAC,gBAAgB,CAAC;AACjD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,QAAQ,EAAE;AAChC;AACA,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxD;AACA,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE;AAC5C,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,OAAO;AACf,YAAY,QAAQ;AACpB,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,SAAS,EAAE,IAAI,CAAC;AAC5B,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB;AACA;AACA;AACA;AACA,QAAQ,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK;AACvC,YAAY,IAAI,KAAK,YAAY,KAAK,EAAE;AACxC,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,EAAE,KAAK,CAAC,IAAI;AACpC,oBAAoB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC1C,oBAAoB,KAAK,EAAE,KAAK,CAAC;AACjC,iBAAiB;AACjB,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC;AACT,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;AACjG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc;AAC5C,QAAQ,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,kBAAkB,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AACjT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU;AACvC,YAAY,QAAQ,EAAE,IAAI,CAAC,cAAc;AACzC,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,qBAAqB,EAAE,IAAI,CAAC;AACxC,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACnC,QAAQ,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;AACvC,IAAI;AACJ;AACA,MAAM,oBAAoB,CAAC;AAC3B,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,YAAY;AAChB,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU;AACvC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,SAAS,EAAE,IAAI,CAAC,UAAU;AACtC,YAAY,uBAAuB,EAAE,IAAI,CAAC,yBAAyB;AACnE,YAAY,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI;AACxF,YAAY,SAAS,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;AAClD,YAAY,YAAY,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG;AAC/F,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,IAAI,IAAI,EAAE;AACjE;AACA,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AACxD,QAAQ,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,UAAU,GAAG,KAAK;AAC9D,QAAQ,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE;AACzG,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;AACjC,IAAI;AACJ;;ACtOO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,WAAW;AACf;AACA;AACA;AACA,IAAI,KAAK;AACT;AACA;AACA;AACA,IAAI,IAAI,GAAG,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AAC/B,YAAY,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,CAAC,qCAAqC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;AAChF,QAAQ;AACR,IAAI;AACJ;;ACvBO,MAAM,YAAY,CAAC;AAC1B,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE;AACzB,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpC,QAAQ,OAAO,MAAM;AACrB,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3C,QAAQ,CAAC;AACT,IAAI;AACJ,IAAI,gBAAgB,CAAC,EAAE,EAAE;AACzB,QAAQ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAY,EAAE,CAAC,QAAQ,CAAC;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,qBAAqB,CAAC,EAAE,EAAE;AACpC,QAAQ,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;AAC3D,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC;AACvB,QAAQ;AACR,IAAI;AACJ;;ACzBO,MAAM,kBAAkB,CAAC;AAChC,IAAI,IAAI;AACR;AACA;AACA;AACA,IAAI,WAAW;AACf,IAAI,gBAAgB;AACpB;AACA;AACA;AACA,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE;AACxD,QAAQ,IAAI,CAAC,YAAY,GAAG,eAAe;AAC3C,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5B,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9B;AACA,YAAY,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACzC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3B,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAY,IAAI,CAAC,WAAW,GAAG,SAAS;AACxC,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,QAAQ,MAAM,IAAI,CAAC,WAAW;AAC9B,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS;AACpC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB;AACtD,YAAY,IAAI,CAAC,gBAAgB,GAAG,SAAS;AAC7C,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACtC,QAAQ;AACR,IAAI;AACJ;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE;AAC7C,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,MAAM,KAAK,GAAG,MAAM;AACxB,QAAQ,IAAI,EAAE;AACd,QAAQ,SAAS,GAAG,IAAI;AACxB,IAAI,CAAC;AACL,IAAI,OAAO,YAAY;AACvB,QAAQ,IAAI,SAAS,IAAI,IAAI,EAAE;AAC/B,YAAY,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/C,QAAQ;AACR,IAAI,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE;AACpD,IAAI,IAAI,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,YAAY,GAAG,CAAC;AACxB,IAAI,MAAM,cAAc,GAAG,MAAM;AACjC,QAAQ,IAAI,EAAE;AACd,QAAQ,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE;AACjC,QAAQ,SAAS,GAAG,IAAI;AACxB,IAAI,CAAC;AACL,IAAI,OAAO,YAAY;AACvB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC9B,QAAQ,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,GAAG,YAAY,CAAC;AACtD,QAAQ,IAAI,UAAU,IAAI,CAAC,EAAE;AAC7B;AACA,YAAY,cAAc,EAAE;AAC5B,QAAQ;AACR,aAAa,IAAI,CAAC,SAAS,EAAE;AAC7B;AACA,YAAY,SAAS,GAAG,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC;AAC9D,QAAQ;AACR,IAAI,CAAC;AACL;;ACpDA;AACA;AACA;AACO,MAAM,iBAAiB,SAAS,YAAY,CAAC;AACpD,IAAI,OAAO;AACX;AACA;AACA;AACA,IAAI,iBAAiB;AACrB;AACA;AACA;AACA,IAAI,qBAAqB;AACzB;AACA;AACA;AACA;AACA,IAAI,oBAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB;AAC5B,IAAI,wBAAwB;AAC5B;AACA;AACA;AACA;AACA,IAAI,YAAY;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI,0BAA0B,GAAG,IAAI,GAAG,EAAE;AAC1C,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI;AACrC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACzC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI;AACxC,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI;AAC5C,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI;AAC5C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,wBAAwB,EAAE,SAAS,IAAI,IAAI;AAC/D,IAAI;AACJ,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,wBAAwB,EAAE,OAAO,IAAI,IAAI;AAC7D,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;AAClC,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,MAAM,IAAI,CAAC,wBAAwB,EAAE,OAAO,EAAE;AACtD,QAAQ,MAAM,IAAI,CAAC,YAAY,IAAI;AACnC,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;AACtC;AACA,QAAQ,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB;AACjE;AACA,QAAQ,IAAI,CAAC,wBAAwB,GAAG;AACxC,YAAY,SAAS;AACrB,YAAY;AACZ,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjE,YAAY,MAAM,IAAI,CAAC,kBAAkB,EAAE;AAC3C,QAAQ;AACR;AACA;AACA;AACA,QAAQ,MAAM,eAAe,GAAG,YAAY;AAC5C,YAAY,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/C;AACA;AACA,gBAAgB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe;AAC7D,qBAAqB,KAAK,CAAC,MAAM,EAAE,CAAC;AACpC,qBAAqB,OAAO,CAAC,eAAe,CAAC;AAC7C,gBAAgB,OAAO,IAAI,CAAC,iBAAiB;AAC7C,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7C,gBAAgB;AAChB,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,eAAe;AACvD,aAAa,KAAK,CAAC,MAAM,EAAE,CAAC;AAC5B,aAAa,OAAO,CAAC,eAAe,CAAC;AACrC,QAAQ,OAAO,IAAI,CAAC,iBAAiB;AACrC,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,IAAI,cAAc,GAAG,IAAI;AACjC;AACA,QAAQ,MAAM,IAAI,CAAC,kBAAkB,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,KAAK;AAC5E,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AACpD,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8EAA8E,CAAC;AACrH;AACA,oBAAoB,OAAO,EAAE;AAC7B,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC/C,oBAAoB,OAAO,EAAE;AAC7B,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,wBAAwB;AAC5E,gBAAgB,cAAc,GAAG,OAAO;AACxC,gBAAgB,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpD,gBAAgB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,SAAS,EAAE;AACnG,oBAAoB,aAAa,EAAE,IAAI,CAAC,aAAa;AACrD,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;AACzE,gBAAgB,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpD,gBAAgB,IAAI,CAAC,YAAY,GAAG,SAAS;AAC7C,gBAAgB,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE;AAClE,gBAAgB,OAAO,EAAE;AACzB,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,MAAM,CAAC,KAAK,CAAC;AAC7B,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,IAAI,CAAC,qBAAqB;AACxC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACzC,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA,QAAQ,MAAM,IAAI,CAAC,oBAAoB;AACvC,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC;AACxE,QAAQ,MAAM,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,cAAc,CAAC;AACpE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG;AACvB;AACA,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI;AAC5C,QAAQ,MAAM,IAAI,CAAC,kBAAkB,EAAE;AACvC,IAAI;AACJ,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACvC;AACA,YAAY,OAAO,IAAI,CAAC,oBAAoB;AAC5C,QAAQ;AACR,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC5D,QAAQ,MAAM,IAAI,CAAC,oBAAoB;AACvC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI;AACxC,IAAI;AACJ,IAAI,MAAM,iBAAiB,GAAG;AAC9B;AACA;AACA,QAAQ,MAAM,IAAI,CAAC,qBAAqB;AACxC;AACA;AACA;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB;AAClD,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI;AAC5C,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;AAC1C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,QAAQ,MAAM,IAAI,EAAE,UAAU,EAAE;AAChC,QAAQ,MAAM,IAAI,EAAE,OAAO,EAAE;AAC7B,QAAQ,MAAM,QAAQ,IAAI;AAC1B,IAAI;AACJ,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;AACtC,QAAQ,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE;AACzC,QAAQ,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AAC5C,YAAY,OAAO,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;AACvG,QAAQ,CAAC;AACT,QAAQ,OAAO;AACf,YAAY,GAAG,IAAI;AACnB,YAAY,SAAS,EAAE,OAAO,OAAO,KAAK;AAC1C;AACA;AACA,gBAAgB,MAAM,OAAO,CAAC,wBAAwB,CAAC;AACvD,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,MAAM,EAAE;AAChC,4BAA4B,IAAI;AAChC,4BAA4B,MAAM,EAAE;AACpC,yBAAyB;AACzB,wBAAwB,GAAG,EAAE,OAAO,EAAE,GAAG;AACzC,wBAAwB,QAAQ,EAAE,OAAO,EAAE;AAC3C;AACA,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AACpD;AACA;AACA,oBAAoB,MAAM,OAAO,CAAC,wBAAwB,EAAE;AAC5D,gBAAgB;AAChB,gBAAgB,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACnE,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC;AAC3E,gBAAgB,IAAI,YAAY,IAAI,IAAI,EAAE;AAC1C,oBAAoB,MAAM,iBAAiB,GAAG,MAAM;AACpD,wBAAwB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,GAAG,CAAC;AACnE,wBAAwB,IAAI,CAAC,2BAA2B,EAAE;AAC1D,oBAAoB,CAAC;AACrB,oBAAoB,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;AAC7H,oBAAoB,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC;AAC1E,oBAAoB,IAAI,CAAC,2BAA2B,EAAE;AACtD,gBAAgB;AAChB,gBAAgB,OAAO,IAAI,4BAA4B,CAAC,YAAY,CAAC;AACrE,YAAY,CAAC;AACb,YAAY,cAAc,EAAE,YAAY;AACxC,gBAAgB,MAAM,OAAO,CAAC,wBAAwB,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;AACrG,gBAAgB,IAAI,CAAC,2BAA2B,EAAE;AAClD,YAAY;AACZ,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;AACjH,IAAI;AACJ,IAAI,2BAA2B,GAAG;AAClC,QAAQ,IAAI,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9E,IAAI;AACJ;AACA,MAAM,kBAAkB,CAAC;AACzB,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,gBAAgB;AACpB,IAAI,iBAAiB;AACrB,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE;AAC/E,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AAChD,QAAQ,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAClD,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,iBAAiB,EAAE;AACpC,QAAQ;AACR,IAAI;AACJ;AACA,MAAM,4BAA4B,CAAC;AACnC,IAAI,YAAY;AAChB,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,QAAQ,YAAY,CAAC,QAAQ,EAAE;AAC/B,QAAQ,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;AAChD,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI;AACrC,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU;AAC3C,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACxD,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,IAAI,CAAC,MAAM,GAAG,KAAK;AAC/B,YAAY,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;AACxC,YAAY,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE;AACjD,QAAQ;AACR,IAAI;AACJ;AACA,MAAM,UAAU,GAAG,sBAAsB,IAAI;AAC7C,MAAM,IAAI,oBAAoB,CAAC,CAAC,GAAG,KAAK;AACxC,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,gLAAgL,CAAC,CAAC;AACtR,IAAI,CAAC;AACL,MAAM,IAAI;;ACpSV;AACA;AACA;AACA;AACO,MAAM,eAAe,CAAC;AAC7B,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE;AACrC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AAChD,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO;AAC1C;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrD,YAAY,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvD,YAAY,IAAI,WAAW,KAAK,YAAY,EAAE;AAC9C,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACY,MAAC,eAAe,GAAG;AAC/B,IAAI,aAAa,EAAE,MAAM,KAAK;AAC9B;;AChCA;AACA;AACA;AACO,MAAM,gBAAgB,SAAS,YAAY,CAAC;AACnD,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAY,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AACxC,gBAAgB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AACnC,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACxD,oBAAoB,KAAK,EAAE;AAC3B,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,GAAG,MAAM;AACrB,YAAY;AACZ,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc;AACvC;AACA,YAAY,gBAAgB,EAAE,CAAC,QAAQ,KAAK;AAC5C,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACnE,YAAY;AACZ,SAAS;AACT,IAAI;AACJ,IAAI,YAAY;AAChB,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE;AAC9C,IAAI;AACJ,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACxD,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc;AAChD,QAAQ,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK;AAClD,YAAY,CAAC,CAAC,gBAAgB,GAAG,YAAY,CAAC;AAC9C,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,MAAM;AACrB,YAAY,OAAO,EAAE;AACrB,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc;AACpD,YAAY,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK;AACtD,gBAAgB,CAAC,CAAC,gBAAgB,GAAG,YAAY,CAAC;AAClD,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC;AACT,IAAI;AACJ;;ACjDU,IAAC;AACX,CAAC,UAAU,yBAAyB,EAAE;AACtC,IAAI,yBAAyB,CAAC,SAAS,CAAC,GAAG,QAAQ;AACnD,IAAI,yBAAyB,CAAC,UAAU,CAAC,GAAG,SAAS;AACrD,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,GAAG,eAAe;AAClE,IAAI,yBAAyB,CAAC,sBAAsB,CAAC,GAAG,oBAAoB;AAC5E,IAAI,yBAAyB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAClD,CAAC,EAAE,yBAAyB,KAAK,yBAAyB,GAAG,EAAE,CAAC,CAAC;AACrD,MAAC,yBAAyB,GAAG;AAC7B,MAAC,2BAA2B,GAAG;AAC3C,IAAI,UAAU,EAAE,yBAAyB;AACzC,IAAI,cAAc,EAAE;AACpB;;ACVA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,SAAS,gBAAgB,CAAC;AAC7D,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,eAAe;AACnB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,gBAAgB;AACpB,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE;AACpD,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK;AAC5B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACjD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACpC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACjE,IAAI;AACJ,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,UAAU,EAAE,IAAI,CAAC,cAAc;AAC3C,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;AAC/B,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,IAAI,IAAI;AAC/D,IAAI;AACJ,IAAI,MAAM,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE;AACnD;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;AAC5C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,QAAQ;AAC5C,QAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC3F,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE;AAC3D,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC;AACnC,gBAAgB,UAAU,EAAE;AAC5B,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC;AACzD,YAAY,WAAW,EAAE,MAAM;AAC/B,YAAY;AACZ,SAAS,CAAC,CAAC;AACX,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,QAAQ,EAAE;AACnC;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AACpC;AACA,QAAQ,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE;AACrD;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,MAAM,IAAI,CAAC,WAAW;AAC9B,QAAQ,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC;AAC5E,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE;AAC9B,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,WAAW,EAAE;AACjD,YAAY,MAAM,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7F;AACA,YAAY,MAAM,CAAC,UAAU,GAAG,KAAK;AACrC,YAAY,MAAM,CAAC,SAAS,GAAG,KAAK;AACpC,QAAQ;AACR,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC;AACtE,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;AAChD,YAAY,MAAM,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/F,QAAQ;AACR,QAAQ,MAAM,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7F,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE;AACvB,QAAQ,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO;AACnC,QAAQ,MAAM,oBAAoB,GAAG,EAAE,CAAC,gBAAgB,CAAC;AACzD,YAAY,OAAO,EAAE,YAAY;AACjC,gBAAgB,MAAM,IAAI,CAAC,KAAK,EAAE;AAClC,YAAY;AACZ,SAAS,CAAC;AACV;AACA,QAAQ,MAAM,EAAE,CAAC,YAAY,EAAE;AAC/B,QAAQ,MAAM,qBAAqB,GAAG,EAAE,CAAC,gBAAgB,CAAC;AAC1D,YAAY,aAAa,EAAE,YAAY;AACvC,gBAAgB,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY;AACxD,oBAAoB,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACxE,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM;AACtC,YAAY,oBAAoB,EAAE;AAClC,YAAY,qBAAqB,EAAE;AACnC,QAAQ,CAAC;AACT;AACA,QAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY;AAChD,YAAY,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;AAChF,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AACpC,QAAQ,IAAI,CAAC,gBAAgB,IAAI;AACjC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACpC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,CAAC,QAAQ,EAAE;AACrC,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,EAAE;AAC5B,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;AAC7C,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,8BAA8B,CAAC,QAAQ,EAAE;AACnD,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtE,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI;AAChB,gBAAgB,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACjF,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B;AACA;AACA,gBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AACjG,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;;ACpJA;AACA;AACA;AACA;AACY,MAAC,kBAAkB,GAAG;AAClC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,SAAS,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,sBAAsB,GAAG;AACtC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK;AACrB,QAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;AAC9E,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC;AAC7B,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACnC,IAAI,CAAC;AACL,IAAI,SAAS,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,0BAA0B,SAAS,sBAAsB,CAAC;AACvE,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,CAAC,OAAO,CAAC;AACtB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa,IAAI,sBAAsB;AACzE,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE;AACxC,QAAQ,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU;AACpD,QAAQ,IAAI,UAAU,GAAG,KAAK;AAC9B,QAAQ,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE;AACpC,QAAQ,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAC1D;AACA,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,EAAE,EAAE;AACnB,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,SAAS,EAAE;AACvB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AACpC,YAAY,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;AACnC,YAAY,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;AACxC,YAAY,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC/C,YAAY,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;AACrD,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B;AACA,gBAAgB,UAAU,GAAG,IAAI;AACjC,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,gBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE;AAC/C,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC1D;AACA,oBAAoB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACpD;AACA,oBAAoB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC;AACrD,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,UAAU,GAAG,IAAI;AACrC,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;AACrF;AACA,oBAAoB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACzF,QAAQ,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;AAC1D,QAAQ,OAAO;AACf,YAAY,IAAI;AAChB,YAAY,UAAU;AACtB,YAAY,GAAG,EAAE;AACjB,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE;AAC7B,QAAQ,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO;AACjD,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO;AACvC,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE;AAC1D,QAAQ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,UAAU,EAAE;AAC3F,YAAY,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;AACrC,SAAS,CAAC;AACV,QAAQ,IAAI,UAAU,GAAG,IAAI,GAAG,EAAE;AAClC;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC1C,YAAY,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACxD,gBAAgB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AACrD,gBAAgB;AAChB,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,QAAQ,EAAE,CAAC,oBAAoB,CAAC;AAChC,YAAY,QAAQ,EAAE,YAAY;AAClC,gBAAgB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE;AACxD,oBAAoB;AACpB,gBAAgB;AAChB;AACA,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvE,wBAAwB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACpE,oBAAoB;AACpB,oBAAoB,MAAM,kBAAkB,GAAG,EAAE;AACjD;AACA,oBAAoB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;AACpE,wBAAwB,GAAG,EAAE,aAAa,CAAC,GAAG;AAC9C;AACA;AACA,wBAAwB,UAAU,EAAE,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC;AACjE,wBAAwB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;AACzC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,WAAW,CAAC,OAAO,EAAE;AAC7C,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,IAAI,IAAI,CAAC,cAAc,EAAE;AAC7C,wBAAwB,kBAAkB,CAAC,UAAU,GAAG,KAAK;AAC7D,oBAAoB;AACpB,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AAC9C,wBAAwB,kBAAkB,CAAC,SAAS,GAAG,KAAK;AAC5D,oBAAoB;AACpB,oBAAoB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;AAC5F;AACA,oBAAoB,UAAU,GAAG,GAAG;AACpC,oBAAoB,IAAI,UAAU,EAAE;AACpC,wBAAwB,MAAM,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAC1F,wBAAwB,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;AAC1D,4BAA4B,IAAI,EAAE,IAAI,CAAC;AACvC,yBAAyB,CAAC;AAC1B,oBAAoB;AACpB,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1C,wBAAwB,kBAAkB,CAAC,KAAK,GAAG,IAAI;AACvD,oBAAoB;AACpB,oBAAoB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpE,wBAAwB,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;AAClE,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;AACrD,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,OAAO,EAAE,OAAO,KAAK,KAAK;AACtC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;AACjD,YAAY;AACZ,SAAS,EAAE;AACX,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,MAAM;AAClB,YAAY,UAAU,EAAE,YAAY,CAAC,UAAU;AAC/C,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV,IAAI;AACJ;;AC1KA;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,SAAS,sBAAsB,CAAC;AACnE,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,CAAC,OAAO,CAAC;AACtB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE;AACrC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,EAAE,QAAQ,CAAC,IAAI,KAAK;AACnF,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE;AAC7B,QAAQ,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO;AACjD,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO;AACvC,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE;AAC1D,QAAQ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,UAAU,EAAE;AAC3F,YAAY,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;AACrC,SAAS,CAAC;AACV,QAAQ,EAAE,CAAC,oBAAoB,CAAC;AAChC,YAAY,QAAQ,EAAE,YAAY;AAClC,gBAAgB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE;AACxD,oBAAoB;AACpB,gBAAgB;AAChB;AACA,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvE,wBAAwB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACpE,oBAAoB;AACpB,oBAAoB,MAAM,kBAAkB,GAAG,EAAE;AACjD;AACA,oBAAoB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;AACpE,wBAAwB,GAAG,EAAE,aAAa,CAAC,GAAG;AAC9C;AACA;AACA,wBAAwB,UAAU,EAAE,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC;AACjE,wBAAwB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;AACzC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,WAAW,CAAC,OAAO,EAAE;AAC7C,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,IAAI,IAAI,CAAC,cAAc,EAAE;AAC7C,wBAAwB,kBAAkB,CAAC,UAAU,GAAG,KAAK;AAC7D,oBAAoB;AACpB,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AAC9C,wBAAwB,kBAAkB,CAAC,SAAS,GAAG,KAAK;AAC5D,oBAAoB;AACpB;AACA,oBAAoB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACtE,wBAAwB,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;AAC1D,4BAA4B,IAAI,EAAE;AAClC,yBAAyB,CAAC;AAC1B,oBAAoB;AACpB,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1C,wBAAwB,kBAAkB,CAAC,KAAK,GAAG,IAAI;AACvD,oBAAoB;AACpB,oBAAoB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpE,wBAAwB,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;AAClE,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;AACrD,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,OAAO,EAAE,OAAO,KAAK,KAAK;AACtC,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;AACjD,YAAY;AACZ,SAAS,EAAE;AACX,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,MAAM;AAClB,YAAY,UAAU,EAAE,YAAY,CAAC,UAAU;AAC/C,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV,IAAI;AACJ;;AC7EA;AACA;AACA;AACO,MAAM,WAAW,CAAC;AACzB,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,QAAQ,OAAO;AACf,YAAY,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,2BAA2B,CAAC,cAAc;AACjG,YAAY,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,2BAA2B,CAAC,UAAU;AACrF,YAAY,eAAe,EAAE,OAAO,EAAE;AACtC,SAAS;AACT,IAAI;AACJ,IAAI,KAAK,CAAC,YAAY,EAAE;AACxB,QAAQ,OAAO,IAAI,sBAAsB,CAAC;AAC1C,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,YAAY,UAAU,EAAE,YAAY,EAAE,UAAU,IAAI,eAAe;AACnE,YAAY,eAAe,EAAE,YAAY,EAAE,eAAe,IAAI,EAAE;AAChE,YAAY,YAAY,EAAE;AAC1B,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;AACpD,gBAAgB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;AACpC;AACA,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,iBAAiB,CAAC,wBAAwB,EAAE;AAChD,QAAQ,OAAO,IAAI,0BAA0B,CAAC;AAC9C,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,YAAY,aAAa,EAAE,wBAAwB,EAAE,aAAa;AAClE,YAAY,eAAe,EAAE,wBAAwB,EAAE,eAAe,IAAI,EAAE;AAC5E,YAAY,YAAY,EAAE;AAC1B,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC;AAChE,gBAAgB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;AACpC;AACA,SAAS,CAAC;AACV,IAAI;AACJ;;ACzCA;AACA;AACA;AACY,MAAC,gBAAgB,GAAG,CAAC,IAAI,KAAK;AAC1C;AACA,IAAI,OAAO,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,YAAY,IAAI,IAAI;AAClE;AACA;AACA;AACA;AACY,MAAC,gBAAgB,GAAG,CAAC,IAAI,KAAK;AAC1C,IAAI,OAAO,OAAO,IAAI,EAAE,MAAM,IAAI,UAAU;AAC5C;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,CAAC,IAAI,KAAK;AACrC,IAAI,OAAO,OAAO,IAAI,EAAE,gBAAgB,IAAI,UAAU;AACtD;;AClBU,IAAC;AACX,CAAC,UAAU,eAAe,EAAE;AAC5B,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS;AACvC,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS;AACvC,IAAI,eAAe,CAAC,SAAS,CAAC,GAAG,YAAY;AAC7C,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,UAAU;AACzC,IAAI,eAAe,CAAC,SAAS,CAAC,GAAG,YAAY;AAC7C,CAAC,EAAE,eAAe,KAAK,eAAe,GAAG,EAAE,CAAC,CAAC;AACnC,IAAC;AACX,CAAC,UAAU,uBAAuB,EAAE;AACpC,IAAI,uBAAuB,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC9D,IAAI,uBAAuB,CAAC,mBAAmB,CAAC,GAAG,aAAa;AAChE,IAAI,uBAAuB,CAAC,MAAM,CAAC,GAAG,MAAM;AAC5C,IAAI,uBAAuB,CAAC,OAAO,CAAC,GAAG,OAAO;AAC9C,IAAI,uBAAuB,CAAC,wBAAwB,CAAC,GAAG,iBAAiB;AACzE,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,GAAG,kBAAkB;AAChF,IAAI,uBAAuB,CAAC,sBAAsB,CAAC,GAAG,sBAAsB;AAC5E,CAAC,EAAE,uBAAuB,KAAK,uBAAuB,GAAG,EAAE,CAAC,CAAC;;ACjB7D;AACA;AACA;AACO,MAAM,SAAS,CAAC;AACvB,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA,IAAI,QAAQ;AACZ;AACA;AACA;AACA,IAAI,QAAQ,EAAE;AACd,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,IAAI;AACJ;;ACxBA;AACA;AACA;AACU,IAAC;AACX,CAAC,UAAU,UAAU,EAAE;AACvB;AACA,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK;AAC7B;AACA,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO;AACjC;AACA,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACnC,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;AACnC;AACA;AACA;AACO,MAAM,SAAS,CAAC;AACvB;AACA;AACA;AACA,IAAI,QAAQ;AACZ;AACA;AACA;AACA,IAAI,EAAE;AACN;AACA;AACA;AACA,IAAI,EAAE;AACN;AACA;AACA;AACA,IAAI,MAAM;AACV;AACA;AACA;AACA;AACA,IAAI,cAAc;AAClB;AACA;AACA;AACA,IAAI,KAAK;AACT;AACA;AACA;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ;AACZ,IAAI,OAAO,OAAO,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C,QAAQ,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC9H,IAAI;AACJ,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE;AAC1F,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc;AAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ;AAChC,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE;AACvB,YAAY,IAAI,EAAE,IAAI,CAAC,KAAK;AAC5B,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE;AACvB,YAAY,KAAK,EAAE,IAAI,CAAC,aAAa;AACrC,YAAY,IAAI,EAAE,IAAI,CAAC,MAAM;AAC7B,YAAY,GAAG,EAAE,IAAI,CAAC,cAAc;AACpC,YAAY,QAAQ,EAAE,IAAI,CAAC;AAC3B,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AACpG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACvD,IAAI;AACJ;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO;AACf,YAAY,IAAI,CAAC,aAAa;AAC9B,YAAY,IAAI,CAAC,QAAQ;AACzB,YAAY,IAAI,CAAC,EAAE;AACnB,YAAY,IAAI,CAAC,KAAK;AACtB,YAAY,IAAI,CAAC,EAAE;AACnB,YAAY,IAAI,CAAC,MAAM;AACvB,YAAY,IAAI,CAAC,cAAc;AAC/B,YAAY,IAAI,CAAC;AACjB,SAAS;AACT,IAAI;AACJ;;AC3GO,MAAM,eAAe,SAAS,SAAS,CAAC;AAC/C,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,aAAa;AACjB,IAAI,WAAW;AACf;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA,IAAI,QAAQ;AACZ;AACA;AACA;AACA,IAAI,aAAa,EAAE;AACnB,QAAQ,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC;AACpC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,IAAI;AACJ;;ACvBA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,SAAS,KAAK,CAAC;AAC1C,IAAI,MAAM;AACV,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,CAAC,MAAM,CAAC;AACrB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B;AACA,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC;AAC7D;AACA,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACrC,YAAY,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC;AACzD,QAAQ;AACR,IAAI;AACJ;;ACjBU,IAAC;AACX,CAAC,UAAU,UAAU,EAAE;AACvB,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;AACjD,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AACnD,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;AACnC;AACA;AACA;AACO,MAAM,MAAM,CAAC;AACpB,IAAI,KAAK;AACT,IAAI,OAAO,QAAQ,CAAC,SAAS,EAAE;AAC/B,QAAQ,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAChD,IAAI;AACJ,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtF,IAAI;AACJ;;ACpBO,MAAM,UAAU,CAAC;AACxB,IAAI,KAAK;AACT,IAAI,EAAE;AACN,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,IAAI;AACR,IAAI,OAAO,OAAO,CAAC,GAAG,EAAE;AACxB,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC;AACrI,IAAI;AACJ,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;AAC3E,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;AACtC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ,IAAI,MAAM,CAAC,gBAAgB,GAAG,KAAK,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;AAChC,YAAY,WAAW,EAAE,IAAI,CAAC,WAAW;AACzC,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B;AACA;AACA,YAAY,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;AAC/E,SAAS;AACT,IAAI;AACJ;;ACjCO,MAAM,cAAc,CAAC;AAC5B,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,OAAO,OAAO,CAAC,GAAG,EAAE;AACxB,QAAQ,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,IAAI,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC;AACnJ,IAAI;AACJ,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI;AAC5B;AACA;AACA;AACA,IAAI,QAAQ;AACZ;AACA;AACA;AACA,IAAI,KAAK;AACT;AACA;AACA;AACA,IAAI,UAAU,EAAE;AAChB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,IAAI;AACJ,IAAI,MAAM,CAAC,gBAAgB,GAAG,KAAK,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU;AACvC,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;AACzE,SAAS;AACT,IAAI;AACJ;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,KAAA,GAAgB,OAAA,CAAA,OAAA,GAAkB,OAAA,CAAA,KAAA,GAAgB,OAAA,CAAA,UAAA,GAAqB,MAAM;AAC7E,EAAA,IAAI,UAAU;EACd,CAAC,UAAU,UAAU,EAAE;MACnB,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;MACnD,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;MAC7C,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;MAC7C,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;MACrD,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;MACnE,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa;MACzD,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;MAC/D,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB;MACjE,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;MACrD,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;MAC/C,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS;MAClD,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;MAC9C,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;MAC9D,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;MAChD,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW;MACtD,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK;EAC9C,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,OAAA,CAAA,UAAA,GAAqB,EAAE,CAAC,CAAC;EAEhE,CAAC,UAAU,KAAK,EAAE;MACd,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;MACjC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC1C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS;MACzC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,QAAQ;MACvC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;MACpC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU;MAC3C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;MAClC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS;MACzC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,GAAG,eAAe;EACzD,CAAC,EAAU,OAAO,CAAC,KAAK,KAAK,OAAA,CAAA,KAAA,GAAgB,EAAE,CAAC,CAAC;EACjD,CAAC,UAAU,KAAK,EAAE;AAClB,MAAI,SAAS,WAAW,CAAC,KAAK,EAAE;UACxB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,QAAQ;AAC1D,MAAA;AACA,MAAI,KAAK,CAAC,WAAW,GAAG,WAAW;AACnC,MAAI,SAAS,WAAW,CAAC,KAAK,EAAE;UACxB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,QAAQ;AAC1D,MAAA;AACA,MAAI,KAAK,CAAC,WAAW,GAAG,WAAW;AACnC,MAAI,SAAS,OAAO,CAAC,KAAK,EAAE;UACpB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI;AAClD,MAAA;AACA,MAAI,KAAK,CAAC,OAAO,GAAG,OAAO;AAC3B,MAAI,SAAS,UAAU,CAAC,KAAK,EAAE;UACvB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,MAAM,KAAK,CAAC,OAAO;AACxD,MAAA;AACA,MAAI,KAAK,CAAC,UAAU,GAAG,UAAU;AACjC,MAAI,SAAS,SAAS,CAAC,KAAK,EAAE;UACtB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,MAAM;AACtD,MAAA;AACA,MAAI,KAAK,CAAC,SAAS,GAAG,SAAS;AAC/B,MAAI,SAAS,UAAU,CAAC,KAAK,EAAE;UACvB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,MAAM,KAAK,CAAC,OAAO;AACxD,MAAA;AACA,MAAI,KAAK,CAAC,UAAU,GAAG,UAAU;AACjC,MAAI,SAAS,QAAQ,CAAC,KAAK,EAAE;UACrB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK;AACpD,MAAA;AACA,MAAI,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAC7B,MAAI,SAAS,SAAS,CAAC,KAAK,EAAE;UACtB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,MAAM,KAAK,CAAC,aAAa;AACpE,MAAA;AACA,MAAI,KAAK,CAAC,SAAS,GAAG,SAAS;EAC/B,CAAC,EAAU,OAAO,CAAC,KAAK,KAAK,OAAA,CAAA,KAAA,GAAgB,EAAE,CAAC,CAAC;EAEjD,CAAC,UAAU,OAAO,EAAE;MAChB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;MACvC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;MACzC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;MAC7C,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;EAC/C,CAAC,EAAY,OAAO,CAAC,OAAO,KAAK,OAAA,CAAA,OAAA,GAAkB,EAAE,CAAC,CAAC;EAEvD,CAAC,UAAU,KAAK,EAAE;AAClB,MAAI,SAAS,YAAY,CAAC,KAAK,EAAE;AACjC,UAAQ,OAAO,KAAK,CAAC,QAAQ,KAAK,CAAC;AACnC,MAAA;AACA,MAAI,KAAK,CAAC,YAAY,GAAG,YAAY;AACrC,MAAI,SAAS,SAAS,CAAC,KAAK,EAAE;AAC9B,UAAQ,QAAQ,UAAU,CAAC,gBAAgB,IAAI,KAAK,CAAC,IAAI;AACzD,cAAY,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,eAAe;AACpD,MAAA;AACA,MAAI,KAAK,CAAC,SAAS,GAAG,SAAS;EAC/B,CAAC,EAAU,OAAO,CAAC,KAAK,KAAK,OAAA,CAAA,KAAA,GAAgB,EAAE,CAAC,CAAC;AACjD;;;;;;;;;;;ACtFA,EAAA,IAAI,WAAW,GAAG,CAACA,MAAI,IAAIA,MAAI,CAAC,WAAW,KAAK,UAAU,OAAO,EAAE,IAAI,EAAE;MACrE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;MAChH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,CAAA,CAAE,CAAC,EAAE,CAAC;MACxJ,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA;AACpE,MAAI,SAAS,IAAI,CAAC,EAAE,EAAE;UACd,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;UAC7D,OAAO,CAAC,EAAE,IAAI;AACtB,cAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;cAC5J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACnD,cAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;kBACT,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;kBACxB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;kBACvD,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;kBACxC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;kBACxC;sBACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;sBAC1G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxG,sBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAA;AACvF,sBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;sBACjE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACzC,sBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC;cACY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;UACtC,CAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAChE,UAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AACxF,MAAA;EACA,CAAC;EACD,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAAA,CAAA,YAAA,GAAuB,OAAA,CAAA,WAAA,GAAsB,OAAA,CAAA,cAAA,GAAyB,OAAA,CAAA,gBAAA,GAA2B,OAAA,CAAA,wBAAA,GAAmC,OAAA,CAAA,iBAAA,GAA4B,qCAAqC,OAAA,CAAA,aAAA,GAAwB,OAAA,CAAA,YAAA,GAAuB,OAAA,CAAA,aAAA,GAAwB,OAAA,CAAA,YAAA,GAAuB,OAAA,CAAA,WAAA,GAAsB,OAAA,CAAA,OAAA,GAAkB,wBAAwB,OAAA,CAAA,iBAAA,GAA4B,OAAA,CAAA,aAAA,GAAwB,OAAA,CAAA,iBAAA,GAA4B,OAAA,CAAA,eAAA,GAA0B,OAAA,CAAA,mBAAA,GAA8B,OAAA,CAAA,YAAA,GAAuB,wBAAwB,OAAA,CAAA,QAAA,GAAmB,OAAA,CAAA,kBAAA,GAA6B,OAAA,CAAA,UAAA,GAAqB,MAAM;EACrmB,IAAI,QAAQ,GAAGC,aAAA,EAAmB;AAClC,EAAA,OAAA,CAAA,UAAA,GAAqB,KAAK,CAAC;AAC3B,EAAA,OAAA,CAAA,kBAAA,GAA6B,EAAE,CAAC;AAChC,EAAA,OAAA,CAAA,QAAA,GAAmB,UAAU,CAAC;AAC9B,EAAA,OAAA,CAAA,aAAA,GAAwB,UAAU,CAAC;AACnC,EAAA,OAAA,CAAA,YAAA,GAAuB,UAAU,CAAC;AAClC,EAAA,OAAA,CAAA,mBAAA,GAA8B,QAAQ,CAAC;AACvC,EAAA,OAAA,CAAA,eAAA,GAA0B,IAAI,CAAC;AAC/B,EAAA,OAAA,CAAA,iBAAA,GAA4B,UAAU,CAAC;AACvC,EAAA,OAAA,CAAA,aAAA,GAAwB,UAAU,CAAC;AACnC,EAAA,OAAA,CAAA,iBAAA,GAA4B,MAAM,CAAC;AACnC,EAAA,OAAA,CAAA,aAAA,GAAwB,UAAU,CAAC;AACnC,EAAA,OAAA,CAAA,OAAA,GAAkB,UAAU,CAAC;AAC7B,EAAA,OAAA,CAAA,WAAA,GAAsB,MAAM,CAAC;AAC7B;AACA;AACA;EACA,IAAI,gBAAgB,GAAG,WAAW;AAClC;AACA;AACA;AACA,EAAA,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE;MAClC,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE;AAC7C,MAAI,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;MAC5C,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C,MAAI,OAAO,IAAI,GAAG,IAAI,GAAG,IAAI;AAC7B,EAAA;AACA,EAAA,OAAA,CAAA,YAAA,GAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA,EAAA,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AAC9C,MAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,MAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;MACzD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACnD,EAAA;AACA,EAAA,OAAA,CAAA,aAAA,GAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA,EAAA,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE;MAClC,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;MACtC,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7C,MAAI,OAAO,IAAI,GAAG,gBAAgB,GAAG,GAAG;AACxC,EAAA;AACA,EAAA,OAAA,CAAA,YAAA,GAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA,EAAA,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;MAC1C,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,gBAAgB,IAAI,CAAC;AAC7C,MAAI,IAAI,GAAG,GAAG,KAAK,GAAG,gBAAgB;MAClC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;MAC5C,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7C,EAAA;AACA,EAAA,OAAA,CAAA,aAAA,GAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;EACA,IAAI,iBAAiB,GAAG,CAAC;AACzB;AACA;AACA;EACA,IAAI,WAAW,GAAG,CAAC;AACnB;AACA;AACA;EACA,SAAS,0BAA0B,CAAC,MAAM,EAAE;MACxC,IAAI,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7C,MAAI,OAAO,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC;AACjF,EAAA;AACA,EAAA,OAAA,CAAA,0BAAA,GAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;EACA,SAAS,iBAAiB,CAAC,MAAM,EAAE;MAC/B,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK;AACrE,MAAI,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;UACnC,QAAQ,EAAE,CAAC,KAAK;AACxB,cAAY,KAAK,CAAC;kBACF,MAAM,GAAG,CAAC;AAC1B,kBAAgB,EAAE,CAAC,KAAK,GAAG,CAAC;AAC5B,cAAY,KAAK,CAAC;AAClB,kBAAgB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACpF,kBAAgB,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1D,kBAAgB,UAAU,GAAG,MAAM,GAAG,WAAW;AACjD,kBAAgB,QAAQ,GAAG,UAAU,GAAG,WAAW;AACnD,kBAAgB,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE;AAC9C;AACA,sBAAoB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC3C,kBAAA;kBACgB,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAChE,kBAAgB,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC;kBACrC,MAAM,GAAG,QAAQ;kBACjB,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrD,cAAY,KAAK,CAAC;kBACF,EAAE,CAAC,IAAI,EAAE;AACzB,kBAAgB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACvC,cAAY,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY;AACzC;AACA,MAAA,CAAK,CAAC;AACN,EAAA;AACA,EAAA,OAAA,CAAA,iBAAA,GAA4B,iBAAiB;AAC7C;AACA;AACA;EACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,MAAI,IAAI,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC;AACtC,MAAI,IAAI,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;MACpE,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACnD,MAAI,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC;AAC5C,MAAI,OAAO,cAAc;AACzB,EAAA;AACA,EAAA,OAAA,CAAA,wBAAA,GAAmC,wBAAwB;AAC3D;AACA;AACA;EACA,SAAS,gBAAgB,CAAC,MAAM,EAAE;MAC9B,IAAI,MAAM,GAAG,CAAC;MACd,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;MACzC,MAAM,IAAI,CAAC;AACf;AACA;AACA;AACA;AACA;MACI,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;MAC9C,MAAM,IAAI,CAAC;MACX,IAAI,IAAI,GAAG,YAAY,KAAK,OAAO,CAAC,kBAAkB,CAAC;MACvD,IAAI,KAAK,GAAG,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;AAClD,MAAI,QAAQ,IAAI;AAChB,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;cAC1B,OAAO,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACjE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO;cAC5B,OAAO,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACnE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;cAC1B,OAAO,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACjE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;cAC9B,OAAO,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACrE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,WAAW;cAChC,OAAO,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACtE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,gBAAgB;cACrC,OAAO,+BAA+B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AAC3E,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,cAAc;cACnC,OAAO,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACzE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,eAAe;cACpC,OAAO,8BAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AAC1E,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,aAAa;cAClC,OAAO,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACxE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;cAC9B,OAAO,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACpE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM;cAC3B,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AAClE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;cAC9B,OAAO,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AACpE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM;cAC3B,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AAClE,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;cAC1B,OAAO,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA,OAAA,CAAA,gBAAA,GAA2B,gBAAgB;AAC3C;AACA;AACA;EACA,SAAS,cAAc,CAAC,KAAK,EAAE;MAC3B,QAAQ,KAAK,CAAC,IAAI;AACtB,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AACtC,cAAY,OAAO,mBAAmB,CAAC,KAAK,CAAC;AAC7C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO;AACxC,cAAY,OAAO,qBAAqB,CAAC,KAAK,CAAC;AAC/C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AACtC,cAAY,OAAO,mBAAmB,CAAC,KAAK,CAAC;AAC7C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC1C,cAAY,OAAO,uBAAuB,CAAC,KAAK,CAAC;AACjD,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,WAAW;AAC5C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,gBAAgB;AACjD,cAAY,OAAO,qBAAqB,CAAC,KAAK,CAAC;AAC/C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,cAAc;AAC/C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,eAAe;AAChD,cAAY,OAAO,yBAAyB,CAAC,KAAK,CAAC;AACnD,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,aAAa;AAC9C,cAAY,OAAO,0BAA0B,CAAC,KAAK,CAAC;AACpD,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC1C,cAAY,OAAO,sBAAsB,CAAC,KAAK,CAAC;AAChD,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM;AACvC,cAAY,OAAO,oBAAoB,CAAC,KAAK,CAAC;AAC9C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC1C,cAAY,OAAO,sBAAsB,CAAC,KAAK,CAAC;AAChD,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM;AACvC,cAAY,OAAO,oBAAoB,CAAC,KAAK,CAAC;AAC9C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AACtC,cAAY,OAAO,mBAAmB,CAAC,KAAK,CAAC;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA,OAAA,CAAA,cAAA,GAAyB,cAAc;AACvC;AACA;AACA;EACA,SAAS,WAAW,CAAC,KAAK,EAAE;MACxB,QAAQ,KAAK,CAAC,IAAI;AACtB,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AACtC,cAAY,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAC1C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO;AACxC,cAAY,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAC5C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AACtC,cAAY,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAC1C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC1C,cAAY,OAAO,oBAAoB,CAAC,KAAK,CAAC;AAC9C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,WAAW;AAC5C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,gBAAgB;AACjD,cAAY,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAC5C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,cAAc;AAC/C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,eAAe;AAChD,cAAY,OAAO,sBAAsB,CAAC,KAAK,CAAC;AAChD,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,aAAa;AAC9C,cAAY,OAAO,uBAAuB,CAAC,KAAK,CAAC;AACjD,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC1C,cAAY,OAAO,mBAAmB,CAAM,CAAC;AAC7C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM;AACvC,cAAY,OAAO,iBAAiB,CAAC,KAAK,CAAC;AAC3C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC1C,cAAY,OAAO,mBAAmB,CAAM,CAAC;AAC7C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM;AACvC,cAAY,OAAO,iBAAiB,CAAM,CAAC;AAC3C,UAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AACtC,cAAY,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,gBAAgB,GAAG,EAAE;EACzB,IAAI,wBAAwB,GAAG,CAAC;EAChC,SAAS,mBAAmB,CAAC,KAAK,EAAE;AACpC,MAAI,IAAI,iBAAiB,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC;AACxF,MAAI,IAAI,sBAAsB,GAAG,KAAK,CAAC,gBAAgB,IAAI;YACjD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO;AAC3D,YAAU,CAAC;AACX,MAAI,IAAI,kBAAkB,GAAG,KAAK,CAAC,YAAY,IAAI;YACzC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO;AACvD,YAAU,CAAC;AACX,MAAI,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC/C,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB;AACrD,UAAQ,gBAAgB;AACxB,WAAS,iBAAiB,GAAG,wBAAwB,GAAG,iBAAiB,GAAG,CAAC,CAAC;AAC9E,UAAQ,sBAAsB;AAC9B,UAAQ,kBAAkB;AAC1B,UAAQ,aAAa,CAAC;MAClB,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;MACvC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;MACzD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;MACzD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;MACtD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;MACrD,IAAI,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE;UAC5C,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC;AAChE,UAAQ,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,EAAE;cAC3B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5D,UAAA;AACA,MAAA;MACI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,sBAAsB,EAAE,MAAM,CAAC;AAC9D,MAAI,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,EAAE;AACxC,UAAQ,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,sBAAsB,EAAE,OAAO,CAAC;AACxG,MAAA;MACI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC;AAC1D,MAAI,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,EAAE;AACpC,UAAQ,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,OAAO,CAAC;AAChG,MAAA;AACA,MAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AACvC,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,MAAI,IAAI,iBAAiB,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC;AACxF,MAAI,IAAI,sBAAsB,GAAG,KAAK,CAAC,gBAAgB,IAAI;YACjD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO;AAC3D,YAAU,CAAC;AACX,MAAI,IAAI,kBAAkB,GAAG,KAAK,CAAC,YAAY,IAAI;YACzC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO;AACvD,YAAU,CAAC;AACX,MAAI,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC/C,MAAI,QAAQ,iBAAiB;AAC7B,UAAQ,gBAAgB;AACxB,WAAS,iBAAiB,GAAG,wBAAwB,GAAG,iBAAiB,GAAG,CAAC,CAAC;AAC9E,UAAQ,sBAAsB;AAC9B,UAAQ,kBAAkB;AAC1B,UAAQ,aAAa;AACrB,EAAA;AACA;AACA;AACA;AACA,EAAA,SAAS,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AACxD;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,MAAM,GAAG,iBAAiB;MAC9B,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;MAC9C,MAAM,IAAI,CAAC;MACX,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;MAC9C,MAAM,IAAI,CAAC;MACX,IAAI,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;MAC1C,MAAM,IAAI,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;MACI,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;MACzC,MAAM,IAAI,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;MACI,IAAI,WAAW,GAAG,IAAI;MACtB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE;UACtC,IAAI,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;UAClD,MAAM,IAAI,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;UACQ,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;UAC9D,MAAM,IAAI,iBAAiB;AACnC,MAAA;MACI,IAAI,sBAAsB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;MACrD,MAAM,IAAI,CAAC;AACf,MAAI,IAAI,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAAC;MACxF,MAAM,IAAI,sBAAsB;MAChC,IAAI,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;MACjD,MAAM,IAAI,CAAC;AACf,MAAI,IAAI,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC;MAChF,MAAM,IAAI,kBAAkB;MAC5B,IAAI,KAAK,GAAG;UACR,IAAI,EAAE,IAAI;UACV,YAAY,EAAE,YAAY;UAC1B,KAAK,EAAE,KAAK;UACZ,SAAS,EAAE,SAAS;UACpB,QAAQ,EAAE,QAAQ;UAClB,YAAY,EAAE,YAAY;UAC1B,QAAQ,EAAE,IAAI;UACd,gBAAgB,EAAE,gBAAgB;UAClC,YAAY,EAAE,YAAY;UAC1B,WAAW,EAAE,WAAW;AAChC;UACQ,QAAQ,EAAE,CAAC;AACnB,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;OAClC;AACL,MAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AACtC,MAAI,OAAO,KAAK;AAChB,EAAA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,gBAAgB,GAAG,CAAC;EACxB,SAAS,mBAAmB,CAAC,KAAK,EAAE;MAChC,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;AAC5F,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,CAAC;MACrF,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;MACvC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AACrD,MAAI,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;AAC/B,UAAQ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,MAAM,CAAC;AAC3E,MAAA;AACA,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;MAC7B,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;AAC5F,MAAI,OAAO,iBAAiB,GAAG,gBAAgB,GAAG,aAAa;AAC/D,EAAA;AACA;AACA;AACA;AACA,EAAA,SAAS,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AACxD,MAAiB,MAAM,CAAC;MACpB,IAAI,MAAM,GAAG,iBAAiB;MAC9B,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;MACrC,MAAM,IAAI,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;MAC1C,IAAI,OAAO,GAAG,EAAE;AACpB,MAAI,IAAI,aAAa,GAAG,CAAC,EAAE;AAC3B,UAAQ,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;UACjE,MAAM,IAAI,aAAa;AAC/B,MAAA;AACA,MAAI,OAAO;UACH,IAAI,EAAE,IAAI;UACV,KAAK,EAAE,KAAK;UACZ,OAAO,EAAE,OAAO;UAChB,QAAQ,EAAE,QAAQ;AAC1B,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;OAClC;AACL,EAAA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,oBAAoB,GAAG,CAAC;EAC5B,SAAS,uBAAuB,CAAC,KAAK,EAAE;AACxC,MAAI,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC;AACnE,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,oBAAoB,GAAG,UAAU,CAAC;MACtF,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;MACvC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC;AACtE,MAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;UACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACvC,MAAA;AACA,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,MAAI,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC;AACnE,MAAI,OAAO,iBAAiB,GAAG,oBAAoB,GAAG,UAAU;AAChE,EAAA;AACA;AACA;AACA;AACA,EAAA,SAAS,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC5D;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,MAAM,GAAG,iBAAiB;MAC9B,IAAI,oBAAoB,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;MACvD,MAAM,IAAI,CAAC;MACX,IAAI,IAAI,GAAG,IAAI;AACnB,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;UACxB,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AAClD,MAAA;AACA,MAAI,OAAO;UACH,IAAI,EAAE,IAAI;UACV,KAAK,EAAE,KAAK;UACZ,oBAAoB,EAAE,oBAAoB;AAClD;UACQ,QAAQ,EAAE,CAAC;AACnB,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS;OACtC;AACL,EAAA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,gBAAgB,GAAG,CAAC;EACxB,SAAS,mBAAmB,CAAC,KAAK,EAAE;AACpC,MAAI,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC;AAC3E,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,UAAU,CAAC;MAClF,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;MACvC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;MAChD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;AAC7D,MAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE;UACxB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AAC3C,MAAA;AACA,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,MAAI,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC;AAC3E,MAAI,OAAO,iBAAiB,GAAG,gBAAgB,GAAG,UAAU;AAC5D,EAAA;AACA;AACA;AACA;AACA,EAAA,SAAS,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AACxD;AACA;AACA;AACA;AACA;MACI,IAAI,MAAM,GAAG,iBAAiB;MAC9B,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;MACrC,MAAM,IAAI,CAAC;MACX,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;MAC9C,MAAM,IAAI,CAAC;MACX,IAAI,QAAQ,GAAG,IAAI;AACvB,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;UACxB,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AACtD,MAAA;AACA,MAAI,OAAO;UACH,KAAK,EAAE,KAAK;UACZ,QAAQ,EAAE,QAAQ;UAClB,YAAY,EAAE,YAAY;AAClC;UACQ,QAAQ,EAAE,CAAC;UACX,GAAG,EAAE,GAAG;AAChB,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;OAClC;AACL,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,qBAAqB,CAAC,KAAK,EAAE;AACtC,MAAI,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;MAC3C,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,aAAa,CAAC;MAClE,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;AAC3C,MAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AACvC,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,MAAI,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;MAC3C,OAAO,iBAAiB,GAAG,aAAa;AAC5C,EAAA;AACA;AACA;AACA;AACA;EACA,SAAS,0BAA0B,CAAC,KAAK,EAAE;AAC3C,MAAI,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ;AACjC,MAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;AAC1B,UAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC;UACxE,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/C,UAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACrC,UAAQ,OAAO,MAAM;AACrB,MAAA;WACS;UACD,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC;AAC1D,UAAQ,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;AAClC,UAAQ,OAAO,MAAM;AACrB,MAAA;AACA,EAAA;EACA,SAAS,uBAAuB,CAAC,KAAK,EAAE;AACxC,MAAI,QAAQ,iBAAiB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;AACxF,EAAA;AACA,EAAA,SAAS,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC7D;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,KAAK,GAAG;UACR,IAAI,EAAE,IAAI;UACV,KAAK,EAAE,KAAK;AACpB;UACQ,QAAQ,EAAE,IAAI;UACd,QAAQ,EAAE,QAAQ;AAC1B,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW;OACxC;AACL,MAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;AACjD,MAAI,OAAO,KAAK;AAChB,EAAA;AACA,EAAA,SAAS,+BAA+B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AAClE;AACA;AACA;AACA;AACA;MACI,IAAI,KAAK,GAAG;UACR,IAAI,EAAE,IAAI;UACV,KAAK,EAAE,KAAK;AACpB;UACQ,QAAQ,EAAE,IAAI;UACd,QAAQ,EAAE,QAAQ;AAC1B,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;OAC7C;AACL,MAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;AACjD,MAAI,OAAO,KAAK;AAChB,EAAA;AACA,EAAA,SAAS,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA,MAAI,OAAO;UACH,KAAK,EAAE,KAAK;AACpB;UACQ,QAAQ,EAAE,MAAM,KAAK;gBACf;AACd,gBAAc,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC;AACrD;UACQ,QAAQ,EAAE,CAAC;AACnB,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,aAAa;OAC1C;AACL,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,mBAAmB,GAAG,CAAC;EAC3B,SAAS,yBAAyB,CAAC,KAAK,EAAE;AAC1C,MAAI,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC/C,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,CAAC;MACxF,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;MACvC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;AACzD,MAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AACvC,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,MAAI,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC/C,MAAI,OAAO,iBAAiB,GAAG,mBAAmB,GAAG,aAAa;AAClE,EAAA;AACA,EAAA,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AAChE;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,MAAM,GAAG,iBAAiB;MAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;MACzC,MAAM,IAAI,CAAC;AACf;AACA;AACA;AACA;AACA;MACI,IAAI,KAAK,GAAG;UACR,IAAI,EAAE,IAAI;UACV,KAAK,EAAE,KAAK;AACpB;UACQ,QAAQ,EAAE,IAAI;UACd,QAAQ,EAAE,QAAQ;UAClB,QAAQ,EAAE,QAAQ;AAC1B,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc;OAC3C;AACL,MAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AACtC,MAAI,OAAO,KAAK;AAChB,EAAA;AACA,EAAA,SAAS,8BAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AACjE;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,MAAM,GAAG,iBAAiB;MAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;MACzC,MAAM,IAAI,CAAC;AACf;AACA;AACA;AACA;AACA;MACI,IAAI,KAAK,GAAG;UACR,IAAI,EAAE,IAAI;UACV,KAAK,EAAE,KAAK;AACpB;UACQ,QAAQ,EAAE,IAAI;UACd,QAAQ,EAAE,QAAQ;UAClB,QAAQ,EAAE,QAAQ;AAC1B,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,eAAe;OAC5C;AACL,MAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AACtC,MAAI,OAAO,KAAK;AAChB,EAAA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,gBAAgB,GAAG,CAAC;EACxB,SAAS,sBAAsB,CAAC,KAAK,EAAE;MACnC,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;MACrE,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;MACvC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;AAChD,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,mBAAmB,CAAC,KAAK,EAAE;MAChC,OAAO,iBAAiB,GAAG,gBAAgB;AAC/C,EAAA;AACA,EAAA,SAAS,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC3D;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA,MAAI,OAAO;UACH,KAAK,EAAE,KAAK;AACpB;UACQ,QAAQ,EAAE,QAAQ;UAClB,QAAQ,EAAE,QAAQ;AAC1B,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS;OACtC;AACL,EAAA;AACA;AACA;AACA;EACA,SAAS,oBAAoB,CAAC,KAAK,EAAE;MACjC,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC;AACtD,MAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;AAC9B,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,MAAI,OAAO,iBAAiB;AAC5B,EAAA;AACA,EAAA,SAAS,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AACzD;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;AACxB,MAAI,OAAO;UACH,KAAK,EAAE,KAAK;AACpB;UACQ,QAAQ,EAAE,QAAQ;AAC1B,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;OACnC;AACL,EAAA;AACA;AACA;AACA;EACA,SAAS,qBAAqB,CAAC,KAAK,EAAE;AACtC,MAAI,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;MAC3C,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,aAAa,CAAC;MAClE,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;AAC3C,MAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AACvC,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,MAAI,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;MAC3C,OAAO,iBAAiB,GAAG,aAAa;AAC5C,EAAA;AACA,EAAA,SAAS,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC1D;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,KAAK,GAAG;UACR,IAAI,EAAE,IAAI;UACV,KAAK,EAAE,KAAK;AACpB;UACQ,QAAQ,EAAE,IAAI;UACd,QAAQ,EAAE,QAAQ;AAC1B,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;OACpC;AACL,MAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;AACjD,MAAI,OAAO,KAAK;AAChB,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,iBAAiB,GAAG,EAAE;EAC1B,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,MAAI,IAAI,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU;AACxD,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;MAC1F,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;MACvC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;MACzD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;MACzD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC;MACxD,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;MAChD,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC;MAC5D,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC;AACvD,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,MAAI,IAAI,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU;AACxD,MAAI,OAAO,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AACpE,EAAA;AACA,EAAA,SAAS,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AACzD;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,MAAM,GAAG,iBAAiB;MAC9B,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;MAC9C,MAAM,IAAI,CAAC;MACX,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;MAC9C,MAAM,IAAI,CAAC;MACX,IAAI,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;MAClD,MAAM,IAAI,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;MAClE,MAAM,IAAI,iBAAiB;MAC3B,IAAI,cAAc,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;MACjD,MAAM,IAAI,CAAC;MACX,IAAI,cAAc,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;MACjD,MAAM,IAAI,CAAC;AACf,MAAI,OAAO;UACH,cAAc,EAAE,cAAc;UAC9B,KAAK,EAAE,KAAK;AACpB;UACQ,YAAY,EAAE,YAAY;UAC1B,YAAY,EAAE,YAAY;UAC1B,WAAW,EAAE,WAAW;UACxB,cAAc,EAAE,cAAc;AACtC;UACQ,QAAQ,EAAE,CAAC;AACnB,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;OACnC;AACL,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,oBAAoB,GAAG,CAAC;EAC5B,SAAS,sBAAsB,CAAC,KAAK,EAAE;MACnC,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;MACzE,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;MACvC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC;AACvD,MAAI,OAAO,MAAM;AACjB,EAAA;EACA,SAAS,mBAAmB,CAAC,KAAK,EAAE;MAChC,OAAO,iBAAiB,GAAG,oBAAoB;AACnD,EAAA;AACA,EAAA,SAAS,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC3D;AACA;AACA;AACA;AACA,MAAiB,MAAM,CAAC;MACpB,IAAI,cAAc,GAAG,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC;AAChE,MAAI,OAAO;UACH,cAAc,EAAE,cAAc;UAC9B,KAAK,EAAE,KAAK;AACpB;AACA;UACQ,QAAQ,EAAE,CAAC;AACnB,UAAQ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS;OACtC;AACL,EAAA;AACA;AACA;AACA;AACA,EAAA,SAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;AACpC,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD;MACI,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,kBAAkB,KAAK,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;AACxH,EAAA;AACA;AACA;AACA;AACA;EACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;MAC7B,IAAI,aAAa,GAAG,CAAC;AACzB,MAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;AAC5B,UAAQ,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU;AAC9C,MAAA;MACI,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;UACzC,aAAa,IAAI,WAAW;AACpC,UAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE;AACpC,cAAY,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU;AACtD,UAAA;AACA,MAAA;AACA,MAAI,OAAO,aAAa;AACxB,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;MACzC,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACjD,UAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE;AACpC,cAAY,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU;cAC1C,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;cAClD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACzD,UAAA;eACa;cACD,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC;AACrD,UAAA;AACA,MAAA;AACA,MAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;UACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACvC,MAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;MACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;UACzC,IAAI,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;UAC7C,MAAM,IAAI,WAAW;AAC7B,UAAQ,IAAI,UAAU,GAAG,CAAC,EAAE;AAC5B,cAAY,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;cAC1D,MAAM,IAAI,UAAU;AAChC,UAAA;AACA,MAAA;AACA,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;AAChC,UAAQ,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AACxD,MAAA;AACA,EAAA;AACA;EACA,IAAI,YAAY,kBAAkB,YAAY;MAC1C,SAAS,YAAY,GAAG;AAC5B,MAAA;AACA;AACA;AACA;MACI,YAAY,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,MAAM,EAAE;AAChE,UAAQ,OAAO,gBAAgB,CAAC,MAAM,CAAC;MACvC,CAAK;AACL;AACA;AACA;MACI,YAAY,CAAC,SAAS,CAAC,0BAA0B,GAAG,UAAU,MAAM,EAAE;AAC1E,UAAQ,OAAO,0BAA0B,CAAC,MAAM,CAAC;MACjD,CAAK;AACL;AACA;AACA;AACA;AACA;MACI,YAAY,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE;AACjE,UAAQ,OAAO,iBAAiB,CAAC,MAAM,CAAC;MACxC,CAAK;AACL,MAAI,OAAO,YAAY;AACvB,EAAA,CAAC,EAAE,CAAC;AACJ,EAAA,OAAA,CAAA,YAAA,GAAuB,YAAY;AACnC;;;;;;;;;;;;ACv/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,IAAI,QAAQ,GAAG,CAACD,QAAI,IAAIA,QAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;KAClD,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;KAC7E,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACvB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,OAAO;SAC1C,IAAI,EAAE,YAAY;AAC1B,aAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM;AAC9C,aAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AACnD,SAAA;MACK;KACD,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC;CAC1F,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAACE,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,QAAA,CAAA,QAAgB,GAAG,MAAM;CACzB,IAAIC,UAAQ,kBAAkB,YAAY;KACtC,SAAS,QAAQ,GAAG;AACxB,SAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,SAAQ,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAClC,KAAA;KACI,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE;SAC9C,GAAG,EAAE,YAAY;aACb,OAAO,IAAI,CAAC,KAAK;SAC7B,CAAS;SACD,UAAU,EAAE,KAAK;AACzB,SAAQ,YAAY,EAAE;AACtB,MAAK,CAAC;AACN;AACA;AACA;AACA;KACI,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AAChD,SAAQ,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;AAC5B,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB,SAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;SACnB,IAAI,KAAK,EAAE;AACnB,aAAY,IAAI;AAChB,iBAAgB,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AACzG,qBAAoB,IAAI,QAAQ,GAAG,EAAE,CAAC,KAAK;qBACvB,QAAQ,CAAC,KAAK,CAAC;AACnC,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;aACY;AACZ,SAAA;AACA,SAAQ,IAAI;AACZ,aAAY,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AACrG,iBAAgB,IAAI,QAAQ,GAAG,EAAE,CAAC,KAAK;AACvC,iBAAgB,QAAQ,EAAE;AAC1B,aAAA;AACA,SAAA;SACQ,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;iBAC/B;AAChB,aAAY,IAAI;iBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,aAAA;qBACoB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AAC/C,SAAA;KACA,CAAK;AACL;AACA;AACA;KACI,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,QAAQ,EAAE;AACrD,SAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,aAAY,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;aACrB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC5C,CAAK;AACL,KAAI,OAAO,QAAQ;AACnB,CAAA,CAAC,EAAE,CAAC;AACJ,CAAAD,QAAA,CAAA,QAAgB,GAAGC,UAAQ;AAC3B;;;;;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,SAAS,GAAG,CAACH,MAAI,IAAIA,MAAI,CAAC,SAAS,KAAK,CAAC,YAAY;AACzD,MAAI,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACxC,UAAQ,aAAa,GAAG,MAAM,CAAC,cAAc;eAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA,CAAE,CAAC;AACxF,cAAY,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE;AAC7G,UAAQ,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;MAClC,CAAK;AACL,MAAI,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;UACnB,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;AACjD,cAAY,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC;AACrG,UAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;UACnB,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;UACrC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;MAC5F,CAAK;AACL,EAAA,CAAC,GAAG;EACJ,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAAA,CAAA,UAAA,GAAqB,OAAA,CAAA,YAAA,GAAuB,MAAM;AAClD,EAAA,IAAI,YAAY,kBAAkB,UAAU,MAAM,EAAE;AACpD,MAAI,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;AACnC,MAAI,SAAS,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE;AACzC,UAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI;AACtD,UAAQ,KAAK,CAAC,IAAI,GAAG,IAAI;AACzB,UAAQ,OAAO,KAAK;AACpB,MAAA;AACA,MAAI,OAAO,YAAY;EACvB,CAAC,CAAC,KAAK,CAAC,CAAC;AACT,EAAA,OAAA,CAAA,YAAA,GAAuB,YAAY;EAEnC,CAAC,UAAU,UAAU,EAAE;MACnB,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;MACnD,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe;MAC7D,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB;MACrE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;MAC/D,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB;MACjE,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB;MACrE,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB;MACrE,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC,GAAG,mBAAmB;MACvE,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU;MACrD,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU;MACrD,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS;MACnD,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,UAAU,CAAC,GAAG,oBAAoB;EACpF,CAAC,EAAe,OAAO,CAAC,UAAU,KAAK,OAAA,CAAA,UAAA,GAAqB,EAAE,CAAC,CAAC;AAChE;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,SAAS,GAAG,CAACA,oCAAI,IAAIA,oCAAI,CAAC,SAAS,KAAK,CAAC,YAAY;AACzD,MAAI,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACxC,UAAQ,aAAa,GAAG,MAAM,CAAC,cAAc;eAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA,CAAE,CAAC;AACxF,cAAY,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE;AAC7G,UAAQ,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;MAClC,CAAK;AACL,MAAI,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;UACnB,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;AACjD,cAAY,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC;AACrG,UAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;UACnB,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;UACrC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;MAC5F,CAAK;AACL,EAAA,CAAC,GAAG;AACJ,EAAA,IAAI,SAAS,GAAG,CAACA,oCAAI,IAAIA,oCAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;MACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA;AAC9G,MAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,UAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACjG,UAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACpG,UAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AACpH,UAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,MAAA,CAAK,CAAC;EACN,CAAC;AACD,EAAA,IAAI,WAAW,GAAG,CAACA,oCAAI,IAAIA,oCAAI,CAAC,WAAW,KAAK,UAAU,OAAO,EAAE,IAAI,EAAE;MACrE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;MAChH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,CAAA,CAAE,CAAC,EAAE,CAAC;MACxJ,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA;AACpE,MAAI,SAAS,IAAI,CAAC,EAAE,EAAE;UACd,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;UAC7D,OAAO,CAAC,EAAE,IAAI;AACtB,cAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;cAC5J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACnD,cAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;kBACT,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;kBACxB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;kBACvD,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;kBACxC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;kBACxC;sBACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;sBAC1G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxG,sBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAA;AACvF,sBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;sBACjE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACzC,sBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC;cACY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;UACtC,CAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAChE,UAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AACxF,MAAA;EACA,CAAC;EACD,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,kEAAA,GAA6E,OAAA,CAAA,kDAAA,GAA6D,OAAA,CAAA,yCAAA,GAAoD,OAAA,CAAA,iBAAA,GAA4B,MAAM;EAChO,IAAI,EAAE,GAAGC,WAAA,EAAY;EACrB,IAAI,UAAU,GAAGG,eAAA,EAAqB;EACtC,IAAI,QAAQ,GAAGC,aAAA,EAAmB;EAClC,IAAI,QAAQ,GAAGC,aAAA,EAAmB;EAElC,CAAC,UAAU,iBAAiB,EAAE;AAC9B,MAAI,SAAS,MAAM,CAAC,MAAM,EAAE;AAC5B,UAAQ,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC;AAChD,MAAA;AACA,MAAI,iBAAiB,CAAC,MAAM,GAAG,MAAM;MACjC,IAAI,qBAAqB,kBAAkB,YAAY;AAC3D,UAAQ,SAAS,qBAAqB,CAAC,SAAS,EAAE;AAClD,cAAY,IAAI,CAAC,SAAS,GAAG,SAAS;AACtC,UAAA;UACQ,qBAAqB,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,OAAO,EAAE;AAClE,cAAY,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;AAC3C,cAAY,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;kBAClB;AAChB,cAAA;AACA,cAAY,IAAI,CAAC,SAAS,GAAG,MAAM;UACnC,CAAS;AACT,UAAQ,OAAO,qBAAqB;AACpC,MAAA,CAAK,EAAE,CAAC;EACR,CAAC,EAAsB,OAAO,CAAC,iBAAiB,KAAK,OAAA,CAAA,iBAAA,GAA4B,EAAE,CAAC,CAAC;AACrF,EAAA,IAAI,yCAAyC,kBAAkB,UAAU,MAAM,EAAE;AACjF,MAAI,SAAS,CAAC,yCAAyC,EAAE,MAAM,CAAC;MAC5D,SAAS,yCAAyC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE;UACtF,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;AAC7C,UAAQ,KAAK,CAAC,gBAAgB,GAAG,gBAAgB;AACjD,UAAQ,KAAK,CAAC,QAAQ,GAAG,QAAQ;AACjC,UAAQ,KAAK,CAAC,SAAS,GAAG,SAAS;AACnC,UAAQ,KAAK,CAAC,QAAQ,GAAG,EAAE;AAC3B,UAAQ,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,UAAQ,OAAO,KAAK;AACpB,MAAA;MACI,yCAAyC,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;UAC1E,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;cACpC,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;AACvD;kBACgB;AAChB,cAAA;AACA,cAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC;AACtD;AACA,UAAA;eACa,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;cACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC/C;kBACgB;AAChB,cAAA;cACY,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AACzD,UAAA;eACa;cACD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;cAC3C,IAAI,CAAC,OAAO,EAAE;AAC1B;kBACgB;AAChB,cAAA;AACA,cAAY,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,UAAA;AACA;MACA,CAAK;MACD,yCAAyC,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,OAAO,EAAE;AAC/F,UAAQ,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC1C,cAAY,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;AAClF,UAAA;AACA,UAAQ,IAAI,CAAC,uBAAuB,GAAG,OAAO;MAC9C,CAAK;MACD,yCAAyC,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,OAAO,EAAE;AACjG,UAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACvC,cAAY,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;AACxE,UAAA;AACA,UAAQ,IAAI,CAAC,oBAAoB,GAAG,OAAO;MAC3C,CAAK;MACD,yCAAyC,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE;AAChF,UAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;MACjC,CAAK;MACD,MAAM,CAAC,cAAc,CAAC,yCAAyC,CAAC,SAAS,EAAE,oBAAoB,EAAE;UAC7F,GAAG,EAAE,YAAY;AACzB,cAAY,OAAO,IAAI;UACvB,CAAS;UACD,UAAU,EAAE,KAAK;AACzB,UAAQ,YAAY,EAAE;AACtB,OAAK,CAAC;MACF,yCAAyC,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,aAAa,EAAE;UAC/F,IAAI,KAAK,GAAG,IAAI;AACxB;AACA,UAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;cACX,aAAa,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;cACvD;AACZ,UAAA;AACA,UAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACpC,UAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA,CAAE,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;MACrI,CAAK;MACD,yCAAyC,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,OAAO,EAAE;UAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO;MACjD,CAAK;MACD,yCAAyC,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,MAAM,EAAE;UAC/E,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;MAC7C,CAAK;MACD,yCAAyC,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACjF,UAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;cACX,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;cACxC;AACZ,UAAA;AACA,UAAQ,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;cAChC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;cACpC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3G,UAAA;UACQ,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;MAChD,CAAK;AACL,MAAI,OAAO,yCAAyC;AACpD,EAAA,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvB,EAAA,OAAA,CAAA,yCAAA,GAAoD,yCAAyC;AAC7F,EAAA,IAAI,kDAAkD,kBAAkB,UAAU,MAAM,EAAE;AAC1F,MAAI,SAAS,CAAC,kDAAkD,EAAE,MAAM,CAAC;AACzE,MAAI,SAAS,kDAAkD,CAAC,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE;UAC7J,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI;AACpG,UAAQ,KAAK,CAAC,UAAU,GAAG,UAAU;AACrC,UAAQ,KAAK,CAAC,KAAK,GAAG,KAAK;AAC3B,UAAQ,KAAK,CAAC,cAAc,GAAG,cAAc;AAC7C,UAAQ,IAAI,yBAAyB,YAAY,QAAQ,EAAE;AAC3D,cAAY,KAAK,CAAC,WAAW,GAAG,yBAAyB;AACzD,UAAA;eACa;AACb,cAAY,KAAK,CAAC,YAAY,GAAG,yBAAyB;AAC1D,UAAA;AACA,UAAQ,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClE,UAAQ,OAAO,KAAK;AACpB,MAAA;MACI,kDAAkD,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE;UACjF,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;cACpC,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE;kBACxC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB;AACtF,cAAA;mBACiB,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;AACzD,kBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,kBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;sBACnB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,kBAAA;kBACgB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;kBACvF;AAChB,cAAA;AACA,UAAA;eACa;AACb,cAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;AACxC,UAAA;AACA,UAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;MACjC,CAAK;MACD,kDAAkD,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;UACnF,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;cACpC,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE;AACxD,kBAAgB,IAAI;sBACA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC;AACtE,kBAAA;kBACgB,OAAO,EAAE,EAAE;AAC3B,sBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvC,0BAAwB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK;0BACzB,QAAQ,EAAE,CAAC;AACnC,0BAAwB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;AAC5C,0BAAwB,IAAI,EAAE,EAAE,CAAC,IAAI;AACrC,0BAAwB,OAAO,EAAE,EAAE,CAAC,OAAO;AAC3C,uBAAqB,CAAC;AACtB,sBAAoB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAClC,kBAAA;AACA,cAAA;mBACiB,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;kBACzC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACzD,kBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;sBACnB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,kBAAA;kBACgB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;kBACvF;AAChB,cAAA;AACA,UAAA;eACa;AACb,cAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,UAAA;UACQ,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;MACjD,CAAK;AACL,MAAI,kDAAkD,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChH,UAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;UACxB,QAAQ,KAAK,CAAC,IAAI;AAC1B,cAAY,KAAK,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE;AACvC,kBAAgB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;kBAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,yBAAyB,GAAG,KAAK,CAAC,cAAc,EAAE;AACtF,sBAAoB,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,sHAAsH,CAAC;AAC5M,sBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvC,0BAAwB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK;0BACzB,QAAQ,EAAE,CAAC;AACnC,0BAAwB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;AAC5C,0BAAwB,IAAI,EAAE,CAAC,CAAC,IAAI;AACpC,0BAAwB,OAAO,EAAE,CAAC,CAAC,OAAO;AAC1C,uBAAqB,CAAC;AACtB,sBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;sBACb;AACpB,kBAAA;AACA,kBAAgB,IAAI;sBACA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;AAChE,kBAAA;kBACgB,OAAO,EAAE,EAAE;AAC3B,sBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvC,0BAAwB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK;0BACzB,QAAQ,EAAE,CAAC;AACnC,0BAAwB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;AAC5C,0BAAwB,IAAI,EAAE,EAAE,CAAC,IAAI;AACrC,0BAAwB,OAAO,EAAE,EAAE,CAAC,OAAO;AAC3C,uBAAqB,CAAC;AACtB,sBAAoB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;sBACd;AACpB,kBAAA;AACA,kBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnC,sBAAoB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS;sBAC7B,QAAQ,EAAE,CAAC;AAC/B,sBAAoB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;AACxC,sBAAoB,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,yBAAyB;AAC7E,mBAAiB,CAAC;kBACF;AAChB,cAAA;AACA,cAAY,KAAK,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE;AAC1C,kBAAgB,IAAI;sBACA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;AAChE,kBAAA;kBACgB,OAAO,EAAE,EAAE;AAC3B,sBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvC,0BAAwB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK;0BACzB,QAAQ,EAAE,CAAC;AACnC,0BAAwB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;AAC5C,0BAAwB,IAAI,EAAE,EAAE,CAAC,IAAI;AACrC,0BAAwB,OAAO,EAAE,EAAE,CAAC,OAAO;AAC3C,uBAAqB,CAAC;AACtB,sBAAoB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAClC,kBAAA;kBACgB;AAChB,cAAA;AACA;AACA,UAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrE,UAAQ,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChE,UAAQ,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;MAC7C,CAAK;MACD,kDAAkD,CAAC,SAAS,CAAC,qBAAqB,GAAG,UAAU,MAAM,EAAE;UACnG,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;AAC3D,cAAY,IAAI,GAAG;AACnB,cAAY,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;kBACnC,QAAQ,EAAE,CAAC,KAAK;AAChC,sBAAoB,KAAK,CAAC;AAC1B,0BAAwB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;0BACpC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACtE,0BAAwB,EAAE,CAAC,KAAK,GAAG,CAAC;AACpC,sBAAoB,KAAK,CAAC;AAC1B,0BAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,0BAAwB,OAAO,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACrF,sBAAoB,KAAK,CAAC;0BACF,EAAE,CAAC,IAAI,EAAE;AACjC,0BAAwB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC/C,sBAAoB,KAAK,CAAC;AAC1B,0BAAwB,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE;AACvC,0BAAwB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACvC,0BAAwB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;sBAC3B,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACnD,sBAAoB,KAAK,CAAC;AAC1B,0BAAwB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;AAC/F,0BAAwB,EAAE,CAAC,KAAK,GAAG,CAAC;AACpC,sBAAoB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY;AACjD;AACA,cAAA,CAAa,CAAC;AACd,UAAA,CAAS,CAAC;MACV,CAAK;AACL,MAAI,OAAO,kDAAkD;EAC7D,CAAC,CAAC,yCAAyC,CAAC,CAAC;AAC7C,EAAA,OAAA,CAAA,kDAAA,GAA6D,kDAAkD;EAC/G,IAAI,kEAAkE,kBAAkB,YAAY;MAChG,SAAS,kEAAkE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;AAC/G,UAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,UAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,UAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,UAAQ,IAAI,CAAC,OAAO,GAAG,KAAK;AAC5B,MAAA;AACA,MAAI,kEAAkE,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACrG,UAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;MAC7B,CAAK;MACD,kEAAkE,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,QAAQ,EAAE;AAC/G,UAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;MACvC,CAAK;MACD,MAAM,CAAC,cAAc,CAAC,kEAAkE,CAAC,SAAS,EAAE,oBAAoB,EAAE;UACtH,GAAG,EAAE,YAAY;AACzB,cAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB;UACnD,CAAS;UACD,UAAU,EAAE,KAAK;AACzB,UAAQ,YAAY,EAAE;AACtB,OAAK,CAAC;MACF,kEAAkE,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,aAAa,EAAE;AAChI,UAAQ,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,aAAa,CAAC;MACxD,CAAK;MACD,kEAAkE,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,OAAO,EAAE;AACxH,UAAQ,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC;MAChD,CAAK;MACD,kEAAkE,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,OAAO,EAAE;AAC1H,UAAQ,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC;MAClD,CAAK;MACD,kEAAkE,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;UACnG,IAAI,KAAK,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;cACf,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE;AACxD,kBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI;AACnC,kBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;kBAC1D;AAChB,cAAA;mBACiB;AACjB,kBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnC,sBAAoB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK;sBACzB,QAAQ,EAAE,CAAC;AAC/B,sBAAoB,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB;sBACpC,OAAO,EAAE,gDAAgD,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC;AAC7G,sBAAoB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;AACxC,mBAAiB,CAAC;AAClB,kBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACtC,kBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY;AACnD,sBAAoB,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AAC5L,kBAAA,CAAiB,CAAC;AAClB,cAAA;cACY;AACZ,UAAA;AACA,UAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;MACnC,CAAK;AACL,MAAI,OAAO,kEAAkE;AAC7E,EAAA,CAAC,EAAE,CAAC;AACJ,EAAA,OAAA,CAAA,kEAAA,GAA6E,kEAAkE;AAC/I;;;;;;;;;;;;;;;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,WAAW,GAAG,CAACN,UAAI,IAAIA,UAAI,CAAC,WAAW,KAAK,UAAU,OAAO,EAAE,IAAI,EAAE;KACrE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KAChH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,CAAA,CAAE,CAAC,EAAE,CAAC;KACxJ,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA;AACpE,KAAI,SAAS,IAAI,CAAC,EAAE,EAAE;SACd,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;SAC7D,OAAO,CAAC,EAAE,IAAI;AACtB,aAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;aAC5J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACnD,aAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;iBACxB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;iBACvD,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;iBACxC;qBACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;qBAC1G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxG,qBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAA;AACvF,qBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;qBACjE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACzC,qBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC;aACY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACtC,CAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAChE,SAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AACxF,KAAA;CACA,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,UAAA,CAAA,oBAA4B,GAAG,UAAA,CAAA,QAAgB,GAAG,UAAA,CAAA,cAAsB,GAAG,MAAM;CACjF,IAAI,QAAQ,GAAGC,aAAA,EAAmB;AAClC,CAAA,SAAS,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE;AAC1D,KAAI,IAAI,YAAY,KAAK,CAAC,EAAE;AAC5B,SAAQ,OAAO,KAAK;AACpB,KAAA;AACA,KAAI,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU;AACnC,UAAS,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxF,UAAS,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc;AACxD,aAAY,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC;eAC/B,QAAQ,CAAC,OAAO,CAAC;AAC/B,eAAc,CAAC,CAAC;AAChB,SAAQ,YAAY;AACpB,CAAA;AACA,CAAA,UAAA,CAAA,cAAsB,GAAG,cAAc;CACvC,SAAS,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;KACtE,IAAI,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,gBAAgB;KACrL,IAAI,EAAE,EAAE,EAAE;KACV,IAAI,UAAU,KAAK,MAAM,EAAE,EAAE,UAAU,GAAG,KAAK,CAAC,CAAA;AACpD,KAAI,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;SACnC,QAAQ,EAAE,CAAC,KAAK;AACxB,aAAY,KAAK,CAAC;AAClB,iBAAgB,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC;iBAC7H,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO;iBACtD,SAAS,GAAG,YAAY;iBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC9D,iBAAgB,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU;AAC5D,iBAAgB,IAAI,EAAE,cAAc,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACpE,iBAAgB,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ;AACtD,iBAAgB,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,iBAAgB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACvC,aAAY,KAAK,CAAC;iBACF,gBAAgB,GAAG,CAAC;iBACpB,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACxD,iBAAgB,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ;iBACtC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAC;iBAC7E,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;AACzF,iBAAgB,SAAS,IAAI,QAAQ,CAAC,UAAU;iBAChC,gBAAgB,GAAG,oBAAoB;AACvD,iBAAgB,IAAI,EAAE,SAAS,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;iBAC/C,UAAU,GAAG,KAAK;iBAClB,OAAO,CAAC,CAAC,YAAY;yBACb,IAAI,EAAE,SAAS;AACvC,yBAAwB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ;yBACvD,IAAI,EAAE,SAAS;yBACf,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;AAC1C,sBAAqB,CAAC;AACtB,aAAY,KAAK,CAAC;iBACF,EAAE,CAAC,IAAI,EAAE;iBACT,QAAQ,GAAG,SAAS;iBACpB,SAAS,GAAG,YAAY;AACxC,iBAAgB,EAAE,CAAC,KAAK,GAAG,CAAC;AAC5B,aAAY,KAAK,CAAC;AAClB,iBAAgB,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACjF,iBAAgB,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ;iBACtC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAC;iBAC7E,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;AACzF,iBAAgB,SAAS,IAAI,QAAQ,CAAC,UAAU;iBAChC,gBAAgB,GAAG,oBAAoB;AACvD,iBAAgB,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;iBACnE,OAAO,CAAC,CAAC,YAAY;AACrC,yBAAwB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AACzD,yBAAwB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAClD,6BAA4B,QAAQ,CAAC,KAAK,CAAC,QAAQ;8BACtB,gBAAgB,KAAK,cAAc;AAChE,iCAAgC,UAAU;AAC1C,iCAAgC,UAAU,KAAK;mCACb,QAAQ,CAAC,KAAK,CAAC;AACjD,mCAAkC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;yBACjC,IAAI,EAAE,SAAS;yBACf,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;AAC1C,sBAAqB,CAAC;AACtB,aAAY,KAAK,CAAC;iBACF,EAAE,CAAC,IAAI,EAAE;iBACT,QAAQ,GAAG,SAAS;iBACpB,SAAS,GAAG,YAAY;AACxC,iBAAgB,EAAE,CAAC,KAAK,GAAG,CAAC;aAChB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC3C,aAAY,KAAK,CAAC;iBACF,YAAY,GAAG,CAAC;iBAChB,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;iBACxC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;iBACjE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACzE,iBAAgB,SAAS,IAAI,IAAI,CAAC,UAAU;iBAC5B,YAAY,GAAG,gBAAgB;iBAC/B,OAAO,CAAC,CAAC,YAAY;yBACb,IAAI,EAAE,SAAS;yBACf,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;yBAC1F,IAAI,EAAE,IAAI;yBACV,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;AAC1C,sBAAqB,CAAC;AACtB,aAAY,KAAK,CAAC;iBACF,EAAE,CAAC,IAAI,EAAE;iBACT,QAAQ,GAAG,SAAS;iBACpB,IAAI,GAAG,SAAS;iBAChB,SAAS,GAAG,YAAY;AACxC,iBAAgB,EAAE,CAAC,KAAK,GAAG,CAAC;AAC5B,aAAY,KAAK,CAAC;AAClB,iBAAgB,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC;iBAC1D,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;iBACjE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACzE,iBAAgB,SAAS,IAAI,IAAI,CAAC,UAAU;iBAC5B,YAAY,GAAG,gBAAgB;iBAC/B,OAAO,CAAC,CAAC,YAAY;AACrC,yBAAwB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;yBACjC,KAAK,EAAE,YAAY,KAAK;AAChD,+BAA8B,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;AACzF,iCAAgC,QAAQ,CAAC,KAAK,CAAC,IAAI;kCAClB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;+BACzC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;yBAC7F,IAAI,EAAE,IAAI;yBACV,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;AAC1C,sBAAqB,CAAC;AACtB,aAAY,KAAK,CAAC;iBACF,EAAE,CAAC,IAAI,EAAE;iBACT,QAAQ,GAAG,SAAS;iBACpB,IAAI,GAAG,SAAS;iBAChB,SAAS,GAAG,YAAY;AACxC,iBAAgB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACvC,aAAY,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,YAAY;AAC1C;AACA,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,UAAA,CAAA,QAAgB,GAAG,QAAQ;AAC3B,CAAA,SAAS,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE;KAC5F,IAAI,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,gBAAgB;KACrL,IAAI,EAAE,EAAE,EAAE;KACV,IAAI,UAAU,KAAK,MAAM,EAAE,EAAE,UAAU,GAAG,KAAK,CAAC,CAAA;AACpD,KAAI,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;SACnC,QAAQ,EAAE,CAAC,KAAK;AACxB,aAAY,KAAK,CAAC;AAClB,iBAAgB,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC;iBAC7H,UAAU,GAAG,IAAI;iBACjB,SAAS,GAAG,YAAY;iBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC9D,iBAAgB,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU;AAC5D,iBAAgB,IAAI,EAAE,cAAc,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACpE,iBAAgB,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ;AACtD,iBAAgB,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,iBAAgB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACvC,aAAY,KAAK,CAAC;iBACF,gBAAgB,GAAG,CAAC;iBACpB,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACxD,iBAAgB,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO;iBACjE,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAC;iBAC7E,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;AACzF,iBAAgB,SAAS,IAAI,QAAQ,CAAC,UAAU;iBAChC,gBAAgB,GAAG,oBAAoB;AACvD,iBAAgB,IAAI,EAAE,SAAS,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;iBAC/C,UAAU,GAAG,KAAK;iBAClB,OAAO,CAAC,CAAC,YAAY;yBACb,IAAI,EAAE,SAAS;AACvC,yBAAwB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ;yBACvD,IAAI,EAAE,SAAS;yBACf,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;AAC1C,sBAAqB,CAAC;AACtB,aAAY,KAAK,CAAC;iBACF,EAAE,CAAC,IAAI,EAAE;iBACT,QAAQ,GAAG,SAAS;iBACpB,SAAS,GAAG,YAAY;AACxC,iBAAgB,EAAE,CAAC,KAAK,GAAG,CAAC;AAC5B,aAAY,KAAK,CAAC;AAClB,iBAAgB,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACjF,iBAAgB,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ;iBACtC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAC;iBAC7E,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;AACzF,iBAAgB,SAAS,IAAI,QAAQ,CAAC,UAAU;iBAChC,gBAAgB,GAAG,oBAAoB;AACvD,iBAAgB,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;iBACnE,OAAO,CAAC,CAAC,YAAY;AACrC,yBAAwB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AACzD,yBAAwB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAClD,6BAA4B,QAAQ,CAAC,KAAK,CAAC,QAAQ;8BACtB,gBAAgB,KAAK,cAAc;AAChE,iCAAgC,UAAU;AAC1C,iCAAgC,UAAU,KAAK;mCACb,QAAQ,CAAC,KAAK,CAAC;AACjD,mCAAkC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;yBACjC,IAAI,EAAE,SAAS;yBACf,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;AAC1C,sBAAqB,CAAC;AACtB,aAAY,KAAK,CAAC;iBACF,EAAE,CAAC,IAAI,EAAE;iBACT,QAAQ,GAAG,SAAS;iBACpB,SAAS,GAAG,YAAY;AACxC,iBAAgB,EAAE,CAAC,KAAK,GAAG,CAAC;aAChB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC3C,aAAY,KAAK,CAAC;iBACF,YAAY,GAAG,CAAC;iBAChB,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACxD,iBAAgB,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO;iBACrC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;iBACjE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACzE,iBAAgB,SAAS,IAAI,IAAI,CAAC,UAAU;iBAC5B,YAAY,GAAG,gBAAgB;iBAC/B,OAAO,CAAC,CAAC,YAAY;yBACb,IAAI,EAAE,SAAS;yBACf,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;yBAC1F,IAAI,EAAE,IAAI;yBACV,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;AAC1C,sBAAqB,CAAC;AACtB,aAAY,KAAK,CAAC;iBACF,EAAE,CAAC,IAAI,EAAE;iBACT,QAAQ,GAAG,SAAS;iBACpB,IAAI,GAAG,SAAS;iBAChB,SAAS,GAAG,YAAY;AACxC,iBAAgB,EAAE,CAAC,KAAK,GAAG,CAAC;AAC5B,aAAY,KAAK,CAAC;AAClB,iBAAgB,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC;iBAC1D,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;iBACjE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACzE,iBAAgB,SAAS,IAAI,IAAI,CAAC,UAAU;iBAC5B,YAAY,GAAG,gBAAgB;iBAC/B,OAAO,CAAC,CAAC,YAAY;AACrC,yBAAwB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;yBACjC,KAAK,EAAE,YAAY,KAAK;AAChD,+BAA8B,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;AACzF,iCAAgC,QAAQ,CAAC,KAAK,CAAC,IAAI;kCAClB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;+BACzC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;yBAC7F,IAAI,EAAE,IAAI;yBACV,QAAQ,EAAE,QAAQ;yBAClB,QAAQ,EAAE,QAAQ;AAC1C,sBAAqB,CAAC;AACtB,aAAY,KAAK,CAAC;iBACF,EAAE,CAAC,IAAI,EAAE;iBACT,QAAQ,GAAG,SAAS;iBACpB,IAAI,GAAG,SAAS;iBAChB,SAAS,GAAG,YAAY;AACxC,iBAAgB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACvC,aAAY,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,YAAY;AAC1C;AACA,KAAA,CAAK,CAAC;AACN,CAAA;AACA,CAAA,UAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD;;;;;;;;;;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,WAAA,CAAA,MAAc,GAAG,WAAA,CAAA,UAAkB,GAAG,WAAA,CAAA,GAAW,GAAG,MAAM;AAC1D,CAAA,SAAS,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE;AACrD,KAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC9B,SAAQ,MAAM,CAAC,YAAY,GAAG,IAAI;AAClC,SAAQ,MAAM,CAAC,IAAI,GAAG,YAAY;SAC1B,IAAI,gBAAgB,EAAE;AAC9B,aAAY,MAAM,CAAC,QAAQ,GAAG,gBAAgB;AAC9C,SAAA;AACA,SAAQ,OAAO,IAAI;AACnB,KAAA;AACA;AACA,KAAI,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;WACf,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC;AACnD,WAAU,YAAY;AACtB,KAAI,IAAI,MAAM,CAAC,QAAQ,IAAI,gBAAgB,EAAE;AAC7C,SAAQ,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAC5E,KAAA;AACA,KAAI,OAAO,IAAI;AACf,CAAA;AACA,CAAA,WAAA,CAAA,GAAW,GAAG,GAAG;AACjB,CAAA,SAAS,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE;AAC5D;AACA,KAAI,MAAM,CAAC,YAAY,GAAG,KAAK;AAC/B,KAAI,IAAI,IAAI,GAAG,MAAM,CAAC;WACZ,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC;AACnD,WAAU,YAAY;AACtB,KAAI,MAAM,CAAC,IAAI,GAAG,SAAS;AAC3B,KAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;SACjB,IAAI,QAAQ,GAAG;eACT,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;eACjD,MAAM,CAAC,QAAQ;AAC7B,SAAQ,MAAM,CAAC,QAAQ,GAAG,SAAS;AACnC,SAAQ,OAAO;aACH,IAAI,EAAE,IAAI;aACV,QAAQ,EAAE,QAAQ;UACrB;AACT,KAAA;AACA,KAAI,OAAO;SACH,IAAI,EAAE,IAAI;MACb;AACL,CAAA;AACA,CAAA,WAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,KAAI,MAAM,CAAC,YAAY,GAAG,KAAK;AAC/B,KAAI,MAAM,CAAC,IAAI,GAAG,SAAS;AAC3B,KAAI,MAAM,CAAC,QAAQ,GAAG,SAAS;AAC/B,CAAA;AACA,CAAA,WAAA,CAAA,MAAc,GAAG,MAAM;AACvB;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,IAAI,eAAe,GAAG,CAACD,oBAAI,IAAIA,oBAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,CAAC;CACxF,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAA,CAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,oBAAI,IAAIA,oBAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,CAAA,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,CAAA,CAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,oBAAI,IAAIA,oBAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;CACjB,CAAC;CACD,IAAI,QAAQ,GAAG,CAACA,oBAAI,IAAIA,oBAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;KAClD,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;KAC7E,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACvB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,OAAO;SAC1C,IAAI,EAAE,YAAY;AAC1B,aAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM;AAC9C,aAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AACnD,SAAA;MACK;KACD,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC;CAC1F,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,oBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,oBAAA,CAAA,6BAAqC,GAAG,oBAAA,CAAA,6BAAqC,GAAG,MAAM;CACtF,IAAI,QAAQ,GAAGC,aAAA,EAAmB;CAClC,IAAI,YAAY,GAAGG,iBAAA,EAAuB;CAC1C,IAAI,QAAQ,GAAGC,aAAA,EAAmB;AAClC,CAAA,IAAI,WAAW,GAAG,YAAY,CAACC,oBAAwB,CAAC;CACxD,IAAI,6BAA6B,kBAAkB,YAAY;AAC/D,KAAI,SAAS,6BAA6B,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE;AACvH,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;SAChC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe;AAC7D;AACA,KAAA;KACI,6BAA6B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,QAAQ,EAAE,MAAM,EAAE;SAC9E,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,OAAO,KAAK;AACxB,SAAA;AACA,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,SAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5B,SAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU;SACjC,IAAI,WAAW,EAAE;AACzB,aAAY,IAAI,CAAC,YAAY,GAAG,WAAW;AAC3C,SAAA;SACQ,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;AACpH,aAAY,IAAI;iBACA,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AAC7O,qBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;AACxC,qBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;AACA,SAAA;cACa;AACb,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,eAAe;AACzD,iBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvC,iBAAgB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;AAC/C,iBAAgB,QAAQ,EAAE,IAAI,CAAC,eAAe;iBAC9B,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC3G,sBAAqB,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;iBACjE,QAAQ,EAAE,QAAQ;AAClC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;iBAC7B,QAAQ,EAAE,QAAQ;AAClC,iBAAgB,eAAe,EAAE,IAAI,CAAC,eAAe;AACrD,iBAAgB,YAAY,EAAE,IAAI,CAAC,YAAY;AAC/C,iBAAgB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,OAAO,IAAI;KACnB,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC5E,SAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;aAClB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,SAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACtE,SAAQ,IAAI,YAAY;AACxB,SAAQ,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI;AAClC,SAAQ,QAAQ,SAAS;AACzB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;AAC9C,iBAAgB,IAAI,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AACzE,iBAAgB,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACjE,iBAAgB,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;qBACxD,IAAI,WAAW,EAAE;AACrC,yBAAwB,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/C,yBAAwB,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/C,6BAA4B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACxD,yBAAA;yBACwB,IAAI,CAAC,OAAO,EAAE;AACtC;AACA,6BAA4B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;6BAC1B;AAC5B,yBAAA;AACA,qBAAA;AACA,qBAAoB,IAAI,OAAO,GAAG,IAAI,CAAC;AACvC,2BAA0B,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ;2BACvD;AAC1B,6BAA4B,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5C,6BAA4B,QAAQ,EAAE,KAAK,CAAC,QAAQ;0BAC3B;qBACL,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;qBAC1C;AACpB,iBAAA;AACA,iBAAgB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;qBACnD;AACpB,iBAAA;iBACgB,YAAY,GAAG,uBAAuB;iBACtC;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;AAC7C,iBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;qBACnB;AACpB,iBAAA;AACA,iBAAgB,IAAI,CAAC,YAAY,GAAG,IAAI;AACxC,iBAAgB,IAAI,IAAI,CAAC,WAAW,EAAE;AACtC,qBAAoB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAChD,iBAAA;AACA,iBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;iBACtB;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE;AAChD,iBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;qBACnB;AACpB,iBAAA;AACA,iBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;qBACnB,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;qBACjF;AACpB,iBAAA;iBACgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACrC;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AAC5C,iBAAgB,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY;AACpD,iBAAgB,IAAI,CAAC,WAAW,GAAG,IAAI;AACvC,iBAAgB,IAAI,CAAC,YAAY,GAAG,IAAI;AACxC,iBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5C,iBAAgB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;iBACxB,IAAI,CAAC,YAAY,EAAE;AACnC,qBAAoB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1C,iBAAA;AACA,iBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC3E;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG;iBACxB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC3G;AAChB,aAAY,SAAS;iBACL,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC;AAC/E,aAAA;AACA;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzF,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;AAC5C,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KACpC,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE;AACnE,SAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;aAClB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,aAAY,IAAI,CAAC,eAAe,IAAI,CAAC;aACzB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC/C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;aAC1B,QAAQ,EAAE,CAAC;AACvB,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;KACV,CAAK;AACL,KAAI,6BAA6B,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AACjE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW;AAC1C,SAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY;AAC5C,SAAQ,IAAI,WAAW,IAAI,YAAY,EAAE;aAC7B;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;SACxB,IAAI,CAAC,YAAY,EAAE;AAC3B,aAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAClC,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;aAChB,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;aACpF;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM;AACtF,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ;aAClC,OAAO,EAAE,WAAW;AAChC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;KAChC,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,OAAO,EAAE,UAAU,EAAE;SAC5E,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACnB;AACZ,SAAA;SACQ,IAAI,UAAU,EAAE;AACxB,aAAY,IAAI,CAAC,YAAY,GAAG,IAAI;AACpC,aAAY,IAAI,IAAI,CAAC,WAAW,EAAE;AAClC,iBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5C,aAAA;AACA,SAAA;SACQ,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvG,aAAY,IAAI;iBACA,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AAClM,qBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;AACxC,qBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;AACA,SAAA;cACa;AACb,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AACjD,iBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvC,iBAAgB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1C,sBAAqB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AACtF,sBAAqB,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAChF,iBAAgB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClC,iBAAgB,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC1C,cAAa,CAAC;AACd,SAAA;KACA,CAAK;AACL,KAAI,6BAA6B,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACrE,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,aAAY,IAAI,CAAC,UAAU,GAAG,IAAI;aACtB;AACZ,SAAA;AACA,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACnB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AAC7C,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;aAC9B,IAAI,EAAE,IAAI;aACV,QAAQ,EAAE,IAAI;AAC1B,UAAS,CAAC;AACV,SAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9B,aAAY,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACxC,SAAA;KACA,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AACvE,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACnB;AACZ,SAAA;AACA,SAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW;AAC1C,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,SAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC3C,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC;AAC5C,mBAAkB,KAAK,CAAC;AACxB,mBAAkB,QAAQ,CAAC,UAAU,CAAC,iBAAiB;AACvD,aAAY,OAAO,EAAE,KAAK,CAAC,OAAO;AAClC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAC5B,IAAI,CAAC,WAAW,EAAE;AAC1B,aAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,SAAA;KACA,CAAK;AACL,KAAI,6BAA6B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE;AACzG,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACnB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,aAAY,IAAI,CAAC,YAAY,GAAG,IAAI;AACpC,aAAY,IAAI,CAAC,YAAY,GAAG,YAAY;AAC5C,aAAY,IAAI,CAAC,eAAe,GAAG,OAAO;AAC1C,aAAY,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;aACvE;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;aAC7B,YAAY,EAAE,YAAY;aAC1B,eAAe,EAAE,OAAO;AACpC,aAAY,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC7E,UAAS,CAAC;KACV,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;SAC7D,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;aACvC;AACZ,SAAA;AACA,SAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW;AAC1C,SAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY;AAC5C,SAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,YAAY,EAAE;AAC3B,aAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAClC,SAAA;SACQ,IAAI,CAAC,WAAW,EAAE;aACd,IAAI,KAAK,EAAE;AACvB,iBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5C,aAAA;kBACiB;AACjB,iBAAgB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAC1C,aAAA;AACA,SAAA;KACA,CAAK;AACL,KAAI,OAAO,6BAA6B;AACxC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,oBAAA,CAAA,6BAAqC,GAAG,6BAA6B;CACrE,IAAI,6BAA6B,kBAAkB,YAAY;AAC/D,KAAI,SAAS,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE;AAC3F,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;SACtB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe;AAC7D,SAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACpB,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACpD,aAAY,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC7D,aAAY,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,QAAQ;AACjD,aAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;aACzD;AACZ,SAAA;SACQ,IAAI,OAAO,GAAG;AACtB,aAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,aAAY,QAAQ,EAAE,KAAK,CAAC,QAAQ;UAC3B;AACT,SAAQ,IAAI,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AACjE,SAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;AACtC,SAAQ,IAAI;AACZ,aAAY,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC;aACnE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;iBACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AACzD,aAAA;AACA,SAAA;SACQ,OAAO,KAAK,EAAE;aACV,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;iBACxC,IAAI,CAAC,MAAM,EAAE;AAC7B,aAAA;kBACiB;AACjB,iBAAgB,IAAI,CAAC,WAAW,GAAG,IAAI;AACvC,aAAA;AACA,aAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/B,SAAA;AACA,KAAA;KACI,6BAA6B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACtE,SAAQ,IAAI,YAAY;AACxB,SAAQ,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI;AAClC,SAAQ,QAAQ,SAAS;AACzB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;iBAC9B,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5D,qBAAoB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;yBACnD;AACxB,qBAAA;qBACoB,YAAY,GAAG,uBAAuB;qBACtC;AACpB,iBAAA;AACA,iBAAgB,IAAI,OAAO,GAAG,IAAI,CAAC;AACnC,uBAAsB,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ;uBACvD;AACtB,yBAAwB,IAAI,EAAE,KAAK,CAAC,IAAI;AACxC,yBAAwB,QAAQ,EAAE,KAAK,CAAC,QAAQ;sBAC3B;AACrB,iBAAgB,IAAI,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AACzE,iBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpC,qBAAoB,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,WAAW;qBAChD,IAAI,WAAW,EAAE;AACrC,yBAAwB,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/C,yBAAwB,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/C,6BAA4B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACxD,yBAAA;AACA,qBAAA;AACA,qBAAoB,IAAI;AACxB,yBAAwB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC;yBAC9E,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;AACrE,yBAAA;AACA,qBAAA;qBACoB,OAAO,KAAK,EAAE;yBACV,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;6BACxC,IAAI,CAAC,MAAM,EAAE;AACzC,yBAAA;8BAC6B;AAC7B,6BAA4B,IAAI,CAAC,WAAW,GAAG,IAAI;AACnD,yBAAA;AACA,yBAAwB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3C,qBAAA;AACA,iBAAA;sBACqB;qBACD,IAAI,WAAW,EAAE;AACrC,yBAAwB,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/C,yBAAwB,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/C,6BAA4B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACxD,yBAAA;AACA,yBAAwB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAClE,6BAA4B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;6BAC1B;AAC5B,yBAAA;AACA,qBAAA;qBACoB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;AAC9D,iBAAA;iBACgB;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE;iBAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;qBACrC,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;qBACjF;AACpB,iBAAA;iBACgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACrC;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC1C,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;AAC7C,iBAAgB,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW;AAClD,iBAAgB,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY;AACpD,iBAAgB,IAAI,CAAC,WAAW,GAAG,IAAI;AACvC,iBAAgB,IAAI,CAAC,YAAY,GAAG,IAAI;AACxC,iBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5C,iBAAgB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,iBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;qBAChB;AACpB,iBAAA;iBACgB,IAAI,CAAC,YAAY,EAAE;AACnC,qBAAoB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1C,iBAAA;iBACgB,IAAI,CAAC,WAAW,EAAE;qBACd,IAAI,KAAK,GAAG,SAAS,KAAK,QAAQ,CAAC,UAAU,CAAC;2BACxC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW;AAC7F,2BAA0B,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;AAC9E,qBAAoB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AAChD,iBAAA;iBACgB;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;iBAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;qBACrC,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;qBACjF;AACpB,iBAAA;iBACgB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC3G;AAChB,aAAA;AACA,aAAY,SAAS;iBACL,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC;AAC/E;AACA,aAAA;AACA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC3C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ;aAClC,OAAO,EAAE,YAAY;AACjC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,SAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;KACzF,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AACvE,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACnB,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;AACA,SAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW;AAC1C,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,SAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC3C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC;AAC5C,mBAAkB,KAAK,CAAC;AACxB,mBAAkB,QAAQ,CAAC,UAAU,CAAC,iBAAiB;AACvD,aAAY,OAAO,EAAE,KAAK,CAAC,OAAO;AAClC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAC5B,IAAI,CAAC,WAAW,EAAE;AAC1B,aAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,iBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5C,aAAA;kBACiB;AACjB,iBAAgB,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1C,aAAA;AACA,SAAA;KACA,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,OAAO,EAAE,YAAY,EAAE;SAC9E,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACnB;AACZ,SAAA;SACQ,IAAI,YAAY,EAAE;AAC1B,aAAY,IAAI,CAAC,YAAY,GAAG,IAAI;AACpC,SAAA;AACA;SACQ,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvG,aAAY,IAAI;iBACA,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AACpM,qBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;AACxC,qBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;AACA,SAAA;cACa;AACb,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AACjD,iBAAgB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1C,sBAAqB,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAClF,sBAAqB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AACtF,iBAAgB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClC,iBAAgB,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC1C,iBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9C,aAAY,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACxC,SAAA;KACA,CAAK;AACL,KAAI,6BAA6B,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACrE,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACnB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AAC7C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;AAC1C,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,IAAI,EAAE,IAAI;aACV,QAAQ,EAAE,IAAI;AAC1B,UAAS,CAAC;AACV,SAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9B,aAAY,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACxC,SAAA;KACA,CAAK;AACL,KAAI,6BAA6B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE;SACjG,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;aACvC;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;AACzC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;aACjE,YAAY,EAAE,YAAY;aAC1B,eAAe,EAAE,OAAO;AACpC,UAAS,CAAC;KACV,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE;AACnE,SAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;aAClB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC/C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,QAAQ,EAAE,CAAC;AACvB,UAAS,CAAC;KACV,CAAK;AACL,KAAI,6BAA6B,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AACjE,SAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;aAClB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;AAC5C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;AACV,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACxC,SAAA;KACA,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;SAC7D,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;aACvC,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;AACA,SAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW;AAC1C,SAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY;AAC5C,SAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,SAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;SAC5B,IAAI,CAAC,QAAQ,EAAE;aACX;AACZ,SAAA;SACQ,IAAI,CAAC,YAAY,EAAE;aACf,QAAQ,CAAC,MAAM,EAAE;AAC7B,SAAA;SACQ,IAAI,CAAC,WAAW,EAAE;aACd,IAAI,KAAK,EAAE;AACvB,iBAAgB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC,aAAA;kBACiB;iBACD,QAAQ,CAAC,UAAU,EAAE;AACrC,aAAA;AACA,SAAA;KACA,CAAK;AACL,KAAI,OAAO,6BAA6B;AACxC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,oBAAA,CAAA,6BAAqC,GAAG,6BAA6B;AACrE;;;;;;;;;;;ACnpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,IAAI,eAAe,GAAG,CAACN,gBAAI,IAAIA,gBAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,CAAC;CACxF,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAA,CAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,gBAAI,IAAIA,gBAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,CAAA,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,CAAA,CAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,gBAAI,IAAIA,gBAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;CACjB,CAAC;CACD,IAAI,QAAQ,GAAG,CAACA,gBAAI,IAAIA,gBAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;KAClD,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;KAC7E,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACvB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,OAAO;SAC1C,IAAI,EAAE,YAAY;AAC1B,aAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM;AAC9C,aAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AACnD,SAAA;MACK;KACD,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC;CAC1F,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,gBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,gBAAA,CAAA,yBAAiC,GAAG,gBAAA,CAAA,yBAAiC,GAAG,MAAM;CAC9E,IAAI,QAAQ,GAAGC,aAAA,EAAmB;CAClC,IAAI,YAAY,GAAGG,iBAAA,EAAuB;CAC1C,IAAI,QAAQ,GAAGC,aAAA,EAAmB;AAClC,CAAA,IAAI,WAAW,GAAG,YAAY,CAACC,oBAAwB,CAAC;CACxD,IAAI,yBAAyB,kBAAkB,YAAY;KACvD,SAAS,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE;AACtF,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;SAChC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW;AACzD,KAAA;KACI,yBAAyB,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,QAAQ,EAAE,MAAM,EAAE;SAC1E,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,aAAY,OAAO,KAAK;AACxB,SAAA;AACA,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;SACxB,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;AAChH,aAAY,IAAI;iBACA,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AAC1L,qBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;AACxC,qBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;AACA,SAAA;cACa;aACD,MAAM,CAAC,IAAI,CAAC;AACxB,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW;AACrD,iBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvC,iBAAgB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;AAC/C,iBAAgB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;iBAC1D,QAAQ,EAAE,QAAQ;AAClC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAClC,SAAQ,OAAO,IAAI;KACnB,CAAK;KACD,yBAAyB,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AACxE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC,CAAK;AACL,KAAI,yBAAyB,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC7D,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;SAChB,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;KAC5F,CAAK;KACD,yBAAyB,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;SAC1D,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AACrD,aAAY,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aAChE;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;KACrG,CAAK;KACD,yBAAyB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACjE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;SACQ,IAAI,KAAK,EAAE;AACnB,aAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,SAAA;cACa;AACb,aAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACtC,SAAA;KACA,CAAK;AACL,KAAI,OAAO,yBAAyB;AACpC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,gBAAA,CAAA,yBAAiC,GAAG,yBAAyB;CAC7D,IAAI,yBAAyB,kBAAkB,YAAY;KACvD,SAAS,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;AACzE,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;SACtB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW;SACjD,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACpD,aAAY,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC7D,aAAY,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACpB;AACZ,SAAA;SACQ,IAAI,OAAO,GAAG;AACtB,aAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,aAAY,QAAQ,EAAE,KAAK,CAAC,QAAQ;UAC3B;AACT,SAAQ,IAAI;aACA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;AACrD,SAAA;SACQ,OAAO,CAAC,EAAE;AAClB;AACA,SAAA;AACA,KAAA;KACI,yBAAyB,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AAClE,SAAQ,IAAI,YAAY;SAChB,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;aAC3C,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACxD,iBAAgB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;qBACnD;AACpB,iBAAA;iBACgB,YAAY,GAAG,0BAA0B;AACzD,aAAA;kBACiB;AACjB,iBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5C,iBAAgB,IAAI,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;AACtF,iBAAgB,IAAI;qBACA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;AAClE,iBAAA;iBACgB,OAAO,CAAC,EAAE;AAC1B;AACA,iBAAA;iBACgB;AAChB,aAAA;AACA,SAAA;cACa;aACD,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5E,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;SAChB,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AACjG,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC/C,iBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvC,iBAAgB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1C,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ;iBAClC,OAAO,EAAE,YAAY;AACrC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC;KACA,CAAK;KACD,yBAAyB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACjE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;SACxB,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;KAChF,CAAK;KACD,yBAAyB,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE,EAAA,CAAG;AACtE,KAAI,yBAAyB,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY,EAAA,CAAG;AACpE,KAAI,OAAO,yBAAyB;AACpC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,gBAAA,CAAA,yBAAiC,GAAG,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,IAAI,eAAe,GAAG,CAACN,qBAAI,IAAIA,qBAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,CAAC;CACxF,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAA,CAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,qBAAI,IAAIA,qBAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,CAAA,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,CAAA,CAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,qBAAI,IAAIA,qBAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;CACjB,CAAC;CACD,IAAI,QAAQ,GAAG,CAACA,qBAAI,IAAIA,qBAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;KAClD,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;KAC7E,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACvB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,OAAO;SAC1C,IAAI,EAAE,YAAY;AAC1B,aAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM;AAC9C,aAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AACnD,SAAA;MACK;KACD,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC;CAC1F,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,qBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,qBAAA,CAAA,8BAAsC,GAAG,qBAAA,CAAA,8BAAsC,GAAG,MAAM;CACxF,IAAI,QAAQ,GAAGC,aAAA,EAAmB;CAClC,IAAI,YAAY,GAAGG,iBAAA,EAAuB;CAC1C,IAAI,QAAQ,GAAGC,aAAA,EAAmB;AAClC,CAAA,IAAI,WAAW,GAAG,YAAY,CAACC,oBAAwB,CAAC;CACxD,IAAI,8BAA8B,kBAAkB,YAAY;KAC5D,SAAS,8BAA8B,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE;AAC3F,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;SAChC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,gBAAgB;AAC9D,KAAA;KACI,8BAA8B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,QAAQ,EAAE,MAAM,EAAE;SAC/E,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,aAAY,OAAO,KAAK;AACxB,SAAA;AACA,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,SAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACpB,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;AACrH,aAAY,IAAI;iBACA,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AAC/L,qBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;AACxC,qBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;AACA,SAAA;cACa;AACb,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;AAC1D,iBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvC,iBAAgB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;AAC/C,iBAAgB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;iBAC1D,QAAQ,EAAE,QAAQ;AAClC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;iBAC7B,QAAQ,EAAE,QAAQ;AAClC,iBAAgB,eAAe,EAAE,IAAI,CAAC,eAAe;AACrD,iBAAgB,YAAY,EAAE,IAAI,CAAC,YAAY;AAC/C,iBAAgB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,OAAO,IAAI;KACnB,CAAK;KACD,8BAA8B,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC7E,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC,CAAK;KACD,8BAA8B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACvE,SAAQ,IAAI,YAAY;AACxB,SAAQ,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI;AAClC,SAAQ,QAAQ,SAAS;AACzB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;AAC9C,iBAAgB,IAAI,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AACzE,iBAAgB,IAAI,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpE,iBAAgB,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5E,qBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI;AACpC,qBAAoB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;qBAC5B,IAAI,CAAC,UAAU,EAAE;AACrC;AACA,yBAAwB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;yBAC1B;AACxB,qBAAA;AACA,qBAAoB,IAAI,OAAO,GAAG,IAAI,CAAC;AACvC,2BAA0B,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ;2BACvD;AAC1B,6BAA4B,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5C,6BAA4B,QAAQ,EAAE,KAAK,CAAC,QAAQ;0BAC3B;qBACL,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;qBACnC;AACpB,iBAAA;AACA,iBAAgB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;qBACpD,YAAY,GAAG,0BAA0B;qBACzC;AACpB,iBAAA;iBACgB;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AAC5C,iBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI;AAChC,iBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5C,iBAAgB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,iBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC3E;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;AAC1C,iBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;qBACnB,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;qBACjF;AACpB,iBAAA;iBACgB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC3G;AAChB,aAAA;AACA,aAAY,SAAS;iBACL,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC;AAC/E,aAAA;AACA;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzF,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;AAC5C,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC;KACA,CAAK;AACL,KAAI,8BAA8B,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAClE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;aAChB,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;aACpF;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;AAC5C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;KAChC,CAAK;AACL,KAAI,8BAA8B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1G,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,aAAY,IAAI,CAAC,YAAY,GAAG,IAAI;AACpC,aAAY,IAAI,CAAC,YAAY,GAAG,YAAY;AAC5C,aAAY,IAAI,CAAC,eAAe,GAAG,OAAO;AAC1C,aAAY,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;aACvE;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;aAC7B,YAAY,EAAE,YAAY;aAC1B,eAAe,EAAE,OAAO;AACpC,aAAY,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC7E,UAAS,CAAC;KACV,CAAK;KACD,8BAA8B,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACtE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;SACxB,IAAI,KAAK,EAAE;AACnB,aAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,SAAA;cACa;AACb,aAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACtC,SAAA;KACA,CAAK;AACL,KAAI,OAAO,8BAA8B;AACzC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,qBAAA,CAAA,8BAAsC,GAAG,8BAA8B;CACvE,IAAI,8BAA8B,kBAAkB,YAAY;AAChE,KAAI,SAAS,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE;AAC5F,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;SACtB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,gBAAgB;AAC9D,SAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACpB,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACpD,aAAY,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;aACjD;AACZ,SAAA;SACQ,IAAI,OAAO,GAAG;AACtB,aAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,aAAY,QAAQ,EAAE,KAAK,CAAC,QAAQ;UAC3B;AACT,SAAQ,IAAI;aACA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;AAClD,SAAA;SACQ,OAAO,KAAK,EAAE;AACtB,aAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/B,SAAA;AACA,KAAA;KACI,8BAA8B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACvE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,YAAY;SAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACrC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;iBAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5D,qBAAoB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;yBACnD;AACxB,qBAAA;qBACoB,YAAY,GAAG,0BAA0B;AAC7D,iBAAA;sBACqB;AACrB,qBAAoB,IAAI,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC1F,qBAAoB,IAAI;yBACA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;AACnE,qBAAA;qBACoB,OAAO,KAAK,EAAE;AAClC,yBAAwB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3C,qBAAA;qBACoB;AACpB,iBAAA;AACA,aAAA;kBACiB;iBACD,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC;AAClG,aAAA;AACA,SAAA;cACa,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;aAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC3G;AACZ,SAAA;cACa;aACD,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5E,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;SAChB,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;SACrE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AACnG,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC/C,iBAAgB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1C,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ;iBAClC,OAAO,EAAE,YAAY;AACrC,iBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC;KACA,CAAK;KACD,8BAA8B,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AACxE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC3C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC;AAC5C,mBAAkB,KAAK,CAAC;AACxB,mBAAkB,QAAQ,CAAC,UAAU,CAAC,iBAAiB;AACvD,aAAY,OAAO,EAAE,KAAK,CAAC,OAAO;AAClC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KACpC,CAAK;KACD,8BAA8B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,OAAO,EAAE,YAAY,EAAE;SAC/E,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;SACQ,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvG,aAAY,IAAI;iBACA,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AAC5L,qBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;AACxC,qBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;AACA,SAAA;cACa;AACb,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;iBACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvH,iBAAgB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClC,iBAAgB,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC1C,iBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KACpC,CAAK;AACL,KAAI,8BAA8B,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACtE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AAC7C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;AAC1C,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,IAAI,EAAE,IAAI;aACV,QAAQ,EAAE,IAAI;AAC1B,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KACpC,CAAK;AACL,KAAI,8BAA8B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE;AAC1G,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;AACzC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;aACjE,YAAY,EAAE,YAAY;aAC1B,eAAe,EAAE,OAAO;AACpC,UAAS,CAAC;KACV,CAAK;KACD,8BAA8B,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACtE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;AACA,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;SACxB,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;KAC7E,CAAK;AACL,KAAI,OAAO,8BAA8B;AACzC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,qBAAA,CAAA,8BAAsC,GAAG,8BAA8B;AACvE;;;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,IAAI,eAAe,GAAG,CAACN,mBAAI,IAAIA,mBAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,CAAC;CACxF,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAA,CAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,mBAAI,IAAIA,mBAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,CAAA,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,CAAA,CAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,mBAAI,IAAIA,mBAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;CACjB,CAAC;CACD,IAAI,QAAQ,GAAG,CAACA,mBAAI,IAAIA,mBAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;KAClD,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;KAC7E,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACvB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,OAAO;SAC1C,IAAI,EAAE,YAAY;AAC1B,aAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM;AAC9C,aAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AACnD,SAAA;MACK;KACD,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC;CAC1F,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,mBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,mBAAA,CAAA,4BAAoC,GAAG,mBAAA,CAAA,4BAAoC,GAAG,MAAM;CACpF,IAAI,QAAQ,GAAGC,aAAA,EAAmB;CAClC,IAAI,YAAY,GAAGG,iBAAA,EAAuB;CAC1C,IAAI,QAAQ,GAAGC,aAAA,EAAmB;AAClC,CAAA,IAAI,WAAW,GAAG,YAAY,CAACC,oBAAwB,CAAC;CACxD,IAAI,4BAA4B,kBAAkB,YAAY;AAC9D,KAAI,SAAS,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE;AAC1G,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;SAChC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,cAAc;AAC5D;AACA,KAAA;KACI,4BAA4B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,QAAQ,EAAE,MAAM,EAAE;SAC7E,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,aAAY,OAAO,KAAK;AACxB,SAAA;AACA,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,SAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACpB,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;AACnH,aAAY,IAAI;iBACA,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AAC/N,qBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;AACxC,qBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;AACA,SAAA;cACa;AACb,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc;AACxD,iBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvC,iBAAgB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;AAC/C,iBAAgB,QAAQ,EAAE,IAAI,CAAC,eAAe;AAC9C,iBAAgB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;iBACxE,QAAQ,EAAE,QAAQ;AAClC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;iBAC7B,QAAQ,EAAE,QAAQ;AAClC,iBAAgB,eAAe,EAAE,IAAI,CAAC,eAAe;AACrD,iBAAgB,YAAY,EAAE,IAAI,CAAC,YAAY;AAC/C,iBAAgB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,OAAO,IAAI;KACnB,CAAK;KACD,4BAA4B,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC3E,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC,CAAK;KACD,4BAA4B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACrE,SAAQ,IAAI,YAAY;AACxB,SAAQ,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI;AAClC,SAAQ,QAAQ,SAAS;AACzB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;AAC9C,iBAAgB,IAAI,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AACzE,iBAAgB,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACjE,iBAAgB,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;qBACxD,IAAI,WAAW,EAAE;AACrC,yBAAwB,IAAI,CAAC,IAAI,GAAG,IAAI;AACxC,yBAAwB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;yBAC5B,IAAI,CAAC,OAAO,EAAE;AACtC;AACA,6BAA4B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;6BAC1B;AAC5B,yBAAA;AACA,qBAAA;AACA,qBAAoB,IAAI,OAAO,GAAG,IAAI,CAAC;AACvC,2BAA0B,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ;2BACvD;AAC1B,6BAA4B,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5C,6BAA4B,QAAQ,EAAE,KAAK,CAAC,QAAQ;0BAC3B;qBACL,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;qBAC1C;AACpB,iBAAA;AACA,iBAAgB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;qBACpD,YAAY,GAAG,0BAA0B;qBACzC;AACpB,iBAAA;iBACgB;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AAC5C,iBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI;AAChC,iBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5C,iBAAgB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,iBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC3E;AAChB,aAAA;AACA,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;AAC1C,iBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;qBACnB,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;qBACjF;AACpB,iBAAA;iBACgB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC3G;AAChB,aAAA;AACA,aAAY,SAAS;iBACL,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC;AAC/E,aAAA;AACA;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzF,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;AAC5C,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC;KACA,CAAK;KACD,4BAA4B,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE;AAClE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,aAAY,IAAI,CAAC,eAAe,IAAI,CAAC;aACzB;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC/C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;aAC1B,QAAQ,EAAE,CAAC;AACvB,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;KACV,CAAK;AACL,KAAI,4BAA4B,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAChE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;aAChB,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;aACpF;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;AAC5C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;KAChC,CAAK;AACL,KAAI,4BAA4B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE;AACxG,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,aAAY,IAAI,CAAC,YAAY,GAAG,IAAI;AACpC,aAAY,IAAI,CAAC,YAAY,GAAG,YAAY;AAC5C,aAAY,IAAI,CAAC,eAAe,GAAG,OAAO;AAC1C,aAAY,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;aACvE;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;aAC7B,YAAY,EAAE,YAAY;aAC1B,eAAe,EAAE,OAAO;AACpC,aAAY,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC7E,UAAS,CAAC;KACV,CAAK;KACD,4BAA4B,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACpE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;SACxB,IAAI,KAAK,EAAE;AACnB,aAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,SAAA;cACa;AACb,aAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACtC,SAAA;KACA,CAAK;AACL,KAAI,OAAO,4BAA4B;AACvC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,mBAAA,CAAA,4BAAoC,GAAG,4BAA4B;CACnE,IAAI,4BAA4B,kBAAkB,YAAY;AAC9D,KAAI,SAAS,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE;AAC1F,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;SACtB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,cAAc;AAC5D,SAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACpB,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACpD,aAAY,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,QAAQ;AACjD,aAAY,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;aACjD;AACZ,SAAA;SACQ,IAAI,OAAO,GAAG;AACtB,aAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,aAAY,QAAQ,EAAE,KAAK,CAAC,QAAQ;UAC3B;AACT,SAAQ,IAAI;AACZ,aAAY,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AAClE,SAAA;SACQ,OAAO,KAAK,EAAE;AACtB,aAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/B,SAAA;AACA,KAAA;KACI,4BAA4B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACrE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,YAAY;SAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;aACrC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;iBAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5D,qBAAoB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;yBACnD;AACxB,qBAAA;qBACoB,YAAY,GAAG,uBAAuB;AAC1D,iBAAA;sBACqB;AACrB,qBAAoB,IAAI,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC1F,qBAAoB,IAAI;AACxB,yBAAwB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC;AACzF,qBAAA;qBACoB,OAAO,KAAK,EAAE;AAClC,yBAAwB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3C,qBAAA;qBACoB;AACpB,iBAAA;AACA,aAAA;kBACiB;iBACD,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC;AAClG,aAAA;AACA,SAAA;cACa,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE;aACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;aACrC;AACZ,SAAA;cACa,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;aAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC3G;AACZ,SAAA;cACa;aACD,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5E,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;SACxB,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;SACrE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AACnG,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC/C,iBAAgB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1C,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ;iBAClC,OAAO,EAAE,YAAY;AACrC,iBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvC,cAAa,CAAC;AACd,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC;KACA,CAAK;KACD,4BAA4B,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AACtE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC3C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC;AAC5C,mBAAkB,KAAK,CAAC;AACxB,mBAAkB,QAAQ,CAAC,UAAU,CAAC,iBAAiB;AACvD,aAAY,OAAO,EAAE,KAAK,CAAC,OAAO;AAClC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KACpC,CAAK;KACD,4BAA4B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,OAAO,EAAE,YAAY,EAAE;SAC7E,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;SACQ,IAAI,YAAY,EAAE;AAC1B,aAAY,IAAI,CAAC,IAAI,GAAG,IAAI;AAC5B,SAAA;AACA;SACQ,IAAI,IAAI,YAAY,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvG,aAAY,IAAI;iBACA,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AACpM,qBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;AACxC,qBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,iBAAA;AACA,aAAA;aACY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;qBAC/B;AACpB,iBAAgB,IAAI;qBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,iBAAA;yBACwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACnD,aAAA;AACA,SAAA;cACa;AACb,aAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AACjD,iBAAgB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1C,sBAAqB,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAClF,sBAAqB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AACtF,iBAAgB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClC,iBAAgB,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC1C,iBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvC,cAAa,CAAC;AACd,SAAA;SACQ,IAAI,YAAY,EAAE;AAC1B,aAAY,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACxC,SAAA;KACA,CAAK;AACL,KAAI,4BAA4B,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACpE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO;AAC7C,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;AAC1C,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,IAAI,EAAE,IAAI;aACV,QAAQ,EAAE,IAAI;AAC1B,UAAS,CAAC;AACV,SAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KACpC,CAAK;AACL,KAAI,4BAA4B,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE;AACxG,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;AACzC,aAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,aAAY,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;aACjE,YAAY,EAAE,YAAY;aAC1B,eAAe,EAAE,OAAO;AACpC,UAAS,CAAC;KACV,CAAK;KACD,4BAA4B,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACpE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACjH;AACZ,SAAA;AACA,SAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;SACxB,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;KAC7E,CAAK;AACL,KAAI,OAAO,4BAA4B;AACvC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,mBAAA,CAAA,4BAAoC,GAAG,4BAA4B;AACnE;;;;;;;;;AC1ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,cAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,cAAA,CAAA,eAAuB,GAAG,cAAA,CAAA,gBAAwB,GAAG,cAAA,CAAA,6BAAqC,GAAG,cAAA,CAAA,2BAAmC,GAAG,cAAA,CAAA,YAAoB,GAAG,cAAA,CAAA,gBAAwB,GAAG,MAAM;CAC3L,IAAI,QAAQ,GAAGL,aAAA,EAAmB;CAClC,IAAI,QAAQ,GAAGG,aAAA,EAAmB;CAClC,IAAI,sBAAsB,GAAGC,2BAAA,EAAiC;CAC9D,IAAI,kBAAkB,GAAGC,uBAAA,EAA6B;CACtD,IAAI,uBAAuB,GAAGC,4BAAA,EAAkC;CAChE,IAAI,qBAAqB,GAAGC,0BAAA,EAAgC;CAC5D,IAAI,gBAAgB,kBAAkB,YAAY;KAC9C,SAAS,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE;AACtE,SAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,KAAA;KACI,gBAAgB,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,OAAO,EAAE,eAAe,EAAE;AACnF,SAAQ,IAAI,OAAO,GAAG,IAAI,kBAAkB,CAAC,yBAAyB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;AACtI,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;AACnD,SAAA;cACa;aACD,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,OAAO,CAAC;AACjF,SAAA;AACA,SAAQ,OAAO,OAAO;KACtB,CAAK;KACD,gBAAgB,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,OAAO,EAAE,eAAe,EAAE;AACrF,SAAQ,IAAI,OAAO,GAAG,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;AAChJ,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;AACnD,SAAA;cACa;aACD,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,OAAO,CAAC;AACjF,SAAA;AACA,SAAQ,OAAO,OAAO;KACtB,CAAK;AACL,KAAI,gBAAgB,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE;SAC5F,IAAI,OAAO,GAAG,IAAI,qBAAqB,CAAC,4BAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC;AAC7J,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;AACnD,SAAA;cACa;aACD,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,OAAO,CAAC;AACjF,SAAA;AACA,SAAQ,OAAO,OAAO;KACtB,CAAK;AACL,KAAI,gBAAgB,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE;SAC1G,IAAI,OAAO,GAAG,IAAI,sBAAsB,CAAC,6BAA6B,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC;AAC5K,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,aAAY,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;AACnD,SAAA;cACa;aACD,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,OAAO,CAAC;AACjF,SAAA;AACA,SAAQ,OAAO,OAAO;KACtB,CAAK;KACD,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,QAAQ,EAAE,eAAe,EAAE;AACnF,SAAQ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;KAClD,CAAK;KACD,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACxD,SAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;KACpC,CAAK;KACD,gBAAgB,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,QAAQ,EAAE;AAC7D,SAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;KACzC,CAAK;AACL,KAAI,OAAO,gBAAgB;AAC3B,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,cAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,IAAI,YAAY,kBAAkB,YAAY;AAC9C,KAAI,SAAS,YAAY,CAAC,kBAAkB,EAAE,WAAW,EAAE;AAC3D,SAAQ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AACpD,SAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;AACtC,SAAQ,IAAI,CAAC,eAAe,GAAG,EAAE;AACjC,SAAQ,IAAI,CAAC,cAAc,GAAG,CAAC;AAC/B,SAAQ,IAAI,CAAC,cAAc,GAAG,CAAC;AAC/B,KAAA;KACI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;SAC7C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACpD,SAAQ,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,YAAY;AAChD,SAAQ,OAAO,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;aAC/D,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;aAC1C,IAAI,CAAC,cAAc,EAAE;AACjC,aAAY,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC;AACzD,SAAA;KACA,CAAK;KACD,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,OAAO,EAAE;AAC7D,SAAQ,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc;AAChD,SAAQ,IAAI,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE;AACpE,aAAY,IAAI,CAAC,cAAc,GAAG,cAAc,GAAG,CAAC;AACpD,aAAY,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC;aAC7C;AACZ,SAAA;SACQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACpE,aAAY,OAAO,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;aACzG;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;KAC1C,CAAK;KACD,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,OAAO,EAAE;SACtD,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;AACzD,SAAQ,IAAI,KAAK,GAAG,EAAE,EAAE;aACZ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,SAAA;KACA,CAAK;AACL,KAAI,OAAO,YAAY;AACvB,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,cAAA,CAAA,YAAoB,GAAG,YAAY;CACnC,IAAI,2BAA2B,kBAAkB,YAAY;AAC7D,KAAI,SAAS,2BAA2B,CAAC,OAAO,EAAE,YAAY,EAAE;AAChE,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,KAAA;KACI,2BAA2B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;SACpE,QAAQ,KAAK,CAAC,IAAI;AAC1B,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,WAAW;AAChD,iBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;qBAC5B,IAAI,kBAAkB,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;AAClJ,iBAAA;iBACgB;AAChB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,gBAAgB;AACrD,iBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AAClD,qBAAoB,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;qBAC7J;AACpB,iBAAA;iBACgB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;iBAC1C;AAChB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,cAAc;AACnD,iBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AAChD,qBAAoB,IAAI,qBAAqB,CAAC,4BAA4B,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;qBACvJ;AACpB,iBAAA;iBACgB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;iBAC1C;AAChB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,eAAe;AACpD,iBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AACjD,qBAAoB,IAAI,sBAAsB,CAAC,6BAA6B,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;qBAC1J;AACpB,iBAAA;iBACgB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;iBAC1C;AAChB;KACA,CAAK;KACD,2BAA2B,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,QAAQ,EAAE,MAAM,EAAE;SAC9E,MAAM,CAAC,IAAI,CAAC;AACpB,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;aAC/B,QAAQ,EAAE,QAAQ;AAC9B,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtC,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ;aAClC,OAAO,EAAE,4BAA4B;AACjD,UAAS,CAAC;KACV,CAAK;AACL,KAAI,2BAA2B,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY,EAAA,CAAG;AACjE,KAAI,OAAO,2BAA2B;AACtC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,cAAA,CAAA,2BAAmC,GAAG,2BAA2B;CACjE,IAAI,6BAA6B,kBAAkB,YAAY;AAC/D,KAAI,SAAS,6BAA6B,CAAC,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE;AACjH,SAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,SAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AAChD,SAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,SAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,KAAA;KACI,6BAA6B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;SAC9D,QAAQ,KAAK,CAAC,IAAI;AAC1B,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS;AAC9C,iBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;iBACnC;AAChB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC1C,iBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;AACvC,qBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC/B;AACpB,iBAAA;AACA;iBACgB;AAChB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC1C;AACA,iBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC3E;AAChB,aAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,aAAa;AAClD,iBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;iBAG/B;aACJ;iBACI,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACjF,qBAAoB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;qBAC/B,QAAQ,EAAE,CAAC;AAC/B,qBAAoB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;qBAC1B,OAAO,EAAE,6BAA6B;AAC1D,qBAAoB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB;AAC9D,kBAAiB,CAAC;AAClB;AACA;KACA,CAAK;AACL,KAAI,6BAA6B,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAChE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;SAC7B,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE;KACnF,CAAK;AACL,KAAI,6BAA6B,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AACjE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;SAC7B,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE;KACnF,CAAK;KACD,6BAA6B,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACrE,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrC,SAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;KACnG,CAAK;AACL,KAAI,OAAO,6BAA6B;AACxC,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,cAAA,CAAA,6BAAqC,GAAG,6BAA6B;AACrE,CAAA,IAAI,sBAAsB;CAC1B,CAAC,UAAU,sBAAsB,EAAE;KAC/B,sBAAsB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;KACvE,sBAAsB,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;KACzE,sBAAsB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AAC3E,CAAA,CAAC,EAAE,sBAAsB,KAAK,sBAAsB,GAAG,EAAE,CAAC,CAAC;CAC3D,IAAI,gBAAgB,kBAAkB,YAAY;AAClD,KAAI,SAAS,gBAAgB,CAAC,UAAU,EAAE,wBAAwB,EAAE;AACpE,SAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,SAAQ,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;AAChE,SAAQ,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,MAAM;SAC1C,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,wBAAwB,CAAC,kBAAkB;AAC9E,KAAA;KACI,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACzD,SAAQ,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,GAAG,EAAE;SAC7C,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACpD,aAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/B,iBAAgB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS;iBACnC,QAAQ,EAAE,CAAC;AAC3B,iBAAgB,IAAI,EAAE,KAAK,CAAC,IAAI;iBAChB,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO;iBAC3C,oBAAoB,EAAE,CAAC;AACvC,cAAa,CAAC;AACd,SAAA;KACA,CAAK;AACL,KAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;SAC3C,IAAI,IAAI,CAAC,KAAK,KAAK,sBAAsB,CAAC,MAAM,EAAE;aAC9C;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,GAAG,EAAE;AACrD,SAAQ,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,OAAO;AACnD,SAAQ,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC;KACpG,CAAK;AACL,KAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;SAC3C,IAAI,IAAI,CAAC,KAAK,KAAK,sBAAsB,CAAC,OAAO,EAAE;aAC/C;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,MAAM;AAClD,SAAQ,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;KACxC,CAAK;AACL,KAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACnD,SAAQ,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,MAAM;AAClD,SAAQ,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;KACxC,CAAK;AACL,KAAI,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AAC1D,SAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC5B,SAAQ,IAAI,mBAAmB,GAAG,GAAG,GAAG,IAAI,CAAC,2BAA2B;AACxE,SAAQ,IAAI,mBAAmB,IAAI,IAAI,CAAC,wBAAwB,EAAE;aACtD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,CAAC;AACxH,SAAA;cACa;aACD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,GAAG,mBAAmB,CAAC,CAAC;AAC7I,SAAA;KACA,CAAK;AACL,KAAI,OAAO,gBAAgB;AAC3B,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,cAAA,CAAA,gBAAwB,GAAG,gBAAgB;AAC3C,CAAA,IAAI,qBAAqB;CACzB,CAAC,UAAU,qBAAqB,EAAE;KAC9B,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;KACrE,qBAAqB,CAAC,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;KACvE,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AACzE,CAAA,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC;CACzD,IAAI,eAAe,kBAAkB,YAAY;AACjD,KAAI,SAAS,eAAe,CAAC,QAAQ,EAAE,uBAAuB,EAAE;AAChE,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,uBAAuB,GAAG,uBAAuB;AAC9D,SAAQ,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM;AACjD,KAAA;AACA,KAAI,eAAe,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAC1D,SAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC3B,aAAY,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS;aACnC,QAAQ,EAAE,CAAC;aACX,IAAI,EAAE,SAAS;AAC3B,aAAY,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;aAC7B,oBAAoB,EAAE,CAAC;AACnC,UAAS,CAAC;KACV,CAAK;AACL,KAAI,eAAe,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;SAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,qBAAqB,CAAC,MAAM,EAAE;aAC7C;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,OAAO;AAClD,SAAQ,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC;KACtG,CAAK;AACL,KAAI,eAAe,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;SAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,qBAAqB,CAAC,OAAO,EAAE;aAC9C;AACZ,SAAA;AACA,SAAQ,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM;AACjD,SAAQ,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;KAC1C,CAAK;AACL,KAAI,eAAe,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAClD,SAAQ,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM;AACjD,SAAQ,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;KAC1C,CAAK;AACL,KAAI,OAAO,eAAe;AAC1B,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,cAAA,CAAA,eAAuB,GAAG,eAAe;AACzC;;;;;;;;;;;ACrUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,IAAI,QAAQ,GAAG,CAACR,MAAI,IAAIA,MAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE;KAClD,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;KAC7E,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACvB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,OAAO;SAC1C,IAAI,EAAE,YAAY;AAC1B,aAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM;AAC9C,aAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AACnD,SAAA;MACK;KACD,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC;CAC1F,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,MAAA,CAAA,UAAkB,GAAG,MAAM;CAC3B,IAAI,EAAE,GAAGC,WAAA,EAAY;CACrB,IAAI,QAAQ,GAAGG,aAAA,EAAmB;CAClC,IAAI,UAAU,kBAAkB,YAAY;KACxC,SAAS,UAAU,GAAG;AAC1B,SAAQ,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9B,SAAQ,IAAI,CAAC,0BAA0B,GAAG,CAAC;AAC3C,SAAQ,IAAI,CAAC,4BAA4B,GAAG,CAAC;AAC7C,SAAQ,IAAI,CAAC,sBAAsB,GAAG,CAAC;AACvC,KAAA;KACI,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,2BAA2B,EAAE;SACrE,GAAG,EAAE,YAAY;aACb,OAAO,IAAI,CAAC,0BAA0B;SAClD,CAAS;SACD,UAAU,EAAE,KAAK;AACzB,SAAQ,YAAY,EAAE;AACtB,MAAK,CAAC;KACF,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,6BAA6B,EAAE;SACvE,GAAG,EAAE,YAAY;aACb,OAAO,IAAI,CAAC,4BAA4B;SACpD,CAAS;SACD,UAAU,EAAE,KAAK;AACzB,SAAQ,YAAY,EAAE;AACtB,MAAK,CAAC;KACF,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,uBAAuB,EAAE;SACjE,GAAG,EAAE,YAAY;aACb,OAAO,IAAI,CAAC,sBAAsB;SAC9C,CAAS;SACD,UAAU,EAAE,KAAK;AACzB,SAAQ,YAAY,EAAE;AACtB,MAAK,CAAC;KACF,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AAClD,SAAQ,IAAI,CAAC,sBAAsB,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;AACvE,SAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;KACrC,CAAK;KACD,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AACnD,SAAQ,IAAI,CAAC,0BAA0B,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;KAC3E,CAAK;KACD,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,oBAAoB,EAAE;AAClE,SAAQ,IAAI,WAAW,GAAG,oBAAoB,GAAG,IAAI,CAAC,4BAA4B;AAClF,SAAQ,OAAO,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;aACpD,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;aAC3C,WAAW,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;AACjE,SAAA;AACA,SAAQ,IAAI,WAAW,KAAK,CAAC,EAAE;AAC/B,aAAY,MAAM,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,8CAA8C,CAAC,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC1N,SAAA;AACA,SAAQ,IAAI,CAAC,4BAA4B,GAAG,oBAAoB;KAChE,CAAK;KACD,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,QAAQ,EAAE;SAC7C,IAAI,GAAG,EAAE,EAAE;AACnB,SAAQ,IAAI;AACZ,aAAY,KAAK,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AACjG,iBAAgB,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK;iBACpB,QAAQ,CAAC,KAAK,CAAC;AAC/B,aAAA;AACA,SAAA;SACQ,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;iBAC/B;AAChB,aAAY,IAAI;iBACA,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,aAAA;qBACoB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AAC/C,SAAA;KACA,CAAK;AACL,KAAI,OAAO,UAAU;AACrB,CAAA,CAAC,EAAE,CAAC;AACJ,CAAA,MAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B;;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,SAAS,GAAG,CAACJ,gBAAI,IAAIA,gBAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,KAAA,CAAK,CAAC;CACN,CAAC;AACD,CAAA,IAAI,WAAW,GAAG,CAACA,gBAAI,IAAIA,gBAAI,CAAC,WAAW,KAAK,UAAU,OAAO,EAAE,IAAI,EAAE;KACrE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KAChH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,CAAA,CAAE,CAAC,EAAE,CAAC;KACxJ,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA;AACpE,KAAI,SAAS,IAAI,CAAC,EAAE,EAAE;SACd,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;SAC7D,OAAO,CAAC,EAAE,IAAI;AACtB,aAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;aAC5J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACnD,aAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;iBACxB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;iBACvD,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;iBACxC;qBACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;qBAC1G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxG,qBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAA;AACvF,qBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;qBACjE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACzC,qBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC;aACY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACtC,CAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAChE,SAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AACxF,KAAA;CACA,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAACS,gBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,gBAAA,CAAA,gBAAwB,GAAG,MAAM;CACjC,IAAI,sCAAsC,GAAGR,2CAAA,EAAiD;CAC9F,IAAI,QAAQ,GAAGG,aAAA,EAAmB;CAClC,IAAI,gBAAgB,GAAGC,qBAAA,EAA2B;CAClD,IAAI,QAAQ,GAAGC,aAAA,EAAmB;CAClC,IAAII,kBAAgB,kBAAkB,YAAY;AAClD,KAAI,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACtC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,KAAA;AACA,KAAI,gBAAgB,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACrD,SAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SAClF,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;AAC3D,aAAY,IAAI,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,sBAAsB,EAAE,cAAc;aACtI,IAAI,KAAK,GAAG,IAAI;AAC5B,aAAY,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;iBACnC,QAAQ,EAAE,CAAC,KAAK;AAChC,qBAAoB,KAAK,CAAC;AAC1B,yBAAwB,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5C,yBAAwB,UAAU,GAAG;AACrC,6BAA4B,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC3D,6BAA4B,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,0BAA0B;AACrL,6BAA4B,gBAAgB,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,gBAAgB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,0BAA0B;AAC7L,6BAA4B,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC1J,6BAA4B,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,MAAM;AACzJ,6BAA4B,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ;AACjK,6BAA4B,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI;AACzJ,6BAA4B,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;6BACvI,QAAQ,EAAE,CAAC;6BACX,YAAY,EAAE,CAAC;6BACf,YAAY,EAAE,CAAC;6BACf,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI;AACjN,kCAAiC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3F,kCAAiC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;0BAC3E;AACzB,yBAAwB,OAAO,CAAC,CAAC,YAAY,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;iCAC1D,OAAO,MAAM,CAAC;uCACR,IAAI,sCAAsC,CAAC,kDAAkD,CAAC,sCAAsC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,QAAQ,CAAC,UAAU,EAAE;qCAClN,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,UAAU,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;AACzJ,yCAAwC,IAAI,gCAAgC,EAAE,oBAAoB,EAAE,WAAW;AAC/G,yCAAwC,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;6CACnC,QAAQ,EAAE,CAAC,KAAK;AAC5D,iDAAgD,KAAK,CAAC;AACtD,qDAAoD,gCAAgC,GAAG,UAAU,QAAQ,EAAE;yDACnD,QAAQ,CAAC,IAAI,CAAC;AACtE,6DAA4D,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;6DAChC,QAAQ,EAAE,CAAC;AACvE,6DAA4D,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtF,6DAA4D,cAAc,EAAE,UAAU,CAAC,2BAA2B;AAClH,6DAA4D,cAAc,EAAE,UAAU,CAAC,yBAAyB;AAChH,6DAA4D,YAAY,EAAE,UAAU,CAAC,YAAY;AACjG,6DAA4D,YAAY,EAAE,UAAU,CAAC,YAAY;AACjG,6DAA4D,WAAW,EAAE,UAAU,CAAC,WAAW;AAC/F,0DAAyD,CAAC;yDACF,OAAO,IAAI,sCAAsC,CAAC,kEAAkE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;qDACtM,CAAqD;qDACD,oBAAoB,GAAG,EAAE;qDACzB,WAAW,GAAG,YAAY;AAC9E,yDAAwD,oBAAoB,EAAE;yDACtB,OAAO,MAAM,CAAC;8DACT,iBAAiB,CAAC,oBAAoB;8DACtC,IAAI,CAAC,YAAY;6DAClB,OAAO,MAAM,CAAC;kEACT,OAAO,CAAC,gCAAgC;kEACxC,KAAK,CAAC,WAAW,CAAC;AACnF,yDAAA,CAAyD,CAAC;qDAC1D,CAAqD;AACrD,qDAAoD,OAAO,CAAC,CAAC,YAAY,WAAW,EAAE,CAAC;AACvF,iDAAgD,KAAK,CAAC;qDACF,EAAE,CAAC,IAAI,EAAE;qDACT,OAAO,CAAC,CAAC,YAAY;AACzE;AACA,yCAAA,CAAyC,CAAC;qCAC1C,CAAqC,CAAC,CAAC,CAAA,CAAE;AACzC,uCAAsC,IAAI,sCAAsC,CAAC,yCAAyC,CAAC,sCAAsC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACnN,6BAAA,CAA6B,CAAC,CAAC;AAC/B,qBAAoB,KAAK,CAAC;AAC1B,yBAAwB,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE;AAC9C,yBAAwB,eAAe,GAAG,IAAI,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC;AAC5J,yBAAwB,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC;yBACzF,YAAY,GAAG,MAAM,CAAC;+BAChB,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,UAAU,CAAC,wBAAwB;AAChL,+BAA8B,SAAS;AACvC,yBAAwB,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AAC/F,yBAAwB,sBAAsB,GAAG,IAAI,gBAAgB,CAAC,6BAA6B,CAAC,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,CAAC;yBACnJ,cAAc,GAAG,IAAI,gBAAgB,CAAC,2BAA2B,CAAC,SAAS,EAAE,CAAC,CAAC;AACvG,yBAAwB,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;6BAC5B,eAAe,CAAC,KAAK,EAAE;6BACvB,gBAAgB,CAAC,KAAK,EAAE;AACpD,6BAA4B,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,yBAAA,CAAyB,CAAC;AAC1B,yBAAwB,UAAU,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;AACrG,yBAAwB,UAAU,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,cAAc,CAAC;yBACvE,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;yBACvE,gBAAgB,CAAC,KAAK,EAAE;yBACxB,eAAe,CAAC,KAAK,EAAE;yBACvB,OAAO,CAAC,CAAC,aAAa,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,uBAAuB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;AACrP;AACA,aAAA,CAAa,CAAC;AACd,SAAA,CAAS,CAAC;KACV,CAAK;AACL,KAAI,OAAO,gBAAgB;AAC3B,CAAA,CAAC,EAAE,CAAC;AACJ,CAAAD,gBAAA,CAAA,gBAAwB,GAAGC,kBAAgB;AAC3C;;;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,SAAS,GAAG,CAACV,aAAI,IAAIA,aAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,KAAA,CAAK,CAAC;CACN,CAAC;AACD,CAAA,IAAI,WAAW,GAAG,CAACA,aAAI,IAAIA,aAAI,CAAC,WAAW,KAAK,UAAU,OAAO,EAAE,IAAI,EAAE;KACrE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KAChH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,CAAA,CAAE,CAAC,EAAE,CAAC;KACxJ,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA;AACpE,KAAI,SAAS,IAAI,CAAC,EAAE,EAAE;SACd,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;SAC7D,OAAO,CAAC,EAAE,IAAI;AACtB,aAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;aAC5J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACnD,aAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;iBACxB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;iBACvD,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;iBACxC;qBACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;qBAC1G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxG,qBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAA;AACvF,qBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;qBACjE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACzC,qBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC;aACY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACtC,CAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAChE,SAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AACxF,KAAA;CACA,CAAC;AACD,CAAA,MAAM,CAAC,cAAc,CAACW,aAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,aAAA,CAAA,aAAqB,GAAG,MAAM;CAC9B,IAAI,sCAAsC,GAAGV,2CAAA,EAAiD;CAC9F,IAAI,QAAQ,GAAGG,aAAA,EAAmB;CAClC,IAAI,QAAQ,GAAGC,aAAA,EAAmB;CAClC,IAAI,gBAAgB,GAAGC,qBAAA,EAA2B;CAClD,IAAI,QAAQ,GAAGC,aAAA,EAAmB;CAClC,IAAIK,eAAa,kBAAkB,YAAY;AAC/C,KAAI,SAAS,aAAa,CAAC,MAAM,EAAE;SAC3B,IAAI,EAAE,EAAE,EAAE;AAClB,SAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AACvC,SAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;AACzC,SAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACjC,SAAQ,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB;SACrD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,SAAS;AAC1D,SAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS;AAC3J,KAAA;AACA,KAAI,aAAa,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;SACvC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;aAC/C,IAAI,KAAK,GAAG,IAAI;AAC5B,aAAY,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;iBACnC,QAAQ,EAAE,CAAC,KAAK;AAChC,qBAAoB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;6BAC5H,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,cAAc,EAAE,GAAG;AAC1K,6BAA4B,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9C,6BAA4B,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;iCACnC,QAAQ,EAAE,CAAC,KAAK;AAChD,qCAAoC,KAAK,CAAC;AAC1C,yCAAwC,EAAE,GAAG,KAAK,CAAC,IAAI;AACvD,yCAAwC,QAAQ,EAAE;AAClD,6CAA4C,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACnG,6CAA4C,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AACpG;AACA,yCAAwC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC/D,qCAAoC,KAAK,CAAC;AAC1C,yCAAwC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,yCAAwC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACjG,6CAA4C,KAAK,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,yBAAyB,CAAC;AAC5I,6CAA4C,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACxG,iDAAgD,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;iDAC/B,QAAQ,EAAE,CAAC;AAC3D,iDAAgD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1E,iDAAgD,IAAI,EAAE,KAAK,CAAC,IAAI;AAChE,iDAAgD,OAAO,EAAE,KAAK,CAAC,OAAO;AACtE,8CAA6C,CAAC;AAC9C,6CAA4C,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;6CACvB,OAAO,CAAC,CAAC,YAAY;AACjE,yCAAA;AACA,yCAAwC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACjG,6CAA4C,KAAK,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,0BAA0B,CAAC;AAC7I,6CAA4C,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACxG,iDAAgD,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;iDAC/B,QAAQ,EAAE,CAAC;AAC3D,iDAAgD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1E,iDAAgD,IAAI,EAAE,KAAK,CAAC,IAAI;AAChE,iDAAgD,OAAO,EAAE,KAAK,CAAC,OAAO;AACtE,8CAA6C,CAAC;AAC9C,6CAA4C,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;6CACvB,OAAO,CAAC,CAAC,YAAY;AACjE,yCAAA;yCACwC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;+CAC5C,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,UAAU,CAAC,wBAAwB;AAC9L,+CAA8C,SAAS;yCACf,SAAS,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,uBAAuB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC;yCAChN,OAAO,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAClF,iDAAgD,IAAI,EAAE,KAAK,CAAC,IAAI;AAChE,iDAAgD,YAAY,EAAE,KAAK,CAAC,YAAY;AAChF,iDAAgD,QAAQ,EAAE,KAAK,CAAC,QAAQ;AACxE,iDAAgD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;AACxF,iDAAgD,KAAK,EAAE,KAAK,CAAC,KAAK;AAClE,iDAAgD,oBAAoB,EAAE,KAAK,CAAC,QAAQ;AACpF,iDAAgD,iBAAiB,EAAE,KAAK,CAAC,SAAS;AAClF,iDAAgD,WAAW,EAAE,KAAK,CAAC,WAAW;8CACjC,EAAE,SAAS,CAAC,CAAC;AAC1D,qCAAoC,KAAK,CAAC;AAC1C,yCAAwC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE;AAC7D,yCAAwC,kBAAkB,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;yCACtF,iBAAiB,GAAG,IAAI,CAAC;AACjE,+CAA8C,IAAI,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,KAAK,CAAC,SAAS;AAC1J,+CAA8C,SAAS;AACvD,yCAAwC,wBAAwB,GAAG,IAAI,gBAAgB,CAAC,6BAA6B,CAAC,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,CAAC;yCACzJ,cAAc,GAAG,IAAI,gBAAgB,CAAC,2BAA2B,CAAC,SAAS,EAAE,CAAC,CAAC;AACvH,yCAAwC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACxE,6CAA4C,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE;6CAC/F,kBAAkB,CAAC,KAAK,EAAE;AACtE,6CAA4C,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,yCAAA,CAAyC,CAAC;AAC1C,yCAAwC,UAAU,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;AACvH,yCAAwC,UAAU,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,cAAc,CAAC;yCACvE,kBAAkB,CAAC,KAAK,EAAE;AAClE,yCAAwC,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE;AACvI,yCAAwC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC/D,qCAAoC,KAAK,CAAC;AAC1C,yCAAwC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE;AACvD,yCAAwC,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACpG,6CAA4C,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;6CAC/B,QAAQ,EAAE,CAAC;AACvD,6CAA4C,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc;AACpF,6CAA4C,OAAO,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AAC3G,6CAA4C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtE,0CAAyC,CAAC;AAC1C,yCAAwC,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,QAAQ,CAAC;+CACnC;AAC9C,+CAA8C,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACzH,yCAAwC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;AAC/D,qCAAoC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY;AACjE,qCAAoC,KAAK,CAAC;yCACF;AACxC;6CAC4C,OAAO,CAAC,CAAC,YAAY;AACjE,yCAAA;AAEA,qCAAoC,KAAK,CAAC;yCACF;AACxC,6CAA4C,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACxG,iDAAgD,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;iDAC/B,QAAQ,EAAE,CAAC;AAC3D,iDAAgD,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,iBAAiB;iDAC3C,OAAO,EAAE,mBAAmB;AAC5E,iDAAgD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC1E,8CAA6C,CAAC;AAC9C,6CAA4C,UAAU,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAC9H,yCAAA;AACA,yCAAwC,EAAE,CAAC,KAAK,GAAG,CAAC;AACpD,qCAAoC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY;AACjE;AACA,6BAAA,CAA6B,CAAC;yBAC9B,CAAyB,CAAC,CAAC,CAAA,CAAE,EAAE,UAAU,KAAK,EAAE,QAAQ,EAAE;6BAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;AAC3E,iCAAgC,IAAI,KAAK,CAAC,YAAY,EAAE;AACxD,qCAAoC,IAAI,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;qCAC/E,IAAI,CAAC,wBAAwB,EAAE;yCAC3B,QAAQ,CAAC,IAAI,CAAC;AACtD,6CAA4C,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;6CAC/B,QAAQ,EAAE,CAAC;AACvD,6CAA4C,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,eAAe;6CACzC,OAAO,EAAE,6CAA6C;AAClG,6CAA4C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtE,0CAAyC,CAAC;yCACF,QAAQ,CAAC,KAAK,EAAE;yCAChB;AACxC,qCAAA;qCACoC,wBAAwB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC9F,qCAAoC,OAAO,wBAAwB;AACnE,iCAAA;iCACgC,QAAQ,CAAC,IAAI,CAAC;AAC9C,qCAAoC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;qCAC/B,QAAQ,EAAE,CAAC;AAC/C,qCAAoC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,eAAe;qCACzC,OAAO,EAAE,uBAAuB;AACpE,qCAAoC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AAC9D,kCAAiC,CAAC;iCACF,QAAQ,CAAC,KAAK,EAAE;iCAChB;AAChC,6BAAA;kCACiC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;iCAC/C,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC3E,qCAAoC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AAC7D,yCAAwC,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,mBAAmB,CAAC;yCAC9F,QAAQ,CAAC,IAAI,CAAC;AACtD,6CAA4C,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK;6CAC/B,QAAQ,EAAE,CAAC;AACvD,6CAA4C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;AACtE,6CAA4C,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5D,6CAA4C,OAAO,EAAE,KAAK,CAAC,OAAO;AAClE,0CAAyC,CAAC;AAC1C,yCAAwC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;yCACrB;AACxC,qCAAA;qCACoC,IAAI,wBAAwB,GAAG,IAAI,sCAAsC,CAAC,kDAAkD,CAAC,sCAAsC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,QAAQ,CAAC,UAAU,EAAE;AAClR,qCAAoC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC;qCACvE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AACpF,yCAAwC,wBAAwB;AAChE,qCAAoC,OAAO,wBAAwB;AACnE,iCAAA;AACA,6BAAA;AACA,6BAA4B,OAAO,IAAI,sCAAsC,CAAC,yCAAyC,CAAC,sCAAsC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC/M,yBAAA,CAAyB,CAAC,CAAC;qBACP,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;AAC5D;AACA,aAAA,CAAa,CAAC;AACd,SAAA,CAAS,CAAC;KACV,CAAK;AACL,KAAI,OAAO,aAAa;AACxB,CAAA,CAAC,EAAE,CAAC;AACJ,CAAAD,aAAA,CAAA,aAAqB,GAAGC,eAAa;AACrC;;;;;;;;;;;AC7OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,eAAe,GAAG,CAACZ,IAAI,IAAIA,IAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EAAE,CAAC;EACxF,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAA,CAAC,CAAC,CAAC;AACH,EAAA,IAAI,YAAY,GAAG,CAACA,IAAI,IAAIA,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,EAAE,OAAO,EAAE;AACvE,MAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7H,CAAC;EACD,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,YAAY,CAACC,aAAA,EAAmB,EAAE,OAAO,CAAC;AAC1C,EAAA,YAAY,CAACG,aAAA,EAAmB,EAAE,OAAO,CAAC;AAC1C,EAAA,YAAY,CAACC,eAAA,EAAqB,EAAE,OAAO,CAAC;AAC5C,EAAA,YAAY,CAACC,aAAA,EAAmB,EAAE,OAAO,CAAC;AAC1C,EAAA,YAAY,CAACC,aAAA,EAAmB,EAAE,OAAO,CAAC;AAC1C,EAAA,YAAY,CAACC,cAAA,EAAoB,EAAE,OAAO,CAAC;AAC3C,EAAA,YAAY,CAACK,uBAAA,EAA6B,EAAE,OAAO,CAAC;AACpD,EAAA,YAAY,CAACC,oBAAA,EAA0B,EAAE,OAAO,CAAC;AACjD,EAAA,YAAY,CAACC,gBAAA,EAAsB,EAAE,OAAO,CAAC;AAC7C;;;;;;;;;;;AClCY,MAAC,uBAAuB,GAAG;AACvC,IAAI,SAAS,EAAE,EAAE;AACjB,IAAI,QAAQ,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,UAAU,SAAS,YAAY,CAAC;AAC7C,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,iBAAiB;AACrB,IAAI,eAAe;AACnB,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI;AACrC,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAC3D,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;AACjE,QAAQ,IAAI,OAAO,EAAE,YAAY,EAAE;AACnC,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5C,gBAAgB,KAAK,EAAE,CAAC,EAAE,KAAK;AAC/B,oBAAoB,CAAC,IAAI;AACzB,oBAAoB,IAAI,CAAC,KAAK,EAAE;AAChC,gBAAgB;AAChB,aAAa,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,IAAI,uBAAuB,CAAC,SAAS;AACzF,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,IAAI,uBAAuB,CAAC,QAAQ;AACvF,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,MAAM,IAAI,CAAC,iBAAiB;AACpC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC;AAClD;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AACtE,QAAQ;AACR,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,eAAe,IAAI;AAChC,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5C,gBAAgB,IAAI,EAAE,OAAO,IAAI,KAAK;AACtC,oBAAoB,OAAO,CAAC,IAAI,CAAC;AACjC;AACA,oBAAoB,CAAC,IAAI;AACzB,gBAAgB,CAAC;AACjB,gBAAgB,MAAM,EAAE,MAAM;AAC9B,oBAAoB,OAAO,CAAC,IAAI,CAAC;AACjC,oBAAoB,CAAC,IAAI;AACzB,gBAAgB,CAAC;AACjB,gBAAgB,KAAK,EAAE,CAAC,EAAE,KAAK;AAC/B,oBAAoB,MAAM,CAAC,EAAE,CAAC;AAC9B,oBAAoB,CAAC,IAAI;AACzB,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACtB,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AACxD,YAAY,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC;AACjE,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC;AACrC,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpC,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,OAAO,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACvE,QAAQ,OAAO,CAAC,OAAO,CAAC,MAAM;AAC9B,YAAY,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI;AACjD,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AACzD,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC;AACxE,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;AACpD,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACnC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC/C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC7C,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;AACzE,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AACxD,YAAY,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACvD,gBAAgB,IAAI,CAAC,eAAe,GAAG,OAAO;AAC9C,YAAY,CAAC,CAAC;AACd,YAAY,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAClG,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI;AACvC,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC;AACA,YAAY,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AACjD,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,mBAAmB,CAAC,EAAE,EAAE;AAClC;AACA;AACA,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;AAC7D,QAAQ,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE;AACjC,YAAY,IAAI;AAChB,gBAAgB,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3B,YAAY;AACZ,YAAY,OAAO,EAAE,EAAE;AACvB,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACrC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAC3D,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;;;;;;;;;AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,IAAI,SAAS,GAAG,CAACf,yBAAI,IAAIA,yBAAI,CAAC,SAAS,KAAK,CAAC,YAAY;AACzD,KAAI,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACxC,SAAQ,aAAa,GAAG,MAAM,CAAC,cAAc;cAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA,CAAE,CAAC;AACxF,aAAY,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE;AAC7G,SAAQ,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;KAClC,CAAK;AACL,KAAI,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;SACnB,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;AACjD,aAAY,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC;AACrG,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;SACnB,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;SACrC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;KAC5F,CAAK;AACL,CAAA,CAAC,GAAG;AACJ,CAAA,MAAM,CAAC,cAAc,CAACgB,yBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,yBAAA,CAAA,yBAAiC,GAAG,MAAM;CAC1C,IAAI,cAAc,GAAGf,WAAA,EAAuB;AAC5C,CAAA,IAAIgB,2BAAyB,kBAAkB,UAAU,MAAM,EAAE;AACjE,KAAI,SAAS,CAAC,yBAAyB,EAAE,MAAM,CAAC;KAC5C,SAAS,yBAAyB,CAAC,SAAS,EAAE,YAAY,EAAE,+BAA+B,EAAE;SACzF,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;AAC7C,SAAQ,KAAK,CAAC,SAAS,GAAG,SAAS;AACnC,SAAQ,KAAK,CAAC,YAAY,GAAG,YAAY;AACzC,SAAQ,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE;AAC1C,aAAY,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,wDAAwD,CAAC,CAAC;SACxG,CAAS;AACT,SAAQ,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE;AACzC,aAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;SAChC,CAAS;AACT,SAAQ,KAAK,CAAC,aAAa,GAAG,UAAU,OAAO,EAAE;AACjD,aAAY,IAAI;iBACA,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;iBACtC,IAAI,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACvE,iBAAgB,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5D,aAAA;aACY,OAAO,KAAK,EAAE;AAC1B,iBAAgB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAClC,aAAA;SACA,CAAS;SACD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;SACvD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC;SACtD,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;AAClE,SAAQ,KAAK,CAAC,wBAAwB,GAAG,+BAA+B,CAAC,KAAK,CAAC;AAC/E,SAAQ,OAAO,KAAK;AACpB,KAAA;KACI,MAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,cAAc,EAAE;SACvE,GAAG,EAAE,YAAY;AACzB,aAAY,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;SACpC,CAAS;SACD,UAAU,EAAE,KAAK;AACzB,SAAQ,YAAY,EAAE;AACtB,MAAK,CAAC;KACF,yBAAyB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE;AACjE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;aACxC;AACZ,SAAA;SACQ,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;SAC9D,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;SAC7D,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;AACzE,SAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;SACtB,OAAO,IAAI,CAAC,SAAS;SACrB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;KAChD,CAAK;KACD,yBAAyB,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE;AAChE,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ,SAAA;SACQ,IAAI,MAAM,GAAG,IAAI,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC;AAC9D,SAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KACnC,CAAK;AACL,KAAI,OAAO,yBAAyB;AACpC,CAAA,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAAD,yBAAA,CAAA,yBAAiC,GAAGC,2BAAyB;AAC7D;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AAGO,MAAM,wBAAwB,CAAC;AACtC,IAAI,GAAG;AACP,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG;AAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,KAAK,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACzE,IAAI;AACJ,IAAI,OAAO,CAAC,+BAA+B,EAAE;AAC7C,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpD,YAAY,SAAS,CAAC,UAAU,GAAG,aAAa;AAChD,YAAY,IAAI,eAAe;AAC/B,YAAY,MAAM,YAAY,GAAG,MAAM;AACvC,gBAAgB,eAAe,EAAE;AACjC,gBAAgB,OAAO,CAAC,IAAIA,0DAAyB,CAAC,SAAS,EAAE,IAAIC,wBAAY,EAAE,EAAE,+BAA+B,CAAC,CAAC;AACtH,YAAY,CAAC;AACb,YAAY,MAAM,aAAa,GAAG,CAAC,EAAE,KAAK;AAC1C,gBAAgB,eAAe,EAAE;AACjC;AACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE;AACtC;AACA,oBAAoB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AACpC,gBAAgB;AAChB,qBAAqB,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI,EAAE;AAC7C;AACA,oBAAoB,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,uCAAuC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7F,gBAAgB;AAChB,qBAAqB;AACrB;AACA,oBAAoB,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,yCAAyC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7F,gBAAgB;AAChB,YAAY,CAAC;AACb;AACA;AACA;AACA;AACA,YAAY,MAAM,aAAa,GAAG,MAAM;AACxC,gBAAgB,eAAe,EAAE;AACjC,gBAAgB,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC9E,YAAY,CAAC;AACb,YAAY,eAAe,GAAG,MAAM;AACpC,gBAAgB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC;AACnE,gBAAgB,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC;AACrE,gBAAgB,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC;AACrE,YAAY,CAAC;AACb,YAAY,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC;AAC5D,YAAY,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC;AAC9D,YAAY,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC;AAC9D,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;;ACrDA,MAAM,8BAA8B,GAAG,MAAM;AAC7C,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO;AAC5C,MAAM,4BAA4B,GAAG,CAAC;AACtC;AACA,MAAM,aAAa,GAAG,MAAM;AAC5B;AACA,MAAM,iBAAiB,GAAG,MAAM;AAChC;AACA;AACA;AACA,MAAM,sBAAsB,GAAG,MAAM;AACzB,MAAC,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB;AACvD,IAAC;AACX,CAAC,UAAU,aAAa,EAAE;AAC1B;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,UAAU;AAC1C;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,YAAY,CAAC,GAAG,YAAY;AAC9C,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,2BAA2B,CAAC;AACzC,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AAC3D,IAAI;AACJ;AACY,MAAC,sBAAsB,GAAG;AACtC,IAAI,oBAAoB,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,KAAK,EAAE;AAChF,QAAQ,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,GAAG,OAAO;AACxD,IAAI,CAAC,CAAC;AACN,IAAI,mBAAmB,EAAE,IAAI,2BAA2B,EAAE;AAC1D,IAAI,YAAY,EAAE;AAClB;AACO,MAAM,cAAc,CAAC;AAC5B,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,WAAW,GAAG,IAAI;AACtB,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,EAAE,OAAO,EAAE;AACpE,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,GAAG,sBAAsB;AACrC,YAAY,IAAI,OAAO,IAAI,EAAE;AAC7B,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,OAAO;AACpD,QAAQ,OAAO,mBAAmB,YAAY;AAC9C,cAAc,mBAAmB,CAAC,QAAQ;AAC1C,cAAc,mBAAmB;AACjC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAY,OAAO,IAAI,CAAC,WAAW;AACnC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,mBAAmB,EAAE;AACzC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,GAAG;AAChC,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;AACxD,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACnE,QAAQ,IAAI,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE;AACzE,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,0EAA0E,EAAE,WAAW,CAAC,QAAQ,CAAC,2DAA2D,CAAC,CAAC;AAC3L,QAAQ;AACR,QAAQ,OAAO,WAAW;AAC1B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,QAAQ,IAAI,CAAC,SAAS,CAAC,qBAAqB,IAAI;AAChD,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;AACrD,IAAI;AACJ,IAAI,MAAM,YAAY,CAAC,IAAI,EAAE;AAC7B,QAAQ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AACvD,QAAQ,IAAI,WAAW,IAAI,IAAI,KAAK,WAAW,CAAC,QAAQ,IAAI,IAAI,IAAI,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;AACjG,YAAY,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AAChE,QAAQ;AACR,aAAa,IAAI,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,WAAW,EAAE,KAAK,IAAI,EAAE,EAAE;AACzE,YAAY,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC;AACpD,YAAY,KAAK,CAAC,MAAM,GAAG,GAAG;AAC9B,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AAC7C,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,WAAW,CAAC,QAAQ,GAAG,IAAI;AAC5C,YAAY,OAAO,EAAE;AACrB,gBAAgB,cAAc,EAAE,kBAAkB;AAClD,gBAAgB,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3D,gBAAgB,cAAc,EAAE;AAChC;AACA,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;AACzC,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrD,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;AAClD,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,OAAO,EAAE;AACrB,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,GAAG,OAAO,CAAC;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACrC,SAAS,CAAC;AACV,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AAChC,YAAY,IAAI,CAAC,qBAAqB,EAAE;AACxC,QAAQ;AACR,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvH,QAAQ;AACR,QAAQ,OAAO,GAAG,CAAC,IAAI,EAAE;AACzB,IAAI;AACJ,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrD,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;AAClD,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,OAAO,EAAE;AACrB,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,GAAG,OAAO,CAAC;AAC3B;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AAChC,YAAY,IAAI,CAAC,qBAAqB,EAAE;AACxC,QAAQ;AACR,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzH,QAAQ;AACR,QAAQ,OAAO,GAAG,CAAC,IAAI,EAAE;AACzB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,WAAW,EAAE;AAChC,IAAI;AACJ,IAAI,YAAY,CAAC,GAAG,EAAE;AACtB,QAAQ,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC;AACjC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE;AAC9C,QAAQ,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,OAAO;AACxE,QAAQ,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,GAAG,kBAAkB,GAAG,kBAAkB;AAC/E,QAAQ,SAAS,QAAQ,CAAC,EAAE,EAAE;AAC9B,YAAY,IAAI,QAAQ;AACxB,YAAY,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9B,gBAAgB,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AAC7C,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AAC7C,YAAY;AACZ,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC,QAAQ;AACR,QAAQ,MAAM,oBAAoB,GAAG,aAAa,IAAI,aAAa,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC;AACrF,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrD;AACA;AACA;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;AACtC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,QAAQ,EAAE;AACtB,gBAAgB,YAAY,EAAE;AAC9B,aAAa;AACb,YAAY,OAAO,EAAE;AACrB,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE;AAC1C,YAAY,MAAM,IAAI,cAAc,CAAC,4BAA4B,CAAC;AAClE,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACjE,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,QAAQ;AACR,QAAQ,IAAI,gBAAgB;AAC5B,QAAQ,MAAM,YAAY,GAAG,MAAM;AACnC,YAAY,YAAY,CAAC,gBAAgB,CAAC;AAC1C,YAAY,gBAAgB,GAAG,UAAU,CAAC,MAAM;AAChD,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iCAAiC,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;AACjH,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,CAAC,EAAE,iBAAiB,CAAC;AACjC,QAAQ,CAAC;AACT,QAAQ,YAAY,EAAE;AACtB;AACA;AACA,QAAQ,IAAI,8BAA8B,GAAG,MAAM,EAAE,CAAC;AACtD,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC;AAClE,QAAQ,MAAM,SAAS,GAAG,IAAIR,4BAAgB,CAAC;AAC/C,YAAY,SAAS,EAAE,IAAI,wBAAwB,CAAC;AACpD,gBAAgB,GAAG;AACnB,gBAAgB,SAAS,EAAE,CAAC,GAAG,KAAK;AACpC,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AACzD,oBAAoB,8BAA8B,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC7E,wBAAwB,MAAM,EAAE,MAAM;AACtC;AACA;AACA,4BAA4B,MAAM,CAAC,KAAK,EAAE;AAC1C,wBAAwB;AACxB,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AAClE,wBAAwB,YAAY,EAAE;AACtC,oBAAoB,CAAC,CAAC;AACtB,oBAAoB,OAAO,MAAM;AACjC,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,KAAK,EAAE;AACnB,gBAAgB,SAAS,EAAE,aAAa;AACxC,gBAAgB,QAAQ,EAAE,sBAAsB;AAChD,gBAAgB,YAAY,EAAE,QAAQ;AACtC,gBAAgB,gBAAgB,EAAE,QAAQ;AAC1C,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,IAAI,EAAE,IAAI;AAC9B,oBAAoB,QAAQ,EAAE,QAAQ,CAAC;AACvC,wBAAwB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;AAC5D,wBAAwB,UAAU,EAAE;AACpC,qBAAqB;AACrB;AACA;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,OAAO;AACnB,QAAQ,IAAI;AACZ,YAAY,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE;AAC/C;AACA,YAAY,8BAA8B,EAAE;AAC5C,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC,EAAE,EAAE,CAAC;AAChE,YAAY,YAAY,CAAC,gBAAgB,CAAC;AAC1C,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAChC,gBAAgB,MAAM,MAAM,CAAC,KAAK,EAAE;AACpC,YAAY;AACZ,YAAY,MAAM,EAAE;AACpB,QAAQ;AACR,QAAQ,YAAY,EAAE;AACtB,QAAQ,IAAI,cAAc,GAAG,KAAK;AAClC,QAAQ,MAAM,WAAW,GAAG,MAAM;AAClC,YAAY,YAAY,CAAC,gBAAgB,CAAC;AAC1C,YAAY,IAAI,cAAc,EAAE;AAChC,gBAAgB;AAChB,YAAY;AACZ,YAAY,cAAc,GAAG,IAAI;AACjC,YAAY,OAAO,CAAC,KAAK,EAAE;AAC3B,QAAQ,CAAC;AACT;AACA,QAAQ,OAAO,CAAC,OAAO,CAAC,OAAO,cAAc,GAAG,IAAI,CAAC,CAAC;AACtD;AACA,QAAQ,IAAI,kBAAkB,GAAG,oBAAoB;AACrD,QAAQ,MAAM,qBAAqB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9D,YAAY,MAAM,EAAE,MAAM;AAC1B,gBAAgB,WAAW,EAAE;AAC7B,gBAAgB,qBAAqB,EAAE;AACvC,YAAY;AACZ,SAAS,CAAC;AACV,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC9D,YAAY,IAAI,qBAAqB,GAAG,KAAK;AAC7C,YAAY,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;AAC9C,gBAAgB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5C,gBAAgB,QAAQ,EAAE,QAAQ,CAAC;AACnC,oBAAoB;AACpB,iBAAiB;AACjB,aAAa,EAAE,oBAAoB;AACnC,YAAY;AACZ,gBAAgB,OAAO,EAAE,CAAC,CAAC,KAAK;AAChC,oBAAoB,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACtD,wBAAwB,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC7D,4BAA4B,IAAI,CAAC,qBAAqB,EAAE;AACxD,wBAAwB;AACxB,oBAAoB;AACpB,yBAAyB;AACzB;AACA,wBAAwB,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,EAAE;AACtD,4BAA4B,IAAI,CAAC,qBAAqB,EAAE;AACxD,wBAAwB;AACxB,oBAAoB;AACpB;AACA,oBAAoB,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,EAAE;AAClD,wBAAwB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,oBAAoB;AACpB;AACA;AACA,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,oBAAoB,IAAI,CAAC,qBAAqB,EAAE;AAChD,wBAAwB,MAAM,CAAC,CAAC,CAAC;AACjC,oBAAoB;AACpB,gBAAgB,CAAC;AACjB,gBAAgB,MAAM,EAAE,CAAC,OAAO,KAAK;AACrC;AACA,oBAAoB,IAAI,CAAC,qBAAqB,EAAE;AAChD,wBAAwB,qBAAqB,GAAG,IAAI;AACpD,wBAAwB,OAAO,CAAC,GAAG,CAAC;AACpC,oBAAoB;AACpB,oBAAoB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO;AAC5C;AACA,oBAAoB,kBAAkB,EAAE;AACxC,oBAAoB,IAAI,CAAC,IAAI,EAAE;AAC/B,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;AAC5C,gBAAgB,CAAC;AACjB,gBAAgB,UAAU,EAAE,MAAM;AAClC,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC,gBAAgB,CAAC;AACjB,gBAAgB,WAAW,EAAE,MAAM,EAAE;AACrC,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC1C,YAAY,QAAQ,EAAE,YAAY;AAClC;AACA,gBAAgB,MAAM,QAAQ,GAAG,oBAAoB,GAAG,kBAAkB;AAC1E,gBAAgB,IAAI,QAAQ,GAAG,CAAC,EAAE;AAClC,oBAAoB,MAAM,CAAC,OAAO,CAAC,oBAAoB,GAAG,kBAAkB,CAAC;AAC7E,oBAAoB,kBAAkB,GAAG,oBAAoB;AAC7D,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,MAAM,EAAE,MAAM;AAC1B,gBAAgB,CAAC,EAAE;AACnB,YAAY;AACZ,SAAS,CAAC;AACV,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1C,QAAQ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO;AAC5D,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,WAAW,EAAE,OAAO,EAAE;AAClC,YAAY,MAAM,IAAI,cAAc,CAAC,4DAA4D,CAAC;AAClG,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAChD,QAAQ,IAAI,eAAe,GAAG,KAAK;AACnC,QAAQ,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACrD,YAAY,IAAI,CAAC,eAAe,EAAE;AAClC;AACA,gBAAgB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;AACnD,oBAAoB,IAAI,cAAc,CAAC,gFAAgF,CAAC,CAAC;AACzH,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;AAClD,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;AACvD,YAAY,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACtC,YAAY,MAAM,EAAE,UAAU,CAAC,MAAM;AACrC,YAAY,KAAK,EAAE,UAAU;AAC7B,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;AAChD,YAAY,GAAG,OAAO,CAAC;AACvB,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK;AACzB,YAAY,IAAI,EAAE,CAAC,IAAI,IAAI,YAAY,EAAE;AACzC,gBAAgB,MAAM,IAAI,cAAc,CAAC,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACrG,YAAY;AACZ,YAAY,MAAM,EAAE;AACpB,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;AACxD,QAAQ;AACR,QAAQ,eAAe,GAAG,IAAI;AAC9B,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAClC,YAAY,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AACzC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,4BAA4B,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACjH,YAAY,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,YAAY,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AACrC,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR;AACA;AACA,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3C,QAAQ,IAAI,cAAc,GAAG,KAAK;AAClC;AACA,QAAQ,MAAM,WAAW,GAAG,YAAY;AACxC,YAAY,IAAI;AAChB,gBAAgB,cAAc,GAAG,IAAI;AACrC,gBAAgB,MAAM,MAAM,CAAC,MAAM,EAAE;AACrC,YAAY;AACZ,YAAY,OAAO,EAAE,EAAE;AACvB;AACA,YAAY;AACZ,YAAY,MAAM,CAAC,WAAW,EAAE;AAChC,QAAQ,CAAC;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;AACtC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,OAAO,EAAE;AACrB,SAAS,CAAC;AACV,QAAQ,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACrD,YAAY,WAAW,EAAE;AACzB,YAAY,MAAM,CAAC,KAAK,EAAE;AAC1B,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAChD,QAAQ,IAAI,MAAM,GAAG,EAAE;AACvB,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC1C,YAAY,QAAQ,EAAE,YAAY;AAClC,gBAAgB,IAAI,MAAM,CAAC,MAAM,IAAI,WAAW,EAAE,OAAO,IAAI,cAAc,EAAE;AAC7E,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,eAAe,GAAG,KAAK;AAC/C,oBAAoB,OAAO,CAAC,eAAe,EAAE;AAC7C,wBAAwB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AACnE,wBAAwB,IAAI,IAAI,EAAE;AAClC,4BAA4B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE;AAC3D,4BAA4B,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;AACvD,gCAAgC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;AAC7D,4BAA4B;AAC5B,4BAA4B,MAAM,CAAC,KAAK,EAAE;AAC1C,4BAA4B,MAAM,WAAW,EAAE;AAC/C,4BAA4B;AAC5B,wBAAwB;AACxB,wBAAwB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5E,wBAAwB,MAAM,IAAI,IAAI;AACtC,wBAAwB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACxD,wBAAwB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnE,4BAA4B,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnD,4BAA4B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,gCAAgC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACrD,gCAAgC,eAAe,GAAG,IAAI;AACtD,4BAA4B;AAC5B,wBAAwB;AACxB,wBAAwB,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,OAAO,EAAE,EAAE;AAC3B,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC,oBAAoB,MAAM,EAAE;AAC5B,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,MAAM,EAAE,MAAM;AAC1B,gBAAgB,WAAW,EAAE;AAC7B,gBAAgB,CAAC,IAAI;AACrB,YAAY;AACZ,SAAS,CAAC;AACV,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ;;AC9eA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACjC,QAAQ,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;AACjD,QAAQ,YAAY,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG;AAC/F,KAAK;AACL;AACO,SAAS,cAAc,CAAC,MAAM,EAAE;AACvC,IAAI,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,kBAAkB,CAAC;AACjG,IAAI,MAAM,YAAY,GAAG,gBAAgB,IAAI,IAAI,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,IAAI;AACzF,IAAI,OAAO;AACX,QAAQ,SAAS,EAAE,MAAM,CAAC,SAAS;AACnC,QAAQ,UAAU,EAAE,MAAM,CAAC,UAAU;AACrC,QAAQ,QAAQ,EAAE;AAClB;AACA;AACA,YAAY,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;AACnD,YAAY,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO;AACzD,YAAY,2BAA2B,EAAE,MAAM,CAAC;AAChD,SAAS;AACT,QAAQ,YAAY,EAAE,YAAY,EAAE,YAAY;AAChD,QAAQ,SAAS,EAAE,YAAY,EAAE,SAAS;AAC1C,QAAQ,qBAAqB,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY;AACtE,KAAK;AACL;;ACzBO,SAAS,mBAAmB,CAAC,IAAI,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI;AAC5B;AACO,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI;AACxC;AACO,SAAS,yBAAyB,CAAC,IAAI,EAAE;AAChD,IAAI,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI;AAClC;AACO,SAAS,iCAAiC,CAAC,IAAI,EAAE;AACxD,IAAI,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI;AAC3C;AACO,SAAS,0CAA0C,CAAC,IAAI,EAAE;AACjE,IAAI,OAAO,IAAI,CAAC,2BAA2B,IAAI,IAAI;AACnD;AACO,SAAS,6BAA6B,CAAC,IAAI,EAAE;AACpD,IAAI,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI;AACvC;AACO,SAAS,2BAA2B,CAAC,OAAO,EAAE;AACrD,IAAI,QAAQ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1C,QAAQ,OAAO,OAAO,CAAC,gBAAgB,IAAI,QAAQ;AACnD;AACO,SAAS,0BAA0B,CAAC,OAAO,EAAE;AACpD,IAAI,OAAO,OAAO,OAAO,CAAC,kBAAkB,IAAI,QAAQ;AACxD;;ACdU,IAAC;AACX,CAAC,UAAU,QAAQ,EAAE;AACrB,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM;AAC7B,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM;AAC7B,CAAC,EAAE,QAAQ,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;AACrB,IAAC;AACX,CAAC,UAAU,0BAA0B,EAAE;AACvC,IAAI,0BAA0B,CAAC,MAAM,CAAC,GAAG,MAAM;AAC/C,IAAI,0BAA0B,CAAC,YAAY,CAAC,GAAG,YAAY;AAC3D,CAAC,EAAE,0BAA0B,KAAK,0BAA0B,GAAG,EAAE,CAAC,CAAC;AACzD,IAAC;AACX,CAAC,UAAU,wBAAwB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,CAAC,YAAY,CAAC,GAAG,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,CAAC,MAAM,CAAC,GAAG,MAAM;AAC7C,CAAC,EAAE,wBAAwB,KAAK,wBAAwB,GAAG,EAAE,CAAC,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,kCAAkC,GAAG,wBAAwB,CAAC;AAC/D,MAAC,+BAA+B,GAAG;AACnC,MAAC,sBAAsB,GAAG;AAC1B,MAAC,8BAA8B,GAAG;AAC9C,IAAI,YAAY,EAAE,sBAAsB;AACxC,IAAI,oBAAoB,EAAE;AAC1B;AACY,MAAC,iCAAiC,GAAG;AACjD,IAAI,gBAAgB,EAAE,0BAA0B,CAAC,UAAU;AAC3D,IAAI,oBAAoB,EAAE,kCAAkC;AAC5D,IAAI,aAAa,EAAE,aAAa,CAAC,QAAQ;AACzC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,gBAAgB,EAAE,SAAS;AAC/B,IAAI,qBAAqB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAiB,GAAG,CAAC;AACpB,MAAM,mCAAmC,SAAS,YAAY,CAAC;AACtE,IAAI,aAAa;AACjB,IAAI,OAAO;AACX,IAAI,eAAe;AACnB;AACA;AACA,IAAI,qBAAqB;AACzB,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AACxB,IAAI,MAAM;AACV,IAAI,aAAa;AACjB,IAAI,eAAe,GAAG,KAAK;AAC3B,IAAI,sBAAsB;AAC1B,IAAI,yBAAyB;AAC7B,IAAI,UAAU;AACd,IAAI,iBAAiB;AACrB,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACrE,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC;AACzC,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,YAAY,EAAE,SAAS;AACnC,YAAY,QAAQ,EAAE;AACtB,gBAAgB,SAAS,EAAE,KAAK;AAChC,gBAAgB,WAAW,EAAE;AAC7B;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,uBAAuB,CAAC,MAAM;AAC/D,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;AACpE,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI;AACvC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,MAAM;AAChD,gBAAgB,IAAI,CAAC,sBAAsB,IAAI;AAC/C,gBAAgB,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5C,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;AAC7C,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,EAAE;AAC3B,IAAI,aAAa,CAAC,MAAM,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,aAAa,KAAK;AAC9D;AACA;AACA;AACA;AACA,YAAY,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK;AACzD,gBAAgB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACrE,oBAAoB,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC;AACvD,oBAAoB,IAAI,OAAO,KAAK,IAAI,QAAQ,IAAI,OAAO,gBAAgB,IAAI,QAAQ,EAAE;AACzF,wBAAwB,OAAO,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC;AAC1E,oBAAoB;AACpB,oBAAoB,OAAO,KAAK,IAAI,gBAAgB;AACpD,gBAAgB,CAAC,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,OAAO,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC;AAC5D,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,sBAAsB,CAAC,SAAS,EAAE;AACtC,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxC,YAAY,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC5C,gBAAgB,OAAO,EAAE;AACzB,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5C,gBAAgB,aAAa,EAAE,CAAC,aAAa,KAAK;AAClD,oBAAoB,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE;AAClD,wBAAwB,OAAO,EAAE;AACjC,wBAAwB,CAAC,IAAI;AAC7B,oBAAoB;AACpB,gBAAgB;AAChB,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;AACvD,QAAQ,OAAO,UAAU,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AACjD,IAAI;AACJ,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS;AACxC,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,KAAK,CAAC,OAAO,EAAE;AACvB,QAAQ,IAAI,CAAC,kBAAkB,IAAI;AACnC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,SAAS;AAC3C,QAAQ,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE;AAC3C,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;AACtD,IAAI;AACJ,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;AACjE,QAAQ,IAAI,IAAI,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;AAClE,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5D,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC;AAC/D,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC;AAC/B,YAAY,IAAI,EAAE,QAAQ,CAAC,IAAI;AAC/B,YAAY,QAAQ,EAAE,YAAY;AAClC;AACA;AACA;AACA,gBAAgB,IAAI,eAAe;AACnC,gBAAgB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AACxD,gBAAgB,IAAI,CAAC,qBAAqB,GAAG,UAAU;AACvD,gBAAgB,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC7E,oBAAoB,UAAU,CAAC,KAAK,EAAE;AACtC,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,gBAAgB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE;AACnD,oBAAoB,IAAI;AACxB;AACA;AACA;AACA,wBAAwB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE;AACtF,wBAAwB,IAAI,YAAY,EAAE;AAC1C,4BAA4B,IAAI,CAAC,gBAAgB,CAAC;AAClD,gCAAgC,QAAQ,EAAE;AAC1C,oCAAoC,SAAS,EAAE;AAC/C;AACA,6BAA6B,CAAC;AAC9B,4BAA4B,IAAI,YAAY,CAAC,QAAQ,IAAI,eAAe,EAAE,QAAQ,EAAE;AACpF;AACA,gCAAgC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD;AACA,0CAA0C,CAAC,CAAC;AAC5C,gCAAgC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;AACpG,4BAA4B;AAC5B,4BAA4B,eAAe,GAAG,YAAY;AAC1D,4BAA4B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC3D,4BAA4B,IAAI,CAAC,gBAAgB,CAAC;AAClD,gCAAgC,QAAQ,EAAE;AAC1C,oCAAoC,WAAW,EAAE;AACjD;AACA,6BAA6B,CAAC;AAC9B,wBAAwB;AACxB,6BAA6B;AAC7B;AACA,4BAA4B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9H,4BAA4B,IAAI,YAAY,IAAI,KAAK,IAAI,eAAe,IAAI,IAAI,EAAE;AAClF;AACA,gCAAgC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC;AACjG,4BAA4B;AAC5B,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,OAAO,EAAE,EAAE;AAC/B,wBAAwB,eAAe,GAAG,SAAS;AACnD,wBAAwB,IAAI,CAAC,gBAAgB,CAAC;AAC9C,4BAA4B,QAAQ,EAAE;AACtC,gCAAgC,SAAS,EAAE,KAAK;AAChD,gCAAgC,WAAW,EAAE;AAC7C;AACA,yBAAyB,CAAC;AAC1B,wBAAwB,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;AAChE,wBAAwB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC/C;AACA,4BAA4B;AAC5B,wBAAwB;AACxB,wBAAwB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,6EAA6E,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACvI,oBAAoB;AACpB,4BAA4B;AAC5B,wBAAwB,IAAI,CAAC,gBAAgB,CAAC;AAC9C,4BAA4B,QAAQ,EAAE;AACtC,gCAAgC,SAAS,EAAE;AAC3C;AACA,yBAAyB,CAAC;AAC1B,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjD,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY,MAAM,IAAI,CAAC,UAAU,EAAE;AACnC,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAChD,QAAQ,IAAI,CAAC,eAAe,GAAG,UAAU;AACzC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;AAC5F;AACA,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACnD,gBAAgB,aAAa,EAAE,CAAC,MAAM,KAAK;AAC3C,oBAAoB,IAAI,MAAM,CAAC,cAAc,CAAC,aAAa,IAAI,IAAI,EAAE;AACrE,wBAAwB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC;AAC1G,oBAAoB;AACpB,yBAAyB,IAAI,MAAM,CAAC,UAAU,EAAE;AAChD;AACA,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,QAAQ,EAAE;AAC9B,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACnC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AAClD,YAAY,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,+BAA+B,CAAC,CAAC;AAC3F,QAAQ;AACR;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,CAAC,oBAAoB;AAC3C,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB;AACA,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAChC,QAAQ;AACR,QAAQ,IAAI,CAAC,oBAAoB,GAAG,SAAS;AAC7C,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACtE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE;AACzC,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE;AACxD,YAAY,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM;AAChD,QAAQ;AACR;AACA;AACA;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACxE,YAAY,UAAU,EAAE,MAAM,IAAI,CAAC,iBAAiB;AACpD,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,QAAQ,IAAI,qBAAqB,GAAG,IAAI,eAAe,EAAE;AACzD,QAAQ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC/C;AACA;AACA;AACA;AACA,YAAY,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,cAAc,CAAC,8CAA8C,CAAC,CAAC;AAC7H,YAAY,IAAI,CAAC,kBAAkB,IAAI;AACvC,YAAY,IAAI,CAAC,kBAAkB,GAAG,SAAS;AAC/C,YAAY,IAAI,CAAC,gBAAgB,CAAC;AAClC,gBAAgB,SAAS,EAAE,KAAK;AAChC,gBAAgB,UAAU,EAAE,KAAK;AACjC,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,WAAW,EAAE,KAAK;AACtC,oBAAoB,gBAAgB,EAAE;AACtC;AACA,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACvD,YAAY,IAAI,gBAAgB,GAAG,IAAI;AACvC,YAAY,IAAI,MAAM,GAAG,IAAI;AAC7B,YAAY,IAAI;AAChB,gBAAgB,IAAI,MAAM,EAAE,OAAO,EAAE;AACrC,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC;AACjG;AACA,YAAY;AACZ,YAAY,OAAO,EAAE,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,EAAE,YAAY,cAAc,EAAE;AAClD,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACxC,oBAAoB,gBAAgB,GAAG,KAAK;AAC5C;AACA,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACzC,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,gBAAgB,CAAC;AACtC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,aAAa,EAAE;AACvC;AACA,iBAAiB,CAAC;AAClB,YAAY;AACZ,oBAAoB;AACpB,gBAAgB,IAAI,CAAC,sBAAsB,GAAG,SAAS;AACvD,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrC,oBAAoB,qBAAqB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,oDAAoD,CAAC,CAAC;AACzH,oBAAoB,qBAAqB,GAAG,IAAI,eAAe,EAAE;AACjE,gBAAgB;AAChB,gBAAgB,IAAI,MAAM,EAAE,gBAAgB,IAAI,IAAI,EAAE;AACtD,oBAAoB,IAAI,CAAC,gBAAgB,CAAC;AAC1C,wBAAwB,SAAS,EAAE,KAAK;AACxC,wBAAwB,UAAU,EAAE,IAAI;AACxC,qBAAqB,CAAC;AACtB;AACA,oBAAoB,IAAI,gBAAgB,EAAE;AAC1C,wBAAwB,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC;AAC3E,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACtE,IAAI;AACJ,IAAI,MAAM,uBAAuB,GAAG;AACpC,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE;AAC1E,QAAQ,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AAClD,YAAY,IAAI,EAAE,KAAK,CAAC,MAAM;AAC9B,YAAY,KAAK,EAAE,KAAK,CAAC;AACzB,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE;AAC3C,QAAQ,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;AAC3C,YAAY,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;AACrD,QAAQ;AACR,QAAQ,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC;AACvC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,CAAC,qBAAqB,EAAE;AAClD,QAAQ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE;AAC3E,QAAQ,IAAI,qBAAqB,IAAI,CAAC,WAAW,EAAE;AACnD,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;AAC9D,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,WAAW;AAC9B,QAAQ;AACR,IAAI;AACJ,IAAI,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE;AAC5C,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC;AAC/B,YAAY,IAAI,EAAE,QAAQ,CAAC,IAAI;AAC/B,YAAY,MAAM;AAClB,YAAY,QAAQ,EAAE,YAAY;AAClC,gBAAgB,MAAM,eAAe,GAAG;AACxC,oBAAoB,GAAG,iCAAiC;AACxD,oBAAoB,IAAI,OAAO,IAAI,EAAE;AACrC,iBAAiB;AACjB,gBAAgB,MAAM,oBAAoB,GAAG,eAAe,CAAC,oBAAoB;AACjF,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;AAC/D,gBAAgB,IAAI,oBAAoB,IAAI,wBAAwB,CAAC,UAAU,EAAE;AACjF,oBAAoB,MAAM,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,eAAe,CAAC;AACpF,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACrD,oBAAoB,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC;AAChF,gBAAgB;AAChB,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,4BAA4B,CAAC,MAAM,EAAE,eAAe,EAAE;AAChE,QAAQ,MAAM,SAAS,GAAG,eAAe,CAAC,gBAAgB,EAAE,UAAU;AACtE,QAAQ,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE;AACnD,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gFAAgF,CAAC;AAC9G,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC;AAC7D,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE;AAC3C,QAAQ,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE;AACnE,QAAQ,IAAI,gBAAgB,GAAG,IAAI;AACnC;AACA,QAAQ,IAAI,0BAA0B,GAAG,IAAI;AAC7C,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;AACjE,QAAQ,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACtE,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC;AAC1D,QAAQ,MAAM,WAAW,GAAG;AAC5B,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,WAAW,EAAE,MAAM;AAC/B,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,GAAG;AAC5B,gBAAgB,gBAAgB,EAAE,IAAI;AACtC,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,UAAU,EAAE,eAAe,CAAC,MAAM;AAClD,gBAAgB,SAAS,EAAE;AAC3B;AACA,SAAS;AACT,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI,eAAe,EAAE,gBAAgB,IAAI,0BAA0B,CAAC,IAAI,EAAE;AAClF,YAAY,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK;AACpF,gBAAgB,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;AAC7C,oBAAoB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C,gBAAgB;AAChB,qBAAqB;AACrB;AACA,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;AAC5D,YAAY,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;AAC/D,gBAAgB,GAAG,WAAW;AAC9B,gBAAgB,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC,aAAa;AACjE,aAAa,EAAE,CAAC,OAAO,KAAK;AAC5B,gBAAgB,IAAI,OAAO,YAAY,UAAU,EAAE;AACnD,oBAAoB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACpD,gBAAgB;AAChB,qBAAqB;AACrB;AACA,oBAAoB,OAAO,OAAO;AAClC,gBAAgB;AAChB,YAAY,CAAC,EAAE,IAAI,CAAC;AACpB,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC;AAClE,QAAQ,IAAI,CAAC,sBAAsB,GAAG,MAAM;AAC5C,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAChC,gBAAgB,MAAM,CAAC,WAAW,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;AACnE,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/B,YAAY,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AAC5C,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB;AACA,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,uBAAuB,IAAI,IAAI,EAAE;AACjD,gBAAgB,IAAI,0BAA0B,IAAI,IAAI,EAAE;AACxD,oBAAoB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC;AAC5G,oBAAoB,IAAI,OAAO,EAAE;AACjC,wBAAwB,0BAA0B,GAAG,IAAI;AACzD,oBAAoB;AACpB,yBAAyB,IAAI,YAAY,EAAE;AAC3C,wBAAwB;AACxB,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC5C;AACA,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACtE,gBAAgB,IAAI,CAAC,gBAAgB,CAAC;AACtC,oBAAoB,SAAS,EAAE;AAC/B,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE;AACjD,gBAAgB,gBAAgB,GAAG,IAAI,CAAC,UAAU;AAClD;AACA,gBAAgB,0BAA0B,GAAG,IAAI;AACjD,gBAAgB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACjE,gBAAgB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE;AAC5C,gBAAgB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAChE,oBAAoB,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpD,wBAAwB,IAAI,EAAE,QAAQ,CAAC,MAAM;AAC7C,wBAAwB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI;AACvD,qBAAqB,CAAC;AACtB,oBAAoB,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC3D,gBAAgB;AAChB,gBAAgB,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE;AAC9C,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC;AAC/E,gBAAgB;AAChB,gBAAgB,SAAS,GAAG,UAAU;AACtC,gBAAgB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;AAC9E,gBAAgB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;AAChF,gBAAgB,MAAM,IAAI,CAAC,qCAAqC,CAAC,gBAAgB,CAAC;AAClF,YAAY;AACZ,iBAAiB,IAAI,iCAAiC,CAAC,IAAI,CAAC,EAAE;AAC9D,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;AAC3E,gBAAgB,IAAI,MAAM,CAAC,YAAY,EAAE;AACzC,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC1C;AACA;AACA,oBAAoB,0BAA0B,GAAG,gBAAgB;AACjE,gBAAgB;AAChB,qBAAqB;AACrB;AACA;AACA,oBAAoB,0BAA0B,GAAG,IAAI;AACrD,gBAAgB;AAChB,YAAY;AACZ,iBAAiB,IAAI,0CAA0C,CAAC,IAAI,CAAC,EAAE;AACvE,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ;AAC1E,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,QAAQ,CAAC;AAC1E,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AACvG,gBAAgB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AAC7C;AACA;AACA,oBAAoB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC3E,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAIxC,qBAAqB;AACrB;AACA,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC;AAChF;AACA,oBAAoB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;AACtH,oBAAoB,cAAc,CAAC,IAAI,CAAC;AACxC,wBAAwB,QAAQ;AAChC,wBAAwB,YAAY,EAAE,IAAI,IAAI,EAAE;AAChD,wBAAwB,SAAS,EAAE;AACnC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,CAAC,gBAAgB,CAAC;AAC1C,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,qBAAqB,EAAE;AAC/C,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY;AACZ,iBAAiB,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE;AAC1D;AACA,gBAAgB,IAAI,gBAAgB,IAAI,IAAI,EAAE;AAC9C,oBAAoB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AAClF,gBAAgB;AAChB;AACA,gBAAgB,0BAA0B,GAAG,IAAI;AACjD,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe;AACjD,gBAAgB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE;AAC5C,gBAAgB,KAAK,MAAM,QAAQ,IAAI,gBAAgB,CAAC,OAAO,EAAE;AACjE,oBAAoB,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC7D,gBAAgB;AAChB,gBAAgB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAC7D,oBAAoB,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC7D,gBAAgB;AAChB,gBAAgB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;AAC3D,oBAAoB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,gBAAgB;AAChB,gBAAgB,MAAM,aAAa,GAAG;AACtC,oBAAoB,UAAU,EAAE,IAAI,CAAC,UAAU;AAC/C,oBAAoB,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;AACrD,oBAAoB,gBAAgB,EAAE,IAAI,CAAC;AAC3C,iBAAiB;AACjB,gBAAgB,gBAAgB,GAAG,aAAa;AAChD,gBAAgB,MAAM,IAAI,CAAC,qCAAqC,CAAC,gBAAgB,CAAC;AAClF,gBAAgB,SAAS,GAAG,IAAI,GAAG,EAAE;AACrC,gBAAgB,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE;AAC3E,oBAAoB,IAAI,EAAE,QAAQ,CAAC,MAAM;AACzC,oBAAoB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI;AACnD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;AAC5D,gBAAgB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAChD,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,eAAe,CAAC;AACxE,gBAAgB;AAChB,gBAAgB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC;AACzE,gBAAgB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;AAChF,YAAY;AACZ,iBAAiB,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;AAChD,gBAAgB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI;AACrC,gBAAgB,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB;AACxF,gBAAgB,IAAI,eAAe,GAAG,IAAI;AAC1C,gBAAgB,IAAI,gBAAgB,EAAE;AACtC,oBAAoB,eAAe,GAAG,EAAE,GAAG,gBAAgB,EAAE;AAC7D,oBAAoB,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1E,oBAAoB,IAAI,iBAAiB,EAAE;AAC3C,wBAAwB,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;AACvD,4BAA4B,GAAG,iBAAiB;AAChD,4BAA4B,UAAU,EAAE,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;AACjF,yBAAyB;AACzB,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,gBAAgB,CAAC;AACtC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,WAAW,EAAE,IAAI;AACzC,wBAAwB,gBAAgB,EAAE;AAC1C;AACA,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,mBAAmB,CAAC;AACzH,YAAY;AACZ,iBAAiB,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;AACjD,gBAAgB,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB;AAC/D,gBAAgB,IAAI,iBAAiB,IAAI,CAAC,EAAE;AAC5C;AACA,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC;AAClE;AACA;AACA;AACA;AACA,oBAAoB,MAAM,IAAI,CAAC,UAAU,EAAE;AAC3C,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB,IAAI,iBAAiB,GAAG,EAAE,EAAE;AACjD,oBAAoB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC;AAC1E;AACA,oBAAoB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE;AAC/D,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,iBAAiB,EAAE;AACxC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC;AACrE,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC;AAC/C;AACA,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE;AACrD,QAAQ,MAAM,kBAAkB,GAAG,IAAI;AACvC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;AAC5C,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;AAC1C,QAAQ,IAAI,cAAc,GAAG,IAAI;AACjC,QAAQ,IAAI,WAAW,GAAG,KAAK;AAC/B,QAAQ,IAAI,uBAAuB,GAAG,KAAK;AAC3C,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE;AAC5B,YAAY,MAAM,IAAI,cAAc,CAAC,qCAAqC,CAAC;AAC3E,QAAQ;AACR,QAAQ,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE;AACrD,QAAQ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;AACvE;AACA;AACA;AACA,QAAQ,IAAI,kBAAkB,GAAG,IAAI;AACrC,QAAQ,eAAe,OAAO,CAAC,KAAK,EAAE;AACtC,YAAY,MAAM,WAAW,GAAG;AAChC,gBAAgB,IAAI,EAAE,cAAc;AACpC,gBAAgB,WAAW,EAAE,eAAe,CAAC,MAAM;AACnD,gBAAgB,IAAI,EAAE,KAAK,CAAC;AAC5B,aAAa;AACb,YAAY,IAAI,eAAe,CAAC,gBAAgB,IAAI,0BAA0B,CAAC,IAAI,EAAE;AACrF,gBAAgB,kBAAkB,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK;AACvF,oBAAoB,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;AACjD,wBAAwB,OAAO;AAC/B,4BAA4B,OAAO,EAAE,uBAAuB,CAAC,iBAAiB;AAC9E,4BAA4B,OAAO,EAAE;AACrC,yBAAyB;AACzB,oBAAoB;AACpB,yBAAyB;AACzB;AACA,wBAAwB,OAAO,IAAI;AACnC,oBAAoB;AACpB,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,kBAAkB,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC;AAClE,oBAAoB,GAAG,WAAW;AAClC,oBAAoB,aAAa,EAAE,eAAe,CAAC;AACnD,iBAAiB,EAAE,CAAC,OAAO,KAAK;AAChC,oBAAoB,IAAI,OAAO,YAAY,UAAU,EAAE;AACvD,wBAAwB,OAAO;AAC/B,4BAA4B,OAAO,EAAE,uBAAuB,CAAC,iBAAiB;AAC9E,4BAA4B,OAAO,EAAE;AACrC,yBAAyB;AACzB,oBAAoB;AACpB,yBAAyB;AACzB;AACA,wBAAwB,OAAO,OAAO;AACtC,oBAAoB;AACpB,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ;AACA;AACA,YAAY,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACpE,YAAY,IAAI;AAChB,gBAAgB,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACnD,oBAAoB,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE;AAChE,oBAAoB,IAAI,IAAI,IAAI,IAAI,EAAE;AACtC,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;AAC7D,oBAAoB,IAAI,CAAC,WAAW,EAAE;AACtC,wBAAwB,kBAAkB,CAAC,iBAAiB,EAAE;AAC9D,wBAAwB,WAAW,GAAG,IAAI;AAC1C,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,oBAAoB;AACpB,gBAAgB,MAAM,kBAAkB,GAAG,kBAAkB;AAC7D;AACA;AACA;AACA,gBAAgB,kBAAkB,GAAG,IAAI;AACzC,gBAAgB,MAAM,kBAAkB,CAAC,KAAK,EAAE;AAChD,YAAY;AACZ,QAAQ;AACR,QAAQ,eAAe,IAAI,GAAG;AAC9B,YAAY,MAAM,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;AACvD,QAAQ;AACR,QAAQ,eAAe,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;AAC5C,YAAY,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC;AAC1E,YAAY,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM;AACpD,YAAY,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,EAAE,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,IAAI,QAAQ,GAAG,OAAO,GAAG,SAAS,EAAE,WAAW,CAAC;AACnI,YAAY,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC7D,QAAQ;AACR,QAAQ,eAAe,iBAAiB,CAAC,WAAW,EAAE;AACtD,YAAY,IAAI,SAAS,IAAI,WAAW,EAAE;AAC1C,gBAAgB,QAAQ,WAAW,CAAC,OAAO,CAAC,QAAQ;AACpD,oBAAoB,KAAK,OAAO;AAChC,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;AACjF,wBAAwB;AACxB,oBAAoB,KAAK,MAAM;AAC/B,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;AAChF,wBAAwB;AACxB,oBAAoB,KAAK,SAAS;AAClC,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;AAChF,wBAAwB;AACxB;AACA,YAAY;AACZ,iBAAiB,IAAI,kBAAkB,IAAI,WAAW,EAAE;AACxD,gBAAgB,kBAAkB,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACxG,YAAY;AACZ,iBAAiB,IAAI,qBAAqB,IAAI,WAAW,EAAE;AAC3D,gBAAgB,IAAI,cAAc,IAAI,IAAI,EAAE;AAC5C;AACA,oBAAoB,MAAM,gEAAgE;AAC1F,gBAAgB;AAChB,gBAAgB,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC;AACzE,YAAY;AACZ,iBAAiB,IAAI,kBAAkB,IAAI,WAAW,EAAE;AACxD,gBAAgB,IAAI,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC7D,oBAAoB,MAAM,CAAC,qBAAqB,EAAE;AAClD,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,qBAAqB,EAAE;AAClD;AACA,oBAAoB,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AAC1D,wBAAwB,kBAAkB,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;AACpH,oBAAoB,CAAC,EAAE,CAAC,GAAG,KAAK;AAChC,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,CAAC;AAC7F,oBAAoB,CAAC,CAAC;AACtB,gBAAgB;AAChB,YAAY;AACZ,iBAAiB,IAAI,iBAAiB,IAAI,WAAW,EAAE;AACvD,gBAAgB,eAAe,CAAC,KAAK,EAAE;AACvC,gBAAgB,uBAAuB,GAAG,WAAW,CAAC,eAAe,CAAC,eAAe;AACrF,YAAY;AACZ,iBAAiB,IAAI,iBAAiB,IAAI,WAAW,EAAE;AAGvD,iBAAiB,IAAI,iBAAiB,IAAI,WAAW,EAAE;AACvD,gBAAgB,kBAAkB,CAAC,gBAAgB,CAAC;AACpD,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,aAAa,EAAE;AACvC;AACA,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ;AACR,QAAQ,eAAe,kBAAkB,CAAC,YAAY,EAAE;AACxD,YAAY,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;AAC9C,gBAAgB,MAAM,iBAAiB,CAAC,KAAK,CAAC;AAC9C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG;AAC5B,gBAAgB,UAAU,EAAE,eAAe,CAAC,MAAM;AAClD,gBAAgB,cAAc,EAAE,IAAI,CAAC,aAAa;AAClD,gBAAgB,gBAAgB,EAAE,eAAe,CAAC;AAClD,aAAa;AACb,YAAY,IAAI,eAAe,CAAC,gBAAgB,EAAE;AAClD,gBAAgB,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,gBAAgB;AACjE,YAAY;AACZ,YAAY,MAAM,OAAO,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjF,YAAY,IAAI,CAAC,sBAAsB,GAAG,MAAM;AAChD,gBAAgB,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE;AACvE,oBAAoB,kBAAkB,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,4BAA4B,EAAE,CAAC;AACrH,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,IAAI,CAAC,yBAAyB,GAAG,MAAM;AACnD,gBAAgB,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE;AACvE,oBAAoB,kBAAkB,CAAC,WAAW,CAAC;AACnD,wBAAwB,OAAO,EAAE,uBAAuB,CAAC,oBAAoB;AAC7E,wBAAwB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa;AAClE,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,MAAM,cAAc;AAChC,QAAQ;AACR,gBAAgB;AAChB,YAAY,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,GAAG,SAAS;AACpF,YAAY,MAAM,IAAI,EAAE;AACxB,QAAQ;AACR,QAAQ,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE;AAC5D,IAAI;AACJ,IAAI,MAAM,qCAAqC,CAAC,UAAU,EAAE;AAC5D,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE;AACrF,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,IAAI,WAAW,GAAG,KAAK;AAC/B,QAAQ,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE;AACjD,YAAY,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9D,YAAY,MAAM,MAAM,GAAG,aAAa,EAAE,MAAM,IAAI,CAAC;AACrD,YAAY,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS,IAAI,CAAC;AAC3D,YAAY,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;AACtC;AACA;AACA,gBAAgB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;AAC9C,gBAAgB,OAAO,EAAE,MAAM;AAC/B,gBAAgB,UAAU,EAAE,SAAS;AACrC,gBAAgB,YAAY,EAAE,MAAM,CAAC,KAAK,IAAI;AAC9C,aAAa;AACb,YAAY,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,SAAS,EAAE;AAC3E;AACA;AACA;AACA,gBAAgB,WAAW,GAAG,IAAI;AAClC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;AAC3C,gBAAgB,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvD,gBAAgB,cAAc,CAAC,OAAO,GAAG,CAAC;AAC1C,gBAAgB,cAAc,CAAC,UAAU,GAAG,CAAC;AAC7C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,gBAAgB,CAAC;AAC9B,YAAY,QAAQ,EAAE;AACtB,gBAAgB,WAAW,EAAE,IAAI;AACjC,gBAAgB,gBAAgB,EAAE;AAClC;AACA,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,UAAU,EAAE;AACtC,QAAQ,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC;AAC7E,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AACrC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,gCAAgC,EAAE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACzG;AACA;AACA,YAAY,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACnE,YAAY,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE;AACzD,QAAQ;AACR,aAAa,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAChC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,2BAA2B,EAAE,UAAU,CAAC,UAAU,CAAC,yFAAyF,CAAC,CAAC;AAC7K,YAAY,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;AAC1D,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC;AACpF,QAAQ,IAAI,CAAC,gBAAgB,CAAC;AAC9B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,YAAY,EAAE,IAAI,IAAI,EAAE;AACpC,YAAY,QAAQ,EAAE;AACtB,gBAAgB,WAAW,EAAE,KAAK;AAClC,gBAAgB,gBAAgB,EAAE,IAAI;AACtC,gBAAgB,aAAa,EAAE;AAC/B;AACA,SAAS,CAAC;AACV,QAAQ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE;AACrD,IAAI;AACJ,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9B,QAAQ,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC;AAC7C,YAAY,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS;AACrE,YAAY,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAChG,YAAY,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY;AAC9E,YAAY,QAAQ,EAAE;AACtB,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc;AACjD,gBAAgB,GAAG,OAAO,CAAC;AAC3B,aAAa;AACb,YAAY,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC,UAAU,CAAC,qBAAqB;AACzG,YAAY,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,UAAU,CAAC;AAClF,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACrD,YAAY,IAAI,CAAC,UAAU,GAAG,aAAa;AAC3C;AACA,YAAY,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC;AAC5E,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;AAClE,IAAI;AACJ,IAAI,MAAM,UAAU,CAAC,MAAM,EAAE;AAC7B,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxC,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE;AACjC;AACA,gBAAgB,OAAO,EAAE;AACzB,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO;AACjD,YAAY,IAAI,SAAS;AACzB,YAAY,MAAM,QAAQ,GAAG,MAAM;AACnC,gBAAgB,OAAO,EAAE;AACzB,gBAAgB,IAAI,SAAS,EAAE;AAC/B,oBAAoB,YAAY,CAAC,SAAS,CAAC;AAC3C,oBAAoB,SAAS,GAAG,SAAS;AACzC,gBAAgB;AAChB,gBAAgB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC9D,YAAY,CAAC;AACb,YAAY,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvE,YAAY,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC;AAC1D,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,mBAAmB,CAAC,aAAa,EAAE;AACvC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,yBAAyB,IAAI;AAC1C,IAAI;AACJ;;ACt9BA;AACA;AACA;AACA;AACU,IAAC;AACX,CAAC,UAAU,oBAAoB,EAAE;AACjC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC7C,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC7C,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC7C,CAAC,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,EAAE,CAAC,CAAC;;ACPhD,MAAM,kBAAkB,CAAC;AAChC,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;AACpC,QAAQ,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC;AACpC,YAAY,aAAa,EAAE,CAAC,MAAM,KAAK;AACvC,gBAAgB,IAAI,CAAC,MAAM,GAAG,MAAM;AACpC,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,EAAE,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE;AAC9B,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,WAAW;AACzD;AACA;AACA,IAAI,CAAC,CAAC;AACN;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AACtC,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE;AACzC,QAAQ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAC5C,YAAY,MAAM,EAAE,CAAC,OAAO,WAAW,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,OAAO,EAAE;AACrC,QAAQ,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACpC,QAAQ,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO;AACrE,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC;AAC7F,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChI;AACA;AACA;AACA;AACA,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC;AAC7F,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;AACxF,QAAQ;AACR,QAAQ,MAAM,iBAAiB,GAAG,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC;AAC5F,QAAQ,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY;AAC5D,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;AACvC;AACA;AACA;AACA,QAAQ,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,KAAK;AACjD,YAAY,IAAI,OAAO,IAAI,IAAI,EAAE;AACjC;AACA,gBAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;AACvC,YAAY;AACZ,iBAAiB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1C;AACA,gBAAgB,OAAO,CAAC,IAAI,CAAC;AAC7B,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxI,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC;AAChE,YAAY,aAAa,EAAE,MAAM;AACjC,gBAAgB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,iIAAiI,CAAC,CAAC;AACxK,YAAY;AACZ,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,OAAO,GAAG,YAAY;AACpC,YAAY,sBAAsB,EAAE;AACpC,YAAY,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK;AACnD,gBAAgB,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC;AACzD,gBAAgB,MAAM,EAAE,CAAC,OAAO,WAAW,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAClF,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC;AACT,QAAQ,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK;AACpC;AACA,YAAY,MAAM,KAAK,EAAE,YAAY,GAAG,EAAE,CAAC;AAC3C,YAAY,MAAM,EAAE,CAAC,OAAO,WAAW;AACvC,0BAA0B,EAAE,WAAW,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,CAAC;AACR,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;AAClE,gBAAgB,MAAM,eAAe,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;AACtE,gBAAgB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;AAChD,gBAAgB,MAAM,EAAE,CAAC,OAAO,WAAW;AAC3C,8BAA8B,EAAE,eAAe,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC9H;AACA,YAAY,EAAE,WAAW,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC;AACnC;;AAEA;AACA,QAAQ,CAAC,CAAC;AACV,YAAY;AACZ,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;AAClE,gBAAgB,MAAM,eAAe,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;AACtE,gBAAgB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;AAChD,gBAAgB,MAAM,EAAE,CAAC,OAAO,WAAW;AAC3C,8BAA8B,EAAE,eAAe,CAAC;AAChD,oBAAoB,EAAE,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACjF;AACA,YAAY,EAAE,WAAW,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACpC,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC;AACnC;;AAEA;AACA,QAAQ,CAAC,CAAC;AACV,YAAY;AACZ,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;AAClE,gBAAgB,MAAM,eAAe,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;AACtE,gBAAgB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;AAChD;AACA,gBAAgB,MAAM,EAAE,CAAC,OAAO,WAAW;AAC3C,8BAA8B,EAAE,eAAe,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC9H;AACA,YAAY,EAAE,WAAW,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC;AACnC;;AAEA;AACA,QAAQ,CAAC,CAAC;AACV,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1C,YAAY,OAAO,OAAO;AAC1B,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI;AAChB,gBAAgB,MAAM,OAAO,EAAE;AAC/B,YAAY;AACZ,YAAY,OAAO,YAAY,EAAE;AACjC,gBAAgB,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,oCAAoC,CAAC;AACrG,YAAY;AACZ,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,yBAAyB,EAAE,GAAG,OAAO;AAChG,QAAQ,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACpC;AACA;AACA;AACA;AACA,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC;AAC7F,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;AACxF,QAAQ;AACR;AACA;AACA,QAAQ,MAAM,cAAc,GAAG,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC;AACzF,QAAQ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;AACvC,QAAQ,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3D;AACA,QAAQ,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE;AACrD,QAAQ,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;AAC3D,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;AACzB;AACA;AACA,YAAY,QAAQ,EAAE,YAAY;AAClC,gBAAgB,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO;AAClD,oBAAoB;AACpB;AACA;AACA,gBAAgB,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AAC7D,oBAAoB,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC;AAClE,wBAAwB,GAAG,EAAE;AAC7B,wBAAwB,gBAAgB,EAAE,WAAW;AACrD,wBAAwB,QAAQ,EAAE,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,KAAK;AACpE;AACA,4BAA4B,MAAM,iBAAiB,GAAG,OAAO,EAAE;AAC/D,kCAAkC;AAClC,kCAAkC,GAAG;AACrC,4BAA4B,MAAM,YAAY,aAAa;AAC3D;AACA;AACA;AACA,wBAAwB,EAAE,iBAAiB;AAC3C;AACA,wBAAwB,EAAE,WAAW;AACrC;AACA;AACA,sBAAsB,EAAE,KAAK;AAC7B,gBAAgB,CAAC;AACjB,4BAA4B,OAAO,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC;AAClE,wBAAwB,CAAC;AACzB,wBAAwB,iBAAiB,EAAE,OAAO,KAAK,EAAE,MAAM,KAAK;AACpE;AACA,4BAA4B,MAAM,YAAY,aAAa;AAC3D;AACA;AACA;AACA;AACA,wBAAwB,EAAE,cAAc,CAAC,MAAM,GAAG;AAClD,kCAAkC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1H,kCAAkC,EAAE,CAAC;AACrC;AACA;AACA;AACA;AACA,wBAAwB,EAAE,WAAW;AACrC;AACA;AACA,sBAAsB,EAAE,KAAK;AAC7B,gBAAgB,CAAC;AACjB,4BAA4B,OAAO,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC;AAClE,wBAAwB;AACxB,qBAAqB,CAAC;AACtB;AACA,oBAAoB,MAAM,EAAE,CAAC,OAAO,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC7E,oBAAoB,OAAO,cAAc;AACzC,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;AACjF,QAAQ,IAAI;AACZ,YAAY,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;AAC/D,gBAAgB,MAAM;AACtB,gBAAgB,WAAW;AAC3B,gBAAgB,OAAO,EAAE,cAAc;AACvC,gBAAgB,IAAI;AACpB,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,aAAa,EAAE;AAC/B,gBAAgB,MAAM,aAAa,EAAE;AACrC,YAAY,CAAC;AACb,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI;AAChB,gBAAgB,aAAa,EAAE;AAC/B,YAAY;AACZ,YAAY,OAAO,YAAY,EAAE;AACjC,gBAAgB,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,oCAAoC,CAAC;AACrG,YAAY;AACZ,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR,IAAI;AACJ;;ACxPA,MAAM,qBAAqB,GAAG,+BAA+B;AAC7D,MAAM,gCAAgC,GAAG;AACzC,IAAI,UAAU,EAAE;AAChB,CAAC;AACW,MAAC,+BAA+B,GAAG;AAC/C,IAAI,UAAU,EAAE;AAChB;AACY,MAAC,4BAA4B,GAAG;AAC5C,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,oBAAoB,EAAE;AAC1B;AACY,MAAC,wBAAwB,GAAG;AACxC;AACA;AACA;AACA;AACA;AACY,MAAC,uBAAuB,GAAG,QAAQ;AAC/C;AACA;AACA;AACA;AACY,MAAC,sCAAsC,GAAG,CAAC,IAAI,KAAK;AAChE,IAAI,OAAO,OAAO,IAAI,IAAI,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrE;AACO,MAAM,yBAAyB,SAAS,YAAY,CAAC;AAC5D,IAAI,OAAO;AACX;AACA;AACA;AACA,IAAI,MAAM;AACV,IAAI,KAAK;AACT;AACA;AACA;AACA,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,oBAAoB;AACxB,IAAI,eAAe;AACnB,IAAI,iBAAiB;AACrB,IAAI,aAAa;AACjB,IAAI,IAAI,wBAAwB,GAAG;AACnC,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,wBAAwB;AAC9D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS;AAC/C,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;AACvD,IAAI;AACJ,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,iBAAiB;AACrB;AACA;AACA;AACA;AACA,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;AAC5C,QAAQ,IAAI,OAAO,MAAM,EAAE,MAAM,IAAI,UAAU,EAAE;AACjD,YAAY,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC;AAC5G,QAAQ;AACR,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAY,IAAI,CAAC,SAAS,GAAG,QAAQ;AACrC,QAAQ;AACR,aAAa,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE;AAC7C,YAAY,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE;AAC9C,QAAQ;AACR,aAAa,IAAI,sCAAsC,CAAC,OAAO,CAAC,EAAE;AAClE,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AACxD,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;AACzE,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,EAAE;AACvE,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,4BAA4B,EAAE,GAAG,OAAO,EAAE;AACtE,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,KAAK,EAAE;AAC5C;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,YAAY,mBAAmB,EAAE,CAAC,SAAS,EAAE,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;AAC3F,YAAY,wBAAwB,EAAE,MAAM,IAAI,CAAC,wBAAwB,EAAE;AAC3E,YAAY,wBAAwB,EAAE,OAAO,OAAO,KAAK;AACzD,gBAAgB,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK;AACpD,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAClH,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,SAAS;AACT,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;AACvD,YAAY,wBAAwB,EAAE,OAAO,SAAS,EAAE,OAAO,KAAK;AACpE,gBAAgB,MAAM,IAAI,CAAC,YAAY,EAAE;AACzC,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY;AACrD,oBAAoB,MAAM,IAAI,GAAG,IAAI,CAAC,gCAAgC,CAAC,SAAS,EAAE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAC1H,oBAAoB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5D,wBAAwB,aAAa,EAAE,CAAC,MAAM,KAAK;AACnD,4BAA4B,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC;AAChE,gCAAgC,GAAG,MAAM,CAAC,MAAM,EAAE;AAClD,gCAAgC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC;AACrF,6BAA6B,CAAC;AAC9B,4BAA4B,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AACjG,wBAAwB;AACxB,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,IAAI,CAAC,YAAY,EAAE;AAC7C,oBAAoB,OAAO;AAC3B,wBAAwB,IAAI;AAC5B,wBAAwB;AACxB,qBAAqB;AACrB,gBAAgB,CAAC,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,MAAM,EAAE,IAAI,CAAC;AACzB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE;AAChD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC;AAC/C,YAAY,EAAE,EAAE,IAAI;AACpB,YAAY,MAAM,EAAE,IAAI,CAAC;AACzB,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,KAAK;AACrD,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,aAAa,EAAE,UAAU,IAAI,KAAK;AACtD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,IAAI,CAAC,eAAe;AAClC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,CAAC,OAAO,EAAE;AACpC,QAAQ,MAAM,MAAM,GAAG,OAAO,YAAY,WAAW,GAAG,OAAO,GAAG,OAAO,EAAE,MAAM;AACjF,QAAQ,MAAM,QAAQ,GAAG,OAAO,IAAI,UAAU,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS;AACxF,QAAQ,MAAM,aAAa,GAAG,QAAQ,KAAK;AAC3C,cAAc,CAAC,MAAM,KAAK,MAAM,CAAC;AACjC,cAAc,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,SAAS;AACtE,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC;AACxD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE;AAC3C,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AAC3C,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAClD,gBAAgB,aAAa,EAAE,CAAC,MAAM,KAAK;AAC3C,oBAAoB,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;AAC3C,wBAAwB,KAAK,EAAE;AAC/B,oBAAoB;AACpB,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,SAAS,KAAK,GAAG;AAC7B,gBAAgB,OAAO,EAAE;AACzB,gBAAgB,OAAO,EAAE;AACzB,YAAY;AACZ,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE;AACjC,gBAAgB,KAAK,EAAE;AACvB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;AACxD,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,MAAM,IAAI,CAAC,WAAW,EAAE;AAChC,QAAQ,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;AAC9C,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACpD,QAAQ,MAAM,IAAI,CAAC,wBAAwB,EAAE;AAC7C,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gCAAgC,CAAC;AACrE,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,WAAW,IAAI,CAAC;AACzD,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0CAA0C,CAAC;AACnG,YAAY,IAAI,CAAC,UAAU,GAAG,OAAO;AACrC,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,0DAA0D,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACrG,QAAQ;AACR,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI;AACZ,YAAY,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO;AACvD,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;AAC3B,iBAAiB,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxC,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,mEAAmE,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3I,QAAQ;AACR;AACA,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACtG,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,mEAAmE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACpH,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,wBAAwB,GAAG;AACrC,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,6CAA6C,CAAC;AAC7F,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,QAAQ,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC;AAC7C,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC1C,YAAY,GAAG,cAAc,CAAC,MAAM;AACpC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AACxD,YAAY,IAAI,CAAC,aAAa,GAAG,aAAa;AAC9C,YAAY,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/E,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,MAAM,EAAE;AAC/B,QAAQ,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC3C,YAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AACnE,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,CAAC,QAAQ,EAAE;AAC7B,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE,EAAE,CAAC;AAC9F,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oCAAoC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjH,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC3C,QAAQ,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;AACvE,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,YAAY,EAAE;AAClC,IAAI;AACJ;AACA,IAAI,yBAAyB,CAAC,OAAO,EAAE;AACvC,QAAQ,OAAO;AACf,YAAY,GAAG,OAAO;AACtB,YAAY,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,sBAAsB;AACjI,YAAY,oBAAoB,EAAE,OAAO,EAAE,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI;AACxG,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,KAAK,CAAC,OAAO,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,QAAQ,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC5D,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,eAAe,GAAG,OAAO,IAAI,EAAE;AAC7C,QAAQ,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/D,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;AACzE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;AAClD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,kBAAkB,CAAC,OAAO,GAAG,gCAAgC,EAAE;AACzE,QAAQ,MAAM,IAAI,CAAC,UAAU,EAAE;AAC/B,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO;AACtC;AACA,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AAC3D,YAAY,MAAM,EAAE,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC;AACtF,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,CAAC,OAAO,GAAG,+BAA+B,EAAE;AAC3D,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,IAAI,CAAC;AACtE,QAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO;AACtC,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,IAAI,CAAC,UAAU,EAAE;AACnC,QAAQ;AACR,QAAQ,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAC5C,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC;AACrE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,CAAC,WAAW,EAAE;AAC3C,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK;AAClD,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,oEAAoE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9I,gBAAgB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,gBAAgB,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC;AAC5E,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,8BAA8B,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AACxG,gBAAgB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,gBAAgB,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAC5D,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,KAAK,GAAG,wBAAwB,EAAE;AACzD,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,4BAA4B,EAAE,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACpI,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AACrE,QAAQ,IAAI,QAAQ,GAAG,KAAK;AAC5B,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE;AAChC,YAAY,GAAG,CAAC,GAAG,EAAE;AACrB,YAAY,QAAQ,GAAG,IAAI;AAC3B,QAAQ;AACR,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;AAC7B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC,QAAQ,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACjI,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,sBAAsB,GAAG;AACnC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,EAAE;AAC1E,QAAQ,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK;AAC5C,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,OAAO;AACf,YAAY,CAAC,mBAAmB,GAAG,MAAM;AACzC,gBAAgB,IAAI,cAAc,GAAG,EAAE;AACvC,gBAAgB,MAAM,GAAG,GAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,EAAE,YAAY;AACtC,wBAAwB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;AACjG,wBAAwB,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;AACzD,4BAA4B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9D,wBAAwB;AACxB,wBAAwB,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1F,wBAAwB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5D,wBAAwB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa;AACvD,wBAAwB,cAAc,GAAG,IAAI,CAAC,QAAQ;AACtD,wBAAwB,OAAO;AAC/B,4BAA4B,IAAI,EAAE,KAAK;AACvC,4BAA4B,KAAK,EAAE,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,IAAI;AACxJ,yBAAyB;AACzB,oBAAoB;AACpB,iBAAiB;AACjB,YAAY;AACZ,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE;AACtD,IAAI;AACJ,IAAI,MAAM,oBAAoB,CAAC,YAAY,EAAE,eAAe,EAAE;AAC9D,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AACnD,YAAY,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AACjG,YAAY,IAAI,eAAe,EAAE;AACjC,gBAAgB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/F,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AACzC,oBAAoB,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,uDAAuD,CAAC,EAAE;AACjI,wBAAwB;AACxB,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,uDAAuD,CAAC,EAAE;AAC7H,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,UAAU;AACxD,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE;AACtC,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC;AACxD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE;AACxC,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC;AAC1D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE;AAClC,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC;AACpD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE;AACvC,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC;AACzD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE;AAC/B,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC;AACjD,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,QAAQ,CAAC,QAAQ,EAAE;AAC7B,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC/C,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,SAAS,CAAC,QAAQ,EAAE;AAC9B,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;AAChD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,uBAAuB,EAAE;AAC3E,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK;AAC3D,YAAY,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;AACjD,YAAY,MAAM,EAAE,CAAC,QAAQ,EAAE;AAC/B,YAAY,OAAO,GAAG;AACtB,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACtC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,uBAAuB,EAAE;AAC5E,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AAC5D,YAAY,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC;AAC1C,YAAY,MAAM,EAAE,CAAC,MAAM,EAAE;AAC7B,YAAY,OAAO,GAAG;AACtB,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACtC,IAAI;AACJ,IAAI,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE;AAC3D,QAAQ,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,UAAU,IAAI,gBAAgB,EAAE;AACxG,YAAY,MAAM,OAAO,GAAG,gBAAgB;AAC5C,YAAY,MAAM,OAAO,GAAG,YAAY;AACxC,YAAY,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5E,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,gBAAgB;AACxC,QAAQ,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC;AACrE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,KAAK,EAAE;AACjB,QAAQ,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK;AACtD,QAAQ,MAAM,eAAe,GAAG;AAChC,YAAY,OAAO,EAAE,OAAO;AAC5B,gBAAgB,GAAG;AACnB,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK;AACpD,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC;AACjE,gBAAgB,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM;AAC3D,YAAY;AACZ,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;AAChD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,OAAO,IAAI,WAAW,CAAC;AAC/B,YAAY,EAAE,EAAE,IAAI;AACpB,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE;AACzD,QAAQ,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE;AACjF,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AACnD,QAAQ;AACR,QAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE;AAC5C;AACA;AACA,QAAQ,MAAM,YAAY,GAAG,IAAI,sBAAsB,CAAC;AACxD,YAAY,EAAE,EAAE,IAAI;AACpB,YAAY,UAAU;AACtB,YAAY,eAAe,EAAE,IAAI;AACjC,YAAY,YAAY,EAAE;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,OAAO,EAAE,OAAO;AACpC,wBAAwB,GAAG,EAAE,GAAG;AAChC,wBAAwB,UAAU,EAAE,UAAU,IAAI;AAClD,qBAAqB,CAAC;AACtB,oBAAoB,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU;AACvE,iBAAiB;AACjB,gBAAgB,cAAc,EAAE,KAAK;AACrC,gBAAgB,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,yBAAyB;AAC5E,gBAAgB,eAAe,EAAE,OAAO,EAAE;AAC1C;AACA,SAAS,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC;AACtD,YAAY,MAAM,EAAE,CAAC,IAAI,KAAK;AAC9B,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B;AACA,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,QAAQ,CAAC,IAAI,CAAC;AAC9B,YAAY,CAAC;AACb,YAAY,OAAO,EAAE,CAAC,KAAK,KAAK;AAChC,gBAAgB,OAAO,CAAC,KAAK,CAAC;AAC9B,YAAY;AACZ,SAAS,CAAC;AACV,QAAQ,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACzD,YAAY,OAAO,EAAE;AACrB,YAAY,YAAY,CAAC,KAAK,EAAE;AAChC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AACtD,QAAQ,OAAO,IAAI,aAAa,CAAC,CAAC,YAAY,KAAK;AACnD,YAAY,MAAM,OAAO,GAAG;AAC5B,gBAAgB,QAAQ,EAAE,CAAC,MAAM,KAAK;AACtC,oBAAoB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,gBAAgB,CAAC;AACjB,gBAAgB,OAAO,EAAE,CAAC,KAAK,KAAK;AACpC,oBAAoB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,gBAAgB;AAChB,aAAa;AACb,YAAY,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;AACrE,YAAY,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC7D,gBAAgB,YAAY,CAAC,IAAI,EAAE;AACnC,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AAClD,QAAQ,MAAM,cAAc,GAAG,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;AACzE,QAAQ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AAC9B,YAAY,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC;AAC7E,YAAY,MAAM,SAAS,GAAG;AAC9B,iBAAiB,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,UAAU,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,IAAI,QAAQ;AACrG,iBAAiB,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;AACrC,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,wGAAwG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACrL,YAAY,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACxC,gBAAgB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACtF,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ,IAAI,QAAQ,CAAC,gBAAgB,EAAE,YAAY,EAAE;AAC7C,QAAQ,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,UAAU,IAAI,gBAAgB,EAAE;AACxG,YAAY,MAAM,OAAO,GAAG,gBAAgB;AAC5C,YAAY,MAAM,OAAO,GAAG,YAAY;AACxC,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC9D,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,gBAAgB;AACxC,QAAQ,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;AACvD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE;AAC3C,QAAQ,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE;AACjF,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AACnD,QAAQ;AACR,QAAQ,MAAM,eAAe,GAAG,OAAO,IAAI,EAAE;AAC7C,QAAQ,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClJ,QAAQ,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE;AACvC,QAAQ,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,IAAI,yBAAyB;AAClF,QAAQ,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,KAAK;AAC7D,YAAY,MAAM,QAAQ,CAAC,CAAC,CAAC;AAC7B,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,YAAY,KAAK;AACjI,YAAY,IAAI,eAAe,EAAE,MAAM,EAAE,OAAO;AAChD,gBAAgB;AAChB,YAAY,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAC9D,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;AACvB,QAAQ,IAAI,OAAO,EAAE,gBAAgB,EAAE;AACvC,YAAY,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AACpD,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACvD,YAAY,aAAa,EAAE,OAAO,MAAM,KAAK;AAC7C,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC;AACnE,oBAAoB,iBAAiB,EAAE;AACvC,gBAAgB;AAChB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,OAAO,GAAG,KAAK,CAAC;AACpC,gBAAgB;AAChB,YAAY;AACZ,SAAS,CAAC;AACV,QAAQ,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAChE,YAAY,QAAQ,CAAC,OAAO,EAAE;AAC9B,YAAY,OAAO,EAAE;AACrB,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,MAAM,OAAO,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0BAA0B,CAAC,OAAO,EAAE;AACxC,QAAQ,MAAM,eAAe,GAAG,OAAO,IAAI,EAAE;AAC7C,QAAQ,OAAO,IAAI,aAAa,CAAC,CAAC,YAAY,KAAK;AACnD,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC;AACtD,gBAAgB,QAAQ,EAAE,CAAC,KAAK,KAAK;AACrC,oBAAoB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,gBAAgB,CAAC;AACjB,gBAAgB,OAAO,EAAE,CAAC,KAAK,KAAK;AACpC,oBAAoB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,gBAAgB;AAChB,aAAa,EAAE,OAAO,CAAC;AACvB,YAAY,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACpE,gBAAgB,YAAY,CAAC,IAAI,EAAE;AACnC;AACA,YAAY,CAAC,CAAC;AACd,YAAY,OAAO,MAAM,OAAO,EAAE;AAClC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,kBAAkB,CAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE;AACxE,QAAQ,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE;AACpC,YAAY,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjH,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;AACrC,gBAAgB,iBAAiB,CAAC,YAAY,CAAC;AAC/C,YAAY;AACZ,QAAQ;AACR,QAAQ,aAAa,CAAC,KAAK,EAAE;AAC7B,IAAI;AACJ,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,EAAE;AAC3D,QAAQ,MAAM,MAAM,GAAG,2BAA2B,CAAC,kBAAkB;AACrE,cAAc,kBAAkB,CAAC;AACjC,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC;AACxC,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AACpC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE;AACvC,QAAQ,MAAM,IAAI,CAAC,YAAY,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI;AACJ;;ACv8BO,MAAM,oCAAoC,CAAC;AAClD,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7F,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;AAClC,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;AACnC,YAAY,GAAG,IAAI,CAAC;AACpB,SAAS;AACT,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC7C,IAAI;AACJ;;ACvBO,SAAS,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE;AACzD,IAAI,MAAM,mBAAmB,GAAG,MAAM;AACtC,QAAQ,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE;AACrD,QAAQ,IAAI,qBAAqB,GAAG,IAAI;AACxC,QAAQ,MAAM,YAAY,GAAG,MAAM;AACnC,YAAY,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC;AACpD,YAAY,qBAAqB,IAAI;AACrC,YAAY,qBAAqB,GAAG,IAAI;AACxC;AACA,YAAY,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC;AACvE,QAAQ,CAAC;AACT,QAAQ,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC;AAChE,QAAQ,qBAAqB,GAAG,EAAE,CAAC,gBAAgB,CAAC;AACpD,YAAY,aAAa,EAAE,YAAY;AACvC,gBAAgB,YAAY,EAAE;AAC9B;AACA,gBAAgB,UAAU,CAAC,MAAM,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAC1D,YAAY;AACZ,SAAS,CAAC;AACV,QAAQ,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;AACxC,IAAI,CAAC;AACL,IAAI,mBAAmB,EAAE;AACzB;;ACrBO,SAAS,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AAClE,IAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE;AAC5D,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG,OAAO,WAAW,KAAK;AAC9C,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE;AACzC,YAAY,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;AAC/F;AACA,YAAY,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;AAChD,YAAY,QAAQ,CAAC,MAAM,CAAC;AAC5B,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,gBAAgB,QAAQ,EAAE,YAAY;AACtC,oBAAoB,IAAI;AACxB,wBAAwB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;AAC5D,wBAAwB,QAAQ,CAAC,MAAM,CAAC;AACxC,oBAAoB;AACpB,oBAAoB,OAAO,KAAK,EAAE;AAClC,wBAAwB,OAAO,CAAC,KAAK,CAAC;AACtC,oBAAoB;AACpB,gBAAgB,CAAC;AACjB,gBAAgB;AAChB,aAAa,EAAE;AACf,gBAAgB,IAAI,OAAO,IAAI,EAAE,CAAC;AAClC,gBAAgB,MAAM,EAAE,cAAc;AACtC;AACA,gBAAgB,MAAM,EAAE;AACxB,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC;AAC1B,QAAQ;AACR,IAAI,CAAC;AACL,IAAI,iBAAiB,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC;AAC9C;;ACpCY,MAAC,SAAS,GAAG;;ACMlB,MAAM,mBAAmB,SAAS,YAAY,CAAC;AACtD,IAAI,EAAE;AACN,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAClB,IAAI,SAAS;AACb,IAAI,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE;AAChE,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACtC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE;AACnC,QAAQ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,gBAAgB,CAAC;AAClD,YAAY,aAAa,EAAE,CAAC,MAAM,KAAK;AACvC,gBAAgB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAC1D,gBAAgB,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAC3D,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC;AAClE,gBAAgB;AAChB,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACtC,QAAQ,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,2EAA2E,CAAC,CAAC;AACrI,QAAQ,KAAK,MAAM,GAAG,IAAI,iBAAiB,IAAI,EAAE,EAAE;AACnD,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACzC,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,CAAC,cAAc,IAAI;AAC/B,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,2CAA2C,CAAC;AAClF,QAAQ,OAAO,GAAG,CAAC,WAAW,CAAC;AAC/B,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AAChD,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ;AACA;AACA;AACA,IAAI,YAAY,GAAG,EAAE;AACrB,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qHAAqH,CAAC;AAClK,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,MAAM,0BAA0B,GAAG;AACvC,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,8DAA8D,CAAC;AACzG,QAAQ,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACxH,IAAI;AACJ,IAAI,MAAM,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,EAAE;AACtD,QAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AAClD,YAAY,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE;AAC3C,gBAAgB,MAAM,EAAE,CAAC,OAAO,CAAC,yDAAyD,EAAE;AAC5F,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE;AAC1E,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iCAAiC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/G,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,aAAa,CAAC,OAAO,EAAE;AACjC,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,YAAY,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAC3C,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,MAAM,EAAE;AAC/B,QAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AAClD,YAAY,MAAM,EAAE,CAAC,OAAO,CAAC,yDAAyD,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAClH,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3D,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,8CAA8C,CAAC,CAAC;AACrF,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,IAAI;AAC7C,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,IAAI,CAAC,iBAAiB,GAAG,IAAI;AACzC,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE;AAClD,QAAQ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC;AACpE,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;AAChC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,kBAAkB,CAAC;AAC3E,YAAY,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,IAAI,EAAE,EAAE;AACxD,gBAAgB,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1C,YAAY;AACZ,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EAAE;AACrG,QAAQ;AACR,QAAQ,IAAI,QAAQ,IAAI,IAAI,EAAE;AAC9B,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,+BAA+B,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AACxF,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,2CAA2C,EAAE,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1H,QAAQ;AACR,QAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO;AACxC,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;AACpC,YAAY,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACxD,QAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AAClD,YAAY,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,0FAA0F,CAAC,EAAE;AAC3H,gBAAgB,UAAU,CAAC,UAAU;AACrC,gBAAgB,IAAI,CAAC,SAAS,CAAC,WAAW;AAC1C,aAAa,CAAC;AACd,YAAY,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,gBAAgB,EAAE;AACjE,gBAAgB,MAAM,EAAE,CAAC,OAAO,CAAC,yDAAyD,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC1H,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC/E,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;AAC1D,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,eAAe,EAAE;AAC7B,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,wBAAwB,CAAC,UAAU,EAAE,QAAQ,EAAE;AACzD,QAAQ,IAAI,GAAG,GAAG,EAAE;AACpB,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;AACpC,YAAY,MAAM,eAAe,GAAG,EAAE;AACtC,YAAY,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE;AACnD,gBAAgB,IAAI,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;AACzD,oBAAoB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACrD,gBAAgB;AAChB,YAAY;AACZ,YAAY,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACxE,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AACnD,YAAY,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,yDAAyD,EAAE;AACrH,gBAAgB,YAAY;AAC5B,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,IAAI,MAAM,IAAI,CAAC,EAAE;AAC7B,gBAAgB,IAAI,QAAQ,IAAI,IAAI,EAAE;AACtC,oBAAoB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH;AACA,oBAAoB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;AACzE,oBAAoB,MAAM,EAAE,CAAC,OAAO,CAAC,oHAAoH,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC9L,gBAAgB;AAChB,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE;AAClD,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;AACpC;AACA,YAAY,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnG,YAAY,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/D,QAAQ;AACR,QAAQ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mDAAmD,EAAE;AAC9F,YAAY,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,UAAU,EAAE;AAC5C,SAAS,CAAC;AACV,QAAQ,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,OAAO;AACnB,gBAAgB,eAAe,EAAE,KAAK;AACtC,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,kBAAkB,EAAE;AACpC,aAAa;AACb,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvD,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAY,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;AACzD,QAAQ;AACR,aAAa;AACb,YAAY,OAAO;AACnB,gBAAgB,eAAe,EAAE,KAAK;AACtC,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,kBAAkB,EAAE,MAAM,CAAC,gBAAgB;AAC3D,aAAa;AACb,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,EAAE,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,2FAA2F,EAAE,CAAC,SAAS,CAAC,CAAC;AAClJ,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AACzB;AACA,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,wDAAwD,CAAC;AACjG,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;AACxB;AACA,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,QAAQ,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AACnD,YAAY,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC;AAC7E,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;AACtC;AACA,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,yCAAyC,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;AACjH,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC;AACjG,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE;AAClC;AACA,gBAAgB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AACtE,YAAY;AACZ,YAAY,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpD,YAAY,IAAI,QAAQ,IAAI,SAAS,EAAE;AACvC,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,wCAAwC,EAAE,IAAI,CAAC,+CAA+C,CAAC,CAAC;AACnI;AACA,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,YAAY,MAAM,EAAE,CAAC,OAAO,CAAC,0EAA0E,EAAE,CAAC,IAAI,CAAC,CAAC;AAChH,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,+CAA+C,CAAC;AAC/F,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AACtC,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,+BAA+B,CAAC;AAClF,QAAQ,OAAO,CAAC,CAAC,OAAO;AACxB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,KAAK,GAAG,GAAG,EAAE;AACpC,QAAQ,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACrC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,+CAA+C,EAAE,CAAC,KAAK,CAAC,CAAC;AACzG,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AACtC,YAAY,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ;AACR,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,GAAG;AACrB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE,OAAO,eAAe,KAAK;AACjD,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AAC3D,oBAAoB,MAAM,EAAE,CAAC,OAAO,CAAC,mCAAmC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1F,oBAAoB,IAAI,eAAe,EAAE;AACzC,wBAAwB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC;AAC5F,wBAAwB,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;AACrD,4BAA4B,MAAM,EAAE,CAAC,OAAO,CAAC,0EAA0E,EAAE;AACzH,gCAAgC;AAChC,6BAA6B,CAAC;AAC9B,wBAAwB;AACxB,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,MAAM,EAAE,CAAC,OAAO,CAAC,0EAA0E,EAAE;AACrH,4BAA4B,IAAI,CAAC,UAAU;AAC3C,yBAAyB,CAAC;AAC1B,oBAAoB;AACpB,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC1D,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,CAAC,UAAU,EAAE;AAC1C;AACA,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AACzD,YAAY,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,gCAAgC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAChG,YAAY,OAAO,GAAG;AACtB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,uDAAuD,EAAE;AACjG,YAAY,mBAAmB,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,OAAO,CAAC,IAAI,CAAC;AACrB,IAAI;AACJ,IAAI,MAAM,qBAAqB,GAAG;AAClC,QAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;AAClD,YAAY,MAAM,EAAE,CAAC,OAAO,CAAC,yEAAyE,CAAC;AACvG,YAAY,MAAM,EAAE,CAAC,OAAO,CAAC,0DAA0D,EAAE;AACzF,gBAAgB,mBAAmB,CAAC,mBAAmB;AACvD,gBAAgB;AAChB,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,mBAAmB,GAAG,+BAA+B;AAChE;AACA,SAAS,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC/C,IAAI,OAAO,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ;AACjE;;ACjUA;AACO,MAAM,aAAa,CAAC;AAC3B,IAAI,OAAO;AACX,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE;AAC1B,QAAQ,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9F,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ;;ACVA;AACU,IAAC;AACX,CAAC,UAAU,UAAU,EAAE;AACvB,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM;AAC/B,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS;AACrC,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM;AAC/B,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG;AACb,IAAI,IAAI,EAAE,UAAU,CAAC;AACrB,CAAC;AACD,MAAM,OAAO,GAAG;AAChB,IAAI,IAAI,EAAE,UAAU,CAAC;AACrB,CAAC;AACD,MAAM,IAAI,GAAG;AACb,IAAI,IAAI,EAAE,UAAU,CAAC;AACrB,CAAC;AACD;AACA;AACY,MAAC,qBAAqB,GAAG;AACzB,MAAC,MAAM,GAAG;AACtB,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI;AACJ;AACO,MAAM,MAAM,CAAC;AACpB,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;AAChC,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;AAChC,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,IAAI,EAAE,IAAI,CAAC;AACvB,SAAS;AACT,IAAI;AACJ;;ACxCY,MAAC,4BAA4B,GAAG;AAC5C,IAAI,SAAS,EAAE;AACf;AACO,MAAM,aAAa,CAAC;AAC3B,IAAI,OAAO;AACX,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE;AACnC,QAAQ,OAAO,IAAI,aAAa,CAAC;AACjC,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,SAAS,EAAE;AACvB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,4BAA4B,EAAE,GAAG,OAAO,EAAE;AACtE,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;AAChC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI;AACJ,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,UAAU,CAAC;AAChG,SAAS;AACT,IAAI;AACJ;;AC3BY,MAAC,qBAAqB,GAAG;AACrC,IAAI,OAAO,EAAE;AACb;AACO,MAAM,KAAK,CAAC;AACnB,IAAI,OAAO;AACX,IAAI,OAAO,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE;AACjD,QAAQ,OAAO,IAAI,KAAK,CAAC;AACzB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC;AAClF,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,OAAO,EAAE;AAC/D,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;AAChC,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE;AACzC,IAAI;AACJ,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5D,SAAS;AACT,IAAI;AACJ;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,QAAQ,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,MAAM;AACV,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACjC,IAAI;AACJ;;AC9BA;AACA;AACA;AACO,MAAM,MAAM,CAAC;AACpB;AACA;AACA;AACA,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACxC,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE;AACvC,oBAAoB,MAAM,IAAI,KAAK,CAAC,2KAA2K,CAAC;AAChN,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM;AAChC,QAAQ;AACR,aAAa;AACb;AACA,YAAY,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3I,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACnD,QAAQ;AACR,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;AAC3B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,MAAM,EAAE;AAC1B,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzE,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACvE,QAAQ;AACR,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AACzC,YAAY,KAAK,CAAC,QAAQ,EAAE;AAC5B,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,YAAY,UAAU,EAAE,IAAI,CAAC;AAC7B,SAAS;AACT,IAAI;AACJ;;ACxDY,MAAC,qBAAqB,GAAG;AACrC,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,UAAU,EAAE,KAAK;AACrB,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,kBAAkB,EAAE;AACxB;AACY,MAAC,oBAAoB,GAAG;AAC7B,MAAM,KAAK,CAAC;AACnB,IAAI,OAAO;AACX,IAAI,cAAc;AAClB,IAAI,OAAO,eAAe,CAAC,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC5E,IAAI;AACJ,IAAI,OAAO,gBAAgB,CAAC,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC5E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;AACpC,QAAQ,OAAO,IAAI,KAAK,CAAC;AACzB,YAAY,IAAI;AAChB,YAAY,OAAO,EAAE,KAAK,CAAC,OAAO;AAClC,YAAY,OAAO,EAAE,KAAK,CAAC,OAAO;AAClC,YAAY,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;AAC9C,YAAY,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;AAChD,YAAY,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;AACpC,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,gBAAgB,EAAE,SAAS,EAAE;AAC7C,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;AAC9C,YAAY,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;AAC9C,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,SAAS,CAAC;AACzD,QAAQ;AACR,IAAI;AACJ,IAAI,YAAY,CAAC,IAAI,EAAE;AACvB,QAAQ,OAAO,IAAI,KAAK,CAAC;AACzB,YAAY,GAAG,IAAI,CAAC,OAAO;AAC3B,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,QAAQ,OAAO,SAAS,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7D,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI;AACxC,SAAS;AACT,QAAQ,IAAI,CAAC,mBAAmB,EAAE;AAClC,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE;AAClC,QAAQ,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACjI,QAAQ,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,IAAI,KAAK,CAAC;AAC/G,YAAY,IAAI;AAChB,YAAY,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,aAAa,CAAC;AACjE,gBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5C,gBAAgB,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG;AAC/C,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,OAAO,EAAE,gBAAgB;AACrC,YAAY,OAAO,EAAE,gBAAgB;AACrC,YAAY,QAAQ,EAAE,OAAO,EAAE,QAAQ;AACvC,YAAY,UAAU,EAAE,OAAO,EAAE,UAAU;AAC3C,YAAY,SAAS,EAAE,OAAO,EAAE,SAAS;AACzC,YAAY,aAAa,EAAE,OAAO,EAAE,aAAa;AACjD,YAAY,aAAa,EAAE,OAAO,EAAE,aAAa;AACjD,YAAY,kBAAkB,EAAE,OAAO,EAAE;AACzC,SAAS;AACT,QAAQ,IAAI,CAAC,mBAAmB,EAAE;AAClC,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO;AACrC,IAAI;AACJ,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,qBAAqB,CAAC,UAAU;AACpE,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,qBAAqB,CAAC,SAAS;AAClE,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,qBAAqB,CAAC,aAAa;AAC1E,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,qBAAqB,CAAC,aAAa;AAC1E,QAAQ,IAAI,CAAC,OAAO,CAAC,kBAAkB,KAAK,qBAAqB,CAAC,kBAAkB;AACpF,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;AAChC,IAAI;AACJ,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ;AACpC,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI;AACjD,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;AACnC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,QAAQ,IAAI,CAAC,cAAc;AACnC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK;AAClD,gBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE;AAC5E,gBAAgB,OAAO,IAAI;AAC3B,YAAY,CAAC,EAAE,EAAE,CAAC;AAClB,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE;AACzC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU;AACtC,IAAI;AACJ,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa;AACzC,IAAI;AACJ,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa;AACzC,IAAI;AACJ,IAAI,IAAI,kBAAkB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB;AAC9C,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACpC,YAAY,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAQ;AACR,QAAQ,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClD,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/F,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,gBAAgB,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACvF,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,iCAAiC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACxF,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,qBAAqB,EAAE;AACzD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,6DAA6D,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrH,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;AAClD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,6CAA6C,CAAC,CAAC;AAC5E,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AAC3D,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,+CAA+C,CAAC,CAAC;AAC9E,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AACrC,QAAQ,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,QAAQ,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AAC3C,YAAY,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM;AAC/C,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;AACtC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,wEAAwE,CAAC,CAAC;AAC3G,YAAY;AACZ,YAAY,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC7C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,YAAY;AACZ,YAAY,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvD,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,mCAAmC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,YAAY;AACZ,YAAY,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;AACvC,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE;AACpC,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1C,YAAY,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC5C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,YAAY;AACZ,YAAY,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACvD,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,YAAY;AACZ,YAAY,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AAChD,gBAAgB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACnD,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9F,gBAAgB;AAChB,YAAY;AACZ,YAAY,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACtC,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa;AAChD,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,SAAS,EAAE,IAAI,CAAC,QAAQ;AACpC,YAAY,UAAU,EAAE,IAAI,CAAC,SAAS;AACtC,YAAY,WAAW,EAAE,IAAI,CAAC,UAAU;AACxC,YAAY,WAAW,EAAE,aAAa,KAAK,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC;AACzE,YAAY,6BAA6B,EAAE,OAAO,aAAa,IAAI,QAAQ,IAAI,aAAa,CAAC,eAAe,IAAI,IAAI;AACpH,YAAY,gBAAgB,EAAE,IAAI,CAAC,aAAa;AAChD,YAAY,mBAAmB,EAAE,IAAI,CAAC,kBAAkB;AACxD,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AACxD,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3D,SAAS;AACT,IAAI;AACJ;;AC7MA;AACA;AACA;AACA;AACA;AACO,MAAM,OAAO,SAAS,KAAK,CAAC;AACnC;;ACPA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,CAAC,IAAI,EAAE;AACnC,IAAI,MAAM,SAAS,GAAG,4EAA4E;AAClG,IAAI,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACtD,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE;AAChD,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AAChC,QAAQ,MAAM,IAAI,GAAG;AACrB,QAAQ,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;AAC/B;AACA,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AACnC,YAAY,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAC1C,gBAAgB,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC;AAC/C,YAAY;AACZ,iBAAiB,IAAI,KAAK,IAAI,IAAI,EAAE;AACpC,gBAAgB,MAAM,IAAI,MAAM;AAChC,YAAY;AACZ,iBAAiB,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAC/C;AACA,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACzD,gBAAgB,MAAM,IAAI,cAAc,CAAC,WAAW,CAAC;AACrD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,KAAK;AAC/B,YAAY;AACZ,QAAQ;AACR,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,MAAM;AACjB;;ACnEA;AACA;AACA;AACO,MAAM,WAAW,CAAC;AACzB,IAAI,OAAO;AACX,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;AACjC,YAAY,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI;AACnD,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO;AAC9B,QAAQ,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AACvD,QAAQ,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;AAC/D,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACjC,YAAY,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACrD,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ;;ACtBA,MAAM,WAAW,GAAG,MAAM;AACd,MAAC,QAAQ,GAAG;AACxB,IAAI,KAAK,EAAE,WAAW,CAAC,KAAK;AAC5B,IAAI,KAAK,EAAE,WAAW,CAAC,KAAK;AAC5B,IAAI,IAAI,EAAE,WAAW,CAAC,IAAI;AAC1B,IAAI,IAAI,EAAE,WAAW,CAAC,IAAI;AAC1B,IAAI,IAAI,EAAE,WAAW,CAAC,IAAI;AAC1B,IAAI,KAAK,EAAE,WAAW,CAAC,KAAK;AAC5B,IAAI,GAAG,EAAE,WAAW,CAAC;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG;AACnC,IAAI,OAAO,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;AACjD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1B,QAAQ,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzC,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB;;ACnCY,MAAC,UAAU,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AACjD,IAAI,IAAI,YAAY;AACpB,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAClC,QAAQ,YAAY,GAAG,KAAK;AAC5B,IAAI;AACJ,SAAS;AACT,QAAQ,MAAM,uBAAuB,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;AAC7D,QAAQ,IAAI,uBAAuB,EAAE;AACrC,YAAY,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AAC9E,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE;AACxC,QAAQ,YAAY,GAAG,QAAQ,CAAC,GAAG;AACnC,QAAQ,UAAU,GAAG,QAAQ,CAAC,UAAU;AACxC,IAAI;AACJ,IAAI,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE;AACnD;;;;","x_google_ignoreList":[0,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,45]}
1
+ {"version":3,"file":"bundle.mjs","sources":["../../../node_modules/event-iterator/lib/event-iterator.js","../../../node_modules/event-iterator/lib/dom.js","../../../node_modules/js-logger/src/logger.js","../lib/db/DBAdapter.js","../lib/db/crud/SyncProgress.js","../lib/db/crud/SyncStatus.js","../lib/db/crud/UploadQueueStatus.js","../lib/utils/BaseObserver.js","../lib/utils/ControlledExecutor.js","../lib/utils/async.js","../lib/client/ConnectionManager.js","../lib/client/watched/processors/comparators.js","../lib/utils/MetaBaseObserver.js","../lib/client/watched/WatchedQuery.js","../lib/client/watched/processors/AbstractQueryProcessor.js","../lib/client/watched/processors/DifferentialQueryProcessor.js","../lib/client/watched/processors/OnChangeQueryProcessor.js","../lib/client/CustomQuery.js","../lib/client/SQLOpenFactory.js","../lib/client/sync/bucket/BucketStorageAdapter.js","../lib/client/sync/bucket/CrudBatch.js","../lib/client/sync/bucket/CrudEntry.js","../lib/client/sync/bucket/CrudTransaction.js","../lib/utils/AbortOperation.js","../lib/client/sync/bucket/OpType.js","../lib/client/sync/bucket/OplogEntry.js","../lib/client/sync/bucket/SyncDataBucket.js","../../../node_modules/base64-js/index.js","../../../node_modules/ieee754/index.js","../node_modules/buffer/index.js","../../../node_modules/buffer/index.js","../../../node_modules/rsocket-core/dist/Frames.js","../../../node_modules/rsocket-core/dist/Codecs.js","../../../node_modules/rsocket-core/dist/Common.js","../../../node_modules/rsocket-core/dist/Deferred.js","../../../node_modules/rsocket-core/dist/Errors.js","../../../node_modules/rsocket-core/dist/RSocket.js","../../../node_modules/rsocket-core/dist/ClientServerMultiplexerDemultiplexer.js","../../../node_modules/rsocket-core/dist/Fragmenter.js","../../../node_modules/rsocket-core/dist/Reassembler.js","../../../node_modules/rsocket-core/dist/RequestChannelStream.js","../../../node_modules/rsocket-core/dist/RequestFnFStream.js","../../../node_modules/rsocket-core/dist/RequestResponseStream.js","../../../node_modules/rsocket-core/dist/RequestStreamStream.js","../../../node_modules/rsocket-core/dist/RSocketSupport.js","../../../node_modules/rsocket-core/dist/Resume.js","../../../node_modules/rsocket-core/dist/RSocketConnector.js","../../../node_modules/rsocket-core/dist/RSocketServer.js","../../../node_modules/rsocket-core/dist/Transport.js","../../../node_modules/rsocket-core/dist/index.js","../lib/utils/DataStream.js","../../../node_modules/rsocket-websocket-client/dist/WebsocketDuplexConnection.js","../lib/client/sync/stream/WebsocketClientTransport.js","../lib/client/sync/stream/AbstractRemote.js","../lib/client/sync/stream/core-instruction.js","../lib/client/sync/stream/streaming-sync-types.js","../lib/client/sync/stream/AbstractStreamingSyncImplementation.js","../lib/client/triggers/TriggerManager.js","../lib/client/triggers/TriggerManagerImpl.js","../lib/client/AbstractPowerSyncDatabase.js","../lib/client/AbstractPowerSyncOpenFactory.js","../lib/client/runOnSchemaChange.js","../lib/client/compilableQueryWatch.js","../lib/client/constants.js","../lib/client/sync/bucket/SqliteBucketStorage.js","../lib/client/sync/bucket/SyncDataBatch.js","../lib/db/schema/Column.js","../lib/db/schema/IndexedColumn.js","../lib/db/schema/Index.js","../lib/db/schema/RawTable.js","../lib/db/schema/Schema.js","../lib/db/schema/Table.js","../lib/db/schema/TableV2.js","../lib/client/triggers/sanitizeSQL.js","../lib/client/watched/GetAllQuery.js","../lib/utils/Logger.js","../lib/utils/parseQuery.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass EventQueue {\n constructor() {\n this.pullQueue = [];\n this.pushQueue = [];\n this.eventHandlers = {};\n this.isPaused = false;\n this.isStopped = false;\n }\n push(value) {\n if (this.isStopped)\n return;\n const resolution = { value, done: false };\n if (this.pullQueue.length) {\n const placeholder = this.pullQueue.shift();\n if (placeholder)\n placeholder.resolve(resolution);\n }\n else {\n this.pushQueue.push(Promise.resolve(resolution));\n if (this.highWaterMark !== undefined &&\n this.pushQueue.length >= this.highWaterMark &&\n !this.isPaused) {\n this.isPaused = true;\n if (this.eventHandlers.highWater) {\n this.eventHandlers.highWater();\n }\n else if (console) {\n console.warn(`EventIterator queue reached ${this.pushQueue.length} items`);\n }\n }\n }\n }\n stop() {\n if (this.isStopped)\n return;\n this.isStopped = true;\n this.remove();\n for (const placeholder of this.pullQueue) {\n placeholder.resolve({ value: undefined, done: true });\n }\n this.pullQueue.length = 0;\n }\n fail(error) {\n if (this.isStopped)\n return;\n this.isStopped = true;\n this.remove();\n if (this.pullQueue.length) {\n for (const placeholder of this.pullQueue) {\n placeholder.reject(error);\n }\n this.pullQueue.length = 0;\n }\n else {\n const rejection = Promise.reject(error);\n /* Attach error handler to avoid leaking an unhandled promise rejection. */\n rejection.catch(() => { });\n this.pushQueue.push(rejection);\n }\n }\n remove() {\n Promise.resolve().then(() => {\n if (this.removeCallback)\n this.removeCallback();\n });\n }\n [Symbol.asyncIterator]() {\n return {\n next: (value) => {\n const result = this.pushQueue.shift();\n if (result) {\n if (this.lowWaterMark !== undefined &&\n this.pushQueue.length <= this.lowWaterMark &&\n this.isPaused) {\n this.isPaused = false;\n if (this.eventHandlers.lowWater) {\n this.eventHandlers.lowWater();\n }\n }\n return result;\n }\n else if (this.isStopped) {\n return Promise.resolve({ value: undefined, done: true });\n }\n else {\n return new Promise((resolve, reject) => {\n this.pullQueue.push({ resolve, reject });\n });\n }\n },\n return: () => {\n this.isStopped = true;\n this.pushQueue.length = 0;\n this.remove();\n return Promise.resolve({ value: undefined, done: true });\n },\n };\n }\n}\nclass EventIterator {\n constructor(listen, { highWaterMark = 100, lowWaterMark = 1 } = {}) {\n const queue = new EventQueue();\n queue.highWaterMark = highWaterMark;\n queue.lowWaterMark = lowWaterMark;\n queue.removeCallback =\n listen({\n push: value => queue.push(value),\n stop: () => queue.stop(),\n fail: error => queue.fail(error),\n on: (event, fn) => {\n queue.eventHandlers[event] = fn;\n },\n }) || (() => { });\n this[Symbol.asyncIterator] = () => queue[Symbol.asyncIterator]();\n Object.freeze(this);\n }\n}\nexports.EventIterator = EventIterator;\nexports.default = EventIterator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst event_iterator_1 = require(\"./event-iterator\");\nexports.EventIterator = event_iterator_1.EventIterator;\nfunction subscribe(event, options, evOptions) {\n return new event_iterator_1.EventIterator(({ push }) => {\n this.addEventListener(event, push, options);\n return () => this.removeEventListener(event, push, options);\n }, evOptions);\n}\nexports.subscribe = subscribe;\nexports.default = event_iterator_1.EventIterator;\n","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.6.1\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.TRACE = defineLogLevel(1, 'TRACE');\r\n\tLogger.DEBUG = defineLogLevel(2, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(3, 'INFO');\r\n\tLogger.TIME = defineLogLevel(4, 'TIME');\r\n\tLogger.WARN = defineLogLevel(5, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\t// Gets the current logging level for the logging instance\r\n\t\tgetLevel: function () {\r\n\t\t\treturn this.context.filterLevel;\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\ttrace: function () {\r\n\t\t\tthis.invoke(Logger.TRACE, arguments);\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.trace = bind(globalLogger, globalLogger.trace);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Gets the global logging filter level\r\n\tLogger.getLevel = function() {\r\n\t\treturn globalLogger.getLevel();\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t} else if (context.level === Logger.DEBUG && console.debug) {\r\n\t\t\t\t\thdlr = console.debug;\r\n\t\t\t\t} else if (context.level === Logger.TRACE && console.trace) {\r\n\t\t\t\t\thdlr = console.trace;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Createa an alias to useDefaults to avoid reaking a react-hooks rule.\r\n\tLogger.setDefaults = Logger.useDefaults;\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n","/**\n * Set of generic interfaces to allow PowerSync compatibility with\n * different SQLite DB implementations.\n */\n/**\n * Update table operation numbers from SQLite\n */\nexport var RowUpdateType;\n(function (RowUpdateType) {\n RowUpdateType[RowUpdateType[\"SQLITE_INSERT\"] = 18] = \"SQLITE_INSERT\";\n RowUpdateType[RowUpdateType[\"SQLITE_DELETE\"] = 9] = \"SQLITE_DELETE\";\n RowUpdateType[RowUpdateType[\"SQLITE_UPDATE\"] = 23] = \"SQLITE_UPDATE\";\n})(RowUpdateType || (RowUpdateType = {}));\nexport function isBatchedUpdateNotification(update) {\n return 'tables' in update;\n}\nexport function extractTableUpdates(update) {\n return isBatchedUpdateNotification(update) ? update.tables : [update.table];\n}\n//# sourceMappingURL=DBAdapter.js.map","/**\n * @internal The priority used by the core extension to indicate that a full sync was completed.\n */\nexport const FULL_SYNC_PRIORITY = 2147483647;\n/**\n * Provides realtime progress on how PowerSync is downloading rows.\n *\n * The progress until the next complete sync is available through the fields on {@link ProgressWithOperations},\n * which this class implements.\n * Additionally, the {@link SyncProgress.untilPriority} method can be used to otbain progress towards\n * a specific priority (instead of the progress for the entire download).\n *\n * The reported progress always reflects the status towards the end of a sync iteration (after\n * which a consistent snapshot of all buckets is available locally).\n *\n * In rare cases (in particular, when a [compacting](https://docs.powersync.com/usage/lifecycle-maintenance/compacting-buckets)\n * operation takes place between syncs), it's possible for the returned numbers to be slightly\n * inaccurate. For this reason, {@link SyncProgress} should be seen as an approximation of progress.\n * The information returned is good enough to build progress bars, but not exact enough to track\n * individual download counts.\n *\n * Also note that data is downloaded in bulk, which means that individual counters are unlikely\n * to be updated one-by-one.\n */\nexport class SyncProgress {\n internal;\n totalOperations;\n downloadedOperations;\n downloadedFraction;\n constructor(internal) {\n this.internal = internal;\n const untilCompletion = this.untilPriority(FULL_SYNC_PRIORITY);\n this.totalOperations = untilCompletion.totalOperations;\n this.downloadedOperations = untilCompletion.downloadedOperations;\n this.downloadedFraction = untilCompletion.downloadedFraction;\n }\n /**\n * Returns download progress towards all data up until the specified priority being received.\n *\n * The returned {@link ProgressWithOperations} tracks the target amount of operations that need\n * to be downloaded in total and how many of them have already been received.\n */\n untilPriority(priority) {\n let total = 0;\n let downloaded = 0;\n for (const progress of Object.values(this.internal)) {\n // Include higher-priority buckets, which are represented by lower numbers.\n if (progress.priority <= priority) {\n downloaded += progress.since_last;\n total += progress.target_count - progress.at_last;\n }\n }\n let progress = total == 0 ? 0.0 : downloaded / total;\n return {\n totalOperations: total,\n downloadedOperations: downloaded,\n downloadedFraction: progress\n };\n }\n}\n//# sourceMappingURL=SyncProgress.js.map","import { SyncProgress } from './SyncProgress.js';\nexport class SyncStatus {\n options;\n constructor(options) {\n this.options = options;\n }\n /**\n * Returns the used sync client implementation (either the one implemented in JavaScript or the newer Rust-based\n * implementation).\n *\n * This information is only available after a connection has been requested.\n */\n get clientImplementation() {\n return this.options.clientImplementation;\n }\n /**\n * Indicates if the client is currently connected to the PowerSync service.\n *\n * @returns {boolean} True if connected, false otherwise. Defaults to false if not specified.\n */\n get connected() {\n return this.options.connected ?? false;\n }\n /**\n * Indicates if the client is in the process of establishing a connection to the PowerSync service.\n *\n * @returns {boolean} True if connecting, false otherwise. Defaults to false if not specified.\n */\n get connecting() {\n return this.options.connecting ?? false;\n }\n /**\n * Time that a last sync has fully completed, if any.\n * This timestamp is reset to null after a restart of the PowerSync service.\n *\n * @returns {Date | undefined} The timestamp of the last successful sync, or undefined if no sync has completed.\n */\n get lastSyncedAt() {\n return this.options.lastSyncedAt;\n }\n /**\n * Indicates whether there has been at least one full sync completed since initialization.\n *\n * @returns {boolean | undefined} True if at least one sync has completed, false if no sync has completed,\n * or undefined when the state is still being loaded from the database.\n */\n get hasSynced() {\n return this.options.hasSynced;\n }\n /**\n * Provides the current data flow status regarding uploads and downloads.\n *\n * @returns {SyncDataFlowStatus} An object containing:\n * - downloading: True if actively downloading changes (only when connected is also true)\n * - uploading: True if actively uploading changes\n * Defaults to {downloading: false, uploading: false} if not specified.\n */\n get dataFlowStatus() {\n return (this.options.dataFlow ?? {\n /**\n * true if actively downloading changes.\n * This is only true when {@link connected} is also true.\n */\n downloading: false,\n /**\n * true if uploading changes.\n */\n uploading: false\n });\n }\n /**\n * All sync streams currently being tracked in teh database.\n *\n * This returns null when the database is currently being opened and we don't have reliable information about all\n * included streams yet.\n *\n * @experimental Sync streams are currently in alpha.\n */\n get syncStreams() {\n return this.options.dataFlow?.internalStreamSubscriptions?.map((core) => new SyncStreamStatusView(this, core));\n }\n /**\n * If the `stream` appears in {@link syncStreams}, returns the current status for that stream.\n *\n * @experimental Sync streams are currently in alpha.\n */\n forStream(stream) {\n const asJson = JSON.stringify(stream.parameters);\n const raw = this.options.dataFlow?.internalStreamSubscriptions?.find((r) => r.name == stream.name && asJson == JSON.stringify(r.parameters));\n return raw && new SyncStreamStatusView(this, raw);\n }\n /**\n * Provides sync status information for all bucket priorities, sorted by priority (highest first).\n *\n * @returns {SyncPriorityStatus[]} An array of status entries for different sync priority levels,\n * sorted with highest priorities (lower numbers) first.\n */\n get priorityStatusEntries() {\n return (this.options.priorityStatusEntries ?? []).slice().sort(SyncStatus.comparePriorities);\n }\n /**\n * A realtime progress report on how many operations have been downloaded and\n * how many are necessary in total to complete the next sync iteration.\n *\n * This field is only set when {@link SyncDataFlowStatus#downloading} is also true.\n */\n get downloadProgress() {\n const internalProgress = this.options.dataFlow?.downloadProgress;\n if (internalProgress == null) {\n return null;\n }\n return new SyncProgress(internalProgress);\n }\n /**\n * Reports the sync status (a pair of {@link SyncStatus#hasSynced} and {@link SyncStatus#lastSyncedAt} fields)\n * for a specific bucket priority level.\n *\n * When buckets with different priorities are declared, PowerSync may choose to synchronize higher-priority\n * buckets first. When a consistent view over all buckets for all priorities up until the given priority is\n * reached, PowerSync makes data from those buckets available before lower-priority buckets have finished\n * syncing.\n *\n * This method returns the status for the requested priority or the next higher priority level that has\n * status information available. This is because when PowerSync makes data for a given priority available,\n * all buckets in higher-priorities are guaranteed to be consistent with that checkpoint.\n *\n * For example, if PowerSync just finished synchronizing buckets in priority level 3, calling this method\n * with a priority of 1 may return information for priority level 3.\n *\n * @param {number} priority The bucket priority for which the status should be reported\n * @returns {SyncPriorityStatus} Status information for the requested priority level or the next higher level with available status\n */\n statusForPriority(priority) {\n // priorityStatusEntries are sorted by ascending priorities (so higher numbers to lower numbers).\n for (const known of this.priorityStatusEntries) {\n // We look for the first entry that doesn't have a higher priority.\n if (known.priority >= priority) {\n return known;\n }\n }\n // If we have a complete sync, that necessarily includes all priorities.\n return {\n priority,\n lastSyncedAt: this.lastSyncedAt,\n hasSynced: this.hasSynced\n };\n }\n /**\n * Compares this SyncStatus instance with another to determine if they are equal.\n * Equality is determined by comparing the serialized JSON representation of both instances.\n *\n * @param {SyncStatus} status The SyncStatus instance to compare against\n * @returns {boolean} True if the instances are considered equal, false otherwise\n */\n isEqual(status) {\n /**\n * By default Error object are serialized to an empty object.\n * This replaces Errors with more useful information before serialization.\n */\n const replacer = (_, value) => {\n if (value instanceof Error) {\n return {\n name: value.name,\n message: value.message,\n stack: value.stack\n };\n }\n return value;\n };\n return JSON.stringify(this.options, replacer) == JSON.stringify(status.options, replacer);\n }\n /**\n * Creates a human-readable string representation of the current sync status.\n * Includes information about connection state, sync completion, and data flow.\n *\n * @returns {string} A string representation of the sync status\n */\n getMessage() {\n const dataFlow = this.dataFlowStatus;\n return `SyncStatus<connected: ${this.connected} connecting: ${this.connecting} lastSyncedAt: ${this.lastSyncedAt} hasSynced: ${this.hasSynced}. Downloading: ${dataFlow.downloading}. Uploading: ${dataFlow.uploading}. UploadError: ${dataFlow.uploadError}, DownloadError?: ${dataFlow.downloadError}>`;\n }\n /**\n * Serializes the SyncStatus instance to a plain object.\n *\n * @returns {SyncStatusOptions} A plain object representation of the sync status\n */\n toJSON() {\n return {\n connected: this.connected,\n connecting: this.connecting,\n dataFlow: this.dataFlowStatus,\n lastSyncedAt: this.lastSyncedAt,\n hasSynced: this.hasSynced,\n priorityStatusEntries: this.priorityStatusEntries\n };\n }\n static comparePriorities(a, b) {\n return b.priority - a.priority; // Reverse because higher priorities have lower numbers\n }\n}\nclass SyncStreamStatusView {\n status;\n core;\n subscription;\n constructor(status, core) {\n this.status = status;\n this.core = core;\n this.subscription = {\n name: core.name,\n parameters: core.parameters,\n active: core.active,\n isDefault: core.is_default,\n hasExplicitSubscription: core.has_explicit_subscription,\n expiresAt: core.expires_at != null ? new Date(core.expires_at * 1000) : null,\n hasSynced: core.last_synced_at != null,\n lastSyncedAt: core.last_synced_at != null ? new Date(core.last_synced_at * 1000) : null\n };\n }\n get progress() {\n if (this.status.dataFlowStatus.downloadProgress == null) {\n // Don't make download progress public if we're not currently downloading.\n return null;\n }\n const { total, downloaded } = this.core.progress;\n const progress = total == 0 ? 0.0 : downloaded / total;\n return { totalOperations: total, downloadedOperations: downloaded, downloadedFraction: progress };\n }\n get priority() {\n return this.core.priority;\n }\n}\n//# sourceMappingURL=SyncStatus.js.map","export class UploadQueueStats {\n count;\n size;\n constructor(\n /**\n * Number of records in the upload queue.\n */\n count, \n /**\n * Size of the upload queue in bytes.\n */\n size = null) {\n this.count = count;\n this.size = size;\n }\n toString() {\n if (this.size == null) {\n return `UploadQueueStats<count:${this.count}>`;\n }\n else {\n return `UploadQueueStats<count: $count size: ${this.size / 1024}kB>`;\n }\n }\n}\n//# sourceMappingURL=UploadQueueStatus.js.map","export class BaseObserver {\n listeners = new Set();\n constructor() { }\n dispose() {\n this.listeners.clear();\n }\n /**\n * Register a listener for updates to the PowerSync client.\n */\n registerListener(listener) {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n iterateListeners(cb) {\n for (const listener of this.listeners) {\n cb(listener);\n }\n }\n async iterateAsyncListeners(cb) {\n for (let i of Array.from(this.listeners.values())) {\n await cb(i);\n }\n }\n}\n//# sourceMappingURL=BaseObserver.js.map","export class ControlledExecutor {\n task;\n /**\n * Represents the currently running task, which could be a Promise or undefined if no task is running.\n */\n runningTask;\n pendingTaskParam;\n /**\n * Flag to determine if throttling is enabled, which controls whether tasks are queued or run immediately.\n */\n isThrottling;\n closed;\n constructor(task, options) {\n this.task = task;\n const { throttleEnabled = true } = options ?? {};\n this.isThrottling = throttleEnabled;\n this.closed = false;\n }\n schedule(param) {\n if (this.closed) {\n return;\n }\n if (!this.isThrottling) {\n this.task(param);\n return;\n }\n if (this.runningTask) {\n // set or replace the pending task param with latest one\n this.pendingTaskParam = param;\n return;\n }\n this.execute(param);\n }\n dispose() {\n this.closed = true;\n if (this.runningTask) {\n this.runningTask = undefined;\n }\n }\n async execute(param) {\n this.runningTask = this.task(param);\n await this.runningTask;\n this.runningTask = undefined;\n if (this.pendingTaskParam) {\n const pendingParam = this.pendingTaskParam;\n this.pendingTaskParam = undefined;\n this.execute(pendingParam);\n }\n }\n}\n//# sourceMappingURL=ControlledExecutor.js.map","/**\n * A ponyfill for `Symbol.asyncIterator` that is compatible with the\n * [recommended polyfill](https://github.com/Azure/azure-sdk-for-js/blob/%40azure/core-asynciterator-polyfill_1.0.2/sdk/core/core-asynciterator-polyfill/src/index.ts#L4-L6)\n * we recommend for React Native.\n *\n * As long as we use this symbol (instead of `for await` and `async *`) in this package, we can be compatible with async\n * iterators without requiring them.\n */\nexport const symbolAsyncIterator = Symbol.asyncIterator ?? Symbol.for('Symbol.asyncIterator');\n/**\n * Throttle a function to be called at most once every \"wait\" milliseconds,\n * on the trailing edge.\n *\n * Roughly equivalent to lodash/throttle with {leading: false, trailing: true}\n */\nexport function throttleTrailing(func, wait) {\n let timeoutId = null;\n const later = () => {\n func();\n timeoutId = null;\n };\n return function () {\n if (timeoutId == null) {\n timeoutId = setTimeout(later, wait);\n }\n };\n}\n/**\n * Throttle a function to be called at most once every \"wait\" milliseconds,\n * on the leading and trailing edge.\n *\n * Roughly equivalent to lodash/throttle with {leading: true, trailing: true}\n */\nexport function throttleLeadingTrailing(func, wait) {\n let timeoutId = null;\n let lastCallTime = 0;\n const invokeFunction = () => {\n func();\n lastCallTime = Date.now();\n timeoutId = null;\n };\n return function () {\n const now = Date.now();\n const timeToWait = wait - (now - lastCallTime);\n if (timeToWait <= 0) {\n // Leading edge: Call the function immediately if enough time has passed\n invokeFunction();\n }\n else if (!timeoutId) {\n // Set a timeout for the trailing edge if not already set\n timeoutId = setTimeout(invokeFunction, timeToWait);\n }\n };\n}\n//# sourceMappingURL=async.js.map","import { BaseObserver } from '../utils/BaseObserver.js';\n/**\n * @internal\n */\nexport class ConnectionManager extends BaseObserver {\n options;\n /**\n * Tracks active connection attempts\n */\n connectingPromise;\n /**\n * Tracks actively instantiating a streaming sync implementation.\n */\n syncStreamInitPromise;\n /**\n * Active disconnect operation. Calling disconnect multiple times\n * will resolve to the same operation.\n */\n disconnectingPromise;\n /**\n * Tracks the last parameters supplied to `connect` calls.\n * Calling `connect` multiple times in succession will result in:\n * - 1 pending connection operation which will be aborted.\n * - updating the last set of parameters while waiting for the pending\n * attempt to be aborted\n * - internally connecting with the last set of parameters\n */\n pendingConnectionOptions;\n syncStreamImplementation;\n /**\n * Additional cleanup function which is called after the sync stream implementation\n * is disposed.\n */\n syncDisposer;\n /**\n * Subscriptions managed in this connection manager.\n *\n * On the web, these local subscriptions are merged across tabs by a shared worker.\n */\n locallyActiveSubscriptions = new Map();\n constructor(options) {\n super();\n this.options = options;\n this.connectingPromise = null;\n this.syncStreamInitPromise = null;\n this.disconnectingPromise = null;\n this.pendingConnectionOptions = null;\n this.syncStreamImplementation = null;\n this.syncDisposer = null;\n }\n get connector() {\n return this.pendingConnectionOptions?.connector ?? null;\n }\n get connectionOptions() {\n return this.pendingConnectionOptions?.options ?? null;\n }\n get logger() {\n return this.options.logger;\n }\n async close() {\n await this.syncStreamImplementation?.dispose();\n await this.syncDisposer?.();\n }\n async connect(connector, options) {\n // Keep track if there were pending operations before this call\n const hadPendingOptions = !!this.pendingConnectionOptions;\n // Update pending options to the latest values\n this.pendingConnectionOptions = {\n connector,\n options\n };\n // Disconnecting here provides aborting in progress connection attempts.\n // The connectInternal method will clear pending options once it starts connecting (with the options).\n // We only need to trigger a disconnect here if we have already reached the point of connecting.\n // If we do already have pending options, a disconnect has already been performed.\n // The connectInternal method also does a sanity disconnect to prevent straggler connections.\n // We should also disconnect if we have already completed a connection attempt.\n if (!hadPendingOptions || this.syncStreamImplementation) {\n await this.disconnectInternal();\n }\n // Triggers a connect which checks if pending options are available after the connect completes.\n // The completion can be for a successful, unsuccessful or aborted connection attempt.\n // If pending options are available another connection will be triggered.\n const checkConnection = async () => {\n if (this.pendingConnectionOptions) {\n // Pending options have been placed while connecting.\n // Need to reconnect.\n this.connectingPromise = this.connectInternal()\n .catch(() => { })\n .finally(checkConnection);\n return this.connectingPromise;\n }\n else {\n // Clear the connecting promise, done.\n this.connectingPromise = null;\n return;\n }\n };\n this.connectingPromise ??= this.connectInternal()\n .catch(() => { })\n .finally(checkConnection);\n return this.connectingPromise;\n }\n async connectInternal() {\n let appliedOptions = null;\n // This method ensures a disconnect before any connection attempt\n await this.disconnectInternal();\n /**\n * This portion creates a sync implementation which can be racy when disconnecting or\n * if multiple tabs on web are in use.\n * This is protected in an exclusive lock.\n * The promise tracks the creation which is used to synchronize disconnect attempts.\n */\n this.syncStreamInitPromise = new Promise(async (resolve, reject) => {\n try {\n if (!this.pendingConnectionOptions) {\n this.logger.debug('No pending connection options found, not creating sync stream implementation');\n // A disconnect could have cleared this.\n resolve();\n return;\n }\n if (this.disconnectingPromise) {\n resolve();\n return;\n }\n const { connector, options } = this.pendingConnectionOptions;\n appliedOptions = options;\n this.pendingConnectionOptions = null;\n const { sync, onDispose } = await this.options.createSyncImplementation(connector, {\n subscriptions: this.activeStreams,\n ...options\n });\n this.iterateListeners((l) => l.syncStreamCreated?.(sync));\n this.syncStreamImplementation = sync;\n this.syncDisposer = onDispose;\n await this.syncStreamImplementation.waitForReady();\n resolve();\n }\n catch (error) {\n reject(error);\n }\n });\n await this.syncStreamInitPromise;\n this.syncStreamInitPromise = null;\n if (!appliedOptions) {\n // A disconnect could have cleared the options which did not create a syncStreamImplementation\n return;\n }\n // It might be possible that a disconnect triggered between the last check\n // and this point. Awaiting here allows the sync stream to be cleared if disconnected.\n await this.disconnectingPromise;\n this.logger.debug('Attempting to connect to PowerSync instance');\n await this.syncStreamImplementation?.connect(appliedOptions);\n }\n /**\n * Close the sync connection.\n *\n * Use {@link connect} to connect again.\n */\n async disconnect() {\n // This will help abort pending connects\n this.pendingConnectionOptions = null;\n await this.disconnectInternal();\n }\n async disconnectInternal() {\n if (this.disconnectingPromise) {\n // A disconnect is already in progress\n return this.disconnectingPromise;\n }\n this.disconnectingPromise = this.performDisconnect();\n await this.disconnectingPromise;\n this.disconnectingPromise = null;\n }\n async performDisconnect() {\n // Wait if a sync stream implementation is being created before closing it\n // (syncStreamImplementation must be assigned before we can properly dispose it)\n await this.syncStreamInitPromise;\n // Keep reference to the sync stream implementation and disposer\n // The class members will be cleared before we trigger the disconnect\n // to prevent any further calls to the sync stream implementation.\n const sync = this.syncStreamImplementation;\n this.syncStreamImplementation = null;\n const disposer = this.syncDisposer;\n this.syncDisposer = null;\n await sync?.disconnect();\n await sync?.dispose();\n await disposer?.();\n }\n stream(adapter, name, parameters) {\n const desc = { name, parameters };\n const waitForFirstSync = (abort) => {\n return adapter.firstStatusMatching((s) => s.forStream(desc)?.subscription.hasSynced, abort);\n };\n return {\n ...desc,\n subscribe: async (options) => {\n // NOTE: We also run this command if a subscription already exists, because this increases the expiry date\n // (relevant if the app is closed before connecting again, where the last subscribe call determines the ttl).\n await adapter.rustSubscriptionsCommand({\n subscribe: {\n stream: {\n name,\n params: parameters\n },\n ttl: options?.ttl,\n priority: options?.priority\n }\n });\n if (!this.syncStreamImplementation) {\n // We're not connected. So, update the offline sync status to reflect the new subscription.\n // (With an active iteration, the sync client would include it in its state).\n await adapter.resolveOfflineSyncStatus();\n }\n const key = `${name}|${JSON.stringify(parameters)}`;\n let subscription = this.locallyActiveSubscriptions.get(key);\n if (subscription == null) {\n const clearSubscription = () => {\n this.locallyActiveSubscriptions.delete(key);\n this.subscriptionsMayHaveChanged();\n };\n subscription = new ActiveSubscription(name, parameters, this.logger, waitForFirstSync, clearSubscription);\n this.locallyActiveSubscriptions.set(key, subscription);\n this.subscriptionsMayHaveChanged();\n }\n return new SyncStreamSubscriptionHandle(subscription);\n },\n unsubscribeAll: async () => {\n await adapter.rustSubscriptionsCommand({ unsubscribe: { name, params: parameters } });\n this.subscriptionsMayHaveChanged();\n }\n };\n }\n /**\n * @internal exposed for testing\n */\n get activeStreams() {\n return [...this.locallyActiveSubscriptions.values()].map((a) => ({ name: a.name, params: a.parameters }));\n }\n subscriptionsMayHaveChanged() {\n this.syncStreamImplementation?.updateSubscriptions(this.activeStreams);\n }\n}\nclass ActiveSubscription {\n name;\n parameters;\n logger;\n waitForFirstSync;\n clearSubscription;\n refcount = 0;\n constructor(name, parameters, logger, waitForFirstSync, clearSubscription) {\n this.name = name;\n this.parameters = parameters;\n this.logger = logger;\n this.waitForFirstSync = waitForFirstSync;\n this.clearSubscription = clearSubscription;\n }\n decrementRefCount() {\n this.refcount--;\n if (this.refcount == 0) {\n this.clearSubscription();\n }\n }\n}\nclass SyncStreamSubscriptionHandle {\n subscription;\n active = true;\n constructor(subscription) {\n this.subscription = subscription;\n subscription.refcount++;\n _finalizer?.register(this, subscription);\n }\n get name() {\n return this.subscription.name;\n }\n get parameters() {\n return this.subscription.parameters;\n }\n waitForFirstSync(abort) {\n return this.subscription.waitForFirstSync(abort);\n }\n unsubscribe() {\n if (this.active) {\n this.active = false;\n _finalizer?.unregister(this);\n this.subscription.decrementRefCount();\n }\n }\n}\nconst _finalizer = 'FinalizationRegistry' in globalThis\n ? new FinalizationRegistry((sub) => {\n sub.logger.warn(`A subscription to ${sub.name} with params ${JSON.stringify(sub.parameters)} leaked! Please ensure calling unsubscribe() when you don't need a subscription anymore. For global subscriptions, consider storing them in global fields to avoid this warning.`);\n })\n : null;\n//# sourceMappingURL=ConnectionManager.js.map","/**\n * An efficient comparator for {@link WatchedQuery} created with {@link Query#watch}. This has the ability to determine if a query\n * result has changes without necessarily processing all items in the result.\n */\nexport class ArrayComparator {\n options;\n constructor(options) {\n this.options = options;\n }\n checkEquality(current, previous) {\n if (current.length === 0 && previous.length === 0) {\n return true;\n }\n if (current.length !== previous.length) {\n return false;\n }\n const { compareBy } = this.options;\n // At this point the lengths are equal\n for (let i = 0; i < current.length; i++) {\n const currentItem = compareBy(current[i]);\n const previousItem = compareBy(previous[i]);\n if (currentItem !== previousItem) {\n return false;\n }\n }\n return true;\n }\n}\n/**\n * Watched query comparator that always reports changed result sets.\n */\nexport const FalsyComparator = {\n checkEquality: () => false // Default comparator that always returns false\n};\n//# sourceMappingURL=comparators.js.map","import { BaseObserver } from './BaseObserver.js';\n/**\n * A BaseObserver that tracks the counts of listeners for each event type.\n */\nexport class MetaBaseObserver extends BaseObserver {\n get listenerCounts() {\n const counts = {};\n let total = 0;\n for (const listener of this.listeners) {\n for (const key in listener) {\n if (listener[key]) {\n counts[key] = (counts[key] ?? 0) + 1;\n total++;\n }\n }\n }\n return {\n ...counts,\n total\n };\n }\n get listenerMeta() {\n return {\n counts: this.listenerCounts,\n // Allows registering a meta listener that will be notified of changes in listener counts\n registerListener: (listener) => {\n return this.metaListener.registerListener(listener);\n }\n };\n }\n metaListener;\n constructor() {\n super();\n this.metaListener = new BaseObserver();\n }\n registerListener(listener) {\n const dispose = super.registerListener(listener);\n const updatedCount = this.listenerCounts;\n this.metaListener.iterateListeners((l) => {\n l.listenersChanged?.(updatedCount);\n });\n return () => {\n dispose();\n const updatedCount = this.listenerCounts;\n this.metaListener.iterateListeners((l) => {\n l.listenersChanged?.(updatedCount);\n });\n };\n }\n}\n//# sourceMappingURL=MetaBaseObserver.js.map","export var WatchedQueryListenerEvent;\n(function (WatchedQueryListenerEvent) {\n WatchedQueryListenerEvent[\"ON_DATA\"] = \"onData\";\n WatchedQueryListenerEvent[\"ON_ERROR\"] = \"onError\";\n WatchedQueryListenerEvent[\"ON_STATE_CHANGE\"] = \"onStateChange\";\n WatchedQueryListenerEvent[\"SETTINGS_WILL_UPDATE\"] = \"settingsWillUpdate\";\n WatchedQueryListenerEvent[\"CLOSED\"] = \"closed\";\n})(WatchedQueryListenerEvent || (WatchedQueryListenerEvent = {}));\nexport const DEFAULT_WATCH_THROTTLE_MS = 30;\nexport const DEFAULT_WATCH_QUERY_OPTIONS = {\n throttleMs: DEFAULT_WATCH_THROTTLE_MS,\n reportFetching: true\n};\n//# sourceMappingURL=WatchedQuery.js.map","import { MetaBaseObserver } from '../../../utils/MetaBaseObserver.js';\nimport { WatchedQueryListenerEvent } from '../WatchedQuery.js';\n/**\n * Performs underlying watching and yields a stream of results.\n * @internal\n */\nexport class AbstractQueryProcessor extends MetaBaseObserver {\n options;\n state;\n abortController;\n initialized;\n _closed;\n disposeListeners;\n get closed() {\n return this._closed;\n }\n constructor(options) {\n super();\n this.options = options;\n this.abortController = new AbortController();\n this._closed = false;\n this.state = this.constructInitialState();\n this.disposeListeners = null;\n this.initialized = this.init(this.abortController.signal);\n }\n constructInitialState() {\n return {\n isLoading: true,\n isFetching: this.reportFetching, // Only set to true if we will report updates in future\n error: null,\n lastUpdated: null,\n data: this.options.placeholderData\n };\n }\n get reportFetching() {\n return this.options.watchOptions.reportFetching ?? true;\n }\n async updateSettingsInternal(settings, signal) {\n // This may have been aborted while awaiting or if multiple calls to `updateSettings` were made\n if (this._closed || signal.aborted) {\n return;\n }\n this.options.watchOptions = settings;\n this.iterateListeners((l) => l[WatchedQueryListenerEvent.SETTINGS_WILL_UPDATE]?.());\n if (!this.state.isFetching && this.reportFetching) {\n await this.updateState({\n isFetching: true\n });\n }\n await this.runWithReporting(() => this.linkQuery({\n abortSignal: signal,\n settings\n }));\n }\n /**\n * Updates the underlying query.\n */\n async updateSettings(settings) {\n // Abort the previous request\n this.abortController.abort();\n // Keep track of this controller's abort status\n const abortController = new AbortController();\n // Allow this to be aborted externally\n this.abortController = abortController;\n await this.initialized;\n return this.updateSettingsInternal(settings, abortController.signal);\n }\n async updateState(update) {\n if (this._closed) {\n return;\n }\n if (typeof update.error !== 'undefined') {\n await this.iterateAsyncListenersWithError(async (l) => l.onError?.(update.error));\n // An error always stops for the current fetching state\n update.isFetching = false;\n update.isLoading = false;\n }\n Object.assign(this.state, { lastUpdated: new Date() }, update);\n if (typeof update.data !== 'undefined') {\n await this.iterateAsyncListenersWithError(async (l) => l.onData?.(this.state.data));\n }\n await this.iterateAsyncListenersWithError(async (l) => l.onStateChange?.(this.state));\n }\n /**\n * Configures base DB listeners and links the query to listeners.\n */\n async init(signal) {\n const { db } = this.options;\n const disposeCloseListener = db.registerListener({\n closing: async () => {\n await this.close();\n }\n });\n // Wait for the schema to be set before listening to changes\n await db.waitForReady();\n const disposeSchemaListener = db.registerListener({\n schemaChanged: async () => {\n await this.runWithReporting(async () => {\n await this.updateSettings(this.options.watchOptions);\n });\n }\n });\n this.disposeListeners = () => {\n disposeCloseListener();\n disposeSchemaListener();\n };\n // Initial setup\n await this.runWithReporting(async () => {\n await this.updateSettingsInternal(this.options.watchOptions, signal);\n });\n }\n async close() {\n this._closed = true;\n this.abortController.abort();\n this.disposeListeners?.();\n this.disposeListeners = null;\n this.iterateListeners((l) => l.closed?.());\n this.listeners.clear();\n }\n /**\n * Runs a callback and reports errors to the error listeners.\n */\n async runWithReporting(callback) {\n try {\n await callback();\n }\n catch (error) {\n // This will update the error on the state and iterate error listeners\n await this.updateState({ error });\n }\n }\n /**\n * Iterate listeners and reports errors to onError handlers.\n */\n async iterateAsyncListenersWithError(callback) {\n try {\n await this.iterateAsyncListeners(async (l) => callback(l));\n }\n catch (error) {\n try {\n await this.iterateAsyncListeners(async (l) => l.onError?.(error));\n }\n catch (error) {\n // Errors here are ignored\n // since we are already in an error state\n this.options.db.logger.error('Watched query error handler threw an Error', error);\n }\n }\n }\n}\n//# sourceMappingURL=AbstractQueryProcessor.js.map","import { AbstractQueryProcessor } from './AbstractQueryProcessor.js';\n/**\n * An empty differential result set.\n * This is used as the initial state for differential incrementally watched queries.\n */\nexport const EMPTY_DIFFERENTIAL = {\n added: [],\n all: [],\n removed: [],\n updated: [],\n unchanged: []\n};\n/**\n * Default implementation of the {@link DifferentialWatchedQueryComparator} for watched queries.\n * It keys items by their `id` property if available, alternatively it uses JSON stringification\n * of the entire item for the key and comparison.\n */\nexport const DEFAULT_ROW_COMPARATOR = {\n keyBy: (item) => {\n if (item && typeof item == 'object' && typeof item['id'] == 'string') {\n return item['id'];\n }\n return JSON.stringify(item);\n },\n compareBy: (item) => JSON.stringify(item)\n};\n/**\n * Uses the PowerSync onChange event to trigger watched queries.\n * Results are emitted on every change of the relevant tables.\n * @internal\n */\nexport class DifferentialQueryProcessor extends AbstractQueryProcessor {\n options;\n comparator;\n constructor(options) {\n super(options);\n this.options = options;\n this.comparator = options.rowComparator ?? DEFAULT_ROW_COMPARATOR;\n }\n /*\n * @returns If the sets are equal\n */\n differentiate(current, previousMap) {\n const { keyBy, compareBy } = this.comparator;\n let hasChanged = false;\n const currentMap = new Map();\n const removedTracker = new Set(previousMap.keys());\n // Allow mutating to populate the data temporarily.\n const diff = {\n all: [],\n added: [],\n removed: [],\n updated: [],\n unchanged: []\n };\n /**\n * Looping over the current result set array is important to preserve\n * the ordering of the result set.\n * We can replace items in the current array with previous object references if they are equal.\n */\n for (const item of current) {\n const key = keyBy(item);\n const hash = compareBy(item);\n currentMap.set(key, { hash, item });\n const previousItem = previousMap.get(key);\n if (!previousItem) {\n // New item\n hasChanged = true;\n diff.added.push(item);\n diff.all.push(item);\n }\n else {\n // Existing item\n if (hash == previousItem.hash) {\n diff.unchanged.push(previousItem.item);\n // Use the previous object reference\n diff.all.push(previousItem.item);\n // update the map to preserve the reference\n currentMap.set(key, previousItem);\n }\n else {\n hasChanged = true;\n diff.updated.push({ current: item, previous: previousItem.item });\n // Use the new reference\n diff.all.push(item);\n }\n }\n // The item is present, we don't consider it removed\n removedTracker.delete(key);\n }\n diff.removed = Array.from(removedTracker).map((key) => previousMap.get(key).item);\n hasChanged = hasChanged || diff.removed.length > 0;\n return {\n diff,\n hasChanged,\n map: currentMap\n };\n }\n async linkQuery(options) {\n const { db, watchOptions } = this.options;\n const { abortSignal } = options;\n const compiledQuery = watchOptions.query.compile();\n const tables = await db.resolveTables(compiledQuery.sql, compiledQuery.parameters, {\n tables: options.settings.triggerOnTables\n });\n let currentMap = new Map();\n // populate the currentMap from the placeholder data\n this.state.data.forEach((item) => {\n currentMap.set(this.comparator.keyBy(item), {\n hash: this.comparator.compareBy(item),\n item\n });\n });\n db.onChangeWithCallback({\n onChange: async () => {\n if (this.closed || abortSignal.aborted) {\n return;\n }\n // This fires for each change of the relevant tables\n try {\n if (this.reportFetching && !this.state.isFetching) {\n await this.updateState({ isFetching: true });\n }\n const partialStateUpdate = {};\n // Always run the query if an underlying table has changed\n const result = await watchOptions.query.execute({\n sql: compiledQuery.sql,\n // Allows casting from ReadOnlyArray[unknown] to Array<unknown>\n // This allows simpler compatibility with PowerSync queries\n parameters: [...compiledQuery.parameters],\n db: this.options.db\n });\n if (abortSignal.aborted) {\n return;\n }\n if (this.reportFetching) {\n partialStateUpdate.isFetching = false;\n }\n if (this.state.isLoading) {\n partialStateUpdate.isLoading = false;\n }\n const { diff, hasChanged, map } = this.differentiate(result, currentMap);\n // Update for future comparisons\n currentMap = map;\n if (hasChanged) {\n await this.iterateAsyncListenersWithError((l) => l.onDiff?.(diff));\n Object.assign(partialStateUpdate, {\n data: diff.all\n });\n }\n if (this.state.error) {\n partialStateUpdate.error = null;\n }\n if (Object.keys(partialStateUpdate).length > 0) {\n await this.updateState(partialStateUpdate);\n }\n }\n catch (error) {\n await this.updateState({ error });\n }\n },\n onError: async (error) => {\n await this.updateState({ error });\n }\n }, {\n signal: abortSignal,\n tables,\n throttleMs: watchOptions.throttleMs,\n triggerImmediate: true // used to emit the initial state\n });\n }\n}\n//# sourceMappingURL=DifferentialQueryProcessor.js.map","import { AbstractQueryProcessor } from './AbstractQueryProcessor.js';\n/**\n * Uses the PowerSync onChange event to trigger watched queries.\n * Results are emitted on every change of the relevant tables.\n * @internal\n */\nexport class OnChangeQueryProcessor extends AbstractQueryProcessor {\n options;\n constructor(options) {\n super(options);\n this.options = options;\n }\n /**\n * @returns If the sets are equal\n */\n checkEquality(current, previous) {\n // Use the provided comparator if available. Assume values are unique if not available.\n return this.options.comparator?.checkEquality?.(current, previous) ?? false;\n }\n async linkQuery(options) {\n const { db, watchOptions } = this.options;\n const { abortSignal } = options;\n const compiledQuery = watchOptions.query.compile();\n const tables = await db.resolveTables(compiledQuery.sql, compiledQuery.parameters, {\n tables: options.settings.triggerOnTables\n });\n db.onChangeWithCallback({\n onChange: async () => {\n if (this.closed || abortSignal.aborted) {\n return;\n }\n // This fires for each change of the relevant tables\n try {\n if (this.reportFetching && !this.state.isFetching) {\n await this.updateState({ isFetching: true });\n }\n const partialStateUpdate = {};\n // Always run the query if an underlying table has changed\n const result = await watchOptions.query.execute({\n sql: compiledQuery.sql,\n // Allows casting from ReadOnlyArray[unknown] to Array<unknown>\n // This allows simpler compatibility with PowerSync queries\n parameters: [...compiledQuery.parameters],\n db: this.options.db\n });\n if (abortSignal.aborted) {\n return;\n }\n if (this.reportFetching) {\n partialStateUpdate.isFetching = false;\n }\n if (this.state.isLoading) {\n partialStateUpdate.isLoading = false;\n }\n // Check if the result has changed\n if (!this.checkEquality(result, this.state.data)) {\n Object.assign(partialStateUpdate, {\n data: result\n });\n }\n if (this.state.error) {\n partialStateUpdate.error = null;\n }\n if (Object.keys(partialStateUpdate).length > 0) {\n await this.updateState(partialStateUpdate);\n }\n }\n catch (error) {\n await this.updateState({ error });\n }\n },\n onError: async (error) => {\n await this.updateState({ error });\n }\n }, {\n signal: abortSignal,\n tables,\n throttleMs: watchOptions.throttleMs,\n triggerImmediate: true // used to emit the initial state\n });\n }\n}\n//# sourceMappingURL=OnChangeQueryProcessor.js.map","import { FalsyComparator } from './watched/processors/comparators.js';\nimport { DifferentialQueryProcessor } from './watched/processors/DifferentialQueryProcessor.js';\nimport { OnChangeQueryProcessor } from './watched/processors/OnChangeQueryProcessor.js';\nimport { DEFAULT_WATCH_QUERY_OPTIONS } from './watched/WatchedQuery.js';\n/**\n * @internal\n */\nexport class CustomQuery {\n options;\n constructor(options) {\n this.options = options;\n }\n resolveOptions(options) {\n return {\n reportFetching: options?.reportFetching ?? DEFAULT_WATCH_QUERY_OPTIONS.reportFetching,\n throttleMs: options?.throttleMs ?? DEFAULT_WATCH_QUERY_OPTIONS.throttleMs,\n triggerOnTables: options?.triggerOnTables\n };\n }\n watch(watchOptions) {\n return new OnChangeQueryProcessor({\n db: this.options.db,\n comparator: watchOptions?.comparator ?? FalsyComparator,\n placeholderData: watchOptions?.placeholderData ?? [],\n watchOptions: {\n ...this.resolveOptions(watchOptions),\n query: this.options.query\n }\n });\n }\n differentialWatch(differentialWatchOptions) {\n return new DifferentialQueryProcessor({\n db: this.options.db,\n rowComparator: differentialWatchOptions?.rowComparator,\n placeholderData: differentialWatchOptions?.placeholderData ?? [],\n watchOptions: {\n ...this.resolveOptions(differentialWatchOptions),\n query: this.options.query\n }\n });\n }\n}\n//# sourceMappingURL=CustomQuery.js.map","/**\n * Tests if the input is a {@link SQLOpenOptions}\n */\nexport const isSQLOpenOptions = (test) => {\n // typeof null is `object`, but you cannot use the `in` operator on `null.\n return test && typeof test == 'object' && 'dbFilename' in test;\n};\n/**\n * Tests if input is a {@link SQLOpenFactory}\n */\nexport const isSQLOpenFactory = (test) => {\n return typeof test?.openDB == 'function';\n};\n/**\n * Tests if input is a {@link DBAdapter}\n */\nexport const isDBAdapter = (test) => {\n return typeof test?.writeTransaction == 'function';\n};\n//# sourceMappingURL=SQLOpenFactory.js.map","export var PSInternalTable;\n(function (PSInternalTable) {\n PSInternalTable[\"DATA\"] = \"ps_data\";\n PSInternalTable[\"CRUD\"] = \"ps_crud\";\n PSInternalTable[\"BUCKETS\"] = \"ps_buckets\";\n PSInternalTable[\"OPLOG\"] = \"ps_oplog\";\n PSInternalTable[\"UNTYPED\"] = \"ps_untyped\";\n})(PSInternalTable || (PSInternalTable = {}));\nexport var PowerSyncControlCommand;\n(function (PowerSyncControlCommand) {\n PowerSyncControlCommand[\"PROCESS_TEXT_LINE\"] = \"line_text\";\n PowerSyncControlCommand[\"PROCESS_BSON_LINE\"] = \"line_binary\";\n PowerSyncControlCommand[\"STOP\"] = \"stop\";\n PowerSyncControlCommand[\"START\"] = \"start\";\n PowerSyncControlCommand[\"NOTIFY_TOKEN_REFRESHED\"] = \"refreshed_token\";\n PowerSyncControlCommand[\"NOTIFY_CRUD_UPLOAD_COMPLETED\"] = \"completed_upload\";\n PowerSyncControlCommand[\"UPDATE_SUBSCRIPTIONS\"] = \"update_subscriptions\";\n})(PowerSyncControlCommand || (PowerSyncControlCommand = {}));\n//# sourceMappingURL=BucketStorageAdapter.js.map","/**\n * A batch of client-side changes.\n */\nexport class CrudBatch {\n crud;\n haveMore;\n complete;\n constructor(\n /**\n * List of client-side changes.\n */\n crud, \n /**\n * true if there are more changes in the local queue.\n */\n haveMore, \n /**\n * Call to remove the changes from the local queue, once successfully uploaded.\n */\n complete) {\n this.crud = crud;\n this.haveMore = haveMore;\n this.complete = complete;\n }\n}\n//# sourceMappingURL=CrudBatch.js.map","/**\n * Type of local change.\n */\nexport var UpdateType;\n(function (UpdateType) {\n /** Insert or replace existing row. All non-null columns are included in the data. Generated by INSERT statements. */\n UpdateType[\"PUT\"] = \"PUT\";\n /** Update existing row. Contains the id, and value of each changed column. Generated by UPDATE statements. */\n UpdateType[\"PATCH\"] = \"PATCH\";\n /** Delete existing row. Contains the id. Generated by DELETE statements. */\n UpdateType[\"DELETE\"] = \"DELETE\";\n})(UpdateType || (UpdateType = {}));\n/**\n * A single client-side change.\n */\nexport class CrudEntry {\n /**\n * Auto-incrementing client-side id.\n */\n clientId;\n /**\n * ID of the changed row.\n */\n id;\n /**\n * Type of change.\n */\n op;\n /**\n * Data associated with the change.\n */\n opData;\n /**\n * For tables where the `trackPreviousValues` option has been enabled, this tracks previous values for\n * `UPDATE` and `DELETE` statements.\n */\n previousValues;\n /**\n * Table that contained the change.\n */\n table;\n /**\n * Auto-incrementing transaction id. This is the same for all operations within the same transaction.\n */\n transactionId;\n /**\n * Client-side metadata attached with this write.\n *\n * This field is only available when the `trackMetadata` option was set to `true` when creating a table\n * and the insert or update statement set the `_metadata` column.\n */\n metadata;\n static fromRow(dbRow) {\n const data = JSON.parse(dbRow.data);\n return new CrudEntry(parseInt(dbRow.id), data.op, data.type, data.id, dbRow.tx_id, data.data, data.old, data.metadata);\n }\n constructor(clientId, op, table, id, transactionId, opData, previousValues, metadata) {\n this.clientId = clientId;\n this.id = id;\n this.op = op;\n this.opData = opData;\n this.table = table;\n this.transactionId = transactionId;\n this.previousValues = previousValues;\n this.metadata = metadata;\n }\n /**\n * Converts the change to JSON format.\n */\n toJSON() {\n return {\n op_id: this.clientId,\n op: this.op,\n type: this.table,\n id: this.id,\n tx_id: this.transactionId,\n data: this.opData,\n old: this.previousValues,\n metadata: this.metadata\n };\n }\n equals(entry) {\n return JSON.stringify(this.toComparisonArray()) == JSON.stringify(entry.toComparisonArray());\n }\n /**\n * The hash code for this object.\n * @deprecated This should not be necessary in the JS SDK.\n * Use the @see CrudEntry#equals method instead.\n * TODO remove in the next major release.\n */\n hashCode() {\n return JSON.stringify(this.toComparisonArray());\n }\n /**\n * Generates an array for use in deep comparison operations\n */\n toComparisonArray() {\n return [\n this.transactionId,\n this.clientId,\n this.op,\n this.table,\n this.id,\n this.opData,\n this.previousValues,\n this.metadata\n ];\n }\n}\n//# sourceMappingURL=CrudEntry.js.map","import { CrudBatch } from './CrudBatch.js';\nexport class CrudTransaction extends CrudBatch {\n crud;\n complete;\n transactionId;\n constructor(\n /**\n * List of client-side changes.\n */\n crud, \n /**\n * Call to remove the changes from the local queue, once successfully uploaded.\n */\n complete, \n /**\n * If null, this contains a list of changes recorded without an explicit transaction associated.\n */\n transactionId) {\n super(crud, false, complete);\n this.crud = crud;\n this.complete = complete;\n this.transactionId = transactionId;\n }\n}\n//# sourceMappingURL=CrudTransaction.js.map","/**\n * Calls to Abortcontroller.abort(reason: any) will result in the\n * `reason` being thrown. This is not necessarily an error,\n * but extends error for better logging purposes.\n */\nexport class AbortOperation extends Error {\n reason;\n constructor(reason) {\n super(reason);\n this.reason = reason;\n // Set the prototype explicitly\n Object.setPrototypeOf(this, AbortOperation.prototype);\n // Capture stack trace\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AbortOperation);\n }\n }\n}\n//# sourceMappingURL=AbortOperation.js.map","export var OpTypeEnum;\n(function (OpTypeEnum) {\n OpTypeEnum[OpTypeEnum[\"CLEAR\"] = 1] = \"CLEAR\";\n OpTypeEnum[OpTypeEnum[\"MOVE\"] = 2] = \"MOVE\";\n OpTypeEnum[OpTypeEnum[\"PUT\"] = 3] = \"PUT\";\n OpTypeEnum[OpTypeEnum[\"REMOVE\"] = 4] = \"REMOVE\";\n})(OpTypeEnum || (OpTypeEnum = {}));\n/**\n * Used internally for sync buckets.\n */\nexport class OpType {\n value;\n static fromJSON(jsonValue) {\n return new OpType(OpTypeEnum[jsonValue]);\n }\n constructor(value) {\n this.value = value;\n }\n toJSON() {\n return Object.entries(OpTypeEnum).find(([, value]) => value === this.value)[0];\n }\n}\n//# sourceMappingURL=OpType.js.map","import { OpType } from './OpType.js';\nexport class OplogEntry {\n op_id;\n op;\n checksum;\n subkey;\n object_type;\n object_id;\n data;\n static fromRow(row) {\n return new OplogEntry(row.op_id, OpType.fromJSON(row.op), row.checksum, row.subkey, row.object_type, row.object_id, row.data);\n }\n constructor(op_id, op, checksum, subkey, object_type, object_id, data) {\n this.op_id = op_id;\n this.op = op;\n this.checksum = checksum;\n this.subkey = subkey;\n this.object_type = object_type;\n this.object_id = object_id;\n this.data = data;\n }\n toJSON(fixedKeyEncoding = false) {\n return {\n op_id: this.op_id,\n op: this.op.toJSON(),\n object_type: this.object_type,\n object_id: this.object_id,\n checksum: this.checksum,\n data: this.data,\n // Older versions of the JS SDK used to always JSON.stringify here. That has always been wrong,\n // but we need to migrate gradually to not break existing databases.\n subkey: fixedKeyEncoding ? this.subkey : JSON.stringify(this.subkey)\n };\n }\n}\n//# sourceMappingURL=OplogEntry.js.map","import { OplogEntry } from './OplogEntry.js';\nexport class SyncDataBucket {\n bucket;\n data;\n has_more;\n after;\n next_after;\n static fromRow(row) {\n return new SyncDataBucket(row.bucket, row.data.map((entry) => OplogEntry.fromRow(entry)), row.has_more ?? false, row.after, row.next_after);\n }\n constructor(bucket, data, \n /**\n * True if the response does not contain all the data for this bucket, and another request must be made.\n */\n has_more, \n /**\n * The `after` specified in the request.\n */\n after, \n /**\n * Use this for the next request.\n */\n next_after) {\n this.bucket = bucket;\n this.data = data;\n this.has_more = has_more;\n this.after = after;\n this.next_after = next_after;\n }\n toJSON(fixedKeyEncoding = false) {\n return {\n bucket: this.bucket,\n has_more: this.has_more,\n after: this.after,\n next_after: this.next_after,\n data: this.data.map((entry) => entry.toJSON(fixedKeyEncoding))\n };\n }\n}\n//# sourceMappingURL=SyncDataBucket.js.map","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Frame = exports.Lengths = exports.Flags = exports.FrameTypes = void 0;\nvar FrameTypes;\n(function (FrameTypes) {\n FrameTypes[FrameTypes[\"RESERVED\"] = 0] = \"RESERVED\";\n FrameTypes[FrameTypes[\"SETUP\"] = 1] = \"SETUP\";\n FrameTypes[FrameTypes[\"LEASE\"] = 2] = \"LEASE\";\n FrameTypes[FrameTypes[\"KEEPALIVE\"] = 3] = \"KEEPALIVE\";\n FrameTypes[FrameTypes[\"REQUEST_RESPONSE\"] = 4] = \"REQUEST_RESPONSE\";\n FrameTypes[FrameTypes[\"REQUEST_FNF\"] = 5] = \"REQUEST_FNF\";\n FrameTypes[FrameTypes[\"REQUEST_STREAM\"] = 6] = \"REQUEST_STREAM\";\n FrameTypes[FrameTypes[\"REQUEST_CHANNEL\"] = 7] = \"REQUEST_CHANNEL\";\n FrameTypes[FrameTypes[\"REQUEST_N\"] = 8] = \"REQUEST_N\";\n FrameTypes[FrameTypes[\"CANCEL\"] = 9] = \"CANCEL\";\n FrameTypes[FrameTypes[\"PAYLOAD\"] = 10] = \"PAYLOAD\";\n FrameTypes[FrameTypes[\"ERROR\"] = 11] = \"ERROR\";\n FrameTypes[FrameTypes[\"METADATA_PUSH\"] = 12] = \"METADATA_PUSH\";\n FrameTypes[FrameTypes[\"RESUME\"] = 13] = \"RESUME\";\n FrameTypes[FrameTypes[\"RESUME_OK\"] = 14] = \"RESUME_OK\";\n FrameTypes[FrameTypes[\"EXT\"] = 63] = \"EXT\";\n})(FrameTypes = exports.FrameTypes || (exports.FrameTypes = {}));\nvar Flags;\n(function (Flags) {\n Flags[Flags[\"NONE\"] = 0] = \"NONE\";\n Flags[Flags[\"COMPLETE\"] = 64] = \"COMPLETE\";\n Flags[Flags[\"FOLLOWS\"] = 128] = \"FOLLOWS\";\n Flags[Flags[\"IGNORE\"] = 512] = \"IGNORE\";\n Flags[Flags[\"LEASE\"] = 64] = \"LEASE\";\n Flags[Flags[\"METADATA\"] = 256] = \"METADATA\";\n Flags[Flags[\"NEXT\"] = 32] = \"NEXT\";\n Flags[Flags[\"RESPOND\"] = 128] = \"RESPOND\";\n Flags[Flags[\"RESUME_ENABLE\"] = 128] = \"RESUME_ENABLE\";\n})(Flags = exports.Flags || (exports.Flags = {}));\n(function (Flags) {\n function hasMetadata(flags) {\n return (flags & Flags.METADATA) === Flags.METADATA;\n }\n Flags.hasMetadata = hasMetadata;\n function hasComplete(flags) {\n return (flags & Flags.COMPLETE) === Flags.COMPLETE;\n }\n Flags.hasComplete = hasComplete;\n function hasNext(flags) {\n return (flags & Flags.NEXT) === Flags.NEXT;\n }\n Flags.hasNext = hasNext;\n function hasFollows(flags) {\n return (flags & Flags.FOLLOWS) === Flags.FOLLOWS;\n }\n Flags.hasFollows = hasFollows;\n function hasIgnore(flags) {\n return (flags & Flags.IGNORE) === Flags.IGNORE;\n }\n Flags.hasIgnore = hasIgnore;\n function hasRespond(flags) {\n return (flags & Flags.RESPOND) === Flags.RESPOND;\n }\n Flags.hasRespond = hasRespond;\n function hasLease(flags) {\n return (flags & Flags.LEASE) === Flags.LEASE;\n }\n Flags.hasLease = hasLease;\n function hasResume(flags) {\n return (flags & Flags.RESUME_ENABLE) === Flags.RESUME_ENABLE;\n }\n Flags.hasResume = hasResume;\n})(Flags = exports.Flags || (exports.Flags = {}));\nvar Lengths;\n(function (Lengths) {\n Lengths[Lengths[\"FRAME\"] = 3] = \"FRAME\";\n Lengths[Lengths[\"HEADER\"] = 6] = \"HEADER\";\n Lengths[Lengths[\"METADATA\"] = 3] = \"METADATA\";\n Lengths[Lengths[\"REQUEST\"] = 3] = \"REQUEST\";\n})(Lengths = exports.Lengths || (exports.Lengths = {}));\nvar Frame;\n(function (Frame) {\n function isConnection(frame) {\n return frame.streamId === 0;\n }\n Frame.isConnection = isConnection;\n function isRequest(frame) {\n return (FrameTypes.REQUEST_RESPONSE <= frame.type &&\n frame.type <= FrameTypes.REQUEST_CHANNEL);\n }\n Frame.isRequest = isRequest;\n})(Frame = exports.Frame || (exports.Frame = {}));\n//# sourceMappingURL=Frames.js.map","/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\"use strict\";\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deserializer = exports.sizeOfFrame = exports.serializeFrame = exports.deserializeFrame = exports.serializeFrameWithLength = exports.deserializeFrames = exports.deserializeFrameWithLength = exports.writeUInt64BE = exports.readUInt64BE = exports.writeUInt24BE = exports.readUInt24BE = exports.MAX_VERSION = exports.MAX_TTL = exports.MAX_STREAM_ID = exports.MAX_RESUME_LENGTH = exports.MAX_REQUEST_N = exports.MAX_REQUEST_COUNT = exports.MAX_MIME_LENGTH = exports.MAX_METADATA_LENGTH = exports.MAX_LIFETIME = exports.MAX_KEEPALIVE = exports.MAX_CODE = exports.FRAME_TYPE_OFFFSET = exports.FLAGS_MASK = void 0;\nvar Frames_1 = require(\"./Frames\");\nexports.FLAGS_MASK = 0x3ff; // low 10 bits\nexports.FRAME_TYPE_OFFFSET = 10; // frame type is offset 10 bytes within the uint16 containing type + flags\nexports.MAX_CODE = 0x7fffffff; // uint31\nexports.MAX_KEEPALIVE = 0x7fffffff; // uint31\nexports.MAX_LIFETIME = 0x7fffffff; // uint31\nexports.MAX_METADATA_LENGTH = 0xffffff; // uint24\nexports.MAX_MIME_LENGTH = 0xff; // int8\nexports.MAX_REQUEST_COUNT = 0x7fffffff; // uint31\nexports.MAX_REQUEST_N = 0x7fffffff; // uint31\nexports.MAX_RESUME_LENGTH = 0xffff; // uint16\nexports.MAX_STREAM_ID = 0x7fffffff; // uint31\nexports.MAX_TTL = 0x7fffffff; // uint31\nexports.MAX_VERSION = 0xffff; // uint16\n/**\n * Mimimum value that would overflow bitwise operators (2^32).\n */\nvar BITWISE_OVERFLOW = 0x100000000;\n/**\n * Read a uint24 from a buffer starting at the given offset.\n */\nfunction readUInt24BE(buffer, offset) {\n var val1 = buffer.readUInt8(offset) << 16;\n var val2 = buffer.readUInt8(offset + 1) << 8;\n var val3 = buffer.readUInt8(offset + 2);\n return val1 | val2 | val3;\n}\nexports.readUInt24BE = readUInt24BE;\n/**\n * Writes a uint24 to a buffer starting at the given offset, returning the\n * offset of the next byte.\n */\nfunction writeUInt24BE(buffer, value, offset) {\n offset = buffer.writeUInt8(value >>> 16, offset); // 3rd byte\n offset = buffer.writeUInt8((value >>> 8) & 0xff, offset); // 2nd byte\n return buffer.writeUInt8(value & 0xff, offset); // 1st byte\n}\nexports.writeUInt24BE = writeUInt24BE;\n/**\n * Read a uint64 (technically supports up to 53 bits per JS number\n * representation).\n */\nfunction readUInt64BE(buffer, offset) {\n var high = buffer.readUInt32BE(offset);\n var low = buffer.readUInt32BE(offset + 4);\n return high * BITWISE_OVERFLOW + low;\n}\nexports.readUInt64BE = readUInt64BE;\n/**\n * Write a uint64 (technically supports up to 53 bits per JS number\n * representation).\n */\nfunction writeUInt64BE(buffer, value, offset) {\n var high = (value / BITWISE_OVERFLOW) | 0;\n var low = value % BITWISE_OVERFLOW;\n offset = buffer.writeUInt32BE(high, offset); // first half of uint64\n return buffer.writeUInt32BE(low, offset); // second half of uint64\n}\nexports.writeUInt64BE = writeUInt64BE;\n/**\n * Frame header is:\n * - stream id (uint32 = 4)\n * - type + flags (uint 16 = 2)\n */\nvar FRAME_HEADER_SIZE = 6;\n/**\n * Size of frame length and metadata length fields.\n */\nvar UINT24_SIZE = 3;\n/**\n * Reads a frame from a buffer that is prefixed with the frame length.\n */\nfunction deserializeFrameWithLength(buffer) {\n var frameLength = readUInt24BE(buffer, 0);\n return deserializeFrame(buffer.slice(UINT24_SIZE, UINT24_SIZE + frameLength));\n}\nexports.deserializeFrameWithLength = deserializeFrameWithLength;\n/**\n * Given a buffer that may contain zero or more length-prefixed frames followed\n * by zero or more bytes of a (partial) subsequent frame, returns an array of\n * the frames and an int representing the buffer offset.\n */\nfunction deserializeFrames(buffer) {\n var offset, frameLength, frameStart, frameEnd, frameBuffer, frame;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n offset = 0;\n _a.label = 1;\n case 1:\n if (!(offset + UINT24_SIZE < buffer.length)) return [3 /*break*/, 3];\n frameLength = readUInt24BE(buffer, offset);\n frameStart = offset + UINT24_SIZE;\n frameEnd = frameStart + frameLength;\n if (frameEnd > buffer.length) {\n // not all bytes of next frame received\n return [3 /*break*/, 3];\n }\n frameBuffer = buffer.slice(frameStart, frameEnd);\n frame = deserializeFrame(frameBuffer);\n offset = frameEnd;\n return [4 /*yield*/, [frame, offset]];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n}\nexports.deserializeFrames = deserializeFrames;\n/**\n * Writes a frame to a buffer with a length prefix.\n */\nfunction serializeFrameWithLength(frame) {\n var buffer = serializeFrame(frame);\n var lengthPrefixed = Buffer.allocUnsafe(buffer.length + UINT24_SIZE);\n writeUInt24BE(lengthPrefixed, buffer.length, 0);\n buffer.copy(lengthPrefixed, UINT24_SIZE);\n return lengthPrefixed;\n}\nexports.serializeFrameWithLength = serializeFrameWithLength;\n/**\n * Read a frame from the buffer.\n */\nfunction deserializeFrame(buffer) {\n var offset = 0;\n var streamId = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // streamId >= 0,\n // 'RSocketBinaryFraming: Invalid frame, expected a positive stream id, got `%s.',\n // streamId,\n // );\n var typeAndFlags = buffer.readUInt16BE(offset);\n offset += 2;\n var type = typeAndFlags >>> exports.FRAME_TYPE_OFFFSET; // keep highest 6 bits\n var flags = typeAndFlags & exports.FLAGS_MASK; // keep lowest 10 bits\n switch (type) {\n case Frames_1.FrameTypes.SETUP:\n return deserializeSetupFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.PAYLOAD:\n return deserializePayloadFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.ERROR:\n return deserializeErrorFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.KEEPALIVE:\n return deserializeKeepAliveFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_FNF:\n return deserializeRequestFnfFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_RESPONSE:\n return deserializeRequestResponseFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_STREAM:\n return deserializeRequestStreamFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_CHANNEL:\n return deserializeRequestChannelFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.METADATA_PUSH:\n return deserializeMetadataPushFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.REQUEST_N:\n return deserializeRequestNFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.RESUME:\n return deserializeResumeFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.RESUME_OK:\n return deserializeResumeOkFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.CANCEL:\n return deserializeCancelFrame(buffer, streamId, flags);\n case Frames_1.FrameTypes.LEASE:\n return deserializeLeaseFrame(buffer, streamId, flags);\n default:\n // invariant(\n // false,\n // \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n // getFrameTypeName(type)\n // );\n }\n}\nexports.deserializeFrame = deserializeFrame;\n/**\n * Convert the frame to a (binary) buffer.\n */\nfunction serializeFrame(frame) {\n switch (frame.type) {\n case Frames_1.FrameTypes.SETUP:\n return serializeSetupFrame(frame);\n case Frames_1.FrameTypes.PAYLOAD:\n return serializePayloadFrame(frame);\n case Frames_1.FrameTypes.ERROR:\n return serializeErrorFrame(frame);\n case Frames_1.FrameTypes.KEEPALIVE:\n return serializeKeepAliveFrame(frame);\n case Frames_1.FrameTypes.REQUEST_FNF:\n case Frames_1.FrameTypes.REQUEST_RESPONSE:\n return serializeRequestFrame(frame);\n case Frames_1.FrameTypes.REQUEST_STREAM:\n case Frames_1.FrameTypes.REQUEST_CHANNEL:\n return serializeRequestManyFrame(frame);\n case Frames_1.FrameTypes.METADATA_PUSH:\n return serializeMetadataPushFrame(frame);\n case Frames_1.FrameTypes.REQUEST_N:\n return serializeRequestNFrame(frame);\n case Frames_1.FrameTypes.RESUME:\n return serializeResumeFrame(frame);\n case Frames_1.FrameTypes.RESUME_OK:\n return serializeResumeOkFrame(frame);\n case Frames_1.FrameTypes.CANCEL:\n return serializeCancelFrame(frame);\n case Frames_1.FrameTypes.LEASE:\n return serializeLeaseFrame(frame);\n default:\n // invariant(\n // false,\n // \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n // getFrameTypeName(frame.type)\n // );\n }\n}\nexports.serializeFrame = serializeFrame;\n/**\n * Byte size of frame without size prefix\n */\nfunction sizeOfFrame(frame) {\n switch (frame.type) {\n case Frames_1.FrameTypes.SETUP:\n return sizeOfSetupFrame(frame);\n case Frames_1.FrameTypes.PAYLOAD:\n return sizeOfPayloadFrame(frame);\n case Frames_1.FrameTypes.ERROR:\n return sizeOfErrorFrame(frame);\n case Frames_1.FrameTypes.KEEPALIVE:\n return sizeOfKeepAliveFrame(frame);\n case Frames_1.FrameTypes.REQUEST_FNF:\n case Frames_1.FrameTypes.REQUEST_RESPONSE:\n return sizeOfRequestFrame(frame);\n case Frames_1.FrameTypes.REQUEST_STREAM:\n case Frames_1.FrameTypes.REQUEST_CHANNEL:\n return sizeOfRequestManyFrame(frame);\n case Frames_1.FrameTypes.METADATA_PUSH:\n return sizeOfMetadataPushFrame(frame);\n case Frames_1.FrameTypes.REQUEST_N:\n return sizeOfRequestNFrame(frame);\n case Frames_1.FrameTypes.RESUME:\n return sizeOfResumeFrame(frame);\n case Frames_1.FrameTypes.RESUME_OK:\n return sizeOfResumeOkFrame(frame);\n case Frames_1.FrameTypes.CANCEL:\n return sizeOfCancelFrame(frame);\n case Frames_1.FrameTypes.LEASE:\n return sizeOfLeaseFrame(frame);\n default:\n // invariant(\n // false,\n // \"RSocketBinaryFraming: Unsupported frame type `%s`.\",\n // getFrameTypeName(frame.type)\n // );\n }\n}\nexports.sizeOfFrame = sizeOfFrame;\n/**\n * Writes a SETUP frame into a new buffer and returns it.\n *\n * Prefix size is:\n * - version (2x uint16 = 4)\n * - keepalive (uint32 = 4)\n * - lifetime (uint32 = 4)\n * - mime lengths (2x uint8 = 2)\n */\nvar SETUP_FIXED_SIZE = 14;\nvar RESUME_TOKEN_LENGTH_SIZE = 2;\nfunction serializeSetupFrame(frame) {\n var resumeTokenLength = frame.resumeToken != null ? frame.resumeToken.byteLength : 0;\n var metadataMimeTypeLength = frame.metadataMimeType != null\n ? Buffer.byteLength(frame.metadataMimeType, \"ascii\")\n : 0;\n var dataMimeTypeLength = frame.dataMimeType != null\n ? Buffer.byteLength(frame.dataMimeType, \"ascii\")\n : 0;\n var payloadLength = getPayloadLength(frame);\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE +\n SETUP_FIXED_SIZE + //\n (resumeTokenLength ? RESUME_TOKEN_LENGTH_SIZE + resumeTokenLength : 0) +\n metadataMimeTypeLength +\n dataMimeTypeLength +\n payloadLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt16BE(frame.majorVersion, offset);\n offset = buffer.writeUInt16BE(frame.minorVersion, offset);\n offset = buffer.writeUInt32BE(frame.keepAlive, offset);\n offset = buffer.writeUInt32BE(frame.lifetime, offset);\n if (frame.flags & Frames_1.Flags.RESUME_ENABLE) {\n offset = buffer.writeUInt16BE(resumeTokenLength, offset);\n if (frame.resumeToken != null) {\n offset += frame.resumeToken.copy(buffer, offset);\n }\n }\n offset = buffer.writeUInt8(metadataMimeTypeLength, offset);\n if (frame.metadataMimeType != null) {\n offset += buffer.write(frame.metadataMimeType, offset, offset + metadataMimeTypeLength, \"ascii\");\n }\n offset = buffer.writeUInt8(dataMimeTypeLength, offset);\n if (frame.dataMimeType != null) {\n offset += buffer.write(frame.dataMimeType, offset, offset + dataMimeTypeLength, \"ascii\");\n }\n writePayload(frame, buffer, offset);\n return buffer;\n}\nfunction sizeOfSetupFrame(frame) {\n var resumeTokenLength = frame.resumeToken != null ? frame.resumeToken.byteLength : 0;\n var metadataMimeTypeLength = frame.metadataMimeType != null\n ? Buffer.byteLength(frame.metadataMimeType, \"ascii\")\n : 0;\n var dataMimeTypeLength = frame.dataMimeType != null\n ? Buffer.byteLength(frame.dataMimeType, \"ascii\")\n : 0;\n var payloadLength = getPayloadLength(frame);\n return (FRAME_HEADER_SIZE +\n SETUP_FIXED_SIZE + //\n (resumeTokenLength ? RESUME_TOKEN_LENGTH_SIZE + resumeTokenLength : 0) +\n metadataMimeTypeLength +\n dataMimeTypeLength +\n payloadLength);\n}\n/**\n * Reads a SETUP frame from the buffer and returns it.\n */\nfunction deserializeSetupFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // 'RSocketBinaryFraming: Invalid SETUP frame, expected stream id to be 0.',\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var majorVersion = buffer.readUInt16BE(offset);\n offset += 2;\n var minorVersion = buffer.readUInt16BE(offset);\n offset += 2;\n var keepAlive = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // keepAlive >= 0 && keepAlive <= MAX_KEEPALIVE,\n // 'RSocketBinaryFraming: Invalid SETUP frame, expected keepAlive to be ' +\n // '>= 0 and <= %s. Got `%s`.',\n // MAX_KEEPALIVE,\n // keepAlive,\n // );\n var lifetime = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // lifetime >= 0 && lifetime <= MAX_LIFETIME,\n // 'RSocketBinaryFraming: Invalid SETUP frame, expected lifetime to be ' +\n // '>= 0 and <= %s. Got `%s`.',\n // MAX_LIFETIME,\n // lifetime,\n // );\n var resumeToken = null;\n if (flags & Frames_1.Flags.RESUME_ENABLE) {\n var resumeTokenLength = buffer.readInt16BE(offset);\n offset += 2;\n // invariant(\n // resumeTokenLength >= 0 && resumeTokenLength <= MAX_RESUME_LENGTH,\n // 'RSocketBinaryFraming: Invalid SETUP frame, expected resumeToken length ' +\n // 'to be >= 0 and <= %s. Got `%s`.',\n // MAX_RESUME_LENGTH,\n // resumeTokenLength,\n // );\n resumeToken = buffer.slice(offset, offset + resumeTokenLength);\n offset += resumeTokenLength;\n }\n var metadataMimeTypeLength = buffer.readUInt8(offset);\n offset += 1;\n var metadataMimeType = buffer.toString(\"ascii\", offset, offset + metadataMimeTypeLength);\n offset += metadataMimeTypeLength;\n var dataMimeTypeLength = buffer.readUInt8(offset);\n offset += 1;\n var dataMimeType = buffer.toString(\"ascii\", offset, offset + dataMimeTypeLength);\n offset += dataMimeTypeLength;\n var frame = {\n data: null,\n dataMimeType: dataMimeType,\n flags: flags,\n keepAlive: keepAlive,\n lifetime: lifetime,\n majorVersion: majorVersion,\n metadata: null,\n metadataMimeType: metadataMimeType,\n minorVersion: minorVersion,\n resumeToken: resumeToken,\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.SETUP,\n };\n readPayload(buffer, frame, offset);\n return frame;\n}\n/**\n * Writes an ERROR frame into a new buffer and returns it.\n *\n * Prefix size is for the error code (uint32 = 4).\n */\nvar ERROR_FIXED_SIZE = 4;\nfunction serializeErrorFrame(frame) {\n var messageLength = frame.message != null ? Buffer.byteLength(frame.message, \"utf8\") : 0;\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + ERROR_FIXED_SIZE + messageLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt32BE(frame.code, offset);\n if (frame.message != null) {\n buffer.write(frame.message, offset, offset + messageLength, \"utf8\");\n }\n return buffer;\n}\nfunction sizeOfErrorFrame(frame) {\n var messageLength = frame.message != null ? Buffer.byteLength(frame.message, \"utf8\") : 0;\n return FRAME_HEADER_SIZE + ERROR_FIXED_SIZE + messageLength;\n}\n/**\n * Reads an ERROR frame from the buffer and returns it.\n */\nfunction deserializeErrorFrame(buffer, streamId, flags) {\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var code = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // code >= 0 && code <= MAX_CODE,\n // \"RSocketBinaryFraming: Invalid ERROR frame, expected code to be >= 0 and <= %s. Got `%s`.\",\n // MAX_CODE,\n // code\n // );\n var messageLength = buffer.length - offset;\n var message = \"\";\n if (messageLength > 0) {\n message = buffer.toString(\"utf8\", offset, offset + messageLength);\n offset += messageLength;\n }\n return {\n code: code,\n flags: flags,\n message: message,\n streamId: streamId,\n type: Frames_1.FrameTypes.ERROR,\n };\n}\n/**\n * Writes a KEEPALIVE frame into a new buffer and returns it.\n *\n * Prefix size is for the last received position (uint64 = 8).\n */\nvar KEEPALIVE_FIXED_SIZE = 8;\nfunction serializeKeepAliveFrame(frame) {\n var dataLength = frame.data != null ? frame.data.byteLength : 0;\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + KEEPALIVE_FIXED_SIZE + dataLength);\n var offset = writeHeader(frame, buffer);\n offset = writeUInt64BE(buffer, frame.lastReceivedPosition, offset);\n if (frame.data != null) {\n frame.data.copy(buffer, offset);\n }\n return buffer;\n}\nfunction sizeOfKeepAliveFrame(frame) {\n var dataLength = frame.data != null ? frame.data.byteLength : 0;\n return FRAME_HEADER_SIZE + KEEPALIVE_FIXED_SIZE + dataLength;\n}\n/**\n * Reads a KEEPALIVE frame from the buffer and returns it.\n */\nfunction deserializeKeepAliveFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid KEEPALIVE frame, expected stream id to be 0.\"\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var lastReceivedPosition = readUInt64BE(buffer, offset);\n offset += 8;\n var data = null;\n if (offset < buffer.length) {\n data = buffer.slice(offset, buffer.length);\n }\n return {\n data: data,\n flags: flags,\n lastReceivedPosition: lastReceivedPosition,\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.KEEPALIVE,\n };\n}\n/**\n * Writes a LEASE frame into a new buffer and returns it.\n *\n * Prefix size is for the ttl (uint32) and requestcount (uint32).\n */\nvar LEASE_FIXED_SIZE = 8;\nfunction serializeLeaseFrame(frame) {\n var metaLength = frame.metadata != null ? frame.metadata.byteLength : 0;\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + LEASE_FIXED_SIZE + metaLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt32BE(frame.ttl, offset);\n offset = buffer.writeUInt32BE(frame.requestCount, offset);\n if (frame.metadata != null) {\n frame.metadata.copy(buffer, offset);\n }\n return buffer;\n}\nfunction sizeOfLeaseFrame(frame) {\n var metaLength = frame.metadata != null ? frame.metadata.byteLength : 0;\n return FRAME_HEADER_SIZE + LEASE_FIXED_SIZE + metaLength;\n}\n/**\n * Reads a LEASE frame from the buffer and returns it.\n */\nfunction deserializeLeaseFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid LEASE frame, expected stream id to be 0.\"\n // );\n // const length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var ttl = buffer.readUInt32BE(offset);\n offset += 4;\n var requestCount = buffer.readUInt32BE(offset);\n offset += 4;\n var metadata = null;\n if (offset < buffer.length) {\n metadata = buffer.slice(offset, buffer.length);\n }\n return {\n flags: flags,\n metadata: metadata,\n requestCount: requestCount,\n // streamId,\n streamId: 0,\n ttl: ttl,\n type: Frames_1.FrameTypes.LEASE,\n };\n}\n/**\n * Writes a REQUEST_FNF or REQUEST_RESPONSE frame to a new buffer and returns\n * it.\n *\n * Note that these frames have the same shape and only differ in their type.\n */\nfunction serializeRequestFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + payloadLength);\n var offset = writeHeader(frame, buffer);\n writePayload(frame, buffer, offset);\n return buffer;\n}\nfunction sizeOfRequestFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n return FRAME_HEADER_SIZE + payloadLength;\n}\n/**\n * Writes a METADATA_PUSH frame to a new buffer and returns\n * it.\n */\nfunction serializeMetadataPushFrame(frame) {\n var metadata = frame.metadata;\n if (metadata != null) {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + metadata.byteLength);\n var offset = writeHeader(frame, buffer);\n metadata.copy(buffer, offset);\n return buffer;\n }\n else {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE);\n writeHeader(frame, buffer);\n return buffer;\n }\n}\nfunction sizeOfMetadataPushFrame(frame) {\n return (FRAME_HEADER_SIZE + (frame.metadata != null ? frame.metadata.byteLength : 0));\n}\nfunction deserializeRequestFnfFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_FNF frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_FNF,\n };\n readPayload(buffer, frame, FRAME_HEADER_SIZE);\n return frame;\n}\nfunction deserializeRequestResponseFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_RESPONSE frame, expected stream id to be > 0.\"\n // );\n // const length = buffer.length;\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_RESPONSE,\n };\n readPayload(buffer, frame, FRAME_HEADER_SIZE);\n return frame;\n}\nfunction deserializeMetadataPushFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid METADATA_PUSH frame, expected stream id to be 0.\"\n // );\n // const length = buffer.length;\n return {\n flags: flags,\n // length,\n metadata: length === FRAME_HEADER_SIZE\n ? null\n : buffer.slice(FRAME_HEADER_SIZE, length),\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.METADATA_PUSH,\n };\n}\n/**\n * Writes a REQUEST_STREAM or REQUEST_CHANNEL frame to a new buffer and returns\n * it.\n *\n * Note that these frames have the same shape and only differ in their type.\n *\n * Prefix size is for requestN (uint32 = 4).\n */\nvar REQUEST_MANY_HEADER = 4;\nfunction serializeRequestManyFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + REQUEST_MANY_HEADER + payloadLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt32BE(frame.requestN, offset);\n writePayload(frame, buffer, offset);\n return buffer;\n}\nfunction sizeOfRequestManyFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n return FRAME_HEADER_SIZE + REQUEST_MANY_HEADER + payloadLength;\n}\nfunction deserializeRequestStreamFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var requestN = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // requestN > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n // requestN\n // );\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n requestN: requestN,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_STREAM,\n };\n readPayload(buffer, frame, offset);\n return frame;\n}\nfunction deserializeRequestChannelFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_CHANNEL frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var requestN = buffer.readInt32BE(offset);\n offset += 4;\n // invariant(\n // requestN > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n // requestN\n // );\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n requestN: requestN,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_CHANNEL,\n };\n readPayload(buffer, frame, offset);\n return frame;\n}\n/**\n * Writes a REQUEST_N frame to a new buffer and returns it.\n *\n * Prefix size is for requestN (uint32 = 4).\n */\nvar REQUEST_N_HEADER = 4;\nfunction serializeRequestNFrame(frame) {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + REQUEST_N_HEADER);\n var offset = writeHeader(frame, buffer);\n buffer.writeUInt32BE(frame.requestN, offset);\n return buffer;\n}\nfunction sizeOfRequestNFrame(frame) {\n return FRAME_HEADER_SIZE + REQUEST_N_HEADER;\n}\nfunction deserializeRequestNFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_N frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var requestN = buffer.readInt32BE(FRAME_HEADER_SIZE);\n // invariant(\n // requestN > 0,\n // \"RSocketBinaryFraming: Invalid REQUEST_STREAM frame, expected requestN to be > 0, got `%s`.\",\n // requestN\n // );\n return {\n flags: flags,\n // length,\n requestN: requestN,\n streamId: streamId,\n type: Frames_1.FrameTypes.REQUEST_N,\n };\n}\n/**\n * Writes a CANCEL frame to a new buffer and returns it.\n */\nfunction serializeCancelFrame(frame) {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE);\n writeHeader(frame, buffer);\n return buffer;\n}\nfunction sizeOfCancelFrame(frame) {\n return FRAME_HEADER_SIZE;\n}\nfunction deserializeCancelFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid CANCEL frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n return {\n flags: flags,\n // length,\n streamId: streamId,\n type: Frames_1.FrameTypes.CANCEL,\n };\n}\n/**\n * Writes a PAYLOAD frame to a new buffer and returns it.\n */\nfunction serializePayloadFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + payloadLength);\n var offset = writeHeader(frame, buffer);\n writePayload(frame, buffer, offset);\n return buffer;\n}\nfunction sizeOfPayloadFrame(frame) {\n var payloadLength = getPayloadLength(frame);\n return FRAME_HEADER_SIZE + payloadLength;\n}\nfunction deserializePayloadFrame(buffer, streamId, flags) {\n // invariant(\n // streamId > 0,\n // \"RSocketBinaryFraming: Invalid PAYLOAD frame, expected stream id to be > 0.\"\n // );\n var length = buffer.length;\n var frame = {\n data: null,\n flags: flags,\n // length,\n metadata: null,\n streamId: streamId,\n type: Frames_1.FrameTypes.PAYLOAD,\n };\n readPayload(buffer, frame, FRAME_HEADER_SIZE);\n return frame;\n}\n/**\n * Writes a RESUME frame into a new buffer and returns it.\n *\n * Fixed size is:\n * - major version (uint16 = 2)\n * - minor version (uint16 = 2)\n * - token length (uint16 = 2)\n * - client position (uint64 = 8)\n * - server position (uint64 = 8)\n */\nvar RESUME_FIXED_SIZE = 22;\nfunction serializeResumeFrame(frame) {\n var resumeTokenLength = frame.resumeToken.byteLength;\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + RESUME_FIXED_SIZE + resumeTokenLength);\n var offset = writeHeader(frame, buffer);\n offset = buffer.writeUInt16BE(frame.majorVersion, offset);\n offset = buffer.writeUInt16BE(frame.minorVersion, offset);\n offset = buffer.writeUInt16BE(resumeTokenLength, offset);\n offset += frame.resumeToken.copy(buffer, offset);\n offset = writeUInt64BE(buffer, frame.serverPosition, offset);\n writeUInt64BE(buffer, frame.clientPosition, offset);\n return buffer;\n}\nfunction sizeOfResumeFrame(frame) {\n var resumeTokenLength = frame.resumeToken.byteLength;\n return FRAME_HEADER_SIZE + RESUME_FIXED_SIZE + resumeTokenLength;\n}\nfunction deserializeResumeFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid RESUME frame, expected stream id to be 0.\"\n // );\n var length = buffer.length;\n var offset = FRAME_HEADER_SIZE;\n var majorVersion = buffer.readUInt16BE(offset);\n offset += 2;\n var minorVersion = buffer.readUInt16BE(offset);\n offset += 2;\n var resumeTokenLength = buffer.readInt16BE(offset);\n offset += 2;\n // invariant(\n // resumeTokenLength >= 0 && resumeTokenLength <= MAX_RESUME_LENGTH,\n // \"RSocketBinaryFraming: Invalid SETUP frame, expected resumeToken length \" +\n // \"to be >= 0 and <= %s. Got `%s`.\",\n // MAX_RESUME_LENGTH,\n // resumeTokenLength\n // );\n var resumeToken = buffer.slice(offset, offset + resumeTokenLength);\n offset += resumeTokenLength;\n var serverPosition = readUInt64BE(buffer, offset);\n offset += 8;\n var clientPosition = readUInt64BE(buffer, offset);\n offset += 8;\n return {\n clientPosition: clientPosition,\n flags: flags,\n // length,\n majorVersion: majorVersion,\n minorVersion: minorVersion,\n resumeToken: resumeToken,\n serverPosition: serverPosition,\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.RESUME,\n };\n}\n/**\n * Writes a RESUME_OK frame into a new buffer and returns it.\n *\n * Fixed size is:\n * - client position (uint64 = 8)\n */\nvar RESUME_OK_FIXED_SIZE = 8;\nfunction serializeResumeOkFrame(frame) {\n var buffer = Buffer.allocUnsafe(FRAME_HEADER_SIZE + RESUME_OK_FIXED_SIZE);\n var offset = writeHeader(frame, buffer);\n writeUInt64BE(buffer, frame.clientPosition, offset);\n return buffer;\n}\nfunction sizeOfResumeOkFrame(frame) {\n return FRAME_HEADER_SIZE + RESUME_OK_FIXED_SIZE;\n}\nfunction deserializeResumeOkFrame(buffer, streamId, flags) {\n // invariant(\n // streamId === 0,\n // \"RSocketBinaryFraming: Invalid RESUME frame, expected stream id to be 0.\"\n // );\n var length = buffer.length;\n var clientPosition = readUInt64BE(buffer, FRAME_HEADER_SIZE);\n return {\n clientPosition: clientPosition,\n flags: flags,\n // length,\n // streamId,\n streamId: 0,\n type: Frames_1.FrameTypes.RESUME_OK,\n };\n}\n/**\n * Write the header of the frame into the buffer.\n */\nfunction writeHeader(frame, buffer) {\n var offset = buffer.writeInt32BE(frame.streamId, 0);\n // shift frame to high 6 bits, extract lowest 10 bits from flags\n return buffer.writeUInt16BE((frame.type << exports.FRAME_TYPE_OFFFSET) | (frame.flags & exports.FLAGS_MASK), offset);\n}\n/**\n * Determine the length of the payload section of a frame. Only applies to\n * frame types that MAY have both metadata and data.\n */\nfunction getPayloadLength(frame) {\n var payloadLength = 0;\n if (frame.data != null) {\n payloadLength += frame.data.byteLength;\n }\n if (Frames_1.Flags.hasMetadata(frame.flags)) {\n payloadLength += UINT24_SIZE;\n if (frame.metadata != null) {\n payloadLength += frame.metadata.byteLength;\n }\n }\n return payloadLength;\n}\n/**\n * Write the payload of a frame into the given buffer. Only applies to frame\n * types that MAY have both metadata and data.\n */\nfunction writePayload(frame, buffer, offset) {\n if (Frames_1.Flags.hasMetadata(frame.flags)) {\n if (frame.metadata != null) {\n var metaLength = frame.metadata.byteLength;\n offset = writeUInt24BE(buffer, metaLength, offset);\n offset += frame.metadata.copy(buffer, offset);\n }\n else {\n offset = writeUInt24BE(buffer, 0, offset);\n }\n }\n if (frame.data != null) {\n frame.data.copy(buffer, offset);\n }\n}\n/**\n * Read the payload from a buffer and write it into the frame. Only applies to\n * frame types that MAY have both metadata and data.\n */\nfunction readPayload(buffer, frame, offset) {\n if (Frames_1.Flags.hasMetadata(frame.flags)) {\n var metaLength = readUInt24BE(buffer, offset);\n offset += UINT24_SIZE;\n if (metaLength > 0) {\n frame.metadata = buffer.slice(offset, offset + metaLength);\n offset += metaLength;\n }\n }\n if (offset < buffer.length) {\n frame.data = buffer.slice(offset, buffer.length);\n }\n}\n// exported as class to facilitate testing\nvar Deserializer = /** @class */ (function () {\n function Deserializer() {\n }\n /**\n * Read a frame from the buffer.\n */\n Deserializer.prototype.deserializeFrame = function (buffer) {\n return deserializeFrame(buffer);\n };\n /**\n * Reads a frame from a buffer that is prefixed with the frame length.\n */\n Deserializer.prototype.deserializeFrameWithLength = function (buffer) {\n return deserializeFrameWithLength(buffer);\n };\n /**\n * Given a buffer that may contain zero or more length-prefixed frames followed\n * by zero or more bytes of a (partial) subsequent frame, returns an array of\n * the frames and a int representing the buffer offset.\n */\n Deserializer.prototype.deserializeFrames = function (buffer) {\n return deserializeFrames(buffer);\n };\n return Deserializer;\n}());\nexports.Deserializer = Deserializer;\n//# sourceMappingURL=Codecs.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Common.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deferred = void 0;\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n this._done = false;\n this.onCloseCallbacks = [];\n }\n Object.defineProperty(Deferred.prototype, \"done\", {\n get: function () {\n return this._done;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Signals to an observer that the Deferred operation has been closed, which invokes\n * the provided `onClose` callback.\n */\n Deferred.prototype.close = function (error) {\n var e_1, _a, e_2, _b;\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n this._done = true;\n this._error = error;\n if (error) {\n try {\n for (var _c = __values(this.onCloseCallbacks), _d = _c.next(); !_d.done; _d = _c.next()) {\n var callback = _d.value;\n callback(error);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return;\n }\n try {\n for (var _e = __values(this.onCloseCallbacks), _f = _e.next(); !_f.done; _f = _e.next()) {\n var callback = _f.value;\n callback();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n /**\n * Registers a callback to be called when the Closeable is closed. optionally with an Error.\n */\n Deferred.prototype.onClose = function (callback) {\n if (this._done) {\n callback(this._error);\n return;\n }\n this.onCloseCallbacks.push(callback);\n };\n return Deferred;\n}());\nexports.Deferred = Deferred;\n//# sourceMappingURL=Deferred.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorCodes = exports.RSocketError = void 0;\nvar RSocketError = /** @class */ (function (_super) {\n __extends(RSocketError, _super);\n function RSocketError(code, message) {\n var _this = _super.call(this, message) || this;\n _this.code = code;\n return _this;\n }\n return RSocketError;\n}(Error));\nexports.RSocketError = RSocketError;\nvar ErrorCodes;\n(function (ErrorCodes) {\n ErrorCodes[ErrorCodes[\"RESERVED\"] = 0] = \"RESERVED\";\n ErrorCodes[ErrorCodes[\"INVALID_SETUP\"] = 1] = \"INVALID_SETUP\";\n ErrorCodes[ErrorCodes[\"UNSUPPORTED_SETUP\"] = 2] = \"UNSUPPORTED_SETUP\";\n ErrorCodes[ErrorCodes[\"REJECTED_SETUP\"] = 3] = \"REJECTED_SETUP\";\n ErrorCodes[ErrorCodes[\"REJECTED_RESUME\"] = 4] = \"REJECTED_RESUME\";\n ErrorCodes[ErrorCodes[\"CONNECTION_CLOSE\"] = 258] = \"CONNECTION_CLOSE\";\n ErrorCodes[ErrorCodes[\"CONNECTION_ERROR\"] = 257] = \"CONNECTION_ERROR\";\n ErrorCodes[ErrorCodes[\"APPLICATION_ERROR\"] = 513] = \"APPLICATION_ERROR\";\n ErrorCodes[ErrorCodes[\"REJECTED\"] = 514] = \"REJECTED\";\n ErrorCodes[ErrorCodes[\"CANCELED\"] = 515] = \"CANCELED\";\n ErrorCodes[ErrorCodes[\"INVALID\"] = 516] = \"INVALID\";\n ErrorCodes[ErrorCodes[\"RESERVED_EXTENSION\"] = 4294967295] = \"RESERVED_EXTENSION\";\n})(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {}));\n//# sourceMappingURL=Errors.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=RSocket.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = exports.ResumableClientServerInputMultiplexerDemultiplexer = exports.ClientServerInputMultiplexerDemultiplexer = exports.StreamIdGenerator = void 0;\nvar _1 = require(\".\");\nvar Deferred_1 = require(\"./Deferred\");\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar StreamIdGenerator;\n(function (StreamIdGenerator) {\n function create(seedId) {\n return new StreamIdGeneratorImpl(seedId);\n }\n StreamIdGenerator.create = create;\n var StreamIdGeneratorImpl = /** @class */ (function () {\n function StreamIdGeneratorImpl(currentId) {\n this.currentId = currentId;\n }\n StreamIdGeneratorImpl.prototype.next = function (handler) {\n var nextId = this.currentId + 2;\n if (!handler(nextId)) {\n return;\n }\n this.currentId = nextId;\n };\n return StreamIdGeneratorImpl;\n }());\n})(StreamIdGenerator = exports.StreamIdGenerator || (exports.StreamIdGenerator = {}));\nvar ClientServerInputMultiplexerDemultiplexer = /** @class */ (function (_super) {\n __extends(ClientServerInputMultiplexerDemultiplexer, _super);\n function ClientServerInputMultiplexerDemultiplexer(streamIdSupplier, outbound, closeable) {\n var _this = _super.call(this) || this;\n _this.streamIdSupplier = streamIdSupplier;\n _this.outbound = outbound;\n _this.closeable = closeable;\n _this.registry = {};\n closeable.onClose(_this.close.bind(_this));\n return _this;\n }\n ClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n if (Frames_1.Frame.isConnection(frame)) {\n if (frame.type === _1.FrameTypes.RESERVED) {\n // TODO: throw\n return;\n }\n this.connectionFramesHandler.handle(frame);\n // TODO: Connection Handler\n }\n else if (Frames_1.Frame.isRequest(frame)) {\n if (this.registry[frame.streamId]) {\n // TODO: Send error and close connection\n return;\n }\n this.requestFramesHandler.handle(frame, this);\n }\n else {\n var handler = this.registry[frame.streamId];\n if (!handler) {\n // TODO: add validation\n return;\n }\n handler.handle(frame);\n }\n // TODO: add extensions support\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.connectionInbound = function (handler) {\n if (this.connectionFramesHandler) {\n throw new Error(\"Connection frame handler has already been installed\");\n }\n this.connectionFramesHandler = handler;\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.handleRequestStream = function (handler) {\n if (this.requestFramesHandler) {\n throw new Error(\"Stream handler has already been installed\");\n }\n this.requestFramesHandler = handler;\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.send = function (frame) {\n this.outbound.send(frame);\n };\n Object.defineProperty(ClientServerInputMultiplexerDemultiplexer.prototype, \"connectionOutbound\", {\n get: function () {\n return this;\n },\n enumerable: false,\n configurable: true\n });\n ClientServerInputMultiplexerDemultiplexer.prototype.createRequestStream = function (streamHandler) {\n var _this = this;\n // handle requester side stream registration\n if (this.done) {\n streamHandler.handleReject(new Error(\"Already closed\"));\n return;\n }\n var registry = this.registry;\n this.streamIdSupplier.next(function (streamId) { return streamHandler.handleReady(streamId, _this); }, Object.keys(registry));\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.connect = function (handler) {\n this.registry[handler.streamId] = handler;\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.disconnect = function (stream) {\n delete this.registry[stream.streamId];\n };\n ClientServerInputMultiplexerDemultiplexer.prototype.close = function (error) {\n if (this.done) {\n _super.prototype.close.call(this, error);\n return;\n }\n for (var streamId in this.registry) {\n var stream = this.registry[streamId];\n stream.close(new Error(\"Closed. \".concat(error ? \"Original cause [\".concat(error, \"].\") : \"\")));\n }\n _super.prototype.close.call(this, error);\n };\n return ClientServerInputMultiplexerDemultiplexer;\n}(Deferred_1.Deferred));\nexports.ClientServerInputMultiplexerDemultiplexer = ClientServerInputMultiplexerDemultiplexer;\nvar ResumableClientServerInputMultiplexerDemultiplexer = /** @class */ (function (_super) {\n __extends(ResumableClientServerInputMultiplexerDemultiplexer, _super);\n function ResumableClientServerInputMultiplexerDemultiplexer(streamIdSupplier, outbound, closeable, frameStore, token, sessionStoreOrReconnector, sessionTimeout) {\n var _this = _super.call(this, streamIdSupplier, outbound, new Deferred_1.Deferred()) || this;\n _this.frameStore = frameStore;\n _this.token = token;\n _this.sessionTimeout = sessionTimeout;\n if (sessionStoreOrReconnector instanceof Function) {\n _this.reconnector = sessionStoreOrReconnector;\n }\n else {\n _this.sessionStore = sessionStoreOrReconnector;\n }\n closeable.onClose(_this.handleConnectionClose.bind(_this));\n return _this;\n }\n ResumableClientServerInputMultiplexerDemultiplexer.prototype.send = function (frame) {\n if (Frames_1.Frame.isConnection(frame)) {\n if (frame.type === _1.FrameTypes.KEEPALIVE) {\n frame.lastReceivedPosition = this.frameStore.lastReceivedFramePosition;\n }\n else if (frame.type === _1.FrameTypes.ERROR) {\n this.outbound.send(frame);\n if (this.sessionStore) {\n delete this.sessionStore[this.token];\n }\n _super.prototype.close.call(this, new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n }\n else {\n this.frameStore.store(frame);\n }\n this.outbound.send(frame);\n };\n ResumableClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n if (Frames_1.Frame.isConnection(frame)) {\n if (frame.type === _1.FrameTypes.KEEPALIVE) {\n try {\n this.frameStore.dropTo(frame.lastReceivedPosition);\n }\n catch (re) {\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n flags: _1.Flags.NONE,\n code: re.code,\n message: re.message,\n });\n this.close(re);\n }\n }\n else if (frame.type === _1.FrameTypes.ERROR) {\n _super.prototype.handle.call(this, frame);\n if (this.sessionStore) {\n delete this.sessionStore[this.token];\n }\n _super.prototype.close.call(this, new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n }\n else {\n this.frameStore.record(frame);\n }\n _super.prototype.handle.call(this, frame);\n };\n ResumableClientServerInputMultiplexerDemultiplexer.prototype.resume = function (frame, outbound, closeable) {\n this.outbound = outbound;\n switch (frame.type) {\n case _1.FrameTypes.RESUME: {\n clearTimeout(this.timeoutId);\n if (this.frameStore.lastReceivedFramePosition < frame.clientPosition) {\n var e = new Errors_1.RSocketError(_1.ErrorCodes.REJECTED_RESUME, \"Impossible to resume since first available client frame position is greater than last received server frame position\");\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n flags: _1.Flags.NONE,\n code: e.code,\n message: e.message,\n });\n this.close(e);\n return;\n }\n try {\n this.frameStore.dropTo(frame.serverPosition);\n }\n catch (re) {\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n flags: _1.Flags.NONE,\n code: re.code,\n message: re.message,\n });\n this.close(re);\n return;\n }\n this.outbound.send({\n type: _1.FrameTypes.RESUME_OK,\n streamId: 0,\n flags: _1.Flags.NONE,\n clientPosition: this.frameStore.lastReceivedFramePosition,\n });\n break;\n }\n case _1.FrameTypes.RESUME_OK: {\n try {\n this.frameStore.dropTo(frame.clientPosition);\n }\n catch (re) {\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n flags: _1.Flags.NONE,\n code: re.code,\n message: re.message,\n });\n this.close(re);\n }\n break;\n }\n }\n this.frameStore.drain(this.outbound.send.bind(this.outbound));\n closeable.onClose(this.handleConnectionClose.bind(this));\n this.connectionFramesHandler.resume();\n };\n ResumableClientServerInputMultiplexerDemultiplexer.prototype.handleConnectionClose = function (_error) {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.connectionFramesHandler.pause();\n if (!this.reconnector) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.reconnector(this, this.frameStore)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n this.close(e_1);\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n this.timeoutId = setTimeout(this.close.bind(this), this.sessionTimeout);\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n return ResumableClientServerInputMultiplexerDemultiplexer;\n}(ClientServerInputMultiplexerDemultiplexer));\nexports.ResumableClientServerInputMultiplexerDemultiplexer = ResumableClientServerInputMultiplexerDemultiplexer;\nvar ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = /** @class */ (function () {\n function ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(outbound, closeable, delegate) {\n this.outbound = outbound;\n this.closeable = closeable;\n this.delegate = delegate;\n this.resumed = false;\n }\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.close = function () {\n this.delegate.close();\n };\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.onClose = function (callback) {\n this.delegate.onClose(callback);\n };\n Object.defineProperty(ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype, \"connectionOutbound\", {\n get: function () {\n return this.delegate.connectionOutbound;\n },\n enumerable: false,\n configurable: true\n });\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.createRequestStream = function (streamHandler) {\n this.delegate.createRequestStream(streamHandler);\n };\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.connectionInbound = function (handler) {\n this.delegate.connectionInbound(handler);\n };\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.handleRequestStream = function (handler) {\n this.delegate.handleRequestStream(handler);\n };\n ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer.prototype.handle = function (frame) {\n var _this = this;\n if (!this.resumed) {\n if (frame.type === _1.FrameTypes.RESUME_OK) {\n this.resumed = true;\n this.delegate.resume(frame, this.outbound, this.closeable);\n return;\n }\n else {\n this.outbound.send({\n type: _1.FrameTypes.ERROR,\n streamId: 0,\n code: _1.ErrorCodes.CONNECTION_ERROR,\n message: \"Incomplete RESUME handshake. Unexpected frame \".concat(frame.type, \" received\"),\n flags: _1.Flags.NONE,\n });\n this.closeable.close();\n this.closeable.onClose(function () {\n return _this.delegate.close(new Errors_1.RSocketError(_1.ErrorCodes.CONNECTION_ERROR, \"Incomplete RESUME handshake. Unexpected frame \".concat(frame.type, \" received\")));\n });\n }\n return;\n }\n this.delegate.handle(frame);\n };\n return ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer;\n}());\nexports.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer = ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer;\n//# sourceMappingURL=ClientServerMultiplexerDemultiplexer.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fragmentWithRequestN = exports.fragment = exports.isFragmentable = void 0;\nvar Frames_1 = require(\"./Frames\");\nfunction isFragmentable(payload, fragmentSize, frameType) {\n if (fragmentSize === 0) {\n return false;\n }\n return (payload.data.byteLength +\n (payload.metadata ? payload.metadata.byteLength + Frames_1.Lengths.METADATA : 0) +\n (frameType == Frames_1.FrameTypes.REQUEST_STREAM ||\n frameType == Frames_1.FrameTypes.REQUEST_CHANNEL\n ? Frames_1.Lengths.REQUEST\n : 0) >\n fragmentSize);\n}\nexports.isFragmentable = isFragmentable;\nfunction fragment(streamId, payload, fragmentSize, frameType, isComplete) {\n var dataLength, firstFrame, remaining, metadata, metadataLength, metadataPosition, nextMetadataPosition, nextMetadataPosition, dataPosition, data, nextDataPosition, nextDataPosition;\n var _a, _b;\n if (isComplete === void 0) { isComplete = false; }\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n dataLength = (_b = (_a = payload.data) === null || _a === void 0 ? void 0 : _a.byteLength) !== null && _b !== void 0 ? _b : 0;\n firstFrame = frameType !== Frames_1.FrameTypes.PAYLOAD;\n remaining = fragmentSize;\n if (!payload.metadata) return [3 /*break*/, 6];\n metadataLength = payload.metadata.byteLength;\n if (!(metadataLength === 0)) return [3 /*break*/, 1];\n remaining -= Frames_1.Lengths.METADATA;\n metadata = Buffer.allocUnsafe(0);\n return [3 /*break*/, 6];\n case 1:\n metadataPosition = 0;\n if (!firstFrame) return [3 /*break*/, 3];\n remaining -= Frames_1.Lengths.METADATA;\n nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n remaining -= metadata.byteLength;\n metadataPosition = nextMetadataPosition;\n if (!(remaining === 0)) return [3 /*break*/, 3];\n firstFrame = false;\n return [4 /*yield*/, {\n type: frameType,\n flags: Frames_1.Flags.FOLLOWS | Frames_1.Flags.METADATA,\n data: undefined,\n metadata: metadata,\n streamId: streamId,\n }];\n case 2:\n _c.sent();\n metadata = undefined;\n remaining = fragmentSize;\n _c.label = 3;\n case 3:\n if (!(metadataPosition < metadataLength)) return [3 /*break*/, 6];\n remaining -= Frames_1.Lengths.METADATA;\n nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n remaining -= metadata.byteLength;\n metadataPosition = nextMetadataPosition;\n if (!(remaining === 0 || dataLength === 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, {\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT |\n Frames_1.Flags.METADATA |\n (metadataPosition === metadataLength &&\n isComplete &&\n dataLength === 0\n ? Frames_1.Flags.COMPLETE\n : Frames_1.Flags.FOLLOWS),\n data: undefined,\n metadata: metadata,\n streamId: streamId,\n }];\n case 4:\n _c.sent();\n metadata = undefined;\n remaining = fragmentSize;\n _c.label = 5;\n case 5: return [3 /*break*/, 3];\n case 6:\n dataPosition = 0;\n if (!firstFrame) return [3 /*break*/, 8];\n nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n data = payload.data.slice(dataPosition, nextDataPosition);\n remaining -= data.byteLength;\n dataPosition = nextDataPosition;\n return [4 /*yield*/, {\n type: frameType,\n flags: Frames_1.Flags.FOLLOWS | (metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n data: data,\n metadata: metadata,\n streamId: streamId,\n }];\n case 7:\n _c.sent();\n metadata = undefined;\n data = undefined;\n remaining = fragmentSize;\n _c.label = 8;\n case 8:\n if (!(dataPosition < dataLength)) return [3 /*break*/, 10];\n nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n data = payload.data.slice(dataPosition, nextDataPosition);\n remaining -= data.byteLength;\n dataPosition = nextDataPosition;\n return [4 /*yield*/, {\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: dataPosition === dataLength\n ? (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n Frames_1.Flags.NEXT |\n (metadata ? Frames_1.Flags.METADATA : 0)\n : Frames_1.Flags.FOLLOWS | Frames_1.Flags.NEXT | (metadata ? Frames_1.Flags.METADATA : 0),\n data: data,\n metadata: metadata,\n streamId: streamId,\n }];\n case 9:\n _c.sent();\n metadata = undefined;\n data = undefined;\n remaining = fragmentSize;\n return [3 /*break*/, 8];\n case 10: return [2 /*return*/];\n }\n });\n}\nexports.fragment = fragment;\nfunction fragmentWithRequestN(streamId, payload, fragmentSize, frameType, requestN, isComplete) {\n var dataLength, firstFrame, remaining, metadata, metadataLength, metadataPosition, nextMetadataPosition, nextMetadataPosition, dataPosition, data, nextDataPosition, nextDataPosition;\n var _a, _b;\n if (isComplete === void 0) { isComplete = false; }\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n dataLength = (_b = (_a = payload.data) === null || _a === void 0 ? void 0 : _a.byteLength) !== null && _b !== void 0 ? _b : 0;\n firstFrame = true;\n remaining = fragmentSize;\n if (!payload.metadata) return [3 /*break*/, 6];\n metadataLength = payload.metadata.byteLength;\n if (!(metadataLength === 0)) return [3 /*break*/, 1];\n remaining -= Frames_1.Lengths.METADATA;\n metadata = Buffer.allocUnsafe(0);\n return [3 /*break*/, 6];\n case 1:\n metadataPosition = 0;\n if (!firstFrame) return [3 /*break*/, 3];\n remaining -= Frames_1.Lengths.METADATA + Frames_1.Lengths.REQUEST;\n nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n remaining -= metadata.byteLength;\n metadataPosition = nextMetadataPosition;\n if (!(remaining === 0)) return [3 /*break*/, 3];\n firstFrame = false;\n return [4 /*yield*/, {\n type: frameType,\n flags: Frames_1.Flags.FOLLOWS | Frames_1.Flags.METADATA,\n data: undefined,\n requestN: requestN,\n metadata: metadata,\n streamId: streamId,\n }];\n case 2:\n _c.sent();\n metadata = undefined;\n remaining = fragmentSize;\n _c.label = 3;\n case 3:\n if (!(metadataPosition < metadataLength)) return [3 /*break*/, 6];\n remaining -= Frames_1.Lengths.METADATA;\n nextMetadataPosition = Math.min(metadataLength, metadataPosition + remaining);\n metadata = payload.metadata.slice(metadataPosition, nextMetadataPosition);\n remaining -= metadata.byteLength;\n metadataPosition = nextMetadataPosition;\n if (!(remaining === 0 || dataLength === 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, {\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT |\n Frames_1.Flags.METADATA |\n (metadataPosition === metadataLength &&\n isComplete &&\n dataLength === 0\n ? Frames_1.Flags.COMPLETE\n : Frames_1.Flags.FOLLOWS),\n data: undefined,\n metadata: metadata,\n streamId: streamId,\n }];\n case 4:\n _c.sent();\n metadata = undefined;\n remaining = fragmentSize;\n _c.label = 5;\n case 5: return [3 /*break*/, 3];\n case 6:\n dataPosition = 0;\n if (!firstFrame) return [3 /*break*/, 8];\n remaining -= Frames_1.Lengths.REQUEST;\n nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n data = payload.data.slice(dataPosition, nextDataPosition);\n remaining -= data.byteLength;\n dataPosition = nextDataPosition;\n return [4 /*yield*/, {\n type: frameType,\n flags: Frames_1.Flags.FOLLOWS | (metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n data: data,\n requestN: requestN,\n metadata: metadata,\n streamId: streamId,\n }];\n case 7:\n _c.sent();\n metadata = undefined;\n data = undefined;\n remaining = fragmentSize;\n _c.label = 8;\n case 8:\n if (!(dataPosition < dataLength)) return [3 /*break*/, 10];\n nextDataPosition = Math.min(dataLength, dataPosition + remaining);\n data = payload.data.slice(dataPosition, nextDataPosition);\n remaining -= data.byteLength;\n dataPosition = nextDataPosition;\n return [4 /*yield*/, {\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: dataPosition === dataLength\n ? (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n Frames_1.Flags.NEXT |\n (metadata ? Frames_1.Flags.METADATA : 0)\n : Frames_1.Flags.FOLLOWS | Frames_1.Flags.NEXT | (metadata ? Frames_1.Flags.METADATA : 0),\n data: data,\n metadata: metadata,\n streamId: streamId,\n }];\n case 9:\n _c.sent();\n metadata = undefined;\n data = undefined;\n remaining = fragmentSize;\n return [3 /*break*/, 8];\n case 10: return [2 /*return*/];\n }\n });\n}\nexports.fragmentWithRequestN = fragmentWithRequestN;\n//# sourceMappingURL=Fragmenter.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cancel = exports.reassemble = exports.add = void 0;\nfunction add(holder, dataFragment, metadataFragment) {\n if (!holder.hasFragments) {\n holder.hasFragments = true;\n holder.data = dataFragment;\n if (metadataFragment) {\n holder.metadata = metadataFragment;\n }\n return true;\n }\n // TODO: add validation\n holder.data = holder.data\n ? Buffer.concat([holder.data, dataFragment])\n : dataFragment;\n if (holder.metadata && metadataFragment) {\n holder.metadata = Buffer.concat([holder.metadata, metadataFragment]);\n }\n return true;\n}\nexports.add = add;\nfunction reassemble(holder, dataFragment, metadataFragment) {\n // TODO: add validation\n holder.hasFragments = false;\n var data = holder.data\n ? Buffer.concat([holder.data, dataFragment])\n : dataFragment;\n holder.data = undefined;\n if (holder.metadata) {\n var metadata = metadataFragment\n ? Buffer.concat([holder.metadata, metadataFragment])\n : holder.metadata;\n holder.metadata = undefined;\n return {\n data: data,\n metadata: metadata,\n };\n }\n return {\n data: data,\n };\n}\nexports.reassemble = reassemble;\nfunction cancel(holder) {\n holder.hasFragments = false;\n holder.data = undefined;\n holder.metadata = undefined;\n}\nexports.cancel = cancel;\n//# sourceMappingURL=Reassembler.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestChannelResponderStream = exports.RequestChannelRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestChannelRequesterStream = /** @class */ (function () {\n function RequestChannelRequesterStream(payload, isComplete, receiver, fragmentSize, initialRequestN, leaseManager) {\n this.payload = payload;\n this.isComplete = isComplete;\n this.receiver = receiver;\n this.fragmentSize = fragmentSize;\n this.initialRequestN = initialRequestN;\n this.leaseManager = leaseManager;\n this.streamType = Frames_1.FrameTypes.REQUEST_CHANNEL;\n // TODO: add payload size validation\n }\n RequestChannelRequesterStream.prototype.handleReady = function (streamId, stream) {\n var e_1, _a;\n if (this.outboundDone) {\n return false;\n }\n this.streamId = streamId;\n this.stream = stream;\n stream.connect(this);\n var isCompleted = this.isComplete;\n if (isCompleted) {\n this.outboundDone = isCompleted;\n }\n if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_CHANNEL)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragmentWithRequestN)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_CHANNEL, this.initialRequestN, isCompleted)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_CHANNEL,\n data: this.payload.data,\n metadata: this.payload.metadata,\n requestN: this.initialRequestN,\n flags: (this.payload.metadata !== undefined ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n (isCompleted ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE),\n streamId: streamId,\n });\n }\n if (this.hasExtension) {\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: streamId,\n extendedContent: this.extendedContent,\n extendedType: this.extendedType,\n flags: this.flags,\n });\n }\n return true;\n };\n RequestChannelRequesterStream.prototype.handleReject = function (error) {\n if (this.inboundDone) {\n return;\n }\n this.inboundDone = true;\n this.outboundDone = true;\n this.receiver.onError(error);\n };\n RequestChannelRequesterStream.prototype.handle = function (frame) {\n var errorMessage;\n var frameType = frame.type;\n switch (frameType) {\n case Frames_1.FrameTypes.PAYLOAD: {\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n var hasNext = Frames_1.Flags.hasNext(frame.flags);\n if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n if (hasComplete) {\n this.inboundDone = true;\n if (this.outboundDone) {\n this.stream.disconnect(this);\n }\n if (!hasNext) {\n // TODO: add validation no frame in reassembly\n this.receiver.onComplete();\n return;\n }\n }\n var payload = this.hasFragments\n ? Reassembler.reassemble(this, frame.data, frame.metadata)\n : {\n data: frame.data,\n metadata: frame.metadata,\n };\n this.receiver.onNext(payload, hasComplete);\n return;\n }\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected frame size\";\n break;\n }\n case Frames_1.FrameTypes.CANCEL: {\n if (this.outboundDone) {\n return;\n }\n this.outboundDone = true;\n if (this.inboundDone) {\n this.stream.disconnect(this);\n }\n this.receiver.cancel();\n return;\n }\n case Frames_1.FrameTypes.REQUEST_N: {\n if (this.outboundDone) {\n return;\n }\n if (this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.request(frame.requestN);\n return;\n }\n case Frames_1.FrameTypes.ERROR: {\n var outboundDone = this.outboundDone;\n this.inboundDone = true;\n this.outboundDone = true;\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n if (!outboundDone) {\n this.receiver.cancel();\n }\n this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n case Frames_1.FrameTypes.EXT:\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n default: {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n }\n }\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n });\n this.stream.disconnect(this);\n };\n RequestChannelRequesterStream.prototype.request = function (n) {\n if (this.inboundDone) {\n return;\n }\n if (!this.streamId) {\n this.initialRequestN += n;\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_N,\n flags: Frames_1.Flags.NONE,\n requestN: n,\n streamId: this.streamId,\n });\n };\n RequestChannelRequesterStream.prototype.cancel = function () {\n var _a;\n var inboundDone = this.inboundDone;\n var outboundDone = this.outboundDone;\n if (inboundDone && outboundDone) {\n return;\n }\n this.inboundDone = true;\n this.outboundDone = true;\n if (!outboundDone) {\n this.receiver.cancel();\n }\n if (!this.streamId) {\n (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n return;\n }\n this.stream.send({\n type: inboundDone ? Frames_1.FrameTypes.ERROR : Frames_1.FrameTypes.CANCEL,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n code: Errors_1.ErrorCodes.CANCELED,\n message: \"Cancelled\",\n });\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n };\n RequestChannelRequesterStream.prototype.onNext = function (payload, isComplete) {\n var e_2, _a;\n if (this.outboundDone) {\n return;\n }\n if (isComplete) {\n this.outboundDone = true;\n if (this.inboundDone) {\n this.stream.disconnect(this);\n }\n }\n if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isComplete)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n streamId: this.streamId,\n flags: Frames_1.Flags.NEXT |\n (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n (isComplete ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE),\n data: payload.data,\n metadata: payload.metadata,\n });\n }\n };\n RequestChannelRequesterStream.prototype.onComplete = function () {\n if (!this.streamId) {\n this.isComplete = true;\n return;\n }\n if (this.outboundDone) {\n return;\n }\n this.outboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n streamId: this.streamId,\n flags: Frames_1.Flags.COMPLETE,\n data: null,\n metadata: null,\n });\n if (this.inboundDone) {\n this.stream.disconnect(this);\n }\n };\n RequestChannelRequesterStream.prototype.onError = function (error) {\n if (this.outboundDone) {\n return;\n }\n var inboundDone = this.inboundDone;\n this.outboundDone = true;\n this.inboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n code: error instanceof Errors_1.RSocketError\n ? error.code\n : Errors_1.ErrorCodes.APPLICATION_ERROR,\n message: error.message,\n });\n this.stream.disconnect(this);\n if (!inboundDone) {\n this.receiver.onError(error);\n }\n };\n RequestChannelRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.outboundDone) {\n return;\n }\n if (!this.streamId) {\n this.hasExtension = true;\n this.extendedType = extendedType;\n this.extendedContent = content;\n this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n return;\n }\n this.stream.send({\n streamId: this.streamId,\n type: Frames_1.FrameTypes.EXT,\n extendedType: extendedType,\n extendedContent: content,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n });\n };\n RequestChannelRequesterStream.prototype.close = function (error) {\n if (this.inboundDone && this.outboundDone) {\n return;\n }\n var inboundDone = this.inboundDone;\n var outboundDone = this.outboundDone;\n this.inboundDone = true;\n this.outboundDone = true;\n Reassembler.cancel(this);\n if (!outboundDone) {\n this.receiver.cancel();\n }\n if (!inboundDone) {\n if (error) {\n this.receiver.onError(error);\n }\n else {\n this.receiver.onComplete();\n }\n }\n };\n return RequestChannelRequesterStream;\n}());\nexports.RequestChannelRequesterStream = RequestChannelRequesterStream;\nvar RequestChannelResponderStream = /** @class */ (function () {\n function RequestChannelResponderStream(streamId, stream, fragmentSize, handler, frame) {\n this.streamId = streamId;\n this.stream = stream;\n this.fragmentSize = fragmentSize;\n this.handler = handler;\n this.streamType = Frames_1.FrameTypes.REQUEST_CHANNEL;\n stream.connect(this);\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n Reassembler.add(this, frame.data, frame.metadata);\n this.initialRequestN = frame.requestN;\n this.isComplete = Frames_1.Flags.hasComplete(frame.flags);\n return;\n }\n var payload = {\n data: frame.data,\n metadata: frame.metadata,\n };\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n this.inboundDone = hasComplete;\n try {\n this.receiver = handler(payload, frame.requestN, hasComplete, this);\n if (this.outboundDone && this.defferedError) {\n this.receiver.onError(this.defferedError);\n }\n }\n catch (error) {\n if (this.outboundDone && !this.inboundDone) {\n this.cancel();\n }\n else {\n this.inboundDone = true;\n }\n this.onError(error);\n }\n }\n RequestChannelResponderStream.prototype.handle = function (frame) {\n var errorMessage;\n var frameType = frame.type;\n switch (frameType) {\n case Frames_1.FrameTypes.PAYLOAD: {\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected frame size\";\n break;\n }\n var payload = this.hasFragments\n ? Reassembler.reassemble(this, frame.data, frame.metadata)\n : {\n data: frame.data,\n metadata: frame.metadata,\n };\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n if (!this.receiver) {\n var inboundDone = this.isComplete || hasComplete;\n if (inboundDone) {\n this.inboundDone = true;\n if (this.outboundDone) {\n this.stream.disconnect(this);\n }\n }\n try {\n this.receiver = this.handler(payload, this.initialRequestN, inboundDone, this);\n if (this.outboundDone && this.defferedError) {\n }\n }\n catch (error) {\n if (this.outboundDone && !this.inboundDone) {\n this.cancel();\n }\n else {\n this.inboundDone = true;\n }\n this.onError(error);\n }\n }\n else {\n if (hasComplete) {\n this.inboundDone = true;\n if (this.outboundDone) {\n this.stream.disconnect(this);\n }\n if (!Frames_1.Flags.hasNext(frame.flags)) {\n this.receiver.onComplete();\n return;\n }\n }\n this.receiver.onNext(payload, hasComplete);\n }\n return;\n }\n case Frames_1.FrameTypes.REQUEST_N: {\n if (!this.receiver || this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.request(frame.requestN);\n return;\n }\n case Frames_1.FrameTypes.ERROR:\n case Frames_1.FrameTypes.CANCEL: {\n var inboundDone = this.inboundDone;\n var outboundDone = this.outboundDone;\n this.inboundDone = true;\n this.outboundDone = true;\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n if (!this.receiver) {\n return;\n }\n if (!outboundDone) {\n this.receiver.cancel();\n }\n if (!inboundDone) {\n var error = frameType === Frames_1.FrameTypes.CANCEL\n ? new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, \"Cancelled\")\n : new Errors_1.RSocketError(frame.code, frame.message);\n this.receiver.onError(error);\n }\n return;\n }\n case Frames_1.FrameTypes.EXT: {\n if (!this.receiver || this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n default: {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n // TODO: throws if strict\n }\n }\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.CANCELED,\n message: errorMessage,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n };\n RequestChannelResponderStream.prototype.onError = function (error) {\n if (this.outboundDone) {\n console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n var inboundDone = this.inboundDone;\n this.outboundDone = true;\n this.inboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: error instanceof Errors_1.RSocketError\n ? error.code\n : Errors_1.ErrorCodes.APPLICATION_ERROR,\n message: error.message,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n if (!inboundDone) {\n if (this.receiver) {\n this.receiver.onError(error);\n }\n else {\n this.defferedError = error;\n }\n }\n };\n RequestChannelResponderStream.prototype.onNext = function (payload, isCompletion) {\n var e_3, _a;\n if (this.outboundDone) {\n return;\n }\n if (isCompletion) {\n this.outboundDone = true;\n }\n // TODO: add payload size validation\n if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isCompletion)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT |\n (isCompletion ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n data: payload.data,\n metadata: payload.metadata,\n streamId: this.streamId,\n });\n }\n if (isCompletion && this.inboundDone) {\n this.stream.disconnect(this);\n }\n };\n RequestChannelResponderStream.prototype.onComplete = function () {\n if (this.outboundDone) {\n return;\n }\n this.outboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.COMPLETE,\n streamId: this.streamId,\n data: null,\n metadata: null,\n });\n if (this.inboundDone) {\n this.stream.disconnect(this);\n }\n };\n RequestChannelResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.outboundDone && this.inboundDone) {\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: this.streamId,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n extendedType: extendedType,\n extendedContent: content,\n });\n };\n RequestChannelResponderStream.prototype.request = function (n) {\n if (this.inboundDone) {\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_N,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n requestN: n,\n });\n };\n RequestChannelResponderStream.prototype.cancel = function () {\n if (this.inboundDone) {\n return;\n }\n this.inboundDone = true;\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n });\n if (this.outboundDone) {\n this.stream.disconnect(this);\n }\n };\n RequestChannelResponderStream.prototype.close = function (error) {\n if (this.inboundDone && this.outboundDone) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n var inboundDone = this.inboundDone;\n var outboundDone = this.outboundDone;\n this.inboundDone = true;\n this.outboundDone = true;\n Reassembler.cancel(this);\n var receiver = this.receiver;\n if (!receiver) {\n return;\n }\n if (!outboundDone) {\n receiver.cancel();\n }\n if (!inboundDone) {\n if (error) {\n receiver.onError(error);\n }\n else {\n receiver.onComplete();\n }\n }\n };\n return RequestChannelResponderStream;\n}());\nexports.RequestChannelResponderStream = RequestChannelResponderStream;\n//# sourceMappingURL=RequestChannelStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestFnfResponderStream = exports.RequestFnFRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestFnFRequesterStream = /** @class */ (function () {\n function RequestFnFRequesterStream(payload, receiver, fragmentSize, leaseManager) {\n this.payload = payload;\n this.receiver = receiver;\n this.fragmentSize = fragmentSize;\n this.leaseManager = leaseManager;\n this.streamType = Frames_1.FrameTypes.REQUEST_FNF;\n }\n RequestFnFRequesterStream.prototype.handleReady = function (streamId, stream) {\n var e_1, _a;\n if (this.done) {\n return false;\n }\n this.streamId = streamId;\n if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_FNF)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_FNF)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n stream.send(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n stream.send({\n type: Frames_1.FrameTypes.REQUEST_FNF,\n data: this.payload.data,\n metadata: this.payload.metadata,\n flags: this.payload.metadata ? Frames_1.Flags.METADATA : 0,\n streamId: streamId,\n });\n }\n this.done = true;\n this.receiver.onComplete();\n return true;\n };\n RequestFnFRequesterStream.prototype.handleReject = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n this.receiver.onError(error);\n };\n RequestFnFRequesterStream.prototype.cancel = function () {\n var _a;\n if (this.done) {\n return;\n }\n this.done = true;\n (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n };\n RequestFnFRequesterStream.prototype.handle = function (frame) {\n if (frame.type == Frames_1.FrameTypes.ERROR) {\n this.close(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, \"Received invalid frame\"));\n };\n RequestFnFRequesterStream.prototype.close = function (error) {\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n if (error) {\n this.receiver.onError(error);\n }\n else {\n this.receiver.onComplete();\n }\n };\n return RequestFnFRequesterStream;\n}());\nexports.RequestFnFRequesterStream = RequestFnFRequesterStream;\nvar RequestFnfResponderStream = /** @class */ (function () {\n function RequestFnfResponderStream(streamId, stream, handler, frame) {\n this.streamId = streamId;\n this.stream = stream;\n this.handler = handler;\n this.streamType = Frames_1.FrameTypes.REQUEST_FNF;\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n Reassembler.add(this, frame.data, frame.metadata);\n stream.connect(this);\n return;\n }\n var payload = {\n data: frame.data,\n metadata: frame.metadata,\n };\n try {\n this.cancellable = handler(payload, this);\n }\n catch (e) {\n // do nothing\n }\n }\n RequestFnfResponderStream.prototype.handle = function (frame) {\n var errorMessage;\n if (frame.type == Frames_1.FrameTypes.PAYLOAD) {\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected fragment size\";\n }\n else {\n this.stream.disconnect(this);\n var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n try {\n this.cancellable = this.handler(payload, this);\n }\n catch (e) {\n // do nothing\n }\n return;\n }\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n }\n this.done = true;\n if (frame.type != Frames_1.FrameTypes.CANCEL && frame.type != Frames_1.FrameTypes.ERROR) {\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.CANCELED,\n message: errorMessage,\n });\n }\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n // TODO: throws if strict\n };\n RequestFnfResponderStream.prototype.close = function (error) {\n var _a;\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n this.done = true;\n Reassembler.cancel(this);\n (_a = this.cancellable) === null || _a === void 0 ? void 0 : _a.cancel();\n };\n RequestFnfResponderStream.prototype.onError = function (error) { };\n RequestFnfResponderStream.prototype.onComplete = function () { };\n return RequestFnfResponderStream;\n}());\nexports.RequestFnfResponderStream = RequestFnfResponderStream;\n/*\nexport function request(\n payload: Payload,\n responderStream: UnidirectionalStream\n): Handler<Cancellable> {\n return {\n create: (r) => {\n const response = new RequestFnFRequesterHandler(\n payload,\n responderStream,\n r\n );\n\n r.add(response);\n\n return response;\n },\n };\n}\n\nexport function response(\n handler: (payload: Payload, responderStream: UnidirectionalStream,) => void\n): Handler<void> {\n return {\n create: (r) => new RequestFnfResponderHandler(),\n };\n} */\n//# sourceMappingURL=RequestFnFStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestResponseResponderStream = exports.RequestResponseRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestResponseRequesterStream = /** @class */ (function () {\n function RequestResponseRequesterStream(payload, receiver, fragmentSize, leaseManager) {\n this.payload = payload;\n this.receiver = receiver;\n this.fragmentSize = fragmentSize;\n this.leaseManager = leaseManager;\n this.streamType = Frames_1.FrameTypes.REQUEST_RESPONSE;\n }\n RequestResponseRequesterStream.prototype.handleReady = function (streamId, stream) {\n var e_1, _a;\n if (this.done) {\n return false;\n }\n this.streamId = streamId;\n this.stream = stream;\n stream.connect(this);\n if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_RESPONSE)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_RESPONSE)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_RESPONSE,\n data: this.payload.data,\n metadata: this.payload.metadata,\n flags: this.payload.metadata ? Frames_1.Flags.METADATA : 0,\n streamId: streamId,\n });\n }\n if (this.hasExtension) {\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: streamId,\n extendedContent: this.extendedContent,\n extendedType: this.extendedType,\n flags: this.flags,\n });\n }\n return true;\n };\n RequestResponseRequesterStream.prototype.handleReject = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n this.receiver.onError(error);\n };\n RequestResponseRequesterStream.prototype.handle = function (frame) {\n var errorMessage;\n var frameType = frame.type;\n switch (frameType) {\n case Frames_1.FrameTypes.PAYLOAD: {\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n var hasPayload = Frames_1.Flags.hasNext(frame.flags);\n if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n this.done = true;\n this.stream.disconnect(this);\n if (!hasPayload) {\n // TODO: add validation no frame in reassembly\n this.receiver.onComplete();\n return;\n }\n var payload = this.hasFragments\n ? Reassembler.reassemble(this, frame.data, frame.metadata)\n : {\n data: frame.data,\n metadata: frame.metadata,\n };\n this.receiver.onNext(payload, true);\n return;\n }\n if (!Reassembler.add(this, frame.data, frame.metadata)) {\n errorMessage = \"Unexpected fragment size\";\n break;\n }\n return;\n }\n case Frames_1.FrameTypes.ERROR: {\n this.done = true;\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n case Frames_1.FrameTypes.EXT: {\n if (this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n default: {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n }\n }\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n });\n this.stream.disconnect(this);\n // TODO: throw an exception if strict frame handling mode\n };\n RequestResponseRequesterStream.prototype.cancel = function () {\n var _a;\n if (this.done) {\n return;\n }\n this.done = true;\n if (!this.streamId) {\n (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n };\n RequestResponseRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.done) {\n return;\n }\n if (!this.streamId) {\n this.hasExtension = true;\n this.extendedType = extendedType;\n this.extendedContent = content;\n this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n return;\n }\n this.stream.send({\n streamId: this.streamId,\n type: Frames_1.FrameTypes.EXT,\n extendedType: extendedType,\n extendedContent: content,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n });\n };\n RequestResponseRequesterStream.prototype.close = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n Reassembler.cancel(this);\n if (error) {\n this.receiver.onError(error);\n }\n else {\n this.receiver.onComplete();\n }\n };\n return RequestResponseRequesterStream;\n}());\nexports.RequestResponseRequesterStream = RequestResponseRequesterStream;\nvar RequestResponseResponderStream = /** @class */ (function () {\n function RequestResponseResponderStream(streamId, stream, fragmentSize, handler, frame) {\n this.streamId = streamId;\n this.stream = stream;\n this.fragmentSize = fragmentSize;\n this.handler = handler;\n this.streamType = Frames_1.FrameTypes.REQUEST_RESPONSE;\n stream.connect(this);\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n Reassembler.add(this, frame.data, frame.metadata);\n return;\n }\n var payload = {\n data: frame.data,\n metadata: frame.metadata,\n };\n try {\n this.receiver = handler(payload, this);\n }\n catch (error) {\n this.onError(error);\n }\n }\n RequestResponseResponderStream.prototype.handle = function (frame) {\n var _a;\n var errorMessage;\n if (!this.receiver || this.hasFragments) {\n if (frame.type === Frames_1.FrameTypes.PAYLOAD) {\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected fragment size\";\n }\n else {\n var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n try {\n this.receiver = this.handler(payload, this);\n }\n catch (error) {\n this.onError(error);\n }\n return;\n }\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"] during reassembly\");\n }\n }\n else if (frame.type === Frames_1.FrameTypes.EXT) {\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n }\n this.done = true;\n (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n if (frame.type !== Frames_1.FrameTypes.CANCEL && frame.type !== Frames_1.FrameTypes.ERROR) {\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.CANCELED,\n message: errorMessage,\n streamId: this.streamId,\n });\n }\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n // TODO: throws if strict\n };\n RequestResponseResponderStream.prototype.onError = function (error) {\n if (this.done) {\n console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n this.done = true;\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: error instanceof Errors_1.RSocketError\n ? error.code\n : Errors_1.ErrorCodes.APPLICATION_ERROR,\n message: error.message,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n };\n RequestResponseResponderStream.prototype.onNext = function (payload, isCompletion) {\n var e_2, _a;\n if (this.done) {\n return;\n }\n this.done = true;\n // TODO: add payload size validation\n if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, true)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT | Frames_1.Flags.COMPLETE | (payload.metadata ? Frames_1.Flags.METADATA : 0),\n data: payload.data,\n metadata: payload.metadata,\n streamId: this.streamId,\n });\n }\n this.stream.disconnect(this);\n };\n RequestResponseResponderStream.prototype.onComplete = function () {\n if (this.done) {\n return;\n }\n this.done = true;\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.COMPLETE,\n streamId: this.streamId,\n data: null,\n metadata: null,\n });\n this.stream.disconnect(this);\n };\n RequestResponseResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.done) {\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: this.streamId,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n extendedType: extendedType,\n extendedContent: content,\n });\n };\n RequestResponseResponderStream.prototype.close = function (error) {\n var _a;\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n Reassembler.cancel(this);\n (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n };\n return RequestResponseResponderStream;\n}());\nexports.RequestResponseResponderStream = RequestResponseResponderStream;\n//# sourceMappingURL=RequestResponseStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RequestStreamResponderStream = exports.RequestStreamRequesterStream = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Fragmenter_1 = require(\"./Fragmenter\");\nvar Frames_1 = require(\"./Frames\");\nvar Reassembler = __importStar(require(\"./Reassembler\"));\nvar RequestStreamRequesterStream = /** @class */ (function () {\n function RequestStreamRequesterStream(payload, receiver, fragmentSize, initialRequestN, leaseManager) {\n this.payload = payload;\n this.receiver = receiver;\n this.fragmentSize = fragmentSize;\n this.initialRequestN = initialRequestN;\n this.leaseManager = leaseManager;\n this.streamType = Frames_1.FrameTypes.REQUEST_STREAM;\n // TODO: add payload size validation\n }\n RequestStreamRequesterStream.prototype.handleReady = function (streamId, stream) {\n var e_1, _a;\n if (this.done) {\n return false;\n }\n this.streamId = streamId;\n this.stream = stream;\n stream.connect(this);\n if ((0, Fragmenter_1.isFragmentable)(this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_STREAM)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragmentWithRequestN)(streamId, this.payload, this.fragmentSize, Frames_1.FrameTypes.REQUEST_STREAM, this.initialRequestN)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_STREAM,\n data: this.payload.data,\n metadata: this.payload.metadata,\n requestN: this.initialRequestN,\n flags: this.payload.metadata !== undefined ? Frames_1.Flags.METADATA : 0,\n streamId: streamId,\n });\n }\n if (this.hasExtension) {\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: streamId,\n extendedContent: this.extendedContent,\n extendedType: this.extendedType,\n flags: this.flags,\n });\n }\n return true;\n };\n RequestStreamRequesterStream.prototype.handleReject = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n this.receiver.onError(error);\n };\n RequestStreamRequesterStream.prototype.handle = function (frame) {\n var errorMessage;\n var frameType = frame.type;\n switch (frameType) {\n case Frames_1.FrameTypes.PAYLOAD: {\n var hasComplete = Frames_1.Flags.hasComplete(frame.flags);\n var hasNext = Frames_1.Flags.hasNext(frame.flags);\n if (hasComplete || !Frames_1.Flags.hasFollows(frame.flags)) {\n if (hasComplete) {\n this.done = true;\n this.stream.disconnect(this);\n if (!hasNext) {\n // TODO: add validation no frame in reassembly\n this.receiver.onComplete();\n return;\n }\n }\n var payload = this.hasFragments\n ? Reassembler.reassemble(this, frame.data, frame.metadata)\n : {\n data: frame.data,\n metadata: frame.metadata,\n };\n this.receiver.onNext(payload, hasComplete);\n return;\n }\n if (!Reassembler.add(this, frame.data, frame.metadata)) {\n errorMessage = \"Unexpected fragment size\";\n break;\n }\n return;\n }\n case Frames_1.FrameTypes.ERROR: {\n this.done = true;\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n this.receiver.onError(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n }\n case Frames_1.FrameTypes.EXT: {\n if (this.hasFragments) {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"] during reassembly\");\n break;\n }\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n default: {\n errorMessage = \"Unexpected frame type [\".concat(frameType, \"]\");\n }\n }\n this.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.CANCELED, errorMessage));\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n streamId: this.streamId,\n flags: Frames_1.Flags.NONE,\n });\n this.stream.disconnect(this);\n // TODO: throw an exception if strict frame handling mode\n };\n RequestStreamRequesterStream.prototype.request = function (n) {\n if (this.done) {\n return;\n }\n if (!this.streamId) {\n this.initialRequestN += n;\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.REQUEST_N,\n flags: Frames_1.Flags.NONE,\n requestN: n,\n streamId: this.streamId,\n });\n };\n RequestStreamRequesterStream.prototype.cancel = function () {\n var _a;\n if (this.done) {\n return;\n }\n this.done = true;\n if (!this.streamId) {\n (_a = this.leaseManager) === null || _a === void 0 ? void 0 : _a.cancelRequest(this);\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.CANCEL,\n flags: Frames_1.Flags.NONE,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n Reassembler.cancel(this);\n };\n RequestStreamRequesterStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.done) {\n return;\n }\n if (!this.streamId) {\n this.hasExtension = true;\n this.extendedType = extendedType;\n this.extendedContent = content;\n this.flags = canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE;\n return;\n }\n this.stream.send({\n streamId: this.streamId,\n type: Frames_1.FrameTypes.EXT,\n extendedType: extendedType,\n extendedContent: content,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n });\n };\n RequestStreamRequesterStream.prototype.close = function (error) {\n if (this.done) {\n return;\n }\n this.done = true;\n Reassembler.cancel(this);\n if (error) {\n this.receiver.onError(error);\n }\n else {\n this.receiver.onComplete();\n }\n };\n return RequestStreamRequesterStream;\n}());\nexports.RequestStreamRequesterStream = RequestStreamRequesterStream;\nvar RequestStreamResponderStream = /** @class */ (function () {\n function RequestStreamResponderStream(streamId, stream, fragmentSize, handler, frame) {\n this.streamId = streamId;\n this.stream = stream;\n this.fragmentSize = fragmentSize;\n this.handler = handler;\n this.streamType = Frames_1.FrameTypes.REQUEST_STREAM;\n stream.connect(this);\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n this.initialRequestN = frame.requestN;\n Reassembler.add(this, frame.data, frame.metadata);\n return;\n }\n var payload = {\n data: frame.data,\n metadata: frame.metadata,\n };\n try {\n this.receiver = handler(payload, frame.requestN, this);\n }\n catch (error) {\n this.onError(error);\n }\n }\n RequestStreamResponderStream.prototype.handle = function (frame) {\n var _a;\n var errorMessage;\n if (!this.receiver || this.hasFragments) {\n if (frame.type === Frames_1.FrameTypes.PAYLOAD) {\n if (Frames_1.Flags.hasFollows(frame.flags)) {\n if (Reassembler.add(this, frame.data, frame.metadata)) {\n return;\n }\n errorMessage = \"Unexpected frame size\";\n }\n else {\n var payload = Reassembler.reassemble(this, frame.data, frame.metadata);\n try {\n this.receiver = this.handler(payload, this.initialRequestN, this);\n }\n catch (error) {\n this.onError(error);\n }\n return;\n }\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"] during reassembly\");\n }\n }\n else if (frame.type === Frames_1.FrameTypes.REQUEST_N) {\n this.receiver.request(frame.requestN);\n return;\n }\n else if (frame.type === Frames_1.FrameTypes.EXT) {\n this.receiver.onExtension(frame.extendedType, frame.extendedContent, Frames_1.Flags.hasIgnore(frame.flags));\n return;\n }\n else {\n errorMessage = \"Unexpected frame type [\".concat(frame.type, \"]\");\n }\n this.done = true;\n Reassembler.cancel(this);\n (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n if (frame.type !== Frames_1.FrameTypes.CANCEL && frame.type !== Frames_1.FrameTypes.ERROR) {\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.CANCELED,\n message: errorMessage,\n streamId: this.streamId,\n });\n }\n this.stream.disconnect(this);\n // TODO: throws if strict\n };\n RequestStreamResponderStream.prototype.onError = function (error) {\n if (this.done) {\n console.warn(\"Trying to error for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n this.done = true;\n this.stream.send({\n type: Frames_1.FrameTypes.ERROR,\n flags: Frames_1.Flags.NONE,\n code: error instanceof Errors_1.RSocketError\n ? error.code\n : Errors_1.ErrorCodes.APPLICATION_ERROR,\n message: error.message,\n streamId: this.streamId,\n });\n this.stream.disconnect(this);\n };\n RequestStreamResponderStream.prototype.onNext = function (payload, isCompletion) {\n var e_2, _a;\n if (this.done) {\n return;\n }\n if (isCompletion) {\n this.done = true;\n }\n // TODO: add payload size validation\n if ((0, Fragmenter_1.isFragmentable)(payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD)) {\n try {\n for (var _b = __values((0, Fragmenter_1.fragment)(this.streamId, payload, this.fragmentSize, Frames_1.FrameTypes.PAYLOAD, isCompletion)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n this.stream.send(frame);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.NEXT |\n (isCompletion ? Frames_1.Flags.COMPLETE : Frames_1.Flags.NONE) |\n (payload.metadata ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE),\n data: payload.data,\n metadata: payload.metadata,\n streamId: this.streamId,\n });\n }\n if (isCompletion) {\n this.stream.disconnect(this);\n }\n };\n RequestStreamResponderStream.prototype.onComplete = function () {\n if (this.done) {\n return;\n }\n this.done = true;\n this.stream.send({\n type: Frames_1.FrameTypes.PAYLOAD,\n flags: Frames_1.Flags.COMPLETE,\n streamId: this.streamId,\n data: null,\n metadata: null,\n });\n this.stream.disconnect(this);\n };\n RequestStreamResponderStream.prototype.onExtension = function (extendedType, content, canBeIgnored) {\n if (this.done) {\n return;\n }\n this.stream.send({\n type: Frames_1.FrameTypes.EXT,\n streamId: this.streamId,\n flags: canBeIgnored ? Frames_1.Flags.IGNORE : Frames_1.Flags.NONE,\n extendedType: extendedType,\n extendedContent: content,\n });\n };\n RequestStreamResponderStream.prototype.close = function (error) {\n var _a;\n if (this.done) {\n console.warn(\"Trying to close for the second time. \".concat(error ? \"Dropping error [\".concat(error, \"].\") : \"\"));\n return;\n }\n Reassembler.cancel(this);\n (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.cancel();\n };\n return RequestStreamResponderStream;\n}());\nexports.RequestStreamResponderStream = RequestStreamResponderStream;\n//# sourceMappingURL=RequestStreamStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeepAliveSender = exports.KeepAliveHandler = exports.DefaultConnectionFrameHandler = exports.DefaultStreamRequestHandler = exports.LeaseHandler = exports.RSocketRequester = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar RequestChannelStream_1 = require(\"./RequestChannelStream\");\nvar RequestFnFStream_1 = require(\"./RequestFnFStream\");\nvar RequestResponseStream_1 = require(\"./RequestResponseStream\");\nvar RequestStreamStream_1 = require(\"./RequestStreamStream\");\nvar RSocketRequester = /** @class */ (function () {\n function RSocketRequester(connection, fragmentSize, leaseManager) {\n this.connection = connection;\n this.fragmentSize = fragmentSize;\n this.leaseManager = leaseManager;\n }\n RSocketRequester.prototype.fireAndForget = function (payload, responderStream) {\n var handler = new RequestFnFStream_1.RequestFnFRequesterStream(payload, responderStream, this.fragmentSize, this.leaseManager);\n if (this.leaseManager) {\n this.leaseManager.requestLease(handler);\n }\n else {\n this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n }\n return handler;\n };\n RSocketRequester.prototype.requestResponse = function (payload, responderStream) {\n var handler = new RequestResponseStream_1.RequestResponseRequesterStream(payload, responderStream, this.fragmentSize, this.leaseManager);\n if (this.leaseManager) {\n this.leaseManager.requestLease(handler);\n }\n else {\n this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n }\n return handler;\n };\n RSocketRequester.prototype.requestStream = function (payload, initialRequestN, responderStream) {\n var handler = new RequestStreamStream_1.RequestStreamRequesterStream(payload, responderStream, this.fragmentSize, initialRequestN, this.leaseManager);\n if (this.leaseManager) {\n this.leaseManager.requestLease(handler);\n }\n else {\n this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n }\n return handler;\n };\n RSocketRequester.prototype.requestChannel = function (payload, initialRequestN, isCompleted, responderStream) {\n var handler = new RequestChannelStream_1.RequestChannelRequesterStream(payload, isCompleted, responderStream, this.fragmentSize, initialRequestN, this.leaseManager);\n if (this.leaseManager) {\n this.leaseManager.requestLease(handler);\n }\n else {\n this.connection.multiplexerDemultiplexer.createRequestStream(handler);\n }\n return handler;\n };\n RSocketRequester.prototype.metadataPush = function (metadata, responderStream) {\n throw new Error(\"Method not implemented.\");\n };\n RSocketRequester.prototype.close = function (error) {\n this.connection.close(error);\n };\n RSocketRequester.prototype.onClose = function (callback) {\n this.connection.onClose(callback);\n };\n return RSocketRequester;\n}());\nexports.RSocketRequester = RSocketRequester;\nvar LeaseHandler = /** @class */ (function () {\n function LeaseHandler(maxPendingRequests, multiplexer) {\n this.maxPendingRequests = maxPendingRequests;\n this.multiplexer = multiplexer;\n this.pendingRequests = [];\n this.expirationTime = 0;\n this.availableLease = 0;\n }\n LeaseHandler.prototype.handle = function (frame) {\n this.expirationTime = frame.ttl + Date.now();\n this.availableLease = frame.requestCount;\n while (this.availableLease > 0 && this.pendingRequests.length > 0) {\n var handler = this.pendingRequests.shift();\n this.availableLease--;\n this.multiplexer.createRequestStream(handler);\n }\n };\n LeaseHandler.prototype.requestLease = function (handler) {\n var availableLease = this.availableLease;\n if (availableLease > 0 && Date.now() < this.expirationTime) {\n this.availableLease = availableLease - 1;\n this.multiplexer.createRequestStream(handler);\n return;\n }\n if (this.pendingRequests.length >= this.maxPendingRequests) {\n handler.handleReject(new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED, \"No available lease given\"));\n return;\n }\n this.pendingRequests.push(handler);\n };\n LeaseHandler.prototype.cancelRequest = function (handler) {\n var index = this.pendingRequests.indexOf(handler);\n if (index > -1) {\n this.pendingRequests.splice(index, 1);\n }\n };\n return LeaseHandler;\n}());\nexports.LeaseHandler = LeaseHandler;\nvar DefaultStreamRequestHandler = /** @class */ (function () {\n function DefaultStreamRequestHandler(rsocket, fragmentSize) {\n this.rsocket = rsocket;\n this.fragmentSize = fragmentSize;\n }\n DefaultStreamRequestHandler.prototype.handle = function (frame, stream) {\n switch (frame.type) {\n case Frames_1.FrameTypes.REQUEST_FNF:\n if (this.rsocket.fireAndForget) {\n new RequestFnFStream_1.RequestFnfResponderStream(frame.streamId, stream, this.rsocket.fireAndForget.bind(this.rsocket), frame);\n }\n return;\n case Frames_1.FrameTypes.REQUEST_RESPONSE:\n if (this.rsocket.requestResponse) {\n new RequestResponseStream_1.RequestResponseResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestResponse.bind(this.rsocket), frame);\n return;\n }\n this.rejectRequest(frame.streamId, stream);\n return;\n case Frames_1.FrameTypes.REQUEST_STREAM:\n if (this.rsocket.requestStream) {\n new RequestStreamStream_1.RequestStreamResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestStream.bind(this.rsocket), frame);\n return;\n }\n this.rejectRequest(frame.streamId, stream);\n return;\n case Frames_1.FrameTypes.REQUEST_CHANNEL:\n if (this.rsocket.requestChannel) {\n new RequestChannelStream_1.RequestChannelResponderStream(frame.streamId, stream, this.fragmentSize, this.rsocket.requestChannel.bind(this.rsocket), frame);\n return;\n }\n this.rejectRequest(frame.streamId, stream);\n return;\n }\n };\n DefaultStreamRequestHandler.prototype.rejectRequest = function (streamId, stream) {\n stream.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: streamId,\n flags: Frames_1.Flags.NONE,\n code: Errors_1.ErrorCodes.REJECTED,\n message: \"No available handler found\",\n });\n };\n DefaultStreamRequestHandler.prototype.close = function () { };\n return DefaultStreamRequestHandler;\n}());\nexports.DefaultStreamRequestHandler = DefaultStreamRequestHandler;\nvar DefaultConnectionFrameHandler = /** @class */ (function () {\n function DefaultConnectionFrameHandler(connection, keepAliveHandler, keepAliveSender, leaseHandler, rsocket) {\n this.connection = connection;\n this.keepAliveHandler = keepAliveHandler;\n this.keepAliveSender = keepAliveSender;\n this.leaseHandler = leaseHandler;\n this.rsocket = rsocket;\n }\n DefaultConnectionFrameHandler.prototype.handle = function (frame) {\n switch (frame.type) {\n case Frames_1.FrameTypes.KEEPALIVE:\n this.keepAliveHandler.handle(frame);\n return;\n case Frames_1.FrameTypes.LEASE:\n if (this.leaseHandler) {\n this.leaseHandler.handle(frame);\n return;\n }\n // TODO throw exception and close connection\n return;\n case Frames_1.FrameTypes.ERROR:\n // TODO: add code validation\n this.connection.close(new Errors_1.RSocketError(frame.code, frame.message));\n return;\n case Frames_1.FrameTypes.METADATA_PUSH:\n if (this.rsocket.metadataPush) {\n // this.rsocket.metadataPush()\n }\n return;\n default:\n this.connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n message: \"Received unknown frame type\",\n code: Errors_1.ErrorCodes.CONNECTION_ERROR,\n });\n // TODO: throw an exception and close connection\n }\n };\n DefaultConnectionFrameHandler.prototype.pause = function () {\n var _a;\n this.keepAliveHandler.pause();\n (_a = this.keepAliveSender) === null || _a === void 0 ? void 0 : _a.pause();\n };\n DefaultConnectionFrameHandler.prototype.resume = function () {\n var _a;\n this.keepAliveHandler.start();\n (_a = this.keepAliveSender) === null || _a === void 0 ? void 0 : _a.start();\n };\n DefaultConnectionFrameHandler.prototype.close = function (error) {\n var _a;\n this.keepAliveHandler.close();\n (_a = this.rsocket.close) === null || _a === void 0 ? void 0 : _a.call(this.rsocket, error);\n };\n return DefaultConnectionFrameHandler;\n}());\nexports.DefaultConnectionFrameHandler = DefaultConnectionFrameHandler;\nvar KeepAliveHandlerStates;\n(function (KeepAliveHandlerStates) {\n KeepAliveHandlerStates[KeepAliveHandlerStates[\"Paused\"] = 0] = \"Paused\";\n KeepAliveHandlerStates[KeepAliveHandlerStates[\"Running\"] = 1] = \"Running\";\n KeepAliveHandlerStates[KeepAliveHandlerStates[\"Closed\"] = 2] = \"Closed\";\n})(KeepAliveHandlerStates || (KeepAliveHandlerStates = {}));\nvar KeepAliveHandler = /** @class */ (function () {\n function KeepAliveHandler(connection, keepAliveTimeoutDuration) {\n this.connection = connection;\n this.keepAliveTimeoutDuration = keepAliveTimeoutDuration;\n this.state = KeepAliveHandlerStates.Paused;\n this.outbound = connection.multiplexerDemultiplexer.connectionOutbound;\n }\n KeepAliveHandler.prototype.handle = function (frame) {\n this.keepAliveLastReceivedMillis = Date.now();\n if (Frames_1.Flags.hasRespond(frame.flags)) {\n this.outbound.send({\n type: Frames_1.FrameTypes.KEEPALIVE,\n streamId: 0,\n data: frame.data,\n flags: frame.flags ^ Frames_1.Flags.RESPOND,\n lastReceivedPosition: 0,\n });\n }\n };\n KeepAliveHandler.prototype.start = function () {\n if (this.state !== KeepAliveHandlerStates.Paused) {\n return;\n }\n this.keepAliveLastReceivedMillis = Date.now();\n this.state = KeepAliveHandlerStates.Running;\n this.activeTimeout = setTimeout(this.timeoutCheck.bind(this), this.keepAliveTimeoutDuration);\n };\n KeepAliveHandler.prototype.pause = function () {\n if (this.state !== KeepAliveHandlerStates.Running) {\n return;\n }\n this.state = KeepAliveHandlerStates.Paused;\n clearTimeout(this.activeTimeout);\n };\n KeepAliveHandler.prototype.close = function () {\n this.state = KeepAliveHandlerStates.Closed;\n clearTimeout(this.activeTimeout);\n };\n KeepAliveHandler.prototype.timeoutCheck = function () {\n var now = Date.now();\n var noKeepAliveDuration = now - this.keepAliveLastReceivedMillis;\n if (noKeepAliveDuration >= this.keepAliveTimeoutDuration) {\n this.connection.close(new Error(\"No keep-alive acks for \".concat(this.keepAliveTimeoutDuration, \" millis\")));\n }\n else {\n this.activeTimeout = setTimeout(this.timeoutCheck.bind(this), Math.max(100, this.keepAliveTimeoutDuration - noKeepAliveDuration));\n }\n };\n return KeepAliveHandler;\n}());\nexports.KeepAliveHandler = KeepAliveHandler;\nvar KeepAliveSenderStates;\n(function (KeepAliveSenderStates) {\n KeepAliveSenderStates[KeepAliveSenderStates[\"Paused\"] = 0] = \"Paused\";\n KeepAliveSenderStates[KeepAliveSenderStates[\"Running\"] = 1] = \"Running\";\n KeepAliveSenderStates[KeepAliveSenderStates[\"Closed\"] = 2] = \"Closed\";\n})(KeepAliveSenderStates || (KeepAliveSenderStates = {}));\nvar KeepAliveSender = /** @class */ (function () {\n function KeepAliveSender(outbound, keepAlivePeriodDuration) {\n this.outbound = outbound;\n this.keepAlivePeriodDuration = keepAlivePeriodDuration;\n this.state = KeepAliveSenderStates.Paused;\n }\n KeepAliveSender.prototype.sendKeepAlive = function () {\n this.outbound.send({\n type: Frames_1.FrameTypes.KEEPALIVE,\n streamId: 0,\n data: undefined,\n flags: Frames_1.Flags.RESPOND,\n lastReceivedPosition: 0,\n });\n };\n KeepAliveSender.prototype.start = function () {\n if (this.state !== KeepAliveSenderStates.Paused) {\n return;\n }\n this.state = KeepAliveSenderStates.Running;\n this.activeInterval = setInterval(this.sendKeepAlive.bind(this), this.keepAlivePeriodDuration);\n };\n KeepAliveSender.prototype.pause = function () {\n if (this.state !== KeepAliveSenderStates.Running) {\n return;\n }\n this.state = KeepAliveSenderStates.Paused;\n clearInterval(this.activeInterval);\n };\n KeepAliveSender.prototype.close = function () {\n this.state = KeepAliveSenderStates.Closed;\n clearInterval(this.activeInterval);\n };\n return KeepAliveSender;\n}());\nexports.KeepAliveSender = KeepAliveSender;\n//# sourceMappingURL=RSocketSupport.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FrameStore = void 0;\nvar _1 = require(\".\");\nvar Codecs_1 = require(\"./Codecs\");\nvar FrameStore = /** @class */ (function () {\n function FrameStore() {\n this.storedFrames = [];\n this._lastReceivedFramePosition = 0;\n this._firstAvailableFramePosition = 0;\n this._lastSentFramePosition = 0;\n }\n Object.defineProperty(FrameStore.prototype, \"lastReceivedFramePosition\", {\n get: function () {\n return this._lastReceivedFramePosition;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FrameStore.prototype, \"firstAvailableFramePosition\", {\n get: function () {\n return this._firstAvailableFramePosition;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FrameStore.prototype, \"lastSentFramePosition\", {\n get: function () {\n return this._lastSentFramePosition;\n },\n enumerable: false,\n configurable: true\n });\n FrameStore.prototype.store = function (frame) {\n this._lastSentFramePosition += (0, Codecs_1.sizeOfFrame)(frame);\n this.storedFrames.push(frame);\n };\n FrameStore.prototype.record = function (frame) {\n this._lastReceivedFramePosition += (0, Codecs_1.sizeOfFrame)(frame);\n };\n FrameStore.prototype.dropTo = function (lastReceivedPosition) {\n var bytesToDrop = lastReceivedPosition - this._firstAvailableFramePosition;\n while (bytesToDrop > 0 && this.storedFrames.length > 0) {\n var storedFrame = this.storedFrames.shift();\n bytesToDrop -= (0, Codecs_1.sizeOfFrame)(storedFrame);\n }\n if (bytesToDrop !== 0) {\n throw new _1.RSocketError(_1.ErrorCodes.CONNECTION_ERROR, \"State inconsistency. Expected bytes to drop \".concat(lastReceivedPosition - this._firstAvailableFramePosition, \" but actual \").concat(bytesToDrop));\n }\n this._firstAvailableFramePosition = lastReceivedPosition;\n };\n FrameStore.prototype.drain = function (consumer) {\n var e_1, _a;\n try {\n for (var _b = __values(this.storedFrames), _c = _b.next(); !_c.done; _c = _b.next()) {\n var frame = _c.value;\n consumer(frame);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n return FrameStore;\n}());\nexports.FrameStore = FrameStore;\n//# sourceMappingURL=Resume.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RSocketConnector = void 0;\nvar ClientServerMultiplexerDemultiplexer_1 = require(\"./ClientServerMultiplexerDemultiplexer\");\nvar Frames_1 = require(\"./Frames\");\nvar RSocketSupport_1 = require(\"./RSocketSupport\");\nvar Resume_1 = require(\"./Resume\");\nvar RSocketConnector = /** @class */ (function () {\n function RSocketConnector(config) {\n this.config = config;\n }\n RSocketConnector.prototype.connect = function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;\n return __awaiter(this, void 0, void 0, function () {\n var config, setupFrame, connection, keepAliveSender, keepAliveHandler, leaseHandler, responder, connectionFrameHandler, streamsHandler;\n var _this = this;\n return __generator(this, function (_w) {\n switch (_w.label) {\n case 0:\n config = this.config;\n setupFrame = {\n type: Frames_1.FrameTypes.SETUP,\n dataMimeType: (_b = (_a = config.setup) === null || _a === void 0 ? void 0 : _a.dataMimeType) !== null && _b !== void 0 ? _b : \"application/octet-stream\",\n metadataMimeType: (_d = (_c = config.setup) === null || _c === void 0 ? void 0 : _c.metadataMimeType) !== null && _d !== void 0 ? _d : \"application/octet-stream\",\n keepAlive: (_f = (_e = config.setup) === null || _e === void 0 ? void 0 : _e.keepAlive) !== null && _f !== void 0 ? _f : 60000,\n lifetime: (_h = (_g = config.setup) === null || _g === void 0 ? void 0 : _g.lifetime) !== null && _h !== void 0 ? _h : 300000,\n metadata: (_k = (_j = config.setup) === null || _j === void 0 ? void 0 : _j.payload) === null || _k === void 0 ? void 0 : _k.metadata,\n data: (_m = (_l = config.setup) === null || _l === void 0 ? void 0 : _l.payload) === null || _m === void 0 ? void 0 : _m.data,\n resumeToken: (_p = (_o = config.resume) === null || _o === void 0 ? void 0 : _o.tokenGenerator()) !== null && _p !== void 0 ? _p : null,\n streamId: 0,\n majorVersion: 1,\n minorVersion: 0,\n flags: (((_r = (_q = config.setup) === null || _q === void 0 ? void 0 : _q.payload) === null || _r === void 0 ? void 0 : _r.metadata) ? Frames_1.Flags.METADATA : Frames_1.Flags.NONE) |\n (config.lease ? Frames_1.Flags.LEASE : Frames_1.Flags.NONE) |\n (config.resume ? Frames_1.Flags.RESUME_ENABLE : Frames_1.Flags.NONE),\n };\n return [4 /*yield*/, config.transport.connect(function (outbound) {\n return config.resume\n ? new ClientServerMultiplexerDemultiplexer_1.ResumableClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(-1), outbound, outbound, new Resume_1.FrameStore(), // TODO: add size control\n setupFrame.resumeToken.toString(), function (self, frameStore) { return __awaiter(_this, void 0, void 0, function () {\n var multiplexerDemultiplexerProvider, reconnectionAttempts, reconnector;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n multiplexerDemultiplexerProvider = function (outbound) {\n outbound.send({\n type: Frames_1.FrameTypes.RESUME,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n clientPosition: frameStore.firstAvailableFramePosition,\n serverPosition: frameStore.lastReceivedFramePosition,\n majorVersion: setupFrame.minorVersion,\n minorVersion: setupFrame.majorVersion,\n resumeToken: setupFrame.resumeToken,\n });\n return new ClientServerMultiplexerDemultiplexer_1.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(outbound, outbound, self);\n };\n reconnectionAttempts = -1;\n reconnector = function () {\n reconnectionAttempts++;\n return config.resume\n .reconnectFunction(reconnectionAttempts)\n .then(function () {\n return config.transport\n .connect(multiplexerDemultiplexerProvider)\n .catch(reconnector);\n });\n };\n return [4 /*yield*/, reconnector()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); })\n : new ClientServerMultiplexerDemultiplexer_1.ClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(-1), outbound, outbound);\n })];\n case 1:\n connection = _w.sent();\n keepAliveSender = new RSocketSupport_1.KeepAliveSender(connection.multiplexerDemultiplexer.connectionOutbound, setupFrame.keepAlive);\n keepAliveHandler = new RSocketSupport_1.KeepAliveHandler(connection, setupFrame.lifetime);\n leaseHandler = config.lease\n ? new RSocketSupport_1.LeaseHandler((_s = config.lease.maxPendingRequests) !== null && _s !== void 0 ? _s : 256, connection.multiplexerDemultiplexer)\n : undefined;\n responder = (_t = config.responder) !== null && _t !== void 0 ? _t : {};\n connectionFrameHandler = new RSocketSupport_1.DefaultConnectionFrameHandler(connection, keepAliveHandler, keepAliveSender, leaseHandler, responder);\n streamsHandler = new RSocketSupport_1.DefaultStreamRequestHandler(responder, 0);\n connection.onClose(function (e) {\n keepAliveSender.close();\n keepAliveHandler.close();\n connectionFrameHandler.close(e);\n });\n connection.multiplexerDemultiplexer.connectionInbound(connectionFrameHandler);\n connection.multiplexerDemultiplexer.handleRequestStream(streamsHandler);\n connection.multiplexerDemultiplexer.connectionOutbound.send(setupFrame);\n keepAliveHandler.start();\n keepAliveSender.start();\n return [2 /*return*/, new RSocketSupport_1.RSocketRequester(connection, (_v = (_u = config.fragmentation) === null || _u === void 0 ? void 0 : _u.maxOutboundFragmentSize) !== null && _v !== void 0 ? _v : 0, leaseHandler)];\n }\n });\n });\n };\n return RSocketConnector;\n}());\nexports.RSocketConnector = RSocketConnector;\n//# sourceMappingURL=RSocketConnector.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RSocketServer = void 0;\nvar ClientServerMultiplexerDemultiplexer_1 = require(\"./ClientServerMultiplexerDemultiplexer\");\nvar Errors_1 = require(\"./Errors\");\nvar Frames_1 = require(\"./Frames\");\nvar RSocketSupport_1 = require(\"./RSocketSupport\");\nvar Resume_1 = require(\"./Resume\");\nvar RSocketServer = /** @class */ (function () {\n function RSocketServer(config) {\n var _a, _b;\n this.acceptor = config.acceptor;\n this.transport = config.transport;\n this.lease = config.lease;\n this.serverSideKeepAlive = config.serverSideKeepAlive;\n this.sessionStore = config.resume ? {} : undefined;\n this.sessionTimeout = (_b = (_a = config.resume) === null || _a === void 0 ? void 0 : _a.sessionTimeout) !== null && _b !== void 0 ? _b : undefined;\n }\n RSocketServer.prototype.bind = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.transport.bind(function (frame, connection) { return __awaiter(_this, void 0, void 0, function () {\n var _a, error, error, leaseHandler, requester, responder, keepAliveHandler_1, keepAliveSender_1, connectionFrameHandler_1, streamsHandler, e_1;\n var _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = frame.type;\n switch (_a) {\n case Frames_1.FrameTypes.SETUP: return [3 /*break*/, 1];\n case Frames_1.FrameTypes.RESUME: return [3 /*break*/, 5];\n }\n return [3 /*break*/, 6];\n case 1:\n _f.trys.push([1, 3, , 4]);\n if (this.lease && !Frames_1.Flags.hasLease(frame.flags)) {\n error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"Lease has to be enabled\");\n connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n code: error.code,\n message: error.message,\n });\n connection.close(error);\n return [2 /*return*/];\n }\n if (Frames_1.Flags.hasLease(frame.flags) && !this.lease) {\n error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"Lease has to be disabled\");\n connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n code: error.code,\n message: error.message,\n });\n connection.close(error);\n return [2 /*return*/];\n }\n leaseHandler = Frames_1.Flags.hasLease(frame.flags)\n ? new RSocketSupport_1.LeaseHandler((_b = this.lease.maxPendingRequests) !== null && _b !== void 0 ? _b : 256, connection.multiplexerDemultiplexer)\n : undefined;\n requester = new RSocketSupport_1.RSocketRequester(connection, (_d = (_c = this.fragmentation) === null || _c === void 0 ? void 0 : _c.maxOutboundFragmentSize) !== null && _d !== void 0 ? _d : 0, leaseHandler);\n return [4 /*yield*/, this.acceptor.accept({\n data: frame.data,\n dataMimeType: frame.dataMimeType,\n metadata: frame.metadata,\n metadataMimeType: frame.metadataMimeType,\n flags: frame.flags,\n keepAliveMaxLifetime: frame.lifetime,\n keepAliveInterval: frame.keepAlive,\n resumeToken: frame.resumeToken,\n }, requester)];\n case 2:\n responder = _f.sent();\n keepAliveHandler_1 = new RSocketSupport_1.KeepAliveHandler(connection, frame.lifetime);\n keepAliveSender_1 = this.serverSideKeepAlive\n ? new RSocketSupport_1.KeepAliveSender(connection.multiplexerDemultiplexer.connectionOutbound, frame.keepAlive)\n : undefined;\n connectionFrameHandler_1 = new RSocketSupport_1.DefaultConnectionFrameHandler(connection, keepAliveHandler_1, keepAliveSender_1, leaseHandler, responder);\n streamsHandler = new RSocketSupport_1.DefaultStreamRequestHandler(responder, 0);\n connection.onClose(function (e) {\n keepAliveSender_1 === null || keepAliveSender_1 === void 0 ? void 0 : keepAliveSender_1.close();\n keepAliveHandler_1.close();\n connectionFrameHandler_1.close(e);\n });\n connection.multiplexerDemultiplexer.connectionInbound(connectionFrameHandler_1);\n connection.multiplexerDemultiplexer.handleRequestStream(streamsHandler);\n keepAliveHandler_1.start();\n keepAliveSender_1 === null || keepAliveSender_1 === void 0 ? void 0 : keepAliveSender_1.start();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _f.sent();\n connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n code: Errors_1.ErrorCodes.REJECTED_SETUP,\n message: (_e = e_1.message) !== null && _e !== void 0 ? _e : \"\",\n flags: Frames_1.Flags.NONE,\n });\n connection.close(e_1 instanceof Errors_1.RSocketError\n ? e_1\n : new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, e_1.message));\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n case 5:\n {\n // frame should be handled earlier\n return [2 /*return*/];\n }\n _f.label = 6;\n case 6:\n {\n connection.multiplexerDemultiplexer.connectionOutbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n code: Errors_1.ErrorCodes.UNSUPPORTED_SETUP,\n message: \"Unsupported setup\",\n flags: Frames_1.Flags.NONE,\n });\n connection.close(new Errors_1.RSocketError(Errors_1.ErrorCodes.UNSUPPORTED_SETUP));\n }\n _f.label = 7;\n case 7: return [2 /*return*/];\n }\n });\n }); }, function (frame, outbound) {\n if (frame.type === Frames_1.FrameTypes.RESUME) {\n if (_this.sessionStore) {\n var multiplexerDemultiplexer = _this.sessionStore[frame.resumeToken.toString()];\n if (!multiplexerDemultiplexer) {\n outbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n code: Errors_1.ErrorCodes.REJECTED_RESUME,\n message: \"No session found for the given resume token\",\n flags: Frames_1.Flags.NONE,\n });\n outbound.close();\n return;\n }\n multiplexerDemultiplexer.resume(frame, outbound, outbound);\n return multiplexerDemultiplexer;\n }\n outbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n code: Errors_1.ErrorCodes.REJECTED_RESUME,\n message: \"Resume is not enabled\",\n flags: Frames_1.Flags.NONE,\n });\n outbound.close();\n return;\n }\n else if (frame.type === Frames_1.FrameTypes.SETUP) {\n if (Frames_1.Flags.hasResume(frame.flags)) {\n if (!_this.sessionStore) {\n var error = new Errors_1.RSocketError(Errors_1.ErrorCodes.REJECTED_SETUP, \"No resume support\");\n outbound.send({\n type: Frames_1.FrameTypes.ERROR,\n streamId: 0,\n flags: Frames_1.Flags.NONE,\n code: error.code,\n message: error.message,\n });\n outbound.close(error);\n return;\n }\n var multiplexerDumiltiplexer = new ClientServerMultiplexerDemultiplexer_1.ResumableClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(0), outbound, outbound, new Resume_1.FrameStore(), // TODO: add size parameter\n frame.resumeToken.toString(), _this.sessionStore, _this.sessionTimeout);\n _this.sessionStore[frame.resumeToken.toString()] =\n multiplexerDumiltiplexer;\n return multiplexerDumiltiplexer;\n }\n }\n return new ClientServerMultiplexerDemultiplexer_1.ClientServerInputMultiplexerDemultiplexer(ClientServerMultiplexerDemultiplexer_1.StreamIdGenerator.create(0), outbound, outbound);\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n return RSocketServer;\n}());\nexports.RSocketServer = RSocketServer;\n//# sourceMappingURL=RSocketServer.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Transport.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Codecs\"), exports);\n__exportStar(require(\"./Common\"), exports);\n__exportStar(require(\"./Deferred\"), exports);\n__exportStar(require(\"./Errors\"), exports);\n__exportStar(require(\"./Frames\"), exports);\n__exportStar(require(\"./RSocket\"), exports);\n__exportStar(require(\"./RSocketConnector\"), exports);\n__exportStar(require(\"./RSocketServer\"), exports);\n__exportStar(require(\"./Transport\"), exports);\n//# sourceMappingURL=index.js.map","import Logger from 'js-logger';\nimport { BaseObserver } from './BaseObserver.js';\nexport const DEFAULT_PRESSURE_LIMITS = {\n highWater: 10,\n lowWater: 0\n};\n/**\n * A very basic implementation of a data stream with backpressure support which does not use\n * native JS streams or async iterators.\n * This is handy for environments such as React Native which need polyfills for the above.\n */\nexport class DataStream extends BaseObserver {\n options;\n dataQueue;\n isClosed;\n processingPromise;\n notifyDataAdded;\n logger;\n mapLine;\n constructor(options) {\n super();\n this.options = options;\n this.processingPromise = null;\n this.isClosed = false;\n this.dataQueue = [];\n this.mapLine = options?.mapLine ?? ((line) => line);\n this.logger = options?.logger ?? Logger.get('DataStream');\n if (options?.closeOnError) {\n const l = this.registerListener({\n error: (ex) => {\n l?.();\n this.close();\n }\n });\n }\n }\n get highWatermark() {\n return this.options?.pressure?.highWaterMark ?? DEFAULT_PRESSURE_LIMITS.highWater;\n }\n get lowWatermark() {\n return this.options?.pressure?.lowWaterMark ?? DEFAULT_PRESSURE_LIMITS.lowWater;\n }\n get closed() {\n return this.isClosed;\n }\n async close() {\n this.isClosed = true;\n await this.processingPromise;\n this.iterateListeners((l) => l.closed?.());\n // Discard any data in the queue\n this.dataQueue = [];\n this.listeners.clear();\n }\n /**\n * Enqueues data for the consumers to read\n */\n enqueueData(data) {\n if (this.isClosed) {\n throw new Error('Cannot enqueue data into closed stream.');\n }\n this.dataQueue.push(data);\n this.notifyDataAdded?.();\n this.processQueue();\n }\n /**\n * Reads data once from the data stream\n * @returns a Data payload or Null if the stream closed.\n */\n async read() {\n if (this.closed) {\n return null;\n }\n return new Promise((resolve, reject) => {\n const l = this.registerListener({\n data: async (data) => {\n resolve(data);\n // Remove the listener\n l?.();\n },\n closed: () => {\n resolve(null);\n l?.();\n },\n error: (ex) => {\n reject(ex);\n l?.();\n }\n });\n this.processQueue();\n });\n }\n /**\n * Executes a callback for each data item in the stream\n */\n forEach(callback) {\n if (this.dataQueue.length <= this.lowWatermark) {\n this.iterateAsyncErrored(async (l) => l.lowWater?.());\n }\n return this.registerListener({\n data: callback\n });\n }\n processQueue() {\n if (this.processingPromise) {\n return;\n }\n const promise = (this.processingPromise = this._processQueue());\n promise.finally(() => {\n return (this.processingPromise = null);\n });\n return promise;\n }\n hasDataReader() {\n return Array.from(this.listeners.values()).some((l) => !!l.data);\n }\n async _processQueue() {\n /**\n * Allow listeners to mutate the queue before processing.\n * This allows for operations such as dropping or compressing data\n * on high water or requesting more data on low water.\n */\n if (this.dataQueue.length >= this.highWatermark) {\n await this.iterateAsyncErrored(async (l) => l.highWater?.());\n }\n if (this.isClosed || !this.hasDataReader()) {\n return;\n }\n if (this.dataQueue.length) {\n const data = this.dataQueue.shift();\n const mapped = this.mapLine(data);\n await this.iterateAsyncErrored(async (l) => l.data?.(mapped));\n }\n if (this.dataQueue.length <= this.lowWatermark) {\n const dataAdded = new Promise((resolve) => {\n this.notifyDataAdded = resolve;\n });\n await Promise.race([this.iterateAsyncErrored(async (l) => l.lowWater?.()), dataAdded]);\n this.notifyDataAdded = null;\n }\n if (this.dataQueue.length > 0) {\n // Next tick\n setTimeout(() => this.processQueue());\n }\n }\n async iterateAsyncErrored(cb) {\n // Important: We need to copy the listeners, as calling a listener could result in adding another\n // listener, resulting in infinite loops.\n const listeners = Array.from(this.listeners.values());\n for (let i of listeners) {\n try {\n await cb(i);\n }\n catch (ex) {\n this.logger.error(ex);\n this.iterateListeners((l) => l.error?.(ex));\n }\n }\n }\n}\n//# sourceMappingURL=DataStream.js.map","\"use strict\";\n/*\n * Copyright 2021-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketDuplexConnection = void 0;\nvar rsocket_core_1 = require(\"rsocket-core\");\nvar WebsocketDuplexConnection = /** @class */ (function (_super) {\n __extends(WebsocketDuplexConnection, _super);\n function WebsocketDuplexConnection(websocket, deserializer, multiplexerDemultiplexerFactory) {\n var _this = _super.call(this) || this;\n _this.websocket = websocket;\n _this.deserializer = deserializer;\n _this.handleClosed = function (e) {\n _this.close(new Error(e.reason || \"WebsocketDuplexConnection: Socket closed unexpectedly.\"));\n };\n _this.handleError = function (e) {\n _this.close(e.error);\n };\n _this.handleMessage = function (message) {\n try {\n var buffer = Buffer.from(message.data);\n var frame = _this.deserializer.deserializeFrame(buffer);\n _this.multiplexerDemultiplexer.handle(frame);\n }\n catch (error) {\n _this.close(error);\n }\n };\n websocket.addEventListener(\"close\", _this.handleClosed);\n websocket.addEventListener(\"error\", _this.handleError);\n websocket.addEventListener(\"message\", _this.handleMessage);\n _this.multiplexerDemultiplexer = multiplexerDemultiplexerFactory(_this);\n return _this;\n }\n Object.defineProperty(WebsocketDuplexConnection.prototype, \"availability\", {\n get: function () {\n return this.done ? 0 : 1;\n },\n enumerable: false,\n configurable: true\n });\n WebsocketDuplexConnection.prototype.close = function (error) {\n if (this.done) {\n _super.prototype.close.call(this, error);\n return;\n }\n this.websocket.removeEventListener(\"close\", this.handleClosed);\n this.websocket.removeEventListener(\"error\", this.handleError);\n this.websocket.removeEventListener(\"message\", this.handleMessage);\n this.websocket.close();\n delete this.websocket;\n _super.prototype.close.call(this, error);\n };\n WebsocketDuplexConnection.prototype.send = function (frame) {\n if (this.done) {\n return;\n }\n var buffer = (0, rsocket_core_1.serializeFrame)(frame);\n this.websocket.send(buffer);\n };\n return WebsocketDuplexConnection;\n}(rsocket_core_1.Deferred));\nexports.WebsocketDuplexConnection = WebsocketDuplexConnection;\n//# sourceMappingURL=WebsocketDuplexConnection.js.map","/**\n * Adapted from rsocket-websocket-client\n * https://github.com/rsocket/rsocket-js/blob/e224cf379e747c4f1ddc4f2fa111854626cc8575/packages/rsocket-websocket-client/src/WebsocketClientTransport.ts#L17\n * This adds additional error handling for React Native iOS.\n * This particularly adds a close listener to handle cases where the WebSocket\n * connection closes immediately after opening without emitting an error.\n */\nimport { Deserializer } from 'rsocket-core';\nimport { WebsocketDuplexConnection } from 'rsocket-websocket-client/dist/WebsocketDuplexConnection.js';\nexport class WebsocketClientTransport {\n url;\n factory;\n constructor(options) {\n this.url = options.url;\n this.factory = options.wsCreator ?? ((url) => new WebSocket(url));\n }\n connect(multiplexerDemultiplexerFactory) {\n return new Promise((resolve, reject) => {\n const websocket = this.factory(this.url);\n websocket.binaryType = 'arraybuffer';\n let removeListeners;\n const openListener = () => {\n removeListeners();\n resolve(new WebsocketDuplexConnection(websocket, new Deserializer(), multiplexerDemultiplexerFactory));\n };\n const errorListener = (ev) => {\n removeListeners();\n // We add a default error in that case.\n if (ev.error != null) {\n // undici typically provides an error object\n reject(ev.error);\n }\n else if (ev.message != null) {\n // React Native typically does not provide an error object, but does provide a message\n reject(new Error(`Failed to create websocket connection: ${ev.message}`));\n }\n else {\n // Browsers often provide no details at all\n reject(new Error(`Failed to create websocket connection to ${this.url}`));\n }\n };\n /**\n * In some cases, such as React Native iOS, the WebSocket connection may close immediately after opening\n * without and error. In such cases, we need to handle the close event to reject the promise.\n */\n const closeListener = () => {\n removeListeners();\n reject(new Error('WebSocket connection closed while opening'));\n };\n removeListeners = () => {\n websocket.removeEventListener('open', openListener);\n websocket.removeEventListener('error', errorListener);\n websocket.removeEventListener('close', closeListener);\n };\n websocket.addEventListener('open', openListener);\n websocket.addEventListener('error', errorListener);\n websocket.addEventListener('close', closeListener);\n });\n }\n}\n//# sourceMappingURL=WebsocketClientTransport.js.map","import Logger from 'js-logger';\nimport { RSocketConnector } from 'rsocket-core';\nimport PACKAGE from '../../../../package.json' with { type: 'json' };\nimport { AbortOperation } from '../../../utils/AbortOperation.js';\nimport { DataStream } from '../../../utils/DataStream.js';\nimport { WebsocketClientTransport } from './WebsocketClientTransport.js';\nconst POWERSYNC_TRAILING_SLASH_MATCH = /\\/+$/;\nconst POWERSYNC_JS_VERSION = PACKAGE.version;\nconst SYNC_QUEUE_REQUEST_LOW_WATER = 5;\n// Keep alive message is sent every period\nconst KEEP_ALIVE_MS = 20_000;\n// One message of any type must be received in this period.\nconst SOCKET_TIMEOUT_MS = 30_000;\n// One keepalive message must be received in this period.\n// If there is a backlog of messages (for example on slow connections), keepalive messages could be delayed\n// significantly. Therefore this is longer than the socket timeout.\nconst KEEP_ALIVE_LIFETIME_MS = 90_000;\nexport const DEFAULT_REMOTE_LOGGER = Logger.get('PowerSyncRemote');\nexport var FetchStrategy;\n(function (FetchStrategy) {\n /**\n * Queues multiple sync events before processing, reducing round-trips.\n * This comes at the cost of more processing overhead, which may cause ACK timeouts on older/weaker devices for big enough datasets.\n */\n FetchStrategy[\"Buffered\"] = \"buffered\";\n /**\n * Processes each sync event immediately before requesting the next.\n * This reduces processing overhead and improves real-time responsiveness.\n */\n FetchStrategy[\"Sequential\"] = \"sequential\";\n})(FetchStrategy || (FetchStrategy = {}));\n/**\n * Class wrapper for providing a fetch implementation.\n * The class wrapper is used to distinguish the fetchImplementation\n * option in [AbstractRemoteOptions] from the general fetch method\n * which is typeof \"function\"\n */\nexport class FetchImplementationProvider {\n getFetch() {\n throw new Error('Unspecified fetch implementation');\n }\n}\nexport const DEFAULT_REMOTE_OPTIONS = {\n socketUrlTransformer: (url) => url.replace(/^https?:\\/\\//, function (match) {\n return match === 'https://' ? 'wss://' : 'ws://';\n }),\n fetchImplementation: new FetchImplementationProvider(),\n fetchOptions: {}\n};\nexport class AbstractRemote {\n connector;\n logger;\n credentials = null;\n options;\n constructor(connector, logger = DEFAULT_REMOTE_LOGGER, options) {\n this.connector = connector;\n this.logger = logger;\n this.options = {\n ...DEFAULT_REMOTE_OPTIONS,\n ...(options ?? {})\n };\n }\n /**\n * @returns a fetch implementation (function)\n * which can be called to perform fetch requests\n */\n get fetch() {\n const { fetchImplementation } = this.options;\n return fetchImplementation instanceof FetchImplementationProvider\n ? fetchImplementation.getFetch()\n : fetchImplementation;\n }\n /**\n * Get credentials currently cached, or fetch new credentials if none are\n * available.\n *\n * These credentials may have expired already.\n */\n async getCredentials() {\n if (this.credentials) {\n return this.credentials;\n }\n return this.prefetchCredentials();\n }\n /**\n * Fetch a new set of credentials and cache it.\n *\n * Until this call succeeds, `getCredentials` will still return the\n * old credentials.\n *\n * This may be called before the current credentials have expired.\n */\n async prefetchCredentials() {\n this.credentials = await this.fetchCredentials();\n return this.credentials;\n }\n /**\n * Get credentials for PowerSync.\n *\n * This should always fetch a fresh set of credentials - don't use cached\n * values.\n */\n async fetchCredentials() {\n const credentials = await this.connector.fetchCredentials();\n if (credentials?.endpoint.match(POWERSYNC_TRAILING_SLASH_MATCH)) {\n throw new Error(`A trailing forward slash \"/\" was found in the fetchCredentials endpoint: \"${credentials.endpoint}\". Remove the trailing forward slash \"/\" to fix this error.`);\n }\n return credentials;\n }\n /***\n * Immediately invalidate credentials.\n *\n * This may be called when the current credentials have expired.\n */\n invalidateCredentials() {\n this.credentials = null;\n this.connector.invalidateCredentials?.();\n }\n getUserAgent() {\n return `powersync-js/${POWERSYNC_JS_VERSION}`;\n }\n async buildRequest(path) {\n const credentials = await this.getCredentials();\n if (credentials != null && (credentials.endpoint == null || credentials.endpoint == '')) {\n throw new Error('PowerSync endpoint not configured');\n }\n else if (credentials?.token == null || credentials?.token == '') {\n const error = new Error(`Not signed in`);\n error.status = 401;\n throw error;\n }\n const userAgent = this.getUserAgent();\n return {\n url: credentials.endpoint + path,\n headers: {\n 'content-type': 'application/json',\n Authorization: `Token ${credentials.token}`,\n 'x-user-agent': userAgent\n }\n };\n }\n async post(path, data, headers = {}) {\n const request = await this.buildRequest(path);\n const res = await this.fetch(request.url, {\n method: 'POST',\n headers: {\n ...headers,\n ...request.headers\n },\n body: JSON.stringify(data)\n });\n if (res.status === 401) {\n this.invalidateCredentials();\n }\n if (!res.ok) {\n throw new Error(`Received ${res.status} - ${res.statusText} when posting to ${path}: ${await res.text()}}`);\n }\n return res.json();\n }\n async get(path, headers) {\n const request = await this.buildRequest(path);\n const res = await this.fetch(request.url, {\n method: 'GET',\n headers: {\n ...headers,\n ...request.headers\n }\n });\n if (res.status === 401) {\n this.invalidateCredentials();\n }\n if (!res.ok) {\n throw new Error(`Received ${res.status} - ${res.statusText} when getting from ${path}: ${await res.text()}}`);\n }\n return res.json();\n }\n /**\n * @returns A text decoder decoding UTF-8. This is a method to allow patching it for Hermes which doesn't support the\n * builtin, without forcing us to bundle a polyfill with `@powersync/common`.\n */\n createTextDecoder() {\n return new TextDecoder();\n }\n createSocket(url) {\n return new WebSocket(url);\n }\n /**\n * Returns a data stream of sync line data.\n *\n * @param map Maps received payload frames to the typed event value.\n * @param bson A BSON encoder and decoder. When set, the data stream will be requested with a BSON payload\n * (required for compatibility with older sync services).\n */\n async socketStreamRaw(options, map, bson) {\n const { path, fetchStrategy = FetchStrategy.Buffered } = options;\n const mimeType = bson == null ? 'application/json' : 'application/bson';\n function toBuffer(js) {\n let contents;\n if (bson != null) {\n contents = bson.serialize(js);\n }\n else {\n contents = JSON.stringify(js);\n }\n return Buffer.from(contents);\n }\n const syncQueueRequestSize = fetchStrategy == FetchStrategy.Buffered ? 10 : 1;\n const request = await this.buildRequest(path);\n // Add the user agent in the setup payload - we can't set custom\n // headers with websockets on web. The browser userAgent is however added\n // automatically as a header.\n const userAgent = this.getUserAgent();\n const stream = new DataStream({\n logger: this.logger,\n pressure: {\n lowWaterMark: SYNC_QUEUE_REQUEST_LOW_WATER\n },\n mapLine: map\n });\n // Handle upstream abort\n if (options.abortSignal?.aborted) {\n throw new AbortOperation('Connection request aborted');\n }\n else {\n options.abortSignal?.addEventListener('abort', () => {\n stream.close();\n }, { once: true });\n }\n let keepAliveTimeout;\n const resetTimeout = () => {\n clearTimeout(keepAliveTimeout);\n keepAliveTimeout = setTimeout(() => {\n this.logger.error(`No data received on WebSocket in ${SOCKET_TIMEOUT_MS}ms, closing connection.`);\n stream.close();\n }, SOCKET_TIMEOUT_MS);\n };\n resetTimeout();\n // Typescript complains about this being `never` if it's not assigned here.\n // This is assigned in `wsCreator`.\n let disposeSocketConnectionTimeout = () => { };\n const url = this.options.socketUrlTransformer(request.url);\n const connector = new RSocketConnector({\n transport: new WebsocketClientTransport({\n url,\n wsCreator: (url) => {\n const socket = this.createSocket(url);\n disposeSocketConnectionTimeout = stream.registerListener({\n closed: () => {\n // Allow closing the underlying WebSocket if the stream was closed before the\n // RSocket connect completed. This should effectively abort the request.\n socket.close();\n }\n });\n socket.addEventListener('message', (event) => {\n resetTimeout();\n });\n return socket;\n }\n }),\n setup: {\n keepAlive: KEEP_ALIVE_MS,\n lifetime: KEEP_ALIVE_LIFETIME_MS,\n dataMimeType: mimeType,\n metadataMimeType: mimeType,\n payload: {\n data: null,\n metadata: toBuffer({\n token: request.headers.Authorization,\n user_agent: userAgent\n })\n }\n }\n });\n let rsocket;\n try {\n rsocket = await connector.connect();\n // The connection is established, we no longer need to monitor the initial timeout\n disposeSocketConnectionTimeout();\n }\n catch (ex) {\n this.logger.error(`Failed to connect WebSocket`, ex);\n clearTimeout(keepAliveTimeout);\n if (!stream.closed) {\n await stream.close();\n }\n throw ex;\n }\n resetTimeout();\n let socketIsClosed = false;\n const closeSocket = () => {\n clearTimeout(keepAliveTimeout);\n if (socketIsClosed) {\n return;\n }\n socketIsClosed = true;\n rsocket.close();\n };\n // Helps to prevent double close scenarios\n rsocket.onClose(() => (socketIsClosed = true));\n // We initially request this amount and expect these to arrive eventually\n let pendingEventsCount = syncQueueRequestSize;\n const disposeClosedListener = stream.registerListener({\n closed: () => {\n closeSocket();\n disposeClosedListener();\n }\n });\n const socket = await new Promise((resolve, reject) => {\n let connectionEstablished = false;\n const res = rsocket.requestStream({\n data: toBuffer(options.data),\n metadata: toBuffer({\n path\n })\n }, syncQueueRequestSize, // The initial N amount\n {\n onError: (e) => {\n if (e.message.includes('PSYNC_')) {\n if (e.message.includes('PSYNC_S21')) {\n this.invalidateCredentials();\n }\n }\n else {\n // Possible that connection is with an older service, always invalidate to be safe\n if (e.message !== 'Closed. ') {\n this.invalidateCredentials();\n }\n }\n // Don't log closed as an error\n if (e.message !== 'Closed. ') {\n this.logger.error(e);\n }\n // RSocket will close the RSocket stream automatically\n // Close the downstream stream as well - this will close the RSocket connection and WebSocket\n stream.close();\n // Handles cases where the connection failed e.g. auth error or connection error\n if (!connectionEstablished) {\n reject(e);\n }\n },\n onNext: (payload) => {\n // The connection is active\n if (!connectionEstablished) {\n connectionEstablished = true;\n resolve(res);\n }\n const { data } = payload;\n // Less events are now pending\n pendingEventsCount--;\n if (!data) {\n return;\n }\n stream.enqueueData(data);\n },\n onComplete: () => {\n stream.close();\n },\n onExtension: () => { }\n });\n });\n const l = stream.registerListener({\n lowWater: async () => {\n // Request to fill up the queue\n const required = syncQueueRequestSize - pendingEventsCount;\n if (required > 0) {\n socket.request(syncQueueRequestSize - pendingEventsCount);\n pendingEventsCount = syncQueueRequestSize;\n }\n },\n closed: () => {\n l();\n }\n });\n return stream;\n }\n /**\n * Connects to the sync/stream http endpoint, mapping and emitting each received string line.\n */\n async postStreamRaw(options, mapLine) {\n const { data, path, headers, abortSignal } = options;\n const request = await this.buildRequest(path);\n /**\n * This abort controller will abort pending fetch requests.\n * If the request has resolved, it will be used to close the readable stream.\n * Which will cancel the network request.\n *\n * This nested controller is required since:\n * Aborting the active fetch request while it is being consumed seems to throw\n * an unhandled exception on the window level.\n */\n if (abortSignal?.aborted) {\n throw new AbortOperation('Abort request received before making postStreamRaw request');\n }\n const controller = new AbortController();\n let requestResolved = false;\n abortSignal?.addEventListener('abort', () => {\n if (!requestResolved) {\n // Only abort via the abort controller if the request has not resolved yet\n controller.abort(abortSignal.reason ??\n new AbortOperation('Cancelling network request before it resolves. Abort signal has been received.'));\n }\n });\n const res = await this.fetch(request.url, {\n method: 'POST',\n headers: { ...headers, ...request.headers },\n body: JSON.stringify(data),\n signal: controller.signal,\n cache: 'no-store',\n ...(this.options.fetchOptions ?? {}),\n ...options.fetchOptions\n }).catch((ex) => {\n if (ex.name == 'AbortError') {\n throw new AbortOperation(`Pending fetch request to ${request.url} has been aborted.`);\n }\n throw ex;\n });\n if (!res) {\n throw new Error('Fetch request was aborted');\n }\n requestResolved = true;\n if (!res.ok || !res.body) {\n const text = await res.text();\n this.logger.error(`Could not POST streaming to ${path} - ${res.status} - ${res.statusText}: ${text}`);\n const error = new Error(`HTTP ${res.statusText}: ${text}`);\n error.status = res.status;\n throw error;\n }\n // Create a new stream splitting the response at line endings while also handling cancellations\n // by closing the reader.\n const reader = res.body.getReader();\n let readerReleased = false;\n // This will close the network request and read stream\n const closeReader = async () => {\n try {\n readerReleased = true;\n await reader.cancel();\n }\n catch (ex) {\n // an error will throw if the reader hasn't been used yet\n }\n reader.releaseLock();\n };\n const stream = new DataStream({\n logger: this.logger,\n mapLine: mapLine\n });\n abortSignal?.addEventListener('abort', () => {\n closeReader();\n stream.close();\n });\n const decoder = this.createTextDecoder();\n let buffer = '';\n const l = stream.registerListener({\n lowWater: async () => {\n if (stream.closed || abortSignal?.aborted || readerReleased) {\n return;\n }\n try {\n let didCompleteLine = false;\n while (!didCompleteLine) {\n const { done, value } = await reader.read();\n if (done) {\n const remaining = buffer.trim();\n if (remaining.length != 0) {\n stream.enqueueData(remaining);\n }\n stream.close();\n await closeReader();\n return;\n }\n const data = decoder.decode(value, { stream: true });\n buffer += data;\n const lines = buffer.split('\\n');\n for (var i = 0; i < lines.length - 1; i++) {\n var l = lines[i].trim();\n if (l.length > 0) {\n stream.enqueueData(l);\n didCompleteLine = true;\n }\n }\n buffer = lines[lines.length - 1];\n }\n }\n catch (ex) {\n stream.close();\n throw ex;\n }\n },\n closed: () => {\n closeReader();\n l?.();\n }\n });\n return stream;\n }\n}\n//# sourceMappingURL=AbstractRemote.js.map","import { FULL_SYNC_PRIORITY } from '../../../db/crud/SyncProgress.js';\nfunction priorityToJs(status) {\n return {\n priority: status.priority,\n hasSynced: status.has_synced ?? undefined,\n lastSyncedAt: status.last_synced_at != null ? new Date(status.last_synced_at * 1000) : undefined\n };\n}\nexport function coreStatusToJs(status) {\n const coreCompleteSync = status.priority_status.find((s) => s.priority == FULL_SYNC_PRIORITY);\n const completeSync = coreCompleteSync != null ? priorityToJs(coreCompleteSync) : null;\n return {\n connected: status.connected,\n connecting: status.connecting,\n dataFlow: {\n // We expose downloading as a boolean field, the core extension reports download information as a nullable\n // download status. When that status is non-null, a download is in progress.\n downloading: status.downloading != null,\n downloadProgress: status.downloading?.buckets,\n internalStreamSubscriptions: status.streams\n },\n lastSyncedAt: completeSync?.lastSyncedAt,\n hasSynced: completeSync?.hasSynced,\n priorityStatusEntries: status.priority_status.map(priorityToJs)\n };\n}\n//# sourceMappingURL=core-instruction.js.map","export function isStreamingSyncData(line) {\n return line.data != null;\n}\nexport function isStreamingKeepalive(line) {\n return line.token_expires_in != null;\n}\nexport function isStreamingSyncCheckpoint(line) {\n return line.checkpoint != null;\n}\nexport function isStreamingSyncCheckpointComplete(line) {\n return line.checkpoint_complete != null;\n}\nexport function isStreamingSyncCheckpointPartiallyComplete(line) {\n return line.partial_checkpoint_complete != null;\n}\nexport function isStreamingSyncCheckpointDiff(line) {\n return line.checkpoint_diff != null;\n}\nexport function isContinueCheckpointRequest(request) {\n return (Array.isArray(request.buckets) &&\n typeof request.checkpoint_token == 'string');\n}\nexport function isSyncNewCheckpointRequest(request) {\n return typeof request.request_checkpoint == 'object';\n}\n//# sourceMappingURL=streaming-sync-types.js.map","import Logger from 'js-logger';\nimport { SyncStatus } from '../../../db/crud/SyncStatus.js';\nimport { AbortOperation } from '../../../utils/AbortOperation.js';\nimport { BaseObserver } from '../../../utils/BaseObserver.js';\nimport { throttleLeadingTrailing } from '../../../utils/async.js';\nimport { PowerSyncControlCommand } from '../bucket/BucketStorageAdapter.js';\nimport { SyncDataBucket } from '../bucket/SyncDataBucket.js';\nimport { FetchStrategy } from './AbstractRemote.js';\nimport { coreStatusToJs } from './core-instruction.js';\nimport { isStreamingKeepalive, isStreamingSyncCheckpoint, isStreamingSyncCheckpointComplete, isStreamingSyncCheckpointDiff, isStreamingSyncCheckpointPartiallyComplete, isStreamingSyncData } from './streaming-sync-types.js';\nexport var LockType;\n(function (LockType) {\n LockType[\"CRUD\"] = \"crud\";\n LockType[\"SYNC\"] = \"sync\";\n})(LockType || (LockType = {}));\nexport var SyncStreamConnectionMethod;\n(function (SyncStreamConnectionMethod) {\n SyncStreamConnectionMethod[\"HTTP\"] = \"http\";\n SyncStreamConnectionMethod[\"WEB_SOCKET\"] = \"web-socket\";\n})(SyncStreamConnectionMethod || (SyncStreamConnectionMethod = {}));\nexport var SyncClientImplementation;\n(function (SyncClientImplementation) {\n /**\n * Decodes and handles sync lines received from the sync service in JavaScript.\n *\n * This is the default option.\n *\n * @deprecated Don't use {@link SyncClientImplementation.JAVASCRIPT} directly. Instead, use\n * {@link DEFAULT_SYNC_CLIENT_IMPLEMENTATION} or omit the option. The explicit choice to use\n * the JavaScript-based sync implementation will be removed from a future version of the SDK.\n */\n SyncClientImplementation[\"JAVASCRIPT\"] = \"js\";\n /**\n * This implementation offloads the sync line decoding and handling into the PowerSync\n * core extension.\n *\n * @experimental\n * While this implementation is more performant than {@link SyncClientImplementation.JAVASCRIPT},\n * it has seen less real-world testing and is marked as __experimental__ at the moment.\n *\n * ## Compatibility warning\n *\n * The Rust sync client stores sync data in a format that is slightly different than the one used\n * by the old {@link JAVASCRIPT} implementation. When adopting the {@link RUST} client on existing\n * databases, the PowerSync SDK will migrate the format automatically.\n * Further, the {@link JAVASCRIPT} client in recent versions of the PowerSync JS SDK (starting from\n * the version introducing {@link RUST} as an option) also supports the new format, so you can switch\n * back to {@link JAVASCRIPT} later.\n *\n * __However__: Upgrading the SDK version, then adopting {@link RUST} as a sync client and later\n * downgrading the SDK to an older version (necessarily using the JavaScript-based implementation then)\n * can lead to sync issues.\n */\n SyncClientImplementation[\"RUST\"] = \"rust\";\n})(SyncClientImplementation || (SyncClientImplementation = {}));\n/**\n * The default {@link SyncClientImplementation} to use.\n *\n * Please use this field instead of {@link SyncClientImplementation.JAVASCRIPT} directly. A future version\n * of the PowerSync SDK will enable {@link SyncClientImplementation.RUST} by default and remove the JavaScript\n * option.\n */\nexport const DEFAULT_SYNC_CLIENT_IMPLEMENTATION = SyncClientImplementation.JAVASCRIPT;\nexport const DEFAULT_CRUD_UPLOAD_THROTTLE_MS = 1000;\nexport const DEFAULT_RETRY_DELAY_MS = 5000;\nexport const DEFAULT_STREAMING_SYNC_OPTIONS = {\n retryDelayMs: DEFAULT_RETRY_DELAY_MS,\n crudUploadThrottleMs: DEFAULT_CRUD_UPLOAD_THROTTLE_MS\n};\nexport const DEFAULT_STREAM_CONNECTION_OPTIONS = {\n connectionMethod: SyncStreamConnectionMethod.WEB_SOCKET,\n clientImplementation: DEFAULT_SYNC_CLIENT_IMPLEMENTATION,\n fetchStrategy: FetchStrategy.Buffered,\n params: {},\n serializedSchema: undefined,\n includeDefaultStreams: true\n};\n// The priority we assume when we receive checkpoint lines where no priority is set.\n// This is the default priority used by the sync service, but can be set to an arbitrary\n// value since sync services without priorities also won't send partial sync completion\n// messages.\nconst FALLBACK_PRIORITY = 3;\nexport class AbstractStreamingSyncImplementation extends BaseObserver {\n _lastSyncedAt;\n options;\n abortController;\n // In rare cases, mostly for tests, uploads can be triggered without being properly connected.\n // This allows ensuring that all upload processes can be aborted.\n uploadAbortController;\n crudUpdateListener;\n streamingSyncPromise;\n logger;\n activeStreams;\n isUploadingCrud = false;\n notifyCompletedUploads;\n handleActiveStreamsChange;\n syncStatus;\n triggerCrudUpload;\n constructor(options) {\n super();\n this.options = options;\n this.activeStreams = options.subscriptions;\n this.logger = options.logger ?? Logger.get('PowerSyncStream');\n this.syncStatus = new SyncStatus({\n connected: false,\n connecting: false,\n lastSyncedAt: undefined,\n dataFlow: {\n uploading: false,\n downloading: false\n }\n });\n this.abortController = null;\n this.triggerCrudUpload = throttleLeadingTrailing(() => {\n if (!this.syncStatus.connected || this.isUploadingCrud) {\n return;\n }\n this.isUploadingCrud = true;\n this._uploadAllCrud().finally(() => {\n this.notifyCompletedUploads?.();\n this.isUploadingCrud = false;\n });\n }, this.options.crudUploadThrottleMs);\n }\n async waitForReady() { }\n waitForStatus(status) {\n return this.waitUntilStatusMatches((currentStatus) => {\n /**\n * Match only the partial status options provided in the\n * matching status\n */\n const matchPartialObject = (compA, compB) => {\n return Object.entries(compA).every(([key, value]) => {\n const comparisonBValue = compB[key];\n if (typeof value == 'object' && typeof comparisonBValue == 'object') {\n return matchPartialObject(value, comparisonBValue);\n }\n return value == comparisonBValue;\n });\n };\n return matchPartialObject(status, currentStatus);\n });\n }\n waitUntilStatusMatches(predicate) {\n return new Promise((resolve) => {\n if (predicate(this.syncStatus)) {\n resolve();\n return;\n }\n const l = this.registerListener({\n statusChanged: (updatedStatus) => {\n if (predicate(updatedStatus)) {\n resolve();\n l?.();\n }\n }\n });\n });\n }\n get lastSyncedAt() {\n const lastSynced = this.syncStatus.lastSyncedAt;\n return lastSynced && new Date(lastSynced);\n }\n get isConnected() {\n return this.syncStatus.connected;\n }\n async dispose() {\n super.dispose();\n this.crudUpdateListener?.();\n this.crudUpdateListener = undefined;\n this.uploadAbortController?.abort();\n }\n async hasCompletedSync() {\n return this.options.adapter.hasCompletedSync();\n }\n async getWriteCheckpoint() {\n const clientId = await this.options.adapter.getClientId();\n let path = `/write-checkpoint2.json?client_id=${clientId}`;\n const response = await this.options.remote.get(path);\n const checkpoint = response['data']['write_checkpoint'];\n this.logger.debug(`Created write checkpoint: ${checkpoint}`);\n return checkpoint;\n }\n async _uploadAllCrud() {\n return this.obtainLock({\n type: LockType.CRUD,\n callback: async () => {\n /**\n * Keep track of the first item in the CRUD queue for the last `uploadCrud` iteration.\n */\n let checkedCrudItem;\n const controller = new AbortController();\n this.uploadAbortController = controller;\n this.abortController?.signal.addEventListener('abort', () => {\n controller.abort();\n }, { once: true });\n while (!controller.signal.aborted) {\n try {\n /**\n * This is the first item in the FIFO CRUD queue.\n */\n const nextCrudItem = await this.options.adapter.nextCrudItem();\n if (nextCrudItem) {\n this.updateSyncStatus({\n dataFlow: {\n uploading: true\n }\n });\n if (nextCrudItem.clientId == checkedCrudItem?.clientId) {\n // This will force a higher log level than exceptions which are caught here.\n this.logger.warn(`Potentially previously uploaded CRUD entries are still present in the upload queue.\nMake sure to handle uploads and complete CRUD transactions or batches by calling and awaiting their [.complete()] method.\nThe next upload iteration will be delayed.`);\n throw new Error('Delaying due to previously encountered CRUD item.');\n }\n checkedCrudItem = nextCrudItem;\n await this.options.uploadCrud();\n this.updateSyncStatus({\n dataFlow: {\n uploadError: undefined\n }\n });\n }\n else {\n // Uploading is completed\n const neededUpdate = await this.options.adapter.updateLocalTarget(() => this.getWriteCheckpoint());\n if (neededUpdate == false && checkedCrudItem != null) {\n // Only log this if there was something to upload\n this.logger.debug('Upload complete, no write checkpoint needed.');\n }\n break;\n }\n }\n catch (ex) {\n checkedCrudItem = undefined;\n this.updateSyncStatus({\n dataFlow: {\n uploading: false,\n uploadError: ex\n }\n });\n await this.delayRetry(controller.signal);\n if (!this.isConnected) {\n // Exit the upload loop if the sync stream is no longer connected\n break;\n }\n this.logger.debug(`Caught exception when uploading. Upload will retry after a delay. Exception: ${ex.message}`);\n }\n finally {\n this.updateSyncStatus({\n dataFlow: {\n uploading: false\n }\n });\n }\n }\n this.uploadAbortController = null;\n }\n });\n }\n async connect(options) {\n if (this.abortController) {\n await this.disconnect();\n }\n const controller = new AbortController();\n this.abortController = controller;\n this.streamingSyncPromise = this.streamingSync(this.abortController.signal, options);\n // Return a promise that resolves when the connection status is updated to indicate that we're connected.\n return new Promise((resolve) => {\n const disposer = this.registerListener({\n statusChanged: (status) => {\n if (status.dataFlowStatus.downloadError != null) {\n this.logger.warn('Initial connect attempt did not successfully connect to server');\n }\n else if (status.connecting) {\n // Still connecting.\n return;\n }\n disposer();\n resolve();\n }\n });\n });\n }\n async disconnect() {\n if (!this.abortController) {\n return;\n }\n // This might be called multiple times\n if (!this.abortController.signal.aborted) {\n this.abortController.abort(new AbortOperation('Disconnect has been requested'));\n }\n // Await any pending operations before completing the disconnect operation\n try {\n await this.streamingSyncPromise;\n }\n catch (ex) {\n // The operation might have failed, all we care about is if it has completed\n this.logger.warn(ex);\n }\n this.streamingSyncPromise = undefined;\n this.abortController = null;\n this.updateSyncStatus({ connected: false, connecting: false });\n }\n /**\n * @deprecated use [connect instead]\n */\n async streamingSync(signal, options) {\n if (!signal) {\n this.abortController = new AbortController();\n signal = this.abortController.signal;\n }\n /**\n * Listen for CRUD updates and trigger upstream uploads\n */\n this.crudUpdateListener = this.options.adapter.registerListener({\n crudUpdate: () => this.triggerCrudUpload()\n });\n /**\n * Create a new abort controller which aborts items downstream.\n * This is needed to close any previous connections on exception.\n */\n let nestedAbortController = new AbortController();\n signal.addEventListener('abort', () => {\n /**\n * A request for disconnect was received upstream. Relay the request\n * to the nested abort controller.\n */\n nestedAbortController.abort(signal?.reason ?? new AbortOperation('Received command to disconnect from upstream'));\n this.crudUpdateListener?.();\n this.crudUpdateListener = undefined;\n this.updateSyncStatus({\n connected: false,\n connecting: false,\n dataFlow: {\n downloading: false,\n downloadProgress: null\n }\n });\n });\n /**\n * This loops runs until [retry] is false or the abort signal is set to aborted.\n * Aborting the nestedAbortController will:\n * - Abort any pending fetch requests\n * - Close any sync stream ReadableStreams (which will also close any established network requests)\n */\n while (true) {\n this.updateSyncStatus({ connecting: true });\n let shouldDelayRetry = true;\n let result = null;\n try {\n if (signal?.aborted) {\n break;\n }\n result = await this.streamingSyncIteration(nestedAbortController.signal, options);\n // Continue immediately, streamingSyncIteration will wait before completing if necessary.\n }\n catch (ex) {\n /**\n * Either:\n * - A network request failed with a failed connection or not OKAY response code.\n * - There was a sync processing error.\n * - The connection was aborted.\n * This loop will retry after a delay if the connection was not aborted.\n * The nested abort controller will cleanup any open network requests and streams.\n * The WebRemote should only abort pending fetch requests or close active Readable streams.\n */\n if (ex instanceof AbortOperation) {\n this.logger.warn(ex);\n shouldDelayRetry = false;\n // A disconnect was requested, we should not delay since there is no explicit retry\n }\n else {\n this.logger.error(ex);\n }\n this.updateSyncStatus({\n dataFlow: {\n downloadError: ex\n }\n });\n }\n finally {\n this.notifyCompletedUploads = undefined;\n if (!signal.aborted) {\n nestedAbortController.abort(new AbortOperation('Closing sync stream network requests before retry.'));\n nestedAbortController = new AbortController();\n }\n if (result?.immediateRestart != true) {\n this.updateSyncStatus({\n connected: false,\n connecting: true // May be unnecessary\n });\n // On error, wait a little before retrying\n if (shouldDelayRetry) {\n await this.delayRetry(nestedAbortController.signal);\n }\n }\n }\n }\n // Mark as disconnected if here\n this.updateSyncStatus({ connected: false, connecting: false });\n }\n async collectLocalBucketState() {\n const bucketEntries = await this.options.adapter.getBucketStates();\n const req = bucketEntries.map((entry) => ({\n name: entry.bucket,\n after: entry.op_id\n }));\n const localDescriptions = new Map();\n for (const entry of bucketEntries) {\n localDescriptions.set(entry.bucket, null);\n }\n return [req, localDescriptions];\n }\n /**\n * Older versions of the JS SDK used to encode subkeys as JSON in {@link OplogEntry.toJSON}.\n * Because subkeys are always strings, this leads to quotes being added around them in `ps_oplog`.\n * While this is not a problem as long as it's done consistently, it causes issues when a database\n * created by the JS SDK is used with other SDKs, or (more likely) when the new Rust sync client\n * is enabled.\n *\n * So, we add a migration from the old key format (with quotes) to the new one (no quotes). The\n * migration is only triggered when necessary (for now). The function returns whether the new format\n * should be used, so that the JS SDK is able to write to updated databases.\n *\n * @param requireFixedKeyFormat Whether we require the new format or also support the old one.\n * The Rust client requires the new subkey format.\n * @returns Whether the database is now using the new, fixed subkey format.\n */\n async requireKeyFormat(requireFixedKeyFormat) {\n const hasMigrated = await this.options.adapter.hasMigratedSubkeys();\n if (requireFixedKeyFormat && !hasMigrated) {\n await this.options.adapter.migrateToFixedSubkeys();\n return true;\n }\n else {\n return hasMigrated;\n }\n }\n streamingSyncIteration(signal, options) {\n return this.obtainLock({\n type: LockType.SYNC,\n signal,\n callback: async () => {\n const resolvedOptions = {\n ...DEFAULT_STREAM_CONNECTION_OPTIONS,\n ...(options ?? {})\n };\n const clientImplementation = resolvedOptions.clientImplementation;\n this.updateSyncStatus({ clientImplementation });\n if (clientImplementation == SyncClientImplementation.JAVASCRIPT) {\n await this.legacyStreamingSyncIteration(signal, resolvedOptions);\n return null;\n }\n else {\n await this.requireKeyFormat(true);\n return await this.rustSyncIteration(signal, resolvedOptions);\n }\n }\n });\n }\n async legacyStreamingSyncIteration(signal, resolvedOptions) {\n const rawTables = resolvedOptions.serializedSchema?.raw_tables;\n if (rawTables != null && rawTables.length) {\n this.logger.warn('Raw tables require the Rust-based sync client. The JS client will ignore them.');\n }\n this.logger.debug('Streaming sync iteration started');\n this.options.adapter.startSession();\n let [req, bucketMap] = await this.collectLocalBucketState();\n let targetCheckpoint = null;\n // A checkpoint that has been validated but not applied (e.g. due to pending local writes)\n let pendingValidatedCheckpoint = null;\n const clientId = await this.options.adapter.getClientId();\n const usingFixedKeyFormat = await this.requireKeyFormat(false);\n this.logger.debug('Requesting stream from server');\n const syncOptions = {\n path: '/sync/stream',\n abortSignal: signal,\n data: {\n buckets: req,\n include_checksum: true,\n raw_data: true,\n parameters: resolvedOptions.params,\n client_id: clientId\n }\n };\n let stream;\n if (resolvedOptions?.connectionMethod == SyncStreamConnectionMethod.HTTP) {\n stream = await this.options.remote.postStreamRaw(syncOptions, (line) => {\n if (typeof line == 'string') {\n return JSON.parse(line);\n }\n else {\n // Directly enqueued by us\n return line;\n }\n });\n }\n else {\n const bson = await this.options.remote.getBSON();\n stream = await this.options.remote.socketStreamRaw({\n ...syncOptions,\n ...{ fetchStrategy: resolvedOptions.fetchStrategy }\n }, (payload) => {\n if (payload instanceof Uint8Array) {\n return bson.deserialize(payload);\n }\n else {\n // Directly enqueued by us\n return payload;\n }\n }, bson);\n }\n this.logger.debug('Stream established. Processing events');\n this.notifyCompletedUploads = () => {\n if (!stream.closed) {\n stream.enqueueData({ crud_upload_completed: null });\n }\n };\n while (!stream.closed) {\n const line = await stream.read();\n if (!line) {\n // The stream has closed while waiting\n return;\n }\n if ('crud_upload_completed' in line) {\n if (pendingValidatedCheckpoint != null) {\n const { applied, endIteration } = await this.applyCheckpoint(pendingValidatedCheckpoint);\n if (applied) {\n pendingValidatedCheckpoint = null;\n }\n else if (endIteration) {\n break;\n }\n }\n continue;\n }\n // A connection is active and messages are being received\n if (!this.syncStatus.connected) {\n // There is a connection now\n Promise.resolve().then(() => this.triggerCrudUpload());\n this.updateSyncStatus({\n connected: true\n });\n }\n if (isStreamingSyncCheckpoint(line)) {\n targetCheckpoint = line.checkpoint;\n // New checkpoint - existing validated checkpoint is no longer valid\n pendingValidatedCheckpoint = null;\n const bucketsToDelete = new Set(bucketMap.keys());\n const newBuckets = new Map();\n for (const checksum of line.checkpoint.buckets) {\n newBuckets.set(checksum.bucket, {\n name: checksum.bucket,\n priority: checksum.priority ?? FALLBACK_PRIORITY\n });\n bucketsToDelete.delete(checksum.bucket);\n }\n if (bucketsToDelete.size > 0) {\n this.logger.debug('Removing buckets', [...bucketsToDelete]);\n }\n bucketMap = newBuckets;\n await this.options.adapter.removeBuckets([...bucketsToDelete]);\n await this.options.adapter.setTargetCheckpoint(targetCheckpoint);\n await this.updateSyncStatusForStartingCheckpoint(targetCheckpoint);\n }\n else if (isStreamingSyncCheckpointComplete(line)) {\n const result = await this.applyCheckpoint(targetCheckpoint);\n if (result.endIteration) {\n return;\n }\n else if (!result.applied) {\n // \"Could not apply checkpoint due to local data\". We need to retry after\n // finishing uploads.\n pendingValidatedCheckpoint = targetCheckpoint;\n }\n else {\n // Nothing to retry later. This would likely already be null from the last\n // checksum or checksum_diff operation, but we make sure.\n pendingValidatedCheckpoint = null;\n }\n }\n else if (isStreamingSyncCheckpointPartiallyComplete(line)) {\n const priority = line.partial_checkpoint_complete.priority;\n this.logger.debug('Partial checkpoint complete', priority);\n const result = await this.options.adapter.syncLocalDatabase(targetCheckpoint, priority);\n if (!result.checkpointValid) {\n // This means checksums failed. Start again with a new checkpoint.\n // TODO: better back-off\n await new Promise((resolve) => setTimeout(resolve, 50));\n return;\n }\n else if (!result.ready) {\n // If we have pending uploads, we can't complete new checkpoints outside of priority 0.\n // We'll resolve this for a complete checkpoint.\n }\n else {\n // We'll keep on downloading, but can report that this priority is synced now.\n this.logger.debug('partial checkpoint validation succeeded');\n // All states with a higher priority can be deleted since this partial sync includes them.\n const priorityStates = this.syncStatus.priorityStatusEntries.filter((s) => s.priority <= priority);\n priorityStates.push({\n priority,\n lastSyncedAt: new Date(),\n hasSynced: true\n });\n this.updateSyncStatus({\n connected: true,\n priorityStatusEntries: priorityStates\n });\n }\n }\n else if (isStreamingSyncCheckpointDiff(line)) {\n // TODO: It may be faster to just keep track of the diff, instead of the entire checkpoint\n if (targetCheckpoint == null) {\n throw new Error('Checkpoint diff without previous checkpoint');\n }\n // New checkpoint - existing validated checkpoint is no longer valid\n pendingValidatedCheckpoint = null;\n const diff = line.checkpoint_diff;\n const newBuckets = new Map();\n for (const checksum of targetCheckpoint.buckets) {\n newBuckets.set(checksum.bucket, checksum);\n }\n for (const checksum of diff.updated_buckets) {\n newBuckets.set(checksum.bucket, checksum);\n }\n for (const bucket of diff.removed_buckets) {\n newBuckets.delete(bucket);\n }\n const newCheckpoint = {\n last_op_id: diff.last_op_id,\n buckets: [...newBuckets.values()],\n write_checkpoint: diff.write_checkpoint\n };\n targetCheckpoint = newCheckpoint;\n await this.updateSyncStatusForStartingCheckpoint(targetCheckpoint);\n bucketMap = new Map();\n newBuckets.forEach((checksum, name) => bucketMap.set(name, {\n name: checksum.bucket,\n priority: checksum.priority ?? FALLBACK_PRIORITY\n }));\n const bucketsToDelete = diff.removed_buckets;\n if (bucketsToDelete.length > 0) {\n this.logger.debug('Remove buckets', bucketsToDelete);\n }\n await this.options.adapter.removeBuckets(bucketsToDelete);\n await this.options.adapter.setTargetCheckpoint(targetCheckpoint);\n }\n else if (isStreamingSyncData(line)) {\n const { data } = line;\n const previousProgress = this.syncStatus.dataFlowStatus.downloadProgress;\n let updatedProgress = null;\n if (previousProgress) {\n updatedProgress = { ...previousProgress };\n const progressForBucket = updatedProgress[data.bucket];\n if (progressForBucket) {\n updatedProgress[data.bucket] = {\n ...progressForBucket,\n since_last: progressForBucket.since_last + data.data.length\n };\n }\n }\n this.updateSyncStatus({\n dataFlow: {\n downloading: true,\n downloadProgress: updatedProgress\n }\n });\n await this.options.adapter.saveSyncData({ buckets: [SyncDataBucket.fromRow(data)] }, usingFixedKeyFormat);\n }\n else if (isStreamingKeepalive(line)) {\n const remaining_seconds = line.token_expires_in;\n if (remaining_seconds == 0) {\n // Connection would be closed automatically right after this\n this.logger.debug('Token expiring; reconnect');\n /**\n * For a rare case where the backend connector does not update the token\n * (uses the same one), this should have some delay.\n */\n await this.delayRetry();\n return;\n }\n else if (remaining_seconds < 30) {\n this.logger.debug('Token will expire soon; reconnect');\n // Pre-emptively refresh the token\n this.options.remote.invalidateCredentials();\n return;\n }\n this.triggerCrudUpload();\n }\n else {\n this.logger.debug('Received unknown sync line', line);\n }\n }\n this.logger.debug('Stream input empty');\n // Connection closed. Likely due to auth issue.\n return;\n }\n async rustSyncIteration(signal, resolvedOptions) {\n const syncImplementation = this;\n const adapter = this.options.adapter;\n const remote = this.options.remote;\n let receivingLines = null;\n let hadSyncLine = false;\n let hideDisconnectOnRestart = false;\n if (signal.aborted) {\n throw new AbortOperation('Connection request has been aborted');\n }\n const abortController = new AbortController();\n signal.addEventListener('abort', () => abortController.abort());\n // Pending sync lines received from the service, as well as local events that trigger a powersync_control\n // invocation (local events include refreshed tokens and completed uploads).\n // This is a single data stream so that we can handle all control calls from a single place.\n let controlInvocations = null;\n async function connect(instr) {\n const syncOptions = {\n path: '/sync/stream',\n abortSignal: abortController.signal,\n data: instr.request\n };\n if (resolvedOptions.connectionMethod == SyncStreamConnectionMethod.HTTP) {\n controlInvocations = await remote.postStreamRaw(syncOptions, (line) => {\n if (typeof line == 'string') {\n return {\n command: PowerSyncControlCommand.PROCESS_TEXT_LINE,\n payload: line\n };\n }\n else {\n // Directly enqueued by us\n return line;\n }\n });\n }\n else {\n controlInvocations = await remote.socketStreamRaw({\n ...syncOptions,\n fetchStrategy: resolvedOptions.fetchStrategy\n }, (payload) => {\n if (payload instanceof Uint8Array) {\n return {\n command: PowerSyncControlCommand.PROCESS_BSON_LINE,\n payload: payload\n };\n }\n else {\n // Directly enqueued by us\n return payload;\n }\n });\n }\n // The rust client will set connected: true after the first sync line because that's when it gets invoked, but\n // we're already connected here and can report that.\n syncImplementation.updateSyncStatus({ connected: true });\n try {\n while (!controlInvocations.closed) {\n const line = await controlInvocations.read();\n if (line == null) {\n return;\n }\n await control(line.command, line.payload);\n if (!hadSyncLine) {\n syncImplementation.triggerCrudUpload();\n hadSyncLine = true;\n }\n }\n }\n finally {\n const activeInstructions = controlInvocations;\n // We concurrently add events to the active data stream when e.g. a CRUD upload is completed or a token is\n // refreshed. That would throw after closing (and we can't handle those events either way), so set this back\n // to null.\n controlInvocations = null;\n await activeInstructions.close();\n }\n }\n async function stop() {\n await control(PowerSyncControlCommand.STOP);\n }\n async function control(op, payload) {\n const rawResponse = await adapter.control(op, payload ?? null);\n const logger = syncImplementation.logger;\n logger.trace('powersync_control', op, payload == null || typeof payload == 'string' ? payload : '<bytes>', rawResponse);\n await handleInstructions(JSON.parse(rawResponse));\n }\n async function handleInstruction(instruction) {\n if ('LogLine' in instruction) {\n switch (instruction.LogLine.severity) {\n case 'DEBUG':\n syncImplementation.logger.debug(instruction.LogLine.line);\n break;\n case 'INFO':\n syncImplementation.logger.info(instruction.LogLine.line);\n break;\n case 'WARNING':\n syncImplementation.logger.warn(instruction.LogLine.line);\n break;\n }\n }\n else if ('UpdateSyncStatus' in instruction) {\n syncImplementation.updateSyncStatus(coreStatusToJs(instruction.UpdateSyncStatus.status));\n }\n else if ('EstablishSyncStream' in instruction) {\n if (receivingLines != null) {\n // Already connected, this shouldn't happen during a single iteration.\n throw 'Unexpected request to establish sync stream, already connected';\n }\n receivingLines = connect(instruction.EstablishSyncStream);\n }\n else if ('FetchCredentials' in instruction) {\n if (instruction.FetchCredentials.did_expire) {\n remote.invalidateCredentials();\n }\n else {\n remote.invalidateCredentials();\n // Restart iteration after the credentials have been refreshed.\n remote.fetchCredentials().then((_) => {\n controlInvocations?.enqueueData({ command: PowerSyncControlCommand.NOTIFY_TOKEN_REFRESHED });\n }, (err) => {\n syncImplementation.logger.warn('Could not prefetch credentials', err);\n });\n }\n }\n else if ('CloseSyncStream' in instruction) {\n abortController.abort();\n hideDisconnectOnRestart = instruction.CloseSyncStream.hide_disconnect;\n }\n else if ('FlushFileSystem' in instruction) {\n // Not necessary on JS platforms.\n }\n else if ('DidCompleteSync' in instruction) {\n syncImplementation.updateSyncStatus({\n dataFlow: {\n downloadError: undefined\n }\n });\n }\n }\n async function handleInstructions(instructions) {\n for (const instr of instructions) {\n await handleInstruction(instr);\n }\n }\n try {\n const options = {\n parameters: resolvedOptions.params,\n active_streams: this.activeStreams,\n include_defaults: resolvedOptions.includeDefaultStreams\n };\n if (resolvedOptions.serializedSchema) {\n options.schema = resolvedOptions.serializedSchema;\n }\n await control(PowerSyncControlCommand.START, JSON.stringify(options));\n this.notifyCompletedUploads = () => {\n if (controlInvocations && !controlInvocations?.closed) {\n controlInvocations.enqueueData({ command: PowerSyncControlCommand.NOTIFY_CRUD_UPLOAD_COMPLETED });\n }\n };\n this.handleActiveStreamsChange = () => {\n if (controlInvocations && !controlInvocations?.closed) {\n controlInvocations.enqueueData({\n command: PowerSyncControlCommand.UPDATE_SUBSCRIPTIONS,\n payload: JSON.stringify(this.activeStreams)\n });\n }\n };\n await receivingLines;\n }\n finally {\n this.notifyCompletedUploads = this.handleActiveStreamsChange = undefined;\n await stop();\n }\n return { immediateRestart: hideDisconnectOnRestart };\n }\n async updateSyncStatusForStartingCheckpoint(checkpoint) {\n const localProgress = await this.options.adapter.getBucketOperationProgress();\n const progress = {};\n let invalidated = false;\n for (const bucket of checkpoint.buckets) {\n const savedProgress = localProgress[bucket.bucket];\n const atLast = savedProgress?.atLast ?? 0;\n const sinceLast = savedProgress?.sinceLast ?? 0;\n progress[bucket.bucket] = {\n // The fallback priority doesn't matter here, but 3 is the one newer versions of the sync service\n // will use by default.\n priority: bucket.priority ?? 3,\n at_last: atLast,\n since_last: sinceLast,\n target_count: bucket.count ?? 0\n };\n if (bucket.count != null && bucket.count < atLast + sinceLast) {\n // Either due to a defrag / sync rule deploy or a compaction operation, the size\n // of the bucket shrank so much that the local ops exceed the ops in the updated\n // bucket. We can't prossibly report progress in this case (it would overshoot 100%).\n invalidated = true;\n }\n }\n if (invalidated) {\n for (const bucket in progress) {\n const bucketProgress = progress[bucket];\n bucketProgress.at_last = 0;\n bucketProgress.since_last = 0;\n }\n }\n this.updateSyncStatus({\n dataFlow: {\n downloading: true,\n downloadProgress: progress\n }\n });\n }\n async applyCheckpoint(checkpoint) {\n let result = await this.options.adapter.syncLocalDatabase(checkpoint);\n if (!result.checkpointValid) {\n this.logger.debug(`Checksum mismatch in checkpoint ${checkpoint.last_op_id}, will reconnect`);\n // This means checksums failed. Start again with a new checkpoint.\n // TODO: better back-off\n await new Promise((resolve) => setTimeout(resolve, 50));\n return { applied: false, endIteration: true };\n }\n else if (!result.ready) {\n this.logger.debug(`Could not apply checkpoint ${checkpoint.last_op_id} due to local data. We will retry applying the checkpoint after that upload is completed.`);\n return { applied: false, endIteration: false };\n }\n this.logger.debug(`Applied checkpoint ${checkpoint.last_op_id}`, checkpoint);\n this.updateSyncStatus({\n connected: true,\n lastSyncedAt: new Date(),\n dataFlow: {\n downloading: false,\n downloadProgress: null,\n downloadError: undefined\n }\n });\n return { applied: true, endIteration: false };\n }\n updateSyncStatus(options) {\n const updatedStatus = new SyncStatus({\n connected: options.connected ?? this.syncStatus.connected,\n connecting: !options.connected && (options.connecting ?? this.syncStatus.connecting),\n lastSyncedAt: options.lastSyncedAt ?? this.syncStatus.lastSyncedAt,\n dataFlow: {\n ...this.syncStatus.dataFlowStatus,\n ...options.dataFlow\n },\n priorityStatusEntries: options.priorityStatusEntries ?? this.syncStatus.priorityStatusEntries,\n clientImplementation: options.clientImplementation ?? this.syncStatus.clientImplementation\n });\n if (!this.syncStatus.isEqual(updatedStatus)) {\n this.syncStatus = updatedStatus;\n // Only trigger this is there was a change\n this.iterateListeners((cb) => cb.statusChanged?.(updatedStatus));\n }\n // trigger this for all updates\n this.iterateListeners((cb) => cb.statusUpdated?.(options));\n }\n async delayRetry(signal) {\n return new Promise((resolve) => {\n if (signal?.aborted) {\n // If the signal is already aborted, resolve immediately\n resolve();\n return;\n }\n const { retryDelayMs } = this.options;\n let timeoutId;\n const endDelay = () => {\n resolve();\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n signal?.removeEventListener('abort', endDelay);\n };\n signal?.addEventListener('abort', endDelay, { once: true });\n timeoutId = setTimeout(endDelay, retryDelayMs);\n });\n }\n updateSubscriptions(subscriptions) {\n this.activeStreams = subscriptions;\n this.handleActiveStreamsChange?.();\n }\n}\n//# sourceMappingURL=AbstractStreamingSyncImplementation.js.map","/**\n * SQLite operations to track changes for with {@link TriggerManager}\n * @experimental\n */\nexport var DiffTriggerOperation;\n(function (DiffTriggerOperation) {\n DiffTriggerOperation[\"INSERT\"] = \"INSERT\";\n DiffTriggerOperation[\"UPDATE\"] = \"UPDATE\";\n DiffTriggerOperation[\"DELETE\"] = \"DELETE\";\n})(DiffTriggerOperation || (DiffTriggerOperation = {}));\n//# sourceMappingURL=TriggerManager.js.map","import { DEFAULT_WATCH_THROTTLE_MS } from '../watched/WatchedQuery.js';\nimport { DiffTriggerOperation } from './TriggerManager.js';\nexport class TriggerManagerImpl {\n options;\n schema;\n constructor(options) {\n this.options = options;\n this.schema = options.schema;\n options.db.registerListener({\n schemaChanged: (schema) => {\n this.schema = schema;\n }\n });\n }\n get db() {\n return this.options.db;\n }\n async getUUID() {\n const { id: uuid } = await this.db.get(/* sql */ `\n SELECT\n uuid () as id\n `);\n // Replace dashes with underscores for SQLite table/trigger name compatibility\n return uuid.replace(/-/g, '_');\n }\n async removeTriggers(tx, triggerIds) {\n for (const triggerId of triggerIds) {\n await tx.execute(/* sql */ `DROP TRIGGER IF EXISTS ${triggerId}; `);\n }\n }\n async createDiffTrigger(options) {\n await this.db.waitForReady();\n const { source, destination, columns, when, hooks } = options;\n const operations = Object.keys(when);\n if (operations.length == 0) {\n throw new Error('At least one WHEN operation must be specified for the trigger.');\n }\n const whenClauses = Object.fromEntries(Object.entries(when).map(([operation, filter]) => [operation, `WHEN ${filter}`]));\n /**\n * Allow specifying the View name as the source.\n * We can lookup the internal table name from the schema.\n */\n const sourceDefinition = this.schema.tables.find((table) => table.viewName == source);\n if (!sourceDefinition) {\n throw new Error(`Source table or view \"${source}\" not found in the schema.`);\n }\n const replicatedColumns = columns ?? sourceDefinition.columns.map((col) => col.name);\n const internalSource = sourceDefinition.internalName;\n const triggerIds = [];\n const id = await this.getUUID();\n /**\n * We default to replicating all columns if no columns array is provided.\n */\n const jsonFragment = (source = 'NEW') => {\n if (columns == null) {\n // Track all columns\n return `${source}.data`;\n }\n else if (columns.length == 0) {\n // Don't track any columns except for the id\n return `'{}'`;\n }\n else {\n // Filter the data by the replicated columns\n return `json_object(${replicatedColumns.map((col) => `'${col}', json_extract(${source}.data, '$.${col}')`).join(', ')})`;\n }\n };\n const disposeWarningListener = this.db.registerListener({\n schemaChanged: () => {\n this.db.logger.warn(`The PowerSync schema has changed while previously configured triggers are still operational. This might cause unexpected results.`);\n }\n });\n /**\n * Declare the cleanup function early since if any of the init steps fail,\n * we need to ensure we can cleanup the created resources.\n * We unfortunately cannot rely on transaction rollback.\n */\n const cleanup = async () => {\n disposeWarningListener();\n return this.db.writeLock(async (tx) => {\n await this.removeTriggers(tx, triggerIds);\n await tx.execute(/* sql */ `DROP TABLE IF EXISTS ${destination};`);\n });\n };\n const setup = async (tx) => {\n // Allow user code to execute in this lock context before the trigger is created.\n await hooks?.beforeCreate?.(tx);\n await tx.execute(/* sql */ `\n CREATE TEMP TABLE ${destination} (\n operation_id INTEGER PRIMARY KEY AUTOINCREMENT,\n id TEXT,\n operation TEXT,\n timestamp TEXT,\n value TEXT,\n previous_value TEXT\n );\n `);\n if (operations.includes(DiffTriggerOperation.INSERT)) {\n const insertTriggerId = `ps_temp_trigger_insert_${id}`;\n triggerIds.push(insertTriggerId);\n await tx.execute(/* sql */ `\n CREATE TEMP TRIGGER ${insertTriggerId} AFTER INSERT ON ${internalSource} ${whenClauses[DiffTriggerOperation.INSERT]} BEGIN\n INSERT INTO\n ${destination} (id, operation, timestamp, value)\n VALUES\n (\n NEW.id,\n 'INSERT',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${jsonFragment('NEW')}\n );\n\n END;\n `);\n }\n if (operations.includes(DiffTriggerOperation.UPDATE)) {\n const updateTriggerId = `ps_temp_trigger_update_${id}`;\n triggerIds.push(updateTriggerId);\n await tx.execute(/* sql */ `\n CREATE TEMP TRIGGER ${updateTriggerId} AFTER\n UPDATE ON ${internalSource} ${whenClauses[DiffTriggerOperation.UPDATE]} BEGIN\n INSERT INTO\n ${destination} (id, operation, timestamp, value, previous_value)\n VALUES\n (\n NEW.id,\n 'UPDATE',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${jsonFragment('NEW')},\n ${jsonFragment('OLD')}\n );\n\n END;\n `);\n }\n if (operations.includes(DiffTriggerOperation.DELETE)) {\n const deleteTriggerId = `ps_temp_trigger_delete_${id}`;\n triggerIds.push(deleteTriggerId);\n // Create delete trigger for basic JSON\n await tx.execute(/* sql */ `\n CREATE TEMP TRIGGER ${deleteTriggerId} AFTER DELETE ON ${internalSource} ${whenClauses[DiffTriggerOperation.DELETE]} BEGIN\n INSERT INTO\n ${destination} (id, operation, timestamp, value)\n VALUES\n (\n OLD.id,\n 'DELETE',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${jsonFragment('OLD')}\n );\n\n END;\n `);\n }\n };\n try {\n await this.db.writeLock(setup);\n return cleanup;\n }\n catch (error) {\n try {\n await cleanup();\n }\n catch (cleanupError) {\n throw new AggregateError([error, cleanupError], 'Error during operation and cleanup');\n }\n throw error;\n }\n }\n async trackTableDiff(options) {\n const { source, when, columns, hooks, throttleMs = DEFAULT_WATCH_THROTTLE_MS } = options;\n await this.db.waitForReady();\n /**\n * Allow specifying the View name as the source.\n * We can lookup the internal table name from the schema.\n */\n const sourceDefinition = this.schema.tables.find((table) => table.viewName == source);\n if (!sourceDefinition) {\n throw new Error(`Source table or view \"${source}\" not found in the schema.`);\n }\n // The columns to present in the onChange context methods.\n // If no array is provided, we use all columns from the source table.\n const contextColumns = columns ?? sourceDefinition.columns.map((col) => col.name);\n const id = await this.getUUID();\n const destination = `ps_temp_track_${source}_${id}`;\n // register an onChange before the trigger is created\n const abortController = new AbortController();\n const abortOnChange = () => abortController.abort();\n this.db.onChange({\n // Note that the onChange events here have their execution scheduled.\n // Callbacks are throttled and are sequential.\n onChange: async () => {\n if (abortController.signal.aborted)\n return;\n // Run the handler in a write lock to keep the state of the\n // destination table consistent.\n await this.db.writeTransaction(async (tx) => {\n const callbackResult = await options.onChange({\n ...tx,\n destinationTable: destination,\n withDiff: async (query, params, options) => {\n // Wrap the query to expose the destination table\n const operationIdSelect = options?.castOperationIdAsText\n ? 'id, operation, CAST(operation_id AS TEXT) as operation_id, timestamp, value, previous_value'\n : '*';\n const wrappedQuery = /* sql */ `\n WITH\n DIFF AS (\n SELECT\n ${operationIdSelect}\n FROM\n ${destination}\n ORDER BY\n operation_id ASC\n ) ${query}\n `;\n return tx.getAll(wrappedQuery, params);\n },\n withExtractedDiff: async (query, params) => {\n // Wrap the query to expose the destination table\n const wrappedQuery = /* sql */ `\n WITH\n DIFF AS (\n SELECT\n id,\n ${contextColumns.length > 0\n ? `${contextColumns.map((col) => `json_extract(value, '$.${col}') as ${col}`).join(', ')},`\n : ''} operation_id as __operation_id,\n operation as __operation,\n timestamp as __timestamp,\n previous_value as __previous_value\n FROM\n ${destination}\n ORDER BY\n __operation_id ASC\n ) ${query}\n `;\n return tx.getAll(wrappedQuery, params);\n }\n });\n // Clear the destination table after processing\n await tx.execute(/* sql */ `DELETE FROM ${destination};`);\n return callbackResult;\n });\n }\n }, { tables: [destination], signal: abortController.signal, throttleMs });\n try {\n const removeTrigger = await this.createDiffTrigger({\n source,\n destination,\n columns: contextColumns,\n when,\n hooks\n });\n return async () => {\n abortOnChange();\n await removeTrigger();\n };\n }\n catch (error) {\n try {\n abortOnChange();\n }\n catch (cleanupError) {\n throw new AggregateError([error, cleanupError], 'Error during operation and cleanup');\n }\n throw error;\n }\n }\n}\n//# sourceMappingURL=TriggerManagerImpl.js.map","import { Mutex } from 'async-mutex';\nimport { EventIterator } from 'event-iterator';\nimport Logger from 'js-logger';\nimport { isBatchedUpdateNotification } from '../db/DBAdapter.js';\nimport { SyncStatus } from '../db/crud/SyncStatus.js';\nimport { UploadQueueStats } from '../db/crud/UploadQueueStatus.js';\nimport { BaseObserver } from '../utils/BaseObserver.js';\nimport { ControlledExecutor } from '../utils/ControlledExecutor.js';\nimport { symbolAsyncIterator, throttleTrailing } from '../utils/async.js';\nimport { ConnectionManager } from './ConnectionManager.js';\nimport { CustomQuery } from './CustomQuery.js';\nimport { isDBAdapter, isSQLOpenFactory, isSQLOpenOptions } from './SQLOpenFactory.js';\nimport { PSInternalTable } from './sync/bucket/BucketStorageAdapter.js';\nimport { CrudBatch } from './sync/bucket/CrudBatch.js';\nimport { CrudEntry } from './sync/bucket/CrudEntry.js';\nimport { CrudTransaction } from './sync/bucket/CrudTransaction.js';\nimport { DEFAULT_CRUD_UPLOAD_THROTTLE_MS, DEFAULT_RETRY_DELAY_MS } from './sync/stream/AbstractStreamingSyncImplementation.js';\nimport { TriggerManagerImpl } from './triggers/TriggerManagerImpl.js';\nimport { DEFAULT_WATCH_THROTTLE_MS } from './watched/WatchedQuery.js';\nimport { OnChangeQueryProcessor } from './watched/processors/OnChangeQueryProcessor.js';\nimport { coreStatusToJs } from './sync/stream/core-instruction.js';\nconst POWERSYNC_TABLE_MATCH = /(^ps_data__|^ps_data_local__)/;\nconst DEFAULT_DISCONNECT_CLEAR_OPTIONS = {\n clearLocal: true\n};\nexport const DEFAULT_POWERSYNC_CLOSE_OPTIONS = {\n disconnect: true\n};\nexport const DEFAULT_POWERSYNC_DB_OPTIONS = {\n retryDelayMs: 5000,\n crudUploadThrottleMs: DEFAULT_CRUD_UPLOAD_THROTTLE_MS\n};\nexport const DEFAULT_CRUD_BATCH_LIMIT = 100;\n/**\n * Requesting nested or recursive locks can block the application in some circumstances.\n * This default lock timeout will act as a failsafe to throw an error if a lock cannot\n * be obtained.\n */\nexport const DEFAULT_LOCK_TIMEOUT_MS = 120_000; // 2 mins\n/**\n * Tests if the input is a {@link PowerSyncDatabaseOptionsWithSettings}\n * @internal\n */\nexport const isPowerSyncDatabaseOptionsWithSettings = (test) => {\n return typeof test == 'object' && isSQLOpenOptions(test.database);\n};\nexport class AbstractPowerSyncDatabase extends BaseObserver {\n options;\n /**\n * Returns true if the connection is closed.\n */\n closed;\n ready;\n /**\n * Current connection status.\n */\n currentStatus;\n sdkVersion;\n bucketStorageAdapter;\n _isReadyPromise;\n connectionManager;\n subscriptions;\n get syncStreamImplementation() {\n return this.connectionManager.syncStreamImplementation;\n }\n /**\n * The connector used to connect to the PowerSync service.\n *\n * @returns The connector used to connect to the PowerSync service or null if `connect()` has not been called.\n */\n get connector() {\n return this.connectionManager.connector;\n }\n /**\n * The resolved connection options used to connect to the PowerSync service.\n *\n * @returns The resolved connection options used to connect to the PowerSync service or null if `connect()` has not been called.\n */\n get connectionOptions() {\n return this.connectionManager.connectionOptions;\n }\n _schema;\n _database;\n runExclusiveMutex;\n /**\n * @experimental\n * Allows creating SQLite triggers which can be used to track various operations on SQLite tables.\n */\n triggers;\n logger;\n constructor(options) {\n super();\n this.options = options;\n const { database, schema } = options;\n if (typeof schema?.toJSON != 'function') {\n throw new Error('The `schema` option should be provided and should be an instance of `Schema`.');\n }\n if (isDBAdapter(database)) {\n this._database = database;\n }\n else if (isSQLOpenFactory(database)) {\n this._database = database.openDB();\n }\n else if (isPowerSyncDatabaseOptionsWithSettings(options)) {\n this._database = this.openDBAdapter(options);\n }\n else {\n throw new Error('The provided `database` option is invalid.');\n }\n this.logger = options.logger ?? Logger.get(`PowerSyncDatabase[${this._database.name}]`);\n this.bucketStorageAdapter = this.generateBucketStorageAdapter();\n this.closed = false;\n this.currentStatus = new SyncStatus({});\n this.options = { ...DEFAULT_POWERSYNC_DB_OPTIONS, ...options };\n this._schema = schema;\n this.ready = false;\n this.sdkVersion = '';\n this.runExclusiveMutex = new Mutex();\n // Start async init\n this.subscriptions = {\n firstStatusMatching: (predicate, abort) => this.waitForStatus(predicate, abort),\n resolveOfflineSyncStatus: () => this.resolveOfflineSyncStatus(),\n rustSubscriptionsCommand: async (payload) => {\n await this.writeTransaction((tx) => {\n return tx.execute('select powersync_control(?,?)', ['subscriptions', JSON.stringify(payload)]);\n });\n }\n };\n this.connectionManager = new ConnectionManager({\n createSyncImplementation: async (connector, options) => {\n await this.waitForReady();\n return this.runExclusive(async () => {\n const sync = this.generateSyncStreamImplementation(connector, this.resolvedConnectionOptions(options));\n const onDispose = sync.registerListener({\n statusChanged: (status) => {\n this.currentStatus = new SyncStatus({\n ...status.toJSON(),\n hasSynced: this.currentStatus?.hasSynced || !!status.lastSyncedAt\n });\n this.iterateListeners((cb) => cb.statusChanged?.(this.currentStatus));\n }\n });\n await sync.waitForReady();\n return {\n sync,\n onDispose\n };\n });\n },\n logger: this.logger\n });\n this._isReadyPromise = this.initialize();\n this.triggers = new TriggerManagerImpl({\n db: this,\n schema: this.schema\n });\n }\n /**\n * Schema used for the local database.\n */\n get schema() {\n return this._schema;\n }\n /**\n * The underlying database.\n *\n * For the most part, behavior is the same whether querying on the underlying database, or on {@link AbstractPowerSyncDatabase}.\n */\n get database() {\n return this._database;\n }\n /**\n * Whether a connection to the PowerSync service is currently open.\n */\n get connected() {\n return this.currentStatus?.connected || false;\n }\n get connecting() {\n return this.currentStatus?.connecting || false;\n }\n /**\n * @returns A promise which will resolve once initialization is completed.\n */\n async waitForReady() {\n if (this.ready) {\n return;\n }\n await this._isReadyPromise;\n }\n /**\n * Wait for the first sync operation to complete.\n *\n * @param request Either an abort signal (after which the promise will complete regardless of\n * whether a full sync was completed) or an object providing an abort signal and a priority target.\n * When a priority target is set, the promise may complete when all buckets with the given (or higher)\n * priorities have been synchronized. This can be earlier than a complete sync.\n * @returns A promise which will resolve once the first full sync has completed.\n */\n async waitForFirstSync(request) {\n const signal = request instanceof AbortSignal ? request : request?.signal;\n const priority = request && 'priority' in request ? request.priority : undefined;\n const statusMatches = priority === undefined\n ? (status) => status.hasSynced\n : (status) => status.statusForPriority(priority).hasSynced;\n return this.waitForStatus(statusMatches, signal);\n }\n /**\n * Waits for the first sync status for which the `status` callback returns a truthy value.\n */\n async waitForStatus(predicate, signal) {\n if (predicate(this.currentStatus)) {\n return;\n }\n return new Promise((resolve) => {\n const dispose = this.registerListener({\n statusChanged: (status) => {\n if (predicate(status)) {\n abort();\n }\n }\n });\n function abort() {\n dispose();\n resolve();\n }\n if (signal?.aborted) {\n abort();\n }\n else {\n signal?.addEventListener('abort', abort);\n }\n });\n }\n /**\n * Entry point for executing initialization logic.\n * This is to be automatically executed in the constructor.\n */\n async initialize() {\n await this._initialize();\n await this.bucketStorageAdapter.init();\n await this._loadVersion();\n await this.updateSchema(this.options.schema);\n await this.resolveOfflineSyncStatus();\n await this.database.execute('PRAGMA RECURSIVE_TRIGGERS=TRUE');\n this.ready = true;\n this.iterateListeners((cb) => cb.initialized?.());\n }\n async _loadVersion() {\n try {\n const { version } = await this.database.get('SELECT powersync_rs_version() as version');\n this.sdkVersion = version;\n }\n catch (e) {\n throw new Error(`The powersync extension is not loaded correctly. Details: ${e.message}`);\n }\n let versionInts;\n try {\n versionInts = this.sdkVersion.split(/[.\\/]/)\n .slice(0, 3)\n .map((n) => parseInt(n));\n }\n catch (e) {\n throw new Error(`Unsupported powersync extension version. Need >=0.4.5 <1.0.0, got: ${this.sdkVersion}. Details: ${e.message}`);\n }\n // Validate >=0.4.5 <1.0.0\n if (versionInts[0] != 0 || versionInts[1] < 4 || (versionInts[1] == 4 && versionInts[2] < 5)) {\n throw new Error(`Unsupported powersync extension version. Need >=0.4.5 <1.0.0, got: ${this.sdkVersion}`);\n }\n }\n async resolveOfflineSyncStatus() {\n const result = await this.database.get('SELECT powersync_offline_sync_status() as r');\n const parsed = JSON.parse(result.r);\n const updatedStatus = new SyncStatus({\n ...this.currentStatus.toJSON(),\n ...coreStatusToJs(parsed)\n });\n if (!updatedStatus.isEqual(this.currentStatus)) {\n this.currentStatus = updatedStatus;\n this.iterateListeners((l) => l.statusChanged?.(this.currentStatus));\n }\n }\n /**\n * Replace the schema with a new version. This is for advanced use cases - typically the schema should just be specified once in the constructor.\n *\n * Cannot be used while connected - this should only be called before {@link AbstractPowerSyncDatabase.connect}.\n */\n async updateSchema(schema) {\n if (this.syncStreamImplementation) {\n throw new Error('Cannot update schema while connected');\n }\n /**\n * TODO\n * Validations only show a warning for now.\n * The next major release should throw an exception.\n */\n try {\n schema.validate();\n }\n catch (ex) {\n this.logger.warn('Schema validation failed. Unexpected behaviour could occur', ex);\n }\n this._schema = schema;\n await this.database.execute('SELECT powersync_replace_schema(?)', [JSON.stringify(this.schema.toJSON())]);\n await this.database.refreshSchema();\n this.iterateListeners(async (cb) => cb.schemaChanged?.(schema));\n }\n /**\n * Wait for initialization to complete.\n * While initializing is automatic, this helps to catch and report initialization errors.\n */\n async init() {\n return this.waitForReady();\n }\n // Use the options passed in during connect, or fallback to the options set during database creation or fallback to the default options\n resolvedConnectionOptions(options) {\n return {\n ...options,\n retryDelayMs: options?.retryDelayMs ?? this.options.retryDelayMs ?? this.options.retryDelay ?? DEFAULT_RETRY_DELAY_MS,\n crudUploadThrottleMs: options?.crudUploadThrottleMs ?? this.options.crudUploadThrottleMs ?? DEFAULT_CRUD_UPLOAD_THROTTLE_MS\n };\n }\n /**\n * @deprecated Use {@link AbstractPowerSyncDatabase#close} instead.\n * Clears all listeners registered by {@link AbstractPowerSyncDatabase#registerListener}.\n */\n dispose() {\n return super.dispose();\n }\n /**\n * Locking mechanism for exclusively running critical portions of connect/disconnect operations.\n * Locking here is mostly only important on web for multiple tab scenarios.\n */\n runExclusive(callback) {\n return this.runExclusiveMutex.runExclusive(callback);\n }\n /**\n * Connects to stream of events from the PowerSync instance.\n */\n async connect(connector, options) {\n const resolvedOptions = options ?? {};\n resolvedOptions.serializedSchema = this.schema.toJSON();\n return this.connectionManager.connect(connector, resolvedOptions);\n }\n /**\n * Close the sync connection.\n *\n * Use {@link connect} to connect again.\n */\n async disconnect() {\n return this.connectionManager.disconnect();\n }\n /**\n * Disconnect and clear the database.\n * Use this when logging out.\n * The database can still be queried after this is called, but the tables\n * would be empty.\n *\n * To preserve data in local-only tables, set clearLocal to false.\n */\n async disconnectAndClear(options = DEFAULT_DISCONNECT_CLEAR_OPTIONS) {\n await this.disconnect();\n await this.waitForReady();\n const { clearLocal } = options;\n // TODO DB name, verify this is necessary with extension\n await this.database.writeTransaction(async (tx) => {\n await tx.execute('SELECT powersync_clear(?)', [clearLocal ? 1 : 0]);\n });\n // The data has been deleted - reset the sync status\n this.currentStatus = new SyncStatus({});\n this.iterateListeners((l) => l.statusChanged?.(this.currentStatus));\n }\n /**\n * Create a sync stream to query its status or to subscribe to it.\n *\n * @param name The name of the stream to subscribe to.\n * @param params Optional parameters for the stream subscription.\n * @returns A {@link SyncStream} instance that can be subscribed to.\n * @experimental Sync streams are currently in alpha.\n */\n syncStream(name, params) {\n return this.connectionManager.stream(this.subscriptions, name, params ?? null);\n }\n /**\n * Close the database, releasing resources.\n *\n * Also disconnects any active connection.\n *\n * Once close is called, this connection cannot be used again - a new one\n * must be constructed.\n */\n async close(options = DEFAULT_POWERSYNC_CLOSE_OPTIONS) {\n await this.waitForReady();\n if (this.closed) {\n return;\n }\n await this.iterateAsyncListeners(async (cb) => cb.closing?.());\n const { disconnect } = options;\n if (disconnect) {\n await this.disconnect();\n }\n await this.connectionManager.close();\n await this.database.close();\n this.closed = true;\n await this.iterateAsyncListeners(async (cb) => cb.closed?.());\n }\n /**\n * Get upload queue size estimate and count.\n */\n async getUploadQueueStats(includeSize) {\n return this.readTransaction(async (tx) => {\n if (includeSize) {\n const result = await tx.execute(`SELECT SUM(cast(data as blob) + 20) as size, count(*) as count FROM ${PSInternalTable.CRUD}`);\n const row = result.rows.item(0);\n return new UploadQueueStats(row?.count ?? 0, row?.size ?? 0);\n }\n else {\n const result = await tx.execute(`SELECT count(*) as count FROM ${PSInternalTable.CRUD}`);\n const row = result.rows.item(0);\n return new UploadQueueStats(row?.count ?? 0);\n }\n });\n }\n /**\n * Get a batch of CRUD data to upload.\n *\n * Returns null if there is no data to upload.\n *\n * Use this from the {@link PowerSyncBackendConnector.uploadData} callback.\n *\n * Once the data have been successfully uploaded, call {@link CrudBatch.complete} before\n * requesting the next batch.\n *\n * Use {@link limit} to specify the maximum number of updates to return in a single\n * batch.\n *\n * This method does include transaction ids in the result, but does not group\n * data by transaction. One batch may contain data from multiple transactions,\n * and a single transaction may be split over multiple batches.\n *\n * @param limit Maximum number of CRUD entries to include in the batch\n * @returns A batch of CRUD operations to upload, or null if there are none\n */\n async getCrudBatch(limit = DEFAULT_CRUD_BATCH_LIMIT) {\n const result = await this.getAll(`SELECT id, tx_id, data FROM ${PSInternalTable.CRUD} ORDER BY id ASC LIMIT ?`, [limit + 1]);\n const all = result.map((row) => CrudEntry.fromRow(row)) ?? [];\n let haveMore = false;\n if (all.length > limit) {\n all.pop();\n haveMore = true;\n }\n if (all.length == 0) {\n return null;\n }\n const last = all[all.length - 1];\n return new CrudBatch(all, haveMore, async (writeCheckpoint) => this.handleCrudCheckpoint(last.clientId, writeCheckpoint));\n }\n /**\n * Get the next recorded transaction to upload.\n *\n * Returns null if there is no data to upload.\n *\n * Use this from the {@link PowerSyncBackendConnector.uploadData} callback.\n *\n * Once the data have been successfully uploaded, call {@link CrudTransaction.complete} before\n * requesting the next transaction.\n *\n * Unlike {@link getCrudBatch}, this only returns data from a single transaction at a time.\n * All data for the transaction is loaded into memory.\n *\n * @returns A transaction of CRUD operations to upload, or null if there are none\n */\n async getNextCrudTransaction() {\n const iterator = this.getCrudTransactions()[symbolAsyncIterator]();\n return (await iterator.next()).value;\n }\n /**\n * Returns an async iterator of completed transactions with local writes against the database.\n *\n * This is typically used from the {@link PowerSyncBackendConnector.uploadData} callback. Each entry emitted by the\n * returned iterator is a full transaction containing all local writes made while that transaction was active.\n *\n * Unlike {@link getNextCrudTransaction}, which always returns the oldest transaction that hasn't been\n * {@link CrudTransaction.complete}d yet, this iterator can be used to receive multiple transactions. Calling\n * {@link CrudTransaction.complete} will mark that and all prior transactions emitted by the iterator as completed.\n *\n * This can be used to upload multiple transactions in a single batch, e.g with:\n *\n * ```JavaScript\n * let lastTransaction = null;\n * let batch = [];\n *\n * for await (const transaction of database.getCrudTransactions()) {\n * batch.push(...transaction.crud);\n * lastTransaction = transaction;\n *\n * if (batch.length > 10) {\n * break;\n * }\n * }\n * ```\n *\n * If there is no local data to upload, the async iterator complete without emitting any items.\n *\n * Note that iterating over async iterables requires a [polyfill](https://github.com/powersync-ja/powersync-js/tree/main/packages/react-native#babel-plugins-watched-queries)\n * for React Native.\n */\n getCrudTransactions() {\n return {\n [symbolAsyncIterator]: () => {\n let lastCrudItemId = -1;\n const sql = `\nWITH RECURSIVE crud_entries AS (\n SELECT id, tx_id, data FROM ps_crud WHERE id = (SELECT min(id) FROM ps_crud WHERE id > ?)\n UNION ALL\n SELECT ps_crud.id, ps_crud.tx_id, ps_crud.data FROM ps_crud\n INNER JOIN crud_entries ON crud_entries.id + 1 = rowid\n WHERE crud_entries.tx_id = ps_crud.tx_id\n)\nSELECT * FROM crud_entries;\n `;\n return {\n next: async () => {\n const nextTransaction = await this.database.getAll(sql, [lastCrudItemId]);\n if (nextTransaction.length == 0) {\n return { done: true, value: null };\n }\n const items = nextTransaction.map((row) => CrudEntry.fromRow(row));\n const last = items[items.length - 1];\n const txId = last.transactionId;\n lastCrudItemId = last.clientId;\n return {\n done: false,\n value: new CrudTransaction(items, async (writeCheckpoint) => this.handleCrudCheckpoint(last.clientId, writeCheckpoint), txId)\n };\n }\n };\n }\n };\n }\n /**\n * Get an unique client id for this database.\n *\n * The id is not reset when the database is cleared, only when the database is deleted.\n *\n * @returns A unique identifier for the database instance\n */\n async getClientId() {\n return this.bucketStorageAdapter.getClientId();\n }\n async handleCrudCheckpoint(lastClientId, writeCheckpoint) {\n return this.writeTransaction(async (tx) => {\n await tx.execute(`DELETE FROM ${PSInternalTable.CRUD} WHERE id <= ?`, [lastClientId]);\n if (writeCheckpoint) {\n const check = await tx.execute(`SELECT 1 FROM ${PSInternalTable.CRUD} LIMIT 1`);\n if (!check.rows?.length) {\n await tx.execute(`UPDATE ${PSInternalTable.BUCKETS} SET target_op = CAST(? as INTEGER) WHERE name='$local'`, [\n writeCheckpoint\n ]);\n }\n }\n else {\n await tx.execute(`UPDATE ${PSInternalTable.BUCKETS} SET target_op = CAST(? as INTEGER) WHERE name='$local'`, [\n this.bucketStorageAdapter.getMaxOpId()\n ]);\n }\n });\n }\n /**\n * Execute a SQL write (INSERT/UPDATE/DELETE) query\n * and optionally return results.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns The query result as an object with structured key-value pairs\n */\n async execute(sql, parameters) {\n return this.writeLock((tx) => tx.execute(sql, parameters));\n }\n /**\n * Execute a SQL write (INSERT/UPDATE/DELETE) query directly on the database without any PowerSync processing.\n * This bypasses certain PowerSync abstractions and is useful for accessing the raw database results.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns The raw query result from the underlying database as a nested array of raw values, where each row is\n * represented as an array of column values without field names.\n */\n async executeRaw(sql, parameters) {\n await this.waitForReady();\n return this.database.executeRaw(sql, parameters);\n }\n /**\n * Execute a write query (INSERT/UPDATE/DELETE) multiple times with each parameter set\n * and optionally return results.\n * This is faster than executing separately with each parameter set.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional 2D array of parameter sets, where each inner array is a set of parameters for one execution\n * @returns The query result\n */\n async executeBatch(sql, parameters) {\n await this.waitForReady();\n return this.database.executeBatch(sql, parameters);\n }\n /**\n * Execute a read-only query and return results.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns An array of results\n */\n async getAll(sql, parameters) {\n await this.waitForReady();\n return this.database.getAll(sql, parameters);\n }\n /**\n * Execute a read-only query and return the first result, or null if the ResultSet is empty.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns The first result if found, or null if no results are returned\n */\n async getOptional(sql, parameters) {\n await this.waitForReady();\n return this.database.getOptional(sql, parameters);\n }\n /**\n * Execute a read-only query and return the first result, error if the ResultSet is empty.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @returns The first result matching the query\n * @throws Error if no rows are returned\n */\n async get(sql, parameters) {\n await this.waitForReady();\n return this.database.get(sql, parameters);\n }\n /**\n * Takes a read lock, without starting a transaction.\n * In most cases, {@link readTransaction} should be used instead.\n */\n async readLock(callback) {\n await this.waitForReady();\n return this.database.readLock(callback);\n }\n /**\n * Takes a global lock, without starting a transaction.\n * In most cases, {@link writeTransaction} should be used instead.\n */\n async writeLock(callback) {\n await this.waitForReady();\n return this.database.writeLock(callback);\n }\n /**\n * Open a read-only transaction.\n * Read transactions can run concurrently to a write transaction.\n * Changes from any write transaction are not visible to read transactions started before it.\n *\n * @param callback Function to execute within the transaction\n * @param lockTimeout Time in milliseconds to wait for a lock before throwing an error\n * @returns The result of the callback\n * @throws Error if the lock cannot be obtained within the timeout period\n */\n async readTransaction(callback, lockTimeout = DEFAULT_LOCK_TIMEOUT_MS) {\n await this.waitForReady();\n return this.database.readTransaction(async (tx) => {\n const res = await callback({ ...tx });\n await tx.rollback();\n return res;\n }, { timeoutMs: lockTimeout });\n }\n /**\n * Open a read-write transaction.\n * This takes a global lock - only one write transaction can execute against the database at a time.\n * Statements within the transaction must be done on the provided {@link Transaction} interface.\n *\n * @param callback Function to execute within the transaction\n * @param lockTimeout Time in milliseconds to wait for a lock before throwing an error\n * @returns The result of the callback\n * @throws Error if the lock cannot be obtained within the timeout period\n */\n async writeTransaction(callback, lockTimeout = DEFAULT_LOCK_TIMEOUT_MS) {\n await this.waitForReady();\n return this.database.writeTransaction(async (tx) => {\n const res = await callback(tx);\n await tx.commit();\n return res;\n }, { timeoutMs: lockTimeout });\n }\n watch(sql, parameters, handlerOrOptions, maybeOptions) {\n if (handlerOrOptions && typeof handlerOrOptions === 'object' && 'onResult' in handlerOrOptions) {\n const handler = handlerOrOptions;\n const options = maybeOptions;\n return this.watchWithCallback(sql, parameters, handler, options);\n }\n const options = handlerOrOptions;\n return this.watchWithAsyncGenerator(sql, parameters, options);\n }\n /**\n * Allows defining a query which can be used to build a {@link WatchedQuery}.\n * The defined query will be executed with {@link AbstractPowerSyncDatabase#getAll}.\n * An optional mapper function can be provided to transform the results.\n *\n * @example\n * ```javascript\n * const watchedTodos = powersync.query({\n * sql: `SELECT photo_id as id FROM todos WHERE photo_id IS NOT NULL`,\n * parameters: [],\n * mapper: (row) => ({\n * ...row,\n * created_at: new Date(row.created_at as string)\n * })\n * })\n * .watch()\n * // OR use .differentialWatch() for fine-grained watches.\n * ```\n */\n query(query) {\n const { sql, parameters = [], mapper } = query;\n const compatibleQuery = {\n compile: () => ({\n sql,\n parameters\n }),\n execute: async ({ sql, parameters }) => {\n const result = await this.getAll(sql, parameters);\n return mapper ? result.map(mapper) : result;\n }\n };\n return this.customQuery(compatibleQuery);\n }\n /**\n * Allows building a {@link WatchedQuery} using an existing {@link WatchCompatibleQuery}.\n * The watched query will use the provided {@link WatchCompatibleQuery.execute} method to query results.\n *\n * @example\n * ```javascript\n *\n * // Potentially a query from an ORM like Drizzle\n * const query = db.select().from(lists);\n *\n * const watchedTodos = powersync.customQuery(query)\n * .watch()\n * // OR use .differentialWatch() for fine-grained watches.\n * ```\n */\n customQuery(query) {\n return new CustomQuery({\n db: this,\n query\n });\n }\n /**\n * Execute a read query every time the source tables are modified.\n * Use {@link SQLWatchOptions.throttleMs} to specify the minimum interval between queries.\n * Source tables are automatically detected using `EXPLAIN QUERY PLAN`.\n *\n * Note that the `onChange` callback member of the handler is required.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @param handler Callbacks for handling results and errors\n * @param options Options for configuring watch behavior\n */\n watchWithCallback(sql, parameters, handler, options) {\n const { onResult, onError = (e) => this.logger.error(e) } = handler ?? {};\n if (!onResult) {\n throw new Error('onResult is required');\n }\n const { comparator } = options ?? {};\n // This API yields a QueryResult type.\n // This is not a standard Array result, which makes it incompatible with the .query API.\n const watchedQuery = new OnChangeQueryProcessor({\n db: this,\n comparator,\n placeholderData: null,\n watchOptions: {\n query: {\n compile: () => ({\n sql: sql,\n parameters: parameters ?? []\n }),\n execute: () => this.executeReadOnly(sql, parameters)\n },\n reportFetching: false,\n throttleMs: options?.throttleMs ?? DEFAULT_WATCH_THROTTLE_MS,\n triggerOnTables: options?.tables\n }\n });\n const dispose = watchedQuery.registerListener({\n onData: (data) => {\n if (!data) {\n // This should not happen. We only use null for the initial data.\n return;\n }\n onResult(data);\n },\n onError: (error) => {\n onError(error);\n }\n });\n options?.signal?.addEventListener('abort', () => {\n dispose();\n watchedQuery.close();\n });\n }\n /**\n * Execute a read query every time the source tables are modified.\n * Use {@link SQLWatchOptions.throttleMs} to specify the minimum interval between queries.\n * Source tables are automatically detected using `EXPLAIN QUERY PLAN`.\n *\n * @param sql The SQL query to execute\n * @param parameters Optional array of parameters to bind to the query\n * @param options Options for configuring watch behavior\n * @returns An AsyncIterable that yields QueryResults whenever the data changes\n */\n watchWithAsyncGenerator(sql, parameters, options) {\n return new EventIterator((eventOptions) => {\n const handler = {\n onResult: (result) => {\n eventOptions.push(result);\n },\n onError: (error) => {\n eventOptions.fail(error);\n }\n };\n this.watchWithCallback(sql, parameters, handler, options);\n options?.signal?.addEventListener('abort', () => {\n eventOptions.stop();\n });\n });\n }\n /**\n * Resolves the list of tables that are used in a SQL query.\n * If tables are specified in the options, those are used directly.\n * Otherwise, analyzes the query using EXPLAIN to determine which tables are accessed.\n *\n * @param sql The SQL query to analyze\n * @param parameters Optional parameters for the SQL query\n * @param options Optional watch options that may contain explicit table list\n * @returns Array of table names that the query depends on\n */\n async resolveTables(sql, parameters, options) {\n const resolvedTables = options?.tables ? [...options.tables] : [];\n if (!options?.tables) {\n const explained = await this.getAll(`EXPLAIN ${sql}`, parameters);\n const rootPages = explained\n .filter((row) => row.opcode == 'OpenRead' && row.p3 == 0 && typeof row.p2 == 'number')\n .map((row) => row.p2);\n const tables = await this.getAll(`SELECT DISTINCT tbl_name FROM sqlite_master WHERE rootpage IN (SELECT json_each.value FROM json_each(?))`, [JSON.stringify(rootPages)]);\n for (const table of tables) {\n resolvedTables.push(table.tbl_name.replace(POWERSYNC_TABLE_MATCH, ''));\n }\n }\n return resolvedTables;\n }\n onChange(handlerOrOptions, maybeOptions) {\n if (handlerOrOptions && typeof handlerOrOptions === 'object' && 'onChange' in handlerOrOptions) {\n const handler = handlerOrOptions;\n const options = maybeOptions;\n return this.onChangeWithCallback(handler, options);\n }\n const options = handlerOrOptions;\n return this.onChangeWithAsyncGenerator(options);\n }\n /**\n * Invoke the provided callback on any changes to any of the specified tables.\n *\n * This is preferred over {@link watchWithCallback} when multiple queries need to be performed\n * together when data is changed.\n *\n * Note that the `onChange` callback member of the handler is required.\n *\n * @param handler Callbacks for handling change events and errors\n * @param options Options for configuring watch behavior\n * @returns A dispose function to stop watching for changes\n */\n onChangeWithCallback(handler, options) {\n const { onChange, onError = (e) => this.logger.error(e) } = handler ?? {};\n if (!onChange) {\n throw new Error('onChange is required');\n }\n const resolvedOptions = options ?? {};\n const watchedTables = new Set((resolvedOptions?.tables ?? []).flatMap((table) => [table, `ps_data__${table}`, `ps_data_local__${table}`]));\n const changedTables = new Set();\n const throttleMs = resolvedOptions.throttleMs ?? DEFAULT_WATCH_THROTTLE_MS;\n const executor = new ControlledExecutor(async (e) => {\n await onChange(e);\n });\n const flushTableUpdates = throttleTrailing(() => this.handleTableChanges(changedTables, watchedTables, (intersection) => {\n if (resolvedOptions?.signal?.aborted)\n return;\n executor.schedule({ changedTables: intersection });\n }), throttleMs);\n if (options?.triggerImmediate) {\n executor.schedule({ changedTables: [] });\n }\n const dispose = this.database.registerListener({\n tablesUpdated: async (update) => {\n try {\n this.processTableUpdates(update, changedTables);\n flushTableUpdates();\n }\n catch (error) {\n onError?.(error);\n }\n }\n });\n resolvedOptions.signal?.addEventListener('abort', () => {\n executor.dispose();\n dispose();\n });\n return () => dispose();\n }\n /**\n * Create a Stream of changes to any of the specified tables.\n *\n * This is preferred over {@link watchWithAsyncGenerator} when multiple queries need to be performed\n * together when data is changed.\n *\n * Note: do not declare this as `async *onChange` as it will not work in React Native.\n *\n * @param options Options for configuring watch behavior\n * @returns An AsyncIterable that yields change events whenever the specified tables change\n */\n onChangeWithAsyncGenerator(options) {\n const resolvedOptions = options ?? {};\n return new EventIterator((eventOptions) => {\n const dispose = this.onChangeWithCallback({\n onChange: (event) => {\n eventOptions.push(event);\n },\n onError: (error) => {\n eventOptions.fail(error);\n }\n }, options);\n resolvedOptions.signal?.addEventListener('abort', () => {\n eventOptions.stop();\n // Maybe fail?\n });\n return () => dispose();\n });\n }\n handleTableChanges(changedTables, watchedTables, onDetectedChanges) {\n if (changedTables.size > 0) {\n const intersection = Array.from(changedTables.values()).filter((change) => watchedTables.has(change));\n if (intersection.length) {\n onDetectedChanges(intersection);\n }\n }\n changedTables.clear();\n }\n processTableUpdates(updateNotification, changedTables) {\n const tables = isBatchedUpdateNotification(updateNotification)\n ? updateNotification.tables\n : [updateNotification.table];\n for (const table of tables) {\n changedTables.add(table);\n }\n }\n /**\n * @ignore\n */\n async executeReadOnly(sql, params) {\n await this.waitForReady();\n return this.database.readLock((tx) => tx.execute(sql, params));\n }\n}\n//# sourceMappingURL=AbstractPowerSyncDatabase.js.map","import Logger from 'js-logger';\nexport class AbstractPowerSyncDatabaseOpenFactory {\n options;\n constructor(options) {\n this.options = options;\n options.logger = options.logger ?? Logger.get(`PowerSync ${this.options.dbFilename}`);\n }\n /**\n * Schema used for the local database.\n */\n get schema() {\n return this.options.schema;\n }\n generateOptions() {\n return {\n database: this.openDB(),\n ...this.options\n };\n }\n getInstance() {\n const options = this.generateOptions();\n return this.generateInstance(options);\n }\n}\n//# sourceMappingURL=AbstractPowerSyncOpenFactory.js.map","export function runOnSchemaChange(callback, db, options) {\n const triggerWatchedQuery = () => {\n const abortController = new AbortController();\n let disposeSchemaListener = null;\n const stopWatching = () => {\n abortController.abort('Abort triggered');\n disposeSchemaListener?.();\n disposeSchemaListener = null;\n // Stop listening to upstream abort for this watch\n options?.signal?.removeEventListener('abort', stopWatching);\n };\n options?.signal?.addEventListener('abort', stopWatching);\n disposeSchemaListener = db.registerListener({\n schemaChanged: async () => {\n stopWatching();\n // Re trigger the watched query (recursively), setTimeout ensures that we don't modify the list of listeners while iterating through them\n setTimeout(() => triggerWatchedQuery(), 0);\n }\n });\n callback(abortController.signal);\n };\n triggerWatchedQuery();\n}\n//# sourceMappingURL=runOnSchemaChange.js.map","import { runOnSchemaChange } from './runOnSchemaChange.js';\nexport function compilableQueryWatch(db, query, handler, options) {\n const { onResult, onError = (e) => { } } = handler ?? {};\n if (!onResult) {\n throw new Error('onResult is required');\n }\n const watchQuery = async (abortSignal) => {\n try {\n const toSql = query.compile();\n const resolvedTables = await db.resolveTables(toSql.sql, toSql.parameters, options);\n // Fetch initial data\n const result = await query.execute();\n onResult(result);\n db.onChangeWithCallback({\n onChange: async () => {\n try {\n const result = await query.execute();\n onResult(result);\n }\n catch (error) {\n onError(error);\n }\n },\n onError\n }, {\n ...(options ?? {}),\n tables: resolvedTables,\n // Override the abort signal since we intercept it\n signal: abortSignal\n });\n }\n catch (error) {\n onError(error);\n }\n };\n runOnSchemaChange(watchQuery, db, options);\n}\n//# sourceMappingURL=compilableQueryWatch.js.map","export const MAX_OP_ID = '9223372036854775807';\n//# sourceMappingURL=constants.js.map","import Logger from 'js-logger';\nimport { extractTableUpdates } from '../../../db/DBAdapter.js';\nimport { BaseObserver } from '../../../utils/BaseObserver.js';\nimport { MAX_OP_ID } from '../../constants.js';\nimport { PSInternalTable } from './BucketStorageAdapter.js';\nimport { CrudEntry } from './CrudEntry.js';\nexport class SqliteBucketStorage extends BaseObserver {\n db;\n logger;\n tableNames;\n _hasCompletedSync;\n updateListener;\n _clientId;\n constructor(db, logger = Logger.get('SqliteBucketStorage')) {\n super();\n this.db = db;\n this.logger = logger;\n this._hasCompletedSync = false;\n this.tableNames = new Set();\n this.updateListener = db.registerListener({\n tablesUpdated: (update) => {\n const tables = extractTableUpdates(update);\n if (tables.includes(PSInternalTable.CRUD)) {\n this.iterateListeners((l) => l.crudUpdate?.());\n }\n }\n });\n }\n async init() {\n this._hasCompletedSync = false;\n const existingTableRows = await this.db.getAll(`SELECT name FROM sqlite_master WHERE type='table' AND name GLOB 'ps_data_*'`);\n for (const row of existingTableRows ?? []) {\n this.tableNames.add(row.name);\n }\n }\n async dispose() {\n this.updateListener?.();\n }\n async _getClientId() {\n const row = await this.db.get('SELECT powersync_client_id() as client_id');\n return row['client_id'];\n }\n getClientId() {\n if (this._clientId == null) {\n this._clientId = this._getClientId();\n }\n return this._clientId;\n }\n getMaxOpId() {\n return MAX_OP_ID;\n }\n /**\n * Reset any caches.\n */\n startSession() { }\n async getBucketStates() {\n const result = await this.db.getAll(\"SELECT name as bucket, cast(last_op as TEXT) as op_id FROM ps_buckets WHERE pending_delete = 0 AND name != '$local'\");\n return result;\n }\n async getBucketOperationProgress() {\n const rows = await this.db.getAll('SELECT name, count_at_last, count_since_last FROM ps_buckets');\n return Object.fromEntries(rows.map((r) => [r.name, { atLast: r.count_at_last, sinceLast: r.count_since_last }]));\n }\n async saveSyncData(batch, fixedKeyFormat = false) {\n await this.writeTransaction(async (tx) => {\n for (const b of batch.buckets) {\n await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', [\n 'save',\n JSON.stringify({ buckets: [b.toJSON(fixedKeyFormat)] })\n ]);\n this.logger.debug(`Saved batch of data for bucket: ${b.bucket}, operations: ${b.data.length}`);\n }\n });\n }\n async removeBuckets(buckets) {\n for (const bucket of buckets) {\n await this.deleteBucket(bucket);\n }\n }\n /**\n * Mark a bucket for deletion.\n */\n async deleteBucket(bucket) {\n await this.writeTransaction(async (tx) => {\n await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', ['delete_bucket', bucket]);\n });\n this.logger.debug(`Done deleting bucket ${bucket}`);\n }\n async hasCompletedSync() {\n if (this._hasCompletedSync) {\n return true;\n }\n const r = await this.db.get(`SELECT powersync_last_synced_at() as synced_at`);\n const completed = r.synced_at != null;\n if (completed) {\n this._hasCompletedSync = true;\n }\n return completed;\n }\n async syncLocalDatabase(checkpoint, priority) {\n const r = await this.validateChecksums(checkpoint, priority);\n if (!r.checkpointValid) {\n this.logger.error('Checksums failed for', r.checkpointFailures);\n for (const b of r.checkpointFailures ?? []) {\n await this.deleteBucket(b);\n }\n return { ready: false, checkpointValid: false, checkpointFailures: r.checkpointFailures };\n }\n if (priority == null) {\n this.logger.debug(`Validated checksums checkpoint ${checkpoint.last_op_id}`);\n }\n else {\n this.logger.debug(`Validated checksums for partial checkpoint ${checkpoint.last_op_id}, priority ${priority}`);\n }\n let buckets = checkpoint.buckets;\n if (priority !== undefined) {\n buckets = buckets.filter((b) => hasMatchingPriority(priority, b));\n }\n const bucketNames = buckets.map((b) => b.bucket);\n await this.writeTransaction(async (tx) => {\n await tx.execute(`UPDATE ps_buckets SET last_op = ? WHERE name IN (SELECT json_each.value FROM json_each(?))`, [\n checkpoint.last_op_id,\n JSON.stringify(bucketNames)\n ]);\n if (priority == null && checkpoint.write_checkpoint) {\n await tx.execute(\"UPDATE ps_buckets SET last_op = ? WHERE name = '$local'\", [checkpoint.write_checkpoint]);\n }\n });\n const valid = await this.updateObjectsFromBuckets(checkpoint, priority);\n if (!valid) {\n return { ready: false, checkpointValid: true };\n }\n return {\n ready: true,\n checkpointValid: true\n };\n }\n /**\n * Atomically update the local state to the current checkpoint.\n *\n * This includes creating new tables, dropping old tables, and copying data over from the oplog.\n */\n async updateObjectsFromBuckets(checkpoint, priority) {\n let arg = '';\n if (priority !== undefined) {\n const affectedBuckets = [];\n for (const desc of checkpoint.buckets) {\n if (hasMatchingPriority(priority, desc)) {\n affectedBuckets.push(desc.bucket);\n }\n }\n arg = JSON.stringify({ priority, buckets: affectedBuckets });\n }\n return this.writeTransaction(async (tx) => {\n const { insertId: result } = await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', [\n 'sync_local',\n arg\n ]);\n if (result == 1) {\n if (priority == null) {\n const bucketToCount = Object.fromEntries(checkpoint.buckets.map((b) => [b.bucket, b.count]));\n // The two parameters could be replaced with one, but: https://github.com/powersync-ja/better-sqlite3/pull/6\n const jsonBucketCount = JSON.stringify(bucketToCount);\n await tx.execute(\"UPDATE ps_buckets SET count_since_last = 0, count_at_last = ?->name WHERE name != '$local' AND ?->name IS NOT NULL\", [jsonBucketCount, jsonBucketCount]);\n }\n return true;\n }\n else {\n return false;\n }\n });\n }\n async validateChecksums(checkpoint, priority) {\n if (priority !== undefined) {\n // Only validate the buckets within the priority we care about\n const newBuckets = checkpoint.buckets.filter((cs) => hasMatchingPriority(priority, cs));\n checkpoint = { ...checkpoint, buckets: newBuckets };\n }\n const rs = await this.db.execute('SELECT powersync_validate_checkpoint(?) as result', [\n JSON.stringify({ ...checkpoint })\n ]);\n const resultItem = rs.rows?.item(0);\n if (!resultItem) {\n return {\n checkpointValid: false,\n ready: false,\n checkpointFailures: []\n };\n }\n const result = JSON.parse(resultItem['result']);\n if (result['valid']) {\n return { ready: true, checkpointValid: true };\n }\n else {\n return {\n checkpointValid: false,\n ready: false,\n checkpointFailures: result['failed_buckets']\n };\n }\n }\n async updateLocalTarget(cb) {\n const rs1 = await this.db.getAll(\"SELECT target_op FROM ps_buckets WHERE name = '$local' AND target_op = CAST(? as INTEGER)\", [MAX_OP_ID]);\n if (!rs1.length) {\n // Nothing to update\n return false;\n }\n const rs = await this.db.getAll(\"SELECT seq FROM main.sqlite_sequence WHERE name = 'ps_crud'\");\n if (!rs.length) {\n // Nothing to update\n return false;\n }\n const seqBefore = rs[0]['seq'];\n const opId = await cb();\n return this.writeTransaction(async (tx) => {\n const anyData = await tx.execute('SELECT 1 FROM ps_crud LIMIT 1');\n if (anyData.rows?.length) {\n // if isNotEmpty\n this.logger.debug(`New data uploaded since write checkpoint ${opId} - need new write checkpoint`);\n return false;\n }\n const rs = await tx.execute(\"SELECT seq FROM main.sqlite_sequence WHERE name = 'ps_crud'\");\n if (!rs.rows?.length) {\n // assert isNotEmpty\n throw new Error('SQLite Sequence should not be empty');\n }\n const seqAfter = rs.rows?.item(0)['seq'];\n if (seqAfter != seqBefore) {\n this.logger.debug(`New data uploaded since write checpoint ${opId} - need new write checkpoint (sequence updated)`);\n // New crud data may have been uploaded since we got the checkpoint. Abort.\n return false;\n }\n this.logger.debug(`Updating target write checkpoint to ${opId}`);\n await tx.execute(\"UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'\", [opId]);\n return true;\n });\n }\n async nextCrudItem() {\n const next = await this.db.getOptional('SELECT * FROM ps_crud ORDER BY id ASC LIMIT 1');\n if (!next) {\n return;\n }\n return CrudEntry.fromRow(next);\n }\n async hasCrud() {\n const anyData = await this.db.getOptional('SELECT 1 FROM ps_crud LIMIT 1');\n return !!anyData;\n }\n /**\n * Get a batch of objects to send to the server.\n * When the objects are successfully sent to the server, call .complete()\n */\n async getCrudBatch(limit = 100) {\n if (!(await this.hasCrud())) {\n return null;\n }\n const crudResult = await this.db.getAll('SELECT * FROM ps_crud ORDER BY id ASC LIMIT ?', [limit]);\n const all = [];\n for (const row of crudResult) {\n all.push(CrudEntry.fromRow(row));\n }\n if (all.length === 0) {\n return null;\n }\n const last = all[all.length - 1];\n return {\n crud: all,\n haveMore: true,\n complete: async (writeCheckpoint) => {\n return this.writeTransaction(async (tx) => {\n await tx.execute('DELETE FROM ps_crud WHERE id <= ?', [last.clientId]);\n if (writeCheckpoint) {\n const crudResult = await tx.execute('SELECT 1 FROM ps_crud LIMIT 1');\n if (crudResult.rows?.length) {\n await tx.execute(\"UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'\", [\n writeCheckpoint\n ]);\n }\n }\n else {\n await tx.execute(\"UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'\", [\n this.getMaxOpId()\n ]);\n }\n });\n }\n };\n }\n async writeTransaction(callback, options) {\n return this.db.writeTransaction(callback, options);\n }\n /**\n * Set a target checkpoint.\n */\n async setTargetCheckpoint(checkpoint) {\n // No-op for now\n }\n async control(op, payload) {\n return await this.writeTransaction(async (tx) => {\n const [[raw]] = await tx.executeRaw('SELECT powersync_control(?, ?)', [op, payload]);\n return raw;\n });\n }\n async hasMigratedSubkeys() {\n const { r } = await this.db.get('SELECT EXISTS(SELECT * FROM ps_kv WHERE key = ?) as r', [\n SqliteBucketStorage._subkeyMigrationKey\n ]);\n return r != 0;\n }\n async migrateToFixedSubkeys() {\n await this.writeTransaction(async (tx) => {\n await tx.execute('UPDATE ps_oplog SET key = powersync_remove_duplicate_key_encoding(key);');\n await tx.execute('INSERT OR REPLACE INTO ps_kv (key, value) VALUES (?, ?);', [\n SqliteBucketStorage._subkeyMigrationKey,\n '1'\n ]);\n });\n }\n static _subkeyMigrationKey = 'powersync_js_migrated_subkeys';\n}\nfunction hasMatchingPriority(priority, bucket) {\n return bucket.priority != null && bucket.priority <= priority;\n}\n//# sourceMappingURL=SqliteBucketStorage.js.map","import { SyncDataBucket } from './SyncDataBucket.js';\n// TODO JSON\nexport class SyncDataBatch {\n buckets;\n static fromJSON(json) {\n return new SyncDataBatch(json.buckets.map((bucket) => SyncDataBucket.fromRow(bucket)));\n }\n constructor(buckets) {\n this.buckets = buckets;\n }\n}\n//# sourceMappingURL=SyncDataBatch.js.map","// https://www.sqlite.org/lang_expr.html#castexpr\nexport var ColumnType;\n(function (ColumnType) {\n ColumnType[\"TEXT\"] = \"TEXT\";\n ColumnType[\"INTEGER\"] = \"INTEGER\";\n ColumnType[\"REAL\"] = \"REAL\";\n})(ColumnType || (ColumnType = {}));\nconst text = {\n type: ColumnType.TEXT\n};\nconst integer = {\n type: ColumnType.INTEGER\n};\nconst real = {\n type: ColumnType.REAL\n};\n// powersync-sqlite-core limits the number of column per table to 1999, due to internal SQLite limits.\n// In earlier versions this was limited to 63.\nexport const MAX_AMOUNT_OF_COLUMNS = 1999;\nexport const column = {\n text,\n integer,\n real\n};\nexport class Column {\n options;\n constructor(options) {\n this.options = options;\n }\n get name() {\n return this.options.name;\n }\n get type() {\n return this.options.type;\n }\n toJSON() {\n return {\n name: this.name,\n type: this.type\n };\n }\n}\n//# sourceMappingURL=Column.js.map","import { ColumnType } from './Column.js';\nexport const DEFAULT_INDEX_COLUMN_OPTIONS = {\n ascending: true\n};\nexport class IndexedColumn {\n options;\n static createAscending(column) {\n return new IndexedColumn({\n name: column,\n ascending: true\n });\n }\n constructor(options) {\n this.options = { ...DEFAULT_INDEX_COLUMN_OPTIONS, ...options };\n }\n get name() {\n return this.options.name;\n }\n get ascending() {\n return this.options.ascending;\n }\n toJSON(table) {\n return {\n name: this.name,\n ascending: this.ascending,\n type: table.columns.find((column) => column.name === this.name)?.type ?? ColumnType.TEXT\n };\n }\n}\n//# sourceMappingURL=IndexedColumn.js.map","import { IndexedColumn } from './IndexedColumn.js';\nexport const DEFAULT_INDEX_OPTIONS = {\n columns: []\n};\nexport class Index {\n options;\n static createAscending(options, columnNames) {\n return new Index({\n ...options,\n columns: columnNames.map((name) => IndexedColumn.createAscending(name))\n });\n }\n constructor(options) {\n this.options = options;\n this.options = { ...DEFAULT_INDEX_OPTIONS, ...options };\n }\n get name() {\n return this.options.name;\n }\n get columns() {\n return this.options.columns ?? [];\n }\n toJSON(table) {\n return {\n name: this.name,\n columns: this.columns.map((c) => c.toJSON(table))\n };\n }\n}\n//# sourceMappingURL=Index.js.map","/**\n * Instructs PowerSync to sync data into a \"raw\" table.\n *\n * Since raw tables are not backed by JSON, running complex queries on them may be more efficient. Further, they allow\n * using client-side table and column constraints.\n *\n * To collect local writes to raw tables with PowerSync, custom triggers are required. See\n * {@link https://docs.powersync.com/usage/use-case-examples/raw-tables the documentation} for details and an example on\n * using raw tables.\n *\n * Note that raw tables are only supported when using the new `SyncClientImplementation.rust` sync client.\n *\n * @experimental Please note that this feature is experimental at the moment, and not covered by PowerSync semver or\n * stability guarantees.\n */\nexport class RawTable {\n /**\n * The name of the table.\n *\n * This does not have to match the actual table name in the schema - {@link put} and {@link delete} are free to use\n * another table. Instead, this name is used by the sync client to recognize that operations on this table (as it\n * appears in the source / backend database) are to be handled specially.\n */\n name;\n put;\n delete;\n constructor(name, type) {\n this.name = name;\n this.put = type.put;\n this.delete = type.delete;\n }\n}\n//# sourceMappingURL=RawTable.js.map","import { RawTable } from './RawTable.js';\n/**\n * A schema is a collection of tables. It is used to define the structure of a database.\n */\nexport class Schema {\n /*\n Only available when constructing with mapped typed definition columns\n */\n types;\n props;\n tables;\n rawTables;\n constructor(tables) {\n if (Array.isArray(tables)) {\n /*\n We need to validate that the tables have a name here because a user could pass in an array\n of Tables that don't have a name because they are using the V2 syntax.\n Therefore, 'convertToClassicTables' won't be called on the tables resulting in a runtime error.\n */\n for (const table of tables) {\n if (table.name === '') {\n throw new Error(\"It appears you are trying to create a new Schema with an array instead of an object. Passing in an object instead of an array into 'new Schema()' may resolve your issue.\");\n }\n }\n this.tables = tables;\n }\n else {\n // Update the table entries with the provided table name key\n this.props = Object.fromEntries(Object.entries(tables).map(([tableName, table]) => [tableName, table.copyWithName(tableName)]));\n this.tables = Object.values(this.props);\n }\n this.rawTables = [];\n }\n /**\n * Adds raw tables to this schema. Raw tables are identified by their name, but entirely managed by the application\n * developer instead of automatically by PowerSync.\n * Since raw tables are not backed by JSON, running complex queries on them may be more efficient. Further, they allow\n * using client-side table and column constraints.\n * Note that raw tables are only supported when using the new `SyncClientImplementation.rust` sync client.\n *\n * @param tables An object of (table name, raw table definition) entries.\n * @experimental Note that the raw tables API is still experimental and may change in the future.\n */\n withRawTables(tables) {\n for (const [name, rawTableDefinition] of Object.entries(tables)) {\n this.rawTables.push(new RawTable(name, rawTableDefinition));\n }\n }\n validate() {\n for (const table of this.tables) {\n table.validate();\n }\n }\n toJSON() {\n return {\n tables: this.tables.map((t) => t.toJSON()),\n raw_tables: this.rawTables\n };\n }\n}\n//# sourceMappingURL=Schema.js.map","import { Column, ColumnType, MAX_AMOUNT_OF_COLUMNS } from './Column.js';\nimport { Index } from './Index.js';\nimport { IndexedColumn } from './IndexedColumn.js';\nexport const DEFAULT_TABLE_OPTIONS = {\n indexes: [],\n insertOnly: false,\n localOnly: false,\n trackPrevious: false,\n trackMetadata: false,\n ignoreEmptyUpdates: false\n};\nexport const InvalidSQLCharacters = /[\"'%,.#\\s[\\]]/;\nexport class Table {\n options;\n _mappedColumns;\n static createLocalOnly(options) {\n return new Table({ ...options, localOnly: true, insertOnly: false });\n }\n static createInsertOnly(options) {\n return new Table({ ...options, localOnly: false, insertOnly: true });\n }\n /**\n * Create a table.\n * @deprecated This was only only included for TableV2 and is no longer necessary.\n * Prefer to use new Table() directly.\n *\n * TODO remove in the next major release.\n */\n static createTable(name, table) {\n return new Table({\n name,\n columns: table.columns,\n indexes: table.indexes,\n localOnly: table.options.localOnly,\n insertOnly: table.options.insertOnly,\n viewName: table.options.viewName\n });\n }\n constructor(optionsOrColumns, v2Options) {\n if (this.isTableV1(optionsOrColumns)) {\n this.initTableV1(optionsOrColumns);\n }\n else {\n this.initTableV2(optionsOrColumns, v2Options);\n }\n }\n copyWithName(name) {\n return new Table({\n ...this.options,\n name\n });\n }\n isTableV1(arg) {\n return 'columns' in arg && Array.isArray(arg.columns);\n }\n initTableV1(options) {\n this.options = {\n ...options,\n indexes: options.indexes || []\n };\n this.applyDefaultOptions();\n }\n initTableV2(columns, options) {\n const convertedColumns = Object.entries(columns).map(([name, columnInfo]) => new Column({ name, type: columnInfo.type }));\n const convertedIndexes = Object.entries(options?.indexes ?? {}).map(([name, columnNames]) => new Index({\n name,\n columns: columnNames.map((name) => new IndexedColumn({\n name: name.replace(/^-/, ''),\n ascending: !name.startsWith('-')\n }))\n }));\n this.options = {\n name: '',\n columns: convertedColumns,\n indexes: convertedIndexes,\n viewName: options?.viewName,\n insertOnly: options?.insertOnly,\n localOnly: options?.localOnly,\n trackPrevious: options?.trackPrevious,\n trackMetadata: options?.trackMetadata,\n ignoreEmptyUpdates: options?.ignoreEmptyUpdates\n };\n this.applyDefaultOptions();\n this._mappedColumns = columns;\n }\n applyDefaultOptions() {\n this.options.insertOnly ??= DEFAULT_TABLE_OPTIONS.insertOnly;\n this.options.localOnly ??= DEFAULT_TABLE_OPTIONS.localOnly;\n this.options.trackPrevious ??= DEFAULT_TABLE_OPTIONS.trackPrevious;\n this.options.trackMetadata ??= DEFAULT_TABLE_OPTIONS.trackMetadata;\n this.options.ignoreEmptyUpdates ??= DEFAULT_TABLE_OPTIONS.ignoreEmptyUpdates;\n }\n get name() {\n return this.options.name;\n }\n get viewNameOverride() {\n return this.options.viewName;\n }\n get viewName() {\n return this.viewNameOverride ?? this.name;\n }\n get columns() {\n return this.options.columns;\n }\n get columnMap() {\n return (this._mappedColumns ??\n this.columns.reduce((hash, column) => {\n hash[column.name] = { type: column.type ?? ColumnType.TEXT };\n return hash;\n }, {}));\n }\n get indexes() {\n return this.options.indexes ?? [];\n }\n get localOnly() {\n return this.options.localOnly;\n }\n get insertOnly() {\n return this.options.insertOnly;\n }\n get trackPrevious() {\n return this.options.trackPrevious;\n }\n get trackMetadata() {\n return this.options.trackMetadata;\n }\n get ignoreEmptyUpdates() {\n return this.options.ignoreEmptyUpdates;\n }\n get internalName() {\n if (this.options.localOnly) {\n return `ps_data_local__${this.name}`;\n }\n return `ps_data__${this.name}`;\n }\n get validName() {\n if (InvalidSQLCharacters.test(this.name)) {\n return false;\n }\n if (this.viewNameOverride != null && InvalidSQLCharacters.test(this.viewNameOverride)) {\n return false;\n }\n return true;\n }\n validate() {\n if (InvalidSQLCharacters.test(this.name)) {\n throw new Error(`Invalid characters in table name: ${this.name}`);\n }\n if (this.viewNameOverride && InvalidSQLCharacters.test(this.viewNameOverride)) {\n throw new Error(`Invalid characters in view name: ${this.viewNameOverride}`);\n }\n if (this.columns.length > MAX_AMOUNT_OF_COLUMNS) {\n throw new Error(`Table has too many columns. The maximum number of columns is ${MAX_AMOUNT_OF_COLUMNS}.`);\n }\n if (this.trackMetadata && this.localOnly) {\n throw new Error(`Can't include metadata for local-only tables.`);\n }\n if (this.trackPrevious != false && this.localOnly) {\n throw new Error(`Can't include old values for local-only tables.`);\n }\n const columnNames = new Set();\n columnNames.add('id');\n for (const column of this.columns) {\n const { name: columnName } = column;\n if (column.name === 'id') {\n throw new Error(`An id column is automatically added, custom id columns are not supported`);\n }\n if (columnNames.has(columnName)) {\n throw new Error(`Duplicate column ${columnName}`);\n }\n if (InvalidSQLCharacters.test(columnName)) {\n throw new Error(`Invalid characters in column name: ${column.name}`);\n }\n columnNames.add(columnName);\n }\n const indexNames = new Set();\n for (const index of this.indexes) {\n if (indexNames.has(index.name)) {\n throw new Error(`Duplicate index ${index.name}`);\n }\n if (InvalidSQLCharacters.test(index.name)) {\n throw new Error(`Invalid characters in index name: ${index.name}`);\n }\n for (const column of index.columns) {\n if (!columnNames.has(column.name)) {\n throw new Error(`Column ${column.name} not found for index ${index.name}`);\n }\n }\n indexNames.add(index.name);\n }\n }\n toJSON() {\n const trackPrevious = this.trackPrevious;\n return {\n name: this.name,\n view_name: this.viewName,\n local_only: this.localOnly,\n insert_only: this.insertOnly,\n include_old: trackPrevious && (trackPrevious.columns ?? true),\n include_old_only_when_changed: typeof trackPrevious == 'object' && trackPrevious.onlyWhenChanged == true,\n include_metadata: this.trackMetadata,\n ignore_empty_update: this.ignoreEmptyUpdates,\n columns: this.columns.map((c) => c.toJSON()),\n indexes: this.indexes.map((e) => e.toJSON(this))\n };\n }\n}\n//# sourceMappingURL=Table.js.map","import { Table } from './Table.js';\n/**\n Generate a new table from the columns and indexes\n @deprecated You should use {@link Table} instead as it now allows TableV2 syntax.\n This will be removed in the next major release.\n*/\nexport class TableV2 extends Table {\n}\n//# sourceMappingURL=TableV2.js.map","function sanitizeString(input) {\n return `'${input.replace(/'/g, \"''\")}'`;\n}\n/**\n * Helper function for sanitizing UUID input strings.\n * Typically used with {@link sanitizeSQL}.\n */\nexport function sanitizeUUID(uuid) {\n const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n const isValid = uuidRegex.test(uuid);\n if (!isValid) {\n throw new Error(`${uuid} is not a valid UUID`);\n }\n return uuid;\n}\n/**\n * SQL string template function for {@link TrackDiffOptions#when} and {@link CreateDiffTriggerOptions#when}.\n *\n * This function performs basic string interpolation for SQLite WHEN clauses.\n *\n * **String placeholders:**\n * - All string values passed as placeholders are automatically wrapped in single quotes (`'`).\n * - Do not manually wrap placeholders in single quotes in your template string; the function will handle quoting and escaping for you.\n * - Any single quotes within the string value are escaped by doubling them (`''`), as required by SQL syntax.\n *\n * **Other types:**\n * - `null` and `undefined` are converted to SQL `NULL`.\n * - Objects are stringified using `JSON.stringify()` and wrapped in single quotes, with any single quotes inside the stringified value escaped.\n * - Numbers and other primitive types are inserted directly.\n *\n * **Usage example:**\n * ```typescript\n * const myID = \"O'Reilly\";\n * const clause = sanitizeSQL`New.id = ${myID}`;\n * // Result: \"New.id = 'O''Reilly'\"\n * ```\n *\n * Avoid manually quoting placeholders:\n * ```typescript\n * // Incorrect:\n * sanitizeSQL`New.id = '${myID}'` // Produces double quotes: New.id = ''O''Reilly''\n * ```\n */\nexport function sanitizeSQL(strings, ...values) {\n let result = '';\n strings.forEach((str, i) => {\n result += str;\n if (i < values.length) {\n // For SQL, escape single quotes in string values\n const value = values[i];\n if (typeof value == 'string') {\n result += sanitizeString(value);\n }\n else if (value == null) {\n result += 'NULL';\n }\n else if (typeof value == 'object') {\n // Stringify the object and escape single quotes in the result\n const stringified = JSON.stringify(value);\n result += sanitizeString(stringified);\n }\n else {\n result += value;\n }\n }\n });\n return result;\n}\n//# sourceMappingURL=sanitizeSQL.js.map","/**\n * Performs a {@link AbstractPowerSyncDatabase.getAll} operation for a watched query.\n */\nexport class GetAllQuery {\n options;\n constructor(options) {\n this.options = options;\n }\n compile() {\n return {\n sql: this.options.sql,\n parameters: this.options.parameters ?? []\n };\n }\n async execute(options) {\n const { db } = options;\n const { sql, parameters = [] } = this.compile();\n const rawResult = await db.getAll(sql, [...parameters]);\n if (this.options.mapper) {\n return rawResult.map(this.options.mapper);\n }\n return rawResult;\n }\n}\n//# sourceMappingURL=GetAllQuery.js.map","import Logger from 'js-logger';\nconst TypedLogger = Logger;\nexport const LogLevel = {\n TRACE: TypedLogger.TRACE,\n DEBUG: TypedLogger.DEBUG,\n INFO: TypedLogger.INFO,\n TIME: TypedLogger.TIME,\n WARN: TypedLogger.WARN,\n ERROR: TypedLogger.ERROR,\n OFF: TypedLogger.OFF\n};\n/**\n * Retrieves the base (default) logger instance.\n *\n * This base logger controls the default logging configuration and is shared\n * across all loggers created with `createLogger`. Adjusting settings on this\n * base logger affects all loggers derived from it unless explicitly overridden.\n *\n */\nexport function createBaseLogger() {\n return Logger;\n}\n/**\n * Creates and configures a new named logger based on the base logger.\n *\n * Named loggers allow specific modules or areas of your application to have\n * their own logging levels and behaviors. These loggers inherit configuration\n * from the base logger by default but can override settings independently.\n */\nexport function createLogger(name, options = {}) {\n const logger = Logger.get(name);\n if (options.logLevel) {\n logger.setLevel(options.logLevel);\n }\n return logger;\n}\n//# sourceMappingURL=Logger.js.map","export const parseQuery = (query, parameters) => {\n let sqlStatement;\n if (typeof query == 'string') {\n sqlStatement = query;\n }\n else {\n const hasAdditionalParameters = parameters.length > 0;\n if (hasAdditionalParameters) {\n throw new Error('You cannot pass parameters to a compiled query.');\n }\n const compiled = query.compile();\n sqlStatement = compiled.sql;\n parameters = compiled.parameters;\n }\n return { sqlStatement, parameters: parameters };\n};\n//# sourceMappingURL=parseQuery.js.map"],"names":["require$$0","this","require$$1","Buffer","Deferred_1","Deferred","require$$2","require$$3","require$$4","require$$5","RSocketConnector_1","RSocketConnector","RSocketServer_1","RSocketServer","require$$6","require$$7","require$$8","WebsocketDuplexConnection_1","WebsocketDuplexConnection","Deserializer","EventIterator"],"mappings":"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","x_google_ignoreList":[0,1,2,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51]}