@mcp-b/global 0.0.0-beta-20260109203913 → 0.0.0-canary-20260126004552

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -127,6 +127,316 @@ window.navigator.modelContext.provideContext({
127
127
  });
128
128
  ```
129
129
 
130
+ ## 📜 Traditional Web Standard Usage
131
+
132
+ The Web Model Context API follows the same patterns as other browser APIs. Here's how to use it as a traditional web standard:
133
+
134
+ ### Basic Pattern (Vanilla JavaScript)
135
+
136
+ ```html
137
+ <!DOCTYPE html>
138
+ <html>
139
+ <head>
140
+ <title>Web Model Context API Example</title>
141
+ <script src="https://unpkg.com/@mcp-b/global@latest/dist/index.iife.js"></script>
142
+ </head>
143
+ <body>
144
+ <h1>Counter App</h1>
145
+ <p>Count: <span id="count">0</span></p>
146
+ <button id="increment">+</button>
147
+ <button id="decrement">-</button>
148
+
149
+ <script>
150
+ // State
151
+ let count = 0;
152
+
153
+ // DOM elements
154
+ const countEl = document.getElementById('count');
155
+ const incrementBtn = document.getElementById('increment');
156
+ const decrementBtn = document.getElementById('decrement');
157
+
158
+ // Update UI
159
+ function updateUI() {
160
+ countEl.textContent = count;
161
+ }
162
+
163
+ // Button handlers
164
+ incrementBtn.addEventListener('click', () => { count++; updateUI(); });
165
+ decrementBtn.addEventListener('click', () => { count--; updateUI(); });
166
+
167
+ // Feature detection (like navigator.geolocation)
168
+ if ('modelContext' in navigator) {
169
+ // Register tools with the Web Model Context API
170
+ navigator.modelContext.provideContext({
171
+ tools: [
172
+ {
173
+ name: 'counter_get',
174
+ description: 'Get the current counter value',
175
+ inputSchema: { type: 'object', properties: {} },
176
+ execute: async () => ({
177
+ content: [{ type: 'text', text: String(count) }]
178
+ })
179
+ },
180
+ {
181
+ name: 'counter_set',
182
+ description: 'Set the counter to a specific value',
183
+ inputSchema: {
184
+ type: 'object',
185
+ properties: {
186
+ value: { type: 'number', description: 'The new counter value' }
187
+ },
188
+ required: ['value']
189
+ },
190
+ execute: async ({ value }) => {
191
+ count = value;
192
+ updateUI();
193
+ return {
194
+ content: [{ type: 'text', text: `Counter set to ${count}` }]
195
+ };
196
+ }
197
+ },
198
+ {
199
+ name: 'counter_increment',
200
+ description: 'Increment the counter by a specified amount',
201
+ inputSchema: {
202
+ type: 'object',
203
+ properties: {
204
+ amount: { type: 'number', description: 'Amount to increment by', default: 1 }
205
+ }
206
+ },
207
+ execute: async ({ amount = 1 }) => {
208
+ count += amount;
209
+ updateUI();
210
+ return {
211
+ content: [{ type: 'text', text: `Counter incremented to ${count}` }]
212
+ };
213
+ }
214
+ }
215
+ ]
216
+ });
217
+
218
+ console.log('Web Model Context API: Tools registered');
219
+ } else {
220
+ console.warn('Web Model Context API not supported');
221
+ }
222
+ </script>
223
+ </body>
224
+ </html>
225
+ ```
226
+
227
+ ### Single Tool Registration Pattern
228
+
229
+ Like `navigator.permissions.query()`, you can register tools one at a time:
230
+
231
+ ```javascript
232
+ // Feature detection
233
+ if ('modelContext' in navigator) {
234
+ // Register a single tool (returns an object with unregister method)
235
+ const registration = navigator.modelContext.registerTool({
236
+ name: 'get_page_info',
237
+ description: 'Get information about the current page',
238
+ inputSchema: { type: 'object', properties: {} },
239
+ execute: async () => ({
240
+ content: [{
241
+ type: 'text',
242
+ text: JSON.stringify({
243
+ title: document.title,
244
+ url: location.href,
245
+ timestamp: new Date().toISOString()
246
+ }, null, 2)
247
+ }]
248
+ })
249
+ });
250
+
251
+ // Later, unregister if needed (e.g., when component unmounts)
252
+ // registration.unregister();
253
+ }
254
+ ```
255
+
256
+ ### Event-Driven Pattern
257
+
258
+ Similar to other DOM events, you can listen for tool calls:
259
+
260
+ ```javascript
261
+ if ('modelContext' in navigator) {
262
+ // Listen for tool calls (like 'message' or 'click' events)
263
+ navigator.modelContext.addEventListener('toolcall', (event) => {
264
+ console.log(`Tool "${event.name}" called with:`, event.arguments);
265
+
266
+ // Optionally intercept and provide custom response
267
+ if (event.name === 'custom_handler') {
268
+ event.preventDefault();
269
+ event.respondWith({
270
+ content: [{ type: 'text', text: 'Custom response' }]
271
+ });
272
+ }
273
+ });
274
+ }
275
+ ```
276
+
277
+ ### Complete Standalone Example
278
+
279
+ Save this as `index.html` and open in a browser:
280
+
281
+ ```html
282
+ <!DOCTYPE html>
283
+ <html lang="en">
284
+ <head>
285
+ <meta charset="UTF-8">
286
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
287
+ <title>WebMCP Demo</title>
288
+ <script src="https://unpkg.com/@mcp-b/global@latest/dist/index.iife.js"></script>
289
+ <style>
290
+ body { font-family: system-ui; max-width: 600px; margin: 2rem auto; padding: 0 1rem; }
291
+ .card { border: 1px solid #ddd; border-radius: 8px; padding: 1rem; margin: 1rem 0; }
292
+ button { padding: 0.5rem 1rem; margin: 0.25rem; cursor: pointer; }
293
+ #log { font-family: monospace; font-size: 0.85rem; background: #f5f5f5; padding: 1rem; max-height: 200px; overflow-y: auto; }
294
+ </style>
295
+ </head>
296
+ <body>
297
+ <h1>🤖 WebMCP Demo</h1>
298
+
299
+ <div class="card">
300
+ <h2>Notes App</h2>
301
+ <input type="text" id="noteInput" placeholder="Enter a note..." style="width: 100%; padding: 0.5rem; box-sizing: border-box;">
302
+ <button id="addNote">Add Note</button>
303
+ <ul id="notesList"></ul>
304
+ </div>
305
+
306
+ <div class="card">
307
+ <h3>Tool Call Log</h3>
308
+ <div id="log">Waiting for AI tool calls...</div>
309
+ </div>
310
+
311
+ <script>
312
+ // Application state
313
+ const notes = [];
314
+
315
+ // DOM elements
316
+ const noteInput = document.getElementById('noteInput');
317
+ const addNoteBtn = document.getElementById('addNote');
318
+ const notesList = document.getElementById('notesList');
319
+ const logEl = document.getElementById('log');
320
+
321
+ // UI functions
322
+ function renderNotes() {
323
+ notesList.innerHTML = notes.map((note, i) =>
324
+ `<li>${note} <button onclick="deleteNote(${i})">×</button></li>`
325
+ ).join('');
326
+ }
327
+
328
+ function log(message) {
329
+ const time = new Date().toLocaleTimeString();
330
+ logEl.innerHTML = `[${time}] ${message}\n` + logEl.innerHTML;
331
+ }
332
+
333
+ // User interactions
334
+ addNoteBtn.addEventListener('click', () => {
335
+ if (noteInput.value.trim()) {
336
+ notes.push(noteInput.value.trim());
337
+ noteInput.value = '';
338
+ renderNotes();
339
+ }
340
+ });
341
+
342
+ window.deleteNote = (index) => {
343
+ notes.splice(index, 1);
344
+ renderNotes();
345
+ };
346
+
347
+ // Web Model Context API - Register tools for AI agents
348
+ if ('modelContext' in navigator) {
349
+ navigator.modelContext.provideContext({
350
+ tools: [
351
+ {
352
+ name: 'notes_list',
353
+ description: 'Get all notes',
354
+ inputSchema: { type: 'object', properties: {} },
355
+ execute: async () => {
356
+ log('🔧 notes_list called');
357
+ return {
358
+ content: [{
359
+ type: 'text',
360
+ text: notes.length ? notes.map((n, i) => `${i + 1}. ${n}`).join('\n') : 'No notes yet'
361
+ }]
362
+ };
363
+ }
364
+ },
365
+ {
366
+ name: 'notes_add',
367
+ description: 'Add a new note',
368
+ inputSchema: {
369
+ type: 'object',
370
+ properties: {
371
+ text: { type: 'string', description: 'The note text' }
372
+ },
373
+ required: ['text']
374
+ },
375
+ execute: async ({ text }) => {
376
+ log(`🔧 notes_add called: "${text}"`);
377
+ notes.push(text);
378
+ renderNotes();
379
+ return {
380
+ content: [{ type: 'text', text: `Added note: "${text}"` }]
381
+ };
382
+ }
383
+ },
384
+ {
385
+ name: 'notes_delete',
386
+ description: 'Delete a note by index (1-based)',
387
+ inputSchema: {
388
+ type: 'object',
389
+ properties: {
390
+ index: { type: 'number', description: 'Note index (1-based)' }
391
+ },
392
+ required: ['index']
393
+ },
394
+ execute: async ({ index }) => {
395
+ log(`🔧 notes_delete called: index ${index}`);
396
+ if (index < 1 || index > notes.length) {
397
+ return { content: [{ type: 'text', text: 'Invalid index' }], isError: true };
398
+ }
399
+ const deleted = notes.splice(index - 1, 1)[0];
400
+ renderNotes();
401
+ return {
402
+ content: [{ type: 'text', text: `Deleted: "${deleted}"` }]
403
+ };
404
+ }
405
+ },
406
+ {
407
+ name: 'notes_clear',
408
+ description: 'Delete all notes',
409
+ inputSchema: { type: 'object', properties: {} },
410
+ execute: async () => {
411
+ log('🔧 notes_clear called');
412
+ const count = notes.length;
413
+ notes.length = 0;
414
+ renderNotes();
415
+ return {
416
+ content: [{ type: 'text', text: `Cleared ${count} notes` }]
417
+ };
418
+ }
419
+ }
420
+ ]
421
+ });
422
+
423
+ log('✅ Web Model Context API initialized');
424
+ log('📋 Tools: notes_list, notes_add, notes_delete, notes_clear');
425
+ } else {
426
+ log('❌ Web Model Context API not available');
427
+ }
428
+ </script>
429
+ </body>
430
+ </html>
431
+ ```
432
+
433
+ This example demonstrates:
434
+ - **Feature detection** using `'modelContext' in navigator`
435
+ - **Tool registration** via `navigator.modelContext.provideContext()`
436
+ - **Standard input schemas** following JSON Schema specification
437
+ - **Async execute functions** returning MCP-compatible responses
438
+ - **Real-time UI updates** when AI agents call tools
439
+
130
440
  ## ⚙️ Configuration
131
441
 
132
442
  The polyfill exposes `initializeWebModelContext(options?: WebModelContextInitOptions)` to let you control transport behaviour. When you import `@mcp-b/global` as a module it auto-initializes by default, but you can customise or defer initialization:
@@ -1011,6 +1321,43 @@ if ("modelContext" in navigator) {
1011
1321
 
1012
1322
  ## 🐛 Debugging
1013
1323
 
1324
+ ### Enable Debug Logging
1325
+
1326
+ The @mcp-b/global library includes a lightweight logging system that can be enabled in the browser console. By default, the console is kept clean (only errors and warnings are shown). You can enable detailed debug logging when troubleshooting:
1327
+
1328
+ ```javascript
1329
+ // Enable all debug logging
1330
+ localStorage.setItem('WEBMCP_DEBUG', '*');
1331
+
1332
+ // Enable specific namespaces
1333
+ localStorage.setItem('WEBMCP_DEBUG', 'WebModelContext');
1334
+ localStorage.setItem('WEBMCP_DEBUG', 'NativeAdapter,MCPBridge');
1335
+
1336
+ // Refresh the page to apply changes
1337
+ location.reload();
1338
+ ```
1339
+
1340
+ To disable debug logging:
1341
+
1342
+ ```javascript
1343
+ localStorage.removeItem('WEBMCP_DEBUG');
1344
+ location.reload();
1345
+ ```
1346
+
1347
+ **Available Namespaces:**
1348
+ - `WebModelContext` - Main polyfill implementation
1349
+ - `NativeAdapter` - Native Chromium API adapter
1350
+ - `MCPBridge` - MCP server and transport setup
1351
+ - `ModelContextTesting` - Testing API operations
1352
+
1353
+ **Log Levels:**
1354
+ - **Error** (always shown): Critical failures and exceptions
1355
+ - **Warn** (always shown): Compatibility warnings and potential issues
1356
+ - **Info** (debug mode only): Initialization and setup progress
1357
+ - **Debug** (debug mode only): Detailed operation traces
1358
+
1359
+ ### Access Internal Bridge
1360
+
1014
1361
  In development mode, access the internal bridge:
1015
1362
 
1016
1363
  ```javascript
@@ -1248,6 +1595,49 @@ test('todo tool creates correct response', async () => {
1248
1595
 
1249
1596
  The polyfill automatically detects and defers to the native implementation when available, ensuring forward compatibility as browsers adopt this standard.
1250
1597
 
1598
+ ## Zod Version Compatibility
1599
+
1600
+ This package supports **Zod 3.25+** and **Zod 4.x**. Simply use the standard import:
1601
+
1602
+ ```typescript
1603
+ import { z } from 'zod';
1604
+
1605
+ window.navigator.modelContext.provideContext({
1606
+ tools: [{
1607
+ name: "my-tool",
1608
+ inputSchema: {
1609
+ name: z.string().describe('User name'),
1610
+ age: z.number().min(0)
1611
+ },
1612
+ async execute({ name, age }) {
1613
+ return { content: [{ type: "text", text: `Hello, ${name}!` }] };
1614
+ }
1615
+ }]
1616
+ });
1617
+ ```
1618
+
1619
+ ### JSON Schema Alternative
1620
+
1621
+ JSON Schema is also supported if you prefer not to use Zod:
1622
+
1623
+ ```javascript
1624
+ window.navigator.modelContext.provideContext({
1625
+ tools: [{
1626
+ name: "my-tool",
1627
+ inputSchema: {
1628
+ type: "object",
1629
+ properties: {
1630
+ name: { type: "string" }
1631
+ },
1632
+ required: ["name"]
1633
+ },
1634
+ async execute({ name }) {
1635
+ return { content: [{ type: "text", text: `Hello, ${name}!` }] };
1636
+ }
1637
+ }]
1638
+ });
1639
+ ```
1640
+
1251
1641
  ## 📦 What's Included
1252
1642
 
1253
1643
  - **Web Model Context API** - Standard `window.navigator.modelContext` interface
package/dist/index.d.ts CHANGED
@@ -1047,15 +1047,50 @@ declare function initializeWebModelContext(options?: WebModelContextInitOptions)
1047
1047
  */
1048
1048
  declare function cleanupWebModelContext(): void;
1049
1049
  //#endregion
1050
- //#region src/validation.d.ts
1050
+ //#region src/logger.d.ts
1051
+ /**
1052
+ * @license
1053
+ * Copyright 2025 Google LLC
1054
+ * SPDX-License-Identifier: Apache-2.0
1055
+ */
1056
+ /**
1057
+ * Logger interface with standard log levels
1058
+ *
1059
+ * All methods accept the same argument patterns as their console.* equivalents,
1060
+ * supporting format strings, object inspection, and multiple arguments.
1061
+ */
1062
+ interface Logger {
1063
+ /** Debug-level logging (disabled by default, enable via WEBMCP_DEBUG) */
1064
+ debug(message?: unknown, ...optionalParams: unknown[]): void;
1065
+ /** Info-level logging (disabled by default, enable via WEBMCP_DEBUG) */
1066
+ info(message?: unknown, ...optionalParams: unknown[]): void;
1067
+ /** Warning-level logging (enabled by default, not gated by WEBMCP_DEBUG) */
1068
+ warn(message?: unknown, ...optionalParams: unknown[]): void;
1069
+ /** Error-level logging (enabled by default, not gated by WEBMCP_DEBUG) */
1070
+ error(message?: unknown, ...optionalParams: unknown[]): void;
1071
+ }
1051
1072
  /**
1052
- * Convert Zod schema object to JSON Schema
1053
- * Uses zod-to-json-schema package for comprehensive conversion
1073
+ * Create a namespaced logger
1054
1074
  *
1055
- * @param schema - Record of Zod type definitions (e.g., { name: z.string(), age: z.number() })
1056
- * @returns JSON Schema object compatible with MCP InputSchema
1075
+ * Uses .bind() to prepend namespace prefixes to console methods without manual
1076
+ * string concatenation. Debug enablement is determined at logger creation time
1077
+ * for performance - changes to localStorage after creation won't affect existing
1078
+ * loggers. Refresh the page to apply new WEBMCP_DEBUG settings.
1079
+ *
1080
+ * @param namespace - Namespace for the logger (e.g., 'WebModelContext', 'NativeAdapter')
1081
+ * @returns Logger instance with debug, info, warn, error methods
1082
+ *
1083
+ * @example
1084
+ * ```typescript
1085
+ * const logger = createLogger('WebModelContext');
1086
+ * logger.debug('Tool registered:', toolName); // Only shown if WEBMCP_DEBUG includes 'WebModelContext'
1087
+ * logger.error('Execution failed:', error); // Always enabled
1088
+ * ```
1057
1089
  */
1058
- declare function zodToJsonSchema(schema: Record<string, z.ZodTypeAny>): InputSchema;
1090
+ declare function createLogger(namespace: string): Logger;
1091
+ //#endregion
1092
+ //#region src/validation.d.ts
1093
+ declare function zodToJsonSchema(schema: ZodSchemaObject): InputSchema;
1059
1094
  //#endregion
1060
- export { type CallToolResult, type CreateMessageRequest, type CreateMessageResult, type ElicitRequest, type ElicitResult, ElicitationFormParams, ElicitationParams, ElicitationResult, ElicitationUrlParams, InputSchema, InternalModelContext, InterruptionMetadata, MCPBridge, ModelContext, ModelContextInput, ModelContextTesting, NavigationMetadata, type Prompt, PromptDescriptor, type PromptMessage, RegistrationHandle, type Resource, type ResourceContents, ResourceDescriptor, type ResourceTemplate, ResourceTemplateInfo, SamplingRequestParams, SamplingResult, type ToolAnnotations, ToolCallEvent, ToolDescriptor, ToolInfo, ToolListItem, ToolResponse, TransportConfiguration, ValidatedPromptDescriptor, ValidatedResourceDescriptor, ValidatedToolDescriptor, WebModelContextInitOptions, ZodSchemaObject, cleanupWebModelContext, initializeWebModelContext, zodToJsonSchema };
1095
+ export { type CallToolResult, type CreateMessageRequest, type CreateMessageResult, type ElicitRequest, type ElicitResult, ElicitationFormParams, ElicitationParams, ElicitationResult, ElicitationUrlParams, InputSchema, InternalModelContext, InterruptionMetadata, MCPBridge, ModelContext, ModelContextInput, ModelContextTesting, NavigationMetadata, type Prompt, PromptDescriptor, type PromptMessage, RegistrationHandle, type Resource, type ResourceContents, ResourceDescriptor, type ResourceTemplate, ResourceTemplateInfo, SamplingRequestParams, SamplingResult, type ToolAnnotations, ToolCallEvent, ToolDescriptor, ToolInfo, ToolListItem, ToolResponse, TransportConfiguration, ValidatedPromptDescriptor, ValidatedResourceDescriptor, ValidatedToolDescriptor, WebModelContextInitOptions, ZodSchemaObject, cleanupWebModelContext, createLogger, initializeWebModelContext, zodToJsonSchema };
1061
1096
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/global.ts","../src/validation.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/global.ts","../src/logger.ts","../src/validation.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAkoBA;;;;;;;;;;;;;;AAoCA;;;;;AAOmB,UA7jBF,WAAA,CA6jBE;EAAO;EAWT,IAAA,EAAA,MAAA;EAMF;EAEE,UAAA,CAAA,EA5kBF,MA4kBE,CAAA,MAAA,EAAA;IAED;IAAe,IAAA,EAAA,MAAA;IAOd;IAeA,WAAA,CAAA,EAAA,MAAkB;IAalB;IAOT,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EALI,CAAA,CAAA;EAkBI;EASH,QAAA,CAAA,EAAA,MAAA,EAAA;EAAM;EAOF,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,OAAc;AAc/B;AA+BA;AAeA;AAKA;AAeA;;;;;AAuBA;;;;;AAqBA;;;AAgB2C,KAhwB/B,eAAA,GAAkB,MAgwBa,CAAA,MAAA,EAhwBE,CAAA,CAAE,UAgwBJ,CAAA;;;;;;AA2FnB,KAt0BZ,YAAA,GAAe,cAs0BH;;;;;;;;;;;;;;AA+DxB;;;;;;;;;;;AAyBA;;;;;;;;;;;;AA2BA;AAqBA;;;;;;;;;AAoEC;;;;;;;;;;;UAn9BgB,kBAAA;EC5LG;;;;EAWqC,YAAA,EAAA,IAAA;EA8mEzC;AAsHhB;;;;;;;;;ACxrEA;;;;ACEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UHqMiB,oBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAmDA,sBAAA;;;;;iBAKA;;;;;;cAOH,QAAQ;;;;;;iBAOL,QAAQ;;;;;;;;;;;;;;;UAgBR,0BAAA;;;;cAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAsDG,oCACM,kBAAkB,6CACjB,kBAAkB;;;;;;;;;;;;;;;;eAmB3B,cAAc;;;;;;iBAOZ,cAAc;;;;gBAKf;;;;;;;kBASN,qBAAqB,wBACvB,0BACA,CAAA,CAAE,MAAM,CAAA,CAAE,UAAU,mBACrB,QAAQ;;;;;;;;UASE,uBAAA;;;eAGF;iBACE;gBACD;kBACE,4BAA4B,QAAQ;;kBAGpC,CAAA,CAAE;;oBAEA,CAAA,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwCL,kBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;cA8BH,cAAc,2BAA2B;cAAoB;;;;;;;UAO1D,2BAAA;;;;;cAKH,cAAc,2BAA2B;cAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAoD1D,qCAAqC,kBAAkB;;;;;;;;;;;;;;;eAiBzD,cAAc;;;;;;;cASnB,oBAAoB,wBACtB,0BACA,CAAA,CAAE,MAAM,CAAA,CAAE,UAAU,kBACrB;cAAoB;;;;;;;UAOV,yBAAA;;;cAGH;cACA,4BAA4B;cAAoB;;;iBAG7C,CAAA,CAAE;;;;;;UAWF,YAAA;;;;;;eAMF;;iBAEE;;gBAED;;;;;;UAOC,oBAAA;;;;;;;;;;;;;;UAeA,kBAAA;;;;;;;;UAaA,qBAAA;;YAEL;;;;;;;;;QAKJ;;;;;;;;;;;;;;;;;;;YAaQ;;;;;;;;;;aASH;;;;;;UAOI,cAAA;;;;;;;;;;;;;;;;;;;;UAcA,qBAAA;;;;;;;;gBAQD;;;;;;;;;aAWD;;;;;;;;;;UAYE,oBAAA;;;;;;;;;;;;;;KAeL,iBAAA,GAAoB,wBAAwB;;;;UAKvC,iBAAA;;;;YAIL;;;;;;UAWK,iBAAA;;;;;UAKP;;;;;cAMI;;;;;YAMF;;;;;UAMK,aAAA,SAAsB;;;;;;;;aAS1B;;;;0BAKa;;;;;;UAOT,YAAA;;;;;;0BAMS;;;;;;oCAUD,kBAAkB,6CACjB,kBAAkB,6BAClC,eAAe,cAAc,iBAAiB;;;;;;;;;;eAYzC;;;;;6BAQc,qBAAqB;;;;;;;;;mBAW/B;;;;;2BAMQ;;;;;;qCASU,kBAAkB,+BAC3C,iBAAiB,eACxB;;;;;;;;;iBAWY;;;;;;;;;;;;;;;;;;;;;;;;wBA8BO,wBAAwB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;sBA4BlC,oBAAoB,QAAQ;;;;uDAO5B,yBAAyB,mCACvB;;;;0DAQF,yBAAyB,mCACvB;;;;uBAMD;;;;;;;UAYN,oBAAA,SAA6B;;;;;sCAKR,0BAA0B,QAAQ;;;;;6BAM3C;cAAoB;;;;;;iCAMhB,0BAA0B;cAAoB;;;;;;;;UAQ9D,SAAA;;aAEJ;;iBAEI;;SAER,YAAY;;aAER,YAAY;;WAEd,YAAY;;gBAEP;;wBAEQ;;;;;;;;UAaP,QAAA;;;;;;;;;;;;;;;;;;;;UAqBA,mBAAA;;;;;;;wDAOuC;;;;;eAMzC;;;;;;;;;;kBAYG;;eAEH;;;;;;;;;;;;;kDAemC;;;;;;;;;;;;;;;;wBAmB1B,WAAW;;;;;;;;;;;;;kBAejB;;;;;;;;;;;;0BAaQ;;;;;;kBAOR;;;;;;;;+BChqCa;;ADwD/B;AAqCA;AAqBA;AA+DA;AAkEA;AAmDA;;;;;;;AAmCA;AA0DA;;;;;;;;AA4B+B,iBC+sDf,yBAAA,CD/sDe,OAAA,CAAA,EC+sDqB,0BD/sDrB,CAAA,EAAA,IAAA;;;;;;;;;;;AA0B/B;;AAIiB,iBCuyDD,sBAAA,CAAA,CDvyDC,EAAA,IAAA;;;;;;;;AArYjB;AAqCA;AAqBA;AA+DA;AAkEA;AAmDA;AAKiB,UE5RA,MAAA,CF4RA;EAOK;EAAR,KAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,GAAA,cAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA;EAOW;EAAR,IAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,GAAA,cAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA;EAAO;EAgBP,IAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,GAAA,cAIH,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA;EAsDG;EACM,KAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,GAAA,cAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA;;;;;;;;;;;;;;;;;;AAqDvB;;AAIiB,iBEjZD,YAAA,CFiZC,SAAA,EAAA,MAAA,CAAA,EEjZgC,MFiZhC;;;iBG/YD,eAAA,SAAwB,kBAAkB"}