@bbradar/mcp 0.2.2 → 0.2.5

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
@@ -112,9 +112,12 @@ For simple tool selection, call `get_bbradar_guide`. It returns the recommended
112
112
 
113
113
  Most tools that accept `program_id` also accept a human program name or handle. The server resolves names automatically when there is one clear match; for ambiguous names, call `resolve_program` first and retry with the returned `platform:handle` id.
114
114
 
115
- Self-Hosted programs use IDs such as `Self-Hosted:program-slug`. They are available through program search, exact program detail, and program-target tools. Their `data_capabilities` field identifies unavailable source signals; the MCP server does not invent opportunity scores, public report counts, target-change history, submission costs, or repository changes for that catalog.
115
+ Self-Hosted programs use IDs such as `Self-Hosted:program-slug`. They are available through program search, exact program detail, reverse target search, program-target tools, and the normal `find_hunt_targets` ranking path. Their `data_capabilities` field identifies unavailable source signals; the MCP server does not invent opportunity scores, public report counts, target-change history, submission costs, repository changes, or numeric competition evidence for that catalog. A Self-Hosted-only hunt skips the unsupported target-change feed and derives recent-target evidence from current inventory timestamps. A Self-Hosted-only repository hunt returns immediately with guidance instead of spending upstream requests on an unsupported feed; mixed repository hunts omit Self-Hosted and continue with supported platforms.
116
116
 
117
117
  `search_programs` accepts a `search` value and sends it to the API for indexed server-side filtering. Name resolution uses the same path automatically, avoiding broad page scans for exact or partial program names.
118
+ The program catalog now includes confirmed paused platform programs. Raw search preserves `program_status` and `is_active`; ranked discovery excludes paused programs so retained scope and historical rewards cannot be presented as huntable. Exact paused-program reads remain available when explicitly requested.
119
+
120
+ The full tool profile also exposes `search_targets`, a one-request low-level wrapper for reverse search and paginated current target inventory. It supports optional `q`, all API match modes, platform/tag filters, eligibility controls, pages up to the negotiated 500-row limit, and compact or full target output.
118
121
 
119
122
  `find_programs_by_target` defaults to flexible target matching. It accepts bare domains, full URLs, wildcard scopes, target names, package/repo-style identifiers, or short phrases like `known api target`.
120
123
  It uses the Pro API's direct reverse-target-search route first, including for Self-Hosted targets, and only falls back to sampled target lists when an older API deployment does not expose that route.
@@ -122,8 +125,30 @@ It uses the Pro API's direct reverse-target-search route first, including for Se
122
125
  `export_targets` uses the bounded bearer `POST /api/v1/pro/targets/export` route directly. JSON exports preserve `program_id` on every target; CSV previews are capped in the tool result while the complete payload remains available for ten minutes through the returned `bbradar://exports` resource. The local resource store is capped at 25 entries and 64 MiB in aggregate, and CSV formula/control-byte neutralization is applied independently of the API.
123
126
 
124
127
  `get_program_targets` forwards text, target type, eligibility, minimum Target Opportunity Score, Target Opportunity Label, and competition-risk filters to the API. Compact output retains the score, label, competition risk, and Why This Target; full output also includes the score breakdown and reason fields.
128
+ When no local scope filtering is needed, offsets begin at the corresponding upstream
129
+ page instead of rescanning page 1. Filtered traversal streams only the requested
130
+ window in memory and reports an explicit incomplete state at the API's page bound.
125
131
 
126
132
  `get_repository_changes` exposes the read-only repository event feed. It defaults to `include_targets=false` and compact output, never contains source code or diffs, and supports `after_id` cursor polling. Both change-feed tools keep at most 500 cursors keyed separately by endpoint and normalized filters. Seed a stream once with `after_id`, then use `resume_cursor=true`; the server stores `next_after_id` even for an empty page. Cursor reads continue sequentially while `has_more=true`, bounded by `max_cursor_pages` (default `2`) and `cursor_time_budget_ms` (default `3000`). Cursor requests bypass the response cache so an empty page cannot hide newly arriving changes.
133
+ Repository results preserve the API's comparison completeness/method/ancestry evidence plus per-program `match_qualities` and per-target match reasons. Target-change filters accept `readded` as well as added, updated, and removed events.
134
+
135
+ `search_programs`, `search_targets`, `get_recent_changes`, and `get_repository_changes` accept the API's optional stable `snapshot` token. Send `snapshot: "start"` on page 1 and reuse the returned `meta.snapshot` with identical filters until `meta.snapshot_expires_at`. Snapshot responses bypass the local TTL cache, and an expired snapshot 410 is not mistaken for an expired change-feed cursor. Snapshot creation receives a 60-second minimum request timeout because it performs consistency work and can be materially slower; the fast `find_hunt_targets` workflow intentionally keeps live indexed paging and the ordinary configured timeout.
136
+
137
+ If a cursor predates retained API history, the MCP refreshes the relevant current
138
+ target or repository-change inventory within the same page/time bounds. It advances to a new
139
+ baseline only after the bounded inventory completes and unchanged feed probes prove
140
+ that no new event arrived during reconstruction. Otherwise it reports an incomplete
141
+ recovery and retains the previous bookmark. A completed recovery reports
142
+ `history_gap` and emits zero baseline rows as new events.
143
+ Incomplete inventory progress is memory-only, isolated by normalized feed filters,
144
+ and capped at 500 checkpoints. Each call still obeys its page and time budgets.
145
+ The recovery traversal observes and counts current API inventory rows and may warm
146
+ the API cache; it does not return those discarded inventory records or reconcile a
147
+ client-owned cache. Inventory beyond the API's 500-page bound remains explicitly
148
+ incomplete instead of advancing the feed cursor.
149
+ Already-retired historical events cannot be reconstructed. `get_program_targets`
150
+ follows upstream API pages until it can satisfy the requested offset/limit or the
151
+ inventory ends. Missing public scope is treated as out of scope.
127
152
 
