{"version":3,"file":"agent.d.ts","sources":["../../types/modules/Signal.d.ts","../../types/plugins/Agent.d.ts"],"sourcesContent":["/**\n * @module eleva/signal\n * @fileoverview Reactive Signal primitive for fine-grained state management and change notification.\n */\n/**\n * Callback function invoked when a signal's value changes.\n * @template T The type of value held by the signal.\n * @callback SignalWatcher\n * @param {T} value\n *        The new value of the signal.\n * @returns {void}\n */\n/**\n * Function to unsubscribe a watcher from a signal.\n * @callback SignalUnsubscribe\n * @returns {boolean}\n *          True if the watcher was successfully removed, false if already removed.\n *          Safe to call multiple times (idempotent).\n */\n/**\n * Interface describing the public API of a Signal.\n * @template T The type of value held by the signal.\n * @typedef {Object} SignalLike\n * @property {T} value\n *           The current value of the signal.\n * @property {function(SignalWatcher<T>): SignalUnsubscribe} watch\n *           Subscribe to value changes.\n */\n/**\n * @class ⚡ Signal\n * @classdesc A reactive data holder that enables fine-grained reactivity in the Eleva framework.\n * Signals notify registered watchers synchronously when their value changes, enabling efficient\n * DOM updates through targeted patching rather than full re-renders.\n * Synchronous notification preserves stack traces and allows immediate value inspection.\n * Render batching is handled at the component level, not the signal level.\n * The class is generic, allowing type-safe handling of any value type T.\n *\n * @template T The type of value held by the signal.\n *\n * @example\n * // Basic usage\n * const count = new Signal(0);\n * count.watch((value) => console.log(`Count changed to: ${value}`));\n * count.value = 1; // Logs: \"Count changed to: 1\"\n *\n * @example\n * // With unsubscribe\n * const name = new Signal(\"John\");\n * const unsubscribe = name.watch((value) => console.log(value));\n * name.value = \"Jane\"; // Logs: \"Jane\"\n * unsubscribe(); // Stop watching\n * name.value = \"Bob\"; // No log output\n *\n * @example\n * // With objects\n * const position = new Signal({ x: 0, y: 0 });\n * position.value = { x: 10, y: 20 }; // Triggers watchers\n *\n * @implements {SignalLike<T>}\n */\nexport class Signal<T> implements SignalLike<T> {\n    /**\n     * Creates a new Signal instance with the specified initial value.\n     *\n     * @public\n     * @constructor\n     * @param {T} value - The initial value of the signal.\n     *\n     * @example\n     * // Primitive types\n     * const count = new Signal(0);        // Signal<number>\n     * const name = new Signal(\"John\");    // Signal<string>\n     * const active = new Signal(true);    // Signal<boolean>\n     *\n     * @example\n     * // Complex types\n     * const items = new Signal([]);          // Signal holding an array\n     * const user = new Signal(null);         // Signal holding nullable object\n     */\n    constructor(value: T);\n    /**\n     * Internal storage for the signal's current value.\n     * @private\n     * @type {T}\n     */\n    private _value;\n    /**\n     * Collection of callback functions to be notified when value changes.\n     * @private\n     * @type {Set<SignalWatcher<T>>}\n     */\n    private _watchers;\n    /**\n     * Sets a new value for the signal and synchronously notifies all registered watchers if the value has changed.\n     * Synchronous notification preserves stack traces and ensures immediate value consistency.\n     *\n     * Uses strict equality (===) for comparison. For objects/arrays, watchers are only notified\n     * if the reference changes, not if properties are mutated. To trigger updates with objects,\n     * assign a new reference: `signal.value = { ...signal.value, updated: true }`.\n     *\n     * @public\n     * @param {T} newVal - The new value to set.\n     * @returns {void}\n     */\n    public set value(newVal: T);\n    /**\n     * Gets the current value of the signal.\n     *\n     * @public\n     * @returns {T} The current value.\n     */\n    public get value(): T;\n    /**\n     * Registers a watcher function that will be called whenever the signal's value changes.\n     * The watcher will receive the new value as its argument.\n     *\n     * @public\n     * @param {SignalWatcher<T>} fn - The callback function to invoke on value change.\n     * @returns {SignalUnsubscribe} A function to unsubscribe the watcher.\n     *          Returns true if watcher was removed, false if it wasn't registered.\n     *          Safe to call multiple times (idempotent after first call).\n     *\n     * @example\n     * // Basic watching\n     * const unsubscribe = signal.watch((value) => console.log(value));\n     *\n     * @example\n     * // Stop watching\n     * unsubscribe(); // Returns true if watcher was removed\n     * unsubscribe(); // Returns false (already removed, safe to call again)\n     *\n     * @example\n     * // Multiple watchers\n     * const unsub1 = signal.watch((v) => console.log(\"Watcher 1:\", v));\n     * const unsub2 = signal.watch((v) => console.log(\"Watcher 2:\", v));\n     * signal.value = \"test\"; // Both watchers are called\n     */\n    public watch(fn: SignalWatcher<T>): SignalUnsubscribe;\n    /**\n     * Synchronously notifies all registered watchers of the value change.\n     * This preserves stack traces for debugging and ensures immediate\n     * value consistency. Render batching is handled at the component level.\n     *\n     * @note If a watcher throws, subsequent watchers are NOT called.\n     * The error propagates to the caller (the setter).\n     *\n     * @private\n     * @returns {void}\n     */\n    private _notify;\n}\n/**\n * Callback function invoked when a signal's value changes.\n */\nexport type SignalWatcher<T> = (value: T) => void;\n/**\n * Function to unsubscribe a watcher from a signal.\n */\nexport type SignalUnsubscribe = () => boolean;\n/**\n * Interface describing the public API of a Signal.\n */\nexport type SignalLike<T> = {\n    /**\n     *           The current value of the signal.\n     */\n    value: T;\n    /**\n     *           Subscribe to value changes.\n     */\n    watch: (arg0: SignalWatcher<T>) => SignalUnsubscribe;\n};\n//# sourceMappingURL=Signal.d.ts.map","export namespace AgentPlugin {\n    let name: string;\n    let version: string;\n    let description: string;\n    /**\n     * Installs the Agent plugin into the Eleva instance.\n     *\n     * @public\n     * @param {Eleva} eleva - The Eleva instance.\n     * @param {AgentOptions} options - Plugin configuration options.\n     * @returns {void}\n     * @description\n     * Creates an internal Agent instance and wraps `eleva.mount` and\n     * `eleva._mountComponents` to inject `ctx.agent` into every component's\n     * setup function. Hooks into `eleva.emitter` for cross-plugin audit log\n     * capture. Exposes the agent instance and convenience methods on the\n     * Eleva instance.\n     *\n     * @example\n     * // Basic installation\n     * app.use(AgentPlugin);\n     *\n     * // With options\n     * app.use(AgentPlugin, {\n     *   maxLogSize: 200,\n     *   enableInspection: true,\n     *   onError: (err, ctx) => console.error(ctx, err),\n     *   actions: { ping: () => \"pong\" },\n     *   permissions: { \"my-agent\": { actions: [\"ping\"] } },\n     *   emitterEvents: [\"store:\", \"router:\"]\n     * });\n     */\n    function install(eleva: Eleva, options?: AgentOptions): void;\n    /**\n     * Uninstalls the Agent plugin from the Eleva instance.\n     *\n     * @public\n     * @param {Eleva} eleva - The Eleva instance.\n     * @returns {void}\n     * @description\n     * Restores the original Eleva methods, emitter hooks, and removes all\n     * plugin-specific functionality including the agent instance and\n     * convenience methods.\n     *\n     * @example\n     * AgentPlugin.uninstall(app);\n     */\n    function uninstall(eleva: Eleva): void;\n}\nexport { AgentPlugin as Agent };\n/**\n * Type imports from the Eleva core library.\n */\nexport type Eleva = import(\"eleva\").Eleva;\n/**\n * Type imports from the Eleva core library.\n */\nexport type ComponentDefinition = import(\"eleva\").ComponentDefinition;\n/**\n * Type imports from the Eleva core library.\n */\nexport type ComponentContext = import(\"eleva\").ComponentContext;\n/**\n * Type imports from the Eleva core library.\n */\nexport type SetupResult = import(\"eleva\").SetupResult;\n/**\n * Type imports from the Eleva core library.\n */\nexport type ComponentProps = import(\"eleva\").ComponentProps;\n/**\n * Type imports from the Eleva core library.\n */\nexport type ChildrenMap = import(\"eleva\").ChildrenMap;\n/**\n * Type imports from the Eleva core library.\n */\nexport type MountResult = import(\"eleva\").MountResult;\n/**\n * Audit log entry recorded for actions, commands, and emitter events.\n */\nexport type AgentLogEntry = {\n    /**\n     *           The category of the log entry.\n     */\n    type: \"action\" | \"command\" | \"event\";\n    /**\n     *           The action name, command type, or emitter event name.\n     */\n    action: string;\n    /**\n     *           The data associated with the entry.\n     */\n    payload: unknown;\n    /**\n     *           Unix timestamp of when the entry was recorded.\n     */\n    timestamp: number;\n    /**\n     *           The originating context (e.g., \"global\").\n     */\n    source: string;\n    /**\n     * The value returned by the handler (action entries only).\n     * Absent on command/event entries and when the handler throws.\n     */\n    result?: unknown;\n    /**\n     * The error message if the handler threw (action/command entries).\n     * Absent when the handler succeeds and on event entries.\n     */\n    error?: string | undefined;\n    /**\n     * Wall-clock execution time in milliseconds (action/command entries).\n     * Absent on event entries.\n     */\n    durationMs?: number | undefined;\n};\n/**\n * Filter options for querying the audit log.\n */\nexport type AgentLogFilter = {\n    /**\n     * Filter by log entry type.\n     */\n    type?: \"action\" | \"command\" | \"event\" | undefined;\n    /**\n     * Filter entries after this timestamp.\n     */\n    since?: number | undefined;\n    /**\n     * Filter by action/event name.\n     */\n    action?: string | undefined;\n    /**\n     * Filter by outcome: \"ok\" = entries without error, \"error\" = entries with error.\n     */\n    status?: \"error\" | \"ok\" | undefined;\n};\n/**\n * Action schema describing the contract for a registered action.\n */\nexport type AgentActionSchema = {\n    /**\n     * Expected input payload shape (key -> type name).\n     */\n    input?: Record<string, string> | undefined;\n    /**\n     * Expected return type name.\n     */\n    output?: string | undefined;\n    /**\n     * Known error codes this action can produce.\n     */\n    errors?: string[] | undefined;\n};\n/**\n * Permission rules for capability-based access control.\n */\nexport type AgentPermissionRule = {\n    /**\n     * Allowed action names.\n     */\n    actions?: string[] | undefined;\n    /**\n     * Allowed command types.\n     */\n    commands?: string[] | undefined;\n};\n/**\n * Agent plugin configuration options.\n */\nexport type AgentOptions = {\n    /**\n     * Maximum number of audit log entries (default: 100).\n     */\n    maxLogSize?: number | undefined;\n    /**\n     * Enable component tree inspection (default: true).\n     */\n    enableInspection?: boolean | undefined;\n    /**\n     * Custom error handler function.\n     */\n    onError?: AgentErrorHandler | undefined;\n    /**\n     * Pre-registered action handlers.\n     */\n    actions?: Record<string, Function> | undefined;\n    /**\n     * Capability-based access control per scope.\n     */\n    permissions?: Record<string, AgentPermissionRule> | undefined;\n    /**\n     * Emitter event prefixes to capture in the audit log\n     * (e.g., [\"store:\", \"router:\"]). Empty array disables capture.\n     */\n    emitterEvents?: string[] | undefined;\n    /**\n     * When true, scope is mandatory for execute/dispatch and calls\n     * without a scope are denied. Default: false (scope is optional\n     * and calls without it are unrestricted).\n     */\n    strictPermissions?: boolean | undefined;\n    /**\n     * When true, `execute()` validates the payload against the action's\n     * schema before calling the handler. Missing required input fields\n     * throw a schema violation error. Default: false.\n     */\n    validateSchemas?: boolean | undefined;\n};\n/**\n * Custom error handler for the agent plugin.\n */\nexport type AgentErrorHandler = (error: Error, context: AgentErrorContext) => void;\n/**\n * Structured error context passed to the onError callback.\n */\nexport type AgentErrorContext = {\n    /**\n     *           The method that generated the error. Only \"execute\" and \"dispatch\" call onError.\n     */\n    method: \"execute\" | \"dispatch\";\n    /**\n     *           Machine-readable error code (e.g., \"AGENT_PERMISSION_DENIED\").\n     */\n    code: string;\n    /**\n     * The action name involved (if applicable).\n     */\n    action?: string | undefined;\n    /**\n     * The scope involved (if applicable).\n     */\n    scope?: string | undefined;\n    /**\n     * The command type involved (if applicable).\n     */\n    commandType?: string | undefined;\n};\n/**\n * Capability manifest describing all available agent features for a given scope.\n * Returned by `agent.describe(scope?)`.\n */\nexport type AgentCapabilityManifest = {\n    /**\n     *           All registered actions with their schemas and scope-based access.\n     */\n    actions: Array<{\n        name: string;\n        schema: AgentActionSchema | null;\n        allowed: boolean;\n    }>;\n    /**\n     *           All registered command types.\n     */\n    commands: string[];\n    /**\n     *           The resolved permission rules for the requested scope, or null if no scope.\n     */\n    permissions: {\n        scope: string | null;\n        actions: string[];\n        commands: string[];\n    } | null;\n    /**\n     *           Current agent configuration.\n     */\n    config: {\n        strictPermissions: boolean;\n        maxLogSize: number;\n        inspectionEnabled: boolean;\n        validateSchemas: boolean;\n    };\n};\n/**\n * Command object dispatched through the command bus.\n */\nexport type AgentCommand = {\n    /**\n     *           The command type identifier.\n     */\n    type: string;\n    /**\n     * Optional target component or agent.\n     */\n    target?: string | undefined;\n    /**\n     * Optional data payload.\n     */\n    payload?: unknown;\n};\n/**\n * Snapshot of the current application state.\n */\nexport type AgentSnapshot = {\n    /**\n     *           When the snapshot was taken.\n     */\n    timestamp: number;\n    /**\n     *           Registered component information.\n     */\n    components: Array<{\n        name: string;\n        hasSetup: boolean;\n        hasChildren: boolean;\n    }>;\n    /**\n     *           Installed plugin names.\n     */\n    plugins: string[];\n};\n/**\n * Diff result comparing two snapshots.\n */\nexport type AgentDiffResult = {\n    /**\n     *           Component names present in snapshot B but not A.\n     */\n    added: string[];\n    /**\n     *           Component names present in snapshot A but not B.\n     */\n    removed: string[];\n};\n/**\n * Descriptor returned by describeAction for agent introspection.\n */\nexport type AgentActionDescriptor = {\n    /**\n     *           The action name.\n     */\n    name: string;\n    /**\n     *           The action's contract schema, or null if none was provided.\n     */\n    schema: AgentActionSchema | null;\n};\n/**\n * Result returned by `agent.inspect()` describing the component registry.\n */\nexport type AgentInspectResult = {\n    /**\n     *           Registered component information with setup, template, children, and style flags.\n     */\n    components: Array<{\n        name: string;\n        hasSetup: boolean;\n        hasTemplate: boolean;\n        hasChildren: boolean;\n        hasStyle: boolean;\n    }>;\n};\n/**\n * Extended error with a machine-readable `code` property.\n * All Agent plugin errors include `.code`; schema violations also include `.violations`.\n */\nexport type AgentErrorFields = {\n    /**\n     *           Machine-readable error code (e.g., \"AGENT_PERMISSION_DENIED\").\n     */\n    code: string;\n    /**\n     * Schema violation messages (present only on AGENT_SCHEMA_VIOLATION errors).\n     */\n    violations?: string[] | undefined;\n};\n/**\n * Extended error with a machine-readable `code` property.\n * All Agent plugin errors include `.code`; schema violations also include `.violations`.\n */\nexport interface AgentError extends Error {\n    /** Machine-readable error code (e.g., \"AGENT_PERMISSION_DENIED\"). */\n    code: string;\n    /** Schema violation messages (present only on AGENT_SCHEMA_VIOLATION errors). */\n    violations?: string[];\n}\n/**\n * The public API surface exposed as ctx.agent in components.\n */\nexport type AgentApi = {\n    register: (name: string, handler: Function, schema?: AgentActionSchema) => void;\n    unregister: (name: string) => void;\n    execute: (name: string, payload?: unknown, scope?: string) => Promise<unknown>;\n    executeBatch: (actions: Array<{\n        action: string;\n        payload?: unknown;\n    }>, scope?: string) => Promise<unknown[]>;\n    executeSequence: (actions: Array<{\n        action: string;\n        payload?: unknown;\n    }>, scope?: string) => Promise<unknown>;\n    hasAction: (name: string) => boolean;\n    describeAction: (name: string) => AgentActionDescriptor | null;\n    listActions: () => AgentActionDescriptor[];\n    describe: (scope?: string) => AgentCapabilityManifest;\n    dispatch: (command: AgentCommand, scope?: string) => Promise<void>;\n    onCommand: (type: string, handler: Function) => () => void;\n    getLog: (filter?: AgentLogFilter) => AgentLogEntry[];\n    clearLog: () => void;\n    actionCount: import(\"../modules/Signal.js\").Signal<number>;\n    lastActivity: import(\"../modules/Signal.js\").Signal<AgentLogEntry | null>;\n    inspect?: (() => AgentInspectResult) | undefined;\n    snapshot?: (() => AgentSnapshot) | undefined;\n    diff?: ((a: AgentSnapshot, b: AgentSnapshot) => AgentDiffResult) | undefined;\n};\n// ---------------------------------------------------------------------------\n// Module augmentation (hand-maintained, appended by scripts/augment-agent-types.js)\n// When the Agent plugin is installed, these properties are added at runtime.\n// ---------------------------------------------------------------------------\n\ndeclare module \"eleva\" {\n  interface Eleva {\n    /** Agent instance exposed after `app.use(AgentPlugin)`. Undefined before install / after uninstall. */\n    agent?: import(\"./Agent.js\").AgentApi;\n    /** Convenience shortcut for `app.agent.execute()`. Undefined before install / after uninstall. */\n    agentExecute?: (name: string, payload?: unknown, scope?: string) => Promise<unknown>;\n    /** Convenience shortcut for `app.agent.dispatch()`. Undefined before install / after uninstall. */\n    agentDispatch?: (command: import(\"./Agent.js\").AgentCommand, scope?: string) => Promise<void>;\n  }\n\n  interface ComponentContext {\n    /** Agent API injected by the Agent plugin into component setup. */\n    agent?: import(\"./Agent.js\").AgentApi;\n  }\n}\n//# sourceMappingURL=Agent.d.ts.map\n"],"names":["___modules_Signal_js.Signal","__Agent_js.AgentApi","__Agent_js.AgentCommand"],"mappings":";;AAAA;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;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,cAAA,MAAA,eAAA,UAAA;AACP;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAA,aAAA,MAAA,iBAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,aAAA;AACP;AACA;AACA;AACO,KAAA,iBAAA;AACP;AACA;AACA;AACO,KAAA,UAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAA,aAAA,QAAA,iBAAA;AACA;;AC3KO,kBAAA,WAAA;AACP;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,4BAAA,KAAA,YAAA,YAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAAA,KAAA;AACA;;AAEA;AACA;AACA;AACO,KAAA,KAAA,GAAa,KAAe,CAAA,KAAA;AACnC;AACA;AACA;AACO,KAAA,mBAAA,GAA2B,KAAe,CAAA,mBAAA;AACjD;AACA;AACA;AACO,KAAA,gBAAA,GAAwB,KAAe,CAAA,gBAAA;AAC9C;AACA;AACA;AACO,KAAA,WAAA,GAAmB,KAAe,CAAA,WAAA;AACzC;AACA;AACA;AACO,KAAA,cAAA,GAAsB,KAAe,CAAA,cAAA;AAC5C;AACA;AACA;AACO,KAAA,WAAA,GAAmB,KAAe,CAAA,WAAA;AACzC;AACA;AACA;AACO,KAAA,WAAA,GAAmB,KAAe,CAAA,WAAA;AACzC;AACA;AACA;AACO,KAAA,aAAA;AACP;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,cAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,iBAAA;AACP;AACA;AACA;AACA,YAAA,MAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,mBAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,YAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAA,iBAAA;AACA;AACA;AACA;AACA,cAAA,MAAA,SAAA,QAAA;AACA;AACA;AACA;AACA,kBAAA,MAAA,SAAA,mBAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,iBAAA,WAAA,KAAA,WAAA,iBAAA;AACP;AACA;AACA;AACO,KAAA,iBAAA;AACP;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,KAAA,uBAAA;AACP;AACA;AACA;AACA,aAAA,KAAA;AACA;AACA,gBAAA,iBAAA;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,KAAA,YAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,aAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAA,KAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,eAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,qBAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAA,iBAAA;AACA;AACA;AACA;AACA;AACO,KAAA,kBAAA;AACP;AACA;AACA;AACA,gBAAA,KAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,gBAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,UAAA,UAAA,SAAA,KAAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,KAAA,QAAA;AACP,sCAAA,QAAA,WAAA,iBAAA;AACA;AACA,kEAAA,OAAA;AACA,4BAAA,KAAA;AACA;AACA;AACA,2BAAA,OAAA;AACA,+BAAA,KAAA;AACA;AACA;AACA,2BAAA,OAAA;AACA;AACA,sCAAA,qBAAA;AACA,uBAAA,qBAAA;AACA,kCAAA,uBAAA;AACA,wBAAA,YAAA,qBAAA,OAAA;AACA,uCAAA,QAAA;AACA,sBAAA,cAAA,KAAA,aAAA;AACA;AACA,iBAAiBA,MAA8B;AAC/C,kBAAkBA,MAA8B,CAAA,aAAA;AAChD,qBAAA,kBAAA;AACA,sBAAA,aAAA;AACA,gBAAA,aAAA,KAAA,aAAA,KAAA,eAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAYC,QAAoB;AAChC;AACA,wEAAA,OAAA;AACA;AACA,8BAA8BC,YAAoB,qBAAA,OAAA;AAClD;;AAEA;AACA;AACA,YAAYD,QAAoB;AAChC;AACA;;;;"}