From 3b39882419fcfdad82b4f2277aa87b8e67779ea0 Mon Sep 17 00:00:00 2001 From: Randy Lau Date: Tue, 25 Jul 2023 16:05:57 -0700 Subject: [PATCH 01/41] fix: gatsby v5 migration graphql codemodded files Signed-off-by: Randy Lau --- src/pages/blog/index.js | 59 ++++++------ src/pages/company/news.js | 5 +- src/sections/Blog/Blog-sidebar/index.js | 44 ++++----- src/sections/Blog/Blog-single/index.js | 91 +++++++++---------- .../Careers/Careers-Internship-grid/index.js | 90 +++++++++--------- .../Careers/Careers-Programs-grid/index.js | 15 ++- .../Community/CommunityManagers/index.js | 7 +- src/sections/Community/Emeritus-grid/index.js | 5 +- .../Community/Members-grid/DataWrapper.js | 69 +++++++------- src/sections/Community/Meshmates/index.js | 5 +- src/sections/Community/slider.js | 30 +++--- src/sections/Company/News-single/index.js | 5 +- src/sections/General/Navigation/index.js | 19 ++-- src/sections/Home/So-Special-Section/index.js | 7 +- src/sections/Learn-Layer5/Chapters/index.js | 4 +- src/sections/Learn/Books-grid/index.js | 5 +- .../Learn/LearnPage-Sections/books.js | 49 +++++----- .../Learn/LearnPage-Sections/workshops.js | 5 +- src/sections/Learn/Workshop-grid/index.js | 5 +- .../Resources/Resource-single/index.js | 5 +- .../Resources/Resources-grid/DataWrapper.js | 73 +++++++-------- .../Resources/Resources-grid/filters.js | 70 +++++++------- src/templates/blog-category-list.js | 61 ++++++------- src/templates/blog-tag-list.js | 5 +- src/templates/events.js | 13 +-- src/templates/program-multiple.js | 28 +++--- 26 files changed, 352 insertions(+), 422 deletions(-) diff --git a/src/pages/blog/index.js b/src/pages/blog/index.js index c10d5e0dc251..5d8a5f658692 100644 --- a/src/pages/blog/index.js +++ b/src/pages/blog/index.js @@ -6,44 +6,39 @@ import { graphql } from "gatsby"; import loadable from "@loadable/component"; const BlogList = loadable(() => import ("../../sections/Blog/Blog-list")); -export const query = graphql` - query allBlogs { - allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { - fields: { collection: { eq: "blog" } } - frontmatter: { published: { eq: true } } - } - ) { - nodes { - id - body - frontmatter { - title - date(formatString: "MMM Do, YYYY") - author - thumbnail { - childImageSharp { - gatsbyImageData(layout: FULL_WIDTH) - } - extension - publicURL - } - darkthumbnail { - childImageSharp { - gatsbyImageData(layout: FULL_WIDTH) - } - extension - publicURL +export const query = graphql`query allBlogs { + allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {eq: "blog"}}, frontmatter: {published: {eq: true}}} + ) { + nodes { + id + body + frontmatter { + title + date(formatString: "MMM Do, YYYY") + author + thumbnail { + childImageSharp { + gatsbyImageData(layout: FULL_WIDTH) } + extension + publicURL } - fields { - slug + darkthumbnail { + childImageSharp { + gatsbyImageData(layout: FULL_WIDTH) + } + extension + publicURL } } + fields { + slug + } } } -`; +}`; const Blog = (props) => { const [isListView, setIsListView] = useState(false); diff --git a/src/pages/company/news.js b/src/pages/company/news.js index a28c9da55c42..ea10dbec4624 100644 --- a/src/pages/company/news.js +++ b/src/pages/company/news.js @@ -7,7 +7,7 @@ import NewsPage from "../../sections/Company/News-grid"; import SimpleReactLightbox from "simple-react-lightbox"; export const query = graphql`query allNews { allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "news"}}, frontmatter: {published: {eq: true}}} ) { nodes { @@ -39,8 +39,7 @@ export const query = graphql`query allNews { } } } -} -`; +}`; const NewsGridPage = ({ data }) => { return ( <> diff --git a/src/sections/Blog/Blog-sidebar/index.js b/src/sections/Blog/Blog-sidebar/index.js index e765851824d2..d85dcf22154c 100644 --- a/src/sections/Blog/Blog-sidebar/index.js +++ b/src/sections/Blog/Blog-sidebar/index.js @@ -12,32 +12,24 @@ const Discuss = "../../../assets/images/discuss/layer5-discuss-white.webp"; const Sidebar = ({ pageContext }) => { const data = useStaticQuery( - graphql` - query allTagsAndCategories { - tags: allMdx( - filter: { - fields: { collection: { eq: "blog" } } - frontmatter: { published: { eq: true } } - } - ) { - group(field: frontmatter___tags) { - fieldValue - totalCount - } - } - categories: allMdx( - filter: { - fields: { collection: { eq: "blog" } } - frontmatter: { published: { eq: true } } - } - ) { - group(field: frontmatter___category) { - fieldValue - totalCount - } - } - } - ` + graphql`query allTagsAndCategories { + tags: allMdx( + filter: {fields: {collection: {eq: "blog"}}, frontmatter: {published: {eq: true}}} + ) { + group(field: {frontmatter: {tags: SELECT}}) { + fieldValue + totalCount + } + } + categories: allMdx( + filter: {fields: {collection: {eq: "blog"}}, frontmatter: {published: {eq: true}}} + ) { + group(field: {frontmatter: {category: SELECT}}) { + fieldValue + totalCount + } + } +}` ); const [showTag, setShowTag] = useState(true); diff --git a/src/sections/Blog/Blog-single/index.js b/src/sections/Blog/Blog-single/index.js index 387f75422f67..d90ed0c8fa12 100644 --- a/src/sections/Blog/Blog-single/index.js +++ b/src/sections/Blog/Blog-single/index.js @@ -26,60 +26,57 @@ const BlogSingle = ({ data }) => { const { frontmatter, body, fields } = data.mdx; const { relatedPosts: blogData, authors } = useStaticQuery( graphql`query relatedPosts { - relatedPosts: allMdx( - sort: {fields: [frontmatter___date], order: DESC} - filter: {fields: {collection: {eq: "blog"}}, frontmatter: {published: {eq: true}}} - ) { - nodes { - frontmatter { - title - date(formatString: "MMM Do YYYY") - author - category - tags - thumbnail { - childImageSharp { - gatsbyImageData(layout: FULL_WIDTH) - } - extension - publicURL - } - darkthumbnail { - childImageSharp { - gatsbyImageData(layout: FULL_WIDTH) - } - extension - publicURL - } + relatedPosts: allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {eq: "blog"}}, frontmatter: {published: {eq: true}}} + ) { + nodes { + frontmatter { + title + date(formatString: "MMM Do YYYY") + author + category + tags + thumbnail { + childImageSharp { + gatsbyImageData(layout: FULL_WIDTH) } - fields { - slug + extension + publicURL + } + darkthumbnail { + childImageSharp { + gatsbyImageData(layout: FULL_WIDTH) } + extension + publicURL } } - authors: allMdx( - sort: { fields: [frontmatter___name], order: ASC } - filter: { - fields: { collection: { eq: "members" } } - frontmatter: { published: { eq: true } } - } - ) { - nodes { - frontmatter{ - bio - name - image_path { - childImageSharp { - gatsbyImageData(width: 500, layout: CONSTRAINED) - } - extension - publicURL - } + fields { + slug + } + } + } + authors: allMdx( + sort: {frontmatter: {name: ASC}} + filter: {fields: {collection: {eq: "members"}}, frontmatter: {published: {eq: true}}} + ) { + nodes { + frontmatter { + bio + name + image_path { + childImageSharp { + gatsbyImageData(width: 500, layout: CONSTRAINED) } - slug + extension + publicURL } } - } ` + slug + } + } +}` ); const posts = blogData.nodes; diff --git a/src/sections/Careers/Careers-Internship-grid/index.js b/src/sections/Careers/Careers-Internship-grid/index.js index e5df363794a6..560ea820563c 100644 --- a/src/sections/Careers/Careers-Internship-grid/index.js +++ b/src/sections/Careers/Careers-Internship-grid/index.js @@ -14,60 +14,52 @@ const Peek_Img = "../../../assets/images/layer5/layer5-peek-card-edited.svg"; const InternshipPage = ({ hide_heading }) => { const opportunities = useStaticQuery( - graphql` - query allOppornuties { - internships: allMdx( - sort: { fields: [frontmatter___title], order: ASC } - filter: { - fields: { collection: { eq: "careers" } } - frontmatter: { published: { eq: true }, type: { eq: "internship" } } - } - ) { - nodes { - id - frontmatter { - title - abstract - thumbnail { - childImageSharp { - gatsbyImageData(width: 500, layout: CONSTRAINED) - } - extension - publicURL - } - } - fields { - slug - } + graphql`query allOppornuties { + internships: allMdx( + sort: {frontmatter: {title: ASC}} + filter: {fields: {collection: {eq: "careers"}}, frontmatter: {published: {eq: true}, type: {eq: "internship"}}} + ) { + nodes { + id + frontmatter { + title + abstract + thumbnail { + childImageSharp { + gatsbyImageData(width: 500, layout: CONSTRAINED) } + extension + publicURL } - jobs: allMdx( - sort: { fields: [frontmatter___title], order: ASC } - filter: { - fields: { collection: { eq: "careers" } } - frontmatter: { published: { eq: true }, type: { eq: "job" } } - } - ) { - nodes { - id - frontmatter { - title - abstract - thumbnail { - childImageSharp { - gatsbyImageData(width: 500, layout: CONSTRAINED) - } - extension - publicURL - } - } - fields { - slug - } + } + fields { + slug + } + } + } + jobs: allMdx( + sort: {frontmatter: {title: ASC}} + filter: {fields: {collection: {eq: "careers"}}, frontmatter: {published: {eq: true}, type: {eq: "job"}}} + ) { + nodes { + id + frontmatter { + title + abstract + thumbnail { + childImageSharp { + gatsbyImageData(width: 500, layout: CONSTRAINED) } + extension + publicURL } } - ` + fields { + slug + } + } + } +}` ); let OpportunityCard = ({ frontmatter, fields }) => ( diff --git a/src/sections/Careers/Careers-Programs-grid/index.js b/src/sections/Careers/Careers-Programs-grid/index.js index be02d1f503e2..b4772560f77a 100644 --- a/src/sections/Careers/Careers-Programs-grid/index.js +++ b/src/sections/Careers/Careers-Programs-grid/index.js @@ -10,7 +10,7 @@ const ProgramsGrid = ({ hide_path, sub_section }) => { const data = useStaticQuery( graphql`query allPrograms { allMdx( - sort: {fields: [frontmatter___title], order: DESC} + sort: {frontmatter: {title: DESC}} filter: {fields: {collection: {eq: "programs"}}, frontmatter: {published: {eq: true}}} ) { nodes { @@ -27,11 +27,11 @@ const ProgramsGrid = ({ hide_path, sub_section }) => { publicURL } darkthumbnail { - childImageSharp { - gatsbyImageData(layout: FULL_WIDTH) - } - extension - publicURL + childImageSharp { + gatsbyImageData(layout: FULL_WIDTH) + } + extension + publicURL } } fields { @@ -39,8 +39,7 @@ const ProgramsGrid = ({ hide_path, sub_section }) => { } } } -} -` +}` ); let path = hide_path ? "" : "Programs"; diff --git a/src/sections/Community/CommunityManagers/index.js b/src/sections/Community/CommunityManagers/index.js index 30ce13a9fb98..087ae7fb133c 100644 --- a/src/sections/Community/CommunityManagers/index.js +++ b/src/sections/Community/CommunityManagers/index.js @@ -11,8 +11,8 @@ const CommunityManagers = () => { const data = useStaticQuery( graphql`query managers { allMdx( - sort: {fields: [frontmatter___name], order: ASC} - filter: {fields: {collection: {eq: "members"}}, frontmatter: {badges: {in:["community"]},status: {eq: "Active"}}} + sort: {frontmatter: {name: ASC}} + filter: {fields: {collection: {eq: "members"}}, frontmatter: {badges: {in: ["community"]}, status: {eq: "Active"}}} ) { nodes { id @@ -39,8 +39,7 @@ const CommunityManagers = () => { } } } -} -` +}` ); return ( diff --git a/src/sections/Community/Emeritus-grid/index.js b/src/sections/Community/Emeritus-grid/index.js index f61466927bd2..f3aef976d2e6 100644 --- a/src/sections/Community/Emeritus-grid/index.js +++ b/src/sections/Community/Emeritus-grid/index.js @@ -9,7 +9,7 @@ const Emeritus = () => { const data = useStaticQuery( graphql`query emeritus { allMdx( - sort: {fields: [frontmatter___name], order: ASC} + sort: {frontmatter: {name: ASC}} filter: {fields: {collection: {eq: "members"}}, frontmatter: {emeritus: {eq: "yes"}}} ) { nodes { @@ -30,8 +30,7 @@ const Emeritus = () => { } } } -} -` +}` ); return ( diff --git a/src/sections/Community/Members-grid/DataWrapper.js b/src/sections/Community/Members-grid/DataWrapper.js index bab041fb23e3..d7ce4f6d1f99 100644 --- a/src/sections/Community/Members-grid/DataWrapper.js +++ b/src/sections/Community/Members-grid/DataWrapper.js @@ -11,45 +11,40 @@ import { useStaticQuery, graphql } from "gatsby"; const DataWrapper = (WrappedComponent) => { return (props) => { const data = useStaticQuery( - graphql` - query allMembers { - allMdx( - sort: { fields: [frontmatter___name], order: ASC } - filter: { - fields: { collection: { eq: "members" } } - frontmatter: { published: { eq: true } } - } - ) { - nodes { - id - frontmatter { - name - github - twitter - status - meshmate - maintainer - linkedin - location - badges - bio - emeritus - community_manager - image_path { - childImageSharp { - gatsbyImageData(width: 200, layout: CONSTRAINED) - } - extension - publicURL - } - } - fields { - slug - } - } + graphql`query allMembers { + allMdx( + sort: {frontmatter: {name: ASC}} + filter: {fields: {collection: {eq: "members"}}, frontmatter: {published: {eq: true}}} + ) { + nodes { + id + frontmatter { + name + github + twitter + status + meshmate + maintainer + linkedin + location + badges + bio + emeritus + community_manager + image_path { + childImageSharp { + gatsbyImageData(width: 200, layout: CONSTRAINED) } + extension + publicURL } - ` + } + fields { + slug + } + } + } +}` ); return ; diff --git a/src/sections/Community/Meshmates/index.js b/src/sections/Community/Meshmates/index.js index c39d40e3da63..0b9a7e124af5 100644 --- a/src/sections/Community/Meshmates/index.js +++ b/src/sections/Community/Meshmates/index.js @@ -16,7 +16,7 @@ const Meshmates = () => { const data = useStaticQuery( graphql`query meshmates { allMdx( - sort: {fields: [frontmatter___name], order: ASC} + sort: {frontmatter: {name: ASC}} filter: {fields: {collection: {eq: "members"}}, frontmatter: {meshmate: {eq: "yes"}, emeritus: {ne: "yes"}}} ) { nodes { @@ -45,8 +45,7 @@ const Meshmates = () => { } } } -} -` +}` ); return ( diff --git a/src/sections/Community/slider.js b/src/sections/Community/slider.js index 6630ebb9cc11..862ef223b348 100644 --- a/src/sections/Community/slider.js +++ b/src/sections/Community/slider.js @@ -41,25 +41,19 @@ const PictureSliderWrapper = styled.div` const PictureSlider = () => { const data = useStaticQuery( - graphql` - query community { - allFile( - filter: { - extension: { regex: "/(jpg)|(jpeg)|(png)/" } - relativeDirectory: {eq: "Community-pictures"} - - } - sort: {fields: [base] } - ) { - edges { - node { - extension - publicURL - } - } - } + graphql`query community { + allFile( + filter: {extension: {regex: "/(jpg)|(jpeg)|(png)/"}, relativeDirectory: {eq: "Community-pictures"}} + sort: {base: ASC} + ) { + edges { + node { + extension + publicURL } - ` + } + } +}` ); const settings = { diff --git a/src/sections/Company/News-single/index.js b/src/sections/Company/News-single/index.js index 442275c616e0..a9b066577bda 100644 --- a/src/sections/Company/News-single/index.js +++ b/src/sections/Company/News-single/index.js @@ -14,7 +14,7 @@ const NewsSingle = ({ data }) => { const newsData = useStaticQuery( graphql`query relatedNewsPosts { allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "news"}}, frontmatter: {published: {eq: true}}} limit: 6 ) { @@ -40,8 +40,7 @@ const NewsSingle = ({ data }) => { } } } -} -` +}` ); const posts = newsData.allMdx.nodes; const relatedPosts = posts.filter( diff --git a/src/sections/General/Navigation/index.js b/src/sections/General/Navigation/index.js index 688bfdb34cdb..5b407b3bf2b1 100644 --- a/src/sections/General/Navigation/index.js +++ b/src/sections/General/Navigation/index.js @@ -22,7 +22,7 @@ const Navigation = () => { let data = useStaticQuery( graphql`{ Learn: allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "service-mesh-books"}}} limit: 2 ) { @@ -32,11 +32,7 @@ const Navigation = () => { title thumbnail { childImageSharp { - gatsbyImageData( - width: 1050 - height:1360 - layout: CONSTRAINED - ) + gatsbyImageData(width: 1050, height: 1360, layout: CONSTRAINED) } publicURL } @@ -47,7 +43,7 @@ const Navigation = () => { } } Community: allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "events"}}, frontmatter: {published: {eq: true}}} limit: 2 ) { @@ -74,8 +70,8 @@ const Navigation = () => { } } Resources: allMdx( - sort: {fields: [frontmatter___date], order: DESC} - filter: {fields: {collection: {eq: "blog"}},frontmatter: {featured: {eq: true}}} + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {eq: "blog"}}, frontmatter: {featured: {eq: true}}} limit: 2 ) { nodes { @@ -101,7 +97,7 @@ const Navigation = () => { } } Home: allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "projects"}}, frontmatter: {published: {eq: true}}} limit: 2 ) { @@ -127,8 +123,7 @@ const Navigation = () => { } } } -} -` +}` ); data["Products"] = { nodes: [ diff --git a/src/sections/Home/So-Special-Section/index.js b/src/sections/Home/So-Special-Section/index.js index 52bcdafd65b3..f22e630d993d 100644 --- a/src/sections/Home/So-Special-Section/index.js +++ b/src/sections/Home/So-Special-Section/index.js @@ -14,7 +14,7 @@ const SoSpecial = () => { graphql`query newsList { allMdx( filter: {fields: {collection: {eq: "news"}}, frontmatter: {published: {eq: true}}} - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} limit: 8 ) { nodes { @@ -30,7 +30,7 @@ const SoSpecial = () => { extension publicURL } - darkthumbnail{ + darkthumbnail { childImageSharp { gatsbyImageData(layout: FULL_WIDTH) } @@ -43,8 +43,7 @@ const SoSpecial = () => { } } } -} -` +}` ); const settings = { dots: false, diff --git a/src/sections/Learn-Layer5/Chapters/index.js b/src/sections/Learn-Layer5/Chapters/index.js index 812ef3c4b6e8..6b3325b22463 100644 --- a/src/sections/Learn-Layer5/Chapters/index.js +++ b/src/sections/Learn-Layer5/Chapters/index.js @@ -6,7 +6,7 @@ import { Container, Row, Col } from "../../../reusecore/Layout"; import TOC from "../../../components/Learn-Components/TOC-Chapters"; import Image from "../../../components/image"; import { ChapterWrapper } from "./chapters.style"; -import ReactTooltip from "react-tooltip"; +import Tooltip from "react-tooltip"; import Pagination from "../../../components/Learn-Components/Pagination"; import QuizModal from "../../../components/Learn-Components/QuizModal"; @@ -75,7 +75,7 @@ const Chapters = ({ chapterData, courseData, location, serviceMeshesList, TOCDat /> - { graphql`query allBooks { allMdx( filter: {fields: {collection: {eq: "service-mesh-books"}}, frontmatter: {published: {eq: true}}} - sort: {fields: [frontmatter___date], order: ASC} + sort: {frontmatter: {date: ASC}} ) { nodes { id @@ -33,8 +33,7 @@ const BooksPage = ({ hide_path }) => { } } } -} -` +}` ); let path = hide_path ? "" : "Books"; diff --git a/src/sections/Learn/LearnPage-Sections/books.js b/src/sections/Learn/LearnPage-Sections/books.js index 505656ce493e..973cba080e52 100644 --- a/src/sections/Learn/LearnPage-Sections/books.js +++ b/src/sections/Learn/LearnPage-Sections/books.js @@ -103,32 +103,29 @@ const BooksListWrapper = styled.div` const BooksSection = () => { const data = useStaticQuery( - graphql` - query booksList { - allMdx( - filter: { fields: { collection: { eq: "service-mesh-books" } }, frontmatter: { published: { eq: true } } } - sort: { fields: [frontmatter___date], order: ASC } - limit: 2 - ) - { - nodes { - id - frontmatter { - title - author - abstract - thumbnail{ - extension - publicURL - } - } - fields { - slug - } - } - } - } - ` + graphql`query booksList { + allMdx( + filter: {fields: {collection: {eq: "service-mesh-books"}}, frontmatter: {published: {eq: true}}} + sort: {frontmatter: {date: ASC}} + limit: 2 + ) { + nodes { + id + frontmatter { + title + author + abstract + thumbnail { + extension + publicURL + } + } + fields { + slug + } + } + } +}` ); return ( diff --git a/src/sections/Learn/LearnPage-Sections/workshops.js b/src/sections/Learn/LearnPage-Sections/workshops.js index 976904dc233b..412279105599 100644 --- a/src/sections/Learn/LearnPage-Sections/workshops.js +++ b/src/sections/Learn/LearnPage-Sections/workshops.js @@ -193,7 +193,7 @@ const WorkshopsSection = () => { const data = useStaticQuery( graphql`query workshopsList { allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "service-mesh-workshops"}}} ) { nodes { @@ -211,8 +211,7 @@ const WorkshopsSection = () => { } } } -} -` +}` ); const hasMounted = useHasMounted(); diff --git a/src/sections/Learn/Workshop-grid/index.js b/src/sections/Learn/Workshop-grid/index.js index a668699c3c80..69f4ebfd7a69 100644 --- a/src/sections/Learn/Workshop-grid/index.js +++ b/src/sections/Learn/Workshop-grid/index.js @@ -22,7 +22,7 @@ const WorkshopsPage = () => { const data = useStaticQuery( graphql`query allWorkshops { allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "service-mesh-workshops"}}} ) { nodes { @@ -52,8 +52,7 @@ const WorkshopsPage = () => { } } } -} -` +}` ); const toggleActive = (id) => { diff --git a/src/sections/Resources/Resource-single/index.js b/src/sections/Resources/Resource-single/index.js index 33a99e8fe540..01ba4eb44d86 100644 --- a/src/sections/Resources/Resource-single/index.js +++ b/src/sections/Resources/Resource-single/index.js @@ -16,7 +16,7 @@ const ResourceSingle = ({ data }) => { const resourceData = useStaticQuery( graphql`query relatedResources { allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "resources"}}, frontmatter: {published: {eq: true}}} ) { nodes { @@ -46,8 +46,7 @@ const ResourceSingle = ({ data }) => { } } } -} -` +}` ); const resources = resourceData.allMdx.nodes; diff --git a/src/sections/Resources/Resources-grid/DataWrapper.js b/src/sections/Resources/Resources-grid/DataWrapper.js index dabb5cfa975c..9466c25091a9 100644 --- a/src/sections/Resources/Resources-grid/DataWrapper.js +++ b/src/sections/Resources/Resources-grid/DataWrapper.js @@ -6,48 +6,41 @@ import { useStaticQuery, graphql } from "gatsby"; const DataWrapper = (WrappedComponent) => { return (props) => { const data = useStaticQuery( - graphql` - query allResourcesAndAllResources { - allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { - fields: { - collection: { in: ["blog", "resources", "news", "events"] } - } - frontmatter: { published: { eq: true }, resource: { eq: true } } - } - ) { - nodes { - id - body - frontmatter { - title - type - technology - product - mesh - thumbnail { - childImageSharp { - gatsbyImageData(layout: FULL_WIDTH) - } - extension - publicURL - } - darkthumbnail { - childImageSharp { - gatsbyImageData(layout: FULL_WIDTH) - } - extension - publicURL - } - } - fields { - slug - } - } + graphql`query allResourcesAndAllResources { + allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {in: ["blog", "resources", "news", "events"]}}, frontmatter: {published: {eq: true}, resource: {eq: true}}} + ) { + nodes { + id + body + frontmatter { + title + type + technology + product + mesh + thumbnail { + childImageSharp { + gatsbyImageData(layout: FULL_WIDTH) } + extension + publicURL } - ` + darkthumbnail { + childImageSharp { + gatsbyImageData(layout: FULL_WIDTH) + } + extension + publicURL + } + } + fields { + slug + } + } + } +}` ); return ; }; diff --git a/src/sections/Resources/Resources-grid/filters.js b/src/sections/Resources/Resources-grid/filters.js index 5a3866a5075f..8e17e5f88cf1 100644 --- a/src/sections/Resources/Resources-grid/filters.js +++ b/src/sections/Resources/Resources-grid/filters.js @@ -12,42 +12,40 @@ import ResourceNavigationWrapper from "./filters.style"; const Navigation = (props) => { const counting = useStaticQuery( - graphql` - query allFilters { - type: allMdx( - filter: { fields: { collection: { in: ["blog", "resources", "news", "events"] } }, frontmatter: { published: { eq: true } , resource: { eq: true} }} - ){ - group(field: frontmatter___type) { - fieldValue - totalCount - } - } - product: allMdx( - filter: { fields: { collection: { in: ["blog", "resources", "news", "events"] } }, frontmatter: { published: { eq: true } , resource: { eq: true} }} - ){ - group(field: frontmatter___product) { - fieldValue - totalCount - } - } - technology: allMdx( - filter: { fields: { collection: { in: ["blog", "resources", "news", "events"] } }, frontmatter: { published: { eq: true } , resource: { eq: true} }} - ){ - group(field: frontmatter___technology) { - fieldValue - totalCount - } - } - mesh: allMdx( - filter: { fields: { collection: { in: ["blog", "resources", "news", "events"] } }, frontmatter: { published: { eq: true } , resource: { eq: true} }} - ){ - group(field: frontmatter___mesh) { - fieldValue - totalCount - } - } - } - ` + graphql`query allFilters { + type: allMdx( + filter: {fields: {collection: {in: ["blog", "resources", "news", "events"]}}, frontmatter: {published: {eq: true}, resource: {eq: true}}} + ) { + group(field: {frontmatter: {type: SELECT}}) { + fieldValue + totalCount + } + } + product: allMdx( + filter: {fields: {collection: {in: ["blog", "resources", "news", "events"]}}, frontmatter: {published: {eq: true}, resource: {eq: true}}} + ) { + group(field: {frontmatter: {product: SELECT}}) { + fieldValue + totalCount + } + } + technology: allMdx( + filter: {fields: {collection: {in: ["blog", "resources", "news", "events"]}}, frontmatter: {published: {eq: true}, resource: {eq: true}}} + ) { + group(field: {frontmatter: {technology: SELECT}}) { + fieldValue + totalCount + } + } + mesh: allMdx( + filter: {fields: {collection: {in: ["blog", "resources", "news", "events"]}}, frontmatter: {published: {eq: true}, resource: {eq: true}}} + ) { + group(field: {frontmatter: {mesh: SELECT}}) { + fieldValue + totalCount + } + } +}` ); const [expandFilter, setExpandFilter] = useState(false); diff --git a/src/templates/blog-category-list.js b/src/templates/blog-category-list.js index 2a6979f94768..ddb181ce6973 100644 --- a/src/templates/blog-category-list.js +++ b/src/templates/blog-category-list.js @@ -5,45 +5,40 @@ import SEO from "../components/seo"; import BlogList from "../sections/Blog/Blog-list"; import { graphql } from "gatsby"; -export const query = graphql` - query BlogsByCategory($category: String!) { - allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { - fields: { collection: { eq: "blog" } } - frontmatter: { category: { eq: $category }, published: { eq: true } } - } - ) { - nodes { - id - body - frontmatter { - title - subtitle - date(formatString: "MMMM Do, YYYY") - author - thumbnail { - childImageSharp { - gatsbyImageData(layout: FULL_WIDTH) - } - extension - publicURL - } - darkthumbnail { - childImageSharp { - gatsbyImageData(width: 500, layout: CONSTRAINED) - } - extension - publicURL +export const query = graphql`query BlogsByCategory($category: String!) { + allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {eq: "blog"}}, frontmatter: {category: {eq: $category}, published: {eq: true}}} + ) { + nodes { + id + body + frontmatter { + title + subtitle + date(formatString: "MMMM Do, YYYY") + author + thumbnail { + childImageSharp { + gatsbyImageData(layout: FULL_WIDTH) } + extension + publicURL } - fields { - slug + darkthumbnail { + childImageSharp { + gatsbyImageData(width: 500, layout: CONSTRAINED) + } + extension + publicURL } } + fields { + slug + } } } -`; +}`; const BlogListPage = ({ pageContext, data }) => { diff --git a/src/templates/blog-tag-list.js b/src/templates/blog-tag-list.js index b6f757f0cd1a..e34be7dcbcc2 100644 --- a/src/templates/blog-tag-list.js +++ b/src/templates/blog-tag-list.js @@ -7,7 +7,7 @@ import { graphql } from "gatsby"; export const query = graphql`query BlogsByTags($tag: String!) { allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "blog"}}, frontmatter: {tags: {in: [$tag]}, published: {eq: true}}} ) { nodes { @@ -38,8 +38,7 @@ export const query = graphql`query BlogsByTags($tag: String!) { } } } -} -`; +}`; const BlogListPage = ({ pageContext, data }) => { diff --git a/src/templates/events.js b/src/templates/events.js index 30f57acfa0fc..f2930370f8ed 100644 --- a/src/templates/events.js +++ b/src/templates/events.js @@ -5,7 +5,7 @@ import Meetups from "../sections/Events/index"; export const query = graphql`query allCategories($skip: Int!, $limit: Int!) { allCategories: allMdx( - sort: {fields: [frontmatter___date], order: DESC} + sort: {frontmatter: {date: DESC}} filter: {fields: {collection: {eq: "events"}}, frontmatter: {published: {eq: true}}} skip: $skip limit: $limit @@ -44,7 +44,7 @@ export const query = graphql`query allCategories($skip: Int!, $limit: Int!) { } } allMeetups: allMdx( - sort: {fields: frontmatter___date, order: DESC} + sort: {frontmatter: {date: DESC}} filter: {frontmatter: {type: {eq: "Meetups"}, published: {eq: true}}} ) { totalCount @@ -113,7 +113,9 @@ export const query = graphql`query allCategories($skip: Int!, $limit: Int!) { } } } - allEvents: allMdx(filter: {frontmatter: {type: {eq: "Event"}, published: {eq: true}}}) { + allEvents: allMdx( + filter: {frontmatter: {type: {eq: "Event"}, published: {eq: true}}} + ) { nodes { id fields { @@ -145,7 +147,7 @@ export const query = graphql`query allCategories($skip: Int!, $limit: Int!) { } allUpcoming: allMdx( filter: {frontmatter: {upcoming: {eq: true}}, fields: {collection: {eq: "events"}}} - sort: {fields: frontmatter___date, order: DESC} + sort: {frontmatter: {date: DESC}} ) { nodes { id @@ -175,8 +177,7 @@ export const query = graphql`query allCategories($skip: Int!, $limit: Int!) { } } } -} -`; +}`; const Events = ({ data, pageContext }) => { return ( diff --git a/src/templates/program-multiple.js b/src/templates/program-multiple.js index c7ee8a513ef1..24502ec61264 100644 --- a/src/templates/program-multiple.js +++ b/src/templates/program-multiple.js @@ -6,22 +6,20 @@ import SEO from "../components/seo"; import ProgramsSingle from "../sections/Careers/Careers-Programs-single"; -export const query = graphql` - query ProgramByName($program: String!) { - allMdx( - sort: {fields: [frontmatter___title], order: DESC} - filter:{frontmatter: { program: { eq: $program } }} - ) { - nodes{ - body - frontmatter { - title - program - } - } - } +export const query = graphql`query ProgramByName($program: String!) { + allMdx( + sort: {frontmatter: {title: DESC}} + filter: {frontmatter: {program: {eq: $program}}} + ) { + nodes { + body + frontmatter { + title + program + } } -`; + } +}`; const ProgramsPage = ({ data }) => { const [activeOption, setActiveOption] = useState(0); From 1fcf40a2d7ced682b4939478b5ccef0272e1dcfc Mon Sep 17 00:00:00 2001 From: Randy Lau Date: Tue, 25 Jul 2023 16:06:50 -0700 Subject: [PATCH 02/41] fix: cleanupIds warn clearing Signed-off-by: Randy Lau --- gatsby-config.js | 316 +++++++++++++++++++++++------------------------ 1 file changed, 152 insertions(+), 164 deletions(-) diff --git a/gatsby-config.js b/gatsby-config.js index efa45b63be93..84fa7256bb88 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -72,7 +72,7 @@ module.exports = { overrides: { // or disable plugins inlineStyles: false, - cleanupIDs: false, + cleanupIds: false, } } }, @@ -115,33 +115,31 @@ module.exports = { }); }); }, - query: ` - { - allPosts: allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { fields: { collection: { in: ["blog", "resources", "news"] } }, frontmatter: { published: { eq: true }, category: { nin: ["Programs", "Community", "Events", "FAQ"] } } } - limit: 20 - ) { - nodes { - body - html - frontmatter { - title - author - description - date(formatString: "MMM DD YYYY") - thumbnail { - publicURL - } - } - fields { - collection - slug - } - } - } - } - `, + query: `{ + allPosts: allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {in: ["blog", "resources", "news"]}}, frontmatter: {published: {eq: true}, category: {nin: ["Programs", "Community", "Events", "FAQ"]}}} + limit: 20 + ) { + nodes { + body + html + frontmatter { + title + author + description + date(formatString: "MMM DD YYYY") + thumbnail { + publicURL + } + } + fields { + collection + slug + } + } + } +}`, output: "/rss.xml", title: "Layer5 Technical Posts", }, @@ -164,32 +162,30 @@ module.exports = { }); }); }, - query: ` - { - allPosts: allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { fields: { collection: { in: [ "news"] } }, frontmatter: { published: { eq: true } } } - limit: 20 - ) { - nodes { - body - html - frontmatter { - title - author - date(formatString: "MMM DD YYYY") - thumbnail { - publicURL - } - } - fields { - collection - slug - } - } - } - } - `, + query: `{ + allPosts: allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {in: ["news"]}}, frontmatter: {published: {eq: true}}} + limit: 20 + ) { + nodes { + body + html + frontmatter { + title + author + date(formatString: "MMM DD YYYY") + thumbnail { + publicURL + } + } + fields { + collection + slug + } + } + } +}`, output: "/news/feed.xml", title: "Layer5 News", }, @@ -212,35 +208,33 @@ module.exports = { }); }); }, - query: ` - { - allPosts: allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { fields: { collection: { in: [ "resources"] } }, frontmatter: { published: { eq: true } } } - limit: 20 - ) { - nodes { - body - html - frontmatter { - title - author - date(formatString: "MMM DD YYYY") - thumbnail { - publicURL - } - darkthumbnail { - publicURL - } - } - fields { - collection - slug - } - } - } - } - `, + query: `{ + allPosts: allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {in: ["resources"]}}, frontmatter: {published: {eq: true}}} + limit: 20 + ) { + nodes { + body + html + frontmatter { + title + author + date(formatString: "MMM DD YYYY") + thumbnail { + publicURL + } + darkthumbnail { + publicURL + } + } + fields { + collection + slug + } + } + } +}`, output: "/resources/feed.xml", title: "Layer5 Resources", }, @@ -263,33 +257,31 @@ module.exports = { }); }); }, - query: ` - { - allPosts: allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { fields: { collection: { in: ["blog", "news"] } }, frontmatter: { published: { eq: true } } } - limit: 20 - ) { - nodes { - body - html - frontmatter { - title - author - description - date(formatString: "MMM DD YYYY") - thumbnail { - publicURL - } - } - fields { - collection - slug - } - } - } - } - `, + query: `{ + allPosts: allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {in: ["blog", "news"]}}, frontmatter: {published: {eq: true}}} + limit: 20 + ) { + nodes { + body + html + frontmatter { + title + author + description + date(formatString: "MMM DD YYYY") + thumbnail { + publicURL + } + } + fields { + collection + slug + } + } + } +}`, output: "/rss-contributors.xml", title: "Layer5 Contributor Feed", }, @@ -310,33 +302,31 @@ module.exports = { }); }); }, - query: ` - { - allPosts: allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { fields: { collection: { in: ["blog"] } }, frontmatter: { published: { eq: true }, } } - limit: 20 - ) { - nodes { - body - html - frontmatter { - title - author - description - date(formatString: "MMM DD YYYY") - thumbnail { - publicURL - } - } - fields { - collection - slug - } - } - } - } - `, + query: `{ + allPosts: allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {in: ["blog"]}}, frontmatter: {published: {eq: true}}} + limit: 20 + ) { + nodes { + body + html + frontmatter { + title + author + description + date(formatString: "MMM DD YYYY") + thumbnail { + publicURL + } + } + fields { + collection + slug + } + } + } +}`, output: "/blog/feed.xml", title: "Layer5 Blog" }, @@ -357,33 +347,31 @@ module.exports = { }); }); }, - query: ` - { - allPosts: allMdx( - sort: { fields: [frontmatter___date], order: DESC } - filter: { fields: { collection: { in: ["events"] } }, frontmatter: { published: { eq: true }, } } - limit: 20 - ) { - nodes { - body - html - frontmatter { - title - author - description - date(formatString: "MMM DD YYYY") - thumbnail { - publicURL - } - } - fields { - collection - slug - } - } - } - } - `, + query: `{ + allPosts: allMdx( + sort: {frontmatter: {date: DESC}} + filter: {fields: {collection: {in: ["events"]}}, frontmatter: {published: {eq: true}}} + limit: 20 + ) { + nodes { + body + html + frontmatter { + title + author + description + date(formatString: "MMM DD YYYY") + thumbnail { + publicURL + } + } + fields { + collection + slug + } + } + } +}`, output: "/events/feed.xml", title: "Layer5 Events" }, From 7ab074308f9544cb59a7c54b4a6c58b03dd54c42 Mon Sep 17 00:00:00 2001 From: Randy Lau Date: Tue, 25 Jul 2023 16:08:58 -0700 Subject: [PATCH 03/41] fix: react-tooltip upgrade migration change Signed-off-by: Randy Lau --- src/components/Landscape-Table/index.js | 4 ++-- src/components/SMI-Table/index.js | 6 +++--- src/components/blog-view-tooltip.js | 6 +++--- src/sections/Landscape/categories.js | 12 ++++++------ 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/components/Landscape-Table/index.js b/src/components/Landscape-Table/index.js index fb1aa1db7c53..dbc6c69b37ac 100644 --- a/src/components/Landscape-Table/index.js +++ b/src/components/Landscape-Table/index.js @@ -1,6 +1,6 @@ import React from "react"; import { useTable, useSortBy, useFilters, useGlobalFilter, useAsyncDebounce } from "react-table"; -import ReactTooltip from "react-tooltip"; +import Tooltip from "react-tooltip"; import { IoMdHelpCircle } from "@react-icons/all-files/io/IoMdHelpCircle"; import { IconContext } from "@react-icons/all-files"; import { TableWrapper } from "./LandscapeTable.style"; @@ -119,7 +119,7 @@ const Table = ({ columns, data, placeHolder }) => { > {cell.render("Cell")} - { (non_functional.find(ele => ele.name.includes(row.original.mesh_name))) ? <> ele.name.includes(row.original.mesh_name)).icon} alt="Mesh Icon" /> - { : <> - { - { -
{mesh.name} -
{client.name} -
{gateway.name} -
{proxy.name} -
{balancer.name} - Date: Tue, 25 Jul 2023 16:10:17 -0700 Subject: [PATCH 04/41] fix: prism-react-renderer upgrade changes Signed-off-by: Randy Lau --- src/components/CodeBlock/index.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/CodeBlock/index.js b/src/components/CodeBlock/index.js index 52848122d0ab..790a04c62e64 100644 --- a/src/components/CodeBlock/index.js +++ b/src/components/CodeBlock/index.js @@ -1,6 +1,5 @@ import React, { useState } from "react"; -import Highlight, { defaultProps } from "prism-react-renderer"; -import theme from "prism-react-renderer/themes/nightOwl"; +import { Highlight, themes } from "prism-react-renderer"; import styled from "styled-components"; import { copyToClipboard } from "./copy-to-clipboard"; @@ -51,10 +50,9 @@ const Code = ({ codeString, language }) => { }; return ( {({ className, style, tokens, getLineProps, getTokenProps }) => (

From 1e410352b2bc67225a5e2cbe073702fe1c104598 Mon Sep 17 00:00:00 2001
From: Randy Lau 
Date: Tue, 25 Jul 2023 16:34:24 -0700
Subject: [PATCH 05/41] fix: react-tooltip migration changes

Signed-off-by: Randy Lau 
---
 src/components/Landscape-Table/index.js     | 2 +-
 src/components/SMI-Table/index.js           | 2 +-
 src/components/blog-view-tooltip.js         | 2 +-
 src/sections/Landscape/categories.js        | 2 +-
 src/sections/Learn-Layer5/Chapters/index.js | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/components/Landscape-Table/index.js b/src/components/Landscape-Table/index.js
index dbc6c69b37ac..f4d5cebe354d 100644
--- a/src/components/Landscape-Table/index.js
+++ b/src/components/Landscape-Table/index.js
@@ -1,6 +1,6 @@
 import React from "react";
 import { useTable, useSortBy, useFilters, useGlobalFilter, useAsyncDebounce } from "react-table";
-import Tooltip from "react-tooltip";
+import { Tooltip } from "react-tooltip";
 import { IoMdHelpCircle } from "@react-icons/all-files/io/IoMdHelpCircle";
 import { IconContext } from "@react-icons/all-files";
 import { TableWrapper } from "./LandscapeTable.style";
diff --git a/src/components/SMI-Table/index.js b/src/components/SMI-Table/index.js
index 89275aaf84a1..dd533bb502de 100644
--- a/src/components/SMI-Table/index.js
+++ b/src/components/SMI-Table/index.js
@@ -4,7 +4,7 @@ import { IoMdHelpCircle } from "@react-icons/all-files/io/IoMdHelpCircle";
 import { IconContext } from "@react-icons/all-files";
 import { TableWrapper } from "./SMITable.style";
 import { non_functional } from "../../collections/landscape/non-functional";
-import Tooltip from "react-tooltip";
+import { Tooltip } from "react-tooltip";
 import { StaticImage } from "gatsby-plugin-image";
 
 const halfMark = "../../assets/images/landscape/half.svg";
diff --git a/src/components/blog-view-tooltip.js b/src/components/blog-view-tooltip.js
index cc39083f041c..b92e9e3fbea5 100644
--- a/src/components/blog-view-tooltip.js
+++ b/src/components/blog-view-tooltip.js
@@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react";
 import { Row } from "../reusecore/Layout";
 import { TiThList } from "@react-icons/all-files/ti/TiThList";
 import { BsGrid3X3GapFill } from "@react-icons/all-files/bs/BsGrid3X3GapFill";
-import Tooltip from "react-tooltip";
+import { Tooltip } from "react-tooltip";
 import styled from "styled-components";
 
 export const ToolTipWrapper = styled.div`
