@roxybrowser/openapi 1.0.2 → 1.0.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -57
- package/lib/browser/browser-creator.d.ts +1 -5
- package/lib/browser/browser-creator.d.ts.map +1 -1
- package/lib/browser/browser-creator.js +0 -24
- package/lib/browser/browser-creator.js.map +1 -1
- package/lib/index.js +887 -145
- package/lib/index.js.map +1 -1
- package/lib/roxy-client.d.ts +31 -5
- package/lib/roxy-client.d.ts.map +1 -1
- package/lib/roxy-client.js +208 -64
- package/lib/roxy-client.js.map +1 -1
- package/lib/types.d.ts +145 -29
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +311 -2
- package/lib/types.js.map +1 -1
- package/lib/utils/error-analyzer.d.ts +84 -0
- package/lib/utils/error-analyzer.d.ts.map +1 -0
- package/lib/utils/error-analyzer.js +380 -0
- package/lib/utils/error-analyzer.js.map +1 -0
- package/package.json +4 -3
- package/lib/browser/template-manager.d.ts +0 -48
- package/lib/browser/template-manager.d.ts.map +0 -1
- package/lib/browser/template-manager.js +0 -324
- package/lib/browser/template-manager.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,9 +9,8 @@ A Model Context Protocol (MCP) server for [RoxyBrowser](https://www.roxybrowser.
|
|
|
9
9
|
- 🤖 **AI-Friendly**: Seamlessly integrates with AI assistants through MCP
|
|
10
10
|
- 🎯 **Playwright Ready**: Works perfectly with [@playwright/mcp](https://github.com/microsoft/playwright-mcp)
|
|
11
11
|
- 📊 **Workspace Support**: Manage browsers across different workspaces and projects
|
|
12
|
-
- 🛠️ **Browser Creation**: Create browsers with layered complexity (Simple, Standard, Advanced
|
|
12
|
+
- 🛠️ **Browser Creation**: Create browsers with layered complexity (Simple, Standard, Advanced)
|
|
13
13
|
- 🌐 **Proxy Management**: Built-in proxy validation, testing, and configuration tools
|
|
14
|
-
- 📋 **Template System**: Predefined configurations for Gmail, Facebook, E-commerce, and more
|
|
15
14
|
- 🔧 **Advanced Configuration**: Full control over fingerprints, proxies, and browser settings
|
|
16
15
|
|
|
17
16
|
## Quick Start
|
|
@@ -195,34 +194,9 @@ Create a browser with complete configuration control - for expert users.
|
|
|
195
194
|
AI: "Create an advanced browser with custom fingerprint settings and multiple platform accounts"
|
|
196
195
|
```
|
|
197
196
|
|
|
198
|
-
##### 8. `roxy_create_browser_from_template` ⭐
|
|
199
|
-
Create browsers using predefined templates - ideal for batch creation.
|
|
200
|
-
|
|
201
|
-
**Parameters:**
|
|
202
|
-
- `workspaceId` (required): Workspace ID
|
|
203
|
-
- `templateName` (required): gmail, facebook, ecommerce, social_media, general, or custom
|
|
204
|
-
- `count` (optional): Number of browsers to create (default: 1, max: 50)
|
|
205
|
-
- `namePrefix` (optional): Prefix for browser names
|
|
206
|
-
- `projectId` (optional): Project ID
|
|
207
|
-
- `proxyList` (optional): List of proxy configurations
|
|
208
|
-
- `customConfig` (optional): Override template defaults
|
|
209
|
-
|
|
210
|
-
**Example:**
|
|
211
|
-
```
|
|
212
|
-
AI: "Create 10 Gmail browsers with different proxies using the gmail template"
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
##### 9. `roxy_list_browser_templates`
|
|
216
|
-
List available browser templates with descriptions.
|
|
217
|
-
|
|
218
|
-
**Example:**
|
|
219
|
-
```
|
|
220
|
-
AI: "What browser templates are available?"
|
|
221
|
-
```
|
|
222
|
-
|
|
223
197
|
#### Proxy Management Tools 🆕
|
|
224
198
|
|
|
225
|
-
#####
|
|
199
|
+
##### 8. `roxy_validate_proxy_config`
|
|
226
200
|
Validate proxy configuration before using it.
|
|
227
201
|
|
|
228
202
|
**Parameters:**
|
|
@@ -235,58 +209,42 @@ AI: "Validate this proxy configuration before creating browsers"
|
|
|
235
209
|
|
|
236
210
|
## Complete Workflow Examples
|
|
237
211
|
|
|
238
|
-
### Example 1: Quick
|
|
212
|
+
### Example 1: Quick Browser Automation Setup
|
|
239
213
|
|
|
240
214
|
```
|
|
241
|
-
1. AI: "Create
|
|
242
|
-
→ Uses
|
|
243
|
-
→ Returns browser
|
|
215
|
+
1. AI: "Create a simple browser in workspace 1 with name 'Test Browser'"
|
|
216
|
+
→ Uses roxy_create_browser_simple
|
|
217
|
+
→ Returns browser ID ready for use
|
|
244
218
|
|
|
245
|
-
2. AI: "Open
|
|
246
|
-
→ Uses roxy_open_browsers with the returned
|
|
247
|
-
→ Returns CDP WebSocket
|
|
219
|
+
2. AI: "Open the browser I just created"
|
|
220
|
+
→ Uses roxy_open_browsers with the returned ID
|
|
221
|
+
→ Returns CDP WebSocket URL like: ws://127.0.0.1:52314/devtools/browser/xxx
|
|
248
222
|
|
|
249
|
-
3. AI: "Connect to the
|
|
223
|
+
3. AI: "Connect to the browser and automate tasks"
|
|
250
224
|
→ Uses playwright-mcp with --cdp-endpoint flag
|
|
251
225
|
→ npx @playwright/mcp@latest --cdp-endpoint "ws://127.0.0.1:52314/devtools/browser/xxx"
|
|
252
226
|
|
|
253
227
|
4. AI: "Navigate to gmail.com, login, and send emails"
|
|
254
228
|
→ Uses playwright-mcp tools: browser_navigate, browser_type, browser_click, etc.
|
|
255
229
|
|
|
256
|
-
5. AI: "Close
|
|
230
|
+
5. AI: "Close the browser when done"
|
|
257
231
|
→ Uses roxy_close_browsers
|
|
258
232
|
```
|
|
259
233
|
|
|
260
|
-
### Example 2:
|
|
234
|
+
### Example 2: Advanced Browser with Proxy Setup
|
|
261
235
|
|
|
262
236
|
```
|
|
263
237
|
1. AI: "Validate my proxy configuration before creating browsers"
|
|
264
238
|
→ Uses roxy_validate_proxy_config
|
|
265
239
|
→ Confirms proxy settings are correct
|
|
266
240
|
|
|
267
|
-
2. AI: "Create a standard
|
|
241
|
+
2. AI: "Create a standard browser with SOCKS5 proxy and 1920x1080 resolution in workspace 2"
|
|
268
242
|
→ Uses roxy_create_browser_standard with proxy configuration
|
|
269
243
|
→ Returns configured browser ID
|
|
270
244
|
|
|
271
|
-
3. AI: "Open the
|
|
245
|
+
3. AI: "Open the browser and start automation"
|
|
272
246
|
→ Uses roxy_open_browsers → playwright-mcp integration
|
|
273
|
-
→ Begin automated
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### Example 3: Batch Social Media Management
|
|
277
|
-
|
|
278
|
-
```
|
|
279
|
-
1. AI: "List available browser templates"
|
|
280
|
-
→ Uses roxy_list_browser_templates
|
|
281
|
-
→ Shows social_media, facebook, etc.
|
|
282
|
-
|
|
283
|
-
2. AI: "Create 20 social media browsers with different proxies"
|
|
284
|
-
→ Uses roxy_create_browser_from_template with proxy list
|
|
285
|
-
→ Batch creates browsers with distributed proxies
|
|
286
|
-
|
|
287
|
-
3. AI: "Open first 5 browsers for Instagram automation"
|
|
288
|
-
→ Uses roxy_open_browsers with selected IDs
|
|
289
|
-
→ Ready for social media automation
|
|
247
|
+
→ Begin automated tasks
|
|
290
248
|
```
|
|
291
249
|
|
|
292
250
|
## Integration with Playwright MCP
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Handles browser creation with different complexity levels and configuration building
|
|
5
5
|
*/
|
|
6
|
-
import { BrowserCreateConfig, BrowserCreateSimpleParams, BrowserCreateStandardParams, BrowserCreateAdvancedParams,
|
|
6
|
+
import { BrowserCreateConfig, BrowserCreateSimpleParams, BrowserCreateStandardParams, BrowserCreateAdvancedParams, ProxyInfo } from '../types.js';
|
|
7
7
|
export declare class BrowserCreator {
|
|
8
8
|
/**
|
|
9
9
|
* Convert simple parameters to full browser configuration
|
|
@@ -40,10 +40,6 @@ export declare class BrowserCreator {
|
|
|
40
40
|
* Apply smart defaults to configuration
|
|
41
41
|
*/
|
|
42
42
|
static applyDefaults(config: BrowserCreateConfig): BrowserCreateConfig;
|
|
43
|
-
/**
|
|
44
|
-
* Create multiple browser configuration objects from template parameters
|
|
45
|
-
*/
|
|
46
|
-
static buildConfigsFromTemplate(params: BrowserCreateTemplateParams, templateConfig: Partial<BrowserCreateConfig>): BrowserCreateConfig[];
|
|
47
43
|
/**
|
|
48
44
|
* Batch validate multiple configurations
|
|
49
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-creator.d.ts","sourceRoot":"","sources":["../../src/browser/browser-creator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,
|
|
1
|
+
{"version":3,"file":"browser-creator.d.ts","sourceRoot":"","sources":["../../src/browser/browser-creator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAG3B,SAAS,EAMV,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,yBAAyB,GAAG,mBAAmB;IA2BhF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB;IAsCpF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB;IAIpF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAanE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAC3B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,SAAS,EAAE,SAAS,EAAE,GACrB,mBAAmB,EAAE;IAWxB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA+BxF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAqBjC;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB;IAkFtE;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG;QACtD,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpD;CAeF"}
|
|
@@ -242,30 +242,6 @@ export class BrowserCreator {
|
|
|
242
242
|
}
|
|
243
243
|
return result;
|
|
244
244
|
}
|
|
245
|
-
/**
|
|
246
|
-
* Create multiple browser configuration objects from template parameters
|
|
247
|
-
*/
|
|
248
|
-
static buildConfigsFromTemplate(params, templateConfig) {
|
|
249
|
-
const count = params.count || 1;
|
|
250
|
-
const configs = [];
|
|
251
|
-
for (let i = 0; i < count; i++) {
|
|
252
|
-
const baseConfig = {
|
|
253
|
-
workspaceId: params.workspaceId,
|
|
254
|
-
projectId: params.projectId,
|
|
255
|
-
windowName: this.generateBrowserName(params.namePrefix, i),
|
|
256
|
-
...templateConfig,
|
|
257
|
-
...params.customConfig,
|
|
258
|
-
};
|
|
259
|
-
// Apply defaults and validate
|
|
260
|
-
const config = this.applyDefaults(baseConfig);
|
|
261
|
-
configs.push(config);
|
|
262
|
-
}
|
|
263
|
-
// Assign proxies if provided
|
|
264
|
-
if (params.proxyList && params.proxyList.length > 0) {
|
|
265
|
-
return this.assignProxiesToConfigs(configs, params.proxyList);
|
|
266
|
-
}
|
|
267
|
-
return configs;
|
|
268
|
-
}
|
|
269
245
|
/**
|
|
270
246
|
* Batch validate multiple configurations
|
|
271
247
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-creator.js","sourceRoot":"","sources":["../../src/browser/browser-creator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"browser-creator.js","sourceRoot":"","sources":["../../src/browser/browser-creator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAiC;QACxD,MAAM,MAAM,GAAwB;YAClC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;QAEF,4BAA4B;QAC5B,IAAI,MAAM,CAAC,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC7D,IAAI,MAAM,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC1D,IAAI,MAAM,CAAC,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAEnE,+CAA+C;QAC/C,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,SAAS,GAAG;gBACjB,WAAW,EAAE,QAAQ;gBACrB,aAAa,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;gBACzC,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;gBACpC,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,MAAM,EAAE,MAAM;aACf,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAmC;QAC5D,MAAM,MAAM,GAAwB;YAClC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;QAEF,0BAA0B;QAC1B,IAAI,MAAM,CAAC,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC7D,IAAI,MAAM,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC1D,IAAI,MAAM,CAAC,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACnE,IAAI,MAAM,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC1D,IAAI,MAAM,CAAC,WAAW;YAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAChE,IAAI,MAAM,CAAC,cAAc;YAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAEzE,0BAA0B;QAC1B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,CAAC;QAED,sDAAsD;QACtD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChF,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;YAEvB,IAAI,MAAM,CAAC,SAAS;gBAAE,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACrE,IAAI,MAAM,CAAC,UAAU;gBAAE,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACxE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC3C,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC/C,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;gBACrC,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAmC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAe,EAAE,KAAc;QACxD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,IAAI,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;QAC/C,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,OAAO,GAAG,MAAM,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,WAAW,SAAS,IAAI,YAAY,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAC3B,OAA8B,EAC9B,SAAsB;QAEtB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,MAAM;YACT,SAAS,EAAE,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,+BAA+B;SAChF,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAA2B;QAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACzC,CAAC;QAED,mBAAmB;QACnB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;YAC/B,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;gBAC7E,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzD,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,SAAS,aAAa,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,kBAAkB,CAAC,EAAa;QAC7C,MAAM,YAAY,GAAgC;YAChD,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;YAC/B,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;gBAC5D,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;gBAChE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;gBACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;aAC/C;YACD,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;YAC5C,GAAG,EAAE;gBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;gBACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;gBACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;aACvE;YACD,KAAK,EAAE,EAAE,EAAE,oDAAoD;SAChE,CAAC;QAEF,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAA2B;QAC9C,MAAM,aAAa,GAAiC;YAClD,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,KAAoB;YACjC,YAAY,EAAE,QAAQ;YAEtB,+BAA+B;YAC/B,UAAU,EAAE;gBACV,gBAAgB,EAAE,IAAI;gBACtB,uBAAuB,EAAE,IAAI;gBAC7B,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,CAAC;gBACX,gBAAgB,EAAE,IAAI;gBACtB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,MAAM;gBAClB,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,KAAK;gBACpB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,KAAK;gBACrB,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,KAAK;gBACpB,gBAAgB,EAAE,KAAK;gBACvB,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,KAAK;gBAClB,iBAAiB,EAAE,KAAK;gBACxB,iBAAiB,EAAE,KAAK;gBACxB,kBAAkB,EAAE,IAAI;gBACxB,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,KAAK;gBACvB,aAAa,EAAE,CAAC;gBAChB,cAAc,EAAE,KAAK;gBACrB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,IAAI;gBAChB,gBAAgB,EAAE,IAAI;gBACtB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,KAAK;gBACjB,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,IAAI;gBACZ,iBAAiB,EAAE,KAAK;aACzB;YAED,yBAAyB;YACzB,SAAS,EAAE;gBACT,WAAW,EAAE,QAAQ;gBACrB,aAAa,EAAE,SAAS;gBACxB,MAAM,EAAE,MAAM;aACf;SACF,CAAC;QAEF,yCAAyC;QACzC,MAAM,MAAM,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;QAE/C,8CAA8C;QAC9C,IAAI,aAAa,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAClD,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,aAAa,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5E,CAAC;QAED,IAAI,aAAa,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAChD,MAAM,CAAC,SAAS,GAAG,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACzE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAA8B;QAInD,MAAM,SAAS,GAA+C,EAAE,CAAC;QAEjE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC;YAC7B,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;CACF"}
|