@oneuptime/common 10.5.1 → 10.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/StatusPageGroup.ts +212 -0
- package/Models/DatabaseModels/StatusPageResource.ts +86 -0
- package/Models/DatabaseModels/TelemetryException.ts +10 -0
- package/Server/API/StatusPageAPI.ts +15 -0
- package/Server/API/TelemetryAPI.ts +406 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1779879993421-MigrationName.ts +68 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1779882573463-MigrationName.ts +65 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +5 -0
- package/Server/Services/ExceptionAggregationService.ts +51 -3
- package/Server/Services/LogAggregationService.ts +1 -0
- package/Server/Services/MetricAggregationService.ts +227 -0
- package/Server/Services/OpenTelemetryIngestService.ts +101 -1
- package/Server/Services/StatusPageService.ts +5 -0
- package/Server/Services/TraceAggregationService.ts +1 -0
- package/Server/Utils/Monitor/MonitorLogUtil.ts +146 -6
- package/Server/Utils/Telemetry/ResourceFacetResolver.ts +299 -0
- package/Types/Monitor/MonitorStep.ts +85 -0
- package/Types/StatusPage/StatusPageGroupViewMode.ts +6 -0
- package/UI/Components/Accordion/Accordion.tsx +32 -26
- package/UI/Components/LogsViewer/LogsViewer.tsx +10 -0
- package/UI/Components/LogsViewer/components/FacetSection.tsx +40 -3
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +23 -0
- package/UI/Components/LogsViewer/types.ts +2 -0
- package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +8 -0
- package/UI/Components/TelemetryViewer/components/TelemetryFacetSection.tsx +49 -3
- package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +16 -0
- package/UI/Components/TelemetryViewer/types.ts +12 -0
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js +217 -0
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +88 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +11 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +15 -0
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +285 -0
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779879993421-MigrationName.js +42 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779879993421-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779882573463-MigrationName.js +28 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779882573463-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/ExceptionAggregationService.js +44 -4
- package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +159 -0
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -0
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +60 -3
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +5 -0
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +127 -4
- package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +204 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStep.js +59 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/StatusPage/StatusPageGroupViewMode.js +7 -0
- package/build/dist/Types/StatusPage/StatusPageGroupViewMode.js.map +1 -0
- package/build/dist/UI/Components/Accordion/Accordion.js +11 -11
- package/build/dist/UI/Components/Accordion/Accordion.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/FacetSection.js +26 -6
- package/build/dist/UI/Components/LogsViewer/components/FacetSection.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +12 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/types.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSection.js +32 -6
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSection.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +6 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,23 +1,49 @@
|
|
|
1
|
-
import React, { useState, useMemo, } from "react";
|
|
1
|
+
import React, { useEffect, useRef, useState, useMemo, } from "react";
|
|
2
2
|
import TelemetryFacetValueRow from "./TelemetryFacetValueRow";
|
|
3
3
|
import Icon from "../../Icon/Icon";
|
|
4
4
|
import IconProp from "../../../../Types/Icon/IconProp";
|
|
5
5
|
const DEFAULT_VISIBLE_COUNT = 5;
|
|
6
6
|
const SEARCH_THRESHOLD = 6;
|
|
7
|
+
const SEARCH_DEBOUNCE_MS = 300;
|
|
7
8
|
const TelemetryFacetSection = (props) => {
|
|
8
9
|
var _a;
|
|
9
10
|
const [isExpanded, setIsExpanded] = useState(props.defaultExpanded !== false);
|
|
10
11
|
const [showAll, setShowAll] = useState(false);
|
|
11
12
|
const [searchText, setSearchText] = useState("");
|
|
12
|
-
const showSearch = props.
|
|
13
|
+
const showSearch = props.alwaysShowSearch === true ||
|
|
14
|
+
props.onSearchChange !== undefined ||
|
|
15
|
+
props.values.length >= SEARCH_THRESHOLD;
|
|
16
|
+
/*
|
|
17
|
+
* Debounce the upward search emit so each keystroke doesn't fire a
|
|
18
|
+
* round-trip. Local filter still applies immediately for fast feedback
|
|
19
|
+
* against the currently loaded set.
|
|
20
|
+
*/
|
|
21
|
+
const onSearchChange = props.onSearchChange;
|
|
22
|
+
const lastEmittedRef = useRef(null);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (!onSearchChange) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const trimmed = searchText.trim();
|
|
28
|
+
if (lastEmittedRef.current === trimmed) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const handle = setTimeout(() => {
|
|
32
|
+
lastEmittedRef.current = trimmed;
|
|
33
|
+
onSearchChange(trimmed);
|
|
34
|
+
}, SEARCH_DEBOUNCE_MS);
|
|
35
|
+
return () => {
|
|
36
|
+
clearTimeout(handle);
|
|
37
|
+
};
|
|
38
|
+
}, [searchText, onSearchChange]);
|
|
13
39
|
const filteredValues = useMemo(() => {
|
|
14
40
|
if (!searchText.trim()) {
|
|
15
41
|
return props.values;
|
|
16
42
|
}
|
|
17
43
|
const query = searchText.toLowerCase().trim();
|
|
18
44
|
return props.values.filter((facet) => {
|
|
19
|
-
var _a, _b;
|
|
20
|
-
const displayName = (
|
|
45
|
+
var _a, _b, _c;
|
|
46
|
+
const displayName = (_c = (_a = facet.displayName) !== null && _a !== void 0 ? _a : (_b = props.valueDisplayMap) === null || _b === void 0 ? void 0 : _b[facet.value]) !== null && _c !== void 0 ? _c : facet.value;
|
|
21
47
|
return displayName.toLowerCase().includes(query);
|
|
22
48
|
});
|
|
23
49
|
}, [props.values, props.valueDisplayMap, searchText]);
|
|
@@ -48,8 +74,8 @@ const TelemetryFacetSection = (props) => {
|
|
|
48
74
|
setSearchText(e.target.value);
|
|
49
75
|
}, className: "w-full rounded border border-gray-200 bg-gray-50 px-2 py-1 text-[11px] text-gray-700 placeholder-gray-400 outline-none focus:border-indigo-300 focus:bg-white focus:ring-1 focus:ring-indigo-200" }))),
|
|
50
76
|
displayedValues.map((facet) => {
|
|
51
|
-
var _a, _b, _c;
|
|
52
|
-
return (React.createElement(TelemetryFacetValueRow, { key: facet.value, value: facet.value, displayValue: (_a = props.valueDisplayMap) === null ||
|
|
77
|
+
var _a, _b, _c, _d;
|
|
78
|
+
return (React.createElement(TelemetryFacetValueRow, { key: facet.value, value: facet.value, displayValue: (_a = facet.displayName) !== null && _a !== void 0 ? _a : (_b = props.valueDisplayMap) === null || _b === void 0 ? void 0 : _b[facet.value], count: facet.count, maxCount: maxCount, color: (_c = props.valueColorMap) === null || _c === void 0 ? void 0 : _c[facet.value], isActive: ((_d = props.activeValues) === null || _d === void 0 ? void 0 : _d.has(facet.value)) || false, onInclude: (value) => {
|
|
53
79
|
props.onIncludeValue(props.facetKey, value);
|
|
54
80
|
}, onExclude: (value) => {
|
|
55
81
|
props.onExcludeValue(props.facetKey, value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelemetryFacetSection.js","sourceRoot":"","sources":["../../../../../../UI/Components/TelemetryViewer/components/TelemetryFacetSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,QAAQ,EACR,OAAO,GACR,MAAM,OAAO,CAAC;AAEf,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,QAAQ,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"TelemetryFacetSection.js","sourceRoot":"","sources":["../../../../../../UI/Components/TelemetryViewer/components/TelemetryFacetSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,GACR,MAAM,OAAO,CAAC;AAEf,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AAwBvD,MAAM,qBAAqB,GAAW,CAAC,CAAC;AACxC,MAAM,gBAAgB,GAAW,CAAC,CAAC;AACnC,MAAM,kBAAkB,GAAW,GAAG,CAAC;AAEvC,MAAM,qBAAqB,GAAkD,CAC3E,KAAiC,EACnB,EAAE;;IAChB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAC1C,KAAK,CAAC,eAAe,KAAK,KAAK,CAChC,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACvD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAEzD,MAAM,UAAU,GACd,KAAK,CAAC,gBAAgB,KAAK,IAAI;QAC/B,KAAK,CAAC,cAAc,KAAK,SAAS;QAClC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC;IAE1C;;;;OAIG;IACH,MAAM,cAAc,GAClB,KAAK,CAAC,cAAc,CAAC;IACvB,MAAM,cAAc,GAA0C,MAAM,CAElE,IAAI,CAAC,CAAC;IACR,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAW,UAAU,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,cAAc,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAkC,UAAU,CAAC,GAAG,EAAE;YAC5D,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;YACjC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAEjC,MAAM,cAAc,GAAsB,OAAO,CAAC,GAAG,EAAE;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,GAAW,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAiB,EAAE,EAAE;;YAC/C,MAAM,WAAW,GACf,MAAA,MAAA,KAAK,CAAC,WAAW,mCACjB,MAAA,KAAK,CAAC,eAAe,0CAAG,KAAK,CAAC,KAAK,CAAC,mCACpC,KAAK,CAAC,KAAK,CAAC;YACd,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtD,MAAM,YAAY,GAChB,MAAA,KAAK,CAAC,mBAAmB,mCAAI,qBAAqB,CAAC;IAErD,MAAM,eAAe,GAAsB,UAAU,CAAC,IAAI,EAAE;QAC1D,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,OAAO;YACP,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAE5C,MAAM,OAAO,GACX,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,MAAM,GAAG,YAAY,CAAC;IAE7D,MAAM,QAAQ,GACZ,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE;YACpC,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC,CAAC,CACH;QACH,CAAC,CAAC,CAAC,CAAC;IAER,MAAM,WAAW,GAAW,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,OAAO,CACL,6BAAK,SAAS,EAAC,+BAA+B;QAC5C,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8DAA8D,EACxE,OAAO,EAAE,GAAG,EAAE;gBACZ,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;YAED,6BAAK,SAAS,EAAC,2BAA2B;gBACxC,8BAAM,SAAS,EAAC,kEAAkE,IAC/E,KAAK,CAAC,KAAK,CACP;gBACN,WAAW,GAAG,CAAC,IAAI,CAClB,8BAAM,SAAS,EAAC,oIAAoI,IACjJ,WAAW,CACP,CACR,CACG;YACN,oBAAC,IAAI,IACH,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAC/D,SAAS,EAAC,uBAAuB,GACjC,CACK;QAER,UAAU,IAAI,CACb,6BAAK,SAAS,EAAC,WAAW;YACvB,UAAU,IAAI,CACb,6BAAK,SAAS,EAAC,WAAW;gBACxB,+BACE,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,UAAU,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EACrD,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAsC,EAAE,EAAE;wBACnD,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC,EACD,SAAS,EAAC,kMAAkM,GAC5M,CACE,CACP;YAEA,eAAe,CAAC,GAAG,CAAC,CAAC,KAAiB,EAAE,EAAE;;gBACzC,OAAO,CACL,oBAAC,sBAAsB,IACrB,GAAG,EAAE,KAAK,CAAC,KAAK,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,YAAY,EACV,MAAA,KAAK,CAAC,WAAW,mCAAI,MAAA,KAAK,CAAC,eAAe,0CAAG,KAAK,CAAC,KAAK,CAAC,EAE3D,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAA,KAAK,CAAC,aAAa,0CAAG,KAAK,CAAC,KAAK,CAAC,EACzC,QAAQ,EAAE,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAI,KAAK,EACvD,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;wBAC3B,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC9C,CAAC,EACD,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;wBAC3B,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC9C,CAAC,GACD,CACH,CAAC;YACJ,CAAC,CAAC;YAED,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAC/B,2BAAG,SAAS,EAAC,qCAAqC,IAC/C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CACzD,CACL;YAEA,OAAO,IAAI,CACV,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yEAAyE,EACnF,OAAO,EAAE,GAAG,EAAE;oBACZ,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC,IAEA,OAAO;gBACN,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,OAAO,CAC1C,CACV,CACG,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -34,7 +34,12 @@ const TelemetryFacetSidebar = (props) => {
|
|
|
34
34
|
React.createElement(ComponentLoader, null))),
|
|
35
35
|
React.createElement("div", { className: "flex-1 overflow-y-auto" }, orderedConfigs.map((config) => {
|
|
36
36
|
const values = props.facetData[config.key] || [];
|
|
37
|
-
|
|
37
|
+
const onSearchChange = config.serverSearchable && props.onFacetSearchChange
|
|
38
|
+
? (text) => {
|
|
39
|
+
props.onFacetSearchChange(config.key, text);
|
|
40
|
+
}
|
|
41
|
+
: undefined;
|
|
42
|
+
return (React.createElement(TelemetryFacetSection, { key: config.key, facetKey: config.key, title: config.title, values: values, onIncludeValue: props.onIncludeFilter, onExcludeValue: props.onExcludeFilter, valueDisplayMap: config.valueDisplayMap, valueColorMap: config.valueColorMap, activeValues: activeValuesByKey[config.key], onSearchChange: onSearchChange }));
|
|
38
43
|
}))));
|
|
39
44
|
};
|
|
40
45
|
export default TelemetryFacetSidebar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelemetryFacetSidebar.js","sourceRoot":"","sources":["../../../../../../UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAmC,OAAO,EAAE,MAAM,OAAO,CAAC;AAExE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,eAAe,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"TelemetryFacetSidebar.js","sourceRoot":"","sources":["../../../../../../UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx"],"names":[],"mappings":"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"}
|