diff --git a/src/sections/Landscape/categories.js b/src/sections/Landscape/categories.js
index 4e35550098c7..eb26522f022c 100644
--- a/src/sections/Landscape/categories.js
+++ b/src/sections/Landscape/categories.js
@@ -4,7 +4,7 @@ import { meshes } from "../../collections/landscape/meshes";
 import { gateways } from "../../collections/landscape/gateways";
 import { proxies } from "../../collections/landscape/proxies";
 import { load_balancer } from "../../collections/landscape/load-balancer";
-import Tooltip from "react-tooltip";
+import { Tooltip } from "react-tooltip";
 
 function Categories() {
   return (
diff --git a/src/sections/Learn-Layer5/Chapters/index.js b/src/sections/Learn-Layer5/Chapters/index.js
index 6b3325b22463..b9ebbc71a3be 100644
--- a/src/sections/Learn-Layer5/Chapters/index.js
+++ b/src/sections/Learn-Layer5/Chapters/index.js
@@ -6,7 +6,7 @@ import { Container, Row, Col } from "../../../reusecore/Layout";
 import TOC from "../../../components/Learn-Components/TOC-Chapters";
 import Image from "../../../components/image";
 import { ChapterWrapper } from "./chapters.style";
-import Tooltip from "react-tooltip";
+import { Tooltip } from "react-tooltip";
 import Pagination from "../../../components/Learn-Components/Pagination";
 import QuizModal from "../../../components/Learn-Components/QuizModal";
 

From 2893a760e8310573da9d9b8d6fe305a434d98392 Mon Sep 17 00:00:00 2001
From: Randy Lau 
Date: Tue, 25 Jul 2023 16:35:26 -0700
Subject: [PATCH 06/41] fix: swiper migration changes

Signed-off-by: Randy Lau 
---
 src/components/UpcomingEventCard/index.js                       | 2 +-
 .../Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/components/UpcomingEventCard/index.js b/src/components/UpcomingEventCard/index.js
index 114ce35431f9..a95d46c1bdae 100644
--- a/src/components/UpcomingEventCard/index.js
+++ b/src/components/UpcomingEventCard/index.js
@@ -3,7 +3,7 @@ import Image from "../image";
 import { MDXRenderer } from "gatsby-plugin-mdx";
 import UpcomingEventsWrapper from "./EventCard.style";
 import { Swiper, SwiperSlide } from "swiper/react";
-import { Pagination, Mousewheel } from "swiper";
+import { Pagination, Mousewheel } from "swiper/modules";
 import { Link } from "gatsby";
 import "swiper/css/bundle";
 import Button from "../../reusecore/Button";
diff --git a/src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js b/src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js
index ece7418043f9..b86715e620fd 100644
--- a/src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js
+++ b/src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js
@@ -4,7 +4,7 @@ import { Swiper, SwiperSlide } from "swiper/react";
 import SwiperContainer from "./mobile-swiper.style.js";
 import "swiper/css";
 import "swiper/css/effect-cards";
-import { EffectCards, Pagination, Navigation, Autoplay } from "swiper";
+import { EffectCards, Pagination, Navigation, Autoplay } from "swiper/modules";
 import dragDrop from "../images/drag-drop-components.gif";
 import mergeDesign from "../images/merge-design.gif";
 import connectComponents from "../images/connect-components.gif";

From 22cd4831f7daeb6ec7f60c460f08025d6f8e7ba7 Mon Sep 17 00:00:00 2001
From: Randy Lau 
Date: Tue, 25 Jul 2023 16:38:17 -0700
Subject: [PATCH 07/41] fix: gatsby v5 graphql migration change

Signed-off-by: Randy Lau 
---
 gatsby-node.js | 148 +++++++++++++++++++++++--------------------------
 1 file changed, 70 insertions(+), 78 deletions(-)

diff --git a/gatsby-node.js b/gatsby-node.js
index d3aadb2e9f3e..27dbfff18ae9 100644
--- a/gatsby-node.js
+++ b/gatsby-node.js
@@ -146,92 +146,84 @@ exports.createPages = async ({ actions, graphql, reporter }) => {
     "src/templates/integrations.js"
   );
 
-  const res = await graphql(`
-    {
-      allPosts:  allMdx(
-        filter: { frontmatter: { published: { eq: true } } }
-      ) {
-        nodes {
-          frontmatter{
-            program
-            programSlug
-          }
-          fields {
-            collection
-            slug
-          }
-        }
+  const res = await graphql(`{
+  allPosts: allMdx(filter: {frontmatter: {published: {eq: true}}}) {
+    nodes {
+      frontmatter {
+        program
+        programSlug
       }
-      blogTags: allMdx(
-        filter: { fields: { collection: { eq: "blog" } }, frontmatter: { published: { eq: true } } }
-        ){
-          group(field: frontmatter___tags) {
-            nodes{
-              id
-            }
-            fieldValue
-          }
+      fields {
+        collection
+        slug
       }
-      blogCategory: allMdx(
-        filter: { fields: { collection: { eq: "blog" } }, frontmatter: { published: { eq: true } } }
-        ){
-          group(field: frontmatter___category) {
-            nodes{
-              id
-            }
-            fieldValue
-          }
+    }
+  }
+  blogTags: allMdx(
+    filter: {fields: {collection: {eq: "blog"}}, frontmatter: {published: {eq: true}}}
+  ) {
+    group(field: {frontmatter: {tags: SELECT}}) {
+      nodes {
+        id
       }
-      memberBio: allMdx(
-        filter: { fields: { collection: { eq: "members" } }, frontmatter: { published: { eq: true }, executive_bio: { eq: true } } }
-        ){
-          nodes{
-            frontmatter{
-              name
-            }
-            fields{
-              slug
-              collection
-            }
-          }
+      fieldValue
+    }
+  }
+  blogCategory: allMdx(
+    filter: {fields: {collection: {eq: "blog"}}, frontmatter: {published: {eq: true}}}
+  ) {
+    group(field: {frontmatter: {category: SELECT}}) {
+      nodes {
+        id
       }
-      singleWorkshop: allMdx(
-        filter: {fields: {collection: {eq: "service-mesh-workshops"}}}
-      ){
-        nodes{
-          fields{
-            slug
-            collection
-          }
-        }
+      fieldValue
+    }
+  }
+  memberBio: allMdx(
+    filter: {fields: {collection: {eq: "members"}}, frontmatter: {published: {eq: true}, executive_bio: {eq: true}}}
+  ) {
+    nodes {
+      frontmatter {
+        name
       }
-      labs: allMdx(
-        filter: {fields: {collection: {eq: "service-mesh-labs"}}}
-      ){
-        nodes{
-          fields{
-            slug
-            collection
-          }
-        }
+      fields {
+        slug
+        collection
       }
-      learncontent: allMdx(
-        filter: {fields: {collection: {eq: "content-learn"}}}
-      ){
-        nodes{
-          fields{
-            learnpath
-            slug
-            course
-            section
-            chapter
-            pageType
-            collection
-          }
-        }
+    }
+  }
+  singleWorkshop: allMdx(
+    filter: {fields: {collection: {eq: "service-mesh-workshops"}}}
+  ) {
+    nodes {
+      fields {
+        slug
+        collection
+      }
+    }
+  }
+  labs: allMdx(filter: {fields: {collection: {eq: "service-mesh-labs"}}}) {
+    nodes {
+      fields {
+        slug
+        collection
       }
     }
-  `);
+  }
+  learncontent: allMdx(filter: {fields: {collection: {eq: "content-learn"}}}) {
+    nodes {
+      fields {
+        learnpath
+        slug
+        course
+        section
+        chapter
+        pageType
+        collection
+      }
+    }
+  }
+}`);
 
   // handle errors
   if (res.errors) {

From 17baae8fcf5872822f3d9d2b7cff0406b60d5203 Mon Sep 17 00:00:00 2001
From: Randy Lau 
Date: Tue, 25 Jul 2023 16:40:01 -0700
Subject: [PATCH 08/41] chore: gatsby v5 plugin update except mdx-related

Signed-off-by: Randy Lau 
---
 package-lock.json | 4892 ++++++++++++++++++++++++---------------------
 package.json      |   70 +-
 2 files changed, 2700 insertions(+), 2262 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index c25577d7f143..c1942e928195 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,10 +8,11 @@
       "name": "Layer5",
       "version": "1.0.0",
       "dependencies": {
-        "@fullcalendar/daygrid": "^5.11.3",
+        "@fullcalendar/core": "^6.1.8",
+        "@fullcalendar/daygrid": "^6.1.8",
         "@fullcalendar/google-calendar": "^6.0.2",
         "@fullcalendar/interaction": "^6.0.1",
-        "@fullcalendar/react": "^5.11.2",
+        "@fullcalendar/react": "^6.1.8",
         "@loadable/component": "^5.15.3",
         "@mdx-js/mdx": "^1.6.22",
         "@mdx-js/react": "^1.6.22",
@@ -19,86 +20,95 @@
         "@sideway/address": "^5.0.0",
         "@svgr/webpack": "^8.0.1",
         "axios": "^1.4.0",
-        "babel-plugin-styled-components": "^2.0.7",
-        "babel-preset-gatsby": "^2.22.0",
+        "babel-plugin-styled-components": "^2.1.4",
+        "babel-preset-gatsby": "^3.11.0",
         "cytoscape": "^3.23.0",
         "cytoscape-cose-bilkent": "^4.1.0",
         "cytoscape-fcose": "^2.2.0",
-        "dedent": "^0.7.0",
+        "dedent": "^1.2.0",
         "deepmerge": "^4.3.0",
         "formik": "^2.2.9",
-        "gatsby": "^4.20.0",
+        "gatsby": "^5.11.0",
         "gatsby-awesome-pagination": "^0.3.8",
         "gatsby-background-image": "^1.6.0",
         "gatsby-cli": "^5.5.0",
         "gatsby-plugin-anchor-links": "^1.2.1",
-        "gatsby-plugin-feed": "^4.25.0",
-        "gatsby-plugin-image": "^2.22.0",
+        "gatsby-plugin-feed": "^5.11.0",
+        "gatsby-plugin-image": "^3.11.0",
         "gatsby-plugin-loadable-components-ssr": "^4.3.2",
-        "gatsby-plugin-manifest": "^4.25.0",
+        "gatsby-plugin-manifest": "^5.11.0",
         "gatsby-plugin-mdx": "^3.20.0",
         "gatsby-plugin-meta-redirect": "github:layer5labs/gatsby-plugin-meta-redirect",
-        "gatsby-plugin-preload-fonts": "^3.24.0",
-        "gatsby-plugin-robots-txt": "1.7.1",
-        "gatsby-plugin-sharp": "^4.25.1",
-        "gatsby-plugin-sitemap": "^5.25.0",
-        "gatsby-plugin-styled-components": "^5.25.0",
+        "gatsby-plugin-preload-fonts": "^4.11.0",
+        "gatsby-plugin-robots-txt": "^1.8.0",
+        "gatsby-plugin-sharp": "^5.11.0",
+        "gatsby-plugin-sitemap": "^6.11.0",
+        "gatsby-plugin-styled-components": "^6.11.0",
         "gatsby-plugin-svgr": "^3.0.0-beta.0",
-        "gatsby-redirect-from": "^0.5.0",
-        "gatsby-source-filesystem": "^4.25.0",
-        "gatsby-transformer-sharp": "^4.25.0",
+        "gatsby-redirect-from": "^1.0.4",
+        "gatsby-source-filesystem": "^5.11.0",
+        "gatsby-transformer-sharp": "^5.11.0",
         "gbimage-bridge": "^0.2.2",
         "gsap": "^3.12.2",
         "joi": "^17.7.0",
         "js-search": "^2.0.0",
         "lodash": "^4.17.21",
-        "prism-react-renderer": "^1.3.5",
+        "prism-react-renderer": "^2.0.6",
         "prop-types": "^15.7.2",
-        "react": "^17.0.2",
+        "react": "^18.2.0",
         "react-accessible-accordion": "^5.0.0",
         "react-copy-to-clipboard": "^5.1.0",
         "react-countdown": "^2.3.5",
         "react-countup": "^6.1.1",
         "react-debounce-input": "^3.3.0",
-        "react-dom": "^17.0.2",
+        "react-dom": "^18.2.0",
         "react-honeycomb": "^0.1.3",
-        "react-intersection-observer": "^9.4.1",
+        "react-intersection-observer": "^9.5.2",
+        "react-is": "^18.2.0",
         "react-loadable": "^5.5.0",
         "react-modal": "^3.16.1",
         "react-player": "^2.12.0",
         "react-scroll": "^1.8.7",
-        "react-select": "^5.7.2",
+        "react-select": "^5.7.4",
         "react-share": "^4.4.1",
         "react-slick": "^0.29.0",
         "react-table": "^7.8.0",
-        "react-tabs": "^4.2.1",
-        "react-tooltip": "^4.5.1",
-        "react-tsparticles": "^2.1.4",
+        "react-tabs": "^6.0.2",
+        "react-tooltip": "^5.18.1",
+        "react-tsparticles": "^2.11.0",
         "react-vertical-timeline-component": "^3.5.2",
         "react-visibility-sensor": "^5.1.1",
-        "sharp": "^0.31.3",
+        "sharp": "^0.32.4",
         "simple-react-cytoscape": "^1.0.4",
         "simple-react-lightbox": "^3.6.8",
         "slick-carousel": "^1.8.1",
-        "styled-components": "^5.3.9",
-        "swiper": "^9.2.0"
+        "styled-components": "^6.0.5",
+        "swiper": "^10.0.4"
       },
       "devDependencies": {
-        "@babel/cli": "^7.18.10",
-        "@babel/core": "^7.18.6",
-        "@babel/eslint-parser": "^7.21.3",
+        "@babel/cli": "^7.22.9",
+        "@babel/core": "^7.22.9",
+        "@babel/eslint-parser": "^7.22.9",
         "babel-plugin-module-resolver": "^5.0.0",
         "cpx": "^1.5.0",
         "cross-env": "^7.0.0",
         "env-cmd": "^10.1.0",
-        "eslint": "^8.28.0",
+        "eslint": "^8.45.0",
         "gatsby-plugin-webpack-bundle-analyser-v2": "^1.1.30",
-        "gh-pages": "^4.0.0",
+        "gh-pages": "^5.0.0",
         "husky": "^8.0.3",
-        "rimraf": "^3.0.2",
+        "rimraf": "^5.0.1",
         "webpack-cli": "^5.0.2"
       }
     },
+    "node_modules/@aashutoshrathi/word-wrap": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+      "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/@ampproject/remapping": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@@ -206,10 +216,9 @@
       }
     },
     "node_modules/@babel/cli": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.5.tgz",
-      "integrity": "sha512-N5d7MjzwsQ2wppwjhrsicVDhJSqF9labEP/swYiHhio4Ca2XjEehpgPmerjnLQl7BPE59BLud0PTWGYwqFl/cQ==",
-      "dev": true,
+      "version": "7.22.9",
+      "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.9.tgz",
+      "integrity": "sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA==",
       "dependencies": {
         "@jridgewell/trace-mapping": "^0.3.17",
         "commander": "^4.0.1",
@@ -246,33 +255,33 @@
       }
     },
     "node_modules/@babel/compat-data": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz",
-      "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==",
+      "version": "7.22.9",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
+      "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/core": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz",
-      "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==",
+      "version": "7.22.9",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz",
+      "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==",
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
         "@babel/code-frame": "^7.22.5",
-        "@babel/generator": "^7.22.5",
-        "@babel/helper-compilation-targets": "^7.22.5",
-        "@babel/helper-module-transforms": "^7.22.5",
-        "@babel/helpers": "^7.22.5",
-        "@babel/parser": "^7.22.5",
+        "@babel/generator": "^7.22.9",
+        "@babel/helper-compilation-targets": "^7.22.9",
+        "@babel/helper-module-transforms": "^7.22.9",
+        "@babel/helpers": "^7.22.6",
+        "@babel/parser": "^7.22.7",
         "@babel/template": "^7.22.5",
-        "@babel/traverse": "^7.22.5",
+        "@babel/traverse": "^7.22.8",
         "@babel/types": "^7.22.5",
         "convert-source-map": "^1.7.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.2",
         "json5": "^2.2.2",
-        "semver": "^6.3.0"
+        "semver": "^6.3.1"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -283,13 +292,13 @@
       }
     },
     "node_modules/@babel/eslint-parser": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.5.tgz",
-      "integrity": "sha512-C69RWYNYtrgIRE5CmTd77ZiLDXqgBipahJc/jHP3sLcAGj6AJzxNIuKNpVnICqbyK7X3pFUfEvL++rvtbQpZkQ==",
+      "version": "7.22.9",
+      "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.9.tgz",
+      "integrity": "sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA==",
       "dependencies": {
         "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
         "eslint-visitor-keys": "^2.1.0",
-        "semver": "^6.3.0"
+        "semver": "^6.3.1"
       },
       "engines": {
         "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
@@ -300,9 +309,9 @@
       }
     },
     "node_modules/@babel/generator": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz",
-      "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==",
+      "version": "7.22.9",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz",
+      "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==",
       "dependencies": {
         "@babel/types": "^7.22.5",
         "@jridgewell/gen-mapping": "^0.3.2",
@@ -336,15 +345,15 @@
       }
     },
     "node_modules/@babel/helper-compilation-targets": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz",
-      "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==",
+      "version": "7.22.9",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz",
+      "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==",
       "dependencies": {
-        "@babel/compat-data": "^7.22.5",
+        "@babel/compat-data": "^7.22.9",
         "@babel/helper-validator-option": "^7.22.5",
-        "browserslist": "^4.21.3",
+        "browserslist": "^4.21.9",
         "lru-cache": "^5.1.1",
-        "semver": "^6.3.0"
+        "semver": "^6.3.1"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -461,21 +470,21 @@
       }
     },
     "node_modules/@babel/helper-module-transforms": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz",
-      "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==",
+      "version": "7.22.9",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
+      "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
       "dependencies": {
         "@babel/helper-environment-visitor": "^7.22.5",
         "@babel/helper-module-imports": "^7.22.5",
         "@babel/helper-simple-access": "^7.22.5",
-        "@babel/helper-split-export-declaration": "^7.22.5",
-        "@babel/helper-validator-identifier": "^7.22.5",
-        "@babel/template": "^7.22.5",
-        "@babel/traverse": "^7.22.5",
-        "@babel/types": "^7.22.5"
+        "@babel/helper-split-export-declaration": "^7.22.6",
+        "@babel/helper-validator-identifier": "^7.22.5"
       },
       "engines": {
         "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
       }
     },
     "node_modules/@babel/helper-optimise-call-expression": {
@@ -553,9 +562,9 @@
       }
     },
     "node_modules/@babel/helper-split-export-declaration": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz",
-      "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==",
+      "version": "7.22.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+      "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
       "dependencies": {
         "@babel/types": "^7.22.5"
       },
@@ -602,12 +611,12 @@
       }
     },
     "node_modules/@babel/helpers": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
-      "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
+      "version": "7.22.6",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz",
+      "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==",
       "dependencies": {
         "@babel/template": "^7.22.5",
-        "@babel/traverse": "^7.22.5",
+        "@babel/traverse": "^7.22.6",
         "@babel/types": "^7.22.5"
       },
       "engines": {
@@ -628,9 +637,9 @@
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz",
-      "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==",
+      "version": "7.22.7",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz",
+      "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==",
       "bin": {
         "parser": "bin/babel-parser.js"
       },
@@ -668,6 +677,20 @@
         "@babel/core": "^7.13.0"
       }
     },
+    "node_modules/@babel/plugin-external-helpers": {
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.22.5.tgz",
+      "integrity": "sha512-ngnNEWxmykPk82mH4ajZT0qTztr3Je6hrMuKAslZVM8G1YZTENJSYwrIGtt6KOtznug3exmAtF4so/nPqJuA4A==",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.22.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
     "node_modules/@babel/plugin-proposal-class-properties": {
       "version": "7.18.6",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
@@ -2082,17 +2105,17 @@
       }
     },
     "node_modules/@babel/traverse": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz",
-      "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==",
+      "version": "7.22.8",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz",
+      "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==",
       "dependencies": {
         "@babel/code-frame": "^7.22.5",
-        "@babel/generator": "^7.22.5",
+        "@babel/generator": "^7.22.7",
         "@babel/helper-environment-visitor": "^7.22.5",
         "@babel/helper-function-name": "^7.22.5",
         "@babel/helper-hoist-variables": "^7.22.5",
-        "@babel/helper-split-export-declaration": "^7.22.5",
-        "@babel/parser": "^7.22.5",
+        "@babel/helper-split-export-declaration": "^7.22.6",
+        "@babel/parser": "^7.22.7",
         "@babel/types": "^7.22.5",
         "debug": "^4.1.0",
         "globals": "^11.1.0"
@@ -2115,9 +2138,9 @@
       }
     },
     "node_modules/@builder.io/partytown": {
-      "version": "0.5.4",
-      "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.5.4.tgz",
-      "integrity": "sha512-qnikpQgi30AS01aFlNQV6l8/qdZIcP76mp90ti+u4rucXHsn4afSKivQXApqxvrQG9+Ibv45STyvHizvxef/7A==",
+      "version": "0.7.6",
+      "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.7.6.tgz",
+      "integrity": "sha512-snXIGNiZpqjno3XYQN2lbBB+05hsQR/LSttbtIW1c0gmZ7Kh/DIo0YrxlDxCDulAMFPFM8J+4voLwvYepSj3sw==",
       "bin": {
         "partytown": "bin/partytown.cjs"
       }
@@ -2245,11 +2268,6 @@
       "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz",
       "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA=="
     },
-    "node_modules/@emotion/stylis": {
-      "version": "0.8.5",
-      "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz",
-      "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ=="
-    },
     "node_modules/@emotion/unitless": {
       "version": "0.8.1",
       "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
@@ -2307,13 +2325,14 @@
       }
     },
     "node_modules/@eslint/eslintrc": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
-      "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz",
+      "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==",
+      "dev": true,
       "dependencies": {
         "ajv": "^6.12.4",
         "debug": "^4.3.2",
-        "espree": "^9.5.2",
+        "espree": "^9.6.0",
         "globals": "^13.19.0",
         "ignore": "^5.2.0",
         "import-fresh": "^3.2.1",
@@ -2332,6 +2351,7 @@
       "version": "13.20.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
       "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+      "dev": true,
       "dependencies": {
         "type-fest": "^0.20.2"
       },
@@ -2343,9 +2363,10 @@
       }
     },
     "node_modules/@eslint/js": {
-      "version": "8.43.0",
-      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz",
-      "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==",
+      "version": "8.44.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz",
+      "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==",
+      "dev": true,
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       }
@@ -2363,30 +2384,20 @@
         "@floating-ui/core": "^1.3.1"
       }
     },
-    "node_modules/@fullcalendar/common": {
-      "version": "5.11.5",
-      "resolved": "https://registry.npmjs.org/@fullcalendar/common/-/common-5.11.5.tgz",
-      "integrity": "sha512-3iAYiUbHXhjSVXnYWz27Od2cslztUPsOwiwKlfGvQxBixv2Kl6a8IPwaijKFYJHXdwYmfPoEgK7rvqAGVoIYwA==",
-      "dependencies": {
-        "tslib": "^2.1.0"
-      }
-    },
     "node_modules/@fullcalendar/core": {
       "version": "6.1.8",
       "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.8.tgz",
       "integrity": "sha512-i8JBIvZCWGO9dsMEDcx9bnsQZ9PtGSJdOXGgWbhLaGq2iq41OBdp9g9gM4b/Otv2oK8bL5Gl6CsMmb/HkDtA6Q==",
-      "peer": true,
       "dependencies": {
         "preact": "~10.12.1"
       }
     },
     "node_modules/@fullcalendar/daygrid": {
-      "version": "5.11.5",
-      "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-5.11.5.tgz",
-      "integrity": "sha512-hMpq0U3Nucys2jDD+crbkJCr+tVt3fDw04OE3fbpisuzqtrHxIzRmnUOdbWUjJQyToAAkt7UVUQ9E7hYdmvyGA==",
-      "dependencies": {
-        "@fullcalendar/common": "~5.11.5",
-        "tslib": "^2.1.0"
+      "version": "6.1.8",
+      "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.8.tgz",
+      "integrity": "sha512-kCZxQFKb9Vqa3CZRX0v7rMSJ2mlTt4gDpyLfiNJKxUAq7W51uKurPaFZWicaXy1ESHVBxKNlbx5uNjBpyu50JQ==",
+      "peerDependencies": {
+        "@fullcalendar/core": "~6.1.8"
       }
     },
     "node_modules/@fullcalendar/google-calendar": {
@@ -2406,45 +2417,80 @@
       }
     },
     "node_modules/@fullcalendar/react": {
-      "version": "5.11.5",
-      "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-5.11.5.tgz",
-      "integrity": "sha512-PbBlDyKJ8IQYf5mBdD1mjDas2v3eEU1UfWYLv0e6uGCktH+g4mgaG/LCDOwE65V5VH5FH8+kVkFjIScwA54WwA==",
-      "dependencies": {
-        "@fullcalendar/common": "~5.11.5",
-        "tslib": "^2.1.0"
-      },
+      "version": "6.1.8",
+      "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.8.tgz",
+      "integrity": "sha512-E8GQSQyZHkjpwxQW5Vci7iZgN7f33ntuRcvfGii4Fn35t9VHGz2SEyKAWXpVf38elcKTZKVgajU9ipStd+1LEg==",
       "peerDependencies": {
+        "@fullcalendar/core": "~6.1.8",
         "react": "^16.7.0 || ^17 || ^18",
         "react-dom": "^16.7.0 || ^17 || ^18"
       }
     },
     "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.10.0.tgz",
