@absolutejs/absolute 0.19.0-beta.641 → 0.19.0-beta.643
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/ai/client/index.js +173 -19
- package/dist/ai/client/index.js.map +4 -4
- package/dist/ai/client/ui.js +173 -19
- package/dist/ai/client/ui.js.map +4 -4
- package/dist/ai/index.js +546 -64
- package/dist/ai/index.js.map +10 -10
- package/dist/ai/rag/quality.js +173 -19
- package/dist/ai/rag/quality.js.map +4 -4
- package/dist/ai/rag/ui.js +173 -19
- package/dist/ai/rag/ui.js.map +4 -4
- package/dist/angular/ai/index.js +173 -19
- package/dist/angular/ai/index.js.map +4 -4
- package/dist/react/ai/index.js +173 -19
- package/dist/react/ai/index.js.map +4 -4
- package/dist/src/ai/rag/types.d.ts +1 -1
- package/dist/src/vue/ai/useRAG.d.ts +22 -0
- package/dist/src/vue/ai/useRAGChunkPreview.d.ts +14 -0
- package/dist/src/vue/ai/useRAGEvaluate.d.ts +8 -0
- package/dist/svelte/ai/index.js +173 -19
- package/dist/svelte/ai/index.js.map +4 -4
- package/dist/types/ai.d.ts +59 -0
- package/dist/vue/ai/index.js +173 -19
- package/dist/vue/ai/index.js.map +4 -4
- package/package.json +7 -7
package/dist/ai/client/ui.js
CHANGED
|
@@ -2925,21 +2925,40 @@ var formatTraceCountDelta = (value) => `${value >= 0 ? "+" : ""}${value}`;
|
|
|
2925
2925
|
var buildComparisonOverviewPresentation = (input) => {
|
|
2926
2926
|
const winnerLabel = input.resolveLabel(input.summary.bestByPassingRate);
|
|
2927
2927
|
const winnerEntry = input.resolveEntry(input.summary.bestByPassingRate);
|
|
2928
|
+
const rows = [
|
|
2929
|
+
{
|
|
2930
|
+
label: "Best passing rate",
|
|
2931
|
+
value: input.resolveLabel(input.summary.bestByPassingRate)
|
|
2932
|
+
},
|
|
2933
|
+
{
|
|
2934
|
+
label: "Best average F1",
|
|
2935
|
+
value: input.resolveLabel(input.summary.bestByAverageF1)
|
|
2936
|
+
},
|
|
2937
|
+
{
|
|
2938
|
+
label: "Fastest",
|
|
2939
|
+
value: input.resolveLabel(input.summary.fastest)
|
|
2940
|
+
}
|
|
2941
|
+
];
|
|
2942
|
+
if (input.summary.bestByMultivectorCollapsedCases) {
|
|
2943
|
+
rows.push({
|
|
2944
|
+
label: "Best multivector collapse",
|
|
2945
|
+
value: input.resolveLabel(input.summary.bestByMultivectorCollapsedCases)
|
|
2946
|
+
});
|
|
2947
|
+
}
|
|
2948
|
+
if (input.summary.bestByMultivectorLexicalHitCases) {
|
|
2949
|
+
rows.push({
|
|
2950
|
+
label: "Best multivector lexical hits",
|
|
2951
|
+
value: input.resolveLabel(input.summary.bestByMultivectorLexicalHitCases)
|
|
2952
|
+
});
|
|
2953
|
+
}
|
|
2954
|
+
if (input.summary.bestByMultivectorVectorHitCases) {
|
|
2955
|
+
rows.push({
|
|
2956
|
+
label: "Best multivector vector hits",
|
|
2957
|
+
value: input.resolveLabel(input.summary.bestByMultivectorVectorHitCases)
|
|
2958
|
+
});
|
|
2959
|
+
}
|
|
2928
2960
|
return {
|
|
2929
|
-
rows
|
|
2930
|
-
{
|
|
2931
|
-
label: "Best passing rate",
|
|
2932
|
-
value: input.resolveLabel(input.summary.bestByPassingRate)
|
|
2933
|
-
},
|
|
2934
|
-
{
|
|
2935
|
-
label: "Best average F1",
|
|
2936
|
-
value: input.resolveLabel(input.summary.bestByAverageF1)
|
|
2937
|
-
},
|
|
2938
|
-
{
|
|
2939
|
-
label: "Fastest",
|
|
2940
|
-
value: input.resolveLabel(input.summary.fastest)
|
|
2941
|
-
}
|
|
2942
|
-
],
|
|
2961
|
+
rows,
|
|
2943
2962
|
winnerLabel,
|
|
2944
2963
|
summary: winnerEntry ? `passing ${formatEvaluationPassingRate(winnerEntry.response.passingRate)} \xB7 f1 ${winnerEntry.response.summary.averageF1.toFixed(3)} \xB7 latency ${winnerEntry.response.summary.averageLatencyMs.toFixed(1)}ms` : "Stored benchmark comparison"
|
|
2945
2964
|
};
|
|
@@ -2987,6 +3006,9 @@ var buildRAGComparisonTraceSummaryRows = (entry) => {
|
|
|
2987
3006
|
}, {
|
|
2988
3007
|
label: "Variants",
|
|
2989
3008
|
value: formatTraceRatio(trace.variantCases, trace.totalCases)
|
|
3009
|
+
}, {
|
|
3010
|
+
label: "Multivector",
|
|
3011
|
+
value: `${formatTraceRatio(trace.multiVectorCases, trace.totalCases)} \xB7 collapse ${formatTraceRatio(trace.multiVectorCollapsedCases, trace.totalCases)} \xB7 lexical ${formatTraceRatio(trace.multiVectorLexicalHitCases, trace.totalCases)} \xB7 vector ${formatTraceRatio(trace.multiVectorVectorHitCases, trace.totalCases)}`
|
|
2990
3012
|
}, {
|
|
2991
3013
|
label: "TopK",
|
|
2992
3014
|
value: `${trace.averageCandidateTopK.toFixed(1)} / ${trace.averageLexicalTopK.toFixed(1)}`
|
|
@@ -4043,6 +4065,15 @@ var evaluateRetrievalComparisonGate = ({
|
|
|
4043
4065
|
if (typeof policy.maxElapsedMsDelta === "number" && delta.elapsedMsDelta > policy.maxElapsedMsDelta) {
|
|
4044
4066
|
reasons.push(`elapsed ms delta ${delta.elapsedMsDelta} exceeds ${policy.maxElapsedMsDelta}`);
|
|
4045
4067
|
}
|
|
4068
|
+
if (typeof policy.minMultiVectorCollapsedCasesDelta === "number" && (delta.multiVectorCollapsedCasesDelta ?? 0) < policy.minMultiVectorCollapsedCasesDelta) {
|
|
4069
|
+
reasons.push(`multivector collapsed delta ${delta.multiVectorCollapsedCasesDelta ?? 0} is below ${policy.minMultiVectorCollapsedCasesDelta}`);
|
|
4070
|
+
}
|
|
4071
|
+
if (typeof policy.minMultiVectorLexicalHitCasesDelta === "number" && (delta.multiVectorLexicalHitCasesDelta ?? 0) < policy.minMultiVectorLexicalHitCasesDelta) {
|
|
4072
|
+
reasons.push(`multivector lexical-hit delta ${delta.multiVectorLexicalHitCasesDelta ?? 0} is below ${policy.minMultiVectorLexicalHitCasesDelta}`);
|
|
4073
|
+
}
|
|
4074
|
+
if (typeof policy.minMultiVectorVectorHitCasesDelta === "number" && (delta.multiVectorVectorHitCasesDelta ?? 0) < policy.minMultiVectorVectorHitCasesDelta) {
|
|
4075
|
+
reasons.push(`multivector vector-hit delta ${delta.multiVectorVectorHitCasesDelta ?? 0} is below ${policy.minMultiVectorVectorHitCasesDelta}`);
|
|
4076
|
+
}
|
|
4046
4077
|
if (reasons.length === 0) {
|
|
4047
4078
|
return {
|
|
4048
4079
|
policy,
|
|
@@ -4545,6 +4576,34 @@ var buildTraceSummaryAggregate = ({
|
|
|
4545
4576
|
direction: "flat",
|
|
4546
4577
|
metric: "variantCases",
|
|
4547
4578
|
previous: 0
|
|
4579
|
+
},
|
|
4580
|
+
{
|
|
4581
|
+
current: 0,
|
|
4582
|
+
delta: 0,
|
|
4583
|
+
direction: "flat",
|
|
4584
|
+
metric: "multiVectorCases",
|
|
4585
|
+
previous: 0
|
|
4586
|
+
},
|
|
4587
|
+
{
|
|
4588
|
+
current: 0,
|
|
4589
|
+
delta: 0,
|
|
4590
|
+
direction: "flat",
|
|
4591
|
+
metric: "multiVectorVectorHitCases",
|
|
4592
|
+
previous: 0
|
|
4593
|
+
},
|
|
4594
|
+
{
|
|
4595
|
+
current: 0,
|
|
4596
|
+
delta: 0,
|
|
4597
|
+
direction: "flat",
|
|
4598
|
+
metric: "multiVectorLexicalHitCases",
|
|
4599
|
+
previous: 0
|
|
4600
|
+
},
|
|
4601
|
+
{
|
|
4602
|
+
current: 0,
|
|
4603
|
+
delta: 0,
|
|
4604
|
+
direction: "flat",
|
|
4605
|
+
metric: "multiVectorCollapsedCases",
|
|
4606
|
+
previous: 0
|
|
4548
4607
|
}
|
|
4549
4608
|
];
|
|
4550
4609
|
return {
|
|
@@ -4639,6 +4698,34 @@ var buildTraceSummaryAggregate = ({
|
|
|
4639
4698
|
direction: buildTraceSummaryDirection(latest.variantCases - previous.variantCases),
|
|
4640
4699
|
metric: "variantCases",
|
|
4641
4700
|
previous: previous.variantCases
|
|
4701
|
+
},
|
|
4702
|
+
{
|
|
4703
|
+
current: latest.multiVectorCases,
|
|
4704
|
+
delta: latest.multiVectorCases - previous.multiVectorCases,
|
|
4705
|
+
direction: buildTraceSummaryDirection(latest.multiVectorCases - previous.multiVectorCases),
|
|
4706
|
+
metric: "multiVectorCases",
|
|
4707
|
+
previous: previous.multiVectorCases
|
|
4708
|
+
},
|
|
4709
|
+
{
|
|
4710
|
+
current: latest.multiVectorVectorHitCases,
|
|
4711
|
+
delta: latest.multiVectorVectorHitCases - previous.multiVectorVectorHitCases,
|
|
4712
|
+
direction: buildTraceSummaryDirection(latest.multiVectorVectorHitCases - previous.multiVectorVectorHitCases),
|
|
4713
|
+
metric: "multiVectorVectorHitCases",
|
|
4714
|
+
previous: previous.multiVectorVectorHitCases
|
|
4715
|
+
},
|
|
4716
|
+
{
|
|
4717
|
+
current: latest.multiVectorLexicalHitCases,
|
|
4718
|
+
delta: latest.multiVectorLexicalHitCases - previous.multiVectorLexicalHitCases,
|
|
4719
|
+
direction: buildTraceSummaryDirection(latest.multiVectorLexicalHitCases - previous.multiVectorLexicalHitCases),
|
|
4720
|
+
metric: "multiVectorLexicalHitCases",
|
|
4721
|
+
previous: previous.multiVectorLexicalHitCases
|
|
4722
|
+
},
|
|
4723
|
+
{
|
|
4724
|
+
current: latest.multiVectorCollapsedCases,
|
|
4725
|
+
delta: latest.multiVectorCollapsedCases - previous.multiVectorCollapsedCases,
|
|
4726
|
+
direction: buildTraceSummaryDirection(latest.multiVectorCollapsedCases - previous.multiVectorCollapsedCases),
|
|
4727
|
+
metric: "multiVectorCollapsedCases",
|
|
4728
|
+
previous: previous.multiVectorCollapsedCases
|
|
4642
4729
|
}
|
|
4643
4730
|
];
|
|
4644
4731
|
const absoluteSorted = [...aggregate].sort((left, right) => Math.abs(right.delta) - Math.abs(left.delta) || left.metric.localeCompare(right.metric));
|
|
@@ -4689,6 +4776,10 @@ var summarizeRetrievalTraces = (traces) => {
|
|
|
4689
4776
|
let roundRobinCases = 0;
|
|
4690
4777
|
let transformedCases = 0;
|
|
4691
4778
|
let variantCases = 0;
|
|
4779
|
+
let multiVectorCases = 0;
|
|
4780
|
+
let multiVectorVectorHitCases = 0;
|
|
4781
|
+
let multiVectorLexicalHitCases = 0;
|
|
4782
|
+
let multiVectorCollapsedCases = 0;
|
|
4692
4783
|
let finalCountSum = 0;
|
|
4693
4784
|
let vectorCountSum = 0;
|
|
4694
4785
|
let lexicalCountSum = 0;
|
|
@@ -4715,6 +4806,18 @@ var summarizeRetrievalTraces = (traces) => {
|
|
|
4715
4806
|
if (trace.variantQueries.length > 0) {
|
|
4716
4807
|
variantCases += 1;
|
|
4717
4808
|
}
|
|
4809
|
+
if (trace.multiVector?.configured) {
|
|
4810
|
+
multiVectorCases += 1;
|
|
4811
|
+
}
|
|
4812
|
+
if ((trace.multiVector?.vectorVariantHits ?? 0) > 0) {
|
|
4813
|
+
multiVectorVectorHitCases += 1;
|
|
4814
|
+
}
|
|
4815
|
+
if ((trace.multiVector?.lexicalVariantHits ?? 0) > 0) {
|
|
4816
|
+
multiVectorLexicalHitCases += 1;
|
|
4817
|
+
}
|
|
4818
|
+
if ((trace.multiVector?.collapsedParents ?? 0) > 0) {
|
|
4819
|
+
multiVectorCollapsedCases += 1;
|
|
4820
|
+
}
|
|
4718
4821
|
finalCountSum += trace.resultCounts.final;
|
|
4719
4822
|
vectorCountSum += trace.resultCounts.vector;
|
|
4720
4823
|
lexicalCountSum += trace.resultCounts.lexical;
|
|
@@ -4736,6 +4839,10 @@ var summarizeRetrievalTraces = (traces) => {
|
|
|
4736
4839
|
totalCases,
|
|
4737
4840
|
transformedCases,
|
|
4738
4841
|
variantCases,
|
|
4842
|
+
multiVectorCases,
|
|
4843
|
+
multiVectorVectorHitCases,
|
|
4844
|
+
multiVectorLexicalHitCases,
|
|
4845
|
+
multiVectorCollapsedCases,
|
|
4739
4846
|
vectorCases
|
|
4740
4847
|
};
|
|
4741
4848
|
};
|
|
@@ -8318,13 +8425,19 @@ var buildRAGRetrievalComparisonDecisionSummary = ({
|
|
|
8318
8425
|
const delta = baselineEntry && candidateEntry ? {
|
|
8319
8426
|
averageF1Delta: candidateEntry.response.summary.averageF1 - baselineEntry.response.summary.averageF1,
|
|
8320
8427
|
elapsedMsDelta: candidateEntry.response.elapsedMs - baselineEntry.response.elapsedMs,
|
|
8321
|
-
passingRateDelta: candidateEntry.response.passingRate - baselineEntry.response.passingRate
|
|
8428
|
+
passingRateDelta: candidateEntry.response.passingRate - baselineEntry.response.passingRate,
|
|
8429
|
+
multiVectorCollapsedCasesDelta: (candidateEntry.traceSummary?.multiVectorCollapsedCases ?? 0) - (baselineEntry.traceSummary?.multiVectorCollapsedCases ?? 0),
|
|
8430
|
+
multiVectorLexicalHitCasesDelta: (candidateEntry.traceSummary?.multiVectorLexicalHitCases ?? 0) - (baselineEntry.traceSummary?.multiVectorLexicalHitCases ?? 0),
|
|
8431
|
+
multiVectorVectorHitCasesDelta: (candidateEntry.traceSummary?.multiVectorVectorHitCases ?? 0) - (baselineEntry.traceSummary?.multiVectorVectorHitCases ?? 0)
|
|
8322
8432
|
} : undefined;
|
|
8323
8433
|
return {
|
|
8324
8434
|
baseline: baselineEntry ? {
|
|
8325
8435
|
averageF1: baselineEntry.response.summary.averageF1,
|
|
8326
8436
|
elapsedMs: baselineEntry.response.elapsedMs,
|
|
8327
8437
|
label: baselineEntry.label,
|
|
8438
|
+
multiVectorCollapsedCases: baselineEntry.traceSummary?.multiVectorCollapsedCases,
|
|
8439
|
+
multiVectorLexicalHitCases: baselineEntry.traceSummary?.multiVectorLexicalHitCases,
|
|
8440
|
+
multiVectorVectorHitCases: baselineEntry.traceSummary?.multiVectorVectorHitCases,
|
|
8328
8441
|
passingRate: baselineEntry.response.passingRate,
|
|
8329
8442
|
retrievalId: baselineEntry.retrievalId
|
|
8330
8443
|
} : undefined,
|
|
@@ -8333,6 +8446,9 @@ var buildRAGRetrievalComparisonDecisionSummary = ({
|
|
|
8333
8446
|
averageF1: candidateEntry.response.summary.averageF1,
|
|
8334
8447
|
elapsedMs: candidateEntry.response.elapsedMs,
|
|
8335
8448
|
label: candidateEntry.label,
|
|
8449
|
+
multiVectorCollapsedCases: candidateEntry.traceSummary?.multiVectorCollapsedCases,
|
|
8450
|
+
multiVectorLexicalHitCases: candidateEntry.traceSummary?.multiVectorLexicalHitCases,
|
|
8451
|
+
multiVectorVectorHitCases: candidateEntry.traceSummary?.multiVectorVectorHitCases,
|
|
8336
8452
|
passingRate: candidateEntry.response.passingRate,
|
|
8337
8453
|
retrievalId: candidateEntry.retrievalId
|
|
8338
8454
|
} : undefined,
|
|
@@ -8341,7 +8457,10 @@ var buildRAGRetrievalComparisonDecisionSummary = ({
|
|
|
8341
8457
|
fastest: comparison.summary.fastest,
|
|
8342
8458
|
gate: evaluateRetrievalComparisonGate({ delta, policy }),
|
|
8343
8459
|
winnerByAverageF1: comparison.summary.bestByAverageF1,
|
|
8344
|
-
winnerByPassingRate: comparison.summary.bestByPassingRate
|
|
8460
|
+
winnerByPassingRate: comparison.summary.bestByPassingRate,
|
|
8461
|
+
winnerByMultivectorCollapsedCases: comparison.summary.bestByMultivectorCollapsedCases,
|
|
8462
|
+
winnerByMultivectorLexicalHitCases: comparison.summary.bestByMultivectorLexicalHitCases,
|
|
8463
|
+
winnerByMultivectorVectorHitCases: comparison.summary.bestByMultivectorVectorHitCases
|
|
8345
8464
|
};
|
|
8346
8465
|
};
|
|
8347
8466
|
var loadRAGSearchTracePruneHistory = async ({
|
|
@@ -9003,6 +9122,32 @@ var summarizeEvaluationResponseComparison = (entries, idKey) => {
|
|
|
9003
9122
|
fastest: getId(byLatency[0])
|
|
9004
9123
|
};
|
|
9005
9124
|
};
|
|
9125
|
+
var selectComparisonEntryByTraceMetric = (entries, idKey, metric) => {
|
|
9126
|
+
const ranked = [...entries].sort((left, right) => {
|
|
9127
|
+
const leftMetric = left.traceSummary?.[metric] ?? 0;
|
|
9128
|
+
const rightMetric = right.traceSummary?.[metric] ?? 0;
|
|
9129
|
+
if (rightMetric !== leftMetric) {
|
|
9130
|
+
return rightMetric - leftMetric;
|
|
9131
|
+
}
|
|
9132
|
+
const leftEvidenceScore = (left.traceSummary?.multiVectorCollapsedCases ?? 0) + (left.traceSummary?.multiVectorLexicalHitCases ?? 0) + (left.traceSummary?.multiVectorVectorHitCases ?? 0);
|
|
9133
|
+
const rightEvidenceScore = (right.traceSummary?.multiVectorCollapsedCases ?? 0) + (right.traceSummary?.multiVectorLexicalHitCases ?? 0) + (right.traceSummary?.multiVectorVectorHitCases ?? 0);
|
|
9134
|
+
if (rightEvidenceScore !== leftEvidenceScore) {
|
|
9135
|
+
return rightEvidenceScore - leftEvidenceScore;
|
|
9136
|
+
}
|
|
9137
|
+
if (right.response.passingRate !== left.response.passingRate) {
|
|
9138
|
+
return right.response.passingRate - left.response.passingRate;
|
|
9139
|
+
}
|
|
9140
|
+
if (right.response.summary.averageF1 !== left.response.summary.averageF1) {
|
|
9141
|
+
return right.response.summary.averageF1 - left.response.summary.averageF1;
|
|
9142
|
+
}
|
|
9143
|
+
return left.response.summary.averageLatencyMs - right.response.summary.averageLatencyMs;
|
|
9144
|
+
});
|
|
9145
|
+
const winner = ranked[0];
|
|
9146
|
+
if (!winner || (winner.traceSummary?.[metric] ?? 0) === 0) {
|
|
9147
|
+
return;
|
|
9148
|
+
}
|
|
9149
|
+
return typeof winner[idKey] === "string" ? winner[idKey] : undefined;
|
|
9150
|
+
};
|
|
9006
9151
|
var resolveRetrievalMode = (candidate) => {
|
|
9007
9152
|
if (!candidate.retrieval) {
|
|
9008
9153
|
return "vector";
|
|
@@ -9092,7 +9237,11 @@ var compareRAGRetrievalTraceSummaries = (current, previous) => ({
|
|
|
9092
9237
|
totalCasesDelta: current.totalCases - previous.totalCases,
|
|
9093
9238
|
transformedCasesDelta: current.transformedCases - previous.transformedCases,
|
|
9094
9239
|
vectorCasesDelta: current.vectorCases - previous.vectorCases,
|
|
9095
|
-
variantCasesDelta: current.variantCases - previous.variantCases
|
|
9240
|
+
variantCasesDelta: current.variantCases - previous.variantCases,
|
|
9241
|
+
multiVectorCasesDelta: current.multiVectorCases - previous.multiVectorCases,
|
|
9242
|
+
multiVectorVectorHitCasesDelta: current.multiVectorVectorHitCases - previous.multiVectorVectorHitCases,
|
|
9243
|
+
multiVectorLexicalHitCasesDelta: current.multiVectorLexicalHitCases - previous.multiVectorLexicalHitCases,
|
|
9244
|
+
multiVectorCollapsedCasesDelta: current.multiVectorCollapsedCases - previous.multiVectorCollapsedCases
|
|
9096
9245
|
});
|
|
9097
9246
|
var buildSearchTraceResultSnapshots = (results) => results.map((result) => ({
|
|
9098
9247
|
chunkId: result.chunkId,
|
|
@@ -9657,7 +9806,12 @@ var summarizeRAGEvaluationCase = ({
|
|
|
9657
9806
|
var summarizeRAGRerankerComparison = (entries) => {
|
|
9658
9807
|
return summarizeEvaluationResponseComparison(entries, "rerankerId");
|
|
9659
9808
|
};
|
|
9660
|
-
var summarizeRAGRetrievalComparison = (entries) =>
|
|
9809
|
+
var summarizeRAGRetrievalComparison = (entries) => ({
|
|
9810
|
+
...summarizeEvaluationResponseComparison(entries, "retrievalId"),
|
|
9811
|
+
bestByMultivectorCollapsedCases: selectComparisonEntryByTraceMetric(entries, "retrievalId", "multiVectorCollapsedCases"),
|
|
9812
|
+
bestByMultivectorLexicalHitCases: selectComparisonEntryByTraceMetric(entries, "retrievalId", "multiVectorLexicalHitCases"),
|
|
9813
|
+
bestByMultivectorVectorHitCases: selectComparisonEntryByTraceMetric(entries, "retrievalId", "multiVectorVectorHitCases")
|
|
9814
|
+
});
|
|
9661
9815
|
export {
|
|
9662
9816
|
resolveRAGStreamStage,
|
|
9663
9817
|
buildRAGStreamProgress as getRAGStreamProgress,
|
|
@@ -9678,5 +9832,5 @@ export {
|
|
|
9678
9832
|
buildRAGAnswerWorkflowState
|
|
9679
9833
|
};
|
|
9680
9834
|
|
|
9681
|
-
//# debugId=
|
|
9835
|
+
//# debugId=FA06D1065D409D0964756E2164756E21
|
|
9682
9836
|
//# sourceMappingURL=ui.js.map
|