Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data loader #14179

Merged
merged 12 commits into from
Oct 20, 2024
6 changes: 5 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,8 @@ BUILD_LOCALES=
LIMIT_CPUS=

# Enables the bundle analyzer
ANALYZE=false
ANALYZE=false

# Use mock data for development. Set to "false" to use live data but you must have the
# environment variables set to make api requests
USE_MOCK_DATA=true
1 change: 1 addition & 0 deletions netlify.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

[build.environment]
NEXT_FORCE_EDGE_IMAGES="true"
BUILD_LOCALES="en"

[[headers]]
for = "/*"
Expand Down
19 changes: 9 additions & 10 deletions src/components/BigNumber/index.tsx
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes for testing purposes. This will show the full date and time and will help us to check that the data has been updated.

Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import { type ReactNode } from "react"
import { useRouter } from "next/router"
import { useTranslation } from "next-i18next"
import { MdInfoOutline } from "react-icons/md"

import { cn } from "@/lib/utils/cn"
import { isValidDate } from "@/lib/utils/date"

import Tooltip from "../Tooltip"
import Link from "../ui/Link"
Expand All @@ -27,13 +25,13 @@ const BigNumber = ({
className,
}: BigNumberProps) => {
const { t } = useTranslation("common")
const { locale } = useRouter()
const lastUpdatedDisplay =
lastUpdated && isValidDate(lastUpdated)
? new Intl.DateTimeFormat(locale, {
dateStyle: "medium",
}).format(new Date(lastUpdated))
: ""
// const { locale } = useRouter()
// const lastUpdatedDisplay =
// lastUpdated && isValidDate(lastUpdated)
// ? new Intl.DateTimeFormat(locale, {
// dateStyle: "medium",
// }).format(new Date(lastUpdated))
// : ""
return (
<div
className={cn(
Expand All @@ -56,7 +54,8 @@ const BigNumber = ({
</p>
{lastUpdated && (
<p className="mt-2">
{t("last-updated")}: {lastUpdatedDisplay}
{t("last-updated")}:{" "}
{new Date(lastUpdated).toISOString()}
</p>
)}
</>
Expand Down
22 changes: 22 additions & 0 deletions src/data/mocks/attestantPosts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[
{
"title": "EigenLayer: What do we know so far?",
"link": "https://www.attestant.io/posts/eigenlayer-so-far/",
"content": "Exploring the underlying mechanics, the economics of the marketplace, as well as insights derived from the testing phase to date.",
"source": "Attestant",
"sourceUrl": "https://www.attestant.io/posts/",
"sourceFeedUrl": "https://www.attestant.io/posts/",
"imgSrc": "/images/attestant-logo.svg",
"pubDate": "1 May 2024"
},
{
"title": "The Rocket Pool Protocol",
"link": "https://www.attestant.io/posts/rocketpool-protocol/",
"content": "Analysis of Rocket Pool including a performance simulation and a PnL investigation.",
"source": "Attestant",
"sourceUrl": "https://www.attestant.io/posts/",
"sourceFeedUrl": "https://www.attestant.io/posts/",
"imgSrc": "/images/attestant-logo.svg",
"pubDate": "1 Mar 2024"
}
]
1 change: 1 addition & 0 deletions src/data/mocks/communityEvents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"pastEventData":[{"date":"2024-09-18T16:30:00+01:00","title":"🛠 QA session - ethereum.org portal","calendarLink":"https://www.google.com/calendar/event?eid=MGlzdW85ZjV1azVsdmNqOG8yMnZwbWhnZGYgY185ZTRiMWIyNzYwNzQzNDYzODE2MTAwYTE2OWQxNDI0MzAzNTJhN2NmYzMzNDRiMWU3ODVkYjUyMzg1YzlmZDM2QGc"},{"date":"2024-09-05T16:00:00+01:00","title":"☎️ ethereum.org Community Call - August 2024","calendarLink":"https://www.google.com/calendar/event?eid=NnY4NWhvN3IxajVsbGFqM3VyOWx1cDRnbDYgY185ZTRiMWIyNzYwNzQzNDYzODE2MTAwYTE2OWQxNDI0MzAzNTJhN2NmYzMzNDRiMWU3ODVkYjUyMzg1YzlmZDM2QGc"},{"date":"2024-09-04T17:00:00+01:00","title":"🛠 QA session - ethereum.org portal","calendarLink":"https://www.google.com/calendar/event?eid=NmdwYWF1bmozODhzaTc1ZW5rZ3BlNW5jNWwgY185ZTRiMWIyNzYwNzQzNDYzODE2MTAwYTE2OWQxNDI0MzAzNTJhN2NmYzMzNDRiMWU3ODVkYjUyMzg1YzlmZDM2QGc"},{"date":"2024-09-24T15:15:00+01:00","title":"New Event","calendarLink":"https://www.google.com/calendar/event?eid=Xzg5MWsyZHBoNjkzM2FiOW42Y28zNGI5azg4cTNpYmExNjUxM2FiYTY4OHMzY2Q5azhwMTQ4ZTIxNjQgY185ZTRiMWIyNzYwNzQzNDYzODE2MTAwYTE2OWQxNDI0MzAzNTJhN2NmYzMzNDRiMWU3ODVkYjUyMzg1YzlmZDM2QGc"}],"upcomingEventData":[{"date":"2024-10-31T15:00:00Z","title":"☎️ ethereum.org Community Call - October 2024","calendarLink":"https://www.google.com/calendar/event?eid=NWRja2UwaGxnbm5oMzh2ZTBiNW9lZ3QwcWYgY185ZTRiMWIyNzYwNzQzNDYzODE2MTAwYTE2OWQxNDI0MzAzNTJhN2NmYzMzNDRiMWU3ODVkYjUyMzg1YzlmZDM2QGc"},{"date":"2024-10-16T16:30:00+01:00","title":"🛠 QA session - ethereum.org portal","calendarLink":"https://www.google.com/calendar/event?eid=NGtrdGE3cDV0NTk4MzdsbjBuNzI2NTQ4Z2EgY185ZTRiMWIyNzYwNzQzNDYzODE2MTAwYTE2OWQxNDI0MzAzNTJhN2NmYzMzNDRiMWU3ODVkYjUyMzg1YzlmZDM2QGc"},{"date":"2024-10-02T16:30:00+01:00","title":"🛠 QA session - ethereum.org portal","calendarLink":"https://www.google.com/calendar/event?eid=NmlycGRhNTkwNmNvdmFpMmozcW1lb20wbWkgY185ZTRiMWIyNzYwNzQzNDYzODE2MTAwYTE2OWQxNDI0MzAzNTJhN2NmYzMzNDRiMWU3ODVkYjUyMzg1YzlmZDM2QGc"}]}
1 change: 1 addition & 0 deletions src/data/mocks/ethPrice.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"value":2651.16,"timestamp":1727788458138}
1 change: 1 addition & 0 deletions src/data/mocks/ethereumEcosystemData.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"id":"ethereum","symbol":"eth","name":"Ethereum","image":"https://coin-images.coingecko.com/coins/images/279/large/ethereum.png?1696501628","current_price":2617.85,"market_cap":315023225315,"market_cap_rank":2,"fully_diluted_valuation":315023225315,"total_volume":16169667032,"high_24h":2652.65,"low_24h":2581.66,"price_change_24h":-14.782659630350736,"price_change_percentage_24h":-0.56152,"market_cap_change_24h":-1839423832.9405518,"market_cap_change_percentage_24h":-0.58051,"circulating_supply":120369473.880651,"total_supply":120369473.880651,"max_supply":null,"ath":4878.26,"ath_change_percentage":-46.23268,"ath_date":"2021-11-10T14:24:19.604Z","atl":0.432979,"atl_change_percentage":605682.48721,"atl_date":"2015-10-20T00:00:00.000Z","roi":{"times":54.07426262592152,"currency":"btc","percentage":5407.426262592152},"last_updated":"2024-10-01T13:11:16.598Z"},{"id":"tether","symbol":"usdt","name":"Tether","image":"https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661","current_price":0.9998,"market_cap":119527752495,"market_cap_rank":3,"fully_diluted_valuation":119527752495,"total_volume":49641535208,"high_24h":1.001,"low_24h":0.997043,"price_change_24h":-0.000002781420216369,"price_change_percentage_24h":-0.00028,"market_cap_change_24h":-44336733.83843994,"market_cap_change_percentage_24h":-0.03708,"circulating_supply":119632023784.447,"total_supply":119632023784.447,"max_supply":null,"ath":1.32,"ath_change_percentage":-24.4271,"ath_date":"2018-07-24T00:00:00.000Z","atl":0.572521,"atl_change_percentage":74.64887,"atl_date":"2015-03-02T00:00:00.000Z","roi":null,"last_updated":"2024-10-01T13:11:12.649Z"},{"id":"binancecoin","symbol":"bnb","name":"BNB","image":"https://coin-images.coingecko.com/coins/images/825/large/bnb-icon2_2x.png?1696501970","current_price":575.73,"market_cap":83987141058,"market_cap_rank":4,"fully_diluted_valuation":83987141058,"total_volume":809491690,"high_24h":582.39,"low_24h":564.88,"price_change_24h":-0.6508231312770931,"price_change_percentage_24h":-0.11292,"market_cap_change_24h":-102425352.41564941,"market_cap_change_percentage_24h":-0.12181,"circulating_supply":145887575.79,"total_supply":145887575.79,"max_supply":200000000,"ath":717.48,"ath_change_percentage":-19.48651,"ath_date":"2024-06-06T14:10:59.816Z","atl":0.0398177,"atl_change_percentage":1450673.13919,"atl_date":"2017-10-19T00:00:00.000Z","roi":null,"last_updated":"2024-10-01T13:11:03.457Z"},{"id":"usd-coin","symbol":"usdc","name":"USDC","image":"https://coin-images.coingecko.com/coins/images/6319/large/usdc.png?1696506694","current_price":0.999581,"market_cap":35309586606,"market_cap_rank":7,"fully_diluted_valuation":35309540001,"total_volume":7774438079,"high_24h":1.002,"low_24h":0.997063,"price_change_24h":-0.000170002231663524,"price_change_percentage_24h":-0.017,"market_cap_change_24h":-693591993.4392319,"market_cap_change_percentage_24h":-1.92647,"circulating_supply":35339998239.7757,"total_supply":35339951594.3419,"max_supply":null,"ath":1.17,"ath_change_percentage":-14.7322,"ath_date":"2019-05-08T00:40:28.300Z","atl":0.877647,"atl_change_percentage":13.93432,"atl_date":"2023-03-11T08:02:13.981Z","roi":null,"last_updated":"2024-10-01T13:11:10.525Z"}]
1 change: 1 addition & 0 deletions src/data/mocks/ethereumStablecoinsData.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"id":"tether","symbol":"usdt","name":"Tether","image":"https://coin-images.coingecko.com/coins/images/325/large/Tether.png?1696501661","current_price":0.9998,"market_cap":119527752495,"market_cap_rank":3,"fully_diluted_valuation":119527752495,"total_volume":49641535208,"high_24h":1.001,"low_24h":0.997043,"price_change_24h":-0.000002781420216369,"price_change_percentage_24h":-0.00028,"market_cap_change_24h":-44336733.83843994,"market_cap_change_percentage_24h":-0.03708,"circulating_supply":119632023784.447,"total_supply":119632023784.447,"max_supply":null,"ath":1.32,"ath_change_percentage":-24.4271,"ath_date":"2018-07-24T00:00:00.000Z","atl":0.572521,"atl_change_percentage":74.64887,"atl_date":"2015-03-02T00:00:00.000Z","roi":null,"last_updated":"2024-10-01T13:11:12.649Z"},{"id":"usd-coin","symbol":"usdc","name":"USDC","image":"https://coin-images.coingecko.com/coins/images/6319/large/usdc.png?1696506694","current_price":0.999581,"market_cap":35309586606,"market_cap_rank":7,"fully_diluted_valuation":35309540001,"total_volume":7774438079,"high_24h":1.002,"low_24h":0.997063,"price_change_24h":-0.000170002231663524,"price_change_percentage_24h":-0.017,"market_cap_change_24h":-693591993.4392319,"market_cap_change_percentage_24h":-1.92647,"circulating_supply":35339998239.7757,"total_supply":35339951594.3419,"max_supply":null,"ath":1.17,"ath_change_percentage":-14.7322,"ath_date":"2019-05-08T00:40:28.300Z","atl":0.877647,"atl_change_percentage":13.93432,"atl_date":"2023-03-11T08:02:13.981Z","roi":null,"last_updated":"2024-10-01T13:11:10.525Z"},{"id":"dai","symbol":"dai","name":"Dai","image":"https://coin-images.coingecko.com/coins/images/9956/large/Badge_Dai.png?1696509996","current_price":0.99987,"market_cap":5851938256,"market_cap_rank":22,"fully_diluted_valuation":5852300959,"total_volume":93115819,"high_24h":1.002,"low_24h":0.997201,"price_change_24h":-0.000344276117198117,"price_change_percentage_24h":-0.03442,"market_cap_change_24h":380085133,"market_cap_change_percentage_24h":6.94619,"circulating_supply":5857680087.46236,"total_supply":5858043146.42038,"max_supply":null,"ath":1.22,"ath_change_percentage":-17.96519,"ath_date":"2020-03-13T03:02:50.373Z","atl":0.88196,"atl_change_percentage":13.37787,"atl_date":"2023-03-11T07:50:50.514Z","roi":null,"last_updated":"2024-10-01T13:11:13.082Z"}]
1 change: 1 addition & 0 deletions src/data/mocks/frameworksListData.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"id":"waffle","url":"https://getwaffle.io/","githubUrl":"https://github.com/EthWorks/waffle","background":"#ffffff","name":"Waffle","description":"page-developers-local-environment:page-local-environment-waffle-desc","alt":"page-developers-local-environment:page-local-environment-waffle-logo-alt","image":{"src":"/_next/static/media/waffle.1981c9d4.png","height":100,"width":151,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAPFBMVEWGZCGIWzFySCRnQSJfPSH/sURtQx//xFV4TSehaTBnQSHzrErvqEzgmT6nbTB5TSaDXiR6TSaaZTC4dCu5fsv8AAAAEXRSTlMBSLT7Kcj6LNDX+6BT/aykFAc2PBoAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAtSURBVHicBcGHEQAgDAOxpyb0M+y/KxIQ3AOQjyTFTFNNvd6G7fveGgbMUgw+G7gBR5ZLRtoAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":5},"starCount":961,"languages":["TypeScript","Solidity"]},{"id":"Kurtosis Ethereum Package","url":"https://github.com/kurtosis-tech/ethereum-package","githubUrl":"https://github.com/kurtosis-tech/ethereum-package","background":"#000000","name":"Kurtosis Ethereum Package","description":"page-developers-local-environment:page-local-environment-kurtosis-desc","alt":"page-developers-local-environment:page-local-environment-kurtosis-logo-alt","image":{"src":"/_next/static/media/kurtosis.2d89f1e0.png","height":500,"width":500,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAGFBMVEVMaXEAwSMAxCYAyCIAwiIAwiMAwSMAvyM0GQgYAAAACHRSTlMASRMJYVeGMThI5+sAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAtSURBVHicRYrJCQAwEISc2av/jsNCQnyJCB8TNjBttQClaoAoZa5sUdemN18ODtQAaWHwWFMAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":8},"starCount":235,"languages":["Starlark","Python"]},{"id":"hardhat","url":"https://hardhat.org/","githubUrl":"https://github.com/nomiclabs/hardhat","background":"#faf8fb","name":"Hardhat","description":"page-developers-local-environment:page-local-environment-hardhat-desc","alt":"page-developers-local-environment:page-local-environment-hardhat-logo-alt","image":{"src":"/_next/static/media/hardhat.e5431960.png","height":200,"width":629,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAADCAMAAACZFr56AAAALVBMVEX59vr5+O3cw6f59tr9/P7Wk2Dm2VHz7bbev5Li4N69g2HTpHPy4tjh14Dr5HRySo1GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAI0lEQVR4nGNgYGBg4eNlY2Zg52Rk4OJm5WFgZmRkYWLiYAQABpAAdvjWgdcAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":3},"starCount":7212,"languages":["TypeScript","Solidity"]},{"id":"brownie","url":"https://github.com/eth-brownie/brownie","githubUrl":"https://github.com/eth-brownie/brownie","background":"#ffffff","name":"Brownie","description":"page-developers-local-environment:page-local-environment-brownie-desc","alt":"page-developers-local-environment:page-local-environment-brownie-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":2640,"languages":["Python","Solidity"]},{"id":"epirus","url":"https://www.web3labs.com/epirus","githubUrl":"https://github.com/web3labs/epirus-free","background":"#ffffff","name":"Epirus","description":"page-developers-local-environment:page-local-environment-epirus-desc","alt":"page-developers-local-environment:page-local-environment-epirus-logo-alt","image":{"src":"/_next/static/media/epirus.5f7d05a1.png","height":105,"width":105,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAASFBMVEVMaXE+MuxJOv2Khvpyetx1b+hIOP1LPf+Wkv9IOf1HOfyTkP8eEqcaEZ4UCp4PA5qPi/+QjP9vZ/xgVfyem/9BM/YgFLNFPNK67oEUAAAAFHRSTlMA9LqdCxiR/brL2NPbOpSlfPf9/SnJx9EAAAAJcEhZcwAACxMAAAsTAQCanBgAAAA+SURBVHicHYtJFsAgCMW+FQS0s2jvf9M+ySbZBE8fIiIbmr/VrBawujKC2zXM15eXj32etCKNZIVaRrzk+gNNUgH0EjhMjQAAAABJRU5ErkJggg==","blurWidth":8,"blurHeight":8},"starCount":245,"languages":["HTML","Shell"]},{"id":"createethapp","url":"https://github.com/PaulRBerg/create-eth-app","githubUrl":"https://github.com/PaulRBerg/create-eth-app","background":"#ffffff","name":"Create Eth App","description":"page-developers-local-environment:page-local-environment-eth-app-desc","alt":"page-developers-local-environment:page-local-environment-eth-app-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":2743,"languages":["JavaScript","TypeScript"]},{"id":"scaffoldeth","url":"https://scaffoldeth.io/","githubUrl":"https://github.com/scaffold-eth/scaffold-eth-2","background":"#ffffff","name":"Scaffold-ETH-2","description":"page-developers-local-environment:page-local-environment-scaffold-eth-desc","alt":"page-local-environment-scaffold-eth-logo-alt","image":{"src":"/_next/static/media/scaffoldeth.cd548199.png","height":100,"width":100,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAMFBMVEUAAAAAAAAAAAAAAAAXFxeGhoYMDAx1dXVeXl4tLS1JSUmVlZWhoaG7u7vR0dHp6emgnumOAAAAA3RSTlP3hItveKZsAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOElEQVR4nC2LSQ7AIAzEBhwStsL/f4to65Mly8q8JInW3ZCwZ41iCGohPgnb/UoMv0ltzupI6d8PK9kBO0fyA1cAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":8},"starCount":1320,"languages":["TypeScript","JavaScript"]},{"id":"soliditytemplate","url":"https://github.com/paulrberg/solidity-template","githubUrl":"https://github.com/paulrberg/solidity-template","background":"#ffffff","name":"Solidity template","description":"page-developers-local-environment:page-local-environment-solidity-template-desc","alt":"page-developers-local-environment:page-local-environment-solidity-template-logo-alt","image":{"src":"/_next/static/media/eth-diamond-black.a042df77.png","height":1303,"width":800,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAMAAAAGL8UJAAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAAD3RSTlMBFGnLX7GnI4A6UpOP4/dIbsMDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAK0lEQVR4nAXBhwHAMAgAIIya0fX/uQVUYHURNTNU53erfnNb13gOZ24Y4QcPHACtv+HuBAAAAABJRU5ErkJggg==","blurWidth":5,"blurHeight":8},"starCount":1955,"languages":["TypeScript","Solidity"]},{"id":"foundry","url":"https://getfoundry.sh/","githubUrl":"https://github.com/foundry-rs/foundry","background":"#ffffff","name":"Foundry","description":"page-developers-local-environment:page-local-environment-foundry-desc","alt":"page-developers-local-environment:page-local-environment-foundry-logo-alt","image":{"src":"/_next/static/media/foundry.1018b0c1.png","height":200,"width":200,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAATlBMVEV1dXXCwsKjo6Ofn5/z8/N4eHjo6OhxcXGJiYnKysqNjY2Li4uWlpaZmZmxsbGysrLR0dHT09O9vb1CQkK0tLShoaFwcHBUVFT////W1tYM2FdSAAAAFnRSTlMCX6uk/f78qP7+XKVf/F+k+177+aWoKC52FAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEFJREFUeJwVy0cSgDAMALFNtdMIbRz4/0cZdBfQRTpAMzNrUFeKUVdFLKvmJMx46ijlxpWx58sOCI+lN/xt897BB1iEAl23XQdDAAAAAElFTkSuQmCC","blurWidth":8,"blurHeight":8},"starCount":8167,"languages":["Rust","Shell"]}]
Loading
Loading