-      "integrity": "sha512-JSiOxG2SD64joKfcCOdujIpqmhs+k5Ic1sO/hQ83EVF6G9DJJTf8n12rGb2rzPb00TFT4ldb/nWxQRV+kQTlPA==",
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-2.11.0.tgz",
+      "integrity": "sha512-Iniqvn2uREkyf6LC4Ge0NQE9EeVbACqDSFn2Fl4brl4obwcubwWxVyB4fof34r8yG7YuDIPWeyT6iuRocGqp8w==",
       "dependencies": {
-        "@babel/runtime": "^7.18.0",
-        "@parcel/namer-default": "2.6.2",
-        "@parcel/plugin": "2.6.2",
-        "gatsby-core-utils": "^3.25.0"
+        "@babel/runtime": "^7.20.13",
+        "@parcel/namer-default": "2.8.3",
+        "@parcel/plugin": "2.8.3",
+        "gatsby-core-utils": "^4.11.0"
       },
       "engines": {
-        "node": ">=14.15.0",
+        "node": ">=18.0.0",
         "parcel": "2.x"
       }
     },
+    "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
     "node_modules/@gatsbyjs/reach-router": {
-      "version": "1.3.9",
-      "resolved": "https://registry.npmjs.org/@gatsbyjs/reach-router/-/reach-router-1.3.9.tgz",
-      "integrity": "sha512-/354IaUSM54xb7K/TxpLBJB94iEAJ3P82JD38T8bLnIDWF+uw8+W/82DKnQ7y24FJcKxtVmG43aiDLG88KSuYQ==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/@gatsbyjs/reach-router/-/reach-router-2.0.1.tgz",
+      "integrity": "sha512-gmSZniS9/phwgEgpFARMpNg21PkYDZEpfgEzvkgpE/iku4uvXqCrxr86fXbTpI9mkrhKS1SCTYmLGe60VdHcdQ==",
       "dependencies": {
-        "invariant": "^2.2.3",
-        "prop-types": "^15.6.1",
-        "react-lifecycles-compat": "^3.0.4"
+        "invariant": "^2.2.4",
+        "prop-types": "^15.8.1"
       },
       "peerDependencies": {
-        "react": "15.x || 16.x || 17.x || 18.x",
-        "react-dom": "15.x || 16.x || 17.x || 18.x"
+        "react": "18.x",
+        "react-dom": "18.x"
       }
     },
     "node_modules/@gatsbyjs/webpack-hot-middleware": {
@@ -2921,60 +2967,16 @@
         "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
       }
     },
-    "node_modules/@hapi/address": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
-      "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==",
-      "deprecated": "Moved to 'npm install @sideway/address'"
-    },
-    "node_modules/@hapi/bourne": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
-      "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
-      "deprecated": "This version has been deprecated and is no longer supported or maintained"
-    },
     "node_modules/@hapi/hoek": {
       "version": "10.0.1",
       "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-10.0.1.tgz",
       "integrity": "sha512-CvlW7jmOhWzuqOqiJQ3rQVLMcREh0eel4IBnxDx2FAcK8g7qoJRQK4L1CPBASoCY6y8e6zuCy3f2g+HWdkzcMw=="
     },
-    "node_modules/@hapi/joi": {
-      "version": "15.1.1",
-      "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
-      "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
-      "deprecated": "Switch to 'npm install joi'",
-      "dependencies": {
-        "@hapi/address": "2.x.x",
-        "@hapi/bourne": "1.x.x",
-        "@hapi/hoek": "8.x.x",
-        "@hapi/topo": "3.x.x"
-      }
-    },
-    "node_modules/@hapi/joi/node_modules/@hapi/hoek": {
-      "version": "8.5.1",
-      "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
-      "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
-      "deprecated": "This version has been deprecated and is no longer supported or maintained"
-    },
-    "node_modules/@hapi/topo": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
-      "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
-      "deprecated": "This version has been deprecated and is no longer supported or maintained",
-      "dependencies": {
-        "@hapi/hoek": "^8.3.0"
-      }
-    },
-    "node_modules/@hapi/topo/node_modules/@hapi/hoek": {
-      "version": "8.5.1",
-      "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
-      "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
-      "deprecated": "This version has been deprecated and is no longer supported or maintained"
-    },
     "node_modules/@humanwhocodes/config-array": {
       "version": "0.11.10",
       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
       "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
+      "dev": true,
       "dependencies": {
         "@humanwhocodes/object-schema": "^1.2.1",
         "debug": "^4.1.1",
@@ -2988,6 +2990,7 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
       "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+      "dev": true,
       "engines": {
         "node": ">=12.22"
       },
@@ -3001,6 +3004,96 @@
       "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
       "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
     },
+    "node_modules/@isaacs/cliui": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+      "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+      "dev": true,
+      "dependencies": {
+        "string-width": "^5.1.2",
+        "string-width-cjs": "npm:string-width@^4.2.0",
+        "strip-ansi": "^7.0.1",
+        "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+        "wrap-ansi": "^8.1.0",
+        "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/string-width": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+      "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+      "dev": true,
+      "dependencies": {
+        "eastasianwidth": "^0.2.0",
+        "emoji-regex": "^9.2.2",
+        "strip-ansi": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+      "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^6.1.0",
+        "string-width": "^5.0.1",
+        "strip-ansi": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
     "node_modules/@jridgewell/gen-mapping": {
       "version": "0.3.3",
       "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
@@ -3423,7 +3516,6 @@
       "version": "2.1.8-no-fsevents.3",
       "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz",
       "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==",
-      "dev": true,
       "optional": true
     },
     "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
@@ -3467,19 +3559,20 @@
       }
     },
     "node_modules/@parcel/bundler-default": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.6.2.tgz",
-      "integrity": "sha512-XIa3had/MIaTGgRFkHApXwytYs77k4geaNcmlb6nzmAABcYjW1CLYh83Zt0AbzLFsDT9ZcRY3u2UjhNf6efSaw==",
-      "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/hash": "2.6.2",
-        "@parcel/plugin": "2.6.2",
-        "@parcel/utils": "2.6.2",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.8.3.tgz",
+      "integrity": "sha512-yJvRsNWWu5fVydsWk3O2L4yIy3UZiKWO2cPDukGOIWMgp/Vbpp+2Ct5IygVRtE22bnseW/E/oe0PV3d2IkEJGg==",
+      "dependencies": {
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/graph": "2.8.3",
+        "@parcel/hash": "2.8.3",
+        "@parcel/plugin": "2.8.3",
+        "@parcel/utils": "2.8.3",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -3487,13 +3580,13 @@
       }
     },
     "node_modules/@parcel/cache": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.6.2.tgz",
-      "integrity": "sha512-hhJ6AsEGybeQZd9c/GYqfcKTgZKQXu3Xih6TlnP3gdR3KZoJOnb40ovHD1yYg4COvfcXThKP1cVJ18J6rcv3IA==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.8.3.tgz",
+      "integrity": "sha512-k7xv5vSQrJLdXuglo+Hv3yF4BCSs1tQ/8Vbd6CHTkOhf7LcGg6CPtLw053R/KdMpd/4GPn0QrAsOLdATm1ELtQ==",
       "dependencies": {
-        "@parcel/fs": "2.6.2",
-        "@parcel/logger": "2.6.2",
-        "@parcel/utils": "2.6.2",
+        "@parcel/fs": "2.8.3",
+        "@parcel/logger": "2.8.3",
+        "@parcel/utils": "2.8.3",
         "lmdb": "2.5.2"
       },
       "engines": {
@@ -3504,7 +3597,7 @@
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.6.2"
+        "@parcel/core": "^2.8.3"
       }
     },
     "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-darwin-arm64": {
@@ -3606,9 +3699,9 @@
       "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ=="
     },
     "node_modules/@parcel/codeframe": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.6.2.tgz",
-      "integrity": "sha512-oFlHr6HCaYYsB4SHkU+gn9DKtbzvv3/4NdwMX0/6NAKyYVI7inEsXyPGw2Bbd2ZCFatW9QJZUETF0etvh5AEfQ==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.8.3.tgz",
+      "integrity": "sha512-FE7sY53D6n/+2Pgg6M9iuEC6F5fvmyBkRE4d9VdnOoxhTXtkEqpqYgX7RJ12FAQwNlxKq4suBJQMgQHMF2Kjeg==",
       "dependencies": {
         "chalk": "^4.1.0"
       },
@@ -3685,15 +3778,15 @@
       }
     },
     "node_modules/@parcel/compressor-raw": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.6.2.tgz",
-      "integrity": "sha512-P3c8jjV5HVs+fNDjhvq7PtHXNm687nit1iwTS5VAt+ScXKhKBhoIJ56q+9opcw0jnXVjAAgZqcRZ50oAJBGdKw==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.8.3.tgz",
+      "integrity": "sha512-bVDsqleBUxRdKMakWSlWC9ZjOcqDKE60BE+Gh3JSN6WJrycJ02P5wxjTVF4CStNP/G7X17U+nkENxSlMG77ySg==",
       "dependencies": {
-        "@parcel/plugin": "2.6.2"
+        "@parcel/plugin": "2.8.3"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -3701,24 +3794,24 @@
       }
     },
     "node_modules/@parcel/core": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.6.2.tgz",
-      "integrity": "sha512-JlKS3Ux0ngmdooSBbzQLShHJdsapF9E7TGMo1hFaHRquZip/DaqzvysYrgMJlDuCoLArciq5ei7ZKzGeK9zexA==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.8.3.tgz",
+      "integrity": "sha512-Euf/un4ZAiClnlUXqPB9phQlKbveU+2CotZv7m7i+qkgvFn5nAGnrV4h1OzQU42j9dpgOxWi7AttUDMrvkbhCQ==",
       "dependencies": {
         "@mischnic/json-sourcemap": "^0.1.0",
-        "@parcel/cache": "2.6.2",
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/events": "2.6.2",
-        "@parcel/fs": "2.6.2",
-        "@parcel/graph": "2.6.2",
-        "@parcel/hash": "2.6.2",
-        "@parcel/logger": "2.6.2",
-        "@parcel/package-manager": "2.6.2",
-        "@parcel/plugin": "2.6.2",
-        "@parcel/source-map": "^2.0.0",
-        "@parcel/types": "2.6.2",
-        "@parcel/utils": "2.6.2",
-        "@parcel/workers": "2.6.2",
+        "@parcel/cache": "2.8.3",
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/events": "2.8.3",
+        "@parcel/fs": "2.8.3",
+        "@parcel/graph": "2.8.3",
+        "@parcel/hash": "2.8.3",
+        "@parcel/logger": "2.8.3",
+        "@parcel/package-manager": "2.8.3",
+        "@parcel/plugin": "2.8.3",
+        "@parcel/source-map": "^2.1.1",
+        "@parcel/types": "2.8.3",
+        "@parcel/utils": "2.8.3",
+        "@parcel/workers": "2.8.3",
         "abortcontroller-polyfill": "^1.1.9",
         "base-x": "^3.0.8",
         "browserslist": "^4.6.6",
@@ -3747,17 +3840,17 @@
       }
     },
     "node_modules/@parcel/core/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "bin": {
         "semver": "bin/semver"
       }
     },
     "node_modules/@parcel/diagnostic": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.6.2.tgz",
-      "integrity": "sha512-3ODSBkKVihENU763z1/1DhGAWFhYWRxOCOShC72KXp+GFnSgGiBsxclu8NBa/N948Rzp8lqQI8U1nLcKkh0O/w==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.8.3.tgz",
+      "integrity": "sha512-u7wSzuMhLGWZjVNYJZq/SOViS3uFG0xwIcqXw12w54Uozd6BH8JlhVtVyAsq9kqnn7YFkw6pXHqAo5Tzh4FqsQ==",
       "dependencies": {
         "@mischnic/json-sourcemap": "^0.1.0",
         "nullthrows": "^1.1.1"
@@ -3771,9 +3864,9 @@
       }
     },
     "node_modules/@parcel/events": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.6.2.tgz",
-      "integrity": "sha512-IaCjOeA5ercdFVi1EZOmUHhGfIysmCUgc2Th9hMugSFO0I3GzRsBcAdP6XPfWm+TV6sQ/qZRfdk/drUxoAupnw==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.8.3.tgz",
+      "integrity": "sha512-hoIS4tAxWp8FJk3628bsgKxEvR7bq2scCVYHSqZ4fTi/s0+VymEATrRCUqf+12e5H47uw1/ZjoqrGtBI02pz4w==",
       "engines": {
         "node": ">= 12.0.0"
       },
@@ -3783,15 +3876,15 @@
       }
     },
     "node_modules/@parcel/fs": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.6.2.tgz",
-      "integrity": "sha512-mIhqdF3tjgeoIGqW7Nc/xfM2ClID7o8livwUe5lpQEP+ZaIBiMigXs6ckv3WToCACK+3uylrSD2A/HmlhrxMqQ==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.8.3.tgz",
+      "integrity": "sha512-y+i+oXbT7lP0e0pJZi/YSm1vg0LDsbycFuHZIL80pNwdEppUAtibfJZCp606B7HOjMAlNZOBo48e3hPG3d8jgQ==",
       "dependencies": {
-        "@parcel/fs-search": "2.6.2",
-        "@parcel/types": "2.6.2",
-        "@parcel/utils": "2.6.2",
-        "@parcel/watcher": "^2.0.0",
-        "@parcel/workers": "2.6.2"
+        "@parcel/fs-search": "2.8.3",
+        "@parcel/types": "2.8.3",
+        "@parcel/utils": "2.8.3",
+        "@parcel/watcher": "^2.0.7",
+        "@parcel/workers": "2.8.3"
       },
       "engines": {
         "node": ">= 12.0.0"
@@ -3801,13 +3894,13 @@
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.6.2"
+        "@parcel/core": "^2.8.3"
       }
     },
     "node_modules/@parcel/fs-search": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.6.2.tgz",
-      "integrity": "sha512-4STid1zqtGnmGjHD/2TG2g/zPDiCTtE3IAS24QYH3eiUAz2uoKGgEqd2tZbZ2yI96jtCuIhC1bzVu8Hbykls7w==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.8.3.tgz",
+      "integrity": "sha512-DJBT2N8knfN7Na6PP2mett3spQLTqxFrvl0gv+TJRp61T8Ljc4VuUTb0hqBj+belaASIp3Q+e8+SgaFQu7wLiQ==",
       "dependencies": {
         "detect-libc": "^1.0.3"
       },
@@ -3820,11 +3913,10 @@
       }
     },
     "node_modules/@parcel/graph": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.6.2.tgz",
-      "integrity": "sha512-DPH4G/RBFJWayIN2fnhDXqhUw75n7k15YsGzdDKiXuwwz4wMOjoL4cyrI6zOf1SIyh3guRmeTYJ4jjPzwrLYww==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.8.3.tgz",
+      "integrity": "sha512-26GL8fYZPdsRhSXCZ0ZWliloK6DHlMJPWh6Z+3VVZ5mnDSbYg/rRKWmrkhnr99ZWmL9rJsv4G74ZwvDEXTMPBg==",
       "dependencies": {
-        "@parcel/utils": "2.6.2",
         "nullthrows": "^1.1.1"
       },
       "engines": {
@@ -3836,9 +3928,9 @@
       }
     },
     "node_modules/@parcel/hash": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.6.2.tgz",
-      "integrity": "sha512-tFB+cJU1Wqag6WyJgsmx3nx+xhmjcNZqtWh/MtK1lHNnZdDRk6bjr7SapnygBwruz+SmSt5bbdVThcpk2dRCcA==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.8.3.tgz",
+      "integrity": "sha512-FVItqzjWmnyP4ZsVgX+G00+6U2IzOvqDtdwQIWisCcVoXJFCqZJDy6oa2qDDFz96xCCCynjRjPdQx2jYBCpfYw==",
       "dependencies": {
         "detect-libc": "^1.0.3",
         "xxhash-wasm": "^0.4.2"
@@ -3852,12 +3944,12 @@
       }
     },
     "node_modules/@parcel/logger": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.6.2.tgz",
-      "integrity": "sha512-Sz5YGCj1DbEiX0/G8Uw97LLZ0uEK+qtWcRAkHNpJpeMiSqDiRNevxXltz42EcLo+oCh4d4wyiVzwi9mNwzhS/Q==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.8.3.tgz",
+      "integrity": "sha512-Kpxd3O/Vs7nYJIzkdmB6Bvp3l/85ydIxaZaPfGSGTYOfaffSOTkhcW9l6WemsxUrlts4za6CaEWcc4DOvaMOPA==",
       "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/events": "2.6.2"
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/events": "2.8.3"
       },
       "engines": {
         "node": ">= 12.0.0"
@@ -3868,9 +3960,9 @@
       }
     },
     "node_modules/@parcel/markdown-ansi": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.6.2.tgz",
-      "integrity": "sha512-N/h9J4eibhc+B+krzvPMzFUWL37GudBIZBa7XSLkcuH6MnYYfh6rrMvhIyyESwk6VkcZNVzAeZrGQqxEs0dHDQ==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.8.3.tgz",
+      "integrity": "sha512-4v+pjyoh9f5zuU/gJlNvNFGEAb6J90sOBwpKJYJhdWXLZMNFCVzSigxrYO+vCsi8G4rl6/B2c0LcwIMjGPHmFQ==",
       "dependencies": {
         "chalk": "^4.1.0"
       },
@@ -3947,17 +4039,17 @@
       }
     },
     "node_modules/@parcel/namer-default": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.6.2.tgz",
-      "integrity": "sha512-mp7bx/BQaIuohmZP0uE+gAmDBzzH0Yu8F4yCtE611lc6i0mou+nWRhzyKLNC/ieuI8DB3BFh2QQKeTxJn4W0qg==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.8.3.tgz",
+      "integrity": "sha512-tJ7JehZviS5QwnxbARd8Uh63rkikZdZs1QOyivUhEvhN+DddSAVEdQLHGPzkl3YRk0tjFhbqo+Jci7TpezuAMw==",
       "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/plugin": "2.6.2",
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/plugin": "2.8.3",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -3965,12 +4057,12 @@
       }
     },
     "node_modules/@parcel/node-resolver-core": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.6.2.tgz",
-      "integrity": "sha512-4b2L5QRYlTybvv3+TIRtwg4PPJXy+cRShCBa8eu1K0Fj297Afe8MOZrcVV+RIr2KPMIRXcIJoqDmOhyci/DynA==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.8.3.tgz",
+      "integrity": "sha512-12YryWcA5Iw2WNoEVr/t2HDjYR1iEzbjEcxfh1vaVDdZ020PiGw67g5hyIE/tsnG7SRJ0xdRx1fQ2hDgED+0Ww==",
       "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/utils": "2.6.2",
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/utils": "2.8.3",
         "nullthrows": "^1.1.1",
         "semver": "^5.7.1"
       },
@@ -3983,28 +4075,28 @@
       }
     },
     "node_modules/@parcel/node-resolver-core/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "bin": {
         "semver": "bin/semver"
       }
     },
     "node_modules/@parcel/optimizer-terser": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.6.2.tgz",
-      "integrity": "sha512-ZSEVQ3G3zOiVPeHvH+BrHegZybrQj9kWQAaAA92leSqbvf6UaX4xqXbGRg2OttNFtbGYBzIl28Zm4t2SLeUIuA==",
-      "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/plugin": "2.6.2",
-        "@parcel/source-map": "^2.0.0",
-        "@parcel/utils": "2.6.2",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.8.3.tgz",
+      "integrity": "sha512-9EeQlN6zIeUWwzrzu6Q2pQSaYsYGah8MtiQ/hog9KEPlYTP60hBv/+utDyYEHSQhL7y5ym08tPX5GzBvwAD/dA==",
+      "dependencies": {
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/plugin": "2.8.3",
+        "@parcel/source-map": "^2.1.1",
+        "@parcel/utils": "2.8.3",
         "nullthrows": "^1.1.1",
         "terser": "^5.2.0"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -4012,16 +4104,16 @@
       }
     },
     "node_modules/@parcel/package-manager": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.6.2.tgz",
-      "integrity": "sha512-xGMqTgnwTE3rgzYwUZMKxR8fzmP5iSYz/gj2H8FR3pEmwh/8xCMtNjTSth+hPVGuqgRZ6JxwpfdY/fXdZ61ViQ==",
-      "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/fs": "2.6.2",
-        "@parcel/logger": "2.6.2",
-        "@parcel/types": "2.6.2",
-        "@parcel/utils": "2.6.2",
-        "@parcel/workers": "2.6.2",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.8.3.tgz",
+      "integrity": "sha512-tIpY5pD2lH53p9hpi++GsODy6V3khSTX4pLEGuMpeSYbHthnOViobqIlFLsjni+QA1pfc8NNNIQwSNdGjYflVA==",
+      "dependencies": {
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/fs": "2.8.3",
+        "@parcel/logger": "2.8.3",
+        "@parcel/types": "2.8.3",
+        "@parcel/utils": "2.8.3",
+        "@parcel/workers": "2.8.3",
         "semver": "^5.7.1"
       },
       "engines": {
@@ -4032,33 +4124,33 @@
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.6.2"
+        "@parcel/core": "^2.8.3"
       }
     },
     "node_modules/@parcel/package-manager/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "bin": {
         "semver": "bin/semver"
       }
     },
     "node_modules/@parcel/packager-js": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.6.2.tgz",
-      "integrity": "sha512-fm5rKWtaExR0W+UEKWivXNPysRFxuBCdskdxDByb1J1JeGMvp7dJElbi8oXDAQM4MnM5EyG7cg47SlMZNTLm4A==",
-      "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/hash": "2.6.2",
-        "@parcel/plugin": "2.6.2",
-        "@parcel/source-map": "^2.0.0",
-        "@parcel/utils": "2.6.2",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.8.3.tgz",
+      "integrity": "sha512-0pGKC3Ax5vFuxuZCRB+nBucRfFRz4ioie19BbDxYnvBxrd4M3FIu45njf6zbBYsI9eXqaDnL1b3DcZJfYqtIzw==",
+      "dependencies": {
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/hash": "2.8.3",
+        "@parcel/plugin": "2.8.3",
+        "@parcel/source-map": "^2.1.1",
+        "@parcel/utils": "2.8.3",
         "globals": "^13.2.0",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -4080,15 +4172,15 @@
       }
     },
     "node_modules/@parcel/packager-raw": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.6.2.tgz",
-      "integrity": "sha512-Rl3ZkMtMjb+LEvRowijDD8fibUAS6rWK0/vZQMk9cDNYCP2gCpZayLk0HZIGxneeTbosf/0sbngHq4VeRQOnQA==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.8.3.tgz",
+      "integrity": "sha512-BA6enNQo1RCnco9MhkxGrjOk59O71IZ9DPKu3lCtqqYEVd823tXff2clDKHK25i6cChmeHu6oB1Rb73hlPqhUA==",
       "dependencies": {
-        "@parcel/plugin": "2.6.2"
+        "@parcel/plugin": "2.8.3"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -4096,11 +4188,11 @@
       }
     },
     "node_modules/@parcel/plugin": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.6.2.tgz",
-      "integrity": "sha512-wbbWsM23Pr+8xtLSvf+UopXdVYlpKCCx6PuuZaZcKo+9IcDCWoGXD4M8Kkz14qBmkFn5uM00mULUqmVdSibB2w==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.8.3.tgz",
+      "integrity": "sha512-jZ6mnsS4D9X9GaNnvrixDQwlUQJCohDX2hGyM0U0bY2NWU8Km97SjtoCpWjq+XBCx/gpC4g58+fk9VQeZq2vlw==",
       "dependencies": {
-        "@parcel/types": "2.6.2"
+        "@parcel/types": "2.8.3"
       },
       "engines": {
         "node": ">= 12.0.0"
@@ -4111,16 +4203,16 @@
       }
     },
     "node_modules/@parcel/reporter-dev-server": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.6.2.tgz",
-      "integrity": "sha512-5QtL3ETMFL161jehlIK6rjBM+Pqk5cMhr60s9yLYqE1GY4M4gMj+Act+FXViyM6gmMA38cPxDvUsxTKBYXpFCw==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.8.3.tgz",
+      "integrity": "sha512-Y8C8hzgzTd13IoWTj+COYXEyCkXfmVJs3//GDBsH22pbtSFMuzAZd+8J9qsCo0EWpiDow7V9f1LischvEh3FbQ==",
       "dependencies": {
-        "@parcel/plugin": "2.6.2",
-        "@parcel/utils": "2.6.2"
+        "@parcel/plugin": "2.8.3",
+        "@parcel/utils": "2.8.3"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -4128,16 +4220,16 @@
       }
     },
     "node_modules/@parcel/resolver-default": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.6.2.tgz",
-      "integrity": "sha512-Lo5sWb5QkjWvdBr+TdmAF6Mszb/sMldBBatc1osQTkHXCy679VMH+lfyiWxHbwK+F1pmdMeBJpYcMxvrgT8EsA==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.8.3.tgz",
+      "integrity": "sha512-k0B5M/PJ+3rFbNj4xZSBr6d6HVIe6DH/P3dClLcgBYSXAvElNDfXgtIimbjCyItFkW9/BfcgOVKEEIZOeySH/A==",
       "dependencies": {
-        "@parcel/node-resolver-core": "2.6.2",
-        "@parcel/plugin": "2.6.2"
+        "@parcel/node-resolver-core": "2.8.3",
+        "@parcel/plugin": "2.8.3"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -4145,17 +4237,17 @@
       }
     },
     "node_modules/@parcel/runtime-js": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.6.2.tgz",
-      "integrity": "sha512-0S3JFwgvs6FmEx2dHta9R0Sfu8vCnFAm4i7Y4efGHtAcTrF2CHjyiz4/hG+RQGJ70eoWW463Q+8qt6EKbkaOBQ==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.8.3.tgz",
+      "integrity": "sha512-IRja0vNKwvMtPgIqkBQh0QtRn0XcxNC8HU1jrgWGRckzu10qJWO+5ULgtOeR4pv9krffmMPqywGXw6l/gvJKYQ==",
       "dependencies": {
-        "@parcel/plugin": "2.6.2",
-        "@parcel/utils": "2.6.2",
+        "@parcel/plugin": "2.8.3",
+        "@parcel/utils": "2.8.3",
         "nullthrows": "^1.1.1"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -4174,16 +4266,16 @@
       }
     },
     "node_modules/@parcel/transformer-js": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.6.2.tgz",
-      "integrity": "sha512-uhXAMTjE/Q61amflV8qVpb73mj+mIdXIMH0cSks1/gDIAxcgIvWvrE14P4TvY6zJ1q1iRJRIRUN6cFSXqjjLSA==",
-      "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/plugin": "2.6.2",
-        "@parcel/source-map": "^2.0.0",
-        "@parcel/utils": "2.6.2",
-        "@parcel/workers": "2.6.2",
-        "@swc/helpers": "^0.4.2",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.8.3.tgz",
+      "integrity": "sha512-9Qd6bib+sWRcpovvzvxwy/PdFrLUXGfmSW9XcVVG8pvgXsZPFaNjnNT8stzGQj1pQiougCoxMY4aTM5p1lGHEQ==",
+      "dependencies": {
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/plugin": "2.8.3",
+        "@parcel/source-map": "^2.1.1",
+        "@parcel/utils": "2.8.3",
+        "@parcel/workers": "2.8.3",
+        "@swc/helpers": "^0.4.12",
         "browserslist": "^4.6.6",
         "detect-libc": "^1.0.3",
         "nullthrows": "^1.1.1",
@@ -4192,35 +4284,35 @@
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/parcel"
       },
       "peerDependencies": {
-        "@parcel/core": "^2.6.2"
+        "@parcel/core": "^2.8.3"
       }
     },
     "node_modules/@parcel/transformer-js/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "bin": {
         "semver": "bin/semver"
       }
     },
     "node_modules/@parcel/transformer-json": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.6.2.tgz",
-      "integrity": "sha512-QGcIIvbPF/u10ihYvQhxXqb2QMXWSzcBxJrOSIXIl74TUGrWX05D5LmjDA/rzm/n/kvRnBkFNP60R/smYb8x+Q==",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.8.3.tgz",
+      "integrity": "sha512-B7LmVq5Q7bZO4ERb6NHtRuUKWGysEeaj9H4zelnyBv+wLgpo4f5FCxSE1/rTNmP9u1qHvQ3scGdK6EdSSokGPg==",
       "dependencies": {
-        "@parcel/plugin": "2.6.2",
+        "@parcel/plugin": "2.8.3",
         "json5": "^2.2.0"
       },
       "engines": {
         "node": ">= 12.0.0",
-        "parcel": "^2.6.2"
+        "parcel": "^2.8.3"
       },
       "funding": {
         "type": "opencollective",
@@ -4228,30 +4320,30 @@
       }
     },
     "node_modules/@parcel/types": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.6.2.tgz",
-      "integrity": "sha512-MV8BFpCIs2jMUvK2RHqzkoiuOQ//JIbrD1zocA2YRW3zuPL/iABvbAABJoXpoPCKikVWOoCWASgBfWQo26VvJQ==",
-      "dependencies": {
-        "@parcel/cache": "2.6.2",
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/fs": "2.6.2",
-        "@parcel/package-manager": "2.6.2",
-        "@parcel/source-map": "^2.0.0",
-        "@parcel/workers": "2.6.2",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.8.3.tgz",
+      "integrity": "sha512-FECA1FB7+0UpITKU0D6TgGBpGxYpVSMNEENZbSJxFSajNy3wrko+zwBKQmFOLOiPcEtnGikxNs+jkFWbPlUAtw==",
+      "dependencies": {
+        "@parcel/cache": "2.8.3",
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/fs": "2.8.3",
+        "@parcel/package-manager": "2.8.3",
+        "@parcel/source-map": "^2.1.1",
+        "@parcel/workers": "2.8.3",
         "utility-types": "^3.10.0"
       }
     },
     "node_modules/@parcel/utils": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.6.2.tgz",
-      "integrity": "sha512-Ug7hpRxjgbY5AopW55nY7MmGMVmwmN+ihfCmxJkBUoESTG/3iq8uME7GjyOgW5DkQc2K7q62i8y8N0wCJT1u4Q==",
-      "dependencies": {
-        "@parcel/codeframe": "2.6.2",
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/hash": "2.6.2",
-        "@parcel/logger": "2.6.2",
-        "@parcel/markdown-ansi": "2.6.2",
-        "@parcel/source-map": "^2.0.0",
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.8.3.tgz",
+      "integrity": "sha512-IhVrmNiJ+LOKHcCivG5dnuLGjhPYxQ/IzbnF2DKNQXWBTsYlHkJZpmz7THoeLtLliGmSOZ3ZCsbR8/tJJKmxjA==",
+      "dependencies": {
+        "@parcel/codeframe": "2.8.3",
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/hash": "2.8.3",
+        "@parcel/logger": "2.8.3",
+        "@parcel/markdown-ansi": "2.8.3",
+        "@parcel/source-map": "^2.1.1",
         "chalk": "^4.1.0"
       },
       "engines": {
@@ -4327,15 +4419,15 @@
       }
     },
     "node_modules/@parcel/watcher": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.1.0.tgz",
-      "integrity": "sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.2.0.tgz",
+      "integrity": "sha512-71S4TF+IMyAn24PK4KSkdKtqJDR3zRzb0HE3yXpacItqTM7XfF2f5q9NEGLEVl0dAaBAGfNwDCjH120y25F6Tg==",
       "hasInstallScript": true,
       "dependencies": {
+        "detect-libc": "^1.0.3",
         "is-glob": "^4.0.3",
         "micromatch": "^4.0.5",
-        "node-addon-api": "^3.2.1",
-        "node-gyp-build": "^4.3.0"
+        "node-addon-api": "^7.0.0"
       },
       "engines": {
         "node": ">= 10.0.0"
@@ -4343,40 +4435,252 @@
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/parcel"
-      }
-    },
-    "node_modules/@parcel/workers": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.6.2.tgz",
-      "integrity": "sha512-wBgUjJQm+lDd12fPRUmk09+ujTA9DgwPdqylSFK0OtI/yT6A+2kArUqjp8IwWo2tCJXoMzXBne2XQIWKqMiN4Q==",
-      "dependencies": {
-        "@parcel/diagnostic": "2.6.2",
-        "@parcel/logger": "2.6.2",
-        "@parcel/types": "2.6.2",
-        "@parcel/utils": "2.6.2",
-        "chrome-trace-event": "^1.0.2",
-        "nullthrows": "^1.1.1"
       },
+      "optionalDependencies": {
+        "@parcel/watcher-android-arm64": "2.2.0",
+        "@parcel/watcher-darwin-arm64": "2.2.0",
+        "@parcel/watcher-darwin-x64": "2.2.0",
+        "@parcel/watcher-linux-arm-glibc": "2.2.0",
+        "@parcel/watcher-linux-arm64-glibc": "2.2.0",
+        "@parcel/watcher-linux-arm64-musl": "2.2.0",
+        "@parcel/watcher-linux-x64-glibc": "2.2.0",
+        "@parcel/watcher-linux-x64-musl": "2.2.0",
+        "@parcel/watcher-win32-arm64": "2.2.0",
+        "@parcel/watcher-win32-x64": "2.2.0"
+      }
+    },
+    "node_modules/@parcel/watcher-android-arm64": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.2.0.tgz",
+      "integrity": "sha512-nU2wh00CTQT9rr1TIKTjdQ9lAGYpmz6XuKw0nAwAN+S2A5YiD55BK1u+E5WMCT8YOIDe/n6gaj4o/Bi9294SSQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "android"
+      ],
       "engines": {
-        "node": ">= 12.0.0"
+        "node": ">= 10.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/parcel"
-      },
-      "peerDependencies": {
-        "@parcel/core": "^2.6.2"
       }
     },
