From 9d8ccf040d32e09e10a806d5eb503438e60b7007 Mon Sep 17 00:00:00 2001 From: Will Seabrook Date: Tue, 24 Sep 2024 09:42:45 +0100 Subject: [PATCH] feat(version-picker): reintroduce the version picker for storybook - add better error handling for failed requests - add mock data as a fallback for testing purposes - add the version picker addon back into the storybook manager --- .storybook/manager.ts | 15 +- .storybook/version-picker/fetch-data.ts | 25 +- .storybook/version-picker/index.tsx | 13 +- .../version-picker/mock-data/metadata.json | 685 ++++++++++++++++++ 4 files changed, 729 insertions(+), 9 deletions(-) create mode 100644 .storybook/version-picker/mock-data/metadata.json diff --git a/.storybook/manager.ts b/.storybook/manager.ts index 4801f31be9..d35dcdba85 100644 --- a/.storybook/manager.ts +++ b/.storybook/manager.ts @@ -1,7 +1,20 @@ -import { addons } from "@storybook/manager-api"; +import { addons, types } from "@storybook/manager-api"; import sageTheme from "./sage-docs-theme"; +import { ADDON_ID, TOOL_ID } from "./version-picker/constants"; +import { VersionPicker } from "./version-picker"; import { API_PreparedIndexEntry, API_StatusObject } from "@storybook/types"; +if (process.env.NODE_ENV === "production") { + addons.register(ADDON_ID, () => { + addons.add(TOOL_ID, { + type: types.TOOL, + title: "Version picker", + match: ({ viewMode }) => !!(viewMode && viewMode.match(/^(story|docs)$/)), + render: VersionPicker, + }); + }); +} + addons.setConfig({ theme: sageTheme, panelPosition: "bottom", diff --git a/.storybook/version-picker/fetch-data.ts b/.storybook/version-picker/fetch-data.ts index 03053c6d64..b67efb2894 100644 --- a/.storybook/version-picker/fetch-data.ts +++ b/.storybook/version-picker/fetch-data.ts @@ -1,15 +1,28 @@ +import mockData from "./mock-data/metadata.json"; + interface Metadata { versions: Record; } -const fetchData = async () => { - const response = await fetch( - "https://carbon.sage.com/metadata/metadata.json" - ); +const fetchData = async (): Promise => { + try { + const response = await fetch( + "https://carbon.sage.com/metadata/metadata.json" + ); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const metadata: Metadata = await response.json(); - const metadata: Metadata = await response.json(); + return metadata; + } catch (error) { + console.error("Failed to fetch metadata:", error); - return metadata; + console.log("Returning mock data as fallback"); + return mockData as Metadata; + } }; export default fetchData; diff --git a/.storybook/version-picker/index.tsx b/.storybook/version-picker/index.tsx index 554bfed37d..c15dc0ab6e 100644 --- a/.storybook/version-picker/index.tsx +++ b/.storybook/version-picker/index.tsx @@ -49,8 +49,17 @@ export const VersionPicker = () => { } const getData = async () => { - const data = await fetchData(); - setVersions(data.versions); + try { + const data = await fetchData(); + if (data) { + setVersions(data.versions); + } else { + throw new Error("Failed to fetch metadata"); + } + } catch (error) { + console.error("Failed to retrieve version data:", error); + setVersions(undefined); + } }; getData(); diff --git a/.storybook/version-picker/mock-data/metadata.json b/.storybook/version-picker/mock-data/metadata.json new file mode 100644 index 0000000000..7c0f7df68f --- /dev/null +++ b/.storybook/version-picker/mock-data/metadata.json @@ -0,0 +1,685 @@ +{ + "versions": { + "v142.11.6": "https://carbon.sage.com/v/142.11.6/index.html", + "v142.11.5": "https://carbon.sage.com/v/142.11.5/index.html", + "v142.11.4": "https://carbon.sage.com/v/142.11.4/index.html", + "v142.11.3": "https://carbon.sage.com/v/142.11.3/index.html", + "v142.11.2": "https://carbon.sage.com/v/142.11.2/index.html", + "v142.11.1": "https://carbon.sage.com/v/142.11.1/index.html", + "v142.11.0": "https://carbon.sage.com/v/142.11.0/index.html", + "v142.10.0": "https://carbon.sage.com/v/142.10.0/index.html", + "v142.9.1": "https://carbon.sage.com/v/142.9.1/index.html", + "v142.9.0": "https://carbon.sage.com/v/142.9.0/index.html", + "v142.8.1": "https://carbon.sage.com/v/142.8.1/index.html", + "v142.8.0": "https://carbon.sage.com/v/142.8.0/index.html", + "v142.7.0": "https://carbon.sage.com/v/142.7.0/index.html", + "v142.6.0": "https://carbon.sage.com/v/142.6.0/index.html", + "v142.5.1": "https://carbon.sage.com/v/142.5.1/index.html", + "v142.5.0": "https://carbon.sage.com/v/142.5.0/index.html", + "v142.4.1": "https://carbon.sage.com/v/142.4.1/index.html", + "v142.4.0": "https://carbon.sage.com/v/142.4.0/index.html", + "v142.3.2": "https://carbon.sage.com/v/142.3.2/index.html", + "v142.3.1": "https://carbon.sage.com/v/142.3.1/index.html", + "v142.3.0": "https://carbon.sage.com/v/142.3.0/index.html", + "v142.2.2": "https://carbon.sage.com/v/142.2.2/index.html", + "v142.2.1": "https://carbon.sage.com/v/142.2.1/index.html", + "v142.2.0": "https://carbon.sage.com/v/142.2.0/index.html", + "v142.1.0": "https://carbon.sage.com/v/142.1.0/index.html", + "v142.0.4": "https://carbon.sage.com/v/142.0.4/index.html", + "v142.0.3": "https://carbon.sage.com/v/142.0.3/index.html", + "v142.0.2": "https://carbon.sage.com/v/142.0.2/index.html", + "v142.0.1": "https://carbon.sage.com/v/142.0.1/index.html", + "v142.0.0": "https://carbon.sage.com/v/142.0.0/index.html", + "v141.4.4": "https://carbon.sage.com/v/141.4.4/index.html", + "v141.4.3": "https://carbon.sage.com/v/141.4.3/index.html", + "v141.4.2": "https://carbon.sage.com/v/141.4.2/index.html", + "v141.4.1": "https://carbon.sage.com/v/141.4.1/index.html", + "v141.4.0": "https://carbon.sage.com/v/141.4.0/index.html", + "v141.3.1": "https://carbon.sage.com/v/141.3.1/index.html", + "v141.3.0": "https://carbon.sage.com/v/141.3.0/index.html", + "v141.2.1": "https://carbon.sage.com/v/141.2.1/index.html", + "v141.2.0": "https://carbon.sage.com/v/141.2.0/index.html", + "v141.1.1": "https://carbon.sage.com/v/141.1.1/index.html", + "v141.1.0": "https://carbon.sage.com/v/141.1.0/index.html", + "v141.0.8": "https://carbon.sage.com/v/141.0.8/index.html", + "v141.0.7": "https://carbon.sage.com/v/141.0.7/index.html", + "v141.0.6": "https://carbon.sage.com/v/141.0.6/index.html", + "v141.0.5": "https://carbon.sage.com/v/141.0.5/index.html", + "v141.0.4": "https://carbon.sage.com/v/141.0.4/index.html", + "v141.0.3": "https://carbon.sage.com/v/141.0.3/index.html", + "v141.0.2": "https://carbon.sage.com/v/141.0.2/index.html", + "v141.0.1": "https://carbon.sage.com/v/141.0.1/index.html", + "v141.0.0": "https://carbon.sage.com/v/141.0.0/index.html", + "v140.2.0": "https://carbon.sage.com/v/140.2.0/index.html", + "v140.1.1": "https://carbon.sage.com/v/140.1.1/index.html", + "v140.1.0": "https://carbon.sage.com/v/140.1.0/index.html", + "v140.0.1": "https://carbon.sage.com/v/140.0.1/index.html", + "v140.0.0": "https://carbon.sage.com/v/140.0.0/index.html", + "v139.0.0": "https://carbon.sage.com/v/139.0.0/index.html", + "v138.2.2": "https://carbon.sage.com/v/138.2.2/index.html", + "v138.2.1": "https://carbon.sage.com/v/138.2.1/index.html", + "v138.2.0": "https://carbon.sage.com/v/138.2.0/index.html", + "v138.1.1": "https://carbon.sage.com/v/138.1.1/index.html", + "v138.1.0": "https://carbon.sage.com/v/138.1.0/index.html", + "v138.0.2": "https://carbon.sage.com/v/138.0.2/index.html", + "v138.0.1": "https://carbon.sage.com/v/138.0.1/index.html", + "v138.0.0": "https://carbon.sage.com/v/138.0.0/index.html", + "v137.0.0": "https://carbon.sage.com/v/137.0.0/index.html", + "v136.0.4": "https://carbon.sage.com/v/136.0.4/index.html", + "v136.0.3": "https://carbon.sage.com/v/136.0.3/index.html", + "v136.0.2": "https://carbon.sage.com/v/136.0.2/index.html", + "v136.0.1": "https://carbon.sage.com/v/136.0.1/index.html", + "v136.0.0": "https://carbon.sage.com/v/136.0.0/index.html", + "v135.1.3": "https://carbon.sage.com/v/135.1.3/index.html", + "v135.1.2": "https://carbon.sage.com/v/135.1.2/index.html", + "v135.1.1": "https://carbon.sage.com/v/135.1.1/index.html", + "v135.1.0": "https://carbon.sage.com/v/135.1.0/index.html", + "v135.0.0": "https://carbon.sage.com/v/135.0.0/index.html", + "v134.2.0": "https://carbon.sage.com/v/134.2.0/index.html", + "v134.1.2": "https://carbon.sage.com/v/134.1.2/index.html", + "v134.1.1": "https://carbon.sage.com/v/134.1.1/index.html", + "v134.1.0": "https://carbon.sage.com/v/134.1.0/index.html", + "v134.0.4": "https://carbon.sage.com/v/134.0.4/index.html", + "v134.0.3": "https://carbon.sage.com/v/134.0.3/index.html", + "v134.0.2": "https://carbon.sage.com/v/134.0.2/index.html", + "v134.0.1": "https://carbon.sage.com/v/134.0.1/index.html", + "v134.0.0": "https://carbon.sage.com/v/134.0.0/index.html", + "v133.2.0": "https://carbon.sage.com/v/133.2.0/index.html", + "v133.1.1": "https://carbon.sage.com/v/133.1.1/index.html", + "v133.1.0": "https://carbon.sage.com/v/133.1.0/index.html", + "v133.0.5": "https://carbon.sage.com/v/133.0.5/index.html", + "v133.0.4": "https://carbon.sage.com/v/133.0.4/index.html", + "v133.0.3": "https://carbon.sage.com/v/133.0.3/index.html", + "v133.0.2": "https://carbon.sage.com/v/133.0.2/index.html", + "v133.0.1": "https://carbon.sage.com/v/133.0.1/index.html", + "v133.0.0": "https://carbon.sage.com/v/133.0.0/index.html", + "v132.2.1": "https://carbon.sage.com/v/132.2.1/index.html", + "v132.2.0": "https://carbon.sage.com/v/132.2.0/index.html", + "v132.1.0": "https://carbon.sage.com/v/132.1.0/index.html", + "v132.0.0": "https://carbon.sage.com/v/132.0.0/index.html", + "v131.1.0": "https://carbon.sage.com/v/131.1.0/index.html", + "v131.0.1": "https://carbon.sage.com/v/131.0.1/index.html", + "v131.0.0": "https://carbon.sage.com/v/131.0.0/index.html", + "v130.0.0": "https://carbon.sage.com/v/130.0.0/index.html", + "v129.0.0": "https://carbon.sage.com/v/129.0.0/index.html", + "v128.4.1": "https://carbon.sage.com/v/128.4.1/index.html", + "v128.4.0": "https://carbon.sage.com/v/128.4.0/index.html", + "v128.3.1": "https://carbon.sage.com/v/128.3.1/index.html", + "v128.3.0": "https://carbon.sage.com/v/128.3.0/index.html", + "v128.2.0": "https://carbon.sage.com/v/128.2.0/index.html", + "v128.1.2": "https://carbon.sage.com/v/128.1.2/index.html", + "v128.0.0": "https://carbon.sage.com/v/128.0.0/index.html", + "v127.1.1": "https://carbon.sage.com/v/127.1.1/index.html", + "v127.1.0": "https://carbon.sage.com/v/127.1.0/index.html", + "v127.0.4": "https://carbon.sage.com/v/127.0.4/index.html", + "v127.0.3": "https://carbon.sage.com/v/127.0.3/index.html", + "v127.0.2": "https://carbon.sage.com/v/127.0.2/index.html", + "v127.0.1": "https://carbon.sage.com/v/127.0.1/index.html", + "v127.0.0": "https://carbon.sage.com/v/127.0.0/index.html", + "v126.10.1": "https://carbon.sage.com/v/126.10.1/index.html", + "v126.10.0": "https://carbon.sage.com/v/126.10.0/index.html", + "v126.9.1": "https://carbon.sage.com/v/126.9.1/index.html", + "v126.9.0": "https://carbon.sage.com/v/126.9.0/index.html", + "v126.8.0": "https://carbon.sage.com/v/126.8.0/index.html", + "v126.7.1": "https://carbon.sage.com/v/126.7.1/index.html", + "v126.7.0": "https://carbon.sage.com/v/126.7.0/index.html", + "v126.6.0": "https://carbon.sage.com/v/126.6.0/index.html", + "v126.5.3": "https://carbon.sage.com/v/126.5.3/index.html", + "v126.5.2": "https://carbon.sage.com/v/126.5.2/index.html", + "v126.5.1": "https://carbon.sage.com/v/126.5.1/index.html", + "v126.5.0": "https://carbon.sage.com/v/126.5.0/index.html", + "v126.4.3": "https://carbon.sage.com/v/126.4.3/index.html", + "v126.4.2": "https://carbon.sage.com/v/126.4.2/index.html", + "v126.4.1": "https://carbon.sage.com/v/126.4.1/index.html", + "v126.4.0": "https://carbon.sage.com/v/126.4.0/index.html", + "v126.3.1": "https://carbon.sage.com/v/126.3.1/index.html", + "v126.3.0": "https://carbon.sage.com/v/126.3.0/index.html", + "v126.2.1": "https://carbon.sage.com/v/126.2.1/index.html", + "v126.2.0": "https://carbon.sage.com/v/126.2.0/index.html", + "v126.1.0": "https://carbon.sage.com/v/126.1.0/index.html", + "v126.0.1": "https://carbon.sage.com/v/126.0.1/index.html", + "v126.0.0": "https://carbon.sage.com/v/126.0.0/index.html", + "v125.13.0": "https://carbon.sage.com/v/125.13.0/index.html", + "v125.12.2": "https://carbon.sage.com/v/125.12.2/index.html", + "v125.12.1": "https://carbon.sage.com/v/125.12.1/index.html", + "v125.12.0": "https://carbon.sage.com/v/125.12.0/index.html", + "v125.11.1": "https://carbon.sage.com/v/125.11.1/index.html", + "v125.11.0": "https://carbon.sage.com/v/125.11.0/index.html", + "v125.10.0": "https://carbon.sage.com/v/125.10.0/index.html", + "v125.9.3": "https://carbon.sage.com/v/125.9.3/index.html", + "v125.9.2": "https://carbon.sage.com/v/125.9.2/index.html", + "v125.9.1": "https://carbon.sage.com/v/125.9.1/index.html", + "v125.9.0": "https://carbon.sage.com/v/125.9.0/index.html", + "v125.8.0": "https://carbon.sage.com/v/125.8.0/index.html", + "v125.7.0": "https://carbon.sage.com/v/125.7.0/index.html", + "v125.6.0": "https://carbon.sage.com/v/125.6.0/index.html", + "v125.5.1": "https://carbon.sage.com/v/125.5.1/index.html", + "v125.5.0": "https://carbon.sage.com/v/125.5.0/index.html", + "v125.4.0": "https://carbon.sage.com/v/125.4.0/index.html", + "v125.3.0": "https://carbon.sage.com/v/125.3.0/index.html", + "v125.2.2": "https://carbon.sage.com/v/125.2.2/index.html", + "v125.2.1": "https://carbon.sage.com/v/125.2.1/index.html", + "v125.2.0": "https://carbon.sage.com/v/125.2.0/index.html", + "v125.1.0": "https://carbon.sage.com/v/125.1.0/index.html", + "v125.0.2": "https://carbon.sage.com/v/125.0.2/index.html", + "v125.0.1": "https://carbon.sage.com/v/125.0.1/index.html", + "v125.0.0": "https://carbon.sage.com/v/125.0.0/index.html", + "v124.6.1": "https://carbon.sage.com/v/124.6.1/index.html", + "v124.6.0": "https://carbon.sage.com/v/124.6.0/index.html", + "v124.5.0": "https://carbon.sage.com/v/124.5.0/index.html", + "v124.4.1": "https://carbon.sage.com/v/124.4.1/index.html", + "v124.4.0": "https://carbon.sage.com/v/124.4.0/index.html", + "v124.3.1": "https://carbon.sage.com/v/124.3.1/index.html", + "v124.3.0": "https://carbon.sage.com/v/124.3.0/index.html", + "v124.2.2": "https://carbon.sage.com/v/124.2.2/index.html", + "v124.2.1": "https://carbon.sage.com/v/124.2.1/index.html", + "v124.2.0": "https://carbon.sage.com/v/124.2.0/index.html", + "v124.1.0": "https://carbon.sage.com/v/124.1.0/index.html", + "v124.0.0": "https://carbon.sage.com/v/124.0.0/index.html", + "v123.11.2": "https://carbon.sage.com/v/123.11.2/index.html", + "v123.11.1": "https://carbon.sage.com/v/123.11.1/index.html", + "v123.11.0": "https://carbon.sage.com/v/123.11.0/index.html", + "v123.10.3": "https://carbon.sage.com/v/123.10.3/index.html", + "v123.10.2": "https://carbon.sage.com/v/123.10.2/index.html", + "v123.10.1": "https://carbon.sage.com/v/123.10.1/index.html", + "v123.10.0": "https://carbon.sage.com/v/123.10.0/index.html", + "v123.9.1": "https://carbon.sage.com/v/123.9.1/index.html", + "v123.9.0": "https://carbon.sage.com/v/123.9.0/index.html", + "v123.8.0": "https://carbon.sage.com/v/123.8.0/index.html", + "v123.7.2": "https://carbon.sage.com/v/123.7.2/index.html", + "v123.7.1": "https://carbon.sage.com/v/123.7.1/index.html", + "v123.7.0": "https://carbon.sage.com/v/123.7.0/index.html", + "v123.6.0": "https://carbon.sage.com/v/123.6.0/index.html", + "v123.5.1": "https://carbon.sage.com/v/123.5.1/index.html", + "v123.5.0": "https://carbon.sage.com/v/123.5.0/index.html", + "v123.4.4": "https://carbon.sage.com/v/123.4.4/index.html", + "v123.4.3": "https://carbon.sage.com/v/123.4.3/index.html", + "v123.4.2": "https://carbon.sage.com/v/123.4.2/index.html", + "v123.4.1": "https://carbon.sage.com/v/123.4.1/index.html", + "v123.4.0": "https://carbon.sage.com/v/123.4.0/index.html", + "v123.3.0": "https://carbon.sage.com/v/123.3.0/index.html", + "v123.2.2": "https://carbon.sage.com/v/123.2.2/index.html", + "v123.2.1": "https://carbon.sage.com/v/123.2.1/index.html", + "v123.2.0": "https://carbon.sage.com/v/123.2.0/index.html", + "v123.1.0": "https://carbon.sage.com/v/123.1.0/index.html", + "v123.0.1": "https://carbon.sage.com/v/123.0.1/index.html", + "v123.0.0": "https://carbon.sage.com/v/123.0.0/index.html", + "v122.0.1": "https://carbon.sage.com/v/122.0.1/index.html", + "v122.0.0": "https://carbon.sage.com/v/122.0.0/index.html", + "v121.2.0": "https://carbon.sage.com/v/121.2.0/index.html", + "v121.1.0": "https://carbon.sage.com/v/121.1.0/index.html", + "v121.0.2": "https://carbon.sage.com/v/121.0.2/index.html", + "v121.0.1": "https://carbon.sage.com/v/121.0.1/index.html", + "v121.0.0": "https://carbon.sage.com/v/121.0.0/index.html", + "v120.6.1": "https://carbon.sage.com/v/120.6.1/index.html", + "v120.6.0": "https://carbon.sage.com/v/120.6.0/index.html", + "v120.5.0": "https://carbon.sage.com/v/120.5.0/index.html", + "v120.4.0": "https://carbon.sage.com/v/120.4.0/index.html", + "v120.3.1": "https://carbon.sage.com/v/120.3.1/index.html", + "v120.3.0": "https://carbon.sage.com/v/120.3.0/index.html", + "v120.2.1": "https://carbon.sage.com/v/120.2.1/index.html", + "v120.2.0": "https://carbon.sage.com/v/120.2.0/index.html", + "v120.1.0": "https://carbon.sage.com/v/120.1.0/index.html", + "v120.0.0": "https://carbon.sage.com/v/120.0.0/index.html", + "v119.12.2": "https://carbon.sage.com/v/119.12.2/index.html", + "v119.12.1": "https://carbon.sage.com/v/119.12.1/index.html", + "v119.12.0": "https://carbon.sage.com/v/119.12.0/index.html", + "v119.11.0": "https://carbon.sage.com/v/119.11.0/index.html", + "v119.10.2": "https://carbon.sage.com/v/119.10.2/index.html", + "v119.10.1": "https://carbon.sage.com/v/119.10.1/index.html", + "v119.10.0": "https://carbon.sage.com/v/119.10.0/index.html", + "v119.9.3": "https://carbon.sage.com/v/119.9.3/index.html", + "v119.9.2": "https://carbon.sage.com/v/119.9.2/index.html", + "v119.9.1": "https://carbon.sage.com/v/119.9.1/index.html", + "v119.9.0": "https://carbon.sage.com/v/119.9.0/index.html", + "v119.8.0": "https://carbon.sage.com/v/119.8.0/index.html", + "v119.7.2": "https://carbon.sage.com/v/119.7.2/index.html", + "v119.7.1": "https://carbon.sage.com/v/119.7.1/index.html", + "v119.7.0": "https://carbon.sage.com/v/119.7.0/index.html", + "v119.6.4": "https://carbon.sage.com/v/119.6.4/index.html", + "v119.6.3": "https://carbon.sage.com/v/119.6.3/index.html", + "v119.6.2": "https://carbon.sage.com/v/119.6.2/index.html", + "v119.6.1": "https://carbon.sage.com/v/119.6.1/index.html", + "v119.6.0": "https://carbon.sage.com/v/119.6.0/index.html", + "v119.5.1": "https://carbon.sage.com/v/119.5.1/index.html", + "v119.5.0": "https://carbon.sage.com/v/119.5.0/index.html", + "v119.4.2": "https://carbon.sage.com/v/119.4.2/index.html", + "v119.4.1": "https://carbon.sage.com/v/119.4.1/index.html", + "v119.4.0": "https://carbon.sage.com/v/119.4.0/index.html", + "v119.3.4": "https://carbon.sage.com/v/119.3.4/index.html", + "v119.3.3": "https://carbon.sage.com/v/119.3.3/index.html", + "v119.3.2": "https://carbon.sage.com/v/119.3.2/index.html", + "v119.3.1": "https://carbon.sage.com/v/119.3.1/index.html", + "v119.3.0": "https://carbon.sage.com/v/119.3.0/index.html", + "v119.2.0": "https://carbon.sage.com/v/119.2.0/index.html", + "v119.1.1": "https://carbon.sage.com/v/119.1.1/index.html", + "v119.1.0": "https://carbon.sage.com/v/119.1.0/index.html", + "v119.0.1": "https://carbon.sage.com/v/119.0.1/index.html", + "v119.0.0": "https://carbon.sage.com/v/119.0.0/index.html", + "v118.6.0": "https://carbon.sage.com/v/118.6.0/index.html", + "v118.5.2": "https://carbon.sage.com/v/118.5.2/index.html", + "v118.5.1": "https://carbon.sage.com/v/118.5.1/index.html", + "v118.5.0": "https://carbon.sage.com/v/118.5.0/index.html", + "v118.4.1": "https://carbon.sage.com/v/118.4.1/index.html", + "v118.4.0": "https://carbon.sage.com/v/118.4.0/index.html", + "v118.3.3": "https://carbon.sage.com/v/118.3.3/index.html", + "v118.3.2": "https://carbon.sage.com/v/118.3.2/index.html", + "v118.3.1": "https://carbon.sage.com/v/118.3.1/index.html", + "v118.3.0": "https://carbon.sage.com/v/118.3.0/index.html", + "v118.2.1": "https://carbon.sage.com/v/118.2.1/index.html", + "v118.2.0": "https://carbon.sage.com/v/118.2.0/index.html", + "v118.1.1": "https://carbon.sage.com/v/118.1.1/index.html", + "v118.1.0": "https://carbon.sage.com/v/118.1.0/index.html", + "v118.0.0": "https://carbon.sage.com/v/118.0.0/index.html", + "v117.7.1": "https://carbon.sage.com/v/117.7.1/index.html", + "v117.7.0": "https://carbon.sage.com/v/117.7.0/index.html", + "v117.6.1": "https://carbon.sage.com/v/117.6.1/index.html", + "v117.6.0": "https://carbon.sage.com/v/117.6.0/index.html", + "v117.5.0": "https://carbon.sage.com/v/117.5.0/index.html", + "v117.4.1": "https://carbon.sage.com/v/117.4.1/index.html", + "v117.4.0": "https://carbon.sage.com/v/117.4.0/index.html", + "v117.3.0": "https://carbon.sage.com/v/117.3.0/index.html", + "v117.2.2": "https://carbon.sage.com/v/117.2.2/index.html", + "v117.2.1": "https://carbon.sage.com/v/117.2.1/index.html", + "v117.2.0": "https://carbon.sage.com/v/117.2.0/index.html", + "v117.1.2": "https://carbon.sage.com/v/117.1.2/index.html", + "v117.1.1": "https://carbon.sage.com/v/117.1.1/index.html", + "v117.1.0": "https://carbon.sage.com/v/117.1.0/index.html", + "v117.0.0": "https://carbon.sage.com/v/117.0.0/index.html", + "v116.2.2": "https://carbon.sage.com/v/116.2.2/index.html", + "v116.2.1": "https://carbon.sage.com/v/116.2.1/index.html", + "v116.2.0": "https://carbon.sage.com/v/116.2.0/index.html", + "v116.1.3": "https://carbon.sage.com/v/116.1.3/index.html", + "v116.1.2": "https://carbon.sage.com/v/116.1.2/index.html", + "v116.1.1": "https://carbon.sage.com/v/116.1.1/index.html", + "v116.1.0": "https://carbon.sage.com/v/116.1.0/index.html", + "v116.0.1": "https://carbon.sage.com/v/116.0.1/index.html", + "v116.0.0": "https://carbon.sage.com/v/116.0.0/index.html", + "v115.0.2": "https://carbon.sage.com/v/115.0.2/index.html", + "v115.0.1": "https://carbon.sage.com/v/115.0.1/index.html", + "v115.0.0": "https://carbon.sage.com/v/115.0.0/index.html", + "v114.18.2": "https://carbon.sage.com/v/114.18.2/index.html", + "v114.18.1": "https://carbon.sage.com/v/114.18.1/index.html", + "v114.18.0": "https://carbon.sage.com/v/114.18.0/index.html", + "v114.17.6": "https://carbon.sage.com/v/114.17.6/index.html", + "v114.17.5": "https://carbon.sage.com/v/114.17.5/index.html", + "v114.17.4": "https://carbon.sage.com/v/114.17.4/index.html", + "v114.17.3": "https://carbon.sage.com/v/114.17.3/index.html", + "v114.17.2": "https://carbon.sage.com/v/114.17.2/index.html", + "v114.17.1": "https://carbon.sage.com/v/114.17.1/index.html", + "v114.17.0": "https://carbon.sage.com/v/114.17.0/index.html", + "v114.16.0": "https://carbon.sage.com/v/114.16.0/index.html", + "v114.15.0": "https://carbon.sage.com/v/114.15.0/index.html", + "v114.14.1": "https://carbon.sage.com/v/114.14.1/index.html", + "v114.14.0": "https://carbon.sage.com/v/114.14.0/index.html", + "v114.13.2": "https://carbon.sage.com/v/114.13.2/index.html", + "v114.13.1": "https://carbon.sage.com/v/114.13.1/index.html", + "v114.12.3": "https://carbon.sage.com/v/114.12.3/index.html", + "v114.12.2": "https://carbon.sage.com/v/114.12.2/index.html", + "v114.12.1": "https://carbon.sage.com/v/114.12.1/index.html", + "v114.12.0": "https://carbon.sage.com/v/114.12.0/index.html", + "v114.11.0": "https://carbon.sage.com/v/114.11.0/index.html", + "v114.10.1": "https://carbon.sage.com/v/114.10.1/index.html", + "v114.10.0": "https://carbon.sage.com/v/114.10.0/index.html", + "v114.9.1": "https://carbon.sage.com/v/114.9.1/index.html", + "v114.9.0": "https://carbon.sage.com/v/114.9.0/index.html", + "v114.8.0": "https://carbon.sage.com/v/114.8.0/index.html", + "v114.7.1": "https://carbon.sage.com/v/114.7.1/index.html", + "v114.7.0": "https://carbon.sage.com/v/114.7.0/index.html", + "v114.6.1": "https://carbon.sage.com/v/114.6.1/index.html", + "v114.6.0": "https://carbon.sage.com/v/114.6.0/index.html", + "v114.5.1": "https://carbon.sage.com/v/114.5.1/index.html", + "v114.5.0": "https://carbon.sage.com/v/114.5.0/index.html", + "v114.4.0": "https://carbon.sage.com/v/114.4.0/index.html", + "v114.3.0": "https://carbon.sage.com/v/114.3.0/index.html", + "v114.2.1": "https://carbon.sage.com/v/114.2.1/index.html", + "v114.2.0": "https://carbon.sage.com/v/114.2.0/index.html", + "v114.1.0": "https://carbon.sage.com/v/114.1.0/index.html", + "v114.0.0": "https://carbon.sage.com/v/114.0.0/index.html", + "v113.0.3": "https://carbon.sage.com/v/113.0.3/index.html", + "v113.0.2": "https://carbon.sage.com/v/113.0.2/index.html", + "v113.0.1": "https://carbon.sage.com/v/113.0.1/index.html", + "v113.0.0": "https://carbon.sage.com/v/113.0.0/index.html", + "v112.0.4": "https://carbon.sage.com/v/112.0.4/index.html", + "v112.0.3": "https://carbon.sage.com/v/112.0.3/index.html", + "v112.0.2": "https://carbon.sage.com/v/112.0.2/index.html", + "v112.0.1": "https://carbon.sage.com/v/112.0.1/index.html", + "v112.0.0": "https://carbon.sage.com/v/112.0.0/index.html", + "v111.22.4": "https://carbon.sage.com/v/111.22.4/index.html", + "v111.22.3": "https://carbon.sage.com/v/111.22.3/index.html", + "v111.22.2": "https://carbon.sage.com/v/111.22.2/index.html", + "v111.22.1": "https://carbon.sage.com/v/111.22.1/index.html", + "v111.22.0": "https://carbon.sage.com/v/111.22.0/index.html", + "v111.21.1": "https://carbon.sage.com/v/111.21.1/index.html", + "v111.21.0": "https://carbon.sage.com/v/111.21.0/index.html", + "v111.20.0": "https://carbon.sage.com/v/111.20.0/index.html", + "v111.19.0": "https://carbon.sage.com/v/111.19.0/index.html", + "v111.18.0": "https://carbon.sage.com/v/111.18.0/index.html", + "v111.17.0": "https://carbon.sage.com/v/111.17.0/index.html", + "v111.16.0": "https://carbon.sage.com/v/111.16.0/index.html", + "v111.15.0": "https://carbon.sage.com/v/111.15.0/index.html", + "v111.14.0": "https://carbon.sage.com/v/111.14.0/index.html", + "v111.13.2": "https://carbon.sage.com/v/111.13.2/index.html", + "v111.13.1": "https://carbon.sage.com/v/111.13.1/index.html", + "v111.13.0": "https://carbon.sage.com/v/111.13.0/index.html", + "v111.12.7": "https://carbon.sage.com/v/111.12.7/index.html", + "v111.12.6": "https://carbon.sage.com/v/111.12.6/index.html", + "v111.12.5": "https://carbon.sage.com/v/111.12.5/index.html", + "v111.12.4": "https://carbon.sage.com/v/111.12.4/index.html", + "v111.12.3": "https://carbon.sage.com/v/111.12.3/index.html", + "v111.12.2": "https://carbon.sage.com/v/111.12.2/index.html", + "v111.12.1": "https://carbon.sage.com/v/111.12.1/index.html", + "v111.12.0": "https://carbon.sage.com/v/111.12.0/index.html", + "v111.11.0": "https://carbon.sage.com/v/111.11.0/index.html", + "v111.10.0": "https://carbon.sage.com/v/111.10.0/index.html", + "v111.9.1": "https://carbon.sage.com/v/111.9.1/index.html", + "v111.9.0": "https://carbon.sage.com/v/111.9.0/index.html", + "v111.8.5": "https://carbon.sage.com/v/111.8.5/index.html", + "v111.8.4": "https://carbon.sage.com/v/111.8.4/index.html", + "v111.8.3": "https://carbon.sage.com/v/111.8.3/index.html", + "v111.8.2": "https://carbon.sage.com/v/111.8.2/index.html", + "v111.8.1": "https://carbon.sage.com/v/111.8.1/index.html", + "v111.8.0": "https://carbon.sage.com/v/111.8.0/index.html", + "v111.7.0": "https://carbon.sage.com/v/111.7.0/index.html", + "v111.6.0": "https://carbon.sage.com/v/111.6.0/index.html", + "v111.5.3": "https://carbon.sage.com/v/111.5.3/index.html", + "v111.5.2": "https://carbon.sage.com/v/111.5.2/index.html", + "v111.5.1": "https://carbon.sage.com/v/111.5.1/index.html", + "v111.5.0": "https://carbon.sage.com/v/111.5.0/index.html", + "v111.4.2": "https://carbon.sage.com/v/111.4.2/index.html", + "v111.4.1": "https://carbon.sage.com/v/111.4.1/index.html", + "v111.4.0": "https://carbon.sage.com/v/111.4.0/index.html", + "v111.3.3": "https://carbon.sage.com/v/111.3.3/index.html", + "v111.3.2": "https://carbon.sage.com/v/111.3.2/index.html", + "v111.3.1": "https://carbon.sage.com/v/111.3.1/index.html", + "v111.3.0": "https://carbon.sage.com/v/111.3.0/index.html", + "v111.2.0": "https://carbon.sage.com/v/111.2.0/index.html", + "v111.1.0": "https://carbon.sage.com/v/111.1.0/index.html", + "v111.0.3": "https://carbon.sage.com/v/111.0.3/index.html", + "v111.0.2": "https://carbon.sage.com/v/111.0.2/index.html", + "v111.0.1": "https://carbon.sage.com/v/111.0.1/index.html", + "v111.0.0": "https://carbon.sage.com/v/111.0.0/index.html", + "v110.11.1": "https://carbon.sage.com/v/110.11.1/index.html", + "v110.11.0": "https://carbon.sage.com/v/110.11.0/index.html", + "v110.10.3": "https://carbon.sage.com/v/110.10.3/index.html", + "v110.10.2": "https://carbon.sage.com/v/110.10.2/index.html", + "v110.10.1": "https://carbon.sage.com/v/110.10.1/index.html", + "v110.10.0": "https://carbon.sage.com/v/110.10.0/index.html", + "v110.9.1": "https://carbon.sage.com/v/110.9.1/index.html", + "v110.9.0": "https://carbon.sage.com/v/110.9.0/index.html", + "v110.8.0": "https://carbon.sage.com/v/110.8.0/index.html", + "v110.7.0": "https://carbon.sage.com/v/110.7.0/index.html", + "v110.6.1": "https://carbon.sage.com/v/110.6.1/index.html", + "v110.6.0": "https://carbon.sage.com/v/110.6.0/index.html", + "v110.5.2": "https://carbon.sage.com/v/110.5.2/index.html", + "v110.5.1": "https://carbon.sage.com/v/110.5.1/index.html", + "v110.5.0": "https://carbon.sage.com/v/110.5.0/index.html", + "v110.4.1": "https://carbon.sage.com/v/110.4.1/index.html", + "v110.4.0": "https://carbon.sage.com/v/110.4.0/index.html", + "v110.3.0": "https://carbon.sage.com/v/110.3.0/index.html", + "v110.2.4": "https://carbon.sage.com/v/110.2.4/index.html", + "v110.2.3": "https://carbon.sage.com/v/110.2.3/index.html", + "v110.2.2": "https://carbon.sage.com/v/110.2.2/index.html", + "v110.2.1": "https://carbon.sage.com/v/110.2.1/index.html", + "v110.2.0": "https://carbon.sage.com/v/110.2.0/index.html", + "v110.1.3": "https://carbon.sage.com/v/110.1.3/index.html", + "v110.1.2": "https://carbon.sage.com/v/110.1.2/index.html", + "v110.1.1": "https://carbon.sage.com/v/110.1.1/index.html", + "v110.1.0": "https://carbon.sage.com/v/110.1.0/index.html", + "v110.0.4": "https://carbon.sage.com/v/110.0.4/index.html", + "v110.0.3": "https://carbon.sage.com/v/110.0.3/index.html", + "v110.0.2": "https://carbon.sage.com/v/110.0.2/index.html", + "v110.0.1": "https://carbon.sage.com/v/110.0.1/index.html", + "v110.0.0": "https://carbon.sage.com/v/110.0.0/index.html", + "v109.7.1": "https://carbon.sage.com/v/109.7.1/index.html", + "v109.7.0": "https://carbon.sage.com/v/109.7.0/index.html", + "v109.6.0": "https://carbon.sage.com/v/109.6.0/index.html", + "v109.5.2": "https://carbon.sage.com/v/109.5.2/index.html", + "v109.5.1": "https://carbon.sage.com/v/109.5.1/index.html", + "v109.5.0": "https://carbon.sage.com/v/109.5.0/index.html", + "v109.4.0": "https://carbon.sage.com/v/109.4.0/index.html", + "v109.3.5": "https://carbon.sage.com/v/109.3.5/index.html", + "v109.3.4": "https://carbon.sage.com/v/109.3.4/index.html", + "v109.3.3": "https://carbon.sage.com/v/109.3.3/index.html", + "v109.3.2": "https://carbon.sage.com/v/109.3.2/index.html", + "v109.3.1": "https://carbon.sage.com/v/109.3.1/index.html", + "v109.3.0": "https://carbon.sage.com/v/109.3.0/index.html", + "v109.2.4": "https://carbon.sage.com/v/109.2.4/index.html", + "v109.2.3": "https://carbon.sage.com/v/109.2.3/index.html", + "v109.2.2": "https://carbon.sage.com/v/109.2.2/index.html", + "v109.2.1": "https://carbon.sage.com/v/109.2.1/index.html", + "v109.2.0": "https://carbon.sage.com/v/109.2.0/index.html", + "v109.1.3": "https://carbon.sage.com/v/109.1.3/index.html", + "v109.1.2": "https://carbon.sage.com/v/109.1.2/index.html", + "v109.1.1": "https://carbon.sage.com/v/109.1.1/index.html", + "v109.1.0": "https://carbon.sage.com/v/109.1.0/index.html", + "v109.0.2": "https://carbon.sage.com/v/109.0.2/index.html", + "v109.0.1": "https://carbon.sage.com/v/109.0.1/index.html", + "v109.0.0": "https://carbon.sage.com/v/109.0.0/index.html", + "v108.0.0": "https://carbon.sage.com/v/108.0.0/index.html", + "v107.2.1": "https://carbon.sage.com/v/107.2.1/index.html", + "v107.2.0": "https://carbon.sage.com/v/107.2.0/index.html", + "v107.1.8": "https://carbon.sage.com/v/107.1.8/index.html", + "v107.1.7": "https://carbon.sage.com/v/107.1.7/index.html", + "v107.1.6": "https://carbon.sage.com/v/107.1.6/index.html", + "v107.1.5": "https://carbon.sage.com/v/107.1.5/index.html", + "v107.1.4": "https://carbon.sage.com/v/107.1.4/index.html", + "v107.1.3": "https://carbon.sage.com/v/107.1.3/index.html", + "v107.1.2": "https://carbon.sage.com/v/107.1.2/index.html", + "v107.1.1": "https://carbon.sage.com/v/107.1.1/index.html", + "v107.1.0": "https://carbon.sage.com/v/107.1.0/index.html", + "v107.0.0": "https://carbon.sage.com/v/107.0.0/index.html", + "v106.7.0": "https://carbon.sage.com/v/106.7.0/index.html", + "v106.6.10": "https://carbon.sage.com/v/106.6.10/index.html", + "v106.6.9": "https://carbon.sage.com/v/106.6.9/index.html", + "v106.6.8": "https://carbon.sage.com/v/106.6.8/index.html", + "v106.6.7": "https://carbon.sage.com/v/106.6.7/index.html", + "v106.6.6": "https://carbon.sage.com/v/106.6.6/index.html", + "v106.6.5": "https://carbon.sage.com/v/106.6.5/index.html", + "v106.6.4": "https://carbon.sage.com/v/106.6.4/index.html", + "v106.6.3": "https://carbon.sage.com/v/106.6.3/index.html", + "v106.6.2": "https://carbon.sage.com/v/106.6.2/index.html", + "v106.6.1": "https://carbon.sage.com/v/106.6.1/index.html", + "v106.6.0": "https://carbon.sage.com/v/106.6.0/index.html", + "v106.5.0": "https://carbon.sage.com/v/106.5.0/index.html", + "v106.4.2": "https://carbon.sage.com/v/106.4.2/index.html", + "v106.4.1": "https://carbon.sage.com/v/106.4.1/index.html", + "v106.4.0": "https://carbon.sage.com/v/106.4.0/index.html", + "v106.3.2": "https://carbon.sage.com/v/106.3.2/index.html", + "v106.3.1": "https://carbon.sage.com/v/106.3.1/index.html", + "v106.3.0": "https://carbon.sage.com/v/106.3.0/index.html", + "v106.2.2": "https://carbon.sage.com/v/106.2.2/index.html", + "v106.2.1": "https://carbon.sage.com/v/106.2.1/index.html", + "v106.2.0": "https://carbon.sage.com/v/106.2.0/index.html", + "v106.1.7": "https://carbon.sage.com/v/106.1.7/index.html", + "v106.1.6": "https://carbon.sage.com/v/106.1.6/index.html", + "v106.1.5": "https://carbon.sage.com/v/106.1.5/index.html", + "v106.1.4": "https://carbon.sage.com/v/106.1.4/index.html", + "v106.1.3": "https://carbon.sage.com/v/106.1.3/index.html", + "v106.1.2": "https://carbon.sage.com/v/106.1.2/index.html", + "v106.1.1": "https://carbon.sage.com/v/106.1.1/index.html", + "v106.1.0": "https://carbon.sage.com/v/106.1.0/index.html", + "v106.0.3": "https://carbon.sage.com/v/106.0.3/index.html", + "v106.0.2": "https://carbon.sage.com/v/106.0.2/index.html", + "v106.0.1": "https://carbon.sage.com/v/106.0.1/index.html", + "v106.0.0": "https://carbon.sage.com/v/106.0.0/index.html", + "v105.2.0": "https://carbon.sage.com/v/105.2.0/index.html", + "v105.1.2": "https://carbon.sage.com/v/105.1.2/index.html", + "v105.1.1": "https://carbon.sage.com/v/105.1.1/index.html", + "v105.1.0": "https://carbon.sage.com/v/105.1.0/index.html", + "v105.0.2": "https://carbon.sage.com/v/105.0.2/index.html", + "v105.0.1": "https://carbon.sage.com/v/105.0.1/index.html", + "v105.0.0": "https://carbon.sage.com/v/105.0.0/index.html", + "v104.58.8": "https://carbon.sage.com/v/104.58.8/index.html", + "v104.58.7": "https://carbon.sage.com/v/104.58.7/index.html", + "v104.58.6": "https://carbon.sage.com/v/104.58.6/index.html", + "v104.58.5": "https://carbon.sage.com/v/104.58.5/index.html", + "v104.58.4": "https://carbon.sage.com/v/104.58.4/index.html", + "v104.58.3": "https://carbon.sage.com/v/104.58.3/index.html", + "v104.58.2": "https://carbon.sage.com/v/104.58.2/index.html", + "v104.58.1": "https://carbon.sage.com/v/104.58.1/index.html", + "v104.58.0": "https://carbon.sage.com/v/104.58.0/index.html", + "v104.57.0": "https://carbon.sage.com/v/104.57.0/index.html", + "v104.56.0": "https://carbon.sage.com/v/104.56.0/index.html", + "v104.55.0": "https://carbon.sage.com/v/104.55.0/index.html", + "v104.54.4": "https://carbon.sage.com/v/104.54.4/index.html", + "v104.54.3": "https://carbon.sage.com/v/104.54.3/index.html", + "v104.54.2": "https://carbon.sage.com/v/104.54.2/index.html", + "v104.54.1": "https://carbon.sage.com/v/104.54.1/index.html", + "v104.54.0": "https://carbon.sage.com/v/104.54.0/index.html", + "v104.53.4": "https://carbon.sage.com/v/104.53.4/index.html", + "v104.53.3": "https://carbon.sage.com/v/104.53.3/index.html", + "v104.53.2": "https://carbon.sage.com/v/104.53.2/index.html", + "v104.53.1": "https://carbon.sage.com/v/104.53.1/index.html", + "v104.53.0": "https://carbon.sage.com/v/104.53.0/index.html", + "v104.52.2": "https://carbon.sage.com/v/104.52.2/index.html", + "v104.52.1": "https://carbon.sage.com/v/104.52.1/index.html", + "v104.52.0": "https://carbon.sage.com/v/104.52.0/index.html", + "v104.51.0": "https://carbon.sage.com/v/104.51.0/index.html", + "v104.50.0": "https://carbon.sage.com/v/104.50.0/index.html", + "v104.49.0": "https://carbon.sage.com/v/104.49.0/index.html", + "v104.48.1": "https://carbon.sage.com/v/104.48.1/index.html", + "v104.48.0": "https://carbon.sage.com/v/104.48.0/index.html", + "v104.47.0": "https://carbon.sage.com/v/104.47.0/index.html", + "v104.46.0": "https://carbon.sage.com/v/104.46.0/index.html", + "v104.45.0": "https://carbon.sage.com/v/104.45.0/index.html", + "v104.44.0": "https://carbon.sage.com/v/104.44.0/index.html", + "v104.43.1": "https://carbon.sage.com/v/104.43.1/index.html", + "v104.43.0": "https://carbon.sage.com/v/104.43.0/index.html", + "v104.42.0": "https://carbon.sage.com/v/104.42.0/index.html", + "v104.41.0": "https://carbon.sage.com/v/104.41.0/index.html", + "v104.40.0": "https://carbon.sage.com/v/104.40.0/index.html", + "v104.39.0": "https://carbon.sage.com/v/104.39.0/index.html", + "v104.38.2": "https://carbon.sage.com/v/104.38.2/index.html", + "v104.38.1": "https://carbon.sage.com/v/104.38.1/index.html", + "v104.38.0": "https://carbon.sage.com/v/104.38.0/index.html", + "v104.37.0": "https://carbon.sage.com/v/104.37.0/index.html", + "v104.36.0": "https://carbon.sage.com/v/104.36.0/index.html", + "v104.35.0": "https://carbon.sage.com/v/104.35.0/index.html", + "v104.34.1": "https://carbon.sage.com/v/104.34.1/index.html", + "v104.34.0": "https://carbon.sage.com/v/104.34.0/index.html", + "v104.33.1": "https://carbon.sage.com/v/104.33.1/index.html", + "v104.33.0": "https://carbon.sage.com/v/104.33.0/index.html", + "v104.32.0": "https://carbon.sage.com/v/104.32.0/index.html", + "v104.31.1": "https://carbon.sage.com/v/104.31.1/index.html", + "v104.31.0": "https://carbon.sage.com/v/104.31.0/index.html", + "v104.30.0": "https://carbon.sage.com/v/104.30.0/index.html", + "v104.29.0": "https://carbon.sage.com/v/104.29.0/index.html", + "v104.28.0": "https://carbon.sage.com/v/104.28.0/index.html", + "v104.27.0": "https://carbon.sage.com/v/104.27.0/index.html", + "v104.26.1": "https://carbon.sage.com/v/104.26.1/index.html", + "v104.26.0": "https://carbon.sage.com/v/104.26.0/index.html", + "v104.25.0": "https://carbon.sage.com/v/104.25.0/index.html", + "v104.24.1": "https://carbon.sage.com/v/104.24.1/index.html", + "v104.24.0": "https://carbon.sage.com/v/104.24.0/index.html", + "v104.23.1": "https://carbon.sage.com/v/104.23.1/index.html", + "v104.23.0": "https://carbon.sage.com/v/104.23.0/index.html", + "v104.22.0": "https://carbon.sage.com/v/104.22.0/index.html", + "v104.21.1": "https://carbon.sage.com/v/104.21.1/index.html", + "v104.21.0": "https://carbon.sage.com/v/104.21.0/index.html", + "v104.20.0": "https://carbon.sage.com/v/104.20.0/index.html", + "v104.19.2": "https://carbon.sage.com/v/104.19.2/index.html", + "v104.19.1": "https://carbon.sage.com/v/104.19.1/index.html", + "v103.2.3": "https://carbon.sage.com/v/103.2.3/index.html", + "v104.19.0": "https://carbon.sage.com/v/104.19.0/index.html", + "v102.22.3": "https://carbon.sage.com/v/102.22.3/index.html", + "v101.2.1": "https://carbon.sage.com/v/101.2.1/index.html", + "v104.18.1": "https://carbon.sage.com/v/104.18.1/index.html", + "v104.18.0": "https://carbon.sage.com/v/104.18.0/index.html", + "v104.17.0": "https://carbon.sage.com/v/104.17.0/index.html", + "v104.16.1": "https://carbon.sage.com/v/104.16.1/index.html", + "v104.16.0": "https://carbon.sage.com/v/104.16.0/index.html", + "v104.15.0": "https://carbon.sage.com/v/104.15.0/index.html", + "v104.14.0": "https://carbon.sage.com/v/104.14.0/index.html", + "v104.13.0": "https://carbon.sage.com/v/104.13.0/index.html", + "v104.12.2": "https://carbon.sage.com/v/104.12.2/index.html", + "v104.12.1": "https://carbon.sage.com/v/104.12.1/index.html", + "v104.12.0": "https://carbon.sage.com/v/104.12.0/index.html", + "v104.11.0": "https://carbon.sage.com/v/104.11.0/index.html", + "v103.2.1": "https://carbon.sage.com/v/103.2.1/index.html", + "v102.22.2": "https://carbon.sage.com/v/102.22.2/index.html", + "v104.10.2": "https://carbon.sage.com/v/104.10.2/index.html", + "v104.10.1": "https://carbon.sage.com/v/104.10.1/index.html", + "v104.10.0": "https://carbon.sage.com/v/104.10.0/index.html", + "v104.9.0": "https://carbon.sage.com/v/104.9.0/index.html", + "v104.8.0": "https://carbon.sage.com/v/104.8.0/index.html", + "v104.7.3": "https://carbon.sage.com/v/104.7.3/index.html", + "v104.7.2": "https://carbon.sage.com/v/104.7.2/index.html", + "v104.7.1": "https://carbon.sage.com/v/104.7.1/index.html", + "v104.7.0": "https://carbon.sage.com/v/104.7.0/index.html", + "v104.6.0": "https://carbon.sage.com/v/104.6.0/index.html", + "v104.5.0": "https://carbon.sage.com/v/104.5.0/index.html", + "v104.4.0": "https://carbon.sage.com/v/104.4.0/index.html", + "v104.3.0": "https://carbon.sage.com/v/104.3.0/index.html", + "v104.2.0": "https://carbon.sage.com/v/104.2.0/index.html", + "v104.1.1": "https://carbon.sage.com/v/104.1.1/index.html", + "v104.1.0": "https://carbon.sage.com/v/104.1.0/index.html", + "v104.0.0": "https://carbon.sage.com/v/104.0.0/index.html", + "v103.2.0": "https://carbon.sage.com/v/103.2.0/index.html", + "v103.1.0": "https://carbon.sage.com/v/103.1.0/index.html", + "v103.0.0": "https://carbon.sage.com/v/103.0.0/index.html", + "v102.22.1": "https://carbon.sage.com/v/102.22.1/index.html", + "v102.22.0": "https://carbon.sage.com/v/102.22.0/index.html", + "v102.21.0": "https://carbon.sage.com/v/102.21.0/index.html", + "v102.20.1": "https://carbon.sage.com/v/102.20.1/index.html", + "v102.20.0": "https://carbon.sage.com/v/102.20.0/index.html", + "v102.19.1": "https://carbon.sage.com/v/102.19.1/index.html", + "v102.19.0": "https://carbon.sage.com/v/102.19.0/index.html", + "v102.18.0": "https://carbon.sage.com/v/102.18.0/index.html", + "v102.17.0": "https://carbon.sage.com/v/102.17.0/index.html", + "v102.16.1": "https://carbon.sage.com/v/102.16.1/index.html", + "v102.16.0": "https://carbon.sage.com/v/102.16.0/index.html", + "v102.15.0": "https://carbon.sage.com/v/102.15.0/index.html", + "v102.14.0": "https://carbon.sage.com/v/102.14.0/index.html", + "v102.13.2": "https://carbon.sage.com/v/102.13.2/index.html", + "v102.13.1": "https://carbon.sage.com/v/102.13.1/index.html", + "v102.13.0": "https://carbon.sage.com/v/102.13.0/index.html", + "v102.12.0": "https://carbon.sage.com/v/102.12.0/index.html", + "v102.11.0": "https://carbon.sage.com/v/102.11.0/index.html", + "v102.10.2": "https://carbon.sage.com/v/102.10.2/index.html", + "v102.10.1": "https://carbon.sage.com/v/102.10.1/index.html", + "v102.10.0": "https://carbon.sage.com/v/102.10.0/index.html", + "v102.9.2": "https://carbon.sage.com/v/102.9.2/index.html", + "v102.9.1": "https://carbon.sage.com/v/102.9.1/index.html", + "v102.9.0": "https://carbon.sage.com/v/102.9.0/index.html", + "v102.8.1": "https://carbon.sage.com/v/102.8.1/index.html", + "v102.8.0": "https://carbon.sage.com/v/102.8.0/index.html", + "v102.7.4": "https://carbon.sage.com/v/102.7.4/index.html", + "v102.7.3": "https://carbon.sage.com/v/102.7.3/index.html", + "v102.7.2": "https://carbon.sage.com/v/102.7.2/index.html", + "v102.7.1": "https://carbon.sage.com/v/102.7.1/index.html", + "v102.7.0": "https://carbon.sage.com/v/102.7.0/index.html", + "v102.6.1": "https://carbon.sage.com/v/102.6.1/index.html", + "v102.6.0": "https://carbon.sage.com/v/102.6.0/index.html", + "v102.5.0": "https://carbon.sage.com/v/102.5.0/index.html", + "v102.4.6": "https://carbon.sage.com/v/102.4.6/index.html", + "v102.4.5": "https://carbon.sage.com/v/102.4.5/index.html", + "v102.4.4": "https://carbon.sage.com/v/102.4.4/index.html", + "v102.4.3": "https://carbon.sage.com/v/102.4.3/index.html", + "v102.4.2": "https://carbon.sage.com/v/102.4.2/index.html", + "v102.4.1": "https://carbon.sage.com/v/102.4.1/index.html", + "v102.4.0": "https://carbon.sage.com/v/102.4.0/index.html", + "v102.3.0": "https://carbon.sage.com/v/102.3.0/index.html", + "v102.2.0": "https://carbon.sage.com/v/102.2.0/index.html", + "v102.1.0": "https://carbon.sage.com/v/102.1.0/index.html", + "v102.0.1": "https://carbon.sage.com/v/102.0.1/index.html", + "v102.0.0": "https://carbon.sage.com/v/102.0.0/index.html", + "v101.4.5": "https://carbon.sage.com/v/101.4.5/index.html", + "v101.4.4": "https://carbon.sage.com/v/101.4.4/index.html", + "v101.4.3": "https://carbon.sage.com/v/101.4.3/index.html", + "v101.4.2": "https://carbon.sage.com/v/101.4.2/index.html", + "v101.4.1": "https://carbon.sage.com/v/101.4.1/index.html", + "v101.4.0": "https://carbon.sage.com/v/101.4.0/index.html", + "v101.3.3": "https://carbon.sage.com/v/101.3.3/index.html", + "v101.3.2": "https://carbon.sage.com/v/101.3.2/index.html", + "v101.3.1": "https://carbon.sage.com/v/101.3.1/index.html", + "v101.3.0": "https://carbon.sage.com/v/101.3.0/index.html", + "v101.2.0": "https://carbon.sage.com/v/101.2.0/index.html", + "v101.1.0": "https://carbon.sage.com/v/101.1.0/index.html", + "v101.0.4": "https://carbon.sage.com/v/101.0.4/index.html", + "v101.0.3": "https://carbon.sage.com/v/101.0.3/index.html", + "v101.0.2": "https://carbon.sage.com/v/101.0.2/index.html", + "v101.0.1": "https://carbon.sage.com/v/101.0.1/index.html", + "v101.0.0": "https://carbon.sage.com/v/101.0.0/index.html" + } + } \ No newline at end of file