128
153
  Cursors are memory-only by default. Set `BBRADAR_MCP_CURSOR_STATE_PATH` to opt into restart-safe cursor persistence. The state file contains only endpoint-prefixed SHA-256 filter hashes and non-negative numeric IDs—never raw filters, API responses, program or target records, credentials, or authorization headers.
129
154
 
@@ -131,7 +156,7 @@ Large target and change collections return at most 50 inline records by default.
131
156
 
132
157
  ## Performance Tuning
133
158
 
134
- The defaults expose the 17-tool core surface and compact text results while enabling bounded concurrency, positive response caching, in-flight request coalescing, stale-while-revalidate program metadata, endpoint circuit breakers, and short negative caching for repeated 404/405 lookups. Set the tool profile to `full` when all specialized tools are needed.
159
+ The defaults expose the 18-tool core surface and compact text results while enabling bounded concurrency, positive response caching, in-flight request coalescing, stale-while-revalidate program metadata, endpoint circuit breakers, and short negative caching for repeated 404/405 lookups. Set the tool profile to `full` when all specialized tools are needed.
135
160
 
136
161
  | Environment variable | Default | Purpose |
137
162
  | --- | ---: | --- |
@@ -141,7 +166,7 @@ The defaults expose the 17-tool core surface and compact text results while enab
141
166
  | `BBRADAR_MCP_MAX_CONCURRENT_REQUESTS` | `6` | Maximum simultaneous upstream BBRadar API requests. |
142
167
  | `BBRADAR_MCP_REQUEST_TIMEOUT_SECONDS` | `30` | Timeout for each active upstream request; queue time is excluded. |
143
168
  | `BBRADAR_MCP_COMPACT_TOOL_TEXT` | `true` | Avoid duplicating full results for clients that consume MCP `structuredContent`. Set to `false` for legacy text-only clients. |
144
- | `BBRADAR_MCP_TOOL_PROFILE` | `core` | Compact 17-tool discovery surface. Set to `full` for every specialized tool. |
169
+ | `BBRADAR_MCP_TOOL_PROFILE` | `core` | Compact 18-tool discovery surface. Set to `full` for every specialized tool. |
145
170
  | `BBRADAR_MCP_PROGRAM_STALE_WHILE_REVALIDATE_SECONDS` | `300` | Maximum stale window for exact program metadata while one background refresh runs. |
146
171
  | `BBRADAR_MCP_CIRCUIT_BREAKER_FAILURE_THRESHOLD` | `3` | Consecutive retryable endpoint failures before its circuit opens. |
147
172
  | `BBRADAR_MCP_CIRCUIT_BREAKER_COOLDOWN_SECONDS` | `30` | Endpoint circuit cooldown before a new request is admitted. |
@@ -150,7 +175,7 @@ The defaults expose the 17-tool core surface and compact text results while enab
150
175
  | `BBRADAR_MCP_CONTINUATION_TTL_SECONDS` | `600` | Lifetime of in-memory continuation results. |
151
176
  | `BBRADAR_MCP_ALLOW_INSECURE_HTTP` | `false` | Explicitly allow an HTTP API base URL outside loopback for a trusted private development network. Never enable for internet traffic. |
152
177
 
153
- No performance variables are required. Capability-derived page limits, caching, request coalescing, server-side name resolution, reverse-target search, early stopping, bounded concurrency, aggregate-call parallelism, a 64 KiB request-body ceiling, a 16 MiB upstream response ceiling, automatic HTTP compression handling, connection reuse, and upstream quota protection are always active. Unsupported capability-gated tools are removed from discovery. Target responses expose upstream pagination state so an AI client does not mistake a capped page for a complete inventory.
178
+ No performance variables are required. Capability-derived page limits and snapshot support, caching, request coalescing, server-side name resolution, reverse-target search, early stopping, bounded concurrency, aggregate-call parallelism, a 64 KiB request-body ceiling, a 16 MiB upstream response ceiling, automatic HTTP compression handling, connection reuse, and upstream quota protection are always active. Unsupported capability-gated tools are removed from discovery. Target responses expose upstream pagination state so an AI client does not mistake a capped page for a complete inventory.
154
179
 
155
180
  The client learns the API's `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` headers per endpoint group. Once an observed group reaches zero, it blocks additional requests to that group locally until reset instead of repeatedly hitting the API, while unrelated endpoint groups remain usable. Target and repository changes share one quota state and one conservative two-request concurrency pool. A rolling 60-second guard also enforces the documented shared key-and-IP ceiling across uncached upstream requests. Real `423`, `429`, and `503` responses honor `Retry-After` as a local cooldown, capped at ten minutes so a malformed upstream header cannot lock the MCP process indefinitely. Requests are not automatically retried, so one MCP action cannot amplify an admission or rate-limit response into more API calls. The global upstream concurrency default is six and bulk exports are capped at two; cursor page walking is strictly sequential.
156
181
 
@@ -162,7 +187,23 @@ Run `npm run benchmark` for the deterministic local performance benchmark. It re
162
187
 
163
188
  ### Flexible multi-signal discovery
164
189
 