-    "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
-      "version": "0.5.10",
-      "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
-      "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==",
-      "dependencies": {
-        "ansi-html-community": "^0.0.8",
-        "common-path-prefix": "^3.0.0",
-        "core-js-pure": "^3.23.3",
-        "error-stack-parser": "^2.0.6",
+    "node_modules/@parcel/watcher-darwin-arm64": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.2.0.tgz",
+      "integrity": "sha512-cJl0UZDcodciy3TDMomoK/Huxpjlkkim3SyMgWzjovHGOZKNce9guLz2dzuFwfObBFCjfznbFMIvAZ5syXotYw==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-darwin-x64": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.2.0.tgz",
+      "integrity": "sha512-QI77zxaGrCV1StKcoRYfsUfmUmvPMPfQrubkBBy5XujV2fwaLgZivQOTQMBgp5K2+E19u1ufpspKXAPqSzpbyg==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-arm-glibc": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.2.0.tgz",
+      "integrity": "sha512-I2GPBcAXazPzabCmfsa3HRRW+MGlqxYd8g8RIueJU+a4o5nyNZDz0CR1cu0INT0QSQXEZV7w6UE8Hz9CF8u3Pg==",
+      "cpu": [
+        "arm"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-arm64-glibc": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.2.0.tgz",
+      "integrity": "sha512-St5mlfp+2lS9AmgixUqfwJa/DwVmTCJxC1HcOubUTz6YFOKIlkHCeUa1Bxi4E/tR/HSez8+heXHL8HQkJ4Bd8g==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-arm64-musl": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.2.0.tgz",
+      "integrity": "sha512-jS+qfhhoOBVWwMLP65MaG8xdInMK30pPW8wqTCg2AAuVJh5xepMbzkhHJ4zURqHiyY3EiIRuYu4ONJKCxt8iqA==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-x64-glibc": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.2.0.tgz",
+      "integrity": "sha512-xJvJ7R2wJdi47WZBFS691RDOWvP1j/IAs3EXaWVhDI8FFITbWrWaln7KoNcR0Y3T+ZwimFY/cfb0PNht1q895g==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-linux-x64-musl": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.2.0.tgz",
+      "integrity": "sha512-D+NMpgr23a+RI5mu8ZPKWy7AqjBOkURFDgP5iIXXEf/K3hm0jJ3ogzi0Ed2237B/CdYREimCgXyeiAlE/FtwyA==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-win32-arm64": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.2.0.tgz",
+      "integrity": "sha512-z225cPn3aygJsyVUOWwfyW+fY0Tvk7N3XCOl66qUPFxpbuXeZuiuuJemmtm8vxyqa3Ur7peU/qJxrpC64aeI7Q==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/watcher-win32-x64": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.2.0.tgz",
+      "integrity": "sha512-JqGW0RJ61BkKx+yYzIURt9s53P7xMVbv0uxYPzAXLBINGaFmkIKSuUPyBVfy8TMbvp93lvF4SPBNDzVRJfvgOw==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      }
+    },
+    "node_modules/@parcel/workers": {
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.8.3.tgz",
+      "integrity": "sha512-+AxBnKgjqVpUHBcHLWIHcjYgKIvHIpZjN33mG5LG9XXvrZiqdWvouEzqEXlVLq5VzzVbKIQQcmsvRy138YErkg==",
+      "dependencies": {
+        "@parcel/diagnostic": "2.8.3",
+        "@parcel/logger": "2.8.3",
+        "@parcel/types": "2.8.3",
+        "@parcel/utils": "2.8.3",
+        "chrome-trace-event": "^1.0.2",
+        "nullthrows": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 12.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/parcel"
+      },
+      "peerDependencies": {
+        "@parcel/core": "^2.8.3"
+      }
+    },
+    "node_modules/@pkgjs/parseargs": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+      "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+      "dev": true,
+      "optional": true,
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
+      "version": "0.5.10",
+      "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
+      "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==",
+      "dependencies": {
+        "ansi-html-community": "^0.0.8",
+        "common-path-prefix": "^3.0.0",
+        "core-js-pure": "^3.23.3",
+        "error-stack-parser": "^2.0.6",
         "find-up": "^5.0.0",
         "html-entities": "^2.1.0",
         "loader-utils": "^2.0.4",
@@ -4417,6 +4721,43 @@
         }
       }
     },
+    "node_modules/@pnpm/config.env-replace": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
+      "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
+      "engines": {
+        "node": ">=12.22.0"
+      }
+    },
+    "node_modules/@pnpm/network.ca-file": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
+      "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
+      "dependencies": {
+        "graceful-fs": "4.2.10"
+      },
+      "engines": {
+        "node": ">=12.22.0"
+      }
+    },
+    "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": {
+      "version": "4.2.10",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+      "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+    },
+    "node_modules/@pnpm/npm-conf": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz",
+      "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==",
+      "dependencies": {
+        "@pnpm/config.env-replace": "^1.1.0",
+        "@pnpm/network.ca-file": "^1.0.1",
+        "config-chain": "^1.1.11"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@polka/url": {
       "version": "1.0.0-next.21",
       "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
@@ -5214,6 +5555,11 @@
       "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz",
       "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw=="
     },
+    "node_modules/@types/prismjs": {
+      "version": "1.26.0",
+      "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.0.tgz",
+      "integrity": "sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ=="
+    },
     "node_modules/@types/prop-types": {
       "version": "15.7.5",
       "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
@@ -5275,13 +5621,15 @@
       "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
       "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
     },
-    "node_modules/@types/sharp": {
-      "version": "0.30.5",
-      "resolved": "https://registry.npmjs.org/@types/sharp/-/sharp-0.30.5.tgz",
-      "integrity": "sha512-EhO29617AIBqxoVtpd1qdBanWpspk/kD2B6qTFRJ31Q23Rdf+DNU1xlHSwtqvwq1vgOqBwq1i38SX+HGCymIQg==",
-      "dependencies": {
-        "@types/node": "*"
-      }
+    "node_modules/@types/semver": {
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
+      "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw=="
+    },
+    "node_modules/@types/stylis": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz",
+      "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw=="
     },
     "node_modules/@types/tmp": {
       "version": "0.0.33",
@@ -5326,76 +5674,32 @@
       "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz",
       "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw=="
     },
-    "node_modules/@typescript-eslint/experimental-utils": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz",
-      "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==",
+    "node_modules/@typescript-eslint/eslint-plugin": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
+      "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
       "dependencies": {
-        "@types/json-schema": "^7.0.7",
-        "@typescript-eslint/scope-manager": "4.33.0",
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/typescript-estree": "4.33.0",
-        "eslint-scope": "^5.1.1",
-        "eslint-utils": "^3.0.0"
+        "@eslint-community/regexpp": "^4.4.0",
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/type-utils": "5.62.0",
+        "@typescript-eslint/utils": "5.62.0",
+        "debug": "^4.3.4",
+        "graphemer": "^1.4.0",
+        "ignore": "^5.2.0",
+        "natural-compare-lite": "^1.4.0",
+        "semver": "^7.3.7",
+        "tsutils": "^3.21.0"
       },
       "engines": {
-        "node": "^10.12.0 || >=12.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "eslint": "*"
-      }
-    },
-    "node_modules/@typescript-eslint/scope-manager": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz",
-      "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==",
-      "dependencies": {
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/visitor-keys": "4.33.0"
-      },
-      "engines": {
-        "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/types": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz",
-      "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==",
-      "engines": {
-        "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz",
-      "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==",
-      "dependencies": {
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/visitor-keys": "4.33.0",
-        "debug": "^4.3.1",
-        "globby": "^11.0.3",
-        "is-glob": "^4.0.1",
-        "semver": "^7.3.5",
-        "tsutils": "^3.21.0"
-      },
-      "engines": {
-        "node": "^10.12.0 || >=12.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
+        "@typescript-eslint/parser": "^5.0.0",
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -5403,7 +5707,7 @@
         }
       }
     },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
+    "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": {
       "version": "6.0.0",
       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
@@ -5414,10 +5718,10 @@
         "node": ">=10"
       }
     },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+    "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
       "dependencies": {
         "lru-cache": "^6.0.0"
       },
@@ -5428,28 +5732,230 @@
         "node": ">=10"
       }
     },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
+    "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
-    "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz",
-      "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==",
+    "node_modules/@typescript-eslint/parser": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
+      "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
       "dependencies": {
-        "@typescript-eslint/types": "4.33.0",
-        "eslint-visitor-keys": "^2.0.0"
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/typescript-estree": "5.62.0",
+        "debug": "^4.3.4"
       },
       "engines": {
-        "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
       }
     },
-    "node_modules/@vercel/webpack-asset-relocator-loader": {
+    "node_modules/@typescript-eslint/scope-manager": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+      "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+      "dependencies": {
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/visitor-keys": "5.62.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/type-utils": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
+      "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+      "dependencies": {
+        "@typescript-eslint/typescript-estree": "5.62.0",
+        "@typescript-eslint/utils": "5.62.0",
+        "debug": "^4.3.4",
+        "tsutils": "^3.21.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "*"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/types": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+      "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+      "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+      "dependencies": {
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/visitor-keys": "5.62.0",
+        "debug": "^4.3.4",
+        "globby": "^11.1.0",
+        "is-glob": "^4.0.3",
+        "semver": "^7.3.7",
+        "tsutils": "^3.21.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+    },
+    "node_modules/@typescript-eslint/utils": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+      "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.2.0",
+        "@types/json-schema": "^7.0.9",
+        "@types/semver": "^7.3.12",
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/typescript-estree": "5.62.0",
+        "eslint-scope": "^5.1.1",
+        "semver": "^7.3.7"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@typescript-eslint/utils/node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@typescript-eslint/utils/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+    },
+    "node_modules/@typescript-eslint/visitor-keys": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+      "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+      "dependencies": {
+        "@typescript-eslint/types": "5.62.0",
+        "eslint-visitor-keys": "^3.3.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
+      "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/@vercel/webpack-asset-relocator-loader": {
       "version": "1.7.3",
       "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.3.tgz",
       "integrity": "sha512-vizrI18v8Lcb1PmNNUBz7yxPxxXoOeuaVEjTG9MjvDrphjiSxFZrRJ5tIghk+qdLFRCXI5HBCshgobftbmrC5g==",
@@ -5711,11 +6217,11 @@
       }
     },
     "node_modules/address": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
-      "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==",
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
+      "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
       "engines": {
-        "node": ">= 0.12.0"
+        "node": ">= 10.0.0"
       }
     },
     "node_modules/agent-base": {
@@ -6058,29 +6564,6 @@
       "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
       "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w=="
     },
-    "node_modules/async-cache": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz",
-      "integrity": "sha512-YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g==",
-      "deprecated": "No longer maintained. Use [lru-cache](http://npm.im/lru-cache) version 7.6 or higher, and provide an asynchronous `fetchMethod` option.",
-      "dependencies": {
-        "lru-cache": "^4.0.0"
-      }
-    },
-    "node_modules/async-cache/node_modules/lru-cache": {
-      "version": "4.1.5",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
-      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
-      "dependencies": {
-        "pseudomap": "^1.0.2",
-        "yallist": "^2.1.2"
-      }
-    },
-    "node_modules/async-cache/node_modules/yallist": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
-      "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
-    },
     "node_modules/async-each": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz",
@@ -6198,35 +6681,10 @@
         "dequal": "^2.0.3"
       }
     },
-    "node_modules/babel-eslint": {
-      "version": "10.1.0",
-      "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
-      "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
-      "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.",
-      "peer": true,
-      "dependencies": {
-        "@babel/code-frame": "^7.0.0",
-        "@babel/parser": "^7.7.0",
-        "@babel/traverse": "^7.7.0",
-        "@babel/types": "^7.7.0",
-        "eslint-visitor-keys": "^1.0.0",
-        "resolve": "^1.12.0"
-      },
-      "engines": {
-        "node": ">=6"
-      },
-      "peerDependencies": {
-        "eslint": ">= 4.12.1"
-      }
-    },
-    "node_modules/babel-eslint/node_modules/eslint-visitor-keys": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
-      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
-      "peer": true,
-      "engines": {
-        "node": ">=4"
-      }
+    "node_modules/b4a": {
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
+      "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw=="
     },
     "node_modules/babel-jsx-utils": {
       "version": "1.1.0",
@@ -6452,30 +6910,69 @@
       }
     },
     "node_modules/babel-plugin-remove-graphql-queries": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.25.0.tgz",
-      "integrity": "sha512-enyqRNRrn7vTG3nwg1V+XhoAJIyUv3ZukQCs5KbHOK+WNDDiGZQzIG+FCiZFACScdZBJWyx7TYRYbOFJZ/KEGg==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-5.11.0.tgz",
+      "integrity": "sha512-C/3oy0V6dkNy4M4SeQ4iAPBujTdfoXV9R/NOk7b7q3rsNCRc6Cch+3jKZlsi2k8KvVwLvhWMC72/XyjeCMXjDg==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
-        "@babel/types": "^7.15.4",
-        "gatsby-core-utils": "^3.25.0"
+        "@babel/runtime": "^7.20.13",
+        "@babel/types": "^7.20.7",
+        "gatsby-core-utils": "^4.11.0"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
         "@babel/core": "^7.0.0",
-        "gatsby": "^4.0.0-next"
+        "gatsby": "^5.0.0-next"
+      }
+    },
+    "node_modules/babel-plugin-remove-graphql-queries/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/babel-plugin-remove-graphql-queries/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
       }
     },
     "node_modules/babel-plugin-styled-components": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.3.tgz",
-      "integrity": "sha512-jBioLwBVHpOMU4NsueH/ADcHrjS0Y/WTpt2eGVmmuSFNEv2DF3XhcMncuZlbbjxQ4vzxg+yEr6E6TNjrIQbsJQ==",
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz",
+      "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==",
       "dependencies": {
-        "@babel/helper-annotate-as-pure": "^7.18.6",
-        "@babel/helper-module-imports": "^7.21.4",
-        "babel-plugin-syntax-jsx": "^6.18.0",
+        "@babel/helper-annotate-as-pure": "^7.22.5",
+        "@babel/helper-module-imports": "^7.22.5",
+        "@babel/plugin-syntax-jsx": "^7.22.5",
         "lodash": "^4.17.21",
         "picomatch": "^2.3.1"
       },
@@ -6483,10 +6980,19 @@
         "styled-components": ">= 2"
       }
     },
-    "node_modules/babel-plugin-syntax-jsx": {
-      "version": "6.18.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
-      "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw=="
+    "node_modules/babel-plugin-styled-components/node_modules/@babel/plugin-syntax-jsx": {
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
+      "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.22.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
     },
     "node_modules/babel-plugin-syntax-trailing-function-commas": {
       "version": "7.0.0-beta.0",
@@ -6536,40 +7042,79 @@
       }
     },
     "node_modules/babel-preset-gatsby": {
-      "version": "2.25.0",
-      "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.25.0.tgz",
-      "integrity": "sha512-KFfSTDAkY87/Myq1KIUk9cVphWZem/08U7ps9Hiotbo6Mge/lL6ggh3xKP9SdR5Le4DLLyIUI7a4ILrAVacYDg==",
+      "version": "3.11.0",
+      "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-3.11.0.tgz",
+      "integrity": "sha512-JKsFEeqQk6dvWGyqN8VPhxsWU7RohzILK5fxoSXQIk8MQnV/gHJSULju1FFH6DNpb85lgFGsgpU77X9/YPS7Sw==",
       "dependencies": {
-        "@babel/plugin-proposal-class-properties": "^7.14.0",
-        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
-        "@babel/plugin-proposal-optional-chaining": "^7.14.5",
+        "@babel/plugin-proposal-class-properties": "^7.18.6",
+        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+        "@babel/plugin-proposal-optional-chaining": "^7.20.7",
         "@babel/plugin-syntax-dynamic-import": "^7.8.3",
-        "@babel/plugin-transform-classes": "^7.15.4",
-        "@babel/plugin-transform-runtime": "^7.15.0",
-        "@babel/plugin-transform-spread": "^7.14.6",
-        "@babel/preset-env": "^7.15.4",
-        "@babel/preset-react": "^7.14.0",
-        "@babel/runtime": "^7.15.4",
+        "@babel/plugin-transform-classes": "^7.20.7",
+        "@babel/plugin-transform-runtime": "^7.19.6",
+        "@babel/plugin-transform-spread": "^7.20.7",
+        "@babel/preset-env": "^7.20.2",
+        "@babel/preset-react": "^7.18.6",
+        "@babel/runtime": "^7.20.13",
         "babel-plugin-dynamic-import-node": "^2.3.3",
         "babel-plugin-macros": "^3.1.0",
         "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
-        "gatsby-core-utils": "^3.25.0",
-        "gatsby-legacy-polyfills": "^2.25.0"
+        "gatsby-core-utils": "^4.11.0",
+        "gatsby-legacy-polyfills": "^3.11.0"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
         "@babel/core": "^7.11.6",
         "core-js": "^3.0.0"
       }
     },
-    "node_modules/babel-runtime": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
-      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
-      "dev": true,
-      "dependencies": {
+    "node_modules/babel-preset-gatsby/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/babel-preset-gatsby/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+      "dev": true,
+      "dependencies": {
         "core-js": "^2.4.0",
         "regenerator-runtime": "^0.11.0"
       }
@@ -7800,9 +8345,9 @@
       }
     },
     "node_modules/clsx": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
-      "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
+      "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
       "engines": {
         "node": ">=6"
       }
@@ -7919,7 +8464,6 @@
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
       "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
-      "dev": true,
       "engines": {
         "node": ">= 6"
       }
@@ -8013,6 +8557,15 @@
         "typedarray": "^0.0.6"
       }
     },
+    "node_modules/config-chain": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+      "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+      "dependencies": {
+        "ini": "^1.3.4",
+        "proto-list": "~1.2.1"
+      }
+    },
     "node_modules/configstore": {
       "version": "5.0.1",
       "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
@@ -8091,9 +8644,9 @@
       "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
     },
     "node_modules/cookie": {
-      "version": "0.4.2",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
-      "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
       "engines": {
         "node": ">= 0.6"
       }
@@ -8915,11 +9468,6 @@
         "node": ">=4"
       }
     },
-    "node_modules/cssfilter": {
-      "version": "0.0.10",
-      "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
-      "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw=="
-    },
     "node_modules/cssnano": {
       "version": "5.1.15",
       "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz",
@@ -9171,9 +9719,17 @@
       }
     },
     "node_modules/dedent": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
-      "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.2.0.tgz",
+      "integrity": "sha512-i4tcg0ClgvMUSxwHpt+NHQ01ZJmAkl6eBvDNrSZG9e+oLRTCSHv0wpr/Bzjpf6CwKeIHGevE1M34Y1Axdms5VQ==",
+      "peerDependencies": {
+        "babel-plugin-macros": "^3.1.0"
+      },
+      "peerDependenciesMeta": {
+        "babel-plugin-macros": {
+          "optional": true
+        }
+      }
     },
     "node_modules/deep-eql": {
       "version": "4.1.3",
@@ -9568,10 +10124,11 @@
       "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
       "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
     },
-    "node_modules/duplexer3": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
-      "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
+    "node_modules/eastasianwidth": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+      "dev": true
     },
     "node_modules/ee-first": {
       "version": "1.1.1",
@@ -9584,9 +10141,9 @@
       "integrity": "sha512-5Gvm09UZTQRaWrimRtWRO5rvaX6Kpk5WHAPKDa7A4Gj6NIPuJ8w8WNpnxCXdd+CJJt6RBU6tUw0KyULoW6XuHw=="
     },
     "node_modules/email-addresses": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz",
-      "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz",
+      "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==",
       "dev": true
     },
     "node_modules/emoji-regex": {
@@ -9619,9 +10176,9 @@
       }
     },
     "node_modules/engine.io": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz",
-      "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==",
+      "version": "6.4.2",
+      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz",
+      "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==",
       "dependencies": {
         "@types/cookie": "^0.4.1",
         "@types/cors": "^2.8.12",
@@ -9632,28 +10189,28 @@
         "cors": "~2.8.5",
         "debug": "~4.3.1",
         "engine.io-parser": "~5.0.3",
-        "ws": "~8.2.3"
+        "ws": "~8.11.0"
       },
       "engines": {
         "node": ">=10.0.0"
       }
     },
     "node_modules/engine.io-client": {
-      "version": "6.2.3",
-      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz",
-      "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==",
+      "version": "6.4.0",
+      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz",
+      "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==",
       "dependencies": {
         "@socket.io/component-emitter": "~3.1.0",
         "debug": "~4.3.1",
         "engine.io-parser": "~5.0.3",
-        "ws": "~8.2.3",
+        "ws": "~8.11.0",
         "xmlhttprequest-ssl": "~2.0.0"
       }
     },
     "node_modules/engine.io-client/node_modules/ws": {
-      "version": "8.2.3",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
-      "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+      "version": "8.11.0",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+      "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
       "engines": {
         "node": ">=10.0.0"
       },
@@ -9678,10 +10235,18 @@
         "node": ">=10.0.0"
       }
     },
+    "node_modules/engine.io/node_modules/cookie": {
+      "version": "0.4.2",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+      "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
     "node_modules/engine.io/node_modules/ws": {
-      "version": "8.2.3",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
-      "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+      "version": "8.11.0",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+      "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
       "engines": {
         "node": ">=10.0.0"
       },
@@ -9931,14 +10496,6 @@
         "node": ">=6"
       }
     },
-    "node_modules/escape-goat": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
-      "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/escape-html": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -9953,14 +10510,15 @@
       }
     },
     "node_modules/eslint": {
-      "version": "8.43.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz",
-      "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==",
+      "version": "8.45.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz",
+      "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==",
+      "dev": true,
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/regexpp": "^4.4.0",
-        "@eslint/eslintrc": "^2.0.3",
-        "@eslint/js": "8.43.0",
+        "@eslint/eslintrc": "^2.1.0",
+        "@eslint/js": "8.44.0",
         "@humanwhocodes/config-array": "^0.11.10",
         "@humanwhocodes/module-importer": "^1.0.1",
         "@nodelib/fs.walk": "^1.2.8",
@@ -9972,7 +10530,7 @@
         "escape-string-regexp": "^4.0.0",
         "eslint-scope": "^7.2.0",
         "eslint-visitor-keys": "^3.4.1",
-        "espree": "^9.5.2",
+        "espree": "^9.6.0",
         "esquery": "^1.4.2",
         "esutils": "^2.0.2",
         "fast-deep-equal": "^3.1.3",
@@ -9982,7 +10540,6 @@
         "globals": "^13.19.0",
         "graphemer": "^1.4.0",
         "ignore": "^5.2.0",
-        "import-fresh": "^3.0.0",
         "imurmurhash": "^0.1.4",
         "is-glob": "^4.0.0",
         "is-path-inside": "^3.0.3",
@@ -9992,9 +10549,8 @@
         "lodash.merge": "^4.6.2",
         "minimatch": "^3.1.2",
         "natural-compare": "^1.4.0",
-        "optionator": "^0.9.1",
+        "optionator": "^0.9.3",
         "strip-ansi": "^6.0.1",
-        "strip-json-comments": "^3.1.0",
         "text-table": "^0.2.0"
       },
       "bin": {
@@ -10211,23 +10767,6 @@
         "node": ">=8.0.0"
       }
     },
-    "node_modules/eslint-utils": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
-      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
-      "dependencies": {
-        "eslint-visitor-keys": "^2.0.0"
-      },
-      "engines": {
-        "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/mysticatea"
-      },
-      "peerDependencies": {
-        "eslint": ">=5"
-      }
-    },
     "node_modules/eslint-visitor-keys": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
@@ -10299,6 +10838,7 @@
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
       "dependencies": {
         "color-convert": "^2.0.1"
       },
@@ -10313,6 +10853,7 @@
       "version": "4.1.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
       "dependencies": {
         "ansi-styles": "^4.1.0",
         "supports-color": "^7.1.0"
@@ -10328,6 +10869,7 @@
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
       "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
       "dependencies": {
         "color-name": "~1.1.4"
       },
@@ -10338,12 +10880,14 @@
     "node_modules/eslint/node_modules/color-name": {
       "version": "1.1.4",
       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true
     },
     "node_modules/eslint/node_modules/escape-string-regexp": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
       "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+      "dev": true,
       "engines": {
         "node": ">=10"
       },
@@ -10355,6 +10899,7 @@
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
       "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
+      "dev": true,
       "dependencies": {
         "esrecurse": "^4.3.0",
         "estraverse": "^5.2.0"
@@ -10370,6 +10915,7 @@
       "version": "3.4.1",
       "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
       "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
+      "dev": true,
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
@@ -10381,6 +10927,7 @@
       "version": "5.3.0",
       "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
       "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
       "engines": {
         "node": ">=4.0"
       }
@@ -10389,6 +10936,7 @@
       "version": "6.0.2",
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
       "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+      "dev": true,
       "dependencies": {
         "is-glob": "^4.0.3"
       },
@@ -10400,6 +10948,7 @@
       "version": "13.20.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
       "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+      "dev": true,
       "dependencies": {
         "type-fest": "^0.20.2"
       },
@@ -10414,6 +10963,7 @@
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
       "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "dev": true,
       "engines": {
         "node": ">=8"
       }
@@ -10422,6 +10972,7 @@
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
       "dependencies": {
         "has-flag": "^4.0.0"
       },
@@ -10430,11 +10981,12 @@
       }
     },
     "node_modules/espree": {
-      "version": "9.5.2",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz",
-      "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
+      "version": "9.6.1",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+      "dev": true,
       "dependencies": {
-        "acorn": "^8.8.0",
+        "acorn": "^8.9.0",
         "acorn-jsx": "^5.3.2",
         "eslint-visitor-keys": "^3.4.1"
       },
@@ -10449,6 +11001,7 @@
       "version": "3.4.1",
       "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
       "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
+      "dev": true,
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
@@ -10557,9 +11110,9 @@
       }
     },
     "node_modules/event-source-polyfill": {
-      "version": "1.0.25",
-      "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.25.tgz",
-      "integrity": "sha512-hQxu6sN1Eq4JjoI7ITdQeGGUN193A2ra83qC0Ltm9I2UJVAten3OFVN6k5RX4YWeCS0BoC8xg/5czOCIHVosQg=="
+      "version": "1.0.31",
+      "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.31.tgz",
+      "integrity": "sha512-4IJSItgS/41IxN5UVAVuAyczwZF7ZIEsM1XAoUzIHA6A+xzusEZUutdXz2Nr+MQPLxfTiCvqE79/C8HT8fKFvA=="
     },
     "node_modules/eventemitter3": {
       "version": "4.0.7",
@@ -10732,63 +11285,6 @@
         "node": ">= 0.10.0"
       }
     },
-    "node_modules/express-graphql": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npmjs.org/express-graphql/-/express-graphql-0.12.0.tgz",
-      "integrity": "sha512-DwYaJQy0amdy3pgNtiTDuGGM2BLdj+YO2SgbKoLliCfuHv3VVTt7vNG/ZqK2hRYjtYHE2t2KB705EU94mE64zg==",
-      "deprecated": "This package is no longer maintained. We recommend using `graphql-http` instead. Please consult the migration document https://github.com/graphql/graphql-http#migrating-express-grpahql.",
-      "dependencies": {
-        "accepts": "^1.3.7",
-        "content-type": "^1.0.4",
-        "http-errors": "1.8.0",
-        "raw-body": "^2.4.1"
-      },
-      "engines": {
-        "node": ">= 10.x"
-      },
-      "peerDependencies": {
-        "graphql": "^14.7.0 || ^15.3.0"
-      }
-    },
-    "node_modules/express-graphql/node_modules/depd": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-      "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/express-graphql/node_modules/http-errors": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
-      "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==",
-      "dependencies": {
-        "depd": "~1.1.2",
-        "inherits": "2.0.4",
-        "setprototypeof": "1.2.0",
-        "statuses": ">= 1.5.0 < 2",
-        "toidentifier": "1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/express-graphql/node_modules/statuses": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-      "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/express-graphql/node_modules/toidentifier": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
-      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
-      "engines": {
-        "node": ">=0.6"
-      }
-    },
     "node_modules/express-http-proxy": {
       "version": "1.6.3",
       "resolved": "https://registry.npmjs.org/express-http-proxy/-/express-http-proxy-1.6.3.tgz",
@@ -10810,14 +11306,6 @@
         "ms": "^2.1.1"
       }
     },
-    "node_modules/express/node_modules/cookie": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
-      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
     "node_modules/express/node_modules/debug": {
       "version": "2.6.9",
       "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -10943,6 +11431,11 @@
       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
     },
+    "node_modules/fast-fifo": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz",
+      "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw=="
+    },
     "node_modules/fast-glob": {
       "version": "3.2.12",
       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
@@ -11026,11 +11519,6 @@
       "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
       "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
     },
-    "node_modules/fd": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz",
-      "integrity": "sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA=="
-    },
     "node_modules/fd-slicer": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
@@ -11285,6 +11773,20 @@
         "node": "^10.12.0 || >=12.0.0"
       }
     },
