chore: init

This commit is contained in:
2025-12-27 17:16:20 +02:00
commit 7b85dc6e07
10 changed files with 1727 additions and 0 deletions

207
antiRickroll/index.tsx Normal file
View File

@@ -0,0 +1,207 @@
/*
* Vencord, a Discord client mod
* Copyright (c) 2024 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import { addMessageAccessory, removeMessageAccessory } from "@api/MessageAccessories";
import { definePluginSettings } from "@api/Settings";
import { getUserSettingLazy } from "@api/UserSettings";
import ErrorBoundary from "@components/ErrorBoundary";
import definePlugin, { OptionType } from "@utils/types";
import { Message } from "@vencord/discord-types";
import { React, Text } from "@webpack/common";
import { knownHosts } from "./knownHosts";
import { knownVideoIds } from "./knownVideoIDs";
const MessageDisplayCompact = getUserSettingLazy(
"textAndImages",
"messageDisplayCompact"
)!;
const settings = definePluginSettings({
customLinks: {
description: "Custom links to check for (separated by commas)",
type: OptionType.STRING,
default: "",
restartNeeded: true,
},
customVideoIds: {
description:
"Custom YouTube video IDs to check for (separated by commas)",
type: OptionType.STRING,
default: "",
restartNeeded: true,
},
});
function isPotentialRickroll(url: string): boolean {
try {
const parsedUrl = new URL(url);
const hostname = parsedUrl.hostname.replace("www.", "");
const customLinks = settings.store.customLinks
.split(",")
.map(s => s.trim())
.filter(Boolean);
const customVideoIDs = settings.store.customVideoIds
.split(",")
.map(s => s.trim())
.filter(Boolean);
if (customLinks.some(link => parsedUrl.href.includes(link))) {
return true;
}
if (hostname === "youtube.com" || hostname === "youtu.be") {
let videoID = "";
if (hostname === "youtube.com") {
videoID =
parsedUrl.searchParams.get("v") ||
parsedUrl.searchParams.get("V") ||
"";
} else if (hostname === "youtu.be") {
videoID = parsedUrl.pathname.slice(1);
}
const knownVideoIDs = [...knownVideoIds, ...customVideoIDs];
if (knownVideoIDs.includes(videoID)) {
return true;
}
}
if (knownHosts.includes(hostname)) {
return true;
}
} catch (e) {
// Invalid URL, ignore :trolley:
}
return false;
}
function extractUrls(content: string): string[] {
const urls: string[] = [];
const markdownLinkRegex = /\[.*?\]\((<)?(https?:\/\/[^\s>]+)(>)?\)/g;
const urlRegex = /https?:\/\/[^\s<]+/g;
const maskedUrlRegex = /<(https?:\/\/[^\s>]+)>/g;
let match: RegExpExecArray | null;
while ((match = markdownLinkRegex.exec(content)) !== null) {
urls.push(match[2]);
}
while ((match = urlRegex.exec(content)) !== null) {
urls.push(match[0]);
}
while ((match = maskedUrlRegex.exec(content)) !== null) {
urls.push(match[1]);
}
return urls;
}
function RickrollWarningAccessory({ message }: { message: Message; }) {
const urls = extractUrls(message.content);
if (urls.length === 0) return null;
for (const url of urls) {
const isCustom = isCustomRickroll(url);
if (isPotentialRickroll(url) || isCustom) {
return (
<ErrorBoundary>
<RickrollWarning message={message} isCustom={isCustom} />
</ErrorBoundary>
);
}
}
return null;
}
function isCustomRickroll(url: string): boolean {
try {
const parsedUrl = new URL(url);
const customLinks = settings.store.customLinks
.split(",")
.map(s => s.trim())
.filter(Boolean);
const customVideoIDs = settings.store.customVideoIds
.split(",")
.map(s => s.trim())
.filter(Boolean);
if (customLinks.some(link => parsedUrl.href.includes(link))) {
return true;
}
const hostname = parsedUrl.hostname.replace("www.", "");
if (hostname === "youtube.com" || hostname === "youtu.be") {
let videoID = "";
if (hostname === "youtube.com") {
videoID = parsedUrl.searchParams.get("v") || "";
} else if (hostname === "youtu.be") {
videoID = parsedUrl.pathname.slice(1);
}
if (customVideoIDs.includes(videoID)) {
return true;
}
}
} catch (e) {
// Invalid URL, ignore :trolley: (could probably merge this)
}
return false;
}
function RickrollWarning({
message,
isCustom,
}: {
message: Message;
isCustom: boolean;
}) {
const compact = MessageDisplayCompact.useSetting();
return (
<div>
<Text color="text-danger" variant="text-xs/semibold">
This link is{" "}
{isCustom
? "matching one of your filters for rickrolls."
: "a known rickroll."}
</Text>
</div>
);
}
export default definePlugin({
name: "AntiRickroll",
description:
"Warns you of potential Rickrolls in messages, including masked links (supports custom rules)",
authors: [{ name: "ryanamay", id: 1262793452236570667n }],
dependencies: ["MessageAccessoriesAPI", "UserSettingsAPI"],
settings,
start() {
addMessageAccessory(
"rickrollWarning",
(props: Record<string, any>) => {
return (
<RickrollWarningAccessory
message={props.message as Message}
/>
);
},
4
);
},
stop() {
removeMessageAccessory("rickrollWarning");
},
});

106
antiRickroll/knownHosts.ts Normal file
View File

@@ -0,0 +1,106 @@
/*
* Vencord, a Discord client mod
* Copyright (c) 2024 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
export const knownHosts = [
"rickroll.link",
"rickrolled.fr",
"dub.sh/MetropolisOffline",
"my-cool-app.com",
"1227.com",
"203.24.182.170",
"74.125.95.104/search?q=cache:YLZLcPVmjrsJ:smouch.net/lol/+rick+roll&hl=en&ct=clnk&cd=5&gl=us",
"8chan.henriwatson.com/b",
"adurah.com/img/hp7_spoilers.jpg",
"ali3ns.net",
"almightypickle.deviantart.com/art/a-very-stupid-flash-movie-83440015",
"apoke.com",
"asongbyagayguy.ytmnd.com",
"bit.ly/1628nB",
"bringvictory.com",
"choose.yudia.net",
"classpc.nl",
"collegehumor.com/video:1809841",
"comicwonder.com/joke/8a46a9b4a",
"crappypc.com",
"ebaumsworld.com/video/watch/411687",
"ecritters.biz/sr",
"epicwinrar.com",
"evanball.com",
"finalclan.net",
"freeppcsecrets.com",
"fuckdreamhost.com",
"furryartpile.com",
"i65games.tk",
"internetisseriousbusiness.com",
"irc.infinitynet.info",
"johncow.com/moo.html",
"just-different.info/secret",
"keiraknightley.ytmnd.com",
"krazykustoms.co.cc/pages",
"krazykustoms.co.cc/phpBB3/index.php",
"liner.org",
"members.tele2.nl/class-pc",
"mxweas.com/docs/jailbreakservhack",
"newroupdates.tk",
"niya.cc/flash/rick",
"noelurl.easyasweb.eu/u0Rx744fi",
"palmsout.net/music/remixsunday/104/Never%20Gonna%20Give%20You%20Up%20%28Solly%20Remix%29.mp3",
"paulsmom.prohosts.org",
"pottermisleading.ytmnd.com",
"prankdialer.com/rickroll.php",
"pspemporium.webs.com/rickdance.html",
"punahou.com",
"rasher.dk/r",
"rasher.dk/r/linode-dns",
"ravenstorm.byethost15.com",
"raygoldmodels.com",
"reichroll.com",
"reichrolled.com",
"rick-rolld.com",
"rickroll.net",
"rickrolling.com/lol",
"rr.rezbit.com",
"rr.rezbit.com/blog/021107/rick-astley-speaks-about-rickroll.html",
"rurl.org/2vq",
"sirpnut.info/sorry.jpg",
"smouch.net/lol",
"sprigler.com/steven",
"stucknut.com/locker/files/jessica.gif",
"t1ny.us/7wp5i",
"technocolbert.co.nr",
"techsmartly.net",
"thekickback.com/rickroll/rickroll.php",
"tinyurl.com/interfont",
"tinyurl.com/244u3n",
"tinyurl.com/2nmscj",
"tinyurl.com/2tcnbl",
"tinyurl.com/2w4apm",
"tinyurl.com/37ws8e",
"tinyurl.com/4xur8r",
"tinyurl.com/5a3jqf",
"tinyurl.com/5sb29l",
"tinyurl.com/CELEBRITY-XXX-VIDS",
"tinyurl.com/KIM-KARDASHIAN-SEX-TAPE",
"tinyurl.com/britneyspearsXXX",
"tinyurl.com/rickrolll",
"tinyurl.com/ynupj4",
"tinyurl.com/yowxeq",
"tobi-x.com/kate_moss_nude",
"todaysbigthing.com/2008/04/07",
"todo.is",
"url.uppix.net/NFWGJ",
"video.hexxeh.net",
"video.yahoo.com/watch/1313289/4562193",
"video.yahoo.com/watch/2013707/v2138974",
"video.yahoo.com/watch/804885/3375801",
"vids.myspace.com/index.cfm?fuseaction=vids.individual&videoid=25992858",
"warlocksnerfed.ytmnd.com",
"ww.rickroll.net",
"you-host.info",
"yougotrickrolled.com",
"zeroboard.com/16979949#0",
"zideo.nl/index.php?option=com_podfeed&zideo=6c4971596d513d3d&playzideo=6c344f596d31593d&Itemid=",
];

View File

@@ -0,0 +1,500 @@
/*
* Vencord, a Discord client mod
* Copyright (c) 2024 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
export const knownVideoIds = [
"dQw4w9WgXcQ", // The original
"oHg5SJYRHA0", // In case they know that link
"p7YXXieghto", // But with a different link
"E4WlUXrJgy4", // Yet another alt link
"6_b7RDuLwcI", // Lyrics
"G8iEMVr7GFg", // Otamatone (favorite)
"AyOqGRjVtls", // Kermit
"6mhmcwmgWbA", // Fortnite
"SpZ2FsEfwP4", // Minecraft
"H01BwSD9eyQ", // Undertale
"nrsnN23tmUA", // Toad
"8mkofgRW1II", // Karl Wheezer
"rAx5LIul1N8", // 24 cartoon impressions
"sO4wVSA9UPs", // Wii Theme
"rrs0B_LM898", // Pufferfish
"doEqUhFiQS4", // Rick is going to give you up
"epyRUp0BhrA", // Sung by 169 movies (2nd favorite)
"uK5WDo_3s7s", // Ninja
"wzSVOcgKq04", // Barack Obama
"7B--1KArxow", // Recorder
"rbsPu1z3ugQ", // Brian (Family guy)
"ptw2FLKXDQE", // Wreck Roll
"E50L-JYWm3w", // Dead memes (this one sucks lmao)
"8leAAwMIigI", // Karaoke
"ByqFY-Boq5Y", // Just Dance 4
"E4ihJMQUmUQ", // Anime style
"cjBHXvBYw5s", // Goofy
"xaazUgEKuVA", // 1 hr
"TzXXHVhGXTQ", // 10 hr
"Uj1ykZWtPYI", // R2D2's secret message
"EE-xtCF3T94", // Who's that pokemon?
"V-_O7nl0Ii0", // Ocean waves
"cqF6M25kqq4", // Patrick's secret box
"0SoNH07Slj0", // Jellyfish
"xfr64zoBTAQ", // Breaking news
"j5a0jTc9S10", // Cute dogs
"dPmZqsQNzGA", // True Love by Coldplay
"nHRbZW097Uk", // Hidden message
"BjDebmqFRuc", // Voice cracks, among other weird stuff
"Gc2u6AFImn8", // WTF grandayy
"8VFzHYtOARw", // Bass boosted
"cSAp9sBzPbc", // All notes are C
"Dx5i1t0mN78", // ????????
"Oo0twK2ZbLU", // Vocals get higher, instruments get lower
"cvh0nX08nRw", // It never starts
"lXMskKTw3Bc", // Nice singing bro
"7z_1E8VGJOw", // Lyrics are Roblox usernames
"VgojnNgmgVs", // Beats 2 and 4 are switched
"5wOXc03RwVA", // Sung by a cat
"2xx_2XNxxfA", // Lofi.
"lpiB2wMc49g", // Made anime
"H8ZH_mkfPUY", // Rebooted
"Svj1bZz2mXw", // Lyrics in alphabetical order
"iik25wqIuFo", // Different link
"hvL1339luv0", // A cat sings it
"N9w1lCZfaWI", // Gamecube version
"ivV-kssG3NI", // Kasane Teto
"0SoNH07Slj0",
"2xx_2XNxxfA",
"5wOXc03RwVA",
"6_b7RDuLwcI",
"6mhmcwmgWbA",
"7B--1KArxow",
"7z_1E8VGJOw",
"8VFzHYtOARw",
"8leAAwMIigI",
"8mkofgRW1II",
"AyOqGRjVtls",
"BjDebmqFRuc",
"ByqFY-Boq5Y",
"Dx5i1t0mN78",
"E4WlUXrJgy4",
"E4ihJMQUmUQ",
"E50L-JYWm3w",
"EE-xtCF3T94",
"G8iEMVr7GFg",
"Gc2u6AFImn8",
"H01BwSD9eyQ",
"H8ZH_mkfPUY",
"N9w1lCZfaWI",
"Oo0twK2ZbLU",
"SpZ2FsEfwP4",
"Svj1bZz2mXw",
"TzXXHVhGXTQ",
"Uj1ykZWtPYI",
"V-_O7nl0Ii0",
"VgojnNgmgVs",
"cSAp9sBzPbc",
"cjBHXvBYw5s",
"cqF6M25kqq4",
"cvh0nX08nRw",
"dPmZqsQNzGA",
"dQw4w9WgXcQ",
"doEqUhFiQS4",
"epyRUp0BhrA",
"hvL1339luv0",
"iik25wqIuFo",
"ivV-kssG3NI",
"j5a0jTc9S10",
"lXMskKTw3Bc",
"lpiB2wMc49g",
"nHRbZW097Uk",
"nrsnN23tmUA",
"oHg5SJYRHA0",
"p7YXXieghto",
"ptw2FLKXDQE",
"rAx5LIul1N8",
"rbsPu1z3ugQ",
"rrs0B_LM898",
"sO4wVSA9UPs",
"uK5WDo_3s7s",
"wzSVOcgKq04",
"xaazUgEKuVA",
"xfr64zoBTAQ",
"AuKR2fQbMBk",
"xvFZjo5PgG0",
"BBJa32lCaaY",
"QB7ACr7pUuE",
"pKskW7wJ0v0",
"j7gKwxRe7MQ",
"LWErcuHm_C4",
"a6pbjksYUHY",
"ll-mQPDCn-U",
"dRV6NaciZVk",
"MCjlo7PtXMQ",
"mrThFRR3n8A",
"HnfkEVtetuE",
"j8PxqgliIno",
"AACOcpA8i-U",
"bIwVIx5pp88",
"OyHQlZeyEr4",
"8ybW48rKBME",
"ZK1pNGmNBEc",
"cSQTZoZPJzs",
"6lhwMJuBIEw",
"IR_rbAer7kY",
"5iqIug1Rox8",
"EkfDmzprwrw",
"EjahYsvSTts",
"8NBdab8iors",
"UHYLsSLSUCw",
"QMIaYRaUC5E",
"JDuaYGd0zUI",
"dy4bWkj4_RA",
"55C1L77QrGk",
"TSi6_A74lCw",
"w-kk-bU_QVw",
"uPbl8o3bjY0",
"dQw4w9WgXcQ",
"hVzINKRbekY",
"wzSVOcgKq04",
"xaazUgEKuVA",
"xfr64zoBTAQ",
"xm3YgoEiEDc",
"xvFZjo5PgG0",
"zL19uMsnpSU",
"-HRRGn6tNd4",
"-umtVthRGJI",
"1V_aE_Xdde8",
"3HrSN7176XI",
"3KANI2dpXLw",
"4TJB9FQo45E",
"4ynGOr9vmyc",
"5F5nc1bAaKw",
"5kQKh2tdisQ",
"5uZr3JWYdy8",
"65I0HNvTDH4",
"67KOFEEOhkI",
"6SYVdI7Llrg",
"8Set3JpJJ4w",
"8aJjMOy-Ops",
"A1sgzEDUG-o",
"ABUhOJxZQmg",
"AP12uZvfvag",
"AS35zlAdaSQ",
"CZoJt0Sbqrs",
"DpPhnECPe2I",
"EEbzptEFsKk",
"FGEUClII8x0",
"G_vas-7a7is",
"HiaBjpzLgQI",
"I6_0tpqg3ZE",
"IHKAgwIxUAY",
"IVvl_R2jYMo",
"IpjGmx2v6bM",
"J3VnZMoh7sk",
"Kmt4wrn1MTk",
"LeSnAn-Sc0g",
"LqXTU8YAGzo",
"MJCH_wT9TaU",
"MoUPdJrjkCM",
"NZ-AAD7Ci_c",
"PIMrL4qXtJ0",
"PXrHCBoEj7g",
"QumbExFAj-U",
"R5P1_U7LZX8",
"RSsJ19sy3JI",
"RgIDuaxiT0w",
"RzoZGNsJ71w",
"SGi7qi_y0Jw",
"UDTGvgE5eJw",
"VBY4TV5qK-4",
"VVjUWKSZSsc",
"WpEVccrkYQ0",
"X-j828DqqnY",
"XfTUDW93z6E",
"Xsvi9uNrDSI",
"YWn54TjfBkk",
"Yu_moia-oVI",
"ZIQZHqNQODo",
"ZOU8GIRUd_g",
"Zc2tpMgz6MI",
"_0719DxMOUY",
"_FyXC-SsAPE",
"aSzhxllE0RM",
"atiNprQmjks",
"b1WWpKEPdT4",
"b43GgNbz9fg",
"cjeogv9VUAE",
"cxwxBheZniM",
"dS9DO6kx-Ek",
"eKDcl0V6o6k",
"eLiXPfl8EPY",
"f2b1D5w82yU",
"f8FHqEIzSlE",
"fMzkMpMraFY",
"fmxGLQd3J0U",
"gLVtavM962w",
"gdpijMRhoT8",
"gvUiLtwlEl8",
"hq05IRf0dBQ",
"hyX_krrTBZ0",
"iJbwc4wm5Y0",
"lAQIiNTH46I",
"lfO4Z5WEUuE",
"lfao5IToml4",
"lp6nr-rD_g8",
"lzSjyzqfegI",
"oHg5SJYRHA0",
"piLTpv1eKdU",
"q6NwqFlctZY",
"r8tXjJL3xcM",
"rfp7FbsnsbU",
"tazYxtJcwCc",
"thNTPin2RBY",
"uYMIMPVK1vU",
"ub_VBGajh-s",
"uwnuL5Fy5g8",
"uxIsiTo4VJo",
"v7cyQ-dVaAM",
"veFrQTKQy7A",
"vf79MCuQ8jM",
"vp8fkB0uwd0",
"vvs7cXmVwN8",
"xAp3HqpE7V8",
"xm_EMOdpDhc",
"xpupxRzumYs",
"y5Ja-E529sU",
"yXGqsnkLg0A",
"ywoqy9PBN-0",
"yxnWl63Avo4",
"z-HWXfRKkJU",
"z2kThcO6ig8",
"zGm0nGF_y2E",
"BUykFA7FCo4",
"0SoNH07Slj0",
"2mun7xy12H0",
"34Ig3X59_qA",
"5wOXc03RwVA",
"6-HUgzYPm9g",
"6_b7RDuLwcI",
"6mhmcwmgWbA",
"7B--1KArxow",
"7z_1E8VGJOw",
"828hEBkvA5g",
"8VFzHYtOARw",
"8leAAwMIigI",
"8mkofgRW1II",
"AyOqGRjVtls",
"BjDebmqFRuc",
"ByqFY-Boq5Y",
"DLzxrzFCyOs",
"Dx5i1t0mN78",
"E4ihJMQUmUQ",
"EE-xtCF3T94",
"G8iEMVr7GFg",
"Gc2u6AFImn8",
"H01BwSD9eyQ",
"IdkCEioCp24",
"Oo0twK2ZbLU",
"Rtqkxkt7Hyg",
"SpZ2FsEfwP4",
"TOcAAaZ1HhU",
"TzXXHVhGXTQ",
"Uj1ykZWtPYI",
"UmOi40tnUcM",
"V-_O7nl0Ii0",
"VbUuB1aN2DA",
"VgojnNgmgVs",
"YJWSAJjkTsI",
"ZzUsKizhb8o",
"a3Z7zEc7AXQ",
"cSAp9sBzPbc",
"cqF6M25kqq4",
"cvh0nX08nRw",
"dPmZqsQNzGA",
"dQw4w9WgXcQ",
"doEqUhFiQS4",
"epyRUp0BhrA",
"gvGyS5j9aFY",
"hLZW4U86cL4",
"iik25wqIuFo",
"j5a0jTc9S10",
"lXMskKTw3Bc",
"nHRbZW097Uk",
"nrsnN23tmUA",
"oHg5SJYRHA0",
"oT3mCybbhf0",
"ptw2FLKXDQE",
"r7VYFiPoZk4",
"r8tXjJL3xcM",
"rAx5LIul1N8",
"rbsPu1z3ugQ",
"rrs0B_LM898",
"sO4wVSA9UPs",
"tzYPr9w22VU",
"uK5WDo_3s7s",
"ub82Xb1C8os",
"wpV-gGA4PSk",
"wuggc60TVzU",
"cSAp9sBzPbc",
"8ybW48rKBME",
"Tt7bzxurJ1I",
"gidHrKbTpog",
"vcq30ywIKlc",
"y6120QOlsfU",
"QhuZIEkKkXA",
"rW7hXs-81hM",
"Oo0twK2ZbLU",
"0SoNH07Slj0",
"LLFhKaqnWwk",
"SpZ2FsEfwP4",
"SO4c1NlGCpY",
"MCjlo7PtXMQ",
"TCUPeAlpDVE",
"5wOXc03RwVA",
"oJl25bABYac",
"a6pbjksYUHY",
"Dx5i1t0mN78",
"Uj1ykZWtPYI",
"E50L-JYWm3w",
"BjDebmqFRuc",
"PibwQR9nRus",
"rrs0B_LM898",
"cH1NLToRz_o",
"j5a0jTc9S10",
"p7YXXieghto",
"qxeokP0n6V0",
"GHMjD0Lp5DY",
"bIwVIx5pp88",
"7z_1E8VGJOw",
"QB7ACr7pUuE",
"LjQZaD9EEJ0",
"cvh0nX08nRw",
"fZi4JxbTwPo",
"2ocykBzWDiM",
"H01BwSD9eyQ",
"PzqQSOaCcnw",
"lXMskKTw3Bc",
"JzjldPdpT7Q",
"7B--1KArxow",
"lHyeAtiiL18",
"s0akG-V_Y30",
"HV8IxKtAlrA",
"6_b7RDuLwcI",
"rbsPu1z3ugQ",
"8O_ifyIIrN4",
"xvFZjo5PgG0",
"N3MKlU5_Gs0",
"AyOqGRjVtls",
"bCh5IlXTckA",
"pSxJqmMNU-A",
"ByqFY-Boq5Y",
"G8iEMVr7GFg",
"s99hC5WUwjo",
"uK5WDo_3s7s",
"TzXXHVhGXTQ",
"OYPG7j8rKZY",
"Kiz3PM387FI",
"2l51wyMM9hs",
"ptw2FLKXDQE",
"wzSVOcgKq04",
"rAx5LIul1N8",
"ll-mQPDCn-U",
"hxCXEX2JOKE",
"6RyOsIseJbk",
"HUU3kOhjFfg",
"3KANI2dpXLw",
"-51AfyMqnpI",
"6mhmcwmgWbA",
"7lEodsmjeQU",
"8leAAwMIigI",
"xaazUgEKuVA",
"dQw4w9WgXcQ",
"nHRbZW097Uk",
"vkbQmH5MPME",
"6vBnqJhP7f8",
"xfr64zoBTAQ",
"EE-xtCF3T94",
"zL19uMsnpSU",
"mrThFRR3n8A",
"E4ihJMQUmUQ",
"kczWpSN6emg",
"bkOVXdvijmQ",
"cqF6M25kqq4",
"cAN30xJp2Cs",
"doEqUhFiQS4",
"iiUIi5b9RlE",
"H8ZH_mkfPUY",
"HPk-VhRjNI8",
"INbRpclIFsE",
"ikFZLI4HLpQ",
"dPmZqsQNzGA",
"cjBHXvBYw5s",
"SjTOn5scRmY",
"JkcHqN6YswU",
"IO9XlQrEt2Y",
"oHg5SJYRHA0",
"lpiB2wMc49g",
"DIs7dtlMCP0",
"gvGyS5j9aFY",
"VgojnNgmgVs",
"SsiHLiXBlcM",
"Q53-mWHvxJo",
"XfIIQYnBHrQ",
"LWErcuHm_C4",
"AACOcpA8i-U",
"QdNEtVH9bZE",
"dRV6NaciZVk",
"ub82Xb1C8os",
"ENYalQvZG4Q",
"BXuxOeg6PiQ",
"0Z0i-nimHkU",
"Mdq6sQPKYqQ",
"C5GGeuFPVVE",
"Gc2u6AFImn8",
"klqi_h9FElc",
"Eg7XtrH0duI",
"aaP6xIkMqzo",
"xbXoWRs2C8M",
"pKskW7wJ0v0",
"HnfkEVtetuE",
"9oxRDJjAQKI",
"j7gKwxRe7MQ",
"42OleX0HR4E",
"nrsnN23tmUA",
"iik25wqIuFo",
"E458nb_pPmk",
"06pBzAlItwI",
"rTgj1HxmUbg",
"epyRUp0BhrA",
"rEtZzcxQ_pA",
"Yb6dZ1IFlKc",
"eBGIQ7ZuuiU",
"soq9cLVa5Xo",
"r8tXjJL3xcM",
"XB3EQrj1maw",
"RvBwypGUkPo",
"d4N5LnsNpF0",
"j8PxqgliIno",
"th0pH9srXRY",
"sO4wVSA9UPs",
"8mkofgRW1II",
"fMnIpIMuBJI",
"gPkZS92WCIo",
"_sWG4uhLiWo",
"8VFzHYtOARw",
"V-_O7nl0Ii0",
"eBsIpefmXvE",
"nW0P2hYBm9A",
"MAM--whuMcU",
"QKr_0DMYV5g",
"VZrDxD0Za9I",
"WSBK_NePew",
"1kj837fWpo",
"oAyaw1ohiWs",
"iadFGiLRgFo",
"A4hJPP0Zn9I",
"r1JAZlyhKMc",
"DdpBpn6txTk",
"yS6LYj-y1HA",
"WyltKn3pi9U",
];