165
- Use `find_programs` as the generic ranked path for combinations of platform, reward, opportunity, scope breadth, technology, competition, and freshness signals. It supports both inclusion and exclusion through `platforms`, `exclude_platforms`, `web3`, `exclude_web3`, and the remaining scope/reward/activity filters. When a user describes an exclusion without naming exact platform values, call `list_filters` first and reuse the observed values. If an intentionally strict combination returns no candidates, relax one local threshold at a time; the upstream program pages are cached, so these fallback passes normally add no API requests.
190
+ Use `find_hunt_targets` as the default one-call path when a request combines good rewards, wide scope, Web2/Web3 constraints, competition, target quality, or recently added targets. It performs one catalog pass, fetches the bounded recent-additions feed in parallel, enriches only the finalists with exact in-scope bounty-eligible target samples, and returns a final compact ranking. Its result explicitly requires no follow-up calls; use `get_program_targets` only when the user asks for an exhaustive scope dump for one selected program.
191
+
192
+ `find_hunt_targets` supports arbitrary platform inclusion/exclusion, scope/target/language filters, reward and breadth thresholds, Web2/Web3 modes, target-intelligence filters, freshness windows, and balanced/reward/scope/freshness/competition ranking. It suppresses bulk `bbradar://` resource links while preserving each program's public BBRadar and platform URLs, preventing large shortlists from flooding model context.
193
+
194
+ ```json
195
+ {
196
+ "platforms": ["Immunefi", "HackenProof", "BugCrowd", "YesWeHack"],
197
+ "surface_mode": "web2",
198
+ "min_bounty_max": 3000,
199
+ "min_eligible_targets": 3,
200
+ "recent_target_days": 30,
201
+ "max_results": 10,
202
+ "ranking_mode": "balanced"
203
+ }
204
+ ```
205
+
206
+ Use `find_programs` as the lower-level program-only path when target enrichment is not wanted. Keep its output compact and do not issue parallel alternate-sort calls. When a user describes an exclusion without naming exact platform values, call `list_filters` first and reuse the observed values in one `find_hunt_targets` call.
166
207
 
167
208
  For repository-aware hunting, use `find_repository_hunt_targets`. It fetches repository events and program/reward candidates concurrently inside one MCP call, joins them by program id, filters scored targets, removes non-requested associated platforms, and ranks the final matches by a balanced, reward-first, target-first, or recency-first strategy. The inputs remain generic across platforms and technology stacks, so the AI client does not need to plan and wait for a long sequence of separate calls.
168
209
 
@@ -186,12 +227,14 @@ This path uses one recent-changes request. Use `find_wildcard_programs` for a ra
186
227
  ## Full-profile tools
187
228
 
188
229
  - `search_programs`
230
+ - `search_targets`
189
231
  - `get_program`
190
232
  - `resolve_program`
191
233
  - `run_program_name_action`
192
234
  - `get_program_targets`
193
235
  - `get_recent_changes`
194
236
  - `get_repository_changes`
237
+ - `find_hunt_targets`
195
238
  - `find_repository_hunt_targets`
196
239
  - `get_opportunities`
197
240
  - `find_programs`
@@ -1,14 +1,29 @@
1
1
  import http from "node:http";
2
2
  import { performance } from "node:perf_hooks";
3
3
 
4
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
5
+ import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
6
+
4
7
  import { BBRadarClient } from "../dist/bbradarClient.js";
8
+ import { createBbradarServer } from "../dist/server.js";
5
9
 
6
10
  const programCount = 100;
7
11
  const targetsPerProgram = 20;
12
+ const fixtureNow = new Date().toISOString();
8
13
  const programs = Array.from({ length: programCount }, (_, index) => ({
9
14
  id: `Platform:program-${index}`,
15
+ handle: `program-${index}`,
10
16
  name: `Program ${index}`,
11
- platform: "Platform"
17
+ platform: "Platform",
18
+ link: `https://example.com/program-${index}`,
19
+ scope_tags: ["domain", "api", "wildcard"],
20
+ added_at: fixtureNow,
21
+ last_updated: fixtureNow,
22
+ bounty_min: 100,
23
+ bounty_max: 5_000 + index * 100,
24
+ report_count: index,
25
+ target_counts: { total: targetsPerProgram, in_scope: targetsPerProgram, eligible_for_bounty: targetsPerProgram, wildcard: 2 },
26
+ target_activity: { latest_change_at: fixtureNow, added_24h: index < 10 ? 1 : 0, added_7d: index < 10 ? 2 : 0 }
12
27
  }));
13
28
  const targets = new Map(programs.map((program, programIndex) => [
14
29
  program.id,
@@ -16,7 +31,11 @@ const targets = new Map(programs.map((program, programIndex) => [
16
31
  identifier: `api-${targetIndex}.program-${programIndex}.example`,
17
32
  target_type: "domain",
18
33
  in_scope: true,
19
- eligible_for_bounty: true
34
+ eligible_for_bounty: true,
35
+ wildcard: targetIndex < 2,
36
+ targetOpportunityScore: 70 + (targetIndex % 20),
37
+ targetOpportunityLabel: targetIndex < 5 ? "Strong Target" : "Potential Target",
38
+ competitionRisk: programIndex < 25 ? "Low" : "Medium"
20
39
  }))
21
40
  ]));
22
41
  const counters = { requests: 0, responseBytes: 0 };