+    "node_modules/flat-cache/node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
     "node_modules/flatted": {
       "version": "3.2.7",
       "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
@@ -11338,6 +11840,34 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/foreground-child": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+      "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+      "dev": true,
+      "dependencies": {
+        "cross-spawn": "^7.0.0",
+        "signal-exit": "^4.0.1"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/foreground-child/node_modules/signal-exit": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
+      "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
     "node_modules/fork-ts-checker-webpack-plugin": {
       "version": "6.5.3",
       "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz",
@@ -11537,6 +12067,14 @@
         "node": ">= 6"
       }
     },
+    "node_modules/form-data-encoder": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
+      "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
+      "engines": {
+        "node": ">= 14.17"
+      }
+    },
     "node_modules/formik": {
       "version": "2.4.2",
       "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.2.tgz",
@@ -11666,8 +12204,7 @@
     "node_modules/fs-readdir-recursive": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
-      "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
-      "dev": true
+      "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA=="
     },
     "node_modules/fs.realpath": {
       "version": "1.0.0",
@@ -11723,189 +12260,188 @@
       }
     },
     "node_modules/gatsby": {
-      "version": "4.25.7",
-      "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.25.7.tgz",
-      "integrity": "sha512-kspM1XokxDw2YqC2hkPKQTfWSNSq/AnY8PNYSrUM+MCsyIKFuGqSVchNonZN1g8/nCoh4jQpBYXH5Uw2Hrs6Sw==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-5.11.0.tgz",
+      "integrity": "sha512-hGvMDQPzxBNr974sUSz02UbkmAX22tPdf/0gKU3MFfPPqJGcHZk/AdrerGr4klRH7RgotwSxQxsIvCv+kY44fg==",
       "hasInstallScript": true,
       "dependencies": {
-        "@babel/code-frame": "^7.14.0",
-        "@babel/core": "^7.15.5",
-        "@babel/eslint-parser": "^7.15.4",
-        "@babel/helper-plugin-utils": "^7.14.5",
-        "@babel/parser": "^7.15.5",
-        "@babel/runtime": "^7.15.4",
-        "@babel/traverse": "^7.15.4",
-        "@babel/types": "^7.15.4",
-        "@builder.io/partytown": "^0.5.2",
-        "@gatsbyjs/reach-router": "^1.3.9",
-        "@gatsbyjs/webpack-hot-middleware": "^2.25.2",
-        "@graphql-codegen/add": "^3.1.1",
-        "@graphql-codegen/core": "^2.5.1",
-        "@graphql-codegen/plugin-helpers": "^2.4.2",
-        "@graphql-codegen/typescript": "^2.4.8",
-        "@graphql-codegen/typescript-operations": "^2.3.5",
-        "@graphql-tools/code-file-loader": "^7.2.14",
-        "@graphql-tools/load": "^7.5.10",
-        "@jridgewell/trace-mapping": "^0.3.13",
+        "@babel/code-frame": "^7.18.6",
+        "@babel/core": "^7.20.12",
+        "@babel/eslint-parser": "^7.19.1",
+        "@babel/helper-plugin-utils": "^7.20.2",
+        "@babel/parser": "^7.20.13",
+        "@babel/runtime": "^7.20.13",
+        "@babel/traverse": "^7.20.13",
+        "@babel/types": "^7.20.7",
+        "@builder.io/partytown": "^0.7.5",
+        "@gatsbyjs/reach-router": "^2.0.1",
+        "@gatsbyjs/webpack-hot-middleware": "^2.25.3",
+        "@graphql-codegen/add": "^3.2.3",
+        "@graphql-codegen/core": "^2.6.8",
+        "@graphql-codegen/plugin-helpers": "^2.7.2",
+        "@graphql-codegen/typescript": "^2.8.8",
+        "@graphql-codegen/typescript-operations": "^2.5.13",
+        "@graphql-tools/code-file-loader": "^7.3.23",
+        "@graphql-tools/load": "^7.8.14",
+        "@jridgewell/trace-mapping": "^0.3.18",
         "@nodelib/fs.walk": "^1.2.8",
-        "@parcel/cache": "2.6.2",
-        "@parcel/core": "2.6.2",
-        "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
-        "@types/http-proxy": "^1.17.7",
-        "@typescript-eslint/eslint-plugin": "^4.33.0",
-        "@typescript-eslint/parser": "^4.33.0",
-        "@vercel/webpack-asset-relocator-loader": "^1.7.0",
+        "@parcel/cache": "2.8.3",
+        "@parcel/core": "2.8.3",
+        "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
+        "@types/http-proxy": "^1.17.11",
+        "@typescript-eslint/eslint-plugin": "^5.59.8",
+        "@typescript-eslint/parser": "^5.59.8",
+        "@vercel/webpack-asset-relocator-loader": "^1.7.3",
         "acorn-loose": "^8.3.0",
         "acorn-walk": "^8.2.0",
-        "address": "1.1.2",
-        "anser": "^2.1.0",
-        "autoprefixer": "^10.4.0",
+        "address": "1.2.2",
+        "anser": "^2.1.1",
+        "autoprefixer": "^10.4.14",
         "axios": "^0.21.1",
-        "babel-loader": "^8.2.3",
+        "babel-jsx-utils": "^1.1.0",
+        "babel-loader": "^8.3.0",
         "babel-plugin-add-module-exports": "^1.0.4",
         "babel-plugin-dynamic-import-node": "^2.3.3",
         "babel-plugin-lodash": "^3.3.4",
-        "babel-plugin-remove-graphql-queries": "^4.25.0",
-        "babel-preset-gatsby": "^2.25.0",
+        "babel-plugin-remove-graphql-queries": "^5.11.0",
+        "babel-preset-gatsby": "^3.11.0",
         "better-opn": "^2.1.1",
         "bluebird": "^3.7.2",
-        "browserslist": "^4.17.5",
+        "browserslist": "^4.21.7",
         "cache-manager": "^2.11.1",
         "chalk": "^4.1.2",
         "chokidar": "^3.5.3",
-        "common-tags": "^1.8.0",
+        "common-tags": "^1.8.2",
         "compression": "^1.7.4",
-        "cookie": "^0.4.1",
-        "core-js": "^3.22.3",
+        "cookie": "^0.5.0",
+        "core-js": "^3.30.2",
         "cors": "^2.8.5",
         "css-loader": "^5.2.7",
         "css-minimizer-webpack-plugin": "^2.0.0",
         "css.escape": "^1.5.1",
-        "date-fns": "^2.25.0",
-        "debug": "^3.2.7",
-        "deepmerge": "^4.2.2",
-        "detect-port": "^1.3.0",
-        "devcert": "^1.2.0",
+        "date-fns": "^2.30.0",
+        "debug": "^4.3.4",
+        "deepmerge": "^4.3.1",
+        "detect-port": "^1.5.1",
+        "devcert": "^1.2.2",
         "dotenv": "^8.6.0",
-        "enhanced-resolve": "^5.8.3",
+        "enhanced-resolve": "^5.14.1",
         "error-stack-parser": "^2.1.4",
         "eslint": "^7.32.0",
         "eslint-config-react-app": "^6.0.0",
         "eslint-plugin-flowtype": "^5.10.0",
-        "eslint-plugin-import": "^2.26.0",
-        "eslint-plugin-jsx-a11y": "^6.6.1",
-        "eslint-plugin-react": "^7.30.1",
+        "eslint-plugin-import": "^2.27.5",
+        "eslint-plugin-jsx-a11y": "^6.7.1",
+        "eslint-plugin-react": "^7.32.2",
         "eslint-plugin-react-hooks": "^4.6.0",
         "eslint-webpack-plugin": "^2.7.0",
-        "event-source-polyfill": "1.0.25",
+        "event-source-polyfill": "1.0.31",
         "execa": "^5.1.1",
-        "express": "^4.17.1",
-        "express-graphql": "^0.12.0",
+        "express": "^4.18.2",
         "express-http-proxy": "^1.6.3",
-        "fastest-levenshtein": "^1.0.12",
-        "fastq": "^1.13.0",
+        "fastest-levenshtein": "^1.0.16",
+        "fastq": "^1.15.0",
         "file-loader": "^6.2.0",
         "find-cache-dir": "^3.3.2",
         "fs-exists-cached": "1.0.0",
-        "fs-extra": "^10.1.0",
-        "gatsby-cli": "^4.25.0",
-        "gatsby-core-utils": "^3.25.0",
-        "gatsby-graphiql-explorer": "^2.25.0",
-        "gatsby-legacy-polyfills": "^2.25.0",
-        "gatsby-link": "^4.25.0",
-        "gatsby-page-utils": "^2.25.0",
-        "gatsby-parcel-config": "0.16.0",
-        "gatsby-plugin-page-creator": "^4.25.0",
-        "gatsby-plugin-typescript": "^4.25.0",
-        "gatsby-plugin-utils": "^3.19.0",
-        "gatsby-react-router-scroll": "^5.25.0",
-        "gatsby-script": "^1.10.0",
-        "gatsby-telemetry": "^3.25.0",
-        "gatsby-worker": "^1.25.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-cli": "^5.11.0",
+        "gatsby-core-utils": "^4.11.0",
+        "gatsby-graphiql-explorer": "^3.11.0",
+        "gatsby-legacy-polyfills": "^3.11.0",
+        "gatsby-link": "^5.11.0",
+        "gatsby-page-utils": "^3.11.0",
+        "gatsby-parcel-config": "^1.11.0",
+        "gatsby-plugin-page-creator": "^5.11.0",
+        "gatsby-plugin-typescript": "^5.11.0",
+        "gatsby-plugin-utils": "^4.11.0",
+        "gatsby-react-router-scroll": "^6.11.0",
+        "gatsby-script": "^2.11.0",
+        "gatsby-telemetry": "^4.11.0",
+        "gatsby-worker": "^2.11.0",
         "glob": "^7.2.3",
         "globby": "^11.1.0",
-        "got": "^11.8.5",
-        "graphql": "^15.7.2",
-        "graphql-compose": "^9.0.7",
-        "graphql-playground-middleware-express": "^1.7.22",
+        "got": "^11.8.6",
+        "graphql": "^16.6.0",
+        "graphql-compose": "^9.0.10",
+        "graphql-http": "^1.18.0",
         "graphql-tag": "^2.12.6",
         "hasha": "^5.2.2",
         "invariant": "^2.2.4",
         "is-relative": "^1.0.0",
         "is-relative-url": "^3.0.0",
-        "joi": "^17.4.2",
+        "joi": "^17.9.2",
         "json-loader": "^0.5.7",
-        "latest-version": "5.1.0",
+        "latest-version": "^7.0.0",
         "lmdb": "2.5.3",
         "lodash": "^4.17.21",
-        "md5-file": "^5.0.0",
         "meant": "^1.0.3",
         "memoizee": "^0.4.15",
-        "micromatch": "^4.0.4",
-        "mime": "^2.5.2",
+        "micromatch": "^4.0.5",
+        "mime": "^3.0.0",
         "mini-css-extract-plugin": "1.6.2",
         "mitt": "^1.2.0",
-        "moment": "^2.29.1",
+        "moment": "^2.29.4",
         "multer": "^1.4.5-lts.1",
-        "node-fetch": "^2.6.6",
-        "node-html-parser": "^5.3.3",
+        "node-fetch": "^2.6.11",
+        "node-html-parser": "^5.4.2",
         "normalize-path": "^3.0.0",
         "null-loader": "^4.0.1",
-        "opentracing": "^0.14.5",
+        "opentracing": "^0.14.7",
         "p-defer": "^3.0.0",
         "parseurl": "^1.3.3",
         "physical-cpu-count": "^2.0.0",
         "platform": "^1.3.6",
-        "postcss": "^8.3.11",
+        "postcss": "^8.4.24",
         "postcss-flexbugs-fixes": "^5.0.2",
         "postcss-loader": "^5.3.0",
         "prompts": "^2.4.2",
-        "prop-types": "^15.7.2",
+        "prop-types": "^15.8.1",
         "query-string": "^6.14.1",
         "raw-loader": "^4.0.2",
         "react-dev-utils": "^12.0.1",
         "react-refresh": "^0.14.0",
         "react-server-dom-webpack": "0.0.0-experimental-c8b778b7f-20220825",
-        "redux": "4.1.2",
-        "redux-thunk": "^2.4.0",
+        "redux": "4.2.1",
+        "redux-thunk": "^2.4.2",
         "resolve-from": "^5.0.0",
-        "semver": "^7.3.7",
+        "semver": "^7.5.1",
         "shallow-compare": "^1.2.2",
-        "signal-exit": "^3.0.5",
-        "slugify": "^1.6.1",
-        "socket.io": "4.5.4",
-        "socket.io-client": "4.5.4",
-        "st": "^2.0.0",
+        "signal-exit": "^3.0.7",
+        "slugify": "^1.6.6",
+        "socket.io": "4.6.1",
+        "socket.io-client": "4.6.1",
         "stack-trace": "^0.0.10",
         "string-similarity": "^1.2.2",
         "strip-ansi": "^6.0.1",
         "style-loader": "^2.0.0",
-        "terser-webpack-plugin": "^5.2.4",
+        "style-to-object": "^0.4.1",
+        "terser-webpack-plugin": "^5.3.9",
         "tmp": "^0.2.1",
         "true-case-path": "^2.2.1",
         "type-of": "^2.0.1",
         "url-loader": "^4.1.1",
         "uuid": "^8.3.2",
-        "webpack": "^5.61.0",
+        "webpack": "^5.85.0",
         "webpack-dev-middleware": "^4.3.0",
-        "webpack-merge": "^5.8.0",
-        "webpack-stats-plugin": "^1.0.3",
-        "webpack-virtual-modules": "^0.3.2",
-        "xstate": "4.32.1",
+        "webpack-merge": "^5.9.0",
+        "webpack-stats-plugin": "^1.1.1",
+        "webpack-virtual-modules": "^0.5.0",
+        "xstate": "^4.37.2",
         "yaml-loader": "^0.8.0"
       },
       "bin": {
         "gatsby": "cli.js"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "optionalDependencies": {
-        "gatsby-sharp": "^0.19.0"
+        "gatsby-sharp": "^1.11.0"
       },
       "peerDependencies": {
-        "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
-        "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0"
+        "react": "^18.0.0 || ^0.0.0",
+        "react-dom": "^18.0.0 || ^0.0.0"
       }
     },
     "node_modules/gatsby-awesome-pagination": {
@@ -12076,41 +12612,18 @@
         "node": ">=18.0.0"
       }
     },
-    "node_modules/gatsby-cli/node_modules/gatsby-telemetry": {
-      "version": "4.11.0",
-      "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-4.11.0.tgz",
-      "integrity": "sha512-e4ojLTsdpMny6vQKBEnPl0AxNXWldJv6vErw9yBOPDUqLrVx7U2LagTyVbmNtg+LZhKq9NxgQq3vzRuIl9uroA==",
-      "hasInstallScript": true,
-      "dependencies": {
-        "@babel/code-frame": "^7.18.6",
-        "@babel/runtime": "^7.20.13",
-        "@turist/fetch": "^7.2.0",
-        "@turist/time": "^0.0.2",
-        "boxen": "^5.1.2",
-        "configstore": "^5.0.1",
-        "fs-extra": "^11.1.1",
-        "gatsby-core-utils": "^4.11.0",
-        "git-up": "^7.0.0",
-        "is-docker": "^2.2.1",
-        "lodash": "^4.17.21",
-        "node-fetch": "^2.6.11"
-      },
-      "engines": {
-        "node": ">=18.0.0"
-      }
-    },
-    "node_modules/gatsby-cli/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/gatsby-cli/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+    "node_modules/gatsby-cli/node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/gatsby-cli/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
       "dependencies": {
         "yallist": "^4.0.0"
       },
@@ -12118,14 +12631,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/gatsby-cli/node_modules/redux": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
-      "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
-      "dependencies": {
-        "@babel/runtime": "^7.9.2"
-      }
-    },
     "node_modules/gatsby-cli/node_modules/semver": {
       "version": "7.5.2",
       "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
@@ -12182,99 +12687,126 @@
       }
     },
     "node_modules/gatsby-graphiql-explorer": {
-      "version": "2.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.25.0.tgz",
-      "integrity": "sha512-/NDsaW4x3/KtvzmxYvedhDwUW1kb7gQO6iOhCkillVJSYBd6mPB8aOSulM49fyCT76UXGYFtRaUI8fyOkmpWhg==",
-      "dependencies": {
-        "@babel/runtime": "^7.15.4"
-      },
+      "version": "3.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-3.11.0.tgz",
+      "integrity": "sha512-ugm5vUBP0AQ4Dr5cMqegi2hURCIxlFEahP1f+w7H10kwQ1VR/OIKLGW46JcrnF8LGPmQ99bYTptL19Dv7hECXA==",
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       }
     },
     "node_modules/gatsby-legacy-polyfills": {
-      "version": "2.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.25.0.tgz",
-      "integrity": "sha512-cMeFwMH1FGENo2gNpyTyMYc/CJ7uBGE26n89OGrVVvBMaQegK+CMNZBOh09sLrXUcOp8hSOX2IwzvOlo6CdWpg==",
+      "version": "3.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-3.11.0.tgz",
+      "integrity": "sha512-3NvNmrmmng28MS4KYAUEd1Vip4B1VJCyeGMof8OfQlMPxZMijHmeasjFDf1l5HSTUsaHotNe7gdLqITTP9CAKQ==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
-        "core-js-compat": "3.9.0"
+        "@babel/runtime": "^7.20.13",
+        "core-js-compat": "3.30.2"
       }
     },
     "node_modules/gatsby-legacy-polyfills/node_modules/core-js-compat": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz",
-      "integrity": "sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ==",
+      "version": "3.30.2",
+      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.2.tgz",
+      "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==",
       "dependencies": {
-        "browserslist": "^4.16.3",
-        "semver": "7.0.0"
+        "browserslist": "^4.21.5"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/core-js"
       }
     },
-    "node_modules/gatsby-legacy-polyfills/node_modules/semver": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
-      "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
-      "bin": {
-        "semver": "bin/semver.js"
-      }
-    },
     "node_modules/gatsby-link": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.25.0.tgz",
-      "integrity": "sha512-Fpwk45sUMPvFUAZehNE8SLb3vQyVSxt9YxU++ZZECyukK4A/3Wxk3eIzoNvwfpMfWu6pnAkqcBhIO6KAfvbPGQ==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-5.11.0.tgz",
+      "integrity": "sha512-bxzUOXp4h6OBnFpflldb730dsfaQ3GpzU3Yl+BEJnXmTej6vCAEQXpU+wWyZchsd6dSa5DKwTOPrYpeWlinjFw==",
       "dependencies": {
         "@types/reach__router": "^1.3.10",
-        "gatsby-page-utils": "^2.25.0",
+        "gatsby-page-utils": "^3.11.0",
         "prop-types": "^15.8.1"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "@gatsbyjs/reach-router": "^1.3.5",
-        "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
-        "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0"
+        "@gatsbyjs/reach-router": "^2.0.0",
+        "react": "^18.0.0 || ^0.0.0",
+        "react-dom": "^18.0.0 || ^0.0.0"
       }
     },
     "node_modules/gatsby-page-utils": {
-      "version": "2.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.25.0.tgz",
-      "integrity": "sha512-TlwS149JCeb3xGANeV8HdcQi9Q8J9hYwlO9jdxLGVIXVGbWIMWFrDuwx382jOOsISGQ3jfByToNulUzO6fiqig==",
+      "version": "3.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-3.11.0.tgz",
+      "integrity": "sha512-mjVvO02YuG81g5vGDjmHz5P/UhDeqoXDfNKhcYPi6CygRklcpxNLuAMMA5crbBRzqbQZLP3sZHB5NXTDLtqlqg==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
+        "@babel/runtime": "^7.20.13",
         "bluebird": "^3.7.2",
         "chokidar": "^3.5.3",
         "fs-exists-cached": "^1.0.0",
-        "gatsby-core-utils": "^3.25.0",
+        "gatsby-core-utils": "^4.11.0",
         "glob": "^7.2.3",
         "lodash": "^4.17.21",
         "micromatch": "^4.0.5"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/gatsby-page-utils/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/gatsby-page-utils/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
       }
     },
     "node_modules/gatsby-parcel-config": {
-      "version": "0.16.0",
-      "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.16.0.tgz",
-      "integrity": "sha512-2+hOg6cMBGZ8r+4lN3k+dOWGvku453vbZCAhp6V3RuFYxbWuvDFP7Icr0GCOyZ62utkFr9m7H2U1Wjf4KOHyEQ==",
-      "dependencies": {
-        "@gatsbyjs/parcel-namer-relative-to-cwd": "^1.10.0",
-        "@parcel/bundler-default": "2.6.2",
-        "@parcel/compressor-raw": "2.6.2",
-        "@parcel/namer-default": "2.6.2",
-        "@parcel/optimizer-terser": "2.6.2",
-        "@parcel/packager-js": "2.6.2",
-        "@parcel/packager-raw": "2.6.2",
-        "@parcel/reporter-dev-server": "2.6.2",
-        "@parcel/resolver-default": "2.6.2",
-        "@parcel/runtime-js": "2.6.2",
-        "@parcel/transformer-js": "2.6.2",
-        "@parcel/transformer-json": "2.6.2"
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-1.11.0.tgz",
+      "integrity": "sha512-Q8WHu9aDkrIUM1QdDldYDiArQpm9RsFHYvotFn3BzFTL0+5FngIs7qKg17H3Jzsjg7YlDPYiwS1ir9zGjjJEkQ==",
+      "dependencies": {
+        "@gatsbyjs/parcel-namer-relative-to-cwd": "^2.11.0",
+        "@parcel/bundler-default": "2.8.3",
+        "@parcel/compressor-raw": "2.8.3",
+        "@parcel/namer-default": "2.8.3",
+        "@parcel/optimizer-terser": "2.8.3",
+        "@parcel/packager-js": "2.8.3",
+        "@parcel/packager-raw": "2.8.3",
+        "@parcel/reporter-dev-server": "2.8.3",
+        "@parcel/resolver-default": "2.8.3",
+        "@parcel/runtime-js": "2.8.3",
+        "@parcel/transformer-js": "2.8.3",
+        "@parcel/transformer-json": "2.8.3"
       },
       "engines": {
         "parcel": "2.x"
@@ -12292,62 +12824,113 @@
       }
     },
     "node_modules/gatsby-plugin-feed": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-feed/-/gatsby-plugin-feed-4.25.0.tgz",
-      "integrity": "sha512-9gZxvHtq2lu5pUcXXt0d7L7jpFIJpcmjOb2X8ykzbiHXUYRFvZnmcR95ZdQRKiVy1YawMzv3tt2+pPnBuYxvSw==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-feed/-/gatsby-plugin-feed-5.11.0.tgz",
+      "integrity": "sha512-Jw00jCBQKkQOAzqMfHCT7H/lHMbgpE69PsVOQAX7pOnlYHH6gnXFFL0Y72XjSghRc+fZmbw0xgu3DAJO0aLVrQ==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
-        "@hapi/joi": "^15.1.1",
+        "@babel/runtime": "^7.20.13",
         "common-tags": "^1.8.2",
-        "fs-extra": "^10.1.0",
-        "gatsby-plugin-utils": "^3.19.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-plugin-utils": "^4.11.0",
         "lodash.merge": "^4.6.2",
         "rss": "^1.2.2"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next",
-        "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
-        "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0"
+        "gatsby": "^5.0.0-next",
+        "react": "^18.0.0 || ^0.0.0",
+        "react-dom": "^18.0.0 || ^0.0.0"
+      }
+    },
+    "node_modules/gatsby-plugin-feed/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
       }
     },
     "node_modules/gatsby-plugin-image": {
-      "version": "2.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-2.25.0.tgz",
-      "integrity": "sha512-Q1TRjvBF7x50alS22i91rksl7A3g42S0jIdPEQcT9bl8MbFaJiboHGna/jp78nxm9vu4qtUJ1IziRSOu0bgHNQ==",
+      "version": "3.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-3.11.0.tgz",
+      "integrity": "sha512-hQ3MjE9v5Y84f/45wXB7D5NthO/3lgwnHzy1mFAz0Md3e1CxgV1lvKjVwY5MvI40l7Tlk4Bkx39p6Qt/0GAcEg==",
       "dependencies": {
-        "@babel/code-frame": "^7.14.0",
-        "@babel/parser": "^7.15.5",
-        "@babel/runtime": "^7.15.4",
-        "@babel/traverse": "^7.15.4",
+        "@babel/code-frame": "^7.18.6",
+        "@babel/parser": "^7.20.13",
+        "@babel/runtime": "^7.20.13",
+        "@babel/traverse": "^7.20.13",
         "babel-jsx-utils": "^1.1.0",
-        "babel-plugin-remove-graphql-queries": "^4.25.0",
-        "camelcase": "^5.3.1",
+        "babel-plugin-remove-graphql-queries": "^5.11.0",
+        "camelcase": "^6.3.0",
         "chokidar": "^3.5.3",
         "common-tags": "^1.8.2",
-        "fs-extra": "^10.1.0",
-        "gatsby-core-utils": "^3.25.0",
-        "gatsby-plugin-utils": "^3.19.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-core-utils": "^4.11.0",
+        "gatsby-plugin-utils": "^4.11.0",
         "objectFitPolyfill": "^2.3.5",
         "prop-types": "^15.8.1"
       },
       "peerDependencies": {
         "@babel/core": "^7.12.3",
-        "gatsby": "^4.0.0-next",
-        "gatsby-plugin-sharp": "^4.0.0-next",
-        "gatsby-source-filesystem": "^4.0.0-next",
-        "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
-        "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0"
+        "gatsby": "^5.0.0-next",
+        "gatsby-plugin-sharp": "^5.0.0-next",
+        "gatsby-source-filesystem": "^5.0.0-next",
+        "react": "^18.0.0 || ^0.0.0",
+        "react-dom": "^18.0.0 || ^0.0.0"
+      },
+      "peerDependenciesMeta": {
+        "gatsby-plugin-sharp": {
+          "optional": true
+        },
+        "gatsby-source-filesystem": {
+          "optional": true
+        }
       }
     },
-    "node_modules/gatsby-plugin-image/node_modules/camelcase": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+    "node_modules/gatsby-plugin-image/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
       "engines": {
-        "node": ">=6"
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/gatsby-plugin-image/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
       }
     },
     "node_modules/gatsby-plugin-loadable-components-ssr": {
@@ -12370,29 +12953,60 @@
       }
     },
     "node_modules/gatsby-plugin-manifest": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-4.25.0.tgz",
-      "integrity": "sha512-2n7v+TvhWUMoOJEaeiPDFsf9jvOImKLZpnzxE8e6ZeeoGeDngXSZhkkP3x2UYIknHtZXUUjFJh8BaVBXiB1dSQ==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-5.11.0.tgz",
+      "integrity": "sha512-f1ViusTLF3K4fNvn1vIKZwUeP1Bl9ercrhQBe7rBnu9Cl7EWYskH0MSXJfxev29kD7Ag+FTvC2MPObDvi3LFhw==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
-        "gatsby-core-utils": "^3.25.0",
-        "gatsby-plugin-utils": "^3.19.0",
-        "semver": "^7.3.7",
-        "sharp": "^0.30.7"
+        "@babel/runtime": "^7.20.13",
+        "gatsby-core-utils": "^4.11.0",
+        "gatsby-plugin-utils": "^4.11.0",
+        "semver": "^7.5.1",
+        "sharp": "^0.32.1"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next"
+        "gatsby": "^5.0.0-next"
       }
     },
-    "node_modules/gatsby-plugin-manifest/node_modules/detect-libc": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
-      "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
+    "node_modules/gatsby-plugin-manifest/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
       "engines": {
-        "node": ">=8"
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/gatsby-plugin-manifest/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
       }
     },
     "node_modules/gatsby-plugin-manifest/node_modules/lru-cache": {
@@ -12406,15 +13020,10 @@
         "node": ">=10"
       }
     },
-    "node_modules/gatsby-plugin-manifest/node_modules/node-addon-api": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
-      "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
-    },
     "node_modules/gatsby-plugin-manifest/node_modules/semver": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
       "dependencies": {
         "lru-cache": "^6.0.0"
       },
@@ -12425,28 +13034,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/gatsby-plugin-manifest/node_modules/sharp": {
-      "version": "0.30.7",
-      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.7.tgz",
-      "integrity": "sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==",
-      "hasInstallScript": true,
-      "dependencies": {
-        "color": "^4.2.3",
-        "detect-libc": "^2.0.1",
-        "node-addon-api": "^5.0.0",
-        "prebuild-install": "^7.1.1",
-        "semver": "^7.3.7",
-        "simple-get": "^4.0.1",
-        "tar-fs": "^2.1.1",
-        "tunnel-agent": "^0.6.0"
-      },
-      "engines": {
-        "node": ">=12.13.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/libvips"
-      }
-    },
     "node_modules/gatsby-plugin-manifest/node_modules/yallist": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -12796,49 +13383,88 @@
       }
     },
     "node_modules/gatsby-plugin-page-creator": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.25.0.tgz",
-      "integrity": "sha512-plHek7xHSV9l1bLPa1JAnxzBqP7j2ihCPRwpBk/wIJAR8cG65wjAT+Nu8DKpW0+2/MYill84ns1r2m8g0L/7bg==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-5.11.0.tgz",
+      "integrity": "sha512-GkostNpsU4Q92hw4jHv2QQrIVvu7Jn2KO2aMgv8L+Kc8O2ZaSgUuZnRlQvd9G9SDzHMowTqbss9AHO5Y3cgwgg==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
-        "@babel/traverse": "^7.15.4",
+        "@babel/runtime": "^7.20.13",
+        "@babel/traverse": "^7.20.13",
         "@sindresorhus/slugify": "^1.1.2",
         "chokidar": "^3.5.3",
         "fs-exists-cached": "^1.0.0",
-        "fs-extra": "^10.1.0",
-        "gatsby-core-utils": "^3.25.0",
-        "gatsby-page-utils": "^2.25.0",
-        "gatsby-plugin-utils": "^3.19.0",
-        "gatsby-telemetry": "^3.25.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-core-utils": "^4.11.0",
+        "gatsby-page-utils": "^3.11.0",
+        "gatsby-plugin-utils": "^4.11.0",
+        "gatsby-telemetry": "^4.11.0",
         "globby": "^11.1.0",
         "lodash": "^4.17.21"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next"
+        "gatsby": "^5.0.0-next"
       }
     },
-    "node_modules/gatsby-plugin-preload-fonts": {
-      "version": "3.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-preload-fonts/-/gatsby-plugin-preload-fonts-3.25.0.tgz",
-      "integrity": "sha512-Lz6pJCJzNMvT16nBWJrm5OOL4QGibHd+cWMf59aIRcmGNI/UqoMchQUbfHfb9vidAL23Qx9RO3rbuiKwYBL2Pw==",
+    "node_modules/gatsby-plugin-page-creator/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
-        "chalk": "^4.1.2",
-        "date-fns": "^2.28.0",
-        "fs-extra": "^10.1.0",
-        "gatsby-core-utils": "^3.25.0",
-        "graphql-request": "^1.8.2",
-        "progress": "^2.0.3",
-        "puppeteer": "^3.3.0"
-      },
-      "bin": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/gatsby-plugin-page-creator/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/gatsby-plugin-preload-fonts": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-preload-fonts/-/gatsby-plugin-preload-fonts-4.11.0.tgz",
+      "integrity": "sha512-s21irsf/UdOxcOPbFGk9mRKvIoXtmAwr34VsM7BTELEIwYDbhDHDjz5u+nziyE1jPNVHGk0ysLTp4RlgObIVjA==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "chalk": "^4.1.2",
+        "date-fns": "^2.30.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-core-utils": "^4.11.0",
+        "graphql-request": "^1.8.2",
+        "progress": "^2.0.3",
+        "puppeteer": "^3.3.0"
+      },
+      "bin": {
         "gatsby-preload-fonts": "prepare/index.js"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next"
+        "gatsby": "^5.0.0-next"
       }
     },
     "node_modules/gatsby-plugin-preload-fonts/node_modules/ansi-styles": {
@@ -12886,6 +13512,45 @@
       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
     },
+    "node_modules/gatsby-plugin-preload-fonts/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/gatsby-plugin-preload-fonts/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
     "node_modules/gatsby-plugin-preload-fonts/node_modules/has-flag": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -12906,40 +13571,40 @@
       }
     },
     "node_modules/gatsby-plugin-robots-txt": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-robots-txt/-/gatsby-plugin-robots-txt-1.7.1.tgz",
-      "integrity": "sha512-ZdZm8/4b7Whf+W5kf+DqjZwz/+DY+IB7xp227+m2f2rgGUsz8yVCz4RitiN5+EInGFZFry0v+IbrUKCXTpIZYg==",
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-robots-txt/-/gatsby-plugin-robots-txt-1.8.0.tgz",
+      "integrity": "sha512-GMUIrsCPncb10wM9cuF2ZwYNN8revEolzvvizT0RzRE4NhPxsQUT4LIRE4n5IYQhbYu6oYZtfeG7YreFXmxLMw==",
       "dependencies": {
-        "@babel/runtime": "^7.16.7",
+        "@babel/runtime": "^7.17.9",
         "generate-robotstxt": "^8.0.3"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0 || ^3.0.0 || ^2.0.0"
+        "gatsby": "^5.0.0"
       }
     },
     "node_modules/gatsby-plugin-sharp": {
-      "version": "4.25.1",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.25.1.tgz",
-      "integrity": "sha512-cGRb8lmwJkzwT1Qze0R+VL+55BIb9weM17m+dUf6gs5Z++lQltqge+L8a1qWWsGL6KfLQN7+bIqjhmTTscIPMQ==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-5.11.0.tgz",
+      "integrity": "sha512-/7so6DUiDbTKEwQ/lTzJRIw8wPYLoFkmVOZ8ACXhVQ/2Gq/pDc8ToLgDF1MyPQ40BZcfN2nmsPgHYdq5lFsCTg==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
+        "@babel/runtime": "^7.20.13",
         "async": "^3.2.4",
         "bluebird": "^3.7.2",
         "debug": "^4.3.4",
         "filenamify": "^4.3.0",
-        "fs-extra": "^10.1.0",
-        "gatsby-core-utils": "^3.25.0",
-        "gatsby-plugin-utils": "^3.19.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-core-utils": "^4.11.0",
+        "gatsby-plugin-utils": "^4.11.0",
         "lodash": "^4.17.21",
         "probe-image-size": "^7.2.3",
-        "semver": "^7.3.7",
-        "sharp": "^0.30.7"
+        "semver": "^7.5.1",
+        "sharp": "^0.32.1"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next"
+        "gatsby": "^5.0.0-next"
       }
     },
     "node_modules/gatsby-plugin-sharp/node_modules/async": {
@@ -12947,12 +13612,43 @@
       "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
       "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
     },
-    "node_modules/gatsby-plugin-sharp/node_modules/detect-libc": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
-      "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
+    "node_modules/gatsby-plugin-sharp/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
       "engines": {
-        "node": ">=8"
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/gatsby-plugin-sharp/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
       }
     },
     "node_modules/gatsby-plugin-sharp/node_modules/lru-cache": {
@@ -12966,15 +13662,10 @@
         "node": ">=10"
       }
     },
-    "node_modules/gatsby-plugin-sharp/node_modules/node-addon-api": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
-      "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
-    },
     "node_modules/gatsby-plugin-sharp/node_modules/semver": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
       "dependencies": {
         "lru-cache": "^6.0.0"
       },
@@ -12985,67 +13676,45 @@
         "node": ">=10"
       }
     },
-    "node_modules/gatsby-plugin-sharp/node_modules/sharp": {
-      "version": "0.30.7",
-      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.7.tgz",
-      "integrity": "sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==",
-      "hasInstallScript": true,
-      "dependencies": {
-        "color": "^4.2.3",
-        "detect-libc": "^2.0.1",
-        "node-addon-api": "^5.0.0",
-        "prebuild-install": "^7.1.1",
-        "semver": "^7.3.7",
-        "simple-get": "^4.0.1",
-        "tar-fs": "^2.1.1",
-        "tunnel-agent": "^0.6.0"
-      },
-      "engines": {
-        "node": ">=12.13.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/libvips"
-      }
-    },
     "node_modules/gatsby-plugin-sharp/node_modules/yallist": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
     "node_modules/gatsby-plugin-sitemap": {
-      "version": "5.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-5.25.0.tgz",
-      "integrity": "sha512-0MYinO0MTsOIEd7d2NOCm/JVdFIMgoIEFem/S0gMpuW4rBCpsE6McPmRKGZl2bp277jEhU8ACt4/49nsCA1AoA==",
+      "version": "6.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-6.11.0.tgz",
+      "integrity": "sha512-YpCnENEsmqcQ6s7OXKvj402i7ODHpmr4sNXxIf2ecT7EpL9JiRhmCwYsg0WGaAEC+QG1BggFuMDC9rAqoRcYng==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
+        "@babel/runtime": "^7.20.13",
         "common-tags": "^1.8.2",
         "minimatch": "^3.1.2",
-        "sitemap": "^7.0.0"
+        "sitemap": "^7.1.1"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next",
-        "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
-        "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0"
+        "gatsby": "^5.0.0-next",
+        "react": "^18.0.0 || ^0.0.0",
+        "react-dom": "^18.0.0 || ^0.0.0"
       }
     },
     "node_modules/gatsby-plugin-styled-components": {
-      "version": "5.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-styled-components/-/gatsby-plugin-styled-components-5.25.0.tgz",
-      "integrity": "sha512-gBCgvLDz+X9Xq8BhroFWZTtURMycgARyly4SlidrPqcPtxWhJtas+gc01/uivHnjIUW6SAac8cpot3ld/PLdZA==",
+      "version": "6.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-styled-components/-/gatsby-plugin-styled-components-6.11.0.tgz",
+      "integrity": "sha512-VfzTXZ/MZvTfaSwY9dwcWsxgqmw9OCcKXQj2keRIs9x8g0QecYBSVIWZBe7atr76LyCR0FiWjmLSSp6Ll/UD3Q==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4"
+        "@babel/runtime": "^7.20.13"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
         "babel-plugin-styled-components": ">1.5.0",
-        "gatsby": "^4.0.0-next",
-        "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
-        "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
+        "gatsby": "^5.0.0-next",
+        "react": "^18.0.0 || ^0.0.0",
+        "react-dom": "^18.0.0 || ^0.0.0",
         "styled-components": ">=2.0.0"
       }
     },
@@ -13059,46 +13728,85 @@
       }
     },
     "node_modules/gatsby-plugin-typescript": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.25.0.tgz",
