@ecmaos/kernel 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +141 -98
- package/dist/.vite/manifest.json +14 -14
- package/dist/{browser-C0q0NWWv.js → browser-D_CtuxSB.js} +2 -2
- package/dist/{browser-C0q0NWWv.js.map → browser-D_CtuxSB.js.map} +1 -1
- package/dist/{empty-BMkCc_7L.js → empty--zdtkf0T.js} +2099 -156
- package/dist/empty--zdtkf0T.js.map +1 -0
- package/dist/install-Ds1oWgTf.js +119 -0
- package/dist/install-Ds1oWgTf.js.map +1 -0
- package/dist/kernel.d.ts +18 -3
- package/dist/kernel.js +1 -1
- package/dist/swapi.js +1 -1
- package/dist/{topbar.min-xBbuiIjv.js → topbar.min-CDkSVOxV.js} +2 -2
- package/dist/{topbar.min-xBbuiIjv.js.map → topbar.min-CDkSVOxV.js.map} +1 -1
- package/dist/ui.js +1 -1
- package/package.json +2 -2
- package/dist/empty-BMkCc_7L.js.map +0 -1
- package/dist/install-C64fBUI2.js +0 -1997
- package/dist/install-C64fBUI2.js.map +0 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { c as chalk, s as semver, p as path } from "./empty--zdtkf0T.js";
|
|
2
|
+
const install = async ({ kernel, shell, terminal, args }) => {
|
|
3
|
+
const [packageArg, registryArg, reinstallArg] = args;
|
|
4
|
+
if (!packageArg) {
|
|
5
|
+
terminal.writeln(chalk.red("Usage: install <package-name>[@version]"));
|
|
6
|
+
return 1;
|
|
7
|
+
}
|
|
8
|
+
const spec = packageArg.match(/(@[^/]+\/[^@]+|[^@]+)(?:@([^/]+))?/);
|
|
9
|
+
if (!spec) {
|
|
10
|
+
terminal.writeln(chalk.red("Invalid package name format"));
|
|
11
|
+
return 1;
|
|
12
|
+
}
|
|
13
|
+
const registry = registryArg || shell.env.get("REGISTRY") || "https://registry.npmjs.org";
|
|
14
|
+
const packageName = spec[1];
|
|
15
|
+
let version = spec[2] || "latest";
|
|
16
|
+
if (!packageName) {
|
|
17
|
+
terminal.writeln(chalk.red("Invalid package name format"));
|
|
18
|
+
return 1;
|
|
19
|
+
}
|
|
20
|
+
const url = `${registry}/${packageName}`;
|
|
21
|
+
const packageInfo = await globalThis.fetch(url);
|
|
22
|
+
const data = await packageInfo.json();
|
|
23
|
+
if (!data.versions || !data["dist-tags"]) {
|
|
24
|
+
terminal.writeln(chalk.red(`No versions found for ${packageName}`));
|
|
25
|
+
return 1;
|
|
26
|
+
}
|
|
27
|
+
if (version === "latest") version = data["dist-tags"].latest;
|
|
28
|
+
else version = semver.maxSatisfying(Object.keys(data.versions), version) || version;
|
|
29
|
+
if (reinstallArg) {
|
|
30
|
+
try {
|
|
31
|
+
const pkgData = JSON.parse(await kernel.filesystem.fs.readFile(path.join("/usr/lib", packageName, version, "package.json"), "utf-8"));
|
|
32
|
+
for (const bin in pkgData.bin) await kernel.filesystem.fs.unlink(path.join("/usr/bin", bin));
|
|
33
|
+
await kernel.filesystem.fs.rm(path.join("/usr/lib", packageName, version), { recursive: true, force: true });
|
|
34
|
+
} catch {
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const packagePath = path.join("/usr/lib", packageName, version, "package.json");
|
|
38
|
+
if (await kernel.filesystem.fs.exists(packagePath)) {
|
|
39
|
+
terminal.writeln(chalk.green(`${packageName} v${version} is already installed`));
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
terminal.writeln(`Installing ${data.name} v${version} from ${registry}...`);
|
|
43
|
+
const tarballUrl = data.versions[version]?.dist?.tarball;
|
|
44
|
+
const tarballChecksum = data.versions[version]?.dist?.shasum?.toLowerCase();
|
|
45
|
+
if (!tarballUrl || !tarballChecksum) {
|
|
46
|
+
terminal.writeln(chalk.red(`No tarball URL or checksum found for ${packageName} v${version}`));
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
49
|
+
const tarball = await globalThis.fetch(tarballUrl);
|
|
50
|
+
const arrayBuffer = await tarball.arrayBuffer();
|
|
51
|
+
const hashBuffer = await crypto.subtle.digest("SHA-1", arrayBuffer);
|
|
52
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
53
|
+
const downloadChecksum = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
54
|
+
if (downloadChecksum !== tarballChecksum) {
|
|
55
|
+
terminal.writeln(chalk.red(`Checksum verification failed. Expected ${tarballChecksum} but got ${downloadChecksum}`));
|
|
56
|
+
return 1;
|
|
57
|
+
}
|
|
58
|
+
const tarballFilename = `${data.name.replace("@", "").replace("/", "-")}-${version}.tar.gz`;
|
|
59
|
+
await kernel.filesystem.fs.writeFile(`/tmp/${tarballFilename}`, new Uint8Array(arrayBuffer));
|
|
60
|
+
const extractPath = `/usr/lib/${data.name}/${version}`;
|
|
61
|
+
await kernel.filesystem.fs.mkdir(extractPath, { mode: 493, recursive: true });
|
|
62
|
+
await kernel.filesystem.extractTarball(`/tmp/${tarballFilename}`, extractPath);
|
|
63
|
+
await kernel.filesystem.fs.unlink(`/tmp/${tarballFilename}`);
|
|
64
|
+
terminal.writeln(chalk.green(`Installed ${data.name} v${version} to ${extractPath}`));
|
|
65
|
+
const packageData = await kernel.filesystem.fs.readFile(packagePath, "utf-8");
|
|
66
|
+
const packageJson = JSON.parse(packageData);
|
|
67
|
+
try {
|
|
68
|
+
if (packageJson.scripts?.["ecmaos:preinstall"]) await shell.execute(packageJson.scripts["ecmaos:preinstall"]);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
terminal.writeln(chalk.red(`Failed to execute preinstall script for ${packageName}@${version}: ${error}`));
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
if (packageJson.bin) {
|
|
75
|
+
if (typeof packageJson.bin === "string") {
|
|
76
|
+
const binPath = path.join("/usr/lib", packageName, version, packageJson.bin);
|
|
77
|
+
if (!await kernel.filesystem.fs.exists(binPath)) {
|
|
78
|
+
terminal.writeln(chalk.red(`${binPath} does not exist`));
|
|
79
|
+
return 1;
|
|
80
|
+
}
|
|
81
|
+
await kernel.filesystem.fs.symlink(binPath, path.join("/usr/bin", packageJson.name));
|
|
82
|
+
terminal.writeln(chalk.green(`Linked ${packageJson.name} to ${path.join("/usr/bin", packageJson.name)}`));
|
|
83
|
+
} else if (typeof packageJson.bin === "object") {
|
|
84
|
+
for (const bin in packageJson.bin) {
|
|
85
|
+
const binPath = path.join("/usr/lib", packageName, version, packageJson.bin[bin]);
|
|
86
|
+
if (!await kernel.filesystem.fs.exists(binPath)) {
|
|
87
|
+
terminal.writeln(chalk.red(`${binPath} does not exist`));
|
|
88
|
+
return 1;
|
|
89
|
+
}
|
|
90
|
+
await kernel.filesystem.fs.symlink(binPath, path.join("/usr/bin", bin));
|
|
91
|
+
terminal.writeln(chalk.green(`Linked ${bin} to ${path.join("/usr/bin", bin)}`));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
} catch (error) {
|
|
96
|
+
terminal.writeln(chalk.red(`Failed to link bins for ${packageName}@${version}: ${error}`));
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
if (packageJson.dependencies) {
|
|
100
|
+
for (const dependency in packageJson.dependencies) {
|
|
101
|
+
const packageSpec = `${dependency}${packageJson.dependencies[dependency] ? `@${packageJson.dependencies[dependency]}` : ""}`;
|
|
102
|
+
await install({ kernel, shell, terminal, args: [packageSpec, registryArg] });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
} catch (error) {
|
|
106
|
+
terminal.writeln(chalk.red(`Failed to install dependencies for ${packageName}@${version}: ${error}`));
|
|
107
|
+
return 1;
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
if (packageJson.scripts?.["ecmaos:postinstall"]) await shell.execute(packageJson.scripts["ecmaos:postinstall"]);
|
|
111
|
+
} catch (error) {
|
|
112
|
+
terminal.writeln(chalk.red(`Failed to execute postinstall script for ${packageName}@${version}: ${error}`));
|
|
113
|
+
return 1;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
export {
|
|
117
|
+
install as default
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=install-Ds1oWgTf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-Ds1oWgTf.js","sources":["../src/tree/lib/commands/install.ts"],"sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\nimport semver from 'semver'\n\nimport { CommandArgs } from './'\n\nconst install = async ({ kernel, shell, terminal, args }: CommandArgs) => {\n const [packageArg, registryArg, reinstallArg] = args as [string, string, boolean]\n if (!packageArg) {\n terminal.writeln(chalk.red('Usage: install <package-name>[@version]'))\n return 1\n }\n\n const spec = packageArg.match(/(@[^/]+\\/[^@]+|[^@]+)(?:@([^/]+))?/)\n if (!spec) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const registry = registryArg || shell.env.get('REGISTRY') || 'https://registry.npmjs.org'\n const packageName = spec[1]\n let version = spec[2] || 'latest'\n\n if (!packageName) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const url = `${registry}/${packageName}`\n const packageInfo = await globalThis.fetch(url)\n const data = await packageInfo.json()\n\n if (!data.versions || !data['dist-tags']) {\n terminal.writeln(chalk.red(`No versions found for ${packageName}`))\n return 1\n }\n\n if (version === 'latest') version = data['dist-tags'].latest\n else version = semver.maxSatisfying(Object.keys(data.versions), version) || version\n\n if (reinstallArg) {\n try {\n const pkgData = JSON.parse(await kernel.filesystem.fs.readFile(path.join('/usr/lib', packageName, version, 'package.json'), 'utf-8'))\n for (const bin in pkgData.bin) await kernel.filesystem.fs.unlink(path.join('/usr/bin', bin))\n await kernel.filesystem.fs.rm(path.join('/usr/lib', packageName, version), { recursive: true, force: true })\n } catch {}\n }\n\n const packagePath = path.join('/usr/lib', packageName, version, 'package.json')\n if (await kernel.filesystem.fs.exists(packagePath)) {\n terminal.writeln(chalk.green(`${packageName} v${version} is already installed`))\n return 0\n }\n\n terminal.writeln(`Installing ${data.name} v${version} from ${registry}...`)\n\n const tarballUrl = data.versions[version]?.dist?.tarball\n const tarballChecksum = data.versions[version]?.dist?.shasum?.toLowerCase()\n if (!tarballUrl || !tarballChecksum) {\n terminal.writeln(chalk.red(`No tarball URL or checksum found for ${packageName} v${version}`))\n return 1\n }\n\n const tarball = await globalThis.fetch(tarballUrl)\n const arrayBuffer = await tarball.arrayBuffer()\n const hashBuffer = await crypto.subtle.digest('SHA-1', arrayBuffer)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n const downloadChecksum = hashArray.map(b => b.toString(16).padStart(2, '0')).join('')\n\n if (downloadChecksum !== tarballChecksum) {\n terminal.writeln(chalk.red(`Checksum verification failed. Expected ${tarballChecksum} but got ${downloadChecksum}`))\n return 1\n }\n\n const tarballFilename = `${data.name.replace('@', '').replace('/', '-')}-${version}.tar.gz`\n await kernel.filesystem.fs.writeFile(`/tmp/${tarballFilename}`, new Uint8Array(arrayBuffer))\n\n // TODO: Support user packages installed to user's home?\n const extractPath = `/usr/lib/${data.name}/${version}`\n\n await kernel.filesystem.fs.mkdir(extractPath, { mode: 0o755, recursive: true })\n await kernel.filesystem.extractTarball(`/tmp/${tarballFilename}`, extractPath)\n await kernel.filesystem.fs.unlink(`/tmp/${tarballFilename}`)\n terminal.writeln(chalk.green(`Installed ${data.name} v${version} to ${extractPath}`))\n\n const packageData = await kernel.filesystem.fs.readFile(packagePath, 'utf-8')\n const packageJson = JSON.parse(packageData)\n\n try { // execute preinstall script\n if (packageJson.scripts?.['ecmaos:preinstall']) await shell.execute(packageJson.scripts['ecmaos:preinstall'])\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to execute preinstall script for ${packageName}@${version}: ${error}`))\n return 1\n }\n\n try { // link any bins\n if (packageJson.bin) {\n if (typeof packageJson.bin === 'string') {\n const binPath = path.join('/usr/lib', packageName, version, packageJson.bin)\n if (!await kernel.filesystem.fs.exists(binPath)) {\n terminal.writeln(chalk.red(`${binPath} does not exist`))\n return 1\n }\n\n await kernel.filesystem.fs.symlink(binPath, path.join('/usr/bin', packageJson.name))\n terminal.writeln(chalk.green(`Linked ${packageJson.name} to ${path.join('/usr/bin', packageJson.name)}`))\n } else if (typeof packageJson.bin === 'object') {\n for (const bin in packageJson.bin) {\n const binPath = path.join('/usr/lib', packageName, version, packageJson.bin[bin])\n if (!await kernel.filesystem.fs.exists(binPath)) {\n terminal.writeln(chalk.red(`${binPath} does not exist`))\n return 1\n }\n\n await kernel.filesystem.fs.symlink(binPath, path.join('/usr/bin', bin))\n terminal.writeln(chalk.green(`Linked ${bin} to ${path.join('/usr/bin', bin)}`))\n }\n }\n }\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to link bins for ${packageName}@${version}: ${error}`))\n }\n\n try { // install dependencies\n if (packageJson.dependencies) {\n for (const dependency in packageJson.dependencies) {\n const packageSpec = `${dependency}${packageJson.dependencies[dependency] ? `@${packageJson.dependencies[dependency]}` : ''}`\n await install({ kernel, shell, terminal, args: [packageSpec, registryArg] })\n }\n }\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to install dependencies for ${packageName}@${version}: ${error}`))\n return 1\n }\n\n try { // execute postinstall script\n if (packageJson.scripts?.['ecmaos:postinstall']) await shell.execute(packageJson.scripts['ecmaos:postinstall'])\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to execute postinstall script for ${packageName}@${version}: ${error}`))\n return 1\n }\n}\n\nexport default install\n"],"names":[],"mappings":";AAMA,MAAM,UAAU,OAAO,EAAE,QAAQ,OAAO,UAAU,WAAwB;AACxE,QAAM,CAAC,YAAY,aAAa,YAAY,IAAI;AAChD,MAAI,CAAC,YAAY;AACf,aAAS,QAAQ,MAAM,IAAI,yCAAyC,CAAC;AAC9D,WAAA;AAAA,EAAA;AAGH,QAAA,OAAO,WAAW,MAAM,oCAAoC;AAClE,MAAI,CAAC,MAAM;AACT,aAAS,QAAQ,MAAM,IAAI,6BAA6B,CAAC;AAClD,WAAA;AAAA,EAAA;AAGT,QAAM,WAAW,eAAe,MAAM,IAAI,IAAI,UAAU,KAAK;AACvD,QAAA,cAAc,KAAK,CAAC;AACtB,MAAA,UAAU,KAAK,CAAC,KAAK;AAEzB,MAAI,CAAC,aAAa;AAChB,aAAS,QAAQ,MAAM,IAAI,6BAA6B,CAAC;AAClD,WAAA;AAAA,EAAA;AAGT,QAAM,MAAM,GAAG,QAAQ,IAAI,WAAW;AACtC,QAAM,cAAc,MAAM,WAAW,MAAM,GAAG;AACxC,QAAA,OAAO,MAAM,YAAY,KAAK;AAEpC,MAAI,CAAC,KAAK,YAAY,CAAC,KAAK,WAAW,GAAG;AACxC,aAAS,QAAQ,MAAM,IAAI,yBAAyB,WAAW,EAAE,CAAC;AAC3D,WAAA;AAAA,EAAA;AAGT,MAAI,YAAY,SAAoB,WAAA,KAAK,WAAW,EAAE;AAAA,MACjD,WAAU,OAAO,cAAc,OAAO,KAAK,KAAK,QAAQ,GAAG,OAAO,KAAK;AAE5E,MAAI,cAAc;AACZ,QAAA;AACF,YAAM,UAAU,KAAK,MAAM,MAAM,OAAO,WAAW,GAAG,SAAS,KAAK,KAAK,YAAY,aAAa,SAAS,cAAc,GAAG,OAAO,CAAC;AACpI,iBAAW,OAAO,QAAQ,IAAK,OAAM,OAAO,WAAW,GAAG,OAAO,KAAK,KAAK,YAAY,GAAG,CAAC;AAC3F,YAAM,OAAO,WAAW,GAAG,GAAG,KAAK,KAAK,YAAY,aAAa,OAAO,GAAG,EAAE,WAAW,MAAM,OAAO,MAAM;AAAA,IAAA,QACrG;AAAA,IAAA;AAAA,EAAC;AAGX,QAAM,cAAc,KAAK,KAAK,YAAY,aAAa,SAAS,cAAc;AAC9E,MAAI,MAAM,OAAO,WAAW,GAAG,OAAO,WAAW,GAAG;AACzC,aAAA,QAAQ,MAAM,MAAM,GAAG,WAAW,KAAK,OAAO,uBAAuB,CAAC;AACxE,WAAA;AAAA,EAAA;AAGA,WAAA,QAAQ,cAAc,KAAK,IAAI,KAAK,OAAO,SAAS,QAAQ,KAAK;AAE1E,QAAM,aAAa,KAAK,SAAS,OAAO,GAAG,MAAM;AACjD,QAAM,kBAAkB,KAAK,SAAS,OAAO,GAAG,MAAM,QAAQ,YAAY;AACtE,MAAA,CAAC,cAAc,CAAC,iBAAiB;AAC1B,aAAA,QAAQ,MAAM,IAAI,wCAAwC,WAAW,KAAK,OAAO,EAAE,CAAC;AACtF,WAAA;AAAA,EAAA;AAGT,QAAM,UAAU,MAAM,WAAW,MAAM,UAAU;AAC3C,QAAA,cAAc,MAAM,QAAQ,YAAY;AAC9C,QAAM,aAAa,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW;AAClE,QAAM,YAAY,MAAM,KAAK,IAAI,WAAW,UAAU,CAAC;AACvD,QAAM,mBAAmB,UAAU,IAAI,CAAA,MAAK,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAEpF,MAAI,qBAAqB,iBAAiB;AAC/B,aAAA,QAAQ,MAAM,IAAI,0CAA0C,eAAe,YAAY,gBAAgB,EAAE,CAAC;AAC5G,WAAA;AAAA,EAAA;AAGT,QAAM,kBAAkB,GAAG,KAAK,KAAK,QAAQ,KAAK,EAAE,EAAE,QAAQ,KAAK,GAAG,CAAC,IAAI,OAAO;AAC5E,QAAA,OAAO,WAAW,GAAG,UAAU,QAAQ,eAAe,IAAI,IAAI,WAAW,WAAW,CAAC;AAG3F,QAAM,cAAc,YAAY,KAAK,IAAI,IAAI,OAAO;AAE9C,QAAA,OAAO,WAAW,GAAG,MAAM,aAAa,EAAE,MAAM,KAAO,WAAW,MAAM;AAC9E,QAAM,OAAO,WAAW,eAAe,QAAQ,eAAe,IAAI,WAAW;AAC7E,QAAM,OAAO,WAAW,GAAG,OAAO,QAAQ,eAAe,EAAE;AAClD,WAAA,QAAQ,MAAM,MAAM,aAAa,KAAK,IAAI,KAAK,OAAO,OAAO,WAAW,EAAE,CAAC;AAEpF,QAAM,cAAc,MAAM,OAAO,WAAW,GAAG,SAAS,aAAa,OAAO;AACtE,QAAA,cAAc,KAAK,MAAM,WAAW;AAEtC,MAAA;AACE,QAAA,YAAY,UAAU,mBAAmB,EAAG,OAAM,MAAM,QAAQ,YAAY,QAAQ,mBAAmB,CAAC;AAAA,WACrG,OAAO;AACL,aAAA,QAAQ,MAAM,IAAI,2CAA2C,WAAW,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;AAClG,WAAA;AAAA,EAAA;AAGL,MAAA;AACF,QAAI,YAAY,KAAK;AACf,UAAA,OAAO,YAAY,QAAQ,UAAU;AACvC,cAAM,UAAU,KAAK,KAAK,YAAY,aAAa,SAAS,YAAY,GAAG;AAC3E,YAAI,CAAC,MAAM,OAAO,WAAW,GAAG,OAAO,OAAO,GAAG;AAC/C,mBAAS,QAAQ,MAAM,IAAI,GAAG,OAAO,iBAAiB,CAAC;AAChD,iBAAA;AAAA,QAAA;AAGH,cAAA,OAAO,WAAW,GAAG,QAAQ,SAAS,KAAK,KAAK,YAAY,YAAY,IAAI,CAAC;AACnF,iBAAS,QAAQ,MAAM,MAAM,UAAU,YAAY,IAAI,OAAO,KAAK,KAAK,YAAY,YAAY,IAAI,CAAC,EAAE,CAAC;AAAA,MAC/F,WAAA,OAAO,YAAY,QAAQ,UAAU;AACnC,mBAAA,OAAO,YAAY,KAAK;AAC3B,gBAAA,UAAU,KAAK,KAAK,YAAY,aAAa,SAAS,YAAY,IAAI,GAAG,CAAC;AAChF,cAAI,CAAC,MAAM,OAAO,WAAW,GAAG,OAAO,OAAO,GAAG;AAC/C,qBAAS,QAAQ,MAAM,IAAI,GAAG,OAAO,iBAAiB,CAAC;AAChD,mBAAA;AAAA,UAAA;AAGH,gBAAA,OAAO,WAAW,GAAG,QAAQ,SAAS,KAAK,KAAK,YAAY,GAAG,CAAC;AACtE,mBAAS,QAAQ,MAAM,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;AAAA,QAAA;AAAA,MAChF;AAAA,IACF;AAAA,WAEK,OAAO;AACL,aAAA,QAAQ,MAAM,IAAI,2BAA2B,WAAW,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;AAAA,EAAA;AAGvF,MAAA;AACF,QAAI,YAAY,cAAc;AACjB,iBAAA,cAAc,YAAY,cAAc;AACjD,cAAM,cAAc,GAAG,UAAU,GAAG,YAAY,aAAa,UAAU,IAAI,IAAI,YAAY,aAAa,UAAU,CAAC,KAAK,EAAE;AACpH,cAAA,QAAQ,EAAE,QAAQ,OAAO,UAAU,MAAM,CAAC,aAAa,WAAW,GAAG;AAAA,MAAA;AAAA,IAC7E;AAAA,WAEK,OAAO;AACL,aAAA,QAAQ,MAAM,IAAI,sCAAsC,WAAW,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;AAC7F,WAAA;AAAA,EAAA;AAGL,MAAA;AACE,QAAA,YAAY,UAAU,oBAAoB,EAAG,OAAM,MAAM,QAAQ,YAAY,QAAQ,oBAAoB,CAAC;AAAA,WACvG,OAAO;AACL,aAAA,QAAQ,MAAM,IAAI,4CAA4C,WAAW,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;AACnG,WAAA;AAAA,EAAA;AAEX;"}
|
package/dist/kernel.d.ts
CHANGED
|
@@ -80,8 +80,8 @@ export declare class Kernel implements Kernel_2 {
|
|
|
80
80
|
readonly intervals: Intervals;
|
|
81
81
|
/** Keyboard interface */
|
|
82
82
|
readonly keyboard: Keyboard;
|
|
83
|
-
/** Logging system
|
|
84
|
-
readonly log: Log
|
|
83
|
+
/** Logging system */
|
|
84
|
+
readonly log: Log;
|
|
85
85
|
/** Memory management service */
|
|
86
86
|
readonly memory: Memory;
|
|
87
87
|
/** Map of loaded modules */
|
|
@@ -172,6 +172,10 @@ export declare class Kernel implements Kernel_2 {
|
|
|
172
172
|
executeDevice(device: KernelDevice, args?: string[], shell?: Shell): Promise<number>;
|
|
173
173
|
/**
|
|
174
174
|
* Executes a node script (or tries to)
|
|
175
|
+
*
|
|
176
|
+
* @remarks
|
|
177
|
+
* Don't expect it to work; this will help develop further emulation layers
|
|
178
|
+
*
|
|
175
179
|
* @param options - Execution options containing script path and shell
|
|
176
180
|
* @returns Exit code of the script
|
|
177
181
|
*/
|
|
@@ -229,7 +233,7 @@ export declare class Kernel implements Kernel_2 {
|
|
|
229
233
|
*/
|
|
230
234
|
registerEvents(): Promise<void>;
|
|
231
235
|
/**
|
|
232
|
-
* Registers the packages.
|
|
236
|
+
* Registers the packages from /etc/packages that should be auto-loaded on boot.
|
|
233
237
|
* @returns {Promise<void>} A promise that resolves when the packages are registered.
|
|
234
238
|
*/
|
|
235
239
|
registerPackages(): Promise<void>;
|
|
@@ -238,6 +242,17 @@ export declare class Kernel implements Kernel_2 {
|
|
|
238
242
|
* @returns {Promise<void>} A promise that resolves when the proc entries are registered.
|
|
239
243
|
*/
|
|
240
244
|
registerProc(): Promise<void>;
|
|
245
|
+
/**
|
|
246
|
+
* Replaces imports in a script with SWAPI URLs
|
|
247
|
+
*
|
|
248
|
+
* @remarks
|
|
249
|
+
* I would love to just use import maps, but we need dynamic import maps
|
|
250
|
+
* This is probably not our long-term solution
|
|
251
|
+
*
|
|
252
|
+
* @param {string} contents - The script contents
|
|
253
|
+
* @returns {Promise<string>} The modified script contents
|
|
254
|
+
*/
|
|
255
|
+
replaceImports(contents: string, packagePath: string): Promise<string>;
|
|
241
256
|
/**
|
|
242
257
|
* Shuts down the kernel.
|
|
243
258
|
* @returns {Promise<void>} A promise that resolves when the kernel is shut down.
|
package/dist/kernel.js
CHANGED
package/dist/swapi.js
CHANGED
|
@@ -2701,7 +2701,7 @@ var ao = class extends B {
|
|
|
2701
2701
|
return this.rawDefinitions.metadata ?? {};
|
|
2702
2702
|
}
|
|
2703
2703
|
}, mo = ["Academy Color Encoding System (ACES)", "Adobe RGB", "Adobe Wide Gamut RGB", "British Standard Colour (BS)", "CIE 1931 XYZ", "CIELAB", "CIELUV", "CIEUVW", "CMY", "CMYK", "DCI-P3", "Display-P3", "Federal Standard 595C", "HKS", "HSL", "HSLA", "HSLuv", "HSV", "HWB", "LCh", "LMS", "Munsell Color System", "Natural Color System (NSC)", "Pantone Matching System (PMS)", "ProPhoto RGB Color Space", "RAL", "RG", "RGBA", "RGK", "Rec. 2020", "Rec. 2100", "Rec. 601", "Rec. 709", "Uniform Color Spaces (UCSs)", "YDbDr", "YIQ", "YPbPr", "sRGB", "sYCC", "scRGB", "xvYCC"], po = { space: mo }, yo = po, Do = ["ascii_bin", "ascii_general_ci", "cp1250_bin", "cp1250_general_ci", "utf8_bin", "utf8_general_ci", "utf8_unicode_ci"], go = ["ARCHIVE", "BLACKHOLE", "CSV", "InnoDB", "MEMORY", "MyISAM"], bo = ["bigint", "binary", "bit", "blob", "boolean", "date", "datetime", "decimal", "double", "enum", "float", "geometry", "int", "mediumint", "point", "real", "serial", "set", "smallint", "text", "time", "timestamp", "tinyint", "varchar"], fo = { collation: Do, engine: go, type: bo }, Co = fo, Za = ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Ciudad_Juarez", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kirov", "Europe/Kyiv", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zurich", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kanton", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"], Eo = { time_zone: Za }, ko = Eo, Ao = ["ADP", "AGP", "AI", "API", "ASCII", "CLI", "COM", "CSS", "DNS", "DRAM", "EXE", "FTP", "GB", "HDD", "HEX", "HTTP", "IB", "IP", "JBOD", "JSON", "OCR", "PCI", "PNG", "RAM", "RSS", "SAS", "SCSI", "SDD", "SMS", "SMTP", "SQL", "SSD", "SSL", "TCP", "THX", "TLS", "UDP", "USB", "UTF8", "VGA", "XML", "XSS"], Bo = { abbreviation: Ao }, So = Bo, vo = { smiley: ["😀", "😃", "😄", "😁", "😆", "😅", "🤣", "😂", "🙂", "🙃", "😉", "😊", "😇", "🥰", "😍", "🤩", "😘", "😗", "☺️", "😚", "😙", "🥲", "😋", "😛", "😜", "🤪", "😝", "🤑", "🤗", "🤭", "🤫", "🤔", "🤐", "🤨", "😐", "😑", "😶", "😶🌫️", "😏", "😒", "🙄", "😬", "😮💨", "🤥", "😌", "😔", "😪", "🤤", "😴", "😷", "🤒", "🤕", "🤢", "🤮", "🤧", "🥵", "🥶", "🥴", "😵", "😵💫", "🤯", "🤠", "🥳", "🥸", "😎", "🤓", "🧐", "😕", "😟", "🙁", "☹️", "😮", "😯", "😲", "😳", "🥺", "😦", "😧", "😨", "😰", "😥", "😢", "😭", "😱", "😖", "😣", "😞", "😓", "😩", "😫", "🥱", "😤", "😡", "😠", "🤬", "😈", "👿", "💀", "☠️", "💩", "🤡", "👹", "👺", "👻", "👽", "👾", "🤖", "😺", "😸", "😹", "😻", "😼", "😽", "🙀", "😿", "😾", "🙈", "🙉", "🙊", "💋", "💌", "💘", "💝", "💖", "💗", "💓", "💞", "💕", "💟", "❣️", "💔", "❤️🔥", "❤️🩹", "❤️", "🧡", "💛", "💚", "💙", "💜", "🤎", "🖤", "🤍", "💯", "💢", "💥", "💫", "💦", "💨", "🕳️", "💣", "💬", "👁️🗨️", "🗨️", "🗯️", "💭", "💤"], body: ["👋", "👋🏻", "👋🏼", "👋🏽", "👋🏾", "👋🏿", "🤚", "🤚🏻", "🤚🏼", "🤚🏽", "🤚🏾", "🤚🏿", "🖐️", "🖐🏻", "🖐🏼", "🖐🏽", "🖐🏾", "🖐🏿", "✋", "✋🏻", "✋🏼", "✋🏽", "✋🏾", "✋🏿", "🖖", "🖖🏻", "🖖🏼", "🖖🏽", "🖖🏾", "🖖🏿", "👌", "👌🏻", "👌🏼", "👌🏽", "👌🏾", "👌🏿", "🤌", "🤌🏻", "🤌🏼", "🤌🏽", "🤌🏾", "🤌🏿", "🤏", "🤏🏻", "🤏🏼", "🤏🏽", "🤏🏾", "🤏🏿", "✌️", "✌🏻", "✌🏼", "✌🏽", "✌🏾", "✌🏿", "🤞", "🤞🏻", "🤞🏼", "🤞🏽", "🤞🏾", "🤞🏿", "🤟", "🤟🏻", "🤟🏼", "🤟🏽", "🤟🏾", "🤟🏿", "🤘", "🤘🏻", "🤘🏼", "🤘🏽", "🤘🏾", "🤘🏿", "🤙", "🤙🏻", "🤙🏼", "🤙🏽", "🤙🏾", "🤙🏿", "👈", "👈🏻", "👈🏼", "👈🏽", "👈🏾", "👈🏿", "👉", "👉🏻", "👉🏼", "👉🏽", "👉🏾", "👉🏿", "👆", "👆🏻", "👆🏼", "👆🏽", "👆🏾", "👆🏿", "🖕", "🖕🏻", "🖕🏼", "🖕🏽", "🖕🏾", "🖕🏿", "👇", "👇🏻", "👇🏼", "👇🏽", "👇🏾", "👇🏿", "☝️", "☝🏻", "☝🏼", "☝🏽", "☝🏾", "☝🏿", "👍", "👍🏻", "👍🏼", "👍🏽", "👍🏾", "👍🏿", "👎", "👎🏻", "👎🏼", "👎🏽", "👎🏾", "👎🏿", "✊", "✊🏻", "✊🏼", "✊🏽", "✊🏾", "✊🏿", "👊", "👊🏻", "👊🏼", "👊🏽", "👊🏾", "👊🏿", "🤛", "🤛🏻", "🤛🏼", "🤛🏽", "🤛🏾", "🤛🏿", "🤜", "🤜🏻", "🤜🏼", "🤜🏽", "🤜🏾", "🤜🏿", "👏", "👏🏻", "👏🏼", "👏🏽", "👏🏾", "👏🏿", "🙌", "🙌🏻", "🙌🏼", "🙌🏽", "🙌🏾", "🙌🏿", "👐", "👐🏻", "👐🏼", "👐🏽", "👐🏾", "👐🏿", "🤲", "🤲🏻", "🤲🏼", "🤲🏽", "🤲🏾", "🤲🏿", "🤝", "🙏", "🙏🏻", "🙏🏼", "🙏🏽", "🙏🏾", "🙏🏿", "✍️", "✍🏻", "✍🏼", "✍🏽", "✍🏾", "✍🏿", "💅", "💅🏻", "💅🏼", "💅🏽", "💅🏾", "💅🏿", "🤳", "🤳🏻", "🤳🏼", "🤳🏽", "🤳🏾", "🤳🏿", "💪", "💪🏻", "💪🏼", "💪🏽", "💪🏾", "💪🏿", "🦾", "🦿", "🦵", "🦵🏻", "🦵🏼", "🦵🏽", "🦵🏾", "🦵🏿", "🦶", "🦶🏻", "🦶🏼", "🦶🏽", "🦶🏾", "🦶🏿", "👂", "👂🏻", "👂🏼", "👂🏽", "👂🏾", "👂🏿", "🦻", "🦻🏻", "🦻🏼", "🦻🏽", "🦻🏾", "🦻🏿", "👃", "👃🏻", "👃🏼", "👃🏽", "👃🏾", "👃🏿", "🧠", "🫀", "🫁", "🦷", "🦴", "👀", "👁️", "👅", "👄"], person: ["👶", "👶🏻", "👶🏼", "👶🏽", "👶🏾", "👶🏿", "🧒", "🧒🏻", "🧒🏼", "🧒🏽", "🧒🏾", "🧒🏿", "👦", "👦🏻", "👦🏼", "👦🏽", "👦🏾", "👦🏿", "👧", "👧🏻", "👧🏼", "👧🏽", "👧🏾", "👧🏿", "🧑", "🧑🏻", "🧑🏼", "🧑🏽", "🧑🏾", "🧑🏿", "👱", "👱🏻", "👱🏼", "👱🏽", "👱🏾", "👱🏿", "👨", "👨🏻", "👨🏼", "👨🏽", "👨🏾", "👨🏿", "🧔", "🧔🏻", "🧔🏼", "🧔🏽", "🧔🏾", "🧔🏿", "🧔♂️", "🧔🏻♂️", "🧔🏼♂️", "🧔🏽♂️", "🧔🏾♂️", "🧔🏿♂️", "🧔♀️", "🧔🏻♀️", "🧔🏼♀️", "🧔🏽♀️", "🧔🏾♀️", "🧔🏿♀️", "👨🦰", "👨🏻🦰", "👨🏼🦰", "👨🏽🦰", "👨🏾🦰", "👨🏿🦰", "👨🦱", "👨🏻🦱", "👨🏼🦱", "👨🏽🦱", "👨🏾🦱", "👨🏿🦱", "👨🦳", "👨🏻🦳", "👨🏼🦳", "👨🏽🦳", "👨🏾🦳", "👨🏿🦳", "👨🦲", "👨🏻🦲", "👨🏼🦲", "👨🏽🦲", "👨🏾🦲", "👨🏿🦲", "👩", "👩🏻", "👩🏼", "👩🏽", "👩🏾", "👩🏿", "👩🦰", "👩🏻🦰", "👩🏼🦰", "👩🏽🦰", "👩🏾🦰", "👩🏿🦰", "🧑🦰", "🧑🏻🦰", "🧑🏼🦰", "🧑🏽🦰", "🧑🏾🦰", "🧑🏿🦰", "👩🦱", "👩🏻🦱", "👩🏼🦱", "👩🏽🦱", "👩🏾🦱", "👩🏿🦱", "🧑🦱", "🧑🏻🦱", "🧑🏼🦱", "🧑🏽🦱", "🧑🏾🦱", "🧑🏿🦱", "👩🦳", "👩🏻🦳", "👩🏼🦳", "👩🏽🦳", "👩🏾🦳", "👩🏿🦳", "🧑🦳", "🧑🏻🦳", "🧑🏼🦳", "🧑🏽🦳", "🧑🏾🦳", "🧑🏿🦳", "👩🦲", "👩🏻🦲", "👩🏼🦲", "👩🏽🦲", "👩🏾🦲", "👩🏿🦲", "🧑🦲", "🧑🏻🦲", "🧑🏼🦲", "🧑🏽🦲", "🧑🏾🦲", "🧑🏿🦲", "👱♀️", "👱🏻♀️", "👱🏼♀️", "👱🏽♀️", "👱🏾♀️", "👱🏿♀️", "👱♂️", "👱🏻♂️", "👱🏼♂️", "👱🏽♂️", "👱🏾♂️", "👱🏿♂️", "🧓", "🧓🏻", "🧓🏼", "🧓🏽", "🧓🏾", "🧓🏿", "👴", "👴🏻", "👴🏼", "👴🏽", "👴🏾", "👴🏿", "👵", "👵🏻", "👵🏼", "👵🏽", "👵🏾", "👵🏿", "🙍", "🙍🏻", "🙍🏼", "🙍🏽", "🙍🏾", "🙍🏿", "🙍♂️", "🙍🏻♂️", "🙍🏼♂️", "🙍🏽♂️", "🙍🏾♂️", "🙍🏿♂️", "🙍♀️", "🙍🏻♀️", "🙍🏼♀️", "🙍🏽♀️", "🙍🏾♀️", "🙍🏿♀️", "🙎", "🙎🏻", "🙎🏼", "🙎🏽", "🙎🏾", "🙎🏿", "🙎♂️", "🙎🏻♂️", "🙎🏼♂️", "🙎🏽♂️", "🙎🏾♂️", "🙎🏿♂️", "🙎♀️", "🙎🏻♀️", "🙎🏼♀️", "🙎🏽♀️", "🙎🏾♀️", "🙎🏿♀️", "🙅", "🙅🏻", "🙅🏼", "🙅🏽", "🙅🏾", "🙅🏿", "🙅♂️", "🙅🏻♂️", "🙅🏼♂️", "🙅🏽♂️", "🙅🏾♂️", "🙅🏿♂️", "🙅♀️", "🙅🏻♀️", "🙅🏼♀️", "🙅🏽♀️", "🙅🏾♀️", "🙅🏿♀️", "🙆", "🙆🏻", "🙆🏼", "🙆🏽", "🙆🏾", "🙆🏿", "🙆♂️", "🙆🏻♂️", "🙆🏼♂️", "🙆🏽♂️", "🙆🏾♂️", "🙆🏿♂️", "🙆♀️", "🙆🏻♀️", "🙆🏼♀️", "🙆🏽♀️", "🙆🏾♀️", "🙆🏿♀️", "💁", "💁🏻", "💁🏼", "💁🏽", "💁🏾", "💁🏿", "💁♂️", "💁🏻♂️", "💁🏼♂️", "💁🏽♂️", "💁🏾♂️", "💁🏿♂️", "💁♀️", "💁🏻♀️", "💁🏼♀️", "💁🏽♀️", "💁🏾♀️", "💁🏿♀️", "🙋", "🙋🏻", "🙋🏼", "🙋🏽", "🙋🏾", "🙋🏿", "🙋♂️", "🙋🏻♂️", "🙋🏼♂️", "🙋🏽♂️", "🙋🏾♂️", "🙋🏿♂️", "🙋♀️", "🙋🏻♀️", "🙋🏼♀️", "🙋🏽♀️", "🙋🏾♀️", "🙋🏿♀️", "🧏", "🧏🏻", "🧏🏼", "🧏🏽", "🧏🏾", "🧏🏿", "🧏♂️", "🧏🏻♂️", "🧏🏼♂️", "🧏🏽♂️", "🧏🏾♂️", "🧏🏿♂️", "🧏♀️", "🧏🏻♀️", "🧏🏼♀️", "🧏🏽♀️", "🧏🏾♀️", "🧏🏿♀️", "🙇", "🙇🏻", "🙇🏼", "🙇🏽", "🙇🏾", "🙇🏿", "🙇♂️", "🙇🏻♂️", "🙇🏼♂️", "🙇🏽♂️", "🙇🏾♂️", "🙇🏿♂️", "🙇♀️", "🙇🏻♀️", "🙇🏼♀️", "🙇🏽♀️", "🙇🏾♀️", "🙇🏿♀️", "🤦", "🤦🏻", "🤦🏼", "🤦🏽", "🤦🏾", "🤦🏿", "🤦♂️", "🤦🏻♂️", "🤦🏼♂️", "🤦🏽♂️", "🤦🏾♂️", "🤦🏿♂️", "🤦♀️", "🤦🏻♀️", "🤦🏼♀️", "🤦🏽♀️", "🤦🏾♀️", "🤦🏿♀️", "🤷", "🤷🏻", "🤷🏼", "🤷🏽", "🤷🏾", "🤷🏿", "🤷♂️", "🤷🏻♂️", "🤷🏼♂️", "🤷🏽♂️", "🤷🏾♂️", "🤷🏿♂️", "🤷♀️", "🤷🏻♀️", "🤷🏼♀️", "🤷🏽♀️", "🤷🏾♀️", "🤷🏿♀️", "🧑⚕️", "🧑🏻⚕️", "🧑🏼⚕️", "🧑🏽⚕️", "🧑🏾⚕️", "🧑🏿⚕️", "👨⚕️", "👨🏻⚕️", "👨🏼⚕️", "👨🏽⚕️", "👨🏾⚕️", "👨🏿⚕️", "👩⚕️", "👩🏻⚕️", "👩🏼⚕️", "👩🏽⚕️", "👩🏾⚕️", "👩🏿⚕️", "🧑🎓", "🧑🏻🎓", "🧑🏼🎓", "🧑🏽🎓", "🧑🏾🎓", "🧑🏿🎓", "👨🎓", "👨🏻🎓", "👨🏼🎓", "👨🏽🎓", "👨🏾🎓", "👨🏿🎓", "👩🎓", "👩🏻🎓", "👩🏼🎓", "👩🏽🎓", "👩🏾🎓", "👩🏿🎓", "🧑🏫", "🧑🏻🏫", "🧑🏼🏫", "🧑🏽🏫", "🧑🏾🏫", "🧑🏿🏫", "👨🏫", "👨🏻🏫", "👨🏼🏫", "👨🏽🏫", "👨🏾🏫", "👨🏿🏫", "👩🏫", "👩🏻🏫", "👩🏼🏫", "👩🏽🏫", "👩🏾🏫", "👩🏿🏫", "🧑⚖️", "🧑🏻⚖️", "🧑🏼⚖️", "🧑🏽⚖️", "🧑🏾⚖️", "🧑🏿⚖️", "👨⚖️", "👨🏻⚖️", "👨🏼⚖️", "👨🏽⚖️", "👨🏾⚖️", "👨🏿⚖️", "👩⚖️", "👩🏻⚖️", "👩🏼⚖️", "👩🏽⚖️", "👩🏾⚖️", "👩🏿⚖️", "🧑🌾", "🧑🏻🌾", "🧑🏼🌾", "🧑🏽🌾", "🧑🏾🌾", "🧑🏿🌾", "👨🌾", "👨🏻🌾", "👨🏼🌾", "👨🏽🌾", "👨🏾🌾", "👨🏿🌾", "👩🌾", "👩🏻🌾", "👩🏼🌾", "👩🏽🌾", "👩🏾🌾", "👩🏿🌾", "🧑🍳", "🧑🏻🍳", "🧑🏼🍳", "🧑🏽🍳", "🧑🏾🍳", "🧑🏿🍳", "👨🍳", "👨🏻🍳", "👨🏼🍳", "👨🏽🍳", "👨🏾🍳", "👨🏿🍳", "👩🍳", "👩🏻🍳", "👩🏼🍳", "👩🏽🍳", "👩🏾🍳", "👩🏿🍳", "🧑🔧", "🧑🏻🔧", "🧑🏼🔧", "🧑🏽🔧", "🧑🏾🔧", "🧑🏿🔧", "👨🔧", "👨🏻🔧", "👨🏼🔧", "👨🏽🔧", "👨🏾🔧", "👨🏿🔧", "👩🔧", "👩🏻🔧", "👩🏼🔧", "👩🏽🔧", "👩🏾🔧", "👩🏿🔧", "🧑🏭", "🧑🏻🏭", "🧑🏼🏭", "🧑🏽🏭", "🧑🏾🏭", "🧑🏿🏭", "👨🏭", "👨🏻🏭", "👨🏼🏭", "👨🏽🏭", "👨🏾🏭", "👨🏿🏭", "👩🏭", "👩🏻🏭", "👩🏼🏭", "👩🏽🏭", "👩🏾🏭", "👩🏿🏭", "🧑💼", "🧑🏻💼", "🧑🏼💼", "🧑🏽💼", "🧑🏾💼", "🧑🏿💼", "👨💼", "👨🏻💼", "👨🏼💼", "👨🏽💼", "👨🏾💼", "👨🏿💼", "👩💼", "👩🏻💼", "👩🏼💼", "👩🏽💼", "👩🏾💼", "👩🏿💼", "🧑🔬", "🧑🏻🔬", "🧑🏼🔬", "🧑🏽🔬", "🧑🏾🔬", "🧑🏿🔬", "👨🔬", "👨🏻🔬", "👨🏼🔬", "👨🏽🔬", "👨🏾🔬", "👨🏿🔬", "👩🔬", "👩🏻🔬", "👩🏼🔬", "👩🏽🔬", "👩🏾🔬", "👩🏿🔬", "🧑💻", "🧑🏻💻", "🧑🏼💻", "🧑🏽💻", "🧑🏾💻", "🧑🏿💻", "👨💻", "👨🏻💻", "👨🏼💻", "👨🏽💻", "👨🏾💻", "👨🏿💻", "👩💻", "👩🏻💻", "👩🏼💻", "👩🏽💻", "👩🏾💻", "👩🏿💻", "🧑🎤", "🧑🏻🎤", "🧑🏼🎤", "🧑🏽🎤", "🧑🏾🎤", "🧑🏿🎤", "👨🎤", "👨🏻🎤", "👨🏼🎤", "👨🏽🎤", "👨🏾🎤", "👨🏿🎤", "👩🎤", "👩🏻🎤", "👩🏼🎤", "👩🏽🎤", "👩🏾🎤", "👩🏿🎤", "🧑🎨", "🧑🏻🎨", "🧑🏼🎨", "🧑🏽🎨", "🧑🏾🎨", "🧑🏿🎨", "👨🎨", "👨🏻🎨", "👨🏼🎨", "👨🏽🎨", "👨🏾🎨", "👨🏿🎨", "👩🎨", "👩🏻🎨", "👩🏼🎨", "👩🏽🎨", "👩🏾🎨", "👩🏿🎨", "🧑✈️", "🧑🏻✈️", "🧑🏼✈️", "🧑🏽✈️", "🧑🏾✈️", "🧑🏿✈️", "👨✈️", "👨🏻✈️", "👨🏼✈️", "👨🏽✈️", "👨🏾✈️", "👨🏿✈️", "👩✈️", "👩🏻✈️", "👩🏼✈️", "👩🏽✈️", "👩🏾✈️", "👩🏿✈️", "🧑🚀", "🧑🏻🚀", "🧑🏼🚀", "🧑🏽🚀", "🧑🏾🚀", "🧑🏿🚀", "👨🚀", "👨🏻🚀", "👨🏼🚀", "👨🏽🚀", "👨🏾🚀", "👨🏿🚀", "👩🚀", "👩🏻🚀", "👩🏼🚀", "👩🏽🚀", "👩🏾🚀", "👩🏿🚀", "🧑🚒", "🧑🏻🚒", "🧑🏼🚒", "🧑🏽🚒", "🧑🏾🚒", "🧑🏿🚒", "👨🚒", "👨🏻🚒", "👨🏼🚒", "👨🏽🚒", "👨🏾🚒", "👨🏿🚒", "👩🚒", "👩🏻🚒", "👩🏼🚒", "👩🏽🚒", "👩🏾🚒", "👩🏿🚒", "👮", "👮🏻", "👮🏼", "👮🏽", "👮🏾", "👮🏿", "👮♂️", "👮🏻♂️", "👮🏼♂️", "👮🏽♂️", "👮🏾♂️", "👮🏿♂️", "👮♀️", "👮🏻♀️", "👮🏼♀️", "👮🏽♀️", "👮🏾♀️", "👮🏿♀️", "🕵️", "🕵🏻", "🕵🏼", "🕵🏽", "🕵🏾", "🕵🏿", "🕵️♂️", "🕵🏻♂️", "🕵🏼♂️", "🕵🏽♂️", "🕵🏾♂️", "🕵🏿♂️", "🕵️♀️", "🕵🏻♀️", "🕵🏼♀️", "🕵🏽♀️", "🕵🏾♀️", "🕵🏿♀️", "💂", "💂🏻", "💂🏼", "💂🏽", "💂🏾", "💂🏿", "💂♂️", "💂🏻♂️", "💂🏼♂️", "💂🏽♂️", "💂🏾♂️", "💂🏿♂️", "💂♀️", "💂🏻♀️", "💂🏼♀️", "💂🏽♀️", "💂🏾♀️", "💂🏿♀️", "🥷", "🥷🏻", "🥷🏼", "🥷🏽", "🥷🏾", "🥷🏿", "👷", "👷🏻", "👷🏼", "👷🏽", "👷🏾", "👷🏿", "👷♂️", "👷🏻♂️", "👷🏼♂️", "👷🏽♂️", "👷🏾♂️", "👷🏿♂️", "👷♀️", "👷🏻♀️", "👷🏼♀️", "👷🏽♀️", "👷🏾♀️", "👷🏿♀️", "🤴", "🤴🏻", "🤴🏼", "🤴🏽", "🤴🏾", "🤴🏿", "👸", "👸🏻", "👸🏼", "👸🏽", "👸🏾", "👸🏿", "👳", "👳🏻", "👳🏼", "👳🏽", "👳🏾", "👳🏿", "👳♂️", "👳🏻♂️", "👳🏼♂️", "👳🏽♂️", "👳🏾♂️", "👳🏿♂️", "👳♀️", "👳🏻♀️", "👳🏼♀️", "👳🏽♀️", "👳🏾♀️", "👳🏿♀️", "👲", "👲🏻", "👲🏼", "👲🏽", "👲🏾", "👲🏿", "🧕", "🧕🏻", "🧕🏼", "🧕🏽", "🧕🏾", "🧕🏿", "🤵", "🤵🏻", "🤵🏼", "🤵🏽", "🤵🏾", "🤵🏿", "🤵♂️", "🤵🏻♂️", "🤵🏼♂️", "🤵🏽♂️", "🤵🏾♂️", "🤵🏿♂️", "🤵♀️", "🤵🏻♀️", "🤵🏼♀️", "🤵🏽♀️", "🤵🏾♀️", "🤵🏿♀️", "👰", "👰🏻", "👰🏼", "👰🏽", "👰🏾", "👰🏿", "👰♂️", "👰🏻♂️", "👰🏼♂️", "👰🏽♂️", "👰🏾♂️", "👰🏿♂️", "👰♀️", "👰🏻♀️", "👰🏼♀️", "👰🏽♀️", "👰🏾♀️", "👰🏿♀️", "🤰", "🤰🏻", "🤰🏼", "🤰🏽", "🤰🏾", "🤰🏿", "🤱", "🤱🏻", "🤱🏼", "🤱🏽", "🤱🏾", "🤱🏿", "👩🍼", "👩🏻🍼", "👩🏼🍼", "👩🏽🍼", "👩🏾🍼", "👩🏿🍼", "👨🍼", "👨🏻🍼", "👨🏼🍼", "👨🏽🍼", "👨🏾🍼", "👨🏿🍼", "🧑🍼", "🧑🏻🍼", "🧑🏼🍼", "🧑🏽🍼", "🧑🏾🍼", "🧑🏿🍼", "👼", "👼🏻", "👼🏼", "👼🏽", "👼🏾", "👼🏿", "🎅", "🎅🏻", "🎅🏼", "🎅🏽", "🎅🏾", "🎅🏿", "🤶", "🤶🏻", "🤶🏼", "🤶🏽", "🤶🏾", "🤶🏿", "🧑🎄", "🧑🏻🎄", "🧑🏼🎄", "🧑🏽🎄", "🧑🏾🎄", "🧑🏿🎄", "🦸", "🦸🏻", "🦸🏼", "🦸🏽", "🦸🏾", "🦸🏿", "🦸♂️", "🦸🏻♂️", "🦸🏼♂️", "🦸🏽♂️", "🦸🏾♂️", "🦸🏿♂️", "🦸♀️", "🦸🏻♀️", "🦸🏼♀️", "🦸🏽♀️", "🦸🏾♀️", "🦸🏿♀️", "🦹", "🦹🏻", "🦹🏼", "🦹🏽", "🦹🏾", "🦹🏿", "🦹♂️", "🦹🏻♂️", "🦹🏼♂️", "🦹🏽♂️", "🦹🏾♂️", "🦹🏿♂️", "🦹♀️", "🦹🏻♀️", "🦹🏼♀️", "🦹🏽♀️", "🦹🏾♀️", "🦹🏿♀️", "🧙", "🧙🏻", "🧙🏼", "🧙🏽", "🧙🏾", "🧙🏿", "🧙♂️", "🧙🏻♂️", "🧙🏼♂️", "🧙🏽♂️", "🧙🏾♂️", "🧙🏿♂️", "🧙♀️", "🧙🏻♀️", "🧙🏼♀️", "🧙🏽♀️", "🧙🏾♀️", "🧙🏿♀️", "🧚", "🧚🏻", "🧚🏼", "🧚🏽", "🧚🏾", "🧚🏿", "🧚♂️", "🧚🏻♂️", "🧚🏼♂️", "🧚🏽♂️", "🧚🏾♂️", "🧚🏿♂️", "🧚♀️", "🧚🏻♀️", "🧚🏼♀️", "🧚🏽♀️", "🧚🏾♀️", "🧚🏿♀️", "🧛", "🧛🏻", "🧛🏼", "🧛🏽", "🧛🏾", "🧛🏿", "🧛♂️", "🧛🏻♂️", "🧛🏼♂️", "🧛🏽♂️", "🧛🏾♂️", "🧛🏿♂️", "🧛♀️", "🧛🏻♀️", "🧛🏼♀️", "🧛🏽♀️", "🧛🏾♀️", "🧛🏿♀️", "🧜", "🧜🏻", "🧜🏼", "🧜🏽", "🧜🏾", "🧜🏿", "🧜♂️", "🧜🏻♂️", "🧜🏼♂️", "🧜🏽♂️", "🧜🏾♂️", "🧜🏿♂️", "🧜♀️", "🧜🏻♀️", "🧜🏼♀️", "🧜🏽♀️", "🧜🏾♀️", "🧜🏿♀️", "🧝", "🧝🏻", "🧝🏼", "🧝🏽", "🧝🏾", "🧝🏿", "🧝♂️", "🧝🏻♂️", "🧝🏼♂️", "🧝🏽♂️", "🧝🏾♂️", "🧝🏿♂️", "🧝♀️", "🧝🏻♀️", "🧝🏼♀️", "🧝🏽♀️", "🧝🏾♀️", "🧝🏿♀️", "🧞", "🧞♂️", "🧞♀️", "🧟", "🧟♂️", "🧟♀️", "💆", "💆🏻", "💆🏼", "💆🏽", "💆🏾", "💆🏿", "💆♂️", "💆🏻♂️", "💆🏼♂️", "💆🏽♂️", "💆🏾♂️", "💆🏿♂️", "💆♀️", "💆🏻♀️", "💆🏼♀️", "💆🏽♀️", "💆🏾♀️", "💆🏿♀️", "💇", "💇🏻", "💇🏼", "💇🏽", "💇🏾", "💇🏿", "💇♂️", "💇🏻♂️", "💇🏼♂️", "💇🏽♂️", "💇🏾♂️", "💇🏿♂️", "💇♀️", "💇🏻♀️", "💇🏼♀️", "💇🏽♀️", "💇🏾♀️", "💇🏿♀️", "🚶", "🚶🏻", "🚶🏼", "🚶🏽", "🚶🏾", "🚶🏿", "🚶♂️", "🚶🏻♂️", "🚶🏼♂️", "🚶🏽♂️", "🚶🏾♂️", "🚶🏿♂️", "🚶♀️", "🚶🏻♀️", "🚶🏼♀️", "🚶🏽♀️", "🚶🏾♀️", "🚶🏿♀️", "🧍", "🧍🏻", "🧍🏼", "🧍🏽", "🧍🏾", "🧍🏿", "🧍♂️", "🧍🏻♂️", "🧍🏼♂️", "🧍🏽♂️", "🧍🏾♂️", "🧍🏿♂️", "🧍♀️", "🧍🏻♀️", "🧍🏼♀️", "🧍🏽♀️", "🧍🏾♀️", "🧍🏿♀️", "🧎", "🧎🏻", "🧎🏼", "🧎🏽", "🧎🏾", "🧎🏿", "🧎♂️", "🧎🏻♂️", "🧎🏼♂️", "🧎🏽♂️", "🧎🏾♂️", "🧎🏿♂️", "🧎♀️", "🧎🏻♀️", "🧎🏼♀️", "🧎🏽♀️", "🧎🏾♀️", "🧎🏿♀️", "🧑🦯", "🧑🏻🦯", "🧑🏼🦯", "🧑🏽🦯", "🧑🏾🦯", "🧑🏿🦯", "👨🦯", "👨🏻🦯", "👨🏼🦯", "👨🏽🦯", "👨🏾🦯", "👨🏿🦯", "👩🦯", "👩🏻🦯", "👩🏼🦯", "👩🏽🦯", "👩🏾🦯", "👩🏿🦯", "🧑🦼", "🧑🏻🦼", "🧑🏼🦼", "🧑🏽🦼", "🧑🏾🦼", "🧑🏿🦼", "👨🦼", "👨🏻🦼", "👨🏼🦼", "👨🏽🦼", "👨🏾🦼", "👨🏿🦼", "👩🦼", "👩🏻🦼", "👩🏼🦼", "👩🏽🦼", "👩🏾🦼", "👩🏿🦼", "🧑🦽", "🧑🏻🦽", "🧑🏼🦽", "🧑🏽🦽", "🧑🏾🦽", "🧑🏿🦽", "👨🦽", "👨🏻🦽", "👨🏼🦽", "👨🏽🦽", "👨🏾🦽", "👨🏿🦽", "👩🦽", "👩🏻🦽", "👩🏼🦽", "👩🏽🦽", "👩🏾🦽", "👩🏿🦽", "🏃", "🏃🏻", "🏃🏼", "🏃🏽", "🏃🏾", "🏃🏿", "🏃♂️", "🏃🏻♂️", "🏃🏼♂️", "🏃🏽♂️", "🏃🏾♂️", "🏃🏿♂️", "🏃♀️", "🏃🏻♀️", "🏃🏼♀️", "🏃🏽♀️", "🏃🏾♀️", "🏃🏿♀️", "💃", "💃🏻", "💃🏼", "💃🏽", "💃🏾", "💃🏿", "🕺", "🕺🏻", "🕺🏼", "🕺🏽", "🕺🏾", "🕺🏿", "🕴️", "🕴🏻", "🕴🏼", "🕴🏽", "🕴🏾", "🕴🏿", "👯", "👯♂️", "👯♀️", "🧖", "🧖🏻", "🧖🏼", "🧖🏽", "🧖🏾", "🧖🏿", "🧖♂️", "🧖🏻♂️", "🧖🏼♂️", "🧖🏽♂️", "🧖🏾♂️", "🧖🏿♂️", "🧖♀️", "🧖🏻♀️", "🧖🏼♀️", "🧖🏽♀️", "🧖🏾♀️", "🧖🏿♀️", "🧗", "🧗🏻", "🧗🏼", "🧗🏽", "🧗🏾", "🧗🏿", "🧗♂️", "🧗🏻♂️", "🧗🏼♂️", "🧗🏽♂️", "🧗🏾♂️", "🧗🏿♂️", "🧗♀️", "🧗🏻♀️", "🧗🏼♀️", "🧗🏽♀️", "🧗🏾♀️", "🧗🏿♀️", "🤺", "🏇", "🏇🏻", "🏇🏼", "🏇🏽", "🏇🏾", "🏇🏿", "⛷️", "🏂", "🏂🏻", "🏂🏼", "🏂🏽", "🏂🏾", "🏂🏿", "🏌️", "🏌🏻", "🏌🏼", "🏌🏽", "🏌🏾", "🏌🏿", "🏌️♂️", "🏌🏻♂️", "🏌🏼♂️", "🏌🏽♂️", "🏌🏾♂️", "🏌🏿♂️", "🏌️♀️", "🏌🏻♀️", "🏌🏼♀️", "🏌🏽♀️", "🏌🏾♀️", "🏌🏿♀️", "🏄", "🏄🏻", "🏄🏼", "🏄🏽", "🏄🏾", "🏄🏿", "🏄♂️", "🏄🏻♂️", "🏄🏼♂️", "🏄🏽♂️", "🏄🏾♂️", "🏄🏿♂️", "🏄♀️", "🏄🏻♀️", "🏄🏼♀️", "🏄🏽♀️", "🏄🏾♀️", "🏄🏿♀️", "🚣", "🚣🏻", "🚣🏼", "🚣🏽", "🚣🏾", "🚣🏿", "🚣♂️", "🚣🏻♂️", "🚣🏼♂️", "🚣🏽♂️", "🚣🏾♂️", "🚣🏿♂️", "🚣♀️", "🚣🏻♀️", "🚣🏼♀️", "🚣🏽♀️", "🚣🏾♀️", "🚣🏿♀️", "🏊", "🏊🏻", "🏊🏼", "🏊🏽", "🏊🏾", "🏊🏿", "🏊♂️", "🏊🏻♂️", "🏊🏼♂️", "🏊🏽♂️", "🏊🏾♂️", "🏊🏿♂️", "🏊♀️", "🏊🏻♀️", "🏊🏼♀️", "🏊🏽♀️", "🏊🏾♀️", "🏊🏿♀️", "⛹️", "⛹🏻", "⛹🏼", "⛹🏽", "⛹🏾", "⛹🏿", "⛹️♂️", "⛹🏻♂️", "⛹🏼♂️", "⛹🏽♂️", "⛹🏾♂️", "⛹🏿♂️", "⛹️♀️", "⛹🏻♀️", "⛹🏼♀️", "⛹🏽♀️", "⛹🏾♀️", "⛹🏿♀️", "🏋️", "🏋🏻", "🏋🏼", "🏋🏽", "🏋🏾", "🏋🏿", "🏋️♂️", "🏋🏻♂️", "🏋🏼♂️", "🏋🏽♂️", "🏋🏾♂️", "🏋🏿♂️", "🏋️♀️", "🏋🏻♀️", "🏋🏼♀️", "🏋🏽♀️", "🏋🏾♀️", "🏋🏿♀️", "🚴", "🚴🏻", "🚴🏼", "🚴🏽", "🚴🏾", "🚴🏿", "🚴♂️", "🚴🏻♂️", "🚴🏼♂️", "🚴🏽♂️", "🚴🏾♂️", "🚴🏿♂️", "🚴♀️", "🚴🏻♀️", "🚴🏼♀️", "🚴🏽♀️", "🚴🏾♀️", "🚴🏿♀️", "🚵", "🚵🏻", "🚵🏼", "🚵🏽", "🚵🏾", "🚵🏿", "🚵♂️", "🚵🏻♂️", "🚵🏼♂️", "🚵🏽♂️", "🚵🏾♂️", "🚵🏿♂️", "🚵♀️", "🚵🏻♀️", "🚵🏼♀️", "🚵🏽♀️", "🚵🏾♀️", "🚵🏿♀️", "🤸", "🤸🏻", "🤸🏼", "🤸🏽", "🤸🏾", "🤸🏿", "🤸♂️", "🤸🏻♂️", "🤸🏼♂️", "🤸🏽♂️", "🤸🏾♂️", "🤸🏿♂️", "🤸♀️", "🤸🏻♀️", "🤸🏼♀️", "🤸🏽♀️", "🤸🏾♀️", "🤸🏿♀️", "🤼", "🤼♂️", "🤼♀️", "🤽", "🤽🏻", "🤽🏼", "🤽🏽", "🤽🏾", "🤽🏿", "🤽♂️", "🤽🏻♂️", "🤽🏼♂️", "🤽🏽♂️", "🤽🏾♂️", "🤽🏿♂️", "🤽♀️", "🤽🏻♀️", "🤽🏼♀️", "🤽🏽♀️", "🤽🏾♀️", "🤽🏿♀️", "🤾", "🤾🏻", "🤾🏼", "🤾🏽", "🤾🏾", "🤾🏿", "🤾♂️", "🤾🏻♂️", "🤾🏼♂️", "🤾🏽♂️", "🤾🏾♂️", "🤾🏿♂️", "🤾♀️", "🤾🏻♀️", "🤾🏼♀️", "🤾🏽♀️", "🤾🏾♀️", "🤾🏿♀️", "🤹", "🤹🏻", "🤹🏼", "🤹🏽", "🤹🏾", "🤹🏿", "🤹♂️", "🤹🏻♂️", "🤹🏼♂️", "🤹🏽♂️", "🤹🏾♂️", "🤹🏿♂️", "🤹♀️", "🤹🏻♀️", "🤹🏼♀️", "🤹🏽♀️", "🤹🏾♀️", "🤹🏿♀️", "🧘", "🧘🏻", "🧘🏼", "🧘🏽", "🧘🏾", "🧘🏿", "🧘♂️", "🧘🏻♂️", "🧘🏼♂️", "🧘🏽♂️", "🧘🏾♂️", "🧘🏿♂️", "🧘♀️", "🧘🏻♀️", "🧘🏼♀️", "🧘🏽♀️", "🧘🏾♀️", "🧘🏿♀️", "🛀", "🛀🏻", "🛀🏼", "🛀🏽", "🛀🏾", "🛀🏿", "🛌", "🛌🏻", "🛌🏼", "🛌🏽", "🛌🏾", "🛌🏿", "🧑🤝🧑", "🧑🏻🤝🧑🏻", "🧑🏻🤝🧑🏼", "🧑🏻🤝🧑🏽", "🧑🏻🤝🧑🏾", "🧑🏻🤝🧑🏿", "🧑🏼🤝🧑🏻", "🧑🏼🤝🧑🏼", "🧑🏼🤝🧑🏽", "🧑🏼🤝🧑🏾", "🧑🏼🤝🧑🏿", "🧑🏽🤝🧑🏻", "🧑🏽🤝🧑🏼", "🧑🏽🤝🧑🏽", "🧑🏽🤝🧑🏾", "🧑🏽🤝🧑🏿", "🧑🏾🤝🧑🏻", "🧑🏾🤝🧑🏼", "🧑🏾🤝🧑🏽", "🧑🏾🤝🧑🏾", "🧑🏾🤝🧑🏿", "🧑🏿🤝🧑🏻", "🧑🏿🤝🧑🏼", "🧑🏿🤝🧑🏽", "🧑🏿🤝🧑🏾", "🧑🏿🤝🧑🏿", "👭", "👭🏻", "👩🏻🤝👩🏼", "👩🏻🤝👩🏽", "👩🏻🤝👩🏾", "👩🏻🤝👩🏿", "👩🏼🤝👩🏻", "👭🏼", "👩🏼🤝👩🏽", "👩🏼🤝👩🏾", "👩🏼🤝👩🏿", "👩🏽🤝👩🏻", "👩🏽🤝👩🏼", "👭🏽", "👩🏽🤝👩🏾", "👩🏽🤝👩🏿", "👩🏾🤝👩🏻", "👩🏾🤝👩🏼", "👩🏾🤝👩🏽", "👭🏾", "👩🏾🤝👩🏿", "👩🏿🤝👩🏻", "👩🏿🤝👩🏼", "👩🏿🤝👩🏽", "👩🏿🤝👩🏾", "👭🏿", "👫", "👫🏻", "👩🏻🤝👨🏼", "👩🏻🤝👨🏽", "👩🏻🤝👨🏾", "👩🏻🤝👨🏿", "👩🏼🤝👨🏻", "👫🏼", "👩🏼🤝👨🏽", "👩🏼🤝👨🏾", "👩🏼🤝👨🏿", "👩🏽🤝👨🏻", "👩🏽🤝👨🏼", "👫🏽", "👩🏽🤝👨🏾", "👩🏽🤝👨🏿", "👩🏾🤝👨🏻", "👩🏾🤝👨🏼", "👩🏾🤝👨🏽", "👫🏾", "👩🏾🤝👨🏿", "👩🏿🤝👨🏻", "👩🏿🤝👨🏼", "👩🏿🤝👨🏽", "👩🏿🤝👨🏾", "👫🏿", "👬", "👬🏻", "👨🏻🤝👨🏼", "👨🏻🤝👨🏽", "👨🏻🤝👨🏾", "👨🏻🤝👨🏿", "👨🏼🤝👨🏻", "👬🏼", "👨🏼🤝👨🏽", "👨🏼🤝👨🏾", "👨🏼🤝👨🏿", "👨🏽🤝👨🏻", "👨🏽🤝👨🏼", "👬🏽", "👨🏽🤝👨🏾", "👨🏽🤝👨🏿", "👨🏾🤝👨🏻", "👨🏾🤝👨🏼", "👨🏾🤝👨🏽", "👬🏾", "👨🏾🤝👨🏿", "👨🏿🤝👨🏻", "👨🏿🤝👨🏼", "👨🏿🤝👨🏽", "👨🏿🤝👨🏾", "👬🏿", "💏", "💏🏻", "💏🏼", "💏🏽", "💏🏾", "💏🏿", "🧑🏻❤️💋🧑🏼", "🧑🏻❤️💋🧑🏽", "🧑🏻❤️💋🧑🏾", "🧑🏻❤️💋🧑🏿", "🧑🏼❤️💋🧑🏻", "🧑🏼❤️💋🧑🏽", "🧑🏼❤️💋🧑🏾", "🧑🏼❤️💋🧑🏿", "🧑🏽❤️💋🧑🏻", "🧑🏽❤️💋🧑🏼", "🧑🏽❤️💋🧑🏾", "🧑🏽❤️💋🧑🏿", "🧑🏾❤️💋🧑🏻", "🧑🏾❤️💋🧑🏼", "🧑🏾❤️💋🧑🏽", "🧑🏾❤️💋🧑🏿", "🧑🏿❤️💋🧑🏻", "🧑🏿❤️💋🧑🏼", "🧑🏿❤️💋🧑🏽", "🧑🏿❤️💋🧑🏾", "👩❤️💋👨", "👩🏻❤️💋👨🏻", "👩🏻❤️💋👨🏼", "👩🏻❤️💋👨🏽", "👩🏻❤️💋👨🏾", "👩🏻❤️💋👨🏿", "👩🏼❤️💋👨🏻", "👩🏼❤️💋👨🏼", "👩🏼❤️💋👨🏽", "👩🏼❤️💋👨🏾", "👩🏼❤️💋👨🏿", "👩🏽❤️💋👨🏻", "👩🏽❤️💋👨🏼", "👩🏽❤️💋👨🏽", "👩🏽❤️💋👨🏾", "👩🏽❤️💋👨🏿", "👩🏾❤️💋👨🏻", "👩🏾❤️💋👨🏼", "👩🏾❤️💋👨🏽", "👩🏾❤️💋👨🏾", "👩🏾❤️💋👨🏿", "👩🏿❤️💋👨🏻", "👩🏿❤️💋👨🏼", "👩🏿❤️💋👨🏽", "👩🏿❤️💋👨🏾", "👩🏿❤️💋👨🏿", "👨❤️💋👨", "👨🏻❤️💋👨🏻", "👨🏻❤️💋👨🏼", "👨🏻❤️💋👨🏽", "👨🏻❤️💋👨🏾", "👨🏻❤️💋👨🏿", "👨🏼❤️💋👨🏻", "👨🏼❤️💋👨🏼", "👨🏼❤️💋👨🏽", "👨🏼❤️💋👨🏾", "👨🏼❤️💋👨🏿", "👨🏽❤️💋👨🏻", "👨🏽❤️💋👨🏼", "👨🏽❤️💋👨🏽", "👨🏽❤️💋👨🏾", "👨🏽❤️💋👨🏿", "👨🏾❤️💋👨🏻", "👨🏾❤️💋👨🏼", "👨🏾❤️💋👨🏽", "👨🏾❤️💋👨🏾", "👨🏾❤️💋👨🏿", "👨🏿❤️💋👨🏻", "👨🏿❤️💋👨🏼", "👨🏿❤️💋👨🏽", "👨🏿❤️💋👨🏾", "👨🏿❤️💋👨🏿", "👩❤️💋👩", "👩🏻❤️💋👩🏻", "👩🏻❤️💋👩🏼", "👩🏻❤️💋👩🏽", "👩🏻❤️💋👩🏾", "👩🏻❤️💋👩🏿", "👩🏼❤️💋👩🏻", "👩🏼❤️💋👩🏼", "👩🏼❤️💋👩🏽", "👩🏼❤️💋👩🏾", "👩🏼❤️💋👩🏿", "👩🏽❤️💋👩🏻", "👩🏽❤️💋👩🏼", "👩🏽❤️💋👩🏽", "👩🏽❤️💋👩🏾", "👩🏽❤️💋👩🏿", "👩🏾❤️💋👩🏻", "👩🏾❤️💋👩🏼", "👩🏾❤️💋👩🏽", "👩🏾❤️💋👩🏾", "👩🏾❤️💋👩🏿", "👩🏿❤️💋👩🏻", "👩🏿❤️💋👩🏼", "👩🏿❤️💋👩🏽", "👩🏿❤️💋👩🏾", "👩🏿❤️💋👩🏿", "💑", "💑🏻", "💑🏼", "💑🏽", "💑🏾", "💑🏿", "🧑🏻❤️🧑🏼", "🧑🏻❤️🧑🏽", "🧑🏻❤️🧑🏾", "🧑🏻❤️🧑🏿", "🧑🏼❤️🧑🏻", "🧑🏼❤️🧑🏽", "🧑🏼❤️🧑🏾", "🧑🏼❤️🧑🏿", "🧑🏽❤️🧑🏻", "🧑🏽❤️🧑🏼", "🧑🏽❤️🧑🏾", "🧑🏽❤️🧑🏿", "🧑🏾❤️🧑🏻", "🧑🏾❤️🧑🏼", "🧑🏾❤️🧑🏽", "🧑🏾❤️🧑🏿", "🧑🏿❤️🧑🏻", "🧑🏿❤️🧑🏼", "🧑🏿❤️🧑🏽", "🧑🏿❤️🧑🏾", "👩❤️👨", "👩🏻❤️👨🏻", "👩🏻❤️👨🏼", "👩🏻❤️👨🏽", "👩🏻❤️👨🏾", "👩🏻❤️👨🏿", "👩🏼❤️👨🏻", "👩🏼❤️👨🏼", "👩🏼❤️👨🏽", "👩🏼❤️👨🏾", "👩🏼❤️👨🏿", "👩🏽❤️👨🏻", "👩🏽❤️👨🏼", "👩🏽❤️👨🏽", "👩🏽❤️👨🏾", "👩🏽❤️👨🏿", "👩🏾❤️👨🏻", "👩🏾❤️👨🏼", "👩🏾❤️👨🏽", "👩🏾❤️👨🏾", "👩🏾❤️👨🏿", "👩🏿❤️👨🏻", "👩🏿❤️👨🏼", "👩🏿❤️👨🏽", "👩🏿❤️👨🏾", "👩🏿❤️👨🏿", "👨❤️👨", "👨🏻❤️👨🏻", "👨🏻❤️👨🏼", "👨🏻❤️👨🏽", "👨🏻❤️👨🏾", "👨🏻❤️👨🏿", "👨🏼❤️👨🏻", "👨🏼❤️👨🏼", "👨🏼❤️👨🏽", "👨🏼❤️👨🏾", "👨🏼❤️👨🏿", "👨🏽❤️👨🏻", "👨🏽❤️👨🏼", "👨🏽❤️👨🏽", "👨🏽❤️👨🏾", "👨🏽❤️👨🏿", "👨🏾❤️👨🏻", "👨🏾❤️👨🏼", "👨🏾❤️👨🏽", "👨🏾❤️👨🏾", "👨🏾❤️👨🏿", "👨🏿❤️👨🏻", "👨🏿❤️👨🏼", "👨🏿❤️👨🏽", "👨🏿❤️👨🏾", "👨🏿❤️👨🏿", "👩❤️👩", "👩🏻❤️👩🏻", "👩🏻❤️👩🏼", "👩🏻❤️👩🏽", "👩🏻❤️👩🏾", "👩🏻❤️👩🏿", "👩🏼❤️👩🏻", "👩🏼❤️👩🏼", "👩🏼❤️👩🏽", "👩🏼❤️👩🏾", "👩🏼❤️👩🏿", "👩🏽❤️👩🏻", "👩🏽❤️👩🏼", "👩🏽❤️👩🏽", "👩🏽❤️👩🏾", "👩🏽❤️👩🏿", "👩🏾❤️👩🏻", "👩🏾❤️👩🏼", "👩🏾❤️👩🏽", "👩🏾❤️👩🏾", "👩🏾❤️👩🏿", "👩🏿❤️👩🏻", "👩🏿❤️👩🏼", "👩🏿❤️👩🏽", "👩🏿❤️👩🏾", "👩🏿❤️👩🏿", "👪", "👨👩👦", "👨👩👧", "👨👩👧👦", "👨👩👦👦", "👨👩👧👧", "👨👨👦", "👨👨👧", "👨👨👧👦", "👨👨👦👦", "👨👨👧👧", "👩👩👦", "👩👩👧", "👩👩👧👦", "👩👩👦👦", "👩👩👧👧", "👨👦", "👨👦👦", "👨👧", "👨👧👦", "👨👧👧", "👩👦", "👩👦👦", "👩👧", "👩👧👦", "👩👧👧", "🗣️", "👤", "👥", "🫂", "👣"], nature: ["🐵", "🐒", "🦍", "🦧", "🐶", "🐕", "🦮", "🐕🦺", "🐩", "🐺", "🦊", "🦝", "🐱", "🐈", "🐈⬛", "🦁", "🐯", "🐅", "🐆", "🐴", "🐎", "🦄", "🦓", "🦌", "🦬", "🐮", "🐂", "🐃", "🐄", "🐷", "🐖", "🐗", "🐽", "🐏", "🐑", "🐐", "🐪", "🐫", "🦙", "🦒", "🐘", "🦣", "🦏", "🦛", "🐭", "🐁", "🐀", "🐹", "🐰", "🐇", "🐿️", "🦫", "🦔", "🦇", "🐻", "🐻❄️", "🐨", "🐼", "🦥", "🦦", "🦨", "🦘", "🦡", "🐾", "🦃", "🐔", "🐓", "🐣", "🐤", "🐥", "🐦", "🐧", "🕊️", "🦅", "🦆", "🦢", "🦉", "🦤", "🪶", "🦩", "🦚", "🦜", "🐸", "🐊", "🐢", "🦎", "🐍", "🐲", "🐉", "🦕", "🦖", "🐳", "🐋", "🐬", "🦭", "🐟", "🐠", "🐡", "🦈", "🐙", "🐚", "🐌", "🦋", "🐛", "🐜", "🐝", "🪲", "🐞", "🦗", "🪳", "🕷️", "🕸️", "🦂", "🦟", "🪰", "🪱", "🦠", "💐", "🌸", "💮", "🏵️", "🌹", "🥀", "🌺", "🌻", "🌼", "🌷", "🌱", "🪴", "🌲", "🌳", "🌴", "🌵", "🌾", "🌿", "☘️", "🍀", "🍁", "🍂", "🍃"], food: ["🍇", "🍈", "🍉", "🍊", "🍋", "🍌", "🍍", "🥭", "🍎", "🍏", "🍐", "🍑", "🍒", "🍓", "🫐", "🥝", "🍅", "🫒", "🥥", "🥑", "🍆", "🥔", "🥕", "🌽", "🌶️", "🫑", "🥒", "🥬", "🥦", "🧄", "🧅", "🍄", "🥜", "🌰", "🍞", "🥐", "🥖", "🫓", "🥨", "🥯", "🥞", "🧇", "🧀", "🍖", "🍗", "🥩", "🥓", "🍔", "🍟", "🍕", "🌭", "🥪", "🌮", "🌯", "🫔", "🥙", "🧆", "🥚", "🍳", "🥘", "🍲", "🫕", "🥣", "🥗", "🍿", "🧈", "🧂", "🥫", "🍱", "🍘", "🍙", "🍚", "🍛", "🍜", "🍝", "🍠", "🍢", "🍣", "🍤", "🍥", "🥮", "🍡", "🥟", "🥠", "🥡", "🦀", "🦞", "🦐", "🦑", "🦪", "🍦", "🍧", "🍨", "🍩", "🍪", "🎂", "🍰", "🧁", "🥧", "🍫", "🍬", "🍭", "🍮", "🍯", "🍼", "🥛", "☕", "🫖", "🍵", "🍶", "🍾", "🍷", "🍸", "🍹", "🍺", "🍻", "🥂", "🥃", "🥤", "🧋", "🧃", "🧉", "🧊", "🥢", "🍽️", "🍴", "🥄", "🔪", "🏺"], travel: ["🌍", "🌎", "🌏", "🌐", "🗺️", "🗾", "🧭", "🏔️", "⛰️", "🌋", "🗻", "🏕️", "🏖️", "🏜️", "🏝️", "🏞️", "🏟️", "🏛️", "🏗️", "🧱", "🪨", "🪵", "🛖", "🏘️", "🏚️", "🏠", "🏡", "🏢", "🏣", "🏤", "🏥", "🏦", "🏨", "🏩", "🏪", "🏫", "🏬", "🏭", "🏯", "🏰", "💒", "🗼", "🗽", "⛪", "🕌", "🛕", "🕍", "⛩️", "🕋", "⛲", "⛺", "🌁", "🌃", "🏙️", "🌄", "🌅", "🌆", "🌇", "🌉", "♨️", "🎠", "🎡", "🎢", "💈", "🎪", "🚂", "🚃", "🚄", "🚅", "🚆", "🚇", "🚈", "🚉", "🚊", "🚝", "🚞", "🚋", "🚌", "🚍", "🚎", "🚐", "🚑", "🚒", "🚓", "🚔", "🚕", "🚖", "🚗", "🚘", "🚙", "🛻", "🚚", "🚛", "🚜", "🏎️", "🏍️", "🛵", "🦽", "🦼", "🛺", "🚲", "🛴", "🛹", "🛼", "🚏", "🛣️", "🛤️", "🛢️", "⛽", "🚨", "🚥", "🚦", "🛑", "🚧", "⚓", "⛵", "🛶", "🚤", "🛳️", "⛴️", "🛥️", "🚢", "✈️", "🛩️", "🛫", "🛬", "🪂", "💺", "🚁", "🚟", "🚠", "🚡", "🛰️", "🚀", "🛸", "🛎️", "🧳", "⌛", "⏳", "⌚", "⏰", "⏱️", "⏲️", "🕰️", "🕛", "🕧", "🕐", "🕜", "🕑", "🕝", "🕒", "🕞", "🕓", "🕟", "🕔", "🕠", "🕕", "🕡", "🕖", "🕢", "🕗", "🕣", "🕘", "🕤", "🕙", "🕥", "🕚", "🕦", "🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", "🌘", "🌙", "🌚", "🌛", "🌜", "🌡️", "☀️", "🌝", "🌞", "🪐", "⭐", "🌟", "🌠", "🌌", "☁️", "⛅", "⛈️", "🌤️", "🌥️", "🌦️", "🌧️", "🌨️", "🌩️", "🌪️", "🌫️", "🌬️", "🌀", "🌈", "🌂", "☂️", "☔", "⛱️", "⚡", "❄️", "☃️", "⛄", "☄️", "🔥", "💧", "🌊"], activity: ["🎃", "🎄", "🎆", "🎇", "🧨", "✨", "🎈", "🎉", "🎊", "🎋", "🎍", "🎎", "🎏", "🎐", "🎑", "🧧", "🎀", "🎁", "🎗️", "🎟️", "🎫", "🎖️", "🏆", "🏅", "🥇", "🥈", "🥉", "⚽", "⚾", "🥎", "🏀", "🏐", "🏈", "🏉", "🎾", "🥏", "🎳", "🏏", "🏑", "🏒", "🥍", "🏓", "🏸", "🥊", "🥋", "🥅", "⛳", "⛸️", "🎣", "🤿", "🎽", "🎿", "🛷", "🥌", "🎯", "🪀", "🪁", "🎱", "🔮", "🪄", "🧿", "🎮", "🕹️", "🎰", "🎲", "🧩", "🧸", "🪅", "🪆", "♠️", "♥️", "♦️", "♣️", "♟️", "🃏", "🀄", "🎴", "🎭", "🖼️", "🎨", "🧵", "🪡", "🧶", "🪢"], object: ["👓", "🕶️", "🥽", "🥼", "🦺", "👔", "👕", "👖", "🧣", "🧤", "🧥", "🧦", "👗", "👘", "🥻", "🩱", "🩲", "🩳", "👙", "👚", "👛", "👜", "👝", "🛍️", "🎒", "🩴", "👞", "👟", "🥾", "🥿", "👠", "👡", "🩰", "👢", "👑", "👒", "🎩", "🎓", "🧢", "🪖", "⛑️", "📿", "💄", "💍", "💎", "🔇", "🔈", "🔉", "🔊", "📢", "📣", "📯", "🔔", "🔕", "🎼", "🎵", "🎶", "🎙️", "🎚️", "🎛️", "🎤", "🎧", "📻", "🎷", "🪗", "🎸", "🎹", "🎺", "🎻", "🪕", "🥁", "🪘", "📱", "📲", "☎️", "📞", "📟", "📠", "🔋", "🔌", "💻", "🖥️", "🖨️", "⌨️", "🖱️", "🖲️", "💽", "💾", "💿", "📀", "🧮", "🎥", "🎞️", "📽️", "🎬", "📺", "📷", "📸", "📹", "📼", "🔍", "🔎", "🕯️", "💡", "🔦", "🏮", "🪔", "📔", "📕", "📖", "📗", "📘", "📙", "📚", "📓", "📒", "📃", "📜", "📄", "📰", "🗞️", "📑", "🔖", "🏷️", "💰", "🪙", "💴", "💵", "💶", "💷", "💸", "💳", "🧾", "💹", "✉️", "📧", "📨", "📩", "📤", "📥", "📦", "📫", "📪", "📬", "📭", "📮", "🗳️", "✏️", "✒️", "🖋️", "🖊️", "🖌️", "🖍️", "📝", "💼", "📁", "📂", "🗂️", "📅", "📆", "🗒️", "🗓️", "📇", "📈", "📉", "📊", "📋", "📌", "📍", "📎", "🖇️", "📏", "📐", "✂️", "🗃️", "🗄️", "🗑️", "🔒", "🔓", "🔏", "🔐", "🔑", "🗝️", "🔨", "🪓", "⛏️", "⚒️", "🛠️", "🗡️", "⚔️", "🔫", "🪃", "🏹", "🛡️", "🪚", "🔧", "🪛", "🔩", "⚙️", "🗜️", "⚖️", "🦯", "🔗", "⛓️", "🪝", "🧰", "🧲", "🪜", "⚗️", "🧪", "🧫", "🧬", "🔬", "🔭", "📡", "💉", "🩸", "💊", "🩹", "🩺", "🚪", "🛗", "🪞", "🪟", "🛏️", "🛋️", "🪑", "🚽", "🪠", "🚿", "🛁", "🪤", "🪒", "🧴", "🧷", "🧹", "🧺", "🧻", "🪣", "🧼", "🪥", "🧽", "🧯", "🛒", "🚬", "⚰️", "🪦", "⚱️", "🗿", "🪧"], symbol: ["🏧", "🚮", "🚰", "♿", "🚹", "🚺", "🚻", "🚼", "🚾", "🛂", "🛃", "🛄", "🛅", "⚠️", "🚸", "⛔", "🚫", "🚳", "🚭", "🚯", "🚱", "🚷", "📵", "🔞", "☢️", "☣️", "⬆️", "↗️", "➡️", "↘️", "⬇️", "↙️", "⬅️", "↖️", "↕️", "↔️", "↩️", "↪️", "⤴️", "⤵️", "🔃", "🔄", "🔙", "🔚", "🔛", "🔜", "🔝", "🛐", "⚛️", "🕉️", "✡️", "☸️", "☯️", "✝️", "☦️", "☪️", "☮️", "🕎", "🔯", "♈", "♉", "♊", "♋", "♌", "♍", "♎", "♏", "♐", "♑", "♒", "♓", "⛎", "🔀", "🔁", "🔂", "▶️", "⏩", "⏭️", "⏯️", "◀️", "⏪", "⏮️", "🔼", "⏫", "🔽", "⏬", "⏸️", "⏹️", "⏺️", "⏏️", "🎦", "🔅", "🔆", "📶", "📳", "📴", "♀️", "♂️", "⚧️", "✖️", "➕", "➖", "➗", "♾️", "‼️", "⁉️", "❓", "❔", "❕", "❗", "〰️", "💱", "💲", "⚕️", "♻️", "⚜️", "🔱", "📛", "🔰", "⭕", "✅", "☑️", "✔️", "❌", "❎", "➰", "➿", "〽️", "✳️", "✴️", "❇️", "©️", "®️", "™️", "#️⃣", "*️⃣", "0️⃣", "1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "🔟", "🔠", "🔡", "🔢", "🔣", "🔤", "🅰️", "🆎", "🅱️", "🆑", "🆒", "🆓", "ℹ️", "🆔", "Ⓜ️", "🆕", "🆖", "🅾️", "🆗", "🅿️", "🆘", "🆙", "🆚", "🈁", "🈂️", "🈷️", "🈶", "🈯", "🉐", "🈹", "🈚", "🈲", "🉑", "🈸", "🈴", "🈳", "㊗️", "㊙️", "🈺", "🈵", "🔴", "🟠", "🟡", "🟢", "🔵", "🟣", "🟤", "⚫", "⚪", "🟥", "🟧", "🟨", "🟩", "🟦", "🟪", "🟫", "⬛", "⬜", "◼️", "◻️", "◾", "◽", "▪️", "▫️", "🔶", "🔷", "🔸", "🔹", "🔺", "🔻", "💠", "🔘", "🔳", "🔲"], flag: ["🏁", "🚩", "🎌", "🏴", "🏳️", "🏳️🌈", "🏳️⚧️", "🏴☠️", "🇦🇨", "🇦🇩", "🇦🇪", "🇦🇫", "🇦🇬", "🇦🇮", "🇦🇱", "🇦🇲", "🇦🇴", "🇦🇶", "🇦🇷", "🇦🇸", "🇦🇹", "🇦🇺", "🇦🇼", "🇦🇽", "🇦🇿", "🇧🇦", "🇧🇧", "🇧🇩", "🇧🇪", "🇧🇫", "🇧🇬", "🇧🇭", "🇧🇮", "🇧🇯", "🇧🇱", "🇧🇲", "🇧🇳", "🇧🇴", "🇧🇶", "🇧🇷", "🇧🇸", "🇧🇹", "🇧🇻", "🇧🇼", "🇧🇾", "🇧🇿", "🇨🇦", "🇨🇨", "🇨🇩", "🇨🇫", "🇨🇬", "🇨🇭", "🇨🇮", "🇨🇰", "🇨🇱", "🇨🇲", "🇨🇳", "🇨🇴", "🇨🇵", "🇨🇷", "🇨🇺", "🇨🇻", "🇨🇼", "🇨🇽", "🇨🇾", "🇨🇿", "🇩🇪", "🇩🇬", "🇩🇯", "🇩🇰", "🇩🇲", "🇩🇴", "🇩🇿", "🇪🇦", "🇪🇨", "🇪🇪", "🇪🇬", "🇪🇭", "🇪🇷", "🇪🇸", "🇪🇹", "🇪🇺", "🇫🇮", "🇫🇯", "🇫🇰", "🇫🇲", "🇫🇴", "🇫🇷", "🇬🇦", "🇬🇧", "🇬🇩", "🇬🇪", "🇬🇫", "🇬🇬", "🇬🇭", "🇬🇮", "🇬🇱", "🇬🇲", "🇬🇳", "🇬🇵", "🇬🇶", "🇬🇷", "🇬🇸", "🇬🇹", "🇬🇺", "🇬🇼", "🇬🇾", "🇭🇰", "🇭🇲", "🇭🇳", "🇭🇷", "🇭🇹", "🇭🇺", "🇮🇨", "🇮🇩", "🇮🇪", "🇮🇱", "🇮🇲", "🇮🇳", "🇮🇴", "🇮🇶", "🇮🇷", "🇮🇸", "🇮🇹", "🇯🇪", "🇯🇲", "🇯🇴", "🇯🇵", "🇰🇪", "🇰🇬", "🇰🇭", "🇰🇮", "🇰🇲", "🇰🇳", "🇰🇵", "🇰🇷", "🇰🇼", "🇰🇾", "🇰🇿", "🇱🇦", "🇱🇧", "🇱🇨", "🇱🇮", "🇱🇰", "🇱🇷", "🇱🇸", "🇱🇹", "🇱🇺", "🇱🇻", "🇱🇾", "🇲🇦", "🇲🇨", "🇲🇩", "🇲🇪", "🇲🇫", "🇲🇬", "🇲🇭", "🇲🇰", "🇲🇱", "🇲🇲", "🇲🇳", "🇲🇴", "🇲🇵", "🇲🇶", "🇲🇷", "🇲🇸", "🇲🇹", "🇲🇺", "🇲🇻", "🇲🇼", "🇲🇽", "🇲🇾", "🇲🇿", "🇳🇦", "🇳🇨", "🇳🇪", "🇳🇫", "🇳🇬", "🇳🇮", "🇳🇱", "🇳🇴", "🇳🇵", "🇳🇷", "🇳🇺", "🇳🇿", "🇴🇲", "🇵🇦", "🇵🇪", "🇵🇫", "🇵🇬", "🇵🇭", "🇵🇰", "🇵🇱", "🇵🇲", "🇵🇳", "🇵🇷", "🇵🇸", "🇵🇹", "🇵🇼", "🇵🇾", "🇶🇦", "🇷🇪", "🇷🇴", "🇷🇸", "🇷🇺", "🇷🇼", "🇸🇦", "🇸🇧", "🇸🇨", "🇸🇩", "🇸🇪", "🇸🇬", "🇸🇭", "🇸🇮", "🇸🇯", "🇸🇰", "🇸🇱", "🇸🇲", "🇸🇳", "🇸🇴", "🇸🇷", "🇸🇸", "🇸🇹", "🇸🇻", "🇸🇽", "🇸🇾", "🇸🇿", "🇹🇦", "🇹🇨", "🇹🇩", "🇹🇫", "🇹🇬", "🇹🇭", "🇹🇯", "🇹🇰", "🇹🇱", "🇹🇲", "🇹🇳", "🇹🇴", "🇹🇷", "🇹🇹", "🇹🇻", "🇹🇼", "🇹🇿", "🇺🇦", "🇺🇬", "🇺🇲", "🇺🇳", "🇺🇸", "🇺🇾", "🇺🇿", "🇻🇦", "🇻🇨", "🇻🇪", "🇻🇬", "🇻🇮", "🇻🇳", "🇻🇺", "🇼🇫", "🇼🇸", "🇽🇰", "🇾🇪", "🇾🇹", "🇿🇦", "🇿🇲", "🇿🇼"] }, wo = { informational: [100, 101, 102, 103], success: [200, 201, 202, 203, 204, 205, 206, 207, 208, 226], redirection: [300, 301, 302, 303, 304, 305, 306, 307, 308], clientError: [400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 421, 422, 423, 424, 425, 426, 428, 429, 431, 451], serverError: [500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511] }, Mo = ["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "none"], To = { emoji: vo, http_status_code: wo, jwt_algorithm: Mo }, Lo = To, Ro = [{ alpha2: "AD", alpha3: "AND", numeric: "020" }, { alpha2: "AE", alpha3: "ARE", numeric: "784" }, { alpha2: "AF", alpha3: "AFG", numeric: "004" }, { alpha2: "AG", alpha3: "ATG", numeric: "028" }, { alpha2: "AI", alpha3: "AIA", numeric: "660" }, { alpha2: "AL", alpha3: "ALB", numeric: "008" }, { alpha2: "AM", alpha3: "ARM", numeric: "051" }, { alpha2: "AO", alpha3: "AGO", numeric: "024" }, { alpha2: "AQ", alpha3: "ATA", numeric: "010" }, { alpha2: "AR", alpha3: "ARG", numeric: "032" }, { alpha2: "AS", alpha3: "ASM", numeric: "016" }, { alpha2: "AT", alpha3: "AUT", numeric: "040" }, { alpha2: "AU", alpha3: "AUS", numeric: "036" }, { alpha2: "AW", alpha3: "ABW", numeric: "533" }, { alpha2: "AX", alpha3: "ALA", numeric: "248" }, { alpha2: "AZ", alpha3: "AZE", numeric: "031" }, { alpha2: "BA", alpha3: "BIH", numeric: "070" }, { alpha2: "BB", alpha3: "BRB", numeric: "052" }, { alpha2: "BD", alpha3: "BGD", numeric: "050" }, { alpha2: "BE", alpha3: "BEL", numeric: "056" }, { alpha2: "BF", alpha3: "BFA", numeric: "854" }, { alpha2: "BG", alpha3: "BGR", numeric: "100" }, { alpha2: "BH", alpha3: "BHR", numeric: "048" }, { alpha2: "BI", alpha3: "BDI", numeric: "108" }, { alpha2: "BJ", alpha3: "BEN", numeric: "204" }, { alpha2: "BL", alpha3: "BLM", numeric: "652" }, { alpha2: "BM", alpha3: "BMU", numeric: "060" }, { alpha2: "BN", alpha3: "BRN", numeric: "096" }, { alpha2: "BO", alpha3: "BOL", numeric: "068" }, { alpha2: "BQ", alpha3: "BES", numeric: "535" }, { alpha2: "BR", alpha3: "BRA", numeric: "076" }, { alpha2: "BS", alpha3: "BHS", numeric: "044" }, { alpha2: "BT", alpha3: "BTN", numeric: "064" }, { alpha2: "BV", alpha3: "BVT", numeric: "074" }, { alpha2: "BW", alpha3: "BWA", numeric: "072" }, { alpha2: "BY", alpha3: "BLR", numeric: "112" }, { alpha2: "BZ", alpha3: "BLZ", numeric: "084" }, { alpha2: "CA", alpha3: "CAN", numeric: "124" }, { alpha2: "CC", alpha3: "CCK", numeric: "166" }, { alpha2: "CD", alpha3: "COD", numeric: "180" }, { alpha2: "CF", alpha3: "CAF", numeric: "140" }, { alpha2: "CG", alpha3: "COG", numeric: "178" }, { alpha2: "CH", alpha3: "CHE", numeric: "756" }, { alpha2: "CI", alpha3: "CIV", numeric: "384" }, { alpha2: "CK", alpha3: "COK", numeric: "184" }, { alpha2: "CL", alpha3: "CHL", numeric: "152" }, { alpha2: "CM", alpha3: "CMR", numeric: "120" }, { alpha2: "CN", alpha3: "CHN", numeric: "156" }, { alpha2: "CO", alpha3: "COL", numeric: "170" }, { alpha2: "CR", alpha3: "CRI", numeric: "188" }, { alpha2: "CU", alpha3: "CUB", numeric: "192" }, { alpha2: "CV", alpha3: "CPV", numeric: "132" }, { alpha2: "CW", alpha3: "CUW", numeric: "531" }, { alpha2: "CX", alpha3: "CXR", numeric: "162" }, { alpha2: "CY", alpha3: "CYP", numeric: "196" }, { alpha2: "CZ", alpha3: "CZE", numeric: "203" }, { alpha2: "DE", alpha3: "DEU", numeric: "276" }, { alpha2: "DJ", alpha3: "DJI", numeric: "262" }, { alpha2: "DK", alpha3: "DNK", numeric: "208" }, { alpha2: "DM", alpha3: "DMA", numeric: "212" }, { alpha2: "DO", alpha3: "DOM", numeric: "214" }, { alpha2: "DZ", alpha3: "DZA", numeric: "012" }, { alpha2: "EC", alpha3: "ECU", numeric: "218" }, { alpha2: "EE", alpha3: "EST", numeric: "233" }, { alpha2: "EG", alpha3: "EGY", numeric: "818" }, { alpha2: "EH", alpha3: "ESH", numeric: "732" }, { alpha2: "ER", alpha3: "ERI", numeric: "232" }, { alpha2: "ES", alpha3: "ESP", numeric: "724" }, { alpha2: "ET", alpha3: "ETH", numeric: "231" }, { alpha2: "FI", alpha3: "FIN", numeric: "246" }, { alpha2: "FJ", alpha3: "FJI", numeric: "242" }, { alpha2: "FK", alpha3: "FLK", numeric: "238" }, { alpha2: "FM", alpha3: "FSM", numeric: "583" }, { alpha2: "FO", alpha3: "FRO", numeric: "234" }, { alpha2: "FR", alpha3: "FRA", numeric: "250" }, { alpha2: "GA", alpha3: "GAB", numeric: "266" }, { alpha2: "GB", alpha3: "GBR", numeric: "826" }, { alpha2: "GD", alpha3: "GRD", numeric: "308" }, { alpha2: "GE", alpha3: "GEO", numeric: "268" }, { alpha2: "GF", alpha3: "GUF", numeric: "254" }, { alpha2: "GG", alpha3: "GGY", numeric: "831" }, { alpha2: "GH", alpha3: "GHA", numeric: "288" }, { alpha2: "GI", alpha3: "GIB", numeric: "292" }, { alpha2: "GL", alpha3: "GRL", numeric: "304" }, { alpha2: "GM", alpha3: "GMB", numeric: "270" }, { alpha2: "GN", alpha3: "GIN", numeric: "324" }, { alpha2: "GP", alpha3: "GLP", numeric: "312" }, { alpha2: "GQ", alpha3: "GNQ", numeric: "226" }, { alpha2: "GR", alpha3: "GRC", numeric: "300" }, { alpha2: "GS", alpha3: "SGS", numeric: "239" }, { alpha2: "GT", alpha3: "GTM", numeric: "320" }, { alpha2: "GU", alpha3: "GUM", numeric: "316" }, { alpha2: "GW", alpha3: "GNB", numeric: "624" }, { alpha2: "GY", alpha3: "GUY", numeric: "328" }, { alpha2: "HK", alpha3: "HKG", numeric: "344" }, { alpha2: "HM", alpha3: "HMD", numeric: "334" }, { alpha2: "HN", alpha3: "HND", numeric: "340" }, { alpha2: "HR", alpha3: "HRV", numeric: "191" }, { alpha2: "HT", alpha3: "HTI", numeric: "332" }, { alpha2: "HU", alpha3: "HUN", numeric: "348" }, { alpha2: "ID", alpha3: "IDN", numeric: "360" }, { alpha2: "IE", alpha3: "IRL", numeric: "372" }, { alpha2: "IL", alpha3: "ISR", numeric: "376" }, { alpha2: "IM", alpha3: "IMN", numeric: "833" }, { alpha2: "IN", alpha3: "IND", numeric: "356" }, { alpha2: "IO", alpha3: "IOT", numeric: "086" }, { alpha2: "IQ", alpha3: "IRQ", numeric: "368" }, { alpha2: "IR", alpha3: "IRN", numeric: "364" }, { alpha2: "IS", alpha3: "ISL", numeric: "352" }, { alpha2: "IT", alpha3: "ITA", numeric: "380" }, { alpha2: "JE", alpha3: "JEY", numeric: "832" }, { alpha2: "JM", alpha3: "JAM", numeric: "388" }, { alpha2: "JO", alpha3: "JOR", numeric: "400" }, { alpha2: "JP", alpha3: "JPN", numeric: "392" }, { alpha2: "KE", alpha3: "KEN", numeric: "404" }, { alpha2: "KG", alpha3: "KGZ", numeric: "417" }, { alpha2: "KH", alpha3: "KHM", numeric: "116" }, { alpha2: "KI", alpha3: "KIR", numeric: "296" }, { alpha2: "KM", alpha3: "COM", numeric: "174" }, { alpha2: "KN", alpha3: "KNA", numeric: "659" }, { alpha2: "KP", alpha3: "PRK", numeric: "408" }, { alpha2: "KR", alpha3: "KOR", numeric: "410" }, { alpha2: "KW", alpha3: "KWT", numeric: "414" }, { alpha2: "KY", alpha3: "CYM", numeric: "136" }, { alpha2: "KZ", alpha3: "KAZ", numeric: "398" }, { alpha2: "LA", alpha3: "LAO", numeric: "418" }, { alpha2: "LB", alpha3: "LBN", numeric: "422" }, { alpha2: "LC", alpha3: "LCA", numeric: "662" }, { alpha2: "LI", alpha3: "LIE", numeric: "438" }, { alpha2: "LK", alpha3: "LKA", numeric: "144" }, { alpha2: "LR", alpha3: "LBR", numeric: "430" }, { alpha2: "LS", alpha3: "LSO", numeric: "426" }, { alpha2: "LT", alpha3: "LTU", numeric: "440" }, { alpha2: "LU", alpha3: "LUX", numeric: "442" }, { alpha2: "LV", alpha3: "LVA", numeric: "428" }, { alpha2: "LY", alpha3: "LBY", numeric: "434" }, { alpha2: "MA", alpha3: "MAR", numeric: "504" }, { alpha2: "MC", alpha3: "MCO", numeric: "492" }, { alpha2: "MD", alpha3: "MDA", numeric: "498" }, { alpha2: "ME", alpha3: "MNE", numeric: "499" }, { alpha2: "MF", alpha3: "MAF", numeric: "663" }, { alpha2: "MG", alpha3: "MDG", numeric: "450" }, { alpha2: "MH", alpha3: "MHL", numeric: "584" }, { alpha2: "MK", alpha3: "MKD", numeric: "807" }, { alpha2: "ML", alpha3: "MLI", numeric: "466" }, { alpha2: "MM", alpha3: "MMR", numeric: "104" }, { alpha2: "MN", alpha3: "MNG", numeric: "496" }, { alpha2: "MO", alpha3: "MAC", numeric: "446" }, { alpha2: "MP", alpha3: "MNP", numeric: "580" }, { alpha2: "MQ", alpha3: "MTQ", numeric: "474" }, { alpha2: "MR", alpha3: "MRT", numeric: "478" }, { alpha2: "MS", alpha3: "MSR", numeric: "500" }, { alpha2: "MT", alpha3: "MLT", numeric: "470" }, { alpha2: "MU", alpha3: "MUS", numeric: "480" }, { alpha2: "MV", alpha3: "MDV", numeric: "462" }, { alpha2: "MW", alpha3: "MWI", numeric: "454" }, { alpha2: "MX", alpha3: "MEX", numeric: "484" }, { alpha2: "MY", alpha3: "MYS", numeric: "458" }, { alpha2: "MZ", alpha3: "MOZ", numeric: "508" }, { alpha2: "NA", alpha3: "NAM", numeric: "516" }, { alpha2: "NC", alpha3: "NCL", numeric: "540" }, { alpha2: "NE", alpha3: "NER", numeric: "562" }, { alpha2: "NF", alpha3: "NFK", numeric: "574" }, { alpha2: "NG", alpha3: "NGA", numeric: "566" }, { alpha2: "NI", alpha3: "NIC", numeric: "558" }, { alpha2: "NL", alpha3: "NLD", numeric: "528" }, { alpha2: "NO", alpha3: "NOR", numeric: "578" }, { alpha2: "NP", alpha3: "NPL", numeric: "524" }, { alpha2: "NR", alpha3: "NRU", numeric: "520" }, { alpha2: "NU", alpha3: "NIU", numeric: "570" }, { alpha2: "NZ", alpha3: "NZL", numeric: "554" }, { alpha2: "OM", alpha3: "OMN", numeric: "512" }, { alpha2: "PA", alpha3: "PAN", numeric: "591" }, { alpha2: "PE", alpha3: "PER", numeric: "604" }, { alpha2: "PF", alpha3: "PYF", numeric: "258" }, { alpha2: "PG", alpha3: "PNG", numeric: "598" }, { alpha2: "PH", alpha3: "PHL", numeric: "608" }, { alpha2: "PK", alpha3: "PAK", numeric: "586" }, { alpha2: "PL", alpha3: "POL", numeric: "616" }, { alpha2: "PM", alpha3: "SPM", numeric: "666" }, { alpha2: "PN", alpha3: "PCN", numeric: "612" }, { alpha2: "PR", alpha3: "PRI", numeric: "630" }, { alpha2: "PS", alpha3: "PSE", numeric: "275" }, { alpha2: "PT", alpha3: "PRT", numeric: "620" }, { alpha2: "PW", alpha3: "PLW", numeric: "585" }, { alpha2: "PY", alpha3: "PRY", numeric: "600" }, { alpha2: "QA", alpha3: "QAT", numeric: "634" }, { alpha2: "RE", alpha3: "REU", numeric: "638" }, { alpha2: "RO", alpha3: "ROU", numeric: "642" }, { alpha2: "RS", alpha3: "SRB", numeric: "688" }, { alpha2: "RU", alpha3: "RUS", numeric: "643" }, { alpha2: "RW", alpha3: "RWA", numeric: "646" }, { alpha2: "SA", alpha3: "SAU", numeric: "682" }, { alpha2: "SB", alpha3: "SLB", numeric: "090" }, { alpha2: "SC", alpha3: "SYC", numeric: "690" }, { alpha2: "SD", alpha3: "SDN", numeric: "729" }, { alpha2: "SE", alpha3: "SWE", numeric: "752" }, { alpha2: "SG", alpha3: "SGP", numeric: "702" }, { alpha2: "SH", alpha3: "SHN", numeric: "654" }, { alpha2: "SI", alpha3: "SVN", numeric: "705" }, { alpha2: "SJ", alpha3: "SJM", numeric: "744" }, { alpha2: "SK", alpha3: "SVK", numeric: "703" }, { alpha2: "SL", alpha3: "SLE", numeric: "694" }, { alpha2: "SM", alpha3: "SMR", numeric: "674" }, { alpha2: "SN", alpha3: "SEN", numeric: "686" }, { alpha2: "SO", alpha3: "SOM", numeric: "706" }, { alpha2: "SR", alpha3: "SUR", numeric: "740" }, { alpha2: "SS", alpha3: "SSD", numeric: "728" }, { alpha2: "ST", alpha3: "STP", numeric: "678" }, { alpha2: "SV", alpha3: "SLV", numeric: "222" }, { alpha2: "SX", alpha3: "SXM", numeric: "534" }, { alpha2: "SY", alpha3: "SYR", numeric: "760" }, { alpha2: "SZ", alpha3: "SWZ", numeric: "748" }, { alpha2: "TC", alpha3: "TCA", numeric: "796" }, { alpha2: "TD", alpha3: "TCD", numeric: "148" }, { alpha2: "TF", alpha3: "ATF", numeric: "260" }, { alpha2: "TG", alpha3: "TGO", numeric: "768" }, { alpha2: "TH", alpha3: "THA", numeric: "764" }, { alpha2: "TJ", alpha3: "TJK", numeric: "762" }, { alpha2: "TK", alpha3: "TKL", numeric: "772" }, { alpha2: "TL", alpha3: "TLS", numeric: "626" }, { alpha2: "TM", alpha3: "TKM", numeric: "795" }, { alpha2: "TN", alpha3: "TUN", numeric: "788" }, { alpha2: "TO", alpha3: "TON", numeric: "776" }, { alpha2: "TR", alpha3: "TUR", numeric: "792" }, { alpha2: "TT", alpha3: "TTO", numeric: "780" }, { alpha2: "TV", alpha3: "TUV", numeric: "798" }, { alpha2: "TW", alpha3: "TWN", numeric: "158" }, { alpha2: "TZ", alpha3: "TZA", numeric: "834" }, { alpha2: "UA", alpha3: "UKR", numeric: "804" }, { alpha2: "UG", alpha3: "UGA", numeric: "800" }, { alpha2: "UM", alpha3: "UMI", numeric: "581" }, { alpha2: "US", alpha3: "USA", numeric: "840" }, { alpha2: "UY", alpha3: "URY", numeric: "858" }, { alpha2: "UZ", alpha3: "UZB", numeric: "860" }, { alpha2: "VA", alpha3: "VAT", numeric: "336" }, { alpha2: "VC", alpha3: "VCT", numeric: "670" }, { alpha2: "VE", alpha3: "VEN", numeric: "862" }, { alpha2: "VG", alpha3: "VGB", numeric: "092" }, { alpha2: "VI", alpha3: "VIR", numeric: "850" }, { alpha2: "VN", alpha3: "VNM", numeric: "704" }, { alpha2: "VU", alpha3: "VUT", numeric: "548" }, { alpha2: "WF", alpha3: "WLF", numeric: "876" }, { alpha2: "WS", alpha3: "WSM", numeric: "882" }, { alpha2: "YE", alpha3: "YEM", numeric: "887" }, { alpha2: "YT", alpha3: "MYT", numeric: "175" }, { alpha2: "ZA", alpha3: "ZAF", numeric: "710" }, { alpha2: "ZM", alpha3: "ZMB", numeric: "894" }, { alpha2: "ZW", alpha3: "ZWE", numeric: "716" }], Po = Za, Ho = { country_code: Ro, time_zone: Po }, Go = Ho, No = { title: "Base", code: "base" }, Wo = No, xo = ["/Applications", "/bin", "/boot", "/boot/defaults", "/dev", "/etc", "/etc/defaults", "/etc/mail", "/etc/namedb", "/etc/periodic", "/etc/ppp", "/home", "/home/user", "/home/user/dir", "/lib", "/Library", "/lost+found", "/media", "/mnt", "/net", "/Network", "/opt", "/opt/bin", "/opt/include", "/opt/lib", "/opt/sbin", "/opt/share", "/private", "/private/tmp", "/private/var", "/proc", "/rescue", "/root", "/sbin", "/selinux", "/srv", "/sys", "/System", "/tmp", "/Users", "/usr", "/usr/X11R6", "/usr/bin", "/usr/include", "/usr/lib", "/usr/libdata", "/usr/libexec", "/usr/local/bin", "/usr/local/src", "/usr/obj", "/usr/ports", "/usr/sbin", "/usr/share", "/usr/src", "/var", "/var/log", "/var/mail", "/var/spool", "/var/tmp", "/var/yp"], Io = { "application/epub+zip": { extensions: ["epub"] }, "application/gzip": { extensions: ["gz"] }, "application/java-archive": { extensions: ["jar", "war", "ear"] }, "application/json": { extensions: ["json", "map"] }, "application/ld+json": { extensions: ["jsonld"] }, "application/msword": { extensions: ["doc", "dot"] }, "application/octet-stream": { extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"] }, "application/ogg": { extensions: ["ogx"] }, "application/pdf": { extensions: ["pdf"] }, "application/rtf": { extensions: ["rtf"] }, "application/vnd.amazon.ebook": { extensions: ["azw"] }, "application/vnd.apple.installer+xml": { extensions: ["mpkg"] }, "application/vnd.mozilla.xul+xml": { extensions: ["xul"] }, "application/vnd.ms-excel": { extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"] }, "application/vnd.ms-fontobject": { extensions: ["eot"] }, "application/vnd.ms-powerpoint": { extensions: ["ppt", "pps", "pot"] }, "application/vnd.oasis.opendocument.presentation": { extensions: ["odp"] }, "application/vnd.oasis.opendocument.spreadsheet": { extensions: ["ods"] }, "application/vnd.oasis.opendocument.text": { extensions: ["odt"] }, "application/vnd.openxmlformats-officedocument.presentationml.presentation": { extensions: ["pptx"] }, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { extensions: ["xlsx"] }, "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { extensions: ["docx"] }, "application/vnd.rar": { extensions: ["rar"] }, "application/vnd.visio": { extensions: ["vsd", "vst", "vss", "vsw"] }, "application/x-7z-compressed": { extensions: ["7z"] }, "application/x-abiword": { extensions: ["abw"] }, "application/x-bzip": { extensions: ["bz"] }, "application/x-bzip2": { extensions: ["bz2", "boz"] }, "application/x-csh": { extensions: ["csh"] }, "application/x-freearc": { extensions: ["arc"] }, "application/x-httpd-php": { extensions: ["php"] }, "application/x-sh": { extensions: ["sh"] }, "application/x-tar": { extensions: ["tar"] }, "application/xhtml+xml": { extensions: ["xhtml", "xht"] }, "application/xml": { extensions: ["xml", "xsl", "xsd", "rng"] }, "application/zip": { extensions: ["zip"] }, "audio/3gpp": { extensions: ["3gpp"] }, "audio/3gpp2": { extensions: ["3g2"] }, "audio/aac": { extensions: ["aac"] }, "audio/midi": { extensions: ["mid", "midi", "kar", "rmi"] }, "audio/mpeg": { extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] }, "audio/ogg": { extensions: ["oga", "ogg", "spx", "opus"] }, "audio/opus": { extensions: ["opus"] }, "audio/wav": { extensions: ["wav"] }, "audio/webm": { extensions: ["weba"] }, "font/otf": { extensions: ["otf"] }, "font/ttf": { extensions: ["ttf"] }, "font/woff": { extensions: ["woff"] }, "font/woff2": { extensions: ["woff2"] }, "image/avif": { extensions: ["avif"] }, "image/bmp": { extensions: ["bmp"] }, "image/gif": { extensions: ["gif"] }, "image/jpeg": { extensions: ["jpeg", "jpg", "jpe"] }, "image/png": { extensions: ["png"] }, "image/svg+xml": { extensions: ["svg", "svgz"] }, "image/tiff": { extensions: ["tif", "tiff"] }, "image/vnd.microsoft.icon": { extensions: ["ico"] }, "image/webp": { extensions: ["webp"] }, "text/calendar": { extensions: ["ics", "ifb"] }, "text/css": { extensions: ["css"] }, "text/csv": { extensions: ["csv"] }, "text/html": { extensions: ["html", "htm", "shtml"] }, "text/javascript": { extensions: ["js", "mjs"] }, "text/plain": { extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"] }, "video/3gpp": { extensions: ["3gp", "3gpp"] }, "video/3gpp2": { extensions: ["3g2"] }, "video/mp2t": { extensions: ["ts"] }, "video/mp4": { extensions: ["mp4", "mp4v", "mpg4"] }, "video/mpeg": { extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"] }, "video/ogg": { extensions: ["ogv"] }, "video/webm": { extensions: ["webm"] }, "video/x-msvideo": { extensions: ["avi"] } }, Ko = { directory_path: xo, mime_type: Io }, Oo = Ko, Jo = { color: yo, database: Co, date: ko, hacker: So, internet: Lo, location: Go, metadata: Wo, system: Oo }, zo = Jo, Vo = new ho({ locale: [qu, zo] });
|
|
2704
|
-
const jo = "@ecmaos/swapi", Yo = "0.1.
|
|
2704
|
+
const jo = "@ecmaos/swapi", Yo = "0.1.3", $o = "EcmaOS Service Worker API", Uo = "Jay Mathis <code@mathis.network>", _o = "module", qo = { dev: "vite dev", build: "vite build", "install:kernel": "npm run build && cp dist/swapi.js ../kernel/public/" }, Zo = { "@ecmaos/config-typescript": "workspace:^", vite: "^6.0.1" }, Xo = { typescript: "^5.4.0" }, Qo = { "@faker-js/faker": "^9.1.0", hono: "^4.6.7" }, el = { access: "public" }, Ze = {
|
|
2705
2705
|
name: jo,
|
|
2706
2706
|
version: Yo,
|
|
2707
2707
|
description: $o,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as getDefaultExportFromCjs } from "./empty
|
|
1
|
+
import { g as getDefaultExportFromCjs } from "./empty--zdtkf0T.js";
|
|
2
2
|
var topbar_min$3 = { exports: {} };
|
|
3
3
|
/**
|
|
4
4
|
* @license MIT
|
|
@@ -49,4 +49,4 @@ const topbar_min$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.define
|
|
|
49
49
|
export {
|
|
50
50
|
topbar_min$1 as t
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=topbar.min-
|
|
52
|
+
//# sourceMappingURL=topbar.min-CDkSVOxV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topbar.min-
|
|
1
|
+
{"version":3,"file":"topbar.min-CDkSVOxV.js","sources":["../node_modules/.pnpm/topbar@3.0.0/node_modules/topbar/topbar.min.js"],"sourcesContent":["/**\n * @license MIT\n * topbar 3.0.0\n * http://buunguyen.github.io/topbar\n * Copyright (c) 2024 Buu Nguyen\n */\n(function(window,document){\"use strict\";function repaint(){canvas.width=window.innerWidth,canvas.height=5*options.barThickness;var ctx=canvas.getContext(\"2d\");ctx.shadowBlur=options.shadowBlur,ctx.shadowColor=options.shadowColor;var stop,lineGradient=ctx.createLinearGradient(0,0,canvas.width,0);for(stop in options.barColors)lineGradient.addColorStop(stop,options.barColors[stop]);ctx.lineWidth=options.barThickness,ctx.beginPath(),ctx.moveTo(0,options.barThickness/2),ctx.lineTo(Math.ceil(currentProgress*canvas.width),options.barThickness/2),ctx.strokeStyle=lineGradient,ctx.stroke()}var canvas,currentProgress,showing,progressTimerId=null,fadeTimerId=null,delayTimerId=null,options={autoRun:!0,barThickness:3,barColors:{0:\"rgba(26, 188, 156, .9)\",\".25\":\"rgba(52, 152, 219, .9)\",\".50\":\"rgba(241, 196, 15, .9)\",\".75\":\"rgba(230, 126, 34, .9)\",\"1.0\":\"rgba(211, 84, 0, .9)\"},shadowBlur:10,shadowColor:\"rgba(0, 0, 0, .6)\",className:null},topbar={config:function(opts){for(var key in opts)options.hasOwnProperty(key)&&(options[key]=opts[key])},show:function(handler){var type,elem;showing||(handler?delayTimerId=delayTimerId||setTimeout(()=>topbar.show(),handler):(showing=!0,null!==fadeTimerId&&window.cancelAnimationFrame(fadeTimerId),canvas||((elem=(canvas=document.createElement(\"canvas\")).style).position=\"fixed\",elem.top=elem.left=elem.right=elem.margin=elem.padding=0,elem.zIndex=100001,elem.display=\"none\",options.className&&canvas.classList.add(options.className),type=\"resize\",handler=repaint,(elem=window).addEventListener?elem.addEventListener(type,handler,!1):elem.attachEvent?elem.attachEvent(\"on\"+type,handler):elem[\"on\"+type]=handler),canvas.parentElement||document.body.appendChild(canvas),canvas.style.opacity=1,canvas.style.display=\"block\",topbar.progress(0),options.autoRun&&function loop(){progressTimerId=window.requestAnimationFrame(loop),topbar.progress(\"+\"+.05*Math.pow(1-Math.sqrt(currentProgress),2))}()))},progress:function(to){return void 0===to||(\"string\"==typeof to&&(to=(0<=to.indexOf(\"+\")||0<=to.indexOf(\"-\")?currentProgress:0)+parseFloat(to)),currentProgress=1<to?1:to,repaint()),currentProgress},hide:function(){clearTimeout(delayTimerId),delayTimerId=null,showing&&(showing=!1,null!=progressTimerId&&(window.cancelAnimationFrame(progressTimerId),progressTimerId=null),function loop(){return 1<=topbar.progress(\"+.1\")&&(canvas.style.opacity-=.05,canvas.style.opacity<=.05)?(canvas.style.display=\"none\",void(fadeTimerId=null)):void(fadeTimerId=window.requestAnimationFrame(loop))}())}};\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=topbar:\"function\"==typeof define&&define.amd?define(function(){return topbar}):this.topbar=topbar}).call(this,window,document);"],"names":["window","document","this"],"mappings":";;;;;;;;;;;;;;AAMA,KAAC,SAASA,SAAOC,WAAS;AAAc,eAAS,UAAS;AAAC,eAAO,QAAMD,QAAO,YAAW,OAAO,SAAO,IAAE,QAAQ;AAAa,YAAI,MAAI,OAAO,WAAW,IAAI;AAAE,YAAI,aAAW,QAAQ,YAAW,IAAI,cAAY,QAAQ;AAAY,YAAI,MAAK,eAAa,IAAI,qBAAqB,GAAE,GAAE,OAAO,OAAM,CAAC;AAAE,aAAI,QAAQ,QAAQ,UAAU,cAAa,aAAa,MAAK,QAAQ,UAAU,IAAI,CAAC;AAAE,YAAI,YAAU,QAAQ,cAAa,IAAI,aAAY,IAAI,OAAO,GAAE,QAAQ,eAAa,CAAC,GAAE,IAAI,OAAO,KAAK,KAAK,kBAAgB,OAAO,KAAK,GAAE,QAAQ,eAAa,CAAC,GAAE,IAAI,cAAY,cAAa,IAAI;MAAQ;AAAC,UAAI,QAAO,iBAAgB,SAAQ,kBAAgB,MAAK,cAAY,MAAK,eAAa,MAAK,UAAQ,EAAC,SAAQ,MAAG,cAAa,GAAE,WAAU,EAAC,GAAE,2BAA0B,OAAM,2BAA0B,OAAM,2BAA0B,OAAM,2BAA0B,OAAM,0BAAyB,GAAE,YAAW,IAAG,aAAY,2BAA0B,WAAU,KAAI,GAAE,SAAO,EAAC,QAAO,SAAS,MAAK;AAAC,iBAAQ,OAAO,KAAK,SAAQ,eAAe,GAAG,MAAI,QAAQ,GAAG,IAAE,KAAK,GAAG;AAAA,MAAE,GAAE,MAAK,SAAS,SAAQ;AAAC,YAAI,MAAK;AAAK,oBAAU,UAAQ,eAAa,gBAAc,WAAW,MAAI,OAAO,QAAO,OAAO,KAAG,UAAQ,MAAG,SAAO,eAAaA,QAAO,qBAAqB,WAAW,GAAE,YAAU,QAAM,SAAOC,UAAS,cAAc,QAAQ,GAAG,OAAO,WAAS,SAAQ,KAAK,MAAI,KAAK,OAAK,KAAK,QAAM,KAAK,SAAO,KAAK,UAAQ,GAAE,KAAK,SAAO,QAAO,KAAK,UAAQ,QAAO,QAAQ,aAAW,OAAO,UAAU,IAAI,QAAQ,SAAS,GAAE,OAAK,UAAS,UAAQ,UAAS,OAAKD,SAAQ,mBAAiB,KAAK,iBAAiB,MAAK,SAAQ,KAAE,IAAE,KAAK,cAAY,KAAK,YAAY,OAAK,MAAK,OAAO,IAAE,KAAK,OAAK,IAAI,IAAE,UAAS,OAAO,iBAAeC,UAAS,KAAK,YAAY,MAAM,GAAE,OAAO,MAAM,UAAQ,GAAE,OAAO,MAAM,UAAQ,SAAQ,OAAO,SAAS,CAAC,GAAE,QAAQ,WAAS,SAAS,OAAM;AAAC,4BAAgBD,QAAO,sBAAsB,IAAI,GAAE,OAAO,SAAS,MAAI,OAAI,KAAK,IAAI,IAAE,KAAK,KAAK,eAAe,GAAE,CAAC,CAAC;AAAA,QAAC,EAAG;AAAA,MAAE,GAAE,UAAS,SAAS,IAAG;AAAC,eAAO,WAAS,OAAK,YAAU,OAAO,OAAK,MAAI,KAAG,GAAG,QAAQ,GAAG,KAAG,KAAG,GAAG,QAAQ,GAAG,IAAE,kBAAgB,KAAG,WAAW,EAAE,IAAG,kBAAgB,IAAE,KAAG,IAAE,IAAG,QAAS,IAAE;AAAA,MAAe,GAAE,MAAK,WAAU;AAAC,qBAAa,YAAY,GAAE,eAAa,MAAK,YAAU,UAAQ,OAAG,QAAM,oBAAkBA,QAAO,qBAAqB,eAAe,GAAE,kBAAgB,OAAM,SAAS,OAAM;AAAC,iBAAO,KAAG,OAAO,SAAS,KAAK,MAAI,OAAO,MAAM,WAAS,MAAI,OAAO,MAAM,WAAS,SAAM,OAAO,MAAM,UAAQ,QAAO,MAAK,cAAY,SAAO,MAAK,cAAYA,QAAO,sBAAsB,IAAI;AAAA,QAAE,EAAG;AAAA,MAAC,EAAC;AAA2D,uBAAe;AAAA,IAAiG,GAAG,KAAKE,cAAK,QAAO,QAAQ;AAAA;;;;;;;;;","x_google_ignoreList":[0]}
|
package/dist/ui.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ecmaos/kernel",
|
|
3
3
|
"description": "ecmaOS: Micro-kernel and framework for web technologies",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.7",
|
|
5
5
|
"license": "MIT+Apache-2.0",
|
|
6
6
|
"homepage": "https://ecmaos.sh",
|
|
7
7
|
"repository": "https://github.com/ecmaos/ecmaos",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"vite-tsconfig-paths": "^5.0.1",
|
|
131
131
|
"vitest": "^2.1.2",
|
|
132
132
|
"@ecmaos/config-typescript": "^0.1.1",
|
|
133
|
-
"@ecmaos/types": "^0.2.
|
|
133
|
+
"@ecmaos/types": "^0.2.4"
|
|
134
134
|
},
|
|
135
135
|
"dependencies": {
|
|
136
136
|
"@gera2ld/tarjs": "^0.3.1",
|