@evitcastudio/kit 2.1.2 → 2.3.0
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/LICENSE +21 -21
- package/README.md +123 -59
- package/lib/bundle/cli/cli.js +1398 -53
- package/lib/bundle/cli/kit-game-templates/multi/README.md +5 -0
- package/lib/bundle/cli/kit-game-templates/multi/bun-build.ts +109 -0
- package/lib/bundle/cli/kit-game-templates/multi/favicon.ico +0 -0
- package/lib/bundle/cli/kit-game-templates/multi/package.json +24 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/client/c-network.ts +22 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/client/index.html +9 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/client/index.ts +45 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/client/packets/s-packets.ts +5 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/client/vendor/vylocity-game-engine/vylo.client.js +19 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/map-types.ts +9 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/resources/default-atlas.vyi +0 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/resources/default-macro.vymac +27 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/resources/main-map.vym +1 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/server/index.ts +58 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/server/packets/c-packets.ts +5 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/server/s-network.ts +16 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/server/settings.json +4 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/server/vendor/vylocity-game-engine/vylo.server.js +1 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/types/shared-types.ts +13 -0
- package/lib/bundle/cli/kit-game-templates/multi/src/vylo.d.ts +3850 -0
- package/lib/bundle/cli/kit-game-templates/multi/tsconfig.json +28 -0
- package/lib/bundle/cli/kit-game-templates/single/README.md +5 -0
- package/lib/bundle/cli/kit-game-templates/single/bun-build.ts +33 -0
- package/lib/bundle/cli/kit-game-templates/single/bun-serve.ts +28 -0
- package/lib/bundle/cli/kit-game-templates/single/favicon.ico +0 -0
- package/lib/bundle/cli/kit-game-templates/single/package.json +23 -0
- package/lib/bundle/cli/kit-game-templates/single/src/index.html +12 -0
- package/lib/bundle/cli/kit-game-templates/single/src/index.ts +37 -0
- package/lib/bundle/cli/kit-game-templates/single/src/map-types.ts +9 -0
- package/lib/bundle/cli/kit-game-templates/single/src/resources/default-atlas.vyi +0 -0
- package/lib/bundle/cli/kit-game-templates/single/src/resources/default-macro.vymac +27 -0
- package/lib/bundle/cli/kit-game-templates/single/src/resources/main-map.vym +1 -0
- package/lib/bundle/cli/kit-game-templates/single/src/style.css +0 -0
- package/lib/bundle/cli/kit-game-templates/single/src/types/vylo.d.ts +3850 -0
- package/lib/bundle/cli/kit-game-templates/single/src/vendor/vylocity-game-engine/vylo.client.js +19 -0
- package/lib/bundle/cli/kit-game-templates/single/tsconfig.json +28 -0
- package/lib/cli/init.d.ts +15 -0
- package/lib/cli/init.d.ts.map +1 -0
- package/lib/cli/init.js +190 -0
- package/lib/cli/main.d.ts +13 -0
- package/lib/cli/main.d.ts.map +1 -0
- package/lib/cli/main.js +16 -0
- package/lib/cli/resource-builder.d.ts +6 -0
- package/lib/cli/resource-builder.d.ts.map +1 -0
- package/lib/cli/resource-builder.js +191 -0
- package/lib/cli/types.d.ts +11 -0
- package/lib/cli/types.d.ts.map +1 -0
- package/lib/cli/types.js +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/plugins/network/index.d.ts +7 -0
- package/lib/plugins/network/index.d.ts.map +1 -1
- package/lib/plugins/network/index.js +18 -5
- package/lib/types/vylo.d.ts +3848 -3848
- package/package.json +13 -5
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
// Enable latest features
|
|
4
|
+
"lib": ["ESNext", "DOM"],
|
|
5
|
+
"target": "ESNext",
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"baseUrl": "./",
|
|
8
|
+
"moduleDetection": "force",
|
|
9
|
+
"allowJs": true,
|
|
10
|
+
"resolveJsonModule": true,
|
|
11
|
+
|
|
12
|
+
// Bundler mode
|
|
13
|
+
"moduleResolution": "bundler",
|
|
14
|
+
"allowImportingTsExtensions": true,
|
|
15
|
+
"verbatimModuleSyntax": true,
|
|
16
|
+
"noEmit": true,
|
|
17
|
+
|
|
18
|
+
// Best practices
|
|
19
|
+
"strict": true,
|
|
20
|
+
"skipLibCheck": true,
|
|
21
|
+
"noFallthroughCasesInSwitch": true,
|
|
22
|
+
|
|
23
|
+
// Some stricter flags (disabled by default)
|
|
24
|
+
"noUnusedLocals": false,
|
|
25
|
+
"noUnusedParameters": false,
|
|
26
|
+
"noPropertyAccessFromIndexSignature": false
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import CopyBunPlugin from '@evitcastudio/copy-bun-plugin';
|
|
2
|
+
import Bun from 'bun';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
|
|
5
|
+
export const logMessage = (pLevel: string, pMessage: string): void => {
|
|
6
|
+
const colors: Record<string, string> = { error: '#c42847', info: '#ffa552' };
|
|
7
|
+
const levelFormatted = pLevel.charAt(0).toUpperCase() + pLevel.slice(1);
|
|
8
|
+
const color = colors[pLevel] || '#ffa552';
|
|
9
|
+
console.log(chalk.hex(color)(`[Builder][${levelFormatted}]`), `${pMessage}`);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
if (import.meta.main) {
|
|
13
|
+
const startStamp = Date.now();
|
|
14
|
+
|
|
15
|
+
await Bun.build({
|
|
16
|
+
entrypoints: ['./src/index.ts'],
|
|
17
|
+
naming: 'index.js',
|
|
18
|
+
outdir: './dist',
|
|
19
|
+
plugins: [
|
|
20
|
+
CopyBunPlugin({
|
|
21
|
+
verbose: true,
|
|
22
|
+
resources: [
|
|
23
|
+
{ src: './src/**/*.{html,css}', dst: 'dist/' },
|
|
24
|
+
{ src: './favicon.ico', dst: 'dist/' },
|
|
25
|
+
{ src: './src/vendor/vylocity-game-engine/vylo.client.js', dst: 'dist/vendor/vylocity-game-engine/' },
|
|
26
|
+
]
|
|
27
|
+
})
|
|
28
|
+
]
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const clientBuildTime = Date.now() - startStamp;
|
|
32
|
+
logMessage('info', `Client Build took: ${clientBuildTime}ms`);
|
|
33
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { logMessage } from './bun-build.ts';
|
|
2
|
+
|
|
3
|
+
const server = Bun.serve({
|
|
4
|
+
port: 8090,
|
|
5
|
+
fetch(req) {
|
|
6
|
+
const path = new URL(req.url).pathname;
|
|
7
|
+
// Default to index.html if the user hits the root URL
|
|
8
|
+
const target = path === "/" ? "/index.html" : path;
|
|
9
|
+
|
|
10
|
+
return new Response(Bun.file(`./dist${target}`));
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
// signal interrupt event
|
|
15
|
+
process.on('SIGINT', () => {
|
|
16
|
+
logMessage('info', 'Shutting down server...');
|
|
17
|
+
server.stop();
|
|
18
|
+
process.exit(0);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// signal termination event
|
|
22
|
+
process.on('SIGTERM', () => {
|
|
23
|
+
logMessage('info', 'Shutting down server...');
|
|
24
|
+
server.stop();
|
|
25
|
+
process.exit(0);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
logMessage('info', `Ready to play at http://localhost:8090`);
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{PROJECT_NAME}}",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"author": "{{PROJECT_AUTHOR}}",
|
|
5
|
+
"description": "",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "src/index.ts",
|
|
8
|
+
"engines": {
|
|
9
|
+
"bun": ">=1.1.0"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "kit build -v -i ./src/resources -o ./dist && bun run bun-build.ts",
|
|
13
|
+
"host": "bun run build && bun run bun-serve.ts"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [],
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@evitcastudio/kit": "latest"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@evitcastudio/copy-bun-plugin": "^1.0.4",
|
|
21
|
+
"@types/bun": "latest"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
|
6
|
+
<title>{{PROJECT_NAME}}</title>
|
|
7
|
+
<link rel="stylesheet" href="./style.css">
|
|
8
|
+
<script src="./vendor/vylocity-game-engine/vylo.client.js"></script>
|
|
9
|
+
<script type="module" src="./index.js"></script>
|
|
10
|
+
</head>
|
|
11
|
+
<body></body>
|
|
12
|
+
</html>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Kit } from '@evitcastudio/kit';
|
|
2
|
+
import resourceJSON from 'resource.json';
|
|
3
|
+
import './map-types';
|
|
4
|
+
|
|
5
|
+
await Kit.setResources(resourceJSON);
|
|
6
|
+
|
|
7
|
+
VYLO.setType('World', {
|
|
8
|
+
gameWidth: 1280,
|
|
9
|
+
gameHeight: 720,
|
|
10
|
+
mainMob: 'Mob/Player',
|
|
11
|
+
mainMap: '',
|
|
12
|
+
mainMacro: 'default-macro',
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
VYLO.setType('Client', {
|
|
16
|
+
hideFPS: false,
|
|
17
|
+
screenView: {
|
|
18
|
+
scaleTo: 'normal',
|
|
19
|
+
scaleNearest: true,
|
|
20
|
+
disableImageSmoothing: true
|
|
21
|
+
},
|
|
22
|
+
mainMap: '',
|
|
23
|
+
mainOutput: '',
|
|
24
|
+
mapView: {
|
|
25
|
+
preventAutoScale: true,
|
|
26
|
+
xPos: 0,
|
|
27
|
+
yPos: 0,
|
|
28
|
+
zoom: { x: 3, y: 3 },
|
|
29
|
+
anchor: { x: 0.5, y: 0.5 }
|
|
30
|
+
},
|
|
31
|
+
onConnect(this: Client) {
|
|
32
|
+
console.log('Client.onConnect');
|
|
33
|
+
this.mob.setPos(10, 10, 'main-map');
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
await VYLO.load();
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{"macros": [
|
|
2
|
+
{
|
|
3
|
+
"name":"move_north","key":"ArrowUp","keyDown":"startMove.call%28this%2C%22north%22%29%3B","keyUp":"endMove.call%28this%2C%22north%22%29%3B"
|
|
4
|
+
},
|
|
5
|
+
{
|
|
6
|
+
"name":"move_south","key":"ArrowDown","keyDown":"startMove.call%28this%2C%22south%22%29%3B","keyUp":"endMove.call%28this%2C%22south%22%29%3B"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name":"move_east","key":"ArrowRight","keyDown":"startMove.call%28this%2C%22east%22%29%3B","keyUp":"endMove.call%28this%2C%22east%22%29%3B"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name":"move_west","key":"ArrowLeft","keyDown":"startMove.call%28this%2C%22west%22%29%3B","keyUp":"endMove.call%28this%2C%22west%22%29%3B"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name":"move_north","key":"w","keyDown":"startMove.call%28this%2C%22north%22%29%3B","keyUp":"endMove.call%28this%2C%22north%22%29%3B"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name":"move_south","key":"s","keyDown":"startMove.call%28this%2C%22south%22%29%3B","keyUp":"endMove.call%28this%2C%22south%22%29%3B"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name":"move_east","key":"d","keyDown":"startMove.call%28this%2C%22east%22%29%3B","keyUp":"endMove.call%28this%2C%22east%22%29%3B"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name":"move_west","key":"a","keyDown":"startMove.call%28this%2C%22west%22%29%3B","keyUp":"endMove.call%28this%2C%22west%22%29%3B"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"map":{"name":"main-map","fCTLen":1,"fCOLen":1,"xMax":50,"yMax":50},"tTypes":[{"fC":"a","type":"Tile"}],"tiles":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","oTypes":[{"fC":"a","type":"none"}],"objects":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}
|
|
File without changes
|