-      "integrity": "sha512-8BTtiVWuIqIEGx/PBBMWd6FYPgel16hT3js7SMo5oI9K4EPsSxRItgRf41MTJGxRR20EhL4e99g2S8x0v1+odA==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-5.11.0.tgz",
+      "integrity": "sha512-NxhsoThLVKErs6jT0pnSn50bQWxUA+CpP6WY2gHMFzXATlpASQbRb0rIuxuhurO4mYU2kydJRPVSgMUYrIdnzQ==",
       "dependencies": {
-        "@babel/core": "^7.15.5",
-        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
-        "@babel/plugin-proposal-numeric-separator": "^7.14.5",
-        "@babel/plugin-proposal-optional-chaining": "^7.14.5",
-        "@babel/preset-typescript": "^7.15.0",
-        "@babel/runtime": "^7.15.4",
-        "babel-plugin-remove-graphql-queries": "^4.25.0"
+        "@babel/core": "^7.20.12",
+        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+        "@babel/plugin-proposal-numeric-separator": "^7.18.6",
+        "@babel/plugin-proposal-optional-chaining": "^7.20.7",
+        "@babel/preset-typescript": "^7.18.6",
+        "@babel/runtime": "^7.20.13",
+        "babel-plugin-remove-graphql-queries": "^5.11.0"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next"
+        "gatsby": "^5.0.0-next"
       }
     },
     "node_modules/gatsby-plugin-utils": {
-      "version": "3.19.0",
-      "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.19.0.tgz",
-      "integrity": "sha512-EZtvgHSU5NPbEn6a4cfSpEGCQ09SfwbhoybHTJKj1clop86HSwOCV2iH8RbCc+X6jbdgHaSZsfsl7zG1h7DBUw==",
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-4.11.0.tgz",
+      "integrity": "sha512-Eegg3BScq7vKYeJoWo6sduBwgM4DsKhYKXGIAVR9rRsGOiR1nNIWfFzT9I6OOcob9KHICeFyNgqyqpENL7odEA==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
-        "fastq": "^1.13.0",
-        "fs-extra": "^10.1.0",
-        "gatsby-core-utils": "^3.25.0",
-        "gatsby-sharp": "^0.19.0",
-        "graphql-compose": "^9.0.7",
+        "@babel/runtime": "^7.20.13",
+        "fastq": "^1.15.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-core-utils": "^4.11.0",
+        "gatsby-sharp": "^1.11.0",
+        "graphql-compose": "^9.0.10",
         "import-from": "^4.0.0",
-        "joi": "^17.4.2",
+        "joi": "^17.9.2",
         "mime": "^3.0.0"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next",
-        "graphql": "^15.0.0"
+        "gatsby": "^5.0.0-next",
+        "graphql": "^16.0.0"
+      }
+    },
+    "node_modules/gatsby-plugin-utils/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/gatsby-plugin-utils/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
       }
     },
     "node_modules/gatsby-plugin-utils/node_modules/mime": {
@@ -13126,296 +13834,225 @@
       }
     },
     "node_modules/gatsby-react-router-scroll": {
-      "version": "5.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.25.0.tgz",
-      "integrity": "sha512-SFSdezIa5lahCE8ieCLrtLA5tztemGco/rN8si9rI9KHu1h1jPvDhsNqs2g+Z50JrUb1RPfsmxJTmLa5i6MIgQ==",
+      "version": "6.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-6.11.0.tgz",
+      "integrity": "sha512-BZyTSo2sxbmkGY5m/CtRSM/Ui6lNc3JkOLzR6+iqnypbo5eR3r3lKapqDi0RJKze/FiP1Wt0DKfxLf7P5J3jcw==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
+        "@babel/runtime": "^7.20.13",
         "prop-types": "^15.8.1"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "@gatsbyjs/reach-router": "^1.3.5",
-        "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
-        "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0"
+        "@gatsbyjs/reach-router": "^2.0.0",
+        "react": "^18.0.0 || ^0.0.0",
+        "react-dom": "^18.0.0 || ^0.0.0"
       }
     },
     "node_modules/gatsby-redirect-from": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/gatsby-redirect-from/-/gatsby-redirect-from-0.5.0.tgz",
-      "integrity": "sha512-OOGFdfDJPPdaWHgD5OA6JGanaAfCzij0wJ4XffxnemcFJsVZoOfKhLXxwFSXQ/+YW9S0NchGfpM4ycZ4Z517pw==",
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/gatsby-redirect-from/-/gatsby-redirect-from-1.0.4.tgz",
+      "integrity": "sha512-rSPhgt3QqQtkp+tC7SL8EqT5VSuSZoFQndk1TZ1LW/TSy3fZNqxZ3BebxoH4vuYyuYM1oCjWztRnJLulXjmlhw==",
       "engines": {
-        "node": ">=12"
+        "node": ">=16"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0",
+        "gatsby": "^4.0.0 || ^5.0.0",
         "gatsby-plugin-meta-redirect": ">=1.1.0"
       }
     },
     "node_modules/gatsby-script": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-1.10.0.tgz",
-      "integrity": "sha512-8jAtQR0mw3G8sCy6i2D1jfGvUF5d9AIboEQuo9ZEChT4Ep5f+PSRxiWZqSjhKvintAOIeS4QXCJP5Rtp3xZKLg==",
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-2.11.0.tgz",
+      "integrity": "sha512-w6hc8GYlvQPaxmIkromblarpIimmAUpH4lp+7IIts1MWVXlt3t9aZAbzduunW+zO3K9OGomFFYJakVyZS7qmhg==",
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "@gatsbyjs/reach-router": "^1.3.5",
-        "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0",
-        "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^0.0.0"
+        "@gatsbyjs/reach-router": "^2.0.0",
+        "react": "^18.0.0 || ^0.0.0",
+        "react-dom": "^18.0.0 || ^0.0.0"
       }
     },
     "node_modules/gatsby-sharp": {
-      "version": "0.19.0",
-      "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.19.0.tgz",
-      "integrity": "sha512-EbI3RNBu2+aaxuMUP/INmoj8vcNAG6BgpFvi1tLeU7/gVTNVQ+7pC/ZYtlVCzSw+faaw7r1ZBMi6F66mNIIz5A==",
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-1.11.0.tgz",
+      "integrity": "sha512-zJbN3JVCFur8Ilwn1scf7o8AN69//shpJhYqt3uhuwhhkU6ZMCMmVVNKHSiUiWkVqhwSRJ4y7c/I3Ys9xMxsIw==",
       "dependencies": {
-        "@types/sharp": "^0.30.5",
-        "sharp": "^0.30.7"
+        "sharp": "^0.32.1"
       },
       "engines": {
-        "node": ">=14.15.0"
-      }
-    },
-    "node_modules/gatsby-sharp/node_modules/detect-libc": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
-      "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
-      "engines": {
-        "node": ">=8"
+        "node": ">=18.0.0"
       }
     },
-    "node_modules/gatsby-sharp/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+    "node_modules/gatsby-source-filesystem": {
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-5.11.0.tgz",
+      "integrity": "sha512-42CXNzKgGvkZtqmFIIMbEJW5ZpQ5b4TQT7Rk21XsEMkoZT9QchqMG1S2VPK/LPe7LicvGv6zBziGrtn6ttch7w==",
       "dependencies": {
-        "yallist": "^4.0.0"
+        "@babel/runtime": "^7.20.13",
+        "chokidar": "^3.5.3",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "gatsby-core-utils": "^4.11.0",
+        "mime": "^3.0.0",
+        "pretty-bytes": "^5.6.0",
+        "valid-url": "^1.0.9",
+        "xstate": "^4.37.2"
       },
       "engines": {
-        "node": ">=10"
+        "node": ">=18.0.0"
+      },
+      "peerDependencies": {
+        "gatsby": "^5.0.0-next"
       }
     },
-    "node_modules/gatsby-sharp/node_modules/node-addon-api": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
-      "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
-    },
-    "node_modules/gatsby-sharp/node_modules/semver": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+    "node_modules/gatsby-source-filesystem/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
       "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
       },
       "engines": {
-        "node": ">=10"
+        "node": ">=14.14"
       }
     },
-    "node_modules/gatsby-sharp/node_modules/sharp": {
-      "version": "0.30.7",
-      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.7.tgz",
-      "integrity": "sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==",
-      "hasInstallScript": true,
+    "node_modules/gatsby-source-filesystem/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
       "dependencies": {
-        "color": "^4.2.3",
-        "detect-libc": "^2.0.1",
-        "node-addon-api": "^5.0.0",
-        "prebuild-install": "^7.1.1",
-        "semver": "^7.3.7",
-        "simple-get": "^4.0.1",
-        "tar-fs": "^2.1.1",
-        "tunnel-agent": "^0.6.0"
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
       },
       "engines": {
-        "node": ">=12.13.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/libvips"
+        "node": ">=18.0.0"
       }
     },
-    "node_modules/gatsby-sharp/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-    },
-    "node_modules/gatsby-source-filesystem": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-4.25.0.tgz",
-      "integrity": "sha512-gja4++bPkYpnum4/TxFicr3zRHBArnM2HjT77EE4EuDhdl6qlJYr/heD09LIPN2jdR5gmPwMDjIZnuYZ/6j/aQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.15.4",
-        "chokidar": "^3.5.3",
-        "file-type": "^16.5.4",
-        "fs-extra": "^10.1.0",
-        "gatsby-core-utils": "^3.25.0",
-        "md5-file": "^5.0.0",
-        "mime": "^2.5.2",
-        "pretty-bytes": "^5.4.1",
-        "valid-url": "^1.0.9",
-        "xstate": "4.32.1"
+    "node_modules/gatsby-source-filesystem/node_modules/mime": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+      "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+      "bin": {
+        "mime": "cli.js"
       },
       "engines": {
-        "node": ">=14.15.0"
-      },
-      "peerDependencies": {
-        "gatsby": "^4.0.0-next"
+        "node": ">=10.0.0"
       }
     },
     "node_modules/gatsby-telemetry": {
-      "version": "3.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.25.0.tgz",
-      "integrity": "sha512-FGC1yS2evJxTN/Ku9XonCBiqhH6uO6aPjjps65BbL+Xbpct/qfirIFxYG6DhHPrksR0fKOhstJGnQqay74hWdQ==",
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-4.11.0.tgz",
+      "integrity": "sha512-e4ojLTsdpMny6vQKBEnPl0AxNXWldJv6vErw9yBOPDUqLrVx7U2LagTyVbmNtg+LZhKq9NxgQq3vzRuIl9uroA==",
       "hasInstallScript": true,
       "dependencies": {
-        "@babel/code-frame": "^7.14.0",
-        "@babel/runtime": "^7.15.4",
+        "@babel/code-frame": "^7.18.6",
+        "@babel/runtime": "^7.20.13",
         "@turist/fetch": "^7.2.0",
         "@turist/time": "^0.0.2",
-        "boxen": "^4.2.0",
+        "boxen": "^5.1.2",
         "configstore": "^5.0.1",
-        "fs-extra": "^10.1.0",
-        "gatsby-core-utils": "^3.25.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-core-utils": "^4.11.0",
         "git-up": "^7.0.0",
         "is-docker": "^2.2.1",
         "lodash": "^4.17.21",
-        "node-fetch": "^2.6.7"
-      },
-      "engines": {
-        "node": ">=14.15.0"
-      }
-    },
-    "node_modules/gatsby-telemetry/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-      }
-    },
-    "node_modules/gatsby-telemetry/node_modules/boxen": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
-      "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
-      "dependencies": {
-        "ansi-align": "^3.0.0",
-        "camelcase": "^5.3.1",
-        "chalk": "^3.0.0",
-        "cli-boxes": "^2.2.0",
-        "string-width": "^4.1.0",
-        "term-size": "^2.1.0",
-        "type-fest": "^0.8.1",
-        "widest-line": "^3.1.0"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/gatsby-telemetry/node_modules/camelcase": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/gatsby-telemetry/node_modules/chalk": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
-      "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
+        "node-fetch": "^2.6.11"
       },
       "engines": {
-        "node": ">=8"
+        "node": ">=18.0.0"
       }
     },
-    "node_modules/gatsby-telemetry/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+    "node_modules/gatsby-telemetry/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
       "dependencies": {
-        "color-name": "~1.1.4"
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
       },
       "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/gatsby-telemetry/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-    },
-    "node_modules/gatsby-telemetry/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "engines": {
-        "node": ">=8"
+        "node": ">=14.14"
       }
     },
-    "node_modules/gatsby-telemetry/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+    "node_modules/gatsby-telemetry/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
       "dependencies": {
-        "has-flag": "^4.0.0"
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
       },
       "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/gatsby-telemetry/node_modules/type-fest": {
-      "version": "0.8.1",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
-      "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
-      "engines": {
-        "node": ">=8"
+        "node": ">=18.0.0"
       }
     },
     "node_modules/gatsby-transformer-sharp": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-4.25.0.tgz",
-      "integrity": "sha512-7aqecTvOUFiNB96ij77UnAGJs7Un0TlkpamG//dSl6Nru9EylGz/NW/Eg0vioQyHLCYdMvd5xO8V3BOHJADsnw==",
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-5.11.0.tgz",
+      "integrity": "sha512-kIYrCtceqmgwgPRQGVbVY8JxMfJulFSqAeLigRYhrxpVYag90vskmh+HsiKHaY9j/rEARyCofnaAG/jwhSrcRg==",
       "dependencies": {
-        "@babel/runtime": "^7.15.4",
+        "@babel/runtime": "^7.20.13",
         "bluebird": "^3.7.2",
         "common-tags": "^1.8.2",
-        "fs-extra": "^10.1.0",
-        "gatsby-plugin-utils": "^3.19.0",
+        "fs-extra": "^11.1.1",
+        "gatsby-plugin-utils": "^4.11.0",
         "probe-image-size": "^7.2.3",
-        "semver": "^7.3.7",
-        "sharp": "^0.30.7"
+        "semver": "^7.5.1",
+        "sharp": "^0.32.1"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "gatsby": "^4.0.0-next",
-        "gatsby-plugin-sharp": "^4.0.0-next"
+        "gatsby": "^5.0.0-next",
+        "gatsby-plugin-sharp": "^5.0.0-next"
       }
     },
-    "node_modules/gatsby-transformer-sharp/node_modules/detect-libc": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
-      "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
+    "node_modules/gatsby-transformer-sharp/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
       "engines": {
-        "node": ">=8"
+        "node": ">=14.14"
       }
     },
     "node_modules/gatsby-transformer-sharp/node_modules/lru-cache": {
@@ -13429,15 +14066,10 @@
         "node": ">=10"
       }
     },
-    "node_modules/gatsby-transformer-sharp/node_modules/node-addon-api": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
-      "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
-    },
     "node_modules/gatsby-transformer-sharp/node_modules/semver": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
       "dependencies": {
         "lru-cache": "^6.0.0"
       },
@@ -13448,43 +14080,36 @@
         "node": ">=10"
       }
     },
-    "node_modules/gatsby-transformer-sharp/node_modules/sharp": {
-      "version": "0.30.7",
-      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.7.tgz",
-      "integrity": "sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==",
-      "hasInstallScript": true,
-      "dependencies": {
-        "color": "^4.2.3",
-        "detect-libc": "^2.0.1",
-        "node-addon-api": "^5.0.0",
-        "prebuild-install": "^7.1.1",
-        "semver": "^7.3.7",
-        "simple-get": "^4.0.1",
-        "tar-fs": "^2.1.1",
-        "tunnel-agent": "^0.6.0"
-      },
-      "engines": {
-        "node": ">=12.13.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/libvips"
-      }
-    },
     "node_modules/gatsby-transformer-sharp/node_modules/yallist": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
     "node_modules/gatsby-worker": {
-      "version": "1.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.25.0.tgz",
-      "integrity": "sha512-gjp28irgHASihwvMyF5aZMALWGax9mEmcD8VYGo2osRe7p6BZuWi4cSuP9XM9EvytDvIugpnSadmTP01B7LtWg==",
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-2.11.0.tgz",
+      "integrity": "sha512-P+My2sTgeWSgtA6xg5I6ysOLnhdZnTuxVcMdrVE5fAkG9k7PM7qZdlZxgjbIf+rpXtkDjYkLnXHoLsbhzugrVA==",
       "dependencies": {
-        "@babel/core": "^7.15.5",
-        "@babel/runtime": "^7.15.4"
+        "@babel/core": "^7.20.12",
+        "@babel/runtime": "^7.20.13",
+        "fs-extra": "^11.1.1",
+        "signal-exit": "^3.0.7"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/gatsby-worker/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
       }
     },
     "node_modules/gatsby/node_modules/@eslint/eslintrc": {
@@ -13506,22 +14131,6 @@
         "node": "^10.12.0 || >=12.0.0"
       }
     },
-    "node_modules/gatsby/node_modules/@eslint/eslintrc/node_modules/debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-      "dependencies": {
-        "ms": "2.1.2"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "peerDependenciesMeta": {
-        "supports-color": {
-          "optional": true
-        }
-      }
-    },
     "node_modules/gatsby/node_modules/@eslint/eslintrc/node_modules/ignore": {
       "version": "4.0.6",
       "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
@@ -13559,95 +14168,6 @@
         }
       }
     },
-    "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz",
-      "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==",
-      "dependencies": {
-        "@typescript-eslint/experimental-utils": "4.33.0",
-        "@typescript-eslint/scope-manager": "4.33.0",
-        "debug": "^4.3.1",
-        "functional-red-black-tree": "^1.0.1",
-        "ignore": "^5.1.8",
-        "regexpp": "^3.1.0",
-        "semver": "^7.3.5",
-        "tsutils": "^3.21.0"
-      },
-      "engines": {
-        "node": "^10.12.0 || >=12.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "@typescript-eslint/parser": "^4.0.0",
-        "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-      "dependencies": {
-        "ms": "2.1.2"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "peerDependenciesMeta": {
-        "supports-color": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/gatsby/node_modules/@typescript-eslint/parser": {
-      "version": "4.33.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz",
-      "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==",
-      "dependencies": {
-        "@typescript-eslint/scope-manager": "4.33.0",
-        "@typescript-eslint/types": "4.33.0",
-        "@typescript-eslint/typescript-estree": "4.33.0",
-        "debug": "^4.3.1"
-      },
-      "engines": {
-        "node": "^10.12.0 || >=12.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/gatsby/node_modules/@typescript-eslint/parser/node_modules/debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-      "dependencies": {
-        "ms": "2.1.2"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "peerDependenciesMeta": {
-        "supports-color": {
-          "optional": true
-        }
-      }
-    },
     "node_modules/gatsby/node_modules/acorn": {
       "version": "7.4.1",
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
@@ -13715,30 +14235,11 @@
         "node": ">=7.0.0"
       }
     },
-    "node_modules/gatsby/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-    },
-    "node_modules/gatsby/node_modules/create-gatsby": {
-      "version": "2.25.0",
-      "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.25.0.tgz",
-      "integrity": "sha512-96Kl/6Far2j65/vFv/6Mb9+T+/4oW8hlC3UmdfjgBgUIzTPFmezY1ygPu2dfCKjprWkArB8DpE7EsAaJoRKB1Q==",
-      "dependencies": {
-        "@babel/runtime": "^7.15.4"
-      },
-      "bin": {
-        "create-gatsby": "cli.js"
-      }
-    },
-    "node_modules/gatsby/node_modules/debug": {
-      "version": "3.2.7",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-      "dependencies": {
-        "ms": "^2.1.1"
-      }
-    },
+    "node_modules/gatsby/node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+    },
     "node_modules/gatsby/node_modules/escape-string-regexp": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -13883,22 +14384,6 @@
         "@babel/highlight": "^7.10.4"
       }
     },
-    "node_modules/gatsby/node_modules/eslint/node_modules/debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-      "dependencies": {
-        "ms": "2.1.2"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "peerDependenciesMeta": {
-        "supports-color": {
-          "optional": true
-        }
-      }
-    },
     "node_modules/gatsby/node_modules/eslint/node_modules/ignore": {
       "version": "4.0.6",
       "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
@@ -13928,60 +14413,43 @@
         "node": ">=4"
       }
     },
-    "node_modules/gatsby/node_modules/gatsby-cli": {
-      "version": "4.25.0",
-      "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.25.0.tgz",
-      "integrity": "sha512-CJ2PCsfFmn9Xqc/jg9MFMU1BG5oQGiej1TFFx8GhChJ+kGhi9ANnNM+qo1K4vOmoMnsT4SSGiPAFD10AWFqpAQ==",
-      "hasInstallScript": true,
+    "node_modules/gatsby/node_modules/fs-extra": {
+      "version": "11.1.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+      "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
       "dependencies": {
-        "@babel/code-frame": "^7.14.0",
-        "@babel/core": "^7.15.5",
-        "@babel/generator": "^7.16.8",
-        "@babel/helper-plugin-utils": "^7.16.7",
-        "@babel/preset-typescript": "^7.16.7",
-        "@babel/runtime": "^7.15.4",
-        "@babel/template": "^7.16.7",
-        "@babel/types": "^7.16.8",
-        "@jridgewell/trace-mapping": "^0.3.13",
-        "@types/common-tags": "^1.8.1",
-        "better-opn": "^2.1.1",
-        "boxen": "^5.1.2",
-        "chalk": "^4.1.2",
-        "clipboardy": "^2.3.0",
-        "common-tags": "^1.8.2",
-        "convert-hrtime": "^3.0.0",
-        "create-gatsby": "^2.25.0",
-        "envinfo": "^7.8.1",
-        "execa": "^5.1.1",
-        "fs-exists-cached": "^1.0.0",
-        "fs-extra": "^10.1.0",
-        "gatsby-core-utils": "^3.25.0",
-        "gatsby-telemetry": "^3.25.0",
-        "hosted-git-info": "^3.0.8",
-        "is-valid-path": "^0.1.1",
-        "joi": "^17.4.2",
-        "lodash": "^4.17.21",
-        "node-fetch": "^2.6.6",
-        "opentracing": "^0.14.5",
-        "pretty-error": "^2.1.2",
-        "progress": "^2.0.3",
-        "prompts": "^2.4.2",
-        "redux": "4.1.2",
-        "resolve-cwd": "^3.0.0",
-        "semver": "^7.3.7",
-        "signal-exit": "^3.0.6",
-        "stack-trace": "^0.0.10",
-        "strip-ansi": "^6.0.1",
-        "update-notifier": "^5.1.0",
-        "yargs": "^15.4.1",
-        "yoga-layout-prebuilt": "^1.10.0",
-        "yurnalist": "^2.1.0"
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
       },
-      "bin": {
-        "gatsby": "cli.js"
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/gatsby/node_modules/gatsby-core-utils": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.11.0.tgz",
+      "integrity": "sha512-W7pfrKgBchdk19g802IuPkCA2iJ69lRR1GzkfYjB8d1TuIQqf0l1z0lv7e+2kQqO+uQ5Yt3sGMMN2qMYMWfLXg==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.13",
+        "ci-info": "2.0.0",
+        "configstore": "^5.0.1",
+        "fastq": "^1.15.0",
+        "file-type": "^16.5.4",
+        "fs-extra": "^11.1.1",
+        "got": "^11.8.6",
+        "hash-wasm": "^4.9.0",
+        "import-from": "^4.0.0",
+        "lmdb": "2.5.3",
+        "lock": "^1.1.0",
+        "node-object-hash": "^2.3.10",
+        "proper-lockfile": "^4.1.2",
+        "resolve-from": "^5.0.0",
+        "tmp": "^0.2.1",
+        "xdg-basedir": "^4.0.0"
       },
       "engines": {
-        "node": ">=14.15.0"
+        "node": ">=18.0.0"
       }
     },
     "node_modules/gatsby/node_modules/globals": {
@@ -14029,6 +14497,17 @@
         "node": ">=10"
       }
     },
+    "node_modules/gatsby/node_modules/mime": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+      "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+      "bin": {
+        "mime": "cli.js"
+      },
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
     "node_modules/gatsby/node_modules/react-server-dom-webpack": {
       "version": "0.0.0-experimental-c8b778b7f-20220825",
       "resolved": "https://registry.npmjs.org/react-server-dom-webpack/-/react-server-dom-webpack-0.0.0-experimental-c8b778b7f-20220825.tgz",
@@ -14058,9 +14537,9 @@
       }
     },
     "node_modules/gatsby/node_modules/semver": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
       "dependencies": {
         "lru-cache": "^6.0.0"
       },
@@ -14076,6 +14555,14 @@
       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
       "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
     },
+    "node_modules/gatsby/node_modules/style-to-object": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz",
+      "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==",
+      "dependencies": {
+        "inline-style-parser": "0.1.1"
+      }
+    },
     "node_modules/gatsby/node_modules/supports-color": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -14226,14 +14713,14 @@
       }
     },
     "node_modules/gh-pages": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-4.0.0.tgz",
-      "integrity": "sha512-p8S0T3aGJc68MtwOcZusul5qPSNZCalap3NWbhRUZYu1YOdp+EjZ+4kPmRM8h3NNRdqw00yuevRjlkuSzCn7iQ==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-5.0.0.tgz",
+      "integrity": "sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==",
       "dev": true,
       "dependencies": {
-        "async": "^2.6.1",
+        "async": "^3.2.4",
         "commander": "^2.18.0",
-        "email-addresses": "^3.0.1",
+        "email-addresses": "^5.0.0",
         "filenamify": "^4.3.0",
         "find-cache-dir": "^3.3.1",
         "fs-extra": "^8.1.0",
@@ -14260,13 +14747,10 @@
       }
     },
     "node_modules/gh-pages/node_modules/async": {
-      "version": "2.6.4",
-      "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
-      "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
-      "dev": true,
-      "dependencies": {
-        "lodash": "^4.17.14"
-      }
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+      "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+      "dev": true
     },
     "node_modules/gh-pages/node_modules/commander": {
       "version": "2.20.3",
@@ -14449,28 +14933,6 @@
         "process": "^0.11.10"
       }
     },
-    "node_modules/global-dirs": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
-      "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
-      "dependencies": {
-        "ini": "2.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/global-dirs/node_modules/ini": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
-      "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/global-modules": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
@@ -14601,11 +15063,11 @@
       "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
     },
     "node_modules/graphql": {
-      "version": "15.8.0",
-      "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
-      "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
+      "version": "16.7.1",
+      "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.7.1.tgz",
+      "integrity": "sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==",
       "engines": {
-        "node": ">= 10.x"
+        "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
       }
     },
     "node_modules/graphql-compose": {
@@ -14616,23 +15078,15 @@
         "graphql-type-json": "0.3.2"
       }
     },
-    "node_modules/graphql-playground-html": {
-      "version": "1.6.30",
-      "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.30.tgz",
-      "integrity": "sha512-tpCujhsJMva4aqE8ULnF7/l3xw4sNRZcSHu+R00VV+W0mfp+Q20Plvcrp+5UXD+2yS6oyCXncA+zoQJQqhGCEw==",
-      "dependencies": {
-        "xss": "^1.0.6"
-      }
-    },
-    "node_modules/graphql-playground-middleware-express": {
-      "version": "1.7.23",
-      "resolved": "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.23.tgz",
-      "integrity": "sha512-M/zbTyC1rkgiQjFSgmzAv6umMHOphYLNWZp6Ye5QrD77WfGOOoSqDsVmGUczc2pDkEPEzzGB/bvBO5rdzaTRgw==",
-      "dependencies": {
-        "graphql-playground-html": "^1.6.30"
+    "node_modules/graphql-http": {
+      "version": "1.21.0",
+      "resolved": "https://registry.npmjs.org/graphql-http/-/graphql-http-1.21.0.tgz",
+      "integrity": "sha512-yrItPfHj5WeT4n7iusbVin+vGSQjXFAX6U/GnYytdCJRXVad1TWGtYFDZ2ROjCKpXQzIwvfbiWCEwfuXgR3B6A==",
+      "engines": {
+        "node": ">=12"
       },
       "peerDependencies": {
-        "express": "^4.16.2"
+        "graphql": ">=0.11 <=16"
       }
     },
     "node_modules/graphql-request": {
@@ -14891,14 +15345,6 @@
         "node": ">=0.10.0"
       }
     },
-    "node_modules/has-yarn": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
-      "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/hash-wasm": {
       "version": "4.9.0",
       "resolved": "https://registry.npmjs.org/hash-wasm/-/hash-wasm-4.9.0.tgz",
@@ -15322,14 +15768,6 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/import-lazy": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
-      "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
     "node_modules/import-local": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
@@ -15856,21 +16294,6 @@
         "url": "https://github.com/sponsors/wooorm"
       }
     },
-    "node_modules/is-installed-globally": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
-      "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
-      "dependencies": {
-        "global-dirs": "^3.0.0",
-        "is-path-inside": "^3.0.2"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/is-invalid-path": {
       "version": "0.1.0",
       "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
@@ -15920,17 +16343,6 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
-    "node_modules/is-npm": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
-      "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==",
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/is-number": {
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -15965,6 +16377,7 @@
       "version": "3.0.3",
       "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
       "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+      "dev": true,
       "engines": {
         "node": ">=8"
       }
@@ -16223,11 +16636,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/is-yarn-global": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
-      "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
-    },
     "node_modules/isarray": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -16246,6 +16654,24 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/jackspeak": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.2.tgz",
+      "integrity": "sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==",
+      "dev": true,
+      "dependencies": {
+        "@isaacs/cliui": "^8.0.2"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      },
+      "optionalDependencies": {
+        "@pkgjs/parseargs": "^0.11.0"
+      }
+    },
     "node_modules/javascript-stringify": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz",
@@ -16316,12 +16742,6 @@
         "@hapi/hoek": "^9.0.0"
       }
     },
-    "node_modules/jquery": {
-      "version": "3.7.0",
-      "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz",
-      "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==",
-      "peer": true
-    },
     "node_modules/js-cookie": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
@@ -16493,14 +16913,17 @@
       }
     },
     "node_modules/latest-version": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
-      "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
+      "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==",
       "dependencies": {
-        "package-json": "^6.3.0"
+        "package-json": "^8.1.0"
       },
       "engines": {
-        "node": ">=8"
+        "node": ">=14.16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/layout-base": {
@@ -16796,7 +17219,6 @@
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
       "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
-      "dev": true,
       "dependencies": {
         "pify": "^4.0.1",
         "semver": "^5.6.0"
@@ -16809,7 +17231,6 @@
       "version": "5.7.1",
       "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
       "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-      "dev": true,
       "bin": {
         "semver": "bin/semver"
       }
@@ -16884,17 +17305,6 @@
       "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
       "dev": true
     },
-    "node_modules/md5-file": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz",
-      "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==",
-      "bin": {
-        "md5-file": "cli.js"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
     "node_modules/mdast-squeeze-paragraphs": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz",
@@ -17321,6 +17731,15 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/minipass": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz",
+      "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==",
+      "dev": true,
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
+    },
     "node_modules/mitt": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz",
@@ -17569,6 +17988,11 @@
       "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
       "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
     },
+    "node_modules/natural-compare-lite": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+      "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
+    },
     "node_modules/needle": {
       "version": "2.9.1",
       "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
@@ -17676,9 +18100,9 @@
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
     "node_modules/node-addon-api": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
-      "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz",
+      "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA=="
     },
     "node_modules/node-fetch": {
       "version": "2.6.11",
@@ -17699,16 +18123,6 @@
         }
       }
     },
-    "node_modules/node-gyp-build": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
-      "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
-      "bin": {
-        "node-gyp-build": "bin.js",
-        "node-gyp-build-optional": "optional.js",
-        "node-gyp-build-test": "build-test.js"
-      }
-    },
     "node_modules/node-gyp-build-optional-packages": {
       "version": "5.0.3",
       "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz",
@@ -18148,16 +18562,16 @@
       }
     },
     "node_modules/optionator": {
-      "version": "0.9.1",
-      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
-      "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+      "version": "0.9.3",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+      "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
       "dependencies": {
+        "@aashutoshrathi/word-wrap": "^1.2.3",
         "deep-is": "^0.1.3",
         "fast-levenshtein": "^2.0.6",
         "levn": "^0.4.1",
         "prelude-ls": "^1.2.1",
-        "type-check": "^0.4.0",
-        "word-wrap": "^1.2.3"
+        "type-check": "^0.4.0"
       },
       "engines": {
         "node": ">= 0.8.0"
@@ -18263,170 +18677,190 @@
       }
     },
     "node_modules/package-json": {
-      "version": "6.5.0",
-      "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
-      "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz",
+      "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==",
       "dependencies": {
-        "got": "^9.6.0",
-        "registry-auth-token": "^4.0.0",
-        "registry-url": "^5.0.0",
-        "semver": "^6.2.0"
+        "got": "^12.1.0",
+        "registry-auth-token": "^5.0.1",
+        "registry-url": "^6.0.0",
+        "semver": "^7.3.7"
       },
       "engines": {
-        "node": ">=8"
+        "node": ">=14.16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/package-json/node_modules/@sindresorhus/is": {
-      "version": "0.14.0",
-      "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
-      "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/package-json/node_modules/@szmarczak/http-timer": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
-      "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
-      "dependencies": {
-        "defer-to-connect": "^1.0.1"
-      },
+      "version": "5.6.0",
+      "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
+      "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==",
       "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/package-json/node_modules/cacheable-request": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
-      "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
-      "dependencies": {
-        "clone-response": "^1.0.2",
-        "get-stream": "^5.1.0",
-        "http-cache-semantics": "^4.0.0",
-        "keyv": "^3.0.0",
-        "lowercase-keys": "^2.0.0",
-        "normalize-url": "^4.1.0",
-        "responselike": "^1.0.2"
+        "node": ">=14.16"
       },
-      "engines": {
-        "node": ">=8"
+      "funding": {
+        "url": "https://github.com/sindresorhus/is?sponsor=1"
       }
     },
-    "node_modules/package-json/node_modules/cacheable-request/node_modules/get-stream": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
-      "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+    "node_modules/package-json/node_modules/@szmarczak/http-timer": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+      "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
       "dependencies": {
-        "pump": "^3.0.0"
+        "defer-to-connect": "^2.0.1"
       },
       "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
+        "node": ">=14.16"
       }
     },
-    "node_modules/package-json/node_modules/decompress-response": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
-      "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
-      "dependencies": {
-        "mimic-response": "^1.0.0"
-      },
+    "node_modules/package-json/node_modules/cacheable-lookup": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
+      "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
       "engines": {
-        "node": ">=4"
+        "node": ">=14.16"
       }
-    },
-    "node_modules/package-json/node_modules/defer-to-connect": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
-      "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
-    },
-    "node_modules/package-json/node_modules/get-stream": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-      "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+    },
+    "node_modules/package-json/node_modules/cacheable-request": {
+      "version": "10.2.12",
+      "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
+      "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
       "dependencies": {
-        "pump": "^3.0.0"
+        "@types/http-cache-semantics": "^4.0.1",
+        "get-stream": "^6.0.1",
+        "http-cache-semantics": "^4.1.1",
+        "keyv": "^4.5.2",
+        "mimic-response": "^4.0.0",
+        "normalize-url": "^8.0.0",
+        "responselike": "^3.0.0"
       },
       "engines": {
-        "node": ">=6"
+        "node": ">=14.16"
       }
     },
     "node_modules/package-json/node_modules/got": {
-      "version": "9.6.0",
-      "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
-      "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
-      "dependencies": {
-        "@sindresorhus/is": "^0.14.0",
-        "@szmarczak/http-timer": "^1.1.2",
-        "cacheable-request": "^6.0.0",
-        "decompress-response": "^3.3.0",
-        "duplexer3": "^0.1.4",
-        "get-stream": "^4.1.0",
-        "lowercase-keys": "^1.0.1",
-        "mimic-response": "^1.0.1",
-        "p-cancelable": "^1.0.0",
-        "to-readable-stream": "^1.0.0",
-        "url-parse-lax": "^3.0.0"
+      "version": "12.6.1",
+      "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
+      "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
+      "dependencies": {
+        "@sindresorhus/is": "^5.2.0",
+        "@szmarczak/http-timer": "^5.0.1",
+        "cacheable-lookup": "^7.0.0",
+        "cacheable-request": "^10.2.8",
+        "decompress-response": "^6.0.0",
+        "form-data-encoder": "^2.1.2",
+        "get-stream": "^6.0.1",
+        "http2-wrapper": "^2.1.10",
+        "lowercase-keys": "^3.0.0",
+        "p-cancelable": "^3.0.0",
+        "responselike": "^3.0.0"
       },
       "engines": {
-        "node": ">=8.6"
+        "node": ">=14.16"
+      },
+      "funding": {
+        "url": "https://github.com/sindresorhus/got?sponsor=1"
       }
     },
-    "node_modules/package-json/node_modules/got/node_modules/lowercase-keys": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
-      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+    "node_modules/package-json/node_modules/http2-wrapper": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz",
+      "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==",
+      "dependencies": {
+        "quick-lru": "^5.1.1",
+        "resolve-alpn": "^1.2.0"
+      },
       "engines": {
-        "node": ">=0.10.0"
+        "node": ">=10.19.0"
       }
     },
