llm-speed-bench 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -141,6 +141,12 @@ async function getConfig() {
141
141
  type: 'boolean',
142
142
  description: 'Output the results in JSON format.',
143
143
  default: false,
144
+ })
145
+ .option('stream', {
146
+ alias: 's',
147
+ type: 'boolean',
148
+ description: 'Use streaming mode for the API request.',
149
+ default: true,
144
150
  })
145
151
  .option('effort', {
146
152
  alias: 'e',
@@ -163,6 +169,7 @@ async function getConfig() {
163
169
  model: argv.model,
164
170
  prompt: argv.prompt,
165
171
  json: argv.json ?? false,
172
+ stream: argv.stream ?? true,
166
173
  effort: argv.effort,
167
174
  };
168
175
  return config;
@@ -172,7 +179,7 @@ async function getConfig() {
172
179
  * @param config - The configuration object.
173
180
  */
174
181
  async function runBenchmark(config) {
175
- const { apiBaseUrl, apiKey, model, prompt, json, effort } = config;
182
+ const { apiBaseUrl, apiKey, model, prompt, json, stream, effort } = config;
176
183
  const progress = new ProgressIndicator(json);
177
184
  progress.start('Connecting...');
178
185
  const T_start = performance.now();
@@ -185,13 +192,16 @@ async function runBenchmark(config) {
185
192
  let totalOutputTokens = 0;
186
193
  let completionTokens = 0;
187
194
  let reasoningTokens = 0;
195
+ let usageData = null;
196
+ // Initialize encoding for token counting
197
+ const encoding = get_encoding('cl100k_base');
188
198
  try {
189
199
  const url = new URL(apiBaseUrl);
190
200
  if (!url.pathname.endsWith('/')) {
191
201
  url.pathname += '/';
192
202
  }
193
203
  let finalUrl;
194
- if (url.pathname.endsWith('/v1/')) {
204
+ if (url.pathname.endsWith('/v1/') || url.pathname.endsWith('/v4/')) {
195
205
  finalUrl = new URL('chat/completions', url);
196
206
  }
197
207
  else {
@@ -200,7 +210,7 @@ async function runBenchmark(config) {
200
210
  const body = {
201
211
  model,
202
212
  messages: [{ role: 'user', content: prompt }],
203
- stream: true,
213
+ stream,
204
214
  };
205
215
  if (effort) {
206
216
  body.reasoning = { effort };
@@ -214,93 +224,143 @@ async function runBenchmark(config) {
214
224
  },
215
225
  body: JSON.stringify(body),
216
226
  });
217
- if (!response.ok || !response.body) {
227
+ if (!response.ok) {
218
228
  const errorBody = await response.text();
219
229
  throw new Error(`API Error: ${response.status} ${response.statusText} - ${errorBody}`);
220
230
  }
221
- progress.update('Waiting for First Token...');
222
- const reader = response.body.getReader();
223
- const decoder = new TextDecoder();
224
- while (true) {
225
- const { done, value } = await reader.read();
226
- if (done) {
227
- break;
231
+ let T_end;
232
+ if (stream) {
233
+ // Streaming mode
234
+ if (!response.body) {
235
+ throw new Error('Response body is null for streaming request');
228
236
  }
229
- const chunk = decoder.decode(value, { stream: true });
230
- const lines = chunk.split('\n').filter((line) => line.trim().startsWith('data:'));
231
- let chunkProducedTokens = false;
232
- let chunkProducedCompletionTokens = 0;
233
- let chunkProducedReasoningTokens = 0;
234
- for (const line of lines) {
235
- const data = line.substring(5).trim();
236
- if (data === '[DONE]') {
237
+ progress.update('Waiting for First Token...');
238
+ const reader = response.body.getReader();
239
+ const decoder = new TextDecoder();
240
+ while (true) {
241
+ const { done, value } = await reader.read();
242
+ if (done) {
237
243
  break;
238
244
  }
239
- try {
240
- const parsed = JSON.parse(data);
241
- const delta = parsed.choices?.[0]?.delta;
242
- if (!delta) {
243
- continue;
245
+ const chunk = decoder.decode(value, { stream: true });
246
+ const lines = chunk.split('\n').filter((line) => line.trim().startsWith('data:'));
247
+ let chunkProducedTokens = false;
248
+ let chunkProducedCompletionTokens = 0;
249
+ let chunkProducedReasoningTokens = 0;
250
+ for (const line of lines) {
251
+ const data = line.substring(5).trim();
252
+ if (data === '[DONE]') {
253
+ break;
244
254
  }
245
- const completionCount = countTokenLikeEntries(delta.content);
246
- const reasoningCount = countTokenLikeEntries(delta.reasoning);
247
- const reasoningContentCount = countTokenLikeEntries(delta.reasoning_content);
248
- const totalReasoning = reasoningCount + reasoningContentCount;
249
- if (completionCount > 0 || totalReasoning > 0) {
250
- chunkProducedTokens = true;
251
- chunkProducedCompletionTokens += completionCount;
252
- chunkProducedReasoningTokens += totalReasoning;
255
+ try {
256
+ const parsed = JSON.parse(data);
257
+ // Capture usage data if present
258
+ if (parsed.usage && parsed.usage !== null) {
259
+ usageData = parsed.usage;
260
+ }
261
+ const delta = parsed.choices?.[0]?.delta;
262
+ if (!delta) {
263
+ continue;
264
+ }
265
+ const completionCount = countTokensInContent(delta.content, encoding);
266
+ const reasoningCount = countTokensInContent(delta.reasoning, encoding);
267
+ const reasoningContentCount = countTokensInContent(delta.reasoning_content, encoding);
268
+ const totalReasoning = reasoningCount + reasoningContentCount;
269
+ if (completionCount > 0 || totalReasoning > 0) {
270
+ chunkProducedTokens = true;
271
+ chunkProducedCompletionTokens += completionCount;
272
+ chunkProducedReasoningTokens += totalReasoning;
273
+ }
253
274
  }
254
- }
255
- catch (e) {
256
- // Ignore parsing errors for non-JSON lines
257
- }
258
- }
259
- if (chunkProducedTokens) {
260
- const chunkTime = performance.now();
261
- const producedTokens = chunkProducedCompletionTokens + chunkProducedReasoningTokens;
262
- totalOutputTokens += producedTokens;
263
- completionTokens += chunkProducedCompletionTokens;
264
- reasoningTokens += chunkProducedReasoningTokens;
265
- const registerTimestamp = (container, count) => {
266
- for (let i = 0; i < count; i++) {
267
- container.push(chunkTime);
275
+ catch (e) {
276
+ // Ignore parsing errors for non-JSON lines
268
277
  }
269
- };
270
- if (chunkProducedCompletionTokens > 0) {
271
- registerTimestamp(tokenTimestamps.completion, chunkProducedCompletionTokens);
272
- registerTimestamp(tokenTimestamps.all, chunkProducedCompletionTokens);
273
- }
274
- if (chunkProducedReasoningTokens > 0) {
275
- registerTimestamp(tokenTimestamps.reasoning, chunkProducedReasoningTokens);
276
- registerTimestamp(tokenTimestamps.all, chunkProducedReasoningTokens);
277
278
  }
278
- if (tokenTimestamps.all.length >= 2 && T_second_token === null) {
279
- T_second_token = tokenTimestamps.all[1];
279
+ if (chunkProducedTokens) {
280
+ const chunkTime = performance.now();
281
+ const producedTokens = chunkProducedCompletionTokens + chunkProducedReasoningTokens;
282
+ totalOutputTokens += producedTokens;
283
+ completionTokens += chunkProducedCompletionTokens;
284
+ reasoningTokens += chunkProducedReasoningTokens;
285
+ const registerTimestamp = (container, count) => {
286
+ for (let i = 0; i < count; i++) {
287
+ container.push(chunkTime);
288
+ }
289
+ };
290
+ if (chunkProducedCompletionTokens > 0) {
291
+ registerTimestamp(tokenTimestamps.completion, chunkProducedCompletionTokens);
292
+ registerTimestamp(tokenTimestamps.all, chunkProducedCompletionTokens);
293
+ }
294
+ if (chunkProducedReasoningTokens > 0) {
295
+ registerTimestamp(tokenTimestamps.reasoning, chunkProducedReasoningTokens);
296
+ registerTimestamp(tokenTimestamps.all, chunkProducedReasoningTokens);
297
+ }
298
+ if (tokenTimestamps.all.length >= 2 && T_second_token === null) {
299
+ T_second_token = tokenTimestamps.all[1];
300
+ }
301
+ const totalTokensLabel = totalOutputTokens === 1 ? 'token' : 'tokens';
302
+ const completionLabel = completionTokens === 1 ? 'token' : 'tokens';
303
+ const reasoningLabel = reasoningTokens === 1 ? 'token' : 'tokens';
304
+ let message = `Receiving Tokens... (total: ${totalOutputTokens} ${totalTokensLabel}`;
305
+ message += ` | completion: ${completionTokens} ${completionLabel}`;
306
+ message += ` | reasoning: ${reasoningTokens} ${reasoningLabel}`;
307
+ if (T_second_token && totalOutputTokens > 1) {
308
+ const elapsedS = (chunkTime - T_second_token) / 1000;
309
+ const tokensSinceSecond = totalOutputTokens - 1;
310
+ const tokensPerSecond = elapsedS > 0 ? tokensSinceSecond / elapsedS : 0;
311
+ message += ` @ ${tokensPerSecond.toFixed(2)} tokens/s`;
312
+ }
313
+ message += ')';
314
+ progress.update(message);
280
315
  }
281
- const totalTokensLabel = totalOutputTokens === 1 ? 'token' : 'tokens';
282
- const completionLabel = completionTokens === 1 ? 'token' : 'tokens';
283
- const reasoningLabel = reasoningTokens === 1 ? 'token' : 'tokens';
284
- let message = `Receiving Tokens... (total: ${totalOutputTokens} ${totalTokensLabel}`;
285
- message += ` | completion: ${completionTokens} ${completionLabel}`;
286
- message += ` | reasoning: ${reasoningTokens} ${reasoningLabel}`;
287
- if (T_second_token && totalOutputTokens > 1) {
288
- const elapsedS = (chunkTime - T_second_token) / 1000;
289
- const tokensSinceSecond = totalOutputTokens - 1;
290
- const tokensPerSecond = elapsedS > 0 ? tokensSinceSecond / elapsedS : 0;
291
- message += ` @ ${tokensPerSecond.toFixed(2)} tokens/s`;
316
+ }
317
+ T_end = performance.now();
318
+ progress.stop('Finished receiving tokens.');
319
+ }
320
+ else {
321
+ // Non-streaming mode
322
+ progress.update('Waiting for response...');
323
+ const responseData = await response.json();
324
+ T_end = performance.now();
325
+ progress.stop('Finished receiving response.');
326
+ // Extract token counts from usage field
327
+ const usage = responseData.usage;
328
+ if (usage) {
329
+ completionTokens = usage.completion_tokens || 0;
330
+ reasoningTokens = usage.reasoning_tokens || 0;
331
+ totalOutputTokens = completionTokens + reasoningTokens;
332
+ }
333
+ else {
334
+ // Fallback: count tokens from the response content
335
+ const message = responseData.choices?.[0]?.message;
336
+ if (message) {
337
+ completionTokens = countTokensInContent(message.content, encoding);
338
+ reasoningTokens = countTokensInContent(message.reasoning, encoding) +
339
+ countTokensInContent(message.reasoning_content, encoding);
340
+ totalOutputTokens = completionTokens + reasoningTokens;
292
341
  }
293
- message += ')';
294
- progress.update(message);
295
342
  }
296
343
  }
297
- const T_end = performance.now();
298
- progress.stop('Finished receiving tokens.');
299
- const totalWallClockTimeMs = T_end - T_start;
300
- // Estimate prompt tokens using tiktoken
301
- const encoding = get_encoding('cl100k_base');
302
- const promptTokens = encoding.encode(prompt).length;
344
+ // Use actual usage data if available, otherwise fall back to estimates
345
+ let promptTokens;
346
+ if (usageData && usageData.prompt_tokens !== undefined && usageData.prompt_tokens !== null) {
347
+ // Override with actual usage data
348
+ promptTokens = usageData.prompt_tokens;
349
+ if (usageData.completion_tokens !== undefined && usageData.completion_tokens !== null) {
350
+ completionTokens = usageData.completion_tokens;
351
+ }
352
+ if (usageData.reasoning_tokens !== undefined && usageData.reasoning_tokens !== null) {
353
+ reasoningTokens = usageData.reasoning_tokens;
354
+ }
355
+ // Recalculate total output tokens from actual usage data
356
+ totalOutputTokens = completionTokens + reasoningTokens;
357
+ }
358
+ else {
359
+ // Estimate prompt tokens using tiktoken
360
+ promptTokens = encoding.encode(prompt).length;
361
+ }
303
362
  encoding.free();
363
+ const totalWallClockTimeMs = T_end - T_start;
304
364
  const inclusiveMetrics = computeViewpointMetrics(tokenTimestamps.all, totalOutputTokens, totalWallClockTimeMs, T_start, T_end);
305
365
  const reasoningOnlyMetrics = computeViewpointMetrics(tokenTimestamps.reasoning, reasoningTokens, totalWallClockTimeMs, T_start, T_end);
306
366
  const completionOnlyMetrics = computeViewpointMetrics(tokenTimestamps.completion, completionTokens, totalWallClockTimeMs, T_start, T_end);
@@ -325,7 +385,7 @@ async function runBenchmark(config) {
325
385
  totalOutputTokens,
326
386
  },
327
387
  };
328
- printResults(results, config.json);
388
+ printResults(results, config.json, config.stream);
329
389
  }
330
390
  catch (error) {
331
391
  console.error('An error occurred during the benchmark:', error);
@@ -337,7 +397,7 @@ async function runBenchmark(config) {
337
397
  * @param results - The benchmark results object.
338
398
  * @param asJson - Whether to print in JSON format.
339
399
  */
340
- function printResults(results, asJson) {
400
+ function printResults(results, asJson, isStreaming) {
341
401
  if (asJson) {
342
402
  // Create a new object for JSON output that doesn't include the full latencies array
343
403
  const jsonOutput = {
@@ -384,34 +444,43 @@ function printResults(results, asJson) {
384
444
  console.log('Metrics');
385
445
  console.log('-----------------------');
386
446
  console.log(`Total Wall Clock Time: ${results.metrics.totalWallClockTimeMs} ms (${ms(results.metrics.totalWallClockTimeMs)})`);
387
- console.log(`Time to Second Token (all tokens): ${results.metrics.timeToSecondTokenMs} ms (${ms(results.metrics.timeToSecondTokenMs)})`);
447
+ if (isStreaming) {
448
+ console.log(`Time to Second Token (all tokens): ${results.metrics.timeToSecondTokenMs} ms (${ms(results.metrics.timeToSecondTokenMs)})`);
449
+ }
388
450
  console.log();
389
451
  console.log('Token Counts');
390
452
  console.log('-----------------------');
391
- console.log(`Prompt Tokens: ${results.tokenCounts.promptTokens} (estimated)`);
453
+ console.log(`Prompt Tokens: ${results.tokenCounts.promptTokens}`);
392
454
  console.log(`Reasoning Tokens: ${results.tokenCounts.reasoningTokens}`);
393
455
  console.log(`Completion Tokens: ${results.tokenCounts.completionTokens}`);
394
456
  console.log(`Total Output Tokens: ${results.tokenCounts.totalOutputTokens}`);
395
457
  console.log();
396
458
  const { reasoningInclusive, reasoningOnly, completionOnly } = results.metrics.views;
397
- console.log('Reasoning + Completion View');
398
- console.log('-----------------------');
399
- console.log(`Time to Second Token: ${reasoningInclusive.timeToSecondTokenMs} ms (${ms(reasoningInclusive.timeToSecondTokenMs)})`);
400
- console.log(`Time to Second Reasoning Token: ${reasoningOnly.timeToSecondTokenMs} ms (${ms(reasoningOnly.timeToSecondTokenMs)})`);
401
- console.log(`Time to Second Completion Token: ${completionOnly.timeToSecondTokenMs} ms (${ms(completionOnly.timeToSecondTokenMs)})`);
402
- console.log(`Output Rate (since 2nd reasoning token): ${reasoningOnly.outputRateTpsFromSecondToken} tokens/sec`);
403
- console.log(`Output Rate (since 2nd completion token): ${completionOnly.outputRateTpsFromSecondToken} tokens/sec`);
404
- console.log(`Output Rate (wall clock): ${reasoningInclusive.outputRateTpsFromRequestStart} tokens/sec`);
405
- console.log();
406
- console.log('Inter-Token Latency (ms)');
407
- console.log('-----------------------');
408
- console.log(`Min: ${reasoningInclusive.interTokenLatencyMs.min} ms`);
409
- console.log(`Mean: ${reasoningInclusive.interTokenLatencyMs.mean} ms`);
410
- console.log(`Median: ${reasoningInclusive.interTokenLatencyMs.median} ms`);
411
- console.log(`Max: ${reasoningInclusive.interTokenLatencyMs.max} ms`);
412
- console.log(`p90: ${reasoningInclusive.interTokenLatencyMs.p90} ms`);
413
- console.log(`p95: ${reasoningInclusive.interTokenLatencyMs.p95} ms`);
414
- console.log(`p99: ${reasoningInclusive.interTokenLatencyMs.p99} ms`);
459
+ if (isStreaming) {
460
+ console.log('Reasoning + Completion View');
461
+ console.log('-----------------------');
462
+ console.log(`Time to Second Token: ${reasoningInclusive.timeToSecondTokenMs} ms (${ms(reasoningInclusive.timeToSecondTokenMs)})`);
463
+ console.log(`Time to Second Reasoning Token: ${reasoningOnly.timeToSecondTokenMs} ms (${ms(reasoningOnly.timeToSecondTokenMs)})`);
464
+ console.log(`Time to Second Completion Token: ${completionOnly.timeToSecondTokenMs} ms (${ms(completionOnly.timeToSecondTokenMs)})`);
465
+ console.log(`Output Rate (since 2nd reasoning token): ${reasoningOnly.outputRateTpsFromSecondToken} tokens/sec`);
466
+ console.log(`Output Rate (since 2nd completion token): ${completionOnly.outputRateTpsFromSecondToken} tokens/sec`);
467
+ console.log(`Output Rate (wall clock): ${reasoningInclusive.outputRateTpsFromRequestStart} tokens/sec`);
468
+ console.log();
469
+ console.log('Inter-Token Latency (ms)');
470
+ console.log('-----------------------');
471
+ console.log(`Min: ${reasoningInclusive.interTokenLatencyMs.min} ms`);
472
+ console.log(`Mean: ${reasoningInclusive.interTokenLatencyMs.mean} ms`);
473
+ console.log(`Median: ${reasoningInclusive.interTokenLatencyMs.median} ms`);
474
+ console.log(`Max: ${reasoningInclusive.interTokenLatencyMs.max} ms`);
475
+ console.log(`p90: ${reasoningInclusive.interTokenLatencyMs.p90} ms`);
476
+ console.log(`p95: ${reasoningInclusive.interTokenLatencyMs.p95} ms`);
477
+ console.log(`p99: ${reasoningInclusive.interTokenLatencyMs.p99} ms`);
478
+ }
479
+ else {
480
+ console.log('Reasoning + Completion View');
481
+ console.log('-----------------------');
482
+ console.log(`Output Rate (wall clock): ${reasoningInclusive.outputRateTpsFromRequestStart.toFixed(2)} tokens/sec`);
483
+ }
415
484
  }
416
485
  // --- Entry Point ---
417
486
  (async () => {
@@ -426,30 +495,37 @@ function printResults(results, asJson) {
426
495
  }
427
496
  })();
428
497
  /**
429
- * Counts token-like entries within a streamed delta field.
498
+ * Counts actual tokens in content using tiktoken encoding.
430
499
  * @param value - The value to examine for token content.
431
- * @returns The number of token-like entries discovered.
500
+ * @param encoding - The tiktoken encoding instance.
501
+ * @returns The number of tokens in the content.
432
502
  */
433
- function countTokenLikeEntries(value) {
503
+ function countTokensInContent(value, encoding) {
434
504
  if (value === null || value === undefined) {
435
505
  return 0;
436
506
  }
437
507
  if (typeof value === 'string') {
438
- return value.trim() ? 1 : 0;
508
+ if (!value.trim()) {
509
+ return 0;
510
+ }
511
+ return encoding.encode(value).length;
439
512
  }
440
513
  if (Array.isArray(value)) {
441
- return value.reduce((total, item) => total + countTokenLikeEntries(item), 0);
514
+ return value.reduce((total, item) => total + countTokensInContent(item, encoding), 0);
442
515
  }
443
516
  if (typeof value === 'object') {
444
517
  const obj = value;
445
518
  if (obj.tokens !== undefined) {
446
- return countTokenLikeEntries(obj.tokens);
519
+ return countTokensInContent(obj.tokens, encoding);
447
520
  }
448
521
  if (obj.content !== undefined) {
449
- return countTokenLikeEntries(obj.content);
522
+ return countTokensInContent(obj.content, encoding);
450
523
  }
451
524
  if (typeof obj.text === 'string') {
452
- return obj.text.trim() ? 1 : 0;
525
+ if (!obj.text.trim()) {
526
+ return 0;
527
+ }
528
+ return encoding.encode(obj.text).length;
453
529
  }
454
530
  return 0;
455
531
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,MAAM,CAAC;AAE1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,4CAA4C;AAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AA8D/B,4BAA4B;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,GAAa,EAAE,CAAS,EAAU,EAAE;IACtD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC,CAAC,CAAE,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;IACrB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;IACrB,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,SAAmB,EAAgB,EAAE;IAClE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC3C,iEAAiE;QACjE,4CAA4C;QAC5C,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEnC,OAAO;QACL,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC,CAAC;AAEF,iCAAiC;AAEjC,MAAM,iBAAiB;IAOrB,YAAoB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;QAN3B,WAAM,GAAuB,OAAO,CAAC,MAAM,CAAC;QAE5C,YAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7D,UAAK,GAAG,CAAC,CAAC;QACV,YAAO,GAAG,EAAE,CAAC;IAEiB,CAAC;IAE/B,MAAM;QACZ,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,YAAoB;QACvB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;;GAGG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C,MAAM,CAAC,cAAc,EAAE;QACtB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sDAAsD;QACnE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;KACjC,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;KACjC,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;KACpC,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;KAChC,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU;KACvD,CAAC;SACD,IAAI,EAAE;SACN,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;SAClB,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,qGAAqG,CAAC,CAAC;QACrH,mEAAmE;QACnE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,MAAM,GAAW;QACrB,UAAU,EAAE,IAAI,CAAC,UAAoB;QACrC,MAAM,EAAE,IAAI,CAAC,MAAgB;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAe;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAgB;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;QACxB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,MAAc;IACxC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7C,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAClC,IAAI,cAAc,GAAkB,IAAI,CAAC;IAEzC,MAAM,eAAe,GAAG;QACtB,GAAG,EAAE,EAAc;QACnB,UAAU,EAAE,EAAc;QAC1B,SAAS,EAAE,EAAc;KAC1B,CAAC;IAEF,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC;QACtB,CAAC;QAED,IAAI,QAAQ,CAAC;QACb,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,QAAQ,GAAG,IAAI,GAAG,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,GAON;YACF,KAAK;YACL,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7C,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,CAAC;QAC9B,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAElC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM;YACR,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YAElF,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAChC,IAAI,6BAA6B,GAAG,CAAC,CAAC;YACtC,IAAI,4BAA4B,GAAG,CAAC,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,SAAS;oBACX,CAAC;oBACD,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC7D,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC9D,MAAM,qBAAqB,GAAG,qBAAqB,CAAE,KAAiC,CAAC,iBAAiB,CAAC,CAAC;oBAC1G,MAAM,cAAc,GAAG,cAAc,GAAG,qBAAqB,CAAC;oBAC9D,IAAI,eAAe,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;wBAC9C,mBAAmB,GAAG,IAAI,CAAC;wBAC3B,6BAA6B,IAAI,eAAe,CAAC;wBACjD,4BAA4B,IAAI,cAAc,CAAC;oBACjD,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,2CAA2C;gBAC7C,CAAC;YACH,CAAC;YAED,IAAI,mBAAmB,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAEpC,MAAM,cAAc,GAAG,6BAA6B,GAAG,4BAA4B,CAAC;gBACpF,iBAAiB,IAAI,cAAc,CAAC;gBACpC,gBAAgB,IAAI,6BAA6B,CAAC;gBAClD,eAAe,IAAI,4BAA4B,CAAC;gBAEhD,MAAM,iBAAiB,GAAG,CAAC,SAAmB,EAAE,KAAa,EAAE,EAAE;oBAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,6BAA6B,GAAG,CAAC,EAAE,CAAC;oBACtC,iBAAiB,CAAC,eAAe,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;oBAC7E,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;gBACxE,CAAC;gBAED,IAAI,4BAA4B,GAAG,CAAC,EAAE,CAAC;oBACrC,iBAAiB,CAAC,eAAe,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;oBAC3E,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;oBAC/D,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;gBAC3C,CAAC;gBAED,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtE,MAAM,eAAe,GAAG,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACpE,MAAM,cAAc,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAElE,IAAI,OAAO,GAAG,+BAA+B,iBAAiB,IAAI,gBAAgB,EAAE,CAAC;gBACrF,OAAO,IAAI,kBAAkB,gBAAgB,IAAI,eAAe,EAAE,CAAC;gBACnE,OAAO,IAAI,iBAAiB,eAAe,IAAI,cAAc,EAAE,CAAC;gBAEhE,IAAI,cAAc,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;oBAC5C,MAAM,QAAQ,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;oBACrD,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,CAAC,CAAC;oBAChD,MAAM,eAAe,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxE,OAAO,IAAI,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;gBACzD,CAAC;gBACD,OAAO,IAAI,GAAG,CAAC;gBACf,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5C,MAAM,oBAAoB,GAAG,KAAK,GAAG,OAAO,CAAC;QAE7C,wCAAwC;QACxC,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACpD,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEhB,MAAM,gBAAgB,GAAG,uBAAuB,CAC9C,eAAe,CAAC,GAAG,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACP,KAAK,CACN,CAAC;QAEF,MAAM,oBAAoB,GAAG,uBAAuB,CAClD,eAAe,CAAC,SAAS,EACzB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,KAAK,CACN,CAAC;QAEF,MAAM,qBAAqB,GAAG,uBAAuB,CACnD,eAAe,CAAC,UAAU,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,KAAK,CACN,CAAC;QAEF,MAAM,OAAO,GAAqB;YAChC,aAAa,EAAE;gBACb,UAAU;gBACV,KAAK;aACN;YACD,OAAO,EAAE;gBACP,oBAAoB,EAAE,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjE,mBAAmB,EAAE,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3F,KAAK,EAAE;oBACL,kBAAkB,EAAE,gBAAgB;oBACpC,aAAa,EAAE,oBAAoB;oBACnC,cAAc,EAAE,qBAAqB;iBACtC;aACF;YACD,WAAW,EAAE;gBACX,YAAY;gBACZ,gBAAgB;gBAChB,eAAe;gBACf,iBAAiB;aAClB;SACF,CAAC;QAEF,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAErC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAGD;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAAyB,EAAE,MAAe;IAC9D,IAAI,MAAM,EAAE,CAAC;QACX,oFAAoF;QACpF,MAAM,UAAU,GAAG;YACjB,GAAG,OAAO;YACV,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,OAAO;gBAClB,KAAK,EAAE;oBACL,kBAAkB,EAAE;wBAClB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB;wBAC3C,mBAAmB,EAAE;4BACnB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,mBAAmB;4BAC/D,SAAS,EAAE,SAAS;yBACrB;qBACF;oBACD,aAAa,EAAE;wBACb,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa;wBACtC,mBAAmB,EAAE;4BACnB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB;4BAC1D,SAAS,EAAE,SAAS;yBACrB;qBACF;oBACD,cAAc,EAAE;wBACd,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc;wBACvC,mBAAmB,EAAE;4BACnB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB;4BAC3D,SAAS,EAAE,SAAS;yBACrB;qBACF;iBACF;aACF;SACF,CAAC;QACF,mDAAmD;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,OAAO,CAAC,oBAAoB,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC/H,OAAO,CAAC,GAAG,CAAC,sCAAsC,OAAO,CAAC,OAAO,CAAC,mBAAmB,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACzI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,WAAW,CAAC,YAAY,cAAc,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAEpF,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,qCAAqC,kBAAkB,CAAC,mBAAmB,QAAQ,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC9I,OAAO,CAAC,GAAG,CAAC,qCAAqC,aAAa,CAAC,mBAAmB,QAAQ,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACpI,OAAO,CAAC,GAAG,CAAC,qCAAqC,cAAc,CAAC,mBAAmB,QAAQ,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACtI,OAAO,CAAC,GAAG,CAAC,4CAA4C,aAAa,CAAC,4BAA4B,aAAa,CAAC,CAAC;IACjH,OAAO,CAAC,GAAG,CAAC,6CAA6C,cAAc,CAAC,4BAA4B,aAAa,CAAC,CAAC;IACnH,OAAO,CAAC,GAAG,CAAC,0CAA0C,kBAAkB,CAAC,6BAA6B,aAAa,CAAC,CAAC;IACrH,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,sBAAsB;AAEtB,CAAC,KAAK,IAAI,EAAE;IACV,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kDAAkD;QAClD,wDAAwD;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,uBAAuB,CAC9B,UAAoB,EACpB,UAAkB,EAClB,oBAA4B,EAC5B,KAAa,EACb,GAAW;IAEX,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,mBAAmB,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpF,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,+BAA+B,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,4BAA4B,GAAG,+BAA+B,GAAG,CAAC;QACtE,CAAC,CAAC,CAAC,oBAAoB,GAAG,+BAA+B,CAAC,GAAG,IAAI;QACjE,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,6BAA6B,GAAG,oBAAoB,GAAG,CAAC;QAC5D,CAAC,CAAC,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,GAAG,IAAI;QACtD,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACpD,SAAS,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO;QACL,YAAY,EAAE,UAAU;QACxB,kBAAkB,EAAE,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7D,mBAAmB,EAAE,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/D,4BAA4B,EAAE,UAAU,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjF,6BAA6B,EAAE,UAAU,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnF,mBAAmB,EAAE;YACnB,GAAG,YAAY;YACf,SAAS;SACV;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "llm-speed-bench",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "A CLI tool to benchmark the performance of OpenAI-compatible LLM providers.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "bin": {
8
- "llm-speed-bench": "./dist/index.js"
8
+ "llm-speed-bench": "dist/index.js"
9
9
  },
10
10
  "files": [
11
11
  "dist"