From 983758c13d40dd4a5ff9403113292a487ae94cb2 Mon Sep 17 00:00:00 2001 From: Jay Date: Fri, 28 Feb 2025 10:06:12 +0000 Subject: [PATCH 01/11] Add new light and dark banners --- scripts/constants.ts | 7 +++-- scripts/upload-layer.ts | 59 +++++++++++++++++++++++++----------- scripts/validate-partners.ts | 49 +++++++++++++++++++++--------- 3 files changed, 80 insertions(+), 35 deletions(-) diff --git a/scripts/constants.ts b/scripts/constants.ts index 06daf80..aa215fb 100644 --- a/scripts/constants.ts +++ b/scripts/constants.ts @@ -1,6 +1,9 @@ export const partnerFileName = 'info.yaml' -export const defaultThumbnailName = 'thumbnail.png' -export const defaultBannerName = 'banner.png' + +export const defaultThumbnailNameLight = 'thumbnail_light.png' +export const defaultBannerNameLight = 'banner_light.png' +export const defaultThumbnailNameDark = 'thumbnail_dark.png' +export const defaultBannerNameDark = 'banner_dark.png' export const partnerDir = '../partners' export const partnerStorageName = 'partners.json' export const examplePartnerName = 'example' diff --git a/scripts/upload-layer.ts b/scripts/upload-layer.ts index 82c5fb8..fb63304 100644 --- a/scripts/upload-layer.ts +++ b/scripts/upload-layer.ts @@ -1,11 +1,14 @@ -import { S3Client, PutObjectCommand, ListObjectsV2Command, DeleteObjectCommand } from '@aws-sdk/client-s3' -import dotenv from 'dotenv' -import { buildPartnersJson, getPartnerDirectories } from './generate-partners' -import { validatePartnerInfo } from './validate-partners' -import path from 'path' import * as fs from 'fs' + +import { DeleteObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client } from '@aws-sdk/client-s3' +import { buildPartnersJson, getPartnerDirectories } from './generate-partners' + +import dotenv from 'dotenv' import { getJsonfromYaml } from './translation-layer' import { partnerFileName } from './constants' +import path from 'path' +import { validatePartnerInfo } from './validate-partners' + dotenv.config() const REGION = process.env.REGION ?? '' @@ -26,9 +29,9 @@ const cleanupUnusedImages = async (s3Client: S3Client, currentPartnerNames: Set< Bucket: BUCKET_NAME, Prefix: 'images/' } - + const listedObjects = await s3Client.send(new ListObjectsV2Command(listParams)) - + if (!listedObjects.Contents) return for (const item of listedObjects.Contents) { @@ -81,7 +84,7 @@ const run = async () => { console.log('Proceeding with upload...') const partners = buildPartnersJson(partnerDirectories) const currentPartnerNames = new Set(partners.map(partner => partner.name)) - + const uploadParams = { Bucket: BUCKET_NAME, Key: OBJECT_KEY, @@ -90,18 +93,38 @@ const run = async () => { } const data = await s3Client.send(new PutObjectCommand(uploadParams)) console.log(`Partners uploaded. ETag: ${data.ETag}`) - + console.log('Proceeding with image uploads...') for (const partnerDir of partnerDirectories) { - const {name } = getJsonfromYaml(`${partnerDir}/${partnerFileName}`) - const thumbnail = path.join(partnerDir, 'thumbnail.png') - const thumbnailKey = `images/${name}/thumbnail.png` - - const banner = path.join(partnerDir, 'banner.png') - const bannerKey = `images/${name}/banner.png` - - await uploadFile(s3Client, thumbnail, thumbnailKey) - await uploadFile(s3Client, banner, bannerKey) + const { name } = getJsonfromYaml(`${partnerDir}/${partnerFileName}`) + + console.log('Uploading images for:', name) + + // Light thumbnail + const thumbnailLight = path.join(partnerDir, 'thumbnail_light.png') + const thumbnailLightKey = `images/${name}/thumbnail_light.png` + + // Dark thumbnail + const thumbnailDark = path.join(partnerDir, 'thumbnail_dark.png') + const thumbnailDarkKey = `images/${name}/thumbnail_dark.png` + + // Light Banner + const bannerLight = path.join(partnerDir, 'banner_light.png') + const bannerLightKey = `images/${name}/banner_light.png` + + // Dark Banner + const bannerDark = path.join(partnerDir, 'banner_dark.png') + const bannerDarkKey = `images/${name}/banner_dark.png` + + //upload light thumbnail + await uploadFile(s3Client, thumbnailLight, thumbnailLightKey) + //upload dark thumbnail + await uploadFile(s3Client, thumbnailDark, thumbnailDarkKey) + + //upload light banner + await uploadFile(s3Client, bannerLight, bannerLightKey) + //upload dark banner + await uploadFile(s3Client, bannerDark, bannerDarkKey) } console.log('Cleaning up unused images...') diff --git a/scripts/validate-partners.ts b/scripts/validate-partners.ts index 4f30eb2..2b631d3 100644 --- a/scripts/validate-partners.ts +++ b/scripts/validate-partners.ts @@ -1,7 +1,7 @@ import * as fs from 'fs'; import * as path from 'path'; -import { defaultBannerName, defaultThumbnailName, longDescriptionLimit, maxBannerHeight, maxBannerWidth, maxNumberOfTags, maxThumbnailHeight, maxThumbnailWidth, nameLimit, partnerFileName, shortDescriptionLimit, tagCharacterLimit } from './constants'; +import { defaultBannerNameDark, defaultBannerNameLight, defaultThumbnailNameDark, defaultThumbnailNameLight, longDescriptionLimit, maxBannerHeight, maxBannerWidth, maxNumberOfTags, maxThumbnailHeight, maxThumbnailWidth, nameLimit, partnerFileName, shortDescriptionLimit, tagCharacterLimit } from './constants'; import { getPartnerDirectories, getPartnerObject } from './generate-partners'; import { Partner } from './interface'; @@ -11,7 +11,7 @@ const requiredFields: (keyof Partner)[] = ['name', 'shortDescription', 'longDesc /** * Type guard to check if an object conforms to the Partner interface. - * + * * @param {any} obj - The object to be checked. * @returns {obj is Partner} - Returns true if the object matches the Partner interface. */ @@ -32,11 +32,12 @@ export function isPartner(obj: any): obj is Partner { export async function validatePartnerInfo(partnerPath: string): Promise { const fullPartnerPath = path.join(partnerPath, partnerFileName); - const fullThumbnailPath = path.join(partnerPath, defaultThumbnailName); - const fullBannerPath = path.join(partnerPath, defaultBannerName); + const fullThumbnailPathLight = path.join(partnerPath, defaultThumbnailNameLight); + const fullBannerPathLight = path.join(partnerPath, defaultBannerNameLight); + const fullThumbnailPathDark = path.join(partnerPath, defaultThumbnailNameDark); + const fullBannerPathDark = path.join(partnerPath, defaultBannerNameDark); let errorMessages: string[] = []; - if (!fs.existsSync(fullPartnerPath)) { errorMessages.push(`${partnerFileName} is missing in ${partnerPath}`); return errorMessages; @@ -51,24 +52,42 @@ export async function validatePartnerInfo(partnerPath: string): Promise Date: Fri, 28 Feb 2025 10:06:18 +0000 Subject: [PATCH 02/11] update tests --- tests/validate-partner.test.ts | 157 +++++++++++++++++++-------------- 1 file changed, 93 insertions(+), 64 deletions(-) diff --git a/tests/validate-partner.test.ts b/tests/validate-partner.test.ts index 07f39f6..857053b 100644 --- a/tests/validate-partner.test.ts +++ b/tests/validate-partner.test.ts @@ -1,18 +1,19 @@ -// __tests__/validatePartnerInfo.test.ts -import { longDescriptionLimit, maxBannerHeight, maxBannerWidth, maxNumberOfTags, maxThumbnailHeight, maxThumbnailWidth, nameLimit, shortDescriptionLimit, tagCharacterLimit } from '../scripts/constants'; +import { defaultBannerNameDark, defaultBannerNameLight, defaultThumbnailNameDark, defaultThumbnailNameLight, longDescriptionLimit, maxBannerHeight, maxBannerWidth, maxNumberOfTags, maxThumbnailHeight, maxThumbnailWidth, nameLimit, shortDescriptionLimit, tagCharacterLimit } from '../scripts/constants'; import fs from "fs-extra"; import mockFs from 'mock-fs'; import sharp from 'sharp'; -import { validatePartnerInfo } from '../scripts/validate-partners'; // Adjust the path as needed +import { validatePartnerInfo } from '../scripts/validate-partners'; jest.mock('sharp'); jest.mock("fs-extra"); + describe('validatePartnerInfo', () => { const mockedSharp = sharp as jest.MockedFunction; + const mockedFs = fs as jest.Mocked; const partnerPath = '/path/to/partner'; - - const mockResults = { + + const mockResults = { 'info.yaml': ` name: "Mock Partner" badge: "mockBadge" @@ -24,22 +25,32 @@ describe('validatePartnerInfo', () => { url: "https://mockpartner.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', + [defaultBannerNameLight]: 'fake-image-data', + [defaultThumbnailNameLight]: 'fake-image-data', + [defaultBannerNameDark]: 'fake-image-data', + [defaultThumbnailNameDark]: 'fake-image-data', } + beforeEach(() => { jest.resetAllMocks(); + mockFs({ + [partnerPath]: mockResults + }); }); afterEach(() => { mockFs.restore(); }); - it('should return an an array of error messages with one message, if path does not exist', async () => { + it('should validate partner info and return no errors for valid data', async () => { + mockedSharp.mockReturnValue({ + metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }) + } as any); + const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`info.yaml is missing in ${partnerPath}`]); - } - ); + expect(errors).toHaveLength(0); + }); + it('should error if a required field is missing', async () => { mockFs({ @@ -54,8 +65,10 @@ describe('validatePartnerInfo', () => { - "partner" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', } }); @@ -85,7 +98,7 @@ describe('validatePartnerInfo', () => { mockFs({ [partnerPath]: imagesMissing, - + }); mockedSharp.mockReturnValue({ @@ -94,14 +107,14 @@ describe('validatePartnerInfo', () => { const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual(["Thumbnail image is missing", "Banner image is missing"]); + expect(errors).toEqual(["Light thumbnail image is missing", "Dark thumbnail image is missing", "Light banner image is missing", "Dark banner image is missing"]); }); it('should log to the user an error if unable to read image dimensions', async () => { mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ @@ -109,14 +122,14 @@ describe('validatePartnerInfo', () => { } as any); const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual(["image metadata could not be read for /path/to/partner/thumbnail.png", "image metadata could not be read for /path/to/partner/banner.png"]); + expect(errors).toEqual(["image metadata could not be read for /path/to/partner/thumbnail_light.png", "image metadata could not be read for /path/to/partner/banner_light.png", "image metadata could not be read for /path/to/partner/thumbnail_dark.png", "image metadata could not be read for /path/to/partner/banner_dark.png"]); }); it('should log to the user an error if unable to read image metadata', async () => { mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ @@ -126,12 +139,12 @@ describe('validatePartnerInfo', () => { } as any); const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual(["Error reading image metadata","Error reading image metadata"]); + expect(errors).toEqual(["Error reading image metadata", "Error reading image metadata", "Error reading image metadata", "Error reading image metadata"]); }); - + it('should return an a log to the user if the name exceeds a character length', async () => { - const mockResults = { + const mockResults = { 'info.yaml': ` name: "Mock Partner really long name that exceeds the character limit" badge: "mockBadge" @@ -143,12 +156,14 @@ describe('validatePartnerInfo', () => { url: "https://mockpartner.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', } mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ @@ -158,7 +173,7 @@ describe('validatePartnerInfo', () => { const errors = await validatePartnerInfo(partnerPath); expect(errors).toEqual([`'name' exceeds ${nameLimit} characters`]); }); - + it('should return an error if info.yaml is missing', async () => { mockFs({ [partnerPath]: { @@ -191,7 +206,7 @@ describe('validatePartnerInfo', () => { }); it('should return an error if tag char limit is reached', async () => { - const badTags = { + const badTags = { 'info.yaml': ` name: "Mock Partner" badge: "mockBadge" @@ -203,9 +218,11 @@ describe('validatePartnerInfo', () => { url: "https://mockpartner.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', - } + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', + } mockFs({ [partnerPath]: badTags }); @@ -219,7 +236,7 @@ describe('validatePartnerInfo', () => { }); it('should return an error for invalid attributes in info.yaml', async () => { - + mockFs({ [partnerPath]: { 'info.yaml': {} @@ -231,7 +248,7 @@ describe('validatePartnerInfo', () => { } as any); const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual( ["info.yaml contains invalid data in /path/to/partner"]); + expect(errors).toEqual(["info.yaml contains invalid data in /path/to/partner"]); }); it('should error if image (banner) dimensions are too big', async () => { @@ -244,13 +261,13 @@ describe('validatePartnerInfo', () => { } as any); const errors = await validatePartnerInfo(partnerPath); - const expectedErrors = [`image dimensions exceed ${maxThumbnailWidth}x${maxThumbnailHeight} pixels`] + const expectedErrors = [`image dimensions exceed ${maxThumbnailWidth}x${maxThumbnailHeight} pixels`, `image dimensions exceed ${maxThumbnailWidth}x${maxThumbnailHeight} pixels`] expect(errors).toEqual(expectedErrors); }); it('should return an a log to the user if the long description exceeds a character length', async () => { - const mockResults = { + const mockResults = { 'info.yaml': ` name: "name" badge: "mockBadge" @@ -262,12 +279,14 @@ describe('validatePartnerInfo', () => { url: "https://mockpartner.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', } mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ @@ -277,9 +296,9 @@ describe('validatePartnerInfo', () => { const errors = await validatePartnerInfo(partnerPath); expect(errors).toEqual([`'long_description' exceeds ${longDescriptionLimit} characters`]); }); - + it('should return an a log to the user if the short description exceeds a character length', async () => { - const mockResults = { + const mockResults = { 'info.yaml': ` name: "name" badge: "mockBadge" @@ -291,12 +310,14 @@ describe('validatePartnerInfo', () => { url: "https://mockpartner.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', } mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ @@ -308,7 +329,7 @@ describe('validatePartnerInfo', () => { }); it('Partner must have atleast one tag', async () => { - const mockResults = { + const mockResults = { 'info.yaml': ` name: "name" badge: "mockBadge" @@ -318,12 +339,14 @@ describe('validatePartnerInfo', () => { url: "https://mockpartner.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', } mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ @@ -335,8 +358,8 @@ describe('validatePartnerInfo', () => { }); it('should not exceed the maximum number of tags', async () => { - const mockResults = { - 'info.yaml': ` + const mockResults = { + 'info.yaml': ` name: "name" badge: "mockBadge" short_description: "short desc" @@ -351,12 +374,14 @@ describe('validatePartnerInfo', () => { url: "https://mockpartner.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', } mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ @@ -368,8 +393,8 @@ describe('validatePartnerInfo', () => { }); it('should log if provided url is not https', async () => { - const mockResults = { - 'info.yaml': ` + const mockResults = { + 'info.yaml': ` name: "name" badge: "mockBadge" short_description: "short desc" @@ -381,12 +406,14 @@ describe('validatePartnerInfo', () => { url: "http://mockpartner.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', } mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ @@ -398,7 +425,7 @@ describe('validatePartnerInfo', () => { }); it('should log if it couldn\'t parse the url', async () => { - const mockResults = { + const mockResults = { 'info.yaml': ` name: "name" badge: "mockBadge" @@ -411,19 +438,21 @@ describe('validatePartnerInfo', () => { url: "https://forcefail.com" featured: false `, - 'banner.png': 'fake-image-data', - 'thumbnail.png': 'fake-image-data', - } - + 'banner_light.png': 'fake-image-data', + 'thumbnail_light.png': 'fake-image-data', + 'banner_dark.png': 'fake-image-data', + 'thumbnail_dark.png': 'fake-image-data', + } + mockFs({ [partnerPath]: mockResults, - + }); mockedSharp.mockReturnValue({ metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), } as any); - + const originalURL = global.URL; // Save original URL //@ts-ignore global.URL = jest.fn(() => { @@ -433,10 +462,10 @@ describe('validatePartnerInfo', () => { const errors = await validatePartnerInfo(partnerPath); console.log('Errors:', errors); - + expect(errors).toEqual([`'url' is not a valid URL`]); global.URL = originalURL; }); - + }); From c990607787e8ff1b36835932a769deff35df1d9d Mon Sep 17 00:00:00 2001 From: Jay Date: Fri, 28 Feb 2025 10:13:31 +0000 Subject: [PATCH 03/11] update readme --- README.md | 23 +++++++---------- partners/example/README.md | 52 -------------------------------------- 2 files changed, 9 insertions(+), 66 deletions(-) delete mode 100644 partners/example/README.md diff --git a/README.md b/README.md index 4960cc8..4f0997d 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,15 @@ tags: # max 3 tags, the most relevant should be listed first url: 'https://www.autonity.org' # must be a valid https url ``` -The `thumbnail.png` must be no more than 196x160px. This is used when viewing your project in the grid list. -The `banner.png` must be no more than 274x105px. This is used when your product is featured and is in the carousel list. +#### Images: -#### Tags should be added in order of relevance! The most relevant tag should be the first. +The `thumbnail_light.png` must be no more than 196x160px. This is used when viewing your project in the grid list. + +The `thumbnail_dark.png` must be no more than 196x160px. This is used when viewing your project in the grid list. + +The `banner_light.png` must be no more than 274x105px. This is used when your product is featured and is in the carousel list. + +The `banner_dark.png` must be no more than 274x105px. This is used when your product is featured and is in the carousel list. #### Step 4: Create a pull-request containing your updated data. @@ -40,14 +45,4 @@ The `banner.png` must be no more than 274x105px. This is used when your product - **Title Format**: `Add to Partner Registry` - **Example**: `Add MyProject to Partner Registry` -If you are successfull, your PR will have a `new-partner` label applied to it: - -![Success Bot Label](resources/tutorial/success-label.png) - -And a success comment - -![Success Bot Comment](resources/tutorial/success-bot-comment.png) - -If your PR failed validity checks, a bot will comment on the reasons why - -![Failure bot comment](resources/tutorial/failure-bot-comment.png) +If your PR fails validation checks, please check the github action, it will have the reason why diff --git a/partners/example/README.md b/partners/example/README.md deleted file mode 100644 index efb437a..0000000 --- a/partners/example/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# ECOSYSTEM Partner Registry - -How to add your project to our [Partner-Registry](https://github.com/autonity/partner-registry) repo. - -## Adding your project to the Partner Registry - -Firstly you need to fork the registry [repo](https://github.com/autonity/partner-registry), clone it locally and open in your favorite editor. - -#### Step 1: Select the `partners/` folder. - -#### Step 2: In the `partners/` folder create a folder named according to your project. - -#### Step 3: In your project folder you need to add three files: `thumbnail.png`, `banner.png` & `info.yaml`. - -The `info.yaml` file looks like this: - -```yaml -name: 'Partner' # 20 characters max -short_description: 'A short description' # 60 character max description -long_description: 'A long description used when the partner is featured' # 175 character max -tags: # max 3 tags, the most relevant should be listed first - - 'defi' # no more then 12 characters per tag - - 'infra' -url: 'https://www.autonity.org' # must be a valid https url -``` - -**Notes** - -- The `thumbnail.png` must be no more than 196x160px. -- The `banner.png` must be no more than 274x105px. -- Tags should be added in order of relevance! The most relevant tag should be the first. - -#### Step 4: Create a pull-request containing your updated data. - -#### Step 5: Submit Your Pull Request - -**When you submit your PR, please use the following naming convention for the title:** - -- **Title Format**: `Add to Partner Registry` -- **Example**: `Add MyProject to Partner Registry` - -If you are successfull, your PR will have a `new-partner` label applied to it: - -![Success Bot Label](../../resources/tutorial/success-label.png) - -And a success comment - -![Success Bot Comment](../../resources/tutorial/success-bot-comment.png) - -If your PR failed validity checks, a bot will comment on the reasons why - -![Failure bot comment](../../resources/tutorial/failure-bot-comment.png) From 5bbe05c39da829a683f43bef1a81758d690dab63 Mon Sep 17 00:00:00 2001 From: Jay Date: Fri, 28 Feb 2025 10:13:41 +0000 Subject: [PATCH 04/11] update partner example --- partners/example/{banner.png => banner_dark.png} | Bin .../example/{thumbnail.png => banner_light.png} | Bin partners/example/thumbnail_dark.png | Bin 0 -> 5154 bytes partners/example/thumbnail_light.png | Bin 0 -> 5154 bytes 4 files changed, 0 insertions(+), 0 deletions(-) rename partners/example/{banner.png => banner_dark.png} (100%) rename partners/example/{thumbnail.png => banner_light.png} (100%) create mode 100644 partners/example/thumbnail_dark.png create mode 100644 partners/example/thumbnail_light.png diff --git a/partners/example/banner.png b/partners/example/banner_dark.png similarity index 100% rename from partners/example/banner.png rename to partners/example/banner_dark.png diff --git a/partners/example/thumbnail.png b/partners/example/banner_light.png similarity index 100% rename from partners/example/thumbnail.png rename to partners/example/banner_light.png diff --git a/partners/example/thumbnail_dark.png b/partners/example/thumbnail_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb5144443ba772c951e43fc8fb0afef152db6a5 GIT binary patch literal 5154 zcmeHLdr(tX8oz)FCWx@0f{*rkaeb`4Np9{XB)5qQ1W43iHbfRjMeZx)7V;puB*FSX z5En$NsC8FYw~uXocHLUkvMA#V%8siHvQxF&9kDGciWa-r6+3p>lLQfWJG0}=cJ?3c z%zd2i{J!7$zTf%InVeJ`vognsCW;^k8l%@~P2kOf+Y}K7o^QUq?h1IFUun)2Oq3UP zx*Qh1h=YYvCkJyr-U30szuJsTqr#>}Jh>gGDOU?$DD79LH>PY^VLq|s^Qp)9p{E~Rg5OV(QD}5X9c)mY(y{mB=eP6r);5bTi!<)MQbgSnKmK@s?1NGF>y{vs%8SQAP)H@8mS)ta zr9DjtB(Z08twwi#Ui^lReH+scMR}r&|72`FEBV=%xrdGGMepQTKRw&oKG)j5^}Twf z=*Y$1=7yAv@ue_2m;U95|D)$+I_3%#(}y`hL0mv{q8N zjFY)ud0RB*qwetjijKzPqU`N?CS{0lTG`q%v#m}{bidKN`kwMqEZi5l?2c{i@sNva zw&ghrFDK^bPpYrC7hZVD`NyzGO~OaBPMWsvG|q&23LY9%`47f-E${vA3fXceZ0kFD z@7v2N((*shebzmvC#vKh_d9my^sj-0O4t7C=Hhjr?tDC`uUx}Il5yB16ziZliO=Q) zg$F_ExjrYw6mkMga|OIzgY=v{jlevsL4J{BkQtn5oR!zDbaB}$v&_uOLPo_RbLWWE zJ`xbvIDvwFwj#Tm^l6X)FA2W=W+?&(AVQ%A$u$_^G>40W2?-&Qq3J%}BS+?lV6}_2 zkS1-$00n4i5UU_KNvYK9^-8?B#NjHCVk(tNDw9j)augs?cd1>Ve5l=>=%)yBXgN3I z;++ETu)}^%iguI;8Uz9T@YDEgPJ>~P-tHby0q7z1QBEl)kx6Yf=}-^1knRB_0|EV@ zhuaL6sno=|9VIS?OZRYgA#o@L%MAKEOI$^PbXZ2p6>&BIb%Rl{=Z4JG8;pYt2K!E!o?{ny*85OR=a7q@SVi_{S;j&R+I(Zvaz)79~_InO?8^Cg6DS^^b0tZNCa)Oj8NsKUKICzqT zYPJj`Wkc`|mbaAtH?)88!0Ov%U9zcgS9uBdFTIM@m{i}=7&g5kiTASou8f}8Si z!TAPU!7j#1*$X(ZdkmE8Q#=0yrJ%q#2Dd1aP>f=dP(qGjD6NpQD3(MhlNgyCr{({~ z?sixNFXiG=3V@D4D^Q*Rt>Bq~iJBGAY%mtDmGjR65Db+m(LuqIumQoO0|`t0d&bj@ z)zbgaL>&MO*<^rU&;~Xyuop@PH^TwVKmacMBABwWp?SBifj^m`5PCtT7OEOKMF$$Aow_A%2olHo?+|GBo_Jsk7xaeo@UDoc z$SAz^rwu882y~M8fEpE)8_VEUN)#?dnpX65DfR`dO6q`qnmcN#MfAh3094@M^ zi1YO6Bi`L<`}~{EHzN*x>baZWFrxO2Zx%#r!`7WR624h?sm*$X^*7lm;Va}n&Hs^ literal 0 HcmV?d00001 diff --git a/partners/example/thumbnail_light.png b/partners/example/thumbnail_light.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb5144443ba772c951e43fc8fb0afef152db6a5 GIT binary patch literal 5154 zcmeHLdr(tX8oz)FCWx@0f{*rkaeb`4Np9{XB)5qQ1W43iHbfRjMeZx)7V;puB*FSX z5En$NsC8FYw~uXocHLUkvMA#V%8siHvQxF&9kDGciWa-r6+3p>lLQfWJG0}=cJ?3c z%zd2i{J!7$zTf%InVeJ`vognsCW;^k8l%@~P2kOf+Y}K7o^QUq?h1IFUun)2Oq3UP zx*Qh1h=YYvCkJyr-U30szuJsTqr#>}Jh>gGDOU?$DD79LH>PY^VLq|s^Qp)9p{E~Rg5OV(QD}5X9c)mY(y{mB=eP6r);5bTi!<)MQbgSnKmK@s?1NGF>y{vs%8SQAP)H@8mS)ta zr9DjtB(Z08twwi#Ui^lReH+scMR}r&|72`FEBV=%xrdGGMepQTKRw&oKG)j5^}Twf z=*Y$1=7yAv@ue_2m;U95|D)$+I_3%#(}y`hL0mv{q8N zjFY)ud0RB*qwetjijKzPqU`N?CS{0lTG`q%v#m}{bidKN`kwMqEZi5l?2c{i@sNva zw&ghrFDK^bPpYrC7hZVD`NyzGO~OaBPMWsvG|q&23LY9%`47f-E${vA3fXceZ0kFD z@7v2N((*shebzmvC#vKh_d9my^sj-0O4t7C=Hhjr?tDC`uUx}Il5yB16ziZliO=Q) zg$F_ExjrYw6mkMga|OIzgY=v{jlevsL4J{BkQtn5oR!zDbaB}$v&_uOLPo_RbLWWE zJ`xbvIDvwFwj#Tm^l6X)FA2W=W+?&(AVQ%A$u$_^G>40W2?-&Qq3J%}BS+?lV6}_2 zkS1-$00n4i5UU_KNvYK9^-8?B#NjHCVk(tNDw9j)augs?cd1>Ve5l=>=%)yBXgN3I z;++ETu)}^%iguI;8Uz9T@YDEgPJ>~P-tHby0q7z1QBEl)kx6Yf=}-^1knRB_0|EV@ zhuaL6sno=|9VIS?OZRYgA#o@L%MAKEOI$^PbXZ2p6>&BIb%Rl{=Z4JG8;pYt2K!E!o?{ny*85OR=a7q@SVi_{S;j&R+I(Zvaz)79~_InO?8^Cg6DS^^b0tZNCa)Oj8NsKUKICzqT zYPJj`Wkc`|mbaAtH?)88!0Ov%U9zcgS9uBdFTIM@m{i}=7&g5kiTASou8f}8Si z!TAPU!7j#1*$X(ZdkmE8Q#=0yrJ%q#2Dd1aP>f=dP(qGjD6NpQD3(MhlNgyCr{({~ z?sixNFXiG=3V@D4D^Q*Rt>Bq~iJBGAY%mtDmGjR65Db+m(LuqIumQoO0|`t0d&bj@ z)zbgaL>&MO*<^rU&;~Xyuop@PH^TwVKmacMBABwWp?SBifj^m`5PCtT7OEOKMF$$Aow_A%2olHo?+|GBo_Jsk7xaeo@UDoc z$SAz^rwu882y~M8fEpE)8_VEUN)#?dnpX65DfR`dO6q`qnmcN#MfAh3094@M^ zi1YO6Bi`L<`}~{EHzN*x>baZWFrxO2Zx%#r!`7WR624h?sm*$X^*7lm;Va}n&Hs^ literal 0 HcmV?d00001 From e9008636768bd7da727f6f67297a5e81d06837e7 Mon Sep 17 00:00:00 2001 From: Jay Date: Fri, 28 Feb 2025 10:16:32 +0000 Subject: [PATCH 05/11] update partners to prevent validation errors --- .../Stakeflow/{banner.png => banner_dark.png} | Bin partners/Stakeflow/banner_light.png | Bin 0 -> 4193 bytes .../{thumbnail.png => thumbnail_dark.png} | Bin partners/Stakeflow/thumbnail_light.png | Bin 0 -> 2911 bytes .../{banner.png => banner_dark.png} | Bin .../SubQuery Decentralised RPCs/banner_light.png | Bin 0 -> 2738 bytes .../{thumbnail.png => thumbnail_dark.png} | Bin .../thumbnail_light.png | Bin 0 -> 2535 bytes .../VIA Labs/{banner.png => banner_dark.png} | Bin partners/VIA Labs/banner_light.png | Bin 0 -> 2068 bytes .../{thumbnail.png => thumbnail_dark.png} | Bin partners/VIA Labs/thumbnail_light.png | Bin 0 -> 2366 bytes partners/Web3CDN/{banner.png => banner_dark.png} | Bin partners/Web3CDN/banner_light.png | Bin 0 -> 7626 bytes .../{thumbnail.png => thumbnail_dark.png} | Bin partners/Web3CDN/thumbnail_light.png | Bin 0 -> 6222 bytes .../chorus-one/{banner.png => banner_dark.png} | Bin partners/chorus-one/banner_light.png | Bin 0 -> 4811 bytes .../{thumbnail.png => thumbnail_dark.png} | Bin partners/chorus-one/thumbnail_light.png | Bin 0 -> 9806 bytes 20 files changed, 0 insertions(+), 0 deletions(-) rename partners/Stakeflow/{banner.png => banner_dark.png} (100%) create mode 100644 partners/Stakeflow/banner_light.png rename partners/Stakeflow/{thumbnail.png => thumbnail_dark.png} (100%) create mode 100644 partners/Stakeflow/thumbnail_light.png rename partners/SubQuery Decentralised RPCs/{banner.png => banner_dark.png} (100%) create mode 100644 partners/SubQuery Decentralised RPCs/banner_light.png rename partners/SubQuery Decentralised RPCs/{thumbnail.png => thumbnail_dark.png} (100%) create mode 100644 partners/SubQuery Decentralised RPCs/thumbnail_light.png rename partners/VIA Labs/{banner.png => banner_dark.png} (100%) create mode 100644 partners/VIA Labs/banner_light.png rename partners/VIA Labs/{thumbnail.png => thumbnail_dark.png} (100%) create mode 100644 partners/VIA Labs/thumbnail_light.png rename partners/Web3CDN/{banner.png => banner_dark.png} (100%) create mode 100644 partners/Web3CDN/banner_light.png rename partners/Web3CDN/{thumbnail.png => thumbnail_dark.png} (100%) create mode 100644 partners/Web3CDN/thumbnail_light.png rename partners/chorus-one/{banner.png => banner_dark.png} (100%) create mode 100644 partners/chorus-one/banner_light.png rename partners/chorus-one/{thumbnail.png => thumbnail_dark.png} (100%) create mode 100644 partners/chorus-one/thumbnail_light.png diff --git a/partners/Stakeflow/banner.png b/partners/Stakeflow/banner_dark.png similarity index 100% rename from partners/Stakeflow/banner.png rename to partners/Stakeflow/banner_dark.png diff --git a/partners/Stakeflow/banner_light.png b/partners/Stakeflow/banner_light.png new file mode 100644 index 0000000000000000000000000000000000000000..4459a4968e8c3cf52d0d28dc0539a749e3285644 GIT binary patch literal 4193 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%0A5NE(es<4mpFK`tb5lf|{8Mxz~X6bQ8D~< rLJ56AK|xyQD$!^(xrHAW#)}R2n3=C zDuTsBO@$Fpq=F|367EY?5SEOTVtgSrDK=2kWqlzw_Fj7a2Y<`i@tN6+*LK3rPdc96 znKNf*z2Ewx-STdF0}fUQEEBL4pt? zOYZQhOWGkqrn}e<5=1BzDj^q_G(&_;E!cWB2fh>G(!%0#v~<>6RFs!VIpf9XuqQ0; zHcY0+ps*Ph_epg4%XX@7?Ty*ix^?ShDJm+W;^JbeudkP-s;WwEnf?3s)7-gpDPC~? zjT<+j_ThZAV|Sd%$;qKJXU@pimoHzI#R`t2p4t|FmSpbj+_`fx&%1Kv3SGT=RlcsM zsGy4%FH&1u8^z1&)vIaMs#TPooh{#Yb#+CxsdD1P3EH)5mu*{1mMo#d!a{iucEoBU z0qXF_t2r=g33Ya+Nt=G0PoK=o6Cx1KD?=E*xI-g@q!_T31$QkD|K)eZwDb>OQ)f>| z+a4R;;>C-j_QPmVU|6S4oubpHPe=A!>pGz`;w@XYM73cj2pA04yLIc)=C3~5crx9$)!t|XzSLkk^OuQ zuF=rYplx&G#*MPRogi>73vZ~1X$D(Cl+Y+JJ9iA7TvAL$xf#;-m+ zE+o7|Ff8}ML*$I}IJOC+V&g%N2_wNj7)EvE$Pwu+cJACsw{PE;MhS6XpUTmrN97jB ztwyFZWYt*l8lvp%?4(54v15l67Jv|NUpfvQI%M0n?%swIc$1o%8mg|Yj@l3Ja`x<5 zxjlIBU{r5@^X5&OKYzYf5D*f;_XVR@g~UJ*Xd?yGwY0QgIY+c0N=izQOpkcTw0hb^ zs`zOE<%|`UE=BO#@Cm{YB`m~%W2R{g)Db=BwP&{80W4d#Om1NuFdpX7qerx6%^La7 zgu%i9Q3t|6QDH%}wzg_}T@?Xen0QDtQ%rGSV0B1#ZmuXn`7 zP&VZ)`g~p?8R+aouf0K6e~7Mp<)?=Ky`({T3TM+P0EI=6grcIj?_Aa9VLK|I} zKQ283LNT2noWiXHspA*ckZD8(F?DPvRm_ur0AU>oKBHQbs%6aclVP=N(3NkMc_J8coQ>t$8Q7VAJvyoxT zc>uzqREHWIp0VcvxCRUz$6^TrISq$fxNmjz%judr4>BB|FBb8PM4^r~QAgN>JVF(O zRUj~YoTu)?ImlU3foYm8{Mssr5*i_PO)n5)$Q;NA!qQ7r{_9!F!~kG~2s=1|Mo-PX zIE)sdOsWh=O@bL*1Ni_#DO}4g{6Sd7VgT`o0r2py733Yd&xKwViLD*z<*hw+yy%kN zc);~=PiiiJoI&+C5RDpY0Sw7HT(;bdBoH$jdhQ79}&lP-SaqqFtx zlxiRf{PTGHo&~}0)nV6UL7QyQ$R8L^(BYxhu3by#&!5+xuZjU+s2KMgD}TVXbcSdb zYN4)E5}K@04+VG)2vrS<;0;t`XVD<1U{F7i`4I=|)He}9V9ADvrD(X>GNp(jb{YO2~MVA z!1wRpj||>Mo5K9zuKGT*bYr-eY>YQEsJw6%ee!mRh>k?w5Hf{lFzE5O{ZwB2P>w1wzbz`D z%J-(x%C{%b#+mta?Kd-M;XC6f5nxm>OzXS?8^1b&6VJ@A6P!Qbn)u?>!ZY7IC!qsj z7Q!5Lb{X|CWcz)9lipas*mZ(HvW<`kAU8mWWCi&Gj&Yq-Cepa~2M85)c?>7kAeA0MO{hU6WE#pd5Fd{Dm==xs8D)8TDa-7o zOizy}Vk=(DeRyy53L*3g1$xP2c&SH-;ZNVRQf=ppsJ8OFIn@1f2DKYmG>QI8nc*Ip zYm`pRqC`*=Qy8Lkh?PAE=;-L6WMS_DBgU7h10!7M@sW7P%2(jE_U_#q86CrbK&;Sd zv_S%lby7}ijzD>Nxm>vJ zl?pHZ(*ci_3PB)Dv71c>Y@C>d-nMO# zB))8Q4hDl|G=fjhxws5BSmuq?KsU0a@_$9cl}MtnG<5&~002ov JPDHLkV1k9EWq<$x literal 0 HcmV?d00001 diff --git a/partners/SubQuery Decentralised RPCs/banner.png b/partners/SubQuery Decentralised RPCs/banner_dark.png similarity index 100% rename from partners/SubQuery Decentralised RPCs/banner.png rename to partners/SubQuery Decentralised RPCs/banner_dark.png diff --git a/partners/SubQuery Decentralised RPCs/banner_light.png b/partners/SubQuery Decentralised RPCs/banner_light.png new file mode 100644 index 0000000000000000000000000000000000000000..1a4502e9ff2738d11bb7576d2e7fa864f997fc4b GIT binary patch literal 2738 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 Sv#BQke0M|(GLCc1Bk^Cl?%D|e literal 0 HcmV?d00001 diff --git a/partners/SubQuery Decentralised RPCs/thumbnail.png b/partners/SubQuery Decentralised RPCs/thumbnail_dark.png similarity index 100% rename from partners/SubQuery Decentralised RPCs/thumbnail.png rename to partners/SubQuery Decentralised RPCs/thumbnail_dark.png diff --git a/partners/SubQuery Decentralised RPCs/thumbnail_light.png b/partners/SubQuery Decentralised RPCs/thumbnail_light.png new file mode 100644 index 0000000000000000000000000000000000000000..040543b419566a843672cc64a4eaef0062141ffe GIT binary patch literal 2535 zcmV005u}0{{R3yb+fl0003OP)t-s00030 z|NsB~{tF2V1q24PWZ)hh9@J*u=V{%`X5Zgu-oRzwFfTB&va(`dVG$4!&CSjF`uh6V z_xj!V`{Vfi>HDQ);CFU++}qs#@caJv{p{@Q`O)^`;o|qo^!CH?^tbQtm*?(~=JBKI z^}X=$o$2g-;`FfY?Stdu}ygT;%if^H5JvmSNy!U*i}NB~)JJcVOd= zjE-t(YUk(YhhgGwZf-WQj(Jw_LlGYLUoa#MFk(#KXkgt=LIX#m1k)w2`sUbIEj5!na$< zfKz>@P_5#_-@Sae{qp>hZKDPN00@goL_t(|+U?wZchj~S0B~CprqK9p_uj_$W}z*N z4H!5D>V&wlow}qXqoL_-%P8#oe~!s1Es-TTmLjJ)J9+3Se^|19eI(10QqVL-VKwxb zaO>Kt#TvK-oG z+n%nM7fJ%LPuHb{(DJgD8fArYz^PA4IL)7kPzw0nCn3D`mF{I3;H^(s_`QEcgc86R zpP-QN>7bNQ97ykhI?xNkcZTgW!i90!J|lgL`8dxq&P>Pa zPbPh@;p%e(G(3l2c0nI6hst7MA2)|9N_-XOP?4{)94hnS8LZn`Wnb3I17EeT zF;M8!G{bb&`urePdzRU1D)oU;r1-Ga9;!?s=(LdPjc>-}C zD+D@e1t

g+S9#4@6ycPYD>>6#(1HfMD*?l3WJKl`~jC=mr&J5C*wrf8Q@{1b&k| zJ*=XOW0QQ9TD5lKl`#U}GrJZ!Ntx=WL9IqExtgJd?6jLWox){=+wjbK7^B?jT*;G4 zp&@9I5a+rHJ8cb;K0A|c$1#I;Xk>G8oVaBEl>-fvG)!(g3C6Y18Vt?8*X(o}I69rC z=Zum;x0M>Vn_}{WSXVv>5qXHOy9vyFaBDcH#f?w%!f!dP*;duh)2BGeR>V$STzpG>RaB+mW zB{`U=TC<`k$nWWZ#5@)!xv2;^mWpu*4QoP8#WF8@WKmn!&Ja)GB?SD4YOTSDF$qh( z2n>^+%9}|yjEtg)wRC85W72Q3)>w@$l$uIeyMN!CjLd?lOYA3sDYs>eWj2P1))GE< z@miAOnf|nAeljG04f*A8yR!tKKa}6_*nwX;5G0G7Swx9jG0-&^TWZz>51~YXep2Y0 zE@s%PnOkAvR|xC`{QiY;6k7EF$DrM+8Qcdc3K~@bU5ER7bjS$niPP}iY4~`X6tp6a zF|IqH5+Htaa+*Z7uIahtrWrIxgOL66z%Xej2ZDxa@s@y5efk*}$nWWWFG$%xl3|TX zZmP=xf$Jq!#2NZ_Ys4M)Zog}AmT+COk zc+`S<@8ZyOxX~Y(!-17@bs9=p9{>X|yS8mX{*%=nB<85^6bJ^IT`P#lunSj|t%*yK z@>;K5@a{%2UUU}4LI;Vc)d!qYE`h=wqcVZ@v@Zw14v$ zz&_XncObm+(a#59CDB{9@TPy~KO%S2%eVRC_y9d5mnzKpz?`Re>Ep0Cf7dCz%U+)A z!#w5$zN9B*zK=C`FE59*4^R^{;7#3<|8hjsw?HWUO$yHX<$nu>S8WbaIQj2l@mHl! z3JOR6Svb75U7_#a3gT;3ImEtyDT%Muw$BKn0z1XH=C#Yq6KBU2D zyhB|*|95M%Py;#J=CCcs?ff)NuTqxO_pJB*NpT^c{AU3Da*+p6BBU>BA4vE^&QK zPIdP2E_I9NiiD{5?Fki6$N4jf^pq&@CD*on{FuJWsS;uO?I{(z{hn3SsZtE)|c*^qEe2N)(}hIESb7ofa0N-pOMsUW{W#!AqhH4a{;#-|KQgVejMx z70*7h4ugA_M4^w2V>>LQ@3xQ-=kFO6zkYnfJV?JJO0j?%I=;-`?ZvapBe+2Rex>4f zrZ3ANQH%-H;L#<0M|olI%@ux-aI-0ShuX%^`jB6QLYpA03503?vE{0kQDU{LQiO54e!;L9tH= z$P(Vi!jd^ehgT1%*qr0TK%#sxFcZ>kloi?^A8b;-gEw<$O`_Jpy#FPD7H&Sc>Xib* zKmOdz#l3m?)3n1AqQ*R6CX{I9M))CD^I(3>-Ul%tEiBW@58=JpC{weSt1|zQghwAX zMO$GCw@TGK6b5EONgp9B=gR@N4$3@`vqCZ7RJe5=C2Jnul)sL0?*-vj7#T11nzO*Yt-X>!oQFM0-&9z>COZ7QHxp$uh=uR>Bz@UWCs30F zmd;?72U(xk|H{_;y!USJ`Pw0-dmE(^H- zZXd_=+y4Ga0%v2@fv;B(`2W{9_Oq|-&#D4%V-1uAzPp)+&NX0C$J8wQUp1d zMhYuMfOI*-4`8{Di%XX-CnN#VMe0(x(7nM4aB2mca1DasP~>uExzzn1aDcIrxzz6R z-}y-nd9vT{iQx$mea3yL$a^CC)>Hf`5q&Ro+MkH%chB+M-|VYq58T3nIGq9B+<&E>Ql4h$f!n&9NIII?E{gu_?o*OTBkQG$o>SMqL2tg^xTZ zDJdX7GXgRb5|EwweLj|%0`k%$AYJQyX3Fx39RP#EjYLWcNYlW_M0DpI9}&?uvw^of zBcdzM@dXjR$SC*LGcN()FS8#7|go5FWY1HTlgH^JI~q0>YnkBI2Eg7xHV%-A$e2^+&jIgPdXCZk-< zPFk0pDR(PaCIHzqk;sF>mvQb95EAI;tF3qX~W5)o}1bIU|CV}XV~XF4~V^L>(8HUQO8LPTn|F`=R8oK9K*s-=X8Xxo_3 zyp5bF2Q~%(54j@JG}x2GKTR96VWOFdK$N2u-2hNErH6P)(8lzgTu0`75;JN6sFop! zh}4^0Yu-kvlh!xP3&6diw1`OA7;fIiL}1Z$x9{I<*>{A{{Re%5+Wio+)9-u*KN=l3yzHvA|hpDYD})< zq8k9JrEd|DN|UcKxsL0kEy2Pp-M9}d;pl$Hx3pyF``lkD?b@|%d24e&w3#~fmrBVX z^NiVLcYV3UT`(ZIJ9>1*XE z^=U%e7@6yP=w;vDhtobqL@K|e#^gHKm~=u*Ox7wSp|yw9D5%lx^6pt z>0IBD^HM$SLqw!(jAnA3R%WrU&d0h=>W%dfFB}nBGJRM+I02cO&+LX+i;(yPWMiV- zYp3CM6_OjK9pr3VvSOl_iG6?j5D^I*qn%vGWftcq*KzBn0G=5mAZsh4bA@D*AW|i8 zpM#Ahd{d8wm=An;3Hzn+r?!Yl*_aZ^brKz+*l;SJxpN(tMl@<&1nSm_obD`5+Ar@27VZRY<6|KqzqHS~dSY?rZ<^3$5+2xOX{1*IdbbMB_i4lQ6jnSlIf(q5_+rEW@CIEXk7(_4!lI3 zTK}#!5%E0G$fMra%7p5df}LJ)79-YDL%dR3NNOh6`EK&edBD3;>uAg}Fr=3vAYk~! zE{HWvSbeYg-YW?ak?K#Vb?3SoM`LV!LIMFfE>iC2I#Nj5$!6~)?2JT1tTDOnQ28~n zbQb$rclb>yNp>ma_+BhA-^ryZ^KoPuhpyG7b#1xt#(c*mwtlJib8XsQXg?Tt`PXsVui4ZWGh}bIOrASBN{odmD3YyIg5lW5>vlp{6T13=aEB_g#Z*U^DVYXIDP`Vf&4$#vI4vr$#o$cqp@pQ3=j}7XioO~y<5L!#tP^=6ZZSIWZY)H$)7QOELVcLF}}Kwjg2S~ zg+M^S;PH*l~IqA7A-3wfsn!Vl^vgiEOL8u(|vkiTN1`=hvnp-)Tf!6vl*_)nZeK`4yQ? zejMr0=0~&K$vT!FM`;PmoXp)x-N)VckN5lidc7X+*Yo*$yCqK_IZg-PyrE<(|Bxk*XiK ztJm-fIOJ{c=(_q2!mkR|rvbgXA)%SPI){Lr#sT~J0S5@6gro!fBq3an;n7tdQ$%jR zI&|Wfdo63+6%1JBafw8F5%zdg%-vH|R5X`p+ua~eRj6IVgML1jShfM49u;4B4@y%f z(`JiLC8$r+Kv#+JUE0%W?{T`0U)@ zdnjWk0y&4XR!Jrj`iY;CM{I5jVAsC6GynRhrFi~dUB6{nKk|rsa@gP*3Qo6-9KVG< zK!4UvedfkQ7y&|n2A7V~AfNSVF{(;hZ zu_j#XlBv}?c#wWA$t2PT;-|B9Kqc9{6`#NAt+^KQQD~MVEpz3^=y|9m1VH?B9hJ47 zDR+)?w6dd_=l6EqKGGuUaVk1mTC?ZRua9Wi55Vaqu&269x9#ZUST7Rfl7wbHfc-Wh zI`j=`o1}W5YKQ=aT+hhU4+N52T~`F~h{&$fX$-HYAmw@o;Y14A7Ir@mUJX>bK0bRzq1U&l2L8RMDZz zq)pk(p8Rn2n9l6p#oEA0A~M*}X+KR^EzW%|w({Yji9Z`y=B2mbPyDcszsBZD%V55w z;#0jk&tW@0yT;X@;39B?NtVI-fRpMQOFI{hJn~^bx_o6-0x`*L)! zo=Oz6)#T6MzO+yOsj*D9wUSpO)<5eGd5H66Zd{b(30#ZeTxf-q7qUL=C(E7X-}TSk zqxD7RrmO`vaz&ZcYz-Rw?i(e$9qqR>li~mAT*vT)Go3BXoIE7*7fwekCcBO?!AQ!@ zS|^k~s@4#sf-1RQfToR=^>QKzM@h*zhSejA+IMB7g>$L5e;5;Kqd0e zrlIbXoC5TB7}rqO!AQlgLu(j${~TmvVh-{1KRMe+atZZE~c2Q`%rB4ki^0<1fm0q zr90$rc%O{nSTvxCh0;xvM48jFx22IP<^-ljumDpN6g!6aWeM~sDvT&P)Pi^QN2LU@ z(mlDcgcuI05%3#FAnE`=pbqZ}0J#Dxu|R)fw;Nk6vUEKmuv5`mnkP{_Pm zcPAmnv`QQgsHY*YMIQopFu{a&r2h2%n9Z8n%_Au&ek`*CYCOin{6YLwif-(CibG>_ zfmWVJu23humDQc3p|S$y zfOnpQ{DPF-u1qKOb;4j2?Q={>6;v|SS|cWE#%{`{QeLQo$oRt(ak-pTzB7}$#rj*~ zP|1-y8AdC0eli7sk>hZIImT|kq!HEM$trz&@rEOWHPtoQIMFkPYGkyK1mg%^EA)I> z$Y9!4;3R&{$D!i`K8KF?_{v@@GmTcLLAhN~>T(9nm0_EwY9?{?&O?_rwAx(L^N<9c-BSo^4e5&bvnZ z;x&RtM5Pe84*AqqNK9}m-nBkbQHsulu2S8&+;#q=W^?r=Bxb+|AR{e3dG@km6K&ri zhApvg7XV%iHO0;r#@b*j#f0nYd`0tq^(Bv|*P4yz+1%7MTdd{vh@zl#UM+>O{7pX2 zEr4EEMNj>~v-%02Mh5$`uX3RFFUfq+J++{7R>_hDIFYnC95=f!K1Nu!p=p^@4jgiX z@_qTA8|(__HusZuK&B+l#)CBG(_^e&^6qJP=Y-GF1q~!7mRWrFh>L-f2XZ9@>uM4% zXLU@yan=_IvVCRg>p(YOcmMZJbJ#{hex&__K1t`Bx@YB^H#<&rWg1I#-T6YUyC4<* zXS1vllM9X{(-O1XBE$ViS-40qtE86`^5LyMLUIXE$&}uFDzBk8&Opq3X|jN1!V!}?*Kl@`XK^2Naa-DenlIqo-tcXsD; zcfVS~V3cR=UEty680frKPY|=5)@j^cO0*7?rfSRt^Kq|FXkJ}V&gsF!d(Q?);Z#vb zsXgv*PL*SK?ohboqmEb~;(nw>&@$p5rFG_my@Lt=-OXwZ+Nbq_)!NfY)i@oMgWEHH zgw?4eGr*%-#`M@pSZa8KP66xqXwymHB_Oon_l}vXMklIAi2;7?oW3-1?WiE2b)2Ui zt+|B`E$|AGA=2BiDvDDf0^6yo-CPYdql6+E_SM~W&I`oypi2}w@sG}Q$hE7WJ2xjg URNF)wz=sIr?&9UlcMQ+?2i7}t*8l(j literal 0 HcmV?d00001 diff --git a/partners/Web3CDN/banner.png b/partners/Web3CDN/banner_dark.png similarity index 100% rename from partners/Web3CDN/banner.png rename to partners/Web3CDN/banner_dark.png diff --git a/partners/Web3CDN/banner_light.png b/partners/Web3CDN/banner_light.png new file mode 100644 index 0000000000000000000000000000000000000000..db0463566c98e5959d9dcc90a28fee19d9fc8dab GIT binary patch literal 7626 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 literal 0 HcmV?d00001 diff --git a/partners/chorus-one/thumbnail.png b/partners/chorus-one/thumbnail_dark.png similarity index 100% rename from partners/chorus-one/thumbnail.png rename to partners/chorus-one/thumbnail_dark.png diff --git a/partners/chorus-one/thumbnail_light.png b/partners/chorus-one/thumbnail_light.png new file mode 100644 index 0000000000000000000000000000000000000000..7b1183a76da2b1da567568e8f79bb0738caf1dda GIT binary patch literal 9806 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 td!vK} Date: Fri, 28 Feb 2025 10:24:40 +0000 Subject: [PATCH 06/11] general clean up --- README.md | 6 +++++- resources/tutorial/failure-bot-comment.png | Bin 28688 -> 0 bytes resources/tutorial/gha.png | Bin 0 -> 28894 bytes resources/tutorial/success-bot-comment.png | Bin 19502 -> 0 bytes resources/tutorial/success-label.png | Bin 11345 -> 0 bytes scripts/partners.json | 1 - tests/partners/autonity/README.md | 21 --------------------- 7 files changed, 5 insertions(+), 23 deletions(-) delete mode 100644 resources/tutorial/failure-bot-comment.png create mode 100644 resources/tutorial/gha.png delete mode 100644 resources/tutorial/success-bot-comment.png delete mode 100644 resources/tutorial/success-label.png delete mode 100644 scripts/partners.json delete mode 100644 tests/partners/autonity/README.md diff --git a/README.md b/README.md index 4f0997d..968ae44 100644 --- a/README.md +++ b/README.md @@ -45,4 +45,8 @@ The `banner_dark.png` must be no more than 274x105px. This is used when your pro - **Title Format**: `Add to Partner Registry` - **Example**: `Add MyProject to Partner Registry` -If your PR fails validation checks, please check the github action, it will have the reason why +--- + +If your PR fails validation checks, please check the github action, it will have the reason why. This will be in the **Check partners are valid** section of the github action. + +![Failure bot comment](resources/tutorial/gha.png) diff --git a/resources/tutorial/failure-bot-comment.png b/resources/tutorial/failure-bot-comment.png deleted file mode 100644 index 399ef693b0baa1eeef49054f824cbccc4d966ea1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28688 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 diff --git a/resources/tutorial/gha.png b/resources/tutorial/gha.png new file mode 100644 index 0000000000000000000000000000000000000000..6b5d38e5ab88191cda67411ea239f747b604259d GIT binary patch literal 28894 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 z�Z`f0}fIB~ES_w(@gE{d;WAM`H|+wC21g4<8TVi)aS5r}wV!a{YxG@Xbt=(6KK) zA(q^Fr^iO6O&Ctu-pESsa=6b8tFn@BiONnAG!ljQBXPmlBvp1{$54Y#`DX`%lA^>U zbOHijwrAZktv|GmMnUxfo{oi5+&+00x$}!GIN|B5%`ag`n+bowGMa%0iHT!dbYCZg zh!K&RbWKJvFmjWz^^iL z_*@Pf){IN=s*s6FFi;LcU9|9rA`gLO+6nF7sn5%^7H%lOoy&~AdoqA zw&r#Ez@=5a=>rsAMv8I7WxB3AIoPas!$z1r z-<(-!R0m$KSh)}iARUZg_kJJ@As;{HU3{8ceXP;sWRRIrSEsnidFA!cQ%_DqqQhZ? zl^&bvDPp4Z`T(OmuWJWc=*^o+qNudUR!E%{;hAVWG++4-T!V#U#xZANUSG?k6V@1L zgb8eecuZ7L1p+&UV-rX4D{UK?8HdZ)VZgK|li^a|**dSVtVO2Ay=c9c2j5`{Y=+X^ z5eD)1Aq+-Fmu;X=gQFU-Wt%IOjj!4vG6O#qM@CeCSuVb>o~`XhVYdi=Wx3r;XJ9Cw zJ|&jMU4BkM{e!|tms{XjABQ0Q4Q*c4FB`ZNM{)Hjn@z%`5@Sk8G1Nk8w_R1(Vm|(6ayyi2G@`av0|N9avTjj2lHnfMAf3JD7eyywke>?5?Oo&HgKPX9 z9h09%q)EH|nS4U`9Vi9yl;DB)!)@7r+~zDg&E-fRTpL~d(VY#HD!>qeo}8*hPP#() z5#*m724+x@>&wF&5L)RFe3$jIk6coF8r1}3r^!C#POdJdu&S3lB8-DkK5pSh_iT)( zi|MtpK|>Z;UGTUkLNi}noim+TjN={%?LU)CBhJ2W^}PG8;3D&Em&*V^paO~kGY-n)0Mm-cbsMS` zY2G+fKhp*29S*?uW0)So5go`*+p{r;lT~`6<7RiRLJJGoQ17=aGtbv3e$F*um(jL} zRS1SM)BfcXSIjrPGk1O*H++g~Y?!)_V>yY{=ctkosN6$i$v_!7iD-ssUf#OnrFLag zYxALc4p^0iA{d^4wMH4N*T1vA$_{FAzbBBB>{@sPxrg3WM1L`RPc8*b*W{^d|`} zYz3Hi1g19gFsGz$SOh0(M;@E);5hG(3$X0(Cp8!};gX}GxL5ASQ(_5PfAl0z1M^xa z$p*RmLQBi)ccP{SC|YA`5ftM%(3M=ey|=+yMa7pVwOOAEbxeKAZ+@GC>eW(3zVPw{ z13kau7O9*O$qDgh#*_nsHY3Djb+&@EruZZ>kqqBvYleBUiR_#8`^juQE^eHYs}GM8 zk+;-03N!DN>w{IjR2uB*`!U=jx4ta=lI+|w1J}Ch>cH2Pm&bC~4a0ujCx`vWsL-1@ zBm(X7;e1{5&hQ9|jf06X>8r6ZX7B6DicECJUX9Y1>m}p7_wpt}+V^5&(&ErnqaCl0 zuR!W<9E2$<$SBD?W)>mhwYT5j-(QLeYsw~Pm6ZiRC^9zD2U#xpN$jQ<`tZ?gQ@?*h zjXgyHmg+UqN^H4JM`4tAoXb{PSvevP=GpI)f#lvqXYg&o>6IOB4jk9=p>f}j4eL;0Xqt3Wldg`4FsM+N>DptBUa*cslz3lcCvl<%pH?sl#^$0 zK3;R8tvR!%X6*2hq5AMpjkm}jy|#Rl7W(k>K2Kh3865nrF%~NX zLB`$;`^~UWP-r1Kq;E-{$)DaJSiIX=ppEbEWB)c$%Ze>tuddZohGh^ciW6n(jSRX{ z9tIXBtW_vR%LPU4rZ}?523;4uMH;gRiYbkMaV>K5v(mLN)6)~6RTwXomR816Ku~pF zaa}Nh{J3<*BV+*RjrmtK3U70Tbv)Z0tD0K}`u0Q{ML3*bRJ6kr%MS(*A=jt-Xe~X2y$i@ZY!}{B?0< z16Kwe7C_U0Pwf~UmNQQ$g+sGmUK&N9$X?MKf_wg^S<|djjBgSFZhrP_I0XbqH6Q7d zbvOQc1$rdUenNsxne4pe6y&~zu^YYU5+zE=-g~r?>mW6j7iiY0Qjgof@6PhqCZ(fK zFL#P^&$4PMGk-|g5Dz+hNv|&ldcW}P)!y{HYObnEC}HUUh;)L+y#R~+X&iP7^9*xkfJ!A#`-`p&J6PI037 zpId1TRL>Hj@kMPve+Ft#c)DQL>^}TDJLNmV$*-`({N)gRO(TEb)qxGUa`M}x%a0KR zFg(1xyE=%OllzLh)H~BsgHPIz4Ue^ALK2!hC*1Q&)lnkk$P2=yDZPWK9D|4vNnFgl_u0SKh#og=Pn<; zK&~O`E({)e(OP#ZbVY6w&maxCp=!G5b)@~W3dF$B@OiB{5jnaZxI|s6^Z_i(D(~0D zKeqHqsK^3efv6R~MMLRzes!p1{P|h4&BK-W@ds2?*(LeXVZsNlk7&Aa2y&m%*Wzs`hV5D%Z0BfiX*HB~db@>05>SMr zpBFj<1f(o|4SZKGDkO9b{=0zTe_7rzL{wz^uS$obme+m%yHbb$0T3On|DVcmRdgIn6P{#|Ews>L*Z$Ijs_w4un+cJV5k-K-h6MuyLl74eQUC*kCZ)K|4qX0db|z zppWNgqhQcEmZPwmqawh>(M8|h7|hfLU~Np}U}$e_Y~x@CaJ+!%;sF(+`CCZP-dNw! z9ANWZ$=uo)Ox4)vJN?h^vWAY|f71VC`p!Vl!OXxx&-9&N`n!Ol()T;wGBB|3VB$jj zO0Mar8y;Gb4)^Y8J%`rQZZ{QPuznHJRJh|SwI_d^Z9krgn*mYe@ZOIN z<`+?Lxur_Di-^=jF45{{N}y9^>&ibcCrN$&;r~_O^N&qxnlEx&;qmj13JP;#l2hNg ziTq5b=96-?*lFs=l0-$@xLVO2rz^7G0wpQ`k?{XoAoxk?KhpkRjRjg*wZU=<$ziWG zeg9VI|8-|eYA`Ah8IR`}qWcP>ZPQl#U%8!$X#D>r_#3kLpW>j+DC8Hpfd2>!#D77_ zhW)p8a#UhI^nVM;3QD>0W`!rZvg=>^eb z{1sOD6(Tl^G$u1qg2DvpS7IW@DhK*>S#ea19r`<`4uskSZpxf9rFd3x`K=eI@>aV=1Y%WV6*{8pkVoM;}=~A3r-> zE5?ED$ncZFcx85=idZZnG*bVab<04riG{%VDBRcg2i8=)0#fh4MzZ5HH#?i_$xefU zipu7CNbeK4X>#x_u9}{e$}P13IeW7MN4V@kD!Q2zoLBfF2iWM8cGozD%TO$kKrfWZkjUcks;;l6 zzFo%WcBeNSgzxR^dwK$9JsqS0Tpus>Yi=ZDCHEK4*65Tv*L!=380hJVxp!A23yA*h z10Pjr=s^Df(Zt7B1+1O4%uJorfZwADR6#{WWH~uGQYk+RhW{wVH8e2mdR{^O`0-;r znZfURf9%@{m$1CfvmI*!)luA)6ow$mf0TapFy``TSuR!jG`~|@Tf5U605_h=jUy=7 zhf-u{Wi{UJcEjdzPu*a#;2uCiolN;dUghLphkq^Wu#!?T`801bk-ELRD_CbTQA<@o zE)m)FZDTQ47|zqv(`>$YCaom?zs_$!g$i!r2aUky`AC0oaA0O`ZVXtOogIB2186SZ z_cksR%lmD4zeKp-9Vgfn{M%xI_Gkrl;u87>XR#q}{^58a?i|fM~BCt*O6B>)f@{o=W?wFXE zban?)&Wx~cbg}XA{+*rP_l?LzBGq=gBD7k~ml7veOBroo@pQWQXZHJI;&G-q?>JT~ ztr63jO;1yo`pXL*F9mZ{x}99g($Xas77}HNGLT!Zac7)9q+DF-{1DGwzft}ZhU6PN zX4s2$ecqTselk|mE${BmF)}j39?9u+jHcOSL-PImFOP@wnD}@h1qGCc^Nqf(t*k8X zX9`hU*ke9c3JQv$UU9HG(<$!)r^k~?Z7v{nzWE%fSx)w)dzRmE*CWK~Sq5esYvUyZ zfVRjl0*ZMvqo*aw?YB%TuY;z#T;DZB;+AKKqfU&$(g*WetrHFsKF?lR%ABsaZ7M;V zJK$zv{D{l-F`7oRsUwl=J>ioIqvtHCjZu5%o?w%-$>T#85wBuG_pSpq_R+}sxM)$p z`MuHTDp;(JA^u;#AlKYf`?XrFFR0OElVPe)golS$s$6zIdxV3Dsb^)CPUgkR%8Jcm z^*DRfck^d{d^|j4cPKjZ3ZDF3Yvo%~@0`DoLT0g;)WWhS5Y1A>s_$dla=dk(#NHZc zpGfd!W?6;rO>$-BhR1)ib)s2T6o@;ThTI)mBguXRTg0A3r<-Y)6-j!#XbrMmif4bH z+Hf)FDUArg=*c)y%rt768k57PKGAT!$M}}=M`p|g%W(y?@p>6ajZQ=UMYiPpu(Br! zLdm})J;7N7RB>M*LY`I&aK#iVW@cuFL_?3171SaF1A}WTko)cQA@O=1-7@>lec9y+ zIF(sldZJd+);iGsPEH;@;Z=u`Akp(Ngf*_+7~=qFRJ>XUN||G~xa1KamO2he4t(J$WkQg|KtVuV4h z^~>~vqaR;=;@Kgjidi>?H;**K4q%@6L>YpkDo|jm0lEv1K^}$Rq-)z+%IXQU)9m2@2o(jdpd;zN(mk7|eFBHin%s=Di z{i5#-9}kA&w8EAK8t=$lX_J3RGJk(VQ^bX-<<7y%?84Ji(*FKNZ-|3n3aEvhfoW0^jkOit~EV}RaxzAO4)VvrFX>cU(w{2B!u7Q5u zId#kO{3a~{%RYIKp#%9|Kq$TRxy+d;d9j0qBOleyohmH~^6S-i^b89p^93g`e42@A z@H^Wfb8sdcouurIq0jAE5(TM<%|5f=!pbyPJWr7bV=47!vLX5cT?#9`zf6G-2loM% zNS$B&QPK*d1~|{IFy~XA6PRal%|#E-4Iek81%`%WRXRlIivuY9@eaxW_b4%+EJdR9 zq}>=fCX&N~q)j$laQiM~P&fubI!Nbv^PLu0mv4E+L_aEpmv8On6&hWPNf$XIad9)V zC>;qFNt&*_nnE`3J#g&{eR2U94IO=V%E0BAZWRbfUplzAW4YjwloP@&t%p@xZuw~@ zgmi40Za7olp%$*$pZ%;(FmMEElR6r@j8C1i!?%7_VfAr_ol{EeNSUU;R*OXR!qiLd z!hlkFebVUnxEcC` z+399u6ys8!tAY+em%9UXJH&XwOy=UYbad6~i9-x*+V?S2Gg@#^a8e3dTm)O~U?CL%u9e9LW8}L z)qK{!Y15s`qo&|n4pw^P)Qm%F!5(*U2uvZPXOI55;jewp1$n&8$-QNv?Cebe^qP_E zG6W-~f|a0)n|n=Yrm`HnVcoTq7i%YMmc|12Y~H0vY6C42P1@Hg##TCo=6Fl1_-3J4Cq_xtCcHO|~5#0du1 zM;Kt^I%#>j)lhZ$&sH(=nO9#LhXl|y&O z3m2?((4>@KD&f<3z~;z&s*U$a7x4hYzt0m%xX3ba))H&aC)>hPd9XD%Fg?9BMnaj< zQy2>>o)Kl?42GuAuO3}F@ResnE?2ulBi5>GabzviCdZ$o2I5KVnm+(sGeIP z7F(ozc+lTJN~pN<7scq#Z7QTSOSY-iQ6VxJsK13C%)8)?iUQK~g>J$7wzFGlt>&|U3$ONl-p(jJ zX`bn?%S_b123%AUsNHLGfL1?)gj0IHn33gM{Z%gDS)bvpi*`+7PohD?ug?pSuM;%A zlfK|BYGsY#0%hWn=R|tc`1gIvG*v5-!!vMK?`OooC_(mCH&j-T6|lNEV@})eY0ctG z9|TW0Vl1_^Jd(!~e;oeq!wX8qaU1e#+W9v>g5;fl+n$z*bguTp7&tIDHQYPH06 zh$*P>XlQ7tX=q^BIqS4|$TVD^(a@M9SrC#v;2n5#EPL0YU-foj(71lf~Y+YZ_^t z!6#@f#^sP4_W;MHww5U0_UUT#j%bTcrxz*g*{}@Z;q7hSO?PW@P%%Vr8F9+5Xr*Nr zY}4EK^^XoZ1W?}dN}k&he1r5&z1H>1&0tG3tCrOEUMqr@B={P#CVS(BsrQ>TRo*fG zD8Y%k0|&`a4V%wI4H0kMO}B~&Gnhi9-I)b!ezBNmu1(*8_7J1b*_7)`#^B9H`vPp( z=b^>M=&DBZrk0pLy{2J_H@mOz$L_7Wui!=|ox*M=`u~WoBdnF*9|x6QFsl!q`1L7$AdK z*e^1;hpF=<0OUgaQ;bx9wB|Q>@O+pyKX@icMj4>hO=o$2%UHan4`$O?h?$Z+(`@O1 zjmj^i)H8v%?UnvDjn;F05QWIgiyF6eZbTmuj4@#-yOSpyIAmfyM*8(VLtm=WJv z3QmSTDZea;&20;xHR-id9KMq$1{0*Q2N7d9ymZM4%dg1A7DPsX(8)nV4gI`mmj;mr z3xhB^o-oQYlg$-ki7Kr~526evKGCVqZ==vk6=!^7B2e+#LnuQm zi1QUDzr2kZH8|GfDeh@&u)ypdGvSoCV5Gcfd+YZq%h5@lxR+Jo{pE_cTJ0-HVB!vb=6L=rD{HYa0? z!#ahG_*U=W9=RKbI4^WGf%k89*X(vN*j)p0Io~xS z&#sVmQy2l@4hJ;f-}OCfCf(*X#gHr}QkieKmXzeta&uvyNHqkI2zbV8#1s-Kl}p=g zH8LGAP|)%Eem^4C zpi;CKrZENPWOjN*ePgZ6I?UQyyBU$9ghKAji;JgzZ=G&Qjj=z38-ZgE@Tx@WX_i*R zb#+B46&?XctH{oXyJn22&txT3gdsBiwu`|e-uKW-QDJI&UZ#~MW1}K<-x*qJtx1WN zZoqi=T=1XV{gaf^C9PxJ( z7vK3rsO9bSjPq7Hq1EP@z#;-_mH3BNybcNZ87Q5q--(friyw|y&G~mLG_T-fitLE2 zZL~TiO1+S9sUQ+K>5Hw&Prk_vHu=JxZC&u;c=)}Jz5k)?I%ki($dV_f;Ilv}WrA_? z#+nh@fGCS(A2YYshfLu`EH>B?V{FK)Jh0syO`K;I-x#rv->xs&c*}2Id-G z{5IsdYCE<;D=msCPiES7OJR%^o2%i2I^2r-F;V|R1>5a-o_;7-OU|2lTo?Hv;h5xx z&Ha?M@#2+z%L|lryX<*63)5Bky8>h8us!@7h0ndyokQgK_~-5P4BXduz155J<>TI3 zJB$k`?Lh=yT4}RMFC-}$7K%=lD4~;$Z}OU3i!m^A95As(r8dCYX4XpQ6L5<#Gl891 zBs~MJCjmxh-(_(w4%d zPc)Up<&G{{gOMn**;uAllIiE887unI}yKlMV!1jlJY)Ffc_z04>{m?*aKZ1U~ zIU)l7PP{FFPr)8r94mo-_7HlJm8n1=Hq<}-H;i2pqP62S{5CbE5p56qzQxVV9z#9L zcuPy{kIVXOrm(^b`grz^Gka(o^xK&q9|f6Cqu<^NCEz$GYd_p_E_hPpCvNUHz7-0% zML0M6q@#auiWJ}*KH4i-hmQ*O^T-|qnw&3r1tm&1*1juzHNT_U_F)fs=EgCp)Uf2+ z<(X68!3e(y*?oQPDoMAxqsa8b&Z$b#7a?xz(hLAhfP1p6LBVI z%#Y60DYAvvGR2}vs;M$iGVAFeA@+I)e0II6P`=CrA(8q8Lzu#>U>oH=+d|X8vILHJ z$7Mzr&%HovcQtE(+?4%0Q9%42VbplRC-+s5lenCh+=#c>hgd!tr{IqigdJc0B>95| zJcnp)C^klSPMSeb}-pe** zC+{O?n+U7_t=eQpS1M4>(2xj!a0nPDRtS&&B`T{+iG(;uapkKQx8Us`0Te z*_q7CtBTlcV}4};ZT^t`^~XWA$pAc0W@Fk*>JiJKc$ACdk8NCCXRAI@e1h4YBW<3| zT*N~7iW7rk1d1Y)s~AxN9_-pcOSjPi$rt@RbCoXw-k5wr=U$J8Z{X!EUs@3Yf0k-9 zz`ze#0e3O14>|2&bth9NQWax<(Ka?VT;p088cU0bnQb!Fa)tFQolus-f8VAQr5%+2 z$l%Df6dfD1OJ_&P-h6mu5tR|rJ1f@V6BpGbI2ZmZFSdtQx6aO!91D9fY~5b1l(#=!IP&LRxFXn-wMOHueOYDr;ky)uvf8TVT|y zJ4x(vP>4`~_I~)%!Va(D{4kmz;bj||;OwqY>}3Ew^vLs?{UdaJl_(Tf@tTqd=!Jos%U&Dx8v_6}# zaj2tsSbXc+3>Lg&i=1}QWWNU9;3yCEqvh3O3NUUdm6mxtF@HCe;JDlDlV?rNgZbcF z$c9?EGQU-p(Q1{R?<1a#MG0xfn}}RzxOb~<%1>*qO>?uecy5J(+eJ)QTw?bT#{VAU*+a9#Y_q;*=Dnzg_5w;Hc@z_ow z=3yZW7}I4#;8XzE(t$s{;15DtmstG%Pr5Y`v>0LqC7DH|@a0=--3_8aKvrn(<)S8F z`}lYi(A5zd(yFn%!kP`};s*_#X}7oOGtyF0@bNzQ-RoThlAKME%?*IDKT$C9d4a;` zkiJ0vQeb)jwfa4cB2SusVxmd9?zOUK*_~Q<=%rDomP=-|rO)+$^sJIHcDEaBpM2K*6mdIKdzFH%c4L21I)k-=n^Sgu$(K$lbrj|diWhr44Zvqf zk)Hd4wU$IJ^fj3*dVpQjtLkL|B{w&4_d^faW710R>Fl7{rzRls1^R0LY+SJ3I_1(w zQ*WElIlVQo3rVSLSE>tR0esq;IrNDj=%>pAN#)a4|GnQi=AJ{-F-vB56pquA$$+!W zvo4`R6UT(R^j;X9D7S7;6FFd^Kpj>4K67QFg-lP+MDk?@_3AasI#V!>$$I?4+q)jL z?53>dSkO8&^NuuD^iitXS#xJ2(kv!I90Es`vtH?6LS>05HT+dE_En@&`9bEWea=^= z$VYFR7*N_OZ6fo~-qF?d@-#Ev^8--G%yF|)RBimAa)2)m2})`3VoQ%bA8%JFDteoY zO~EB!gK~hBPUg&dpYZ9}tnT)Y=9)i@M9ww_t9WVtEcrVQds>Zh4oLUrL%p>^R-2TO zV%>W(js@}lkc>T`0a1D;irHON77c`t5U)gTbSGh4+i6fjmFc^)=FxA<&&)>mo zIB!0X$@X5w1qjG`au&w9^J@f)kn=k6WXIAo($v~{1MNa^R%%D%Hq4*Z*c}J*GzqC{ zz5A-qy0ei8S85$`$wrS1jdp(r4Yieb<;RFUt=2pKY7s@X!+nb!yxf2kK(aP+aU>L< zx-GF-iH;Jv?+Qyb|1TGy(EA)rc?tZ1|DwhOs3r0Ni!OC~xLkx3vBdlFqu?0E5VPpn zmxhXQY$YF}B138=rXkwRO_B$j7rgPzU|@+iPk^8d`V5P;gi(d$%zUY)-)pw$@N|7B zvS27g8vKpY$?nvoXtQc7IBMute?yith0_UwL-}}iu!D}~0*{=2Mc)_y@IQJPzr zBq)a(^UY@aLHWxyxfl=;Pht`AuM@fc(2!U}X{wS(7+V$E`Z85>HlD%=N|_sVO{Oj# z0f9kvbvI)b2bz^!X6AXi@=5jcXtQ$)6f(?Cl!v*h@&rV?l&>!DxX`yZ?XYTv_a`RiOXoj2#CKgzvPuk%CJB(*UvrzG zeSZGlg>gpr(&O12{;CT`M^}YgRfmCR@94M}MBq(6Ln!i#gROvTzacZ`mMsPZM;kyD zfti<3a7hG{ksj0Wq`k6hHeGSFjZnFWFj$)EqIeg^?^AdIUpXpoETN;Xy|+lL-Km2IXu{Dk5!M zM)|-~-v$t%dQ#POaCI!KEwB zD5l+hsyUiOH#AnhV`+9G)+h0B$yu9*kk;gI9f>>v<2i8fffI0sgB4D5eUs@xb-Y+I z5vp9K>k*wA6Vn4aD$y)rxnOT{uW$>QO_Tv)Z}LgrCN95tDmJh?8ub{Cj_sU1v`Kcn z3B{v!o9#S_U~I6rmtP06U}*k=tydf!H9tDRK-glTDAJupFoDl218^$KbTpnK9G{!x zB{@3!E3HoZZ~)vlwFV32&Z8&-UVJh#vR8=8OCR3X?mT~>WWn*_A-%`F70=5lBc;;t z2LtBO(NVct&F`bRqPW!O*BN*K7B=Hu7+o@hmqpH97>GtN>@!$nyc=a^X$dNT(ibu_fVEie0@9E!vxm3fneR8^Be z==1Ck2fMKHf#g~v1ggo@kK_G);iXD#x93}m?9901)7d~pvPcZ|AtavDiNZTxv@ZF6 z-d+&e0>Z=yB*!#Bx#QppYi-bSzAh`}h4AOkpRSk$vSMQ7ppc7<_4Ey7p>dgte-red zubQr#5ahrysMWgXOB6vWhlj)C;^EaaHJP3+*RXMNLR^A?U}_o~aWS!BRs?QtZY4_e zMrVW;R68op&)N+Z=y@U$y<1xZ001Bm9!nsBQrSKohk#(JP&&;AN^aiW01uFPm??l4PkO}5)^i_D=H?IYYbDk+F9M}xp&bj}E~LBEZ6qzU!*0vc5cC z?G8CS-yS8EB>tDZ@a=X`a6qe0X3!A8!xB_+2Iw*s*bO;I5!ENv0sVzY*{6lz${41PuK<2S@5+g=QTH`$iM) zSzb;C!7Ve5)|#hhXJK5tWe=#?AUeZ}gY?JijV$OgntM+*H8omo&IrQt#ab;tnJpKo z-HiXK5435o2JuZm)FB7RXehVWM+U(l!~)BuO8>yX+=7CD#6*=EcSh#9DePIe%+yK3yC0ZFscl_53EB%3=lRI9DA-;IN8G zNqOe{uj<$fYC|tTGrXGnASYs8X+j$20;XD{u|ygsz-IdXSkhdZ3qU4=V*o^%7!E-t zYxeoz$<8c0J~$WzUDVFOVT|XYD9f8tKGTmE>q=sj_TPT{5Ydo02iCQdf<}-(bt74M z?wAkHzvr)8qjO~13LD3vS&%|UfgVTjv_1sPL z8gyVboed63^9X>FIH@X5!Od@`G3q{-`WGm?;VS?3@;ikNDGOzTvM0>#jUI?cm8?F$ zLnCMiVn1P6Zs&i?CC@IXoSiF@J=*Hx1@UA4Hq2$yEePZwrZ7cd3=9lh?ziMGPWJXc zA)w)hHw!BieK{H|yH-)=vRQ4n7+{V$Jq7U#i?K@p{o~hOk$8Slfr64~ z&HqV(lX2GguaWC?`Dp!uB}qFet*DUBSZ%Pg+)C^rK#Ki0(t>Co#vj9A=<|JErczm> z;YW&Fj`IIni2zz3uLa`&WHENp{Xe5a)^9n2_m7EpI>p_#A)8^PDU`(YrO`(I8>Hfs zA&Y$!#gpiASDRt?y>X)q-}kDD&~4jn-=x1u{@2;10w3Qeh>Hpx$p4UjDSH=v&Je>F zg}FIhVMG}_>N?5|`2@wdH2~Sv@Sx*1+NpS)$7{wr0>;3JwOmaj2?58x{YOsfSY}75 zwN;CXbD?Od@KRN$Qef<<6c0BvWW&*OPFHk?j>3jWJ3{j(@77kNMAe&QIp#zBMR_6< zW+#F2QNnT7k0B5Fzxt>X^S$ASi%FP_J@F|};#{geqh|61L;jH=Om2GlK6Nz$ESdvl z$r3lm8~S`$CQ2J={z%?f+B>jM0*(}AM6>MCrKhX*f8AuSoVFxj)#mH&Ikb(xaXcU5 ztW9@2k>4N%CK>$rI0!#ATPx#~wnTe?bii$WC{PrvJEbWiZ8TmFSyJGL5#79}bFkl1 zbXlCe>ucyY!!_95R-l|Gj&t|d&Gh;P50I)Wr<90vMD4Kt3 zit#fZ8zV8pwqv6tgL__jzyo;hbZUagL5W~#A{3UAJSZ5hZs zr`RRcIgEUvx-~`x8(a1^maFxkG(M8|xOaTTc*5qJg6~|Q%ktM9o4(%hGV~ z5vN$0wFOQa>CXo+vFyw&SwBsc-(EFD+An?u)O;arz_rzMWbja{!rwkkSrpvZ9Asg_smIlw zu*+fC94DBMMIN=?hwT?mBkSVD={#gdUKQm<%q&6EX0X>Pw) zTt5Z1tXQV$Bx&fH#zWpZ!>J2hC1~#i2kXJxODbHt+H4kL3N--gwI$H|n?3JAqNg1V z5s#I4M!Eg1PJSm$ToglYA_7sQMZ8BU#D2I(HErAMcDd&kByj(@9?mPuY+X_R#QhKb zF=i=hT=n!!QF?^CtHtE@TFuDY=G z$42;F_|}ij)3VENE*1bMQ{Dq<(z<21uwz)i8pg zZL{n!t38qSEfMvWP&aqhkd4`z>7)VXrca*E8`ny^{ign|SZ$9%uBN-7J@$(Rdxo_# zneC=oqxoU@*^U%mPlS=TMu*)hGaCiw8L?^S^N*m4r@ZLdecg-lx?&bDgB$Vgk z3@zt(8J^}uYe2+KlBE9ny-sl7{tCQq>Wu@CSq*FSmmz zyb)j5`{R-4z4LOmW516OgmJtT=rk>1F+?qys+=KPwHm*c$-uA8f!lSx=53Qn#fRTt zeNu#dmfYROWb9Toyt*oua0ci)`L%ejoF+NAK>qeH#b$iROjZ?$TQJ62Aq#D(o}VO!AF?Dx^_nXhjDEHtyQDZpon$y{Nm!sQ-)Uu4 z==j87sheDzA5k-FA+GkGaGzQ{U&*e)9$z>E4e?MihSkP@WU!Y%-d0#MWgTI!xqFLq zlg_j%>UCB-mf);}Wn)qi{wAGw*cM2B;6zGER#&>qEM1cEk~y-+*ifP{bJm9YWPFik zRi$K=extFG49r(LE$swkzO%?PG~rj^&YCr@ZMi5=vS=1V=A+wInXuCfF;ucjvtzXi zV#!Tu99?@&-<%w@DRgQ!lk+6E3T#?&J;+5i(7c35!b6o&e)9D-V|LU%xYj7M%z$UFxK-Obt$4n1vAK|a&ogSTv&e?d zPMOkKD{i+Va~FTSJnm^Y5BnkmbN?lBFto4tyHnbp3(b@?RelC+RaI-aN$897!VN^G zJB8s1H()K7m+JZh7cO~)Y0Bg9$af~RW#y}}OM7lV;7Tt1L|V}&(Dr(7+CWqrltn0pI3Za zYT4^PvuoJsA#%RVSjVwf1%Dhbef(7(havM8DuYp#F{BeKaTs zPq+B=zOwS^LBd?3YZxdkHC>&_ zuy3W}qCKT$59t}=xY~Ngp*rHcGv4Sco^NrjdyfqiYCf!~u__L=h4H(SmW-M`7X#9- z;Lp9qqH%%PH?R@M`T%9Vrv{w4t|n%lm&jrdJ;0giloQ$WL#@h16x-nIHn-Vgb!RK0 zpvzb7a{Ly^UP1$UfE=ADU7j=qr;gEJp1dehs}Zi@1-sMQBmTNUFa?;(w_IU6 zj>9xLSC%rt18kTrD~CBc&fGsdVU-^^)yqD+adygd^4)`B=!ckL^}F6IOP%#oXLcp@ zkRq#f4Hv;ni!d0VS39zht@Ex^cX`+8q5ATzr~IANbW*?C5E_JpazgM6)3qW;S zCqM%Ps{Q0=?PCC>-*D$I9@5Km!FqiP#~P(Y$K%ACUfINMIQnSyzjt_Ra9g@BIxeV#5-JWw_{LT z%rn1;Ts~ng5M{NDIFp6r0Efl#Ov`j>wh--n{Y13&)9N$8l1KV+w}YoVsW;zNepNkIuN`EZbr+ zRGiDkpZlJYde3S<-$+FG^_)y3v$+$^Nf@Y0MP5cv(}se^wOpWs++BLI=jA8x&J>@d z-_3Z=@hJh+90jVwNq`rfjhe1Y#&4HY}BBCuLKPC=A={n0f3RT`kazE2GVc+I3*DcXo-En#mjXPUJeQN~BE( zk#N*S1-wtpp~VAS85K!G*fR(yn|i}jHfOV`Z=<`>Q{?npeX;Dzq+;Yg-htM7BW*q6 zlWWX9?Vk7e4+ENxRyyKU>mR_Xk}-E%s}A4`PJNDc0iWmFx!rNUv4)f5K)D^vs$DA4 z`}U(2{7}yVI#K8qJ_W^@fhYbRM`w2;O=;(V^029JVtSS##Zy+%NHGNWMrN&P7VAiq zY~6#AFvo+vK-AK5w>+YUW_;h>Z$jRjQm0LTN?m6|)!=?CEhH=<+ z5b)x{*rDmc!O?kR5CXgzSZ(J=4JWL$Rd?{sY97;yr0?tGzdOB&jZWEdokXE{y@^buMl6sIAh)-$Q-2!HvRr6-^$W*hlbtFQVgq|zWF0vR&BEqK(J z-cYNotn0OK=xdzp%tY#)@c}fQj7-^NCNpQ|6nnXqbXyD@o2x!V2GL^mJFcE_P>1tZ zexD|{F3(pfs;Kj0o%Cin z*Nyr@;Bx1(sfd3mrc;!`417(^Pon4N1l+JW{|#8WSM~hWmah7fnaMnebhgowFj4k| z>6lEso0pmIj9uMn18D?lVQ$1BxW73Z!>zK zo!C#9&X=wH*1u`o{TTZiyJWp*d!BY&u*y+~sIqt{42hbb;w%KIPq%ES^5-p?;%OGj z^OoakWEca}9D*1Xufi_jF5PVHXC~N1gzFP?L7b-3v_o#3B^M8j^NzO%;E09bjMN#xQ7TD3{7Z ztiM5Jgu}4maS1)<1+8PTr#Sd%?QRO(bs~Q$ zCZw&kpJjcV#~CN1JvPKmU5z{K@Z(Mii|BWyGdSw;|BdRUTz{6_ZbWF(Rs;lEyM-a?eeNUl^)8`hxU$A1b-7fnAjpmTF44a%Q2Y6CyT0ch^ zd>^&ig5+r|!{;DY>drAco6d9G)A^FO(0gMis###9IIoYu4DY3I24?em{5M)elRp?1 zD{fR^ew$<*Ze3Amnob;CPIwfbL)Mut+9PsLc0F1w-kxs6|Dvf|ah^+f*Z%2)OJ6%! zXwQ`N)(bAy*+4LL(GG`1&s=}H^z8+1ET#6IkiqVYe}--t5GjDWZV2||_{$?Mmx!9y zr_ymSfvEw%O!p%7yAAo=jaE}6LJ49T|OkGUv9|{pQH1S5L}|C`0)(0~cAv{`{S7uML#F>(&5Q*;OjSdn8Gv>Z7OC zfq-sPWR1<1@b7ct=^B^{H1n7yBofPYkS}^%B6e z2I3wx2(3TO|Li-k`p!su~)4ma24iZ+!;1hoX=@2t>DHPqnTcF24sob z^AB??2R=y3QuH33>644`h@P_*&o_dwPvzudb2+=_-`W%HBs;!@iGLsTA=@=M8*uIZ zbNb+$X-Tj?C(GzFf*juFVI-^WTGJ?fFkhdj)=axo3lEL~LT%{Cz%8)y@;6Deoiftm zB9RkbgH@=4=31ReI4;x%qU%KIW!(K6ZQi4(-Sk(TrQVG>v#LXUWmweM5RKFB^}L^q zDWw^^j8YJE24S0Qxzf@M^_Nf{8t6?lg1)5=sTo9&RU75go{&!ND1n1#>O6$pM!f~< zNS~QcTcVbpmp$!|VSp`%YYnf9e8V&Y_yuTd9*BBWyM_-=^DUq+Mx6=yX^VWm2R?O)9MmSP8)oc=>Sci82tADng$AEfzW;r z`m6wq3@Y@xw^Zr4&GVX5!%$TVL=c zg`|C!nH;aMhdVgm;``W(2)A|0jx==PdI$o}#i?ezhjryS3=0I(ArPmS(NbfDIuJSB zS~BbZ0e2t;WC*vdC%CROLKm<54sa%I+gh`nomtx+9{o1%00V;q{CzJ#Tl!v)E@OH2 z(@+aKD77+efK5e;SyNGlfWdNiRI3s-h2g4K$=)?vfWY$5%iz9+{xWVYQi*3)087?V zV0q6ix936pt)o&=eVrk&pz>a=d2;kdYTlsaG<8E}vXN!}yfHnw(hm+1Elghb7Msz^ zksC3}uD7=l-EeA!!C?sd*-|Q;?zAqKPet(2eCykC`eV4sJxJ^h?+S0p);8zl24tY9 z+^wX$CjgO;&8Z^ocC)ou+8f2c_!tLf{Q$jFRG!{xebWYjnyw zr|%QTVsx8aWDv~Jf~?Mb_!#vRbnDqG%LHzVup%PC(`Lu|2Hw~f=sgndOAAIsCUVlV zo8^nEUbT0;C7LY$W4z5$-jPG|A7Sq5)U!URI81JLjGgBwOCVm;Fi-KHw%9KA47AJI zSp~1$AK2HsRDWx#wASXHL**XXDFW|fmB2__P192N(63c1e;&CYQ1(98iEz7`g2mcc zID*P(FzBF{Uw}RTywCph&jHsb z%D?;W&yY%g_rH)o|9!s(7#Pu4Iq<)Gk?;R07|zEB_4gdp_t)Q-ae&c(0{^EbJ;?vt z3Vu&4A^Zt)NK7ort`;McNi05=YFKx=izW8>)zupmV19b2CM^@JI$j*ZbB^}+lC6=y zR$Fmwm``2u*f37w>`}y8;-hI!~YRBkAF7ya}8&w7*sJ~-ZeCcbm zOMK6B@#n`Pcjmbs_oehUT5@{WIvU^BA1 zFw(m%$fO|&q-o>gKUh$;k`Y188`x)pJD&PtFpS6iA-UW)#6{#iZe(PPh|e^ozM_Mp z@^Xp*O)pz8ba51dHy%WhZ= z#TdI;tLIyt>xa`b<_m|pT$i%KL5VRkG!qlrCLY;`!7_|!*i8QX7@N(0I_e*oSg5O; zA?}BM4YMj?Jx~S7wZp-(rBvPSYH&f8{ROG>>iqI6<@eOLT6*6&y3L4bvQpD+hNXs9 zXmRICIV6|>H9V0$9_i>pCQ`_DX9nxCLL?pB%ia`u<&2$rSq0L@*fqS6+%8WT9F26u z#oZI83fBUc$(%!O_BTYl;CPX82}3w`Q+xGla+?-X ztJE7Hm_yCh4JoP!!GtO$C95O5+*Z@RxT_LjZ{K=$qEik@G;yGrL^YiPY3{Mp%;1-EEcEc7%~WLwWUn{_znP_JT>mJW4XZ z^qqxQeub6kaTctmww9t&d(F*%P_6s@CD5~vkG3w8sv2 zzf~|xx>OGq^(bRfD_%n#zT7XKxD-aEOXzVO3Ly|-%!aDN@xH%yO+Nqny1wb;JMPHc zvw$&X?y#WRO5SBwYzzy1{)0~H8r2U6N<1{}$Z$d|ju{^^BmbmC+~@Il-F>!-@XCPY zE9$W^l6x#Oym87mTjimvYxK=VZr%xV+N=qLu2=*ZAdl9CneCDW%n7cg@%?R=mYc{m zZ_+~0a{$Ho6b+rh`W}C>Z}-g`>9_z9E;zV^OsMe>7_f_JG0DHf7~JE_0AJEFb8<>k zxBI{5^g^|k30mau*#d;K9k}P@2e`ze;d#%;wB6FSV;96JDSaxcgoXcoj)Ou`u(DaB6d4Y8bq-5FsFG?+Gd z`^J4_*svkEYqHNk{r7#0n${MIjfoLd4L}}O6_LWjZ?}c2)Ct;b)`slNTY~CmyYYUi@|?!f4m6~TK^QSA5X#wnEpG}c4}*Oe1#SP|;i$Dp$cfF4CrwZKDd;I>5{X2SfePvkBvPuWiuJk%F|T<@`hAd{<4UDc^#^3L*uxHi zkox)G6Kf(k?EW$Ai3_tT{b@Hi!1gW<32Dg8FFF*YcpSMv z9eK{lchYRq>iMeHqAeGuF(;;GBUf7g%hLw`*WTb?Hy58bZ`I$VW2>Rvg`)91?Cs7w Hc>2oU6^NWE diff --git a/resources/tutorial/success-label.png b/resources/tutorial/success-label.png deleted file mode 100644 index f265d609418bfa3afe275c2af05da975f53693fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11345 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


GV1HE2retFDwrV7{#Qur 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 diff --git a/scripts/partners.json b/scripts/partners.json deleted file mode 100644 index fe51488..0000000 --- a/scripts/partners.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/tests/partners/autonity/README.md b/tests/partners/autonity/README.md deleted file mode 100644 index bca981d..0000000 --- a/tests/partners/autonity/README.md +++ /dev/null @@ -1,21 +0,0 @@ -### This is an example partner - -To submit your own project, add a project folder to the `partners/` directory. - -#### In your project folder you need to add three files: `thumbnail.png` `banner.png` & `info.json`. - -### The thumbnail.png file must be no more then 125x125px -### The banner.png file must be no more then 300x533px - - -The `info.json` file looks like this: - -``` typescript -export interface Partner { - name: string; //40 characters max - shortDescription: string; // 75 character max description - longDescription: string; // 250 character max description - tags: string[]; //keywords that best describe your project, max 5 each one no more then 20 characters - url: string; // must be a https url -} -``` From 27263756cc8d4e01180480ccda194dfeca5e7775 Mon Sep 17 00:00:00 2001 From: Jay Date: Fri, 28 Feb 2025 10:25:09 +0000 Subject: [PATCH 07/11] Update example partner image for testing --- partners/example/banner_dark.png | Bin 5154 -> 872 bytes partners/example/banner_light.png | Bin 5154 -> 873 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/partners/example/banner_dark.png b/partners/example/banner_dark.png index 6bb5144443ba772c951e43fc8fb0afef152db6a5..e899dbc3b2bb90c2dd1cea20ae421e87a43994a8 100644 GIT binary patch literal 872 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 diff --git a/partners/example/banner_light.png b/partners/example/banner_light.png index 6bb5144443ba772c951e43fc8fb0afef152db6a5..d4c5ce1b17f7f6fd5d6fe6515bd35801af94b283 100644 GIT binary patch literal 873 zcmV-v1D5=WP)}vPi1-KMAJE1kS|uQU zVG5CeSwX}Ib|Ru8=8F)bg;u)vRnBwX?8Nw<4|(8$ft|be-ZS^^nb}c@i0}nazk>9e z_(S+xY5b_y@#yFXYin!R-`~gW?Jb_3o?y4z;qiD73WYE|J&n%JPUgR}vxDvJZ8jeq z9K`teIJfeeC=?1bIyy=KY7U3PL945)EY9!ubMFrh4!FEEiOE0=6w zU_c;!MJyJRwtsAF%rwT7IFU#Q3Em3lcNB|7QWV9MIF(A(Pdqm_CnUJMyp$3X5p{KS z2{9cV9rXPCZ0gU6OV@Q23I!Y<9&$QpXlOt-o5ktrsZ5J#X=%aD%?)Sk@9)R@`Z}8j z0s*wPwu<8F?(VL8>-@>kb)9jsBePg6;`;hpTG3~Nwc2L0VQ+5_01%7C*fRiVnue{d zt(u9V(I~RnESo!>P9&2_&ZoDx_t(Vi!_Uvp3vIf)yORpbFbs0JTtZAfpO?m%{+)b2 zpI|#VIgwVI$z)KeR0Ml1F`8EV@bEx(yPaEoI2@L)J{Sy|ifMLsRvIHcGN-1dghb2B z%Yxt1(vnognx;`ElQGS&5SjncbGaP)`ub3XQ?Mix`8 zRlLQfWJG0}=cJ?3c z%zd2i{J!7$zTf%InVeJ`vognsCW;^k8l%@~P2kOf+Y}K7o^QUq?h1IFUun)2Oq3UP zx*Qh1h=YYvCkJyr-U30szuJsTqr#>}Jh>gGDOU?$DD79LH>PY^VLq|s^Qp)9p{E~Rg5OV(QD}5X9c)mY(y{mB=eP6r);5bTi!<)MQbgSnKmK@s?1NGF>y{vs%8SQAP)H@8mS)ta zr9DjtB(Z08twwi#Ui^lReH+scMR}r&|72`FEBV=%xrdGGMepQTKRw&oKG)j5^}Twf z=*Y$1=7yAv@ue_2m;U95|D)$+I_3%#(}y`hL0mv{q8N zjFY)ud0RB*qwetjijKzPqU`N?CS{0lTG`q%v#m}{bidKN`kwMqEZi5l?2c{i@sNva zw&ghrFDK^bPpYrC7hZVD`NyzGO~OaBPMWsvG|q&23LY9%`47f-E${vA3fXceZ0kFD z@7v2N((*shebzmvC#vKh_d9my^sj-0O4t7C=Hhjr?tDC`uUx}Il5yB16ziZliO=Q) zg$F_ExjrYw6mkMga|OIzgY=v{jlevsL4J{BkQtn5oR!zDbaB}$v&_uOLPo_RbLWWE zJ`xbvIDvwFwj#Tm^l6X)FA2W=W+?&(AVQ%A$u$_^G>40W2?-&Qq3J%}BS+?lV6}_2 zkS1-$00n4i5UU_KNvYK9^-8?B#NjHCVk(tNDw9j)augs?cd1>Ve5l=>=%)yBXgN3I z;++ETu)}^%iguI;8Uz9T@YDEgPJ>~P-tHby0q7z1QBEl)kx6Yf=}-^1knRB_0|EV@ zhuaL6sno=|9VIS?OZRYgA#o@L%MAKEOI$^PbXZ2p6>&BIb%Rl{=Z4JG8;pYt2K!E!o?{ny*85OR=a7q@SVi_{S;j&R+I(Zvaz)79~_InO?8^Cg6DS^^b0tZNCa)Oj8NsKUKICzqT zYPJj`Wkc`|mbaAtH?)88!0Ov%U9zcgS9uBdFTIM@m{i}=7&g5kiTASou8f}8Si z!TAPU!7j#1*$X(ZdkmE8Q#=0yrJ%q#2Dd1aP>f=dP(qGjD6NpQD3(MhlNgyCr{({~ z?sixNFXiG=3V@D4D^Q*Rt>Bq~iJBGAY%mtDmGjR65Db+m(LuqIumQoO0|`t0d&bj@ z)zbgaL>&MO*<^rU&;~Xyuop@PH^TwVKmacMBABwWp?SBifj^m`5PCtT7OEOKMF$$Aow_A%2olHo?+|GBo_Jsk7xaeo@UDoc z$SAz^rwu882y~M8fEpE)8_VEUN)#?dnpX65DfR`dO6q`qnmcN#MfAh3094@M^ zi1YO6Bi`L<`}~{EHzN*x>baZWFrxO2Zx%#r!`7WR624h?sm*$X^*7lm;Va}n&Hs^ From 6edadce139dd38998e24eafc04e0c8cea7f45764 Mon Sep 17 00:00:00 2001 From: Jay Date: Fri, 28 Feb 2025 10:56:51 +0000 Subject: [PATCH 08/11] bump patch --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 787c102..4653c4f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "autonity-partner-registry", - "version": "1.0.0", + "version": "1.0.5", "description": "Sandbox for testing Github features relevant to Engineering", "scripts": { "build": "npx tsc", @@ -45,4 +45,4 @@ "js-yaml": "^4.1.0", "sharp": "^0.33.5" } -} +} \ No newline at end of file From fb407485a23e331b316fcfc33c719ba581d6aed9 Mon Sep 17 00:00:00 2001 From: Jay Date: Fri, 28 Feb 2025 11:07:16 +0000 Subject: [PATCH 09/11] Update readme --- README.md | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 968ae44..4ad884e 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,16 @@ [![Scheduled CDN Upload](https://github.com/autonity/partner-registry/actions/workflows/scheduled-deployment.yaml/badge.svg)](https://github.com/autonity/partner-registry/actions/workflows/scheduled-deployment.yaml) [![Tests](https://github.com/autonity/partner-registry/actions/workflows/unit-tests.yaml/badge.svg?branch=develop)](https://github.com/autonity/partner-registry/actions/workflows/unit-tests.yaml) -# ECOSYSTEM Partner Registry - -How to add your project to our [Partner-Registry](https://github.com/autonity/partner-registry) repo. - -## Adding your project to the Partner Registry +# Adding your Project to the ECOSYSTEM Partner Registry Firstly you need to fork the registry [repo](https://github.com/autonity/partner-registry), clone it locally and open in your favorite editor. -#### Step 1: Select the `partners/` folder. +### Step 1: Select the `partners/` folder. -#### Step 2: In the `partners/` folder create a folder named according to your project. +### Step 2: In the `partners/` folder create a folder named according to your project. -#### Step 3: In your project folder you need to add three files: `thumbnail.png`, `banner.png` & `info.yaml`. - -The `info.yaml` file looks like this: +### Step 3: In your project folder you need to add light and dark images and a config file. +These are: +#### - info.yaml ```yaml name: 'Test Partner' # 20 characters max @@ -26,24 +22,15 @@ tags: # max 3 tags, the most relevant should be listed first url: 'https://www.autonity.org' # must be a valid https url ``` -#### Images: - -The `thumbnail_light.png` must be no more than 196x160px. This is used when viewing your project in the grid list. - -The `thumbnail_dark.png` must be no more than 196x160px. This is used when viewing your project in the grid list. - -The `banner_light.png` must be no more than 274x105px. This is used when your product is featured and is in the carousel list. - -The `banner_dark.png` must be no more than 274x105px. This is used when your product is featured and is in the carousel list. - -#### Step 4: Create a pull-request containing your updated data. +#### - thumbnail_light.png & thumbnail_dark.png: +These must be **no more** than 196x160px. This is used when viewing your project in the grid list. -#### Step 5: Submit Your Pull Request +#### - banner_light.png & banner_dark.png +These must be **no more** than 274x105px. This is used when your product is featured and is in the carousel list. -**When you submit your PR, please use the following naming convention for the title:** +### Step 4: Create a pull-request containing your updated data. -- **Title Format**: `Add to Partner Registry` -- **Example**: `Add MyProject to Partner Registry` +### Step 5: Submit Your Pull Request --- From f80dc2252ee8477182c5907dffddd89e689e0156 Mon Sep 17 00:00:00 2001 From: Jay Date: Mon, 10 Mar 2025 11:33:59 +0000 Subject: [PATCH 10/11] update to do exact matching --- scripts/constants.ts | 2 +- scripts/validate-partners.ts | 32 ++- tests/validate-partner.test.ts | 471 --------------------------------- 3 files changed, 30 insertions(+), 475 deletions(-) delete mode 100644 tests/validate-partner.test.ts diff --git a/scripts/constants.ts b/scripts/constants.ts index aa215fb..f776a7b 100644 --- a/scripts/constants.ts +++ b/scripts/constants.ts @@ -12,7 +12,7 @@ export const longDescriptionLimit = 175 export const nameLimit = 20 export const tagCharacterLimit = 12 export const maxNumberOfTags = 3 -export const maxThumbnailWidth = 196 +export const maxThumbnailWidth = 160 export const maxThumbnailHeight = 160 export const maxBannerWidth = 274 export const maxBannerHeight = 105 diff --git a/scripts/validate-partners.ts b/scripts/validate-partners.ts index 2b631d3..977c4cb 100644 --- a/scripts/validate-partners.ts +++ b/scripts/validate-partners.ts @@ -84,9 +84,10 @@ export async function validatePartnerInfo(partnerPath: string): Promise} - Returns a promise that resolves with an array of error messages if the image is invalid. */ -async function checkImageDimensions(filePath: string, maxWidth = maxThumbnailWidth, maxHeight = maxThumbnailHeight): Promise { +export async function checkImageDimensions(filePath: string, maxWidth = maxThumbnailWidth, maxHeight = maxThumbnailHeight): Promise { const errorMessages: string[] = []; try { const { width, height } = await sharp(filePath).metadata(); @@ -122,6 +123,31 @@ async function checkImageDimensions(filePath: string, maxWidth = maxThumbnailWid } } +/** + * Checks if the image at the given file path matches the exact width and height. + * + * @param {string} filePath - The file path to the image. + * @param {number} exactWidth - The required width of the image. + * @param {number} exactHeight - The required height of the image. + * @returns {Promise} - Returns a promise that resolves with an array of error messages if the image does not match the exact dimensions. + */ +export async function checkImageDimensionsExact(filePath: string, exactWidth: number, exactHeight: number): Promise { + const errorMessages: string[] = []; + try { + const { width, height } = await sharp(filePath).metadata(); + + if (!width || !height) { + errorMessages.push(`Image metadata could not be read for ${filePath}`); + } else if (width !== exactWidth || height !== exactHeight) { + errorMessages.push(`Image dimensions for ${filePath} are ${width}x${height}, but expected ${exactWidth}x${exactHeight}`); + } + } catch (error) { + errorMessages.push(`Error reading image metadata for ${filePath}: ${error}`); + } + return errorMessages; +} + + /** * Validates partner fields such as name, description, tags, and URL. * diff --git a/tests/validate-partner.test.ts b/tests/validate-partner.test.ts deleted file mode 100644 index 857053b..0000000 --- a/tests/validate-partner.test.ts +++ /dev/null @@ -1,471 +0,0 @@ -import { defaultBannerNameDark, defaultBannerNameLight, defaultThumbnailNameDark, defaultThumbnailNameLight, longDescriptionLimit, maxBannerHeight, maxBannerWidth, maxNumberOfTags, maxThumbnailHeight, maxThumbnailWidth, nameLimit, shortDescriptionLimit, tagCharacterLimit } from '../scripts/constants'; - -import fs from "fs-extra"; -import mockFs from 'mock-fs'; -import sharp from 'sharp'; -import { validatePartnerInfo } from '../scripts/validate-partners'; - -jest.mock('sharp'); -jest.mock("fs-extra"); - -describe('validatePartnerInfo', () => { - const mockedSharp = sharp as jest.MockedFunction; - const mockedFs = fs as jest.Mocked; - const partnerPath = '/path/to/partner'; - - const mockResults = { - 'info.yaml': ` - name: "Mock Partner" - badge: "mockBadge" - short_description: "Mock short description" - long_description: "Mock long description" - tags: - - "mock" - - "partner" - url: "https://mockpartner.com" - featured: false - `, - [defaultBannerNameLight]: 'fake-image-data', - [defaultThumbnailNameLight]: 'fake-image-data', - [defaultBannerNameDark]: 'fake-image-data', - [defaultThumbnailNameDark]: 'fake-image-data', - } - - beforeEach(() => { - jest.resetAllMocks(); - mockFs({ - [partnerPath]: mockResults - }); - }); - - afterEach(() => { - mockFs.restore(); - }); - - it('should validate partner info and return no errors for valid data', async () => { - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }) - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toHaveLength(0); - }); - - - it('should error if a required field is missing', async () => { - mockFs({ - [partnerPath]: { - 'info.yaml': ` - name: "Mock Partner" - badge: "mockBadge" - short_description: "Mock short description" - long_description: "Mock long description" - tags: - - "mock" - - "partner" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`url is missing in ${partnerPath}/info.yaml`]); - }) - - it('should error if unable to find images', async () => { - - const imagesMissing = { - 'info.yaml': ` - name: "Mock Partner" - badge: "mockBadge" - short_description: "Mock short description" - long_description: "Mock long description" - tags: - - "mock" - - "partner" - url: "https://mockpartner.com" - featured: false - ` - } - - mockFs({ - [partnerPath]: imagesMissing, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual(["Light thumbnail image is missing", "Dark thumbnail image is missing", "Light banner image is missing", "Dark banner image is missing"]); - }); - - it('should log to the user an error if unable to read image dimensions', async () => { - - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({}), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual(["image metadata could not be read for /path/to/partner/thumbnail_light.png", "image metadata could not be read for /path/to/partner/banner_light.png", "image metadata could not be read for /path/to/partner/thumbnail_dark.png", "image metadata could not be read for /path/to/partner/banner_dark.png"]); - }); - - it('should log to the user an error if unable to read image metadata', async () => { - - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockImplementation(() => { - throw new Error('Error reading image metadata'); - }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual(["Error reading image metadata", "Error reading image metadata", "Error reading image metadata", "Error reading image metadata"]); - }); - - - it('should return an a log to the user if the name exceeds a character length', async () => { - const mockResults = { - 'info.yaml': ` - name: "Mock Partner really long name that exceeds the character limit" - badge: "mockBadge" - short_description: "Mock short description" - long_description: "Mock long description" - tags: - - "mock" - - "partner" - url: "https://mockpartner.com" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`'name' exceeds ${nameLimit} characters`]); - }); - - it('should return an error if info.yaml is missing', async () => { - mockFs({ - [partnerPath]: { - 'logo.png': 'fake-image-data', - 'README.md': 'Some readme content' - } - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - - expect(errors).toEqual(["info.yaml is missing in /path/to/partner"]); - }); - - it('should return no errors for valid partner info', async () => { - mockFs({ - [partnerPath]: mockResults - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - - expect(errors).toHaveLength(0); - }); - - it('should return an error if tag char limit is reached', async () => { - const badTags = { - 'info.yaml': ` - name: "Mock Partner" - badge: "mockBadge" - short_description: "Mock short description" - long_description: "Mock long description" - tags: - - "mock" - - "partner with long tags" - url: "https://mockpartner.com" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - mockFs({ - [partnerPath]: badTags - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`'tag' exceeds ${tagCharacterLimit} characters`]); - }); - - it('should return an error for invalid attributes in info.yaml', async () => { - - mockFs({ - [partnerPath]: { - 'info.yaml': {} - } - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual(["info.yaml contains invalid data in /path/to/partner"]); - }); - - it('should error if image (banner) dimensions are too big', async () => { - mockFs({ - [partnerPath]: mockResults - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 274, height: 105 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - const expectedErrors = [`image dimensions exceed ${maxThumbnailWidth}x${maxThumbnailHeight} pixels`, `image dimensions exceed ${maxThumbnailWidth}x${maxThumbnailHeight} pixels`] - expect(errors).toEqual(expectedErrors); - - }); - - it('should return an a log to the user if the long description exceeds a character length', async () => { - const mockResults = { - 'info.yaml': ` - name: "name" - badge: "mockBadge" - short_description: "Mock short description" - long_description: "This is a really long description that exceeds the character limit so that we can indeed test the way in which the script handles descriptions that indeed do exceed expectations." - tags: - - "mock" - - "partner" - url: "https://mockpartner.com" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`'long_description' exceeds ${longDescriptionLimit} characters`]); - }); - - it('should return an a log to the user if the short description exceeds a character length', async () => { - const mockResults = { - 'info.yaml': ` - name: "name" - badge: "mockBadge" - short_description: "This is a really long description that exceeds the character limit so that we can indeed test the way in which the script handles descriptions that indeed do exceed expectations." - long_description: "long desc" - tags: - - "mock" - - "partner" - url: "https://mockpartner.com" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`'short_description' exceeds ${shortDescriptionLimit} characters`]); - }); - - it('Partner must have atleast one tag', async () => { - const mockResults = { - 'info.yaml': ` - name: "name" - badge: "mockBadge" - short_description: "short desc" - long_description: "long desc" - tags: [] - url: "https://mockpartner.com" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`'tags' should be a non-empty array`]); - }); - - it('should not exceed the maximum number of tags', async () => { - const mockResults = { - 'info.yaml': ` - name: "name" - badge: "mockBadge" - short_description: "short desc" - long_description: "long desc" - tags: - - tag 1 - - tag 2 - - tag 3 - - tag 4 - - tag 5 - - tag 6 - url: "https://mockpartner.com" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`'tags' should not contain more than ${maxNumberOfTags} tags`]); - }); - - it('should log if provided url is not https', async () => { - const mockResults = { - 'info.yaml': ` - name: "name" - badge: "mockBadge" - short_description: "short desc" - long_description: "long desc" - tags: - - tag 1 - - tag 2 - - tag 3 - url: "http://mockpartner.com" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const errors = await validatePartnerInfo(partnerPath); - expect(errors).toEqual([`'url' should be a HTTPS`]); - }); - - it('should log if it couldn\'t parse the url', async () => { - const mockResults = { - 'info.yaml': ` - name: "name" - badge: "mockBadge" - short_description: "short desc" - long_description: "long desc" - tags: - - tag 1 - - tag 2 - - tag 3 - url: "https://forcefail.com" - featured: false - `, - 'banner_light.png': 'fake-image-data', - 'thumbnail_light.png': 'fake-image-data', - 'banner_dark.png': 'fake-image-data', - 'thumbnail_dark.png': 'fake-image-data', - } - - mockFs({ - [partnerPath]: mockResults, - - }); - - mockedSharp.mockReturnValue({ - metadata: jest.fn().mockResolvedValue({ width: 100, height: 100 }), - } as any); - - const originalURL = global.URL; // Save original URL - //@ts-ignore - global.URL = jest.fn(() => { - console.log('Mocked URL constructor called'); - throw new Error("Invalid URL"); - }); - - const errors = await validatePartnerInfo(partnerPath); - console.log('Errors:', errors); - - expect(errors).toEqual([`'url' is not a valid URL`]); - - global.URL = originalURL; - }); - -}); From c66e0a1b928ee6260e6058dbf7387f42214f7cb1 Mon Sep 17 00:00:00 2001 From: Jay Date: Mon, 10 Mar 2025 13:16:43 +0000 Subject: [PATCH 11/11] update to make images 1:1 for testing --- partners/Stakeflow/thumbnail_dark.png | Bin 2911 -> 11452 bytes partners/Stakeflow/thumbnail_light.png | Bin 2911 -> 11679 bytes partners/VIA Labs/thumbnail_dark.png | Bin 2366 -> 15820 bytes partners/VIA Labs/thumbnail_light.png | Bin 2366 -> 15943 bytes partners/Web3CDN/thumbnail_dark.png | Bin 6222 -> 15879 bytes partners/Web3CDN/thumbnail_light.png | Bin 6222 -> 17666 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/partners/Stakeflow/thumbnail_dark.png b/partners/Stakeflow/thumbnail_dark.png index 471ec4e82f5a32e0ff0dfa2ce40cad38f7afaf71..05e0ed9674713f71403c1b427b29948e3185f6fc 100644 GIT binary patch literal 11452 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 H!$ literal 2911 zcmV-l3!wCgP)}R2n3=C zDuTsBO@$Fpq=F|367EY?5SEOTVtgSrDK=2kWqlzw_Fj7a2Y<`i@tN6+*LK3rPdc96 znKNf*z2Ewx-STdF0}fUQEEBL4pt? zOYZQhOWGkqrn}e<5=1BzDj^q_G(&_;E!cWB2fh>G(!%0#v~<>6RFs!VIpf9XuqQ0; zHcY0+ps*Ph_epg4%XX@7?Ty*ix^?ShDJm+W;^JbeudkP-s;WwEnf?3s)7-gpDPC~? zjT<+j_ThZAV|Sd%$;qKJXU@pimoHzI#R`t2p4t|FmSpbj+_`fx&%1Kv3SGT=RlcsM zsGy4%FH&1u8^z1&)vIaMs#TPooh{#Yb#+CxsdD1P3EH)5mu*{1mMo#d!a{iucEoBU z0qXF_t2r=g33Ya+Nt=G0PoK=o6Cx1KD?=E*xI-g@q!_T31$QkD|K)eZwDb>OQ)f>| z+a4R;;>C-j_QPmVU|6S4oubpHPe=A!>pGz`;w@XYM73cj2pA04yLIc)=C3~5crx9$)!t|XzSLkk^OuQ zuF=rYplx&G#*MPRogi>73vZ~1X$D(Cl+Y+JJ9iA7TvAL$xf#;-m+ zE+o7|Ff8}ML*$I}IJOC+V&g%N2_wNj7)EvE$Pwu+cJACsw{PE;MhS6XpUTmrN97jB ztwyFZWYt*l8lvp%?4(54v15l67Jv|NUpfvQI%M0n?%swIc$1o%8mg|Yj@l3Ja`x<5 zxjlIBU{r5@^X5&OKYzYf5D*f;_XVR@g~UJ*Xd?yGwY0QgIY+c0N=izQOpkcTw0hb^ zs`zOE<%|`UE=BO#@Cm{YB`m~%W2R{g)Db=BwP&{80W4d#Om1NuFdpX7qerx6%^La7 zgu%i9Q3t|6QDH%}wzg_}T@?Xen0QDtQ%rGSV0B1#ZmuXn`7 zP&VZ)`g~p?8R+aouf0K6e~7Mp<)?=Ky`({T3TM+P0EI=6grcIj?_Aa9VLK|I} zKQ283LNT2noWiXHspA*ckZD8(F?DPvRm_ur0AU>oKBHQbs%6aclVP=N(3NkMc_J8coQ>t$8Q7VAJvyoxT zc>uzqREHWIp0VcvxCRUz$6^TrISq$fxNmjz%judr4>BB|FBb8PM4^r~QAgN>JVF(O zRUj~YoTu)?ImlU3foYm8{Mssr5*i_PO)n5)$Q;NA!qQ7r{_9!F!~kG~2s=1|Mo-PX zIE)sdOsWh=O@bL*1Ni_#DO}4g{6Sd7VgT`o0r2py733Yd&xKwViLD*z<*hw+yy%kN zc);~=PiiiJoI&+C5RDpY0Sw7HT(;bdBoH$jdhQ79}&lP-SaqqFtx zlxiRf{PTGHo&~}0)nV6UL7QyQ$R8L^(BYxhu3by#&!5+xuZjU+s2KMgD}TVXbcSdb zYN4)E5}K@04+VG)2vrS<;0;t`XVD<1U{F7i`4I=|)He}9V9ADvrD(X>GNp(jb{YO2~MVA z!1wRpj||>Mo5K9zuKGT*bYr-eY>YQEsJw6%ee!mRh>k?w5Hf{lFzE5O{ZwB2P>w1wzbz`D z%J-(x%C{%b#+mta?Kd-M;XC6f5nxm>OzXS?8^1b&6VJ@A6P!Qbn)u?>!ZY7IC!qsj z7Q!5Lb{X|CWcz)9lipas*mZ(HvW<`kAU8mWWCi&Gj&Yq-Cepa~2M85)c?>7kAeA0MO{hU6WE#pd5Fd{Dm==xs8D)8TDa-7o zOizy}Vk=(DeRyy53L*3g1$xP2c&SH-;ZNVRQf=ppsJ8OFIn@1f2DKYmG>QI8nc*Ip zYm`pRqC`*=Qy8Lkh?PAE=;-L6WMS_DBgU7h10!7M@sW7P%2(jE_U_#q86CrbK&;Sd zv_S%lby7}ijzD>Nxm>vJ zl?pHZ(*ci_3PB)Dv71c>Y@C>d-nMO# zB))8Q4hDl|G=fjhxws5BSmuq?KsU0a@_$9cl}MtnG<5&~002ov JPDHLkV1k9EWq<$x diff --git a/partners/Stakeflow/thumbnail_light.png b/partners/Stakeflow/thumbnail_light.png index 471ec4e82f5a32e0ff0dfa2ce40cad38f7afaf71..14d8cc2e2fcbf5b1a40c5de3375e47fb732f103c 100644 GIT binary patch literal 11679 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 G5B?9K=wfLA literal 2911 zcmV-l3!wCgP)}R2n3=C zDuTsBO@$Fpq=F|367EY?5SEOTVtgSrDK=2kWqlzw_Fj7a2Y<`i@tN6+*LK3rPdc96 znKNf*z2Ewx-STdF0}fUQEEBL4pt? zOYZQhOWGkqrn}e<5=1BzDj^q_G(&_;E!cWB2fh>G(!%0#v~<>6RFs!VIpf9XuqQ0; zHcY0+ps*Ph_epg4%XX@7?Ty*ix^?ShDJm+W;^JbeudkP-s;WwEnf?3s)7-gpDPC~? zjT<+j_ThZAV|Sd%$;qKJXU@pimoHzI#R`t2p4t|FmSpbj+_`fx&%1Kv3SGT=RlcsM zsGy4%FH&1u8^z1&)vIaMs#TPooh{#Yb#+CxsdD1P3EH)5mu*{1mMo#d!a{iucEoBU z0qXF_t2r=g33Ya+Nt=G0PoK=o6Cx1KD?=E*xI-g@q!_T31$QkD|K)eZwDb>OQ)f>| z+a4R;;>C-j_QPmVU|6S4oubpHPe=A!>pGz`;w@XYM73cj2pA04yLIc)=C3~5crx9$)!t|XzSLkk^OuQ zuF=rYplx&G#*MPRogi>73vZ~1X$D(Cl+Y+JJ9iA7TvAL$xf#;-m+ zE+o7|Ff8}ML*$I}IJOC+V&g%N2_wNj7)EvE$Pwu+cJACsw{PE;MhS6XpUTmrN97jB ztwyFZWYt*l8lvp%?4(54v15l67Jv|NUpfvQI%M0n?%swIc$1o%8mg|Yj@l3Ja`x<5 zxjlIBU{r5@^X5&OKYzYf5D*f;_XVR@g~UJ*Xd?yGwY0QgIY+c0N=izQOpkcTw0hb^ zs`zOE<%|`UE=BO#@Cm{YB`m~%W2R{g)Db=BwP&{80W4d#Om1NuFdpX7qerx6%^La7 zgu%i9Q3t|6QDH%}wzg_}T@?Xen0QDtQ%rGSV0B1#ZmuXn`7 zP&VZ)`g~p?8R+aouf0K6e~7Mp<)?=Ky`({T3TM+P0EI=6grcIj?_Aa9VLK|I} zKQ283LNT2noWiXHspA*ckZD8(F?DPvRm_ur0AU>oKBHQbs%6aclVP=N(3NkMc_J8coQ>t$8Q7VAJvyoxT zc>uzqREHWIp0VcvxCRUz$6^TrISq$fxNmjz%judr4>BB|FBb8PM4^r~QAgN>JVF(O zRUj~YoTu)?ImlU3foYm8{Mssr5*i_PO)n5)$Q;NA!qQ7r{_9!F!~kG~2s=1|Mo-PX zIE)sdOsWh=O@bL*1Ni_#DO}4g{6Sd7VgT`o0r2py733Yd&xKwViLD*z<*hw+yy%kN zc);~=PiiiJoI&+C5RDpY0Sw7HT(;bdBoH$jdhQ79}&lP-SaqqFtx zlxiRf{PTGHo&~}0)nV6UL7QyQ$R8L^(BYxhu3by#&!5+xuZjU+s2KMgD}TVXbcSdb zYN4)E5}K@04+VG)2vrS<;0;t`XVD<1U{F7i`4I=|)He}9V9ADvrD(X>GNp(jb{YO2~MVA z!1wRpj||>Mo5K9zuKGT*bYr-eY>YQEsJw6%ee!mRh>k?w5Hf{lFzE5O{ZwB2P>w1wzbz`D z%J-(x%C{%b#+mta?Kd-M;XC6f5nxm>OzXS?8^1b&6VJ@A6P!Qbn)u?>!ZY7IC!qsj z7Q!5Lb{X|CWcz)9lipas*mZ(HvW<`kAU8mWWCi&Gj&Yq-Cepa~2M85)c?>7kAeA0MO{hU6WE#pd5Fd{Dm==xs8D)8TDa-7o zOizy}Vk=(DeRyy53L*3g1$xP2c&SH-;ZNVRQf=ppsJ8OFIn@1f2DKYmG>QI8nc*Ip zYm`pRqC`*=Qy8Lkh?PAE=;-L6WMS_DBgU7h10!7M@sW7P%2(jE_U_#q86CrbK&;Sd zv_S%lby7}ijzD>Nxm>vJ zl?pHZ(*ci_3PB)Dv71c>Y@C>d-nMO# zB))8Q4hDl|G=fjhxws5BSmuq?KsU0a@_$9cl}MtnG<5&~002ov JPDHLkV1k9EWq<$x diff --git a/partners/VIA Labs/thumbnail_dark.png b/partners/VIA Labs/thumbnail_dark.png index 57f8285a9df6e8d47dca3aa2e0f50b718570705b..85402cf1f2c8c5811771138a25e7687af5d3327b 100644 GIT binary patch literal 15820 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

`fw;KXff4Mk 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 Ue;hUooI4}P%cw}#NSX%!FH`h%rT_o{ literal 2366 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 URNF)wz=sIr?&9UlcMQ+?2i7}t*8l(j diff --git a/partners/VIA Labs/thumbnail_light.png b/partners/VIA Labs/thumbnail_light.png index 57f8285a9df6e8d47dca3aa2e0f50b718570705b..e664677b9d52e4f717ae8148a914e141cc24a75e 100644 GIT binary patch literal 15943 zcmeHubyQT*+BYfP9m3EdF?1u{4NAuV0}R~_N;imqcS)B>Nk}6p-KBg-Z?E^R z^?i4(@BQzdwT3xo$Fui-;`hWEqBPXxvCzrU;o#t~6cuE&fbX2&A5;Y3FH+@+FB}}n zn6HkWyB5R?KyfE-d&JcJmzaon1-G?AbZtK%mLoH=h*jYT^N&wQTIs4Ud}ydBB2kM zpxsAHsU6j|CTt!v@tJ$q=T6lzcyFpVE`BAPk4go!-ZE@L~4mt^>emu{z2K^pUQ@u@b;x*`jk$l;oG>$d2vAV=#~tBB+3+#aKJY#@cH_vX)w^*}x8 z)A5O%2ic#^o60tjFeULFRX@yM0c=MrjSH}&WmYefcy!<_ZjGIT z(JnsKW;~cswJxE!*yeL|+gA9%``ZU~A1q5S%ZP2FoY|mTRN@j2J*vQD5CK88I!`@b3K^=A(S^8( zWXJoBW}T|brL=UV2xxCawBL4R2<6WN@VIqtAC_0JPkw19^J~?RYzR8qe1G)pvFAls zXU3z)T3hv_(JrT{jYt_>*^ote{j$+;;tH1%-H&#C%U7y?+Z6#jwLiI_jB}r4@D6-^ zZCA2&Mn$RQj2#dPxA^uv4h{iJ9d94|bLutM>i_YppYFgYIYSIBYe= zIZ_IAbYb}|&wUPG94ji*q_#BX38Jyp=DyEy3wFY#oJoFlZCOS?ru%VUvo*3 zl_pElF&4kfstg6&m!VQ`lf9IEeS}z%Z976GHVI}JciDGlxb^&6CN7ooZN;Tv*)SdX zi(nA*mG)?4aiQR|v6!4^EE!l?)L$}ss=%Mw(o3(tOc`C+vp9mg7X7TIoN{GuI^=_I z3UsUlIPxS$mF{+NXzNHh8gMgRmx)6~^0HY5bvB1a9i&sy(x9D(^sWckaIfCL-!}WQ z9`JK#m>2M>|M>P&H6p0Zy}JZYSRxF8e0yGK`>3HO)u(9$=BMf323`=fvK?H&+pO`) zbJ23L;E%3FS@prmJE}DoW7JA-+NE5tNK9|SB5019It$Qf9Q66ZO>G!c2>rLtA>bcdBE+-5fNdHh?%%dE-s_t^>Q)PBGfyd4gg6YNJdJ7HLtKwr@~u z$v}W-LSb7cERllfoQ_S!e8q-^H|z^;T{?@ARlVF|)MUSkCeN2Int4HNR^3u@BA7{x z>YsV2PBmx^KYTx9`l>A3RO0tttyp2>L<7@Zk7v;a&z0hi=Bax&yj$d(36Xr-(o}QZ z`0|Byngr1>A!bdbSo;hA)3Q;XfIvP|YQgbx#F2FN0m-FaNt*Y#_fa!9jKx$naxw=C zyEQFih_PkDnFOuo&Tryp=#7i+*ZblSNQahrMEC+i@QHOXiw9&YrxDZ5bSas!5{Ici zq9)6rhtrn-1koiQmCy>ewFYDoqHh-_K@_~fa^GB^4rrT9H?@aq5spO)X$mGEVr*4+F$vDE~+vLR0k|MG~n^o@&10_FGdIwSMl(nP3kRMMLp^r3aB zP1Zs3?;|zf2p5+>#OO9Af3XI{jmNOL*kq^n048$qdSXH;W$Qhlp87MxyXj4K6 z+AfuMp4izQ%m`A^)=(&2etm-4y)pg1{OOv#oTeH{z$doB)rE#)iOAcF;csxmh4*XNea{GPiU?J?sb(Ibw&yck3TOTQM-6baYR3JFR@pk^kq!ZN%kAd!JbD^odB z608jqbH+nKqqjBRD*7-Zg@el8Kxd-EGTyH{#xd@6%!#?VT=fG5tU zB00B#@09td>5ZMaMHPx5=9Ge>&+^)nNN2WIg#gU-nYWXU=wiwa~~p2@MyD6{q*7R7hksc z&1Bc=fysHkqEJnWB%RPnqghf1a@b~m2_Ca2D1rD|LYcjUKC&$>0b$BnB|ZHeQQt>}26B~#mAxfIuep{ntu zJXps4m1DQ4L8z(Urb2u1y$iz7Bsm_5+Q-rrv?t^o?i52EQZg-{F3k*%%aT&epOln2 zqXwV39qNa!ELu=!st&2&xl zY+F#=?-R7J%yW00zl@ZVwTHiAMrRq2gszBeY1;NMmJk?IF&ZVP-VUN$#$T4`V3O{c z|4Nm9soL-L(QtSgM=xTMQebyQjfVP+g97Y`bVS_pWL4jAw3189gLH%ox8;r4lAJnb zYoBT5KrDW${7V#*!OaBw)H=I)Z04LF>Bp~!BuHD3ZW?-pKiLSE=hLhkzV?|^Hw$cW zK!($tq#+aP6W!QWsizSBc*GJG7Ak9)Oh4UP4@xWGE6VRcCnxP>`8e@57@Ov^87^nX zg^81Vqwk!`?qYQKRg6`GGb3`0&@xIV^Zv(``dZvDlu$5)e4X!(WTU^{Y<&_@tF+bX z#bn7e#T$2wk5~frtvTsI)ariuoEl69A>gb;x2@LtM;Y5RZUrv|S=(v&=rM=jI^;oV z`Zl6YN4&{scg$wH2EpKCCyA#cLEk{rLBAsU_{E-Q5#k#w3#0kSmxaYM(WV4elRC9o z*coLqH_og__>rGQaO7?a&yL1&=v!b!E>ano_n>TCeOW4jv+6-Uy~5iI&hRGALkRB} z;hZi(Ly|H^W(R5b7NGKoT23VBcm{`~J)!xCRryJbDVjcL0nw6}LjxnZCv3sWPUpE9 zSzGcHx-70lP<2f19Cd8UtE=j5<>LE=wY-l~lnKm1XP?DJcld@GE^29iOqTn zb6>Da3{I3k_VJcy5W>Co?fIBxm%j!^*yYm`%2A;kFh;hELpDqC2rlTLVI@NsUYy${ zW6VR-EXMNFF`s$+gdk4@Vz;#@9oM!gImm4zdZ0l5w)2zuTc6ZT1%{1%p+^I*1w1rl z`}p@gnl@g>T-0EtB`DdjqT#^%}CO1cgx1UOa+IUb@xbQ;g%6W>AMQaLo%$it%`3rl$DzK;7YR` zhp=+-TBJXDNq|%p<}5A9WwsGXt?L-mD)S)f^}S}Q22{&5nk$)#* z3MV-<@>!eJX(pnVOG)W7Ge`uDW!`wKI1JV4g5gK8<#HQ)3l#|9Z$jWSe%=JKLx^%A z9Zqc|mA64I3f)B=FVC=H3dT8z%f6}S&CLt$`|`GgOu64+PwE>hR^wZ6E+*e0-qU%Y zCt(zsl`~GlePi0(3(L}^HMne0;$L+OHb^ISu8X~(SkX)VIgKK;Zuw(6&RKF^1Cgdk z@@XDsVv>C8>ywIh-OJ}R(ne68s$5D;^ywPm_RQ9c%=rXqaQ+}cTIIp5(p2=F272S0{Iq=P5E(|C5jes(^2vQ<3c z)h>W|A7piTvupo@e)N5ee~3Kf0KScleRWeBy`%&Zu~2Q;kvrj(D?n}WNOgB7^z2w( zZqIaU-2caDscjZHG~BMA_k}wm^E|07H(63NzwsW&uhrnYP2DI9!R2L!s^FjflW=9A z?|l|1hpkSyK3a$Aq%se#_6E;hkA2xelr#N2vGDXGTrV9`i9zg#{*hiPE2aWLOgOW= zXz--@SN~F|0y}mnxkM zfjGS(5LUU!Ww~GT)__?MEjh4Dk9tWPK2=bA8-fS-a!Te1-z7oqa{eLZAdoVp|L-+pfTw z`i?}>XmjB15gD{Pr|sm#PaCt?9B~lQh$s3hVyvP%pP_%r(O(Y;8A*t4yGYx{sO9gQ z5n3Lwh7u$5eF)$^^A)?WI#XhD{;(&lC+Hq>KI!({fTL@HaB1hFv|p)^Ds@&VuJ*Q` zn+rW-cCryfXX})jpyksdsoCBc>6aJDY^Ot%HJK-<_`od!7t43Td}+MC=b-A9z7&og zi46|yzPrY&3#CiTf|Fhw7`zetX#TTqfZ-MExe`jkLhKA(X(3a6xc*5KZX&zE8P!LrDXXyU2SqrL|6#)H_JL`;e#so8T^4O<(Mg>aUsBVdoby_wN@Q zhV)w-KX47$EymWIJ1}Z9HU!TaC}!F!gtQ*oX>K}_^oyM@y|p`!ZqAD z3bK%N8xtDmxqR9hZ{0~;G!h5DwF3F!E42t(0B$${2V#dy5#rHpcz&~yd z+A`ni*DKH#&t}WMKuHYtpLe0`Nvx+mivfX0#B4;{nN~vclO-`;zgk{Po&Ln$?^`eW zjHY#e#@1mb5Opb_-Y(p;VhZ+p^JwuIvsOi9a%u!TS$A?lTwUkO^*~~q&DLEw^W7ZY zj6j$%s5u4kJh8J74iq<~NShLlz^7+?aNf=3D{mc5HOno=mJNNBj*v>y^3Il!ni8>P zQ=ITXrR14^Cbpr1ju#tqZW4DS#DIc;1-o)hvnw&lD9*yG<_Bf8u@G$8c#%B`RoIcV zf%OU;;Aj8rhhs-jJgH21@X9~VaP3pUb=?RR98`1Ew=IpTbP%h=U=N{+$bb!|0>KU1D!V_cb4E!rQ(T3#k`(%(9paGo&x(_c`P0Q|3`U(@PcNGcm^- zwK_zb@|r8ygf-MZgFa=gazpwU&a9wxFWh<+Au}4&!7cI#MUBc$bMgR4m@-K_vbe_RUKWf?HL%ouQ-YI z1^yBWEqJz`KcY~|e2%O|UN`oCnXk#=)%8{Q=3MUW*=U9;laPh1v6mZGA; z5xmQCtZT~RB+>1*;j=%L zdHKwK%DpgLy!{dw`HQ^*5^tbm_d~6#KJ(Cmi%+lW%>`0_j!GE;779X)E{6o~@_BT! z^k+eHY^40zv+!gVEMEFywr|bhv0jTLZ7T}OUoD{OE)%E+ATNpX1*2J7>x(@5v4L+k z8p+@B>BXOvC?LGz9ln@3oE+hv4G6z_$(M6Uj!PKa81#se5$J;B{$^J$LA>9hD2;ql z8xPs0unH%VUXrk(w?tO@jlSM3llp%8<8*!?P_Y!?MEX)?^$R0dRT2Iud14n14n71X zEv=y_E&aE;K2XhnACM@f&?`aNZ>n9W#mef5>oTN~b&y9JZxBYSgW4cfj?I`BD47&a z-`}t4%r1CSqvzr5@^!Z71uoKai6vwvSrV4hSBkl^u_%K-y}gcIuCZ~+iHh`%>s}Xq zvl33nt!sI~brB8v6q!Sf$XypJq^Q*6<-bhVJ=Z2UarXRrXZOW9F(Lx(DI1SUrgw<9 z?=-*QF@e0k;>)Oss6o|M&?(&xMc}++PwiSam-3QwE(hRj* zsjn6(=fu{PS{9XlXC!iGcO%?$uy|0EESqF7Dl%WPW>B19r7#QeRDJfzDNb8plo5K% zh}m~N2_kaKIhPGm;rc(Rx@hcLgtHP? ztZr(U$NSQRWn|RE2gPY#f)D?IxsYtkqM*%8`1+dXu80!sjS)K6zG84M7y!pT^J4#r zpdivfbaKbh`O$~ZE5F31_m5Gym|bIUv)*z8uV1`jz-tygRTW_iCkGCQrIR_7!`s0b zcnt#wC;Hsm8De1vbqAS4tznL0w8w2-v>=$J7_Ba!Dp=K78fpVm@O6c1`>N?!_}WF?D+%C9jMm28-C3BE)62_?!;6Q*$<>;ZOGrqF6U@!Y z&CL#sV0ZIzbccAeJG#;RCh->NjIUO80|9OU+yR0Wb*yfVWkgT2MD94_6DQtS8jb zo$jAWSX%sjzO#p`{h#AlT5v+`p$@=MH(*t+e_2vqQB~vbGk&wc8s^~qXBNQhe;Mfx zv-$_K{$+2!d;T2fpEm+b|2y4(8U44j{}~L7QdJd}akB9Ey*))4G1}kj3tKu_z$}IT z+;Um)3Yha*nX?Omp-^^SAwC}9&Qg%woY#^^5DF0z5;W)jCsK-zZtf6A3+QiB0C5f& zK!*on!Nm>Xw_xXiKm^!%tt|N1g)Dik*!iFkC^t9QN>Gp=`cEX(U15M$LhS!}SHDSF z0;KpXECj8%_ypK_z&v1fUVc7)b|DLXA$BVsO926XE&*PM0Pi1CmKMTtPOc6RK%6iK zh&7bc+0pt>$8UxUOKK>J(QnT9s&kW!!!qTo#h`W=k zj+2wU813&Zfqu{Yd$%fJPL>dNhz!IX3J?Wz^9h4_gt@>vT-?H30>WUSXJD`}_@Bl* zS;DM*{%@my8xKhIFCtffxdH3@{Av1&MQKA_{_^yfM|;>GQv!kh7=^_MOS8;GMd6hM!^s_Wm{VgE)ItOU7)__?7%>=1J(H=s?tfL;mlTCj721)<#L z`~rOZJm&vO-Ob6$-3#Ihm9z%<2=EF}&p*5ZG5--1%fF8HvVs1V0>ChKFc16R8O8%Z*!k2vrj4gRlo{g++;5eNRG!T;5+|8ML<|3^9nbp)ayFCbaE!@TAN z5-l`m1${R-I1GZ{A9%Qo_oP50io2q!EXp1tIwl^vQ?ep3j`&_tMp6g(?VGWep3dOh zieD4@vl!kQ5Cf~6tP=kPKI%Rldkz;lYOo|S1DED2^8-9ZNrq58T*CZ>s&|oL?@(Fa zF>A_Tp-W02!DzJ#9N@jumX8yDxOEL9r|QchSgmx;uYX8yIbTT^a@!swQz_M%!Zk5n zD?!8UL5(y+k^v*olEUM~zDAXkK%xuA`yZ`HbfEvY);|O=DZo$aKCTAdtAcRNNclC$ z%t^1h9)C`Zj6|!HmX91L=<@!W=j+dNaCZJ@G*-;Eq>Cti|Xk zPd4WL`}af1?d|P!^6~XeP1g&B&Y~cY+0jx<$jt6YkCcl`O+&+F_e&E~)5nSDk4VZ< z(a{^OEhj=J-tDTH{2pFjNkTI-GwrwAnQt~cJw1VpvYBFB7kBqi66+eh&d$#9@o}>kKOY`IKVUXC zH_KkDLA7($rrCln=8xyJ@rL^PP%A4|!sxl6wba=!M=%uMb1<$BokP$C_qkB^U!gxvsXBsDpCES(2s5Hd^d=jRtB0f$Z1`*!Vo zXTnfV57U0IA8dbjv6tNAGoHa`8z8;7xcL0>f#+Rs6aiCgTpZ1_wVfS#pXs$VGycrV zuQ4hgM1_QfeMt%Yw?>F4C^F&aDCA;EYkV(lKjxH`vC`4eHE`=UJ43X!3DTv3OG5+q z`&vbDvDe`u-$w)&7ndhbo^YOU5HP9?ef~^Ug%lAHk+ir6hy6J>H}}Ph7nUqpSy@L% zN4BabR8&-RRmOD1-GJZ@=W9ZG*Ci_1Ttrz}(cj-!n|2*-Z(o_a;l^)raB%ddtjWd@ z_e?0h0SgFp`CW79%gDPK}~@W!_$C*2?CQb^?+R)F3V78Y9m0?1ySooOkHxVgI%#`K#p(9zO@P^>x9 zC@3f}Mpjzf2FJz@7*;Xx9w>{7iU4&r`*nJHYI{jV93wjn`SG>V*Vh-kOfqSd)Mt3YLRu~IZQk4t*uc?(KRcqv`Tr!#RJFQ zadAG{Rwu7XHppJXaIL`u@lVU8#(ThHQ&ZerT!|{B6&0~jQ9c*DccT3TmkXJ&na3DjM7a~xl`{ZBXg3knME?tJSP;Gjf{A0Z)8QBhL4yD=a1>#TxU z6crVloK^u*g|nG2HM;;>49FCu9UT+%>gT2I(DB6V?<+;c=i$ahN=ga_+XK(5k)umr zlxXHVu6AOjTYGt3r}J1Bsb^QE9(8#9cnMCLnwn}_@x^f6686}iDc7wI-dOcN$0{%h z-!>zUlbfELWZ~qD7^^EN2%Xp|hbrD&Osn@$%Frgp#bMF6$;ruug@xtZOyER#JB3{~VmkmHa@c?F&z4V4PO`JJ z_ZD@8E8sXfID`#@#l)7se9@>pTxo6=`~r48S`u<|b5l44@MZ4n*SEER%|alM{Uhca zst123lx@=V9I@+pBEGq^al83sXhc;V`KhT z2V~!8a*B(us|5}|lI4X-t?QZwyf86YNh?~e3jp>4m{QNvo9SZpY+(;{D`zV(DZp%T zaq;gu#`^j!xTv74ATVYok9EAk%f>mM$gi`rhq`X!fe+0Fay+9&uEVp?9GR<)YSC!@VI}vO6t3J zsC$k*X5de~z1gBZQmH0-dZf6xa4m)azzxKbxdA9ssI@RN!%OH3wuro5uC1+o_m1?& zgDIl-^yK8^{G3jkoSYm90lwhK0SdibkD!jH63e(*08}p{!x!*IH>ETn5FD>9ExQ2` zJ^t{~a$9+MIZbx)^d3JyKMf6y*~Zo3H$bwGJ}gX3Vm7_C?QOXtLSkZcB!nCEZ{NPX zx>~Rv`U1}<^NcVW@D(M{uU{r7g#btLZg{;nf(FH!KlA6LJhkTj+S(diwGaRR;tUM3 z9BBl#(w31_tw_&(FPMQ1d@#nsiUTwW9P#krZ)azx5U!%4(p{=ssuOrQtNTWLDs+5+H@`>W)GP$8jHZ~=lo#Ln3xf%e-Wj%jIHB~`MNl8gc zs_?7beQ)Z6nBQ6l8ZR$zDw{sH!y+$OlQ9V}9}q)12`@kYuajP!lgj+U!Y$xhUx%+U zdO>}PxPEYOu(c%{|J}SskcnyMxa%>TEvv_j&7}QZEkxGek~y1Kf6yF>_d z-ahr#)YLQ^;p}>No0WxS@v;v*wy@x{HIibs(HU@GR#rB{T_z|Za?Qs(vgOK)@`xzn zb;QQT7Wyg>@Cty1eV+hu5D>Hkxg4YV2bEjFM*9WV%>gX$mt$jNsqBVw86Cc#d)~0F zJnP5heqjZL0=TbOs8xbPFv!lv=I`%6r0N0ab!w{T>4q%na^|=dr`|_6_vp`n%O4rB z1)!y(va>T#M<*G*$u?c(N%prN)s{bh-5*y~RsDSO9By1L8PReu{;A()oWR;8x3l!g za1zt6U%yV|%1xT+Sem_#sdfwRvtQQA#gP+HQewXPlH9v4BPSP(tXMcj#$zSn833r) z$ogpqC!^5RjRce=QB!q;!`}?%P*#fQM;ZG{QzTQ0UymyqAM%2?#P(Ur1 zR8m&90~XFXxINzizA+}Mf`WR25K->1I!@+HUr7e??%Gd12fJ+awYQ7bqSolW2aH#U z)SPr1P=-D04u6=mS8In2-<@Y>L)H8jg&N z93<4#&@c{!O|{5zadEF6PUSWHk5@WuWkqLZXT<=U-a4dbbpaf9t_0XZZ;Xz|YHYsU zhv(hd<(%ox_wU{Bh!*TU_4M>?Y?#wsuMQS|-d`)z;}1>gv!w#3EiPtC*D^35r=+a# zJ$uPacruvwNKm9iw0s?cBMwU7V@??XY-}`*Ge(A%)PFwJY zbj9N8>c^kgt09~o08BvK#k~~>#>~K?qN2#;K5A7Kl88fx%biwy~ zo$KrCW{&1H^F2NAzu@!(1I3xC2ng~WD^38oFkwte3|y2?pkheCpbJh>D&(f6m8vu* ze`72!FaM?DW_L0lI+_ZzwUu(Mb6ORT=KNfsm^8y}#|Bu^K__5vb=DJsMB6P8%2+^_ zbHl@X$OF6pRDwUM0zhD7MEU)QB6HlND^N`E67a&UEiF9>41)36tT{TYh=_v;;Uz!17zbmaxfGu@7El3OGIC@i|$8e-K0e{Q2{mXOax<0ucEaAfly>E_e6| z^k>4Y5NWV`YHMkk!0vJ66dsk+IC>&3thv(x*GxDr#LSH9N($!Y7It2PWA@vhVWCPW z{`!s#A74r+-^|)tVD0{cnwr}02-|xR+KjJq!}@Juq34Db*uA#p_2D-Zvb@4ML`#2h z)5_cz^71=hD-Cm0-2wQrg;|5kIf1moH1HORYY=!+H9I^yx_N$Eb{`ZU{~3sKBui&z zbZ+#10)FlKcon4|NFl0U3K}3Hh9oBwx_0R^CKVPGl=$hx#V!KLkEr0dxOb6~q2V{D zuAeVKxEIh*FIZCunA9+_v5N{O-U|^7Oppzp=H%o6_@nLVyfdDO0!z_hO##RQaI~g7 zwB`Er=~I*wDG=pg8oS~4#s;@SxCw)d3Qg!bhPxNdKjnOXOYiPF_X^x0a1KW@G#26D}&! z=0IHj^qxI`<_6g+CxEViIYqI?k@MLCK$2YUW1La;UU&a=&xEDO4P2vFe#d}QORqP4M7qYwOY<5(ldB;9eMK(z>NZINlHpW z(=XL&4Yya0U9a-)NxzyAXeRK8Hav$k&a zllJqw2SOs2GjyE0vkKKEN!9! zJu5Tw8>K=3DHiKtfXTBi#R8dUll{Wm^mMd9UH~ueuMYDkZE9+29!D& z3A|a4aM>KVq`0Bz1=G>x0}1BaY#miqRaseC!0v&}r<&FaV2$fmv=Ijr$Kcn=Ng7L8 z+Q~}8CSef~9&T=8Ae%LLf6IwmQCazvn3&&brF~;#V`xaBRL9oL>}0PvTP;htf%Ewe z;K2c_w`x+j!FX&RFGR+TM-Zu0a~RR z%#mwH@$vC~R|mi$fsK7@beNu*}9v+_HwYP8I?(Xi^)^cO^nr&!yEn0m7kM;G1?k0!k1#LD1)EgQ+swb2S zr?La@q9QdTA@52{VXm&VEiJcztaK|4W&y39pTF5kGX+k4eZPeb`dVe2nV3kEq6B!# zx;kYwH7Xt}%!I*jEpFC8La(Yi{+2o;Gy4Yy$czXJ|;FLXnZ4p2!Yx z5@KUBzqABky%~Z8RwcnN*A^q%MBHrFEVbu8XY_bEV0!w3swzi7W&4Z-hZ1K1FM`@- z?BH++q+$3R^%VT}fW*S2bTwB^#oAZI2G!A20VTN!B4wWeABC7KOj@!6YXZ!ni z+{B-#3xLb+&VE8ZMMK$*mS8l|9!+3&f{4Ehaa%4f#ibN0*JT%%VA|etYl|m)%uKz3g+ooh9s121NQhS&cxZs#WSfn#vv^TOQ~V+=Cqo znJ@pLzP!A=va(|NOS(t0tD%7iGgG00iU#_-Vqn4xN*V@!sUej+-{!@+RmP8y#HcFl zePZU}aoOQ_%^VV>!3?-(QSXzSq$C1w{V`=cmBwSh!w2~LM|M$*``>&YPSTa{*1)jH z_n&0`DHspHsoVMXcqnn)<_!R+0K?`dCxJM1GL0~z7YGc2yw=IqmNv7gq=Z>mxV5SZ z+x01qESQTLH(Omx>uphym5huG5IeiOyTf2Cr`w2uQa|`Y8XNhuCzxIVaZ4UUMq*hoC+GJDFg>+Y+ff>~+=oYxF6PsDG#K#c}i z#|%ATP}}95o}r-#BV+hM9}wOH1&ue?89=ED$Xf9;c;YuhuL?G90c8vhM#y`*|KrCn zk*2jZ(?dI)GB{x{CLy63fa|d_pi%A!Dp zH#Rj9ByN#YP6IbK3n$U`z)bU?#Ggn z$P!GIy^n6-_)QoL2Be49pWox5hxHu{S#o!@w>LU``#NVVjUPq-{P`mgy;??VFt-Q( z6poXlnAbDslymm<G%csEzjGtEx;LzIi$M_FVD{MiHlS5#$nBK!XOuo@9*x)0`*Ky zUjb-$+r{_2U90dHru}m u3jRmY7zh>qO)2@`xBjD){K;(X5$=egF~IqA7A-3wfsn!Vl^vgiEOL8u(|vkiTN1`=hvnp-)Tf!6vl*_)nZeK`4yQ? zejMr0=0~&K$vT!FM`;PmoXp)x-N)VckN5lidc7X+*Yo*$yCqK_IZg-PyrE<(|Bxk*XiK ztJm-fIOJ{c=(_q2!mkR|rvbgXA)%SPI){Lr#sT~J0S5@6gro!fBq3an;n7tdQ$%jR zI&|Wfdo63+6%1JBafw8F5%zdg%-vH|R5X`p+ua~eRj6IVgML1jShfM49u;4B4@y%f z(`JiLC8$r+Kv#+JUE0%W?{T`0U)@ zdnjWk0y&4XR!Jrj`iY;CM{I5jVAsC6GynRhrFi~dUB6{nKk|rsa@gP*3Qo6-9KVG< zK!4UvedfkQ7y&|n2A7V~AfNSVF{(;hZ zu_j#XlBv}?c#wWA$t2PT;-|B9Kqc9{6`#NAt+^KQQD~MVEpz3^=y|9m1VH?B9hJ47 zDR+)?w6dd_=l6EqKGGuUaVk1mTC?ZRua9Wi55Vaqu&269x9#ZUST7Rfl7wbHfc-Wh zI`j=`o1}W5YKQ=aT+hhU4+N52T~`F~h{&$fX$-HYAmw@o;Y14A7Ir@mUJX>bK0bRzq1U&l2L8RMDZz zq)pk(p8Rn2n9l6p#oEA0A~M*}X+KR^EzW%|w({Yji9Z`y=B2mbPyDcszsBZD%V55w z;#0jk&tW@0yT;X@;39B?NtVI-fRpMQOFI{hJn~^bx_o6-0x`*L)! zo=Oz6)#T6MzO+yOsj*D9wUSpO)<5eGd5H66Zd{b(30#ZeTxf-q7qUL=C(E7X-}TSk zqxD7RrmO`vaz&ZcYz-Rw?i(e$9qqR>li~mAT*vT)Go3BXoIE7*7fwekCcBO?!AQ!@ zS|^k~s@4#sf-1RQfToR=^>QKzM@h*zhSejA+IMB7g>$L5e;5;Kqd0e zrlIbXoC5TB7}rqO!AQlgLu(j${~TmvVh-{1KRMe+atZZE~c2Q`%rB4ki^0<1fm0q zr90$rc%O{nSTvxCh0;xvM48jFx22IP<^-ljumDpN6g!6aWeM~sDvT&P)Pi^QN2LU@ z(mlDcgcuI05%3#FAnE`=pbqZ}0J#Dxu|R)fw;Nk6vUEKmuv5`mnkP{_Pm zcPAmnv`QQgsHY*YMIQopFu{a&r2h2%n9Z8n%_Au&ek`*CYCOin{6YLwif-(CibG>_ zfmWVJu23humDQc3p|S$y zfOnpQ{DPF-u1qKOb;4j2?Q={>6;v|SS|cWE#%{`{QeLQo$oRt(ak-pTzB7}$#rj*~ zP|1-y8AdC0eli7sk>hZIImT|kq!HEM$trz&@rEOWHPtoQIMFkPYGkyK1mg%^EA)I> z$Y9!4;3R&{$D!i`K8KF?_{v@@GmTcLLAhN~>T(9nm0_EwY9?{?&O?_rwAx(L^N<9c-BSo^4e5&bvnZ z;x&RtM5Pe84*AqqNK9}m-nBkbQHsulu2S8&+;#q=W^?r=Bxb+|AR{e3dG@km6K&ri zhApvg7XV%iHO0;r#@b*j#f0nYd`0tq^(Bv|*P4yz+1%7MTdd{vh@zl#UM+>O{7pX2 zEr4EEMNj>~v-%02Mh5$`uX3RFFUfq+J++{7R>_hDIFYnC95=f!K1Nu!p=p^@4jgiX z@_qTA8|(__HusZuK&B+l#)CBG(_^e&^6qJP=Y-GF1q~!7mRWrFh>L-f2XZ9@>uM4% zXLU@yan=_IvVCRg>p(YOcmMZJbJ#{hex&__K1t`Bx@YB^H#<&rWg1I#-T6YUyC4<* zXS1vllM9X{(-O1XBE$ViS-40qtE86`^5LyMLUIXE$&}uFDzBk8&Opq3X|jN1!V!}?*Kl@`XK^2Naa-DenlIqo-tcXsD; zcfVS~V3cR=UEty680frKPY|=5)@j^cO0*7?rfSRt^Kq|FXkJ}V&gsF!d(Q?);Z#vb zsXgv*PL*SK?ohboqmEb~;(nw>&@$p5rFG_my@Lt=-OXwZ+Nbq_)!NfY)i@oMgWEHH zgw?4eGr*%-#`M@pSZa8KP66xqXwymHB_Oon_l}vXMklIAi2;7?oW3-1?WiE2b)2Ui zt+|B`E$|AGA=2BiDvDDf0^6yo-CPYdql6+E_SM~W&I`oypi2}w@sG}Q$hE7WJ2xjg URNF)wz=sIr?&9UlcMQ+?2i7}t*8l(j diff --git a/partners/Web3CDN/thumbnail_dark.png b/partners/Web3CDN/thumbnail_dark.png index 6d369c9960f8f3a9605f0cd1bb118d219b0cd3f9..2c654c3df8504d267c9c9fcade6c9c3d80dc6d6a 100644 GIT binary patch literal 15879 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 literal 6222 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

{XbgsMZKs#(W!KFb|0mF7{PWBwG*#4@ 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