-    "node_modules/package-json/node_modules/json-buffer": {
+    "node_modules/package-json/node_modules/lowercase-keys": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
-      "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ=="
+      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+      "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
     },
-    "node_modules/package-json/node_modules/keyv": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
-      "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+    "node_modules/package-json/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
       "dependencies": {
-        "json-buffer": "3.0.0"
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/package-json/node_modules/mimic-response": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
+      "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/package-json/node_modules/normalize-url": {
-      "version": "4.5.1",
-      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
-      "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
+      "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
       "engines": {
-        "node": ">=8"
+        "node": ">=14.16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/package-json/node_modules/p-cancelable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
-      "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+      "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
       "engines": {
-        "node": ">=6"
+        "node": ">=12.20"
       }
     },
     "node_modules/package-json/node_modules/responselike": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
-      "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
+      "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
       "dependencies": {
-        "lowercase-keys": "^1.0.0"
+        "lowercase-keys": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=14.16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/package-json/node_modules/responselike/node_modules/lowercase-keys": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
-      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+    "node_modules/package-json/node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
       "engines": {
-        "node": ">=0.10.0"
+        "node": ">=10"
       }
     },
+    "node_modules/package-json/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+    },
     "node_modules/param-case": {
       "version": "3.0.4",
       "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
@@ -18733,6 +19167,31 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/path-scurry": {
+      "version": "1.10.1",
+      "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
+      "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^9.1.1 || ^10.0.0",
+        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/path-scurry/node_modules/lru-cache": {
+      "version": "10.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz",
+      "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==",
+      "dev": true,
+      "engines": {
+        "node": "14 || >=16.14"
+      }
+    },
     "node_modules/path-to-regexp": {
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
@@ -18793,7 +19252,6 @@
       "version": "4.0.1",
       "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
       "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
-      "dev": true,
       "engines": {
         "node": ">=6"
       }
@@ -19510,7 +19968,6 @@
       "version": "10.12.1",
       "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz",
       "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==",
-      "peer": true,
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/preact"
@@ -19557,14 +20014,6 @@
         "node": ">= 0.8.0"
       }
     },
-    "node_modules/prepend-http": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
-      "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
     "node_modules/preserve": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
@@ -19595,11 +20044,23 @@
       }
     },
     "node_modules/prism-react-renderer": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz",
-      "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==",
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.0.6.tgz",
+      "integrity": "sha512-ERzmAI5UvrcTw5ivfEG20/dYClAsC84eSED5p9X3oKpm0xPV4A5clFK1mp7lPIdKmbLnQYsPTGiOI7WS6gWigw==",
+      "dependencies": {
+        "@types/prismjs": "^1.26.0",
+        "clsx": "^1.2.1"
+      },
       "peerDependencies": {
-        "react": ">=0.14.9"
+        "react": ">=16.0.0"
+      }
+    },
+    "node_modules/prism-react-renderer/node_modules/clsx": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+      "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+      "engines": {
+        "node": ">=6"
       }
     },
     "node_modules/probe-image-size": {
@@ -19690,6 +20151,11 @@
         "url": "https://github.com/sponsors/wooorm"
       }
     },
+    "node_modules/proto-list": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+      "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA=="
+    },
     "node_modules/protocols": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz",
@@ -19734,17 +20200,6 @@
         "node": ">=6"
       }
     },
-    "node_modules/pupa": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
-      "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
-      "dependencies": {
-        "escape-goat": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/puppeteer": {
       "version": "3.3.0",
       "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-3.3.0.tgz",
@@ -19767,6 +20222,20 @@
         "node": ">=10.18.1"
       }
     },
+    "node_modules/puppeteer/node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
     "node_modules/qs": {
       "version": "6.11.0",
       "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
@@ -19817,6 +20286,11 @@
         }
       ]
     },
+    "node_modules/queue-tick": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+      "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
+    },
     "node_modules/quick-lru": {
       "version": "5.1.1",
       "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
@@ -19939,12 +20413,11 @@
       }
     },
     "node_modules/react": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
-      "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+      "version": "18.2.0",
+      "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+      "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
       "dependencies": {
-        "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1"
+        "loose-envify": "^1.1.0"
       },
       "engines": {
         "node": ">=0.10.0"
@@ -20141,16 +20614,15 @@
       }
     },
     "node_modules/react-dom": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
-      "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+      "version": "18.2.0",
+      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
+      "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
       "dependencies": {
         "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1",
-        "scheduler": "^0.20.2"
+        "scheduler": "^0.23.0"
       },
       "peerDependencies": {
-        "react": "17.0.2"
+        "react": "^18.2.0"
       }
     },
     "node_modules/react-error-overlay": {
@@ -20176,9 +20648,9 @@
       }
     },
     "node_modules/react-intersection-observer": {
-      "version": "9.5.1",
-      "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.5.1.tgz",
-      "integrity": "sha512-YwcNF/4WsMAG1rLVDQHSbpdEW9vDaIl4QW88d+vqeXNUewFV4AJDQB14oHpAJ3rRCnKRmwu3nqfwwYe6wioNIg==",
+      "version": "9.5.2",
+      "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.5.2.tgz",
+      "integrity": "sha512-EmoV66/yvksJcGa1rdW0nDNc4I1RifDWkT50gXSFnPLYQ4xUptuDD4V7k+Rj1OgVAlww628KLGcxPXFlOkkU/Q==",
       "peerDependencies": {
         "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
       }
@@ -20186,8 +20658,7 @@
     "node_modules/react-is": {
       "version": "18.2.0",
       "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
-      "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
-      "peer": true
+      "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
     },
     "node_modules/react-lifecycles-compat": {
       "version": "3.0.4",
@@ -20265,9 +20736,9 @@
       }
     },
     "node_modules/react-select": {
-      "version": "5.7.3",
-      "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.3.tgz",
-      "integrity": "sha512-z8i3NCuFFWL3w27xq92rBkVI2onT0jzIIPe480HlBjXJ3b5o6Q+Clp4ydyeKrj9DZZ3lrjawwLC5NGl0FSvUDg==",
+      "version": "5.7.4",
+      "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.4.tgz",
+      "integrity": "sha512-NhuE56X+p9QDFh4BgeygHFIvJJszO1i1KSkg/JPcIJrbovyRtI+GuOEa4XzFCEpZRAEoEI8u/cAHK+jG/PgUzQ==",
       "dependencies": {
         "@babel/runtime": "^7.12.0",
         "@emotion/cache": "^11.4.0",
@@ -20342,39 +20813,28 @@
       }
     },
     "node_modules/react-tabs": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-4.3.0.tgz",
-      "integrity": "sha512-2GfoG+f41kiBIIyd3gF+/GRCCYtamC8/2zlAcD8cqQmqI9Q+YVz7fJLHMmU9pXDVYYHpJeCgUSBJju85vu5q8Q==",
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-6.0.2.tgz",
+      "integrity": "sha512-aQXTKolnM28k3KguGDBSAbJvcowOQr23A+CUJdzJtOSDOtTwzEaJA+1U4KwhNL9+Obe+jFS7geuvA7ICQPXOnQ==",
       "dependencies": {
-        "clsx": "^1.1.0",
+        "clsx": "^2.0.0",
         "prop-types": "^15.5.0"
       },
       "peerDependencies": {
-        "react": "^16.8.0 || ^17.0.0-0 || ^18.0.0"
+        "react": "^18.0.0"
       }
     },
     "node_modules/react-tooltip": {
-      "version": "4.5.1",
-      "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.5.1.tgz",
-      "integrity": "sha512-Zo+CSFUGXar1uV+bgXFFDe7VeS2iByeIp5rTgTcc2HqtuOS5D76QapejNNfx320MCY91TlhTQat36KGFTqgcvw==",
+      "version": "5.18.1",
+      "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.18.1.tgz",
+      "integrity": "sha512-5zUKoMoKHTYxobzhR160+kkHdLtB+yYO8p16aQRoz2jGcOdtV0o1enNynoA4YqQb3xTjl84N8KLNoscmgMNuSg==",
       "dependencies": {
-        "prop-types": "^15.8.1",
-        "uuid": "^7.0.3"
-      },
-      "engines": {
-        "npm": ">=6.13"
+        "@floating-ui/dom": "^1.0.0",
+        "classnames": "^2.3.0"
       },
       "peerDependencies": {
-        "react": ">=16.0.0",
-        "react-dom": ">=16.0.0"
-      }
-    },
-    "node_modules/react-tooltip/node_modules/uuid": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
-      "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
-      "bin": {
-        "uuid": "dist/bin/uuid"
+        "react": ">=16.14.0",
+        "react-dom": ">=16.14.0"
       }
     },
     "node_modules/react-transition-group": {
@@ -20393,9 +20853,9 @@
       }
     },
     "node_modules/react-tsparticles": {
-      "version": "2.10.1",
-      "resolved": "https://registry.npmjs.org/react-tsparticles/-/react-tsparticles-2.10.1.tgz",
-      "integrity": "sha512-l/xzw9ZOV9M0WJTsZh6AE0SQ9gqZCeGpLsKdm5rr6qWk1DEOd/szbQca3DQENTjQNXXwqZZjKuoAOomnLlRvuA==",
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/react-tsparticles/-/react-tsparticles-2.11.0.tgz",
+      "integrity": "sha512-wIb3Ua4Yw5nhziPHVrMUEC+T4s0Hp1bM9zjX2oCmZvzATjOrc+yA/Ie8+9m7HUbLGXewusGrLhLfWHEO1/NNsQ==",
       "funding": [
         {
           "type": "github",
@@ -20413,7 +20873,7 @@
       "hasInstallScript": true,
       "dependencies": {
         "deep-eql": "^4.1.3",
-        "tsparticles-engine": "^2.10.1"
+        "tsparticles-engine": "^2.11.0"
       },
       "peerDependencies": {
         "react": ">=16"
@@ -20696,9 +21156,9 @@
       }
     },
     "node_modules/redux": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz",
-      "integrity": "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==",
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
+      "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
       "dependencies": {
         "@babel/runtime": "^7.9.2"
       }
@@ -20834,25 +21294,28 @@
       }
     },
     "node_modules/registry-auth-token": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz",
-      "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==",
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz",
+      "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==",
       "dependencies": {
-        "rc": "1.2.8"
+        "@pnpm/npm-conf": "^2.1.0"
       },
       "engines": {
-        "node": ">=6.0.0"
+        "node": ">=14"
       }
     },
     "node_modules/registry-url": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
-      "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz",
+      "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==",
       "dependencies": {
-        "rc": "^1.2.8"
+        "rc": "1.2.8"
       },
       "engines": {
-        "node": ">=8"
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/regjsparser": {
@@ -21399,14 +21862,64 @@
       }
     },
     "node_modules/rimraf": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz",
+      "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==",
+      "dev": true,
       "dependencies": {
-        "glob": "^7.1.3"
+        "glob": "^10.2.5"
       },
       "bin": {
-        "rimraf": "bin.js"
+        "rimraf": "dist/cjs/src/bin.js"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/rimraf/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/rimraf/node_modules/glob": {
+      "version": "10.3.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz",
+      "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==",
+      "dev": true,
+      "dependencies": {
+        "foreground-child": "^3.1.0",
+        "jackspeak": "^2.0.3",
+        "minimatch": "^9.0.1",
+        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+        "path-scurry": "^1.10.1"
+      },
+      "bin": {
+        "glob": "dist/cjs/src/bin.js"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/rimraf/node_modules/minimatch": {
+      "version": "9.0.3",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+      "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
@@ -21583,12 +22096,11 @@
       "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
     },
     "node_modules/scheduler": {
-      "version": "0.20.2",
-      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
-      "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+      "version": "0.23.0",
+      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+      "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
       "dependencies": {
-        "loose-envify": "^1.1.0",
-        "object-assign": "^4.1.1"
+        "loose-envify": "^1.1.0"
       }
     },
     "node_modules/schema-utils": {
@@ -21640,24 +22152,13 @@
       }
     },
     "node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
     },
-    "node_modules/semver-diff": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
-      "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
-      "dependencies": {
-        "semver": "^6.3.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/send": {
       "version": "0.18.0",
       "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
@@ -21802,18 +22303,18 @@
       "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
     },
     "node_modules/sharp": {
-      "version": "0.31.3",
-      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz",
-      "integrity": "sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==",
+      "version": "0.32.4",
+      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.4.tgz",
+      "integrity": "sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==",
       "hasInstallScript": true,
       "dependencies": {
         "color": "^4.2.3",
-        "detect-libc": "^2.0.1",
-        "node-addon-api": "^5.0.0",
+        "detect-libc": "^2.0.2",
+        "node-addon-api": "^6.1.0",
         "prebuild-install": "^7.1.1",
-        "semver": "^7.3.8",
+        "semver": "^7.5.4",
         "simple-get": "^4.0.1",
-        "tar-fs": "^2.1.1",
+        "tar-fs": "^3.0.4",
         "tunnel-agent": "^0.6.0"
       },
       "engines": {
@@ -21824,9 +22325,9 @@
       }
     },
     "node_modules/sharp/node_modules/detect-libc": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
-      "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+      "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
       "engines": {
         "node": ">=8"
       }
@@ -21843,14 +22344,14 @@
       }
     },
     "node_modules/sharp/node_modules/node-addon-api": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
-      "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+      "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
     },
     "node_modules/sharp/node_modules/semver": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
       "dependencies": {
         "lru-cache": "^6.0.0"
       },
@@ -21861,6 +22362,26 @@
         "node": ">=10"
       }
     },
+    "node_modules/sharp/node_modules/tar-fs": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
+      "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
+      "dependencies": {
+        "mkdirp-classic": "^0.5.2",
+        "pump": "^3.0.0",
+        "tar-stream": "^3.1.5"
+      }
+    },
+    "node_modules/sharp/node_modules/tar-stream": {
+      "version": "3.1.6",
+      "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
+      "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
+      "dependencies": {
+        "b4a": "^1.6.4",
+        "fast-fifo": "^1.2.0",
+        "streamx": "^2.15.0"
+      }
+    },
     "node_modules/sharp/node_modules/yallist": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -22062,7 +22583,6 @@
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
       "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-      "dev": true,
       "engines": {
         "node": ">=6"
       }
@@ -22327,15 +22847,15 @@
       }
     },
     "node_modules/socket.io": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.4.tgz",
-      "integrity": "sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==",
+      "version": "4.6.1",
+      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz",
+      "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==",
       "dependencies": {
         "accepts": "~1.3.4",
         "base64id": "~2.0.0",
         "debug": "~4.3.2",
-        "engine.io": "~6.2.1",
-        "socket.io-adapter": "~2.4.0",
+        "engine.io": "~6.4.1",
+        "socket.io-adapter": "~2.5.2",
         "socket.io-parser": "~4.2.1"
       },
       "engines": {
@@ -22343,18 +22863,41 @@
       }
     },
     "node_modules/socket.io-adapter": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz",
-      "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
+      "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
+      "dependencies": {
+        "ws": "~8.11.0"
+      }
+    },
+    "node_modules/socket.io-adapter/node_modules/ws": {
+      "version": "8.11.0",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+      "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "peerDependencies": {
+        "bufferutil": "^4.0.1",
+        "utf-8-validate": "^5.0.2"
+      },
+      "peerDependenciesMeta": {
+        "bufferutil": {
+          "optional": true
+        },
+        "utf-8-validate": {
+          "optional": true
+        }
+      }
     },
     "node_modules/socket.io-client": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz",
-      "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==",
+      "version": "4.6.1",
+      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz",
+      "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==",
       "dependencies": {
         "@socket.io/component-emitter": "~3.1.0",
         "debug": "~4.3.2",
-        "engine.io-client": "~6.2.3",
+        "engine.io-client": "~6.4.0",
         "socket.io-parser": "~4.2.1"
       },
       "engines": {
@@ -22539,30 +23082,7 @@
     "node_modules/sprintf-js": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
-      "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
-    },
-    "node_modules/ssr-window": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz",
-      "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
-    },
-    "node_modules/st": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/st/-/st-2.0.0.tgz",
-      "integrity": "sha512-drN+aGYnrZPNYIymmNwIY7LXYJ8MqsqXj4fMRue3FOgGMdGjSX10fhJ3qx0sVQPhcWxhEaN4U/eWM4O4dbYNAw==",
-      "dependencies": {
-        "async-cache": "^1.1.0",
-        "bl": "^4.0.0",
-        "fd": "~0.0.2",
-        "mime": "^2.4.4",
-        "negotiator": "~0.6.2"
-      },
-      "bin": {
-        "st": "bin/server.js"
-      },
-      "optionalDependencies": {
-        "graceful-fs": "^4.2.3"
-      }
+      "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
     },
     "node_modules/stable": {
       "version": "0.1.8",
@@ -22800,6 +23320,15 @@
         "node": ">=10.0.0"
       }
     },
+    "node_modules/streamx": {
+      "version": "2.15.0",
+      "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz",
+      "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==",
+      "dependencies": {
+        "fast-fifo": "^1.1.0",
+        "queue-tick": "^1.0.1"
+      }
+    },
     "node_modules/strict-uri-encode": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
@@ -22857,6 +23386,27 @@
         "node": ">=8"
       }
     },
+    "node_modules/string-width-cjs": {
+      "name": "string-width",
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/string-width-cjs/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true
+    },
     "node_modules/string-width/node_modules/emoji-regex": {
       "version": "8.0.0",
       "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -22944,6 +23494,19 @@
         "node": ">=8"
       }
     },
+    "node_modules/strip-ansi-cjs": {
+      "name": "strip-ansi",
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
     "node_modules/strip-bom": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -23062,32 +23625,46 @@
       }
     },
     "node_modules/styled-components": {
-      "version": "5.3.11",
-      "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz",
-      "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==",
-      "dependencies": {
-        "@babel/helper-module-imports": "^7.0.0",
-        "@babel/traverse": "^7.4.5",
-        "@emotion/is-prop-valid": "^1.1.0",
-        "@emotion/stylis": "^0.8.4",
-        "@emotion/unitless": "^0.7.4",
-        "babel-plugin-styled-components": ">= 1.12.0",
-        "css-to-react-native": "^3.0.0",
-        "hoist-non-react-statics": "^3.0.0",
+      "version": "6.0.5",
+      "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.0.5.tgz",
+      "integrity": "sha512-308zi5o7LrA9cVaP4nPD0TaUpOjGPePkAUFb/OGB0xRI3I9ozpW5UyASvRVi9wJcYASG+Y3mLDLDUZC7nqzimw==",
+      "dependencies": {
+        "@babel/cli": "^7.21.0",
+        "@babel/core": "^7.21.0",
+        "@babel/helper-module-imports": "^7.18.6",
+        "@babel/plugin-external-helpers": "^7.18.6",
+        "@babel/plugin-proposal-class-properties": "^7.18.6",
+        "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
+        "@babel/preset-env": "^7.20.2",
+        "@babel/preset-react": "^7.18.6",
+        "@babel/preset-typescript": "^7.21.0",
+        "@babel/traverse": "^7.21.2",
+        "@emotion/is-prop-valid": "^1.2.1",
+        "@emotion/unitless": "^0.8.0",
+        "@types/stylis": "^4.0.2",
+        "css-to-react-native": "^3.2.0",
+        "csstype": "^3.1.2",
+        "postcss": "^8.4.23",
         "shallowequal": "^1.1.0",
-        "supports-color": "^5.5.0"
+        "stylis": "^4.3.0",
+        "tslib": "^2.5.0"
       },
       "engines": {
-        "node": ">=10"
+        "node": ">= 16"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/styled-components"
       },
       "peerDependencies": {
+        "babel-plugin-styled-components": ">= 2",
         "react": ">= 16.8.0",
-        "react-dom": ">= 16.8.0",
-        "react-is": ">= 16.8.0"
+        "react-dom": ">= 16.8.0"
+      },
+      "peerDependenciesMeta": {
+        "babel-plugin-styled-components": {
+          "optional": true
+        }
       }
     },
     "node_modules/styled-components/node_modules/@emotion/is-prop-valid": {
@@ -23098,10 +23675,10 @@
         "@emotion/memoize": "^0.8.1"
       }
     },
-    "node_modules/styled-components/node_modules/@emotion/unitless": {
-      "version": "0.7.5",
-      "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
-      "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
+    "node_modules/styled-components/node_modules/stylis": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz",
+      "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ=="
     },
     "node_modules/stylehacks": {
       "version": "5.1.1",
@@ -23206,9 +23783,9 @@
       }
     },
     "node_modules/swiper": {
-      "version": "9.4.1",
-      "resolved": "https://registry.npmjs.org/swiper/-/swiper-9.4.1.tgz",
-      "integrity": "sha512-1nT2T8EzUpZ0FagEqaN/YAhRj33F2x/lN6cyB0/xoYJDMf8KwTFT3hMOeoB8Tg4o3+P/CKqskP+WX0Df046fqA==",
+      "version": "10.0.4",
+      "resolved": "https://registry.npmjs.org/swiper/-/swiper-10.0.4.tgz",
+      "integrity": "sha512-DlNR3KiaVkPep6RraZ2tNr7lvyuzELuR+4NZr4wO42t0UworIO3DxDlz8b5Q3uUioh7cJad99EdRJLkPF+r8Ag==",
       "funding": [
         {
           "type": "patreon",
@@ -23219,9 +23796,6 @@
           "url": "http://opencollective.com/swiper"
         }
       ],
-      "dependencies": {
-        "ssr-window": "^4.0.2"
-      },
       "engines": {
         "node": ">= 4.7.0"
       }
@@ -23308,17 +23882,6 @@
         "node": ">= 6"
       }
     },
-    "node_modules/term-size": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
-      "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/terser": {
       "version": "5.18.1",
       "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.1.tgz",
@@ -23468,6 +24031,20 @@
         "node": ">=8.17.0"
       }
     },
+    "node_modules/tmp/node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
     "node_modules/to-fast-properties": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -23506,14 +24083,6 @@
         "node": ">=0.10.0"
       }
     },
-    "node_modules/to-readable-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
-      "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
     "node_modules/to-regex": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
@@ -23689,9 +24258,9 @@
       "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w=="
     },
     "node_modules/tsparticles-engine": {
-      "version": "2.10.1",
-      "resolved": "https://registry.npmjs.org/tsparticles-engine/-/tsparticles-engine-2.10.1.tgz",
-      "integrity": "sha512-DV2gYsbChyiXYIZYgnXtKHSAZdvnNMJpVf9Cw0gO7vjQ6pcgLAeyboRtvsaTfwKZNzzA7BeSf1lVhgGxorL4CQ==",
+      "version": "2.11.1",
+      "resolved": "https://registry.npmjs.org/tsparticles-engine/-/tsparticles-engine-2.11.1.tgz",
+      "integrity": "sha512-tkoCi2SWIVcOkxni6I+ECRz3xfSX2dP/Wn+Kt8Qga/BGWlSrdvLVUn3DbXNJq6h/6efs6n4Db6uFtkceSyRWGg==",
       "funding": [
         {
           "type": "github",
@@ -23816,19 +24385,6 @@
         "is-typedarray": "^1.0.0"
       }
     },
-    "node_modules/typescript": {
-      "version": "5.1.3",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
-      "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
-      "peer": true,
-      "bin": {
-        "tsc": "bin/tsc",
-        "tsserver": "bin/tsserver"
-      },
-      "engines": {
-        "node": ">=14.17"
-      }
-    },
     "node_modules/ua-parser-js": {
       "version": "1.0.35",
       "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz",
@@ -24234,127 +24790,6 @@
         "browserslist": ">= 4.21.0"
       }
     },
-    "node_modules/update-notifier": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
-      "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
-      "dependencies": {
-        "boxen": "^5.0.0",
-        "chalk": "^4.1.0",
-        "configstore": "^5.0.1",
-        "has-yarn": "^2.1.0",
-        "import-lazy": "^2.1.0",
-        "is-ci": "^2.0.0",
-        "is-installed-globally": "^0.4.0",
-        "is-npm": "^5.0.0",
-        "is-yarn-global": "^0.3.0",
-        "latest-version": "^5.1.0",
-        "pupa": "^2.1.1",
-        "semver": "^7.3.4",
-        "semver-diff": "^3.1.1",
-        "xdg-basedir": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/yeoman/update-notifier?sponsor=1"
-      }
-    },
-    "node_modules/update-notifier/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-      }
-    },
-    "node_modules/update-notifier/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/chalk?sponsor=1"
-      }
-    },
-    "node_modules/update-notifier/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/update-notifier/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-    },
-    "node_modules/update-notifier/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/update-notifier/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/update-notifier/node_modules/semver": {
-      "version": "7.5.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
-      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/update-notifier/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/update-notifier/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-    },
     "node_modules/upper-case": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz",
@@ -24421,17 +24856,6 @@
         }
       }
     },
-    "node_modules/url-parse-lax": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
-      "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
-      "dependencies": {
-        "prepend-http": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
     "node_modules/url/node_modules/punycode": {
       "version": "1.4.1",
       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@@ -24881,20 +25305,9 @@
       "integrity": "sha512-yUKYyy+e0iF/w31QdfioRKY+h3jDBRpthexBOWGKda99iu2l/wxYsI/XqdlP5IU58/0KB9CsJZgWNAl+/MPkRw=="
     },
     "node_modules/webpack-virtual-modules": {
-      "version": "0.3.2",
-      "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.3.2.tgz",
-      "integrity": "sha512-RXQXioY6MhzM4CNQwmBwKXYgBs6ulaiQ8bkNQEl2J6Z+V+s7lgl/wGvaI/I0dLnYKB8cKsxQc17QOAVIphPLDw==",
-      "dependencies": {
-        "debug": "^3.0.0"
-      }
-    },
-    "node_modules/webpack-virtual-modules/node_modules/debug": {
-      "version": "3.2.7",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-      "dependencies": {
-        "ms": "^2.1.1"
-      }
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
+      "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw=="
     },
     "node_modules/webpack/node_modules/webpack-sources": {
       "version": "3.2.3",
@@ -24987,18 +25400,28 @@
       "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
       "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ=="
     },
-    "node_modules/word-wrap": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+    "node_modules/wrap-ansi": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
       "engines": {
-        "node": ">=0.10.0"
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
       }
     },
-    "node_modules/wrap-ansi": {
+    "node_modules/wrap-ansi-cjs": {
+      "name": "wrap-ansi",
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
       "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
       "dependencies": {
         "ansi-styles": "^4.0.0",
         "string-width": "^4.1.0",
@@ -25011,6 +25434,39 @@
         "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
       }
     },
+    "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true
+    },
     "node_modules/wrap-ansi/node_modules/ansi-styles": {
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -25103,30 +25559,10 @@
         "node": ">=0.4.0"
       }
     },
-    "node_modules/xss": {
-      "version": "1.0.14",
-      "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz",
-      "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==",
-      "dependencies": {
-        "commander": "^2.20.3",
-        "cssfilter": "0.0.10"
-      },
-      "bin": {
-        "xss": "bin/xss"
-      },
-      "engines": {
-        "node": ">= 0.10.0"
-      }
-    },
-    "node_modules/xss/node_modules/commander": {
-      "version": "2.20.3",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
-      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
-    },
     "node_modules/xstate": {
-      "version": "4.32.1",
-      "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.32.1.tgz",
-      "integrity": "sha512-QYUd+3GkXZ8i6qdixnOn28bL3EvA++LONYL/EMWwKlFSh/hiLndJ8YTnz77FDs+JUXcwU7NZJg7qoezoRHc4GQ==",
+      "version": "4.38.1",
+      "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.38.1.tgz",
+      "integrity": "sha512-1gBUcFWBj/rv/pRcP2Bedl5sNRGX2d36CaOx9z7fE9uSiHaOEHIWzLg1B853q2xdUHUA9pEiWKjLZ3can4SJaQ==",
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/xstate"
diff --git a/package.json b/package.json
index 14b948022b9d..a2859fb76c24 100644
--- a/package.json
+++ b/package.json
@@ -25,10 +25,11 @@
     "prepare": "husky install"
   },
   "dependencies": {
-    "@fullcalendar/daygrid": "^5.11.3",
+    "@fullcalendar/core": "^6.1.8",
+    "@fullcalendar/daygrid": "^6.1.8",
     "@fullcalendar/google-calendar": "^6.0.2",
     "@fullcalendar/interaction": "^6.0.1",
-    "@fullcalendar/react": "^5.11.2",
+    "@fullcalendar/react": "^6.1.8",
     "@loadable/component": "^5.15.3",
     "@mdx-js/mdx": "^1.6.22",
     "@mdx-js/react": "^1.6.22",
@@ -36,83 +37,84 @@
     "@sideway/address": "^5.0.0",
     "@svgr/webpack": "^8.0.1",
     "axios": "^1.4.0",
-    "babel-plugin-styled-components": "^2.0.7",
-    "babel-preset-gatsby": "^2.22.0",
+    "babel-plugin-styled-components": "^2.1.4",
+    "babel-preset-gatsby": "^3.11.0",
     "cytoscape": "^3.23.0",
     "cytoscape-cose-bilkent": "^4.1.0",
     "cytoscape-fcose": "^2.2.0",
-    "dedent": "^0.7.0",
+    "dedent": "^1.2.0",
     "deepmerge": "^4.3.0",
     "formik": "^2.2.9",
-    "gatsby": "^4.20.0",
+    "gatsby": "^5.11.0",
     "gatsby-awesome-pagination": "^0.3.8",
     "gatsby-background-image": "^1.6.0",
     "gatsby-cli": "^5.5.0",
     "gatsby-plugin-anchor-links": "^1.2.1",
-    "gatsby-plugin-feed": "^4.25.0",
-    "gatsby-plugin-image": "^2.22.0",
+    "gatsby-plugin-feed": "^5.11.0",
+    "gatsby-plugin-image": "^3.11.0",
     "gatsby-plugin-loadable-components-ssr": "^4.3.2",
-    "gatsby-plugin-manifest": "^4.25.0",
+    "gatsby-plugin-manifest": "^5.11.0",
     "gatsby-plugin-mdx": "^3.20.0",
     "gatsby-plugin-meta-redirect": "github:layer5labs/gatsby-plugin-meta-redirect",
-    "gatsby-plugin-preload-fonts": "^3.24.0",
-    "gatsby-plugin-robots-txt": "1.7.1",
-    "gatsby-plugin-sharp": "^4.25.1",
-    "gatsby-plugin-sitemap": "^5.25.0",
-    "gatsby-plugin-styled-components": "^5.25.0",
+    "gatsby-plugin-preload-fonts": "^4.11.0",
+    "gatsby-plugin-robots-txt": "^1.8.0",
+    "gatsby-plugin-sharp": "^5.11.0",
+    "gatsby-plugin-sitemap": "^6.11.0",
+    "gatsby-plugin-styled-components": "^6.11.0",
     "gatsby-plugin-svgr": "^3.0.0-beta.0",
-    "gatsby-redirect-from": "^0.5.0",
-    "gatsby-source-filesystem": "^4.25.0",
-    "gatsby-transformer-sharp": "^4.25.0",
+    "gatsby-redirect-from": "^1.0.4",
+    "gatsby-source-filesystem": "^5.11.0",
+    "gatsby-transformer-sharp": "^5.11.0",
     "gbimage-bridge": "^0.2.2",
     "gsap": "^3.12.2",
     "joi": "^17.7.0",
     "js-search": "^2.0.0",
     "lodash": "^4.17.21",
-    "prism-react-renderer": "^1.3.5",
+    "prism-react-renderer": "^2.0.6",
     "prop-types": "^15.7.2",
-    "react": "^17.0.2",
+    "react": "^18.2.0",
     "react-accessible-accordion": "^5.0.0",
     "react-copy-to-clipboard": "^5.1.0",
     "react-countdown": "^2.3.5",
     "react-countup": "^6.1.1",
     "react-debounce-input": "^3.3.0",
-    "react-dom": "^17.0.2",
+    "react-dom": "^18.2.0",
     "react-honeycomb": "^0.1.3",
-    "react-intersection-observer": "^9.4.1",
+    "react-intersection-observer": "^9.5.2",
+    "react-is": "^18.2.0",
     "react-loadable": "^5.5.0",
     "react-modal": "^3.16.1",
     "react-player": "^2.12.0",
     "react-scroll": "^1.8.7",
-    "react-select": "^5.7.2",
+    "react-select": "^5.7.4",
     "react-share": "^4.4.1",
     "react-slick": "^0.29.0",
     "react-table": "^7.8.0",
-    "react-tabs": "^4.2.1",
-    "react-tooltip": "^4.5.1",
-    "react-tsparticles": "^2.1.4",
+    "react-tabs": "^6.0.2",
+    "react-tooltip": "^5.18.1",
+    "react-tsparticles": "^2.11.0",
     "react-vertical-timeline-component": "^3.5.2",
     "react-visibility-sensor": "^5.1.1",
-    "sharp": "^0.31.3",
+    "sharp": "^0.32.4",
     "simple-react-cytoscape": "^1.0.4",
     "simple-react-lightbox": "^3.6.8",
     "slick-carousel": "^1.8.1",
-    "styled-components": "^5.3.9",
-    "swiper": "^9.2.0"
+    "styled-components": "^6.0.5",
+    "swiper": "^10.0.4"
   },
   "devDependencies": {
-    "@babel/cli": "^7.18.10",
-    "@babel/core": "^7.18.6",
-    "@babel/eslint-parser": "^7.21.3",
+    "@babel/cli": "^7.22.9",
+    "@babel/core": "^7.22.9",
+    "@babel/eslint-parser": "^7.22.9",
     "babel-plugin-module-resolver": "^5.0.0",
     "cpx": "^1.5.0",
     "cross-env": "^7.0.0",
     "env-cmd": "^10.1.0",
-    "eslint": "^8.28.0",
+    "eslint": "^8.45.0",
     "gatsby-plugin-webpack-bundle-analyser-v2": "^1.1.30",
-    "gh-pages": "^4.0.0",
+    "gh-pages": "^5.0.0",
     "husky": "^8.0.3",
-    "rimraf": "^3.0.2",
+    "rimraf": "^5.0.1",
     "webpack-cli": "^5.0.2"
   }
 }