@@ -28,6 +47,17 @@ const api = http.createServer((req, res) => {
28
47
 
29
48
  if (url.pathname === "/api/v1/pro/programs") {
30
49
  payload = { programs, meta: { total: programs.length, total_pages: 1 } };
50
+ } else if (url.pathname === "/api/v1/pro/targets/changes") {
51
+ payload = {
52
+ results: programs.slice(0, 10).map((program, index) => ({
53
+ id: index + 1,
54
+ change_type: "added",
55
+ changed_at: fixtureNow,
56
+ program,
57
+ target: targets.get(program.id)[0]
58
+ })),
59
+ meta: { total: 10, total_pages: 1 }
60
+ };
31
61
  } else if (url.pathname === "/api/v1/pro/targets/search") {
32
62
  payload = {
33
63
  results: [{ program: programs[42], target: targets.get(programs[42].id)[0] }],
@@ -75,7 +105,7 @@ try {
75
105
  );
76
106
  const optimized = snapshot(performance.now() - optimizedStarted);
77
107
 
78
- const client = new BBRadarClient({
108
+ const clientConfig = {
79
109
  apiKey: "benchmark",
80
110
  apiBaseUrl: baseUrl,
81
111
  webBaseUrl: "https://bbradar.io",
@@ -89,7 +119,8 @@ try {
89
119
  toolProfile: "core",
90
120
  requestTimeoutMs: 5_000,
91
121
  validateOnStartup: false
92
- });
122
+ };
123
+ const client = new BBRadarClient(clientConfig);
93
124
  resetCounters();
94
125
  const cacheStarted = performance.now();
95
126
  for (let index = 0; index < 50; index += 1) {
@@ -97,6 +128,49 @@ try {
97
128
  }
98
129
  const cachedMetadata = snapshot(performance.now() - cacheStarted);
99
130
 
131
+ resetCounters();
132
+ const legacyHuntStarted = performance.now();
133
+ for (const sort of ["best", "freshest", "widest"]) {
134
+ await getJson(`${baseUrl}/pro/programs?sort=${sort}`, headers);
135
+ }
136
+ for (const program of programs.slice(0, 9)) {
137
+ await getJson(`${baseUrl}/pro/programs/${encodeURIComponent(program.id)}/targets`, headers);
138
+ }
139
+ for (const targetType of ["domain", "api", "wildcard"]) {
140
+ await getJson(`${baseUrl}/pro/targets/changes?target_type=${targetType}`, headers);
141
+ }
142
+ const legacyHunt = snapshot(performance.now() - legacyHuntStarted);
143
+
144
+ const huntApiClient = new BBRadarClient(clientConfig);
145
+ const huntServer = createBbradarServer(huntApiClient, clientConfig);
146
+ const huntClient = new Client({ name: "hunt-benchmark", version: "1" });
147
+ const [huntClientTransport, huntServerTransport] = InMemoryTransport.createLinkedPair();
148
+ await Promise.all([huntServer.connect(huntServerTransport), huntClient.connect(huntClientTransport)]);
149
+ let optimizedHuntResult;
150
+ let optimizedHunt;
151
+ try {
152
+ resetCounters();
153
+ const optimizedHuntStarted = performance.now();
154
+ optimizedHuntResult = await huntClient.callTool({
155
+ name: "find_hunt_targets",
156
+ arguments: {
157
+ platforms: ["Platform"],
158
+ target_types: ["domain", "api", "wildcard"],
159
+ min_bounty_max: 5_000,
160
+ min_eligible_targets: 5,
161
+ recent_target_days: 30,
162
+ max_program_pages: 1,
163
+ max_results: 10,
164
+ targets_per_result: 5,
165
+ upstream_request_budget: 20
166
+ }
167
+ });
168
+ optimizedHunt = snapshot(performance.now() - optimizedHuntStarted);
169
+ } finally {
170
+ await huntClient.close();
171
+ await huntServer.close();
172
+ }
173
+
100
174
  const largeResult = Array.from({ length: 500 }, (_, index) => ({
101
175
  identifier: `target-${index}.example`,
102
176
  target_opportunity_score: 70 + (index % 20),
@@ -107,12 +181,16 @@ try {
107
181
  const requestReduction = percentReduction(baseline.requests, optimized.requests);
108
182
  const byteReduction = percentReduction(baseline.response_bytes, optimized.response_bytes);
109
183
  const contextReduction = percentReduction(fullContextBytes, inlineContextBytes);
184
+ const huntRoundTripReduction = percentReduction(15, 1);
110
185
 
111
186
  if (
112
187
  requestReduction < 90 ||
113
188
  byteReduction < 90 ||
114
189
  cachedMetadata.requests !== 1 ||
115
- contextReduction < 80
190
+ contextReduction < 80 ||
191
+ huntRoundTripReduction < 90 ||
192
+ optimizedHuntResult.structuredContent.matches.length !== 10 ||
193
+ optimizedHuntResult.content.some((item) => item.type === "resource_link")
116
194
  ) {
117
195
  throw new Error("Performance regression threshold failed.");
118
196
  }
@@ -131,6 +209,21 @@ try {
131
209
  upstream: cachedMetadata,
132
210
  cache_hit_ratio: client.diagnostics().response_cache.hits / 50
133
211
  },
212
+ ranked_hunt_discovery: {
213
+ legacy_multi_call: {
214
+ model_tool_calls: 15,
215
+ upstream: legacyHunt
216
+ },
217
+ optimized_composite: {
218
+ model_tool_calls: 1,
219
+ upstream: optimizedHunt,
220
+ returned: optimizedHuntResult.structuredContent.matches.length,
221
+ resource_links: optimizedHuntResult.content.filter((item) => item.type === "resource_link").length
222
+ },
223
+ model_round_trip_reduction_percent: huntRoundTripReduction,
224
+ upstream_request_reduction_percent: percentReduction(legacyHunt.requests, optimizedHunt.requests),
225
+ upstream_byte_reduction_percent: percentReduction(legacyHunt.response_bytes, optimizedHunt.response_bytes)
226
+ },
134
227
  bounded_model_context: {
135
228
  full_500_record_bytes: fullContextBytes,
136
229
  inline_50_record_bytes: inlineContextBytes,
@@ -8,7 +8,9 @@ export type ApiRequestOptions = {
8
8
  cache?: boolean;
9
9
  coalesce?: boolean;
10
10
  staleWhileRevalidateMs?: number;
11
+ timeoutMs?: number;
11
12
  };
13
+ export type ApiReadControls = Pick<ApiRequestOptions, "cache" | "coalesce" | "timeoutMs">;
12
14
  export type ApiResult<T> = {
13
15
  data: T;
14
16
  requestId: string;
@@ -180,14 +182,15 @@ export declare class BBRadarClient {
180
182
  endpointCapability(endpoint: string): Record<string, unknown> | undefined;
181
183
  endpointNumber(endpoint: string, field: string, fallback: number): number;
182
184
  endpointStringArray(endpoint: string, field: string, fallback: readonly string[]): string[];
185
+ supportsStableSnapshot(endpoint: string): boolean;
183
186
  private fetchCapabilityContract;
184
- listPrograms(query: Record<string, QueryValue>): Promise<ApiResult<unknown>>;
187
+ listPrograms(query: Record<string, QueryValue>, controls?: ApiReadControls): Promise<ApiResult<unknown>>;
185
188
  getCapabilities(options?: Pick<ApiRequestOptions, "cache" | "coalesce">): Promise<ApiResult<unknown>>;
186
189
  getProgram(programId: string): Promise<ApiResult<unknown>>;
187
190
  getProgramTargets(programId: string, query?: Record<string, QueryValue>): Promise<ApiResult<unknown>>;
188
- getRecentChanges(query: Record<string, QueryValue>): Promise<ApiResult<unknown>>;
189
- getRepositoryChanges(query: Record<string, QueryValue>): Promise<ApiResult<unknown>>;
190
- searchTargets(query: Record<string, QueryValue>): Promise<ApiResult<unknown>>;
191
+ getRecentChanges(query: Record<string, QueryValue>, controls?: ApiReadControls): Promise<ApiResult<unknown>>;
192
+ getRepositoryChanges(query: Record<string, QueryValue>, controls?: ApiReadControls): Promise<ApiResult<unknown>>;
193
+ searchTargets(query: Record<string, QueryValue>, controls?: ApiReadControls): Promise<ApiResult<unknown>>;
191
194
  getOpportunities(level: string, query: Record<string, QueryValue>): Promise<ApiResult<unknown>>;
192
195
  exportTargets(body: Record<string, unknown>): Promise<ApiResult<unknown>>;
193
196
  request<T = unknown>(options: ApiRequestOptions): Promise<ApiResult<T>>;
@@ -13,6 +13,7 @@ const MAX_REQUEST_BODY_BYTES = 64 * 1024;
13
13
  const DEFAULT_PROGRAM_SWR_MS = 5 * 60_000;
14
14
  const DEFAULT_CIRCUIT_FAILURE_THRESHOLD = 3;
15
15
  const DEFAULT_CIRCUIT_COOLDOWN_MS = 30_000;
16
+ const SNAPSHOT_START_MIN_TIMEOUT_MS = 60_000;
16
17
  export class BBRadarApiError extends Error {
17
18
  requestId;
18
19
  upstreamRequestId;
@@ -176,6 +177,16 @@ export class BBRadarClient {
176
177
  ? [...value]
177
178
  : [...fallback];
178
179
  }
180
+ supportsStableSnapshot(endpoint) {
181
+ if (this.capabilityState.status !== "negotiated") {
182
+ return false;
183
+ }
184
+ const contract = asRecord(this.capabilityState.contract);
185
+ const behavior = asRecord(contract?.behavior);
186
+ const stableSnapshots = asRecord(behavior?.stable_snapshots);
187
+ const endpoints = stableSnapshots?.endpoints;
188
+ return Array.isArray(endpoints) && endpoints.includes(endpoint);
189
+ }
179
190
  async fetchCapabilityContract() {
180
191
  try {
181
192
  const result = await this.getCapabilities({ cache: false, coalesce: false });
@@ -201,10 +212,11 @@ export class BBRadarClient {
201
212
  throw error;
202
213
  }
203
214
  }
204
- listPrograms(query) {
215
+ listPrograms(query, controls = {}) {
205
216
  return this.request({
206
217
  path: "/pro/programs",
207
- query
218
+ query,
219
+ ...snapshotAwareReadControls(query, controls, true, this.config.requestTimeoutMs)
208
220
  });
209
221
  }
210
222
  getCapabilities(options = {}) {
@@ -229,24 +241,25 @@ export class BBRadarClient {
229
241
  }
230
242
  });
231
243
  }
232
- getRecentChanges(query) {
244
+ getRecentChanges(query, controls = {}) {
233
245
  return this.request({
234
246
  path: "/pro/targets/changes",
235
247
  query,
236
- cache: query.after_id === undefined
248
+ ...snapshotAwareReadControls(query, controls, query.after_id === undefined, this.config.requestTimeoutMs)
237
249
  });
238
250
  }
239
- getRepositoryChanges(query) {
251
+ getRepositoryChanges(query, controls = {}) {
240
252
  return this.request({
241
253
  path: "/pro/repositories/changes",
242
254
  query,
243
- cache: query.after_id === undefined
255
+ ...snapshotAwareReadControls(query, controls, query.after_id === undefined, this.config.requestTimeoutMs)
244
256
  });
245
257
  }
246
- searchTargets(query) {
258
+ searchTargets(query, controls = {}) {
247
259
  return this.request({
248
260
  path: "/pro/targets/search",
249
- query
261
+ query,
262
+ ...snapshotAwareReadControls(query, controls, true, this.config.requestTimeoutMs)
250
263
  });
251
264
  }
252
265
  getOpportunities(level, query) {
@@ -380,7 +393,7 @@ export class BBRadarClient {
380
393
  this.reserveUpstreamRequest(requestId, rateLimitBucket);
381
394
  const startedAt = Date.now();
382
395
  const controller = new AbortController();
383
- const timeout = setTimeout(() => controller.abort(), this.config.requestTimeoutMs);
396
+ const timeout = setTimeout(() => controller.abort(), options.timeoutMs ?? this.config.requestTimeoutMs);
384
397
  let status;
385
398
  let failed = true;
386
399
  try {
@@ -945,6 +958,25 @@ function endpointConcurrencyLimit(endpointGroup) {
945
958
  }
946
959
  return undefined;
947
960
  }
961
+ function snapshotAwareReadControls(query, controls, defaultCache, defaultTimeoutMs) {
962
+ const snapshot = typeof query.snapshot === "string" ? query.snapshot : undefined;
963
+ const result = {
964
+ // Snapshot responses are explicitly `Cache-Control: no-store`. Keeping
965
+ // them out of the local TTL cache also prevents an expired token from
966
+ // being replayed after its five-minute API lifetime.
967
+ cache: controls.cache ?? (defaultCache && snapshot === undefined),
968
+ // Two concurrent `snapshot=start` calls must create independent views.
969
+ // Reusing an already-issued token can still coalesce identical live work.
970
+ coalesce: controls.coalesce ?? snapshot !== "start"
971
+ };
972
+ const timeoutMs = controls.timeoutMs ?? (snapshot === "start"
973
+ ? Math.max(defaultTimeoutMs, SNAPSHOT_START_MIN_TIMEOUT_MS)
974
+ : undefined);
975
+ if (timeoutMs !== undefined) {
976
+ result.timeoutMs = timeoutMs;
977
+ }
978
+ return result;
979
+ }
948
980
  function isNegativeCacheStatus(status) {
949
981
  return status === 404 || status === 405;
950
982
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bbradarClient.js","sourceRoot":"","sources":["../src/bbradarClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAsE/C,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAC9C,MAAM,gCAAgC,GAAG,EAAE,GAAG,MAAM,CAAC;AACrD,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAC1C,MAAM,6BAA6B,GAAG,EAAE,CAAC;AACzC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AACzC,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAC;AAC1C,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAC5C,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAS3C,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,SAAS,CAAS;IAClB,iBAAiB,CAAqB;IACtC,MAAM,CAAqB;IAC3B,MAAM,CAAW;IACjB,MAAM,CAAW;IACjB,MAAM,CAAU;IAChB,SAAS,CAAU;IACnB,cAAc,CAAqB;IAE5C,YAAY,MAWX;QACC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IAgBK;IAfZ,KAAK,CAAgC;IACrC,aAAa,CAA2B;IACxC,QAAQ,GAAG,IAAI,GAAG,EAAwC,CAAC;IAC3D,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IACpD,YAAY,GAAsB,EAAE,CAAC;IACrC,qBAAqB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC7D,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,kBAAkB,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC/D,eAAe,GAAG,IAAI,GAAG,EAA+B,CAAC;IACzD,2BAA2B,GAAa,EAAE,CAAC;IACpD,cAAc,GAAG,CAAC,CAAC;IACnB,oBAAoB,CAAqB;IACzC,qBAAqB,CAA4B;IACjD,eAAe,GAA+B,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAEhF,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CACvB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,6BAA6B,IAAI,sBAAsB,CAC/D,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAiB,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACvG,CAAC;IAED,WAAW;QACT,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChG,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5F,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEzF,OAAO;YACL,cAAc,EAAE;gBACd,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC;gBACtE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;aACtB;YACD,uBAAuB,EAAE;gBACvB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC;gBAC9E,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;aAC9B;YACD,sBAAsB,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACjD,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,EAAE;YAClD,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACtC,mBAAmB,EAAE;gBACnB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB;gBACxC,MAAM,EAAE,IAAI,CAAC,cAAc;gBAC3B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;gBAChC,eAAe,EAAE;oBACf,YAAY,EAAE;wBACZ,KAAK,EAAE,6BAA6B;wBACpC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC;wBAC5D,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;qBACpE;oBACD,aAAa,EAAE;wBACb,KAAK,EAAE,+BAA+B;wBACtC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;wBAC7D,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;qBACrE;iBACF;aACF;YACD,uBAAuB,EAAE,IAAI,CAAC,gCAAgC,EAAE;YAChE,mBAAmB,EAAE,IAAI,CAAC,4BAA4B,EAAE;YACxD,iBAAiB,EAAE;gBACjB,eAAe,EAAE,aAAa;gBAC9B,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC3F,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC1C,QAAQ;oBACR;wBACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,MAAM,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9E,MAAM,EAAE,MAAM,CAAC,KAAK;wBACpB,OAAO,EAAE,MAAM,CAAC,MAAM;wBACtB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;qBAC9C;iBACF,CAAC,CACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7C,MAAM,IAAI,CAAC,OAAO,CAAC;oBACjB,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;oBAChC,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,eAAe,CAAC,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAC/F,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;YAC1G,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,kBAAkB;QAChB,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,SAAS,CAAC;IAChF,CAAC;IAED,kBAAkB,CAAC,QAAgB;QACjC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACjD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,KAAa,EAAE,QAAgB;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7F,CAAC;IAED,mBAAmB,CAAC,QAAgB,EAAE,KAAa,EAAE,QAA2B;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;YAC9E,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACZ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,eAAe,GAAG;gBACrB,MAAM,EAAE,YAAY;gBACpB,YAAY,EAAE,MAAM,CAAC,SAAS;gBAC9B,QAAQ,EAAE,MAAM,CAAC,IAAI;aACtB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;gBACvF,IAAI,CAAC,eAAe,GAAG;oBACrB,MAAM,EAAE,QAAQ;oBAChB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACvC,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,CAAC,eAAe,GAAG;gBACrB,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,YAAY,CAAC,KAAiC;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,eAAe;YACrB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,UAAyD,EAAE;QACzE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,mBAAmB;YACzB,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,iBAAiB,mBAAmB,CAAC,SAAS,CAAC,EAAE;YACvD,sBAAsB,EACpB,IAAI,CAAC,MAAM,CAAC,6BAA6B,IAAI,sBAAsB;SACtE,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,QAAoC,EAAE;QACzE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,iBAAiB,mBAAmB,CAAC,SAAS,CAAC,UAAU;YAC/D,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC;gBACP,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,eAAe,EAAE,GAAG,CAAC;gBACvE,GAAG,KAAK;aACT;SACF,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,KAAiC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,sBAAsB;YAC5B,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,QAAQ,KAAK,SAAS;SACpC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,KAAiC;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,2BAA2B;YACjC,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,QAAQ,KAAK,SAAS;SACpC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAAiC;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,qBAAqB;YAC3B,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,KAAiC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,KAAK,CAAC,EAAE;YACvD,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,IAA6B;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,qBAAqB;YAC3B,IAAI;YACJ,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAc,OAA0B;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,eAAe,CAAC;YACjC,MAAM;YACN,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;SAC3B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;QAC/H,MAAM,iBAAiB,GACrB,MAAM,KAAK,KAAK;YAChB,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;QAEpE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CACpC,UAAU,EACV,OAAO,CAAC,sBAAsB,IAAI,CAAC,CACpC,CAAC;YAEF,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBAC7D,CAAC;gBAED,OAAO;oBACL,GAAI,MAAM,CAAC,KAAuB;oBAClC,SAAS;oBACT,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,cAAc,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;iBACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,IAAI,eAAe,CAAC;oBACxB,GAAG,WAAW,CAAC,KAAK;oBACpB,SAAS;oBACT,MAAM,EAAE,IAAI;oBACZ,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE9C,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAkB,CAAC;oBAEhD,OAAO;wBACL,GAAG,MAAM;wBACT,SAAS;wBACT,MAAM,EAAE,KAAK;wBACb,SAAS,EAAE,IAAI;qBAChB,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAI,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAEtE,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,OAAuC,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAE7B,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAA6B,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;YAED,OAAO;gBACL,GAAG,MAAM;gBACT,SAAS;gBACT,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,iBAAiB;gBACjB,KAAK,YAAY,eAAe;gBAChC,KAAK,CAAC,MAAM,KAAK,SAAS;gBAC1B,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,EACnC,CAAC;gBACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;oBACjC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;oBAC1C,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAA0B,EAC1B,MAAsB,EACtB,GAAQ,EACR,SAAiB;QAEjB,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE7F,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAE5D,IAAI,SAAS,GAAG,sBAAsB,EAAE,CAAC;gBACvC,MAAM,IAAI,eAAe,CAAC;oBACxB,OAAO,EAAE,wCAAwC,sBAAsB,cAAc;oBACrF,SAAS;oBACT,MAAM,EAAE,GAAG;oBACX,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE;iBAC1E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE7D,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACrD,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACnF,IAAI,MAA0B,CAAC;YAC/B,IAAI,MAAM,GAAG,IAAI,CAAC;YAElB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAgB;oBACxB,MAAM;oBACN,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;oBACnC,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC;gBAEF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;gBAC7B,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACxC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACzB,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9D,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC7D,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBAE/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBACtE,MAAM,MAAM,GAAqD;wBAC/D,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;wBACrD,SAAS;wBACT,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC;wBAC1C,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC;qBAC3C,CAAC;oBAEF,IAAI,iBAAiB,EAAE,CAAC;wBACtB,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;oBAC/C,CAAC;oBAED,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,MAAM,GAAkB;oBAC5B,IAAI,EAAE,IAAS;oBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC;gBAEF,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;gBAC/C,CAAC;gBAED,MAAM,GAAG,KAAK,CAAC;gBACf,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;oBACrC,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;gBAE5C,MAAM,IAAI,eAAe,CAAC;oBACxB,OAAO,EAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,6BAA6B;oBACjI,SAAS;oBACT,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAClF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CACzB,OAA0B,EAC1B,MAAsB,EACtB,GAAQ,EACR,UAAkB;QAElB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAC/B,EAAE,GAAG,OAAO,EAAE,sBAAsB,EAAE,CAAC,EAAE,EACzC,MAAM,EACN,GAAG,EACH,UAAU,EAAE,CACb,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEvC,KAAK,OAAO;aACT,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACtB,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,eAAe,CAAI,IAAY,EAAE,QAA0B;QACvE,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,aAAa,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAE9D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,CACrE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CACrC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAI,QAA0B;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAEvC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,aAAqB,EACrB,KAAa,EACb,QAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAElE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;YAE5B,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAC7B,aAAa,EACb,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CACvE,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,IAAY,EAAE,UAAkB,EAAE,MAA0B,EAAE,MAAe;QACxG,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,MAAM,GACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClC;gBACE,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,IAAI,GAAG,EAAkB;aACpC,CAAC;QACJ,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE1E,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEO,sBAAsB,CAAC,SAAiB,EAAE,MAAc;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;YAChF,MAAM,mBAAmB,CACvB,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CACxC,CAAC;QACJ,CAAC;QAED,IACE,IAAI,CAAC,gCAAgC,EAAE;YACvC,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,6BAA6B,EACxE,CAAC;YACD,IAAI,CAAC,oBAAoB;gBACvB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,yBAAyB,CAAC;YAC3E,MAAM,mBAAmB,CACvB,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CACxC,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,cAAc;oBAClB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG;wBACtC,CAAC,CAAC,KAAK,CAAC,SAAS;wBACjB,CAAC,CAAC,GAAG,GAAG,8BAA8B,CAAC;gBAC3C,MAAM,mBAAmB,CACvB,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CACxC,CAAC;YACJ,CAAC;YAED,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAEO,wBAAwB,CAAC,MAAc,EAAE,OAAgB,EAAE,MAAc;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACjG,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;QAC1C,MAAM,UAAU,GACd,SAAS,KAAK,SAAS;YACvB,iBAAiB,KAAK,SAAS;YAC/B,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,iBAAiB,CAAC,GAAG,KAAK,CAAC;QAElD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,SAAS;gBACb,UAAU,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;oBACzC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC;oBACtC,CAAC,CAAC,SAAS,CAAC;QAClB,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;QACzB,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QAE1B,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;YACtF,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACnC,SAAS,IAAI,CAAC,EACd,SAAS,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC7C,CAAC;YACF,MAAM,YAAY,GAChB,oBAAoB,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,GAAG,8BAA8B,CAAC;YAE3F,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;YACpC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QAED,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,cAAc;gBAClB,SAAS,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,8BAA8B,CAAC;QACpF,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;YAC9C,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,wBAAwB,CAAC,MAAc,EAAE,MAAc,EAAE,IAAa;QAC5E,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,YAAY,CAAC;QAErE,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gCAAgC,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;IACrF,CAAC;IAEO,cAAc,CAAC,MAAc;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,4BAA4B,CAAC,GAAW;QAC9C,MAAM,MAAM,GAAG,GAAG,GAAG,yBAAyB,CAAC;QAE/C,OACE,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,EACtD,CAAC;YACD,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,gCAAgC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAEzD,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,6BAA6B;YACpC,SAAS,EAAE,yBAAyB;YACpC,IAAI,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM;YAC7C,SAAS,EAAE,QAAQ;gBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,CAAC,EACD,6BAA6B,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CACxE;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,WAAW,CACpB,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC;gBACzC,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,yBAAyB;gBAC1E,CAAC,CAAC,SAAS,CACd;SACF,CAAC;IACJ,CAAC;IAEO,gCAAgC;QACtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAExE,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC/C,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,KAAK,KAAK,SAAS;YACzB,KAAK,CAAC,SAAS,KAAK,SAAS;YAC7B,KAAK,CAAC,SAAS,KAAK,SAAS,CAChC,CAAC;IACJ,CAAC;IAEO,8BAA8B,CAAC,KAA6B,EAAE,GAAW;QAC/E,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;YAC5D,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,IAAI,GAAG,EAAE,CAAC;YACtE,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,4BAA4B;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvD,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,IAAI,IAAI,CAAC,oBAAoB,IAAI,GAAG,EAAE,CAAC;YAChF,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACxC,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CACtC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAC5E,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QAC/D,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAChG,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,oBAAoB,IAAI,CAAC,EAC9B,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,CACjE,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC;YACpC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACnB,KAAK,EAAE,WAAW,EAAE,KAAK;YACzB,SAAS,EAAE,WAAW,EAAE,SAAS;YACjC,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC;YAC7C,OAAO,EAAE,eAAe,IAAI,gBAAgB;YAC5C,gBAAgB,EAAE,eAAe;YACjC,aAAa,EAAE,WAAW,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC;YACnD,WAAW,EAAE,WAAW,EAAE,UAAU;YACpC,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM;gBACN;oBACE,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;oBACtC,OAAO,EAAE,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,GAAG;oBAC1C,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC;oBAChD,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC5C,WAAW,EAAE,KAAK,CAAC,UAAU;iBAC9B;aACF,CAAC,CACH;SACF,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,SAAiB,EAAE,MAAc;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;YACpD,IAAI,KAAK,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;YAChC,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,eAAe,CAAC;YACxB,OAAO,EAAE,WAAW,MAAM,6DAA6D;YACvF,SAAS;YACT,MAAM,EAAE,GAAG;YACX,MAAM,EAAE;gBACN,MAAM,EAAE,iBAAiB;gBACzB,MAAM;gBACN,oBAAoB,EAAE,KAAK,CAAC,mBAAmB;gBAC/C,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;aACpD;SACF,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,MAAc,EAAE,MAAc;QAC3D,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC9B,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC9B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;YAC5B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACtD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,MAAc,EAAE,MAAe;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;QAC7E,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAC/B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QAE1B,IACE,KAAK,CAAC,mBAAmB;YACzB,CAAC,IAAI,CAAC,MAAM,CAAC,8BAA8B,IAAI,iCAAiC,CAAC,EACjF,CAAC;YACD,KAAK,CAAC,WAAW;gBACf,IAAI,CAAC,GAAG,EAAE;oBACV,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,IAAI,2BAA2B,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEO,yBAAyB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,iBAAiB,EACf,IAAI,CAAC,MAAM,CAAC,8BAA8B,IAAI,iCAAiC;YACjF,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB,IAAI,2BAA2B;YAChF,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC3D,MAAM;gBACN;oBACE,KAAK,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ;oBAC7G,oBAAoB,EAAE,KAAK,CAAC,mBAAmB;oBAC/C,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;oBAC1C,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC;oBACnD,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC;oBACnD,WAAW,EAAE,KAAK,CAAC,UAAU;iBAC9B;aACF,CAAC,CACH;SACF,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,KAA6C;QAC1E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC;QAExD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,SAAS;YACX,CAAC;YAED,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAExB,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,OAAO,CAAC,IAAa;QAC3B,MAAM,OAAO,GAA2B;YACtC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7C,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,cAAc;SAC7B,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,MAAc,EACd,KAA6B,EAC7B,oBAAwC,EACxC,kBAA0B;IAE1B,OAAO,IAAI,eAAe,CAAC;QACzB,OAAO,EAAE,2EAA2E;QACpF,SAAS;QACT,MAAM,EAAE,GAAG;QACX,MAAM,EAAE;YACN,MAAM,EAAE,wBAAwB;YAChC,MAAM;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;YACtC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,EAAE,oBAAoB,IAAI,CAAC,CAAC,CAAC;YACrF,oBAAoB,EAAE;gBACpB,KAAK,EAAE,6BAA6B;gBACpC,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,GAAG,kBAAkB,CAAC;aAC3E;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,KAAe;IAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAEpC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,GAAW;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEjF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAErC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACjC,OAAO,+BAA+B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;YAC7B,OAAO,+BAA+B,CAAC,OAAO,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,+BAA+B,CAAC,GAAG,GAAG,OAAO,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpC,OAAO,+BAA+B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB,EAAE,GAAW;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAErC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,+BAA+B,CAAC,GAAG,GAAG,OAAO,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpC,OAAO,+BAA+B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,+BAA+B,CAAC,SAAiB,EAAE,GAAW;IACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,GAAG,gCAAgC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,WAAW,CAAC,SAA6B;IAChD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IAED,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,IAAI,KAAK,sBAAsB,EAAE,CAAC;QACpC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,IAAI,KAAK,2BAA2B,EAAE,CAAC;QACzC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,IACE,IAAI,KAAK,mBAAmB;QAC5B,IAAI,KAAK,eAAe;QACxB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1C,CAAC;QACD,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACnC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACnC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,2BAA2B,EAAE,CAAC;QAC5E,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACnC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,aAAqB;IACrD,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;QACrC,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;QACtC,OAAO,+BAA+B,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAkB;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAExE,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;QACpF,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE9E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,QAAkB,EAAE,QAAgB;IACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAE5C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM;YACR,CAAC;YAED,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;YAC/B,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;gBAC1B,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,KAAa;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAQ,KAAiC,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,IAAa;IAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,MAAM,GACV,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ;YAC3B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,uBAAuB,CAAC;IAEhC,OAAO,wBAAwB,MAAM,KAAK,MAAM,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,SAAiB,EAAE,SAAS,GAAG,KAAK,YAAY,eAAe,IAAI,KAAK,CAAC,SAAS;IACvH,IAAI,CAAC,CAAC,KAAK,YAAY,eAAe,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,eAAe,CAAC;QACzB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS;QACT,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS;QACT,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"bbradarClient.js","sourceRoot":"","sources":["../src/bbradarClient.ts"],"names":[],"mappings":"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"}