@hotfusion/modeller 0.0.1 → 0.0.3
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 +71 -0
- package/dist/connector.js +2 -2
- package/dist/connector.js.map +1 -1
- package/dist/{modeller.js → core.js} +4 -4
- package/dist/core.js.map +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/model.js +3 -4
- package/dist/model.js.map +1 -1
- package/dist/types/{modeller.d.ts → core.d.ts} +2 -2
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model.d.ts +3 -2
- package/dist/types/model.d.ts.map +1 -1
- package/dist/utils/_secret.key +1 -1
- package/docs/CORE.md +191 -0
- package/docs/ERRORS.md +90 -0
- package/docs/MODEL.md +296 -0
- package/docs/PATTERNS.md +182 -0
- package/docs/SERVER.md +88 -0
- package/docs/UTILITIES.md +111 -0
- package/package.json +6 -2
- package/dist/modeller.js.map +0 -1
- package/dist/types/modeller.d.ts.map +0 -1
package/docs/PATTERNS.md
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Common Patterns
|
|
2
|
+
|
|
3
|
+
Recipes that show the [Core → Model → Server](../README.md) chain in action. Each pattern is small, self-contained, and reflects how the framework is meant to be composed.
|
|
4
|
+
|
|
5
|
+
> [← Back to README](../README.md)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Publish on update
|
|
10
|
+
|
|
11
|
+
Notify every client subscribed to a slice of a model whenever a document in that slice changes. The `after:update` hook is the natural seam.
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
users.hook({
|
|
15
|
+
id: 'broadcast',
|
|
16
|
+
on: 'after:update',
|
|
17
|
+
callback: ({ key, data }) => {
|
|
18
|
+
users.subscription({ _id: key._id }).publish({ type: 'updated', data });
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The [Server layer](./SERVER.md) wires the subscription into a Socket.IO room, so every browser client subscribed to `{ _id }` receives the payload automatically.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## FK validation across models
|
|
28
|
+
|
|
29
|
+
Use the async `model` keyword to require that a field references an existing document in another model.
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
const orders = new Model('orders', {
|
|
33
|
+
type: 'object',
|
|
34
|
+
properties: {
|
|
35
|
+
userId: { type: 'string', model: 'users.email' }
|
|
36
|
+
}
|
|
37
|
+
}, { schemes: [users.getSchema()] });
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`Validator` rejects an `insert` whose `userId` doesn't exist in the `users` model. See [Validator](./CORE.md#validator).
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Composing a system root via extensions
|
|
45
|
+
|
|
46
|
+
`extensions` mounts sub-models as named properties on the parent — addressable as `parent.childId.method(...)`.
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
const ssh = new Model('ssh', sshSchema);
|
|
50
|
+
const docker = new Model('docker', dockerSchema);
|
|
51
|
+
const firewall = new Model('firewall', firewallSchema);
|
|
52
|
+
|
|
53
|
+
const system = new Model('system', systemSchema, {
|
|
54
|
+
extensions: [ssh, docker, firewall]
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
await system.ssh.insert({ host: '...', port: 22, username: 'root' });
|
|
58
|
+
await system.firewall.list();
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
This pattern is how Modeller composes namespaces. Each extension keeps its own hooks, workers, methods, events, and schema — they aren't merged, just mounted.
|
|
62
|
+
|
|
63
|
+
See [Extensions](./MODEL.md#extensions).
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Background sync worker
|
|
68
|
+
|
|
69
|
+
Reconcile in-memory state with an external source on an interval.
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
firewall.worker({
|
|
73
|
+
id : 'sync-rules',
|
|
74
|
+
interval : 30_000,
|
|
75
|
+
handler : async (model) => {
|
|
76
|
+
const live = await readLiveUFW();
|
|
77
|
+
for (const rule of live) {
|
|
78
|
+
const existing = await model.get({ id: rule.id });
|
|
79
|
+
if (!existing) await model.insert(rule);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
firewall.start('sync-rules');
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Errors inside the handler are logged but never crash the interval. See [Workers](./MODEL.md#workers).
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Quota / authorization in `before:insert`
|
|
92
|
+
|
|
93
|
+
Throw from a `before:` hook to abort an operation.
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
users.hook({
|
|
97
|
+
id: 'check-quota',
|
|
98
|
+
on: 'before:insert',
|
|
99
|
+
callback: async ({ data }) => {
|
|
100
|
+
if (await overQuota(data.tenantId)) {
|
|
101
|
+
throw { code: 'QUOTA_EXCEEDED' };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The thrown object propagates back to the caller of `insert()`. See [Errors](./ERRORS.md).
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Schedule a side effect after insert
|
|
112
|
+
|
|
113
|
+
Send a welcome email five seconds after a user is created — without blocking the insert.
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
users.hook({
|
|
117
|
+
id : 'welcome-email',
|
|
118
|
+
on : 'after:insert',
|
|
119
|
+
schedule : 5_000,
|
|
120
|
+
callback : ({ data }) => mailer.send(data.email, 'welcome')
|
|
121
|
+
});
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
`schedule` makes the hook fire-and-forget via `setTimeout`. Errors from scheduled hooks are logged but don't propagate.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Persist with an adapter, hydrate on boot
|
|
129
|
+
|
|
130
|
+
Wire an `Adapter` so writes are durable, then `pull()` once at startup.
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
class FileAdapter extends Adapter {
|
|
134
|
+
async sync(id, doc) { await fs.writeFile(`./data/${id}.json`, JSON.stringify(doc)); }
|
|
135
|
+
async pull() { return JSON.parse(await fs.readFile('./data/users.json', 'utf8')); }
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const users = new Model('users', schema, { adapter: FileAdapter });
|
|
139
|
+
await users.pull(); // hydrate before serving traffic
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
See [Adapter](./CORE.md#adapter).
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Method as RPC, event as fan-out
|
|
147
|
+
|
|
148
|
+
Two different shapes for "do something":
|
|
149
|
+
|
|
150
|
+
- **Method** — one caller, one return value. Use for actions like `resetPassword`, `regenerateApiKey`.
|
|
151
|
+
- **Event** — one or many callers via a subscription, validated args, multi-subscriber fan-out. Use when the action should also notify watchers.
|
|
152
|
+
|
|
153
|
+
```ts
|
|
154
|
+
// method — RPC
|
|
155
|
+
users.method({ id: 'resetPassword', handler: async (...) => { /* ... */ } });
|
|
156
|
+
|
|
157
|
+
// event — broadcasts via subscription
|
|
158
|
+
users.event({ id: 'roleChanged', schema, handler: async (...) => { /* ... */ } });
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
If in doubt, start with a method. Promote to an event only when more than one consumer needs to know it happened.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Listening in-process vs over the wire
|
|
166
|
+
|
|
167
|
+
Two emitters live on every model. Use the right one for the job:
|
|
168
|
+
|
|
169
|
+
- **`model.on('insert' | 'update' | 'delete' | 'log', ...)`** — in-process, no query scoping. Use for audit logs, metrics, internal indexers.
|
|
170
|
+
- **`model.subscription(query).on('publish', ...)`** — query-scoped fan-out, designed to be bridged to clients via the [Server layer](./SERVER.md).
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
// in-process: every write
|
|
174
|
+
users.on('update', ({ key, data }) => metrics.increment('users.updated'));
|
|
175
|
+
|
|
176
|
+
// per-query: clients listening for admin changes
|
|
177
|
+
users.subscription({ role: 'admin' }).on('publish', payload => doSomething(payload));
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
> **Related:** [Model →](./MODEL.md) · [Errors →](./ERRORS.md)
|
package/docs/SERVER.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Server Layer
|
|
2
|
+
|
|
3
|
+
`Server` is a thin transport that exposes models over HTTP and WebSocket. The package abstracts the underlying Koa + Socket.IO + OIDC + busboy machinery — you don't interact with it directly.
|
|
4
|
+
|
|
5
|
+
> [← Back to README](../README.md)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## The mental model
|
|
10
|
+
|
|
11
|
+
- **Models in, HTTP + WS out.** Methods, uploads, streams, and events become endpoints.
|
|
12
|
+
- **Subscriptions become rooms.** `subscription.publish(payload)` reaches every connected client subscribed to that query.
|
|
13
|
+
- **A `/@metadata` endpoint** advertises every model, scope, operation, and event so clients can build typed proxies at runtime.
|
|
14
|
+
- **Auth is OIDC + JWT.** Routes can opt in with `protected: true`.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Quick example
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
import { Server, Model } from '@hotfusion/modeller';
|
|
22
|
+
|
|
23
|
+
const server = new Server(3030, { domain: 'api', secret: process.env.SECRET });
|
|
24
|
+
|
|
25
|
+
server.route({
|
|
26
|
+
method : 'post',
|
|
27
|
+
path : '/system/ping',
|
|
28
|
+
callback : async (ctx) => ({ ok: true, ts: Date.now() })
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
server.start();
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Public methods
|
|
37
|
+
|
|
38
|
+
| Method | Purpose |
|
|
39
|
+
|-------------------------------------------------|-------------------------------------------------------|
|
|
40
|
+
| `route({ method, path, callback, protected? })` | Register a custom HTTP route. |
|
|
41
|
+
| `upload(path, handler)` | Multipart form-data endpoint, parsed into a Buffer. |
|
|
42
|
+
| `stream(handler)` | Single global handler for chunked socket uploads with resume. |
|
|
43
|
+
| `setOIDCProviders(path, providers)` | Wire OIDC providers under a base path. |
|
|
44
|
+
| `start()` | Bind to the port, mount routes, start Socket.IO. |
|
|
45
|
+
|
|
46
|
+
The full HTTP/WS surface is generated from your models — you don't need to wire each operation manually.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Server events
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
server.on('mounted', (s) => console.log('listening'));
|
|
54
|
+
server.on('connection', ({ socket }) => /* socket.io connection */);
|
|
55
|
+
server.on('request', ({ ctx, flags }) => /* every HTTP request */);
|
|
56
|
+
server.on('authenticated', ({ profile, provider, ctx, middleware }) => /* OIDC success */);
|
|
57
|
+
server.on('provider', ({ token, sid, session }) => /* token issued */);
|
|
58
|
+
server.on('uploaded', ({ file, buffer, resolve }) => resolve({ /* meta */ }));
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
| Event | When it fires |
|
|
62
|
+
|-----------------|------------------------------------------------------------|
|
|
63
|
+
| `mounted` | After `start()` has bound the port and mounted routes. |
|
|
64
|
+
| `connection` | A new Socket.IO client connects. |
|
|
65
|
+
| `request` | Every incoming HTTP request, with `protected` flag. |
|
|
66
|
+
| `authenticated` | OIDC profile successfully verified. |
|
|
67
|
+
| `provider` | A provider has issued a token; session is established. |
|
|
68
|
+
| `uploaded` | A streamed upload finished assembling. Resolve with meta. |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Auth
|
|
73
|
+
|
|
74
|
+
`{ protected: true }` on a route requires a valid `Authorization: Bearer <jwt>` header. The token is verified against the secret passed to the constructor (or auto-generated via `KeyGen.getSystemSecret()` if omitted).
|
|
75
|
+
|
|
76
|
+
`setOIDCProviders` wires multiple OIDC providers under a base path. The server handles the redirect, callback, token exchange, and session creation. Listen to `authenticated` and `provider` to react to login.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Scope
|
|
81
|
+
|
|
82
|
+
This package is meant to be used as an abstraction. The Server layer intentionally keeps a narrow surface so consumers don't need to know Koa, Socket.IO, OIDC client config, or busboy internals.
|
|
83
|
+
|
|
84
|
+
If you need to dig deeper — custom middleware, custom socket rooms, OIDC introspection — read `src/server.ts` directly. The public API documented here is the contract.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
> **Related:** [Utilities →](./UTILITIES.md) · [Errors →](./ERRORS.md)
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Utilities
|
|
2
|
+
|
|
3
|
+
Helpers exported from `@hotfusion/modeller` and from `src/utils`.
|
|
4
|
+
|
|
5
|
+
> [← Back to README](../README.md)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Public exports
|
|
10
|
+
|
|
11
|
+
| Export | Purpose |
|
|
12
|
+
|-----------|------------------------------------------------------------------------|
|
|
13
|
+
| `Bundler` | Rollup-based bundler for shipping client code (TS, JSON, LESS, terser).|
|
|
14
|
+
| `KeyGen` | System-wide secret generator. |
|
|
15
|
+
| `Adapter` | Base class for persistence — extend to plug in a backing store. |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## `Bundler`
|
|
20
|
+
|
|
21
|
+
A Rollup wrapper preconfigured for the Modeller stack. Bundles TypeScript, inlines JSON, compiles LESS via `rollup-plugin-postcss`, supports `@rollup/plugin-replace` for build-time substitutions, and minifies with terser.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
import { Bundler } from '@hotfusion/modeller';
|
|
25
|
+
|
|
26
|
+
const result = await Bundler.bundle({
|
|
27
|
+
entry : 'src/client/index.ts',
|
|
28
|
+
output : 'dist/client.js'
|
|
29
|
+
});
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Use it for shipping client bundles served by the [Server layer](./SERVER.md), or for any pre-built artifact you want to expose at runtime.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## `KeyGen`
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { KeyGen } from '@hotfusion/modeller';
|
|
40
|
+
|
|
41
|
+
const secret = KeyGen.getSystemSecret(); // → hex string
|
|
42
|
+
const bytes = KeyGen.getSystemSecret('uint8Array'); // → Uint8Array
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`getSystemSecret()` returns a stable 32-byte secret. On first call it generates one and caches it to disk (`_secret.key`); subsequent calls return the same value. Use it as the JWT signing key, the session secret, or wherever a stable per-installation secret is needed.
|
|
46
|
+
|
|
47
|
+
`KeyGen.generateSecret(false)` returns a fresh random secret each time — use this for one-off keys (per-document encryption, single-use tokens).
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## `Adapter`
|
|
52
|
+
|
|
53
|
+
Base class for persistence. See the full contract in the [Core layer doc](./CORE.md#adapter).
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { Adapter } from '@hotfusion/modeller';
|
|
57
|
+
|
|
58
|
+
class MyAdapter extends Adapter {
|
|
59
|
+
async sync(id, doc) { /* persist */ }
|
|
60
|
+
async pull() { /* return docs */ return []; }
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Internal utilities
|
|
67
|
+
|
|
68
|
+
These live in `src/utils` and aren't re-exported from the package root, but are stable and safe to import directly.
|
|
69
|
+
|
|
70
|
+
### `encrypt` / `decrypt`
|
|
71
|
+
|
|
72
|
+
AES-256-GCM wrappers using a `Uint8Array` secret.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { encrypt, decrypt } from '@hotfusion/modeller/dist/utils/encryption';
|
|
76
|
+
|
|
77
|
+
const hash = await encrypt('plaintext', secretBytes);
|
|
78
|
+
const plain = await decrypt(hash, secretBytes);
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Pair with `KeyGen.getSystemSecret('uint8Array')` for the secret.
|
|
82
|
+
|
|
83
|
+
### `signJWT` / `decodeJWT`
|
|
84
|
+
|
|
85
|
+
`jose`-backed JWT helpers.
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
import { signJWT } from '@hotfusion/modeller/dist/utils/sign-jwt';
|
|
89
|
+
import { decodeJWT } from '@hotfusion/modeller/dist/utils/decode-jwt';
|
|
90
|
+
|
|
91
|
+
const token = await signJWT(payload, secret, { exp: '1h' });
|
|
92
|
+
const claims = decodeJWT(token);
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### `request`
|
|
96
|
+
|
|
97
|
+
Minimal `fetch` wrapper used internally by the connector. Returns the parsed body, throws on non-2xx.
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
import { request } from '@hotfusion/modeller/dist/utils/request';
|
|
101
|
+
|
|
102
|
+
const data = await request('https://api.example.com/x', { method: 'GET' });
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### `ObjectCollection`
|
|
106
|
+
|
|
107
|
+
A typed `Map`-with-extras used internally for keyed collections. Useful when you need a `Map` plus filtering / iteration helpers.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
> **Related:** [Core →](./CORE.md) · [Errors →](./ERRORS.md)
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hotfusion/modeller",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
7
|
-
"files": [
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"docs",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
8
12
|
"exports": {
|
|
9
13
|
".": {
|
|
10
14
|
"types": "./dist/types/index.d.ts",
|
package/dist/modeller.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modeller.js","sourceRoot":"","sources":["../src/modeller.ts"],"names":[],"mappings":";;;;;;AACA,+BAA8B;AAC9B,iCAA4B;AAC5B,iDAA2C;AAC3C,6BAAwB;AACxB,8DAAqC;AACrC,4DAAmC;AAInC,MAAa,SAAU,SAAQ,4BAAY;IACxC,0BAA0B;IACzB,MAAM,CAAC,MAAM,GAAgD,EAAE,CAAA;IAC/D,OAAO,CAAc;IACrB,UAAU,CAAO;IACjB,IAAI,CAAa;IACjB,SAAS,CAAC,MAAe;QACrB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;gBACnD,IAAI,CAAC,GAAG,MAAM,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,EAAE,IAAI;oBAAE,OAAO,CAAC,CAAC,IAAI,CAAC;gBAC3B,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ;oBAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;QACP,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,YAAY,MAAe,EAAE,OAA8B;QACvD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,SAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QACvD,qBAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,oBAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC3G,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACjB,OAAO,EAAI,OAAO;YAClB,KAAK,EAAM,IAAI;YACf,MAAM,EAAK,KAAK;YAChB,QAAQ,EAAG,KAAK,EAAE,MAAU,EAAE,KAAS,EAAE,EAAE;gBAEvC,MAAM,KAAK,GAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAGxB,2CAA2C;gBAC3C,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;oBAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACtD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;wBACrB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAE9C,IAAI,CAAC,KAAK;4BAAE,OAAO,KAAK,CAAC;oBAC7B,CAAC;oBACD,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAED,yCAAyC;gBACzC,OAAO,IAAI,CAAC;gBAEZ;;;;;;;;;;;;;;;;;;;;;;mBAsBG;gBAEH,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QAEH,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE1F,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,GAAK,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAM,MAAM,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAS;QACpB,IAAI,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;QACrC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,CAAC,MAAM,CAAA;QACnB,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;;AA7FL,8BA8FC;AAED,MAAa,KAAK;IACN,GAAG,GAAyB,IAAI,GAAG,EAAE,CAAC;IACtC,OAAO,CAAsB;IAErC,YAAY,OAAiB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,GAAQ;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,EAAU;QACd,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,GAAG,CAAC,EAAU,IAAa,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,GAAG,CAAC,EAAU,IAAqB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7D,KAAK,CAAC,eAAe,CAAC,EAAU;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,KAAa,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;IAChF,IAAI,KAAc,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,UAA8C,EAAE;QACjD,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,QAA6B,EAAE;QAChC,MAAM,CAAC,GAAG,IAAI,aAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;QAChC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,QAA6B,EAAE;QACnC,MAAM,CAAC,GAAG,IAAI,aAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,GAAQ;QACvB,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;CACJ;AAnDD,sBAmDC;AAED,MAAa,OAAO;IAChB,YAAY,EAAU,IAAG,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,GAA0C,IAAkB,CAAC;IACpF,KAAK,CAAC,IAAI,KAAqB,OAAO,EAAE,CAAA,CAAC,CAAC;CAC7C;AAJD,0BAIC;AAED,MAAa,QAAQ;IACV,EAAE,CAAmB;IACpB,SAAS,CAAc;IACvB,OAAO,CAAc;IACrB,MAAM,CAAe;IACrB,KAAK,CAAc;IAEnB,IAAI,GAAyB,IAAI,GAAG,EAAE,CAAC;IACvC,OAAO,GAAwC,IAAI,GAAG,EAAE,CAAC;IACzD,OAAO,CAAmB;IAC1B,OAAO,CAAY;IAC3B,YAAY,EAAU,EAAE,MAAe,EAAE,OAAwB,EAAE,OAAmB;QAClF,IAAI,CAAC,EAAE,GAAU,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAK,OAAO,CAAC;QACzB,IAAI,CAAC,MAAM,GAAM,MAAM,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;QAEpG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,GAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnE,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IACD,WAAW,CAAC,MAAW,EAAE,OAAc;QACnC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC;QAEpB,MAAM,WAAW,GAAG,CAAC,IAAS,EAAO,EAAE;YACnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;gBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACtF,OAAO,WAAW,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC;QAEF,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAE5G,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,GAAG;gBAAE,OAAO;YAE/C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG;gBAAE,OAAO;YAEjB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,CAAC,GAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAClD,MAAM,CAAC,GAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAElD,wCAAwC;YACxC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE7E,IAAI,CAAC,EAAE,CAAC;gBACJ,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;oBACnB,KAAK,EAAK,CAAC;oBACX,IAAI,EAAM,CAAC,CAAC,IAAI;oBAChB,KAAK,EAAK,CAAC,CAAC,KAAK;oBACjB,MAAM,EAAI;wBACN,GAAG,EAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;wBACvB,KAAK,EAAK,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;wBACzB,MAAM,EAAI,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;wBAC5C,OAAO,EAAG,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;qBAChD;iBACG,CAAC;gBAET,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;wBACzB,IAAI,EAAS,QAAQ;wBACrB,QAAQ,EAAK,CAAC,GAAG,EAAE,KAAK,CAAC;wBACzB,UAAU,EAAG;4BACT,CAAC,GAAG,CAAC,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC5B,CAAC,KAAK,CAAC,EAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC/B;qBACJ,CAAC;oBACF,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;wBAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAe,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC5F,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;wBAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAe,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC5F,IAAI,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;wBAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBAC3E,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;gBAClC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;YAEtC,MAAM,QAAQ,GACV,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;gBACrE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;qBAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YAEtG,IAAI,QAAQ;gBACR,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;QAC7H,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,KAAK,CAAC;QACpB,OAAO,MAAM,CAAC,WAAW,CAAC;QAC1B,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,SAAS,CAAC,GAAS;QACvB,MAAM,aAAa,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;QACjC,IAAI,aAAa,CAAC,GAAG,KAAK,SAAS;YAC/B,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAErD,MAAM,CAAC,GAAG,IAAI,aAAK,CAAC,aAAa,CAAC,CAAC;QAEnC,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;YACjC,IAAI,aAAa,CAAC,GAAG,KAAK,SAAS;gBAC/B,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;gBAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,gBAAgB;QACpB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU;YACtB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC7D,IAAK,GAAW,CAAC,OAAO,KAAK,IAAI;oBAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,kBAAkB,CAAC,GAAQ;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC;QAC3B,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE;QACpC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAY,CAAC;QACjE,IAAI,KAAK,CAAC,UAAU;YAChB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;gBACvD,IAAK,GAAW,CAAC,OAAO,KAAK,IAAI;oBAAE,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAY,EAAE,EAAE,GAAG,IAA2B;QACvD,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;YAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,MAAM;YAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU;YACtB,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrE,IAAI,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClD,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvF,IAAI,SAAS;wBAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAC7D,CAAC;QAET,MAAM,EAAE,GAAY,IAAI,eAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAEzC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE/B,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO;YAC9B,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACvE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;QAEL,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAS,EAAE,OAAY,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAW,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;QAEnD,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,MAAM;YAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxE,IAAI,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACjD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CACpE,CAAC;oBACF,IAAI,SAAS;wBAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExB,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACrE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAS;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAEzB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO;YAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS;gBACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAE9D,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK;YAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhF,OAAO,EAAE,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,6EAA6E;IAC7E,EAAE;IACF,2EAA2E;IAC3E,8EAA8E;IAC9E,EAAE;IACF,6CAA6C;IAC7C,EAAE;IACF,WAAW;IACX,wEAAwE;IACxE,oCAAoC;IAEpC,KAAK,CAAC,IAAI,CAAC,QAA6B,EAAE,EAAE,UAAiE,EAAE;QAC3G,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;QAEjE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,IAAI,aAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,6EAA6E;IAC7E,EAAE;IACF,6EAA6E;IAC7E,yCAAyC;IACzC,EAAE;IACF,kCAAkC;IAClC,EAAE;IACF,WAAW;IACX,wDAAwD;IACxD,0DAA0D;IAE1D,KAAK,CAAC,IAAI,CAAC,QAA6B,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE;QAChF,MAAM,OAAO,GAAU,EAAE,CAAC;QAE1B,MAAM,IAAI,GAAG,CAAC,GAAQ,EAAW,EAAE;YAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;wBAAE,OAAO,KAAK,CAAC;gBACtG,CAAC;qBAAM,CAAC;oBACJ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC;wBAAE,OAAO,KAAK,CAAC;gBACrD,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;oBAAE,MAAM;YACrC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAQ;QACf,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE1B,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO;gBAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;oBAC7D,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC;QACT,CAAC;IACL,CAAC;CACJ;AA/UD,4BA+UC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modeller.d.ts","sourceRoot":"","sources":["../../src/modeller.ts"],"names":[],"mappings":"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"}
|