From 33a0c89cfa52e6f5187dad9ec36c66eaec417d39 Mon Sep 17 00:00:00 2001
From: Randy Lau 
Date: Wed, 26 Jul 2023 12:07:02 -0700
Subject: [PATCH 09/41] fix: npm install --legacy-peer-deps

Signed-off-by: Randy Lau 
---
 .github/workflows/build-and-deploy-site.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/build-and-deploy-site.yml b/.github/workflows/build-and-deploy-site.yml
index 6f0485507ea0..727f240826be 100644
--- a/.github/workflows/build-and-deploy-site.yml
+++ b/.github/workflows/build-and-deploy-site.yml
@@ -1,7 +1,7 @@
 name: Build and Deploy Site
 on:
   push:
-    branches: [ master ]
+    branches: [master]
 
 jobs:
   build-and-deploy:
@@ -12,9 +12,9 @@ jobs:
         with:
           fetch-depth: 1
 
-      - name: Install and Build 🔧 
+      - name: Install and Build 🔧
         run: |
-          npm install
+          npm install --legacy-peer-deps
           npm run build
 
       - name: Deploy 🚀

From 4dead3d2f2348eca1699c2ebbbaa5641ddb5ba8e Mon Sep 17 00:00:00 2001
From: Randy Lau 
Date: Wed, 26 Jul 2023 14:08:44 -0700
Subject: [PATCH 10/41] fix: mdx eslint fix

Signed-off-by: Randy Lau 
---
 .../blog/2022/2022-05-10-dockercon-22-hashicorp-talk/index.mdx | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/collections/blog/2022/2022-05-10-dockercon-22-hashicorp-talk/index.mdx b/src/collections/blog/2022/2022-05-10-dockercon-22-hashicorp-talk/index.mdx
index 2b563a70d986..a19d69f675bf 100644
--- a/src/collections/blog/2022/2022-05-10-dockercon-22-hashicorp-talk/index.mdx
+++ b/src/collections/blog/2022/2022-05-10-dockercon-22-hashicorp-talk/index.mdx
@@ -115,7 +115,8 @@ MeshMap is the world's only visual designer for Kubernetes and all cloud native
 
 
-

Lee Calcote and Nic Jackson packed a great deal of information in this talk. Find the recording below. The Meshery Extension is now out! Try now, and Share your Experience +

+Lee Calcote and Nic Jackson packed a great deal of information in this talk. Find the recording below. The Meshery Extension is now out! Try now, and Share your Experience Apply for MeshMap Beta Program

From 62b8395cb257119979a8b49545df4c74e63253fe Mon Sep 17 00:00:00 2001 From: Randy Lau Date: Wed, 26 Jul 2023 14:09:30 -0700 Subject: [PATCH 11/41] fix: prevent undefined language variable Signed-off-by: Randy Lau --- src/components/CodeBlock/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/CodeBlock/index.js b/src/components/CodeBlock/index.js index 790a04c62e64..fee7b65f4a84 100644 --- a/src/components/CodeBlock/index.js +++ b/src/components/CodeBlock/index.js @@ -41,7 +41,7 @@ const CopyCode = styled.button` } `; -const Code = ({ codeString, language }) => { +const Code = ({ codeString, language = "jsx" }) => { const [copyText, setCopyText] = useState("Copy"); const handleClick = () => { copyToClipboard(codeString); From a827e5858221a47c2e5e0b3e6fcbacee1f8ad320 Mon Sep 17 00:00:00 2001 From: Randy Lau Date: Thu, 27 Jul 2023 13:50:36 -0700 Subject: [PATCH 12/41] fix: replace loadable with react 18 lazy load Signed-off-by: Randy Lau --- src/components/loading.js | 5 + src/pages/blog/index.js | 14 +- .../meshery/getting-started.js | 24 +-- .../meshery/operating-service-meshes.js | 143 +++++++++--------- src/pages/community/calendar.js | 85 ++++++----- src/pages/index.js | 38 +++-- .../Community/Adventures-of-Five/index.js | 10 +- src/sections/Company/Brand/index.js | 86 +++++++---- .../Meshery/Meshery-integrations/index.js | 14 +- 9 files changed, 242 insertions(+), 177 deletions(-) create mode 100644 src/components/loading.js diff --git a/src/components/loading.js b/src/components/loading.js new file mode 100644 index 000000000000..03790823e8cb --- /dev/null +++ b/src/components/loading.js @@ -0,0 +1,5 @@ +import React from "react"; + +export default function Loading() { + return

🌀 Loading...

; +} \ No newline at end of file diff --git a/src/pages/blog/index.js b/src/pages/blog/index.js index 5d8a5f658692..46e8830b19e7 100644 --- a/src/pages/blog/index.js +++ b/src/pages/blog/index.js @@ -1,10 +1,10 @@ -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect, Suspense } from "react"; import useDataList from "../../utils/usedataList"; import SEO from "../../components/seo"; import BlogGrid from "../../sections/Blog/Blog-grid"; import { graphql } from "gatsby"; -import loadable from "@loadable/component"; -const BlogList = loadable(() => import ("../../sections/Blog/Blog-list")); +import Loading from "../../components/loading"; +const BlogList = React.lazy(() => import ("../../sections/Blog/Blog-list")); export const query = graphql`query allBlogs { allMdx( @@ -67,7 +67,13 @@ const Blog = (props) => { } }, []); let BlogView = (props) => { - if (isListView) return ; + if (isListView) { + return ( + }> + + + ); + } return ; }; return ( diff --git a/src/pages/cloud-native-management/meshery/getting-started.js b/src/pages/cloud-native-management/meshery/getting-started.js index f7c2e329a0dd..6a55ab9224fc 100644 --- a/src/pages/cloud-native-management/meshery/getting-started.js +++ b/src/pages/cloud-native-management/meshery/getting-started.js @@ -1,18 +1,24 @@ -import React from "react"; - +import React, { Suspense } from "react"; +import Loading from "../../../components/loading"; import SEO from "../../../components/seo"; import MesheryTerminal from "../../../sections/Meshery/Meshery-terminal"; -import loadable from "@loadable/component"; -const MesheryPlatforms = loadable(() => import ("../../../sections/Meshery/Meshery-platforms")); -const MesheryManageMesh = loadable(() => import ("../../../sections/Meshery/Meshery-mange-mesh")); -const MesheryQuotes = loadable(() => import ("../../../sections/Meshery/Meshery-quotes")); +const MesheryPlatforms = React.lazy(() => import ("../../../sections/Meshery/Meshery-platforms")); +const MesheryManageMesh = React.lazy(() => import ("../../../sections/Meshery/Meshery-mange-mesh")); +const MesheryQuotes = React.lazy(() => import ("../../../sections/Meshery/Meshery-quotes")); + const MesheryMainPage = () => { return ( <> - - - + }> + + + }> + + + }> + + ); diff --git a/src/pages/cloud-native-management/meshery/operating-service-meshes.js b/src/pages/cloud-native-management/meshery/operating-service-meshes.js index a96b551959cd..413641d40c6b 100644 --- a/src/pages/cloud-native-management/meshery/operating-service-meshes.js +++ b/src/pages/cloud-native-management/meshery/operating-service-meshes.js @@ -1,4 +1,4 @@ -import React from "react"; +import React, { Suspense } from "react"; import SEO from "../../../components/seo"; import HowMesheryWorksHero from "../../../sections/Meshery/How-meshery-works/hero"; @@ -11,100 +11,105 @@ import Smi from "../../../assets/images/app/projects/smi.svg"; import WebA from "../../../sections/Meshery/How-meshery-works/images/webassembly_logo.svg"; import SMP from "../../../sections/Meshery/How-meshery-works/images/smp-dark-text.webp"; import { ReactComponent as GithubLogo } from "../../../assets/images/socialIcons/github_colorMode.svg"; -import loadable from "@loadable/component"; -const HowMesheryWorks = loadable(() => import ("../../../sections/Meshery/How-meshery-works")); -const HowMesheryWorksSpecs = loadable(() => import ("../../../sections/Meshery/How-meshery-works/specs")); +import Loading from "../../../components/loading"; + +const HowMesheryWorks = React.lazy(() => import ("../../../sections/Meshery/How-meshery-works")); +const HowMesheryWorksSpecs = React.lazy(() => import ("../../../sections/Meshery/How-meshery-works/specs")); const OperatingServiceMeshes = () => { return ( <> - , - description:

GitOps is a way to define workflows for declarative configuration using Git. Meshery greatly simplifies configuring and managing cloud native infrastructure at-scale across multiple clusters with a git-integrated experience.

- }, - { - title: "Supporting Service Mesh Interface", - icon: SMILogo, - description: + }> + , + description:

GitOps is a way to define workflows for declarative configuration using Git. Meshery greatly simplifies configuring and managing cloud native infrastructure at-scale across multiple clusters with a git-integrated experience.

+ }, + { + title: "Supporting Service Mesh Interface", + icon: SMILogo, + description:

Every Meshery Adapter provides a common substrate of support for every service mesh, offering a standard set of management features across all service meshes.

, - }, - { - title: "Each service mesh adapter is unique", - icon: MesheryLogo, - description: + }, + { + title: "Each service mesh adapter is unique", + icon: MesheryLogo, + description:

Adapters allow Meshery to interface with the different service meshes, exposing their differentiated value to users.Care is taken in each Meshery Adapter to expose the unique value of each service mesh.

Consequently, each Meshery Adapter is not equally capable just as each service mesh is not equally capable as another service mesh.

, - }, - { - title: "MeshMap", - icon: VisualTopology, - description: + }, + { + title: "MeshMap", + icon: VisualTopology, + description:

MeshMap enables all cloud native management operations from `mesheryctl` to Meshery's web-based user interface in visually interactive topology.

Designing and configuring your service mesh is as easy as dragging and dropping.

Learn more about MeshMap

, - }, - { - title: "Extension Points", - icon: MesheryLogo, - description:
-

Meshery is not just an application. It is a set of microservices where the central component is itself called Meshery. Integrators may extend Meshery by taking advantage of designated Extension Points. Extension points come in various forms and are available through Mesherys architecture.

-

Learn more about Extension Points

-
- }, - { - title: "Meshery Operator with MeshSync", - icon: MesheryOperatorLogo, - description: + }, + { + title: "Extension Points", + icon: MesheryLogo, + description:
+

Meshery is not just an application. It is a set of microservices where the central component is itself called Meshery. Integrators may extend Meshery by taking advantage of designated Extension Points. Extension points come in various forms and are available through Mesherys architecture.

+

Learn more about Extension Points

+
+ }, + { + title: "Meshery Operator with MeshSync", + icon: MesheryOperatorLogo, + description:

MeshSync's ease of use is simple, but tiered, discovery pipelines are powerful and independently scale across multiple Kubernetes clusters.

, - }, - { - title: "Managing multiple instances of the same type of service mesh", - icon: MesheryLogo, - description: + }, + { + title: "Managing multiple instances of the same type of service mesh", + icon: MesheryLogo, + description:

Adapters establish communication with Kubernetes and a specific type of service mesh. Multiple adapters of the same type may be deployed concurrently. Although, this isn’t strictly necessary for Meshery to communicate to more than one instance of the same type of service mesh. See the Using Multiple Adapters guide for more information.

, - }, - { - title: "Service Mesh Interface Conformance", - icon: Smi, - description: + }, + { + title: "Service Mesh Interface Conformance", + icon: Smi, + description:

Adapters allow Meshery to interface with the different service meshes, exposing their differentiated value to users.

, - }, - { - title: "WebAssembly Filters", - icon: WebA, - description: + }, + { + title: "WebAssembly Filters", + icon: WebA, + description:

Meshery dynamically loads and reloads WebAssembly (WASM) modules in service mesh data planes, enabling Envoy-based data planes to be more intelligent and responsive in real-time.

, - }, - { - title: "Service Mesh Performance", - icon: SMP, - description: + }, + { + title: "Service Mesh Performance", + icon: SMP, + description:

Track your MeshMark and compare with others.

, - }, - { - title: "Broad Platform Support", - icon: MesheryLogo, - description: + }, + { + title: "Broad Platform Support", + icon: MesheryLogo, + description:

Deploy Meshery to one of ten different supported platforms.

, - }, - ]} /> - + }, + ]} /> +
+ }> + + ); diff --git a/src/pages/community/calendar.js b/src/pages/community/calendar.js index a5707699b235..6d0f88eb4009 100644 --- a/src/pages/community/calendar.js +++ b/src/pages/community/calendar.js @@ -1,8 +1,5 @@ -import React from "react"; +import React, { Suspense } from "react"; import SEO from "../../components/seo"; - - -import Loadable from "react-loadable"; import Loader from "./Loader.style"; import LoadingIcon from "../../assets/images/LoadingIcon"; import FullCalendar from "@fullcalendar/react"; @@ -10,52 +7,56 @@ import dayGridPlugin from "@fullcalendar/daygrid"; import { Container } from "../../reusecore/Layout"; import CalendarStyleWrapper from "../../sections/Community/Calendar/calendar.style"; import PageHeader from "../../reusecore/PageHeader"; -const LoadableCalendar = Loadable({ - loader: () => import("../../sections/Community/Calendar"), - loading() { - return ( - -
- -
-
- - - -
-
- -
+ +const LoadableCalendar = React.lazy(() => import("../../sections/Community/Calendar")); + +const LoadingCalendar = () => { + return ( + +
+ +
+
+ + + +
+
+
- - -
- - ); - }, -}); +
+ + +
+ + ); +}; + const CalendarPage = () => { return ( <> - - + }> + + ); }; + export default CalendarPage; + export const Head = () => { return import("../sections/Home/CloudNativeManagement")); -const SubscribeSection = loadable(() => import("../sections/subscribe/subscribe")); -const ServiceMeshFocussed = loadable(() => import("../sections/Home/Service-mesh-focussed")); -import CaseStudyBanner from "../components/Case-study-banner"; - +import Loading from "../components/loading"; -const SoSpecial = loadable(() => import("../sections/Home/So-Special-Section")); -const MesheryIntegration = loadable(() => import("../sections/Meshery/Meshery-integrations")); +const CloudNativeManagement = React.lazy(() => import("../sections/Home/CloudNativeManagement")); +const SubscribeSection = React.lazy(() => import("../sections/subscribe/subscribe")); +const ServiceMeshFocussed = React.lazy(() => import("../sections/Home/Service-mesh-focussed")); +const CaseStudyBanner = React.lazy(() => import("../components/Case-study-banner")); +const SoSpecial = React.lazy(() => import("../sections/Home/So-Special-Section")); +const MesheryIntegration = React.lazy(() => import("../sections/Meshery/Meshery-integrations")); // import { IoMdClose } from "@react-icons/all-files/io/IoMdClose"; @@ -27,8 +25,12 @@ const IndexPage = () => { {/* */} {/* */} - - + }> + + + }> + + {/* */} {/* */} {/* */} @@ -39,10 +41,16 @@ const IndexPage = () => { {/**/} {/* */} {/* */} - - + }> + + + }> + + {/* */} - + }> + + ); diff --git a/src/sections/Community/Adventures-of-Five/index.js b/src/sections/Community/Adventures-of-Five/index.js index 742016e6c4c0..2e271d190c3c 100644 --- a/src/sections/Community/Adventures-of-Five/index.js +++ b/src/sections/Community/Adventures-of-Five/index.js @@ -1,6 +1,6 @@ -import React from "react"; -import loadable from "@loadable/component"; -const SubscribeSection = loadable(() => import("../../../sections/subscribe/subscribe")); +import React, { Suspense } from "react"; +import Loading from "../../../components/loading.js"; +const SubscribeSection = React.lazy(() => import("../../../sections/subscribe/subscribe")); import { AdventuresWrapper } from "./adventures.style.js"; import AdventuresVol from "../../../components/AdventuresVol/index"; @@ -33,7 +33,9 @@ const AdventuresHome = () => { // to="/community/handbook/faq" />
- + }> + + ); }; diff --git a/src/sections/Company/Brand/index.js b/src/sections/Company/Brand/index.js index ec59a7a9b154..0f6ee4bbd45d 100644 --- a/src/sections/Company/Brand/index.js +++ b/src/sections/Company/Brand/index.js @@ -1,24 +1,24 @@ -import React, { useState, useEffect, useRef } from "react"; +import React, { useState, useEffect, useRef, Suspense } from "react"; import BrandPageWrapper from "./brandPage.style"; import { Row, Col } from "../../../reusecore/Layout"; import Layer5Brand from "./Brand-components/layer5"; import MesheryBrand from "./Brand-components/meshery"; import { FiDownloadCloud } from "@react-icons/all-files/fi/FiDownloadCloud"; -import loadable from "@loadable/component"; +import Loading from "../../../components/loading"; -const MeshSyncBrand = loadable(() => import ("./Brand-components/meshsync")); -const MesheryOperatorBrand = loadable(() => import ("./Brand-components/meshery-operator")); -const ImageHubBrand = loadable(() => import ("./Brand-components/imagehub")); -const SMPBrand = loadable(() => import ("./Brand-components/smp")); -const CommunityBrand = loadable(() => import ("./Brand-components/community")); -const Button = loadable(() => import ("../../../reusecore/Button")); -const NightHawk = loadable(() => import ("./Brand-components/nighthawk")); -const ServiceMeshPatterns = loadable(() => import ("./Brand-components/servicemeshpatterns")); -const MeshMasterBrand = loadable(() => import ("./Brand-components/meshmaster")); -const MeshMarkBrand = loadable(() => import ("./Brand-components/meshmark")); -const MeshMapBrand = loadable(() => import ("./Brand-components/meshmap")); -const BrandGuide = loadable(() => import("./Brand-components/brand-guide")); -const StickFigures = loadable(() => import("./Brand-components/stickfigures")); +const MeshSyncBrand = React.lazy(() => import ("./Brand-components/meshsync")); +const MesheryOperatorBrand = React.lazy(() => import ("./Brand-components/meshery-operator")); +const ImageHubBrand = React.lazy(() => import ("./Brand-components/imagehub")); +const SMPBrand = React.lazy(() => import ("./Brand-components/smp")); +const CommunityBrand = React.lazy(() => import ("./Brand-components/community")); +const Button = React.lazy(() => import ("../../../reusecore/Button")); +const NightHawk = React.lazy(() => import ("./Brand-components/nighthawk")); +const ServiceMeshPatterns = React.lazy(() => import ("./Brand-components/servicemeshpatterns")); +const MeshMasterBrand = React.lazy(() => import ("./Brand-components/meshmaster")); +const MeshMarkBrand = React.lazy(() => import ("./Brand-components/meshmark")); +const MeshMapBrand = React.lazy(() => import ("./Brand-components/meshmap")); +const BrandGuide = React.lazy(() => import("./Brand-components/brand-guide")); +const StickFigures = React.lazy(() => import("./Brand-components/stickfigures")); const getDimensions = (ele) => { let dummyheight = 0, @@ -168,46 +168,74 @@ const Brand = () => {
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
- + }> + +
diff --git a/src/sections/Meshery/Meshery-integrations/index.js b/src/sections/Meshery/Meshery-integrations/index.js index e34b6bc9190c..e83f61f50793 100644 --- a/src/sections/Meshery/Meshery-integrations/index.js +++ b/src/sections/Meshery/Meshery-integrations/index.js @@ -1,6 +1,6 @@ -import React from "react"; -import loadable from "@loadable/component"; -const IntegrationsGrid = loadable(() => import("./IntegrationsGrid")); +import React, { Suspense } from "react"; +import Loading from "../../../components/loading"; +const IntegrationsGrid = React.lazy(() => import("./IntegrationsGrid")); import FAQ from "../../General/Faq"; import { IntegrationsWrapper } from "./Integration.style"; import Card from "./Card"; @@ -15,7 +15,9 @@ const Integrations = () => { if (location.pathname !== "/") { return ( <> - + }> + + @@ -23,7 +25,9 @@ const Integrations = () => { } else { return ( <> - + }> + +
- +

Desired Qualifications

  • Currently pursuing a bachelor's or master's degree: All majors welcome, rising final year (seniors) preferred but not mandatory.
  • @@ -62,7 +62,7 @@ import { Col } from "../../../reusecore/Layout";
  • Competency with some or all of them like Google Analytics, Markdown, Gatsby, Jekyll, HTML/CSS, MailChimp, Twitter, YouTube, GSuite Apps, Git (GitHub), Slack, Zapier is ideal.
- +

Ideal Candidate

  • Availability to work at least 25 hours a week.
  • diff --git a/src/collections/careers/software-engineer/index.mdx b/src/collections/careers/software-engineer/index.mdx index e9f9e5d00add..c8ef6beb11e6 100644 --- a/src/collections/careers/software-engineer/index.mdx +++ b/src/collections/careers/software-engineer/index.mdx @@ -48,7 +48,7 @@ import { Col } from "../../../reusecore/Layout";

- +

Desired Qualifications

  • Holds a bachelor's or master's degree in Computer Science.
  • @@ -60,7 +60,7 @@ import { Col } from "../../../reusecore/Layout"; Service Meshes: Istio, Linkerd, Consul, Network Service Mesh, Cloud Native software design and deployment, Distributed systems concepts is ideal
- +

Ideal Candidate

  • The ability to embody Layer5’s cultural values among peers and across the community.
  • diff --git a/src/collections/careers/software-engineering-internship/index.mdx b/src/collections/careers/software-engineering-internship/index.mdx index 62b8b362a867..e63754f2c988 100644 --- a/src/collections/careers/software-engineering-internship/index.mdx +++ b/src/collections/careers/software-engineering-internship/index.mdx @@ -59,7 +59,7 @@ import { Col } from "../../../reusecore/Layout";

- +

Desired Qualifications

  • Currently pursuing a bachelor's or master's degree: All majors welcome, rising final year (seniors) preferred but not mandatory.
  • @@ -74,7 +74,7 @@ import { Col } from "../../../reusecore/Layout";
  • Competency with some or all of them like Reactjs, Cytoscapejs, Billboardjs, Gatsbyjs is ideal
- +

Ideal Candidate

  • Availability to work at least 20 hours a week (40 hours a week internships also available).
  • diff --git a/src/collections/careers/ui-engineer/index.mdx b/src/collections/careers/ui-engineer/index.mdx index 81bee658cfc3..83e3a0350754 100644 --- a/src/collections/careers/ui-engineer/index.mdx +++ b/src/collections/careers/ui-engineer/index.mdx @@ -44,7 +44,7 @@ import { Col } from "../../../reusecore/Layout";

- +

Desired Qualifications

  • Bachelor's degree in Computer Science, Design, or equivalent practical experience.
  • @@ -55,7 +55,7 @@ import { Col } from "../../../reusecore/Layout";
  • Comfortable rapidly prototyping and iterating.
- +

Ideal Candidate

  • The ability to embody Layer5’s cultural values among peers and across the community.
  • diff --git a/src/collections/careers/ui-visual-designer-internship/index.mdx b/src/collections/careers/ui-visual-designer-internship/index.mdx index df76451acdaa..7a41d76a0cdf 100644 --- a/src/collections/careers/ui-visual-designer-internship/index.mdx +++ b/src/collections/careers/ui-visual-designer-internship/index.mdx @@ -59,7 +59,7 @@ import { Col } from "../../../reusecore/Layout";

- +

Desired Qualifications

  • An excellent eye for detail and thorough accuracy.
  • @@ -74,7 +74,7 @@ import { Col } from "../../../reusecore/Layout";
  • Familiarity with Gatsby and Strapi and Javascript is desired.
- +

Ideal Candidate

  • Availability to work at least 20 hours a week (40 hours a week internships also available).
  • diff --git a/src/collections/careers/ui-visual-designer/index.mdx b/src/collections/careers/ui-visual-designer/index.mdx index ab6fbf5bd43e..1e1d2b473e37 100644 --- a/src/collections/careers/ui-visual-designer/index.mdx +++ b/src/collections/careers/ui-visual-designer/index.mdx @@ -54,7 +54,7 @@ import { Col } from "../../../reusecore/Layout";

- +

Desired Qualifications

  • Bachelor's degree in related field or equivalent practical experience.
  • @@ -71,7 +71,7 @@ import { Col } from "../../../reusecore/Layout";
  • SVG animation and CSS animation experience.
- +

Ideal Candidate

  • The ability to embody Layer5’s cultural values among peers and across the community.
  • diff --git a/src/collections/careers/ux-engineer/index.mdx b/src/collections/careers/ux-engineer/index.mdx index ca62bb32f45f..9e63a3c0f242 100644 --- a/src/collections/careers/ux-engineer/index.mdx +++ b/src/collections/careers/ux-engineer/index.mdx @@ -56,7 +56,7 @@ import { Col } from "../../../reusecore/Layout";

- +

Desired Qualifications

  • Bachelor's degree in Computer Science, HCI, Design, or equivalent practical experience.
  • @@ -71,7 +71,7 @@ import { Col } from "../../../reusecore/Layout";
  • Demonstrated sense of web design and attuned to the fundamentals of user experience, including accessibility.
- +

Ideal Candidate

  • The ability to embody Layer5’s cultural values among peers and across the community.
  • diff --git a/src/collections/events/kubecon-na-2022/index.mdx b/src/collections/events/kubecon-na-2022/index.mdx index 56bc402c9b81..74cb4d028e28 100644 --- a/src/collections/events/kubecon-na-2022/index.mdx +++ b/src/collections/events/kubecon-na-2022/index.mdx @@ -28,7 +28,7 @@ Join Laye Time: 12:00 - 12:45 pm ET

    -
### Service Mesh Performance Project Office Hours @@ -41,7 +41,7 @@ Join Laye Date: October 27, 2022
Time: 12:00 - 12.45 pm ET

-
### The State of the Cloud Native Network: Deep-dive from CNCF TAG Network @@ -56,7 +56,7 @@ Join Laye Time: 4:30 - 5:05 pm ET

-
diff --git a/src/collections/programs/communitybridge/index.mdx b/src/collections/programs/communitybridge/index.mdx index 0bf9200ba929..04a4d488b652 100644 --- a/src/collections/programs/communitybridge/index.mdx +++ b/src/collections/programs/communitybridge/index.mdx @@ -102,7 +102,7 @@ import communitybridge_logo from "./communitybridge-blue.webp";

-

diff --git a/src/collections/programs/gsoc-2019/index.mdx b/src/collections/programs/gsoc-2019/index.mdx index af18ba6bec3f..cda2482aa7bf 100644 --- a/src/collections/programs/gsoc-2019/index.mdx +++ b/src/collections/programs/gsoc-2019/index.mdx @@ -76,7 +76,7 @@ import gsoc_logo from "./gsoc.svg";

-

diff --git a/src/collections/programs/gsoc-2020/index.mdx b/src/collections/programs/gsoc-2020/index.mdx index 19830e7477b0..64309232666f 100644 --- a/src/collections/programs/gsoc-2020/index.mdx +++ b/src/collections/programs/gsoc-2020/index.mdx @@ -157,7 +157,7 @@ and strength of our community.

-

diff --git a/src/collections/programs/gsoc-2021/index.mdx b/src/collections/programs/gsoc-2021/index.mdx index 9ebb7bb1ef87..a5256614092c 100644 --- a/src/collections/programs/gsoc-2021/index.mdx +++ b/src/collections/programs/gsoc-2021/index.mdx @@ -200,10 +200,10 @@ import gsoc_logo from "./gsoc.svg";

diff --git a/src/collections/programs/gsoc-2022/index.mdx b/src/collections/programs/gsoc-2022/index.mdx index fe85b62bb9d5..aae1de93f63c 100644 --- a/src/collections/programs/gsoc-2022/index.mdx +++ b/src/collections/programs/gsoc-2022/index.mdx @@ -138,10 +138,10 @@ We interact daily over Slack, and have an open source project

diff --git a/src/collections/programs/gsoc-2023/index.mdx b/src/collections/programs/gsoc-2023/index.mdx index 508c1b9dec5d..eef6e17fc446 100644 --- a/src/collections/programs/gsoc-2023/index.mdx +++ b/src/collections/programs/gsoc-2023/index.mdx @@ -148,10 +148,10 @@ We interact daily over Slack, and have an open source project

diff --git a/src/collections/programs/lfx-2021/lfx-2021.mdx b/src/collections/programs/lfx-2021/lfx-2021.mdx index 4d48e58b5720..96d14577901e 100644 --- a/src/collections/programs/lfx-2021/lfx-2021.mdx +++ b/src/collections/programs/lfx-2021/lfx-2021.mdx @@ -122,10 +122,10 @@ We interact daily over Slack, and have an open source project [meeting everyday]

diff --git a/src/collections/programs/lfx-2022/lfx-2022.mdx b/src/collections/programs/lfx-2022/lfx-2022.mdx index 29a2dcb662d6..220a8c80c1ab 100644 --- a/src/collections/programs/lfx-2022/lfx-2022.mdx +++ b/src/collections/programs/lfx-2022/lfx-2022.mdx @@ -144,10 +144,10 @@ We interact daily over Slack, and have an open source project [meeting everyday]

diff --git a/src/collections/programs/lfx-2023/lfx-2023.mdx b/src/collections/programs/lfx-2023/lfx-2023.mdx index b5116f10d385..62628438f013 100644 --- a/src/collections/programs/lfx-2023/lfx-2023.mdx +++ b/src/collections/programs/lfx-2023/lfx-2023.mdx @@ -209,10 +209,10 @@ We interact daily over Slack, and have an open source project [meeting everyday]

diff --git a/src/collections/programs/mlh-2020/index.mdx b/src/collections/programs/mlh-2020/index.mdx index eff2c8f8527d..de0f90abf79c 100644 --- a/src/collections/programs/mlh-2020/index.mdx +++ b/src/collections/programs/mlh-2020/index.mdx @@ -103,7 +103,7 @@ and strength of our community.

-

diff --git a/src/collections/programs/sca-contributhon/index.mdx b/src/collections/programs/sca-contributhon/index.mdx index 453be593aa61..c8431afb098d 100644 --- a/src/collections/programs/sca-contributhon/index.mdx +++ b/src/collections/programs/sca-contributhon/index.mdx @@ -191,7 +191,7 @@ May 8, 2021 to May 14, 2021 - SCA announces successful participants and awards $

-

diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/index.mdx b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/index.mdx index 60ab6241ec72..d15e0620a872 100644 --- a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/index.mdx +++ b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/index.mdx @@ -38,7 +38,7 @@ HPE's adoption of Meshery was driven by the need to simplify Kubernetes cluster
-
diff --git a/src/collections/resources/interview/techstrong-tv.mdx b/src/collections/resources/interview/techstrong-tv.mdx index e9ec62390fbf..4bbce623a819 100644 --- a/src/collections/resources/interview/techstrong-tv.mdx +++ b/src/collections/resources/interview/techstrong-tv.mdx @@ -21,7 +21,7 @@ import { Link } from "gatsby";

TechStrong TV hosts a variety of live conversations and panel discussions with world’s leading technology experts and leaders at global tech events and user conferences. In this episode of TechStrong TV, straight out of Open Source Summit NA 2022 , catch guest Lee Calcote from Layer5 and host Alan Shimel discuss the power of Layer5 projects in managing service meshes, Kubernetes and the rest of your cloud native infrastucture. They also dive into some of the other network-centric CNCF projects like CoreDNS and gRPC. Tune in now!

- diff --git a/src/collections/resources/tutorials/introduction-to-all-layer5-repositories.mdx b/src/collections/resources/tutorials/introduction-to-all-layer5-repositories.mdx index 5f2b601f0982..1dd5a100b701 100644 --- a/src/collections/resources/tutorials/introduction-to-all-layer5-repositories.mdx +++ b/src/collections/resources/tutorials/introduction-to-all-layer5-repositories.mdx @@ -23,7 +23,7 @@ import Button from "../../../reusecore/Button"; frameBorder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"allowFullScreen width="100%" height="500">
- +
\ No newline at end of file diff --git a/src/collections/service-mesh-books/istio-up-and-running/index.mdx b/src/collections/service-mesh-books/istio-up-and-running/index.mdx index 83a6803dd96e..dfe5df73d15f 100644 --- a/src/collections/service-mesh-books/istio-up-and-running/index.mdx +++ b/src/collections/service-mesh-books/istio-up-and-running/index.mdx @@ -17,7 +17,7 @@ import Button from "../../../reusecore/Button";
 
-
Istio is a service mesh announced in 2017 and supported by Google, IBM, and Lyft. It is open-source, incorporates Envoy Proxy, a component developed and battle hardened at Lyft, and is one of the fastest growing solutions for connecting, managing, and securing microservices. diff --git a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx index 41f54c962223..cb0678cbd496 100644 --- a/src/collections/service-mesh-books/service-mesh-patterns/index.mdx +++ b/src/collections/service-mesh-books/service-mesh-patterns/index.mdx @@ -23,7 +23,7 @@ import service_mesh_pattern_book from "./service-mesh-patterns.webp"
 
- +

{props.form_header}