From 78e602e2d9a2c92e758687838b4bf27408bd08f4 Mon Sep 17 00:00:00 2001 From: emexos Date: Wed, 18 Feb 2026 09:53:39 +0100 Subject: [PATCH 01/41] push --- .gitignore | 2 +- limine.conf | 2 +- src/kernel/arch/x86_64/exceptions/isr.c | 21 +++++++++++---------- src/kernel/arch/x86_64/gdt/gdt.c | 7 +++---- src/kernel/arch/x86_64/idt/idt.c | 6 ++++++ src/kernel/arch/x86_64/idt/idt.h | 3 ++- src/kernel/console/console.c | 1 + src/kernel/console/functions.h | 2 ++ src/kernel/kernel.c | 8 ++++---- src/kernel/user/_start.c | 3 ++- 10 files changed, 33 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 08f6d07..90c9602 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ build/ !build/src/kernel/console/functions/edit.c.o # Libraries/Dependencies -include/limine +include/limine/* #!include/limine/limine.h .DS_Store diff --git a/limine.conf b/limine.conf index 3f967fa..5c3f93f 100644 --- a/limine.conf +++ b/limine.conf @@ -1,4 +1,4 @@ -timeout: 10 # better for trying on real hardware +timeout: 1 # better for trying on real hardware kaslr: yes verbose: yes diff --git a/src/kernel/arch/x86_64/exceptions/isr.c b/src/kernel/arch/x86_64/exceptions/isr.c index 6d33c9a..16f7e60 100644 --- a/src/kernel/arch/x86_64/exceptions/isr.c +++ b/src/kernel/arch/x86_64/exceptions/isr.c @@ -12,16 +12,17 @@ void isr_install(void) } // set IDT Gates for ALL Exceptions - idt_set_gate(0, (u64)isr0, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(1, (u64)isr1, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(2, (u64)isr2, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(3, (u64)isr3, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(4, (u64)isr4, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(5, (u64)isr5, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(6, (u64)isr6, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(7, (u64)isr7, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(8, (u64)isr8, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); - idt_set_gate(9, (u64)isr9, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(0, (u64)isr0, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(1, (u64)isr1, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(2, (u64)isr2, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(3, (u64)isr3, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(4, (u64)isr4, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(5, (u64)isr5, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(6, (u64)isr6, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(7, (u64)isr7, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate_ist(8, (u64)isr8, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT, 1); + //idt_set_gate(8, (u64)isr8, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); + idt_set_gate(9, (u64)isr9, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); idt_set_gate(10, (u64)isr10, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); idt_set_gate(11, (u64)isr11, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); idt_set_gate(12, (u64)isr12, IDT_FLAG_PRESENT | IDT_FLAG_RING0 | IDT_FLAG_GATE_INT); diff --git a/src/kernel/arch/x86_64/gdt/gdt.c b/src/kernel/arch/x86_64/gdt/gdt.c index c79e83d..b3b21e6 100644 --- a/src/kernel/arch/x86_64/gdt/gdt.c +++ b/src/kernel/arch/x86_64/gdt/gdt.c @@ -8,10 +8,8 @@ static gdt_entry_t gdt[GDT_ENTRIES]; static tss_t tss; static gdt_ptr_t gdt_ptr; - -// Kernel stack for syscalls/interrupts (16KB, 16-byte aligned) -static u8 kernel_stack[16384] __attribute__((aligned(16))); - +static u8 kernel_stack[16384] __attribute__((aligned(16))); // 16KB +static u8 df_stack[8192] __attribute__((aligned(16))); // this time via ist1 // TODO: // move tss to kernel/arch/x64/tss/tss.c @@ -92,6 +90,7 @@ void tss_init(void) log("[TSS]", "init (Task State Segment)\n", d); memset(&tss, 0, sizeof(tss_t)); tss.rsp0 = (u64)kernel_stack + sizeof(kernel_stack); + tss.ist1 = (u64)df_stack + sizeof(df_stack); tss.iopb_offset = sizeof(tss_t); } diff --git a/src/kernel/arch/x86_64/idt/idt.c b/src/kernel/arch/x86_64/idt/idt.c index 77c6735..1c40a49 100644 --- a/src/kernel/arch/x86_64/idt/idt.c +++ b/src/kernel/arch/x86_64/idt/idt.c @@ -23,6 +23,12 @@ void idt_set_gate(u8 num, u64 handler, u8 flags) idt[num].reserved = 0; } +void idt_set_gate_ist(u8 num, u64 handler, u8 flags, u8 ist) +{ + idt_set_gate(num, handler, flags); + idt[num].ist = ist & 0x07; +} + void idt_load(void) { idt_ptr.limit = sizeof(idt) - 1; diff --git a/src/kernel/arch/x86_64/idt/idt.h b/src/kernel/arch/x86_64/idt/idt.h index 92f28a8..2aeb967 100644 --- a/src/kernel/arch/x86_64/idt/idt.h +++ b/src/kernel/arch/x86_64/idt/idt.h @@ -46,9 +46,10 @@ typedef struct { u64 rip, cs, rflags, rsp, ss; } __attribute__((packed)) cpu_state_t; -// Funktionen +// funktions void idt_init(void); void idt_set_gate(u8 num, u64 handler, u8 flags); +void idt_set_gate_ist(u8 num, u64 handler, u8 flags, u8 ist); void idt_load(void); #endif diff --git a/src/kernel/console/console.c b/src/kernel/console/console.c index 11e2479..0a1f174 100644 --- a/src/kernel/console/console.c +++ b/src/kernel/console/console.c @@ -35,6 +35,7 @@ console_cmd_t commands[MAX_CMDS] = { CMDENTRY(cmd_cyrillc_sumbol, "cyrillc-sumbol", "print cyrillic alphabet test", "cyrillc-sumbol"), CMDENTRY(cmd_latin_sumbol, "latin-sumbol", "print latin alphabet test", "latin-sumbol"), CMDENTRY(cmd_all_sumbol, "all-sumbol", "print latin and cyrillic alphabets", "all-sumbol"), + //CMDENTRY(cmd_edit, "edit", "edit any file", "edit "), CMDENTRY(cmd_keymap, "loadkeys", "change keyboard layout", "loadkeys [keymap]"), CMDENTRY(cmd_whoami, "whoami", "display current user", "whoami"), CMDENTRY(cmd_source, "source", "reload configuration", "source console"), diff --git a/src/kernel/console/functions.h b/src/kernel/console/functions.h index 1c2a980..fa13f77 100644 --- a/src/kernel/console/functions.h +++ b/src/kernel/console/functions.h @@ -50,6 +50,8 @@ FHDR(cmd_keymap); FHDR(cmd_reboot); FHDR(cmd_shutdown); +//edit.c +//FHDR(cmd_edit); // view.c FHDR(cmd_view); diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 1ecb381..81eb17f 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -90,7 +90,7 @@ klime_t *klime = NULL; void _start(void) { - if (framebuffer_request.response != NULL && + /*if (framebuffer_request.response != NULL && framebuffer_request.response->framebuffer_count > 0) { struct limine_framebuffer *fb = framebuffer_request.response->framebuffers[0]; u32 *pixels = (u32 *)fb->address; @@ -98,7 +98,7 @@ void _start(void) for (u64 i = 0; i < total; i++) { pixels[i] = 0x00FF0000; // red = kernel alive } - } + }*/ { // Initializing Boot screen theme_init(); setcontext(THEME_BOOTUP); // gets loaded over sbootup_theme until, sbootup == FLU @@ -109,11 +109,11 @@ void _start(void) // Temporaly before switchin to glime_t // emexOS start // Ensure that Limine base revision is supported and that we have a framebuffer - /*if (framebuffer_request.response == NULL || + if (framebuffer_request.response == NULL || framebuffer_request.response->framebuffer_count < 1) { printf("no response"); hcf(); // enable text mode - }*/ + } // Initialize framebuffer graphics struct limine_framebuffer *fb = framebuffer_request.response->framebuffers[0]; diff --git a/src/kernel/user/_start.c b/src/kernel/user/_start.c index 33796f6..7e6fc0f 100644 --- a/src/kernel/user/_start.c +++ b/src/kernel/user/_start.c @@ -17,11 +17,12 @@ void DEinit(void) print("\n", white()); + */ if (!login_authenticate()) { hcf(); } -*/ + // smth like desktop enviroment and userswitch are here console_init(); From bf0310b1781963d604ad6eb9f197225e85a5cd0d Mon Sep 17 00:00:00 2001 From: emexos Date: Wed, 18 Feb 2026 14:13:04 +0100 Subject: [PATCH 02/41] might fixed bootup screen --- Makefile | 3 +- shared/keymaps/RU.map | 62 +++++++++++++++++++++++++++++ shared/string/print.c | 7 ++++ shared/string/print.h | 3 ++ shared/ui/fonts/font_8x8.h | 10 ++--- shared/ui/fonts/font_8x8_bold.h | 8 ++-- src/drivers/ps2/keyboard/maps.c | 6 +++ src/kernel/console/console.c | 2 +- src/kernel/console/functions/text.c | 3 +- src/kernel/console/graph/dos.c | 14 ++++--- src/kernel/graph/graphics.c | 17 ++++---- src/kernel/graph/graphics.h | 1 + src/kernel/inits/init.c | 3 +- src/kernel/mem/meminclude.h | 1 + src/kernel/mem/sfence.h | 6 +++ 15 files changed, 120 insertions(+), 26 deletions(-) create mode 100644 shared/keymaps/RU.map create mode 100644 src/kernel/mem/sfence.h diff --git a/Makefile b/Makefile index 388a8c9..f06c8a9 100644 --- a/Makefile +++ b/Makefile @@ -79,7 +79,8 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @echo "[MOD] copying keymaps..." @cp shared/keymaps/US.map $(ISODIR)/boot/keymaps/ @cp shared/keymaps/DE.map $(ISODIR)/boot/keymaps/ -#@cp shared/keymaps/PL.map $(ISODIR)/boot/keymaps/ + @cp shared/keymaps/PL.map $(ISODIR)/boot/keymaps/ + @cp shared/keymaps/RU.map $(ISODIR)/boot/keymaps/ @xorriso -as mkisofs -b boot/limine/limine-bios-cd.bin \ -no-emul-boot -boot-load-size 4 -boot-info-table \ diff --git a/shared/keymaps/RU.map b/shared/keymaps/RU.map new file mode 100644 index 0000000..96e99c0 --- /dev/null +++ b/shared/keymaps/RU.map @@ -0,0 +1,62 @@ +# Russian JCUKEN keyboard layout (CP1251 encoding) + +# row 1 - numbers +0x02 = '1' '!' +0x03 = '2' '@' +0x04 = '3' '#' +0x05 = '4' '$' +0x06 = '5' '%' +0x07 = '6' '^' +0x08 = '7' '&' +0x09 = '8' '*' +0x0A = '9' '(' +0x0B = '0' ')' +0x0C = '-' '_' +0x0D = '=' '+' + +# row 2 - JCUKEN +0x10 = '\xE9' '\xC9' +0x11 = '\xF6' '\xD6' +0x12 = '\xF3' '\xD3' +0x13 = '\xEA' '\xCA' +0x14 = '\xE5' '\xC5' +0x15 = '\xED' '\xCD' +0x16 = '\xE3' '\xC3' +0x17 = '\xF8' '\xD8' +0x18 = '\xF9' '\xD9' +0x19 = '\xE7' '\xC7' +0x1A = '\xF5' '\xD5' +0x1B = '\xFA' '\xDA' + +# row 3 +0x1E = '\xF4' '\xD4' +0x1F = '\xFB' '\xDB' +0x20 = '\xE2' '\xC2' +0x21 = '\xE0' '\xC0' +0x22 = '\xEF' '\xCF' +0x23 = '\xF0' '\xD0' +0x24 = '\xEE' '\xCE' +0x25 = '\xEB' '\xCB' +0x26 = '\xE4' '\xC4' +0x27 = '\xE6' '\xC6' +0x28 = '\xFD' '\xDD' + +# row 4 +0x2C = '\xFF' '\xDF' +0x2D = '\xF7' '\xD7' +0x2E = '\xF1' '\xD1' +0x2F = '\xEC' '\xCC' +0x30 = '\xE8' '\xC8' +0x31 = '\xF2' '\xD2' +0x32 = '\xFC' '\xDC' +0x33 = '\xE1' '\xC1' +0x34 = '\xFE' '\xDE' + +# backtick = ё/Ё +0x29 = '\xB8' '\xA8' + +# special keys +0x0E = '\b' '\b' +0x0F = '\t' '\t' +0x1C = '\n' '\n' +0x39 = ' ' ' ' diff --git a/shared/string/print.c b/shared/string/print.c index dce8ecb..52f6626 100644 --- a/shared/string/print.c +++ b/shared/string/print.c @@ -6,6 +6,7 @@ #include +// made by Dexoron Feb. 18, 2026 // Decode one UTF-8 sequence and return pointer to next byte. // On invalid data, returns '?' and advances by one byte. static const char *utf8_next_codepoint(const char *p, u32 *codepoint) @@ -205,6 +206,12 @@ void string(const char *str, u32 color) printf("%s", str); // prints everything from the os terminal to the host-terminal } +// console print +void cprintf(const char *str, u32 color) +{ + string(str, color); +} + void IntToString(int value, char *buffer) { char temp[11]; diff --git a/shared/string/print.h b/shared/string/print.h index a1a9829..1a2616d 100644 --- a/shared/string/print.h +++ b/shared/string/print.h @@ -14,4 +14,7 @@ void printInt(int value, u32 color); void reset_cursor(void); +// i will slowly need to divide the bootscreen logs and console text... +void cprintf(const char *str, u32 color); + #endif diff --git a/shared/ui/fonts/font_8x8.h b/shared/ui/fonts/font_8x8.h index 3b1dc58..7fe7ae2 100644 --- a/shared/ui/fonts/font_8x8.h +++ b/shared/ui/fonts/font_8x8.h @@ -142,16 +142,16 @@ static const u8 font_8x8[256][8] = { // German (custom slots) - [0x80] = { 0x00,0x00,0x28,0x00,0x38,0x04,0x3C,0x44}, // ä - [0x81] = { 0x00,0x00,0x28,0x00,0x38,0x44,0x44,0x38}, // ö - [0x82] = { 0x00,0x00,0x28,0x00,0x44,0x44,0x44,0x3C}, // ü - [0x83] = { 0x00,0x00,0x38,0x44,0x40,0x38,0x40,0x7C}, // ß + [0x80] = { 0x28,0x00,0x38,0x04,0x3C,0x44,0x3C,0x00}, // ä + [0x81] = { 0x28,0x00,0x38,0x44,0x44,0x44,0x38,0x00}, // ö + [0x82] = { 0x28,0x00,0x44,0x44,0x44,0x44,0x3C,0x00}, // ü + [0x83] = { 0x00,0x38,0x44,0x40,0x38,0x40,0x7C,0x00}, // ß // Russian (CP1251 code points) [0xA8] = { 0x7c, 0x40, 0x40, 0x78, 0x40, 0x40, 0x7c, 0x10 }, // Ё [0xB8] = { 0x28, 0x00, 0x38, 0x44, 0x78, 0x40, 0x38, 0x00 }, // ё - + [0xC0] = { 0x10, 0x28, 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00 }, // А [0xC1] = { 0x78, 0x40, 0x40, 0x78, 0x44, 0x44, 0x78, 0x00 }, // Б [0xC2] = { 0x78, 0x44, 0x44, 0x78, 0x44, 0x44, 0x78, 0x00 }, // В diff --git a/shared/ui/fonts/font_8x8_bold.h b/shared/ui/fonts/font_8x8_bold.h index 90c11bb..99f6f4c 100644 --- a/shared/ui/fonts/font_8x8_bold.h +++ b/shared/ui/fonts/font_8x8_bold.h @@ -141,10 +141,10 @@ static const u8 font_8x8_bold[256][8] = { [0x007E] = {0x76,0xdc,0x00,0x00,0x00,0x00,0x00,0x00}, // ~ // German (custom slots) - [0x80] = { 0x00,0x00,0x28,0x00,0x38,0x04,0x3C,0x44}, // ä - [0x81] = { 0x00,0x00,0x28,0x00,0x38,0x44,0x44,0x38}, // ö - [0x82] = { 0x00,0x00,0x28,0x00,0x44,0x44,0x44,0x3C}, // ü - [0x83] = { 0x00,0x00,0x38,0x44,0x40,0x38,0x40,0x7C}, // ß + [0x80] = { 0x28,0x00,0x38,0x04,0x3C,0x44,0x3C,0x00}, // ä + [0x81] = { 0x28,0x00,0x38,0x44,0x44,0x44,0x38,0x00}, // ö + [0x82] = { 0x28,0x00,0x44,0x44,0x44,0x44,0x3C,0x00}, // ü + [0x83] = { 0x00,0x38,0x44,0x40,0x38,0x40,0x7C,0x00}, // ß // Russian (CP1251 code points) [0xA8] = { 0x7c, 0x40, 0x40, 0x78, 0x40, 0x40, 0x7c, 0x10 }, // Ё diff --git a/src/drivers/ps2/keyboard/maps.c b/src/drivers/ps2/keyboard/maps.c index e0b5d5b..1f961bf 100644 --- a/src/drivers/ps2/keyboard/maps.c +++ b/src/drivers/ps2/keyboard/maps.c @@ -33,6 +33,12 @@ int keymap_init(void) { return 0; } + if (keymap_load_from_module("RU", ¤t_keymap) == 0) { + str_copy(current_keymap_name, "RU"); + log("[KEYMAP]", "Loaded default: RU\n", d); + return 0; + } + log("[KEYMAP]", "ERROR: No keymap could be loaded!\n", warning); return -1; } diff --git a/src/kernel/console/console.c b/src/kernel/console/console.c index 0a1f174..038a923 100644 --- a/src/kernel/console/console.c +++ b/src/kernel/console/console.c @@ -34,7 +34,7 @@ console_cmd_t commands[MAX_CMDS] = { CMDENTRY(cmd_font, "font", "change console font", "font [0-1]"), CMDENTRY(cmd_cyrillc_sumbol, "cyrillc-sumbol", "print cyrillic alphabet test", "cyrillc-sumbol"), CMDENTRY(cmd_latin_sumbol, "latin-sumbol", "print latin alphabet test", "latin-sumbol"), - CMDENTRY(cmd_all_sumbol, "all-sumbol", "print latin and cyrillic alphabets", "all-sumbol"), + CMDENTRY(cmd_all_sumbol, "symbols", "print latin and cyrillic alphabets", "symbols"), //CMDENTRY(cmd_edit, "edit", "edit any file", "edit "), CMDENTRY(cmd_keymap, "loadkeys", "change keyboard layout", "loadkeys [keymap]"), CMDENTRY(cmd_whoami, "whoami", "display current user", "whoami"), diff --git a/src/kernel/console/functions/text.c b/src/kernel/console/functions/text.c index 66f5dd9..d905dae 100644 --- a/src/kernel/console/functions/text.c +++ b/src/kernel/console/functions/text.c @@ -117,7 +117,8 @@ FHDR(cmd_all_sumbol) print("AEOEUESS: ÄÖÜ äöü ß\n", GFX_WHITE); print("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\n", GFX_WHITE); print("абвгдеёжзийклмнопрстуфхцчшщъыьэюя\n", GFX_WHITE); - print("0123456789 !?.,:;+-*/=_()[]{}@#%&$\"'<>\\|`\n", GFX_WHITE); + print("0123456789 !?.,:;+-*/=_()[]{}@#%&$°^\"'<>\\|~`§€\n", GFX_WHITE); + print("«∑€®†Ω¨⁄øπ•±å‚∂ƒ©ªº∆@œæ‘≤¥≈ç√∫~µ∞…–¡“¶¢≠¿'\n", GFX_WHITE); } /*FHDR(cmd_help) diff --git a/src/kernel/console/graph/dos.c b/src/kernel/console/graph/dos.c index 0588fbb..5a6889f 100644 --- a/src/kernel/console/graph/dos.c +++ b/src/kernel/console/graph/dos.c @@ -47,18 +47,20 @@ void console_window_check_scroll(void) u32 fb_w = get_fb_width(); u32 pitch_dwords = get_fb_pitch() / 4; u32 *fb = get_framebuffer(); + u32 bytes_per_row = fb_w * sizeof(u32); - // move content up by line_height + // fast scroll: copy row-by-row with memcpy instead of pixel loop (huge speedup on amd) for (u32 y = banner_h + line_height; y < fb_h; y++) { - for (u32 x = 0; x < fb_w; x++) { - fb[(y - line_height) * pitch_dwords + x] = fb[y * pitch_dwords + x]; - } + memcpy(fb + (y - line_height) * pitch_dwords, + fb + y * pitch_dwords, + bytes_per_row); } - // cls bottom line + // clear bottom lines for (u32 y = fb_h - line_height; y < fb_h; y++) { + u32 *row = fb + y * pitch_dwords; for (u32 x = 0; x < fb_w; x++) { - fb[y * pitch_dwords + x] = CONSOLESCREEN_BG_COLOR; + row[x] = CONSOLESCREEN_BG_COLOR; } } diff --git a/src/kernel/graph/graphics.c b/src/kernel/graph/graphics.c index 1d239f5..d9fd5df 100644 --- a/src/kernel/graph/graphics.c +++ b/src/kernel/graph/graphics.c @@ -57,19 +57,22 @@ void scroll_up(u32 lines) { u32 pixels_to_scroll = lines; u32 pitch_dwords = fb_pitch / 4; + u32 bytes_per_row = fb_width * sizeof(u32); + u32 bg_color = bg(); - // Move framebuffer content up + // move framebuffer content up for (u32 y = pixels_to_scroll; y < fb_height; y++) { - for (u32 x = 0; x < fb_width; x++) { - framebuffer[(y - pixels_to_scroll) * pitch_dwords + x] = - framebuffer[y * pitch_dwords + x]; - } + memcpy(framebuffer + (y - pixels_to_scroll) * pitch_dwords, + framebuffer + y * pitch_dwords, + bytes_per_row); } - // Clear bottom lines + // clear bottom lines for (u32 y = fb_height - pixels_to_scroll; y < fb_height; y++) { + u32 *row = framebuffer + y * pitch_dwords; for (u32 x = 0; x < fb_width; x++) { - framebuffer[y * pitch_dwords + x] = bg(); + //framebuffer[y * pitch_dwords + x] = bg(); + row[x] = bg_color; } } } diff --git a/src/kernel/graph/graphics.h b/src/kernel/graph/graphics.h index a6b5ce8..dbc3345 100644 --- a/src/kernel/graph/graphics.h +++ b/src/kernel/graph/graphics.h @@ -7,6 +7,7 @@ #include #include #include +#include extern u32 *framebuffer; extern u32 fb_width; diff --git a/src/kernel/inits/init.c b/src/kernel/inits/init.c index 798dd20..c043e6d 100644 --- a/src/kernel/inits/init.c +++ b/src/kernel/inits/init.c @@ -16,7 +16,8 @@ void keymaps_load(void) // load all keymaps limine_module_load("US.map", "/emr/config/keymaps/US.map"); limine_module_load("DE.map", "/emr/config/keymaps/DE.map"); - //limine_module_load("PL.map", "/emr/config/keymaps/PL.map"); + limine_module_load("PL.map", "/emr/config/keymaps/PL.map"); + limine_module_load("RU.map", "/emr/config/keymaps/RU.map"); } diff --git a/src/kernel/mem/meminclude.h b/src/kernel/mem/meminclude.h index 0036b7a..ce660ae 100644 --- a/src/kernel/mem/meminclude.h +++ b/src/kernel/mem/meminclude.h @@ -7,5 +7,6 @@ #include #include #include +#include "sfence.h" #endif diff --git a/src/kernel/mem/sfence.h b/src/kernel/mem/sfence.h new file mode 100644 index 0000000..2959c2b --- /dev/null +++ b/src/kernel/mem/sfence.h @@ -0,0 +1,6 @@ +#pragma once + +static inline void store_fence() +{ + asm volatile("sfence" ::: "memory"); +} From 94076a4623cf0cd1d1eebe47b53e6bed06913c78 Mon Sep 17 00:00:00 2001 From: emexos Date: Wed, 18 Feb 2026 18:27:23 +0100 Subject: [PATCH 03/41] [KPROC] moved the kproc logic to kernel_processes, [FM] moved fm to processes, [BOOT] bootscreen as a process --- shared/string/print.c | 2 +- src/kernel/console/console.h | 4 +- src/kernel/console/cursor.c | 1 - src/kernel/console/functions/text.c | 2 +- src/kernel/console/graph/dos.c | 2 +- src/kernel/console/graph/uno.c | 1 - src/kernel/console/shell_screen.c | 4 +- src/kernel/kernel.c | 24 ++-- src/kernel/kernel_processes/bootscreen/boot.c | 36 ++++++ src/kernel/kernel_processes/bootscreen/boot.h | 10 ++ src/kernel/kernel_processes/dump.c | 16 +++ .../{graph => kernel_processes/fm}/fm.c | 8 ++ .../{graph => kernel_processes/fm}/fm.h | 0 src/kernel/kernel_processes/kernel/gen.h | 34 +++++ src/kernel/kernel_processes/kernel/kproc.c | 56 +++++++++ src/kernel/kernel_processes/kernel/procs.c | 6 + src/kernel/kernel_processes/kernel/user.c | 56 +++++++++ src/kernel/kernel_processes/loader.c | 110 ++++++++++++++++ src/kernel/kernel_processes/loader.h | 65 ++++++++++ src/kernel/kproc.c | 118 ------------------ src/kernel/user/_start.c | 1 + src/kernel/user/gen.h | 4 +- 22 files changed, 418 insertions(+), 142 deletions(-) create mode 100644 src/kernel/kernel_processes/bootscreen/boot.c create mode 100644 src/kernel/kernel_processes/bootscreen/boot.h create mode 100644 src/kernel/kernel_processes/dump.c rename src/kernel/{graph => kernel_processes/fm}/fm.c (94%) rename src/kernel/{graph => kernel_processes/fm}/fm.h (100%) create mode 100644 src/kernel/kernel_processes/kernel/gen.h create mode 100644 src/kernel/kernel_processes/kernel/kproc.c create mode 100644 src/kernel/kernel_processes/kernel/procs.c create mode 100644 src/kernel/kernel_processes/kernel/user.c create mode 100644 src/kernel/kernel_processes/loader.c create mode 100644 src/kernel/kernel_processes/loader.h delete mode 100644 src/kernel/kproc.c diff --git a/shared/string/print.c b/shared/string/print.c index 52f6626..2a80051 100644 --- a/shared/string/print.c +++ b/shared/string/print.c @@ -1,6 +1,6 @@ #include "print.h" #include -#include +#include #include //#include diff --git a/src/kernel/console/console.h b/src/kernel/console/console.h index 26b253a..5fd5491 100644 --- a/src/kernel/console/console.h +++ b/src/kernel/console/console.h @@ -2,14 +2,14 @@ #define CONSOLE_H #include -#include +#include #include #include #include #include "graph/uno.h" #include "graph/dos.h" #include -#include +//#include #include #include #include diff --git a/src/kernel/console/cursor.c b/src/kernel/console/cursor.c index bb98a21..509e550 100644 --- a/src/kernel/console/cursor.c +++ b/src/kernel/console/cursor.c @@ -1,6 +1,5 @@ #include "console.h" #include -#include static int cursor_visible = 1; static u32 cursor_blink_counter = 0; diff --git a/src/kernel/console/functions/text.c b/src/kernel/console/functions/text.c index d905dae..d926349 100644 --- a/src/kernel/console/functions/text.c +++ b/src/kernel/console/functions/text.c @@ -118,7 +118,7 @@ FHDR(cmd_all_sumbol) print("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\n", GFX_WHITE); print("абвгдеёжзийклмнопрстуфхцчшщъыьэюя\n", GFX_WHITE); print("0123456789 !?.,:;+-*/=_()[]{}@#%&$°^\"'<>\\|~`§€\n", GFX_WHITE); - print("«∑€®†Ω¨⁄øπ•±å‚∂ƒ©ªº∆@œæ‘≤¥≈ç√∫~µ∞…–¡“¶¢≠¿'\n", GFX_WHITE); + print("«∑€®†Ω¨⁄øπ•±å‚∂ƒ©ªº∆@œæ‘≤¥≈ç√∫~µ∞…–¡“¶¢≠¿'£\n", GFX_WHITE); } /*FHDR(cmd_help) diff --git a/src/kernel/console/graph/dos.c b/src/kernel/console/graph/dos.c index 5a6889f..8d0ecdc 100644 --- a/src/kernel/console/graph/dos.c +++ b/src/kernel/console/graph/dos.c @@ -1,7 +1,7 @@ #include "dos.h" #include "uno.h" #include -#include +#include void console_window_init(void) { cursor_x = CONSOLE_PADDING_X; diff --git a/src/kernel/console/graph/uno.c b/src/kernel/console/graph/uno.c index 692a649..31e3132 100644 --- a/src/kernel/console/graph/uno.c +++ b/src/kernel/console/graph/uno.c @@ -1,6 +1,5 @@ #include "uno.h" #include -#include #include #include #include diff --git a/src/kernel/console/shell_screen.c b/src/kernel/console/shell_screen.c index 56b1d13..53722dd 100644 --- a/src/kernel/console/shell_screen.c +++ b/src/kernel/console/shell_screen.c @@ -1,6 +1,6 @@ #include "console.h" -#include "graph/uno.h" -#include "graph/dos.h" +//#include "graph/uno.h" +//#include "graph/dos.h" #include void shell_clear_screen(u32 color) diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 81eb17f..2dc1f2e 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -1,18 +1,15 @@ #include #include -#include #include #include +#include #include #include #include //int init_boot_log = -1; // boot logs - -// Drivers #include - // Dual Slot Kernel System #include @@ -39,8 +36,6 @@ #include //Desktop Enviroment #include - - // executables #include @@ -55,16 +50,16 @@ klime_t *klime = NULL; #if ENABLE_ULIME #include #include + #include + #include + #include + #include scheduler_t *scheduler = NULL; #define SCHEDQUANT 20 proc_manager_t *proc_mgr = NULL; ulime_t *ulime = NULL; #endif - -//debug -#include - //vFS & fs #include #include @@ -118,9 +113,10 @@ void _start(void) // Initialize framebuffer graphics struct limine_framebuffer *fb = framebuffer_request.response->framebuffers[0]; graphics_init(fb); - printf("\ninit graphics, draw logo\n"); //draw_logo(); + kproc_loader_init(); + init_bootscreen(); fm_init(); clear(bg()); cursor_x = 0; @@ -353,8 +349,10 @@ void _start(void) } //hcf(); - extern void kproc(void); - kproc(); + //extern void kproc(void); + genprocs(); + proc_list_procs(proc_mgr); + dump_kprocesses(); DEinit(); //should not reach here diff --git a/src/kernel/kernel_processes/bootscreen/boot.c b/src/kernel/kernel_processes/bootscreen/boot.c new file mode 100644 index 0000000..b7b6c02 --- /dev/null +++ b/src/kernel/kernel_processes/bootscreen/boot.c @@ -0,0 +1,36 @@ +#include "boot.h" +#include + +// all the print function will be migrated to this file +// because currently the console is a part of the screen (like console_scrollup) +// and this is bad thats why i create kernel processes and the bootscreen process +// which will handle all bootup messages and also the scroll up (and mb login) + +static int bs_init(kproc_t *self) { + (void)self; + printf("[BOOTSCREEN] init\n"); + return KPROC_EFINE; +} + +static int bs_tick(kproc_t *self) { + (void)self; + return KPROC_EFINE; +} + +static void bs_fini(kproc_t *self) { + (void)self; +} + +kproc_t bootscreen_proc = { + .name = "bootscreen", + .state = KPROC_STATE_READY, + .flags = KPROC_FLAG_EARLY | KPROC_FLAG_CRITICAL | KPROC_FLAG_PERMANENT, + .priority = 255, + .init = bs_init, + .tick = bs_tick, + .fini = bs_fini, +}; + +void init_bootscreen(void) { + kproc_register_and_start(&bootscreen_proc); +} diff --git a/src/kernel/kernel_processes/bootscreen/boot.h b/src/kernel/kernel_processes/bootscreen/boot.h new file mode 100644 index 0000000..9f37305 --- /dev/null +++ b/src/kernel/kernel_processes/bootscreen/boot.h @@ -0,0 +1,10 @@ +#ifndef BOOT_H +#define BOOT_H + +#include + +extern kproc_t bootscreen_proc; + +void init_bootscreen(void); + +#endif diff --git a/src/kernel/kernel_processes/dump.c b/src/kernel/kernel_processes/dump.c new file mode 100644 index 0000000..4b61492 --- /dev/null +++ b/src/kernel/kernel_processes/dump.c @@ -0,0 +1,16 @@ +#include "loader.h" + +#include +#include + +// only reason that this is in a extra file is cuz i want to make it more advanced... but not yet... + +void dump_kprocesses(void) { + printf("[KPROC] table (%d/%d)\n", kproc_cnt, KPROC_MAX); + for (int i = 0; i < kproc_cnt; i++) { + kproc_t *p = kproc_table[i]; + if (!p) continue; + printf(" [%d] %-20s (%-8s) (%d) flags=0x%02X\n", + i, p->name, state_str(p->state), p->priority, p->flags); + } +} diff --git a/src/kernel/graph/fm.c b/src/kernel/kernel_processes/fm/fm.c similarity index 94% rename from src/kernel/graph/fm.c rename to src/kernel/kernel_processes/fm/fm.c index 85e7654..5fbd447 100644 --- a/src/kernel/graph/fm.c +++ b/src/kernel/kernel_processes/fm/fm.c @@ -7,6 +7,14 @@ static font_type_t current_font_type = FONT_8X8_BOLD; // default font static const font_t *current_font = NULL; +/* + * the font manager doesnt use the kernel process manager + * but its still a 'process' in kinda way... like its used for graphics + */ + + /* + * unicode_to_glyph_index made by dexoron 18.2.2026 + */ static u32 unicode_to_glyph_index(u32 cp) { if (cp == 0x00A0) return (u32)' '; // NBSP diff --git a/src/kernel/graph/fm.h b/src/kernel/kernel_processes/fm/fm.h similarity index 100% rename from src/kernel/graph/fm.h rename to src/kernel/kernel_processes/fm/fm.h diff --git a/src/kernel/kernel_processes/kernel/gen.h b/src/kernel/kernel_processes/kernel/gen.h new file mode 100644 index 0000000..5a44279 --- /dev/null +++ b/src/kernel/kernel_processes/kernel/gen.h @@ -0,0 +1,34 @@ +#ifndef GEN_HEADER +#define GEN_HEADER + + +#include "../loader.h" + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#if ENABLE_ULIME +extern proc_manager_t *proc_mgr; +extern ulime_t *ulime; +#endif + +void kproc(void); +void uproc(void); +void genprocs(void); + +#endif diff --git a/src/kernel/kernel_processes/kernel/kproc.c b/src/kernel/kernel_processes/kernel/kproc.c new file mode 100644 index 0000000..07d4023 --- /dev/null +++ b/src/kernel/kernel_processes/kernel/kproc.c @@ -0,0 +1,56 @@ +#include "gen.h" + +/*#if ENABLE_ULIME +extern proc_manager_t *proc_mgr; +extern ulime_t *ulime; +#endif +*/ + + +/* +// create a process for the kernel +// if proc: kernel == quit the system stops/halt/crashes idk +void create_kernel_process(ulime_t *ulime, proc_manager_t *proc_mgr) +{ + ulime_proc_t *kernel_proc = ulime_proc_create( + ulime, + (u8*)"kernel", + (u64)kmain + ); + + kernel_proc->priority = 255; + kernel_proc->state = PROC_READY; + kernel_proc->is_critical = 1; + + // register process manager + proc_add(proc_mgr, kernel_proc); + + log("[KPROC]", "Kernel process created\n", 0); +} +*/ + +void kproc(void ) { + + #if ENABLE_ULIME && RUNTESTS // set to 1 to enable test + //BOOTUP_PRINT("test RUNTESTS block\n", white()); + if (proc_mgr){ + ulime_proc_t *p1 = proc_create_proc(proc_mgr, (u8*)KERNELPROC, KERNELSPACE, KERNELPRIORITY); + ulime_proc_t *p2 = proc_create_proc(proc_mgr, (u8*)"__rt", 0x40001000, 2); // run tests + + log("[KPROC]", "creating test processes\n", d); + if (p1) log("[KPROC]", "created kernel\n", d); + if (p2) log("[KPROC]", "created __rt\n", d); + + //proc_list_procs(proc_mgr); + + //log("[TEST_CODE]", "loading test code:\n", d); + //ulime_load_program(p4, test_code, sizeof(test_code)); + //log("[TEST_CODE]", "test code loaded successfully\n", d); + //JumpToUserspace(p4); + log("[KPROC]", "Kernel processes created\n", d); + } + //proc_list_procs(proc_mgr); + #endif + +}; +//void kproc(void); diff --git a/src/kernel/kernel_processes/kernel/procs.c b/src/kernel/kernel_processes/kernel/procs.c new file mode 100644 index 0000000..fd7703f --- /dev/null +++ b/src/kernel/kernel_processes/kernel/procs.c @@ -0,0 +1,6 @@ +#include "gen.h" + +void genprocs(void) { + kproc(); + uproc(); +} diff --git a/src/kernel/kernel_processes/kernel/user.c b/src/kernel/kernel_processes/kernel/user.c new file mode 100644 index 0000000..b67f5fb --- /dev/null +++ b/src/kernel/kernel_processes/kernel/user.c @@ -0,0 +1,56 @@ +#include "gen.h" +#define USERPROGRAMMSPACE 0x40004200 +#define USERPROGRAMMPRIORITY 1 + +void uproc(void ) { + #if ENABLE_ULIME && RUNTESTS // set to 1 to enable test + if ( + proc_mgr && + ulime && + module_request.response && + module_request.response->module_count + > 0){ + + ulime_proc_t *p4 = proc_create_proc(proc_mgr, (u8*)USERPROC, USERSPACE, USERPRIORITY); + if (p4) log("[KPROC]", "created user process\n", d); + + struct limine_module_response *mod_resp = module_request.response; + struct limine_file *hello_mod = NULL; + + for (u64 i = 0; i < mod_resp->module_count; i++) { + const char *path = mod_resp->modules[i]->path; + if (str_contains((char*)path, "hello.elf")) { + hello_mod = mod_resp->modules[i]; + break; + } + } + + if (hello_mod) + { + log("[ELF]", "found hello.elf module\n", d); + + ulime_proc_t *proc = proc_create_proc(proc_mgr, (u8*)"hello", USERPROGRAMMSPACE, USERPROGRAMMPRIORITY); + if (proc) + { + u8 *elf_data = (u8*)hello_mod->address; + u64 elf_size = hello_mod->size; + + if (elf_load(proc, elf_data, elf_size) == 0) { + ulime->ptr_proc_curr = proc; + log("[ELF]", "jumping to userspace\n", d); + u64 user_rsp = (proc->stack_base + proc->stack_size - 16) & ~0xFULL; + + verify_page_permissions(proc->ulime->hpr, proc->entry_point, "Code page"); + verify_page_permissions(proc->ulime->hpr, user_rsp, "Stack page"); + verify_gdt_setup(); + //JumpToUserspace(proc); + } + } + } else { + log("[ELF]", "hello.elf not found in ramfs\n", error); + } + } + //proc_list_procs(proc_mgr); + #endif + +}; diff --git a/src/kernel/kernel_processes/loader.c b/src/kernel/kernel_processes/loader.c new file mode 100644 index 0000000..fd57bf0 --- /dev/null +++ b/src/kernel/kernel_processes/loader.c @@ -0,0 +1,110 @@ +#include "loader.h" + +#include +#include + +kproc_t *kproc_table[KPROC_MAX]; +int kproc_cnt = 0; +int kproc_init_done = 0; + +const char *state_str(u8 s) { + switch (s) { + case KPROC_STATE_EMPTY: return "EMPTY"; + case KPROC_STATE_READY: return "READY"; + case KPROC_STATE_RUNNING: return "RUNNING"; + case KPROC_STATE_BLOCKED: return "BLOCKED"; + case KPROC_STATE_DONE: return "DONE"; + case KPROC_STATE_FAILED: return "FAILED"; + default: return "?"; + } +} + + +void kproc_loader_init(void) { + for (int i = 0; i < KPROC_MAX; i++) + kproc_table[i] = NULL; + kproc_cnt = 0; + kproc_init_done = 1; +} +int kproc_register(kproc_t *proc) { + if (!proc) return -1; + if (!kproc_init_done) kproc_loader_init(); + if (kproc_cnt >= KPROC_MAX) return -1; + + int id = kproc_cnt; + proc->id = (u32)id; + proc->state = KPROC_STATE_READY; + + kproc_table[id] = proc; + kproc_cnt++; + return id; +} +int kproc_start(u32 id) { + if (id >= (u32)kproc_cnt) return KPROC_ERROR; + kproc_t *p = kproc_table[id]; + if (!p) return KPROC_ERROR; + if (p->state != KPROC_STATE_READY) return KPROC_ERROR; + + p->state = KPROC_STATE_RUNNING; + + if (p->init) { + int r = p->init(p); + if (r == KPROC_ERROR) { + p->state = KPROC_STATE_FAILED; + if (p->fini) p->fini(p); + return KPROC_ERROR; + } + } + return KPROC_EFINE; +} +int kproc_register_and_start(kproc_t *proc) { + int id = kproc_register(proc); + if (id < 0) return -1; + if (kproc_start((u32)id) != KPROC_EFINE) return -1; + return id; +} +int kproc_tick(u32 id) { + if (id >= (u32)kproc_cnt) return KPROC_ERROR; + kproc_t *p = kproc_table[id]; + if (!p || p->state != KPROC_STATE_RUNNING) return KPROC_ERROR; + if (!p->tick) return KPROC_EFINE; + + int r = p->tick(p); + + if (r == KPROC_ERROR) { + p->state = KPROC_STATE_FAILED; + if (p->fini) p->fini(p); + } else if (r != KPROC_EFINE && r != KPROC_YIELD) { + if (!(p->flags & KPROC_FLAG_PERMANENT)) { + p->state = KPROC_STATE_DONE; + if (p->fini) p->fini(p); + } + } + return r; +} +void kproc_stop(u32 id) { + if (id >= (u32)kproc_cnt) return; + kproc_t *p = kproc_table[id]; + if (!p || p->state == KPROC_STATE_DONE) return; + if (p->fini) p->fini(p); + p->state = KPROC_STATE_DONE; +} + + +kproc_t *kproc_get(u32 id) { + if (id >= (u32)kproc_cnt) return NULL; + return kproc_table[id]; +} +kproc_t *kproc_find_by_name(const char *name) { + if (!name) return NULL; + for (int i = 0; i < kproc_cnt; i++) { + if (kproc_table[i] && str_equals(kproc_table[i]->name, name)) + return kproc_table[i]; + } + return NULL; +} + + +int count_kernelprocesses(void) { + return kproc_cnt; +} diff --git a/src/kernel/kernel_processes/loader.h b/src/kernel/kernel_processes/loader.h new file mode 100644 index 0000000..dc2602d --- /dev/null +++ b/src/kernel/kernel_processes/loader.h @@ -0,0 +1,65 @@ +#ifndef KPROC_LOADER_H +#define KPROC_LOADER_H + +#include + +#define KPROC_MAX 255 +#define KPROC_NAME_LEN 64 + +// states +#define KPROC_STATE_EMPTY 0 +#define KPROC_STATE_READY 1 +#define KPROC_STATE_RUNNING 2 +#define KPROC_STATE_BLOCKED 3 +#define KPROC_STATE_DONE 4 +#define KPROC_STATE_FAILED 5 + +// flags +#define KPROC_FLAG_NONE 0x00 +#define KPROC_FLAG_EARLY 0x01 +#define KPROC_FLAG_CRITICAL 0x02 +#define KPROC_FLAG_PERMANENT 0x04 + +// return codes +#define KPROC_EFINE 0 +#define KPROC_ERROR -1 +#define KPROC_YIELD 1 + +typedef struct kproc kproc_t; + +typedef int (*kproc_init_fn)(kproc_t *self); +typedef int (*kproc_tick_fn)(kproc_t *self); +typedef void (*kproc_fini_fn)(kproc_t *self); + +struct kproc { + char name[KPROC_NAME_LEN]; + u8 state; + u8 flags; + u8 priority; + u8 _pad; + kproc_init_fn init; + kproc_tick_fn tick; + kproc_fini_fn fini; + void *priv; + u32 id; +}; + +extern kproc_t *kproc_table[KPROC_MAX]; +extern int kproc_cnt; +extern int kproc_init_done; + +const char *state_str(u8 s); + +void kproc_loader_init(void); +int kproc_register(kproc_t *proc); +int kproc_start(u32 id); +int kproc_register_and_start(kproc_t *proc); +int kproc_tick(u32 id); +void kproc_stop(u32 id); +kproc_t *kproc_get(u32 id); +kproc_t *kproc_find_by_name(const char *name); + +int count_kprocesses(void); +void dump_kprocesses(void); + +#endif diff --git a/src/kernel/kproc.c b/src/kernel/kproc.c deleted file mode 100644 index 40426f4..0000000 --- a/src/kernel/kproc.c +++ /dev/null @@ -1,118 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#if ENABLE_ULIME -extern proc_manager_t *proc_mgr; -extern ulime_t *ulime; -#endif - - -/* -// create a process for the kernel -// if proc: kernel == quit the system stops/halt/crashes idk -void create_kernel_process(ulime_t *ulime, proc_manager_t *proc_mgr) -{ - ulime_proc_t *kernel_proc = ulime_proc_create( - ulime, - (u8*)"kernel", - (u64)kmain - ); - - kernel_proc->priority = 255; - kernel_proc->state = PROC_READY; - kernel_proc->is_critical = 1; - - // register process manager - proc_add(proc_mgr, kernel_proc); - - log("[KPROC]", "Kernel process created\n", 0); -} -*/ - -void kproc(void ) { - - #if ENABLE_ULIME && RUNTESTS // set to 1 to enable test - //BOOTUP_PRINT("test RUNTESTS block\n", white()); - if (proc_mgr){ - ulime_proc_t *p1 = proc_create_proc(proc_mgr, (u8*)KERNELPROC, KERNELSPACE, KERNELPRIORITY); - ulime_proc_t *p2 = proc_create_proc(proc_mgr, (u8*)"__rt", 0x40001000, 2); // run tests - - log("[KPROC]", "creating test processes\n", d); - if (p1) log("[KPROC]", "created kernel\n", d); - if (p2) log("[KPROC]", "created __rt\n", d); - - //proc_list_procs(proc_mgr); - - //log("[TEST_CODE]", "loading test code:\n", d); - //ulime_load_program(p4, test_code, sizeof(test_code)); - //log("[TEST_CODE]", "test code loaded successfully\n", d); - //JumpToUserspace(p4); - log("[KPROC]", "Kernel processes created\n", d); - } - if ( - proc_mgr && - ulime && - module_request.response && - module_request.response->module_count - > 0){ - - ulime_proc_t *p4 = proc_create_proc(proc_mgr, (u8*)USERPROC, USERSPACE, USERPRIORITY); - if (p4) log("[KPROC]", "created user process\n", d); - #define USERPROGRAMMSPACE 0x40004200 - #define USERPROGRAMMPRIORITY 1 - - struct limine_module_response *mod_resp = module_request.response; - struct limine_file *hello_mod = NULL; - - for (u64 i = 0; i < mod_resp->module_count; i++) { - const char *path = mod_resp->modules[i]->path; - if (str_contains((char*)path, "hello.elf")) { - hello_mod = mod_resp->modules[i]; - break; - } - } - - if (hello_mod) - { - log("[ELF]", "found hello.elf module\n", d); - - ulime_proc_t *proc = proc_create_proc(proc_mgr, (u8*)"hello", USERPROGRAMMSPACE, USERPROGRAMMPRIORITY); - if (proc) - { - u8 *elf_data = (u8*)hello_mod->address; - u64 elf_size = hello_mod->size; - - if (elf_load(proc, elf_data, elf_size) == 0) { - ulime->ptr_proc_curr = proc; - log("[ELF]", "jumping to userspace\n", d); - u64 user_rsp = (proc->stack_base + proc->stack_size - 16) & ~0xFULL; - - verify_page_permissions(proc->ulime->hpr, proc->entry_point, "Code page"); - verify_page_permissions(proc->ulime->hpr, user_rsp, "Stack page"); - verify_gdt_setup(); - //JumpToUserspace(proc); - } - } - } else { - log("[ELF]", "hello.elf not found in ramfs\n", error); - } - } - proc_list_procs(proc_mgr); - #endif - -}; -//void kproc(void); diff --git a/src/kernel/user/_start.c b/src/kernel/user/_start.c index 7e6fc0f..bc65de9 100644 --- a/src/kernel/user/_start.c +++ b/src/kernel/user/_start.c @@ -5,6 +5,7 @@ void DEinit(void) { + //dump_kprocesses(); log("[DE]", "init Desktop Enviroment...\n", d); /* input_pos = 0; diff --git a/src/kernel/user/gen.h b/src/kernel/user/gen.h index 49e537b..8f29557 100644 --- a/src/kernel/user/gen.h +++ b/src/kernel/user/gen.h @@ -3,14 +3,14 @@ //source: src/kernel/console/console.h #include -#include +#include +#include #include #include #include //#include "graph/uno.h" //#include "graph/dos.h" #include -#include #include #include #include From 81162d2318e978205c1563518b651934500de1d0 Mon Sep 17 00:00:00 2001 From: emexos Date: Wed, 18 Feb 2026 19:31:52 +0100 Subject: [PATCH 04/41] [BOOT] new bootscreen print logic (moved print), [CONSOLE] new console print logic (cprintf) --- shared/string/string.c | 2 +- shared/string/string.h | 7 +- shared/ui/uno.c | 1 - src/kernel/console/console.c | 6 +- src/kernel/console/console.h | 7 +- src/kernel/console/functions/cat.c | 8 +- src/kernel/console/functions/cd.c | 4 +- src/kernel/console/functions/cmos.c | 4 +- src/kernel/console/functions/help.c | 16 +-- src/kernel/console/functions/keymap.c | 22 ++--- src/kernel/console/functions/ls.c | 20 ++-- src/kernel/console/functions/mkdir.c | 10 +- src/kernel/console/functions/modules.c | 54 +++++++++++ src/kernel/console/functions/poweroff.c | 12 +-- src/kernel/console/functions/proc.c | 2 +- src/kernel/console/functions/slots.c | 12 +-- src/kernel/console/functions/source.c | 6 +- src/kernel/console/functions/system.c | 97 +++++-------------- src/kernel/console/functions/text.c | 82 ++++++++-------- src/kernel/console/functions/touch.c | 4 +- src/kernel/console/functions/tree.c | 22 ++--- src/kernel/console/functions/view.c | 6 +- src/kernel/console/functions/whoami.c | 4 +- src/kernel/console/graph/print.c | 7 ++ src/kernel/console/graph/print.h | 9 ++ src/kernel/console/shell_screen.c | 32 +++--- .../kernel/kernel_processes/bootscreen}/log.c | 1 - .../kernel/kernel_processes/bootscreen}/log.h | 0 .../kernel_processes/bootscreen}/print.c | 6 -- .../kernel_processes/bootscreen}/print.h | 3 - .../kernel_processes/bootscreen}/print_b.c | 0 src/kernel/kernel_processes/kernel/gen.h | 1 - src/kernel/kernel_processes/loader.h | 2 +- src/kernel/kernelslot/slot.c | 1 - 34 files changed, 241 insertions(+), 229 deletions(-) create mode 100644 src/kernel/console/functions/modules.c create mode 100644 src/kernel/console/graph/print.c create mode 100644 src/kernel/console/graph/print.h rename {shared/string => src/kernel/kernel_processes/bootscreen}/log.c (99%) rename {shared/string => src/kernel/kernel_processes/bootscreen}/log.h (100%) rename {shared/string => src/kernel/kernel_processes/bootscreen}/print.c (98%) rename {shared/string => src/kernel/kernel_processes/bootscreen}/print.h (75%) rename {shared/string => src/kernel/kernel_processes/bootscreen}/print_b.c (100%) diff --git a/shared/string/string.c b/shared/string/string.c index fdfe129..2163ae9 100644 --- a/shared/string/string.c +++ b/shared/string/string.c @@ -1,5 +1,5 @@ #include "string.h" -#include "print.h" +//#include "print.h" void str_copy(char *dest, const char *src) { diff --git a/shared/string/string.h b/shared/string/string.h index e495714..e143d12 100644 --- a/shared/string/string.h +++ b/shared/string/string.h @@ -2,11 +2,14 @@ #define STRING_H #include -#include "print.h" -#include "log.h" +//#include "print.h" +//#include "log.h" #include #include +#include +#include + void str_copy(char *dest, const char *src); void str_append(char *dest, const char *src); void str_append_uint(char *dest, u32 num); diff --git a/shared/ui/uno.c b/shared/ui/uno.c index 75cf1aa..f4e29c0 100644 --- a/shared/ui/uno.c +++ b/shared/ui/uno.c @@ -1,6 +1,5 @@ #include "uno.h" #include -#include static u32 calculate_text_width(const char *text, u16 font_size) { if (!text) return 0; diff --git a/src/kernel/console/console.c b/src/kernel/console/console.c index 038a923..cb0bea3 100644 --- a/src/kernel/console/console.c +++ b/src/kernel/console/console.c @@ -377,9 +377,9 @@ void console_execute(const char *input) // for PC_NAME and USER_NAME uci_reload(); } else { - print(CONSOLE_NAME, WRONG_COMMAND_CL); - print(": command not found:", WRONG_COMMAND_CL); - print(cmd_name, WRONG_COMMAND_CL); + cprintf(CONSOLE_NAME, WRONG_COMMAND_CL); + cprintf(": command not found:", WRONG_COMMAND_CL); + cprintf(cmd_name, WRONG_COMMAND_CL); } } diff --git a/src/kernel/console/console.h b/src/kernel/console/console.h index 5fd5491..ab2eadc 100644 --- a/src/kernel/console/console.h +++ b/src/kernel/console/console.h @@ -1,13 +1,16 @@ #ifndef CONSOLE_H #define CONSOLE_H + +#include "graph/uno.h" +#include "graph/dos.h" +#include "graph/print.h" + #include #include #include #include #include -#include "graph/uno.h" -#include "graph/dos.h" #include //#include #include diff --git a/src/kernel/console/functions/cat.c b/src/kernel/console/functions/cat.c index 01d8676..a466952 100644 --- a/src/kernel/console/functions/cat.c +++ b/src/kernel/console/functions/cat.c @@ -6,7 +6,7 @@ extern char cwd[]; FHDR(cmd_cat) { (void)s; if (!s || *s == '\0') { - print("error: no file specified\n", GFX_RED); + cprintf("error: no file specified\n", GFX_RED); return; } @@ -27,7 +27,7 @@ FHDR(cmd_cat) { // opens in read only (RDONLY) int fd = fs_open(path, O_RDONLY); if (fd < 0) { - print("error: cannot open file\n", GFX_RED); + cprintf("error: cannot open file\n", GFX_RED); return; } @@ -36,11 +36,11 @@ FHDR(cmd_cat) { while ((bytes = fs_read(fd, buf, sizeof(buf) - 1)) > 0) { buf[bytes] = '\0'; - print(buf, GFX_WHITE); + cprintf(buf, GFX_WHITE); } fs_close(fd); // buf[0] = '\0'; - print("\n", GFX_WHITE); + cprintf("\n", GFX_WHITE); } diff --git a/src/kernel/console/functions/cd.c b/src/kernel/console/functions/cd.c index 678c620..b359fbc 100644 --- a/src/kernel/console/functions/cd.c +++ b/src/kernel/console/functions/cd.c @@ -46,12 +46,12 @@ FHDR(cmd_cd) { // if directory exists fs_node *dir = fs_resolve(new_path); if (!dir) { - print("error: directory not found\n", GFX_RED); + cprintf("error: directory not found\n", GFX_RED); return; } if (dir->type != FS_DIR) { - print("error: not a directory\n", GFX_RED); + cprintf("error: not a directory\n", GFX_RED); return; } diff --git a/src/kernel/console/functions/cmos.c b/src/kernel/console/functions/cmos.c index fa7180e..ff88d98 100644 --- a/src/kernel/console/functions/cmos.c +++ b/src/kernel/console/functions/cmos.c @@ -6,7 +6,7 @@ FHDR(cmd_cal) { (void)s; GetCMOSDate(); - print(" ", GFX_WHITE); + cprintf(" ", GFX_WHITE); GetCMOSTime(); } @@ -26,6 +26,6 @@ FHDR(cmd_time) { FHDR(cmd_uptime) { (void)s; - print("Uptime: ", GFX_WHITE); + cprintf("Uptime: ", GFX_WHITE); timer_print_uptime(); } diff --git a/src/kernel/console/functions/help.c b/src/kernel/console/functions/help.c index 39c3ce7..8cae2c6 100644 --- a/src/kernel/console/functions/help.c +++ b/src/kernel/console/functions/help.c @@ -3,7 +3,7 @@ #define GEN "[GENERIC]" #define FS "[FILESYSTEM]" #define GUI "[GRAPHICS]" -#define PADDING 12 +#define PADDING 15 FHDR(cmd_help) { @@ -12,7 +12,7 @@ FHDR(cmd_help) if (*s == '\0') { // these are COMMON commands, soon i will split all comands - print("[COMMON]\n", GFX_YELLOW); + cprintf(GEN, GFX_YELLOW); for (int i = 0; i < cmd_count; i++) { char buf[128]; @@ -28,10 +28,10 @@ FHDR(cmd_help) str_append(buf, "- "); str_append(buf, commands[i].description); str_append(buf, "\n"); - print(buf, GFX_WHITE); + cprintf(buf, GFX_WHITE); } - print("Type 'help ' for details", GFX_GRAY_50); + cprintf("Type 'help ' for details", GFX_GRAY_50); } else { // specific commands const char *p = s; @@ -43,14 +43,14 @@ FHDR(cmd_help) str_copy(buf, "\n"); str_append(buf, cmd->description); - print(buf, GFX_WHITE); + cprintf(buf, GFX_WHITE); str_copy(buf, "\nUsage: "); str_append(buf, cmd->usage); - print(buf, GFX_YELLOW); - print("\n", GFX_WHITE); + cprintf(buf, GFX_YELLOW); + cprintf("\n", GFX_WHITE); } else { - print("\nCommand not found", GFX_RED); + cprintf("\nCommand not found", GFX_RED); } } } diff --git a/src/kernel/console/functions/keymap.c b/src/kernel/console/functions/keymap.c index a64d676..aee20e8 100644 --- a/src/kernel/console/functions/keymap.c +++ b/src/kernel/console/functions/keymap.c @@ -4,10 +4,10 @@ FHDR(cmd_keymap) { if (!s || *s == '\0') { // Show current keymap - print("you use keymap: ", GFX_WHITE); - print(keymap_get_current_name(), GFX_WHITE); - print("\nuse: keymap \n", GFX_WHITE); - print("\nnote that only DE & US are correctly supported by now.\n", GFX_WHITE); + cprintf("you use keymap: ", GFX_WHITE); + cprintf(keymap_get_current_name(), GFX_WHITE); + cprintf("\nuse: keymap \n", GFX_WHITE); + cprintf("\nnote that only DE & US are correctly supported by now.\n", GFX_WHITE); return; } @@ -27,14 +27,14 @@ FHDR(cmd_keymap) { // trys to set the keymap if (keymap_set(keymap_name) != 0) { - print("error: keymap '", GFX_RED); - print(keymap_name, GFX_RED); - print("' not found\n", GFX_RED); - print("try: US, DE\n", GFX_RED); + cprintf("error: keymap '", GFX_RED); + cprintf(keymap_name, GFX_RED); + cprintf("' not found\n", GFX_RED); + cprintf("try: US, DE\n", GFX_RED); return; } - print("keymap changed to: ", GFX_WHITE); - print(keymap_name, GFX_WHITE); - print("\n", GFX_WHITE); + cprintf("keymap changed to: ", GFX_WHITE); + cprintf(keymap_name, GFX_WHITE); + cprintf("\n", GFX_WHITE); } diff --git a/src/kernel/console/functions/ls.c b/src/kernel/console/functions/ls.c index 0442814..fd6d457 100644 --- a/src/kernel/console/functions/ls.c +++ b/src/kernel/console/functions/ls.c @@ -14,20 +14,20 @@ FHDR(cmd_ls) { // resolve the directory fs_node *dir = fs_resolve(path); if (!dir) { - print("error: directory not found\n", GFX_RED); - print("use: \"ls /boot\" or \"ls /dev\" or any kind of dir.\n", GFX_RED); + cprintf("error: directory not found\n", GFX_RED); + cprintf("use: \"ls /boot\" or \"ls /dev\" or any kind of dir.\n", GFX_RED); return; } if (dir->type != FS_DIR) { - print("error: not a directory\n", GFX_RED); + cprintf("error: not a directory\n", GFX_RED); return; } // list all children fs_node *child = dir->children; if (!child) { - print("this folder is empty \n", GFX_GRAY_50); + cprintf("this folder is empty \n", GFX_GRAY_50); return; } @@ -47,8 +47,8 @@ FHDR(cmd_ls) { color = GFX_WHITE; } - print(child->name, color); - print(type_str, color); + cprintf(child->name, color); + cprintf(type_str, color); // show size for files /*if (child->type == FS_FILE && child->size > 0) { @@ -56,19 +56,19 @@ FHDR(cmd_ls) { str_copy(buf, " | "); str_append_uint(buf, (u32)child->size); str_append(buf, " bytes"); - print(buf, GFX_GRAY_50); + cprintf(buf, GFX_GRAY_50); }*/ - print(" ", GFX_WHITE); + cprintf(" ", GFX_WHITE); count++; if (count % 6 == 0) { - print("\n", GFX_WHITE); + cprintf("\n", GFX_WHITE); } child = child->next; } if (count % 6 != 0) { - print("\n", GFX_WHITE); + cprintf("\n", GFX_WHITE); } } diff --git a/src/kernel/console/functions/mkdir.c b/src/kernel/console/functions/mkdir.c index bc5240f..047698f 100644 --- a/src/kernel/console/functions/mkdir.c +++ b/src/kernel/console/functions/mkdir.c @@ -5,7 +5,7 @@ extern char cwd[]; FHDR(cmd_mkdir) { if (!s || *s == '\0') { - print("usage: mkdir \n", GFX_RED); + cprintf("usage: mkdir \n", GFX_RED); return; } @@ -26,11 +26,11 @@ FHDR(cmd_mkdir) { // Create the directory if (fs_mkdir(full_path) != 0) { - print("error: could not create directory\n", GFX_RED); + cprintf("error: could not create directory\n", GFX_RED); return; } - print("directory created: ", GFX_GREEN); - print(full_path, GFX_WHITE); - print("\n", GFX_WHITE); + cprintf("directory created: ", GFX_GREEN); + cprintf(full_path, GFX_WHITE); + cprintf("\n", GFX_WHITE); } diff --git a/src/kernel/console/functions/modules.c b/src/kernel/console/functions/modules.c new file mode 100644 index 0000000..aad43e6 --- /dev/null +++ b/src/kernel/console/functions/modules.c @@ -0,0 +1,54 @@ +#include +#include +#include + +FHDR(cmd_modules) +{ + (void)s; // unused + cprintf("Loaded Modules:\n", GFX_WHITE); + + int count = module_get_count(); + + if (count == 0) { + cprintf("No modules loaded\n", GFX_WHITE); + return; + } + + char buf[128]; + for (int i = 0; i < count; i++) { + driver_module *mod = module_get_by_index(i); + if (mod) { + + //cprintf("- ", GFX_WHITE); + //cprintf(mod->name, GFX_GREEN); + + //cprintf(" -> ", GFX_WHITE); + cprintf(mod->mount, GFX_WHITE); + + //i simplified the module printing because its uneccesary + + u32 ver = mod->version; + u32 major = (ver >> 24) & 0xFF; + u32 minor = (ver >> 16) & 0xFF; + u32 patch = (ver >> 8) & 0xFF; + + //actually version is uneccesary too but i let it for now idk + str_copy(buf, " [v"); + str_append_uint(buf, major); + str_append(buf, "."); + str_append_uint(buf, minor); + str_append(buf, "."); + str_append_uint(buf, patch); + str_append(buf, "]"); + cprintf(buf, GFX_GRAY_50); + + cprintf("\n", GFX_WHITE); + } + } + + str_copy(buf, "\nTotal: "); + str_append_uint(buf, count); + str_append(buf, " module(s)"); + cprintf(buf, GFX_WHITE); + //cprintf("\nkeep in mind it will only show all modules if the os has a fs/vfs/memfs", GFX_GRAY_20); +} diff --git a/src/kernel/console/functions/poweroff.c b/src/kernel/console/functions/poweroff.c index ed3f12c..c614da7 100644 --- a/src/kernel/console/functions/poweroff.c +++ b/src/kernel/console/functions/poweroff.c @@ -6,10 +6,10 @@ FHDR(cmd_reboot) (void)s; cursor_disable(); - print("Restarting system...\n", GFX_YELLOW); + cprintf("Restarting system...\n", GFX_YELLOW); - for (volatile int i = 0; i < 5000000; i++) - __asm__ volatile("nop"); + /*for (volatile int i = 0; i < 5000000; i++) + __asm__ volatile("nop");*/ cpu_poweroff(POWEROFF_REBOOT); } @@ -19,10 +19,10 @@ FHDR(cmd_shutdown) (void)s; cursor_disable(); - print("Shutting down system...\n", GFX_YELLOW); + cprintf("Shutting down system...\n", GFX_YELLOW); - for (volatile int i = 0; i < 5000000; i++) - __asm__ volatile("nop"); + /*for (volatile int i = 0; i < 5000000; i++) + __asm__ volatile("nop");*/ cpu_poweroff(POWEROFF_SHUTDOWN); } diff --git a/src/kernel/console/functions/proc.c b/src/kernel/console/functions/proc.c index a33cf76..f90d6fc 100644 --- a/src/kernel/console/functions/proc.c +++ b/src/kernel/console/functions/proc.c @@ -5,7 +5,7 @@ FHDR(cmd_ps) #if ENABLE_ULIME && RUNTESTS if (!proc_mgr) { - print("proc_mgr not initialized\n", white()); + cprintf("proc_mgr not initialized\n", white()); return; } diff --git a/src/kernel/console/functions/slots.c b/src/kernel/console/functions/slots.c index bce3e76..b55a5dd 100644 --- a/src/kernel/console/functions/slots.c +++ b/src/kernel/console/functions/slots.c @@ -26,7 +26,7 @@ FHDR(cmd_slot) str_append(msg, slot_str); str_append(msg, "\n"); - print(msg, GFX_GREEN); + cprintf(msg, GFX_GREEN); return; } @@ -36,11 +36,11 @@ FHDR(cmd_slot) if (slot != 'A' && slot != 'B' && slot != 'a' && slot != 'b') { - print("wrong slot num, use \"A\" or \"B\"\n", GFX_RED); + cprintf("wrong slot num, use \"A\" or \"B\"\n", GFX_RED); return; } - print("this does currently not switch the real kernel slot!\n", GFX_YELLOW); + cprintf("this does currently not switch the real kernel slot!\n", GFX_YELLOW); if (slot == 'a') slot = 'A'; if (slot == 'b') slot = 'B'; @@ -48,19 +48,19 @@ FHDR(cmd_slot) char current = readslot(); if (current == slot) { - print("slot is already active\n", GFX_YELLOW); + cprintf("slot is already active\n", GFX_YELLOW); return; } if (writeslot(slot) == 0) { - print("switch slot and reboot...\n", GFX_YELLOW); + cprintf("switch slot and reboot...\n", GFX_YELLOW); for (volatile int i = 0; i < 5000000; i++) __asm__ volatile("nop"); cpu_poweroff(POWEROFF_REBOOT); } else { - print("failed to switch slot\n", GFX_RED); + cprintf("failed to switch slot\n", GFX_RED); } return; diff --git a/src/kernel/console/functions/source.c b/src/kernel/console/functions/source.c index 389e8db..dd7b231 100644 --- a/src/kernel/console/functions/source.c +++ b/src/kernel/console/functions/source.c @@ -6,7 +6,7 @@ FHDR(cmd_source) { // reloads the shell if (!s || *s == '\0') { - print("usage: source \n", GFX_RED); + cprintf("usage: source \n", GFX_RED); return; } @@ -22,10 +22,10 @@ FHDR(cmd_source) { banner_draw(); console_window_init(); - print("Console reloaded\n", GFX_GREEN); + cprintf("Console reloaded\n", GFX_GREEN); //shell_print_prompt(); return; } - print("source: only 'console' is supported\n", GFX_RED); + cprintf("source: only 'console' is supported\n", GFX_RED); } diff --git a/src/kernel/console/functions/system.c b/src/kernel/console/functions/system.c index b955653..a46fc25 100644 --- a/src/kernel/console/functions/system.c +++ b/src/kernel/console/functions/system.c @@ -5,57 +5,6 @@ #include #include -FHDR(cmd_modules) -{ - (void)s; // unused - print("Loaded Modules:\n", GFX_WHITE); - - int count = module_get_count(); - - if (count == 0) { - print("No modules loaded\n", GFX_WHITE); - return; - } - - char buf[128]; - for (int i = 0; i < count; i++) { - driver_module *mod = module_get_by_index(i); - if (mod) { - - //print("- ", GFX_WHITE); - //print(mod->name, GFX_GREEN); - - //print(" -> ", GFX_WHITE); - print(mod->mount, GFX_WHITE); - - //i simplified the module printing because its uneccesary - - u32 ver = mod->version; - u32 major = (ver >> 24) & 0xFF; - u32 minor = (ver >> 16) & 0xFF; - u32 patch = (ver >> 8) & 0xFF; - - //actually version is uneccesary too but i let it for now idk - str_copy(buf, " [v"); - str_append_uint(buf, major); - str_append(buf, "."); - str_append_uint(buf, minor); - str_append(buf, "."); - str_append_uint(buf, patch); - str_append(buf, "]"); - print(buf, GFX_GRAY_50); - - print("\n", GFX_WHITE); - } - } - - str_copy(buf, "\nTotal: "); - str_append_uint(buf, count); - str_append(buf, " module(s)"); - print(buf, GFX_WHITE); - //print("\nkeep in mind it will only show all modules if the os has a fs/vfs/memfs", GFX_GRAY_20); -} - FHDR(cmd_meminfo) { // (void)s; // unused parameter @@ -96,15 +45,15 @@ void print_res() { str_append(buf, "x"); str_append_uint(buf, get_fb_height()); str_append(buf, "\n"); - print(buf, GFX_WHITE); + cprintf(buf, GFX_WHITE); } void ShowCPUName(){ const char *cpu_name = cpu_get_brand(); if (cpu_name[0]) { - print(cpu_name, GFX_WHITE); + cprintf(cpu_name, GFX_WHITE); } else { - print("Unknown CPU", GFX_WHITE); + cprintf("Unknown CPU", GFX_WHITE); } } @@ -112,25 +61,25 @@ FHDR(cmd_sysinfo) { (void)s; // unused parameter - print(" \n", GFX_GREEN); - print(" ###########;m; ", GFX_GREEN); print(PC_NAME, GFX_GREEN); print("@", GFX_GREEN); print(USER_NAME, GFX_GREEN); print("\n", GFX_GREEN); - print(" # #########;m; ---------------\n", GFX_GREEN); //15 characters - print(" # #;m; Kernel: ", GFX_GREEN); print(KERNEL_BARENAME " " KERNEL_DEFRELEASE, GFX_WHITE); print("\n", GFX_WHITE); - print(" # #;m; Resolution: ", GFX_GREEN); print_res(); - print(" # ########;m; Bootloader: ", GFX_GREEN); print("Limine \n", GFX_WHITE); - print(" # ########;m; CPU: ", GFX_GREEN); ShowCPUName(); print("\n", GFX_WHITE); - print(" # #;m; Date: ", GFX_GREEN); GetCMOSDate(); print("\n", GFX_WHITE); - print(" # #;m; Uptime: ", GFX_GREEN); timer_print_uptime(); print("\n", GFX_WHITE); - print(" # #########;m; ---------------\n", GFX_GREEN); - print(" ###########;m; ", GFX_GREEN); - print("^ ", GFX_WHITE); //all colors: - print("^ ", GFX_RED); - print("^ ", GFX_GREEN); - print("^ ", GFX_YELLOW); - print("^ ", GFX_BLUE); - print("^ ", GFX_PURPLE); - print("^ ", GFX_CYAN); - print("^ \n", GFX_BG); //i think nobody will see this xd - print(" ", GFX_GREEN); // empty/new line + cprintf(" \n", GFX_GREEN); + cprintf(" ###########;m; ", GFX_GREEN); cprintf(PC_NAME, GFX_GREEN); cprintf("@", GFX_GREEN); cprintf(USER_NAME, GFX_GREEN); cprintf("\n", GFX_GREEN); + cprintf(" # #########;m; ---------------\n", GFX_GREEN); //15 characters + cprintf(" # #;m; Kernel: ", GFX_GREEN); cprintf(KERNEL_BARENAME " " KERNEL_DEFRELEASE, GFX_WHITE); cprintf("\n", GFX_WHITE); + cprintf(" # #;m; Resolution: ", GFX_GREEN); print_res(); + cprintf(" # ########;m; Bootloader: ", GFX_GREEN); cprintf("Limine \n", GFX_WHITE); + cprintf(" # ########;m; CPU: ", GFX_GREEN); ShowCPUName(); cprintf("\n", GFX_WHITE); + cprintf(" # #;m; Date: ", GFX_GREEN); GetCMOSDate(); cprintf("\n", GFX_WHITE); + cprintf(" # #;m; Uptime: ", GFX_GREEN); timer_print_uptime(); cprintf("\n", GFX_WHITE); + cprintf(" # #########;m; ---------------\n", GFX_GREEN); + cprintf(" ###########;m; ", GFX_GREEN); + cprintf("^ ", GFX_WHITE); //all colors: + cprintf("^ ", GFX_RED); + cprintf("^ ", GFX_GREEN); + cprintf("^ ", GFX_YELLOW); + cprintf("^ ", GFX_BLUE); + cprintf("^ ", GFX_PURPLE); + cprintf("^ ", GFX_CYAN); + cprintf("^ \n", GFX_BG); //i think nobody will see this xd + cprintf(" ", GFX_GREEN); // empty/new line } diff --git a/src/kernel/console/functions/text.c b/src/kernel/console/functions/text.c index d926349..32e1225 100644 --- a/src/kernel/console/functions/text.c +++ b/src/kernel/console/functions/text.c @@ -3,11 +3,11 @@ FHDR(cmd_echo) { if (*s == '\0') { - print("\n", GFX_WHITE); + cprintf("\n", GFX_WHITE); return; } - print(s, GFX_WHITE); + cprintf(s, GFX_WHITE); } FHDR(cmd_clear) @@ -17,7 +17,7 @@ FHDR(cmd_clear) /* if (*s != '\0') { if (!parse_color(s, &color)) { - print("wrong color\n", GFX_RED); + cprintf("wrong color\n", GFX_RED); return; } } @@ -37,7 +37,7 @@ FHDR(cmd_fsize) char buf[64]; str_copy(buf, "Current font size: "); str_append_uint(buf, font_scale); - print(buf, GFX_WHITE); + cprintf(buf, GFX_WHITE); return; } @@ -52,7 +52,7 @@ FHDR(cmd_fsize) } if (size < 1 || size > 4) { - print("Invalid size. Use 1-4\n", GFX_RED); + cprintf("Invalid size. Use 1-4\n", GFX_RED); return; } @@ -61,7 +61,7 @@ FHDR(cmd_fsize) /*char buf[64]; str_copy(buf, " Font size set to "); str_append_uint(buf, size); - print(buf, GFX_GREEN); + cprintf(buf, GFX_GREEN); */ clear(CONSOLESCREEN_BG_COLOR); banner_force_update(); @@ -89,60 +89,60 @@ FHDR(cmd_font) { if (f_setcontext((font_type_t)font_num) == 0) { clear(CONSOLESCREEN_BG_COLOR); banner_force_update(); - print("\n", GFX_GREEN); + cprintf("\n", GFX_GREEN); } else { - print("use: font ", GFX_RED); + cprintf("use: font ", GFX_RED); } } FHDR(cmd_cyrillc_sumbol) { (void)s; - print("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\n", GFX_WHITE); - print("абвгдеёжзийклмнопрстуфхцчшщъыьэюя\n", GFX_WHITE); + cprintf("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\n", GFX_WHITE); + cprintf("абвгдеёжзийклмнопрстуфхцчшщъыьэюя\n", GFX_WHITE); } FHDR(cmd_latin_sumbol) { (void)s; - print("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n", GFX_WHITE); - print("abcdefghijklmnopqrstuvwxyz\n", GFX_WHITE); + cprintf("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n", GFX_WHITE); + cprintf("abcdefghijklmnopqrstuvwxyz\n", GFX_WHITE); } FHDR(cmd_all_sumbol) { (void)s; - print("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n", GFX_WHITE); - print("abcdefghijklmnopqrstuvwxyz\n", GFX_WHITE); - print("AEOEUESS: ÄÖÜ äöü ß\n", GFX_WHITE); - print("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\n", GFX_WHITE); - print("абвгдеёжзийклмнопрстуфхцчшщъыьэюя\n", GFX_WHITE); - print("0123456789 !?.,:;+-*/=_()[]{}@#%&$°^\"'<>\\|~`§€\n", GFX_WHITE); - print("«∑€®†Ω¨⁄øπ•±å‚∂ƒ©ªº∆@œæ‘≤¥≈ç√∫~µ∞…–¡“¶¢≠¿'£\n", GFX_WHITE); + cprintf("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n", GFX_WHITE); + cprintf("abcdefghijklmnopqrstuvwxyz\n", GFX_WHITE); + cprintf("AEOEUESS: ÄÖÜ äöü ß\n", GFX_WHITE); + cprintf("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\n", GFX_WHITE); + cprintf("абвгдеёжзийклмнопрстуфхцчшщъыьэюя\n", GFX_WHITE); + cprintf("0123456789 !?.,:;+-*/=_()[]{}@#%&$°^\"'<>\\|~`§€\n", GFX_WHITE); + cprintf("«∑€®†Ω¨⁄øπ•±å‚∂ƒ©ªº∆@œæ‘≤¥≈ç√∫~µ∞…–¡“¶¢≠¿'£\n", GFX_WHITE); } /*FHDR(cmd_help) { if (*s == '\0') { // show all commands - print("[COMMMON]\n", GFX_YELLOW); - print(" echo [text] - echo [text]\n", GFX_WHITE); - print(" clear [color] - clear screen\n", GFX_WHITE); - print(" help [command] - displays this list\n", GFX_WHITE); - print(" scale [1-4] - change screen size\n", GFX_WHITE); - print(" font [0-1] - switch fonts\n", GFX_WHITE); - print(" date - show current date\n", GFX_WHITE); - print(" time - show current time\n", GFX_WHITE); - print(" calendar - show date & time\n", GFX_WHITE); - print(" uptime - displays the uptime\n", GFX_WHITE); - print(" dofetch - emexOS system fetch\n", GFX_WHITE); - print(" cat - show file content\n", GFX_WHITE); - print(" ls - list directory contents\n", GFX_WHITE); - print(" shut - shuts down the system\n", GFX_WHITE); - //print("[SYSTEM]\n", GFX_YELLOW); - print(" meminfo - heap memory information\n", GFX_WHITE); - print(" modules - shows all modules in fs\n", GFX_WHITE); - print("Type 'help ' for details", GFX_GRAY_50); + cprintf("[COMMMON]\n", GFX_YELLOW); + cprintf(" echo [text] - echo [text]\n", GFX_WHITE); + cprintf(" clear [color] - clear screen\n", GFX_WHITE); + cprintf(" help [command] - displays this list\n", GFX_WHITE); + cprintf(" scale [1-4] - change screen size\n", GFX_WHITE); + cprintf(" font [0-1] - switch fonts\n", GFX_WHITE); + cprintf(" date - show current date\n", GFX_WHITE); + cprintf(" time - show current time\n", GFX_WHITE); + cprintf(" calendar - show date & time\n", GFX_WHITE); + cprintf(" uptime - displays the uptime\n", GFX_WHITE); + cprintf(" dofetch - emexOS system fetch\n", GFX_WHITE); + cprintf(" cat - show file content\n", GFX_WHITE); + cprintf(" ls - list directory contents\n", GFX_WHITE); + cprintf(" shut - shuts down the system\n", GFX_WHITE); + //cprintf("[SYSTEM]\n", GFX_YELLOW); + cprintf(" meminfo - heap memory information\n", GFX_WHITE); + cprintf(" modules - shows all modules in fs\n", GFX_WHITE); + cprintf("Type 'help ' for details", GFX_GRAY_50); } else { // show specific command help const char *p = s; @@ -154,14 +154,14 @@ FHDR(cmd_all_sumbol) str_copy(buf, "\n"); str_append(buf, cmd->description); - print(buf, GFX_WHITE); + cprintf(buf, GFX_WHITE); str_copy(buf, "\nUsage: "); str_append(buf, cmd->usage); - print(buf, GFX_YELLOW); - print("\n", GFX_WHITE); + cprintf(buf, GFX_YELLOW); + cprintf("\n", GFX_WHITE); } else { - print("\nCommand not found", GFX_RED); + cprintf("\nCommand not found", GFX_RED); } } } diff --git a/src/kernel/console/functions/touch.c b/src/kernel/console/functions/touch.c index f549ce4..f1daf15 100644 --- a/src/kernel/console/functions/touch.c +++ b/src/kernel/console/functions/touch.c @@ -6,7 +6,7 @@ extern char cwd[]; FHDR(cmd_touch) { if (!s || *s == '\0') { - print("usage: touch \n", GFX_RED); + cprintf("usage: touch \n", GFX_RED); return; } @@ -22,7 +22,7 @@ FHDR(cmd_touch) int fd = fs_open(path, O_CREAT | O_WRONLY); if (fd < 0) { - print("error: cannot create file\n", GFX_RED); + cprintf("error: cannot create file\n", GFX_RED); return; } diff --git a/src/kernel/console/functions/tree.c b/src/kernel/console/functions/tree.c index 4344aea..b0fb2a6 100644 --- a/src/kernel/console/functions/tree.c +++ b/src/kernel/console/functions/tree.c @@ -9,14 +9,14 @@ static void tree_print(fs_node *node, int depth, int is_last) { // indentation for (int i = 0; i < depth; i++) { - print("| ", GFX_GRAY_50); + cprintf("| ", GFX_GRAY_50); } // prefix if (is_last && !node->next) { - print("`-- ", GFX_GRAY_50); + cprintf("`-- ", GFX_GRAY_50); } else { - print("|-- ", GFX_GRAY_50); + cprintf("|-- ", GFX_GRAY_50); } // name + color @@ -31,9 +31,9 @@ static void tree_print(fs_node *node, int depth, int is_last) suffix = "*"; } - print(node->name, color); - print(suffix, color); - print("\n", GFX_WHITE); + cprintf(node->name, color); + cprintf(suffix, color); + cprintf("\n", GFX_WHITE); // recurse into directories if (node->type == FS_DIR && node->children) { @@ -54,21 +54,21 @@ FHDR(cmd_tree) fs_node *dir = fs_resolve(path); if (!dir) { - print("error: directory not found\n", GFX_RED); + cprintf("error: directory not found\n", GFX_RED); return; } if (dir->type != FS_DIR) { - print("error: not a directory\n", GFX_RED); + cprintf("error: not a directory\n", GFX_RED); return; } // print root - print(dir->name, GFX_BLUE); - print("/\n", GFX_BLUE); + cprintf(dir->name, GFX_BLUE); + cprintf("/\n", GFX_BLUE); if (!dir->children) { - print("(empty)\n", GFX_GRAY_50); + cprintf("(empty)\n", GFX_GRAY_50); return; } diff --git a/src/kernel/console/functions/view.c b/src/kernel/console/functions/view.c index 95347cd..9873d6a 100644 --- a/src/kernel/console/functions/view.c +++ b/src/kernel/console/functions/view.c @@ -4,13 +4,13 @@ FHDR(cmd_view) { if (!s || *s == '\0') { - print("usage: view \n", GFX_RED); + cprintf("usage: view \n", GFX_RED); return; } bmp_image_t img; if (bmp_load(s, &img) != 0) { - print("error: cannot load image\n", GFX_RED); + cprintf("error: cannot load image\n", GFX_RED); return; } @@ -23,7 +23,7 @@ FHDR(cmd_view) { bmp_draw(&img, x, y); banner_draw(); - //print("\nPress any key to continue...\n", GFX_GRAY_50); + //cprintf("\nPress any key to continue...\n", GFX_GRAY_50); while (1) { if (keyboard_has_key()) { diff --git a/src/kernel/console/functions/whoami.c b/src/kernel/console/functions/whoami.c index da4cb21..18ed0b3 100644 --- a/src/kernel/console/functions/whoami.c +++ b/src/kernel/console/functions/whoami.c @@ -4,6 +4,6 @@ FHDR(cmd_whoami) { (void)s; - print(uci_get_user_name(), GFX_WHITE); - print("\n", GFX_WHITE); + cprintf(uci_get_user_name(), GFX_WHITE); + cprintf("\n", GFX_WHITE); } diff --git a/src/kernel/console/graph/print.c b/src/kernel/console/graph/print.c new file mode 100644 index 0000000..c2098ba --- /dev/null +++ b/src/kernel/console/graph/print.c @@ -0,0 +1,7 @@ +#include "print.h" + +// console print +void cprintf(const char *str, u32 color) +{ + string(str, color); +} diff --git a/src/kernel/console/graph/print.h b/src/kernel/console/graph/print.h new file mode 100644 index 0000000..28eff0a --- /dev/null +++ b/src/kernel/console/graph/print.h @@ -0,0 +1,9 @@ +#ifndef CPRINT_H +#define CPRINT_H + +#include +#include + +void cprintf(const char *str, u32 color); + +#endif diff --git a/src/kernel/console/shell_screen.c b/src/kernel/console/shell_screen.c index 53722dd..258eb0e 100644 --- a/src/kernel/console/shell_screen.c +++ b/src/kernel/console/shell_screen.c @@ -56,47 +56,47 @@ void shell_print_prompt(void) const char *format = conf_get(prompt_conf, prompt_conf_count, "format"); if (!format) { - printf("using standard"); - string("\n[", GFX_WHITE); - string(uci_get_pc_name(), GFX_WHITE); - string("@", GFX_WHITE); - string(uci_get_user_name(), GFX_WHITE); - string("]", GFX_WHITE); + //printf("using standard"); + cprintf("\n[", GFX_WHITE); + cprintf(uci_get_pc_name(), GFX_WHITE); + cprintf("@", GFX_WHITE); + cprintf(uci_get_user_name(), GFX_WHITE); + cprintf("]", white()); if (str_len(cwd) > 1 && cwd[str_len(cwd) - 1] == '/') { char prompt_cwd[MAX_PATH_LEN]; str_copy(prompt_cwd, cwd); prompt_cwd[str_len(cwd) - 1] = '\0'; - string(prompt_cwd, GFX_WHITE); + cprintf(prompt_cwd, white()); } else { - string(cwd, GFX_WHITE); + cprintf(cwd, white()); } - string("# ", GFX_BLUE); + cprintf("# ", blue()); return; } - string("\n", GFX_WHITE); + cprintf("\n", white()); for (const char *p = format; *p; p++) { if (*p == '%') { p++; - if (*p == 'u') string(uci_get_user_name(), GFX_WHITE); - else if (*p == 'h') string(uci_get_pc_name(), GFX_WHITE); + if (*p == 'u') cprintf(uci_get_user_name(), white()); + else if (*p == 'h') cprintf(uci_get_pc_name(), white()); else if (*p == 'w') { if (str_len(cwd) > 1 && cwd[str_len(cwd) - 1] == '/') { char prompt_cwd[MAX_PATH_LEN]; str_copy(prompt_cwd, cwd); prompt_cwd[str_len(cwd) - 1] = '\0'; - string(prompt_cwd, GFX_WHITE); + cprintf(prompt_cwd, white()); } else { - string(cwd, GFX_WHITE); + cprintf(cwd, white()); } } - else if (*p == '%') string("%", GFX_WHITE); + else if (*p == '%') cprintf("%", white()); } else { char c[2] = {*p, '\0'}; - string(c, GFX_WHITE); + cprintf(c, white()); } } } diff --git a/shared/string/log.c b/src/kernel/kernel_processes/bootscreen/log.c similarity index 99% rename from shared/string/log.c rename to src/kernel/kernel_processes/bootscreen/log.c index 316211e..4d8ce90 100644 --- a/shared/string/log.c +++ b/src/kernel/kernel_processes/bootscreen/log.c @@ -20,7 +20,6 @@ static u32 get_log_color(log_level_t level) { } - void log_message(const char *tag, const char *message, log_level_t level) { if (!tag || !message) return; diff --git a/shared/string/log.h b/src/kernel/kernel_processes/bootscreen/log.h similarity index 100% rename from shared/string/log.h rename to src/kernel/kernel_processes/bootscreen/log.h diff --git a/shared/string/print.c b/src/kernel/kernel_processes/bootscreen/print.c similarity index 98% rename from shared/string/print.c rename to src/kernel/kernel_processes/bootscreen/print.c index 2a80051..fddb00c 100644 --- a/shared/string/print.c +++ b/src/kernel/kernel_processes/bootscreen/print.c @@ -206,12 +206,6 @@ void string(const char *str, u32 color) printf("%s", str); // prints everything from the os terminal to the host-terminal } -// console print -void cprintf(const char *str, u32 color) -{ - string(str, color); -} - void IntToString(int value, char *buffer) { char temp[11]; diff --git a/shared/string/print.h b/src/kernel/kernel_processes/bootscreen/print.h similarity index 75% rename from shared/string/print.h rename to src/kernel/kernel_processes/bootscreen/print.h index 1a2616d..a1a9829 100644 --- a/shared/string/print.h +++ b/src/kernel/kernel_processes/bootscreen/print.h @@ -14,7 +14,4 @@ void printInt(int value, u32 color); void reset_cursor(void); -// i will slowly need to divide the bootscreen logs and console text... -void cprintf(const char *str, u32 color); - #endif diff --git a/shared/string/print_b.c b/src/kernel/kernel_processes/bootscreen/print_b.c similarity index 100% rename from shared/string/print_b.c rename to src/kernel/kernel_processes/bootscreen/print_b.c diff --git a/src/kernel/kernel_processes/kernel/gen.h b/src/kernel/kernel_processes/kernel/gen.h index 5a44279..dbdb4e0 100644 --- a/src/kernel/kernel_processes/kernel/gen.h +++ b/src/kernel/kernel_processes/kernel/gen.h @@ -14,7 +14,6 @@ #include #include #include -#include #include #include diff --git a/src/kernel/kernel_processes/loader.h b/src/kernel/kernel_processes/loader.h index dc2602d..88aac94 100644 --- a/src/kernel/kernel_processes/loader.h +++ b/src/kernel/kernel_processes/loader.h @@ -4,7 +4,7 @@ #include #define KPROC_MAX 255 -#define KPROC_NAME_LEN 64 +#define KPROC_NAME_LEN 15 // states #define KPROC_STATE_EMPTY 0 diff --git a/src/kernel/kernelslot/slot.c b/src/kernel/kernelslot/slot.c index 0fe293e..8081680 100644 --- a/src/kernel/kernelslot/slot.c +++ b/src/kernel/kernelslot/slot.c @@ -1,6 +1,5 @@ #include #include -#include #include char readslot(void) From 3809ad567083849f1c62dd0cf55ed6b1ea8451d7 Mon Sep 17 00:00:00 2001 From: emexos Date: Wed, 18 Feb 2026 20:47:27 +0100 Subject: [PATCH 05/41] just renamed exec to packages --- src/kernel/packages/cpio/cpio.c | 0 src/kernel/packages/cpio/cpio.h | 0 src/kernel/{exec => packages}/elf/loader.c | 0 src/kernel/{exec => packages}/elf/loader.h | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/kernel/packages/cpio/cpio.c create mode 100644 src/kernel/packages/cpio/cpio.h rename src/kernel/{exec => packages}/elf/loader.c (100%) rename src/kernel/{exec => packages}/elf/loader.h (100%) diff --git a/src/kernel/packages/cpio/cpio.c b/src/kernel/packages/cpio/cpio.c new file mode 100644 index 0000000..e69de29 diff --git a/src/kernel/packages/cpio/cpio.h b/src/kernel/packages/cpio/cpio.h new file mode 100644 index 0000000..e69de29 diff --git a/src/kernel/exec/elf/loader.c b/src/kernel/packages/elf/loader.c similarity index 100% rename from src/kernel/exec/elf/loader.c rename to src/kernel/packages/elf/loader.c diff --git a/src/kernel/exec/elf/loader.h b/src/kernel/packages/elf/loader.h similarity index 100% rename from src/kernel/exec/elf/loader.h rename to src/kernel/packages/elf/loader.h From 816f79a9da35c26cf1d9c21bb1248b4f4f81a625 Mon Sep 17 00:00:00 2001 From: emexos Date: Thu, 19 Feb 2026 11:42:28 +0100 Subject: [PATCH 06/41] [CPIO] cpio newc parser, [RD] loading ram disk with cpio --- .gitignore | 2 - Makefile | 37 +-- common.mk | 2 +- dsk/disk.img | Bin 0 -> 67108864 bytes dsk/initrd.cpio | Bin 0 -> 185344 bytes dsk/rd/boot/activeslot.txt | 1 + .../rd/boot}/ui/assets/bootlogo.bin | Bin dsk/rd/emr/assets/copy_folders.bmp | Bin 0 -> 1078 bytes dsk/rd/emr/assets/file.bmp | Bin 0 -> 1078 bytes dsk/rd/emr/assets/folder.bmp | Bin 0 -> 1078 bytes dsk/rd/emr/assets/locked_folder.bmp | Bin 0 -> 1078 bytes dsk/rd/emr/assets/system_file.bmp | Bin 0 -> 1078 bytes dsk/rd/emr/assets/this_disk.bmp | Bin 0 -> 1078 bytes {shared => dsk/rd/emr/config}/keymaps/DE.map | 0 {shared => dsk/rd/emr/config}/keymaps/PL.map | 0 {shared => dsk/rd/emr/config}/keymaps/RU.map | 0 {shared => dsk/rd/emr/config}/keymaps/US.map | 0 dsk/rd/emr/config/keymaps/keymap.cfg | 6 + dsk/rd/emr/config/system.ecfg | 7 + dsk/rd/emr/config/user.ecfg | 9 + {src => dsk/rd/emr}/drivers/drivers.cfg | 0 dsk/rd/emr/system.ini | 3 + dsk/rd/emr/users.ini | 7 + dsk/rd/user/apps/hello.elf | Bin 0 -> 4536 bytes dsk/rd/user/apps/test.t | 1 + {shared => dsk/rd/user}/images/frog.bmp | Bin limine.conf | 20 +- shared/keymaps/dirs.cfg | 3 - src/kernel/console/console.c | 5 +- src/kernel/file_systems/vfs/vfs_init.c | 13 +- src/kernel/inits/init.c | 20 +- src/kernel/inits/initrd/initrd.c | 83 +++++++ src/kernel/inits/initrd/initrd.h | 9 + src/kernel/interface/partition.c | 27 +-- src/kernel/kernel.c | 31 ++- src/kernel/kernel_processes/kernel/gen.h | 2 +- src/kernel/packages/cpio/cpio.c | 212 ++++++++++++++++++ src/kernel/packages/cpio/cpio.h | 73 ++++++ src/kernel/user/_start.c | 6 +- tools/initrd.sh | 28 +++ 40 files changed, 506 insertions(+), 101 deletions(-) create mode 100644 dsk/disk.img create mode 100644 dsk/initrd.cpio create mode 100644 dsk/rd/boot/activeslot.txt rename {shared => dsk/rd/boot}/ui/assets/bootlogo.bin (100%) create mode 100644 dsk/rd/emr/assets/copy_folders.bmp create mode 100644 dsk/rd/emr/assets/file.bmp create mode 100644 dsk/rd/emr/assets/folder.bmp create mode 100644 dsk/rd/emr/assets/locked_folder.bmp create mode 100644 dsk/rd/emr/assets/system_file.bmp create mode 100644 dsk/rd/emr/assets/this_disk.bmp rename {shared => dsk/rd/emr/config}/keymaps/DE.map (100%) rename {shared => dsk/rd/emr/config}/keymaps/PL.map (100%) rename {shared => dsk/rd/emr/config}/keymaps/RU.map (100%) rename {shared => dsk/rd/emr/config}/keymaps/US.map (100%) create mode 100644 dsk/rd/emr/config/keymaps/keymap.cfg create mode 100644 dsk/rd/emr/config/system.ecfg create mode 100644 dsk/rd/emr/config/user.ecfg rename {src => dsk/rd/emr}/drivers/drivers.cfg (100%) create mode 100644 dsk/rd/emr/system.ini create mode 100644 dsk/rd/emr/users.ini create mode 100755 dsk/rd/user/apps/hello.elf create mode 100644 dsk/rd/user/apps/test.t rename {shared => dsk/rd/user}/images/frog.bmp (100%) delete mode 100644 shared/keymaps/dirs.cfg create mode 100644 src/kernel/inits/initrd/initrd.c create mode 100644 src/kernel/inits/initrd/initrd.h create mode 100755 tools/initrd.sh diff --git a/.gitignore b/.gitignore index 90c9602..5e2314a 100644 --- a/.gitignore +++ b/.gitignore @@ -17,8 +17,6 @@ tools/png tools/bmp tools/lg.py -dsk/hdd0 -dsk/disk.img src/kernel/console/functions/edit.c diff --git a/Makefile b/Makefile index f06c8a9..48acba6 100644 --- a/Makefile +++ b/Makefile @@ -42,16 +42,8 @@ $(LIMINE_TOOL): $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @echo "[ISO] Creating bootable image..." @rm -rf $(ISODIR) + @rm -f $(DISK_DIR)/initrd.cpio @mkdir -p $(ISODIR)/boot/limine $(ISODIR)/EFI/BOOT -#@cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/ - @cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/kernel_a.elf - @cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/kernel_b.elf -#@cp activeslot.txt $(ISODIR)/boot/activeslot.cfg # slot system - - @cp $< $(ISODIR)/boot/limine/ - @cp $(addprefix $(INCLUDE_DIR)/limine/limine-, bios.sys bios-cd.bin uefi-cd.bin) $(ISODIR)/boot/limine/ - @cp $(addprefix $(INCLUDE_DIR)/limine/BOOT, IA32.EFI X64.EFI) $(ISODIR)/EFI/BOOT/ - @mkdir -p $(ISODIR)/boot @mkdir -p $(ISODIR)/boot/ui @mkdir -p $(ISODIR)/boot/ui/fonts @@ -60,27 +52,20 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @mkdir -p $(ISODIR)/boot/keymaps @mkdir -p $(ISODIR)/boot/images @mkdir -p $(ISODIR)/boot/programs + @cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/kernel_a.elf + @cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/kernel_b.elf + @cp $< $(ISODIR)/boot/limine/ + @cp $(addprefix $(INCLUDE_DIR)/limine/limine-, bios.sys bios-cd.bin uefi-cd.bin) $(ISODIR)/boot/limine/ + @cp $(addprefix $(INCLUDE_DIR)/limine/BOOT, IA32.EFI X64.EFI) $(ISODIR)/EFI/BOOT/ @echo "[MOD] creating executables..." - @cp src/userspace/hello.elf $(ISODIR)/boot/programs/hello.elf - -#@echo "[MOD] copying configs..." -#@cp shared/theme/bootconf.emcg $(ISODIR)/boot/bootconf.emcg -#@cp shared/theme/font8x15.bin $(ISODIR)/boot/liminefont.f15 - - @echo "[MOD] copying assets..." - @cp shared/ui/assets/bootlogo.bin $(ISODIR)/boot/ui/assets/ -#@cp shared/images/logo.bmp $(ISODIR)/boot/images/ -#@cp shared/images/background.bmp $(ISODIR)/boot/images/ - @cp shared/images/frog.bmp $(ISODIR)/boot/images/ + @cp src/userspace/hello.elf $(DISK_DIR)/rd/user/apps/hello.elf -#@cp shared/images/bg.jpg $(ISODIR)/boot/ + @echo "[MOD] creating initrd.cpio..." + @chmod +x tools/initrd.sh + ./tools/initrd.sh + @cp $(DISK_DIR)/initrd.cpio $(ISODIR)/boot/ - @echo "[MOD] copying keymaps..." - @cp shared/keymaps/US.map $(ISODIR)/boot/keymaps/ - @cp shared/keymaps/DE.map $(ISODIR)/boot/keymaps/ - @cp shared/keymaps/PL.map $(ISODIR)/boot/keymaps/ - @cp shared/keymaps/RU.map $(ISODIR)/boot/keymaps/ @xorriso -as mkisofs -b boot/limine/limine-bios-cd.bin \ -no-emul-boot -boot-load-size 4 -boot-info-table \ diff --git a/common.mk b/common.mk index 0b41dc3..7ea83c1 100644 --- a/common.mk +++ b/common.mk @@ -28,7 +28,7 @@ SRC_DIR := src USERSPACE_DIR = src/userspace USERSPACE_BUILD = build/userspace BUILD_DIR := build -DISK_DIR := $(BUILD_DIR)/dsk +DISK_DIR := dsk DISK_IMG := $(DISK_DIR)/disk.img INCLUDE_DIR := include ISODIR := $(BUILD_DIR)/isodir diff --git a/dsk/disk.img b/dsk/disk.img new file mode 100644 index 0000000000000000000000000000000000000000..dbfe74837305b1acbd38acda5d30f92ad39ee230 GIT binary patch literal 67108864 zcmeFzF>6yn902f32MyJ>PJ)w%n@hmDRv|;&N~LWiLlItSq9HK}c>xJHdc6H0*n5oYf(MHq#r)n~(>mBUKy=p@eDtMcjd z{XFhI{{HdP<&z(SdvCt(e!Ckc58h7y?EjuToIILdoxX3TF@HMUK}_O#w>wDA+x2+S zOk1TGU$^T?T93_6TJJCA8|`kdH;hT=VrRS8ucv7~9L83C7zf=r=;xVtNwX76rBdA4 zUiwaxRRY!V@o`dKmGN$U1p57Q^6O<-{M$=qRmV$H69NPX5FkKcBLv+4H{zIYDAN7^ z2AH*a?f$=3$Eg?s1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&U*g%0U&#ar5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAaE@(%d)*J z@AC+S009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXzSD*F=!Pz2iu8GPC z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1pcx^2Lb>9 z002P#uZ@u4z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95{d-IuHN=0002;e{F;W2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J^Xw(18E|0001x|7#;8IB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yRZ zhYkb)0001h{9hX(!GQw@4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`?QJ9Hob00000%I004meUmGF8fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB)YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA G;DG=?Yp37< literal 0 HcmV?d00001 diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio new file mode 100644 index 0000000000000000000000000000000000000000..378789868991c828e744da6a7f1a25b66ab25d9c GIT binary patch literal 185344 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 Cg5zNT literal 0 HcmV?d00001 diff --git a/dsk/rd/emr/assets/folder.bmp b/dsk/rd/emr/assets/folder.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b83966dff5bb70a12b7e45cf86ce01865292f03b GIT binary patch literal 1078 zcmZ?rHDh4_12Z700mK4O%*dbsWB~zC{se! zGYDdkzGsKCz!;<+#D2f@m{NP7M7(pZ&*&k@dsaAp3W}y#{eR0sS{W z?8Y!3y0{s;)~lxGOfrx196m9e`?}iBIv>SKJ~xWYeFS$M~90`ReOykVg%_f10iDr&*aN z<@bJSjqz{SP2R81RSnyp9(n`cKhly=-|iqAKi_d|f5@6u+H&pecK_G&k@}*wgRjM1 zG20(Ikp~X)#Zj35)$;MvS5Tfb|2Xdiuz}|*cS!p;=I;5nH?|eaw_Ix2nB`boIi4#% J{(qpErN0Euk|Y2C literal 0 HcmV?d00001 diff --git a/dsk/rd/emr/assets/this_disk.bmp b/dsk/rd/emr/assets/this_disk.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8f6b97614051174f88a5e9aaa3e404431e6d688e GIT binary patch literal 1078 zcmZ?rHDh4_12Z700mK4O%*dbsWB~zC{smNw_8G!C424izS z%nzV+KnSCU9WuY7qT)Y3jI0)&O-vfZ<#v!+w9*eU7nEK>fE@b?>4)V7T<*uEAE*zW Me@XQ}NG}Kg0EG?L&;S4c literal 0 HcmV?d00001 diff --git a/shared/keymaps/DE.map b/dsk/rd/emr/config/keymaps/DE.map similarity index 100% rename from shared/keymaps/DE.map rename to dsk/rd/emr/config/keymaps/DE.map diff --git a/shared/keymaps/PL.map b/dsk/rd/emr/config/keymaps/PL.map similarity index 100% rename from shared/keymaps/PL.map rename to dsk/rd/emr/config/keymaps/PL.map diff --git a/shared/keymaps/RU.map b/dsk/rd/emr/config/keymaps/RU.map similarity index 100% rename from shared/keymaps/RU.map rename to dsk/rd/emr/config/keymaps/RU.map diff --git a/shared/keymaps/US.map b/dsk/rd/emr/config/keymaps/US.map similarity index 100% rename from shared/keymaps/US.map rename to dsk/rd/emr/config/keymaps/US.map diff --git a/dsk/rd/emr/config/keymaps/keymap.cfg b/dsk/rd/emr/config/keymaps/keymap.cfg new file mode 100644 index 0000000..dc62f5d --- /dev/null +++ b/dsk/rd/emr/config/keymaps/keymap.cfg @@ -0,0 +1,6 @@ +KEYMAP: US + +#DE: path("/emr/config/keymaps/DE.map"); +#PL: path("/emr/config/keymaps/PL.map"); +#US: path("/emr/config/keymaps/US.map"); +#RU: path("/emr/config/keymaps/RU.map"); diff --git a/dsk/rd/emr/config/system.ecfg b/dsk/rd/emr/config/system.ecfg new file mode 100644 index 0000000..add10e2 --- /dev/null +++ b/dsk/rd/emr/config/system.ecfg @@ -0,0 +1,7 @@ +# +# System config +# system.emcg (emex config) +# + +OS_DEFNAME: "emexOS [x86_64] "; +OS_DEFRELEASE: "v0.5"; diff --git a/dsk/rd/emr/config/user.ecfg b/dsk/rd/emr/config/user.ecfg new file mode 100644 index 0000000..b3b9df5 --- /dev/null +++ b/dsk/rd/emr/config/user.ecfg @@ -0,0 +1,9 @@ +# +# User config +# user.emcg (emex config) +# + +PC_NAME: "pc" +USER_NAME: "emex" +PASSWORD: "emex" +DEFAULT_KM: US diff --git a/src/drivers/drivers.cfg b/dsk/rd/emr/drivers/drivers.cfg similarity index 100% rename from src/drivers/drivers.cfg rename to dsk/rd/emr/drivers/drivers.cfg diff --git a/dsk/rd/emr/system.ini b/dsk/rd/emr/system.ini new file mode 100644 index 0000000..232d78d --- /dev/null +++ b/dsk/rd/emr/system.ini @@ -0,0 +1,3 @@ +[GENERAL] +default_shell="/user/bin/shell.elf" +root_user=admin # from users.ini diff --git a/dsk/rd/emr/users.ini b/dsk/rd/emr/users.ini new file mode 100644 index 0000000..a78d33f --- /dev/null +++ b/dsk/rd/emr/users.ini @@ -0,0 +1,7 @@ +[USERS] +users=admin,user + +[admin] +permissions=administrator +[user] +permissions=user diff --git a/dsk/rd/user/apps/hello.elf b/dsk/rd/user/apps/hello.elf new file mode 100755 index 0000000000000000000000000000000000000000..3e654b5096a5d36b2509fbb8f836460005e334dc GIT binary patch literal 4536 zcmeI0p$@`842HYG2q=bIg2EyQ5<$or$OM8nAdrw?Fx!ctcs1N!hzFqE_1IWQFyQ`* z{nz&I-SWxa*4s@O1mq*66=`OqR()8DSTYxe7VI$;QMd9&Qm*^Px!mYT6R!=Qb|4@C z0w4eaAOHd&00JNY0w4eaAOHgYCXkl*CBKoD<&juElRXt|_)U!Y8u^!AeVwU}x`%k}8?;|= 0) { const char *default_config = "# US, PL, DE \nKEYMAP: US\n"; fs_write(fd_keymap_cfg, default_config, str_len(default_config)); fs_close(fd_keymap_cfg); } - log("[FS]","created keymap.cfg\n", d); + log("[FS]","created keymap.cfg\n", d);*/ // load all keymaps - limine_module_load("US.map", "/emr/config/keymaps/US.map"); - limine_module_load("DE.map", "/emr/config/keymaps/DE.map"); - limine_module_load("PL.map", "/emr/config/keymaps/PL.map"); - limine_module_load("RU.map", "/emr/config/keymaps/RU.map"); + //limine_module_load("US.map", "/emr/config/keymaps/US.map"); + //limine_module_load("DE.map", "/emr/config/keymaps/DE.map"); + //limine_module_load("PL.map", "/emr/config/keymaps/PL.map"); + //limine_module_load("RU.map", "/emr/config/keymaps/RU.map"); } void logos_load(void) { - limine_module_load("bootlogo.bin", "/boot/ui/assets/bootlogo.bin"); + //limine_module_load("bootlogo.bin", "/boot/ui/assets/bootlogo.bin"); //limine_module_load("logo.bmp", "/emr/assets/logo.bmp"); //limine_module_load("console_icon.bmp", "/images/iconsole.bmp"); //limine_module_load("desktop_icon.bmp", "/images/idesktop.bmp"); //fs_mkdir("/emr/images/"); //limine_module_load("background.bmp", "/emr/assets/bg.bmp"); - limine_module_load("frog.bmp", "/emr/assets/frog.bmp"); + //limine_module_load("frog.bmp", "/emr/assets/frog.bmp"); } void users_load(void) { - int fd_users = fs_open(USERINI_PATH "", O_CREAT | O_WRONLY); // how can this be possible..... + /*int fd_users = fs_open(USERINI_PATH "", O_CREAT | O_WRONLY); // how can this be possible..... int fd_system = fs_open(SYSTEMINI_PATH "", O_CREAT | O_WRONLY); // if it works don't touch it! if (fd_users >= 0) { @@ -53,7 +53,7 @@ void users_load(void) { "root_user=admin # from users.ini\n"; fs_write(fd_system, system_config, str_len(system_config)); fs_close(fd_system); - } + }*/ //fs_mkdir("/user"); //fs_mkdir("/user/bin"); //fs_mkdir("/user/apps"); diff --git a/src/kernel/inits/initrd/initrd.c b/src/kernel/inits/initrd/initrd.c new file mode 100644 index 0000000..7024760 --- /dev/null +++ b/src/kernel/inits/initrd/initrd.c @@ -0,0 +1,83 @@ +#include "initrd.h" +#include +#include +#include // module_request +#include +#include +#include +#include + +int initrd_load(void) +{ + log("[INITRD]", "looking for " INITRD_MODULE_NAME "...\n", d); + + if (!module_request.response || + module_request.response->module_count == 0) + { + log("[INITRD]", "no Limine modules available\n", warning); + return -1; + } + + struct limine_module_response *resp = module_request.response; + struct limine_file *initrd_file = NULL; + + for (u64 i = 0; i < resp->module_count; i++) { + const char *path = resp->modules[i]->path; + + // extract just the filename from the Limine path + const char *fname = path; + for (const char *p = path; *p; p++) { + if (*p == '/') fname = p + 1; + } + + if (str_equals(fname, INITRD_MODULE_NAME)) { + initrd_file = resp->modules[i]; + break; + } + } + + if (!initrd_file) { + log("[INITRD]", INITRD_MODULE_NAME " not found in Limine modules\n", warning); + //hcf(); + return -1; + } + + + + { + char buf[48]; + str_copy(buf, "found at 0x"); + str_from_hex(buf + str_len(buf), (u64)initrd_file->address); + str_append(buf, " ("); + str_append_uint(buf, (u32)initrd_file->size); + str_append(buf, " bytes)\n"); + log("[INITRD]", buf, d); + } + + + // CPIO newc magic + const u8 *raw = (const u8 *)initrd_file->address; + if (initrd_file->size < 6 || + raw[0]!='0' || raw[1]!='7' || raw[2]!='0' || + raw[3]!='7' || raw[4]!='0' || (raw[5]!='1' && raw[5]!='2')) + { + log("[INITRD]", "the initrd file uses the wrong format, need to be newc\n", error); + return -1; + } + + + int extracted = cpio_extract_to_vfs( + raw, + (u64)initrd_file->size, + "/" + ); + + if (extracted < 0) { + log("[INITRD]", "extraction failed\n", error); + //hcf(); + return -1; + } + + //log("[INITRD]", "mounted at the root\n", success); + return extracted; +} diff --git a/src/kernel/inits/initrd/initrd.h b/src/kernel/inits/initrd/initrd.h new file mode 100644 index 0000000..27882d2 --- /dev/null +++ b/src/kernel/inits/initrd/initrd.h @@ -0,0 +1,9 @@ +#ifndef INITRD_H +#define INITRD_H + +#define INITRD_MOUNT_POINT "/" +#define INITRD_MODULE_NAME "initrd.cpio" + +int initrd_load(void); + +#endif diff --git a/src/kernel/interface/partition.c b/src/kernel/interface/partition.c index 9ef18d1..68dfb7b 100644 --- a/src/kernel/interface/partition.c +++ b/src/kernel/interface/partition.c @@ -55,7 +55,7 @@ int partition_init(void) { BOOTUP_PRINT(" Partition ", white()); BOOTUP_PRINT_INT(partition_count, white()); BOOTUP_PRINT(": ", white()); - BOOTUP_PRINT(part->type_name, cyan()); + BOOTUP_PRINT(part->type_name, white()); BOOTUP_PRINT(" LBA: ", white()); BOOTUP_PRINT_INT(part->start_lba, white()); BOOTUP_PRINT(", sectors: ", white()); @@ -101,16 +101,16 @@ int partition_needs_format(void) { //not a real format rn but it works... so i don't touch it int partition_format_disk_fat32(void) { - BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); - BOOTUP_PRINT("formatting disk with FAT32...\n", yellow()); + //BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); + log("[PARTITION]","formatting disk with FAT32...\n", d); // NOTE: // this will overwrite everything withouth backups or other ATAdevice_t *device = ATAget_device(0); if (!device) { - BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); - BOOTUP_PRINT("nothing foun\n", red()); + //BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); + log("[PARTITION]","nothing foun\n", error); return -1; } @@ -126,8 +126,7 @@ int partition_format_disk_fat32(void) { u32 partition_sectors ; //= total_sectors - start_lba - 2048; if (total_sectors_64 < (start_lba + 2048)) { - BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); - BOOTUP_PRINT("disk is too small\n", red()); + log("[PARTITION]","disk is too small\n", error); return -1; } if (total_sectors_64 > 0xFFFFFFFF) { @@ -139,8 +138,7 @@ int partition_format_disk_fat32(void) { partition_sectors = total_sectors - start_lba - 2048; if (partition_sectors < PARTSECSIZE) { - BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); - BOOTUP_PRINT("partition too small\n", red()); + log("[PARTITION]","partition too small\n", error); return -1; } @@ -155,18 +153,17 @@ int partition_format_disk_fat32(void) { if (mbr_create_partition(&mbr, 0, MBR_PARTITION_FAT32_LBA, start_lba, partition_sectors) != 0) { - BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); - BOOTUP_PRINT("failed to create partition entry\n", red()); + log("[PARTITION]","failed to create partition entry\n", error); return -1; } if (mbr_write(&mbr) != 0) { - BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); - BOOTUP_PRINT("failed to write MBR\n", red()); + //BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); + log("[PARTITION]","failed to write MBR\n", error); return -1; } - BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); - BOOTUP_PRINT("MBR created .\n", green()); + //BOOTUP_PRINT("[PARTITION] ", GFX_GRAY_70); + log("[PARTITION]","MBR created \n", d); return 0; } diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 2dc1f2e..3138376 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -37,7 +37,7 @@ //Desktop Enviroment #include // executables -#include +#include // Memory @@ -60,9 +60,11 @@ klime_t *klime = NULL; ulime_t *ulime = NULL; #endif -//vFS & fs +//vFS & fs & disk #include #include +#include +#include #if ENABLE_FAT32 #include // finally fat32! // interface @@ -70,9 +72,6 @@ klime_t *klime = NULL; #include #include #endif - -// disk drivers -#include #if ENABLE_ATA #include #endif @@ -113,17 +112,14 @@ void _start(void) // Initialize framebuffer graphics struct limine_framebuffer *fb = framebuffer_request.response->framebuffers[0]; graphics_init(fb); - //draw_logo(); - kproc_loader_init(); init_bootscreen(); fm_init(); - clear(bg()); cursor_x = 0; cursor_y = 0; font_scale = 1; - f_setcontext(FONT_8X8); + clear(bg()); BOOTUP_PRINT("\n\n ======================\n", white()); BOOTUP_PRINT(" | Welcome to ", white()); @@ -251,6 +247,15 @@ void _start(void) } + // initialize Limine modules + limine_modules_init(); { + initrd_load(); + dualslotvalidating(); + keymaps_load(); + logos_load(); + users_load(); + } + #if ENABLE_ATA == 1 ata_init();{ // Initialize partition system @@ -292,13 +297,6 @@ void _start(void) log("[ATA]", "skipped (hardware compatibility)\n", warning); #endif - // Initialize Limine modules - limine_modules_init(); { - dualslotvalidating(); - keymaps_load(); - logos_load(); - users_load(); - } //logo_init(); //draw_logo(); @@ -353,6 +351,7 @@ void _start(void) genprocs(); proc_list_procs(proc_mgr); dump_kprocesses(); + //hcf(); DEinit(); //should not reach here diff --git a/src/kernel/kernel_processes/kernel/gen.h b/src/kernel/kernel_processes/kernel/gen.h index dbdb4e0..8c4548f 100644 --- a/src/kernel/kernel_processes/kernel/gen.h +++ b/src/kernel/kernel_processes/kernel/gen.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/kernel/packages/cpio/cpio.c b/src/kernel/packages/cpio/cpio.c index e69de29..4d6d2eb 100644 --- a/src/kernel/packages/cpio/cpio.c +++ b/src/kernel/packages/cpio/cpio.c @@ -0,0 +1,212 @@ +#include "cpio.h" + +#include +#include +#include +#include +#include +#include + +static u32 parse_hex8(const char **p) +{ + u32 val = 0; + for (int i = 0; i < 8; i++) { + char c = (*p)[i]; + u32 n; + if (c >= '0' && c <= '9') n = (u32)(c - '0'); + else if (c >= 'a' && c <= 'f') n = (u32)(c - 'a' + 10); + else if (c >= 'A' && c <= 'F') n = (u32)(c - 'A' + 10); + else n = 0; + val = (val << 4) | n; + } + *p += 8; + return val; +} + +static inline u64 align4(u64 n){ return (n + 3) & ~(u64)3; } + +// pub iterators +// +void cpio_iter_init(cpio_iter_t *iter, const u8 *data, u64 size) +{ + if (!iter) return; + iter->base = data; + iter->size = size; + iter->offset = 0; +} + +int cpio_iter_next(cpio_iter_t *iter, cpio_entry_t *entry) +{ + if (!iter || !entry) return CPIO_ERR_TRUNC; + + u64 off = iter->offset; + + if (off+CPIO_HEADER_SIZE > iter->size) return CPIO_ERR_TRUNC; + + const char *hdr = (const char *)(iter->base + off); + + if (!(hdr[0]=='0' && hdr[1]=='7' && hdr[2]=='0' && + hdr[3]=='7' && hdr[4]=='0' && (hdr[5]=='1' || hdr[5]=='2'))) + return CPIO_ERR_MAGIC; + + const char *p = hdr + 6; + entry->ino = parse_hex8(&p); + entry->mode = parse_hex8(&p); + entry->uid = parse_hex8(&p); + entry->gid = parse_hex8(&p); + entry->nlink = parse_hex8(&p); + entry->mtime = parse_hex8(&p); + entry->filesize = parse_hex8(&p); + entry->devmajor = parse_hex8(&p); + entry->devminor = parse_hex8(&p); + entry->rdevmajor = parse_hex8(&p); + entry->rdevminor = parse_hex8(&p); + entry->namesize = parse_hex8(&p); + parse_hex8(&p); // crc field / ignored + + off += CPIO_HEADER_SIZE; + + if (off+ entry->namesize > iter->size) return CPIO_ERR_TRUNC; + entry->name = (const char *)(iter->base + off); + + off = iter->offset + align4(CPIO_HEADER_SIZE + entry->namesize); + + if (str_equals(entry->name, CPIO_TRAILER)){ + iter->offset = off; + + return CPIO_ERR_EOF; + } + + if (off + entry->filesize > iter->size) return CPIO_ERR_TRUNC; + entry->data = iter->base + off; + iter->offset = off + align4(entry->filesize); + + return CPIO_OK; +} + +#define CPIO_MAX_ENTRIES 512 + +typedef struct { + cpio_entry_t e; + char path[256]; +} cpio_staged_t; + +static cpio_staged_t _staged[CPIO_MAX_ENTRIES]; + +static void make_path(char *out, const char *base, const char *name) +{ + // strip leading "./" or lone "." + if (name[0] == '.' && name[1] == '/') name += 2; + if (name[0] == '.' && name[1] == '\0') { str_copy(out, base); return; } + + if (str_equals(base, "/")) { + out[0] = '/'; + str_copy(out + 1, name); + } else { + str_copy(out, base); + int bl = str_len(out); + if (bl > 0 && out[bl-1] != '/') str_append(out, "/"); + str_append(out, name); + } + // remove trailing slash unless root + int l = str_len(out); + if (l >1 && out[l-1] == '/') out[l-1] = '\0'; +} + +int cpio_extract_to_vfs(const u8 *data, u64 size, const char *base_path) +{ + if (!data || size == 0 || !base_path) return CPIO_ERR_TRUNC; + + cpio_iter_t iter; + cpio_entry_t entry; + cpio_iter_init(&iter, data, size); + + int total = 0; + int staged = 0; + + // self explaining i think... reading archive.... + print("\n", white()); + log("[CPIO]", "reading archive...\n", d); + + while (staged < CPIO_MAX_ENTRIES) { + int rc = cpio_iter_next(&iter, &entry); + if (rc == CPIO_ERR_EOF) break; + if (rc != CPIO_OK) { log("[CPIO]", "parse error\n", error); return rc; } + + const char *n = entry.name; + //strips "./" or "." + if (n[0]=='.' && n[1]=='\0') continue; + if (n[0]=='.' && n[1]=='/' && n[2]=='\0') continue; + if (!cpio_is_file(&entry) && !cpio_is_dir(&entry) && !cpio_is_symlink(&entry)) continue; + + cpio_staged_t *s = &_staged[staged]; + s->e = entry; + make_path(s->path, base_path, entry.name); + + if (cpio_is_dir(&entry)) { + log("[CPIO]"," dir ", d);} + else { + log("[CPIO]"," file ", d);} + print(s->path, white()); + if (cpio_is_file(&entry) && entry.filesize > 0) { + char buf[20]; + str_copy(buf, " ("); + str_append_uint(buf, entry.filesize); // shows how many bytes a file has + str_append(buf, "B)"); + print(buf, white()); + } + print("\n", white()); + staged++; + } + print("\n", white()); + + // only now create all directorys + // (just made it so it looks better...) + for (int i = 0; i < staged; i++) { + if (cpio_is_dir(&_staged[i].e)) { + fs_mkdir(_staged[i].path); + total++; + } + } + + // this writes the files but it can also overwrite files + for (int i = 0; i < staged; i++) + { + cpio_staged_t *s = &_staged[i]; + if (!cpio_is_file(&s->e) && !cpio_is_symlink(&s->e)) continue; + + int fd = fs_open(s->path, O_CREAT | O_WRONLY); + if (fd < 0) continue; + if (s->e.filesize > 0) + fs_write(fd, (void *)s->e.data, s->e.filesize); + fs_close(fd); + total++; + } + + char buf[32]; + str_copy(buf, ""); + str_append_uint(buf, (u32)total); + log("[CPIO]", "extracted ", d); + print(buf, white()); + print(" entries\n", white()); + + return total; +} + +int cpio_find(const u8 *data, u64 size, const char *name, cpio_entry_t *entry) +{ + if (!data || !name || !entry) return CPIO_ERR_TRUNC; + + cpio_iter_t iter; + cpio_iter_init(&iter, data, size); + + while (1) { + int rc = cpio_iter_next(&iter, entry); + if (rc == CPIO_ERR_EOF) return CPIO_ERR_EOF; + if (rc != CPIO_OK) return rc; + + const char *n = entry->name; + if (n[0]=='.' && n[1]=='/') n += 2; + if (str_equals(n, name)) return CPIO_OK; + } +} diff --git a/src/kernel/packages/cpio/cpio.h b/src/kernel/packages/cpio/cpio.h index e69de29..2323a4c 100644 --- a/src/kernel/packages/cpio/cpio.h +++ b/src/kernel/packages/cpio/cpio.h @@ -0,0 +1,73 @@ +#ifndef CPIO_H +#define CPIO_H + +#include + +// what the heck is newc format bro..... :( +#define CPIO_MAGIC_NEWC "070701" +#define CPIO_MAGIC_NEWC_CRC "070702" +#define CPIO_MAGIC_LEN 6 + +// signals end of the archive +#define CPIO_TRAILER "TRAILER!!!" + +// newc header is always 110 bytes before the filename +#define CPIO_HEADER_SIZE 110 + +#define CPIO_MODE_IFMT 0170000 // mask to get file type bits +#define CPIO_MODE_IFSOCK 0140000 +#define CPIO_MODE_IFLNK 0120000 // link +#define CPIO_MODE_IFREG 0100000 // regular file +#define CPIO_MODE_IFBLK 0060000 // block device (linux-> lsblk) +#define CPIO_MODE_IFDIR 0040000 +#define CPIO_MODE_IFCHR 0020000 // character device +#define CPIO_MODE_IFIFO 0010000 // FIFO == named pipe + + +typedef struct { + u32 ino; + u32 mode; + u32 uid; + u32 gid; + u32 nlink; + u32 mtime; + u32 filesize; + u32 devmajor; + u32 devminor; + u32 rdevmajor; + u32 rdevminor; + u32 namesize;// includes null terminator + + const char *name; // pointer into archive data, NOT a copy + const u8 *data; // pointer to file data inside archive, NOT a copy +} cpio_entry_t; +typedef struct { + const u8 *base; // start of CPIO archive in memory + u64 size; // total archive size in bytes + u64 offset; // current parse position +} cpio_iter_t; + +// retc +#define CPIO_OK 0 +#define CPIO_ERR_MAGIC (-1) // wrong magic +#define CPIO_ERR_TRUNC (-2) // archive trunctaded +#define CPIO_ERR_EOF (-3) // TRAILER!!! end + + +void cpio_iter_init(cpio_iter_t *iter, const u8 *data, u64 size); +int cpio_iter_next(cpio_iter_t *iter, cpio_entry_t *entry); +int cpio_extract_to_vfs(const u8 *data, u64 size, const char *base_path); +int cpio_find(const u8 *data, u64 size, const char *name, cpio_entry_t *entry); + + +static inline int cpio_is_file(const cpio_entry_t *e) { + return (e->mode & CPIO_MODE_IFMT) == CPIO_MODE_IFREG; +} +static inline int cpio_is_dir(const cpio_entry_t *e) { + return (e->mode & CPIO_MODE_IFMT) == CPIO_MODE_IFDIR; +} +static inline int cpio_is_symlink(const cpio_entry_t *e) { + return (e->mode & CPIO_MODE_IFMT) == CPIO_MODE_IFLNK; +} + +#endif diff --git a/src/kernel/user/_start.c b/src/kernel/user/_start.c index bc65de9..d900568 100644 --- a/src/kernel/user/_start.c +++ b/src/kernel/user/_start.c @@ -19,9 +19,9 @@ void DEinit(void) */ - if (!login_authenticate()) { - hcf(); - } + //if (!login_authenticate()) { + // hcf(); + //} // smth like desktop enviroment and userswitch are here diff --git a/tools/initrd.sh b/tools/initrd.sh new file mode 100755 index 0000000..aa4ffb6 --- /dev/null +++ b/tools/initrd.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -euo pipefail + + +SRC="./dsk/rd" +OUT="./dsk/initrd.cpio" + + +if [ ! -d "$SRC" ]; then + echo "error: $SRC not found" + exit 1 +fi + + +# pick cpio binaryv +CPIO="cpio" +if [ "$(uname -s)" = "Darwin" ] && command -v gcpio &>/dev/null; then + CPIO="gcpio" # on macos just install it with brew install cpio +fi + +( + cd "$SRC" + # -H newc = header is newc (the kernel only supports newc now) + # -R 0:0 = force uid/gid 0 + find . | sort | "$CPIO" -o -H newc -R 0:0 +) > "$OUT" + +echo "done: $OUT ($(wc -c < "$OUT" | tr -d ' ') bytes)" From 224ea5ef18f8fefa43012bbababb5ad8e95967a8 Mon Sep 17 00:00:00 2001 From: emexos Date: Thu, 19 Feb 2026 15:48:17 +0100 Subject: [PATCH 07/41] keyboard fixed, init script fixed, prompt fixed --- dsk/initrd.cpio | Bin 185344 -> 185344 bytes src/drivers/ps2/keyboard/loader.c | 144 ++++++++-------------------- src/kernel/console/console.c | 38 +------- src/kernel/console/console.h | 1 + src/kernel/console/functions/help.c | 1 + src/kernel/console/shell_screen.c | 10 +- tools/initrd.sh | 11 ++- 7 files changed, 57 insertions(+), 148 deletions(-) diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 378789868991c828e744da6a7f1a25b66ab25d9c..067eee03fc9bb6245fe5763dafdb4d9fcf46f0f8 100644 GIT binary patch delta 42 zcmV+_0M-A1s0)Co3$UHN2{|@7IW}cEWMh*a0WY)Fy~H*IH!?6`gPruZo%8`?-(ZIk Avj6}9 delta 34 scmV+-0Nww9s0)Co3$UHN0XUNu0XMVNy~H*IHf1 +//#include #include #include #include @@ -8,6 +8,8 @@ #include // Parse .map (emex keymap) file format +#define KEYMAP_DIR "/emr/config/keymaps/" + static int parse_keymap_data(const char *data, size_t size, keymap_t *km) { if (!data || !km || size == 0) return -1; @@ -26,7 +28,7 @@ static int parse_keymap_data(const char *data, size_t size, keymap_t *km) { if (*line == '#' || *line == '\n') { // skip comments and empty lines while (line < end && *line != '\n') line++; - if (line < end && *line == '\n') line++; + if (line < end) line++; continue; } @@ -38,21 +40,17 @@ static int parse_keymap_data(const char *data, size_t size, keymap_t *km) { // (2 digits) for (int i = 0; i < 2 && line < end; i++) { scancode <<= 4; - if (*line >= '0' && *line <= '9') { - scancode |= (*line - '0'); - } else if (*line >= 'A' && *line <= 'F') { - scancode |= (*line - 'A' + 10); - } else if (*line >= 'a' && *line <= 'f') { - scancode |= (*line - 'a' + 10); - } + if (*line >= '0' && *line <= '9') scancode |= (*line - '0'); + else if (*line >= 'A' && *line <= 'F') scancode |= (*line - 'A' + 10); + else if (*line >= 'a' && *line <= 'f') scancode |= (*line - 'a' + 10); line++; } - while (line < end && *line != '=') line++; // = - if (line < end && *line == '=') line++; - while (line < end && (*line == ' ' || *line == '\t')) line++; // space + while (line < end && *line != '=') line++; + if (line < end) line++; // skip '=' + while (line < end && (*line == ' ' || *line == '\t')) line++; - // parse normal, between single quotes + // parse normal char if (line < end && *line == '\'') { line++; if (line < end) { @@ -70,13 +68,9 @@ static int parse_keymap_data(const char *data, size_t size, keymap_t *km) { u8 hex = 0; for (int i = 0; i < 2 && line < end; i++) { hex <<= 4; - if (*line >= '0' && *line <= '9') { - hex |= (*line - '0'); - } else if (*line >= 'A' && *line <= 'F') { - hex |= (*line - 'A' + 10); - } else if (*line >= 'a' && *line <= 'f') { - hex |= (*line - 'a' + 10); - } + if (*line >= '0' && *line <= '9') hex |= (*line - '0'); + else if (*line >= 'A' && *line <= 'F') hex |= (*line - 'A' + 10); + else if (*line >= 'a' && *line <= 'f') hex |= (*line - 'a' + 10); line++; } km->normal[scancode] = hex; @@ -115,13 +109,9 @@ static int parse_keymap_data(const char *data, size_t size, keymap_t *km) { u8 hex = 0; for (int i = 0; i < 2 && line < end; i++) { hex <<= 4; - if (*line >= '0' && *line <= '9') { - hex |= (*line - '0'); - } else if (*line >= 'A' && *line <= 'F') { - hex |= (*line - 'A' + 10); - } else if (*line >= 'a' && *line <= 'f') { - hex |= (*line - 'a' + 10); - } + if (*line >= '0' && *line <= '9') hex |= (*line - '0'); + else if (*line >= 'A' && *line <= 'F') hex |= (*line - 'A' + 10); + else if (*line >= 'a' && *line <= 'f') hex |= (*line - 'a' + 10); line++; } km->shift[scancode] = hex; @@ -142,7 +132,7 @@ static int parse_keymap_data(const char *data, size_t size, keymap_t *km) { // skip to nect line while (line < end && *line != '\n') line++; - if (line < end && *line == '\n') line++; + if (line < end) line++; } return 0; @@ -151,90 +141,32 @@ static int parse_keymap_data(const char *data, size_t size, keymap_t *km) { int keymap_load_from_module(const char *name, keymap_t *km) { if (!name || !km) return -1; - if (!module_request.response || module_request.response->module_count == 0) { - printf("[KEYMAP] No Limine modules available\n"); + // build path with us keymap + char path[64]; + str_copy(path, KEYMAP_DIR); + str_append(path, name); + str_append(path, KEYMAP_FORMAT); + + int fd = fs_open(path, O_RDONLY); + if (fd < 0) { + log("[KEYMAP]", "not found: ", d); + BOOTUP_PRINT(path, white()); + BOOTUP_PRINT("\n", white()); return -1; } - struct limine_module_response *response = - (struct limine_module_response *)module_request.response; - - // Builds the expected filename - char expected_name[64]; - str_copy(expected_name, name); - str_append(expected_name, KEYMAP_FORMAT); - - // search for keymap module - for (u64 i = 0; i < response->module_count; i++) { - struct limine_file *module = response->modules[i]; - - //Extract filename from path - const char *filename = module->path; - const char *last_slash = filename; - for (const char *p = filename; *p; p++) { - if (*p == '/') last_slash = p + 1; - } - filename = last_slash; + // read the whole file into a stack buffer + // .map files are small (< 4KB) + char buf[4096]; + ssize_t bytes = fs_read(fd, buf, sizeof(buf) - 1); + fs_close(fd); - // checks if this is our keymap - if (str_equals(filename, expected_name)) { - printf("[KEYMAP] Loading %s from module (%lu bytes)\n", - filename, module->size); + if (bytes <= 0) return -1; + buf[bytes] = '\0'; - return parse_keymap_data((const char*)module->address, - module->size, km); - } - } - - printf("[KEYMAP] Module %s not found\n", expected_name); - return -1; + return parse_keymap_data(buf, (size_t)bytes, km); } int keymap_modules_init(void) { - if (!module_request.response) { - printf("[KEYMAP] No module response available\n"); - return -1; - } - - struct limine_module_response *response = - (struct limine_module_response *)module_request.response; - - log("[KEYMAP]", "Found ", d); - char buf[32]; - str_from_int(buf, (int)response->module_count); - BOOTUP_PRINT(buf, white()); - BOOTUP_PRINT(" Limine modules\n", white()); - - - // lists all keymap modules - int keymap_count = 0; - for (u64 i = 0; i < response->module_count; i++) { - struct limine_file *module = response->modules[i]; - - const char *filename = module->path; - const char *last_slash = filename; - for (const char *p = filename; *p; p++) { - if (*p == '/') last_slash = p + 1; - } - filename = last_slash; - - // check if this is a keymap file - if (str_contains(filename, KEYMAP_FORMAT)) { - printf("[KEYMAP] Available: %s\n", filename); - keymap_count++; - } - } - - buf[0] = '\0'; - //char buf[64]; - char numbuf[32]; - - str_copy(buf, "Total keymaps found: "); - str_from_int(numbuf, keymap_count); - str_append(buf, numbuf); - str_append(buf, "\n"); - - log("[KEYMAP]", buf, d); - - return keymap_count; + return 0; } diff --git a/src/kernel/console/console.c b/src/kernel/console/console.c index 754d7ea..baf6376 100644 --- a/src/kernel/console/console.c +++ b/src/kernel/console/console.c @@ -85,53 +85,19 @@ void console_init(void) f_setcontext(FONT_8X8); clear(CONSOLESCREEN_BG_COLOR); font_scale = 2; - - buf[0] = '\0'; //reset - //reset_cursor(); - /* - //module_register_driver(&console_module); - - if (cursor_x == 0 && cursor_y == 0) { - clear(CONSOLESCREEN_COLOR); - reset_cursor(); - } - */ - cursor_x = 0; cursor_y = 0; - //is_login_active = 1; - //if (!login_authenticate()) { - // Login failed - should never reach here due to lock - //panic("Login authentication failed"); - //} - //is_login_active = 0; - - - //create config files for console: - /*fs_mkdir("/.config/ekmsh"); - fs_mkdir("/.config/ekmsh/promts"); - fs_open("/.config/ekmsh/promts/promt.conf", O_CREAT | O_WRONLY);*/ - console_config_init(); - clear(CONSOLESCREEN_BG_COLOR); banner_init(); - - // Initialize console window console_window_init(); cursor_(); - //string("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890+#,.-;:_'*`?=!\\\"$%&/()^°", GFX_WHITE); - // font testing + cprintf("\nWelcome to " KERNEL_BARENAME " " KERNEL_DEFRELEASE, white()); + cprintf("\nyou're currently in " CONSOLE_APP_NAME " " CONSOLE_WINDOW "\n", white()); shell_print_prompt(); - - console_execute("scale 1"); - console_execute("tree"); - console_execute("ls"); - console_execute("view /user/images/frog.bmp"); cursor_draw(); - console_run(); } diff --git a/src/kernel/console/console.h b/src/kernel/console/console.h index ab2eadc..e7187d7 100644 --- a/src/kernel/console/console.h +++ b/src/kernel/console/console.h @@ -32,6 +32,7 @@ extern driver_module console_module; #define MAX_CHAINED_CMDS 8 #define CONSOLE_APP_NAME "console" +#define CONSOLE_WINDOW "w1" #define CONSOLE_NAME "ekmsh" // emex-kernelmode-shell #define WRONG_COMMAND_CL GFX_RED diff --git a/src/kernel/console/functions/help.c b/src/kernel/console/functions/help.c index 8cae2c6..028ee12 100644 --- a/src/kernel/console/functions/help.c +++ b/src/kernel/console/functions/help.c @@ -13,6 +13,7 @@ FHDR(cmd_help) if (*s == '\0') { // these are COMMON commands, soon i will split all comands cprintf(GEN, GFX_YELLOW); + cprintf("\n", white()); for (int i = 0; i < cmd_count; i++) { char buf[128]; diff --git a/src/kernel/console/shell_screen.c b/src/kernel/console/shell_screen.c index 258eb0e..61222c7 100644 --- a/src/kernel/console/shell_screen.c +++ b/src/kernel/console/shell_screen.c @@ -57,10 +57,10 @@ void shell_print_prompt(void) if (!format) { //printf("using standard"); - cprintf("\n[", GFX_WHITE); - cprintf(uci_get_pc_name(), GFX_WHITE); - cprintf("@", GFX_WHITE); - cprintf(uci_get_user_name(), GFX_WHITE); + cprintf("\n[", white()); + cprintf(uci_get_pc_name(), white()); + cprintf("@", white()); + cprintf(uci_get_user_name(), white()); cprintf("]", white()); if (str_len(cwd) > 1 && cwd[str_len(cwd) - 1] == '/') { @@ -72,7 +72,7 @@ void shell_print_prompt(void) cprintf(cwd, white()); } - cprintf("# ", blue()); + cprintf("# ", GFX_BLUE); return; } diff --git a/tools/initrd.sh b/tools/initrd.sh index aa4ffb6..e23adcf 100755 --- a/tools/initrd.sh +++ b/tools/initrd.sh @@ -22,7 +22,16 @@ fi cd "$SRC" # -H newc = header is newc (the kernel only supports newc now) # -R 0:0 = force uid/gid 0 - find . | sort | "$CPIO" -o -H newc -R 0:0 + find . \ + \( -name ".DS_Store" \ + -o -name "._*" \ + -o -name ".Spotlight-V100" \ + -o -name ".Trashes" \ + -o -name ".fseventsd" \ + -o -name ".TemporaryItems" \ + -o -name ".VolumeIcon.icns" \ + -o -name ".AppleDouble" \) -prune -o -print \ + | sort | "$CPIO" -o -H newc -R 0:0 ) > "$OUT" echo "done: $OUT ($(wc -c < "$OUT" | tr -d ' ') bytes)" From fa677bd1c15a09dd2fc1e7c049f60e44c1585053 Mon Sep 17 00:00:00 2001 From: emexos Date: Thu, 19 Feb 2026 19:56:48 +0100 Subject: [PATCH 08/41] emex parser, packaging --- Makefile | 2 +- src/kernel/packages/emex/emex.c | 116 ++++++++++++++++ src/kernel/packages/emex/emex.h | 67 ++++++++++ src/kernel/packages/emex/icnparse.c | 31 +++++ src/kernel/packages/emex/iparser.c | 100 ++++++++++++++ src/kernel/packages/emex/packreader.c | 125 ++++++++++++++++++ src/userspace/Makefile | 17 --- src/userspace/apps/hello/Makefile | 20 +++ src/userspace/apps/hello/hello.S | 11 ++ .../hello/hello.emx/app.elf} | Bin .../apps/hello/hello.emx/app_icon.bmp | 0 .../apps/hello/hello.emx/package.info | 10 ++ src/userspace/{ => apps/hello}/hello.o | Bin src/userspace/{ => apps/hello}/user.ld | 0 src/userspace/hello.S | 11 -- 15 files changed, 481 insertions(+), 29 deletions(-) create mode 100644 src/kernel/packages/emex/emex.c create mode 100644 src/kernel/packages/emex/emex.h create mode 100644 src/kernel/packages/emex/icnparse.c create mode 100644 src/kernel/packages/emex/iparser.c create mode 100644 src/kernel/packages/emex/packreader.c delete mode 100644 src/userspace/Makefile create mode 100644 src/userspace/apps/hello/Makefile create mode 100644 src/userspace/apps/hello/hello.S rename src/userspace/{hello.elf => apps/hello/hello.emx/app.elf} (100%) create mode 100644 src/userspace/apps/hello/hello.emx/app_icon.bmp create mode 100644 src/userspace/apps/hello/hello.emx/package.info rename src/userspace/{ => apps/hello}/hello.o (100%) rename src/userspace/{ => apps/hello}/user.ld (100%) delete mode 100644 src/userspace/hello.S diff --git a/Makefile b/Makefile index 48acba6..496c8e9 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,7 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @cp $(addprefix $(INCLUDE_DIR)/limine/BOOT, IA32.EFI X64.EFI) $(ISODIR)/EFI/BOOT/ @echo "[MOD] creating executables..." - @cp src/userspace/hello.elf $(DISK_DIR)/rd/user/apps/hello.elf + @cp -r src/userspace/apps/hello.emx $(DISK_DIR)/rd/user/apps/ @echo "[MOD] creating initrd.cpio..." @chmod +x tools/initrd.sh diff --git a/src/kernel/packages/emex/emex.c b/src/kernel/packages/emex/emex.c new file mode 100644 index 0000000..12edd5e --- /dev/null +++ b/src/kernel/packages/emex/emex.c @@ -0,0 +1,116 @@ +#include "emex.h" + +#include +#include +#include +#include +#include +#include +#include + +#if ENABLE_ULIME +extern proc_manager_t *proc_mgr; +extern ulime_t *ulime; +#endif + +// prints everything about a package to serial +void emex_print_info(emex_package_t *pkg) +{ + if (!pkg) return; + printf("[EMX] path: %s\n", pkg->path); + printf("[EMX] title: %s\n", pkg->info.title); + printf("[EMX] author: %s\n", pkg->info.author); + printf("[EMX] version: %s\n", pkg->info.version); + printf("[EMX] description: %s\n", pkg->info.description); + printf("[EMX] has icon: %s\n", pkg->has_icon ? "yes" : "no"); + printf("[EMX] resources: %s\n", pkg->has_resources ? "yes" : "no"); +} + +// opens the package, reads the elf, launches with process +int emex_launch_app(const char *path, ulime_proc_t **out_proc) +{ + if (!path) return EMEX_ERR_NOT_FOUND; + + if (out_proc) *out_proc = NULL; + + printf("[EMX] launching: %s\n", path); + + emex_package_t pkg; + int open_result = emex_open_app(path, &pkg); + if (open_result != EMEX_OK) { + printf("[EMX] failed to open package (code %d)\n", open_result); + return open_result; + } + + emex_print_info(&pkg); + + char elf_path[256]; + str_copy(elf_path, path); + int plen = str_len(elf_path); + if (plen > 0 && elf_path[plen - 1] != '/') str_append(elf_path, "/"); + str_append(elf_path, EMEX_ELF_NAME); + + int fd = fs_open(elf_path, O_RDONLY); + if (fd < 0) { + printf("[EMX] can't open %s\n", elf_path); + emex_close_app(&pkg); + return EMEX_ERR_NO_ELF; + } + + // 512kb max elf size, static to avoid depending on klime here + #define EMX_ELF_MAX_SIZE (512 * 1024) + static u8 elf_buf[EMX_ELF_MAX_SIZE]; + ssize_t elf_size = fs_read(fd, elf_buf, EMX_ELF_MAX_SIZE); + fs_close(fd); + + if (elf_size <= 0) { + printf("[EMX] elf file is empty or unreadable\n"); + emex_close_app(&pkg); + return EMEX_ERR_BAD_ELF; + } + + printf("[EMX] read %d bytes of elf\n", (int)elf_size); + +#if ENABLE_ULIME + if (!ulime || !proc_mgr) { + printf("[EMX] ulime/proc_mgr not ready\n"); + emex_close_app(&pkg); + return EMEX_ERR_NO_PROC; + } + + u8 proc_name[32]; + int name_len = str_len(pkg.info.title); + if (name_len > 31) name_len = 31; + int i; + for (i = 0; i < name_len; i++) { + proc_name[i] = (u8)pkg.info.title[i]; + } + proc_name[i] = '\0'; + + ulime_proc_t *proc = proc_create_proc(proc_mgr, proc_name, 0, USERPRIORITY); + if (!proc) { + printf("[EMX] failed to create process for '%s'\n", pkg.info.title); + emex_close_app(&pkg); + return EMEX_ERR_NO_PROC; + } + + printf("[EMX] created process pid=%llu for '%s'\n", proc->pid, pkg.info.title); + + int elf_result = elf_load(proc, elf_buf, (u64)elf_size); + if (elf_result != 0) { + printf("[EMX] elf_load failed for '%s'\n", pkg.info.title); + emex_close_app(&pkg); + return EMEX_ERR_BAD_ELF; + } + + printf("[EMX] '%s' ready at 0x%llX\n", pkg.info.title, proc->entry_point); + + if (out_proc) *out_proc = proc; + +#else + printf("[EMX] ENABLE_ULIME is off, can't run the app\n"); +#endif + + emex_close_app(&pkg); + return EMEX_OK; +} diff --git a/src/kernel/packages/emex/emex.h b/src/kernel/packages/emex/emex.h new file mode 100644 index 0000000..bfa9589 --- /dev/null +++ b/src/kernel/packages/emex/emex.h @@ -0,0 +1,67 @@ +#ifndef EMEX_H +#define EMEX_H + +#include +#include +#include +#include + +// +// EMX it's the emexOS app package format +// used for compatibility with [REDACTED]OS (raspberry pi OS) +// https://github.com/differrari/RedactedOS/blob/main/kernel/process/loading/elf_file.c +// +// current different things: +// package.info uses html +// app.elf is a fixed name +// + +// those cant be changed otherwise compatibility will brake +#define EMEX_GEN_NAME "app" +#define EMEX_ELF_NAME EMEX_GEN_NAME " "".elf" +#define EMEX_INFO_NAME "package.info" +#define EMEX_ICON_NAME "app_icon.bmp" +#define EMEX_RES_DIR "resources" +#define EMEX_NEWEXT ".emx" +#define EMEX_OK 0 +#define EMEX_ERR_NOT_FOUND -1// directory doesn't exist +#define EMEX_ERR_NOT_EMX -2 // wrong extention +#define EMEX_ERR_NO_ELF -3 // app.elf is missing without it the .emx is useles.... +#define EMEX_ERR_NO_INFO -4 // missing package.info +#define EMEX_ERR_BAD_INFO -5 // wrong package.info (can happen when redacted OS apps are transfered) +#define EMEX_ERR_BAD_ELF -6 // failed to load elf +#define EMEX_ERR_NO_PROC -7 // failed to create process + +// info parsed from package.info (html) +typedef struct { + char title[64];// fixed length + char author[64]; // fixed length + char version[16]; // fixed length + char description[256]; // fixed length +} emex_info_t; + +// the full package struct that gets filled by emex_open() +typedef struct { + char path[256]; // path to .emx + emex_info_t info; + bmp_image_t icon;// app icons are just bmp images + int has_icon; // 1 if success + int has_resources; +} emex_package_t; + +// packreader +int emex_open_app(const char *path, emex_package_t *pkg); +void emex_close_app(emex_package_t *pkg); + +// info parser +int emex_parse_info(const char *info_path, emex_info_t *info); + +// image/icon parser +int emex_load_icon(const char *icon_path, bmp_image_t *icon); +void emex_draw_icon(bmp_image_t *icon, u32 x, u32 y); + +// main file +int emex_launch_app(const char *path, ulime_proc_t **out_proc); +void emex_print_info(emex_package_t *pkg); + +#endif diff --git a/src/kernel/packages/emex/icnparse.c b/src/kernel/packages/emex/icnparse.c new file mode 100644 index 0000000..318b8b3 --- /dev/null +++ b/src/kernel/packages/emex/icnparse.c @@ -0,0 +1,31 @@ +#include "emex.h" + +#include +#include + +// +// icon loader +// + +int emex_load_icon(const char *icon_path, bmp_image_t *icon) +{ + if (!icon_path || !icon) return EMEX_ERR_NOT_FOUND; + + int result = bmp_load(icon_path, icon); + if (result != 0) { + printf("[EMX-ICON] failed to load icon from %s\n", icon_path); + return EMEX_ERR_NOT_FOUND; + } + + printf("[EMX-ICON] loaded icon (%dx%d)\n", icon->width, icon->height); + return EMEX_OK; +} + +void emex_draw_icon(bmp_image_t *icon, u32 x, u32 y) { + if (!icon || !icon->data) { + printf("[EMX-ICON] tried to draw a null icon, skipping\n"); + return; + } + + bmp_draw(icon, x, y); +} diff --git a/src/kernel/packages/emex/iparser.c b/src/kernel/packages/emex/iparser.c new file mode 100644 index 0000000..28d5a40 --- /dev/null +++ b/src/kernel/packages/emex/iparser.c @@ -0,0 +1,100 @@ +#include "emex.h" + +#include +#include +#include +#include + +// +// info parser/reader +// +// +// Cool App +// +// ein_franzose +// 3001.0 +// does cool stuff +// +// +// +// all fields except title are technically optional... +// but yeah better to have all those +// + +// copies src into dst, but caps it at max_len-1 so we don't overflow +// nothing fancy, just safe copying +static void safe_copy(char *dst, const char *src, int max_len) { + if (!dst || !src) return; + int i = 0; + while (src[i] != '\0' && i < max_len - 1) { + dst[i] = src[i]; + i++; + } + dst[i] = '\0'; +} + +int emex_parse_info(const char *info_path, emex_info_t *info) +{ + if (!info_path || !info) return EMEX_ERR_BAD_INFO; + + // zero out the info struct first so we always have clean defaults + str_copy(info->title,EMEX_ELF_NAME); + str_copy(info->author,EMEX_GEN_NAME "" EMEX_NEWEXT); + str_copy(info->version,"0"); + str_copy(info->description,"[empty]"); + + int fd = fs_open(info_path, O_RDONLY); + if (fd < 0) { + printf("[EMX-INFO] can't open %s\n", info_path); + return EMEX_ERR_NO_INFO; + } + + // read it into a buffer + char buf[2048]; // 2KB if we put all max lengths together it cant be more than this + + ssize_t bytes = fs_read(fd, buf, sizeof(buf) - 1); + fs_close(fd); + + if (bytes <= 0) { + printf("[EMX-INFO] %s is empty or unreadable\n", info_path); + return EMEX_ERR_BAD_INFO; + } + buf[bytes] = '\0'; + + // let the html parser do its thing + // NOTE: htmlparse() modifies the buffer in place (replaces some chars with \0), + // so we can't use "buf" for anything else after this call + htmlparse(buf); + // we need to create a new buffer now + + // grab whatever fields we can find and copy them into info + // if a field is missing we just keep the default from above + + const char *title = htmlget("title"); + const char *author = htmlget("author"); + const char *version = htmlget("version"); + const char *desc = htmlget("description"); + if (title && *title) { + safe_copy(info->title, title, sizeof(info->title)); + } else { + printf("[EMX-INFO] warning: no found in package.info\n"); + } + if (author && *author) { + safe_copy(info->author, author, sizeof(info->author)); + } else { + printf("[EMX-INFO] warning: no <author> tag in package.info\n"); + } + if (version && *version) { + safe_copy(info->version, version, sizeof(info->version)); + } else { + printf("[EMX-INFO] warning: no <version> tag in package.info\n"); + } + if (desc && *desc) { + safe_copy(info->description, desc, sizeof(info->description)); + } else { + printf("[EMX-INFO] warning: no <description> tag in package.info\n"); + } + + + return EMEX_OK; +} diff --git a/src/kernel/packages/emex/packreader.c b/src/kernel/packages/emex/packreader.c new file mode 100644 index 0000000..52a4e3e --- /dev/null +++ b/src/kernel/packages/emex/packreader.c @@ -0,0 +1,125 @@ +#include "emex.h" + +#include <kernel/file_systems/vfs/vfs.h> +#include <string/string.h> +#include <kernel/communication/serial.h> + + +// checks if a given path ends with .emx +static int path_has_emx_ext(const char *path) +{ + if (!path) return 0; + + int len = str_len(path); + // .emx + 1 + if (len < 5) return 0; + + // check the last 4 characters + const char *tail = path + len - 4; + return (tail[0] == '.' && + tail[1] == 'e' && + tail[2] == 'm' && + tail[3] == 'x'); + // guess what... its .emx ... mind blowing ik +} +// builds a full child path by joining base_path + / + child_name +// (/apps/myapp.emx + / + app.elf == /apps/myapp.emx/app.elf) +static void build_child_path(char *out, const char *base, const char *child) { + str_copy(out, base); + + int blen = str_len(out); + if (blen > 0 && out[blen - 1] != '/') { + str_append(out, "/"); + } + + str_append(out, child); +} +static int file_exists(const char *path) { + fs_node *node = fs_resolve(path); + if (!node) return 0; + return (node->type == FS_FILE); +} +static int dir_exists(const char *path) { + fs_node *node = fs_resolve(path); + if (!node) return 0; + return (node->type == FS_DIR); +} + +int emex_open_app(const char *path, emex_package_t *pkg) { + if (!path || !pkg) return EMEX_ERR_NOT_FOUND; + + // wipe the package struct clean before filling it + str_copy(pkg->path, path); + pkg->has_icon = 0; + pkg->has_resources = 0; + + // only if the path ends with .emx + if (!path_has_emx_ext(path)) { + printf("[EMX] '%s' doesn't end with .emx, not a valid emx package\n", path); + return EMEX_ERR_NOT_EMX; + } + if (!dir_exists(path)) { + printf("[EMX] '%s' not found or isn't a directory\n", path); + return EMEX_ERR_NOT_FOUND; + } + + printf("[EMX] opening package: %s\n", path); + + char child_path[256]; + + // app.elf is required otherwise + build_child_path(child_path, path, EMEX_ELF_NAME); + if (!file_exists(child_path)) { + printf("[EMX] %s is missing! can't launch without it\n", EMEX_ELF_NAME); + return EMEX_ERR_NO_ELF; + } + printf("[EMX] found %s\n", EMEX_ELF_NAME); + + // package.info is also required with title the other things not really but well + build_child_path(child_path, path, EMEX_INFO_NAME); + if (!file_exists(child_path)) { + printf("[EMX] %s is missing! package needs metadata\n", EMEX_INFO_NAME); + return EMEX_ERR_NO_INFO; + } + printf("[EMX] found %s\n", EMEX_INFO_NAME); + int info_result = emex_parse_info(child_path, &pkg->info); + if (info_result != EMEX_OK) { + printf("[EMX] failed to parse %s (code %d)\n", EMEX_INFO_NAME, info_result); + return EMEX_ERR_BAD_INFO; + } + + // optional icon + // icon is later good for a taskbar or smth else but + // then i probably delete it from the kernel and move the icon parser to the wm or smth + build_child_path(child_path, path, EMEX_ICON_NAME); + if (file_exists(child_path)) { + printf("[EMX] found %s, loading...\n", EMEX_ICON_NAME); + if (emex_load_icon(child_path, &pkg->icon) == EMEX_OK) { + pkg->has_icon = 1; + } else { + pkg->has_icon = 0; + } + } else { + printf("[EMX] no %s found\n", EMEX_ICON_NAME); + } + + build_child_path(child_path, path, EMEX_RES_DIR); + if (dir_exists(child_path)) { + pkg->has_resources = 1; // optional to have + } + + printf("[EMX] package '%s' by %s v%s opened successfully\n", + pkg->info.title, pkg->info.author, pkg->info.version); + + return EMEX_OK; +} + +void emex_close_app(emex_package_t *pkg) { + if (!pkg) return; + if (pkg->has_icon) { + bmp_free(&pkg->icon); + pkg->has_icon = 0; + } + + printf("[EMX] package closed\n"); +} diff --git a/src/userspace/Makefile b/src/userspace/Makefile deleted file mode 100644 index 8602f64..0000000 --- a/src/userspace/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -AS := x86_64-elf-as -LD := x86_64-elf-ld -LDFLAGS := -nostdlib -static -no-pie -T user.ld - -all: hello.elf - -hello.elf: hello.o user.ld - $(LD) $(LDFLAGS) hello.o -o hello.elf - @echo "Built hello.elf" - -hello.o: hello.S - $(AS) hello.S -o hello.o - -clean: - rm -f *.o hello.elf - -.PHONY: all clean diff --git a/src/userspace/apps/hello/Makefile b/src/userspace/apps/hello/Makefile new file mode 100644 index 0000000..db0c58e --- /dev/null +++ b/src/userspace/apps/hello/Makefile @@ -0,0 +1,20 @@ +AS := x86_64-elf-as +LD := x86_64-elf-ld +LDFLAGS := -nostdlib -static -no-pie -T user.ld + +EMX_DIR := hello.emx + +all: $(EMX_DIR)/app.elf + +$(EMX_DIR)/app.elf: hello.o user.ld + @mkdir -p $(EMX_DIR) + $(LD) $(LDFLAGS) hello.o -o $(EMX_DIR)/app.elf + @echo "Built $(EMX_DIR)/app.elf" + +hello.o: hello.S + $(AS) hello.S -o hello.o + +clean: + rm -f *.o $(EMX_DIR)/app.elf + +.PHONY: all clean diff --git a/src/userspace/apps/hello/hello.S b/src/userspace/apps/hello/hello.S new file mode 100644 index 0000000..0ec09a9 --- /dev/null +++ b/src/userspace/apps/hello/hello.S @@ -0,0 +1,11 @@ +.section .text +.global _start + +_start: + # just exit immediately with code 42 to test if user mode works + mov $60, %rax # EXIT + mov $42, %rdi # status == 42 + syscall + + # should never reach here + hlt diff --git a/src/userspace/hello.elf b/src/userspace/apps/hello/hello.emx/app.elf similarity index 100% rename from src/userspace/hello.elf rename to src/userspace/apps/hello/hello.emx/app.elf diff --git a/src/userspace/apps/hello/hello.emx/app_icon.bmp b/src/userspace/apps/hello/hello.emx/app_icon.bmp new file mode 100644 index 0000000..e69de29 diff --git a/src/userspace/apps/hello/hello.emx/package.info b/src/userspace/apps/hello/hello.emx/package.info new file mode 100644 index 0000000..eae9087 --- /dev/null +++ b/src/userspace/apps/hello/hello.emx/package.info @@ -0,0 +1,10 @@ +<html> + <head> + <title>hello.elf + + + ein_franzose + 3001.0 + does cool stuff + + diff --git a/src/userspace/hello.o b/src/userspace/apps/hello/hello.o similarity index 100% rename from src/userspace/hello.o rename to src/userspace/apps/hello/hello.o diff --git a/src/userspace/user.ld b/src/userspace/apps/hello/user.ld similarity index 100% rename from src/userspace/user.ld rename to src/userspace/apps/hello/user.ld diff --git a/src/userspace/hello.S b/src/userspace/hello.S deleted file mode 100644 index 2e772ec..0000000 --- a/src/userspace/hello.S +++ /dev/null @@ -1,11 +0,0 @@ -.section .text -.global _start - -_start: - # Just exit immediately with code 42 to test if user mode works - mov $60, %rax # SYS_EXIT - mov $42, %rdi # status = 42 - syscall - - # Should never reach here - hlt From 0c6b65be1e289b95ba932176de0882cf953b106c Mon Sep 17 00:00:00 2001 From: emexos Date: Thu, 19 Feb 2026 20:03:11 +0100 Subject: [PATCH 09/41] path fixes, make fixes --- Makefile | 3 ++- dsk/initrd.cpio | Bin 185344 -> 190976 bytes dsk/rd/user/apps/hello.emx/app.elf | Bin 0 -> 4536 bytes dsk/rd/user/apps/hello.emx/app_icon.bmp | 0 dsk/rd/user/apps/hello.emx/package.info | 10 ++++++++++ src/userspace/Makefile | 8 ++++++++ 6 files changed, 20 insertions(+), 1 deletion(-) create mode 100755 dsk/rd/user/apps/hello.emx/app.elf create mode 100644 dsk/rd/user/apps/hello.emx/app_icon.bmp create mode 100644 dsk/rd/user/apps/hello.emx/package.info create mode 100644 src/userspace/Makefile diff --git a/Makefile b/Makefile index 496c8e9..661dad2 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,8 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @cp $(addprefix $(INCLUDE_DIR)/limine/BOOT, IA32.EFI X64.EFI) $(ISODIR)/EFI/BOOT/ @echo "[MOD] creating executables..." - @cp -r src/userspace/apps/hello.emx $(DISK_DIR)/rd/user/apps/ + @mkdir -p $(DISK_DIR)/rd/user/apps + @cp -r src/userspace/apps/hello/hello.emx $(DISK_DIR)/rd/user/apps/ @echo "[MOD] creating initrd.cpio..." @chmod +x tools/initrd.sh diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 067eee03fc9bb6245fe5763dafdb4d9fcf46f0f8..f3939fdbf6dcf87a5f6cb0f124e9013643dc3be7 100644 GIT binary patch delta 504 zcmZ8eu};G<5N(QxR0>FC0|cr-f-QDhl~T#dKQJ>?Nqiv@NgTx~DlEyyTxCb9#K4Hu zfiGYKCN>r}ejp!!6H{6^FTT6??meHghi3NPeB3S?y_3P9--B*1-&fG=tT^9NEo@WW znrt4f&Kp|(QtY*YaSivy(Xn1ZAPYwVS?uQ0zrY>u@@yJiZbABn=!x5laV9LEH{5FNgo8sC;eZgjVI~B g;+N_jT&{3k>?8)xMzIb2cB(2*Q?)*P&9jyJZ$@pJ*#H0l delta 36 scmZp;!ricfdxPW`b`vv8OEbf?$qQ~9Y!3JmBh=0z!?>M8hAHGM00iF+O#lD@ diff --git a/dsk/rd/user/apps/hello.emx/app.elf b/dsk/rd/user/apps/hello.emx/app.elf new file mode 100755 index 0000000000000000000000000000000000000000..3e654b5096a5d36b2509fbb8f836460005e334dc GIT binary patch literal 4536 zcmeI0p$@`842HYG2q=bIg2EyQ5<$or$OM8nAdrw?Fx!ctcs1N!hzFqE_1IWQFyQ`* z{nz&I-SWxa*4s@O1mq*66=`OqR()8DSTYxe7VI$;QMd9&Qm*^Px!mYT6R!=Qb|4@C z0w4eaAOHd&00JNY0w4eaAOHgYCXkl*CBKoD<&juElRXt|_)U!Y8u^!AeVwU}x`%k}8?;| + + hello.elf + + + ein_franzose + 3001.0 + does cool stuff + + diff --git a/src/userspace/Makefile b/src/userspace/Makefile new file mode 100644 index 0000000..9b00f7f --- /dev/null +++ b/src/userspace/Makefile @@ -0,0 +1,8 @@ +all: + @$(MAKE) -C apps/hello + +clean: + @$(MAKE) -C apps/hello clean + + +.PHONY: all clean From 53375559e01dc1ec6eab49ed72e57bc981d6cb8e Mon Sep 17 00:00:00 2001 From: emexos Date: Thu, 19 Feb 2026 20:07:03 +0100 Subject: [PATCH 10/41] delete limine file --- dsk/initrd.cpio | Bin 190976 -> 190976 bytes limine | 1 - 2 files changed, 1 deletion(-) delete mode 160000 limine diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index f3939fdbf6dcf87a5f6cb0f124e9013643dc3be7..0f5d835e658073bd61c29c0703810cdbfc9252e6 100644 GIT binary patch delta 48 ycmZp;!rcHwTNtC+nbS;+r^m4~P6RO~&-O260?hhvb delta 49 zcmZp;!rcHwTNtC+r!SUfG@9Pa&X~lUYHT`r-WUDtiX4nWLLgqdnH1x8GbyH1=K-Xy B58nU) diff --git a/limine b/limine deleted file mode 160000 index 0aa46ad..0000000 --- a/limine +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0aa46ad0a034a111df345dd80c3b950629041e2b From c4c9aba0a16cd69d9e3067d6a82b8ad9179ccc89 Mon Sep 17 00:00:00 2001 From: emexos Date: Thu, 19 Feb 2026 21:23:06 +0100 Subject: [PATCH 11/41] moved console init functions to general inits --- dsk/initrd.cpio | Bin 190976 -> 190976 bytes dsk/rd/boot/activeslot.txt | 1 + src/kernel/console/console.c | 5 ++- src/kernel/console/console.h | 1 + src/kernel/console/promtinit.c | 53 ++--------------------------- src/kernel/inits/console/config.c | 18 ++++++++++ src/kernel/inits/console/gen.c | 10 ++++++ src/kernel/inits/console/gen.h | 13 +++++++ src/kernel/inits/console/prompt.c | 24 +++++++++++++ src/kernel/inits/console/theme.c | 26 ++++++++++++++ src/kernel/kernel.c | 8 +++-- src/kernel/kernelslot/slot_write.c | 18 ++++++++++ 12 files changed, 123 insertions(+), 54 deletions(-) create mode 100644 src/kernel/inits/console/config.c create mode 100644 src/kernel/inits/console/gen.c create mode 100644 src/kernel/inits/console/gen.h create mode 100644 src/kernel/inits/console/prompt.c create mode 100644 src/kernel/inits/console/theme.c create mode 100644 src/kernel/kernelslot/slot_write.c diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 0f5d835e658073bd61c29c0703810cdbfc9252e6..1525e6d9ada7d23a77c5791a3279cab8a9296c26 100644 GIT binary patch delta 82 zcmZp;!rgF%d&5LVUUSp5BqIX|FrPe+(S!BFq@D>}&CeOPKWAhtW@RxqG)S2q$Idtb c%$hv!i~e>+4n{#CFt^=IigCM{6w|Tu0Aa)$00000 delta 82 zcmZp;!rgF%d&5LVUb9ql6LSLyFq%A%(Swnp`8DJA*NlwCtSqK!CdQNH81<%4U}sDM c^R|CuXLJw(Guy4C7`IzVF&#TUxq+Dl0Q}My^#A|> diff --git a/dsk/rd/boot/activeslot.txt b/dsk/rd/boot/activeslot.txt index f70f10e..06dede7 100644 --- a/dsk/rd/boot/activeslot.txt +++ b/dsk/rd/boot/activeslot.txt @@ -1 +1,2 @@ A +𒌐 diff --git a/src/kernel/console/console.c b/src/kernel/console/console.c index baf6376..ec332cb 100644 --- a/src/kernel/console/console.c +++ b/src/kernel/console/console.c @@ -98,8 +98,11 @@ void console_init(void) cprintf("\nyou're currently in " CONSOLE_APP_NAME " " CONSOLE_WINDOW "\n", white()); shell_print_prompt(); cursor_draw(); + console_execute("scale 1"); + console_execute("cd /.config"); + console_execute("cd /ekmsh"); + console_execute("tree"); console_run(); - } void console_run(void) diff --git a/src/kernel/console/console.h b/src/kernel/console/console.h index e7187d7..f22b598 100644 --- a/src/kernel/console/console.h +++ b/src/kernel/console/console.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/src/kernel/console/promtinit.c b/src/kernel/console/promtinit.c index 4ab3032..8f77b1f 100644 --- a/src/kernel/console/promtinit.c +++ b/src/kernel/console/promtinit.c @@ -1,56 +1,7 @@ #include "console.h" #include +// i wont delete this function due to compatibility reasons void console_config_init(void) { - // Create directories - fs_mkdir("/.config/ekmsh"); - fs_mkdir("/.config/ekmsh/fonts"); - //fs_mkdir("/.config/ekmsh/prompts"); - - // Create default prompt.conf - int fd = fs_open("/.config/ekmsh/prompt.cfg", O_CREAT | O_WRONLY); - if (fd >= 0) { - const char *default_config = - "# currently there is no color support for the prompt, but soon!\n" - "# %u = username,\n# %h = hostname,\n# %w = curent directory\n" - "[%u@%h:%w]# \n" - ; - - fs_write(fd, default_config, str_len(default_config)); - fs_close(fd); - } - - // Create default theme.cfg - fd = fs_open("/.config/ekmsh/theme.cfg", O_CREAT | O_WRONLY); // get read by graph/theme - if (fd >= 0) { - const char *default_theme = - "# use: 0xAARRGGBB\n" - "\n" - "BLACK: 0xFF111111\n" - "BG: 0xFF1F1F1F\n" - "RED: 0xFF9E6E6E\n" - "GREEN: 0xFF7A8A7A\n" - "YELLOW: 0xFFB8A788\n" - "BLUE: 0xFF6E7F8E\n" - "PURPLE: 0xFF857A8E\n" - "CYAN: 0xFF7A8E8E\n" - "WHITE: 0xFFD8D8D8\n" - ; - - fs_write(fd, default_theme, str_len(default_theme)); - fs_close(fd); - } - fd = fs_open("/.config/ekmsh/con.cfg", O_CREAT | O_WRONLY); // get read by graph/theme - if (fd >= 0) { - const char *Cconfiguration = - "CONSOLE_PROG: \"ekmsh\"\n" - "CONSOLE_NAME: \"console\"\n" - "\n" - "CONSOLE_VERS: \"1.3\" # new with login\n" - ; - - fs_write(fd, Cconfiguration, str_len(Cconfiguration)); - fs_close(fd); - } - // copy bdf here... + console_init_gen(); } diff --git a/src/kernel/inits/console/config.c b/src/kernel/inits/console/config.c new file mode 100644 index 0000000..608f73c --- /dev/null +++ b/src/kernel/inits/console/config.c @@ -0,0 +1,18 @@ +#include "gen.h" + +#include + +void running_console_config_init(void) { + int fd = fs_open("/.config/ekmsh/con.cfg", O_CREAT | O_WRONLY); // get read by graph/theme + if (fd >= 0) { + const char *Cconfiguration = + "CONSOLE_PROG: \"ekmsh\"\n" + "CONSOLE_NAME: \"console\"\n" + "\n" + "CONSOLE_VERS: \"1.3\" # new with login\n" + ; + + fs_write(fd, Cconfiguration, str_len(Cconfiguration)); + fs_close(fd); + } +} diff --git a/src/kernel/inits/console/gen.c b/src/kernel/inits/console/gen.c new file mode 100644 index 0000000..7822920 --- /dev/null +++ b/src/kernel/inits/console/gen.c @@ -0,0 +1,10 @@ +#include "gen.h" + +#include + +void console_init_gen(void) { + promptdirs(); + promptcont(); + init_consoletheme(); + running_console_config_init(); +} diff --git a/src/kernel/inits/console/gen.h b/src/kernel/inits/console/gen.h new file mode 100644 index 0000000..7a72304 --- /dev/null +++ b/src/kernel/inits/console/gen.h @@ -0,0 +1,13 @@ +#ifndef GEN_H +#define GEN_H + +#define CONSOLECONFIG "/.config/ekmsh" +#define PROMPT_PATH "/.config/ekmsh/prompt.cfg" + +void promptdirs(void); +void promptcont(void); +void console_init_gen(void); +void init_consoletheme(void); +void running_console_config_init(void); + +#endif diff --git a/src/kernel/inits/console/prompt.c b/src/kernel/inits/console/prompt.c new file mode 100644 index 0000000..227acf1 --- /dev/null +++ b/src/kernel/inits/console/prompt.c @@ -0,0 +1,24 @@ +#include "gen.h" + +#include + + +void promptdirs(void) { + fs_mkdir(CONSOLECONFIG); + fs_mkdir(CONSOLECONFIG "/fonts"); + + //return; +} + +void promptcont(void) { + int fd = fs_open(PROMPT_PATH, O_CREAT | O_WRONLY); + if (fd >= 0) { + const char *default_config = + "# currently there is no color support for the prompt, but soon!\n" + "# %u = username,\n# %h = hostname,\n# %w = curent directory\n" + "[%u@%h:%w]# \n" + ; + fs_write(fd, default_config, str_len(default_config)); + fs_close(fd); + } +} diff --git a/src/kernel/inits/console/theme.c b/src/kernel/inits/console/theme.c new file mode 100644 index 0000000..5b6ce70 --- /dev/null +++ b/src/kernel/inits/console/theme.c @@ -0,0 +1,26 @@ +#include "gen.h" + +#include + + +void init_consoletheme(void) { + int fd = fs_open("/.config/ekmsh/theme.cfg", O_CREAT | O_WRONLY); // get read by graph/theme + if (fd >= 0) { + const char *default_theme = + "# use: 0xAARRGGBB\n" + "\n" + "BLACK: 0xFF111111\n" + "BG: 0xFF1F1F1F\n" + "RED: 0xFF9E6E6E\n" + "GREEN: 0xFF7A8A7A\n" + "YELLOW: 0xFFB8A788\n" + "BLUE: 0xFF6E7F8E\n" + "PURPLE: 0xFF857A8E\n" + "CYAN: 0xFF7A8E8E\n" + "WHITE: 0xFFD8D8D8\n" + ; + + fs_write(fd, default_theme, str_len(default_theme)); + fs_close(fd); + } +} diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 3138376..c234640 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -289,8 +289,12 @@ void _start(void) #endif } #if ENABLE_FAT32 == 1 - log("[FAT32]", "mounting FAT32 file system\n", d); - fat32_init(); + log("[FAT32]", "mounting FAT32 file system\n", d); + fat32_init(); + #endif + #if ENABLE_FAT32 + //fat32_mount("/dev/hda1", "/boot", "fat32"); + //log("[BOOT]", "Boot partition mounted at /boot\n", d); #endif } #else diff --git a/src/kernel/kernelslot/slot_write.c b/src/kernel/kernelslot/slot_write.c new file mode 100644 index 0000000..5e9faa2 --- /dev/null +++ b/src/kernel/kernelslot/slot_write.c @@ -0,0 +1,18 @@ +#include "slot.h" +#include +#include +#include +#include + +#define LIMINE_CONF_PATH "/boot/limine/limine.conf" +#define LIMINE_CONF_BUFSIZE 4096 + +int slot_write_limine_conf(char slot) +{ + if (slot != 'A' && slot != 'B') return -1; + + int target_entry = (slot == 'A') ? 0 : 1; + + + return 0; +} From 9410d5ff380bc568a32f9149c8d0a081993097b2 Mon Sep 17 00:00:00 2001 From: emexos Date: Sat, 21 Feb 2026 11:33:03 +0100 Subject: [PATCH 12/41] random scopes --- dsk/initrd.cpio | Bin 190976 -> 190976 bytes src/kernel/inits/init.h | 4 ++-- src/kernel/kernel.c | 20 +++++--------------- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 1525e6d9ada7d23a77c5791a3279cab8a9296c26..2e2c5f3d81d8fe1a2e5fcdf35f8ec53bd632110e 100644 GIT binary patch delta 616 zcmZp;!rgF%dx8&>LE2=;2MQDO{6MUYOyU!-#zR??eHo!lvB?*{@JznIm;sXsWP;0_ zV1kN@ZT4XPu@j;~Y_cvR`{ek&i7*W}_eR5*zWb7)iZ-9vw}u6#0cgYK8HZ=U_?taW ztbnsQ&TfFSFIVZfNgW_ox{v9n=s%`oUSw^183h%E#_~Mg!KfwLf@j(V^ zy7=V1A7R3iEk5ml*$E0B{?A)sdhdRQ2YToinEK5ZzNiSnG+g*1J6)5V(S+5~!Xnjl zvK*rrRA%}FcE&_mu&4nL7#b#7fM_5vgizpU6`SnA%(LBqgOODTq1M14#S*FpMJ>ok xh3y?uj25skntnr?u>xjch74l?)Zx=V$}mEmD?U9}7RDB92L{ge7qUzeX8;;8*VF(2 delta 526 zcmZp;!rgF%dxFpOz!yxC6H~(>^woGUJ=vEL%#fIT;S0~?3yc{M(Lg4s=m{pUh{R?O z<{vvjauSnu8962=>`j0uyty|TYRpluVo$^a4Mw=!=IswR zLd6@NLQS6x)U!GL)l!J~WR-U}z{;n;kY(hVtnmH{h$lIj_XE`39Uo-C=1ET8`w=2E z+2Yd@aZ10d_w1D_~ s`VDEu3W)I;GK>Wf$L;;dJ^haiV+5EtJy(_y;>32Kr? #include -// Load all Limine modules to VFS -void dualslotvalidating(void); +// load all Limine modules to VFS +//void dualslotvalidating(void); void keymaps_load(void); void logos_load(void); void users_load(void); diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index c234640..f72cebc 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -84,16 +84,7 @@ klime_t *klime = NULL; void _start(void) { - /*if (framebuffer_request.response != NULL && - framebuffer_request.response->framebuffer_count > 0) { - struct limine_framebuffer *fb = framebuffer_request.response->framebuffers[0]; - u32 *pixels = (u32 *)fb->address; - u64 total = fb->width * fb->height; - for (u64 i = 0; i < total; i++) { - pixels[i] = 0x00FF0000; // red = kernel alive - } - }*/ - { // Initializing Boot screen + d_boot_screen: { // Initializing Boot screen theme_init(); setcontext(THEME_BOOTUP); // gets loaded over sbootup_theme until, sbootup == FLU sbootup_theme(THEME_STD); @@ -150,7 +141,7 @@ void _start(void) proc_mgr = proc_mng_init(ulime); #endif - { // MADE BY @TSARAKI (github) + memory_ss: { // MADE BY @TSARAKI (github) cpu_detect(); #if X64 == 1 @@ -241,14 +232,13 @@ void _start(void) //BOOTUP_PRINT("\n", GFX_WHITE); } - // KERNEL SLOT subsystem - { + kernel_slot_ss: { dualslotvalidating(); } // initialize Limine modules - limine_modules_init(); { + limine_module_ss: limine_modules_init(); { initrd_load(); dualslotvalidating(); keymaps_load(); @@ -311,7 +301,7 @@ void _start(void) } #endif - module_init(); { + module_ss: module_init(); { // Register driver modules log("[MOD]", "Init regs:\n", d); module_register(&console_module); From 2071c928f278ecaacbcd60d803dc5e1d5d0d854e Mon Sep 17 00:00:00 2001 From: emexos Date: Sun, 22 Feb 2026 17:50:11 +0100 Subject: [PATCH 13/41] finally jumping to userspace --- Makefile | 5 +- README.md | 23 +---- dsk/initrd.cpio | Bin 190976 -> 196608 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 0 -> 4784 bytes dsk/rd/emr/system/system.emx/package.info | 10 ++ limine.conf | 2 + src/kernel/arch/x86_64/syscall_entry.asm | 24 ++--- src/kernel/console/console.c | 8 +- src/kernel/file_systems/vfs/init.h | 3 +- src/kernel/file_systems/vfs/vfs_init.c | 3 +- src/kernel/inits/initrd/initrd.c | 4 +- src/kernel/kernel.c | 1 - src/kernel/kernel_processes/bootscreen/boot.c | 2 +- src/kernel/kernel_processes/kernel/gen.h | 1 + src/kernel/kernel_processes/kernel/kproc.c | 30 ++++++ src/kernel/kernel_processes/kernel/procs.c | 3 +- src/kernel/kernel_processes/kernel/user.c | 87 +++++++----------- src/kernel/packages/emex/emex.c | 5 +- src/kernel/packages/emex/emex.h | 2 +- src/kernel/user/_start.c | 2 +- src/kernel/user/jump.c | 4 +- src/kernel/user/syscalls.c | 43 ++++++++- src/userspace/Makefile | 3 +- src/userspace/apps/hello/Makefile | 15 +-- src/userspace/apps/hello/hello.S | 16 +++- .../hello/{hello.emx/app.elf => hello.elf} | Bin 4536 -> 4744 bytes src/userspace/apps/hello/hello.o | Bin 640 -> 944 bytes src/userspace/apps/system/Makefile | 17 ++++ src/userspace/apps/system/init.S | 20 ++++ src/userspace/apps/system/init.o | Bin 0 -> 984 bytes src/userspace/apps/system/system.emx/app.elf | Bin 0 -> 4784 bytes .../apps/system/system.emx/package.info | 10 ++ src/userspace/apps/system/todo.md | 6 ++ src/userspace/{apps/hello => }/user.ld | 0 34 files changed, 229 insertions(+), 120 deletions(-) create mode 100755 dsk/rd/emr/system/system.emx/app.elf create mode 100644 dsk/rd/emr/system/system.emx/package.info rename src/userspace/apps/hello/{hello.emx/app.elf => hello.elf} (83%) create mode 100644 src/userspace/apps/system/Makefile create mode 100644 src/userspace/apps/system/init.S create mode 100644 src/userspace/apps/system/init.o create mode 100755 src/userspace/apps/system/system.emx/app.elf create mode 100644 src/userspace/apps/system/system.emx/package.info create mode 100644 src/userspace/apps/system/todo.md rename src/userspace/{apps/hello => }/user.ld (100%) diff --git a/Makefile b/Makefile index 661dad2..b61d4e6 100644 --- a/Makefile +++ b/Makefile @@ -60,7 +60,10 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @echo "[MOD] creating executables..." @mkdir -p $(DISK_DIR)/rd/user/apps - @cp -r src/userspace/apps/hello/hello.emx $(DISK_DIR)/rd/user/apps/ + @mkdir -p $(DISK_DIR)/rd/emr/system +#@cp -r src/userspace/apps/hello/hello.emx $(DISK_DIR)/rd/user/apps/ + @cp src/userspace/apps/hello/hello.elf $(ISODIR)/boot/hello.elf + @cp -r src/userspace/apps/system/system.emx $(DISK_DIR)/rd/emr/system @echo "[MOD] creating initrd.cpio..." @chmod +x tools/initrd.sh diff --git a/README.md b/README.md index b73d268..ba02158 100644 --- a/README.md +++ b/README.md @@ -41,28 +41,7 @@ on real hardware make sure your device does not have any existing data on the di ## Console After the bootup emexOS will ask you about a password to login. the password is "emex", but you can change that in shared/config/user.h -## Commands - -### Common - -| command | example | output | -|-----------------|-----------------|------------------------------| -| echo | echo text | text | -| clear | clear | [clears screen] | -| help | help echo | [help menu/specific command] | -| scale | scale 3 | [font size from 1 to 4] | -| date | date | [shows current date] | -| calendar | calendar | [shows current date & time] | -| time | time | [shows current time] | -| uptime | uptime | [shows current uptime] | - -### System - -| command | example | output | -|-----------------|-----------------|------------------------------| -| meminfo | meminfo | free memory: ... | -| dofetch | dofetch | [emexOS logo, user, ...] | -| date | date | [shows current date] | +currently there is no smp support btw so if you run emexOS just use one core --- diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 2e2c5f3d81d8fe1a2e5fcdf35f8ec53bd632110e..a478ea1e5ff2f56458e909eeb4303d9d3c688ec7 100644 GIT binary patch delta 878 zcmZuw&2JJ>5Pwst z$f<13ih$Vru)Ce&l|0U+vk#A-_og%Xypl@E87uOl$QxURNgCF>{zq%Af9tZGlw1)+ z(rAfJSgh++14&u-$dat&m3$^SDkZ0hL_hN&S~p$?;x55a0%^1n8Ye0;p>I4eKg}k< z*lr~!EonbD_YY6R&89%=8wgoneC6q&emJp9POFW2qS6u%}@8-dyz%nqn zytg+{4;E$y=w*Vb0QbH7hMsutZeNXrTOtY9g!#%PnM zf5_AyGBrRGD2~`1W8xp!{X@ImxXca!pvYhOVH)Eg6jC+S6m--us`gv16AcMNuHCmcs&lzV}8c$k{$x`~rabM($x zxB~n1J`WdZjfapI+>h+?9`kUTvzMK+G?@2~RwhZ9UJJvedkg=)EJwQ+n|S>;t`b4j zHgtpvHM3DK`l8W7jo^xHFw<1cIw>CQq#!yTJ53zs6%@U)BS5T zlP`U|wcUh+aia)}rG-W6bVEZ%gXxm8j0vnDuIctVSw?#y9x&Sg3{oa1eo$}!pwGDd JgFe%Y^8gXRCtm;n diff --git a/dsk/rd/emr/system/system.emx/app.elf b/dsk/rd/emr/system/system.emx/app.elf new file mode 100755 index 0000000000000000000000000000000000000000..ec1689731697f739c0ee3649739916d667807a4d GIT binary patch literal 4784 zcmeI0!AiqG5QZnQDJqH;JcxqC-n=Yc1W&RTrJx7zA|Ya^fhLjc3ijj^2z?~+(%10r zsdyFY&SpZkK@1>D0>e z(YnoE4~%RCACvdbt0XHUHC8&wu0y5cQm6S)2oYv+nuiZ6DXY!ZAFqn1cVISe7cE=E zhki3Ru+Ex&&gOUzH@0lz!CtF=$N0T!av|M%Nb^*S0x~tkPc%w$5Tl~FhsgdG0HMa2 zj&F?WveLVHrISYuqAYG>9WNaE_hi?!B8zTwgtSYVpBN4cfwgYzn*=?d%$i%D`rEwP w{cf*&?j`k4$m|%!xlZ+d0Jh0rF}g%+SKg=}@8?GQ`*Do)UB5^3rQh!V1^+of1ONa4 literal 0 HcmV?d00001 diff --git a/dsk/rd/emr/system/system.emx/package.info b/dsk/rd/emr/system/system.emx/package.info new file mode 100644 index 0000000..e7767fe --- /dev/null +++ b/dsk/rd/emr/system/system.emx/package.info @@ -0,0 +1,10 @@ + + + emr_system + + + emex + [] + [] + + diff --git a/limine.conf b/limine.conf index c9e16a1..f4624c5 100644 --- a/limine.conf +++ b/limine.conf @@ -21,6 +21,7 @@ default_entry: 0 #module_path: boot():/boot/activeslot.txt # Slot A module_path: boot():/boot/initrd.cpio + module_path: boot():/boot/hello.elf # slot 2 for update /emexOS B @@ -29,6 +30,7 @@ default_entry: 0 #module_path: boot():/boot/activeslot.txt # slot B module_path: boot():/boot/initrd.cpio + module_path: boot():/boot/hello.elf # ---- diff --git a/src/kernel/arch/x86_64/syscall_entry.asm b/src/kernel/arch/x86_64/syscall_entry.asm index 79b0c60..b70aec7 100644 --- a/src/kernel/arch/x86_64/syscall_entry.asm +++ b/src/kernel/arch/x86_64/syscall_entry.asm @@ -8,13 +8,11 @@ extern syscall_handler syscall_entry: ; save user stack pointer mov [rel user_rsp], rsp - - ; switch to kernel stack - mov rsp, [rel kernel_stack_top] + lea rsp, [rel kernel_stack_top] ; not mov ; save registers on kernel stack - push r11 ; rflags - push rcx ; user rip + push r11 ; rflags + push rcx ; user rip push rbx push rbp push r12 @@ -22,18 +20,10 @@ syscall_entry: push r14 push r15 - - mov r10, rdi ; save arg1 - mov rdi, rax ; syscall number -> first param - mov rsi, r10 ; arg1 -> second param - ; rdx already has arg2 - mov rcx, rdx ; arg3 - ; r8 already correct - mov r10, r8 - mov r8, r10 ; arg4 - ; r9 already correct - - + mov rcx, rdx ; rcx = arg3 (count) + mov rdx, rsi ; rdx = arg2 (buf) + mov rsi, rdi ; rsi = arg1 (fd) + mov rdi, rax ; rdi = syscall_num call syscall_handler ; from C diff --git a/src/kernel/console/console.c b/src/kernel/console/console.c index ec332cb..fa2d270 100644 --- a/src/kernel/console/console.c +++ b/src/kernel/console/console.c @@ -94,14 +94,14 @@ void console_init(void) console_window_init(); cursor_(); + console_execute("scale 1"); cprintf("\nWelcome to " KERNEL_BARENAME " " KERNEL_DEFRELEASE, white()); cprintf("\nyou're currently in " CONSOLE_APP_NAME " " CONSOLE_WINDOW "\n", white()); shell_print_prompt(); cursor_draw(); - console_execute("scale 1"); - console_execute("cd /.config"); - console_execute("cd /ekmsh"); - console_execute("tree"); + //console_execute("cd /.config"); + //console_execute("cd /ekmsh"); + //console_execute("tree"); console_run(); } diff --git a/src/kernel/file_systems/vfs/init.h b/src/kernel/file_systems/vfs/init.h index a8a55fb..9855e58 100644 --- a/src/kernel/file_systems/vfs/init.h +++ b/src/kernel/file_systems/vfs/init.h @@ -27,7 +27,8 @@ extern int init_boot_log; #define _EMX "/emr/" // mount point (/disk) #define EMCFG_DIRECTORY /*" /emr "*/EMX_DIRECTORY "/config" // == system configs #define EMAST_DIRECTORY /*" /emr "*/EMX_DIRECTORY "/assets" -#define EMLOG_DIRECTORY /*" /emr "*/EMX_DIRECTORY "/logs" +#define EMSYS_DIRECTORY /*" /emr "*/EMX_DIRECTORY "/system" +#define EMLOG_DIRECTORY /*" /emr "*/EMSYS_DIRECTORY "/logs" #define KEYMP_DIRECTORY /*" /emr "*/EMCFG_DIRECTORY "/keymaps" #define EMDRV_DIRECTORY /*" /emr "*/EMX_DIRECTORY "/drvs" diff --git a/src/kernel/file_systems/vfs/vfs_init.c b/src/kernel/file_systems/vfs/vfs_init.c index 08dc5fd..1d86c33 100644 --- a/src/kernel/file_systems/vfs/vfs_init.c +++ b/src/kernel/file_systems/vfs/vfs_init.c @@ -1,6 +1,6 @@ #include "init.h" int init_boot_log = -1; -char *logpath = "/emr/logs/log1.txt"; +char *logpath = "/emr/system/logs/log1.txt"; #include "vfs.h" #include #include @@ -144,6 +144,7 @@ void fs_system_init(void *klime) fs_mkdir(BOOT_DIRECTORY); //emx system requirement paths fs_mkdir(EMX_DIRECTORY); // /emr + fs_mkdir(EMSYS_DIRECTORY); fs_mkdir(EMLOG_DIRECTORY); //fs_mkdir(EMAST_DIRECTORY); //fs_mkdir(EMCFG_DIRECTORY); diff --git a/src/kernel/inits/initrd/initrd.c b/src/kernel/inits/initrd/initrd.c index 7024760..760dca5 100644 --- a/src/kernel/inits/initrd/initrd.c +++ b/src/kernel/inits/initrd/initrd.c @@ -44,7 +44,7 @@ int initrd_load(void) - { + search_initrd: { char buf[48]; str_copy(buf, "found at 0x"); str_from_hex(buf + str_len(buf), (u64)initrd_file->address); @@ -52,7 +52,7 @@ int initrd_load(void) str_append_uint(buf, (u32)initrd_file->size); str_append(buf, " bytes)\n"); log("[INITRD]", buf, d); - } + }; // CPIO newc magic diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index f72cebc..76c95eb 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -236,7 +236,6 @@ void _start(void) dualslotvalidating(); } - // initialize Limine modules limine_module_ss: limine_modules_init(); { initrd_load(); diff --git a/src/kernel/kernel_processes/bootscreen/boot.c b/src/kernel/kernel_processes/bootscreen/boot.c index b7b6c02..4b9936f 100644 --- a/src/kernel/kernel_processes/bootscreen/boot.c +++ b/src/kernel/kernel_processes/bootscreen/boot.c @@ -25,7 +25,7 @@ kproc_t bootscreen_proc = { .name = "bootscreen", .state = KPROC_STATE_READY, .flags = KPROC_FLAG_EARLY | KPROC_FLAG_CRITICAL | KPROC_FLAG_PERMANENT, - .priority = 255, + .priority = 128, .init = bs_init, .tick = bs_tick, .fini = bs_fini, diff --git a/src/kernel/kernel_processes/kernel/gen.h b/src/kernel/kernel_processes/kernel/gen.h index 8c4548f..5e9560a 100644 --- a/src/kernel/kernel_processes/kernel/gen.h +++ b/src/kernel/kernel_processes/kernel/gen.h @@ -27,6 +27,7 @@ extern ulime_t *ulime; #endif void kproc(void); +void init_kernelprocesses2(void); void uproc(void); void genprocs(void); diff --git a/src/kernel/kernel_processes/kernel/kproc.c b/src/kernel/kernel_processes/kernel/kproc.c index 07d4023..6ed3ff4 100644 --- a/src/kernel/kernel_processes/kernel/kproc.c +++ b/src/kernel/kernel_processes/kernel/kproc.c @@ -6,6 +6,22 @@ extern ulime_t *ulime; #endif */ +static int kernelprocesses2_init(kproc_t *self) { + (void)self; + printf("[KERNELPROCESSES2] initialising...\n"); + kproc(); + return KPROC_EFINE; +} + +static int kernelprocesses2_tick(kproc_t *self) { + (void)self; + return KPROC_EFINE; +} + +static void kernelprocesses2_fini(kproc_t *self) { + (void)self; +} + /* // create a process for the kernel @@ -54,3 +70,17 @@ void kproc(void ) { }; //void kproc(void); +// +kproc_t kernelprocesses2_proc = { + .name = "kproc_kernel", + .state = KPROC_STATE_READY, + .flags = KPROC_FLAG_EARLY | KPROC_FLAG_CRITICAL | KPROC_FLAG_PERMANENT, + .priority = 255, + .init = kernelprocesses2_init, + .tick = kernelprocesses2_tick, + .fini = kernelprocesses2_fini, +}; + +void init_kernelprocesses2(void) { + kproc_register_and_start(&kernelprocesses2_proc); +} diff --git a/src/kernel/kernel_processes/kernel/procs.c b/src/kernel/kernel_processes/kernel/procs.c index fd7703f..e25d54b 100644 --- a/src/kernel/kernel_processes/kernel/procs.c +++ b/src/kernel/kernel_processes/kernel/procs.c @@ -1,6 +1,7 @@ #include "gen.h" void genprocs(void) { - kproc(); + //kproc(); + init_kernelprocesses2(); uproc(); } diff --git a/src/kernel/kernel_processes/kernel/user.c b/src/kernel/kernel_processes/kernel/user.c index b67f5fb..763331b 100644 --- a/src/kernel/kernel_processes/kernel/user.c +++ b/src/kernel/kernel_processes/kernel/user.c @@ -1,56 +1,39 @@ #include "gen.h" -#define USERPROGRAMMSPACE 0x40004200 -#define USERPROGRAMMPRIORITY 1 - -void uproc(void ) { - #if ENABLE_ULIME && RUNTESTS // set to 1 to enable test - if ( - proc_mgr && - ulime && - module_request.response && - module_request.response->module_count - > 0){ - - ulime_proc_t *p4 = proc_create_proc(proc_mgr, (u8*)USERPROC, USERSPACE, USERPRIORITY); - if (p4) log("[KPROC]", "created user process\n", d); - - struct limine_module_response *mod_resp = module_request.response; - struct limine_file *hello_mod = NULL; - - for (u64 i = 0; i < mod_resp->module_count; i++) { - const char *path = mod_resp->modules[i]->path; - if (str_contains((char*)path, "hello.elf")) { - hello_mod = mod_resp->modules[i]; - break; - } - } - - if (hello_mod) - { - log("[ELF]", "found hello.elf module\n", d); - - ulime_proc_t *proc = proc_create_proc(proc_mgr, (u8*)"hello", USERPROGRAMMSPACE, USERPROGRAMMPRIORITY); - if (proc) - { - u8 *elf_data = (u8*)hello_mod->address; - u64 elf_size = hello_mod->size; - - if (elf_load(proc, elf_data, elf_size) == 0) { - ulime->ptr_proc_curr = proc; - log("[ELF]", "jumping to userspace\n", d); - u64 user_rsp = (proc->stack_base + proc->stack_size - 16) & ~0xFULL; - - verify_page_permissions(proc->ulime->hpr, proc->entry_point, "Code page"); - verify_page_permissions(proc->ulime->hpr, user_rsp, "Stack page"); - verify_gdt_setup(); - //JumpToUserspace(proc); - } - } - } else { - log("[ELF]", "hello.elf not found in ramfs\n", error); - } +#include + +// path to the init app in the VFS (loaded from initrd.cpio) +#define SYSTEMLOCATE "/emr/system/system.emx" +//mod +#define LOGINLOCATE "/emr/bin/login.elf" + +void uproc(void) { + #if ENABLE_ULIME + if (!proc_mgr || !ulime) { + log("[INIT]", "proc_mgr or ulime not ready\n", error); + return; } + + log("[INIT]", "loading " SYSTEMLOCATE "...\n", d); + + ulime_proc_t *init_proc = NULL; + int result = emex_launch_app(SYSTEMLOCATE, &init_proc); + + if (result != EMEX_OK || !init_proc) { + log("[INIT]", "failed to load " SYSTEMLOCATE "\n", error); + log("[INIT]", "system cannot continue without init\n", error); + //while (1) __asm__ volatile("cli; hlt"); + // hcf(); + } + + log("[INIT]", "jumping to userspace\n", success); + + dump_kprocesses(); + ulime->ptr_proc_curr = init_proc; + JumpToUserspace(init_proc); + + + __builtin_unreachable(); + //proc_list_procs(proc_mgr); #endif - -}; +} diff --git a/src/kernel/packages/emex/emex.c b/src/kernel/packages/emex/emex.c index 12edd5e..dddb43b 100644 --- a/src/kernel/packages/emex/emex.c +++ b/src/kernel/packages/emex/emex.c @@ -23,7 +23,7 @@ void emex_print_info(emex_package_t *pkg) printf("[EMX] version: %s\n", pkg->info.version); printf("[EMX] description: %s\n", pkg->info.description); printf("[EMX] has icon: %s\n", pkg->has_icon ? "yes" : "no"); - printf("[EMX] resources: %s\n", pkg->has_resources ? "yes" : "no"); + printf("[EMX] resources: %s\n", pkg->has_resources ? "yes" : "no"); } // opens the package, reads the elf, launches with process @@ -103,7 +103,8 @@ int emex_launch_app(const char *path, ulime_proc_t **out_proc) return EMEX_ERR_BAD_ELF; } - printf("[EMX] '%s' ready at 0x%llX\n", pkg.info.title, proc->entry_point); + printf("[EMX] '%s' ready at entry=0x%llX (state=PROC_READY)\n", + pkg.info.title, proc->entry_point); if (out_proc) *out_proc = proc; diff --git a/src/kernel/packages/emex/emex.h b/src/kernel/packages/emex/emex.h index bfa9589..06e2c64 100644 --- a/src/kernel/packages/emex/emex.h +++ b/src/kernel/packages/emex/emex.h @@ -18,7 +18,7 @@ // those cant be changed otherwise compatibility will brake #define EMEX_GEN_NAME "app" -#define EMEX_ELF_NAME EMEX_GEN_NAME " "".elf" +#define EMEX_ELF_NAME EMEX_GEN_NAME "" ".elf" #define EMEX_INFO_NAME "package.info" #define EMEX_ICON_NAME "app_icon.bmp" #define EMEX_RES_DIR "resources" diff --git a/src/kernel/user/_start.c b/src/kernel/user/_start.c index d900568..768666e 100644 --- a/src/kernel/user/_start.c +++ b/src/kernel/user/_start.c @@ -1,7 +1,7 @@ #include "gen.h" //mod -#define USERLOCATE "/user/bin/login.elf" +//#define USERLOCATE "/user/bin/login.elf" void DEinit(void) { diff --git a/src/kernel/user/jump.c b/src/kernel/user/jump.c index 94845ea..f7f0290 100644 --- a/src/kernel/user/jump.c +++ b/src/kernel/user/jump.c @@ -11,8 +11,8 @@ void JumpToUserspace(ulime_proc_t *proc) { return; } - u64 kernel_stack = proc->stack_base + 0x1000; - gdt_set_kernel_stack(kernel_stack); + //u64 kernel_stack = proc->stack_base + 0x1000; + //gdt_set_kernel_stack(kernel_stack); u64 user_rip = proc->entry_point; u64 user_rsp = (proc->stack_base + proc->stack_size - 16) & ~0xFULL; // 16-byte aligned diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index 2bdbad7..32d541c 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -7,6 +7,8 @@ #include //#include #include +#include +#include #include static ulime_t *g_ulime = NULL; @@ -16,10 +18,17 @@ u64 scall_write(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { (void)proc; if (fd != 1 && fd != 2) return (u64)-1; + // validate buf is in userspace range (basic sanity check) + if (buf == 0 || buf > 0x0000800000000000ULL) return (u64)-1; + const char *str = (const char *)buf; + + // write each char to screen using console output for (u64 i = 0; i < count; i++) { - //count ++; - printf("%c", str[i]); + char tmp[2]; + tmp[0] = str[i]; + tmp[1] = '\0'; + cprintf(tmp, 0xFFFFFFFF); // white } return count; @@ -33,6 +42,10 @@ u64 scall_exit(ulime_proc_t *proc, u64 exit_code, u64 arg2, u64 arg3) { proc->state = PROC_ZOMBIE; //BOOTUP_PRINTF("[USERMODE] !!! RETURN !!!\n"); + // clear current process so scheduler doesn't try to return to it + if (g_ulime) { + g_ulime->ptr_proc_curr = NULL; + } while(1) { __asm__ volatile("cli; hlt"); @@ -74,6 +87,31 @@ u64 scall_brk(ulime_proc_t *proc, u64 addr, u64 arg2, u64 arg3) { return proc->heap_base + proc->heap_size; } +u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { + (void)proc; + (void)arg2; + (void)arg3; + + // validate pointer + if (path_ptr == 0 || path_ptr > 0x0000800000000000ULL) return (u64)-1; + + const char *path = (const char *)path_ptr; + + printf("[SYSCALL] execve: '%s'\n", path); + + // emex_launch_app creates the process as PROC_READY. + // the scheduler will switch to it on the next quantum. + ulime_proc_t *new_proc = NULL; + int result = emex_launch_app(path, &new_proc); + if (result != 0 || !new_proc) { + printf("[SYSCALL] execve failed with code %d\n", result); + return (u64)-1; + } + + // return the new pid to the caller + return new_proc->pid; +} + void _init_syscalls_table(ulime_t *ulime) { if (!ulime) return; @@ -86,6 +124,7 @@ void _init_syscalls_table(ulime_t *ulime) { ulime->syscalls[GETPID] = scall_getpid; ulime->syscalls[BRK] = scall_brk; ulime->syscalls[EXIT] = scall_exit; + ulime->syscalls[EXECVE] = scall_execve; log("[SYSCALL]", "syscall table initialized\n", d); } diff --git a/src/userspace/Makefile b/src/userspace/Makefile index 9b00f7f..5bb2ae4 100644 --- a/src/userspace/Makefile +++ b/src/userspace/Makefile @@ -1,8 +1,9 @@ all: @$(MAKE) -C apps/hello + @$(MAKE) -C apps/system clean: @$(MAKE) -C apps/hello clean - + @$(MAKE) -C apps/system clean .PHONY: all clean diff --git a/src/userspace/apps/hello/Makefile b/src/userspace/apps/hello/Makefile index db0c58e..6e6bcd4 100644 --- a/src/userspace/apps/hello/Makefile +++ b/src/userspace/apps/hello/Makefile @@ -1,20 +1,23 @@ AS := x86_64-elf-as LD := x86_64-elf-ld -LDFLAGS := -nostdlib -static -no-pie -T user.ld +LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld EMX_DIR := hello.emx -all: $(EMX_DIR)/app.elf +all: clean hello.elf -$(EMX_DIR)/app.elf: hello.o user.ld +hello.elf: hello.o + $(LD) $(LDFLAGS) hello.o -o hello.elf + @echo "Built hello.elf" + +$(EMX_DIR)/app.elf: hello.elf @mkdir -p $(EMX_DIR) - $(LD) $(LDFLAGS) hello.o -o $(EMX_DIR)/app.elf - @echo "Built $(EMX_DIR)/app.elf" + cp hello.elf $(EMX_DIR)/app.elf hello.o: hello.S $(AS) hello.S -o hello.o clean: - rm -f *.o $(EMX_DIR)/app.elf + rm -f *.o hello.elf $(EMX_DIR)/app.elf .PHONY: all clean diff --git a/src/userspace/apps/hello/hello.S b/src/userspace/apps/hello/hello.S index 0ec09a9..96e654b 100644 --- a/src/userspace/apps/hello/hello.S +++ b/src/userspace/apps/hello/hello.S @@ -1,10 +1,22 @@ +.section .rodata +msg: + .ascii "hello from userspace!\n" +msg_len = . - msg + .section .text .global _start _start: - # just exit immediately with code 42 to test if user mode works + # write(1, msg, msg_len) + mov $1, %rax # WRITE + mov $1, %rdi # stdout + lea msg(%rip), %rsi + mov $msg_len, %rdx + syscall + + # exit(0) mov $60, %rax # EXIT - mov $42, %rdi # status == 42 + xor %rdi, %rdi # 0 syscall # should never reach here diff --git a/src/userspace/apps/hello/hello.emx/app.elf b/src/userspace/apps/hello/hello.elf similarity index 83% rename from src/userspace/apps/hello/hello.emx/app.elf rename to src/userspace/apps/hello/hello.elf index 3e654b5096a5d36b2509fbb8f836460005e334dc..b4331f2c172fb3817dd46ec2a70207382cda2770 100755 GIT binary patch literal 4744 zcmeHL!AiqG5S_-RR6$w~ilB$~D20Fr!Gp+pP;&4eN~)_pBu0`I>d7zgpNg0Kgg;U6 zp3ZD0WE(_5@HPXxZ|BXt-Q?wzeY?KB@j4x-!-GrUOc7@%#Qq*-RVX;e9tAz{ZLd%C zkc*8(5p%_KjZPm|1jGSxKpYSU!~t#dc1?>pMrMn!m4cdY+J&ENpoLdnO!@t zN;=<-eN2Yc&4hA!uum1FkmQdvrm=p4X>Ov-00jAKVxk$M$ts-JE29?%f-Jp{Oti7z zACn{0(Yy8s_t8Z^-%ulU+m_ea;UV>3eMP Z+JzrZ~suK~(}I0yg$ delta 166 zcmeBB-Jv`|L%c$O0S+7(EEpIW92i&`SSH#latcBv1UF{R;^(sg@;r_o*8)=ftY0QO z3Mh*R096Bl1Bifu$yWq4CpNiH_7GHH6r3C=AUt`Gpo*vj)D{D%GG-vnIQgrf_T&eG W9E==bbv8mOoB>dEieQl%K^_1}EgE$I diff --git a/src/userspace/apps/hello/hello.o b/src/userspace/apps/hello/hello.o index 2628cbaf63f92f7bd2da09942dc95e8fe9a9d8e1..711cf7eac82a86f09ecb226d63cba71aaf71908e 100644 GIT binary patch literal 944 zcmbtSO-sW-5S_F}TS2NIQt%QlUX)-D9t4qGlpOpIWviQ~zen&W z#F@=33EP061DiMVX5P$xJfjWMqH=Mg}_u1P><4z;FP;WN-kp9T?ad*cd#HAFu&(J&qsO0#f{}U%+y> z36R+W*ldU|E=epZVPMcJuFNe-Oajs+MG!gz#wtmzC}Ge`Ni0cZ&`T;V#%&1+GSWb` zAUCn0>2ZMa1<}OO!$uJ(4-#WWQx}NFhjG#Ms{JBE04lHlxP2QW?c3&>9uX>&bCOo)+wlXZhn?(i<9l!{N5Z3S13G2Fn z*E8yc^~W*7=HPqwIloQwDw0#F()`YsDz4O|7z-i%Jf0N(lT0h!TqotP(TBlOU$3>y zYvyY~d)Tqj6doMdB<4GKwz_Vf%Q4`Iva|q^mE|Ku%_UgB&DcYvUFHiNAmlVxae}BS zjSnWP(kvD#eO4guV-G@Q`d{oY^WAsh&hOHa&y39su3=4Y&AtB! dId^xG`aEcl3M<_C^sc(}H~itbrKQx>{{WdzN6Y{K literal 0 HcmV?d00001 diff --git a/src/userspace/apps/system/system.emx/app.elf b/src/userspace/apps/system/system.emx/app.elf new file mode 100755 index 0000000000000000000000000000000000000000..ec1689731697f739c0ee3649739916d667807a4d GIT binary patch literal 4784 zcmeI0!AiqG5QZnQDJqH;JcxqC-n=Yc1W&RTrJx7zA|Ya^fhLjc3ijj^2z?~+(%10r zsdyFY&SpZkK@1>D0>e z(YnoE4~%RCACvdbt0XHUHC8&wu0y5cQm6S)2oYv+nuiZ6DXY!ZAFqn1cVISe7cE=E zhki3Ru+Ex&&gOUzH@0lz!CtF=$N0T!av|M%Nb^*S0x~tkPc%w$5Tl~FhsgdG0HMa2 zj&F?WveLVHrISYuqAYG>9WNaE_hi?!B8zTwgtSYVpBN4cfwgYzn*=?d%$i%D`rEwP w{cf*&?j`k4$m|%!xlZ+d0Jh0rF}g%+SKg=}@8?GQ`*Do)UB5^3rQh!V1^+of1ONa4 literal 0 HcmV?d00001 diff --git a/src/userspace/apps/system/system.emx/package.info b/src/userspace/apps/system/system.emx/package.info new file mode 100644 index 0000000..e7767fe --- /dev/null +++ b/src/userspace/apps/system/system.emx/package.info @@ -0,0 +1,10 @@ + + + emr_system + + + emex + [] + [] + + diff --git a/src/userspace/apps/system/todo.md b/src/userspace/apps/system/todo.md new file mode 100644 index 0000000..acf6a86 --- /dev/null +++ b/src/userspace/apps/system/todo.md @@ -0,0 +1,6 @@ +[] create a login +[] create a desktop enviroment +[] create a window system +[] create a shell (emesh) +[] port doom +[] be happy :) diff --git a/src/userspace/apps/hello/user.ld b/src/userspace/user.ld similarity index 100% rename from src/userspace/apps/hello/user.ld rename to src/userspace/user.ld From ec3922572ab8640e1cc9f9eb796fe2f01a508659 Mon Sep 17 00:00:00 2001 From: emexos Date: Sun, 22 Feb 2026 19:09:46 +0100 Subject: [PATCH 14/41] moved fs_init to inits/ --- dsk/initrd.cpio | Bin 196608 -> 200192 bytes dsk/rd/boot/activeslot.cfg | 1 + dsk/rd/boot/activeslot.txt | 2 - .../rd/boot/ui/fonts}/font8x15.bin | Bin shared/config/user_config.c | 1 + shared/theme/bootconf.emcg | 76 ------------------ src/TODO.md | 32 +++----- src/kernel/file_systems/vfs/vfs_init.c | 28 +------ src/kernel/inits/fs/init.c | 22 +++++ .../{file_systems/vfs => inits/fs}/init.h | 2 + src/kernel/kernel.c | 5 +- src/userspace/apps/system/todo.md | 13 +-- 12 files changed, 52 insertions(+), 130 deletions(-) create mode 100644 dsk/rd/boot/activeslot.cfg delete mode 100644 dsk/rd/boot/activeslot.txt rename {shared/theme => dsk/rd/boot/ui/fonts}/font8x15.bin (100%) delete mode 100644 shared/theme/bootconf.emcg create mode 100644 src/kernel/inits/fs/init.c rename src/kernel/{file_systems/vfs => inits/fs}/init.h (98%) diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index a478ea1e5ff2f56458e909eeb4303d9d3c688ec7..2a45de1c2e58b2908c43f7452c9318fdb0095a8b 100644 GIT binary patch delta 4016 zcmb_fPiP%Q7@wEgjg4yydT>e}sZb9Jl5FyxuN%5NFxJC6s6C2$*k;oyHOqSmjcK5d z-FWgQ$UBsRh#qnjgdC(opb+#_=rx#2?t17!^dhal@B3zUCkSaFnRNHlz zjX9PuEb-0G#qH0=e*NW4t1~}Oie!59V?&Ro8{?yNr+NBX`}$HeY8<@r(rj#^ORUt4 zz8`z5bQYrNnZ?0iZRU%cGiK0VyT$K#WA>ft#hZOaqi}=KA=tWdrKQU9y&nF`QdyYw zKI&zFN69kvkglV+*|Kw^V028`(rSaQ%In@Uy*{2FUbcGWGxBphOOQSyTja+C%GSd` zokpvtUM+Q!Bw8!{<6(@E4|#VwWrrVvS|=urbQlq0=mz9r>iU*2Q53m}@q}N~c{7wE(CBf*@pLY05Y; z{k~aWH;GWg=8z1B?1d^-VoZQ2Qmc<(Gcb-jiV(jkgFu9fG);%lzag-xqaiZpmNxz~38q*DREV2}hf_>+;;3`D+iIVNORe?V@xD4dAOh7dvu8LUf?mpVzfAm0l zO`&YY6nKPrh%bH!f(2AWRk^v5gKkW2L*$4-cg;r$z>|tDmPLqNfh0(VtR*ZH9yap< zkIE2i^2*6t z<{%(#&|I>xBn~TVgA*kcLI+hI(_*1Dl+)@FUBZekcB%{H4Fz>joVLvD7ED>Ul(HeE zr7daYSHSY7zk(Q3r>l#A#AVFbh@vS+l@O`~Fm&Zqipq(4*31d@i-R`)B-D?23N2pm z73ett>||0Q&W(M6ndiZ7H@MaPuboo*Jz|^oskVimlUod&B(pm%Z52;awbLa|hq~Sf zG2?c68~^jB>%Rp?If z@gWS&rd(cFhmIu^Ru-PX70+*_5TJR;xJ8iTV$C?GhM2%5Mj&pj zbTu$J!4=9^eYl>bplXPk`Ea$wmhO=$_Z~!%eMsv2lauA%-fjA%VGnBR1U8JtWlv@{ zTthZoLpB76!;yQAgg4Lw_OK;k50bD4N!W*~qw^_B0IQ-?iqeBY9$L46m}=c}5dV2_ zb*zM?tPHK2jvMOGOa;B%K$Q!rFUiVltK(yD{_`K}8c{z0 delta 127 zcmZpe!_&~fvq6%P)hyM*z+|!Qi~x<5Cujfw diff --git a/dsk/rd/boot/activeslot.cfg b/dsk/rd/boot/activeslot.cfg new file mode 100644 index 0000000..f70f10e --- /dev/null +++ b/dsk/rd/boot/activeslot.cfg @@ -0,0 +1 @@ +A diff --git a/dsk/rd/boot/activeslot.txt b/dsk/rd/boot/activeslot.txt deleted file mode 100644 index 06dede7..0000000 --- a/dsk/rd/boot/activeslot.txt +++ /dev/null @@ -1,2 +0,0 @@ -A -𒌐 diff --git a/shared/theme/font8x15.bin b/dsk/rd/boot/ui/fonts/font8x15.bin similarity index 100% rename from shared/theme/font8x15.bin rename to dsk/rd/boot/ui/fonts/font8x15.bin diff --git a/shared/config/user_config.c b/shared/config/user_config.c index ee668bd..8e8bdf6 100644 --- a/shared/config/user_config.c +++ b/shared/config/user_config.c @@ -1,5 +1,6 @@ #include "user_config.h" #include +#include #include #include diff --git a/shared/theme/bootconf.emcg b/shared/theme/bootconf.emcg deleted file mode 100644 index d24b17a..0000000 --- a/shared/theme/bootconf.emcg +++ /dev/null @@ -1,76 +0,0 @@ -include stdio; # printf, print, printInt -include stdclrs; - -# -# emexOS boot configuration -# bootconf.emcg (emex config) -# - -# bootup visuals -BOOTUP_VISUALS 0; # verbose boot == 0, silent boot == 1 -BOOTUP_COLOR_THEME STD -BOOTSCREEN_BG_COLOR GFX_ST_BLACK -BOOTSCREEN_COLOR GFX_ST_WHITE -LOGO_SCALE 1 - -# macros -if BOOTUP_VISUALS == 0: - BOOTUP_PRINTF(fmt, ...) == printf(fmt, ##__VA_ARGS__); - BOOTUP_PRINT(msg, col) == (__c__ #inline c - { - do { - print(msg, col); - if (boot_log_fd >= 0) fs_write(boot_log_fd, msg, str_len(msg)); - } while(0) - - }__c__); - - BOOTUP_PRINT_INT(num, col) == (__c__ - { - do { - printInt(num, col); - if (boot_log_fd >= 0) { - char buf[12]; - buf[0] = '\0'; - str_append_uint(buf, (u32)num); - fs_write(boot_log_fd, buf, str_len(buf)); - } - } while(0); - }__c__); - -else: - BOOTUP_PRINTF(fmt, ...) == ((void)0); - - BOOTUP_PRINT(msg, col) == (__c__ #inline c - { - do { - printf("%s", msg); - if (boot_log_fd >= 0) fs_write(boot_log_fd, msg, str_len(msg)); - } while(0) - - }__c__); - - BOOTUP_PRINT_INT(num, col) == (__c__ - { - do { - printInt(num, col); - if (boot_log_fd >= 0) { - char buf[12]; - buf[0] = '\0'; - str_append_uint(buf, (u32)num); - fs_write(boot_log_fd, buf, str_len(buf)); - } - } while(0); - }__c__); -end; - -# console -CONSOLESCREEN_BG_COLOR GFX_BG -CONSOLESCREEN_COLOR GFX_WHITE -CONSOLE_COLOR_THEME FLU - -# panic screen -PANICSCREEN_BG_COLOR GFX_ST_BLUE -PANICSCREEN_COLOR GFX_ST_WHITE -PANICSCREEN_COLOR_R GFX_ST_RED -PANIC_COLOR_THEME STD diff --git a/src/TODO.md b/src/TODO.md index 91a6334..c2539b9 100644 --- a/src/TODO.md +++ b/src/TODO.md @@ -1,19 +1,13 @@ -move reqs (inline assembly, limine reqs) to /kernel/include/ports(.h&.c) -with /kernel/include/reqs(.h&.c) - - -remaking mem_manager with slab - -Make console to an app -make the top bar in console to an app -make every command to an app - - -if we have a fs the kernel should no longer load per keyboard_pull and so on, -it should load the module system which searches for all modules which -are all saved in the fs and then they get loaded and everything should work - - -simple disk driver for fat32 (block reading) -(sector reader, 512 b) -bps parser , cluster size +[ ] fix log system +[ ] fix slow bootscreen +[ ] fix user_config creates a already written file +[ ] fix fat32 is not registered +[ ] implement atapi support +[x] implement bmp +[ ] implement png +[ ] implement mp4 +[ ] implement ahci +[ ] implement a libc +[ ] upgrade theme manager +[ ] upgrade font manager +[ ] upgrade bootscreen manager diff --git a/src/kernel/file_systems/vfs/vfs_init.c b/src/kernel/file_systems/vfs/vfs_init.c index 1d86c33..a2c0e56 100644 --- a/src/kernel/file_systems/vfs/vfs_init.c +++ b/src/kernel/file_systems/vfs/vfs_init.c @@ -1,4 +1,5 @@ -#include "init.h" +//#include "init.h" +#include int init_boot_log = -1; char *logpath = "/emr/system/logs/log1.txt"; #include "vfs.h" @@ -136,23 +137,7 @@ void fs_system_init(void *klime) fs_mount(NULL, ROOT_MOUNT_DEFAULT, ROOTFS); // in future its just root so for (fat32,ext2,...) //fs_mount(NULL, "/", "/"); // or root - // only necessary dirs the rest comes from initrd.cpio - // create standard dirs - fs_mkdir(DEV_DIRECTORY); - fs_mkdir(TMP_DIRECTORY); - - fs_mkdir(BOOT_DIRECTORY); - //emx system requirement paths - fs_mkdir(EMX_DIRECTORY); // /emr - fs_mkdir(EMSYS_DIRECTORY); - fs_mkdir(EMLOG_DIRECTORY); - //fs_mkdir(EMAST_DIRECTORY); - //fs_mkdir(EMCFG_DIRECTORY); - //fs_mkdir(KEYMP_DIRECTORY); - //fs_mkdir(EMDRV_DIRECTORY); - - //fs_mkdir(CONF_DIRECTORY); - + initrfs(); init_boot_log = fs_open(logpath, O_CREAT | O_WRONLY); log("[FS]", "[FS] wrote", d); @@ -161,18 +146,11 @@ void fs_system_init(void *klime) panic("Cannot open [logs]"); } BOOTUP_PRINT("\n", white()); - //TODO: bootconf loading from /boot/bootconf - // in shared/theme/bootconf file - - //fs_check_bootconf(); - //fs_load_bootconf(); - // mount devfs at /dev fs_mount(NULL, DEV_MOUNT_DEFAULT, DEVFS); //last thing for init is loading all limine modules load_limine_module(); // logo - } void fs_register_mods() diff --git a/src/kernel/inits/fs/init.c b/src/kernel/inits/fs/init.c new file mode 100644 index 0000000..ddc156d --- /dev/null +++ b/src/kernel/inits/fs/init.c @@ -0,0 +1,22 @@ +#include "init.h" + +#include + +void initrfs(void){ + // only necessary dirs the rest comes from initrd.cpio + // create standard dirs + fs_mkdir(DEV_DIRECTORY); + fs_mkdir(TMP_DIRECTORY); + + fs_mkdir(BOOT_DIRECTORY); + //emx system requirement paths + fs_mkdir(EMX_DIRECTORY); // /emr + fs_mkdir(EMSYS_DIRECTORY); + fs_mkdir(EMLOG_DIRECTORY); + //fs_mkdir(EMAST_DIRECTORY); + //fs_mkdir(EMCFG_DIRECTORY); + //fs_mkdir(KEYMP_DIRECTORY); + //fs_mkdir(EMDRV_DIRECTORY); + + //fs_mkdir(CONF_DIRECTORY); +} diff --git a/src/kernel/file_systems/vfs/init.h b/src/kernel/inits/fs/init.h similarity index 98% rename from src/kernel/file_systems/vfs/init.h rename to src/kernel/inits/fs/init.h index 9855e58..da883b1 100644 --- a/src/kernel/file_systems/vfs/init.h +++ b/src/kernel/inits/fs/init.h @@ -2,6 +2,8 @@ extern char *logpath; extern int init_boot_log; +void initrfs(void); + #define DISK_NAME "hdd0" #define ROOTFS TMPFS // for now, soon its fat32/ext2 diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 76c95eb..6eb1485 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -31,13 +31,14 @@ #endif - // usermode stuff #include //Desktop Enviroment #include // executables #include +#include +#include // Memory @@ -62,7 +63,7 @@ klime_t *klime = NULL; //vFS & fs & disk #include -#include +#include #include #include #if ENABLE_FAT32 diff --git a/src/userspace/apps/system/todo.md b/src/userspace/apps/system/todo.md index acf6a86..4588795 100644 --- a/src/userspace/apps/system/todo.md +++ b/src/userspace/apps/system/todo.md @@ -1,6 +1,7 @@ -[] create a login -[] create a desktop enviroment -[] create a window system -[] create a shell (emesh) -[] port doom -[] be happy :) +[x] jump to userspace +[ ] create a login +[ ] create a desktop enviroment +[ ] create a window system +[ ] create a shell (emesh) +[ ] port doom +[ ] be happy :) From 40e546d3f0ac154bebbce4f4b650b4e69789b4dd Mon Sep 17 00:00:00 2001 From: emexos Date: Mon, 23 Feb 2026 19:13:44 +0100 Subject: [PATCH 15/41] libc works... kinda..... --- dsk/initrd.cpio | Bin 200192 -> 205312 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 4784 -> 9800 bytes src/kernel/file_systems/vfs/vfs_init.c | 2 +- src/kernel/inits/fs/init.c | 2 +- src/kernel/inits/fs/init.h | 2 +- src/userspace/Makefile | 2 + src/userspace/apps/system/Makefile | 25 +++-- src/userspace/apps/system/init.c | 29 ++++++ src/userspace/apps/system/init.h | 12 +++ src/userspace/apps/system/init.o | Bin 984 -> 1968 bytes src/userspace/apps/system/system.emx/app.elf | Bin 4784 -> 9800 bytes src/userspace/libc/Makefile | 31 ++++++ src/userspace/libc/include/errno.h | 21 ++++ src/userspace/libc/include/fcntl.h | 11 +++ src/userspace/libc/include/stdarg.h | 6 ++ src/userspace/libc/include/stdbool.h | 4 + src/userspace/libc/include/stddef.h | 5 + src/userspace/libc/include/stdint.h | 19 ++++ src/userspace/libc/include/stdio.h | 5 + src/userspace/libc/include/stdlib.h | 20 ++++ src/userspace/libc/include/string.h | 20 ++++ src/userspace/libc/include/sys/types.h | 8 ++ src/userspace/libc/include/unistd.h | 21 ++++ src/userspace/libc/src/_syscall.h | 31 ++++++ src/userspace/libc/src/crt0.S | 12 +++ src/userspace/libc/src/errno.c | 2 + src/userspace/libc/src/fcntl.c | 17 ++++ src/userspace/libc/src/stdio.c | 4 + src/userspace/libc/src/stdlib.c | 70 ++++++++++++++ src/userspace/libc/src/string.c | 95 +++++++++++++++++++ src/userspace/libc/src/unistd.c | 43 +++++++++ 31 files changed, 508 insertions(+), 11 deletions(-) create mode 100644 src/userspace/apps/system/init.c create mode 100644 src/userspace/apps/system/init.h create mode 100644 src/userspace/libc/Makefile create mode 100644 src/userspace/libc/include/errno.h create mode 100644 src/userspace/libc/include/fcntl.h create mode 100644 src/userspace/libc/include/stdarg.h create mode 100644 src/userspace/libc/include/stdbool.h create mode 100644 src/userspace/libc/include/stddef.h create mode 100644 src/userspace/libc/include/stdint.h create mode 100644 src/userspace/libc/include/stdio.h create mode 100644 src/userspace/libc/include/stdlib.h create mode 100644 src/userspace/libc/include/string.h create mode 100644 src/userspace/libc/include/sys/types.h create mode 100644 src/userspace/libc/include/unistd.h create mode 100644 src/userspace/libc/src/_syscall.h create mode 100644 src/userspace/libc/src/crt0.S create mode 100644 src/userspace/libc/src/errno.c create mode 100644 src/userspace/libc/src/fcntl.c create mode 100644 src/userspace/libc/src/stdio.c create mode 100644 src/userspace/libc/src/stdlib.c create mode 100644 src/userspace/libc/src/string.c create mode 100644 src/userspace/libc/src/unistd.c diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 2a45de1c2e58b2908c43f7452c9318fdb0095a8b..cbe544ad4aab8541920c1f6c119ebb71b7c5088a 100644 GIT binary patch delta 5956 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 GTmK8i3;BWo delta 1020 zcmZ8g&1(}u6rZ=7sI@Ce#bi|)yA1`Cek_Sp)PrdX77Mi+uq}aBYTCv&kgp~Y>aCu< zC~O&IRQv;S=%KJk6by(IdXSbBE$zX>_99}08pMNOt+UC_P<*hw-+RCJF|+T@;;OXx zQqpb+fqUek2+C6WCWW|vSH{Ca^O7;bEtqUTH(BTb30Gi-Qv#>nfk_DyRw#~aNP0y4 z{)VNlbW#3pne)+INjJ)K4pu6*KF;9Q`m~j$M>dvitb*BGS3W*t4!yEn!f|w$ zC+V$U7?$zYx�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 literal 4784 zcmeI0!AiqG5QZnQDJqH;JcxqC-n=Yc1W&RTrJx7zA|Ya^fhLjc3ijj^2z?~+(%10r zsdyFY&SpZkK@1>D0>e z(YnoE4~%RCACvdbt0XHUHC8&wu0y5cQm6S)2oYv+nuiZ6DXY!ZAFqn1cVISe7cE=E zhki3Ru+Ex&&gOUzH@0lz!CtF=$N0T!av|M%Nb^*S0x~tkPc%w$5Tl~FhsgdG0HMa2 zj&F?WveLVHrISYuqAYG>9WNaE_hi?!B8zTwgtSYVpBN4cfwgYzn*=?d%$i%D`rEwP w{cf*&?j`k4$m|%!xlZ+d0Jh0rF}g%+SKg=}@8?GQ`*Do)UB5^3rQh!V1^+of1ONa4 diff --git a/src/kernel/file_systems/vfs/vfs_init.c b/src/kernel/file_systems/vfs/vfs_init.c index a2c0e56..0fed55c 100644 --- a/src/kernel/file_systems/vfs/vfs_init.c +++ b/src/kernel/file_systems/vfs/vfs_init.c @@ -137,7 +137,7 @@ void fs_system_init(void *klime) fs_mount(NULL, ROOT_MOUNT_DEFAULT, ROOTFS); // in future its just root so for (fat32,ext2,...) //fs_mount(NULL, "/", "/"); // or root - initrfs(); + initvfs(); init_boot_log = fs_open(logpath, O_CREAT | O_WRONLY); log("[FS]", "[FS] wrote", d); diff --git a/src/kernel/inits/fs/init.c b/src/kernel/inits/fs/init.c index ddc156d..7e9ae7f 100644 --- a/src/kernel/inits/fs/init.c +++ b/src/kernel/inits/fs/init.c @@ -2,7 +2,7 @@ #include -void initrfs(void){ +void initvfs(void){ // only necessary dirs the rest comes from initrd.cpio // create standard dirs fs_mkdir(DEV_DIRECTORY); diff --git a/src/kernel/inits/fs/init.h b/src/kernel/inits/fs/init.h index da883b1..cdd0681 100644 --- a/src/kernel/inits/fs/init.h +++ b/src/kernel/inits/fs/init.h @@ -2,7 +2,7 @@ extern char *logpath; extern int init_boot_log; -void initrfs(void); +void initvfs(void); #define DISK_NAME "hdd0" diff --git a/src/userspace/Makefile b/src/userspace/Makefile index 5bb2ae4..a92eab1 100644 --- a/src/userspace/Makefile +++ b/src/userspace/Makefile @@ -1,8 +1,10 @@ all: + @$(MAKE) -C libc @$(MAKE) -C apps/hello @$(MAKE) -C apps/system clean: + @$(MAKE) -C libc clean @$(MAKE) -C apps/hello clean @$(MAKE) -C apps/system clean diff --git a/src/userspace/apps/system/Makefile b/src/userspace/apps/system/Makefile index eaf59b7..118cc86 100644 --- a/src/userspace/apps/system/Makefile +++ b/src/userspace/apps/system/Makefile @@ -1,15 +1,24 @@ -AS := x86_64-elf-as -LD := x86_64-elf-ld +CC := x86_64-elf-gcc +LD := x86_64-elf-ld +LIBC := ../../libc + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(LIBC)/include + LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld -all: clean app.elf +all: clean system.emx/app.elf + +system.emx/app.elf: init.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o init.o $(LIBC)/build/libc.a -o $@ -app.elf: init.o - $(LD) $(LDFLAGS) init.o -o system.emx/app.elf - @echo "built app.elf" +init.o: init.c + $(CC) $(CFLAGS) -c $< -o $@ -init.o: init.S - $(AS) init.S -o init.o +$(LIBC)/build/crt0.o $(LIBC)/build/libc.a: + $(MAKE) -C $(LIBC) clean: rm -f *.o system.emx/app.elf diff --git a/src/userspace/apps/system/init.c b/src/userspace/apps/system/init.c new file mode 100644 index 0000000..0407742 --- /dev/null +++ b/src/userspace/apps/system/init.c @@ -0,0 +1,29 @@ +#include "init.h" +#include +//#include +#include + +const char* handlers[] = EMRHANDLERS; + +int main(void) +{ + const char emr_start[] = "[emr_system] starting...\n";//Hello from Userspace my friends :)"; + //const char emr_info[] = "[emr_system] emr_system is the base init system for emexOS"; + + //printf("test printf\n\n"); + write(STDOUT_FILENO, emr_start, sizeof(emr_start) - 1); + + /*size_t handlers_count = sizeof(handlers) / sizeof(handlers[0]); + char buffer[128]; + + for (size_t i = 0; i < handlers_count; i++) + { + strncpy(buffer, handlers[i], sizeof(buffer)-1); + buffer[sizeof(buffer)-1] = 0; + write(STDOUT_FILENO, buffer, strlen(buffer)); + write(STDOUT_FILENO, "\n", 1); + }*/ + + for (;;) __asm__ volatile("pause"); + return 0; +} diff --git a/src/userspace/apps/system/init.h b/src/userspace/apps/system/init.h new file mode 100644 index 0000000..5de65af --- /dev/null +++ b/src/userspace/apps/system/init.h @@ -0,0 +1,12 @@ +#pragma once + +#define SEPERATOR "$SEPERATOR$" + +#define EMRHANDLERS { \ + "bootloader",/*kernel process*/ \ + "kernel" /*kernel process*/ \ + ,SEPERATOR, \ + "kernel", /*ulime/real process*/ \ + "user", /*ulime/real process*/ \ + "__rt" /*ulime/real process*/ \ +}; diff --git a/src/userspace/apps/system/init.o b/src/userspace/apps/system/init.o index c8584f854be1fd0191149e6264e2f132c1f6d3fd..7646ab46ee872d544d9e9c9cd1309b4645e1353f 100644 GIT binary patch literal 1968 zcmbVM&ubG=5S~qotu>Xlic~5Rut-%{te}WONhxdIq5h!SUPQvSeYK(4P1s$r^-@$6 zLn-7U_$PSq;7LLcS_E59-mIRyDMCdmz2s1cGrMon?K2g0;ALjMH#6Uxd2cgs4PQza z2Cx_~0NWm;0LA8QI~|&7Xon<>iqcnc|Hn&&MCGP*ysSUxi;}e_DuHxvrToA~?~AB- zLC(ExnkIVRrdF+=Z6Fq{wWY(9SXy~QoZqRgShY6xM7m1;`jl9(s$wDejy$pWXslMN zEzOf%`XEZHVbY5Ak+&EUrMD`0NBJcpdQGKblnjlsTkQo}fkm}1^89kBeKWm;bPZQBW#b(?a z0b{nq=t;J;mhr4d5T`}*iGBw6cRWrEwbO|HCe&s#{HisIX=-@G08Q{`)mALfi90Oe zVM7d{D^@2w8{&s>b#QP@QxA>s-d%9Wxw*icfN9&E%uCM)$IiKM*UJSG{J?W3igTp% z(v3(iD=vDb)WsIQ5|SB(??WAX!tg-hgtg$}_@^)0~^e7-$%a?ITHoPkuC?w>FkteJF;H<|BV!;QV;q|O(RCa z?=bSBShh*`;G#Q8(tQ#S-wV(Cl)~e8M=9MDjKbeX7EQ2IFPM*Kxp zu&m3zh7 V`(~^YjYj$1)D+5Cr0TzV{%_ph)Bykh literal 984 zcmbtSO-sW-5S_GETR~L3h=K$Uf*=bXJa~~@lpOp4f=Ea()IvTayMjIW3xpp1IpQTh z#*=t0)S2uoS+>E04lHlxP2QW?c3&>9uX>&bCOo)+wlXZhn?(i<9l!{N5Z3S13G2Fn z*E8yc^~W*7=HPqwIloQwDw0#F()`YsDz4O|7z-i%Jf0N(lT0h!TqotP(TBlOU$3>y zYvyY~d)Tqj6doMdB<4GKwz_Vf%Q4`Iva|q^mE|Ku%_UgB&DcYvUFHiNAmlVxae}BS zjSnWP(kvD#eO4guV-G@Q`d{oY^WAsh&hOHa&y39su3=4Y&AtB! dId^xG`aEcl3M<_C^sc(}H~itbrKQx>{{WdzN6Y{K diff --git a/src/userspace/apps/system/system.emx/app.elf b/src/userspace/apps/system/system.emx/app.elf index ec1689731697f739c0ee3649739916d667807a4d..c1ce5140bc554fc36f64e9897d8a97fe4eaf31e4 100755 GIT binary patch literal 9800 zcmeHNe{5679X|(L0tB4Ura)Up=-3MF8h*4|gMi9g^`=(_Eh~6qY+dTurdY&r^!(hy zq>xn}6R&QxtQ%7QnAZK&CY5PZCq)qxkcBR$n>MAJMl%{so?w-k>Ex~mJPn$CK6m$C zY!leDY5)18=ezsd=f1!0dw0)q`i-rhXz=-jTN=c}Lid8iJg|%pdNvG z1peO^8#~EABor1mK}yaj-9j*Dlu?P|9y4o{ z&1};zM;3^nIdJIHQ&UsN`pIy9OEbRJAjFvQ2Z)nHgjxZa&ZviI@x$|lI7US$jzg4E z`F&t!#wh!wmW@Wq8hmfCcvZTUx!7SkeG{gW9yguPX)w?>N~qB{3Z8{+W;Rri^L^uH zb{hzxvg!L(U`QNpsFZ!$Izt(+pSp>3%Axc;>Vmn^$frJ9rH43#QxB*&)KlC5-f3D} zT!mK29N0dEIxlC2(A|PAjP|Tdlze8UuO!lMfHrO7Dg>b5q|d|u2@DjZ|L)4PLIk5h zd$OVPhnp*%ov{AQ2{(0?ldD7d$qJEyp=RYJ6`V#iJ4WpfSB;CnkPd`P2@H*_9xdKh zX~=2om19gKXWX-83BB^d>ep;<4Wa7GBk2qD%$w3Cr#NY~E{;(ige7@%;Nw1Tu?9@E zw-o|Iiw-v{5tCISWGsmYV!YE%La&ab@5rXV6V#w6`+N zSeY`yS}M*{3z;#H%UC-($A%O(kxE7h2y*C;dQc{h1ZCD#{?fjk1~b{~Xn{z8|YzmA>UlpG|!O9(yr* z{S+bhMyrkH7!qVY%!s1R0+VZ(MusF;So%-6AkDynfG+Rwh}LFC0%j%;6VT53j}VsfTc39sxaZV`3(}Yp@_7ouJ)LUF`S*ZF$x?GMKnEay ztD0RKANTAI{DkQ`9h~*jDmOU1)97MJ+Rfnoy?n#aNWT|?4S~7B1uSN9z1w?>OG`DG zzOssW-n-3I%wM`91y9@A$dhc)i*2*hcQtEVh2&kcgy1`adS%(7duHb1D)&}$LX*{} z?xr@o1XH-nH{Boj#t2R$L{i@Ha`zCwFRgBXOy8tP?{wK~(;s1zIYiQan{oBJyV47D z#w35i;c3xO{M7Wcxfp1~Kyfn~^VoP0lAF`*)07WZin>m+w5Gv5r7nDvO0)}W4lZ+> z8~S;q)3LybkxXH&V_Yge<_$f2Td5Nn-RrxVs1_p;M0H{4vvFPm2;inH19)>ke! zkz)*&mv1YOIRB1w?OG*A=gH`mvw=rPub;{{;VWm&%CR;#Z|M1rcej^b-s_)yS4mII zd>E|tr1EXi*~Wtv()$n$Ov#4EXF5P&JTGs)1E~EGDk13+X>53eMHF5}Y(1xz+>9>2 zL-cxdb@JRp8Ge9I%GYiMZXj4fpcROn)Tn}}^lswt8yMCv>Pz5QdD=>*!`R7 zb&HidjP1q~AKUr(6DvhJ1-!Ghx~-r>;6ps zS>P?uAQmbR?W9Geo_D4{soO6(D;HzrS}IK z|B}WJ&Q-Ykb3AW$+Vg_Ok24Wa2JjGn)vx%B3(FBa64&yX%Pc(CiT7zc-S~eOc#D`N z_&py@v6dewuiznnc$UIL5*6ZAjo+d9%o`T&jArmrg8XpHNi-p?|JsFZw-p51!i+aB>&shA>L;M|`hg%dZnlz652oicz<1HE=)be>mu`JQ} zE*)p?2bK?MJg)t9^KH4tAFavrl^Q>z{aU8PhiwljSKqwEt^b&SHWn>oorv zy^cJsSvoYnp(Y<5*7$C1XF$<~i1)7F=Xg{|kn10rTwJxMh=(tAK8Vu?iZnV1OM$!;|!y2D*55!)Y&0Dd}V_r{}SNpiTm zI~ft-t|Sg-Xy+VMR%EXwB5LeeD{jZc-f&N}J7%Rg8VTDXvNsyXd5*uSsfmDv6$?i> z-V;gmsv711lq!JJC+fxMo}@+pK!q&S(R43|QZZX3!towLq`}z8vr)Pd7oD;FamnqD zsd1Q?*hee&Sh1K8?WqF^JKTjDnq&WEpJ$ literal 4784 zcmeI0!AiqG5QZnQDJqH;JcxqC-n=Yc1W&RTrJx7zA|Ya^fhLjc3ijj^2z?~+(%10r zsdyFY&SpZkK@1>D0>e z(YnoE4~%RCACvdbt0XHUHC8&wu0y5cQm6S)2oYv+nuiZ6DXY!ZAFqn1cVISe7cE=E zhki3Ru+Ex&&gOUzH@0lz!CtF=$N0T!av|M%Nb^*S0x~tkPc%w$5Tl~FhsgdG0HMa2 zj&F?WveLVHrISYuqAYG>9WNaE_hi?!B8zTwgtSYVpBN4cfwgYzn*=?d%$i%D`rEwP w{cf*&?j`k4$m|%!xlZ+d0Jh0rF}g%+SKg=}@8?GQ`*Do)UB5^3rQh!V1^+of1ONa4 diff --git a/src/userspace/libc/Makefile b/src/userspace/libc/Makefile new file mode 100644 index 0000000..0a7929b --- /dev/null +++ b/src/userspace/libc/Makefile @@ -0,0 +1,31 @@ +CC := x86_64-elf-gcc +AR := x86_64-elf-ar +INC := $(CURDIR)/include +BLD := $(CURDIR)/build + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(INC) -Isrc + +SRCS := src/errno.c src/string.c src/stdlib.c src/unistd.c src/fcntl.c +OBJS := $(patsubst src/%.c, $(BLD)/%.o, $(SRCS)) + +all: $(BLD)/libc.a $(BLD)/crt0.o + +$(BLD)/libc.a: $(OBJS) + $(AR) rcs $@ $^ + +$(BLD)/%.o: src/%.c | $(BLD) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BLD)/crt0.o: src/crt0.S | $(BLD) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BLD): + mkdir -p $@ + +clean: + rm -rf $(BLD) + +.PHONY: all clean diff --git a/src/userspace/libc/include/errno.h b/src/userspace/libc/include/errno.h new file mode 100644 index 0000000..7656a92 --- /dev/null +++ b/src/userspace/libc/include/errno.h @@ -0,0 +1,21 @@ +#pragma once +extern int errno; +#define EPERM 1 +#define ENOENT 2 +#define ESRCH 3 +#define EINTR 4 +#define EIO 5 +#define EBADF 9 +#define ENOMEM 12 +#define EACCES 13 +#define EFAULT 14 +#define EEXIST 17 +#define ENODEV 19 +#define ENOTDIR 20 +#define EISDIR 21 +#define EINVAL 22 +#define EMFILE 24 +#define ENOSPC 28 +#define EPIPE 32 +#define ERANGE 34 +#define ENOSYS 38 diff --git a/src/userspace/libc/include/fcntl.h b/src/userspace/libc/include/fcntl.h new file mode 100644 index 0000000..65858dd --- /dev/null +++ b/src/userspace/libc/include/fcntl.h @@ -0,0 +1,11 @@ +#pragma once +#include + +// open flags (needs to vfs.h) +#define O_RDONLY 0x01 +#define O_WRONLY 0x02 +#define O_RDWR 0x03 +#define O_CREAT 0x04 + +int open(const char *path, int flags, ...); +int close(int fd); diff --git a/src/userspace/libc/include/stdarg.h b/src/userspace/libc/include/stdarg.h new file mode 100644 index 0000000..65a9992 --- /dev/null +++ b/src/userspace/libc/include/stdarg.h @@ -0,0 +1,6 @@ +#pragma once +typedef __builtin_va_list va_list; +#define va_start(v,l) __builtin_va_start(v,l) +#define va_end(v) __builtin_va_end(v) +#define va_arg(v,T) __builtin_va_arg(v,T) +#define va_copy(d,s) __builtin_va_copy(d,s) diff --git a/src/userspace/libc/include/stdbool.h b/src/userspace/libc/include/stdbool.h new file mode 100644 index 0000000..abc7c42 --- /dev/null +++ b/src/userspace/libc/include/stdbool.h @@ -0,0 +1,4 @@ +#pragma once +#define bool _Bool +#define true 1 +#define false 0 diff --git a/src/userspace/libc/include/stddef.h b/src/userspace/libc/include/stddef.h new file mode 100644 index 0000000..f87760b --- /dev/null +++ b/src/userspace/libc/include/stddef.h @@ -0,0 +1,5 @@ +#pragma once +typedef unsigned long size_t; +typedef long ptrdiff_t; +#define NULL ((void *)0) +#define offsetof(t, m) __builtin_offsetof(t, m) diff --git a/src/userspace/libc/include/stdint.h b/src/userspace/libc/include/stdint.h new file mode 100644 index 0000000..768a883 --- /dev/null +++ b/src/userspace/libc/include/stdint.h @@ -0,0 +1,19 @@ +#pragma once +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long uint64_t; +typedef signed char int8_t; +typedef signed short int16_t; +typedef signed int int32_t; +typedef signed long long int64_t; +typedef unsigned long uintptr_t; +typedef long intptr_t; +#define UINT8_MAX 255U +#define UINT16_MAX 65535U +#define UINT32_MAX 4294967295U +#define UINT64_MAX 18446744073709551615ULL +#define INT32_MIN (-2147483648) +#define INT32_MAX 2147483647 +#define INT64_MIN (-9223372036854775807LL - 1) +#define INT64_MAX 9223372036854775807LL diff --git a/src/userspace/libc/include/stdio.h b/src/userspace/libc/include/stdio.h new file mode 100644 index 0000000..182df45 --- /dev/null +++ b/src/userspace/libc/include/stdio.h @@ -0,0 +1,5 @@ +#pragma once +#include +#include + +#define EOF (-1) diff --git a/src/userspace/libc/include/stdlib.h b/src/userspace/libc/include/stdlib.h new file mode 100644 index 0000000..5b2b42e --- /dev/null +++ b/src/userspace/libc/include/stdlib.h @@ -0,0 +1,20 @@ +#pragma once +#include + +void *malloc (size_t n); +void *calloc (size_t nmemb, size_t size); +void *realloc(void *ptr, size_t n); +void free (void *ptr); + +void exit (int status) __attribute__((noreturn)); +void abort (void) __attribute__((noreturn)); + +int atoi (const char *s); +long atol (const char *s); +long strtol(const char *s, char **end, int base); + +int abs (int x); +long labs(long x); + +#define EXIT_SUCCESS 0 +#define EXIT_FAILURE 1 diff --git a/src/userspace/libc/include/string.h b/src/userspace/libc/include/string.h new file mode 100644 index 0000000..3d3a70b --- /dev/null +++ b/src/userspace/libc/include/string.h @@ -0,0 +1,20 @@ +#pragma once +#include + +void *memcpy (void *dst, const void *src, size_t n); +void *memmove(void *dst, const void *src, size_t n); +void *memset (void *s, int c, size_t n); +int memcmp (const void *a, const void *b, size_t n); + +size_t strlen (const char *s); +char *strcpy (char *dst, const char *src); +char *strncpy(char *dst, const char *src, size_t n); +char *strcat (char *dst, const char *src); +char *strncat(char *dst, const char *src, size_t n); +int strcmp (const char *a, const char *b); +int strncmp(const char *a, const char *b, size_t n); +char *strchr (const char *s, int c); +char *strrchr(const char *s, int c); +char *strstr (const char *hay, const char *needle); +char *strtok (char *s, const char *delim); +char *strdup (const char *s); diff --git a/src/userspace/libc/include/sys/types.h b/src/userspace/libc/include/sys/types.h new file mode 100644 index 0000000..6ce3694 --- /dev/null +++ b/src/userspace/libc/include/sys/types.h @@ -0,0 +1,8 @@ +#pragma once +#include +typedef long ssize_t; +typedef int pid_t; +typedef long off_t; +typedef unsigned int mode_t; +typedef unsigned int uid_t; +typedef unsigned int gid_t; diff --git a/src/userspace/libc/include/unistd.h b/src/userspace/libc/include/unistd.h new file mode 100644 index 0000000..3a7f4ec --- /dev/null +++ b/src/userspace/libc/include/unistd.h @@ -0,0 +1,21 @@ +#pragma once +#include +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 + + +// i/o +ssize_t read (int fd, void *buf, size_t n); +ssize_t write (int fd, const void *buf, size_t n); + +// filesystem +int chdir (const char *path); +int mkdir (const char *path); +char *getcwd (char *buf, size_t size); + +// process +pid_t getpid (void); +pid_t fork (void); +void _exit (int status) __attribute__((noreturn)); +int execve (const char *path, char *const argv[], char *const envp[]); diff --git a/src/userspace/libc/src/_syscall.h b/src/userspace/libc/src/_syscall.h new file mode 100644 index 0000000..179f64f --- /dev/null +++ b/src/userspace/libc/src/_syscall.h @@ -0,0 +1,31 @@ +#pragma once + +#define _SCAL_READ 0 +#define _SCAL_WRITE 1 +#define _SCAL_OPEN 2 +#define _SCAL_CLOSE 3 +#define _SCAL_BRK 12 +#define _SCAL_GETPID 39 +#define _SCAL_FORK 57 +#define _SCAL_EXECVE 59 +#define _SCAL_EXIT 60 +#define _SCAL_GETCWD 79 +#define _SCAL_CHDIR 80 +#define _SCAL_MKDIR 83 + + +static inline long _sc1(long n, long a1) { + long r; + __asm__ volatile("syscall":"=a"(r):"a"(n),"D"(a1):"rcx","r11","memory"); + return r; +} +static inline long _sc2(long n, long a1, long a2) { + long r; + __asm__ volatile("syscall":"=a"(r):"a"(n),"D"(a1),"S"(a2):"rcx","r11","memory"); + return r; +} +static inline long _sc3(long n, long a1, long a2, long a3) { + long r; + __asm__ volatile("syscall":"=a"(r):"a"(n),"D"(a1),"S"(a2),"d"(a3):"rcx","r11","memory"); + return r; +} diff --git a/src/userspace/libc/src/crt0.S b/src/userspace/libc/src/crt0.S new file mode 100644 index 0000000..d86b3cc --- /dev/null +++ b/src/userspace/libc/src/crt0.S @@ -0,0 +1,12 @@ +.section .text +.global _start + + +_start: + xor %rbp, %rbp + xor %edi, %edi + xor %esi, %esi + call main + mov %rax, %rdi + call exit + hlt diff --git a/src/userspace/libc/src/errno.c b/src/userspace/libc/src/errno.c new file mode 100644 index 0000000..c898fab --- /dev/null +++ b/src/userspace/libc/src/errno.c @@ -0,0 +1,2 @@ +#include +int errno = 0; diff --git a/src/userspace/libc/src/fcntl.c b/src/userspace/libc/src/fcntl.c new file mode 100644 index 0000000..963e82a --- /dev/null +++ b/src/userspace/libc/src/fcntl.c @@ -0,0 +1,17 @@ +#include +#include +#include "_syscall.h" + +int open(const char *path, int flags, ...) +{ + long r = _sc2(_SCAL_OPEN, (long)path, (long)flags); + if (r < 0) { errno = (int)-r; return -1; } + return (int)r; +} + +int close(int fd) +{ + long r = _sc1(_SCAL_CLOSE, fd); + if (r < 0) { errno = (int)-r; return -1; } + return 0; +} diff --git a/src/userspace/libc/src/stdio.c b/src/userspace/libc/src/stdio.c new file mode 100644 index 0000000..2e8e595 --- /dev/null +++ b/src/userspace/libc/src/stdio.c @@ -0,0 +1,4 @@ +//#include +//#include +//#include +//#include diff --git a/src/userspace/libc/src/stdlib.c b/src/userspace/libc/src/stdlib.c new file mode 100644 index 0000000..3afff67 --- /dev/null +++ b/src/userspace/libc/src/stdlib.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include "_syscall.h" + +// bump allocator via brk +static char *_heap = NULL; + + +void *malloc(size_t n) { + if (!n) return NULL; + if (!_heap) _heap = (char *)_sc1(_SCAL_BRK, 0); + n = (n + 15) & ~(size_t)15; // align 16 + char *p = _heap, *end = _heap + n; + if ((char *)_sc1(_SCAL_BRK, (long)end) < end) { errno = ENOMEM; return NULL; } + _heap = end; + return p; +} + +void *calloc(size_t nmemb, size_t size) { + size_t total = nmemb * size; + void *p = malloc(total); + if (p) memset(p, 0, total); + return p; +} + +void *realloc(void *ptr, size_t n) { + if (!ptr) return malloc(n); + void *p = malloc(n); + if (p) memcpy(p, ptr, n); // may copy garbage if n > old size, acceptable + return p; +} + +void free(void *ptr) { (void)ptr; } // no-op with bump allocator + + +// _exit in unistd.c +extern void _exit(int status) __attribute__((noreturn)); + +void exit(int status) { _exit(status); __builtin_unreachable(); } + +void abort(void) { _exit(1); } + +long strtol(const char *s, char **end, int base) { + while (*s == ' ') s++; + int neg = (*s == '-'); if (neg || *s == '+') s++; + if (base == 0) { + if (*s == '0' && (s[1]=='x'||s[1]=='X')) { base=16; s+=2; } + else if (*s == '0') { base=8; } + else base=10; + } else if (base==16 && *s=='0' && (s[1]=='x'||s[1]=='X')) s+=2; + long v = 0; + while (*s) { + int d; + if (*s>='0'&&*s<='9') d=*s-'0'; + else if (*s>='a'&&*s<='z') d=*s-'a'+10; + else if (*s>='A'&&*s<='Z') d=*s-'A'+10; + else break; + if (d >= base) break; + v = v*base + d; s++; + } + if (end) *end = (char *)s; + return neg ? -v : v; +} + + +int atoi(const char *s) { return (int)strtol(s, NULL, 10); } +long atol(const char *s) { return strtol(s, NULL, 10); } +int abs (int x) { return x < 0 ? -x : x; } +long labs(long x) { return x < 0 ? -x : x; } diff --git a/src/userspace/libc/src/string.c b/src/userspace/libc/src/string.c new file mode 100644 index 0000000..7750ba8 --- /dev/null +++ b/src/userspace/libc/src/string.c @@ -0,0 +1,95 @@ +#include +#include + +void *memcpy(void *dst, const void *src, size_t n) { + unsigned char *d = dst; const unsigned char *s = src; + for (size_t i = 0; i < n; i++) d[i] = s[i]; + return dst; +} +void *memmove(void *dst, const void *src, size_t n) { + unsigned char *d = dst; const unsigned char *s = src; + if (d < s) for (size_t i = 0; i < n; i++) d[i] = s[i]; + else for (size_t i = n; i > 0; i--) d[i-1] = s[i-1]; + return dst; +} +void *memset(void *s, int c, size_t n) { + unsigned char *p = s; + for (size_t i = 0; i < n; i++) p[i] = (unsigned char)c; + return s; +} +int memcmp(const void *a, const void *b, size_t n) { + const unsigned char *x = a, *y = b; + for (size_t i = 0; i < n; i++) + if (x[i] != y[i]) return (int)x[i] - (int)y[i]; + return 0; +} +// who designed this, shouldnt this be in stdlib.c...... + + +size_t strlen(const char *s) { + size_t n = 0; while (s[n]) n++; return n; +} +char *strcpy(char *dst, const char *src) { + char *r = dst; while ((*dst++ = *src++)); return r; +} +char *strncpy(char *dst, const char *src, size_t n) { + size_t i = 0; + for (; i < n && src[i]; i++) dst[i] = src[i]; + for (; i < n; i++) dst[i] = '\0'; + return dst; +} +char *strcat(char *dst, const char *src) { + char *r = dst; while (*dst) dst++; while ((*dst++ = *src++)); return r; +} +char *strncat(char *dst, const char *src, size_t n) { + char *r = dst; while (*dst) dst++; + for (size_t i = 0; i < n && src[i]; i++) *dst++ = src[i]; + *dst = '\0'; return r; +} +int strcmp(const char *a, const char *b) { + while (*a && *a == *b) { a++; b++; } + return (unsigned char)*a - (unsigned char)*b; +} +int strncmp(const char *a, const char *b, size_t n) { + for (size_t i = 0; i < n; i++) { + if (a[i] != b[i]) return (unsigned char)a[i] - (unsigned char)b[i]; + if (!a[i]) return 0; + } + return 0; +} +char *strchr(const char *s, int c) { + for (; *s; s++) if (*s == (char)c) return (char *)s; + return NULL; +} +char *strrchr(const char *s, int c) { + char *r = NULL; + for (; *s; s++) if (*s == (char)c) r = (char *)s; + return r; +} +char *strstr(const char *hay, const char *needle) { + if (!*needle) return (char *)hay; + size_t nl = strlen(needle); + for (; *hay; hay++) + if (*hay == *needle && strncmp(hay, needle, nl) == 0) + return (char *)hay; + return NULL; +} + +static char *_tok; +char *strtok(char *s, const char *delim) { + if (s) _tok = s; + if (!_tok) return NULL; + while (*_tok && strchr(delim, *_tok)) _tok++; + if (!*_tok) { _tok = NULL; return NULL; } + char *tok = _tok; + while (*_tok && !strchr(delim, *_tok)) _tok++; + if (*_tok) *_tok++ = '\0'; else _tok = NULL; + return tok; +} + +char *strdup(const char *s) { + size_t n = strlen(s) + 1; + char *p = malloc(n); + if (p) memcpy(p, s, n); + return p; +} diff --git a/src/userspace/libc/src/unistd.c b/src/userspace/libc/src/unistd.c new file mode 100644 index 0000000..e65a186 --- /dev/null +++ b/src/userspace/libc/src/unistd.c @@ -0,0 +1,43 @@ +#include +#include "_syscall.h" + +// no errno access + +ssize_t read(int fd, void *buf, size_t n) { + return (ssize_t)_sc3(_SCAL_READ, fd, (long)buf, (long)n); +} + +ssize_t write(int fd, const void *buf, size_t n) { + return (ssize_t)_sc3(_SCAL_WRITE, fd, (long)buf, (long)n); +} + +pid_t getpid(void) { + return (pid_t)_sc1(_SCAL_GETPID, 0); +} + +pid_t fork(void) { + return (pid_t)_sc1(_SCAL_FORK, 0); +} + +void _exit(int status) { + _sc1(_SCAL_EXIT, status); + __builtin_unreachable(); +} + +int execve(const char *path, char *const argv[], char *const envp[]) { + (void)argv; (void)envp; + return (int)_sc1(_SCAL_EXECVE, (long)path); +} + +int chdir(const char *path) { + return (int)_sc1(_SCAL_CHDIR, (long)path); +} + +int mkdir(const char *path) { + return (int)_sc1(_SCAL_MKDIR, (long)path); +} + +char *getcwd(char *buf, size_t size) { + long r = _sc2(_SCAL_GETCWD, (long)buf, (long)size); + return (r > 0) ? buf : NULL; +} From c8cfb88493a9b067be67234e2b0e760ecae442c9 Mon Sep 17 00:00:00 2001 From: emexos Date: Wed, 25 Feb 2026 18:18:41 +0100 Subject: [PATCH 16/41] [user] new userspace shell --- Makefile | 3 +- dsk/initrd.cpio | Bin 205312 -> 219136 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 9800 -> 13496 bytes dsk/rd/user/bin/shell.emx/app.elf | Bin 0 -> 9568 bytes dsk/rd/user/bin/shell.emx/package.info | 10 ++ logo.txt | 19 +++ src/kernel/graph/graphics.c | 7 +- src/kernel/kernel_processes/kernel/gen.h | 1 + src/kernel/kernel_processes/kernel/user.c | 3 + src/kernel/packages/elf/loader.c | 33 +++- src/kernel/user/syscalls.c | 74 ++++++++- src/userspace/Makefile | 2 + src/userspace/apps/hello/hello.elf | Bin 4744 -> 4744 bytes src/userspace/apps/shell/Makefile | 27 +++ src/userspace/apps/shell/shell.c | 31 ++++ src/userspace/apps/shell/shell.emx/app.elf | Bin 0 -> 9568 bytes .../apps/shell/shell.emx/package.info | 10 ++ src/userspace/apps/shell/shell.o | Bin 0 -> 1456 bytes src/userspace/apps/system/init.c | 32 ++-- src/userspace/apps/system/init.h | 4 + src/userspace/apps/system/init.o | Bin 1968 -> 2120 bytes src/userspace/apps/system/system.emx/app.elf | Bin 9800 -> 13496 bytes src/userspace/libc/Makefile | 2 +- src/userspace/libc/include/stdio.h | 8 + src/userspace/libc/include/stdlib.h | 21 ++- src/userspace/libc/src/stdio.c | 154 +++++++++++++++++- src/userspace/user.ld | 16 +- 27 files changed, 406 insertions(+), 51 deletions(-) create mode 100755 dsk/rd/user/bin/shell.emx/app.elf create mode 100644 dsk/rd/user/bin/shell.emx/package.info create mode 100644 src/userspace/apps/shell/Makefile create mode 100644 src/userspace/apps/shell/shell.c create mode 100755 src/userspace/apps/shell/shell.emx/app.elf create mode 100644 src/userspace/apps/shell/shell.emx/package.info create mode 100644 src/userspace/apps/shell/shell.o diff --git a/Makefile b/Makefile index b61d4e6..3069865 100644 --- a/Makefile +++ b/Makefile @@ -60,8 +60,9 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @echo "[MOD] creating executables..." @mkdir -p $(DISK_DIR)/rd/user/apps + @mkdir -p $(DISK_DIR)/rd/user/bin @mkdir -p $(DISK_DIR)/rd/emr/system -#@cp -r src/userspace/apps/hello/hello.emx $(DISK_DIR)/rd/user/apps/ + @cp -r src/userspace/apps/shell/shell.emx $(DISK_DIR)/rd/user/bin/ @cp src/userspace/apps/hello/hello.elf $(ISODIR)/boot/hello.elf @cp -r src/userspace/apps/system/system.emx $(DISK_DIR)/rd/emr/system diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index cbe544ad4aab8541920c1f6c119ebb71b7c5088a..768f0bdb335408500954a78774d0a11b72f657c7 100644 GIT binary patch delta 8612 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 delta 2564 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 delta 1952 zcmZ9NZD?Cn7{^bt+_X)TW@(KvrO7(YY@1-#EMYHbXJuTt8%4!gag$j?w`$nB%`_7V z&RFV%*cH+q3Vsj~U)aD2ZiNvlb9HJXh(!=9C`e^Gs;Sah+44b+|L2}3Q~SWlIp_Dh zp0}Gq>a(7FyVVFygtt0YT*4GvgG|PK=kv$i6M6UK`t{k~IwAh(HF7^0Bg^l@#3(#* zXfWM3G(2SF^aZ1kIW%~nbtsd>?0ch-&ZLe$9gRjYyEahNe{%?9Twj>+lVfh~vIYH; z&xuJSc7IG+>PBWn;|w>8wk18{?-Qt5hm8Ss@OEvC*+Wq@$U@)fb zrS8=1iIxIY_4AMT0qr6>I%_d<+7@LOLFc|GUYgCcLLaD+{*K@ye_=%?JmEEpT8Y*N zQISS4g5|e>Mour68Zr5TCMxU|8jfinp!+xMdv=-Y2)2#if4bM;I|evIUn$c&S?~1UqU*!F}k>d8kP`jiZIGC#=Ng+ zvOaisZ~z47qpB{s;R9Q(N4b|}a-&ZU1UqYgFIOt0189=xgF9`n-mFxnSA!4OWM{a2 zvqOj}>^DSISbWFvJcIJnni=M$HY0jx`rxCwK=1+Rv4`*+Ha^rZUlfF_cNuzf-^H%N#o_+hTEfJQlML zCXXCB)-Nx{;?vh-c8e@;X|+zdWOF>)Sp9}g@e;xUI4Bn*Hu-$q>8M`W*?^pkZ}n8a vS}SaQn|wCXB$wkMZ=dC(J$PJnwtn?{n^%S&l^?+g%e1DX-P2k13h864MX#-`&WWX|1XmJgsV>TA+Cs z60Q|uX-O-Q_T>iuqVxeiL#RHh5vWF>8i8sAsu8G0pc;W{1ga6JMxYvjY6Pkgs7B!b z9sz6XU$)L}eJ{Tlnyl~buuEwnFpRMPw)Z&MLGb=ziyKlK_J;$E~^2@{E8#+<^ z_w4MMS-s}`Idm%j=6ni>7Ol)+Q5}8E8hVjDRt`vL;yh>?|F8x!`A}r|c$f@3mpFG= znVw>3?gcYnn4O(HHFFqGZB*t;gOwf3TUloslJZtAHf?2p9|>#C(DlnVgl)BE%M9j~ zv*hPAaOO*RSh;X|8M+fA&K+lop2JM#zX$PFHoTuCO3jQ!tju%)LZKnNi!eRQ)o=GW zLK8p=UUzM`&<&I{ayhg1dior5NCIrH+zd|@e*aP(jm;X!BJ}c4f%I5 zmBC;xLNJS`d_A?M_yZ!RAvav~6YFKm56mJA{oSdxoP%yodkcpNj>--wsqAF%?89+Ad|XBp&QL2P}eR^N_YpPcI4@)4V8B?Po0vn8>?pTE zS0#%PWt?ln0fDnF^eb%hlQk%5yd6kuiH@f(QpRniBU@2QH>S2kr_D zad&`koYuPcV^pw)_VR5utu2gUx(8E~hHqt0A*4@g=K|PDChAhnI+y)QrT?DaJk)s_ z(wIankrIfkcKU%2{w8ZyI$! z7&K%&^^-G5x5`fVwyf4W%5#I~BXh)^qJ4qj<0H-tXa15v8L@<-#Zy=?Z4EsV@{=`W zVcdpSL*2<*BVwvdgpQ?t_jB8O+F3mROHwD(_XRkO{9m{q2$-#}DWz(gOuY;Br3BpM zLHU~v9v9xPPkMKu=BJL8C$V?QqjNIupHs5L(qLiWqAgG}~2vHZ026fd0>SOLqbp&EaDTx0?gQq zisvx`%Rks5a4w20oae;o`=cRWL|4)`Zf0fr)){>^_5H}_#;rE|GDYaUQU3ylD0+7( z%s7TI8%(ZDjZPxI0{sgvXfu#daM7(-|E@D5cX3{tLDHAzf+Sq6+2>o)=CyJ()!z4ueQtY0m- z*Lm+PZywa`VeC6){kR)0sQXf82|tP literal 0 HcmV?d00001 diff --git a/dsk/rd/user/bin/shell.emx/package.info b/dsk/rd/user/bin/shell.emx/package.info new file mode 100644 index 0000000..2d12498 --- /dev/null +++ b/dsk/rd/user/bin/shell.emx/package.info @@ -0,0 +1,10 @@ + + + shell + + + emex + v0.0.1a + esh userspace shell + + diff --git a/logo.txt b/logo.txt index 27f6699..132c667 100644 --- a/logo.txt +++ b/logo.txt @@ -8,3 +8,22 @@ # #;m; # #; # #; # #;m; # #;m; # #;m;# #;m; # #;m; # #;m; # #;m; # ########## #;m; # #; # #; # #;m; # ########## #;m; # #;m; # #;m; # ####### #;m; ########### #;m; ###########;m; # #; # #; # #;m; ###########;m; ###;m; ###;m; ###########;m; ##########;m; + +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬───────────┐ +│ esc │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ f11 │ f12 │ power │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼───────────┤ +│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ +│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ — │ = │ delete │ +├─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┬─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │ +│ tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ +├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┤ +│ │ │ │ │ │ │ │ │ │ │ : │ “ │ │ +│ caps lock │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ enter │ +├───────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────────┤ +│ │ │ │ │ │ │ │ │ < │ > │ ? │ │ +│ shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ shift │ +├─────┬──────┬─┴───┬─┴───┬─┴─────┴─────┴─────┴─────┴─────┼─────┼─────┼─────┴┬──────┬──────┤ +│ │ │ │ │ │ │ ├──────┼──────┼──────┤ +│ fn │ ctrl │ opt │ cmd │ s p a c e │ cmd │ opt ├──────┼──────┼──────┤ +└─────┴──────┴─────┴─────┴───────────────────────────────┴─────┴─────┴──────┴──────┴──────┘ diff --git a/src/kernel/graph/graphics.c b/src/kernel/graph/graphics.c index d9fd5df..0ad51dc 100644 --- a/src/kernel/graph/graphics.c +++ b/src/kernel/graph/graphics.c @@ -49,8 +49,11 @@ void clear(u32 color) u32 w = get_fb_width(); u32 h = get_fb_height(); draw_rect(0, 0, w, h, color); - reset_cursor(); - print(" ", GFX_BG); + //reset_cursor(); + cursor_y = 0; + cursor_x = 0; + //print(" ", GFX_BG); + // OH WHY DID I PUT THIS HERE MONTHS AGO I WONDERED WHERE THE RANDOM SPACE CAME FROM............. :( } void scroll_up(u32 lines) diff --git a/src/kernel/kernel_processes/kernel/gen.h b/src/kernel/kernel_processes/kernel/gen.h index 5e9560a..1a8dd56 100644 --- a/src/kernel/kernel_processes/kernel/gen.h +++ b/src/kernel/kernel_processes/kernel/gen.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include diff --git a/src/kernel/kernel_processes/kernel/user.c b/src/kernel/kernel_processes/kernel/user.c index 763331b..cf4770a 100644 --- a/src/kernel/kernel_processes/kernel/user.c +++ b/src/kernel/kernel_processes/kernel/user.c @@ -27,6 +27,9 @@ void uproc(void) { log("[INIT]", "jumping to userspace\n", success); + //first clear screen + clear(0xff000000); + dump_kprocesses(); ulime->ptr_proc_curr = init_proc; JumpToUserspace(init_proc); diff --git a/src/kernel/packages/elf/loader.c b/src/kernel/packages/elf/loader.c index b02763e..1c241eb 100644 --- a/src/kernel/packages/elf/loader.c +++ b/src/kernel/packages/elf/loader.c @@ -5,6 +5,7 @@ #include #include #include +#include int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { if (!proc || !elf_data || size < sizeof(elf_header_t)) { @@ -30,7 +31,7 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { return -1; } - if (ehdr->ident.endian != 1) { // 1 = little-endian + if (ehdr->ident.endian != 1) { // 1 == little-endian printf("[ELF] unsupported endianness\n"); return -1; } @@ -48,9 +49,12 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { elf_program_header_t *phdr = (elf_program_header_t*)(elf_data + ehdr->phoff); u64 min_vaddr = (u64)-1; + u64 max_vaddr = 0; for (u16 i = 0; i < ehdr->phnum; i++) { - if (phdr[i].type == PT_LOAD && phdr[i].vaddr < min_vaddr) { - min_vaddr = phdr[i].vaddr; + if (phdr[i].type == PT_LOAD) { + if (phdr[i].vaddr < min_vaddr) min_vaddr = phdr[i].vaddr; + u64 end = phdr[i].vaddr + phdr[i].memsz; + if (end > max_vaddr) max_vaddr = end; } } if (min_vaddr == (u64)-1) { @@ -73,7 +77,7 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { u64 vaddr = phdr[i].vaddr + load_offset; // apply relocation u64 offset = phdr[i].offset; u64 filesz = phdr[i].filesz; - u64 memsz = phdr[i].memsz; + u64 memsz = phdr[i].memsz; printf(" Segment %d:\n", i); printf(" Original vaddr: 0x%lX\n", phdr[i].vaddr); @@ -115,6 +119,27 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { proc->entry_point = ehdr->entry + load_offset; proc->state = PROC_READY; + // if the ELF was relocated (not loaded at its original VMA) + // map the original VMA to the SAME physical pages so that addresses in + // compiled code are avild + if (load_offset != 0) { + u64 total_size = (max_vaddr - min_vaddr + 0xFFF) & ~0xFFFULL; + u64 pages = total_size / 0x1000; + u64 heap_flags = PTE_PRESENT | PTE_WRITABLE | PTE_USER; + + printf("[ELF] remapping original VMA 0x%lX (%lu pages) to same phys\n", + min_vaddr, pages); + + for (u64 p = 0; p < pages; p++) { + // physical address of this page (from the process's allocated phys_heap) + u64 phys = proc->phys_heap + (p * 0x1000); + u64 orig_virt = min_vaddr + (p * 0x1000); + paging_map_page(proc->ulime->hpr, orig_virt, phys, heap_flags); + } + + printf("[ELF] original VMA alias mapped\n"); + } + printf("[ELF] Relocated entry point: 0x%lX\n", proc->entry_point); printf("[ELF] Load successful\n"); return 0; diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index 32d541c..1094669 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -11,6 +11,9 @@ #include #include +// read syscall +#include + static ulime_t *g_ulime = NULL; // syscall handlers @@ -56,11 +59,60 @@ u64 scall_exit(ulime_proc_t *proc, u64 exit_code, u64 arg2, u64 arg3) { u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { (void)proc; - (void)fd; - (void)buf; - (void)count; + //(void)fd; + //(void)buf; + //(void)count; + + // only stdin supported + if (fd != 0) return (u64)-1; + if (buf == 0 || count == 0) return 0; + + char *out = (char *)buf; + u64 i = 0; + + // reenable interrupts + __asm__ volatile("sti"); + + while (i < count - 1) { + // TODO: + // use semaphores or spinlocks NOT busywaits + while (!keyboard_has_key()) { + __asm__ volatile("hlt"); + } + + key_event_t event; + if (!keyboard_get_event(&event)) continue; + if (!event.pressed) continue; + + char c = (char)(event.keycode & 0xFF); + + if (c == '\n' || c == '\r') { + char nl[2] = {'\n', '\0'}; + cprintf(nl, 0xFFFFFFFF); + out[i++] = '\n'; + break; + } + + if (c == '\b') { + if (i > 0) { + i--; + cprintf("\b", 0xFFFFFFFF); + } + continue; + } + + if (c < 0x20 || c > 0x7E) continue; + + char echo[2] = {c, '\0'}; + cprintf(echo, 0xFFFFFFFF); + out[i++] = c; + } - return 0; + // i think this is slow........ this read syscall :( + __asm__ volatile("cli"); + + out[i] = '\0'; + return i; } u64 scall_getpid(ulime_proc_t *proc, u64 arg1, u64 arg2, u64 arg3) { @@ -88,7 +140,7 @@ u64 scall_brk(ulime_proc_t *proc, u64 addr, u64 arg2, u64 arg3) { } u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { - (void)proc; + //(void)proc; (void)arg2; (void)arg3; @@ -99,7 +151,7 @@ u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { printf("[SYSCALL] execve: '%s'\n", path); - // emex_launch_app creates the process as PROC_READY. + // emex_launch_app creates the process // the scheduler will switch to it on the next quantum. ulime_proc_t *new_proc = NULL; int result = emex_launch_app(path, &new_proc); @@ -108,8 +160,14 @@ u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { return (u64)-1; } - // return the new pid to the caller - return new_proc->pid; + // replace current process, mark it as zombie + proc->state = PROC_ZOMBIE; + g_ulime->ptr_proc_curr = new_proc; + + // jump directly to the new process — never returns (iretq) + JumpToUserspace(new_proc); + + __builtin_unreachable(); } void _init_syscalls_table(ulime_t *ulime) { diff --git a/src/userspace/Makefile b/src/userspace/Makefile index a92eab1..e501371 100644 --- a/src/userspace/Makefile +++ b/src/userspace/Makefile @@ -2,10 +2,12 @@ all: @$(MAKE) -C libc @$(MAKE) -C apps/hello @$(MAKE) -C apps/system + @$(MAKE) -C apps/shell clean: @$(MAKE) -C libc clean @$(MAKE) -C apps/hello clean @$(MAKE) -C apps/system clean + @$(MAKE) -C apps/shell clean .PHONY: all clean diff --git a/src/userspace/apps/hello/hello.elf b/src/userspace/apps/hello/hello.elf index b4331f2c172fb3817dd46ec2a70207382cda2770..477eb03c2426b81545439e11782a8fd9fb47c0dd 100755 GIT binary patch delta 12 TcmeBB?NFWI!pOeS)maDt8Bha) delta 12 TcmeBB?NFWI!pOSO)maDt8Abzu diff --git a/src/userspace/apps/shell/Makefile b/src/userspace/apps/shell/Makefile new file mode 100644 index 0000000..d641c31 --- /dev/null +++ b/src/userspace/apps/shell/Makefile @@ -0,0 +1,27 @@ +CC := x86_64-elf-gcc +LD := x86_64-elf-ld +LIBC := ../../libc + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(LIBC)/include + +LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld + +all: clean shell.emx/app.elf + +shell.emx/app.elf: shell.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + mkdir -p shell.emx + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o shell.o $(LIBC)/build/libc.a -o $@ + +shell.o: shell.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(LIBC)/build/crt0.o $(LIBC)/build/libc.a: + $(MAKE) -C $(LIBC) + +clean: + rm -f *.o shell.emx/app.elf + +.PHONY: all clean diff --git a/src/userspace/apps/shell/shell.c b/src/userspace/apps/shell/shell.c new file mode 100644 index 0000000..bbba1f6 --- /dev/null +++ b/src/userspace/apps/shell/shell.c @@ -0,0 +1,31 @@ +#include +#include +#include + +#define BUFFER 256 + +#define SHELL_PROMPT "[pc@emexos]$" + +int main(void) +{ + char buf[BUFFER]; + + for (;;) + { + write(STDOUT_FILENO, SHELL_PROMPT " ", sizeof(SHELL_PROMPT " ") - 1); + + // block until newline (\n) + ssize_t n = read(STDIN_FILENO, buf, sizeof(buf) - 1); + + if (n <= 0) continue; + + buf[n] = '\0'; + + if (n > 0 && buf[n - 1] == '\n') buf[--n] = '\0'; + if (n == 0) continue; + + // TODO: command parser + } + + return 0; +} diff --git a/src/userspace/apps/shell/shell.emx/app.elf b/src/userspace/apps/shell/shell.emx/app.elf new file mode 100755 index 0000000000000000000000000000000000000000..ec5532d36e4f1bd2feeb5c79e953c41edc244afe GIT binary patch literal 9568 zcmeHNZH!b`89uWxe8ViOTWAVpf!Y=;%R(DmveYa!LvFFF7&?)nmCnviyBqc^GxyRh zalvLlnT%_R+Qw8(HELtjr2bkANnx|K?5c@bG{Kdw&DLTvn~P?QSjGsh&vVXu@7x&{ zG->=dC(J$PJnwtn?{n^%S&l^?+g%e1DX-P2k13h864MX#-`&WWX|1XmJgsV>TA+Cs z60Q|uX-O-Q_T>iuqVxeiL#RHh5vWF>8i8sAsu8G0pc;W{1ga6JMxYvjY6Pkgs7B!b z9sz6XU$)L}eJ{Tlnyl~buuEwnFpRMPw)Z&MLGb=ziyKlK_J;$E~^2@{E8#+<^ z_w4MMS-s}`Idm%j=6ni>7Ol)+Q5}8E8hVjDRt`vL;yh>?|F8x!`A}r|c$f@3mpFG= znVw>3?gcYnn4O(HHFFqGZB*t;gOwf3TUloslJZtAHf?2p9|>#C(DlnVgl)BE%M9j~ zv*hPAaOO*RSh;X|8M+fA&K+lop2JM#zX$PFHoTuCO3jQ!tju%)LZKnNi!eRQ)o=GW zLK8p=UUzM`&<&I{ayhg1dior5NCIrH+zd|@e*aP(jm;X!BJ}c4f%I5 zmBC;xLNJS`d_A?M_yZ!RAvav~6YFKm56mJA{oSdxoP%yodkcpNj>--wsqAF%?89+Ad|XBp&QL2P}eR^N_YpPcI4@)4V8B?Po0vn8>?pTE zS0#%PWt?ln0fDnF^eb%hlQk%5yd6kuiH@f(QpRniBU@2QH>S2kr_D zad&`koYuPcV^pw)_VR5utu2gUx(8E~hHqt0A*4@g=K|PDChAhnI+y)QrT?DaJk)s_ z(wIankrIfkcKU%2{w8ZyI$! z7&K%&^^-G5x5`fVwyf4W%5#I~BXh)^qJ4qj<0H-tXa15v8L@<-#Zy=?Z4EsV@{=`W zVcdpSL*2<*BVwvdgpQ?t_jB8O+F3mROHwD(_XRkO{9m{q2$-#}DWz(gOuY;Br3BpM zLHU~v9v9xPPkMKu=BJL8C$V?QqjNIupHs5L(qLiWqAgG}~2vHZ026fd0>SOLqbp&EaDTx0?gQq zisvx`%Rks5a4w20oae;o`=cRWL|4)`Zf0fr)){>^_5H}_#;rE|GDYaUQU3ylD0+7( z%s7TI8%(ZDjZPxI0{sgvXfu#daM7(-|E@D5cX3{tLDHAzf+Sq6+2>o)=CyJ()!z4ueQtY0m- z*Lm+PZywa`VeC6){kR)0sQXf82|tP literal 0 HcmV?d00001 diff --git a/src/userspace/apps/shell/shell.emx/package.info b/src/userspace/apps/shell/shell.emx/package.info new file mode 100644 index 0000000..2d12498 --- /dev/null +++ b/src/userspace/apps/shell/shell.emx/package.info @@ -0,0 +1,10 @@ + + + shell + + + emex + v0.0.1a + esh userspace shell + + diff --git a/src/userspace/apps/shell/shell.o b/src/userspace/apps/shell/shell.o new file mode 100644 index 0000000000000000000000000000000000000000..3e20440e4967446d57b6884e8e7f289b9035e209 GIT binary patch literal 1456 zcmbtTO>5Lp6uobzwYAoEtRhNXWFewOLR&0U5s40UvM7Q=K@gF2`eX`|PD!F2#Sdgu z7^Kim|AR|cF1oP0uH6X!0EHIZxXVI}_ayJlWHP~pUP$h_=YG8R&P!e{EZ!^#LD~de zqi&>Gq7Q{Gwqj_}C>^0CyZzmM^`pc+J7dg$LT(om_JQopH{tIn+KGVMd%NJ0M0+8$ zThBv!v1o5@qsD&6jQG6Ag)u)B6RmwQ{_*u73a*YkI%&7uP~)B?rqzkk*+h$`js72|y6*3t!IX3m^7r-@ErCv4*B9TLrwm>eA%-r{YaVGa*$8?WnQ zrMHFh(L=z0F`RgSe&U>cR?JnDs7Ql-wTGFRNY%%CU=G@r`l^$2mfK9AHVLS*_++`w68A9#tc zY2?YeV+OJrkh$Un4w=ioPo~#Mf@;Hc}j>Z_XybVUtpbVKjvn&XNtb6{?iCjrsxiX|1PipuG;_YPGthJ{eJ)zmX=ij literal 0 HcmV?d00001 diff --git a/src/userspace/apps/system/init.c b/src/userspace/apps/system/init.c index 0407742..2221e01 100644 --- a/src/userspace/apps/system/init.c +++ b/src/userspace/apps/system/init.c @@ -1,29 +1,31 @@ #include "init.h" + #include -//#include -#include +#include +//#include +#include const char* handlers[] = EMRHANDLERS; int main(void) { - const char emr_start[] = "[emr_system] starting...\n";//Hello from Userspace my friends :)"; - //const char emr_info[] = "[emr_system] emr_system is the base init system for emexOS"; + printf("[ESH] starting...\n"); + printf("[ESH] launching programms:\n"); - //printf("test printf\n\n"); - write(STDOUT_FILENO, emr_start, sizeof(emr_start) - 1); + // other initializations... - /*size_t handlers_count = sizeof(handlers) / sizeof(handlers[0]); - char buffer[128]; - for (size_t i = 0; i < handlers_count; i++) - { - strncpy(buffer, handlers[i], sizeof(buffer)-1); - buffer[sizeof(buffer)-1] = 0; - write(STDOUT_FILENO, buffer, strlen(buffer)); - write(STDOUT_FILENO, "\n", 1); - }*/ + emx_shell: { + printf(" - launching shell: %s\n", EMX_SHELL); + // launch the shell as a new process via execve + char *const argv[] = { (char *)EMX_SHELL, (char *)0 }; + char *const envp[] = { (char *)0 }; + execve(EMX_SHELL, argv, envp); + goto error; + } +error: + printf("[ESH] ERROR: failed to launch %s\n", EMX_SHELL); for (;;) __asm__ volatile("pause"); return 0; } diff --git a/src/userspace/apps/system/init.h b/src/userspace/apps/system/init.h index 5de65af..937382f 100644 --- a/src/userspace/apps/system/init.h +++ b/src/userspace/apps/system/init.h @@ -1,5 +1,9 @@ #pragma once +// esh will automatically load the shell after everything is finished +#define EMX_SHELL "/user/bin/shell.emx" + + #define SEPERATOR "$SEPERATOR$" #define EMRHANDLERS { \ diff --git a/src/userspace/apps/system/init.o b/src/userspace/apps/system/init.o index 7646ab46ee872d544d9e9c9cd1309b4645e1353f..0b1df07ab0b20a5f0a48c946e5b4f6b7422ced20 100644 GIT binary patch delta 720 zcmdnMe?nk_1``MCL@nw1<~Iua8Gv91hIAdL)@%UEuq=B4ZD>2WbYgmMx~ z^O7@wVhROC`RPT8xw*wwTnzf9#i>R5Ntt>2#TltNIeMwN6$}bMpsRpT50;(^yDY3DxBcd15~+c z@huz`Pq22%mcL@nw1#y1-n7#KWuM5pE!#TQo=dvv;9^Vm_6nj5Q7T#^Xn-SgN{ zRFavOuBWF5CeL8BVZ1*1D&uS*S;!>MC^LB?lQ^RakkpkfFUl-Q zWhgEw%1bV&1kpLEc_4!s7022o8=Hb{&ei2ne61Oii$#5s_} z*MLl8+&1|l(B=c1KQfmy0v+>_QFw94R5(3AJ_iCVs9v7QC)gwyizYv0vuEs>tjKQ9$S^sP-JbIRRNalq YE7{FCXF$!@2J8C6uEHoWS&>5>0I|%WE&u=k diff --git a/src/userspace/apps/system/system.emx/app.elf b/src/userspace/apps/system/system.emx/app.elf index c1ce5140bc554fc36f64e9897d8a97fe4eaf31e4..718956ffd6497aa194dc602b1288f3b37695816b 100755 GIT binary patch literal 13496 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 delta 1952 zcmZ9NZD?Cn7{^bt+_X)TW@(KvrO7(YY@1-#EMYHbXJuTt8%4!gag$j?w`$nB%`_7V z&RFV%*cH+q3Vsj~U)aD2ZiNvlb9HJXh(!=9C`e^Gs;Sah+44b+|L2}3Q~SWlIp_Dh zp0}Gq>a(7FyVVFygtt0YT*4GvgG|PK=kv$i6M6UK`t{k~IwAh(HF7^0Bg^l@#3(#* zXfWM3G(2SF^aZ1kIW%~nbtsd>?0ch-&ZLe$9gRjYyEahNe{%?9Twj>+lVfh~vIYH; z&xuJSc7IG+>PBWn;|w>8wk18{?-Qt5hm8Ss@OEvC*+Wq@$U@)fb zrS8=1iIxIY_4AMT0qr6>I%_d<+7@LOLFc|GUYgCcLLaD+{*K@ye_=%?JmEEpT8Y*N zQISS4g5|e>Mour68Zr5TCMxU|8jfinp!+xMdv=-Y2)2#if4bM;I|evIUn$c&S?~1UqU*!F}k>d8kP`jiZIGC#=Ng+ zvOaisZ~z47qpB{s;R9Q(N4b|}a-&ZU1UqYgFIOt0189=xgF9`n-mFxnSA!4OWM{a2 zvqOj}>^DSISbWFvJcIJnni=M$HY0jx`rxCwK=1+Rv4`*+Ha^rZUlfF_cNuzf-^H%N#o_+hTEfJQlML zCXXCB)-Nx{;?vh-c8e@;X|+zdWOF>)Sp9}g@e;xUI4Bn*Hu-$q>8M`W*?^pkZ}n8a vS}SaQn|wCXB$wkMZ #define EOF (-1) + +int puts(const char *s); +int putchar(int c); + +int printf(const char *fmt, ...); +int vprintf(const char *fmt, va_list ap); +int snprintf(char *buf, size_t size, const char *fmt, ...); +int vsnprintf(char *buf, size_t size, const char *fmt, va_list ap); diff --git a/src/userspace/libc/include/stdlib.h b/src/userspace/libc/include/stdlib.h index 5b2b42e..8709ea8 100644 --- a/src/userspace/libc/include/stdlib.h +++ b/src/userspace/libc/include/stdlib.h @@ -1,20 +1,23 @@ #pragma once #include -void *malloc (size_t n); -void *calloc (size_t nmemb, size_t size); +void *malloc(size_t n); +void *calloc(size_t nmemb, size_t size); void *realloc(void *ptr, size_t n); -void free (void *ptr); +void free (void *ptr); -void exit (int status) __attribute__((noreturn)); -void abort (void) __attribute__((noreturn)); +void exit(int status) __attribute__((noreturn)); +void abort(void) __attribute__((noreturn)); -int atoi (const char *s); -long atol (const char *s); -long strtol(const char *s, char **end, int base); +int atoi(const char *s); +long atol(const char *s); +long strtol(const char *s, char **end, int base); -int abs (int x); +int abs(int x); long labs(long x); +// for screen clear command +//int system(const char *cmd); + #define EXIT_SUCCESS 0 #define EXIT_FAILURE 1 diff --git a/src/userspace/libc/src/stdio.c b/src/userspace/libc/src/stdio.c index 2e8e595..9165dcf 100644 --- a/src/userspace/libc/src/stdio.c +++ b/src/userspace/libc/src/stdio.c @@ -1,4 +1,150 @@ -//#include -//#include -//#include -//#include +#include +#include +#include +#include + +// convert ul to ascii +static int _uitoa(unsigned long val, int base, char *buf) { + static const char digits[] = "0123456789abcdef"; + char tmp[64]; + int i = 0; + if (val == 0) { tmp[i++] = '0'; } + while (val) { tmp[i++] = digits[val % (unsigned)base]; val /= (unsigned)base; } + for (int j = 0; j < i; j++) buf[j] = tmp[i - 1 - j]; + buf[i] = '\0'; + return i; +} + + +int vsnprintf(char *buf, size_t size, const char *fmt, va_list ap) { + size_t pos = 0; + +#define _EMIT(c) do { if (buf && pos + 1 < size) buf[pos] = (c); pos++; } while(0) + + for (const char *p = fmt; *p; p++) { + if (*p != '%') { _EMIT(*p); continue; } + p++; + + // zero-pad flag + int zero_pad = 0; + if (*p == '0') { zero_pad = 1; p++; } + + // width + int width = 0; + while (*p >= '0' && *p <= '9') { width = width * 10 + (*p - '0'); p++; } + + // length modifier l + int is_long = 0; + if (*p == 'l') { is_long = 1; p++; } + + char tmp[64]; + int tlen = 0; + char pad = zero_pad ? '0' : ' '; + + switch (*p) { + case 's': { + const char *s = va_arg(ap, const char *); + if (!s) s = "(null)"; + tlen = (int)strlen(s); + for (int i = tlen; i < width; i++) _EMIT(' '); + for (int i = 0; i < tlen; i++) _EMIT(s[i]); + tlen = 0; + break; + } + case 'd': { + long val = is_long ? va_arg(ap, long) : (long)va_arg(ap, int); + int neg = (val < 0); + if (neg) val = -val; + tlen = _uitoa((unsigned long)val, 10, tmp); + for (int i = tlen + neg; i < width; i++) _EMIT(pad); + if (neg) _EMIT('-'); + for (int i = 0; i < tlen; i++) _EMIT(tmp[i]); + tlen = 0; + break; + } + case 'u': { + unsigned long val = is_long ? va_arg(ap, unsigned long) + : (unsigned long)va_arg(ap, unsigned int); + tlen = _uitoa(val, 10, tmp); + for (int i = tlen; i < width; i++) _EMIT(pad); + for (int i = 0; i < tlen; i++) _EMIT(tmp[i]); + tlen = 0; + break; + } + case 'x': { + unsigned long val = is_long ? va_arg(ap, unsigned long) + : (unsigned long)va_arg(ap, unsigned int); + tlen = _uitoa(val, 16, tmp); + for (int i = tlen; i < width; i++) _EMIT(pad); + for (int i = 0; i < tlen; i++) _EMIT(tmp[i]); + tlen = 0; + break; + } + case 'p': { + unsigned long val = (unsigned long)va_arg(ap, void *); + _EMIT('0'); _EMIT('x'); + tlen = _uitoa(val, 16, tmp); + for (int i = 0; i < tlen; i++) _EMIT(tmp[i]); + tlen = 0; + break; + } + case 'c': { + _EMIT((char)va_arg(ap, int)); + break; + } + case '%': { + _EMIT('%'); + break; + } + default: { + _EMIT('%'); + if (is_long) _EMIT('l'); + _EMIT(*p); + break; + } + } + } + + if (buf && size > 0) buf[pos < size ? pos : size - 1] = '\0'; + return (int)pos; + +#undef _EMIT +} + + +int snprintf(char *buf, size_t size, const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + int r = vsnprintf(buf, size, fmt, ap); + va_end(ap); + return r; +} + +int vprintf(const char *fmt, va_list ap) { + char buf[512]; + int len = vsnprintf(buf, sizeof(buf), fmt, ap); + // clamp to actual buffer size to avoid overrun + if (len >= (int)sizeof(buf)) len = (int)sizeof(buf) - 1; + write(STDOUT_FILENO, buf, (size_t)len); + return len; +} + +int printf(const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + int r = vprintf(fmt, ap); + va_end(ap); + return r; +} + +int putchar(int c) { + char ch = (char)c; + write(STDOUT_FILENO, &ch, 1); + return (unsigned char)ch; +} + +int puts(const char *s) { + write(STDOUT_FILENO, s, strlen(s)); + write(STDOUT_FILENO, "\n", 1); + return 0; +} diff --git a/src/userspace/user.ld b/src/userspace/user.ld index daea53d..21726ea 100644 --- a/src/userspace/user.ld +++ b/src/userspace/user.ld @@ -2,15 +2,17 @@ OUTPUT_FORMAT(elf64-x86-64) OUTPUT_ARCH(i386:x86-64) ENTRY(_start) +/* force one single PT_LOAD segment (RWX) so the emex loader doesnt miss .rodata/.data which would otherwise end up +* in separate segments the loader never processes +*/ +PHDRS { load PT_LOAD FLAGS(7); } + SECTIONS { . = 0x40000000; - .text : { - *(.text._start) - *(.text*) - } - .rodata : { *(.rodata*) } - .data : { *(.data*) } - .bss : { *(.bss*) *(COMMON) } + .text : { *(.text._start) *(.text*) } :load + .rodata : { *(.rodata*) } :load + .data : { *(.data*) } :load + .bss : { *(.bss*) *(COMMON) } :load /DISCARD/ : { *(.eh_frame) *(.note*) *(.comment) } } From fb37545247fce40d0aea713240a91c2a46817dc3 Mon Sep 17 00:00:00 2001 From: emexos Date: Fri, 27 Feb 2026 20:50:06 +0100 Subject: [PATCH 17/41] [GFX] fixed scroll_up, [USER] fixed crashing when executing command, [USER] finished userspace implemntation --- Makefile | 8 +- dsk/initrd.cpio | Bin 219136 -> 249344 bytes dsk/rd/bin/echo.elf | Bin 0 -> 9664 bytes .../bin/shell.emx/app.elf => bin/hello.elf} | Bin 9568 -> 9504 bytes dsk/rd/bin/rm.elf | Bin 0 -> 9744 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 13496 -> 13592 bytes dsk/rd/user/apps/shell.emx/app.elf | Bin 0 -> 10352 bytes .../user/{bin => apps}/shell.emx/package.info | 2 +- limine.conf | 2 - shared/config/system.h | 2 + src/TODO.md | 6 +- src/kernel/arch/x86_64/syscall_entry.asm | 65 ++++-- src/kernel/graph/graphics.c | 2 +- src/kernel/kernel_processes/kernel/user.c | 6 +- src/kernel/mem/paging/paging.h | 4 + src/kernel/mem/paging/paging_proc.c | 84 +++++++ src/kernel/packages/elf/loader.c | 33 +-- src/kernel/user/jump.c | 60 +---- src/kernel/user/resume_parent_sysret.asm | 55 +++++ src/kernel/user/syscalls.c | 214 +++++++++++++++--- src/kernel/user/ulime.c | 27 +-- src/kernel/user/ulime.h | 1 + src/userspace/Makefile | 8 +- src/userspace/apps/hello/Makefile | 23 -- src/userspace/apps/hello/hello.S | 23 -- src/userspace/apps/hello/hello.elf | Bin 4744 -> 0 bytes .../apps/hello/hello.emx/app_icon.bmp | 0 .../apps/hello/hello.emx/package.info | 10 - src/userspace/apps/hello/hello.o | Bin 944 -> 0 bytes src/userspace/apps/shell/shell.c | 53 ++++- src/userspace/apps/shell/shell.emx/app.elf | Bin 9568 -> 10352 bytes .../apps/shell/shell.emx/package.info | 2 +- src/userspace/apps/shell/shell.o | Bin 1456 -> 2640 bytes src/userspace/apps/system/init.c | 14 +- src/userspace/apps/system/init.h | 3 +- src/userspace/apps/system/init.o | Bin 2120 -> 2232 bytes src/userspace/apps/system/system.emx/app.elf | Bin 13496 -> 13592 bytes src/userspace/bin/echo/Makefile | 28 +++ src/userspace/bin/echo/echo.c | 23 ++ src/userspace/bin/echo/echo.elf | Bin 0 -> 9664 bytes src/userspace/bin/echo/echo.o | Bin 0 -> 1624 bytes src/userspace/bin/hello/Makefile | 28 +++ src/userspace/bin/hello/hello.c | 7 + src/userspace/bin/hello/hello.elf | Bin 0 -> 9504 bytes src/userspace/bin/hello/hello.o | Bin 0 -> 1288 bytes src/userspace/libc/include/unistd.h | 1 + src/userspace/libc/src/_syscall.h | 1 + src/userspace/libc/src/unistd.c | 4 + 48 files changed, 589 insertions(+), 210 deletions(-) create mode 100755 dsk/rd/bin/echo.elf rename dsk/rd/{user/bin/shell.emx/app.elf => bin/hello.elf} (58%) create mode 100755 dsk/rd/bin/rm.elf create mode 100755 dsk/rd/user/apps/shell.emx/app.elf rename dsk/rd/user/{bin => apps}/shell.emx/package.info (72%) create mode 100644 src/kernel/mem/paging/paging_proc.c create mode 100644 src/kernel/user/resume_parent_sysret.asm delete mode 100644 src/userspace/apps/hello/Makefile delete mode 100644 src/userspace/apps/hello/hello.S delete mode 100755 src/userspace/apps/hello/hello.elf delete mode 100644 src/userspace/apps/hello/hello.emx/app_icon.bmp delete mode 100644 src/userspace/apps/hello/hello.emx/package.info delete mode 100644 src/userspace/apps/hello/hello.o create mode 100644 src/userspace/bin/echo/Makefile create mode 100644 src/userspace/bin/echo/echo.c create mode 100755 src/userspace/bin/echo/echo.elf create mode 100644 src/userspace/bin/echo/echo.o create mode 100644 src/userspace/bin/hello/Makefile create mode 100644 src/userspace/bin/hello/hello.c create mode 100755 src/userspace/bin/hello/hello.elf create mode 100644 src/userspace/bin/hello/hello.o diff --git a/Makefile b/Makefile index 3069865..14f6831 100644 --- a/Makefile +++ b/Makefile @@ -58,13 +58,15 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @cp $(addprefix $(INCLUDE_DIR)/limine/limine-, bios.sys bios-cd.bin uefi-cd.bin) $(ISODIR)/boot/limine/ @cp $(addprefix $(INCLUDE_DIR)/limine/BOOT, IA32.EFI X64.EFI) $(ISODIR)/EFI/BOOT/ - @echo "[MOD] creating executables..." + @echo "[MOD] creating & copying executables..." @mkdir -p $(DISK_DIR)/rd/user/apps @mkdir -p $(DISK_DIR)/rd/user/bin + @mkdir -p $(DISK_DIR)/rd/bin @mkdir -p $(DISK_DIR)/rd/emr/system - @cp -r src/userspace/apps/shell/shell.emx $(DISK_DIR)/rd/user/bin/ - @cp src/userspace/apps/hello/hello.elf $(ISODIR)/boot/hello.elf + @cp -r src/userspace/apps/shell/shell.emx $(DISK_DIR)/rd/user/apps/ @cp -r src/userspace/apps/system/system.emx $(DISK_DIR)/rd/emr/system + @cp src/userspace/bin/echo/echo.elf $(DISK_DIR)/rd/bin/ + @cp src/userspace/bin/hello/hello.elf $(DISK_DIR)/rd/bin/ @echo "[MOD] creating initrd.cpio..." @chmod +x tools/initrd.sh diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 768f0bdb335408500954a78774d0a11b72f657c7..6a0584f7cfff5f1cd99a7f4554ceb2caa08ac53c 100644 GIT binary patch delta 11039 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 XYg(o55v};&!+<3sqVIS3alYVx*v5w$ diff --git a/dsk/rd/bin/echo.elf b/dsk/rd/bin/echo.elf new file mode 100755 index 0000000000000000000000000000000000000000..c9f3f82b80d08a2d96fbbb99b283128cd2931362 GIT binary patch literal 9664 zcmeHNZERat89q+xey?^*({WVt&P-_`a_T07zb5w*o)J_(s~M)$v~SXt`Gg~ZR!aGA2hzAvj8m7mt2u>CcJsjv2@#u%ADrCv`# zT}u`wPr#GB-TU!?zgWFC`n%jv--_d5qhhp7h0Z0nhEArJL>A9~vZy1;yGocw|7(T! z0h0_34`QQ~RNF}6ow5bEE`kCBcUhe9nGqNN*O;V0u2<~mdYvCb@6sBb%HG|`S_B>} zuc)8o3ZEMoHVzJO2E#-}`zsU1%1k1y#lm6}e#SyAW9{@D2U^%gDOp7zsG&bIny_~-QWv3?zat0O2a z#j~?SptnvY?J8#p4cOV>o%j;j&IQ--235D|Nn=;B*?}$~n(0S%1*hg~`b2vh*eD*E+^bPn#P5qD$dF)i3Jrw*oMr_8!m(c^|M*wX`j3Ntumjh$(S$1>5 zW4O)OJ7`8__U@D^YmxF8K0 zC7+>^W~-Q7J`~&x9yM#rg%AUP{#9mnWq!P~JM=QkbtXAmwO3wp_)KGnMeR3}_m{~z zQ={Wv1~wE9xno$&!d7qeJ1#BFWYUu+=Xw88Wj4UcYg+M)p9^`Co$zxT&ZejEsshcA z)hfj|67!a`Q$~2%+TcBvvXRm9Q+Ip4Q-mwr<=Z!fzTJ=02$|GRc)fdwe=ud90Gaft zO6~F3n^PZRmo-GvA%}VOhmWO}4Oyf7-G-+{P2p2B(-uLn5Q4&e=qzUE9%v4y8fGZ# zOI2N`S$k9Col;}pqY(+A@yHslyX`2CbOshW*Pn4WXRV3C!=CVo8QvGld3(vj>w`&2 z%aKRD?&C-8Qhgr*FK10OTchd5oHdHqQWOk!(EvaUbVXL2l%Zo0)KDRC0&AT&rxVs1 z&*f}bZ@5L!KWSeZDa>QXUthi4M9wf-e!ZJ7M!U=fKnAa>G1lSHgA>~5#{ zBE<4%z-k0GIpZbEVeou2NiWU1SQPK3xOYzRqZD_|Dc(!*BcGUjMj>a{O=3@HjOIPCis~6 z>E-8u;4cVXC;Wuqzn9<3KPUKM!D|;9KYuLvmjrhf8GM=Gd`8osuLypYg@D$Ji}+81 zhR?jPeFvAuML)}qjVCnmr1o_5Jt@xQC8Epy|`Nw6yu+G?OVTbrTQinSYtQHH7`e-5a z8^J?@KO_2i*s!euM_;&64x4|Mr{!Mmy!qWPqrs; z(f_ZBo|_4xH448&)|cll+r5G}R;baxn;>WJ=3s`#OJ z4DeHNr>DJ*EKQDfbacm5bYFMEp>@u|EfL$FP%$Grm}qz61Y=Q0#rC(gCt%iz8a`l^ zh)3Hf?}~Nym^-{kb#=6N9iU7bfS3`{Do9UuCm0=OKqc;NsUC`waYuDV+q(#n23KPT z+Zaf@YK&^TI(dXSN=l=`l-~X2Y literal 0 HcmV?d00001 diff --git a/dsk/rd/user/bin/shell.emx/app.elf b/dsk/rd/bin/hello.elf similarity index 58% rename from dsk/rd/user/bin/shell.emx/app.elf rename to dsk/rd/bin/hello.elf index ec5532d36e4f1bd2feeb5c79e953c41edc244afe..9ad986a1c9449acd568ad8765c1805bd393cb1fe 100755 GIT binary patch delta 1473 zcmZ9MZAep57{||@&YYWWjNfar5k+8_H*7NKIF_krEbrh5(w*+!0e(Dgy(McF~mX7Po>*b%k$H-G711-Tr};1 z9zwvXHtTpxdX+T7pQay>yu&7ATB12w33fmn#0DqF>akSypGbr^WUS_SX1!EBTw)$q zm$X5nQ0F90(3v%wcm6Zjfz~4pge9o3SNJ?I=^wJo;Wj7eZeDD4)L3Gy-K0#Z)$oQx zB{2o>f+h9+_a`fpRaYJ^IYp`-|;mmp-wx$WZRaxg|SiyU|D#BVS!6x3CzIX*zzSK zm+Y3z?TNyZA9XO63$qGbO}x-vp6N^#YBH&NU^arP;~~4n?@bbFFR68;K1mQ+Yj`5EHR=-0zdM*bp2_&sQbaT6}&j1M_1h0}2xhns-v>tqpyn}K5xF62#o z*^yt7sugNSRD%OU>Ycc36U3J_!q3S+O}v_)a$5X-v_TG1XJRU?=pgY=#II6yJFRq{ zc-1OVrHA~B#PyUvw$I;*yF^!h7NCINBn-guM^uY97>Q5_7oR`{Dg|a*;*hu$QEUMQ z;(fI2{p81EhIyV-L&Z_ z4;~>L1?aB;p@%+_oq{trCF+X%X^M#tP@{VCv*^*~MQdLrwYT`1TTXD5>m8qUIaMn< zu9EXo@E;YuD^|WkF47q23~Bj!d6&jO{m=4o*{xYzBa-gs(mJATme5=VI9M(tF&DDI>0WJgL zXGTmm27|%&$$H$+S{2x8S;5`VXo+(cMPbg?9KYrpGHbrK->|k{Yc*sGEZS&QGT^Rd zA&-Fxi=qoeLbqK3bxt@a)^y$lxz-|{-G9*u^R)QUf>Rm82qJ z_=dRFV%RQuE*|DvtZC>_B6_WXkMZixdDE;;(MAlj(Gu&9*e1QWq2mv6U{9Z8(C`aG zW_=^&mw5coItsh(>VoV4mq<=Q@Ty>O>0zm374L;ohmBXlVMki*Nj=NL1Z<($a4o<`$2hwI!{{>(uN+%= z10*HbV#~v&=jMIE$3n%C)q)q*DpKvFR{V?YL$%f*Gb^OJ zNiBwn1e<4!N%bnJ;tECGO*+ZN=P1?*d<4%YevdBxG;uXj`sWB|T<7r-{`Fk)9U;ot z1>)JVs}z<-!etWX8)ZNt@m}KNa7j($`(RA9d17d!>DY(llOG{tfnuK$@1e`}5Pw1Z z5j9s#{5A0j8YY2;d`J9BSSY`TouYtA5}Ie+@mJzUXc!;)|0Eual8x>nK1IAl7GQbA z_1J*8MSOQz0-XzS9K%S$6cs2435`Flil-=CNQrF37gM75^lH`!RyL2rYFm^ Q>tGnI15RnB0(Yr@0S-P4djJ3c diff --git a/dsk/rd/bin/rm.elf b/dsk/rd/bin/rm.elf new file mode 100755 index 0000000000000000000000000000000000000000..254cf23d08a026b46998f0aa0fe7c979c8bf67a9 GIT binary patch literal 9744 zcmeHNZERE589p%>!lwfzD-{I{n<%Iw5QjIMu zs$3>4H!5oPqpK>l)iiC=+V#&ARa6aW+9m0JAa|PDjAg>p*mRMpWLPw^LgzitIp^M7 zn~+Va_RmMU_nh;*?|IMrbw2!Y%J}Bjd<_l4DL(O#(7g~b`9i(t3+$;95^dlKiMe8q z6W72%V>|6F*63o0&G#d(LUe59f#-1KLkv=yY zq=BoH=|jt&3w(xQEnqTpLz-iuNARc=JglU=vp|S*G-%+OEBSR`(2>ezp(8}J8&?C* z?5k8NdE?gm?`o6V%v@#+HW$oX7%~mCjWTNV4cmlu7%xgeGat5rPD+b*gCUIO?*jee zjL)QaNozMolOIyXjM6EG(u=5Vv)w4BwpGnTT+aj6JI+(u4!%)pTUw7++3ed>L9Kiq zMt2vwP}LW0-OUSC{3q z%5|$>bGtFbR8J44uh24gNKg(z_G>Rpo`ohwv+pYnZm{}Hw0GNq{-tM{l!);v5z?1j zK+>6x6PY~!OHjvB_jx##{P#+C0n;8T3}ZETvTZE+*Qx;AWP1 z4TaLiDk*gP+&ASeQkAr0$>$_mZDlS!QMyNKpAS#871DFqD>b`uSAH6=9xEfyMeO9< z3XEdRv1lQqkv(MbWKB9;q-<9KZ~7F~G@RTn?Z+D_Jz~Fnt5TtuQX6sQa&oo}rPoL= zNN;ee3uHh0?@HzLptQi27I;(f?P)BKODCJLg|&bam^uF=_^R2=`@hZ#qVAQ0u3UyY zfwmIO4kEk!>lEK=R8n&*2>KG$3k+ZjF^ahlsnfI2iIN6Ezcxp6r<=_Y|0VQT)D%yl z1(pi{O+w5S#%od>n z+IfGDu$13?(&4}jK^?eY8dgHSOCjw>IkjZOzaM;*EN3nSXaMAg)aY9OID2>C4W{dq zbGAsW9Ov*%qlsmyH=TEV@{X>Nb}t4u1diBO5X{mRr}rm@meXW2lgj5s_oz|};DsAf z@RXj7+{wW4@O?hJ+S5_npRuQh56X?i{ ztl238r^CphQo~uqx~O(1#2V*vu1PMqd5}M8-WV&*X2XrI3^$Q;be5ZMYmhkqjpx%( zy*xTkhHhL8JUn#!Q0Q*nxM+H5K__o$`JGp{n_lkqPu^A1W7BU2n_a2AE#`J}V}@!?`i&fB`QRR#sl~S zOUUt0T;ro!|7H?Vdht+Bqt@qp5*6Z@#y4m`|6JoIHU8o}CExjZ{%MW>QsZwk5m54Y zDF1?A@f#8q;&}(x@|mD4FXAEpPiy@DipKw-{TW7|Njm)cAF67uPw+ zT0KY6>+Fhmu$PLqii1aDkzSGRjssTM77`v1v1GElM-7hlo)C#xBGL0?Ohl}nE=3bv zk&cvz9gjr;AC6hQ@lJ9{=15mpPgF!YdXg4r=NMGU=#iv|D%!DR+=>y5Ml2CM(iu-; zS}UUX0gGfT(n)%EG|{VSXp!#jigzC+O-=wZE#j<2$q< XQMjgyGiLhntMx(DqQtoG+VTGZT^kk2 literal 0 HcmV?d00001 diff --git a/dsk/rd/emr/system/system.emx/app.elf b/dsk/rd/emr/system/system.emx/app.elf index 718956ffd6497aa194dc602b1288f3b37695816b..84b23a710d5452aa02c6f0e7adc00d0b68c76c65 100755 GIT binary patch delta 1809 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 literal 0 HcmV?d00001 diff --git a/dsk/rd/user/bin/shell.emx/package.info b/dsk/rd/user/apps/shell.emx/package.info similarity index 72% rename from dsk/rd/user/bin/shell.emx/package.info rename to dsk/rd/user/apps/shell.emx/package.info index 2d12498..055ff67 100644 --- a/dsk/rd/user/bin/shell.emx/package.info +++ b/dsk/rd/user/apps/shell.emx/package.info @@ -5,6 +5,6 @@ emex v0.0.1a - esh userspace shell + emx userspace shell diff --git a/limine.conf b/limine.conf index f4624c5..c9e16a1 100644 --- a/limine.conf +++ b/limine.conf @@ -21,7 +21,6 @@ default_entry: 0 #module_path: boot():/boot/activeslot.txt # Slot A module_path: boot():/boot/initrd.cpio - module_path: boot():/boot/hello.elf # slot 2 for update /emexOS B @@ -30,7 +29,6 @@ default_entry: 0 #module_path: boot():/boot/activeslot.txt # slot B module_path: boot():/boot/initrd.cpio - module_path: boot():/boot/hello.elf # ---- diff --git a/shared/config/system.h b/shared/config/system.h index e861186..f2d67e2 100644 --- a/shared/config/system.h +++ b/shared/config/system.h @@ -12,6 +12,8 @@ #define KERNELSPACE 0x40000000 #define KERNELPRIORITY 255 +#define JUMPTOUSER 1 + #define USE_HCF 1 #define BOOTUP_VISUALS 0 // verbose boot == 0, silent boot == 1 diff --git a/src/TODO.md b/src/TODO.md index c2539b9..dcae458 100644 --- a/src/TODO.md +++ b/src/TODO.md @@ -7,7 +7,11 @@ [ ] implement png [ ] implement mp4 [ ] implement ahci -[ ] implement a libc +[x] implement a libc +[ ] implement a stub system like vmlinux(virtual memory linux zipped), call it emez (emex's zipped kernel) [ ] upgrade theme manager [ ] upgrade font manager [ ] upgrade bootscreen manager + + +⁠ diff --git a/src/kernel/arch/x86_64/syscall_entry.asm b/src/kernel/arch/x86_64/syscall_entry.asm index b70aec7..5a594ce 100644 --- a/src/kernel/arch/x86_64/syscall_entry.asm +++ b/src/kernel/arch/x86_64/syscall_entry.asm @@ -1,18 +1,40 @@ bits 64 global syscall_entry -extern syscall_handler - +global user_rsp +global user_rcx +global user_r11 +global user_cr3 +global user_rbx +global user_rbp +global user_r12 +global user_r13 +global user_r14 +global user_r15 +extern syscall_handler syscall_entry: - ; save user stack pointer mov [rel user_rsp], rsp - lea rsp, [rel kernel_stack_top] ; not mov + mov [rel user_rcx], rcx + mov [rel user_r11], r11 + + push rax + mov rax, cr3 + mov [rel user_cr3], rax + pop rax - ; save registers on kernel stack - push r11 ; rflags - push rcx ; user rip + mov [rel user_rbx], rbx + mov [rel user_rbp], rbp + mov [rel user_r12], r12 + mov [rel user_r13], r13 + mov [rel user_r14], r14 + mov [rel user_r15], r15 + + lea rsp, [rel kernel_stack_top] + + push r11 + push rcx push rbx push rbp push r12 @@ -20,16 +42,15 @@ syscall_entry: push r14 push r15 - mov rcx, rdx ; rcx = arg3 (count) - mov rdx, rsi ; rdx = arg2 (buf) - mov rsi, rdi ; rsi = arg1 (fd) - mov rdi, rax ; rdi = syscall_num + mov rcx, rdx ; arg3 + mov rdx, rsi ; arg2 + mov rsi, rdi ; arg1 + mov rdi, rax ; syscall_num - call syscall_handler ; from C + call syscall_handler ; result is in rax - ; restore registers pop r15 pop r14 pop r13 @@ -39,20 +60,24 @@ syscall_entry: pop rcx ; user rip pop r11 ; rflags - ; restore user stack mov rsp, [rel user_rsp] - - ; return to userspace with SYSRET - ; rcx = return address, r11 = rflags - o64 sysret + o64 sysret ; RIP = rcx, RFLAGS = r11, CPL → 3 section .data align 16 user_rsp: dq 0 - +user_rcx: dq 0 +user_r11: dq 0 +user_cr3: dq 0 +user_rbx: dq 0 +user_rbp: dq 0 +user_r12: dq 0 +user_r13: dq 0 +user_r14: dq 0 +user_r15: dq 0 section .bss align 16 kernel_stack_bottom: - resb 16384 ; 16KB kernel stack + resb 16384 kernel_stack_top: diff --git a/src/kernel/graph/graphics.c b/src/kernel/graph/graphics.c index 0ad51dc..d873b5d 100644 --- a/src/kernel/graph/graphics.c +++ b/src/kernel/graph/graphics.c @@ -61,7 +61,7 @@ void scroll_up(u32 lines) u32 pixels_to_scroll = lines; u32 pitch_dwords = fb_pitch / 4; u32 bytes_per_row = fb_width * sizeof(u32); - u32 bg_color = bg(); + u32 bg_color = black(); // move framebuffer content up for (u32 y = pixels_to_scroll; y < fb_height; y++) { diff --git a/src/kernel/kernel_processes/kernel/user.c b/src/kernel/kernel_processes/kernel/user.c index cf4770a..80d4790 100644 --- a/src/kernel/kernel_processes/kernel/user.c +++ b/src/kernel/kernel_processes/kernel/user.c @@ -4,7 +4,7 @@ // path to the init app in the VFS (loaded from initrd.cpio) #define SYSTEMLOCATE "/emr/system/system.emx" //mod -#define LOGINLOCATE "/emr/bin/login.elf" +//#define LOGINLOCATE "/emr/bin/login.elf" void uproc(void) { #if ENABLE_ULIME @@ -32,7 +32,9 @@ void uproc(void) { dump_kprocesses(); ulime->ptr_proc_curr = init_proc; - JumpToUserspace(init_proc); + #if JUMPTOUSER == 1 + JumpToUserspace(init_proc); + #endif __builtin_unreachable(); diff --git a/src/kernel/mem/paging/paging.h b/src/kernel/mem/paging/paging.h index deb9928..d09a79e 100644 --- a/src/kernel/mem/paging/paging.h +++ b/src/kernel/mem/paging/paging.h @@ -39,4 +39,8 @@ int verify_page_permissions(limine_hhdm_response_t *hpr, u64 virtual_addr, const void* phys_to_virt(limine_hhdm_response_t *hpr, u64 phys_addr); u64 virt_to_phys(limine_hhdm_response_t *hpr, void* virt_addr); +// perprocess page table support +u64 paging_create_proc_pml4 (limine_hhdm_response_t *hpr); +void paging_map_page_proc (limine_hhdm_response_t *hpr, u64 pml4_phys, u64 virtual_addr, u64 physical_addr, u64 flags); + #endif diff --git a/src/kernel/mem/paging/paging_proc.c b/src/kernel/mem/paging/paging_proc.c new file mode 100644 index 0000000..a6241fc --- /dev/null +++ b/src/kernel/mem/paging/paging_proc.c @@ -0,0 +1,84 @@ +#include "paging.h" +#include +#include +#include +#include +#include +#include + +u64 paging_create_proc_pml4(limine_hhdm_response_t *hpr) +{ + u64 pml4_phys = physmem_alloc_to(1); + if (!pml4_phys) panic("[PAGING] failed to allocate proc PML4"); + + page_table_t *pml4 = (page_table_t *)(pml4_phys + hpr->offset); + memset(pml4, 0, PAGE_SIZE); + + // share kernel upper half so syscalls/kernel code work in every process + for (int i = 256; i < 512; i++) { + pml4->entries[i] = kernel_pml4->entries[i]; + } + + return pml4_phys; +} + +void paging_map_page_proc( + limine_hhdm_response_t *hpr, + u64 pml4_phys, + u64 virtual_addr, + u64 physical_addr, + u64 flags) +{ + page_table_t *pml4 = (page_table_t *)(pml4_phys + hpr->offset); + + u64 pml4_index = (virtual_addr >> 39) & 0x1FF; + u64 pdp_index = (virtual_addr >> 30) & 0x1FF; + u64 pd_index = (virtual_addr >> 21) & 0x1FF; + u64 pt_index = (virtual_addr >> 12) & 0x1FF; + + u64 upper_flags = PTE_PRESENT | PTE_WRITABLE; + if (flags & PTE_USER) upper_flags |= PTE_USER; + + page_table_t *pdpt = NULL; + if (!(pml4->entries[pml4_index] & PTE_PRESENT)) { + u64 pdpt_phys = physmem_alloc_to(1); + if (!pdpt_phys) panic("[PAGING] failed to allocate PDPT for proc"); + pml4->entries[pml4_index] = (pdpt_phys & 0x000FFFFFFFFFF000) | upper_flags; + pdpt = (page_table_t *)(pdpt_phys + hpr->offset); + memset(pdpt, 0, PAGE_SIZE); + } else { + u64 pdpt_phys = pml4->entries[pml4_index] & 0x000FFFFFFFFFF000; + pdpt = (page_table_t *)(pdpt_phys + hpr->offset); + pml4->entries[pml4_index] |= upper_flags; + } + + page_table_t *pd = NULL; + if (!(pdpt->entries[pdp_index] & PTE_PRESENT)) { + u64 pd_phys = physmem_alloc_to(1); + if (!pd_phys) panic("[PAGING] failed to allocate PD for proc"); + pdpt->entries[pdp_index] = (pd_phys & 0x000FFFFFFFFFF000) | upper_flags; + pd = (page_table_t *)(pd_phys + hpr->offset); + memset(pd, 0, PAGE_SIZE); + } else { + u64 pd_phys = pdpt->entries[pdp_index] & 0x000FFFFFFFFFF000; + pd = (page_table_t *)(pd_phys + hpr->offset); + pdpt->entries[pdp_index] |= upper_flags; + } + + page_table_t *pt = NULL; + if (!(pd->entries[pd_index] & PTE_PRESENT)) { + u64 pt_phys = physmem_alloc_to(1); + if (!pt_phys) panic("[PAGING] failed to allocate PT for proc"); + pd->entries[pd_index] = (pt_phys & 0x000FFFFFFFFFF000) | upper_flags; + pt = (page_table_t *)(pt_phys + hpr->offset); + memset(pt, 0, PAGE_SIZE); + } else { + u64 pt_phys = pd->entries[pd_index] & 0x000FFFFFFFFFF000; + pt = (page_table_t *)(pt_phys + hpr->offset); + pd->entries[pd_index] |= upper_flags; + } + + pt->entries[pt_index] = (physical_addr & 0x000FFFFFFFFFF000) | flags; + + asm volatile("invlpg (%0)" : : "r"(virtual_addr) : "memory"); +} diff --git a/src/kernel/packages/elf/loader.c b/src/kernel/packages/elf/loader.c index 1c241eb..dc485f8 100644 --- a/src/kernel/packages/elf/loader.c +++ b/src/kernel/packages/elf/loader.c @@ -63,6 +63,7 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { } u64 load_offset = proc->heap_base - min_vaddr; + u64 hhdm_offset = proc->ulime->hpr->offset; printf("[ELF] Loading '%s'\n", proc->name); printf(" ELF base addr: 0x%lX\n", min_vaddr); @@ -70,11 +71,12 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { printf(" Load offset: 0x%lX\n", load_offset); printf(" Original entry: 0x%lX\n", ehdr->entry); - // load PT_LOAD segments with relocation + // load PT_LOAD segments + // writes via HHDM so kernel CR3 doesnt matter for (u16 i = 0; i < ehdr->phnum; i++) { if (phdr[i].type != PT_LOAD) continue; - u64 vaddr = phdr[i].vaddr + load_offset; // apply relocation + u64 vaddr = phdr[i].vaddr + load_offset; // relocated virtual address u64 offset = phdr[i].offset; u64 filesz = phdr[i].filesz; u64 memsz = phdr[i].memsz; @@ -85,7 +87,7 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { printf(" File size: %lu bytes\n", filesz); printf(" Mem size: %lu bytes\n", memsz); - // check bounds + // bounds check against heap if (vaddr < proc->heap_base || vaddr + memsz > proc->heap_base + proc->heap_size) { printf("[ELF] ERROR: Segment outside heap bounds\n"); printf(" Segment range: 0x%lX - 0x%lX\n", vaddr, vaddr + memsz); @@ -97,17 +99,22 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { printf("[ELF] Segment exceeds ELF size\n"); return -1; } + + // convert virtual address to kernel-accessible HHDM address + u64 phys_dest = proc->phys_heap + (vaddr - proc->heap_base); + void *hhdm_dest = (void *)(phys_dest + hhdm_offset); + if (filesz > 0) { - memcpy((void*)vaddr, elf_data + offset, filesz); + memcpy(hhdm_dest, elf_data + offset, filesz); printf(" Copied %lu bytes\n", filesz); } if (memsz > filesz) { - memset((void*)(vaddr + filesz), 0, memsz - filesz); + memset((u8 *)hhdm_dest + filesz, 0, memsz - filesz); printf(" Zeroed %lu bytes\n", memsz - filesz); } - // last verification - u8 *code = (u8*)vaddr; + // print first bytes for debug (read via HHDM too) + u8 *code = (u8 *)hhdm_dest; printf(" First bytes: "); for (int j = 0; j < 16 && j < (int)filesz; j++) { printf("%02X ", code[j]); @@ -119,9 +126,8 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { proc->entry_point = ehdr->entry + load_offset; proc->state = PROC_READY; - // if the ELF was relocated (not loaded at its original VMA) - // map the original VMA to the SAME physical pages so that addresses in - // compiled code are avild + // if the ELF was relocated it also maps the original VMA into the process PML4 + // so that absolute addresses baked into the binary still work at runtime if (load_offset != 0) { u64 total_size = (max_vaddr - min_vaddr + 0xFFF) & ~0xFFFULL; u64 pages = total_size / 0x1000; @@ -131,10 +137,11 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { min_vaddr, pages); for (u64 p = 0; p < pages; p++) { - // physical address of this page (from the process's allocated phys_heap) - u64 phys = proc->phys_heap + (p * 0x1000); + u64 phys = proc->phys_heap + (p * 0x1000); u64 orig_virt = min_vaddr + (p * 0x1000); - paging_map_page(proc->ulime->hpr, orig_virt, phys, heap_flags); + // maps into the processes own PML4 NOT the global kernel one + paging_map_page_proc(proc->ulime->hpr, proc->pml4_phys, + orig_virt, phys, heap_flags); } printf("[ELF] original VMA alias mapped\n"); diff --git a/src/kernel/user/jump.c b/src/kernel/user/jump.c index f7f0290..7619dda 100644 --- a/src/kernel/user/jump.c +++ b/src/kernel/user/jump.c @@ -26,56 +26,12 @@ void JumpToUserspace(ulime_proc_t *proc) { printf("[ULIME] Jumping to %s at RIP=0x%lX RSP=0x%lX\n", proc->name, user_rip, user_rsp); - if (user_rip < proc->heap_base || user_rip >= proc->heap_base + proc->heap_size) { - printf("[ULIME] ERROR: RIP 0x%lX outside process heap!\n", user_rip); - return; - } - if (user_rsp < proc->stack_base || user_rsp >= proc->stack_base + proc->stack_size) { - printf("[ULIME] ERROR: RSP 0x%lX outside process stack!\n", user_rsp); - return; - } - - printf("[ULIME] Values: SS=0x%X CS=0x%X RFLAGS=0x%lX\n", - user_ss, user_cs, user_rflags); - - printf("[ULIME] iretq frame will be:\n"); - printf(" [RIP] = 0x%016lX\n", user_rip); - printf(" [CS] = 0x%016lX\n", (u64)user_cs); - printf(" [RFLAGS] = 0x%016lX\n", user_rflags); - printf(" [RSP] = 0x%016lX\n", user_rsp); - printf(" [SS] = 0x%016lX\n", (u64)user_ss); - - u64 *test_rip = (u64*)user_rip; - u64 *test_rsp = (u64*)user_rsp; - - printf("[ULIME] Testing memory access:\n"); - printf(" Code at RIP: 0x%016lX\n", *test_rip); - - // try writing to stack - *test_rsp = 0xDEADBEEF; - if (*test_rsp != 0xDEADBEEF) { - printf("[ULIME] ERROR: Stack not writable!\n"); - return; - } - printf(" Stack test: PASS\n"); - - // page table permissions - printf("\n"); - if (!verify_page_permissions(proc->ulime->hpr, user_rip, "Code page")) { - printf("[ULIME] ERROR: code page not properly mapped!\n"); - return; - } - printf("\n"); - if (!verify_page_permissions(proc->ulime->hpr, user_rsp, "Stack page")) { - printf("[ULIME] ERROR: stack page not properly mapped!\n"); - return; - } - printf("\n"); - + // switch to the processes own PML4 BEFORE touching any userspace addresses + __asm__ volatile( "mov %0, %%cr3" : : "r"(proc->pml4_phys) : "memory"); __asm__ volatile( "cli\n" - "subq $40, %%rsp\n"//$40 == (allocate) 40 bytes + "subq $40, %%rsp\n"//allocate 40 bytes "movq %0, 32(%%rsp)\n" // SS "movq %1, 24(%%rsp)\n" // user RSP @@ -84,9 +40,9 @@ void JumpToUserspace(ulime_proc_t *proc) { "movq %4, 0(%%rsp)\n" // RIP // verifys what debug wrote (halt if after jump back doesnt got verified) - "movq 0(%%rsp), %%rax\n" - "cmp %4, %%rax\n" - "jne 1f\n" + //"movq 0(%%rsp), %%rax\n" + //"cmp %4, %%rax\n" + //"jne 1f\n" //"cli\n" // clears General Purpose Registers @@ -109,8 +65,8 @@ void JumpToUserspace(ulime_proc_t *proc) { // even sysretq doesnt work "iretq\n" - "1:\n" // corruption - "hlt\n" + //"1:\n" // corruption + //"hlt\n" : : "r"((u64)user_ss), "r"(user_rsp), diff --git a/src/kernel/user/resume_parent_sysret.asm b/src/kernel/user/resume_parent_sysret.asm new file mode 100644 index 0000000..9c16495 --- /dev/null +++ b/src/kernel/user/resume_parent_sysret.asm @@ -0,0 +1,55 @@ +bits 64 + +global resume_parent_sysret +resume_parent_sysret: + cli + + ;read stack args before we lose rsp + mov rax, [rsp + 8] ;r12 + mov [rel .r12], rax + mov rax, [rsp + 16] ;r13 + mov [rel .r13], rax + mov rax, [rsp + 24] ;r14 + mov [rel .r14], rax + mov rax, [rsp + 32] ;r15 + mov [rel .r15], rax + + ;switch to parents page table + ;kernel upperhalf stays valid after this switch + mov cr3, rcx + + ;set up sysret registers: + ; rcx = return RIP (was in rdi) + ; r11 = RFLAGS (was in rdx) + ; rsp = user stack (was in rsi) + mov rcx, rdi ; RIP >> rcx (sysret reads RIP from here) + mov r11, rdx ; RFLAGS >> r11 (sysret reads RFLAGS from here) + mov rsp, rsi ; restore user stack + + + ;restore callee-saved registers + mov rbx, r8 + mov rbp, r9 + mov r12, [rel .r12] + mov r13, [rel .r13] + mov r14, [rel .r14] + mov r15, [rel .r15] + + ;rax = 0 >> execve() return value the parent sees (success) + xor rax, rax + xor rdi, rdi + xor rsi, rsi + xor rdx, rdx + ; rcx/r11/rsp already set above, don't zero them + xor r8, r8 + xor r9, r9 + xor r10, r10 + + o64 sysret ; RIP = rcx, RFLAGS = r11, CPL >> 3 + +section .data +align 8 +.r12: dq 0 +.r13: dq 0 +.r14: dq 0 +.r15: dq 0 diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index 1094669..928e07d 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -9,13 +9,59 @@ #include #include #include +#include +#include +#include #include +#include // read syscall #include + static ulime_t *g_ulime = NULL; +#if ENABLE_ULIME +extern ulime_t *ulime; +#endif + +#define SCWRITE 0xFFFFFFFF + +// fromsyscall_entry.asm +extern u64 user_rsp; +extern u64 user_rcx; +extern u64 user_r11; +extern u64 user_cr3; +extern u64 user_rbx; +extern u64 user_rbp; +extern u64 user_r12; +extern u64 user_r13; +extern u64 user_r14; +extern u64 user_r15; +extern void resume_parent_sysret(u64 rip,u64 rsp,u64 r11,u64 cr3,u64 rbx,u64 rbp,u64 r12,u64 r13,u64 r14,u64 r15); + +// full saved context of the blocked parent +static ulime_proc_t *blocked_parent = NULL; +static u64 blocked_parent_rip = 0; +static u64 blocked_parent_rsp = 0; +static u64 blocked_parent_cr3 = 0; +static u64 blocked_parent_rbx = 0; +static u64 blocked_parent_r11 = 0; +static u64 blocked_parent_rbp = 0; +static u64 blocked_parent_r12 = 0; +static u64 blocked_parent_r13 = 0; +static u64 blocked_parent_r14 = 0; +static u64 blocked_parent_r15 = 0; +static ulime_proc_t *find_proc_by_cr3(ulime_t *u, u64 cr3) { + ulime_proc_t *p = u->ptr_proc_list; + while (p) { + if (p->pml4_phys == cr3) return p; + p = p->next; + } + return NULL; +} + + // syscall handlers u64 scall_write(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { (void)proc; @@ -31,7 +77,9 @@ u64 scall_write(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { char tmp[2]; tmp[0] = str[i]; tmp[1] = '\0'; - cprintf(tmp, 0xFFFFFFFF); // white + cprintf(tmp, SCWRITE); // white + //TODO: + // we need a tty which handles this } return count; @@ -44,12 +92,43 @@ u64 scall_exit(ulime_proc_t *proc, u64 exit_code, u64 arg2, u64 arg3) { printf("\n[SYSCALL] process '%s' exited with code %lu\n", proc->name, exit_code); proc->state = PROC_ZOMBIE; - //BOOTUP_PRINTF("[USERMODE] !!! RETURN !!!\n"); - // clear current process so scheduler doesn't try to return to it - if (g_ulime) { - g_ulime->ptr_proc_curr = NULL; + if (blocked_parent) { + ulime_proc_t *parent = blocked_parent; + u64 rip = blocked_parent_rip; + u64 rsp = blocked_parent_rsp; + u64 r11 = blocked_parent_r11; + u64 cr3 = blocked_parent_cr3; + u64 rbx = blocked_parent_rbx; + u64 rbp = blocked_parent_rbp; + u64 r12 = blocked_parent_r12; + u64 r13 = blocked_parent_r13; + u64 r14 = blocked_parent_r14; + u64 r15 = blocked_parent_r15; + + blocked_parent = NULL; + blocked_parent_rip = 0; + blocked_parent_rsp = 0; + blocked_parent_r11 = 0; + blocked_parent_cr3 = 0; + blocked_parent_rbx = 0; + blocked_parent_rbp = 0; + blocked_parent_r12 = 0; + blocked_parent_r13 = 0; + blocked_parent_r14 = 0; + blocked_parent_r15 = 0; + + parent->state = PROC_RUNNING; + g_ulime->ptr_proc_curr = parent; + + printf("[SYSCALL] resuming '%s' via sysret: RIP=0x%lX\n", parent->name, rip); + + // restore full parent state + resume_parent_sysret(rip, rsp, r11, cr3, rbx, rbp, r12, r13, r14, r15); + __builtin_unreachable(); } + g_ulime->ptr_proc_curr = NULL; + while(1) { __asm__ volatile("cli; hlt"); } @@ -57,6 +136,100 @@ u64 scall_exit(ulime_proc_t *proc, u64 exit_code, u64 arg2, u64 arg3) { return 0; } +u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { + (void)arg2; + (void)arg3; + + if (path_ptr == 0 || path_ptr > 0x0000800000000000ULL) return (u64)-1; + + const char *path = (const char *)path_ptr; + + printf("[SYSCALL] execve: '%s'\n", path); + + ulime_proc_t *caller = find_proc_by_cr3(g_ulime, user_cr3); + if (!caller) {caller = proc;} + + int path_len = str_len(path); + int is_elf = (path_len > 4 && + path[path_len - 4] == '.' && + path[path_len - 3] == 'e' && + path[path_len - 2] == 'l' && + path[path_len - 1] == 'f'); + + ulime_proc_t *new_proc = NULL; + + if (is_elf) { + if (!ulime || !proc_mgr) { + printf("[SYSCALL] execve: ulime not ready\n"); + return (u64)-1; + } + + int fd = fs_open(path, O_RDONLY); + if (fd < 0) { + printf("[SYSCALL] execve: cannot open '%s'\n", path); + return (u64)-1; + } + + #define EXECVE_ELF_MAX (512 * 1024) + static u8 execve_elf_buf[EXECVE_ELF_MAX]; + + ssize_t elf_size = fs_read(fd, execve_elf_buf, EXECVE_ELF_MAX); + fs_close(fd); + + if (elf_size <= 0) { + printf("[SYSCALL] execve: elf empty or unreadable\n"); + return (u64)-1; + } + + const char *name = path; + for (int i = 0; i < path_len; i++) { + if (path[i] == '/') name = path + i + 1; + } + + new_proc = proc_create_proc(proc_mgr, (u8*)name, 0, USERPRIORITY); + if (!new_proc) { + printf("[SYSCALL] execve: failed to create process\n"); + return (u64)-1; + } + + if (elf_load(new_proc, execve_elf_buf, (u64)elf_size) != 0) { + printf("[SYSCALL] execve: elf_load failed\n"); + return (u64)-1; + } + } else { + + int result = emex_launch_app(path, &new_proc); + if (result != 0 || !new_proc) { + printf("[SYSCALL] execve failed with code %d\n", result); + return (u64)-1; + } + } + + // save full caller state + // use user_cr3 + blocked_parent = caller; + blocked_parent_rip = user_rcx; + blocked_parent_rsp = user_rsp; + blocked_parent_r11 = user_r11; + blocked_parent_cr3 = user_cr3; + blocked_parent_rbx = user_rbx; + blocked_parent_rbp = user_rbp; + blocked_parent_r12 = user_r12; + blocked_parent_r13 = user_r13; + blocked_parent_r14 = user_r14; + blocked_parent_r15 = user_r15; + + caller->state = PROC_BLOCKED; + g_ulime->ptr_proc_curr = new_proc; + + printf("[SYSCALL] process '%s' blocked, waiting for '%s'\n", + caller->name, new_proc->name); + + JumpToUserspace(new_proc); + + __builtin_unreachable(); +} + u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { (void)proc; //(void)fd; @@ -139,37 +312,6 @@ u64 scall_brk(ulime_proc_t *proc, u64 addr, u64 arg2, u64 arg3) { return proc->heap_base + proc->heap_size; } -u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { - //(void)proc; - (void)arg2; - (void)arg3; - - // validate pointer - if (path_ptr == 0 || path_ptr > 0x0000800000000000ULL) return (u64)-1; - - const char *path = (const char *)path_ptr; - - printf("[SYSCALL] execve: '%s'\n", path); - - // emex_launch_app creates the process - // the scheduler will switch to it on the next quantum. - ulime_proc_t *new_proc = NULL; - int result = emex_launch_app(path, &new_proc); - if (result != 0 || !new_proc) { - printf("[SYSCALL] execve failed with code %d\n", result); - return (u64)-1; - } - - // replace current process, mark it as zombie - proc->state = PROC_ZOMBIE; - g_ulime->ptr_proc_curr = new_proc; - - // jump directly to the new process — never returns (iretq) - JumpToUserspace(new_proc); - - __builtin_unreachable(); -} - void _init_syscalls_table(ulime_t *ulime) { if (!ulime) return; diff --git a/src/kernel/user/ulime.c b/src/kernel/user/ulime.c index ffe6212..261ce16 100644 --- a/src/kernel/user/ulime.c +++ b/src/kernel/user/ulime.c @@ -131,34 +131,35 @@ int ulime_proc_mmap(ulime_t *ulime, ulime_proc_t *proc) { printf(" Heap phys: 0x%llx (%llu pages)\n", (unsigned long long)phys_heap, (unsigned long long)heap_pages); - // stack pages: Non-Execute enabled (security) - u64 stack_flags = PTE_PRESENT | PTE_WRITABLE | PTE_USER | PTE_NO_EXEC; + u64 pml4_phys = paging_create_proc_pml4(ulime->hpr); + proc->pml4_phys = pml4_phys; + printf(" PML4 phys: 0x%llx\n", (unsigned long long)pml4_phys); - // heap/code pages: Executable (no NX bit) - u64 heap_flags = PTE_PRESENT | PTE_WRITABLE | PTE_USER; + u64 stack_flags = PTE_PRESENT | PTE_WRITABLE | PTE_USER | PTE_NO_EXEC; + u64 heap_flags = PTE_PRESENT | PTE_WRITABLE | PTE_USER; - // map heap (executable for code) + // map heap/code into the process's own PML4 for (u64 i = 0; i < heap_pages; i++) { u64 virt = proc->heap_base + (i * PAGE_SIZE); u64 phys = phys_heap + (i * PAGE_SIZE); - paging_map_page(ulime->hpr, virt, phys, heap_flags); + paging_map_page_proc(ulime->hpr, pml4_phys, virt, phys, heap_flags); } - // map stack (with NX) + // map stack into the processes own PML4 for (u64 i = 0; i < stack_pages; i++) { u64 virt = proc->stack_base + (i * PAGE_SIZE); u64 phys = phys_stack + (i * PAGE_SIZE); - paging_map_page(ulime->hpr, virt, phys, stack_flags); + paging_map_page_proc(ulime->hpr, pml4_phys, virt, phys, stack_flags); } - // clear memory via HHDM (physical + offset) - void *heap_clear = (void*)(phys_heap + ulime->hpr->offset); - void *stack_clear = (void*)(phys_stack + ulime->hpr->offset); - memset(heap_clear, 0, proc->heap_size); + // clear memory via HHDM + void *heap_clear = (void *)(phys_heap + ulime->hpr->offset); + void *stack_clear = (void *)(phys_stack + ulime->hpr->offset); + memset(heap_clear, 0, proc->heap_size); memset(stack_clear, 0, proc->stack_size); proc->phys_stack = phys_stack; - proc->phys_heap = phys_heap; + proc->phys_heap = phys_heap; proc->state = PROC_READY; printf("[ULIME] memory mapped successfully\n"); diff --git a/src/kernel/user/ulime.h b/src/kernel/user/ulime.h index 65eeb64..f47174c 100644 --- a/src/kernel/user/ulime.h +++ b/src/kernel/user/ulime.h @@ -19,6 +19,7 @@ typedef struct ulime_proc { u64 priority; u64 state; u64 *ptr_pagetable; + u64 pml4_phys; // physical address of this process's PML4 (loaded into CR3) u64 entry_point; u64 heap_base; u64 heap_size; diff --git a/src/userspace/Makefile b/src/userspace/Makefile index e501371..b7861b0 100644 --- a/src/userspace/Makefile +++ b/src/userspace/Makefile @@ -1,13 +1,17 @@ all: @$(MAKE) -C libc - @$(MAKE) -C apps/hello + #@$(MAKE) -C apps/hello @$(MAKE) -C apps/system @$(MAKE) -C apps/shell + @$(MAKE) -C bin/echo + @$(MAKE) -C bin/hello clean: @$(MAKE) -C libc clean - @$(MAKE) -C apps/hello clean + #@$(MAKE) -C apps/hello clean @$(MAKE) -C apps/system clean @$(MAKE) -C apps/shell clean + @$(MAKE) -C bin/echo clean + @$(MAKE) -C bin/hello clean .PHONY: all clean diff --git a/src/userspace/apps/hello/Makefile b/src/userspace/apps/hello/Makefile deleted file mode 100644 index 6e6bcd4..0000000 --- a/src/userspace/apps/hello/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -AS := x86_64-elf-as -LD := x86_64-elf-ld -LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld - -EMX_DIR := hello.emx - -all: clean hello.elf - -hello.elf: hello.o - $(LD) $(LDFLAGS) hello.o -o hello.elf - @echo "Built hello.elf" - -$(EMX_DIR)/app.elf: hello.elf - @mkdir -p $(EMX_DIR) - cp hello.elf $(EMX_DIR)/app.elf - -hello.o: hello.S - $(AS) hello.S -o hello.o - -clean: - rm -f *.o hello.elf $(EMX_DIR)/app.elf - -.PHONY: all clean diff --git a/src/userspace/apps/hello/hello.S b/src/userspace/apps/hello/hello.S deleted file mode 100644 index 96e654b..0000000 --- a/src/userspace/apps/hello/hello.S +++ /dev/null @@ -1,23 +0,0 @@ -.section .rodata -msg: - .ascii "hello from userspace!\n" -msg_len = . - msg - -.section .text -.global _start - -_start: - # write(1, msg, msg_len) - mov $1, %rax # WRITE - mov $1, %rdi # stdout - lea msg(%rip), %rsi - mov $msg_len, %rdx - syscall - - # exit(0) - mov $60, %rax # EXIT - xor %rdi, %rdi # 0 - syscall - - # should never reach here - hlt diff --git a/src/userspace/apps/hello/hello.elf b/src/userspace/apps/hello/hello.elf deleted file mode 100755 index 477eb03c2426b81545439e11782a8fd9fb47c0dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4744 zcmeHL!AiqG5S_-RRzX@1ilB$~D20Fr!Gp+pP;&4eO4Mi%iIL3;_2d`$PsK}q!k;Mg z9%nWavJIjjc$Vt<#iDioYykAfcfws({0 zAr~8oBIc6m8l66_2#5pXfH)uyhy&t)I3Ny)1LA- - - hello.elf - - - ein_franzose - 3001.0 - does cool stuff - - diff --git a/src/userspace/apps/hello/hello.o b/src/userspace/apps/hello/hello.o deleted file mode 100644 index 711cf7eac82a86f09ecb226d63cba71aaf71908e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 944 zcmbtSO-sW-5S_F}TS2NIQt%QlUX)-D9t4qGlpOpIWviQ~zen&W z#F@=33EP061DiMVX5P$x #define BUFFER 256 +#define SHELL_PROMPT "[pc@emexos]$ " +#define BIN_PATH "/bin/" -#define SHELL_PROMPT "[pc@emexos]$" + +static int parse_args(char *buf, char **argv, int max_args) +{ + int argc = 0; + char *p = buf; + + while (*p && argc < max_args - 1) { + // skip spaces + while (*p == ' ') p++; + if (*p == '\0') break; + + argv[argc++] = p; + + // find end of token + while (*p && *p != ' ') p++; + if (*p == ' ') *p++ = '\0'; + } + + argv[argc] = NULL; + return argc; +} +static int exec_from_bin(const char *cmd, char **argv) +{ + // /bin/ + cmd + .elf + char path[BUFFER]; + char *const envp[] = { (char *)0 }; + size_t bin_len = sizeof(BIN_PATH) - 1; // length of "/bin/" + size_t cmd_len = strlen(cmd); + size_t elf_len = 4; // ".elf" + + if (bin_len + cmd_len + elf_len + 1 > BUFFER) return -1; + + memcpy(path, BIN_PATH, bin_len); + memcpy(path + bin_len, cmd, cmd_len); + memcpy(path + bin_len + cmd_len, ".elf", elf_len + 1); // +1 for \0 + + return execve(path, argv, envp); +} int main(void) { char buf[BUFFER]; + char *argv[32]; for (;;) { - write(STDOUT_FILENO, SHELL_PROMPT " ", sizeof(SHELL_PROMPT " ") - 1); + write(STDOUT_FILENO, SHELL_PROMPT, sizeof(SHELL_PROMPT) - 1); // block until newline (\n) ssize_t n = read(STDIN_FILENO, buf, sizeof(buf) - 1); @@ -24,7 +64,14 @@ int main(void) if (n > 0 && buf[n - 1] == '\n') buf[--n] = '\0'; if (n == 0) continue; - // TODO: command parser + int argc = parse_args(buf, argv, 32); + if (argc == 0) continue; + + int ret = exec_from_bin(argv[0], argv); + if (ret < 0) { + write(STDOUT_FILENO, argv[0], strlen(argv[0])); + write(STDOUT_FILENO, ": command not found\n", 20); + } } return 0; diff --git a/src/userspace/apps/shell/shell.emx/app.elf b/src/userspace/apps/shell/shell.emx/app.elf index ec5532d36e4f1bd2feeb5c79e953c41edc244afe..6bd426ecd998e824e17953a0bfd985d4db391537 100755 GIT binary patch delta 2572 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 diff --git a/src/userspace/apps/shell/shell.emx/package.info b/src/userspace/apps/shell/shell.emx/package.info index 2d12498..055ff67 100644 --- a/src/userspace/apps/shell/shell.emx/package.info +++ b/src/userspace/apps/shell/shell.emx/package.info @@ -5,6 +5,6 @@ emex v0.0.1a - esh userspace shell + emx userspace shell diff --git a/src/userspace/apps/shell/shell.o b/src/userspace/apps/shell/shell.o index 3e20440e4967446d57b6884e8e7f289b9035e209..dfa4a102714bde80d9d5dc800b43e77c4b5c2c31 100644 GIT binary patch literal 2640 zcmbtUU1%It6h5FhqdcDckbOxFS{UkVCLNU z&Ub$Az4MXz>MJQt11TDuf~_x!0*vn1T4(q&0|U?xSr)9b^8NiRn60y5W-Z9xs+mn9 zu!@O@+1T`0*=%U|*+^f8A>D6?<=i#jub9nnR130A_B9Ll{3`s`nD#S~SdiN6O?snC ze>>33`qnbd=@^Oy*+!Kor))Hvknf{{GYPB}C1x%`@TVXZc6q;`Q!h8DU z{$ZR03x4?XVXMW0?^j6G=GRd1Dr;uc%e$P93AH+hv0+v->)W^~8}YJuGj*n|u<|vH zy+rf9*mnhMX>EKidEtB=BmWr35V68V!Z1X{!hsa4WN~sLTa^XNaYC9h^<8;QB>RcQ zv6yyU4M)YZO2}Igq~InC;&ko42U7q`yRZ`Oew9u`oGP4eV1Om+p9R&cRI6+{V&&Ng z(qFEUEnFlXuUlK8%^=%{2RVRSk-j|FON61mnWtFUiL}lR>AA0Xu(0tD1{1k;g5sJ# zMK~}YlxH7+|1J(DrY&+6{6SqE!z8#L<=F;e7AapS0Q7=Ut-Xz#xTT4_+*H?U*p0+#X&V)T&wPOq0AAN(veylZ=E zxr!8S8zLMfqF3Agcia9p;V4I`HEHKa_ZLyO!C(B0tE`?5e}>19luF>dR^iwKbVD8$ z>X-PE$7@IIS$qZ`rSh)>U2q&-NB)b5@5cDQQ6nh4choeiPVrB7!NHrd^LZl&)0XSm zW0w1l2X@KMjZL~mXAHL;Jm1aR1#oO9H+_lQF52K&XnD`Q;M?HZ)&xMmsDpk8+wp1A zwMThF;CL!<-dl1e!KYuY-`M8N( zsCME?{7M2(_Pd03&7Q&&VL7%)^S_mj5oqLcA7#LdSUgNN zjhNUTNrQd3qCLs9k$7=lT*Xo0K=+oGbOuQF#tNQCO?Z#^mg9^ zN6?pIDs6)FH_(<8HU9}T5=Q@rq~t|GPbNWJOMj_H1g7TySooI|e>p!1pTH$S;mnQBati&1}gum0|KT=BP<5ER$ncL?%11u!ssVfNX?-sZg44@!_%In0@! zFid{MVaNFcDrhm;kkg#gfeFHum|VzdE@}WZa|Kil$gM1s_i}1;-hj$TPW}kg6#>;1 H2yzVoSGQ^8 diff --git a/src/userspace/apps/system/init.c b/src/userspace/apps/system/init.c index 2221e01..b6a0ac6 100644 --- a/src/userspace/apps/system/init.c +++ b/src/userspace/apps/system/init.c @@ -13,17 +13,25 @@ int main(void) printf("[ESH] launching programms:\n"); // other initializations... + rc: {}; + login: { + printf(" launching: %s\n", LOGINLOCATE); + //char *const argv[] = { (char *)LOGINLOCATE, (char *)0 }; + //char *const envp[] = { (char *)0 }; + //execve( LOGINLOCATE, argv, envp); + } + emx_shell: { - printf(" - launching shell: %s\n", EMX_SHELL); + printf(" launching: %s\n", EMX_SHELL); // launch the shell as a new process via execve char *const argv[] = { (char *)EMX_SHELL, (char *)0 }; char *const envp[] = { (char *)0 }; execve(EMX_SHELL, argv, envp); goto error; - } - + }; + goto error; error: printf("[ESH] ERROR: failed to launch %s\n", EMX_SHELL); for (;;) __asm__ volatile("pause"); diff --git a/src/userspace/apps/system/init.h b/src/userspace/apps/system/init.h index 937382f..74a4b77 100644 --- a/src/userspace/apps/system/init.h +++ b/src/userspace/apps/system/init.h @@ -1,7 +1,8 @@ #pragma once // esh will automatically load the shell after everything is finished -#define EMX_SHELL "/user/bin/shell.emx" +#define EMX_SHELL "/user/apps/shell.emx" +#define LOGINLOCATE "/emr/system/login.emx"//user/apps/login.emx" #define SEPERATOR "$SEPERATOR$" diff --git a/src/userspace/apps/system/init.o b/src/userspace/apps/system/init.o index 0b1df07ab0b20a5f0a48c946e5b4f6b7422ced20..3e289353f0e2f278a548f9a47d03b7d7f3df2425 100644 GIT binary patch delta 409 zcmX>hutRWy24lrU&A^GvMJ862O}xM|@k4}dYHpE!ablbIF=H!4BPA+APXPi9wD&uS*S;+L9F?Vt# zv%H}-0|amZDP|yUgz_DrG)z1f%J-U_$ShtT1m$r9X=GhRXu4pgl|#i@fHXT0|M?FA zH8|A6^ucVO0ae!xp*MeLE@T9H<0GT+T}V=JD~h>2t8Szg>`cdOAaH@Q8!u5CkJqFFj`EOWHV;6l(EH6w%rfVy|#?*;*Z-b!P(}2Sp=EB9LRHwc8k|Sn=|ax(VRXN$m^*a zi(JoD*_o9pSR62J>oavZ=GJU6Q<>L+>63x)_0)21Y3^jjhSl}mJy=?rO-CVd!Karzf+rp8Odn#P3P-s~o2=eX?>0ik*$l#}Qz^ z%vkZdj42pu_KEB*2-Yib(&@D1VmQ)aPLo*)r|lPUy=dew*m!oth58Yw zZmK)nR$!x*`m))D9v`Am0>3a&=GnNmbvrsH?ue?lad(j9(fnKW7no?Od*J#uQ!rwl z2TnbSom75|pEnp=FTu&q!AjGE(mQaMyS2oaRlLCCKDIX$8P?)w;v=DmHaOHj5cPy2 zuP_%MgTc{gUw9ze|A_1UcrnvPmWVcsMjT$OGYX_wkk(-U43mHL`F0&wr16 zK$}U_K)Cr~X$CGfD|k_0q1mIJD-#78MO(~+R$@gg4N{9Hy$rq66T(+6zYCMV{C@ho3PoU9Q>w2s2`Ggnbgu!!TFuw zV+0>w(?y-!XHdq@pe@I4r{Qp`q8=x;hSYJ&x(o?apSO#em86~}wI60tJwp3%fYkG( zW?>c8Q)7p7V1}c?0kHQ5AU|MTJV5D8T*=eXouk4#J?r(h0`8I z?WO(nlKKOwez=HgAMH$p)HPC9;Fd>|hC$L4Ric#^&dY>-@qV5IpQen>(}|2x1v{xF zbQX2QRpRs1Z4dE!;=j}CoapnhoA{NTVs-Bd%rxR7qN_1hIDmE%CaOe2k`ne1FQdEr zH1Yk!!!*Gm;)jT1-7b!RcsKD9MewH#j>~?A1UIdCFD3L5uc7lSG$M+^AByh&Mi|1x)Mya?dob^ zbsxGKopf=K$W(B`1d*Vmtg|f)`@v89FerW)mTfGq4q9-`34-Uod(uHKg!}IA zckVeS_r8#e$BTp6Er#N@oNs$ote)v3Sr7AJ`A&A!lFM51R_i;@%#1xdpiTXurJpLZ zaTn_-^1xEIhOyZbYs*Po-an7a*-L9|7@4*ZT{#a)tJlV5X@k8SR&>Ed>wsa!Rd{I~ zHPk*vt7W2#+SEenTH$ovQD@chQl`E+hB)u8Wx@;hcin&31&Ct;?8BCa1N%RP2>?v#Q)3j4Nt`!u|+~NHmF07--8t@>wcVblMQgw|EBZ}Ecs=;NqFH8I?vUL z1Wh~(jv#&{R>5M>*{n(faI#r;eq|Fesvg1EZk!DmH4RsryPZesg{>s}5zcnBW{?81 zbEiYtF0wbt&Ol2*-jlBr_Bz=cWS>_H{sHk*#A~RNH;9kpY{PEjki%NtWE;qyrCoWL zN4w81ayrQ7$wpw6_etl_P4)`eTd*-GJKvYY-fLAt-zMvZzM#CvZxQxKyj(tJ@WW5w zg)Defr;PnXyw5CnFY$-O8{iJsQs_KGWFL`bu!Od^M(iCX`-JQ?*i=>81)Zww{CnMf z8L%(jj~`B|^28+F$OL7ull_*u`jEJb_{{5~qKCfSM&c8%34Vd%w-7(F?wkX}4{Xrm zCs>*`w32w_6p7v=-cG!g3hX7`MI0}%gQM~n(1%w1-Jl(!G`6 z2)t$eoJv+vp!}8{BA%i|ZYpq;cr~nsy}b(w6E?0tF*+KGQce37zwiKmGFXD+ +#include + +int main(int argc, char **argv) +{ + // no args, just print newline + if (argc < 2) { + write(STDOUT_FILENO, "\n", 1); + return 0; + } + + // print each arg separated by space + for (int i = 1; i < argc; i++) { + size_t len = strlen(argv[i]); + write(STDOUT_FILENO, argv[i], len); + + if (i < argc - 1) + write(STDOUT_FILENO, " ", 1); + } + + write(STDOUT_FILENO, "\n", 1); + return 0; +} diff --git a/src/userspace/bin/echo/echo.elf b/src/userspace/bin/echo/echo.elf new file mode 100755 index 0000000000000000000000000000000000000000..c9f3f82b80d08a2d96fbbb99b283128cd2931362 GIT binary patch literal 9664 zcmeHNZERat89q+xey?^*({WVt&P-_`a_T07zb5w*o)J_(s~M)$v~SXt`Gg~ZR!aGA2hzAvj8m7mt2u>CcJsjv2@#u%ADrCv`# zT}u`wPr#GB-TU!?zgWFC`n%jv--_d5qhhp7h0Z0nhEArJL>A9~vZy1;yGocw|7(T! z0h0_34`QQ~RNF}6ow5bEE`kCBcUhe9nGqNN*O;V0u2<~mdYvCb@6sBb%HG|`S_B>} zuc)8o3ZEMoHVzJO2E#-}`zsU1%1k1y#lm6}e#SyAW9{@D2U^%gDOp7zsG&bIny_~-QWv3?zat0O2a z#j~?SptnvY?J8#p4cOV>o%j;j&IQ--235D|Nn=;B*?}$~n(0S%1*hg~`b2vh*eD*E+^bPn#P5qD$dF)i3Jrw*oMr_8!m(c^|M*wX`j3Ntumjh$(S$1>5 zW4O)OJ7`8__U@D^YmxF8K0 zC7+>^W~-Q7J`~&x9yM#rg%AUP{#9mnWq!P~JM=QkbtXAmwO3wp_)KGnMeR3}_m{~z zQ={Wv1~wE9xno$&!d7qeJ1#BFWYUu+=Xw88Wj4UcYg+M)p9^`Co$zxT&ZejEsshcA z)hfj|67!a`Q$~2%+TcBvvXRm9Q+Ip4Q-mwr<=Z!fzTJ=02$|GRc)fdwe=ud90Gaft zO6~F3n^PZRmo-GvA%}VOhmWO}4Oyf7-G-+{P2p2B(-uLn5Q4&e=qzUE9%v4y8fGZ# zOI2N`S$k9Col;}pqY(+A@yHslyX`2CbOshW*Pn4WXRV3C!=CVo8QvGld3(vj>w`&2 z%aKRD?&C-8Qhgr*FK10OTchd5oHdHqQWOk!(EvaUbVXL2l%Zo0)KDRC0&AT&rxVs1 z&*f}bZ@5L!KWSeZDa>QXUthi4M9wf-e!ZJ7M!U=fKnAa>G1lSHgA>~5#{ zBE<4%z-k0GIpZbEVeou2NiWU1SQPK3xOYzRqZD_|Dc(!*BcGUjMj>a{O=3@HjOIPCis~6 z>E-8u;4cVXC;Wuqzn9<3KPUKM!D|;9KYuLvmjrhf8GM=Gd`8osuLypYg@D$Ji}+81 zhR?jPeFvAuML)}qjVCnmr1o_5Jt@xQC8Epy|`Nw6yu+G?OVTbrTQinSYtQHH7`e-5a z8^J?@KO_2i*s!euM_;&64x4|Mr{!Mmy!qWPqrs; z(f_ZBo|_4xH448&)|cll+r5G}R;baxn;>WJ=3s`#OJ z4DeHNr>DJ*EKQDfbacm5bYFMEp>@u|EfL$FP%$Grm}qz61Y=Q0#rC(gCt%iz8a`l^ zh)3Hf?}~Nym^-{kb#=6N9iU7bfS3`{Do9UuCm0=OKqc;NsUC`waYuDV+q(#n23KPT z+Zaf@YK&^TI(dXSN=l=`l-~X2Y literal 0 HcmV?d00001 diff --git a/src/userspace/bin/echo/echo.o b/src/userspace/bin/echo/echo.o new file mode 100644 index 0000000000000000000000000000000000000000..5af7e3699c91a8a783b5c17e810175e926ca57c0 GIT binary patch literal 1624 zcmbtTL2DCH5S~qHTWce!<{(yNFG>V?SV6D~5)EtKK?H@MH{Hf9DRdLqtXRd+!-B9b zg2$dc`4hy0iejq=!Jp8J5OELn9;h?B^P1;&bJ2l)GxNarC- zeV!LjHuv?@4443odi|1FZQN|0F&8d~^Wq%s4l2nCU_7}E##-5!pPib1iN`pBIDI7F zXt{d0{H#zfO%}dvB88A#p$SaD@7=s$G4}=lif~{bojM%R_{km+E8$n(#|Ah$1_!6r z?ur(;_DTmHc`LpHJ>Oe(I$UF(^$cq5DZnYlCs5PwhP$cU(eOzP4>Vlo)59Q9^$V#B zuUKd6CpV_?nFb%n@J+_4uBx3tqW9SK?IjR++*G%fc_}#QZFL7ICWiulWm@OEv$xEA&-=I-4%p{)-qSEd6^&%sD2~f1r!X zSGs{gva|iGOt`2gqpjwr;A?2)&40iJ)tqVmQ(C^l^LkV5``rIEIVkkMP#@J_=A-#?th#dO}OkHGKW@Pz5;LUF;gR({|7iOsQUl_ literal 0 HcmV?d00001 diff --git a/src/userspace/bin/hello/Makefile b/src/userspace/bin/hello/Makefile new file mode 100644 index 0000000..3638d8d --- /dev/null +++ b/src/userspace/bin/hello/Makefile @@ -0,0 +1,28 @@ +CC := x86_64-elf-gcc +LD := x86_64-elf-ld +LIBC := ../../libc + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(LIBC)/include + +LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld + +OUT := hello.elf + +all: clean $(OUT) + +$(OUT): hello.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o hello.o $(LIBC)/build/libc.a -o $@ + +hello.o: hello.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(LIBC)/build/crt0.o $(LIBC)/build/libc.a: + $(MAKE) -C $(LIBC) + +clean: + rm -f *.o $(OUT) + +.PHONY: all clean diff --git a/src/userspace/bin/hello/hello.c b/src/userspace/bin/hello/hello.c new file mode 100644 index 0000000..97e8369 --- /dev/null +++ b/src/userspace/bin/hello/hello.c @@ -0,0 +1,7 @@ +#include + +int main(void) +{ + write(STDOUT_FILENO, "hello, world!\n", 14); + return 0; +} diff --git a/src/userspace/bin/hello/hello.elf b/src/userspace/bin/hello/hello.elf new file mode 100755 index 0000000000000000000000000000000000000000..9ad986a1c9449acd568ad8765c1805bd393cb1fe GIT binary patch literal 9504 zcmeHNdu&@*89z?rzLM5%AZw)lnX;>v)URykuXm z-K4Za-e`?iRvzLZ4JI@(CP0F}I#jea%Ag4hO&N%hg-94E!qElEh_HIl5`MpPzI%P` zCIx}`&qwt==ls6!eCKI}QD(qzCCrU5i%l~}L%KzcqS|I1Iw5rGj{vJ^Jdb3hLpgNy;m1HaT zr%o$BTC(!lqE(2NtU|14<$o0lTKQ-NK;0vMXB7 zteXgSgAf0V>Q2b;1#d8`t4h||68c^g#uz*3lpR_t?2sERE4v-G(!{dXoAh%*t!~+~ zxhhWEy%yXMI8mDW=fZ-s!=3#aGrdi2w4&_w+J%K)7>b?quao}}oX)8ycqN=!Ipa;k z`Ozzd=oN52vP>z)#RO}Q%n+q5Zj|z|Stn@aqNM;NmO^LMy`47wriXWizBm>-I|fhE z#B7U;-<~x~a-*{O5S-l@ ztmfcuNDgPasw|uQqOOswwP~^@q7^JwbI;-7F5Px~gFD=LqD_XO^JBSEcRo7reAp!( zs`5Qq%eS9=x4L|h;}5&T11BuMynDb`h|ced&W>&?L}#t9SV$OzY#bmaIwLE7Pd_yl zdOC(2asp?NLPcfMzeU6w$0w|FY88Nrb$Qxp=D>@u4mXi=be5NI8<9Bwj_2xCKab?e z_~n_<2gk2n3f-;CGnSuLO<{(1$T0F=|%Bp5K(WfgM>k^|>->ZE0^BFhWCs2?bW zfuEuZoN7YGS6EvrsJ)ZvH!0(~(hgCR#j1Faz1;>OJv&b+Rd8JVo7}pu}i1Ieq*Q8 zzXhpuU1Pbp)|DUfi42_$o6P10lkjHGxQ#;OZ3!fFcB+;I<$CM5^KQQ)lj-lAL%3Cb z%G0GoA2`@$>4S6dB)f~&J{Eh8SO=qekwFzV{ zid;tQ^ctHlJq(db(J~O^&|5;($)iD?HNN~s{__yEPFEV#a2+_!LH9nP&&b zIY_eLA2~7m%^LDA(N*`GFteKdZZZ4W-0xc+H!i)wuTq3Q8||OP5J~T}K#k)Vvq9zh z(C8pely3Y7Owei|px~leC;zG=BUg3asX@|r>aql*^&N2NQ`Mgw7#O~z^XPDTpl>5D zSl4OvNwfOPLOlz=H!X&@0dK-zNAH%uhw_fWwjQ5=TBgEl%%4_y8)n;p&-LWAH5-0c z&aL35{GEbtqY$*)@gd$XIQG}A8_&h$_bh?m2b_9#*6H~G@HS9dR~mgjfH_+)KEw|# zH~0%0#di|Hf4I!xn*~3BejVg@ha3jU|xC{fqEclBepO9vAJ?|1cj-GOUBXU?T*t&)P z8Ob+(|6pTjC;!R1xa=1ECDAiv*p<>nuPdQ4cHcniFa`%RiS6oOe=z>g*EkyIbK zG;dUQCg)g4MeBuIVP5t1@VTMfojLwYl?LDj_3J{poz2b0HA zns*>+=umL*2$gv>okSh#$~-Y>#}A{25xVbpM|SdW(wM^*ld#gnfxkGTb zbKhs~+`qSru@B4oq7?ohFq-17cjfZ^>h6u9*UB^u?fyE2>!x_eEWUonCcRvBna+FG Gum2b0wY`1- literal 0 HcmV?d00001 diff --git a/src/userspace/bin/hello/hello.o b/src/userspace/bin/hello/hello.o new file mode 100644 index 0000000000000000000000000000000000000000..940853fdec81f280b6246428f61fdd2f582de981 GIT binary patch literal 1288 zcmbtTO-sW-5S_HuR;^k;4nhUvMHD2cAgBka7Oe*n6}$*iqDCq-Eu?`~FWy9NJ^C{| ziU$=0|B2w$yHMvPJ8g_P>A>#1dHZH(cQ(1&*xrn38i{GNN}WhpqExJda~{l5n)>Kq z>-PO|fQcuN&q)0Mdcbt_TC&RJ>a1R`I_1;JUZO%izoJhUb`ECr`9)*Fn1c*9>O0ad z_epDHv}`(=YVvO5%wxbNFs%(_u4DQB?!z}$fQU96Btf68sMUDn4T<8^^-JEv%y2;O zoq;)AIrB@+gm+`(glzM?LUrfdwLBHyz3t-)!^yo9j8Xlo<(tkJhPDSfFO339BmX}DIyCF9g|O)`#aH8Py4ADmQe+p6%IC$mb$Gsm?3!+DkdH|d;?o_B|~ z$*EZSCd<$UEz1FVkPDKGOG+po3f=>hJpGu`PbogwTPzjTdf0{Q&$0k}{xyG|bFt@- zx8hjp4>Ar~xc)LPf|GlSwxYm@5Xwuw_yY65;rcg9zofi4>7T^w45IpfrwT})(f=e5 z$rnDVHuiqO#Mbm3;Xgo~a6a}8_Z}&`s=oXu;9!dO1D=O?MCIQr;a*$mgK+*gB*jd* literal 0 HcmV?d00001 diff --git a/src/userspace/libc/include/unistd.h b/src/userspace/libc/include/unistd.h index 3a7f4ec..c57e268 100644 --- a/src/userspace/libc/include/unistd.h +++ b/src/userspace/libc/include/unistd.h @@ -13,6 +13,7 @@ ssize_t write (int fd, const void *buf, size_t n); int chdir (const char *path); int mkdir (const char *path); char *getcwd (char *buf, size_t size); +int unlink(const char *path); // process pid_t getpid (void); diff --git a/src/userspace/libc/src/_syscall.h b/src/userspace/libc/src/_syscall.h index 179f64f..f8dc967 100644 --- a/src/userspace/libc/src/_syscall.h +++ b/src/userspace/libc/src/_syscall.h @@ -12,6 +12,7 @@ #define _SCAL_GETCWD 79 #define _SCAL_CHDIR 80 #define _SCAL_MKDIR 83 +#define _SCAL_UNLINK 87 // (delete file) static inline long _sc1(long n, long a1) { diff --git a/src/userspace/libc/src/unistd.c b/src/userspace/libc/src/unistd.c index e65a186..9fa8bb2 100644 --- a/src/userspace/libc/src/unistd.c +++ b/src/userspace/libc/src/unistd.c @@ -37,6 +37,10 @@ int mkdir(const char *path) { return (int)_sc1(_SCAL_MKDIR, (long)path); } +int unlink(const char *path) { + return (int)_sc1(_SCAL_UNLINK, (long)path); +} + char *getcwd(char *buf, size_t size) { long r = _sc2(_SCAL_GETCWD, (long)buf, (long)size); return (r > 0) ? buf : NULL; From 94ea2165553d14a3e564015ce1b5547fa7f09074 Mon Sep 17 00:00:00 2001 From: emexos Date: Sat, 28 Feb 2026 19:23:12 +0100 Subject: [PATCH 18/41] fs commands --- .gitignore | 1 + Makefile | 3 + dsk/initrd.cpio | Bin 249344 -> 293376 bytes dsk/rd/bin/echo.elf | Bin 9664 -> 9672 bytes dsk/rd/bin/hello.elf | Bin 9504 -> 9512 bytes dsk/rd/bin/ls.elf | Bin 0 -> 10936 bytes dsk/rd/bin/tree.elf | Bin 0 -> 11792 bytes dsk/rd/emr/system/login.elf | Bin 0 -> 10408 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 13592 -> 13560 bytes dsk/rd/emr/system/ter-powerline-v16n.psf | Bin 0 -> 9975 bytes dsk/rd/user/apps/shell.emx/app.elf | Bin 10352 -> 10360 bytes shared/types.h | 5 + shared/ui/fonts.c | 12 +- shared/ui/fonts.h | 16 +- src/kernel/file_systems/vfs/vfs.c | 27 +++ src/kernel/file_systems/vfs/vfs.h | 5 + src/kernel/packages/elf/loader.c | 5 + src/kernel/user/calls.h | 6 + src/kernel/user/jump.c | 10 +- src/kernel/user/syscalls.c | 212 +++++++++++++++---- src/kernel/user/ulime.c | 11 +- src/kernel/user/ulime.h | 3 + src/userspace/Makefile | 6 + src/userspace/apps/libc.h | 34 +-- src/userspace/apps/login/Makefile | 28 +++ src/userspace/apps/login/login.c | 76 +++++++ src/userspace/apps/login/login.elf | Bin 0 -> 10408 bytes src/userspace/apps/login/login.h | 8 + src/userspace/apps/login/login.o | Bin 0 -> 2792 bytes src/userspace/apps/shell/shell.emx/app.elf | Bin 10352 -> 10360 bytes src/userspace/apps/system/init.c | 34 ++- src/userspace/apps/system/init.h | 2 +- src/userspace/apps/system/init.o | Bin 2232 -> 2072 bytes src/userspace/apps/system/system.emx/app.elf | Bin 13592 -> 13560 bytes src/userspace/bin/echo/echo.elf | Bin 9664 -> 9672 bytes src/userspace/bin/hello/hello.elf | Bin 9504 -> 9512 bytes src/userspace/bin/ls/Makefile | 28 +++ src/userspace/bin/ls/ls.c | 36 ++++ src/userspace/bin/ls/ls.elf | Bin 0 -> 10936 bytes src/userspace/bin/ls/ls.o | Bin 0 -> 2088 bytes src/userspace/bin/tree/Makefile | 28 +++ src/userspace/bin/tree/tree.c | 89 ++++++++ src/userspace/bin/tree/tree.elf | Bin 0 -> 11792 bytes src/userspace/bin/tree/tree.o | Bin 0 -> 3496 bytes src/userspace/libc/Makefile | 2 +- src/userspace/libc/include/dirent.h | 29 +++ src/userspace/libc/include/emx/stdclr.h | 10 + src/userspace/libc/include/sys/types.h | 1 + src/userspace/libc/src/_syscall.h | 27 +-- src/userspace/libc/src/crt0.S | 6 +- src/userspace/libc/src/dirent.c | 86 ++++++++ src/userspace/libc/src/unistd.c | 4 +- 52 files changed, 721 insertions(+), 129 deletions(-) create mode 100755 dsk/rd/bin/ls.elf create mode 100755 dsk/rd/bin/tree.elf create mode 100755 dsk/rd/emr/system/login.elf create mode 100644 dsk/rd/emr/system/ter-powerline-v16n.psf create mode 100644 src/userspace/apps/login/Makefile create mode 100644 src/userspace/apps/login/login.c create mode 100755 src/userspace/apps/login/login.elf create mode 100644 src/userspace/apps/login/login.h create mode 100644 src/userspace/apps/login/login.o create mode 100644 src/userspace/bin/ls/Makefile create mode 100644 src/userspace/bin/ls/ls.c create mode 100755 src/userspace/bin/ls/ls.elf create mode 100644 src/userspace/bin/ls/ls.o create mode 100644 src/userspace/bin/tree/Makefile create mode 100644 src/userspace/bin/tree/tree.c create mode 100755 src/userspace/bin/tree/tree.elf create mode 100644 src/userspace/bin/tree/tree.o create mode 100644 src/userspace/libc/include/dirent.h create mode 100644 src/userspace/libc/include/emx/stdclr.h create mode 100644 src/userspace/libc/src/dirent.c diff --git a/.gitignore b/.gitignore index 5e2314a..f1c69d8 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ tools/png tools/bmp tools/lg.py +logo.txt src/kernel/console/functions/edit.c diff --git a/Makefile b/Makefile index 14f6831..2b060b9 100644 --- a/Makefile +++ b/Makefile @@ -65,8 +65,11 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) @mkdir -p $(DISK_DIR)/rd/emr/system @cp -r src/userspace/apps/shell/shell.emx $(DISK_DIR)/rd/user/apps/ @cp -r src/userspace/apps/system/system.emx $(DISK_DIR)/rd/emr/system + @cp src/userspace/apps/login/login.elf $(DISK_DIR)/rd/emr/system @cp src/userspace/bin/echo/echo.elf $(DISK_DIR)/rd/bin/ @cp src/userspace/bin/hello/hello.elf $(DISK_DIR)/rd/bin/ + @cp src/userspace/bin/ls/ls.elf $(DISK_DIR)/rd/bin/ + @cp src/userspace/bin/tree/tree.elf $(DISK_DIR)/rd/bin/ @echo "[MOD] creating initrd.cpio..." @chmod +x tools/initrd.sh diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 6a0584f7cfff5f1cd99a7f4554ceb2caa08ac53c..a5d7df1679c3aa4bfa34d1a92c12e62b0df71b36 100644 GIT binary patch delta 25240 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 B1PcHF delta 5022 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 W#X?aJax}}TjU7C=u_Ns4q5lFWyqFIF diff --git a/dsk/rd/bin/echo.elf b/dsk/rd/bin/echo.elf index c9f3f82b80d08a2d96fbbb99b283128cd2931362..c6706e71c1f83dbad420bea0ac870e447396ea27 100755 GIT binary patch delta 1091 zcmYL|Ur1AN6vux*-E?z`S7E!m;dVE>{v&8CC540~C0v_O5+e4L;e*vf7#dkY4T~Cc zsGJ^3f*29zgOOay5vi*OlaRvRd?|b>ODOGW55hXX{f>3up5O1B&-a|)xxc$*qASsf zdhVEPXm-w*vAnI$ou4Xqnu%7!Ob!_iC{`M{1!3g|e+kbOom%(4d*loVIr!f+i7Vbw39SWyKb-X>h zRf)lr2xQlBu}#?T;qt%hH8`y5wP*h2R8({dVe%AC;%>w3GGkjVJS+^?)n`@r?FjE= zhCPeo%%xIvo2gtbhhvXG#Oo5LbQr#Kh^#!l|2to{vze4DetEIWy*htn67FLhpc)^^cK+(m_vHkDd_^2 zI7xICHjvIz?MVsQBcfNKBA{wkp{(sDIzv>0wm^vgfkD)C&}<>nyd%vQNFi;a4mXK@ zCfWmQNO$RUaXZ2`@DX=-33yP|4$%#dHcE7tXcGF6ZgNRa5G}#C z7oGRPB+>-cirq-*rPK3U4@i7rC0TGhtr%c?{}L&`)q3dsG9_8SURJ@L`WsUe`y4PeSxG!V33*CT7q(j zq94JmA2LK7Qkjrj5i|NAq+dc%tDuPn1%3EKTIcK@lMcM^dCz&y*L&~Xo;SuDhqp^H zQeI`8$QK!T7VW%kHdLf5enFn4Tt=YM((4}27rvN8o|-lZ(eGcCA^&QPf4TSC40&fG zQ*SLZO073nh(JiOlNyNkY@Mcxi=S~rZ!UTJ<1!FbR&z3*pQy|a#N~Lm3;7p#S>$Y) zTl4i;19QrKv`F+qeR#sadz2mYuPha!agz+a>UBDXlmS%hRnI|<>MU*h=TkAFfdYq` zaT04S9uq<=nXuVTxTucRjwlFm_@Y^A9LvKk6;7wqIQCgWA%6<{nFIYFzTprlEZ0tM zoF@>nw!*REGRH1-P+n&0B{QaAs8Xb7uRwH@I`y=8zrlfZE^e%2pDKXX~#wM4%8!E z%=^Fp38tgah4iD)>0wGlIgg8SvmuPM+o;ox879Oa(@QXqbWG8ypXm*zV<26s?F{!_ zyVoew38-+X(gF=G&GwZmT;K|iIpzS2V1)&PULTmgV5-3rqzC!dPNoY?f5UgA$8+>t z2mKUKQn=_|JHYK$Z4Y@iYlaE&gK0LjAic_OjGi({HrAlrPtb=HbA04|O&f}t=^#Xr zp5m$Y=}>HA+73yib^NZqOg&6rL4ilLJ<8H6?`GP8n)+UWdZZ`$S?y(7$+;SIc~sdv r74*E9_|MSk)r=7yA_8G=m2r}-2}pYD@S}8>)X8Bug8Mv#OUnKNSS#=K diff --git a/dsk/rd/bin/hello.elf b/dsk/rd/bin/hello.elf index 9ad986a1c9449acd568ad8765c1805bd393cb1fe..65d14b28c0101a0fcf2390b9fd3ea9bd4ea1fb8f 100755 GIT binary patch delta 1124 zcmYL|T}TvB6vyvfo!a#ycV)+Mba%&P2R}&Es0{nED0NgK#oWxNjDie%5bZ%ILbjJ- zGn7*heUK7G1YshCM%h}hJ_OZL5YdAvWgEU2^&mymx!$8)*n7|Y|NiIPGk0c(8}2m> z7W0!sCEHxyOtvyA#yYQMg{A$%LT0onMBt z?z~W627013Nh=b|vLc_BEF0sfa!kl}&9W6$55uIph;N2Dx9ZR{VA!XE;dO%Qso+yk z>uKZ1$8UKiQrxXeSZCR?KtmaQ~OeLpT)kJyD+Zvnb0VIkjW&RNyYsMd^;SIW=qGK?PG=p**h^FIxh+E2o??^`}w}q%i^c4hyn*M~kTD|`O(Hqc=w1nQ8pK?ox z&O<-a&-AV}q7_81z!=g&$~B1YBKlx_E;!2__+Nh>Doax`<&!CX_!X*j<J zeoz!WB#9aHB0@=l&4)BH0v~!v0uzE1A2KMZknDRrKaIL<=XcKU^ZR~(=UmPmsJUNr zvrHt@TPj`d9Bt((8$5g0>nvX`UnGx_pS9$n662IeQ_3g^U+`#JqB}mD=*V~z9Um7G zU6^<4jWXR8|B>i6>uJO&E!d6(e%i2focBV4QhgIrWE9$z@2e2c=#cNENDlS+h8-SA zyT)GZM)B-pYB7sM4@Nutm`t3PQ&)qW*8W~zrgUK*O`C?O9a=C)^?hwZZb?5U!_`c? zf2HNzCzK=GAhR7Af#!!*T^zytM7xq{D+aHmFNMK6Yc9nD0X7rz;q0+#f@f{sn5Slbkdan1VsZ? z_D)T!2G&aDfXBjLXb#PwR3IvHX)s{fRZdkCU8&Htt%zBuYNnaMLAy9d(e+FZAm)O4 zC{|?I$!tX*Fg?!nIkkf3v)0Kp$#ju=L1X&Aduw6(izY#{*!c`=FETw%B52ufgwk$g z+R1c^%0XXkP&Cf;7E_IyKqvk?uiU#l(OXIfEzwMmf>AritsE|~!wA>hqpxuI=~9%K zPB5*dP_bqA^SOddr`Bj4=rwjO;%hO-^a!Ouy{t7^`<-c+20;frs&740Cp_fN9W(<9 zO|=B8eGR7l&gB3A diff --git a/dsk/rd/bin/ls.elf b/dsk/rd/bin/ls.elf new file mode 100755 index 0000000000000000000000000000000000000000..794879766d915ae3e745f0259852e1c988c90638 GIT binary patch literal 10936 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 literal 0 HcmV?d00001 diff --git a/dsk/rd/bin/tree.elf b/dsk/rd/bin/tree.elf new file mode 100755 index 0000000000000000000000000000000000000000..8c8dbffbf48f071b4dad0cecc4f28a02cb9aaf0c GIT binary patch literal 11792 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 literal 0 HcmV?d00001 diff --git a/dsk/rd/emr/system/system.emx/app.elf b/dsk/rd/emr/system/system.emx/app.elf index 84b23a710d5452aa02c6f0e7adc00d0b68c76c65..e0ed6e7bdb1702f81f2e3967295409af39be6fba 100755 GIT binary patch delta 931 zcmYL|Ur1AN6vyvRz11w+H0RiCTQzgKx!tXqqZ&Dj;Z;NXgB4j6->x&s%@+K}QuI8m`(VND$xy387HRFuywaz&GB% zYT*;EbQEsLw5Ovg#wnaDW0>hz7|pyzGet`ZgFEnC!nH(Y^vhI4zmW5x&ILZ?TH*t9 zGc+$$Y!+BhK~#2)$YN_UZ$SxDiHCy}ObG8{_javH$P)CZ)nqG-sk_KHtf*BwZwXco zx&+=Im-7DQG#|h?$X=jwz?J2L@($2w^a>*i*c6lNFD1nzh_a<{QPWPQ;icw0>5dg? zrwV1AY0PD5b4L&tKEnHb8WMo-X!~G`PE*wOcYPhK)#c#ONl9Dmgl?8S+FwAsV7sXs zi~DxxZb^QnQwQ00s`}#u?>nC79O$Hz%)|Kb9?YAetyX(#=Z5B!^9gp1&{rk4n;gXm z!4!%-4wWjy%@?}KSN%l8Ao~H`|EkmQrdC`1Y*SMp5vE}1Bz7Vn!*GsaQrqz|-&4au z;)e!919%KIa?U+?n;RM#8g>tI1Gjp5Z<^f$*CB1FC_db^f9O&%?F(3=kuXqev`4}+ zxMGYF8T>Ie6Av`iy&w-DS;r9{C`}xhhZa*axeF1Kofu)>q$mB5F+Cwx7&SL5o%oGu zJqtCsKI2oy5XKHGW{xaEDaVmJ(1i9XcsYe~N}lKM=V)Yc49ZL4IWj+CkyDUKNOGKV zydqEfMbaUXrC_xvS_aDV*;X;zDrQwoUVkj=9UJu(dHsy2pA~g8L@bxdG00dr@*DPA z6(k)yWNj=UZWysOk_mWi<0KnHIw51TOYpaI(kdRX);Hn{^P+Xa1ln21)a(BN8m$2p delta 1053 zcmY+DT}YE*6vv-uxp00kKbmWrb0(!uw|8@5&ip)LkpR1jqpEHqMxGKlOvd*`A9JLfsS^FQbL;N9L(^m@2X zbkq=0x8#K@NZKA&z&(R}DeRF(!qRbG|5d-Q|B;eljSnSKxl%&D_wk|6d~jP8kCqeT z3hPSUFCZkokWKGk`ZR%Q{9Tq!Ft+z@}O1CBS6*wv@X)8=t_R~e!tSqmI6yn%vQ;H9+ zO8MZ29X^EXY4I4tA=4f|EgJ@IoVd_tsF7IIYH}xaL>#I&a%Q89kEHmLuH=aZ`kIQvJw(@baIml6; zqPL(;-2zT^<9NTRm%ps?2W-B;klUfvYV(MIoVF47z#uY}$2aWo*<3DvTOQ%;E+6N= z;SbndoO9SQ{%589p1w2)+mn=BTyrA>9s2Jh91 z+YLG}Hbkir-ZXU5FjO}_pm$-Tk)vMth5k9zYdUEZyqZ>83-g*<>VTwXmTJJJ?NnIt zGh(l&V-D>t{z?cX23XT_^d;<~_dzws(JRoy$rZ~oK|h{WqZS{B>GNR%HQ!)~lha4A z!EuVIGC>*4D9>b+g;1=MpB+3RRJ$_Ou1r-%1P&Q)KA0~TIQztyozHMJcy(84J0x`+ z-36+b)9si--yxzlxMb*{n=ohKBnOwYLekJG!9To_jR-?=a|b?H4|*#^&~HMrx%MyZ Cr6u(M diff --git a/dsk/rd/emr/system/ter-powerline-v16n.psf b/dsk/rd/emr/system/ter-powerline-v16n.psf new file mode 100644 index 0000000000000000000000000000000000000000..13a44896846cf2821bc74957cc3a25f34997a9b5 GIT binary patch literal 9975 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 F@IOy3wEqAA literal 0 HcmV?d00001 diff --git a/dsk/rd/user/apps/shell.emx/app.elf b/dsk/rd/user/apps/shell.emx/app.elf index 6bd426ecd998e824e17953a0bfd985d4db391537..b225746d0fef8c6e83a33f8c8bc52aff8194b651 100755 GIT binary patch delta 1133 zcmYL}T}TvB6vywi9d**$ouzel7G-91+u6w4dXlBcJ}^e5TnUXH0xeAJ$w+%BD8!VO zP09{E=#vJaMlZ5qKBTS)hP_lEVGu&F^kwBn4;d2Mxz5Qh?74IPzyCS++!@$RY%O*- z%qRPIRmffs+gRn}ZG&#vP8l2=h8>a#F`Z0a~B3Q zzCqEBSFNphFsOEA%;)G*=!ca9)FrbHcEu{2TXtG>TZWL<) z#ttK6iz49KfxjHa*>`9*BCuq5V8}4I7iJBW8}QbMXqjzJg|*>l>;zS)V45mF4pB3r zl}e817?!~TGpvzRX0qPJWdKq_xZDC;;H`VGzqQyk7Q?2fHdhRB@hxDcGj_xD< zHtBv)N>weo)u9iG4ibF?N03eyICP3Tc!cOOTtd1`wRKcGL39j;k*4X64MgXN*1+r1 z2rmO(rfOGdwg`FNk;e`Dk+x8W8$`bny#>uk_t0!-h^`YIf_|juUC!jk!#()%>kzqegMv=h3J=Fm4P zq1vNFS799K6n$BhXf@FX@E&O!)#^kWiS{OyomugJpjZ((O{O$dTNSe3<6P4VajTO1 RVF6wTn=|7 zvKSc-^2f>A2Aj>nR)>GI>$=@im#DxRenYdgGGANg za3_W|is1?ir!Z+I!Yd0-+)Rj#bbT(CgVrY){<_|WZq2*p(x04)6=y`@Py{=1oy6q? zV+$pCSUZer4|oQSxZTwwR^b)Sp|#zNe^|uxa;Us4(s;Bv=!(NtcYq&-aktA7#x!^; zwA5Gk9!odk#KibcY&Q4sS3W=a>X4cEXvV)3nTdW>N*ob*XieNEaL=0fu)wW|!BwEzepQ<^_BsU~x z2QU^e&O#9K8QcTCSkt>s*4(9<9*j<`xdL~P>JCXQM9&g^3t6OY`@iQ85S;>ErD_|= zxr4Mov>xh^j+97k8PVHBQ*aFFbfKhSqK}A9LlWt||L*mI=zDlsrScF=R~cGmk#y)M zhj&!d2fk`mD<*%@lNjPDi(7X>6zK)Jmv@yh_Kj!|Vn}b0b0wF!0He@$z$nrj_2wdN z8PR%}MVhwBt_~9Q5G@DAuWGYg(rx5iOY|9pklv!Mnn>G3bQpU5>fTeOQtKz$Nc1Q5 z0H diff --git a/shared/types.h b/shared/types.h index fa6411b..44c85c4 100644 --- a/shared/types.h +++ b/shared/types.h @@ -1,6 +1,11 @@ #ifndef TYPES_H #define TYPES_H +/* + * THIS IS ONLY THE KLIBC TYPES.H NOT FOR USERSPACE + * +*/ + typedef unsigned char u8; typedef unsigned short u16, USHORT; typedef unsigned int u32; diff --git a/shared/ui/fonts.c b/shared/ui/fonts.c index 88f8d57..12eec72 100644 --- a/shared/ui/fonts.c +++ b/shared/ui/fonts.c @@ -10,7 +10,7 @@ // font registery const font_t font_registry[FONT_COUNT] = { - [FONT_8X12_BOLD] = { + /*[FONT_8X12_BOLD] = { .name = "8x12_BOLD", .data = &font_8x12_bold, .char_width = 8, @@ -29,7 +29,7 @@ const font_t font_registry[FONT_COUNT] = { .lsb_left = 1, .glyph_count = 2048, .unicode_direct = 1 - }, + },*/ [FONT_8X8_BOLD] = { .name = "8x8_BOLD", .data = &font_8x8_bold, @@ -40,7 +40,7 @@ const font_t font_registry[FONT_COUNT] = { .glyph_count = 256, .unicode_direct = 0 }, - [FONT_8X16] = { + /*[FONT_8X16] = { .name = "8x16", .data = &font_8x16, .char_width = 8, @@ -59,7 +59,7 @@ const font_t font_registry[FONT_COUNT] = { .lsb_left = 0, .glyph_count = 256, .unicode_direct = 0 - }, + },*/ [FONT_8X8] = { .name = "8x8", .data = &font_8x8, @@ -70,7 +70,7 @@ const font_t font_registry[FONT_COUNT] = { .glyph_count = 256, .unicode_direct = 0 }, - [FONT_16X32] = { + /*[FONT_16X32] = { .name = "16x32", .data = &font_16x32, .char_width = 16, @@ -79,7 +79,7 @@ const font_t font_registry[FONT_COUNT] = { .lsb_left = 0, .glyph_count = 256, .unicode_direct = 0 - }/*, + }*//*, [GOHUFONT] = { .name = "gohufont", .data = &gohufont_8x16, diff --git a/shared/ui/fonts.h b/shared/ui/fonts.h index 30bcdf4..0b5a8c8 100644 --- a/shared/ui/fonts.h +++ b/shared/ui/fonts.h @@ -3,15 +3,15 @@ #include typedef enum { - FONT_8X12_BOLD = 0, - FONT_8X12 = 1, - FONT_8X8_BOLD = 2, - FONT_8X8 = 3, - FONT_8X16 = 4, - FONT_8X16_BOLD = 5, - FONT_16X32 = 6, + //FONT_8X12_BOLD = 0, + //FONT_8X12 = 1, + FONT_8X8_BOLD = 0, + FONT_8X8 = 1, + //FONT_8X16 = 4, + //FONT_8X16_BOLD = 5, + //FONT_16X32 = 6, //GOHUFONT = 7, - FONT_COUNT = 7//8 + FONT_COUNT = 2//8 } font_type_t; typedef struct { const char *name; diff --git a/src/kernel/file_systems/vfs/vfs.c b/src/kernel/file_systems/vfs/vfs.c index 248f359..3fad51c 100644 --- a/src/kernel/file_systems/vfs/vfs.c +++ b/src/kernel/file_systems/vfs/vfs.c @@ -196,6 +196,33 @@ int fs_addchild(fs_node *parent, fs_node *child) { return 0; } +int fs_listdir(const char *path, _emx_kdirent_t *buf, int max_entries) { + fs_node *node = fs_resolve(path); + if (!node || node->type != FS_DIR) return -1; + + int count = 0; + fs_node *child = node->children; + + while (child && count < max_entries) { + buf[count].type = child->type; + // FS_FILE=0x01 + // FS_DIR=0x02 + // FS_DEV=0x04 + + // copy name safely + int i = 0; + while (i < 63 && child->name[i]) { + buf[count].name[i] = child->name[i]; + i++; + } + buf[count].name[i] = '\0'; + + count++; + child = child->next; + } + + return count; +} // // main init diff --git a/src/kernel/file_systems/vfs/vfs.h b/src/kernel/file_systems/vfs/vfs.h index 55718ac..025251e 100644 --- a/src/kernel/file_systems/vfs/vfs.h +++ b/src/kernel/file_systems/vfs/vfs.h @@ -58,6 +58,10 @@ struct fs_file { u64 pos; u32 flags; }; +typedef struct { + u8 type; + char name[64]; +} _emx_kdirent_t; // operations struct fs_ops { @@ -116,6 +120,7 @@ int fs_close(int fd); ssize_t fs_read(int fd, void *buf, size_t cnt); ssize_t fs_write(int fd, const void *buf, size_t cnt); int fs_mkdir(const char *path); +int fs_listdir(const char *path, _emx_kdirent_t *buf, int max_entries); // global klime pointer (shared by all fs types) extern void *fs_klime; diff --git a/src/kernel/packages/elf/loader.c b/src/kernel/packages/elf/loader.c index dc485f8..7537f05 100644 --- a/src/kernel/packages/elf/loader.c +++ b/src/kernel/packages/elf/loader.c @@ -126,6 +126,11 @@ int elf_load(ulime_proc_t *proc, u8 *elf_data, u64 size) { proc->entry_point = ehdr->entry + load_offset; proc->state = PROC_READY; + u64 code_end = proc->heap_base + (max_vaddr - min_vaddr); + proc->brk = (code_end + 0xFFFULL) & ~0xFFFULL; // round up to next page + printf("[ELF] Program break set to 0x%lX (code ends at 0x%lX)\n", + proc->brk, code_end); + // if the ELF was relocated it also maps the original VMA into the process PML4 // so that absolute addresses baked into the binary still work at runtime if (load_offset != 0) { diff --git a/src/kernel/user/calls.h b/src/kernel/user/calls.h index 6a9162c..1b80fa7 100644 --- a/src/kernel/user/calls.h +++ b/src/kernel/user/calls.h @@ -36,10 +36,13 @@ #define VFORK 58 #define EXECVE 59 + #define GETDENTS 78 // list directory entries (path, buf, max) #define CHDIR 80 #define MKDIR 83 #define FCHDIR 133 + #define UNLINK 87 // delete file + #elif ARM64 == 1 #define EXIT 93 @@ -67,10 +70,13 @@ #define VFORK 221 #define EXECVE 221 + #define GETDENTS 78 // list directory #define CHDIR 49 #define MKDIR 80 #define FCHDIR 50 + #define UNLINK 87 // delete file + #endif diff --git a/src/kernel/user/jump.c b/src/kernel/user/jump.c index 7619dda..c0ccad4 100644 --- a/src/kernel/user/jump.c +++ b/src/kernel/user/jump.c @@ -15,7 +15,15 @@ void JumpToUserspace(ulime_proc_t *proc) { //gdt_set_kernel_stack(kernel_stack); u64 user_rip = proc->entry_point; - u64 user_rsp = (proc->stack_base + proc->stack_size - 16) & ~0xFULL; // 16-byte aligned + + // use entry_rsp if it was set by execve argv + u64 user_rsp; + if (proc->entry_rsp != 0) { + user_rsp = proc->entry_rsp; + } else { + user_rsp = (proc->stack_base + proc->stack_size - 16) & ~0xFULL; // 16-byte aligned + } + u64 user_rflags = 0x202; // IF=1 , reserved bit 1 set u16 user_cs = USER_CODE_SELECTOR | 3; // RPL=3 diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index 928e07d..9678518 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -41,7 +41,7 @@ extern u64 user_r15; extern void resume_parent_sysret(u64 rip,u64 rsp,u64 r11,u64 cr3,u64 rbx,u64 rbp,u64 r12,u64 r13,u64 r14,u64 r15); // full saved context of the blocked parent -static ulime_proc_t *blocked_parent = NULL; +static ulime_proc_t *blocked_parent = NULL; static u64 blocked_parent_rip = 0; static u64 blocked_parent_rsp = 0; static u64 blocked_parent_cr3 = 0; @@ -61,27 +61,83 @@ static ulime_proc_t *find_proc_by_cr3(ulime_t *u, u64 cr3) { return NULL; } +static u32 ansi_fg_color = SCWRITE; +static u32 ansi_code_to_color(int code) { + switch (code) { + case 0: return 0xFFFFFFFF; // reset (white) + case 30: return 0xFF111111; // black + case 31: return 0xFFFF5555; // red + case 32: return 0xFF55FF55; // green + case 33: return 0xFFFFFF55; // yellow + case 34: return 0xFF5555FF; // blue + case 35: return 0xFFFF55FF; // magenta + case 36: return 0xFF55FFFF; // cyan + case 37: return 0xFFFFFFFF; // white + case 90: return 0xFF888888; // gray + case 91: return 0xFFFF8888; // bright red + case 92: return 0xFF88FF88; // bright green + case 93: return 0xFFFFFF88; // bright yellow + case 94: return 0xFF8888FF; // bright blue + case 95: return 0xFFFF88FF; // bright magenta + case 96: return 0xFF88FFFF; // bright cyan + case 97: return 0xFFFFFFFF; // bright white + default: return 0xFFFFFFFF; + } +} + +typedef enum { + ANSI_STATE_NORMAL = 0, + ANSI_STATE_ESC,// saw \033 + ANSI_STATE_CSI,// saw \033[ +} ansi_state_t; + +static ansi_state_t ansi_state = ANSI_STATE_NORMAL; +static int ansi_param = 0; + +static void ansi_write_char(char c) { + char tmp[2] = {c, '\0'}; + switch (ansi_state) { + case ANSI_STATE_NORMAL: + if (c == '\033') { ansi_state = ANSI_STATE_ESC; } + else { cprintf(tmp, ansi_fg_color); } + break; + case ANSI_STATE_ESC: + if (c == '[') { ansi_state = ANSI_STATE_CSI; ansi_param = 0; } + else { cprintf("\033", ansi_fg_color); cprintf(tmp, ansi_fg_color); + ansi_state = ANSI_STATE_NORMAL; } + break; + case ANSI_STATE_CSI: + if (c >= '0' && c <= '9') { + ansi_param = ansi_param * 10 + (c - '0'); + } else if (c == 'm') { + ansi_fg_color = ansi_code_to_color(ansi_param); + ansi_param = 0; + ansi_state = ANSI_STATE_NORMAL; + } else if (c == ';') { + ansi_fg_color = ansi_code_to_color(ansi_param); + ansi_param = 0; + } else { + ansi_param = 0; + ansi_state = ANSI_STATE_NORMAL; + } + break; + } +} // syscall handlers u64 scall_write(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { (void)proc; if (fd != 1 && fd != 2) return (u64)-1; - // validate buf is in userspace range (basic sanity check) + // validate buf is in userspace range if (buf == 0 || buf > 0x0000800000000000ULL) return (u64)-1; const char *str = (const char *)buf; // write each char to screen using console output for (u64 i = 0; i < count; i++) { - char tmp[2]; - tmp[0] = str[i]; - tmp[1] = '\0'; - cprintf(tmp, SCWRITE); // white - //TODO: - // we need a tty which handles this + ansi_write_char(str[i]); } - return count; } @@ -128,16 +184,55 @@ u64 scall_exit(ulime_proc_t *proc, u64 exit_code, u64 arg2, u64 arg3) { } g_ulime->ptr_proc_curr = NULL; - while(1) { __asm__ volatile("cli; hlt"); } - return 0; } -u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { - (void)arg2; +static void setup_argv_on_stack(ulime_proc_t *new_proc, char **user_argv, int argc) { + if (argc <= 0 || !user_argv) return; + + u64 hhdm = g_ulime->hpr->offset; + u64 pstack = new_proc->phys_stack; + u64 ssize = new_proc->stack_size; + u64 sbase = new_proc->stack_base; + + u64 str_p_phys = pstack + ssize; + u64 str_p_virt = sbase + ssize; + + u64 str_vaddrs[32]; + + for (int i = argc - 1; i >= 0; i--) { + const char *s = user_argv[i]; + u64 len = 0; + while (s[len]) len++; + len++; + + str_p_phys -= len; + str_p_virt -= len; + + char *dst = (char *)(hhdm + str_p_phys); + for (u64 j = 0; j < len; j++) dst[j] = s[j]; + str_vaddrs[i] = str_p_virt; + } + + str_p_virt = str_p_virt & ~7ULL; + str_p_phys = pstack + (str_p_virt - sbase); + + u64 ptrsec = (u64)(1 + argc + 1) * 8; + u64 rsp_phys = (str_p_phys - ptrsec) & ~0xFULL; + u64 rsp_virt = sbase + (rsp_phys - pstack); + + u64 *p = (u64 *)(hhdm + rsp_phys); + *p++ = (u64)argc; + for (int i = 0; i < argc; i++) *p++ = str_vaddrs[i]; + *p = 0; + + new_proc->entry_rsp = rsp_virt; +} + +u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 argv_ptr, u64 arg3) { (void)arg3; if (path_ptr == 0 || path_ptr > 0x0000800000000000ULL) return (u64)-1; @@ -205,9 +300,14 @@ u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { } } - // save full caller state - // use user_cr3 - blocked_parent = caller; + if (argv_ptr && argv_ptr < 0x0000800000000000ULL) { + char **user_argv = (char **)argv_ptr; + int argc = 0; + while (argc < 31 && user_argv[argc]) argc++; + setup_argv_on_stack(new_proc, user_argv, argc); + } + + blocked_parent = caller; blocked_parent_rip = user_rcx; blocked_parent_rsp = user_rsp; blocked_parent_r11 = user_r11; @@ -261,15 +361,14 @@ u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { if (c == '\n' || c == '\r') { char nl[2] = {'\n', '\0'}; - cprintf(nl, 0xFFFFFFFF); + cprintf(nl, SCWRITE); out[i++] = '\n'; break; } - if (c == '\b') { if (i > 0) { i--; - cprintf("\b", 0xFFFFFFFF); + cprintf("\b", SCWRITE); } continue; } @@ -277,7 +376,7 @@ u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { if (c < 0x20 || c > 0x7E) continue; char echo[2] = {c, '\0'}; - cprintf(echo, 0xFFFFFFFF); + cprintf(echo, SCWRITE); out[i++] = c; } @@ -289,56 +388,77 @@ u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { } u64 scall_getpid(ulime_proc_t *proc, u64 arg1, u64 arg2, u64 arg3) { - (void)arg1; - (void)arg2; - (void)arg3; - + (void)arg1; (void)arg2; (void)arg3; return proc->pid; } u64 scall_brk(ulime_proc_t *proc, u64 addr, u64 arg2, u64 arg3) { - (void)arg2; - (void)arg3; + (void)arg2; (void)arg3; + + if (addr == 0) return proc->brk; - if (addr == 0) { - return proc->heap_base + proc->heap_size; - } - u64 new_size = addr - proc->heap_base; - if (new_size > proc->heap_size) { - proc->heap_size = new_size; + u64 heap_end = proc->heap_base + proc->heap_size; + if (addr > heap_end) { + printf("[SYSCALL] brk: OOM — 0x%lX > heap end 0x%lX\n", addr, heap_end); + return proc->brk; } - return proc->heap_base + proc->heap_size; + if (addr < proc->heap_base) return proc->brk; + + proc->brk = addr; + return proc->brk; +} + +u64 scall_open(ulime_proc_t *proc, u64 path_ptr, u64 flags, u64 arg3) { + (void)proc; (void)arg3; + if (!path_ptr || path_ptr > 0x0000800000000000ULL) return (u64)-1; + int fd = fs_open((const char *)path_ptr, (int)flags); + return (fd < 0) ? (u64)-1 : (u64)fd; +} + +u64 scall_close(ulime_proc_t *proc, u64 fd, u64 arg2, u64 arg3) { + (void)proc; (void)arg2; (void)arg3; + return (u64)fs_close((int)fd); +} + +u64 scall_getdents(ulime_proc_t *proc, u64 path_ptr, u64 buf_ptr, u64 max_entries) { + (void)proc; + if (!path_ptr || !buf_ptr || path_ptr > 0x0000800000000000ULL) return (u64)-1; + int n = fs_listdir((const char *)path_ptr, (_emx_kdirent_t *)buf_ptr, (int)max_entries); + return (n < 0) ? (u64)-1 : (u64)n; } -void _init_syscalls_table(ulime_t *ulime) { - if (!ulime) return; +void _init_syscalls_table(ulime_t *ulime_ptr) { + if (!ulime_ptr) return; - g_ulime = ulime; - memset(ulime->syscalls, 0, sizeof(ulime->syscalls)); + g_ulime = ulime_ptr; + memset(ulime_ptr->syscalls, 0, sizeof(ulime_ptr->syscalls)); - ulime->syscalls[READ] = scall_read; - ulime->syscalls[WRITE] = scall_write; + ulime_ptr->syscalls[READ] = scall_read; + ulime_ptr->syscalls[WRITE] = scall_write; //ulime->syscalls[READ] = scall_read; - ulime->syscalls[GETPID] = scall_getpid; - ulime->syscalls[BRK] = scall_brk; - ulime->syscalls[EXIT] = scall_exit; - ulime->syscalls[EXECVE] = scall_execve; + ulime_ptr->syscalls[OPEN] = scall_open; + ulime_ptr->syscalls[CLOSE] = scall_close; + ulime_ptr->syscalls[GETPID] = scall_getpid; + ulime_ptr->syscalls[BRK] = scall_brk; + ulime_ptr->syscalls[EXIT] = scall_exit; + ulime_ptr->syscalls[EXECVE] = scall_execve; + ulime_ptr->syscalls[GETDENTS] = scall_getdents; log("[SYSCALL]", "syscall table initialized\n", d); } -// syscall handler (called from assembly) +// syscall handler (called from assembly) uses find_proc_by_cr3 u64 syscall_handler(u64 syscall_num, u64 arg1, u64 arg2, u64 arg3) { if (!g_ulime) { printf("[SYSCALL] error: ulime not initialized\n"); return (u64)-1; } - ulime_proc_t *current = g_ulime->ptr_proc_curr; + ulime_proc_t *current = find_proc_by_cr3(g_ulime, user_cr3); if (!current) { - printf("[SYSCALL] error: no current process\n"); + printf("[SYSCALL] error: no process for CR3 0x%lX\n", user_cr3); return (u64)-1; } diff --git a/src/kernel/user/ulime.c b/src/kernel/user/ulime.c index 261ce16..3f72bb1 100644 --- a/src/kernel/user/ulime.c +++ b/src/kernel/user/ulime.c @@ -80,14 +80,11 @@ ulime_proc_t *ulime_proc_create(ulime_t *ulime, u8 *name, u64 entry_point) { proc->state = PROC_CREATED; proc->entry_point = entry_point; - // align alocations - proc->heap_size = 64 * 1024; // 64KB : CODE/DATA - proc->heap_base = (ulime->user_space_used + 0xFFF) & ~0xFFF; // align to 4KB + proc->heap_size = 256 * 1024; + proc->heap_base = (ulime->user_space_used + 0xFFF) & ~0xFFF; ulime->user_space_used = proc->heap_base + proc->heap_size; - - // stack separate from code / heap - proc->stack_size = 16 * 1024; // 16KB - proc->stack_base = (ulime->user_space_used + 0xFFF) & ~0xFFF; // align to 4KB + proc->stack_size = 64 * 1024; + proc->stack_base = (ulime->user_space_used + 0xFFF) & ~0xFFF; ulime->user_space_used = proc->stack_base + proc->stack_size; printf("[ULIME] Process '%s' created:\n", proc->name); diff --git a/src/kernel/user/ulime.h b/src/kernel/user/ulime.h index f47174c..5b92ab1 100644 --- a/src/kernel/user/ulime.h +++ b/src/kernel/user/ulime.h @@ -29,6 +29,9 @@ typedef struct ulime_proc { u64 phys_heap; u64 phys_stack; + u64 brk; + u64 entry_rsp; + struct ulime *ulime; struct ulime_proc *next; struct ulime_proc *prev; diff --git a/src/userspace/Makefile b/src/userspace/Makefile index b7861b0..c5c6868 100644 --- a/src/userspace/Makefile +++ b/src/userspace/Makefile @@ -3,15 +3,21 @@ all: #@$(MAKE) -C apps/hello @$(MAKE) -C apps/system @$(MAKE) -C apps/shell + @$(MAKE) -C apps/login @$(MAKE) -C bin/echo @$(MAKE) -C bin/hello + @$(MAKE) -C bin/ls + @$(MAKE) -C bin/tree clean: @$(MAKE) -C libc clean #@$(MAKE) -C apps/hello clean @$(MAKE) -C apps/system clean @$(MAKE) -C apps/shell clean + @$(MAKE) -C apps/login clean @$(MAKE) -C bin/echo clean @$(MAKE) -C bin/hello clean + @$(MAKE) -C bin/ls clean + @$(MAKE) -C bin/tree clean .PHONY: all clean diff --git a/src/userspace/apps/libc.h b/src/userspace/apps/libc.h index 5366491..fd45a31 100644 --- a/src/userspace/apps/libc.h +++ b/src/userspace/apps/libc.h @@ -1,35 +1,5 @@ #pragma once - +/* typedef unsigned long size_t; typedef long ssize_t; - -static inline size_t syscall3(size_t n, size_t a1, size_t a2, size_t a3) { - size_t ret; - __asm__ volatile("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), "d"(a3) : "rcx", "r11", "memory"); - return ret; -} - -static inline size_t syscall1(size_t n, size_t a1) { - size_t ret; - __asm__ volatile("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory"); - return ret; -} - -static inline ssize_t write(int fd, const void *buf, size_t count) { - return (ssize_t)syscall3(1, (size_t)fd, (size_t)buf, (size_t)count); -} - -static inline void exit(int status) { - syscall1(60, (size_t)status); - __builtin_unreachable(); -} - -static inline size_t strlen(const char *s) { - size_t len = 0; - while (s[len]) len++; - return len; -} - -static inline void print(const char *s) { - write(1, s, strlen(s)); -} +*/ diff --git a/src/userspace/apps/login/Makefile b/src/userspace/apps/login/Makefile new file mode 100644 index 0000000..3522831 --- /dev/null +++ b/src/userspace/apps/login/Makefile @@ -0,0 +1,28 @@ +CC := x86_64-elf-gcc +LD := x86_64-elf-ld +LIBC := ../../libc + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(LIBC)/include + +LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld + +OUT := login.elf + +all: clean $(OUT) + +$(OUT): login.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o login.o $(LIBC)/build/libc.a -o $@ + +login.o: login.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(LIBC)/build/crt0.o $(LIBC)/build/libc.a: + $(MAKE) -C $(LIBC) + +clean: + rm -f *.o $(OUT) + +.PHONY: all clean diff --git a/src/userspace/apps/login/login.c b/src/userspace/apps/login/login.c new file mode 100644 index 0000000..9c97380 --- /dev/null +++ b/src/userspace/apps/login/login.c @@ -0,0 +1,76 @@ +#include +#include + +#include "login.h" + +//TODO: +// implement password hashing + +static void print_str(const char *s) { + size_t len = strlen(s); + write(STDOUT_FILENO, s, len); +} +static int str_eq(const char *a, const char *b) { + while (*a && *b) { + if (*a != *b) return 0; + a++; b++; + } + return (*a == '\0' && *b == '\0'); +} +static void strip_nl(char *buf, int len) { + for (int i = 0; i < len; i++) { + if (buf[i] == '\n' || buf[i] == '\r') { + buf[i] = '\0'; + return; + } + } +} + +int main(void) +{ + char user_buf[BUF_SIZE]; + char pass_buf[BUF_SIZE]; + + print_str("\n"); + print_str("----------------------\n"); + print_str(" [emexOS login]\n"); + + for (int attempt = 0; attempt < MAX_TRIES; attempt++) + { + print_str("\033[34m login: "); + ssize_t n = read(STDIN_FILENO, user_buf, BUF_SIZE - 1); + if (n <= 0) continue; + user_buf[n] = '\0'; + strip_nl(user_buf, (int)n); + + print_str("\033[34m password: "); + ssize_t m = read(STDIN_FILENO, pass_buf, BUF_SIZE - 1); + if (m <= 0) continue; + pass_buf[m] = '\0'; + strip_nl(pass_buf, (int)m); + + if (str_eq(user_buf, LOGIN_USER) && str_eq(pass_buf, LOGIN_PASS)) + { + print_str("\033[0m----------------------\n"); + print_str("\n\033[36mwelcome, "); + print_str(user_buf); + print_str("!\n"); + print_str("\033[0m"); + + // launch the shell + //char *const argv[] = { (char *)SHELL_PATH, (char *)0 }; + //char *const envp[] = { (char *)0 }; + //execve(SHELL_PATH, argv, envp); + + //should not return + //print_str("error: failed to launch shell\n"); + return 0; + } + + print_str("\033[0m[login incorrect]\n"); + } + print_str("\033[0m----------------------\n"); + print_str("\033[0m\ntoo many failed attempts\n"); + + return 2; +} diff --git a/src/userspace/apps/login/login.elf b/src/userspace/apps/login/login.elf new file mode 100755 index 0000000000000000000000000000000000000000..342a9397aeb9e0f141597b81096b41bf5ce527a9 GIT binary patch literal 10408 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 literal 0 HcmV?d00001 diff --git a/src/userspace/apps/login/login.h b/src/userspace/apps/login/login.h new file mode 100644 index 0000000..fe0f37e --- /dev/null +++ b/src/userspace/apps/login/login.h @@ -0,0 +1,8 @@ +#pragma once + +#define LOGIN_USER "emex" +#define LOGIN_PASS "emex" +#define SHELL_PATH "/user/apps/shell.emx" +#define MAX_TRIES 3 +#define BUF_SIZE 64 +#define LHASH zumotokaari diff --git a/src/userspace/apps/login/login.o b/src/userspace/apps/login/login.o new file mode 100644 index 0000000000000000000000000000000000000000..0f7f3b656b279b147231de75c8cfea1e7069a0ed GIT binary patch literal 2792 zcmbuBPiz!b9LL}67K%%8m&!q@hcQhQm2O%Eg_ht-vvy*LM4_i@+F?7`#hu+cJDV15 z6|zOMHYIy8@n#b*O}uy_gcxYRv~aQqkJGiEugw;opO@B98t*Vo~qzhvI~z0dFO zyf-tupJq?L5i<;?#9$}c_DWI4g3fI{!_^GyVtd)BRr}4VJ~XY`d|)kR1FN6vb>>wMw(mOJ1AF>nWO=$?NRc9l!Gik~B_P)$FE0L(>p0 zY+=>kE8P}WE9)VxbZ^tn8>rUU#dCz^c#E~lgY|5S=RUcZZCSYu3JWY_gUX&r_y=~d zeUuqEXg1@)6g!XHw{Y09q{Ks?Dp0M8{YAt0~ zZoWow*d`v2f%dOyRp*;5d98`%(&!3qkUFIfpw;dmu=X=H{NR=<=<jGT?zxM2#ir%_wS;&1nY~G1T)7R*O@(Y z)-06X&llfIu%5A(kGNtrXv)>JT`td*yh#G^Cfe^t=Icwa1SNRIopB1elIt8c*)vGl z@A6@c7cuk2T*>pCoKNM1z$4+8N~UWUFPRtYe8HJCZQpm?X}?TPBg4ak=An_dMxQqa zj;3Eq_sh5gayCAChZ(aeqo=ELPo18hr-|c&9KrDVXTn z<%|A!+4mS-gNm1|G4yDd4zwU`M)Xs>9Dz| z{uSS^@iWrDN8=wzKA`cBB_GoGCz7AmcvbR?8dr6FjW0`oQ_e6;7fv!7SI_N)#?^Cs zS>x(?W9jlG*SF8p?0aIKQkv%!?6mL9`Yb(Z`!-9TFPB-`D~Sbtja;WlHtyz3jbHF= z*O6uZ_heEA9BKPAhol({Bn$1EL2G&Z+=iitE<95iy4vNkd}Y6r0r(z3#WN3iQcUbw zn!)38t)?Hex{B-d50e2o|7-jJ#UiI(?w$nv=ZWk}RR3y?_XY9lyRP`>vLSr$+C}xR z<`FVR)nAtJU$qC5uGc?BENcJz<^Q?~8IS!3Qt@j4qiQ4M7?P6gk&WWLj*3TKeeV&M bk>@{%MVqMmR%kydQSo)z|J%w@&U*Ymm3H2j literal 0 HcmV?d00001 diff --git a/src/userspace/apps/shell/shell.emx/app.elf b/src/userspace/apps/shell/shell.emx/app.elf index 6bd426ecd998e824e17953a0bfd985d4db391537..b225746d0fef8c6e83a33f8c8bc52aff8194b651 100755 GIT binary patch delta 1133 zcmYL}T}TvB6vywi9d**$ouzel7G-91+u6w4dXlBcJ}^e5TnUXH0xeAJ$w+%BD8!VO zP09{E=#vJaMlZ5qKBTS)hP_lEVGu&F^kwBn4;d2Mxz5Qh?74IPzyCS++!@$RY%O*- z%qRPIRmffs+gRn}ZG&#vP8l2=h8>a#F`Z0a~B3Q zzCqEBSFNphFsOEA%;)G*=!ca9)FrbHcEu{2TXtG>TZWL<) z#ttK6iz49KfxjHa*>`9*BCuq5V8}4I7iJBW8}QbMXqjzJg|*>l>;zS)V45mF4pB3r zl}e817?!~TGpvzRX0qPJWdKq_xZDC;;H`VGzqQyk7Q?2fHdhRB@hxDcGj_xD< zHtBv)N>weo)u9iG4ibF?N03eyICP3Tc!cOOTtd1`wRKcGL39j;k*4X64MgXN*1+r1 z2rmO(rfOGdwg`FNk;e`Dk+x8W8$`bny#>uk_t0!-h^`YIf_|juUC!jk!#()%>kzqegMv=h3J=Fm4P zq1vNFS799K6n$BhXf@FX@E&O!)#^kWiS{OyomugJpjZ((O{O$dTNSe3<6P4VajTO1 RVF6wTn=|7 zvKSc-^2f>A2Aj>nR)>GI>$=@im#DxRenYdgGGANg za3_W|is1?ir!Z+I!Yd0-+)Rj#bbT(CgVrY){<_|WZq2*p(x04)6=y`@Py{=1oy6q? zV+$pCSUZer4|oQSxZTwwR^b)Sp|#zNe^|uxa;Us4(s;Bv=!(NtcYq&-aktA7#x!^; zwA5Gk9!odk#KibcY&Q4sS3W=a>X4cEXvV)3nTdW>N*ob*XieNEaL=0fu)wW|!BwEzepQ<^_BsU~x z2QU^e&O#9K8QcTCSkt>s*4(9<9*j<`xdL~P>JCXQM9&g^3t6OY`@iQ85S;>ErD_|= zxr4Mov>xh^j+97k8PVHBQ*aFFbfKhSqK}A9LlWt||L*mI=zDlsrScF=R~cGmk#y)M zhj&!d2fk`mD<*%@lNjPDi(7X>6zK)Jmv@yh_Kj!|Vn}b0b0wF!0He@$z$nrj_2wdN z8PR%}MVhwBt_~9Q5G@DAuWGYg(rx5iOY|9pklv!Mnn>G3bQpU5>fTeOQtKz$Nc1Q5 z0H diff --git a/src/userspace/apps/system/init.c b/src/userspace/apps/system/init.c index b6a0ac6..2da1262 100644 --- a/src/userspace/apps/system/init.c +++ b/src/userspace/apps/system/init.c @@ -9,26 +9,42 @@ const char* handlers[] = EMRHANDLERS; int main(void) { - printf("[ESH] starting...\n"); - printf("[ESH] launching programms:\n"); + //printf("[ESH] starting...\n"); + //printf("[ESH] launching programms:\n"); // other initializations... - rc: {}; + rc: { + //TODO: + // create file .emxrc + // content: exec emx_window_system + // dir: /emr/system/ + }; + //clear login: { - printf(" launching: %s\n", LOGINLOCATE); - //char *const argv[] = { (char *)LOGINLOCATE, (char *)0 }; - //char *const envp[] = { (char *)0 }; - //execve( LOGINLOCATE, argv, envp); - } + //printf(" launching: %s\n", LOGINLOCATE); + char *const argv[] = { (char *)LOGINLOCATE, (char *)0 }; + char *const envp[] = { (char *)0 }; + execve( LOGINLOCATE, argv, envp); + // + // load .emxrc and look for login.elf location + // + }; emx_shell: { - printf(" launching: %s\n", EMX_SHELL); + //printf(" launching: %s\n", EMX_SHELL); + //printf(" \n"); + printf(":[%s]\n", EMX_SHELL); // launch the shell as a new process via execve char *const argv[] = { (char *)EMX_SHELL, (char *)0 }; char *const envp[] = { (char *)0 }; execve(EMX_SHELL, argv, envp); + + // + // load .emxrc and switch to ws + // and initialise de + wm + // goto error; }; goto error; diff --git a/src/userspace/apps/system/init.h b/src/userspace/apps/system/init.h index 74a4b77..b5d35fc 100644 --- a/src/userspace/apps/system/init.h +++ b/src/userspace/apps/system/init.h @@ -2,7 +2,7 @@ // esh will automatically load the shell after everything is finished #define EMX_SHELL "/user/apps/shell.emx" -#define LOGINLOCATE "/emr/system/login.emx"//user/apps/login.emx" +#define LOGINLOCATE "/emr/system/login.elf"//user/apps/login.emx" #define SEPERATOR "$SEPERATOR$" diff --git a/src/userspace/apps/system/init.o b/src/userspace/apps/system/init.o index 3e289353f0e2f278a548f9a47d03b7d7f3df2425..20fc01406493ca12ae0d592f6c41a9a185d6d72b 100644 GIT binary patch delta 506 zcmdlXI74892Gb3eiCVIZ1{3=n6+Di+-e3R%ApHPJUjWm+p%*-QU2jZW7e1MTQNvU} zHMdB=xU#q;HCI0;KRq)~FEuBPLBF&(wMaj)prBa4I3qPDM=v$Eg25_UwK$dwWXR;X zjPZ>$w~0*jaGZF`Y~o+-`e@f+k64A` zlEk8t%)E3xJv}Z4h)_;qX-Bd8mtsli-9Uji&KmA6AKE8^@}r7b8^568K8!{1_k*CSt+C?PR?iaWt=>D zFXL<=8Oh`;Tu_vmSCYn%T9KMumI`t<1Lx$6Oyc#zU^W8-3y@|5;y?c(Kmsbx1*DmQ z*c!@Lg3{>f)uG}r_2E#y4w`r_ly3&1>oF{bSp+kv5vsufO2foq26;in(H#^773T)h zAP>OIDT0ba%mK>6B+4fnGK<^RphzQRVX9!(&w#4yhSFf`H=kwBW&{SfC965-4t*}9pi<`8`->x&s%@+K}QuI8m`(VND$xy387HRFuywaz&GB% zYT*;EbQEsLw5Ovg#wnaDW0>hz7|pyzGet`ZgFEnC!nH(Y^vhI4zmW5x&ILZ?TH*t9 zGc+$$Y!+BhK~#2)$YN_UZ$SxDiHCy}ObG8{_javH$P)CZ)nqG-sk_KHtf*BwZwXco zx&+=Im-7DQG#|h?$X=jwz?J2L@($2w^a>*i*c6lNFD1nzh_a<{QPWPQ;icw0>5dg? zrwV1AY0PD5b4L&tKEnHb8WMo-X!~G`PE*wOcYPhK)#c#ONl9Dmgl?8S+FwAsV7sXs zi~DxxZb^QnQwQ00s`}#u?>nC79O$Hz%)|Kb9?YAetyX(#=Z5B!^9gp1&{rk4n;gXm z!4!%-4wWjy%@?}KSN%l8Ao~H`|EkmQrdC`1Y*SMp5vE}1Bz7Vn!*GsaQrqz|-&4au z;)e!919%KIa?U+?n;RM#8g>tI1Gjp5Z<^f$*CB1FC_db^f9O&%?F(3=kuXqev`4}+ zxMGYF8T>Ie6Av`iy&w-DS;r9{C`}xhhZa*axeF1Kofu)>q$mB5F+Cwx7&SL5o%oGu zJqtCsKI2oy5XKHGW{xaEDaVmJ(1i9XcsYe~N}lKM=V)Yc49ZL4IWj+CkyDUKNOGKV zydqEfMbaUXrC_xvS_aDV*;X;zDrQwoUVkj=9UJu(dHsy2pA~g8L@bxdG00dr@*DPA z6(k)yWNj=UZWysOk_mWi<0KnHIw51TOYpaI(kdRX);Hn{^P+Xa1ln21)a(BN8m$2p delta 1053 zcmY+DT}YE*6vv-uxp00kKbmWrb0(!uw|8@5&ip)LkpR1jqpEHqMxGKlOvd*`A9JLfsS^FQbL;N9L(^m@2X zbkq=0x8#K@NZKA&z&(R}DeRF(!qRbG|5d-Q|B;eljSnSKxl%&D_wk|6d~jP8kCqeT z3hPSUFCZkokWKGk`ZR%Q{9Tq!Ft+z@}O1CBS6*wv@X)8=t_R~e!tSqmI6yn%vQ;H9+ zO8MZ29X^EXY4I4tA=4f|EgJ@IoVd_tsF7IIYH}xaL>#I&a%Q89kEHmLuH=aZ`kIQvJw(@baIml6; zqPL(;-2zT^<9NTRm%ps?2W-B;klUfvYV(MIoVF47z#uY}$2aWo*<3DvTOQ%;E+6N= z;SbndoO9SQ{%589p1w2)+mn=BTyrA>9s2Jh91 z+YLG}Hbkir-ZXU5FjO}_pm$-Tk)vMth5k9zYdUEZyqZ>83-g*<>VTwXmTJJJ?NnIt zGh(l&V-D>t{z?cX23XT_^d;<~_dzws(JRoy$rZ~oK|h{WqZS{B>GNR%HQ!)~lha4A z!EuVIGC>*4D9>b+g;1=MpB+3RRJ$_Ou1r-%1P&Q)KA0~TIQztyozHMJcy(84J0x`+ z-36+b)9si--yxzlxMb*{n=ohKBnOwYLekJG!9To_jR-?=a|b?H4|*#^&~HMrx%MyZ Cr6u(M diff --git a/src/userspace/bin/echo/echo.elf b/src/userspace/bin/echo/echo.elf index c9f3f82b80d08a2d96fbbb99b283128cd2931362..c6706e71c1f83dbad420bea0ac870e447396ea27 100755 GIT binary patch delta 1091 zcmYL|Ur1AN6vux*-E?z`S7E!m;dVE>{v&8CC540~C0v_O5+e4L;e*vf7#dkY4T~Cc zsGJ^3f*29zgOOay5vi*OlaRvRd?|b>ODOGW55hXX{f>3up5O1B&-a|)xxc$*qASsf zdhVEPXm-w*vAnI$ou4Xqnu%7!Ob!_iC{`M{1!3g|e+kbOom%(4d*loVIr!f+i7Vbw39SWyKb-X>h zRf)lr2xQlBu}#?T;qt%hH8`y5wP*h2R8({dVe%AC;%>w3GGkjVJS+^?)n`@r?FjE= zhCPeo%%xIvo2gtbhhvXG#Oo5LbQr#Kh^#!l|2to{vze4DetEIWy*htn67FLhpc)^^cK+(m_vHkDd_^2 zI7xICHjvIz?MVsQBcfNKBA{wkp{(sDIzv>0wm^vgfkD)C&}<>nyd%vQNFi;a4mXK@ zCfWmQNO$RUaXZ2`@DX=-33yP|4$%#dHcE7tXcGF6ZgNRa5G}#C z7oGRPB+>-cirq-*rPK3U4@i7rC0TGhtr%c?{}L&`)q3dsG9_8SURJ@L`WsUe`y4PeSxG!V33*CT7q(j zq94JmA2LK7Qkjrj5i|NAq+dc%tDuPn1%3EKTIcK@lMcM^dCz&y*L&~Xo;SuDhqp^H zQeI`8$QK!T7VW%kHdLf5enFn4Tt=YM((4}27rvN8o|-lZ(eGcCA^&QPf4TSC40&fG zQ*SLZO073nh(JiOlNyNkY@Mcxi=S~rZ!UTJ<1!FbR&z3*pQy|a#N~Lm3;7p#S>$Y) zTl4i;19QrKv`F+qeR#sadz2mYuPha!agz+a>UBDXlmS%hRnI|<>MU*h=TkAFfdYq` zaT04S9uq<=nXuVTxTucRjwlFm_@Y^A9LvKk6;7wqIQCgWA%6<{nFIYFzTprlEZ0tM zoF@>nw!*REGRH1-P+n&0B{QaAs8Xb7uRwH@I`y=8zrlfZE^e%2pDKXX~#wM4%8!E z%=^Fp38tgah4iD)>0wGlIgg8SvmuPM+o;ox879Oa(@QXqbWG8ypXm*zV<26s?F{!_ zyVoew38-+X(gF=G&GwZmT;K|iIpzS2V1)&PULTmgV5-3rqzC!dPNoY?f5UgA$8+>t z2mKUKQn=_|JHYK$Z4Y@iYlaE&gK0LjAic_OjGi({HrAlrPtb=HbA04|O&f}t=^#Xr zp5m$Y=}>HA+73yib^NZqOg&6rL4ilLJ<8H6?`GP8n)+UWdZZ`$S?y(7$+;SIc~sdv r74*E9_|MSk)r=7yA_8G=m2r}-2}pYD@S}8>)X8Bug8Mv#OUnKNSS#=K diff --git a/src/userspace/bin/hello/hello.elf b/src/userspace/bin/hello/hello.elf index 9ad986a1c9449acd568ad8765c1805bd393cb1fe..65d14b28c0101a0fcf2390b9fd3ea9bd4ea1fb8f 100755 GIT binary patch delta 1124 zcmYL|T}TvB6vyvfo!a#ycV)+Mba%&P2R}&Es0{nED0NgK#oWxNjDie%5bZ%ILbjJ- zGn7*heUK7G1YshCM%h}hJ_OZL5YdAvWgEU2^&mymx!$8)*n7|Y|NiIPGk0c(8}2m> z7W0!sCEHxyOtvyA#yYQMg{A$%LT0onMBt z?z~W627013Nh=b|vLc_BEF0sfa!kl}&9W6$55uIph;N2Dx9ZR{VA!XE;dO%Qso+yk z>uKZ1$8UKiQrxXeSZCR?KtmaQ~OeLpT)kJyD+Zvnb0VIkjW&RNyYsMd^;SIW=qGK?PG=p**h^FIxh+E2o??^`}w}q%i^c4hyn*M~kTD|`O(Hqc=w1nQ8pK?ox z&O<-a&-AV}q7_81z!=g&$~B1YBKlx_E;!2__+Nh>Doax`<&!CX_!X*j<J zeoz!WB#9aHB0@=l&4)BH0v~!v0uzE1A2KMZknDRrKaIL<=XcKU^ZR~(=UmPmsJUNr zvrHt@TPj`d9Bt((8$5g0>nvX`UnGx_pS9$n662IeQ_3g^U+`#JqB}mD=*V~z9Um7G zU6^<4jWXR8|B>i6>uJO&E!d6(e%i2focBV4QhgIrWE9$z@2e2c=#cNENDlS+h8-SA zyT)GZM)B-pYB7sM4@Nutm`t3PQ&)qW*8W~zrgUK*O`C?O9a=C)^?hwZZb?5U!_`c? zf2HNzCzK=GAhR7Af#!!*T^zytM7xq{D+aHmFNMK6Yc9nD0X7rz;q0+#f@f{sn5Slbkdan1VsZ? z_D)T!2G&aDfXBjLXb#PwR3IvHX)s{fRZdkCU8&Htt%zBuYNnaMLAy9d(e+FZAm)O4 zC{|?I$!tX*Fg?!nIkkf3v)0Kp$#ju=L1X&Aduw6(izY#{*!c`=FETw%B52ufgwk$g z+R1c^%0XXkP&Cf;7E_IyKqvk?uiU#l(OXIfEzwMmf>AritsE|~!wA>hqpxuI=~9%K zPB5*dP_bqA^SOddr`Bj4=rwjO;%hO-^a!Ouy{t7^`<-c+20;frs&740Cp_fN9W(<9 zO|=B8eGR7l&gB3A diff --git a/src/userspace/bin/ls/Makefile b/src/userspace/bin/ls/Makefile new file mode 100644 index 0000000..d8ba6ff --- /dev/null +++ b/src/userspace/bin/ls/Makefile @@ -0,0 +1,28 @@ +CC := x86_64-elf-gcc +LD := x86_64-elf-ld +LIBC := ../../libc + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(LIBC)/include + +LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld + +OUT := ls.elf + +all: clean $(OUT) + +$(OUT): ls.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o ls.o $(LIBC)/build/libc.a -o $@ + +ls.o: ls.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(LIBC)/build/crt0.o $(LIBC)/build/libc.a: + $(MAKE) -C $(LIBC) + +clean: + rm -f *.o $(OUT) + +.PHONY: all clean diff --git a/src/userspace/bin/ls/ls.c b/src/userspace/bin/ls/ls.c new file mode 100644 index 0000000..66cc37b --- /dev/null +++ b/src/userspace/bin/ls/ls.c @@ -0,0 +1,36 @@ +#include +#include +#include + +static void print_str(const char *s) { + write(STDOUT_FILENO, s, strlen(s)); +} + +int main(int argc, char **argv) +{ + const char *path = (argc > 1) ? argv[1] : "/"; + + DIR *dir = opendir(path); + if (!dir) { + print_str("ls: cannot open '"); + print_str(path); + print_str("'\n"); + return 1; + } + + struct dirent *ent; + while ((ent = readdir(dir)) != NULL) { + if (ent->d_type == DT_DIR) { + write(STDOUT_FILENO, "\033[34m", 5); // blue for dirs + print_str(ent->d_name); + print_str("/"); + write(STDOUT_FILENO, "\033[0m", 4); + } else { + print_str(ent->d_name); + } + print_str("\n"); + } + + closedir(dir); + return 0; +} diff --git a/src/userspace/bin/ls/ls.elf b/src/userspace/bin/ls/ls.elf new file mode 100755 index 0000000000000000000000000000000000000000..794879766d915ae3e745f0259852e1c988c90638 GIT binary patch literal 10936 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 literal 0 HcmV?d00001 diff --git a/src/userspace/bin/ls/ls.o b/src/userspace/bin/ls/ls.o new file mode 100644 index 0000000000000000000000000000000000000000..267cd42bb08a982ec0227db45404061f26a74a93 GIT binary patch literal 2088 zcmbtU&r1|>6o0d8x~b`^L4gHJL|VwWS`nGVmTk@+FTRv z;X-apE6f%1xh>^M2RjzE#YjLaM9Vt?Z6jK?GyIh;x~t`LyVUvo728%}FFmVND)P!X zmL2pyOUt-&`!#>qUh4c1=^kyGyRw27KJlSiNw91A&pjx6sG6gXrIn_7@13CAU#a^4 z{B2jVTWcO!b0seKF*|Wk)wGQJH`fL!nH>qm^>jL8g)*~7I@Cvft<-zx^qCZY!zpSd z8Xp@Q3H6U(pF9~FI;#$=VGccrcqZl1O;Q$uN^g5hV2Rs3!Wa%{5T8pO!56-<1I_o= z*~77o0%rD~^Y4s{6pTiGEb-3=H@iyp(3feJ_oBvW)=Z?WsjOuZpQMqdc{5=dl+qJv!nURpCYgpl z4IWQsvIYd3Y8eX_snfcplN!rrNi{Q$63?VkMw)H5 zn=vzW*VI#nbIbpKL!1IFV)t%}2<4pUU)nq>^|Apoi%18-C;W~uAp$T{h+NcJtEE*2Wa7e)Oyq@&>8_&=Q)6RZFL literal 0 HcmV?d00001 diff --git a/src/userspace/bin/tree/Makefile b/src/userspace/bin/tree/Makefile new file mode 100644 index 0000000..c6d1565 --- /dev/null +++ b/src/userspace/bin/tree/Makefile @@ -0,0 +1,28 @@ +CC := x86_64-elf-gcc +LD := x86_64-elf-ld +LIBC := ../../libc + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(LIBC)/include + +LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld + +OUT := tree.elf + +all: clean $(OUT) + +$(OUT): tree.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o tree.o $(LIBC)/build/libc.a -o $@ + +tree.o: tree.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(LIBC)/build/crt0.o $(LIBC)/build/libc.a: + $(MAKE) -C $(LIBC) + +clean: + rm -f *.o $(OUT) + +.PHONY: all clean diff --git a/src/userspace/bin/tree/tree.c b/src/userspace/bin/tree/tree.c new file mode 100644 index 0000000..383ef3f --- /dev/null +++ b/src/userspace/bin/tree/tree.c @@ -0,0 +1,89 @@ +#include +#include +#include + +#define MAX_DEPTH 8 +#define MAX_ENTRIES 64 +#define MAX_PATH 256 + +#define SYM_VERT "| " +#define SYM_TEE "+-- " +#define SYM_LAST "`-- " +#define SYM_EMPTY " " + +static void print_str(const char *s) { + write(STDOUT_FILENO, s, strlen(s)); +} + +static int has_more[MAX_DEPTH + 1]; + +static void print_prefix(int depth, int is_last) { + for (int i = 0; i < depth; i++) + print_str(has_more[i] ? SYM_VERT : SYM_EMPTY); + print_str(is_last ? SYM_LAST : SYM_TEE); +} +typedef struct { + unsigned char type; + char name[64]; +} _snap_t; + +static void tree_recurse(const char *path, int depth) { + if (depth > MAX_DEPTH) return; + + DIR *dir = opendir(path); + if (!dir) return; + + _snap_t snap[MAX_ENTRIES]; + int total = 0; + + struct dirent *ent; + while (total < MAX_ENTRIES && (ent = readdir(dir)) != NULL) { + snap[total].type = ent->d_type; + // copy only first 63 chars of name (safe for 8.3 + ext paths) + strncpy(snap[total].name, ent->d_name, 63); + snap[total].name[63] = '\0'; + total++; + } + + closedir(dir); + + for (int i = 0; i < total; i++) { + int is_last = (i == total - 1); + has_more[depth] = !is_last; + print_prefix(depth, is_last); + + if (snap[i].type == DT_DIR) { + write(STDOUT_FILENO, "\033[36m", 5); // cyan + print_str(snap[i].name); + print_str("/"); + write(STDOUT_FILENO, "\033[0m", 4); + print_str("\n"); + + char child[MAX_PATH]; + size_t plen = strlen(path); + size_t nlen = strlen(snap[i].name); + if (plen + nlen + 2 <= MAX_PATH) { + memcpy(child, path, plen); + if (plen > 0 && child[plen - 1] != '/') child[plen++] = '/'; + memcpy(child + plen, snap[i].name, nlen + 1); + tree_recurse(child, depth + 1); + } + } else { + print_str(snap[i].name); + print_str("\n"); + } + } +} + +int main(int argc, char **argv) +{ + const char *path = (argc > 1) ? argv[1] : "/"; + + write(STDOUT_FILENO, "\033[36m", 5); + print_str(path); + write(STDOUT_FILENO, "\033[0m", 4); + print_str("\n"); + + tree_recurse(path, 0); + return 0; +} diff --git a/src/userspace/bin/tree/tree.elf b/src/userspace/bin/tree/tree.elf new file mode 100755 index 0000000000000000000000000000000000000000..8c8dbffbf48f071b4dad0cecc4f28a02cb9aaf0c GIT binary patch literal 11792 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 literal 0 HcmV?d00001 diff --git a/src/userspace/libc/Makefile b/src/userspace/libc/Makefile index e0e44ef..6730091 100644 --- a/src/userspace/libc/Makefile +++ b/src/userspace/libc/Makefile @@ -8,7 +8,7 @@ CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ -I$(INC) -Isrc -SRCS := src/errno.c src/string.c src/stdlib.c src/unistd.c src/fcntl.c src/stdio.c +SRCS := src/errno.c src/string.c src/stdlib.c src/unistd.c src/fcntl.c src/stdio.c src/dirent.c OBJS := $(patsubst src/%.c, $(BLD)/%.o, $(SRCS)) all: $(BLD)/libc.a $(BLD)/crt0.o diff --git a/src/userspace/libc/include/dirent.h b/src/userspace/libc/include/dirent.h new file mode 100644 index 0000000..89337de --- /dev/null +++ b/src/userspace/libc/include/dirent.h @@ -0,0 +1,29 @@ +#pragma once +#include + +// d_type values (POSIX / same as Linux) +#define DT_UNKNOWN 0 +#define DT_FIFO 1 +#define DT_CHR 2 // character device +#define DT_DIR 4 // directory +#define DT_BLK 6 // block device +#define DT_REG 8 // regular file +#define DT_LNK 10 // symbolic link +#define DT_SOCK 12 // socket +#define DT_WHT 14 // whiteout + +struct dirent { + ino_t d_ino; + off_t d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[256];// null-terminated filename +}; +typedef struct __dir DIR; + +DIR *opendir (const char *path); +struct dirent *readdir (DIR *dirp); +int closedir(DIR *dirp); + +// rewind to beginning +void rewinddir(DIR *dirp); diff --git a/src/userspace/libc/include/emx/stdclr.h b/src/userspace/libc/include/emx/stdclr.h new file mode 100644 index 0000000..2af0190 --- /dev/null +++ b/src/userspace/libc/include/emx/stdclr.h @@ -0,0 +1,10 @@ +// console colors (only in supported shells) +//ansi: \esc[color +#define A_GFX_RED "\033[31m" +#define A_GFX_GREEN "\033[32m" +#define A_GFX_YELLOW "\033[33m" +#define A_GFX_BLUE "\033[34m" +#define A_GFX_MAGENTA "\033[35m" +#define A_GFX_CYAN "\033[36m" +#define A_GFX_WHITE "\033[37m" +#define A_GFX_RESET "\033[0m" diff --git a/src/userspace/libc/include/sys/types.h b/src/userspace/libc/include/sys/types.h index 6ce3694..34a484d 100644 --- a/src/userspace/libc/include/sys/types.h +++ b/src/userspace/libc/include/sys/types.h @@ -3,6 +3,7 @@ typedef long ssize_t; typedef int pid_t; typedef long off_t; +typedef unsigned long ino_t; // inode num typedef unsigned int mode_t; typedef unsigned int uid_t; typedef unsigned int gid_t; diff --git a/src/userspace/libc/src/_syscall.h b/src/userspace/libc/src/_syscall.h index f8dc967..e7d9007 100644 --- a/src/userspace/libc/src/_syscall.h +++ b/src/userspace/libc/src/_syscall.h @@ -1,18 +1,19 @@ #pragma once -#define _SCAL_READ 0 -#define _SCAL_WRITE 1 -#define _SCAL_OPEN 2 -#define _SCAL_CLOSE 3 -#define _SCAL_BRK 12 -#define _SCAL_GETPID 39 -#define _SCAL_FORK 57 -#define _SCAL_EXECVE 59 -#define _SCAL_EXIT 60 -#define _SCAL_GETCWD 79 -#define _SCAL_CHDIR 80 -#define _SCAL_MKDIR 83 -#define _SCAL_UNLINK 87 // (delete file) +#define _SCAL_READ 0 +#define _SCAL_WRITE 1 +#define _SCAL_OPEN 2 +#define _SCAL_CLOSE 3 +#define _SCAL_BRK 12 +#define _SCAL_GETPID 39 +#define _SCAL_FORK 57 +#define _SCAL_EXECVE 59 +#define _SCAL_EXIT 60 +#define _SCAL_GETDENTS 78 // list directory entries (path, buf, max) +#define _SCAL_GETCWD 79 +#define _SCAL_CHDIR 80 +#define _SCAL_MKDIR 83 +#define _SCAL_UNLINK 87 // (delete file) static inline long _sc1(long n, long a1) { diff --git a/src/userspace/libc/src/crt0.S b/src/userspace/libc/src/crt0.S index d86b3cc..52cb5bd 100644 --- a/src/userspace/libc/src/crt0.S +++ b/src/userspace/libc/src/crt0.S @@ -3,9 +3,9 @@ _start: - xor %rbp, %rbp - xor %edi, %edi - xor %esi, %esi + xor %rbp, %rbp // clear frame pointer (ABI requirement) + mov (%rsp), %rdi // argc == *rsp + lea 8(%rsp), %rsi // argv == rsp+8 call main mov %rax, %rdi call exit diff --git a/src/userspace/libc/src/dirent.c b/src/userspace/libc/src/dirent.c new file mode 100644 index 0000000..2c847fe --- /dev/null +++ b/src/userspace/libc/src/dirent.c @@ -0,0 +1,86 @@ +#include +#include +#include +#include +#include "_syscall.h" + +// entry written by scall_getdents (matches _emx_kdirent_t) +typedef struct { + unsigned char _type; + char _name[64]; +} _kdirent_t; + +// max entries per directory read +// kept small so the stack buffer stays 4KB +#define _KDIRENT_MAX 64 + +static unsigned char _ktype_to_dt(unsigned char ktype) { + switch (ktype) { + case 0x01: return DT_REG; + case 0x02: return DT_DIR; + case 0x04: return DT_CHR; + default: return DT_UNKNOWN; + } +} + +struct __dir { + struct dirent *_entries; + int _count; + int _pos; +}; + +DIR *opendir(const char *path) +{ + if (!path) { errno = EINVAL; return NULL; } + + // use a STACK buffer for the raw kernel data + // free automatically when opendir returns + _kdirent_t raw[_KDIRENT_MAX]; + + long n = _sc3(_SCAL_GETDENTS, (long)path, (long)raw, (long)_KDIRENT_MAX); + if (n < 0) { errno = ENOENT; return NULL; } + + // only allocate heap for the actual entries we got back + struct dirent *entries = NULL; + if (n > 0) { + entries = (struct dirent *)malloc(sizeof(struct dirent) * (int)n); + if (!entries) { errno = ENOMEM; return NULL; } + + for (int i = 0; i < (int)n; i++) { + entries[i].d_ino = 0; + entries[i].d_off = 0; + entries[i].d_reclen = (unsigned short)sizeof(struct dirent); + entries[i].d_type = _ktype_to_dt(raw[i]._type); + strncpy(entries[i].d_name, raw[i]._name, 255); + entries[i].d_name[255] = '\0'; + } + } + + DIR *dir = (DIR *)malloc(sizeof(DIR)); + if (!dir) { + free(entries); + errno = ENOMEM; + return NULL; + } + + dir->_entries = entries; + dir->_count = (int)n; + dir->_pos = 0; + + return dir; +} + +struct dirent *readdir(DIR *dirp){ + if (!dirp) { errno = EBADF; return NULL; } + if (dirp->_pos >= dirp->_count) return NULL; + return &dirp->_entries[dirp->_pos++]; +} + +int closedir(DIR *dirp) { + if (!dirp) { errno = EBADF; return -1; } + free(dirp->_entries); + free(dirp); + return 0; +} + +void rewinddir(DIR *dirp){ if (dirp) dirp->_pos = 0;} diff --git a/src/userspace/libc/src/unistd.c b/src/userspace/libc/src/unistd.c index 9fa8bb2..7f9f601 100644 --- a/src/userspace/libc/src/unistd.c +++ b/src/userspace/libc/src/unistd.c @@ -25,8 +25,8 @@ void _exit(int status) { } int execve(const char *path, char *const argv[], char *const envp[]) { - (void)argv; (void)envp; - return (int)_sc1(_SCAL_EXECVE, (long)path); + (void)envp; + return (int)_sc2(_SCAL_EXECVE, (long)path, (long)argv); } int chdir(const char *path) { From fd91d8b1e1d5ea145e2af391bdbfbd5e688558f9 Mon Sep 17 00:00:00 2001 From: Voxi0 Date: Sat, 28 Feb 2026 19:55:58 +0000 Subject: [PATCH 19/41] feat: moved website code to this repo --- include/limine | 2 +- web/contact.html | 214 +++++++++++++++ web/css/contact.css | 176 +++++++++++++ web/css/contactmedia.css | 34 +++ web/css/cursor.css | 30 +++ web/css/first.css | 46 ++++ web/css/form.css | 34 +++ web/css/link.css | 20 ++ web/css/mailto.css | 46 ++++ web/css/media.css | 81 ++++++ web/css/release.css | 102 ++++++++ web/css/s.css | 34 +++ web/css/style.css | 300 ++++++++++++++++++++++ web/css/styles.css | 18 ++ web/css/theme.css | 50 ++++ web/fonts/Habbo.ttf | Bin 0 -> 10308 bytes web/fonts/emexfont.ttf | Bin 0 -> 12496 bytes web/images/emex-black.png | Bin 0 -> 47500 bytes web/images/emex-white.png | Bin 0 -> 48771 bytes web/images/icons/dark/arrow-right.svg | 4 + web/images/icons/dark/brain.svg | 13 + web/images/icons/dark/code.svg | 4 + web/images/icons/dark/copy.svg | 4 + web/images/icons/dark/database.svg | 5 + web/images/icons/dark/discord.svg | 3 + web/images/icons/dark/download.svg | 5 + web/images/icons/dark/github.svg | 4 + web/images/icons/dark/layers.svg | 5 + web/images/icons/dark/lock.svg | 4 + web/images/icons/dark/logo.svg | 3 + web/images/icons/dark/mail.svg | 4 + web/images/icons/dark/message-circle.svg | 3 + web/images/icons/dark/microphone.svg | 5 + web/images/icons/dark/moon.svg | 3 + web/images/icons/dark/search.svg | 4 + web/images/icons/dark/shield.svg | 3 + web/images/icons/dark/sun.svg | 11 + web/images/icons/dark/wifi-off.svg | 9 + web/images/icons/light/arrow-right.svg | 4 + web/images/icons/light/copy.svg | 4 + web/images/icons/light/database.svg | 5 + web/images/icons/light/discord.svg | 3 + web/images/icons/light/download.svg | 5 + web/images/icons/light/github.svg | 4 + web/images/icons/light/mail.svg | 4 + web/images/icons/light/message-circle.svg | 3 + web/images/icons/light/moon.svg | 3 + web/images/icons/light/sun.svg | 11 + web/images/logo.png | Bin 0 -> 868938 bytes web/index.html | 275 ++++++++++++++++++++ web/js/cursor.js | 17 ++ web/js/icons-theme.js | 47 ++++ web/js/info.js | 122 +++++++++ web/js/release.js | 183 +++++++++++++ web/js/toggle.js | 56 ++++ web/release.html | 65 +++++ web/rng | 8 + 57 files changed, 2101 insertions(+), 1 deletion(-) create mode 100644 web/contact.html create mode 100644 web/css/contact.css create mode 100644 web/css/contactmedia.css create mode 100644 web/css/cursor.css create mode 100644 web/css/first.css create mode 100644 web/css/form.css create mode 100644 web/css/link.css create mode 100644 web/css/mailto.css create mode 100644 web/css/media.css create mode 100644 web/css/release.css create mode 100644 web/css/s.css create mode 100644 web/css/style.css create mode 100644 web/css/styles.css create mode 100644 web/css/theme.css create mode 100644 web/fonts/Habbo.ttf create mode 100644 web/fonts/emexfont.ttf create mode 100644 web/images/emex-black.png create mode 100644 web/images/emex-white.png create mode 100644 web/images/icons/dark/arrow-right.svg create mode 100644 web/images/icons/dark/brain.svg create mode 100644 web/images/icons/dark/code.svg create mode 100644 web/images/icons/dark/copy.svg create mode 100644 web/images/icons/dark/database.svg create mode 100644 web/images/icons/dark/discord.svg create mode 100644 web/images/icons/dark/download.svg create mode 100644 web/images/icons/dark/github.svg create mode 100644 web/images/icons/dark/layers.svg create mode 100644 web/images/icons/dark/lock.svg create mode 100644 web/images/icons/dark/logo.svg create mode 100644 web/images/icons/dark/mail.svg create mode 100644 web/images/icons/dark/message-circle.svg create mode 100644 web/images/icons/dark/microphone.svg create mode 100644 web/images/icons/dark/moon.svg create mode 100644 web/images/icons/dark/search.svg create mode 100644 web/images/icons/dark/shield.svg create mode 100644 web/images/icons/dark/sun.svg create mode 100644 web/images/icons/dark/wifi-off.svg create mode 100644 web/images/icons/light/arrow-right.svg create mode 100644 web/images/icons/light/copy.svg create mode 100644 web/images/icons/light/database.svg create mode 100644 web/images/icons/light/discord.svg create mode 100644 web/images/icons/light/download.svg create mode 100644 web/images/icons/light/github.svg create mode 100644 web/images/icons/light/mail.svg create mode 100644 web/images/icons/light/message-circle.svg create mode 100644 web/images/icons/light/moon.svg create mode 100644 web/images/icons/light/sun.svg create mode 100644 web/images/logo.png create mode 100644 web/index.html create mode 100644 web/js/cursor.js create mode 100644 web/js/icons-theme.js create mode 100644 web/js/info.js create mode 100644 web/js/release.js create mode 100644 web/js/toggle.js create mode 100644 web/release.html create mode 100644 web/rng diff --git a/include/limine b/include/limine index 0aa46ad..06eabae 160000 --- a/include/limine +++ b/include/limine @@ -1 +1 @@ -Subproject commit 0aa46ad0a034a111df345dd80c3b950629041e2b +Subproject commit 06eabae500a938376bc053d915aa4a3d794b677e diff --git a/web/contact.html b/web/contact.html new file mode 100644 index 0000000..2860a0d --- /dev/null +++ b/web/contact.html @@ -0,0 +1,214 @@ + + + + + + emexOS, [contact] + + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+

> CONTACT US

+

+ Have questions, suggestions, or want to contribute to + emexOS? We would love to hear it from you! +

+
+ +
+
+

+ Message the emex-team through email +

+ +
+

+ click the button below to open your email-client + and send us a message, we will get back to you + as soon as possible! +

+ + + + emexsw.team@gmail.com + +
+ +
+

+ please include following in the + email: +

+
    +
  • your name
  • +
  • subject of your message
  • +
  • detailed description
  • +
  • screenshots if you are reporting bugs
  • +
+
+
+ + +
+
+
+ + diff --git a/web/css/contact.css b/web/css/contact.css new file mode 100644 index 0000000..0d5234f --- /dev/null +++ b/web/css/contact.css @@ -0,0 +1,176 @@ +@import url("form.css"); +@import url("mailto.css"); +@import url("contactmedia.css"); + +.contact-container { + max-width: 1200px; + margin: 0 auto; + padding: 40px 20px; +} +.contact-header { + text-align: left; + margin-bottom: 60px; +} +.contact-header .aboutSubtitle { + font-family: var(--font-accent); +} +.contact-description { + font-size: 18px; + color: var(--color-text-muted); + font-family: var(--font-accent); + max-width: 800px; + margin: 20px 0 0 0; + line-height: 1.6; +} +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + margin-top: 40px; +} + +.contact-form-section { + background-color: var(--color-bg); + padding: 40px; + border: 2px solid var(--color-border-soft); +} + +.section-title { + font-size: 28px; + font-weight: 600; + margin-bottom: 12px; + font-family: var(--font-accent); + color: var(--color-text-strong); +} + +.contact-form { + display: flex; + flex-direction: column; + gap: 20px; +} +.contact-form .downloadButton { + margin-top: 10px; + width: 100%; + max-width: 200px; +} +.contact-info-section { + display: flex; + flex-direction: column; + gap: 40px; +} + +.social-links { + margin-top: -40px; /* idk but theres a bug that the gap is to big*/ + display: flex; + flex-direction: column; + gap: 16px; +} +.social-card { + display: flex; + align-items: center; + gap: 20px; + padding: 20px; + background-color: var(--color-bg-soft); + border: 2px solid var(--color-border-soft); + text-decoration: none; + transition: all 0.3s ease; +} +.social-card:hover { + border-color: var(--color-border-strong); + transform: translateY(-4px); + box-shadow: var(--shadow-hard); +} +.social-card img { + width: 40px; + height: 40px; +} +.social-info h3 { + font-family: var(--font-accent); + font-size: 18px; + font-weight: 600; + color: var(--color-text-strong); + margin-bottom: 4px; +} +.social-info p { + font-family: var(--font-accent); + font-size: 14px; + color: var(--color-text-muted); + margin: 0; +} + +.contact-team { + background-color: var(--color-bg-soft); + padding: 30px; + border: 2px solid var(--color-border-soft); +} +.team-title { + font-family: var(--font-accent); + font-size: 20px; + font-weight: 600; + color: var(--color-text-strong); + margin-bottom: 20px; +} +.team-members { + display: flex; + flex-direction: column; + gap: 12px; +} +.team-member { + display: flex; + align-items: center; + padding: 12px 16px; + background-color: var(--color-bg); + border: 2px solid var(--color-border); + text-decoration: none; + transition: all 0.2s ease; +} +.team-member:hover { + border-color: var(--color-border-strong); +} +.team-member:hover .member-name { + text-decoration: underline; +} + +.member-name { + font-family: var(--font-accent); + font-size: 16px; + color: var(--color-text); + font-weight: 500; +} + +.contact-info-box { + margin-top: 30px; + padding: 25px; + background-color: var(--color-bg-soft); + border: 2px solid var(--color-border-soft); +} + +.info-title { + font-family: var(--font-accent); + font-size: 18px; + font-weight: 600; + color: var(--color-text-strong); + margin-bottom: 16px; +} + +.info-list { + font-family: var(--font-accent); + font-size: 15px; + color: var(--color-text); + list-style: none; + padding: 0; +} + +.info-list li { + padding: 8px 0; + padding-left: 24px; + position: relative; +} + +.info-list li::before { + content: ">"; + position: absolute; + left: 0; + color: var(--color-border-strong); + font-weight: 600; +} diff --git a/web/css/contactmedia.css b/web/css/contactmedia.css new file mode 100644 index 0000000..d23f7e0 --- /dev/null +++ b/web/css/contactmedia.css @@ -0,0 +1,34 @@ +@media (max-width: 968px) { + .contact-grid { + grid-template-columns: 1fr; + gap: 40px; + } + + .contact-form-section, + .contact-team { + padding: 30px 20px; + } + + .contact-form .downloadButton { + max-width: 100%; + } +} + +@media (max-width: 768px) { + .contact-container { + padding: 20px 10px; + } + + .section-title { + font-size: 24px; + } + + .social-card { + padding: 16px; + } + + .social-card img { + width: 32px; + height: 32px; + } +} diff --git a/web/css/cursor.css b/web/css/cursor.css new file mode 100644 index 0000000..6476445 --- /dev/null +++ b/web/css/cursor.css @@ -0,0 +1,30 @@ +/* Custom inverted cursor */ +body { + cursor: none; +} + +.custom-cursor { + position: fixed; + width: 14px; + height: 14px; + border-radius: 50%; + background-color: white; + pointer-events: none; + z-index: 9999; + mix-blend-mode: difference; + transform: translate(-50%, -50%); + transition: opacity 0.2s ease; +} + +.custom-cursor.hidden { + opacity: 0; +} + +a:hover ~ .custom-cursor, +button:hover ~ .custom-cursor { + width: 15px; + height: 15px; + transition: + width 0.2s ease, + height 0.2s ease; +} diff --git a/web/css/first.css b/web/css/first.css new file mode 100644 index 0000000..3c25f59 --- /dev/null +++ b/web/css/first.css @@ -0,0 +1,46 @@ +.top-section { + background-color: var(--color-bg); + padding: 60px 80px; + margin-top: 20px; + text-align: left; +} +.borderthing { + padding: 10px; + border-top: 3px solid var(--color-border-strong); +} + +.intro-title { + font-size: 42px; + font-weight: 600; + margin-bottom: 24px; + color: var(--color-text-strong); + font-family: var(--font-accent); +} + +.intro-text { + font-size: 18px; + line-height: 1.8; + color: var(--color-text-secondary); + margin-bottom: 16px; + font-family: var(--font-accent); +} + +.firsthighlight { + background-color: var(--color-bg-highlight); + padding: 30px; + margin-top: 30px; + border-left: 4px solid var(--color-border-strong); +} + +.firstwrapper { + display: flex; + align-items: center; + gap: 60px; +} + +.first-image img { + width: 350px; + height: 350px; + object-fit: cover; + border-radius: 50%; +} diff --git a/web/css/form.css b/web/css/form.css new file mode 100644 index 0000000..f618ecb --- /dev/null +++ b/web/css/form.css @@ -0,0 +1,34 @@ +.form-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.form-group label { + font-family: var(--font-accent); + font-weight: 600; + color: var(--color-text-strong); + font-size: 16px; +} + +.form-group input, +.form-group textarea { + padding: 12px 16px; + border: 2px solid var(--color-border); + background-color: var(--color-bg-soft); + color: var(--color-text); + font-family: var(--font-accent); + font-size: 16px; + transition: border-color 0.2s; +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--color-border-strong); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} diff --git a/web/css/link.css b/web/css/link.css new file mode 100644 index 0000000..901006b --- /dev/null +++ b/web/css/link.css @@ -0,0 +1,20 @@ +a { + color: var(--color-text); + text-decoration: underline; + cursor: none; +} + +a:visited { + color: var(--color-text); + cursor: none; +} + +a:hover { + color: var(--color-text); + cursor: none; +} + +a:active { + color: var(--color-text); + cursor: none; +} diff --git a/web/css/mailto.css b/web/css/mailto.css new file mode 100644 index 0000000..a0f85c2 --- /dev/null +++ b/web/css/mailto.css @@ -0,0 +1,46 @@ +.mailto-option { + text-align: center; + padding: 40px 30px; + background-color: var(--color-bg-highlight); + border-left: 4px solid var(--color-border-strong); +} + +.mailto-description { + font-family: var(--font-accent); + font-size: 16px; + color: var(--color-text-muted); + margin-bottom: 30px; + line-height: 1.6; +} + +.mailto-option .downloadButton { + margin: 0 auto 30px; +} + +.email-display { + padding: 20px; + background-color: var(--color-bg-soft); + border: 1px solid var(--color-border); + margin-top: 20px; +} + +.email-label { + font-family: var(--font-accent); + font-size: 14px; + color: var(--color-text-muted); + display: block; + margin-bottom: 8px; +} + +.email-address { + font-family: var(--font-accent); + font-size: 18px; + font-weight: 600; + color: var(--color-text-strong); + text-decoration: none; + word-break: break-all; +} + +.email-address:hover { + text-decoration: underline; +} diff --git a/web/css/media.css b/web/css/media.css new file mode 100644 index 0000000..67d5c7d --- /dev/null +++ b/web/css/media.css @@ -0,0 +1,81 @@ +@media (max-width: 968px) { + .hero-section { + flex-direction: column-reverse; + padding: 60px 20px; + } + + .hero-content { + text-align: center; + } + + .pixel-logo-main, + .subtitle-main, + .hero-description { + text-align: center; + } + + .hero-image { + flex: 1; + max-width: 100%; + } +} + +@media (max-width: 768px) { + /*.pixel-logo-main { + font-size: 64px; + }*/ + + .subtitle-main { + font-size: 20px; + } + + .intro-section, + .about1, + .about2, + .tech-details { + padding: 40px 20px !important; + } + + .command-grid { + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + } + .downloadTableWrap { + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + + .downloadTable { + min-width: 680px; + } + + .downloadButton { + min-width: 120px; + font-size: 14px; + padding: 10px 14px; + } +} + +@media (max-width: 900px) { + .firstwrapper { + flex-direction: column; + align-items: center; + text-align: center; + } + + .top-section { + text-align: center; + padding: 40px 20px; + } + + .first-image img { + width: 250px; + height: auto; + border-radius: 0; + margin-bottom: 30px; + } + + .firsthighlight { + text-align: left; + } +} diff --git a/web/css/release.css b/web/css/release.css new file mode 100644 index 0000000..59df44d --- /dev/null +++ b/web/css/release.css @@ -0,0 +1,102 @@ +#releaseContent { + font-family: var(--font-accent); + font-size: 18px; + line-height: 1.6; + color: var(--color-text); +} + +#releaseContent h1 { + font-size: 36px; + margin-bottom: 20px; +} + +#releaseContent h2 { + font-size: 28px; + margin-top: 30px; + margin-bottom: 15px; +} + +#releaseContent h3 { + font-size: 22px; + margin-top: 25px; +} + +#releaseContent p { + margin-bottom: 16px; +} + +#releaseContent ul { + padding-left: 25px; + margin-bottom: 20px; +} + +#releaseContent li { + margin-bottom: 8px; +} + +#releaseContent a { + color: var(--color-text-strong); + text-decoration: underline; + font-weight: 500; +} + +#releaseContent a:hover { + text-decoration: none; +} + +#releaseContent code { + background: var(--color-bg-muted); + padding: 4px 6px; + font-family: monospace; + font-size: 16px; +} + +#releaseContent pre { + background: var(--color-bg-muted); + padding: 20px; + overflow-x: auto; + font-size: 16px; + position: relative; +} + +#releaseContent img { + max-width: 100%; + display: block; + margin: 20px auto; +} + +.code-copy-button { + position: absolute; + top: 8px; + right: 8px; + background-color: transparent; + border: none; + color: var(--color-text-strong); + padding: 8px; + cursor: none; + transition: + opacity 0.2s, + transform 0.15s; + z-index: 10; + display: flex; + align-items: center; + gap: 6px; + opacity: 0.6; +} + +.code-copy-button:hover { + opacity: 1; + transform: scale(1.1); +} + +.code-copy-button.copied { + opacity: 1; +} + +.code-copy-button img { + width: 18px; + height: 18px; + display: inline-block; + vertical-align: middle; + margin: 0; +} diff --git a/web/css/s.css b/web/css/s.css new file mode 100644 index 0000000..6ded070 --- /dev/null +++ b/web/css/s.css @@ -0,0 +1,34 @@ +.secondgrid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 30px; + margin-top: 40px; +} + +.secondcards { + background-color: var(--color-bg-soft); + padding: 30px; + border: 2px solid var(--color-border-soft); + transition: all 0.3s ease; +} + +.secondcards:hover { + border-color: var(--color-border-strong); + transform: translateY(-4px); + box-shadow: var(--shadow-hard); +} + +.second-title { + font-size: 22px; + font-weight: 600; + margin-bottom: 12px; + font-family: var(--font-accent); + color: var(--color-text-strong); +} + +.second-description { + font-size: 16px; + color: var(--color-text-muted); + line-height: 1.6; + font-family: var(--font-accent); +} diff --git a/web/css/style.css b/web/css/style.css new file mode 100644 index 0000000..1eb74a1 --- /dev/null +++ b/web/css/style.css @@ -0,0 +1,300 @@ +@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap"); +@import url("styles.css"); +@import url("first.css"); +@import url("s.css"); +@import url("media.css"); +@import url("theme.css"); +@import url("link.css"); +@import url("cursor.css"); + +@font-face { + font-family: emexpixel; + src: url("../fonts/emexfont.ttf"); + /*src: url("fonts/Habbo.ttf");*/ +} + +:root { + --color-bg: #ffffff; + --color-bg-soft: #fafafa; + --color-bg-muted: #f2f2f2; + --color-bg-highlight: #f0f0f0; + --color-text: #111111; + --color-text-strong: #000000; + --color-text-secondary: #333333; + --color-text-muted: #555555; + --color-text-subtle: #666666; + --color-text-placeholder: #999999; + --color-text-inverse: #ffffff; + --color-border-strong: #000000; + --color-border: #dcdcdc; + --color-border-soft: #e0e0e0; + --color-border-muted: #dddddd; + --color-surface-dark: #000000; + --shadow-hard: 8px 8px 0px var(--color-border-strong); + --font-base: "Newsreader", sans-serif; + --font-accent: "Poppins", sans-serif; + --font-ui: "Roboto", sans-serif; +} + +:root[data-theme="dark"] { + --color-bg: #0f1115; + --color-bg-soft: #171a21; + --color-bg-muted: #1e222b; + --color-bg-highlight: #1b2028; + --color-text: #e9edf3; + --color-text-strong: #ffffff; + --color-text-secondary: #c6ced9; + --color-text-muted: #a7b1bf; + --color-text-subtle: #95a0ae; + --color-text-placeholder: #7f8a99; + --color-text-inverse: #e9edf3; + --color-border-strong: #c0c0c0; + --color-border: #2f3641; + --color-border-soft: #3a4350; + --color-border-muted: #303743; + --color-surface-dark: #060606; + --shadow-hard: 0px 0px 0px var(--color-border-strong); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +.div1 { + max-width: 1200px; + margin: 0 auto; + padding-left: 20px; + padding-right: 20px; +} + +body { + font-family: var(--font-base); + background-color: var(--color-bg); + line-height: 1.55; + color: var(--color-text); + font-size: 15px; +} + +.parallaxTop { + min-height: 5px; + background-attachment: fixed; + background-position: top; + background-repeat: no-repeat; + background-size: cover; +} + +.subtitle-main { + color: var(--color-text-strong); + font-family: var(--font-accent); + font-size: 35px; + text-align: center; + font-weight: 800; + margin-top: 8px; +} + +.tech-details { + /*background-color: #1a1a1a;*/ + color: var(--color-text-strong); + padding: 60px 80px; + margin-top: 40px; +} + +.tech-details .intro-title { + color: var(--color-text-strong); +} + +h1 { + margin-bottom: 16px; + position: relative; +} + +h1::after { + content: ""; + display: block; + width: 100%; + height: 1px; + background-color: var(--color-border); + margin-top: 10px; +} + +.lineunder { + border-bottom: 1px solid var(--color-border-soft); + padding-bottom: 4px; + width: 100%; + display: block; +} + +.button { + width: 200px; + height: 70px; + border: none; + color: var(--color-text-inverse); + padding: 14px 28px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 15px; + margin: 4px 2px; + transition-duration: 0.2s; + cursor: none; + border-radius: 0px; +} + +.aboutSubtitle { + color: var(--color-text-strong); + font-size: 44px; + margin-bottom: 32px; + font-weight: 600; + text-align: left; +} + +.about1 { + background-color: var(--color-bg); + font-size: 20px; + font-family: var(--font-accent); + margin-top: 70px; + padding: 80px; + text-align: left; +} + +.about2 { + background-color: var(--color-bg); + font-size: 20px; + font-family: var(--font-accent); + padding: 80px; +} + +.downloadDIV { + background-color: var(--color-bg); + font-size: 20px; + font-family: var(--font-accent); + padding: 80px; + padding-top: 20px; +} + +.downloadTable { + width: 100%; + border-collapse: collapse; + text-align: left; +} + +.downloadTable thead tr { + background-color: var(--color-bg-muted); +} + +.downloadTable th { + padding: 10px; + border-bottom: 2px solid var(--color-border-strong); + font-family: var(--font-accent); +} + +.downloadTable td { + padding: 10px; + border-bottom: 1px solid var(--color-border-muted); +} + +.downloadTable td:first-child { + width: 120px; + font-weight: 600; +} + +.downloadTable td:nth-child(2) { + width: auto; +} + +.downloadTable td:last-child { + width: 320px; + text-align: right; + white-space: nowrap; +} + +.downloadButton { + width: auto; + min-width: 140px; + height: auto; + background-color: var(--color-bg); + color: var(--color-text-strong); + border: 3px solid var(--color-border-strong); + font-family: var(--font-accent); + font-size: 16px; + font-weight: 600; + text-decoration: none; + padding: 12px 20px; + display: inline-flex; + align-items: center; + justify-content: center; + transition: + box-shadow 0.2s, + transform 0.15s; +} + +.downloadButton:hover { + box-shadow: var(--shadow-hard); + transform: translate(-2px, -2px); +} + +.placeholder { + padding: 5px; + color: var(--color-text-placeholder); + font-style: italic; +} + +.placeholder2 { + padding: 15px; +} + +.ibackButton { + top: 20px; + left: 20px; + font-size: 16px; + color: var(--color-text-inverse); + background-color: var(--color-surface-inverse); + padding: 10px; + text-decoration: none; + display: flex; + align-items: center; + transition: background-color 0.3s; + font-family: var(--font-ui); + width: fit-content; +} + +.ibackButton:hover { + background-color: var(--color-surface-inverse); +} + +.ibackButton i { + color: var(--color-text-inverse); + margin-right: 8px; +} + +.stats-section { + display: flex; + justify-content: space-around; + flex-wrap: wrap; + padding: 50px 20px; + background-color: var(--color-surface-dark); + color: var(--color-text-inverse); + margin-top: 40px; +} + +.stat-item { + text-align: center; + min-width: 150px; + margin: 10px; +} + +.stat-number { + font-size: 48px; + font-weight: 700; + font-family: var(--font-accent); + display: block; + color: var(--color-text-inverse); +} + +.stat-label { + font-size: 16px; + margin-top: 8px; + font-family: var(--font-accent); +} diff --git a/web/css/styles.css b/web/css/styles.css new file mode 100644 index 0000000..1765758 --- /dev/null +++ b/web/css/styles.css @@ -0,0 +1,18 @@ +@keyframes typing { + from { + width: 0; + } + to { + width: 100%; + } +} + +@keyframes blink-caret { + from, + to { + border-color: transparent; + } + 50% { + border-color: var(--color-border-strong); + } +} diff --git a/web/css/theme.css b/web/css/theme.css new file mode 100644 index 0000000..d21cac6 --- /dev/null +++ b/web/css/theme.css @@ -0,0 +1,50 @@ +.theme-toggle-wrapper { + position: fixed; + top: 20px; + right: 20px; + z-index: 1000; +} + +.theme-toggle { + background-color: var(--color-bg); + /*border: 3px solid var(--color-border-strong);*/ + border: none; + padding: 12px 20px; + cursor: none; + font-size: 16px; + font-family: var(--font-accent); + font-weight: 600; + color: var(--color-text-strong); + display: flex; + align-items: center; + gap: 8px; + transition: + box-shadow 0.2s, + transform 0.15s; +} + +/*.theme-toggle:hover { + box-shadow: var(--shadow-hard); + transform: translate(-2px, -2px); +}*/ + +.theme-icon { + font-size: 20px; + line-height: 1; +} + +@media (max-width: 768px) { + .theme-toggle-wrapper { + top: 10px; + right: 10px; + } + + .theme-toggle { + padding: 10px 16px; + font-size: 14px; + } + + .theme-icon { + font-size: 18px; + } +} diff --git a/web/fonts/Habbo.ttf b/web/fonts/Habbo.ttf new file mode 100644 index 0000000000000000000000000000000000000000..77075e4af1c4848f833ba4f85b776f14f96cd848 GIT binary patch literal 10308 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 literal 0 HcmV?d00001 diff --git a/web/fonts/emexfont.ttf b/web/fonts/emexfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..20aac86c75977277109c3fee45bcc98109dccf0b GIT binary patch literal 12496 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 z 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 literal 0 HcmV?d00001 diff --git a/web/images/icons/dark/arrow-right.svg b/web/images/icons/dark/arrow-right.svg new file mode 100644 index 0000000..7a08797 --- /dev/null +++ b/web/images/icons/dark/arrow-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/dark/brain.svg b/web/images/icons/dark/brain.svg new file mode 100644 index 0000000..d0b4d91 --- /dev/null +++ b/web/images/icons/dark/brain.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/web/images/icons/dark/code.svg b/web/images/icons/dark/code.svg new file mode 100644 index 0000000..3c067a0 --- /dev/null +++ b/web/images/icons/dark/code.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/dark/copy.svg b/web/images/icons/dark/copy.svg new file mode 100644 index 0000000..86a078a --- /dev/null +++ b/web/images/icons/dark/copy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/dark/database.svg b/web/images/icons/dark/database.svg new file mode 100644 index 0000000..5dd467f --- /dev/null +++ b/web/images/icons/dark/database.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/images/icons/dark/discord.svg b/web/images/icons/dark/discord.svg new file mode 100644 index 0000000..5714328 --- /dev/null +++ b/web/images/icons/dark/discord.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/images/icons/dark/download.svg b/web/images/icons/dark/download.svg new file mode 100644 index 0000000..3faaece --- /dev/null +++ b/web/images/icons/dark/download.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/images/icons/dark/github.svg b/web/images/icons/dark/github.svg new file mode 100644 index 0000000..dca0db5 --- /dev/null +++ b/web/images/icons/dark/github.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/dark/layers.svg b/web/images/icons/dark/layers.svg new file mode 100644 index 0000000..70d772f --- /dev/null +++ b/web/images/icons/dark/layers.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/images/icons/dark/lock.svg b/web/images/icons/dark/lock.svg new file mode 100644 index 0000000..15291a5 --- /dev/null +++ b/web/images/icons/dark/lock.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/dark/logo.svg b/web/images/icons/dark/logo.svg new file mode 100644 index 0000000..476b336 --- /dev/null +++ b/web/images/icons/dark/logo.svg @@ -0,0 +1,3 @@ + + E + diff --git a/web/images/icons/dark/mail.svg b/web/images/icons/dark/mail.svg new file mode 100644 index 0000000..4f1652e --- /dev/null +++ b/web/images/icons/dark/mail.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/dark/message-circle.svg b/web/images/icons/dark/message-circle.svg new file mode 100644 index 0000000..864a033 --- /dev/null +++ b/web/images/icons/dark/message-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/images/icons/dark/microphone.svg b/web/images/icons/dark/microphone.svg new file mode 100644 index 0000000..d3003fa --- /dev/null +++ b/web/images/icons/dark/microphone.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/images/icons/dark/moon.svg b/web/images/icons/dark/moon.svg new file mode 100644 index 0000000..5556722 --- /dev/null +++ b/web/images/icons/dark/moon.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/images/icons/dark/search.svg b/web/images/icons/dark/search.svg new file mode 100644 index 0000000..1c882e8 --- /dev/null +++ b/web/images/icons/dark/search.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/dark/shield.svg b/web/images/icons/dark/shield.svg new file mode 100644 index 0000000..db2ddd6 --- /dev/null +++ b/web/images/icons/dark/shield.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/images/icons/dark/sun.svg b/web/images/icons/dark/sun.svg new file mode 100644 index 0000000..2d8c59b --- /dev/null +++ b/web/images/icons/dark/sun.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/web/images/icons/dark/wifi-off.svg b/web/images/icons/dark/wifi-off.svg new file mode 100644 index 0000000..9d475b5 --- /dev/null +++ b/web/images/icons/dark/wifi-off.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web/images/icons/light/arrow-right.svg b/web/images/icons/light/arrow-right.svg new file mode 100644 index 0000000..b57fbcf --- /dev/null +++ b/web/images/icons/light/arrow-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/light/copy.svg b/web/images/icons/light/copy.svg new file mode 100644 index 0000000..348907c --- /dev/null +++ b/web/images/icons/light/copy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/light/database.svg b/web/images/icons/light/database.svg new file mode 100644 index 0000000..b39a956 --- /dev/null +++ b/web/images/icons/light/database.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/images/icons/light/discord.svg b/web/images/icons/light/discord.svg new file mode 100644 index 0000000..f3dcb45 --- /dev/null +++ b/web/images/icons/light/discord.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/images/icons/light/download.svg b/web/images/icons/light/download.svg new file mode 100644 index 0000000..8629481 --- /dev/null +++ b/web/images/icons/light/download.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/images/icons/light/github.svg b/web/images/icons/light/github.svg new file mode 100644 index 0000000..0ceb44a --- /dev/null +++ b/web/images/icons/light/github.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/light/mail.svg b/web/images/icons/light/mail.svg new file mode 100644 index 0000000..a74fd98 --- /dev/null +++ b/web/images/icons/light/mail.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/images/icons/light/message-circle.svg b/web/images/icons/light/message-circle.svg new file mode 100644 index 0000000..1f0c1fc --- /dev/null +++ b/web/images/icons/light/message-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/images/icons/light/moon.svg b/web/images/icons/light/moon.svg new file mode 100644 index 0000000..39a8b35 --- /dev/null +++ b/web/images/icons/light/moon.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/images/icons/light/sun.svg b/web/images/icons/light/sun.svg new file mode 100644 index 0000000..4dfbd92 --- /dev/null +++ b/web/images/icons/light/sun.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/web/images/logo.png b/web/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..506fcd05b5e6fb7df4e731977656a38eea0a99f4 GIT binary patch literal 868938 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%0A27kiU{7Lgb)JPUO8a+)Uo{>hhuAm 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 h@W+Ne6t#)71LiZ`2s;-J5FB#{w*zsu&V`$` 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 + +
+ +
+ +
+
+
+ +
+ +
+

emexOS

+

+ emexOS + is a graphical, from scratch operating system written + entirely in + C + by Voxi0, + tsaraki, + emexSW. + Bi Moz, and + Novice it's + designed for developers and customization enthusiasts, + who want full control over their systems. +

+

+ +
+

+ Developement: emexOS is still under + hard developement and IS NOT daily-drivable yet. +

+
+ +
+
+ +
+
+ > MAIN FEATURES +
+ +
+
+
Made from scratch
+
+ Entirely written from scratch (except the + bootloader...) +
+
+ +
+
Limine Bootloader
+
+ Limine is a advanced bootloader, excellent for + x86-64 architectures +
+
+ +
+
architecture
+
+ currently emexOS only supports x86-64 chips (like + intel & amd) +
+
+ +
+
drivers
+
+ currently there arent much drivers but the most + useful one is the ATA driver, i hope i can implement + AHCI soon! +
+
+ +
+
console
+
+ a small kernel-mode console with 25+ commands +
+
+ +
+
fonts
+
+ shoose between multiple pixel-art fonts for the + console +
+
+
+
+ + +
+
> DOWNLOAD EMEXOS
+ +

+ select your preferred version, if you're not sure which + version to choose, choose the first one. +

+
+ + + + + + + + + + + + + + +
VersionDownload
+ Loading releases... +
+
+
+ + +
+
+ from scratch + (no linux) +
+
+ x86-64 + (Intel) +
+ + +
+

Run emexOS on real Hardware:

+
+

- Download the iso file

+

+ - format a USB with FAT32, use MBR +

+

+ - flash the iso to the USB (use rufus, balena etcher + or `dd` +

+

- boot the OS from the USB

+

+ requirements: a x86-64 compatible + CPU (Intel), at least 512MB RAM (the more the + better), and about 1 GB disk storage is recommended +

+
+
+
+ +
+ + + + diff --git a/web/js/cursor.js b/web/js/cursor.js new file mode 100644 index 0000000..a2cab75 --- /dev/null +++ b/web/js/cursor.js @@ -0,0 +1,17 @@ +(function () { + // Creates custom cursor texture + const cursor = document.createElement("div"); + cursor.className = "custom-cursor"; + document.body.appendChild(cursor); + + document.addEventListener("mousemove", function (e) { + cursor.style.left = e.clientX + "px"; + cursor.style.top = e.clientY + "px"; + }); + document.addEventListener("mouseleave", function () { + cursor.classList.add("hidden"); + }); + document.addEventListener("mouseenter", function () { + cursor.classList.remove("hidden"); + }); +})(); diff --git a/web/js/icons-theme.js b/web/js/icons-theme.js new file mode 100644 index 0000000..1aad224 --- /dev/null +++ b/web/js/icons-theme.js @@ -0,0 +1,47 @@ +// icon updater but for the contact page +// i prob should make a universal icon updater but nah... to lazy +(function () { + function getTheme() { + return document.documentElement.getAttribute("data-theme") || "light"; + } + + // default is light btw + function themedIcon(name) { + const theme = getTheme(); + return `./images/icons/${theme}/${name}.svg`; + } + + // updates and fks the website + function updateAllThemeIcons() { + // .theme-icon-dynamic used only in contact thing at the side + const icons = document.querySelectorAll(".theme-icon-dynamic"); + icons.forEach((icon) => { + const iconName = icon.getAttribute("data-icon"); + if (iconName) { + icon.src = themedIcon(iconName); + } + }); + } + + // Immediately update icons on script load (before DOMContentLoaded) + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", updateAllThemeIcons); + } else { + // DOM is already ready + updateAllThemeIcons(); + // + } + + // prob prevent a crash + setTimeout(updateAllThemeIcons, 100); + + // update + document.addEventListener("themeChanged", function () { + updateAllThemeIcons(); + }); + window.addEventListener("storage", function (e) { + if (e.key === "theme") { + updateAllThemeIcons(); + } + }); +})(); diff --git a/web/js/info.js b/web/js/info.js new file mode 100644 index 0000000..658e6dc --- /dev/null +++ b/web/js/info.js @@ -0,0 +1,122 @@ +/// sorry for the cursed js syntax its my code editor which randomly uses the STUPIDS SYNTAX IN THE WORLD.................... + +const API_URL = "https://api.github.com/repos/emexos/emexOS1/releases"; +const tbody = document.getElementById("releaseTable"); + +function showError(msg) { + tbody.innerHTML = ` + + + ${msg} + + + `; +} + +// detect current theme +function getTheme() { + return document.documentElement.getAttribute("data-theme") || "light"; +} + +// helper to get themed icon path +function themedIcon(name) { + const theme = getTheme(); + return `./images/icons/${theme}/${name}.svg`; +} + +fetch(API_URL) + .then((resp) => { + if (!resp.ok) throw new Error("api gives no response"); + return resp.json(); + }) + .then((releases) => { + /// newest are at the top + releases.sort( + (a, b) => new Date(b.published_at) - new Date(a.published_at), + ); + + if (!Array.isArray(releases) || releases.length === 0) { + showError("nothing found"); + return; + } + + tbody.innerHTML = ""; + + releases.forEach((release) => { + /// search for .iso + const iso = (release.assets || []).find( + (a) => a.name && a.name.toLowerCase().endsWith(".iso"), + ); + + const tr = document.createElement("tr"); + + /// version == tag_name + /// name == release.name + tr.innerHTML = ` + + ${release.tag_name} + + + + + + ${ + iso + ? ` + + Download ISO + ` + : ` + No ISO + ` + } + + + Read more + + + `; + + tbody.appendChild(tr); + }); + }) + .catch((err) => { + console.error(err); + showError("Failed to load releases"); + }); + +// theme changes +window.addEventListener("storage", function (e) { + if (e.key === "theme") { + updateAllThemeIcons(); + } +}); + +// manual theme changes on the same page +document.addEventListener("themeChanged", function () { + updateAllThemeIcons(); +}); + +function updateAllThemeIcons() { + const icons = document.querySelectorAll(".theme-icon-dynamic"); + icons.forEach((icon) => { + const iconName = icon.getAttribute("data-icon"); + if (iconName) { + icon.src = themedIcon(iconName); + } + }); +} + +/// saftey against unwanted html in release.name +function escapeHtml(str) { + if (!str) return ""; + return str.replace(/[&<>"']/g, function (m) { + return { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", + }[m]; + }); +} diff --git a/web/js/release.js b/web/js/release.js new file mode 100644 index 0000000..17e5ff8 --- /dev/null +++ b/web/js/release.js @@ -0,0 +1,183 @@ +const params = new URLSearchParams(window.location.search); +const tag = params.get("tag"); +const titleEl = document.getElementById("releaseTitle"); +const metaEl = document.getElementById("releaseMeta"); +const contentEl = document.getElementById("releaseContent"); + +const REPO = "emexos/emexOS1"; +const RELEASES_API = `https://api.github.com/repos/${REPO}/releases`; + +if (!tag) { + titleEl.innerText = "No release selected"; +} else { + fetch(RELEASES_API) + .then((r) => r.json()) + .then((releases) => { + const release = releases.find((r) => r.tag_name === tag); + + if (!release) { + titleEl.innerText = "Release not found"; + return; + } + + titleEl.innerText = release.tag_name; + metaEl.innerText = release.name || ""; + + // if exist then use + if (release.body && release.body.trim().length > 0) { + renderMarkdown(release.body, release.target_commitish); + } + /// kiad readme + else { + loadReadme(release.target_commitish); + } + }) + .catch((err) => { + console.error(err); + titleEl.innerText = "Error loading release"; + }); +} + +function loadReadme(branch) { + const readmeUrl = `https://raw.githubusercontent.com/${REPO}/${branch}/README.md`; + + fetch(readmeUrl) + .then((r) => { + if (!r.ok) throw new Error("nothing found :( "); + return r.text(); + }) + .then((md) => renderMarkdown(md, branch)) + .catch((err) => { + console.error(err); + contentEl.innerText = "couldnt find a README"; + }); +} + +function renderMarkdown(md, branch) { + console.log("Original markdown:", md.substring(0, 500)); + + /// relative images + let fixedMd = md; + + // Handle images with paths starting with ./ or just filename + fixedMd = fixedMd.replace( + /!\[([^\]]*)\]\((?!https?:\/\/)([^)]+)\)/g, + (match, alt, path) => { + console.log("Found image:", path); // Debug log + + // remove leading ./ or / + const clean = path.replace(/^\.?\//, "").trim(); + const fullUrl = `https://raw.githubusercontent.com/${REPO}/${branch}/${clean}`; + + console.log("converted to:", fullUrl); + + return `![${alt}](${fullUrl})`; + }, + ); + + // also handle HTML img tags if present + fixedMd = fixedMd.replace( + /]*?)src=["'](?!https?:\/\/)([^"']+)["']([^>]*?)>/gi, + (match, before, path, after) => { + const clean = path.replace(/^\.?\//, "").trim(); + const fullUrl = `https://raw.githubusercontent.com/${REPO}/${branch}/${clean}`; + return ``; + }, + ); + + // convert blob URL's to raw URL's + fixedMd = fixedMd.replace( + /]*?)src=["'](https:\/\/github\.com\/[^\/]+\/[^\/]+\/blob\/[^\/]+\/)([^"']+)["']([^>]*?)>/gi, + (match, before, blobUrl, path, after) => { + const rawUrl = blobUrl + .replace("https://github.com/", "https://raw.githubusercontent.com/") + .replace("/blob/", "/"); + const fullUrl = rawUrl + path; + console.log("Converted GitHub blob URL to:", fullUrl); + return ``; + }, + ); + + // markdown images + fixedMd = fixedMd.replace( + /!\[([^\]]*)\]\((https:\/\/github\.com\/[^\/]+\/[^\/]+\/blob\/[^\/]+\/)([^)]+)\)/g, + (match, alt, blobUrl, path) => { + const rawUrl = blobUrl + .replace("https://github.com/", "https://raw.githubusercontent.com/") + .replace("/blob/", "/"); + const fullUrl = rawUrl + path; + console.log("Converted GitHub blob URL to:", fullUrl); + return `![${alt}](${fullUrl})`; + }, + ); + + console.log("Fixed markdown:", fixedMd.substring(0, 500)); + + const html = marked.parse(fixedMd); + const safe = DOMPurify.sanitize(html); + + contentEl.innerHTML = safe; + + /// opens in a new tab + contentEl.querySelectorAll("a").forEach((a) => { + a.target = "_blank"; + a.rel = "noopener"; + }); + + // add error handling for images + contentEl.querySelectorAll("img").forEach((img) => { + img.addEventListener("error", function () { + console.error("Failed to load image:", this.src); + this.alt = `[Image failed to load: ${this.alt || "Screenshot"}]`; + this.style.border = "2px dashed #ccc"; + this.style.padding = "20px"; + this.style.background = "#f5f5f5"; + }); + + img.addEventListener("load", function () { + console.log("Successfully loaded image:", this.src); + }); + }); + + // copy button for codeblocks + contentEl.querySelectorAll("pre").forEach((pre) => { + const button = document.createElement("button"); + button.className = "code-copy-button"; + button.innerHTML = ` + Copy code + `; + + button.addEventListener("click", async function () { + const code = pre.querySelector("code"); + const text = code ? code.textContent : pre.textContent; + + try { + await navigator.clipboard.writeText(text); + button.classList.add("copied"); + + setTimeout(() => { + button.classList.remove("copied"); + }, 1000); + } catch (err) { + console.error("failed to copy:", err); + } + }); + + pre.style.position = "relative"; + pre.appendChild(button); + }); +} + +function getTheme() { + return document.documentElement.getAttribute("data-theme") || "light"; +} + +// changes the icon when theme is changed +document.addEventListener("themeChanged", function () { + const copyIcons = document.querySelectorAll( + ".code-copy-button .theme-icon-dynamic", + ); + copyIcons.forEach((icon) => { + icon.src = `./images/icons/${getTheme()}/copy.svg`; + }); +}); diff --git a/web/js/toggle.js b/web/js/toggle.js new file mode 100644 index 0000000..17ef8de --- /dev/null +++ b/web/js/toggle.js @@ -0,0 +1,56 @@ +(function () { + const currentTheme = localStorage.getItem("theme") || "light"; + + // prefenvt flash + document.documentElement.setAttribute("data-theme", currentTheme); + + document.addEventListener("DOMContentLoaded", function () { + const toggleButton = document.getElementById("themeToggle"); + if (!toggleButton) return; + + const iconContainer = toggleButton.querySelector(".theme-icon img"); + const logo = document.getElementById("logo"); + + // iniitals + updateIcon(currentTheme); + updateLogo(currentTheme); + + toggleButton.addEventListener("click", function () { + const currentTheme = document.documentElement.getAttribute("data-theme"); + const newTheme = currentTheme === "dark" ? "light" : "dark"; + + document.documentElement.setAttribute("data-theme", newTheme); + localStorage.setItem("theme", newTheme); + + updateIcon(newTheme); + updateLogo(newTheme); + + // dispatch custom event for other scripts to listen to + document.dispatchEvent( + new CustomEvent("themeChanged", { detail: { theme: newTheme } }), + ); + }); + + function updateIcon(theme) { + if (!iconContainer) return; + if (theme === "dark") { + iconContainer.src = "./images/icons/dark/sun.svg"; + iconContainer.alt = "Light Theme"; + } else { + iconContainer.src = "./images/icons/light/moon.svg"; + iconContainer.alt = "Dark Theme"; + } + } + + function updateLogo(theme) { + if (!logo) return; + if (theme === "light") { + logo.src = "images/logo.png"; + logo.alt = "emexOS Logo Black"; + } else { + logo.src = "images/logo.png"; + logo.alt = "emexOS Logo White"; + } + } + }); +})(); diff --git a/web/release.html b/web/release.html new file mode 100644 index 0000000..dd3426f --- /dev/null +++ b/web/release.html @@ -0,0 +1,65 @@ + + + + + + emexOS, [releases] + + + + + + + + + + + + + + +
+ +
+ +
+ + + Back + + +
+

Loading...

+
+
+
+
+ + diff --git a/web/rng b/web/rng new file mode 100644 index 0000000..554dd8f --- /dev/null +++ b/web/rng @@ -0,0 +1,8 @@ +//%random + +// let my code editor know which langs to use syntax +( + %import gen.html::5; + %import gen.css::3; + %import gen.js::ES2024; +) From 1304529e0c97b222d64e72af854e4bbd55b57dfb Mon Sep 17 00:00:00 2001 From: Voxi0 <113725768+Voxi0@users.noreply.github.com> Date: Sat, 28 Feb 2026 20:02:40 +0000 Subject: [PATCH 20/41] feat: added workflow to deploy website automatically --- .github/workflows/deploy.yml | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..f4dd614 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,54 @@ +name: Deploy website + +# Set permissions of the `GITHUB_TOKEN` to allow deployment to Github Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete +concurrency: + group: "pages" + cancel-in-progress: false + +# Workflow triggers +on: + # Whenever any changes are made to `web/` from either a push or merging a pull request + push: + paths: + - "web/**" + pull_request: + paths: + - "web/**" + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Workflow actions +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + # Clone repository + - name: Checkout + uses: actions/checkout@v4 + + # Configure Github Pages + - name: Setup Pages + uses: actions/configure-pages@v5 + + # Upload build - In this case it's just static files e.g. HTML and CSS + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + # Upload specific directory + path: './web' + + # Deploy to Github Pages + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 From 739eb4ccfef1f7b95de0b1f0bd96a94936fb6324 Mon Sep 17 00:00:00 2001 From: Voxi0 Date: Sat, 28 Feb 2026 20:40:02 +0000 Subject: [PATCH 21/41] feat: added editorconfig and updated flake wrote an editorconfig to ensure editors know the formatting somewhat e.g. the type of indentation. editorconfig is used by many editors like neovim so that's nice as well. also updated the flake with nice comments, formatting and got rid of `flake-utils` since it's use is discouraged by many for reasons i can't recall right now. --- .editorconfig | 13 +++++++++++++ flake.lock | 22 ++-------------------- flake.nix | 42 +++++++++++++++++++++++++++++------------- 3 files changed, 44 insertions(+), 33 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3d68dd1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +root = true + +[*] +indent_style = tab +trim_trailing_whitespaces = true +insert_final_newline = false +charset = utf-8 + +[*.nix] +indent_size = 2 + +[*.{c,h,ld}] +indent_size = 4 diff --git a/flake.lock b/flake.lock index 171c4ba..99d77bc 100644 --- a/flake.lock +++ b/flake.lock @@ -1,23 +1,5 @@ { "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "nixpkgs": { "locked": { "lastModified": 1762111121, @@ -36,8 +18,8 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "systems": "systems" } }, "systems": { diff --git a/flake.nix b/flake.nix index eb85cbf..e3d78c1 100644 --- a/flake.nix +++ b/flake.nix @@ -2,18 +2,34 @@ description = "emexos dev flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - flake-utils.url = "github:numtide/flake-utils"; + systems.url = "github:nix-systems/default"; }; - outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem(system: let - pkgs = import inputs.nixpkgs {inherit system;}; + outputs = inputs: let + forEachSystem = inputs.nixpkgs.lib.genAttrs (import inputs.systems); + pkgs = forEachSystem (system: import inputs.nixpkgs {inherit system;}); in { - devShells.default = pkgs.mkShellNoCC { - nativeBuildInputs = with pkgs; [ - pkgsCross.x86_64-embedded.stdenv.cc - nasm - libisoburn - git - ]; - }; - }); -} + formatter = forEachSystem (system: pkgs.${system}.alejandra); + devShells = forEachSystem (system: { + default = pkgs.${system}.mkShellNoCC { + nativeBuildInputs = with pkgs.${system}; [ + # Compiler and assembler + pkgsCross.x86_64-embedded.stdenv.cc + nasm + + # Provides a lot of handy tools for C/C++ dev e.g. formatter (clang-format) + clang-tools + + # For generating a `compile_commands.json` which can be used by clangd + # That file is used by the clangd lsp to figure out includes and all + compiledb + + # Provides `xorriso` for creating the emexOS ISO + libisoburn + + # Git is required to fetch some dependencies + git + ]; + }; + }); + }; +} \ No newline at end of file From ab8e5542d95b423c62b54a9ad67bd279240ddd76 Mon Sep 17 00:00:00 2001 From: Voxi0 Date: Sat, 28 Feb 2026 20:58:08 +0000 Subject: [PATCH 22/41] chore: removed empty file from `docs` also made sure `docs/Emulating_emexOS_binary_using_QEMU.md` was linking to the existing markdown files rather than to the files from BiMoz's repo because well, the links are much shorter and simpler that way and hey the existing files deserve more love lmao. --- docs/Building emexOS from source | 1 - docs/Emulating_emexOS_binary_using_QEMU.md | 2 +- include/limine | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 docs/Building emexOS from source delete mode 160000 include/limine diff --git a/docs/Building emexOS from source b/docs/Building emexOS from source deleted file mode 100644 index 8b13789..0000000 --- a/docs/Building emexOS from source +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/Emulating_emexOS_binary_using_QEMU.md b/docs/Emulating_emexOS_binary_using_QEMU.md index 1b51f17..d266bf7 100644 --- a/docs/Emulating_emexOS_binary_using_QEMU.md +++ b/docs/Emulating_emexOS_binary_using_QEMU.md @@ -11,4 +11,4 @@ The easiest way to run emexOS is to run it in QEMU. - Choose either to enable storage or not to. - Keep the default options and select "finish". -Learn how to install QEMU in [Arch](https://github.com/BloopBiMoz/emexOS1/blob/main/docs/QEMU_Arch.md) and [Debian](https://github.com/BloopBiMoz/emexOS1/blob/main/docs/QEMU_Debian.md) based distributions. +Learn how to install QEMU in [Arch](./QEMU_Arch.md) and [Debian](./QEMU_Debian.md) based distributions. \ No newline at end of file diff --git a/include/limine b/include/limine deleted file mode 160000 index 06eabae..0000000 --- a/include/limine +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 06eabae500a938376bc053d915aa4a3d794b677e From b6f8a94962e9edf718d79c8fb5066d906a9509fe Mon Sep 17 00:00:00 2001 From: Voxi0 Date: Sat, 28 Feb 2026 21:02:30 +0000 Subject: [PATCH 23/41] chore: updated flake --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 99d77bc..feb1651 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", "type": "github" }, "original": { From 40ff1d4f3ad9c3208da65f5f911e0391a527cb2b Mon Sep 17 00:00:00 2001 From: Voxi0 Date: Sat, 28 Feb 2026 21:32:22 +0000 Subject: [PATCH 24/41] chore: resolving compiler warnings and such --- Makefile | 11 +++++++---- common.mk | 6 +++--- dsk/initrd.cpio | Bin 293376 -> 294912 bytes dsk/rd/bin/echo.elf | Bin 9672 -> 9928 bytes dsk/rd/bin/hello.elf | Bin 9512 -> 9768 bytes dsk/rd/bin/ls.elf | Bin 10936 -> 11240 bytes dsk/rd/bin/tree.elf | Bin 11792 -> 12128 bytes dsk/rd/emr/system/login.elf | Bin 10408 -> 10680 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 13560 -> 13880 bytes dsk/rd/user/apps/shell.emx/app.elf | Bin 10360 -> 10624 bytes flake.nix | 1 + include/limine | 1 + src/kernel/arch/amd64/amd64.c | 8 +------- src/kernel/console/console.h | 5 ++--- src/kernel/file_systems/fat32/fat32.c | 4 ++-- src/kernel/file_systems/vfs/devfs/devfs.c | 4 +++- src/kernel/kernel.c | 5 +---- src/kernel/kernelslot/slot_write.c | 4 ++-- src/kernel/mem/glime/glime.c | 6 +++--- src/kernel/mem/glime/kb.c | 18 +----------------- src/kernel/mem/glime/session.c | 6 +++--- src/kernel/mem/glime/workspace.c | 7 +++---- src/kernel/mem/klime/klime.c | 3 ++- src/kernel/mem/paging/paging.c | 6 +++--- src/kernel/mem/paging/paging_proc.c | 4 ++-- src/kernel/mem/sfence.h | 4 ++-- src/userspace/apps/login/login.elf | Bin 10408 -> 10680 bytes src/userspace/apps/login/login.o | Bin 2792 -> 2816 bytes src/userspace/apps/shell/shell.emx/app.elf | Bin 10360 -> 10624 bytes src/userspace/apps/shell/shell.o | Bin 2640 -> 2656 bytes src/userspace/apps/system/init.c | 2 +- src/userspace/apps/system/system.emx/app.elf | Bin 13560 -> 13880 bytes src/userspace/bin/echo/echo.elf | Bin 9672 -> 9928 bytes src/userspace/bin/hello/hello.elf | Bin 9512 -> 9768 bytes src/userspace/bin/ls/ls.elf | Bin 10936 -> 11240 bytes src/userspace/bin/ls/ls.o | Bin 2088 -> 2096 bytes src/userspace/bin/tree/tree.elf | Bin 11792 -> 12128 bytes src/userspace/bin/tree/tree.o | Bin 3496 -> 3536 bytes 38 files changed, 43 insertions(+), 62 deletions(-) create mode 160000 include/limine diff --git a/Makefile b/Makefile index 2b060b9..3888f72 100644 --- a/Makefile +++ b/Makefile @@ -16,11 +16,14 @@ fetchDeps: @echo "[DEPS] Fetching dependencies/libraries" @mkdir -p $(INCLUDE_DIR) #@mkdir -p $(BUILD_DIR)/src/kernel/console/functions + @echo "[DEPS] Fetching Limine" - @rm -rf $(INCLUDE_DIR)/limine - @git clone https://codeberg.org/Limine/Limine.git --branch=v10.3.0-binary --depth=1 $(INCLUDE_DIR)/limine + @rm -rf $(LIMINE_DIR) + @git clone https://codeberg.org/Limine/Limine.git --branch=v10.x-binary --depth=1 $(LIMINE_DIR) @echo "[DEPS] Building limine binary" - @$(MAKE) -C $(INCLUDE_DIR)/limine + @$(MAKE) -C $(LIMINE_DIR) + @echo "[DEPS] Fetching Limine protocol header file" + @wget https://codeberg.org/Limine/limine-protocol/raw/branch/trunk/include/limine.h -O $(LIMINE_DIR)/limine.h disk: @mkdir -p $(DISK_DIR) @@ -119,4 +122,4 @@ $(BUILD_DIR)/%.asm.o: %.asm clean: @echo "[CLR] Cleaning..." @rm -rf $(BUILD_DIR) - @echo "[OK]" + @echo "[OK]" \ No newline at end of file diff --git a/common.mk b/common.mk index 7ea83c1..02b23ce 100644 --- a/common.mk +++ b/common.mk @@ -15,8 +15,8 @@ VLD = @echo "[LD] $@" && $(LD) # Compiler Flags COMMON_FLAGS += -I $(INCLUDE_DIR) -I $(SRC_DIR) -I shared/ -ffreestanding -fno-stack-protector -fno-lto \ -fno-PIE -fno-pic -m64 -march=x86-64 -mno-80387 -mno-mmx \ - -mno-sse -mno-sse2 -mno-red-zone -mcmodel=kernel -Wall -Wextra -CFLAGS ?= $(COMMON_FLAGS) -std=gnu11 + -mno-sse -mno-sse2 -mno-red-zone -mcmodel=kernel -Wall -Wextra -Wpedantic -Werror +CFLAGS ?= $(COMMON_FLAGS) -std=c23 CXXFLAGS ?= $(COMMON_FLAGS) -std=c++17 -fno-exceptions -fno-rtti LDFLAGS ?= -nostdlib -static -no-pie -z text -z max-page-size=0x1000 ASFLAGS ?= -f elf64 @@ -32,4 +32,4 @@ DISK_DIR := dsk DISK_IMG := $(DISK_DIR)/disk.img INCLUDE_DIR := include ISODIR := $(BUILD_DIR)/isodir -ISO := $(BUILD_DIR)/$(OS_NAME).iso +ISO := $(BUILD_DIR)/$(OS_NAME).iso \ No newline at end of file diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index a5d7df1679c3aa4bfa34d1a92c12e62b0df71b36..0ab7eb5777662c8e342bc849db993e6a8b786d71 100644 GIT binary patch delta 23497 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 I_n-9t0bX)t=Kufz diff --git a/dsk/rd/bin/echo.elf b/dsk/rd/bin/echo.elf index c6706e71c1f83dbad420bea0ac870e447396ea27..b4df898cf58d2c76f8134c8fe68c93ed1dd3926e 100755 GIT binary patch delta 2467 zcmaKuYfM~46vyWR7bv^zgMAfPme(Rk4Rl+BVw+HkYp$hjsFWBJ(b5>2R6|UK4@Pip zwzO{7nvy}&q_v6tU}Df1LW-{zC?r6QL{b|cC=E4Y*DQ%k(v*!^#dBuPWq}V)a`)c( zo&U^v%()k)8>bJPe^@E&tE|boYGPu1YZ^R0U{>yMr=`$1XkvRt72pv=Hm|pASB~)$ zmTmQ)8W{`wmx2+c)}QFHe}#&Xp*8KhU=I2dO4y&+I*j~|r9IPk%XicF zz_-eMIc|Q$dL{|(S@)%bRodQ3^6NP}(}1t?Wrv-o*{YM4dAo-nvb7}vDkg39NswU= zCMRd@&ANkmJ5Tag9lLe@iNmiyE;}lfHtu#-Dc!u$S(=o0I12+48H{OR^%~xK$GY5K zU={!T9e#j*gfuv&Xd(5Y)b+#7Jj_mwbrymBw49koX0@qO#XI(xlFuI*nh#E zID0c4+()9S=qx&oi7Zyschb#g3u+Y;&+=5|HD|IturJ$zKQO#-DJ+$ZnfNoFs@hkK z8_hexoC1Q&#Gk-5Fdl~s`A@{__?MpYfGt(7ZWJ2E_QO2~R0kBv2Z$dgolPOgd;M{<^NG z>ga*KMckMr_4JpEohF_~d;%Mc1sFR=hSYSqK(EAm#J6veyan|zF2RKv9Hc-W6O^$l z#22Zet;9bju2O|ciGK!n3vVsT4;&=Vy=1vgD_omAj1zxIl@VPe{Wrv4AkSxr-y+_) z$@9;|du3(;)#;Vpm|^AUD@Lw1ljmQ;-F;s)G2h zl$3ssN5GD;_^5O9NncI+8&v(h#A}FG$f)v|e!#oQ@CP-Jb*Qi8M zchA>7?{%_cvaSDaWy`th9l666VaPSh$6X&-l{RqN{N}ht>>5)LPu^>WR@*jZ4;;5` zZJo^%BBm`yl1ihN4i$b*jL}b4xg%(fXlW&;rJJi)hI-J$Y1vu%f zQTk!XSr-1XQ;+_rM;1%;Xeg;id*<{=C@H%0^q7XKTDeIGJ*Jk>oY?#G2#$iqCgO-2x&JT`uu47VI7nNHqf8^RM9%c+xIFVH zooUjRPS_{ZdgPHKqgxAB$x~hObc*6vD0T3l%b#;AwUSextHgQ}`>{}m^f}7cS2 zjRUt0##*%|oQ72YYVo#cD2=m;{D(4ypox()9*h^c#}xQ(vtKPmw^PRM&K=rq^Atgw z$Ftgo)(L0LbW=0jCMw^Ws54wtRi^mKVTz)OBhIkIJG93 zm_9%)Y9{jx%y_GIe?{4>T%A!27L3<4KDLiY(f>6cAaj>dOVH<5+l<|_z5u@7{XRE* zt$08B*JAaD-^bXFjqtMdE{uKfw4=_DV^RJdDeZ$xPx`hV(4@L3tb(`59!s z$3TTR!uYQ;i?Gv&jB6B*?Eo>p1L4J z1C`rje4O4E5+}1>;Ck+puqb2v2+RkH!uM~O&;VO!I7u&`s$zVUi=y|2UA0u?Pv01j8Qn9AsY5H$w%RJr+I5&-sb diff --git a/dsk/rd/bin/hello.elf b/dsk/rd/bin/hello.elf index 65d14b28c0101a0fcf2390b9fd3ea9bd4ea1fb8f..3ebb9bdca2fc62f5e66227f60229016b098a9707 100755 GIT binary patch delta 2286 zcmZ9Oe`s4(6vyvtlA1Pcel;&?^P^3d*v@XmrVi(H(yk@rt!^;w%J4^>{lkH7>c*OX zbS1cSj7OYIZk+`wO#Q=RK^%o46PnV>O4aF5skk3dMIogMUC|lFx_HjL=QT|)yu5oq z=iKi(_uPA5JJvn6_uNBD^u3lxE8TV`TC4rytK*Kq*9v3*^lJK_myu7J?5raTh~>&G zyw&-zE&gMCE`BFoNW^dOL(ax_y_zxY^iM;GgwjNOO#u3z2mhSZ*N5oDPxGnl%T{wu8MgE>u4E@EEOOuVx`H0*iGU0jv-pe{L=kFBrtB58lfp?!lyS6JwZ%EZpeC zO;=Var_8f84YmM;HC6)SrrWD)V?)eJV$=U!ckG!)=K{Z56Eus?W6tK1eNg;f-s7n& zVMjgNO2!vFE!D$NXOt2P;TJp)9uhm-w;qcGJ}8FrxIs}cj0oKn_C zH2q3;C%TOAE_Ji*qjjr2rur+o#Ta+-n5x=)(6PA$9YkbaLs!*Jij6O;exrny-WRQF ztElt_`H=Ta5!ig)MaLLV`_?)C=6gg|&{Nx0oT2#Zd9t>@27Iu)*1bb8AV%&cIzci7&Wa zL2(@x|A5K>J&ZIxrGVe_((eGg9GBS8)Ib>QyXD9+c@5MS^m#nUZ$UjlDV3Z8hbF^4 zscN$p4~($M7;i%lTucBpxTQ;O7~DZ711?E3W>O3|FGnQ-Z8G2h#=ErU9fM0|8AFY; z`yqdI6uMX7qT3*kv(U!|Nv~b>FM_J~>Rm`(M8}T?Ud`Fu$O^v^47)zgg9$zn#Zzq# zZRN30r@KvRF(14YW@5E=ekv5(@r;>upv5pZLB9+fhKN6oMrd2$K|V>moiBzuQt&ZE zqZNOk?S{t5b3}Uyeo?=Tl1POG zX6$7$T((G|IPs&zj}WgTeuDT1l+a<~ZyNrrG*LVQ7=WYeS4f>c;-3j_Q`izsi13RI&8hno?ligK zcMD}#sbGfe4DtC&Df=P$e@om>;c$7_eu4*e;#9AQpp0E7enc)O#rnzcI~medGC-8- zvPeAtfaJsEzf62+!$$o}e1#IqkpC+2PphTQ3xd}$W`;nR=@oPCS$YV_63Y&ez?vX1iOjlNgjp+j!ew4YM)QLO`{*-EpH)82Fv-%i}V zp{7p~|BjA`YvOj}FG`uo&cBJoT=@S73YhApjDt6ZYIrajsvv{Ao_9vum3n>(emC*y PXuCBkU1P%aW~AzWJ_czf delta 2016 zcmZ8ieP~-%6u+egt-6e7tLWHAr#P9ii7l0NwnY?U z*rG_N(~dJmVIPd5j){yqP!ZRLR#q}WR}?3kU>Q>qvOhAW7+GUH=iZY}d*Hrz&+q)s z=esvK{mALwi8Wf_$l8r%whAGowPI@U6LamPCd3~*jOcG)-G%V9ULksB5E6+KMbK(l z4}%te_feA&#v8FQ$257)pe7Qha=Dxl)n6vlcral^VrC<-^vLz~Tw)iuFQR}CDu+2Opc1D0%S^^@3L z9CwW!a(2U{${1>5O*Anb!QKA>I|)o<-raD_UZX9*7xvZq_p**QTNPyO#d>sE^Erz3 z!MtX=Fw;-YeG=G;UKHtpR4b|z8ny64M_crs~hzQyjrtO;;EVt4A*wSXSG4J+ra8}XeVK{yG5ITes>_8 zpP3JbpD?0hi$)}r5ToT(2!7rXoD80fA$s9ia?8q+*Rc;ocM=+jX~^qSyv_JBe=c5+ zjr!2OQEBGsOBii2`V)Qocc@>C6hpg16JbRkvm5hz5z4wiLQ!1-hrBJF&LYu6aNc}3?hBA`KjZ7kh|-LU@D~{GfTXu4jMtxxCGU7|vaFka3DJien!@SF4<#(##3vbkWy5(sN^dj1 zP^KJ$L`QiK7x8uGKPFKjjx&B~#n@?5#J|iFrHPT8!Br{BHF1DDu7fFGQ`k|i(&bMQ z{hpBfsTE=87%$-R0CkdYaS?wPrwdC|h#wd~o6pAh6~?!#cEaKbHe6!^a6w+4OOo-O z#j4P^n4f0c#tHHt>QBbkl`4LO`B}!NObXvF@hTzcE>j04PS6WUe^c98cHhSCPG)__ z={7Om!1&kjK)us-Y{jt*uyqX_sCN!r;|%TW`wYG*^L6&3i$>DQUhnd(yA&+$Wqe}A zOgAz9DIXE@xtsNuwF12YE;h7S=^vK@=pGfu41RAFxEnpCY_NIY!NzXQ1BdYGhuOyN Ol7OPNNa`;QrhfsC(%B3E diff --git a/dsk/rd/bin/ls.elf b/dsk/rd/bin/ls.elf index 794879766d915ae3e745f0259852e1c988c90638..bb629c3d00d2b659d1245e2b1e01a46852449124 100755 GIT binary patch delta 2883 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 Ux}P^sugdv6AnE0TzAu>fFF9KHu>b%7 diff --git a/dsk/rd/bin/tree.elf b/dsk/rd/bin/tree.elf index 8c8dbffbf48f071b4dad0cecc4f28a02cb9aaf0c..a95a17e0e05da4c8bf31d26ec819e64cb30a1cb2 100755 GIT binary patch delta 3226 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 VrhO4#U0#ztg!dn`N(QFI{{dzB68iuE delta 2365 zcmZ9Oe@v8R9KfIVl^5|ixjW$Q;10M01x}cNKe7-d7QWjXE|rLBmd-Xejn-g!v{j?a zow}|IBfquLT#_R<$Ul11bZYHO`wHQTfuJ1u5xUK6tK_kF%#@@(%t-{#Z>1cq9}@Poq~K8v6!SR7Del z!|`C7(R+A5y3F%{e1NW1WqGJ zW%Q+#zOX)1q=b8BRNK+Z7+ps0B~QB@4a4wR?mj5Y8-xpaEjSlJU49n~<*$JeXCb8X zt02eaf+pvSxNb)|3?I4Lm}P<8-3`6&4RG15qdp&M3S7zn=mj-O9|Q}QL95pl3TDgR zYstlUHc{<&nhwXii_C&2Z(!9(zatusD@H_%OS`XevVAEI#e;s-pO!1z*cFU+J@ONE z;yr3BMv9|8I%nPOG{&{pa76=Cgz&TuqKG#8ks1*_oyx_`ZQlRSxc$cSj`;i$)DT}B4D zOC#zmfHNL%_4A}{(5DVK#AnYw(u0w7&nYY4M-~S@=q(`{o;BkMzt$ z^%=C^u}BDd8DscdmP0kg$!xa!M;>XIe%?a6U@;82MZ zJ}p@b9$&cyLx|)6R-eFSRZAC1<{8M=Rgzjmxa)tgp5PQFlMp{2S+Y2z--uj{Z6Nhk zIN=Lu^fo2129FkD$!TdLb;ta2J1sYx%MoWDJmt43n_-vVqn$^E7=6>PDy!uE5F!tW zDipCrh$hl@(hm*~KE%&4-vcA1m1>sAk0xcGxWy!pXds`3Wv)H}eme$GAJEm>*|e zmn{p*VSbW%BlB}~`RKzj#EQL(rGri!#~FNR2YW4&Z#Ah9Uoo%cLg)I6XJ^`XXwtr& z?JqFD!uCGqmvFYj%H`hBFlX*z&Cl#17G(I9`G=V@1F-!~<|#f)+>|+PGta?476j%p zPct8tI}3?tNsEL2?9rAhvZOnT>gjTM?G#!p(dW zpV>1ee@O^RL-QK4XgFT4}nIt&JVdO8r2=;@brpC%NG@7DMXDx H*OLDLw9sgz diff --git a/dsk/rd/emr/system/system.emx/app.elf b/dsk/rd/emr/system/system.emx/app.elf index e0ed6e7bdb1702f81f2e3967295409af39be6fba..b2a6faf24905b7319f20652b5007e19f5679a747 100755 GIT binary patch delta 3115 zcmZve3v82B6oBtvR=^e4ZnJxK&u;73%2-*Q;1Gt`@Q+6_z-dG#mJPHx!DOwkv2-|I zO(ofOi9(3LL=BM`h841i*~Vs=gx5ec%ZO$wBqdYAOPvI)=lu8l?Y4N6fB!w-Irp4% z&prR`MqQnCE%}<+_SS;Z=nfN8#&;&(UXpmM=YEmo4P5UFF?rS@XY41t;5jJPBRsvwIpk{vZ?z$v*9esPa34a&wPf zZXUiR`(WtUVt3E^t=41|Z^ zyf!^gvT}cVhPNSJ337`xeN=!<+1D79eV$>txiQE*G2mxd_VovU`Zp9BnWah>K~hp_ zZX9LqMA=_8Ec=&1l8~M60@~}aMj)blW#4LmsSsea<&4=DQi;LW_`vUY0E>=HVhr=> zmarNh1?FaSOOq+{jI0b@Duh*c0&?E%hhbTDHkF+9{yn6x=tbiYUzKHwQYL%SEaT3> zX-VLLtmJX*T$X*T+?HMN=x!);cpq)qxoed4s>f0#yf{e<=6(e-t;ULvQOrTb$#Dwk zI7(RFBl}Kw&qb3x{7`nju6@j22eMNhS**x-h6CBgn3ZT~8Hb)n6ct7@%-NETSDI6% zhywQU!-kcbN)vx*uvX+iy$cyx%f(pQ0CvRN|~a#Om4>r6|Nru-QS`5fo`j&ouE4qK1I#+{})(h0uLWHr2a zCj=>viGR_wC}{zl#Q(0#Ov{byza0wcPdMP|L9bZAr$xiP52jz^ z*>)|0Z3y-@Fy)g{7jH1X6v=vn*~G7zcSOKzIg8bX-C!=_zvYZEUXWWN+R&Z5FtWmF zN#{T0IwPPouPP#7hqmXv9sx0ym1+Q|g-7^3%UqQg=R4G?C%-^)@`L$B(q?`!-|SV( zt$r=zzjn6{$^jq0_FXKFUt5naxS~u-0d8D_$^flK+T0_7-3np11YY_RY-^7@6ZB6B zN#BKCHSGHlTcH8k5&;;Xp}-3 z^THeL+sQtY_*UZ6CyT%~;(p@ruRuAXWc-6(+TewbW>co?6$N8^iI33EmJ#1ie2C6i z-PxzaFHzk;j}{A#5_f7u;243~apYbIyonTj)Vtr%f@hP(0=3lN65l2XUPX@15iWSNjB(7|@G?A4*jttKn$1m_;C5FY>FpokRyFq*vmDJ4tDYAGE zPLFRxO-Mrn+d{8zC5g26k$p7rqtsD5h{q8>s7526OngXe-^-k&$Rb5fiU^Pc zGLC%WdyRtc7MRT>es^3aFlHytp)P2O9fM;oahX2&)e41wycUw8f&x@>Td~EPPWya8 zF=OmGvg)J#EF@k-d?_8jk$5%nSra~lwZx~9pER<6mG}%%M=w*)zX=Sm@Y~4|{1d5+ zO|&464)AH>ZxU~uQ25Qn%P3L2u9V^0=yDg;uzGiGoog*j*3{S77~g11P6XuIgv8@= zZ*sC)*DEe}eNk~>yX~^1`6QLEDk+Lq@7In(-d0i?t#)aXm0vC?ja6^T4y%Zj#9IsF exz(Pd>9Fz@_IaA7S-j0YFIut-y`6#6^#1_Q>{0vx delta 2812 zcmZ8ieQZ-z6u+p;XLQv(;?iX@1FBJzjM#W z{b)~ftf{@o5UV&cccIap#`JM0jo)$E&$qjkBkjsjlQnsY!q}g6n*TS=_eYsFs75;+ zyvUT1+u>j}kqs8cdb>dC8-Py_t`OOg$QbZ$bUApFDI*)L5!)nhc#`J?-o5s*aX!sn zYcQqpjdo{EZa^LPMWhln7O0D94Og^4U56%J(K?jw<#Nv3( zEuaEp_%dUlhxxGms_cuDNyEWYsV*svrLh`d+|c}kk#Ee5`PB~K`_&)ED*5^BlAy!! ziX;VsZD|9NG#FIpyeCOZg4Z(IBJY!3QzZ@Y)Ldsm zqf8Ok=dLiWoS0+;bMtF|pURlhtxhQ2q3{5;&ZPNUV~|P=Q@Jr6TIBB+>g7HO+jaq* zzCfvWIwUQyPQdi0hIuHZkl!?Azj`OxY;CC z@XySdGkT$R^bPZy<}BszzY`N<6`+q|X}|CUOLo;(NF0#ZWcdkLe*2_q^0$t|egXga zDU4x@M8T_q&6Ylim#1XP*|2OFrSu06K#KP3VOv3T!;VI-5JK zF23D5S3U{lgh9%8>D_gss;?pXR)~F*0j&QYScPB|;@0z-HitCA3v5O5_j(>DZC2x2 zH2WvjT2!}@>X29KQok)H4JEzdzSbCfXBzY&GA7eDp2$n*7xOK=F|UlD$UDuo{8ca` z=H||V1$v|R7R=*a1zufVUAP2f8$VmPgU>0d1v!I%RMf)F#nrsFSOrcBzff$GPV#VZ zsnpJ6#kt;itFoZy5zXH+s`*+Y%rg@c(fsmu1MZEy6(=}I>3U{&e}!rQeHKw)NCMt6 z!K;Qz>1GE)o-DAJ3Qg(7i#O{38MpjHtQS@afqj;Nc?G@2stwBH*nAiwMjJ@L83Ry* z136{^Z^~d~_CHXBo(J9(aZP>q^o@){|DwzT>%*HAcn0niUYqZ*^u)h`fj415 ztdC!Qu4KgNhG!0yw`qR&G5rJ5Im}1e()qW}vT_sf4NPKZnegq$1z_0WCxOKT?*i)Z zj_D(d-*MW@i$O-OV@bk_CmTm8{3JG&!NXpIdIEl6xX|mVxYrxzN4=f|2Cmjg_MU?4<`%!G~s6m zPZWGF+du{n8L}w7Ji_gd>rZ1DjF~ZkTCsq*NNqC6xPYK5v6WS(;z@Hd};T+-Rioj;IM=Ym*|9l z8Fxq(4k|f(O?cxhfv+L_D&b{RS$xAs05`KKtcE%l-^yFWf5OIUDshcE{J^*aKdhjE z_Hu`gGIp2n5eksWtI7(!dnmnDVm%<1^jI1OC<|BJVi#$1;u{I?p%aB0io-&
  • >^ zU^biZi=uoldw~quWVlBOWq^*Oi16+d5%{ox*?hu1kDLU!R)imhz97{{{A$9@bm7cRVoqk-^r+J12$8LKCJ+$7S7UxY1$`zh@? zVj1=t;Y&pyy=(y)_QQ;gUrsj!A0Zq&$>BaFS}kC)U)Y9bHxtU+8F!Dncg~7p!5y{Z#;KyC1#`s(6p3ASh78>IxvZjPvDi@mL o@0*+MYAPRbCiCXXJcGN0AFW($s43^yD;FETst}P~3>MA!52x3pqW}N^ diff --git a/dsk/rd/user/apps/shell.emx/app.elf b/dsk/rd/user/apps/shell.emx/app.elf index b225746d0fef8c6e83a33f8c8bc52aff8194b651..09095062808c8d5e6890bdefcf4e27aa183bdd51 100755 GIT binary patch delta 2666 zcmaJ@eQZ-z6u+-q$G&L$y7glpwC}-2$1;}<$p(r*7$t9znF)d+f(8>Y8vKZCMvzgl zPVy{^gNsTq1d%`dV=;>%5(Qo7hFkWBfe?cUx=2J~&5Eg!Y>lAxoO{n(Sxvmjd-vVn zIrsd|*S&4J^YzXBb++Nqk@}Y6fXc*JrhfX|8E5egg)ze%Pb?_qKG)TP<}1z9%^7~n zwOmQ^#cEqo%Ei{8e1N~K)+lfB_f@@Uny~HsYc;rTiG#5T*f)VYN4FT}P2*tFWn=98 zd>|US1IlqAVTpaPHu`!~|70@fGXNOoSR7qR)X(SD?pKvA{;peZZve3wPDOiC%xTtV zG8rS*oBA6jaH18g8s^9>GA0clEd{c2urySpT4V=GdB*)pq2(9vE<2N5_{%rUlaY>c zf7yM!zx;`;@b~ij^Ff&5x~DCRI(z~ChG%CM&^;CWu4iQyaQM9ZVej)<;DUFvl~0F{ zXYtd%l@>nf3tOMMr<}L=y~%heph5=q#Fguz*DAFNa~(boy? zdkWxljIpT_@MF3_xB=F~Y3MJ}o3g{ANzE{O5+F!mDBu1Cp$KonX;en+DgJAPu6~rp z4hpAcJCv)Hp%SYt!p%SM<(2xbH9&-^@D3qi9QuhR-oxHA?X@UEn&`08h+a<_CVa>2 z4ul~YM$D6EX(*QgNg*4ywlMMt8hJ3B+M|x!f8y~>?uAA3$Qp;R#@|5*J7(`KDOiDm3zmQ@!Aj*guMXBlPG{q_nowj<1~C@z z#Elz-((Fw*C(g0>W>g9NugYVnlAo&r-Od|4h5U=4Qy0ewTQAy^W(Nv@J~3q%N7bsv zjbJ-(((3eUU<(J{jW(vR+l;NjHGGP(kT+{S-mewfG?kyw8Y_<$ONFIU&Q=NCJXWXj zpS8vn1CF`k4iKZ=Nx~nXZJP-9Ii>z;-mZrto9uG6k+gQf?1tTk^CUh%_zQ%uC#&^@ z?}1rmd8`R8d4%%u1!FHfXeUPc8iFtmz=L=h`~tyegf+t(M=v}mxJd3*2$ZqIgfAwC z&_Ns=9-&X!u^c@?_{LJ{5d08|@gclXe;eVWBHamPmXHtZ|%! z2MzU+qpbpE>`TIH3Z(uH!bb^TCnIKy2%mu2#cwUFiu4gPrU1wH@F2t19EKkWe|nx| z_yCn*;Li=}pQKtI5-4Ly!r#te{*&;FGO`HUNgM8vz+EH>YN#b`FeAaCe2E_;{UX9A zb86-w{2-+wM*3dDTc~E+1r9Y>K!R2xz*CC@9YEsSiX>hNYaB}mFQrUulQ3%{{1b|} zjqryEZ=vFQ2yaEa8VIU$+Il5znC7Qze9u-5n;kD$JdRDKUQEVv}uM9P+_%9C)q%?dp*2s0OjPDLr7i)Cb0y;k$T4mF8eg&qc S#oS%Dswjq+=&X7}sPtbVwDv^+ delta 2263 zcmZ{mdrVtZ9LLWs+>N$CAJ7No(Uxb&ChA5|GDfDP=8k27jWHjYk6<*}{!o&^GEr7$ z$Ktg!LVj5?mzW`Fw)u}yl8qP!BqWgj<7P6^s97+<$p%W}qU*9@{r&FwfsSM+Dd(Ke z?|Xi)bMFm3Ey?D-kZGj6zp}>Svh)+{07ldYQmt9ESBZW7{a1Y&FnMdRpI%zv5* z4yVVoKNBjQN0fJA$QdlG{wI~v!-;5jLfG`mR4S##dK1eyVW>R##p!mBTG3N3d0Jle zblwVCIfo&ZGXyocjW`#;U~W73Tw7qbs{wl4ZurV|0M~g?=dQzj6s(>WgLiqlA?2xq zr@Udb=fZ&3t(=8R-YTUJZg@+;k>`)>TaQhMsZBKXPIMNGP={{L;UA>6M57amrmIy_ zSAmo5qBuU$5kPyM+}XyiYO(OFK0}p!h*grO3AEo`$Lda(Hm&}KI~p>?FC8s?ETw!CTeGlvW%m;`iqeR7 zCq)M~sC8D0?V_5ozHdl>`i|izx!RNrY)Z0kb!*qV@5jRTQTbe&5cK%Vr@fJPT68g_ z4Yw5xE0AC0SA!TZZmgE^F^|KWMILy+sKDr4kJ|@-7rDUguZENUG7I%?{w#JNj@!z{ zc3K%PnCxl=nN@@@{twm?OkfZRF?xnfP&-Xctt0cdU=M`au23fOeMJ!!C99qqZzhrc zP;(2J4?fiVESYzb8E+&9#sfBGCtL~mU@5Spzb_ryL+MZ#EcIPO9SwT7O+pcW2(g{^ zNdaBKa+B8%gTX4F(;_JqOQRltibxXyJKPFZ)h4nYH19$)IrC&o{wSTnu?K&|pJ84N zyNfF##i~>_7#bm7$JvRh!)cNaF@J;kM;xt``5~Mgm`unn_36ytV*NGN7cf7{+>c)} zTt>u3HuSRL2Tsq${3LTPC-f3?U|!4J`HcA)=AT<-LfOm*n2#{OOdn*7FV3;y`g(aF zOdQ7-_@ho-=KxIx72+cE3v2p2%6yJH+RFM#=8dvq;b$Jl*$#h|vA1Gyh10FB)L`Kp8A(8}n_8Lsb^~e}hiX`Qe37jm67vm@@!pLiHwZ0DiY!YRdlwHytyZ diff --git a/flake.nix b/flake.nix index e3d78c1..de6e3db 100644 --- a/flake.nix +++ b/flake.nix @@ -14,6 +14,7 @@ nativeBuildInputs = with pkgs.${system}; [ # Compiler and assembler pkgsCross.x86_64-embedded.stdenv.cc + gcc # Required only to build Limine nasm # Provides a lot of handy tools for C/C++ dev e.g. formatter (clang-format) diff --git a/include/limine b/include/limine new file mode 160000 index 0000000..38ff2c8 --- /dev/null +++ b/include/limine @@ -0,0 +1 @@ +Subproject commit 38ff2c855aabb92e4cfa2cc7ef0c8af665ecba94 diff --git a/src/kernel/arch/amd64/amd64.c b/src/kernel/arch/amd64/amd64.c index 96aa003..d42e1ac 100644 --- a/src/kernel/arch/amd64/amd64.c +++ b/src/kernel/arch/amd64/amd64.c @@ -10,12 +10,6 @@ static void cpuid(u32 leaf, u32 *eax, u32 *ebx, u32 *ecx, u32 *edx) { : "a"(leaf), "c"(0)); } -static void cpuid_count(u32 leaf, u32 subleaf, u32 *eax, u32 *ebx, u32 *ecx, u32 *edx) { - __asm__ volatile("cpuid" - : "=a"(*eax), "=b"(*ebx), "=c"(*ecx), "=d"(*edx) - : "a"(leaf), "c"(subleaf)); -} - void amd64_detect(amd64_info_t *info) { if (!info) return; @@ -209,4 +203,4 @@ void amd64_init_optimizations(void) { if (ecx & AMD_FEATURE_SVM) { printf("[AMD64] AMD-V virtualization available\n"); } -} +} \ No newline at end of file diff --git a/src/kernel/console/console.h b/src/kernel/console/console.h index f22b598..3b77c52 100644 --- a/src/kernel/console/console.h +++ b/src/kernel/console/console.h @@ -1,7 +1,6 @@ #ifndef CONSOLE_H #define CONSOLE_H - #include "graph/uno.h" #include "graph/dos.h" #include "graph/print.h" @@ -38,7 +37,7 @@ extern driver_module console_module; #define WRONG_COMMAND_CL GFX_RED // function header macro for command declarations it should be easier to port it to future syscalls -#define FHDR(name) void name(const char* s) +#define FHDR(name) void name() typedef struct { void (*func)(const char*); @@ -83,4 +82,4 @@ console_cmd_t* console_find_cmd(const char *name); int parse_color(const char *color_str, u32 *out_color); void parse_and_execute_chained(const char *input); -#endif +#endif \ No newline at end of file diff --git a/src/kernel/file_systems/fat32/fat32.c b/src/kernel/file_systems/fat32/fat32.c index 8fd347d..e2c1ec5 100644 --- a/src/kernel/file_systems/fat32/fat32.c +++ b/src/kernel/file_systems/fat32/fat32.c @@ -461,7 +461,7 @@ int fat32_read(file_t* this_file, void* buffer, size_t size) uint32_t skipped_clusters = (uint32_t)(this_file->readPos / (bootSector.sectors_per_cluster * bootSector.bytes_per_sector)); - for(int i = 0; i < skipped_clusters; i++) + for(uint32_t i = 0; i < skipped_clusters; i++) current_cluster = get_next_cluster(current_cluster); uint32_t offset = this_file->readPos - @@ -512,4 +512,4 @@ int fat32_test_write(void) { log("[FAT32]", "finish\n", success); return 0; -} +} \ No newline at end of file diff --git a/src/kernel/file_systems/vfs/devfs/devfs.c b/src/kernel/file_systems/vfs/devfs/devfs.c index f84ea3d..9bb29a7 100644 --- a/src/kernel/file_systems/vfs/devfs/devfs.c +++ b/src/kernel/file_systems/vfs/devfs/devfs.c @@ -17,6 +17,8 @@ static int devfs_open(fs_node *node, fs_file *file) { if (!dev->handle) return -1; } + (void)file; + return 0; } @@ -137,4 +139,4 @@ int devfs_register_device(driver_module *mod) BOOTUP_PRINT("\n",white()); return 0; -} +} \ No newline at end of file diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 6eb1485..04cb708 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -156,7 +156,6 @@ void _start(void) paging_init(hhdm_request.response); // kernel lifetime - u64 phys_klime = map_region_alloc(hhdm_request.response, HEAP_START, HEAP_SIZE); klime_t *klime = klime_init((u64 *)HEAP_START, HEAP_SIZE); if (!framebuffer_request.response) { @@ -168,8 +167,6 @@ void _start(void) } #if ENABLE_GLIME - u64 phys_glime = map_region_alloc(hhdm_request.response, GRAPHICS_START, GRAPHICS_SIZE); - limine_framebuffer_t *fb = framebuffer_request.response->framebuffers[0]; glime_response_t glres; @@ -356,4 +353,4 @@ void _start(void) panic("USE_HCF; FAILED --> USING PANIC"); #endif -}; +} \ No newline at end of file diff --git a/src/kernel/kernelslot/slot_write.c b/src/kernel/kernelslot/slot_write.c index 5e9faa2..014fe97 100644 --- a/src/kernel/kernelslot/slot_write.c +++ b/src/kernel/kernelslot/slot_write.c @@ -12,7 +12,7 @@ int slot_write_limine_conf(char slot) if (slot != 'A' && slot != 'B') return -1; int target_entry = (slot == 'A') ? 0 : 1; - + (void)target_entry; return 0; -} +} \ No newline at end of file diff --git a/src/kernel/mem/glime/glime.c b/src/kernel/mem/glime/glime.c index be56230..1cc5244 100644 --- a/src/kernel/mem/glime/glime.c +++ b/src/kernel/mem/glime/glime.c @@ -117,9 +117,9 @@ void glime_commit(glime_t *glime) { //clear all - for (int i = 0; i < glime->dirty_boxes_len; i++) { + for (u64 i = 0; i < glime->dirty_boxes_len; i++) { gbox_t db = glime->dirty_boxes[i]; - for (int y = 0; y < db.height; y++) { + for (u64 y = 0; y < db.height; y++) { u32 src_offset = (db.y + y) * glime->glres.width + db.x; u32 dst_offset = (db.y + y) * pitch_pixels + db.x; memset(&fb[dst_offset], 0, db.width * sizeof(u32)); @@ -203,4 +203,4 @@ void glime_keyboard_handler(glime_t *glime) { glime_commit(glime); } -} +} \ No newline at end of file diff --git a/src/kernel/mem/glime/kb.c b/src/kernel/mem/glime/kb.c index c9dc78e..b1e9bba 100644 --- a/src/kernel/mem/glime/kb.c +++ b/src/kernel/mem/glime/kb.c @@ -16,22 +16,6 @@ static const unsigned char scancode_to_ascii[128] = { [0x37]='*',[0x38]=0,[0x39]=' ',[0x3A]=0 }; -static const unsigned char scancode_to_ascii_shift[128] = { - [0x00]=0,[0x01]=0, - [0x02]='!',[0x03]='"',[0x04]='#',[0x05]='$',[0x06]='%', - [0x07]='&',[0x08]='/',[0x09]='(',[0x0A]=')',[0x0B]='=', - [0x0C]='?',[0x0D]='`',[0x0E]=0,[0x0F]=0, - [0x10]='Q',[0x11]='W',[0x12]='E',[0x13]='R',[0x14]='T', - [0x15]='Y',[0x16]='U',[0x17]='I',[0x18]='O',[0x19]='P', - [0x1A]=0x82,[0x1B]='*',[0x1C]='\n',[0x1D]=0, - [0x1E]='A',[0x1F]='S',[0x20]='D',[0x21]='F',[0x22]='G', - [0x23]='H',[0x24]='J',[0x25]='K',[0x26]='L',[0x27]=0x81, - [0x28]=0x80,[0x29]='>',[0x2A]=0,[0x2B]='\'',[0x2C]='Z', - [0x2D]='X',[0x2E]='C',[0x2F]='V',[0x30]='B',[0x31]='N', - [0x32]='M',[0x33]=';',[0x34]=':',[0x35]='_',[0x36]=0, - [0x37]='*',[0x38]=0,[0x39]=' ',[0x3A]=0 -}; - glime_keyboardrb_t *glime_keyboard_init(glime_t *glime, u64 count) { if (!glime || count == 0) return NULL; @@ -80,4 +64,4 @@ int keyboard_next(glime_keyboardrb_t *kbrb, glime_key_event_t *out) { u8 keyboard_event_to_char(glime_key_event_t event) { if (event.scancode >= 128) return 0; return scancode_to_ascii[event.scancode]; -} +} \ No newline at end of file diff --git a/src/kernel/mem/glime/session.c b/src/kernel/mem/glime/session.c index 6431d76..cc9321c 100644 --- a/src/kernel/mem/glime/session.c +++ b/src/kernel/mem/glime/session.c @@ -31,7 +31,7 @@ gsession_t *gsession_init(glime_t *glime, u8 *name, u64 width) { int gsession_attach(glime_t *glime, gsession_t *gsession, u8 *workspace_name) { if (!glime || !gsession || !workspace_name) return 1; - for (int i = 0; i < glime->workspaces_total; i++) { + for (u64 i = 0; i < glime->workspaces_total; i++) { gworkspace_t *ws = glime->workspaces[i]; u8 *wsname = ws->name; int seek = 0; @@ -64,7 +64,7 @@ int gsession_attach(glime_t *glime, gsession_t *gsession, u8 *workspace_name) { int gsession_detach(gworkspace_t *gworkspace, gsession_t *gsession) { if (!gworkspace || !gsession) return 1; u8 *ssname = gsession->name; - for (int i = 0; i < gworkspace->sessions_total; i++) { + for (u64 i = 0; i < gworkspace->sessions_total; i++) { gsession_t *session = gworkspace->sessions[i]; u8 *ssname_loop = session->name; int seek = 0; @@ -218,4 +218,4 @@ void gsession_put_at_char_dummy(gsession_t *gsession, u8 c, u32 x, u32 y, u32 co } } -} +} \ No newline at end of file diff --git a/src/kernel/mem/glime/workspace.c b/src/kernel/mem/glime/workspace.c index d0b0f3c..6f92d10 100644 --- a/src/kernel/mem/glime/workspace.c +++ b/src/kernel/mem/glime/workspace.c @@ -38,7 +38,7 @@ int gworkspace_init(glime_t *glime, u8 *name, u64 pos) { gworkspace_t *gworkspace_get_name(glime_t *glime, u8 *workspace_name) { if (!glime) return NULL; - for (int i = 0; i < glime->workspaces_total; i++) { + for (u64 i = 0; i < glime->workspaces_total; i++) { gworkspace_t *ws = glime->workspaces[i]; u8 *wsname = ws->name; int seek = 0; @@ -64,7 +64,7 @@ gworkspace_t *gworkspace_get_name(glime_t *glime, u8 *workspace_name) { gworkspace_t *gworkspace_get_pos(glime_t *glime, u64 pos) { if (!glime) return NULL; - for (int i = 0; i < glime->workspaces_total; i++) { + for (u64 i = 0; i < glime->workspaces_total; i++) { gworkspace_t *ws = glime->workspaces[i]; if (ws->pos_y == pos) return ws; } @@ -83,11 +83,10 @@ int gworkspace_posx_get(gworkspace_t *gworkspace, u64 *out) { u64 list_len = gworkspace->sessions_len; u64 ret = 0; - for (int i = 0; i < list_len; i++) { + for (u64 i = 0; i < list_len; i++) { ret += gworkspace->sessions[i]->box.width + gworkspace->gap_x; } *out = ret; return 0; } - diff --git a/src/kernel/mem/klime/klime.c b/src/kernel/mem/klime/klime.c index ec94b17..913fee2 100644 --- a/src/kernel/mem/klime/klime.c +++ b/src/kernel/mem/klime/klime.c @@ -34,6 +34,7 @@ klime_t *klime_init(u64 *ptr, u64 size) { } void klime_setup_slab(klime_t *klime) { + (void)klime; } u64 *klime_create(klime_t *klime, u64 size) { @@ -79,4 +80,4 @@ u64 klime_get_used_size(klime_t *klime) { u64 klime_get_free_size(klime_t *klime) { return klime->total_heap - klime->used_heap; -} +} \ No newline at end of file diff --git a/src/kernel/mem/paging/paging.c b/src/kernel/mem/paging/paging.c index a5b124e..b7827c6 100644 --- a/src/kernel/mem/paging/paging.c +++ b/src/kernel/mem/paging/paging.c @@ -99,13 +99,13 @@ void paging_map_page( ((physical_addr & 0x000FFFFFFFFFF000) | flags) & ~PTE_NX; // Invalidate TLB entry - asm volatile("invlpg (%0)" : : "r" (virtual_addr) : "memory"); + __asm__ volatile("invlpg (%0)" : : "r" (virtual_addr) : "memory"); } void paging_init(limine_hhdm_response_t *hpr) { u64 current_cr3; - asm volatile("mov %%cr3, %0" : "=r" (current_cr3)); + __asm__ volatile("mov %%cr3, %0" : "=r" (current_cr3)); kernel_pml4 = (page_table_t*)((current_cr3 & 0x000FFFFFFFFFF000) + hpr->offset); } @@ -177,4 +177,4 @@ void map_ulime_region(limine_hhdm_response_t *hpr, u64 phys_start, u64 size) { paging_map_page(hpr, virt_addr, phys_addr, PTE_PRESENT | PTE_WRITABLE); } } -} +} \ No newline at end of file diff --git a/src/kernel/mem/paging/paging_proc.c b/src/kernel/mem/paging/paging_proc.c index a6241fc..3df20be 100644 --- a/src/kernel/mem/paging/paging_proc.c +++ b/src/kernel/mem/paging/paging_proc.c @@ -80,5 +80,5 @@ void paging_map_page_proc( pt->entries[pt_index] = (physical_addr & 0x000FFFFFFFFFF000) | flags; - asm volatile("invlpg (%0)" : : "r"(virtual_addr) : "memory"); -} + __asm__ volatile("invlpg (%0)" : : "r"(virtual_addr) : "memory"); +} \ No newline at end of file diff --git a/src/kernel/mem/sfence.h b/src/kernel/mem/sfence.h index 2959c2b..2208c5d 100644 --- a/src/kernel/mem/sfence.h +++ b/src/kernel/mem/sfence.h @@ -2,5 +2,5 @@ static inline void store_fence() { - asm volatile("sfence" ::: "memory"); -} + __asm__ volatile("sfence" ::: "memory"); +} \ No newline at end of file diff --git a/src/userspace/apps/login/login.elf b/src/userspace/apps/login/login.elf index 342a9397aeb9e0f141597b81096b41bf5ce527a9..1f20fd3974b021f759048d35939378db5e195cd9 100755 GIT binary patch delta 2660 zcmZXWeQZ-z6u|H6)=^frevGbLyKXIGbeUw>p%5HygQdxHM%kFKkZdZF$dDi!x1b^v zC=+WlGrXV#gJBSLx_^KfK-9KjlerPIIf?Nj#F>DW6q6BA8Xc?Wyn9}|;!WOr_x{f3 zJ@=#SYdYWDQ?7}-4^}M8t~D{GJz+Zi+)2ZN1rlR&U^v>ZXYBSmIdEO}-*n1>T~Rsc zjiO)&Ut%oC9nWQ~XT%fnOnCnGB=}>-?OD|Q!uWKn$_Et(dv6|x2;n_ORu`R^NhHGi zu=h3gj$$tayz6VIF9E0qMU; zPhoEcdmlpYJmwZ#9?mcUI1C_`*%Om`{N8E)vU#3S@wfvmoT#vkA2M&&LAgeh+8r|& zackaz6nHRU0=@iY0IDY4tSQWbBqdev^9wL;p+zq3|KuW?O5X-d7Upk&)_9V|~!y8}O6kW@frK)YV(t$~l>EZZOHaDsf57#Tw2u)QV&-(!(?;);Q%2*_QkcBe%i z)*5vDbU~hPW)3(Fc;hiMXxzeqi0~VBgW6xcH#ynTHBpH4|A71m>O}!f@ev@QS_zTU!oj&!GsCa#cZ;CJ+eil78P;C!O>fS4Ml<4gcM@<&Si*CVDqH)qYIlFl0C&MEbQJCNx97W=+ z{IAj$8$au?q*ed2XF?R^ktl877Z0J|JGpUvas8lbOQ$QPSEBUo&XgG6e4@ zzMc4$9KkDycfi*K$uz>{iYOCb&|ZZH{S;C(CqigGc#!uR6n!7_D44O=Nw8K3SRwIl z;-6|nfMO(sR z56-|&i7rQywW1V0wh^V!@NWP*I!*~KRBFUn27HlQXtQAL zv1JqAde52}h#M%;pipO4;zM&qLahql%2+W8zM@^%NCsuZmrBB5FO0EO5I;%*HVDi- z#H(q>^~7t45AoiGR^KQ0?BRz=x}T=uAgg-fAJeqeb=V1VEXNG_v6FrS>AyugX*KaC z;(rPMw&X&zkYIrJq-mh3?2e?_ZR8E^%5414h934f`9Alu>^eGOwJv_qU8AXUaZP!R VrhO4#U0#ztg!dn`N(QFI{{dzB68iuE delta 2365 zcmZ9Oe@v8R9KfIVl^5|ixjW$Q;10M01x}cNKe7-d7QWjXE|rLBmd-Xejn-g!v{j?a zow}|IBfquLT#_R<$Ul11bZYHO`wHQTfuJ1u5xUK6tK_kF%#@@(%t-{#Z>1cq9}@Poq~K8v6!SR7Del z!|`C7(R+A5y3F%{e1NW1WqGJ zW%Q+#zOX)1q=b8BRNK+Z7+ps0B~QB@4a4wR?mj5Y8-xpaEjSlJU49n~<*$JeXCb8X zt02eaf+pvSxNb)|3?I4Lm}P<8-3`6&4RG15qdp&M3S7zn=mj-O9|Q}QL95pl3TDgR zYstlUHc{<&nhwXii_C&2Z(!9(zatusD@H_%OS`XevVAEI#e;s-pO!1z*cFU+J@ONE z;yr3BMv9|8I%nPOG{&{pa76=Cgz&TuqKG#8ks1*_oyx_`ZQlRSxc$cSj`;i$)DT}B4D zOC#zmfHNL%_4A}{(5DVK#AnYw(u0w7&nYY4M-~S@=q(`{o;BkMzt$ z^%=C^u}BDd8DscdmP0kg$!xa!M;>XIe%?a6U@;82MZ zJ}p@b9$&cyLx|)6R-eFSRZAC1<{8M=Rgzjmxa)tgp5PQFlMp{2S+Y2z--uj{Z6Nhk zIN=Lu^fo2129FkD$!TdLb;ta2J1sYx%MoWDJmt43n_-vVqn$^E7=6>PDy!uE5F!tW zDipCrh$hl@(hm*~KE%&4-vcA1m1>sAk0xcGxWy!pXds`3Wv)H}eme$GAJEm>*|e zmn{p*VSbW%BlB}~`RKzj#EQL(rGri!#~FNR2YW4&Z#Ah9Uoo%cLg)I6XJ^`XXwtr& z?JqFD!uCGqmvFYj%H`hBFlX*z&Cl#17G(I9`G=V@1F-!~<|#f)+>|+PGta?476j%p zPct8tI}3?tNsEL2?9rAhvZOnT>gjTM?G#!p(dW zpV>1ee@O^RL-QK4XgFT4}nIt&JVdO8r2=;@brpC%NG@7DMXDx H*OLDLw9sgz diff --git a/src/userspace/apps/login/login.o b/src/userspace/apps/login/login.o index 0f7f3b656b279b147231de75c8cfea1e7069a0ed..65a53f9b7b52b4951668f75953c266a0dc3c9c17 100644 GIT binary patch delta 661 zcmZ8dJ4nM&6n!@~X{>`*(GV9Wspuea5m6`()zqarh>pcc1QF5VAYwytsG?LZqPW;e zI<{MJ=m+sPsU4j}5Gr-h#i<(aYd%9S+{1bIoOAPDs@?IP)PTU`lP57%NhDLL}661F6ymF^mmt7Le^HsG`D|$kMnkQ9* zR3cP|#7!!-fk2qsM6O-mod@SSiOMbCjY!8cQNQ40*1bB;Bp zjP=^{oPA!#vS$HQRK-*1$DFA6hv|3l@=;6F0)C4Meu=UgX;Ox`jcNt`lA@-Y)GfS&s>5h{XmJvxzS} z6#~J6E6#GUK;ql_;iCXBj8C3kNaHu<6!wUF(P2J{P8Ws1fH{5o4`nQDY8vKZCMvzgl zPVy{^gNsTq1d%`dV=;>%5(Qo7hFkWBfe?cUx=2J~&5Eg!Y>lAxoO{n(Sxvmjd-vVn zIrsd|*S&4J^YzXBb++Nqk@}Y6fXc*JrhfX|8E5egg)ze%Pb?_qKG)TP<}1z9%^7~n zwOmQ^#cEqo%Ei{8e1N~K)+lfB_f@@Uny~HsYc;rTiG#5T*f)VYN4FT}P2*tFWn=98 zd>|US1IlqAVTpaPHu`!~|70@fGXNOoSR7qR)X(SD?pKvA{;peZZve3wPDOiC%xTtV zG8rS*oBA6jaH18g8s^9>GA0clEd{c2urySpT4V=GdB*)pq2(9vE<2N5_{%rUlaY>c zf7yM!zx;`;@b~ij^Ff&5x~DCRI(z~ChG%CM&^;CWu4iQyaQM9ZVej)<;DUFvl~0F{ zXYtd%l@>nf3tOMMr<}L=y~%heph5=q#Fguz*DAFNa~(boy? zdkWxljIpT_@MF3_xB=F~Y3MJ}o3g{ANzE{O5+F!mDBu1Cp$KonX;en+DgJAPu6~rp z4hpAcJCv)Hp%SYt!p%SM<(2xbH9&-^@D3qi9QuhR-oxHA?X@UEn&`08h+a<_CVa>2 z4ul~YM$D6EX(*QgNg*4ywlMMt8hJ3B+M|x!f8y~>?uAA3$Qp;R#@|5*J7(`KDOiDm3zmQ@!Aj*guMXBlPG{q_nowj<1~C@z z#Elz-((Fw*C(g0>W>g9NugYVnlAo&r-Od|4h5U=4Qy0ewTQAy^W(Nv@J~3q%N7bsv zjbJ-(((3eUU<(J{jW(vR+l;NjHGGP(kT+{S-mewfG?kyw8Y_<$ONFIU&Q=NCJXWXj zpS8vn1CF`k4iKZ=Nx~nXZJP-9Ii>z;-mZrto9uG6k+gQf?1tTk^CUh%_zQ%uC#&^@ z?}1rmd8`R8d4%%u1!FHfXeUPc8iFtmz=L=h`~tyegf+t(M=v}mxJd3*2$ZqIgfAwC z&_Ns=9-&X!u^c@?_{LJ{5d08|@gclXe;eVWBHamPmXHtZ|%! z2MzU+qpbpE>`TIH3Z(uH!bb^TCnIKy2%mu2#cwUFiu4gPrU1wH@F2t19EKkWe|nx| z_yCn*;Li=}pQKtI5-4Ly!r#te{*&;FGO`HUNgM8vz+EH>YN#b`FeAaCe2E_;{UX9A zb86-w{2-+wM*3dDTc~E+1r9Y>K!R2xz*CC@9YEsSiX>hNYaB}mFQrUulQ3%{{1b|} zjqryEZ=vFQ2yaEa8VIU$+Il5znC7Qze9u-5n;kD$JdRDKUQEVv}uM9P+_%9C)q%?dp*2s0OjPDLr7i)Cb0y;k$T4mF8eg&qc S#oS%Dswjq+=&X7}sPtbVwDv^+ delta 2263 zcmZ{mdrVtZ9LLWs+>N$CAJ7No(Uxb&ChA5|GDfDP=8k27jWHjYk6<*}{!o&^GEr7$ z$Ktg!LVj5?mzW`Fw)u}yl8qP!BqWgj<7P6^s97+<$p%W}qU*9@{r&FwfsSM+Dd(Ke z?|Xi)bMFm3Ey?D-kZGj6zp}>Svh)+{07ldYQmt9ESBZW7{a1Y&FnMdRpI%zv5* z4yVVoKNBjQN0fJA$QdlG{wI~v!-;5jLfG`mR4S##dK1eyVW>R##p!mBTG3N3d0Jle zblwVCIfo&ZGXyocjW`#;U~W73Tw7qbs{wl4ZurV|0M~g?=dQzj6s(>WgLiqlA?2xq zr@Udb=fZ&3t(=8R-YTUJZg@+;k>`)>TaQhMsZBKXPIMNGP={{L;UA>6M57amrmIy_ zSAmo5qBuU$5kPyM+}XyiYO(OFK0}p!h*grO3AEo`$Lda(Hm&}KI~p>?FC8s?ETw!CTeGlvW%m;`iqeR7 zCq)M~sC8D0?V_5ozHdl>`i|izx!RNrY)Z0kb!*qV@5jRTQTbe&5cK%Vr@fJPT68g_ z4Yw5xE0AC0SA!TZZmgE^F^|KWMILy+sKDr4kJ|@-7rDUguZENUG7I%?{w#JNj@!z{ zc3K%PnCxl=nN@@@{twm?OkfZRF?xnfP&-Xctt0cdU=M`au23fOeMJ!!C99qqZzhrc zP;(2J4?fiVESYzb8E+&9#sfBGCtL~mU@5Spzb_ryL+MZ#EcIPO9SwT7O+pcW2(g{^ zNdaBKa+B8%gTX4F(;_JqOQRltibxXyJKPFZ)h4nYH19$)IrC&o{wSTnu?K&|pJ84N zyNfF##i~>_7#bm7$JvRh!)cNaF@J;kM;xt``5~Mgm`unn_36ytV*NGN7cf7{+>c)} zTt>u3HuSRL2Tsq${3LTPC-f3?U|!4J`HcA)=AT<-LfOm*n2#{OOdn*7FV3;y`g(aF zOdQ7-_@ho-=KxIx72+cE3v2p2%6yJH+RFM#=8dvq;b$Jl*$#h|vA1Gyh10FB)L`Kp8A(8}n_8Lsb^~e}hiX`Qe37jm67vm@@!pLiHwZ0DiY!YRdlwHytyZ diff --git a/src/userspace/apps/shell/shell.o b/src/userspace/apps/shell/shell.o index dfa4a102714bde80d9d5dc800b43e77c4b5c2c31..b108e1d6eae9833a3057d0dc2a5200829f3bfab9 100644 GIT binary patch delta 374 zcmca0@<3#Q24liR%~x!Omkhrd{+}$&_=5w;JPGD-Gp%PVnY^1xkx^&zU8cp8>zLIT zZ%tmxEYHNiIQbZJ7myRkqAqxg0SXu)w9@2-EaHDb8=S;ZNfz~qw22Z8K0VD_2GAA!1Fqv_&?>ijxckxg8Zj|svBnFo^j^B)3^ zO%4Rg-bIoH*$R_=KDm)ioblu2nQZowFt;ZFZkUiHCXeCU!H%g2^x0 z?U{U-Cx2uXo9w`$0b@3BXfXOrUddt4ST*@2keo1ClhdB@z~oF$dnOK+$*VZ+7&Rup T&YOG@$X*6!ADhg`CN6mwO&2#*=kv*iKv@PR2p41?NaoLf2-q<>5h!~eNfu-) zO!nsFiEQGGk0-BWvzLUqJpm{W0w66Qd}cBu`+lZ>Op_0>n=vL#{>g67WXC+2kwt8B z0EY&QIe|li(Qfii4tvI&$v=T)!(>ZNd&UiuD>?0%elSno#c9VVG5IH_J?9TLkl73j Jfs-9M=YEmo4P5UFF?rS@XY41t;5jJPBRsvwIpk{vZ?z$v*9esPa34a&wPf zZXUiR`(WtUVt3E^t=41|Z^ zyf!^gvT}cVhPNSJ337`xeN=!<+1D79eV$>txiQE*G2mxd_VovU`Zp9BnWah>K~hp_ zZX9LqMA=_8Ec=&1l8~M60@~}aMj)blW#4LmsSsea<&4=DQi;LW_`vUY0E>=HVhr=> zmarNh1?FaSOOq+{jI0b@Duh*c0&?E%hhbTDHkF+9{yn6x=tbiYUzKHwQYL%SEaT3> zX-VLLtmJX*T$X*T+?HMN=x!);cpq)qxoed4s>f0#yf{e<=6(e-t;ULvQOrTb$#Dwk zI7(RFBl}Kw&qb3x{7`nju6@j22eMNhS**x-h6CBgn3ZT~8Hb)n6ct7@%-NETSDI6% zhywQU!-kcbN)vx*uvX+iy$cyx%f(pQ0CvRN|~a#Om4>r6|Nru-QS`5fo`j&ouE4qK1I#+{})(h0uLWHr2a zCj=>viGR_wC}{zl#Q(0#Ov{byza0wcPdMP|L9bZAr$xiP52jz^ z*>)|0Z3y-@Fy)g{7jH1X6v=vn*~G7zcSOKzIg8bX-C!=_zvYZEUXWWN+R&Z5FtWmF zN#{T0IwPPouPP#7hqmXv9sx0ym1+Q|g-7^3%UqQg=R4G?C%-^)@`L$B(q?`!-|SV( zt$r=zzjn6{$^jq0_FXKFUt5naxS~u-0d8D_$^flK+T0_7-3np11YY_RY-^7@6ZB6B zN#BKCHSGHlTcH8k5&;;Xp}-3 z^THeL+sQtY_*UZ6CyT%~;(p@ruRuAXWc-6(+TewbW>co?6$N8^iI33EmJ#1ie2C6i z-PxzaFHzk;j}{A#5_f7u;243~apYbIyonTj)Vtr%f@hP(0=3lN65l2XUPX@15iWSNjB(7|@G?A4*jttKn$1m_;C5FY>FpokRyFq*vmDJ4tDYAGE zPLFRxO-Mrn+d{8zC5g26k$p7rqtsD5h{q8>s7526OngXe-^-k&$Rb5fiU^Pc zGLC%WdyRtc7MRT>es^3aFlHytp)P2O9fM;oahX2&)e41wycUw8f&x@>Td~EPPWya8 zF=OmGvg)J#EF@k-d?_8jk$5%nSra~lwZx~9pER<6mG}%%M=w*)zX=Sm@Y~4|{1d5+ zO|&464)AH>ZxU~uQ25Qn%P3L2u9V^0=yDg;uzGiGoog*j*3{S77~g11P6XuIgv8@= zZ*sC)*DEe}eNk~>yX~^1`6QLEDk+Lq@7In(-d0i?t#)aXm0vC?ja6^T4y%Zj#9IsF exz(Pd>9Fz@_IaA7S-j0YFIut-y`6#6^#1_Q>{0vx delta 2812 zcmZ8ieQZ-z6u+p;XLQv(;?iX@1FBJzjM#W z{b)~ftf{@o5UV&cccIap#`JM0jo)$E&$qjkBkjsjlQnsY!q}g6n*TS=_eYsFs75;+ zyvUT1+u>j}kqs8cdb>dC8-Py_t`OOg$QbZ$bUApFDI*)L5!)nhc#`J?-o5s*aX!sn zYcQqpjdo{EZa^LPMWhln7O0D94Og^4U56%J(K?jw<#Nv3( zEuaEp_%dUlhxxGms_cuDNyEWYsV*svrLh`d+|c}kk#Ee5`PB~K`_&)ED*5^BlAy!! ziX;VsZD|9NG#FIpyeCOZg4Z(IBJY!3QzZ@Y)Ldsm zqf8Ok=dLiWoS0+;bMtF|pURlhtxhQ2q3{5;&ZPNUV~|P=Q@Jr6TIBB+>g7HO+jaq* zzCfvWIwUQyPQdi0hIuHZkl!?Azj`OxY;CC z@XySdGkT$R^bPZy<}BszzY`N<6`+q|X}|CUOLo;(NF0#ZWcdkLe*2_q^0$t|egXga zDU4x@M8T_q&6Ylim#1XP*|2OFrSu06K#KP3VOv3T!;VI-5JK zF23D5S3U{lgh9%8>D_gss;?pXR)~F*0j&QYScPB|;@0z-HitCA3v5O5_j(>DZC2x2 zH2WvjT2!}@>X29KQok)H4JEzdzSbCfXBzY&GA7eDp2$n*7xOK=F|UlD$UDuo{8ca` z=H||V1$v|R7R=*a1zufVUAP2f8$VmPgU>0d1v!I%RMf)F#nrsFSOrcBzff$GPV#VZ zsnpJ6#kt;itFoZy5zXH+s`*+Y%rg@c(fsmu1MZEy6(=}I>3U{&e}!rQeHKw)NCMt6 z!K;Qz>1GE)o-DAJ3Qg(7i#O{38MpjHtQS@afqj;Nc?G@2stwBH*nAiwMjJ@L83Ry* z136{^Z^~d~_CHXBo(J9(aZP>q^o@){|DwzT>%*HAcn0niUYqZ*^u)h`fj415 ztdC!Qu4KgNhG!0yw`qR&G5rJ5Im}1e()qW}vT_sf4NPKZnegq$1z_0WCxOKT?*i)Z zj_D(d-*MW@i$O-OV@bk_CmTm8{3JG&!NXpIdIEl6xX|mVxYrxzN4=f|2Cmjg_MU?4<`%!G~s6m zPZWGF+du{n8L}w7Ji_gd>rZ1DjF~ZkTCsq*NNqC6xPYK5v6WS(;z@Hd};T+-Rioj;IM=Ym*|9l z8Fxq(4k|f(O?cxhfv+L_D&b{RS$xAs05`KKtcE%l-^yFWf5OIUDshcE{J^*aKdhjE z_Hu`gGIp2n5eksWtI7(!dnmnDVm%<1^jI1OC<|BJVi#$1;u{I?p%aB0io-&
  • >^ zU^biZi=uoldw~quWVlBOWq^*Oi16+d5%{ox*?hu1kDLU!R)imhz97{{{A$9@bm7cRVoqk-^r+J12$8LKCJ+$7S7UxY1$`zh@? zVj1=t;Y&pyy=(y)_QQ;gUrsj!A0Zq&$>BaFS}kC)U)Y9bHxtU+8F!Dncg~7p!5y{Z#;KyC1#`s(6p3ASh78>IxvZjPvDi@mL o@0*+MYAPRbCiCXXJcGN0AFW($s43^yD;FETst}P~3>MA!52x3pqW}N^ diff --git a/src/userspace/bin/echo/echo.elf b/src/userspace/bin/echo/echo.elf index c6706e71c1f83dbad420bea0ac870e447396ea27..b4df898cf58d2c76f8134c8fe68c93ed1dd3926e 100755 GIT binary patch delta 2467 zcmaKuYfM~46vyWR7bv^zgMAfPme(Rk4Rl+BVw+HkYp$hjsFWBJ(b5>2R6|UK4@Pip zwzO{7nvy}&q_v6tU}Df1LW-{zC?r6QL{b|cC=E4Y*DQ%k(v*!^#dBuPWq}V)a`)c( zo&U^v%()k)8>bJPe^@E&tE|boYGPu1YZ^R0U{>yMr=`$1XkvRt72pv=Hm|pASB~)$ zmTmQ)8W{`wmx2+c)}QFHe}#&Xp*8KhU=I2dO4y&+I*j~|r9IPk%XicF zz_-eMIc|Q$dL{|(S@)%bRodQ3^6NP}(}1t?Wrv-o*{YM4dAo-nvb7}vDkg39NswU= zCMRd@&ANkmJ5Tag9lLe@iNmiyE;}lfHtu#-Dc!u$S(=o0I12+48H{OR^%~xK$GY5K zU={!T9e#j*gfuv&Xd(5Y)b+#7Jj_mwbrymBw49koX0@qO#XI(xlFuI*nh#E zID0c4+()9S=qx&oi7Zyschb#g3u+Y;&+=5|HD|IturJ$zKQO#-DJ+$ZnfNoFs@hkK z8_hexoC1Q&#Gk-5Fdl~s`A@{__?MpYfGt(7ZWJ2E_QO2~R0kBv2Z$dgolPOgd;M{<^NG z>ga*KMckMr_4JpEohF_~d;%Mc1sFR=hSYSqK(EAm#J6veyan|zF2RKv9Hc-W6O^$l z#22Zet;9bju2O|ciGK!n3vVsT4;&=Vy=1vgD_omAj1zxIl@VPe{Wrv4AkSxr-y+_) z$@9;|du3(;)#;Vpm|^AUD@Lw1ljmQ;-F;s)G2h zl$3ssN5GD;_^5O9NncI+8&v(h#A}FG$f)v|e!#oQ@CP-Jb*Qi8M zchA>7?{%_cvaSDaWy`th9l666VaPSh$6X&-l{RqN{N}ht>>5)LPu^>WR@*jZ4;;5` zZJo^%BBm`yl1ihN4i$b*jL}b4xg%(fXlW&;rJJi)hI-J$Y1vu%f zQTk!XSr-1XQ;+_rM;1%;Xeg;id*<{=C@H%0^q7XKTDeIGJ*Jk>oY?#G2#$iqCgO-2x&JT`uu47VI7nNHqf8^RM9%c+xIFVH zooUjRPS_{ZdgPHKqgxAB$x~hObc*6vD0T3l%b#;AwUSextHgQ}`>{}m^f}7cS2 zjRUt0##*%|oQ72YYVo#cD2=m;{D(4ypox()9*h^c#}xQ(vtKPmw^PRM&K=rq^Atgw z$Ftgo)(L0LbW=0jCMw^Ws54wtRi^mKVTz)OBhIkIJG93 zm_9%)Y9{jx%y_GIe?{4>T%A!27L3<4KDLiY(f>6cAaj>dOVH<5+l<|_z5u@7{XRE* zt$08B*JAaD-^bXFjqtMdE{uKfw4=_DV^RJdDeZ$xPx`hV(4@L3tb(`59!s z$3TTR!uYQ;i?Gv&jB6B*?Eo>p1L4J z1C`rje4O4E5+}1>;Ck+puqb2v2+RkH!uM~O&;VO!I7u&`s$zVUi=y|2UA0u?Pv01j8Qn9AsY5H$w%RJr+I5&-sb diff --git a/src/userspace/bin/hello/hello.elf b/src/userspace/bin/hello/hello.elf index 65d14b28c0101a0fcf2390b9fd3ea9bd4ea1fb8f..3ebb9bdca2fc62f5e66227f60229016b098a9707 100755 GIT binary patch delta 2286 zcmZ9Oe`s4(6vyvtlA1Pcel;&?^P^3d*v@XmrVi(H(yk@rt!^;w%J4^>{lkH7>c*OX zbS1cSj7OYIZk+`wO#Q=RK^%o46PnV>O4aF5skk3dMIogMUC|lFx_HjL=QT|)yu5oq z=iKi(_uPA5JJvn6_uNBD^u3lxE8TV`TC4rytK*Kq*9v3*^lJK_myu7J?5raTh~>&G zyw&-zE&gMCE`BFoNW^dOL(ax_y_zxY^iM;GgwjNOO#u3z2mhSZ*N5oDPxGnl%T{wu8MgE>u4E@EEOOuVx`H0*iGU0jv-pe{L=kFBrtB58lfp?!lyS6JwZ%EZpeC zO;=Var_8f84YmM;HC6)SrrWD)V?)eJV$=U!ckG!)=K{Z56Eus?W6tK1eNg;f-s7n& zVMjgNO2!vFE!D$NXOt2P;TJp)9uhm-w;qcGJ}8FrxIs}cj0oKn_C zH2q3;C%TOAE_Ji*qjjr2rur+o#Ta+-n5x=)(6PA$9YkbaLs!*Jij6O;exrny-WRQF ztElt_`H=Ta5!ig)MaLLV`_?)C=6gg|&{Nx0oT2#Zd9t>@27Iu)*1bb8AV%&cIzci7&Wa zL2(@x|A5K>J&ZIxrGVe_((eGg9GBS8)Ib>QyXD9+c@5MS^m#nUZ$UjlDV3Z8hbF^4 zscN$p4~($M7;i%lTucBpxTQ;O7~DZ711?E3W>O3|FGnQ-Z8G2h#=ErU9fM0|8AFY; z`yqdI6uMX7qT3*kv(U!|Nv~b>FM_J~>Rm`(M8}T?Ud`Fu$O^v^47)zgg9$zn#Zzq# zZRN30r@KvRF(14YW@5E=ekv5(@r;>upv5pZLB9+fhKN6oMrd2$K|V>moiBzuQt&ZE zqZNOk?S{t5b3}Uyeo?=Tl1POG zX6$7$T((G|IPs&zj}WgTeuDT1l+a<~ZyNrrG*LVQ7=WYeS4f>c;-3j_Q`izsi13RI&8hno?ligK zcMD}#sbGfe4DtC&Df=P$e@om>;c$7_eu4*e;#9AQpp0E7enc)O#rnzcI~medGC-8- zvPeAtfaJsEzf62+!$$o}e1#IqkpC+2PphTQ3xd}$W`;nR=@oPCS$YV_63Y&ez?vX1iOjlNgjp+j!ew4YM)QLO`{*-EpH)82Fv-%i}V zp{7p~|BjA`YvOj}FG`uo&cBJoT=@S73YhApjDt6ZYIrajsvv{Ao_9vum3n>(emC*y PXuCBkU1P%aW~AzWJ_czf delta 2016 zcmZ8ieP~-%6u+egt-6e7tLWHAr#P9ii7l0NwnY?U z*rG_N(~dJmVIPd5j){yqP!ZRLR#q}WR}?3kU>Q>qvOhAW7+GUH=iZY}d*Hrz&+q)s z=esvK{mALwi8Wf_$l8r%whAGowPI@U6LamPCd3~*jOcG)-G%V9ULksB5E6+KMbK(l z4}%te_feA&#v8FQ$257)pe7Qha=Dxl)n6vlcral^VrC<-^vLz~Tw)iuFQR}CDu+2Opc1D0%S^^@3L z9CwW!a(2U{${1>5O*Anb!QKA>I|)o<-raD_UZX9*7xvZq_p**QTNPyO#d>sE^Erz3 z!MtX=Fw;-YeG=G;UKHtpR4b|z8ny64M_crs~hzQyjrtO;;EVt4A*wSXSG4J+ra8}XeVK{yG5ITes>_8 zpP3JbpD?0hi$)}r5ToT(2!7rXoD80fA$s9ia?8q+*Rc;ocM=+jX~^qSyv_JBe=c5+ zjr!2OQEBGsOBii2`V)Qocc@>C6hpg16JbRkvm5hz5z4wiLQ!1-hrBJF&LYu6aNc}3?hBA`KjZ7kh|-LU@D~{GfTXu4jMtxxCGU7|vaFka3DJien!@SF4<#(##3vbkWy5(sN^dj1 zP^KJ$L`QiK7x8uGKPFKjjx&B~#n@?5#J|iFrHPT8!Br{BHF1DDu7fFGQ`k|i(&bMQ z{hpBfsTE=87%$-R0CkdYaS?wPrwdC|h#wd~o6pAh6~?!#cEaKbHe6!^a6w+4OOo-O z#j4P^n4f0c#tHHt>QBbkl`4LO`B}!NObXvF@hTzcE>j04PS6WUe^c98cHhSCPG)__ z={7Om!1&kjK)us-Y{jt*uyqX_sCN!r;|%TW`wYG*^L6&3i$>DQUhnd(yA&+$Wqe}A zOgAz9DIXE@xtsNuwF12YE;h7S=^vK@=pGfu41RAFxEnpCY_NIY!NzXQ1BdYGhuOyN Ol7OPNNa`;QrhfsC(%B3E diff --git a/src/userspace/bin/ls/ls.elf b/src/userspace/bin/ls/ls.elf index 794879766d915ae3e745f0259852e1c988c90638..bb629c3d00d2b659d1245e2b1e01a46852449124 100755 GIT binary patch delta 2883 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 Ux}P^sugdv6AnE0TzAu>fFF9KHu>b%7 diff --git a/src/userspace/bin/ls/ls.o b/src/userspace/bin/ls/ls.o index 267cd42bb08a982ec0227db45404061f26a74a93..522fd879dd5fea31b036686737e2ac3f579213c0 100644 GIT binary patch delta 316 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 C1I-u! delta 737 zcmZ{hPiPZS5XN_2HfwfYVp|Z`Z6hHc%nu?O)~t5Ag8?8SppXt5|k zl!gz*Q^8wBq2y#w))I=wiwa&mc<7-}|A2atmR8r9<}H+hAIzJ5^P71yZ{Pc#xt^I4 z&DG08^&5lqs6OA@c|DHfnO5^+R9lUvzE5^Fejg#aie5FMKmLj1MT@oe7WdUbdX8r* zc0!JR>&KEhq^Gx%gq!%B>IT`7^0)9n7UxpH#5M+RiGmR~A_?dyTU5f@ZPe%+q<) z_xQmjLp=75`4)E>OH3zBB%$I()A+@-+1^+-d(FlpZ|fL}89%s2Z7ejmgHB;M;}0wt zDs^(5MC&G=blhiv!b--c!)WlyCsjL`*J=?~A^8ZRN9Pmo~f)&pXl9!s4 zRxG)U*eu4qMJixGpP)fhb*M&deDL<;l`hd0e92yH2t1 From 83a52cae58aa3c5835486e52cae298af9c6a30e7 Mon Sep 17 00:00:00 2001 From: Voxi0 Date: Sat, 28 Feb 2026 22:55:08 +0000 Subject: [PATCH 25/41] feat: beautifying readme trying to make the readme more short and sweet, added some badges, a caution alert, centering some stuff etc etc. also removed the showcase images because honestly we can do better than that imo, or just roll with no showcase images in the readme atleast. --- Makefile | 2 +- README.md | 60 +++++++++++++++++++++++++++++-------------------------- flake.nix | 21 +++++++++---------- 3 files changed, 44 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index 3888f72..87c342c 100644 --- a/Makefile +++ b/Makefile @@ -15,11 +15,11 @@ all: $(ISO) fetchDeps: @echo "[DEPS] Fetching dependencies/libraries" @mkdir -p $(INCLUDE_DIR) - #@mkdir -p $(BUILD_DIR)/src/kernel/console/functions @echo "[DEPS] Fetching Limine" @rm -rf $(LIMINE_DIR) @git clone https://codeberg.org/Limine/Limine.git --branch=v10.x-binary --depth=1 $(LIMINE_DIR) + @rm -rf $(LIMINE_DIR)/.git @echo "[DEPS] Building limine binary" @$(MAKE) -C $(LIMINE_DIR) @echo "[DEPS] Fetching Limine protocol header file" diff --git a/README.md b/README.md index ba02158..a34a7dc 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,13 @@ -# emexOS - a simple 64 Bit OS written in C -
    - - +

    emexOS

    +
    a simple 64-bit os written in c
    + +![Discord Badge](https://img.shields.io/badge/Join%20the%20Discord-Black?style=for-the-badge&logo=discord&logoColor=white&color=black) + +![GitHub License](https://img.shields.io/github/license/emexos/emexOS1?style=for-the-badge&label=License&labelColor=black&color=white) +![GitHub repo size](https://img.shields.io/github/repo-size/emexos/emexOS1?style=for-the-badge&label=size&labelColor=black&color=white) +![GitHub Repo stars](https://img.shields.io/github/stars/emexos/emexos1?style=for-the-badge&labelColor=black&color=white) +
    ## Build Dependencies @@ -11,22 +16,23 @@ For building and compiling emexOS, ensure you have the following installed, - [NASM](https://www.nasm.us/) - Assembler. - [QEMU](https://www.qemu.org/) - Our preferred emulator. - [Xorriso](https://www.gnu.org/software/xorriso/) - ISO creation. -- [Git](https://git-scm.com/) - To fetch dependencies. +- [Git](https://git-scm.com/) and [wget](https://www.gnu.org/software/wget/) - To fetch dependencies. -You can use Zig instead of x86_64-gcc if you prefer to, -- [Zig](https://ziglang.org/) - Zig lets you build the whole OS using just one command. +You can use [Zig](https://ziglang.org/) instead of GCC if you prefer to. ## For Nix Users -If you’re using [Nix](https://nixos.org/), you can run the provided flake that installs all the build dependencies. That way, you can set up a complete emexOS development environment with a single, simple command. +Ensure you have flakes enabled first and then run `nix develop` to enter the provided development shell which will have all build dependencies and such installed for you. I'd recommend updating the flake using `nix flake update` as it's sometimes not updated for long periods of time. ## Building and Compiling -Now that you have all the required build dependencies installed, you can finally build and run emexOS. +With all build dependencies installed, you can finally build and run emexOS. +> [!CAUTION] +> If booting emexOS on real hardware, ensure your device has no existing data or else emexOS **WILL DELETE IT WITHOUT ASKING** **Using gnu-make** -- `make fetchDeps` - Fetches all libraries and such that emexOS depends on. Obviously `git` is used for this operation. -- `make` - Builds emexOS. -- `make run` - Emulates emexOS using QEMU. -- `make clean` - Cleans up all build outputs. +- `make fetchDeps` - Fetch all libraries and such that emexOS depends on e.g. Limine. `git` and `wget` are used for this. +- `make` - Build emexOS. +- `make run` - Emulate emexOS using QEMU. +- `make clean` - Clean up all build outputs. **Using Zig** - `zig build` - Fetch, build and run. @@ -34,23 +40,21 @@ Now that you have all the required build dependencies installed, you can finally - `zig build -Dclean` - Remove (cache, output), fetch, build and run. - `zig build -Dnofetch -Dclean` - Remove (cache, output), build and run. -## Running -to run emexOS on QEMU use `make run` -on real hardware make sure your device does not have any existing data on the disk, emexOS will delete it without asking! (soon there will be a menu which asks you) - ## Console -After the bootup emexOS will ask you about a password to login. the password is "emex", but you can change that in shared/config/user.h +After booting, you will be asked for a password which is "emex" by default, to log in. The password can be changed in `shared/config/user.h`. -currently there is no smp support btw so if you run emexOS just use one core +Currently, no SMP support is available just yet so emexOS runs using only a single core. ---- - -## License: -- GNU GPLv3 -- Attribution required (see ATTRIBUTION.md) +
    +

    Contributors

    + + + +

    Made with [contrib.rocks](https://contrib.rocks).

    +
    +--- -## Writer - - README.md by Voxi0 & emexSW & Bi Moz - - emexOS project started by emexSW -## +
    +

    emexOS - by emexSW

    +
    \ No newline at end of file diff --git a/flake.nix b/flake.nix index de6e3db..5bbef14 100644 --- a/flake.nix +++ b/flake.nix @@ -12,25 +12,26 @@ devShells = forEachSystem (system: { default = pkgs.${system}.mkShellNoCC { nativeBuildInputs = with pkgs.${system}; [ - # Compiler and assembler + # Compiler and assembler pkgsCross.x86_64-embedded.stdenv.cc - gcc # Required only to build Limine + gcc # Required only to build Limine nasm - # Provides a lot of handy tools for C/C++ dev e.g. formatter (clang-format) - clang-tools + # Provides a lot of handy tools for C/C++ dev e.g. formatter (clang-format) + clang-tools - # For generating a `compile_commands.json` which can be used by clangd - # That file is used by the clangd lsp to figure out includes and all - compiledb + # For generating a `compile_commands.json` which can be used by clangd + # That file is used by the clangd lsp to figure out includes and all + compiledb - # Provides `xorriso` for creating the emexOS ISO + # Provides `xorriso` for creating the emexOS ISO libisoburn - # Git is required to fetch some dependencies + # Git and wget are required to fetch some dependencies git + wget ]; }; }); }; -} \ No newline at end of file +} From a644701391f65fa33b81d7d5e1ba99cdcd421a4c Mon Sep 17 00:00:00 2001 From: Voxi0 Date: Sun, 1 Mar 2026 08:20:26 +0000 Subject: [PATCH 26/41] fix: added `const char *s` back to `#define FHDR` in `console.h` it's reported as a compiler warning but uh, not putting that `const char *s` there will cause a compilation error when trying to compile the console functions since `s` will be undefined. also im making sure limine isn't being compiled in `fetchDeps` because there's a whole makefile step or whatever to build it anyways. also installing qemu in the nix dev flake cause well, it won't be a complete devshell without everything required to build and run emexos no? --- Makefile | 7 ++----- common.mk | 2 +- dsk/initrd.cpio | Bin 294912 -> 294912 bytes flake.lock | 6 +++--- flake.nix | 7 +++++-- src/kernel/console/console.h | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 87c342c..32a4078 100644 --- a/Makefile +++ b/Makefile @@ -20,8 +20,6 @@ fetchDeps: @rm -rf $(LIMINE_DIR) @git clone https://codeberg.org/Limine/Limine.git --branch=v10.x-binary --depth=1 $(LIMINE_DIR) @rm -rf $(LIMINE_DIR)/.git - @echo "[DEPS] Building limine binary" - @$(MAKE) -C $(LIMINE_DIR) @echo "[DEPS] Fetching Limine protocol header file" @wget https://codeberg.org/Limine/limine-protocol/raw/branch/trunk/include/limine.h -O $(LIMINE_DIR)/limine.h @@ -37,12 +35,12 @@ $(BUILD_DIR)/kernel.elf: src/kernel/linker.ld $(OBJS) userspace: @$(MAKE) -C src/userspace -# Ensure host limine tool exists (Linux/macOS binary). +# Compile Limine $(LIMINE_TOOL): @$(MAKE) -C $(LIMINE_DIR) # Create bootable ISO -$(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) +$(ISO): limine.conf $(LIMINE_TOOL) $(BUILD_DIR)/kernel.elf disk userspace @echo "[ISO] Creating bootable image..." @rm -rf $(ISODIR) @rm -f $(DISK_DIR)/initrd.cpio @@ -79,7 +77,6 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL) ./tools/initrd.sh @cp $(DISK_DIR)/initrd.cpio $(ISODIR)/boot/ - @xorriso -as mkisofs -b boot/limine/limine-bios-cd.bin \ -no-emul-boot -boot-load-size 4 -boot-info-table \ --efi-boot boot/limine/limine-uefi-cd.bin \ diff --git a/common.mk b/common.mk index 02b23ce..8fb6688 100644 --- a/common.mk +++ b/common.mk @@ -15,7 +15,7 @@ VLD = @echo "[LD] $@" && $(LD) # Compiler Flags COMMON_FLAGS += -I $(INCLUDE_DIR) -I $(SRC_DIR) -I shared/ -ffreestanding -fno-stack-protector -fno-lto \ -fno-PIE -fno-pic -m64 -march=x86-64 -mno-80387 -mno-mmx \ - -mno-sse -mno-sse2 -mno-red-zone -mcmodel=kernel -Wall -Wextra -Wpedantic -Werror + -mno-sse -mno-sse2 -mno-red-zone -mcmodel=kernel -Wall -Wextra -Wpedantic CFLAGS ?= $(COMMON_FLAGS) -std=c23 CXXFLAGS ?= $(COMMON_FLAGS) -std=c++17 -fno-exceptions -fno-rtti LDFLAGS ?= -nostdlib -static -no-pie -z text -z max-page-size=0x1000 diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 0ab7eb5777662c8e342bc849db993e6a8b786d71..2480502cb594a7db4485b1b877dfca57751ffa0a 100644 GIT binary patch delta 202 zcmZo@5Nc=;+91Zr;%4b=v{{PLK^?-1(^#O!4H7c|0wX8a$%>2`(`)B3a&ETr-x7q7 zaWk8I@sh@5Pe$Hmy+zyg7BOxyKuB6T0kx@5FWAh)wO#HqV~ZAC%Gk^pELCxUk#G7k z6DFbUU;Z){nSt%zo@K(sf@FoI#q^82fwtc*WD=f!U<1&seQiv8G{I`y>ozcLuiL=f GbRGaL2|iH( delta 202 zcmZo@5Nc=;+91ZrV&>#*xmk+QK^?-1(^#O!4H7c|0wX8a$%>2`(`)B3a&ETr-x7q7 zaWk8I@sh@5Pe$Hmy+zyg7BOxyKuB6T0kx@5FWAh)wO#HqV~ZAC%Gk^pELCxUk#G7k z6DFbUU;Z){nSt%zo@K(sf@FoI#q^82fwtc*WD=f!U<1&seQiv8G{I`y>ozcLuiL=f GbRGaJ`#w Date: Sun, 1 Mar 2026 14:23:16 +0100 Subject: [PATCH 27/41] new commands: cat, cd --- .gitignore | 2 + Makefile | 3 + dsk/initrd.cpio | Bin 294912 -> 329728 bytes dsk/rd/bin/cat.elf | Bin 0 -> 16672 bytes dsk/rd/bin/cd.elf | Bin 0 -> 15960 bytes dsk/rd/bin/echo.elf | Bin 9928 -> 9672 bytes dsk/rd/bin/hello.elf | Bin 9768 -> 9512 bytes dsk/rd/bin/ls.elf | Bin 11240 -> 12056 bytes dsk/rd/bin/tree.elf | Bin 12128 -> 11792 bytes dsk/rd/emr/system/login.elf | Bin 10680 -> 10408 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 13880 -> 16096 bytes dsk/rd/user/apps/shell.emx/app.elf | Bin 10624 -> 10360 bytes include/limine | 2 +- shared/ui/fonts/font_8x8.h | 33 +- shared/ui/fonts/font_8x8_bold.h | 35 ++- src/commands.TODO | 54 ++++ src/kernel/arch/x86_64/exceptions/panic.c | 9 +- src/kernel/cpu/cpu.h | 7 + src/kernel/cpu/halt.c | 39 +++ src/kernel/kernel.c | 4 +- src/kernel/packages/emex/packreader.c | 20 +- src/kernel/packages/gz/gzip.c.t | 197 ++++++++++++ src/kernel/user/syscalls.c | 151 +++++++--- src/userspace/Makefile | 8 + src/userspace/apps/login/login.elf | Bin 10680 -> 10408 bytes src/userspace/apps/login/login.o | Bin 2816 -> 2792 bytes src/userspace/apps/shell/shell.emx/app.elf | Bin 10624 -> 10360 bytes src/userspace/apps/shell/shell.o | Bin 2656 -> 2640 bytes src/userspace/apps/system/system.emx/app.elf | Bin 13880 -> 16096 bytes src/userspace/bin/cat/Makefile | 28 ++ src/userspace/bin/cat/cat.c | 75 +++++ src/userspace/bin/cat/cat.elf | Bin 0 -> 16672 bytes src/userspace/bin/cat/cat.o | Bin 0 -> 2808 bytes src/userspace/bin/cd/Makefile | 28 ++ src/userspace/bin/cd/cd.c | 35 +++ src/userspace/bin/cd/cd.elf | Bin 0 -> 15960 bytes src/userspace/bin/cd/cd.o | Bin 0 -> 1792 bytes src/userspace/bin/echo/echo.elf | Bin 9928 -> 9672 bytes src/userspace/bin/hello/hello.elf | Bin 9768 -> 9512 bytes src/userspace/bin/ls/ls.c | 85 +++++- src/userspace/bin/ls/ls.elf | Bin 11240 -> 12056 bytes src/userspace/bin/ls/ls.o | Bin 2096 -> 3704 bytes src/userspace/bin/tree/tree.elf | Bin 12128 -> 11792 bytes src/userspace/bin/tree/tree.o | Bin 3536 -> 3496 bytes src/userspace/libc/include/ctype.h | 1 + src/userspace/libc/include/math.h | 5 + src/userspace/libc/include/stdio.h | 31 +- src/userspace/libc/src/stdio.c | 211 ++++++++++--- web/contact.html | 214 ------------- web/css/contact.css | 176 ----------- web/css/contactmedia.css | 34 --- web/css/cursor.css | 30 -- web/css/first.css | 46 --- web/css/form.css | 34 --- web/css/link.css | 20 -- web/css/mailto.css | 46 --- web/css/media.css | 81 ----- web/css/release.css | 102 ------- web/css/s.css | 34 --- web/css/style.css | 300 ------------------- web/css/styles.css | 18 -- web/css/theme.css | 50 ---- web/fonts/Habbo.ttf | Bin 10308 -> 0 bytes web/fonts/emexfont.ttf | Bin 12496 -> 0 bytes web/images/emex-black.png | Bin 47500 -> 0 bytes web/images/emex-white.png | Bin 48771 -> 0 bytes web/images/icons/dark/arrow-right.svg | 4 - web/images/icons/dark/brain.svg | 13 - web/images/icons/dark/code.svg | 4 - web/images/icons/dark/copy.svg | 4 - web/images/icons/dark/database.svg | 5 - web/images/icons/dark/discord.svg | 3 - web/images/icons/dark/download.svg | 5 - web/images/icons/dark/github.svg | 4 - web/images/icons/dark/layers.svg | 5 - web/images/icons/dark/lock.svg | 4 - web/images/icons/dark/logo.svg | 3 - web/images/icons/dark/mail.svg | 4 - web/images/icons/dark/message-circle.svg | 3 - web/images/icons/dark/microphone.svg | 5 - web/images/icons/dark/moon.svg | 3 - web/images/icons/dark/search.svg | 4 - web/images/icons/dark/shield.svg | 3 - web/images/icons/dark/sun.svg | 11 - web/images/icons/dark/wifi-off.svg | 9 - web/images/icons/light/arrow-right.svg | 4 - web/images/icons/light/copy.svg | 4 - web/images/icons/light/database.svg | 5 - web/images/icons/light/discord.svg | 3 - web/images/icons/light/download.svg | 5 - web/images/icons/light/github.svg | 4 - web/images/icons/light/mail.svg | 4 - web/images/icons/light/message-circle.svg | 3 - web/images/icons/light/moon.svg | 3 - web/images/icons/light/sun.svg | 11 - web/images/logo.png | Bin 868938 -> 0 bytes web/index.html | 275 ----------------- web/js/cursor.js | 17 -- web/js/icons-theme.js | 47 --- web/js/info.js | 122 -------- web/js/release.js | 183 ----------- web/js/toggle.js | 56 ---- web/release.html | 65 ---- web/rng | 8 - 104 files changed, 939 insertions(+), 2224 deletions(-) create mode 100755 dsk/rd/bin/cat.elf create mode 100755 dsk/rd/bin/cd.elf create mode 100644 src/commands.TODO create mode 100644 src/kernel/cpu/halt.c create mode 100644 src/kernel/packages/gz/gzip.c.t create mode 100644 src/userspace/bin/cat/Makefile create mode 100644 src/userspace/bin/cat/cat.c create mode 100755 src/userspace/bin/cat/cat.elf create mode 100644 src/userspace/bin/cat/cat.o create mode 100644 src/userspace/bin/cd/Makefile create mode 100644 src/userspace/bin/cd/cd.c create mode 100755 src/userspace/bin/cd/cd.elf create mode 100644 src/userspace/bin/cd/cd.o create mode 100644 src/userspace/libc/include/ctype.h create mode 100644 src/userspace/libc/include/math.h delete mode 100644 web/contact.html delete mode 100644 web/css/contact.css delete mode 100644 web/css/contactmedia.css delete mode 100644 web/css/cursor.css delete mode 100644 web/css/first.css delete mode 100644 web/css/form.css delete mode 100644 web/css/link.css delete mode 100644 web/css/mailto.css delete mode 100644 web/css/media.css delete mode 100644 web/css/release.css delete mode 100644 web/css/s.css delete mode 100644 web/css/style.css delete mode 100644 web/css/styles.css delete mode 100644 web/css/theme.css delete mode 100644 web/fonts/Habbo.ttf delete mode 100644 web/fonts/emexfont.ttf delete mode 100644 web/images/emex-black.png delete mode 100644 web/images/emex-white.png delete mode 100644 web/images/icons/dark/arrow-right.svg delete mode 100644 web/images/icons/dark/brain.svg delete mode 100644 web/images/icons/dark/code.svg delete mode 100644 web/images/icons/dark/copy.svg delete mode 100644 web/images/icons/dark/database.svg delete mode 100644 web/images/icons/dark/discord.svg delete mode 100644 web/images/icons/dark/download.svg delete mode 100644 web/images/icons/dark/github.svg delete mode 100644 web/images/icons/dark/layers.svg delete mode 100644 web/images/icons/dark/lock.svg delete mode 100644 web/images/icons/dark/logo.svg delete mode 100644 web/images/icons/dark/mail.svg delete mode 100644 web/images/icons/dark/message-circle.svg delete mode 100644 web/images/icons/dark/microphone.svg delete mode 100644 web/images/icons/dark/moon.svg delete mode 100644 web/images/icons/dark/search.svg delete mode 100644 web/images/icons/dark/shield.svg delete mode 100644 web/images/icons/dark/sun.svg delete mode 100644 web/images/icons/dark/wifi-off.svg delete mode 100644 web/images/icons/light/arrow-right.svg delete mode 100644 web/images/icons/light/copy.svg delete mode 100644 web/images/icons/light/database.svg delete mode 100644 web/images/icons/light/discord.svg delete mode 100644 web/images/icons/light/download.svg delete mode 100644 web/images/icons/light/github.svg delete mode 100644 web/images/icons/light/mail.svg delete mode 100644 web/images/icons/light/message-circle.svg delete mode 100644 web/images/icons/light/moon.svg delete mode 100644 web/images/icons/light/sun.svg delete mode 100644 web/images/logo.png delete mode 100644 web/index.html delete mode 100644 web/js/cursor.js delete mode 100644 web/js/icons-theme.js delete mode 100644 web/js/info.js delete mode 100644 web/js/release.js delete mode 100644 web/js/toggle.js delete mode 100644 web/release.html delete mode 100644 web/rng diff --git a/.gitignore b/.gitignore index f1c69d8..570a96f 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ tools/png tools/bmp tools/lg.py +.github/* + logo.txt src/kernel/console/functions/edit.c diff --git a/Makefile b/Makefile index 32a4078..7e9249c 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,9 @@ $(ISO): limine.conf $(LIMINE_TOOL) $(BUILD_DIR)/kernel.elf disk userspace @cp src/userspace/bin/hello/hello.elf $(DISK_DIR)/rd/bin/ @cp src/userspace/bin/ls/ls.elf $(DISK_DIR)/rd/bin/ @cp src/userspace/bin/tree/tree.elf $(DISK_DIR)/rd/bin/ + @cp src/userspace/bin/cat/cat.elf $(DISK_DIR)/rd/bin/ + @cp src/userspace/bin/cd/cd.elf $(DISK_DIR)/rd/bin/ + @echo "[MOD] creating initrd.cpio..." @chmod +x tools/initrd.sh diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 2480502cb594a7db4485b1b877dfca57751ffa0a..0449aad1ba442315ec1d5d34bc308f2cd62e2ec1 100644 GIT binary patch delta 41208 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 delta 26491 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�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 Z0~9@FuUIR`?*Ct()1AZ&0f+Mb{|g~tazFq8 literal 0 HcmV?d00001 diff --git a/dsk/rd/bin/cd.elf b/dsk/rd/bin/cd.elf new file mode 100755 index 0000000000000000000000000000000000000000..25c463738bb25c21dd6a9400c6fd1b5572077fd4 GIT binary patch literal 15960 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 gs^4w*s`51&!1olqVr?wm{|;VI+ zchA>7?{%_cvaSDaWy`th9l666VaPSh$6X&-l{RqN{N}ht>>5)LPu^>WR@*jZ4;;5` zZJo^%BBm`yl1ihN4i$b*jL}b4xg%(fXlW&;rJJi)hI-J$Y1vu%f zQTk!XSr-1XQ;+_rM;1%;Xeg;id*<{=C@H%0^q7XKTDeIGJ*Jk>oY?#G2#$iqCgO-2x&JT`uu47VI7nNHqf8^RM9%c+xIFVH zooUjRPS_{ZdgPHKqgxAB$x~hObc*6vD0T3l%b#;AwUSextHgQ}`>{}m^f}7cS2 zjRUt0##*%|oQ72YYVo#cD2=m;{D(4ypox()9*h^c#}xQ(vtKPmw^PRM&K=rq^Atgw z$Ftgo)(L0LbW=0jCMw^Ws54wtRi^mKVTz)OBhIkIJG93 zm_9%)Y9{jx%y_GIe?{4>T%A!27L3<4KDLiY(f>6cAaj>dOVH<5+l<|_z5u@7{XRE* zt$08B*JAaD-^bXFjqtMdE{uKfw4=_DV^RJdDeZ$xPx`hV(4@L3tb(`59!s z$3TTR!uYQ;i?Gv&jB6B*?Eo>p1L4J z1C`rje4O4E5+}1>;Ck+puqb2v2+RkH!uM~O&;VO!I7u&`s$zVUi=y|2UA0u?Pv01j8Qn9AsY5H$w%RJr+I5&-sb delta 2467 zcmaKuYfM~46vyWR7bv^zgMAfPme(Rk4Rl+BVw+HkYp$hjsFWBJ(b5>2R6|UK4@Pip zwzO{7nvy}&q_v6tU}Df1LW-{zC?r6QL{b|cC=E4Y*DQ%k(v*!^#dBuPWq}V)a`)c( zo&U^v%()k)8>bJPe^@E&tE|boYGPu1YZ^R0U{>yMr=`$1XkvRt72pv=Hm|pASB~)$ zmTmQ)8W{`wmx2+c)}QFHe}#&Xp*8KhU=I2dO4y&+I*j~|r9IPk%XicF zz_-eMIc|Q$dL{|(S@)%bRodQ3^6NP}(}1t?Wrv-o*{YM4dAo-nvb7}vDkg39NswU= zCMRd@&ANkmJ5Tag9lLe@iNmiyE;}lfHtu#-Dc!u$S(=o0I12+48H{OR^%~xK$GY5K zU={!T9e#j*gfuv&Xd(5Y)b+#7Jj_mwbrymBw49koX0@qO#XI(xlFuI*nh#E zID0c4+()9S=qx&oi7Zyschb#g3u+Y;&+=5|HD|IturJ$zKQO#-DJ+$ZnfNoFs@hkK z8_hexoC1Q&#Gk-5Fdl~s`A@{__?MpYfGt(7ZWJ2E_QO2~R0kBv2Z$dgolPOgd;M{<^NG z>ga*KMckMr_4JpEohF_~d;%Mc1sFR=hSYSqK(EAm#J6veyan|zF2RKv9Hc-W6O^$l z#22Zet;9bju2O|ciGK!n3vVsT4;&=Vy=1vgD_omAj1zxIl@VPe{Wrv4AkSxr-y+_) z$@9;|du3(;)#;Vpm|^AUD@Lw1ljmQ;-F;s)G2h zl$3ssN5GD;_^5O9NncI+8&v(h#A}FG$f)v|e!#oQ@CP-Jb*Qi8Megt-6e7tLWHAr#P9ii7l0NwnY?U z*rG_N(~dJmVIPd5j){yqP!ZRLR#q}WR}?3kU>Q>qvOhAW7+GUH=iZY}d*Hrz&+q)s z=esvK{mALwi8Wf_$l8r%whAGowPI@U6LamPCd3~*jOcG)-G%V9ULksB5E6+KMbK(l z4}%te_feA&#v8FQ$257)pe7Qha=Dxl)n6vlcral^VrC<-^vLz~Tw)iuFQR}CDu+2Opc1D0%S^^@3L z9CwW!a(2U{${1>5O*Anb!QKA>I|)o<-raD_UZX9*7xvZq_p**QTNPyO#d>sE^Erz3 z!MtX=Fw;-YeG=G;UKHtpR4b|z8ny64M_crs~hzQyjrtO;;EVt4A*wSXSG4J+ra8}XeVK{yG5ITes>_8 zpP3JbpD?0hi$)}r5ToT(2!7rXoD80fA$s9ia?8q+*Rc;ocM=+jX~^qSyv_JBe=c5+ zjr!2OQEBGsOBii2`V)Qocc@>C6hpg16JbRkvm5hz5z4wiLQ!1-hrBJF&LYu6aNc}3?hBA`KjZ7kh|-LU@D~{GfTXu4jMtxxCGU7|vaFka3DJien!@SF4<#(##3vbkWy5(sN^dj1 zP^KJ$L`QiK7x8uGKPFKjjx&B~#n@?5#J|iFrHPT8!Br{BHF1DDu7fFGQ`k|i(&bMQ z{hpBfsTE=87%$-R0CkdYaS?wPrwdC|h#wd~o6pAh6~?!#cEaKbHe6!^a6w+4OOo-O z#j4P^n4f0c#tHHt>QBbkl`4LO`B}!NObXvF@hTzcE>j04PS6WUe^c98cHhSCPG)__ z={7Om!1&kjK)us-Y{jt*uyqX_sCN!r;|%TW`wYG*^L6&3i$>DQUhnd(yA&+$Wqe}A zOgAz9DIXE@xtsNuwF12YE;h7S=^vK@=pGfu41RAFxEnpCY_NIY!NzXQ1BdYGhuOyN Ol7OPNNa`;QrhfsC(%B3E delta 2286 zcmZ9Oe`s4(6vyvtlA1Pcel;&?^P^3d*v@XmrVi(H(yk@rt!^;w%J4^>{lkH7>c*OX zbS1cSj7OYIZk+`wO#Q=RK^%o46PnV>O4aF5skk3dMIogMUC|lFx_HjL=QT|)yu5oq z=iKi(_uPA5JJvn6_uNBD^u3lxE8TV`TC4rytK*Kq*9v3*^lJK_myu7J?5raTh~>&G zyw&-zE&gMCE`BFoNW^dOL(ax_y_zxY^iM;GgwjNOO#u3z2mhSZ*N5oDPxGnl%T{wu8MgE>u4E@EEOOuVx`H0*iGU0jv-pe{L=kFBrtB58lfp?!lyS6JwZ%EZpeC zO;=Var_8f84YmM;HC6)SrrWD)V?)eJV$=U!ckG!)=K{Z56Eus?W6tK1eNg;f-s7n& zVMjgNO2!vFE!D$NXOt2P;TJp)9uhm-w;qcGJ}8FrxIs}cj0oKn_C zH2q3;C%TOAE_Ji*qjjr2rur+o#Ta+-n5x=)(6PA$9YkbaLs!*Jij6O;exrny-WRQF ztElt_`H=Ta5!ig)MaLLV`_?)C=6gg|&{Nx0oT2#Zd9t>@27Iu)*1bb8AV%&cIzci7&Wa zL2(@x|A5K>J&ZIxrGVe_((eGg9GBS8)Ib>QyXD9+c@5MS^m#nUZ$UjlDV3Z8hbF^4 zscN$p4~($M7;i%lTucBpxTQ;O7~DZ711?E3W>O3|FGnQ-Z8G2h#=ErU9fM0|8AFY; z`yqdI6uMX7qT3*kv(U!|Nv~b>FM_J~>Rm`(M8}T?Ud`Fu$O^v^47)zgg9$zn#Zzq# zZRN30r@KvRF(14YW@5E=ekv5(@r;>upv5pZLB9+fhKN6oMrd2$K|V>moiBzuQt&ZE zqZNOk?S{t5b3}Uyeo?=Tl1POG zX6$7$T((G|IPs&zj}WgTeuDT1l+a<~ZyNrrG*LVQ7=WYeS4f>c;-3j_Q`izsi13RI&8hno?ligK zcMD}#sbGfe4DtC&Df=P$e@om>;c$7_eu4*e;#9AQpp0E7enc)O#rnzcI~medGC-8- zvPeAtfaJsEzf62+!$$o}e1#IqkpC+2PphTQ3xd}$W`;nR=@oPCS$YV_63Y&ez?vX1iOjlNgjp+j!ew4YM)QLO`{*-EpH)82Fv-%i}V zp{7p~|BjA`YvOj}FG`uo&cBJoT=@S73YhApjDt6ZYIrajsvv{Ao_9vum3n>(emC*y PXuCBkU1P%aW~AzWJ_czf diff --git a/dsk/rd/bin/ls.elf b/dsk/rd/bin/ls.elf index bb629c3d00d2b659d1245e2b1e01a46852449124..252f8319a06fda6eade9616749c220bffafc5b60 100755 GIT binary patch literal 12056 zcmeHNeQ=b;8Q+T>1c+P`2x3tQiXcV8XKN_fp6KaYRHVgJs<}-JScSs>dWWiW=rk}lEnQiz2>J zSG0}%B1zX8-)QSag~LF$KNkMI1FO-AULl5mNzppm(iq*%4-pi7VHxVSSa?RS#FzE9 zy^n6;NIN4dE!ft@eHkh36;WSCNvrtxuzkqWx!+ChlrxhnXQs6*j{vN?3phv#-Ha1f~(mxiiSbq5kG1QujDWucG=8(cXo~7v0Y}Bi{yglstxSK#z{; z;b#Eoh%utRK_e2IiP`&8U$TAg>qnq_I*VmHtz*_o7$*lOqr-5e4L3fBdE1K_Pm$Kl z*Y?gT7|LM(oy7Xa4)0UL5&N9p)9Ec=H_7wkn1yH^H4e2OjD1UZxuPC!9X$t8_s#`b zl6HC*U*{kxByJrPp0?_9w6p4}g3WY@4&MZgWpsHu_mS8Bm}h?*7L?gPaLTZ>;U5BK7R4!gP(Q6 z=}PVn!)4T+Gy<{1&p!J_<7BcDL1Fcs%*|5*W3%*VspURzl$bArX(pc*o41GCo9^!f) zke+v*)EdzBQQFj1cuT7k1g?~@2F(o!DhTaJ*_d`A;L;-eD#)`UUIhart?&@^??(p$ z6ufM`Dfs2LQPYlR zO5vFd%$iP3Q|d>2h-LUrDrJHTUlB^aG!Vql8@f{lj|64ZzTttnLZVmsXJ0;8gN>a1hxRhd;%H8svuJ@o_YeONWOCb2=w5EcfACxVyTa zVFgx~$U(zHSnNO_AsUGxy4(>(_Yf*6xmk(+Ce`wEBZc?|t=Fl-4|!Grrx^M-+SK6+ zBko>@7K@tVVZ4E42|$AyBgovBv7zRh$=9g61XXsvPi~g2y!qy-`Ap9Dch$c?W?qC= z0xh*RD*lL91bu2c#5jU?7KmKv8flVv^5T!7f)oP|1r^o0jU$-3nc>MEA*s@4T05iU z-}01^T~)d6Mo=R~S%34m!9+53qC#a-d7_)9O!EUNoqG=Dhb3osQ`{3JcqD(uqm1P~ zyFtp2gJ8^KL^@g-rk14LQ}MEG`_dU^P2zA}bLw9BMjo#vMCjJR)r ze?aDnElPbOJ8UXCiqVm}7BAEIvKpLA!&O<5D{@(l;Vh*ova{6iPdSNJVcDKb?bkJX znbN74r#lu&F1LImsf~8$Jz2U3^Xcv&9gYvmB;Gxn?bkc^8oB(g0i8S$4zw)8D&y5&VUa(a$5r6VQI&(f^DC)Sei zm2n+LKAYHWows{4yYD-1H~$MGd2?=ej@#s!5fRpVg2`QyIoW29+EdlV+%et%;+O9DV%0*U7le!PI2`r*+)Yz`Ypq&IS#bG|`R+FRd|N*S&FX=^R`$hxn-_d&%zbrVUrpSb7gE#B|mf!-34G zd(8-(QZr&nbX-yfxf>A$?bnwZ9UZjL7)Gu>1DB8Sq{UZ{E`DCn+kEf?HM&5l-hJiJ z9CzU%9-RBv_=Y?O1eVMR=J{k9H$V%w(nxDUgk>J4EpLJ?LVwM zC-#K3shCyVOH0!!Ai29R4|1CfV^4o)y%1ADruOt}L7jbX7l}pF#N4}9t!@;{P%m#3)1*?=e{7-cCyDpzr@S&5 zts;C-`-1*It=kyzC^PYMi3|AuT3)urb@D0ZqLMg12T6pCQ5N7g9)JFun54f$(aZ1! zw(>mm%yyK=U!v%lT3NjKkxyR%pBsUXH?Pg-`qF$p%w*($pT?J=&2l?_#DAjk)e;rr z+o;FmZ_{5>uK3&Z+cck@8b|2L(v0VLd>#N^j(NjV6d#*@kH%kiEBxn@ix52ek{(|= zy@Y6YmMDH@uunqUXOcvPcoa417iqmN(fAV@50)uDOEmtJ#+PVZ|GS=eM&moRJm1yy zhc&)i$H{z+AJO;$?Z;ne{FufQv(&tG8h=USXD?JZzSPQcO5@XKDEzpNw^ud3Vw%Ez zid?*5ul8ZHIXh6@n?d6gY~P54(JX7t-Ia z1SyCsE&ud8lSE4w+iIBRO9=!zKmCvD>eRsmgh3G zS+3T2=VUeS0R@Xy8uu3Xy;|c3w0$C)-mCF4?O(137Jf3Oz73i`?n$z2)Oess&0BPV z!Z&ODw|c!?UZn85H15&%*{oo(P2(SFIj_}tv&NI!4tCrIG~QRRUYaysqxoE_`Is7C zukF7|faTRV;cNTvY&!BG>80BtDSt_8}$2y zs0!_FG;6n^hE}rPVZWLFU8blCHrLmhwW4ZUC}ex`bJc3!75EQpr+DQXk54H0BUfHQ zIOUc3Xc5!Pi}YR+Jb5LbLM&93^DG>{7(Lv(^|E!&1u;E-)_P~Ce5uTD=FOekWsgs| u70Rj{Kl_|8M-%h7X3wo5Ssm0H*AoQ-7c{Xqjz4}O4=5;As&bx%0+A1PA5622PdY4NIBZ7=qGetfl~wZcijSY3)C%8w?N$jbqmxjP`5zc0(A@2El{^W z-2!zB{NF8LcD!w7RxdDztOZR@2;xjT=d7D4#Hp}p|J6*N2%7dl*~}Pa4qSQx0VAq= z@Bn`(a2~x-h+T&}vK>b{{@!u+Wj$?~Juqh4seF21%(s0uCgjabsL8aAa*~hT zXZHF**nb!xrP^D~YTQg`FQWR3$%B%e`DpEJB>Hs^{d1s;LGp9)|M(a1ZxH_uS{Nyj z%X9dt1L^`b;6UBSz{(wZ4?}yvRUCHhuma{Ar6Ei^dZ2n^?| zA%WrS;*sKu9H)}J<~3y*(v2QY?WQm zs$dS??DO0>WTJfs0={)HsMw6TY^nl6S{Y$ikY;wx%P{*eZXfMmSbUMXG#nzma0 zAhtk7T#hFH;<~0vjY%si(ijfI8Ec>wO8=`h>QI_2!1Kcu-kOG*8>j(78P*I#la`uD z>u>e2zPwVDNzdW3u?HqOJP6N~VeV3KrZP*~z%GD)h-TMQkO$U?W+D=3jv#3??2H#R}eiJU>2=JB(Fbma^pSB#`CmzI$hqQKu0{x}l;&a7OG zBUe)ywEMi(oFm$KGFY=H$h7@mn8m2^Kf($uFO`#zk0W(}dJn1TEaK3Ao5J0UO0K|a z$M|)s7ub)4WEAY9)a@}IM&Oji_#79VYBO{G2J~2zh$qkjJ_;0H6w+=Ck(e{fG{m8j{h z)J$cwuS&K3ug-uLF!9CvxsC(483^ZT9`v^VCmiAe(%FESEa+*wpki_tnXEEO{Vh3v7jWb(B^Lu=3Y>q9nmx7Q+`}R80;77uYD=VUn9nPe#bcCf zE=lca)g2W!tKEU}n2Jg&L83N;3ns&Rf1AX5v#8bJe5Ua zgMGQ=l-z8je=?>K+%pEVYD91{*+7;N>-CNOKlq56nFf46rz`K&GyUO=E@yBBe<}@{%qP=W*eu9 zYu&+zCUB2dMA0T6DlvF5=v`Cg%_%kdfhlE~CyN(c`wr%9 z$Q*$2Fgp{@e?UgUDtVFMy+m!Ya0&YbPC^EOErs(G+~VajFOi*Zn*2;#KWUmuZ41fs z4LD}KcdJ$dD>?AXssU`yCglaC&uT(;1EN3r=3?#T3GMY&9*VCb@R{>?pQ~F(&>9J< zNKqBOJ$T@5LKdDEaxWo`wUCMkkT+n50`DYL9&T=O+paDRewmSLBK5y?Y?ECcG|mKu zjWg+TqctC|9haxeK5Kfq++fWpw(XHw=Au3PC@nVcX<+5*p#uGG^NADu^SPOBUVzt$ zt){(i@Es)Hw5&vGPR`$gG7@Z&znQv+C@-iC$YZ>VUTNIi`uzDof@Oq;-g|4 zrXPV=N>FjEa}%!Pt;edHF+n|9v(Rbd)g4TVak&oQrl2&Q5_ z9nRu9X-1Ej@z<0@Y^PW!=Y+jyp_IOm48E&o z*DUJbms+uMkv7KpDKNUy7!N!tVDSSyXq-oRWZL*bPY>ipN*)BXVVP^p)dA%qnNrHOng0v~uKe z{ROaq6f?6-4K(ws6E_NbP4k4`edqcLaz*hbB}HM$XZZ^UIm&n`=-UF<`v%&2x7DO` zdD-BxUe-&*H6n|ge~swwzo9)ENhEr$_TIi&qJ5!QI8)4faQSsTcrWV_`t}L=lM6l4 zC{EIQRb?7_4ft=CkLv$lxn7UbS5x6H0o^Aq5Tp2Yh)@}%s6U2hDm>FH`M=tv@YkZx zvIGzL6l(Zz{Cs@=)LhMn8J7Hm7b^M<=(B|IkiJIKZz2)Jz%v#95a`5T8Bly&Jo5$V zotn=1EDz$Dicb{uR^WGDp!nQQFv=r%NXM-&#QyVqp(OE;zD=*|DoGV$3+fiw$IdGM_2zJYx=PkC3myN|4h@j&s6l;nm(-QPip$h3`~@Lc&JZmn!>wwdsWk)ouTMq zf>C~rhxn{smm9Z7H2vO2gJ@B@s z+ck3E)%4wd#pk;k|GuW@bv%4c(;Fa?{P)%9Gegr)>-9!7zD3iG>5BgX^jVnN$!Bka zqVq>&mid|<)cjq)a~|<8Y5QapTrAP_xc2YoHGR3JKce}s)ASoO{Vr{{CiGcu()1tc z{j$74(Lbx{H);FaugGGprWdrHw`lrsY!(+wF8b1zb`h8me7L7*|Um6vC$#}xr z&~GILo_OM6kTzJoo6+m)j(4)xAMFquHpL=+B9(}PtZ3JAV7cguCu0eVq|Mg0z8I!% z=(0pCnN0M82$s>lZK5aE)6@IKn21=t-D*s9M>_jOY-=nE^20H!FWyBI!O7T`c%ln@ zMNg!=yEh6#M0O*cy-ABK$puw1x+y853bQ2{w_;LU#1hd>oQ*X_6dqW~gyV^5PoJtG zDwXJtCpL3T3X-fhOFaPE*qfvkFas=6ccuC`)E~2;SUe$k?okeg$P zYh2FhjwR$c747crkI7YS=6ho@787D=|F#}0(uo?YlJzFHWyQ8yVrjCsD`G{&($4;V z*K7ZA&A37+;6Fya5|S+*uqgPeOjRMavRsZ1X?hzGAL96nSMV*w0#$kM+WCty!ZRB8 zV_DpD`>38jN7LQPJq1)O?UO;|vC)*h3dYxBtKAUmQ6zmwV3lzyEX3S*|P! zE(m7oiiYnPnjKqd5!$$9`F7QQecpjSLU;pBtsnFk;@>&mz%{SG-QW$Bg}jxX5D8jT zQaC1;CmIwqZY|df5p0GcgMH?Q7BRV^aecp<6*y^AYu4b4%yx#uVZWzasq}Q`dD=@) z`^#DdYORx6ud>!!)Cx8q*Wzw&f71x34K7`^0XhvYD_OA8_^2+~1iOt^-SZ|mVjOFx zXq9s=RaTVW2!{h_G0t-kHjaodMJ`kO{1G9b+B7KV%)M~9;VtB?r*Kvqg?ZPP_o%&q zY7GIBet}YNWyKbBNO=RiXBwicgnCn+@-%dr)+*Ovwb|Nt5~{V0BF`D+-RN1f-Gnp0 zCxk_Y@;u%8s=K5V6>L+mITy{D^C)~R_D|G5NbuJ<>?ij&3GI7lb`a&#d*@xs%oD1o z{i57nNA((7G(%m28@5_T;X4&tEbqXYgy}f1g5tz6aMhLwdlE-L^?-rUWyu6Mym&97C2{3RQAFRt6K>|T5>vglWj5AVkuL#B^K5uTYM*J z2^Wrtcx51n~)-;X23EEn^@JRb>n4kWMvIZ1qLDaf`!eQ8vZidCq zfjVOde9nY^1!&Nuz690Iad6qWBuQR|kxQ7;+<;#~EiBHkCYHz@*6!uyIOoKJ84fs< zF$Id;QP7>?EF4Mo;4tB%h(3aDO|lS4p2hqY^HaTc?GAA#I#T;d zM|0TVJ{zo-EfO{;9^&#%jgeYqtYyM@IpP0vjY!)2lga+c8#suc&s!X&>VlkC@JO_wuY$5acT)v<6i<$osEB!pBaZGnE z3&wGP>1?o=c}*W_u$lQ%=B50>57J4&i_9-`;MuHS!u%vBI)V9{#C_Q6!~7*gD%ivZ zJA0i8AMYNt#xSQdMqAm!ev+71vHo$~${EDQvjAA2@V7sW`EKT0d+p^u z<_EX{{lTNdCh2r5ETD6{W9h$4aK@gD{OkpK~JfIKn@7Sp-+lx%d2Z!^E5X{qOzGch5QZ zoO93L>UrS>)tTCNb9Q8nj=z-1#7MIqEjwT+{%!zcN}##@nIVk*IZFxLQ2d=nB~a0$ z1id{daKs{^Q7)SrG_bk-RU>27E%~ARbNPSeN4R2i*usfyVpV9(z`9zPbm;2p;f34Z z;FU&een^5}6SzDQiHQBM`?N4x*~vhs;vei{N@eFJ4X-tNv`0+*XX7f(az4$JKWt(G z`r!>L{)#X&R4oM+;8Q!=s7~NDrcnv#LU7iVVAbZ|B9TBF2&VBHrktVQ0xtdDHk2`5 zX-+RV`A;O$&&t9sGUsI87-J zn_tr0;xiI#u_J-j@i1!Em)!-;Vs9z0Nl1woL240UI+2h$9c`Y}p}DA69}I?*QMCWK z^IvxYAeSmHfE1ahFoWpO5}s#S76)mN778qB{Fr4+6evub5=%)cu;lWii3_4KgLPyK z$RgZmxAHmGoTwx(c{o2{T^I$Bk&;vt1@e-ud{xqlC~zfdrfMiJnMd))Y#2DqW+LZ3Fyit zZza48wQO@}jRWMRa%DKx3b6_Y+AvTXdLeS4DFpI~D!V*UY1ZY!3WqdN2{R?=(+vYu z33z)t%&@_T3u#b?)1a<5zOTV9x$0+7FAc6igRS@2Nw8{!m9l+0xSx0ercI1>=)sRe zFvo%Ug>;IWCGUp6(*YN<9R#A<&;AWZ5#GQBrLtMX<5Hcb{XL>Qx^TBF2&3JjR~O#= z%Y1ICb6NKwFan{liYjV=;$rQ)@iql?Z74!B{*XcOhr5&j%!9fHgdrG8F!58Bp=kxA z3&=ofl1gTvl5yUy)uv`$^&tLBs>QHY(tGGUqSP#DMol(%r`Zj@KK^1K3E8Z+@}ZzJ zj48Vc5$qVDuD<6R)11YI+v0>mpE#i!p*U<=&{C+KKo1L4+zoo~f}X?B;jqWZ7Ep7% zEv-SL7UJi_?fO)(qxy&IZn(_q`s(l`7v7P6X22!rjE&0e9~DDMBU14W^$#>&kg0ZC zzu+&mKhkf#*PbLz-TFH>XN(-a9_uFHZ3Rv%D<1|K6j$jCY;D%9 z<%=`MM*B}q#^QU6oi6K$V{kSoV^#;|BOMNr{UF?j=JqgEBhJsmT(l6VK|a~#jDf}< z;mcf)@!srM{*lX7G6rU;^(MT{;Kb<|i618XEy63vr!2zv!P^A!NVZBoevEPKhX?gE65oL! zj6?7sKE)*XK9(jp`_8o8T<9~><4SxAP_4G;3q(81J7 zx{bIC1kVnX8|EV$MlU?LVS@}2%ix+!kM9hbs}dYwfIGtRw@|X#+N0jKq}z(r_i=&l7%_3Vx(k3SK0xwndfG7azB}O~JckqwBSlq&KTRo6E8zgh@c@TN5B3rquM>X^q<$&_ zlkf)yCqW6-z9M0^kMMWy%jJH;=g|R7$6wAW(rRlH`LXQWc>K?g3ToZ_X7=cKwX11bZYHO`wHQTfuJ1u5xUK6tK_kF%#@@(%t-{#Z>1cq9}@Poq~K8v6!SR7Del z!|`C7(R+A5y3F%{e1NW1WqGJ zW%Q+#zOX)1q=b8BRNK+Z7+ps0B~QB@4a4wR?mj5Y8-xpaEjSlJU49n~<*$JeXCb8X zt02eaf+pvSxNb)|3?I4Lm}P<8-3`6&4RG15qdp&M3S7zn=mj-O9|Q}QL95pl3TDgR zYstlUHc{<&nhwXii_C&2Z(!9(zatusD@H_%OS`XevVAEI#e;s-pO!1z*cFU+J@ONE z;yr3BMv9|8I%nPOG{&{pa76=Cgz&TuqKG#8ks1*_oyx_`ZQlRSxc$cSj`;i$)DT}B4D zOC#zmfHNL%_4A}{(5DVK#AnYw(u0w7&nYY4M-~S@=q(`{o;BkMzt$ z^%=C^u}BDd8DscdmP0kg$!xa!M;>XIe%?a6U@;82MZ zJ}p@b9$&cyLx|)6R-eFSRZAC1<{8M=Rgzjmxa)tgp5PQFlMp{2S+Y2z--uj{Z6Nhk zIN=Lu^fo2129FkD$!TdLb;ta2J1sYx%MoWDJmt43n_-vVqn$^E7=6>PDy!uE5F!tW zDipCrh$hl@(hm*~KE%&4-vcA1m1>sAk0xcGxWy!pXds`3Wv)H}eme$GAJEm>*|e zmn{p*VSbW%BlB}~`RKzj#EQL(rGri!#~FNR2YW4&Z#Ah9Uoo%cLg)I6XJ^`XXwtr& z?JqFD!uCGqmvFYj%H`hBFlX*z&Cl#17G(I9`G=V@1F-!~<|#f)+>|+PGta?476j%p zPct8tI}3?tNsEL2?9rAhvZOnT>gjTM?G#!p(dW zpV>1ee@O^RL-QK4XgFT4}nIt&JVdO8r2=;@brpC%NG@7DMXDx H*OLDLw9sgz delta 2660 zcmZXWeQZ-z6u|H6)=^frevGbLyKXIGbeUw>p%5HygQdxHM%kFKkZdZF$dDi!x1b^v zC=+WlGrXV#gJBSLx_^KfK-9KjlerPIIf?Nj#F>DW6q6BA8Xc?Wyn9}|;!WOr_x{f3 zJ@=#SYdYWDQ?7}-4^}M8t~D{GJz+Zi+)2ZN1rlR&U^v>ZXYBSmIdEO}-*n1>T~Rsc zjiO)&Ut%oC9nWQ~XT%fnOnCnGB=}>-?OD|Q!uWKn$_Et(dv6|x2;n_ORu`R^NhHGi zu=h3gj$$tayz6VIF9E0qMU; zPhoEcdmlpYJmwZ#9?mcUI1C_`*%Om`{N8E)vU#3S@wfvmoT#vkA2M&&LAgeh+8r|& zackaz6nHRU0=@iY0IDY4tSQWbBqdev^9wL;p+zq3|KuW?O5X-d7Upk&)_9V|~!y8}O6kW@frK)YV(t$~l>EZZOHaDsf57#Tw2u)QV&-(!(?;);Q%2*_QkcBe%i z)*5vDbU~hPW)3(Fc;hiMXxzeqi0~VBgW6xcH#ynTHBpH4|A71m>O}!f@ev@QS_zTU!oj&!GsCa#cZ;CJ+eil78P;C!O>fS4Ml<4gcM@<&Si*CVDqH)qYIlFl0C&MEbQJCNx97W=+ z{IAj$8$au?q*ed2XF?R^ktl877Z0J|JGpUvas8lbOQ$QPSEBUo&XgG6e4@ zzMc4$9KkDycfi*K$uz>{iYOCb&|ZZH{S;C(CqigGc#!uR6n!7_D44O=Nw8K3SRwIl z;-6|nfMO(sR z56-|&i7rQywW1V0wh^V!@NWP*I!*~KRBFUn27HlQXtQAL zv1JqAde52}h#M%;pipO4;zM&qLahql%2+W8zM@^%NCsuZmrBB5FO0EO5I;%*HVDi- z#H(q>^~7t45AoiGR^KQ0?BRz=x}T=uAgg-fAJeqeb=V1VEXNG_v6FrS>AyugX*KaC z;(rPMw&X&zkYIrJq-mh3?2e?_ZR8E^%5414h934f`9Alu>^eGOwJv_qU8AXUaZP!R VrhO4#U0#ztg!dn`N(QFI{{dzB68iuE diff --git a/dsk/rd/emr/system/system.emx/app.elf b/dsk/rd/emr/system/system.emx/app.elf index b2a6faf24905b7319f20652b5007e19f5679a747..80712abe5920ad767b7a35868263bfa5830cbc6f 100755 GIT binary patch literal 16096 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 literal 13880 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 delta 2666 zcmaJ@eQZ-z6u+-q$G&L$y7glpwC}-2$1;}<$p(r*7$t9znF)d+f(8>Y8vKZCMvzgl zPVy{^gNsTq1d%`dV=;>%5(Qo7hFkWBfe?cUx=2J~&5Eg!Y>lAxoO{n(Sxvmjd-vVn zIrsd|*S&4J^YzXBb++Nqk@}Y6fXc*JrhfX|8E5egg)ze%Pb?_qKG)TP<}1z9%^7~n zwOmQ^#cEqo%Ei{8e1N~K)+lfB_f@@Uny~HsYc;rTiG#5T*f)VYN4FT}P2*tFWn=98 zd>|US1IlqAVTpaPHu`!~|70@fGXNOoSR7qR)X(SD?pKvA{;peZZve3wPDOiC%xTtV zG8rS*oBA6jaH18g8s^9>GA0clEd{c2urySpT4V=GdB*)pq2(9vE<2N5_{%rUlaY>c zf7yM!zx;`;@b~ij^Ff&5x~DCRI(z~ChG%CM&^;CWu4iQyaQM9ZVej)<;DUFvl~0F{ zXYtd%l@>nf3tOMMr<}L=y~%heph5=q#Fguz*DAFNa~(boy? zdkWxljIpT_@MF3_xB=F~Y3MJ}o3g{ANzE{O5+F!mDBu1Cp$KonX;en+DgJAPu6~rp z4hpAcJCv)Hp%SYt!p%SM<(2xbH9&-^@D3qi9QuhR-oxHA?X@UEn&`08h+a<_CVa>2 z4ul~YM$D6EX(*QgNg*4ywlMMt8hJ3B+M|x!f8y~>?uAA3$Qp;R#@|5*J7(`KDOiDm3zmQ@!Aj*guMXBlPG{q_nowj<1~C@z z#Elz-((Fw*C(g0>W>g9NugYVnlAo&r-Od|4h5U=4Qy0ewTQAy^W(Nv@J~3q%N7bsv zjbJ-(((3eUU<(J{jW(vR+l;NjHGGP(kT+{S-mewfG?kyw8Y_<$ONFIU&Q=NCJXWXj zpS8vn1CF`k4iKZ=Nx~nXZJP-9Ii>z;-mZrto9uG6k+gQf?1tTk^CUh%_zQ%uC#&^@ z?}1rmd8`R8d4%%u1!FHfXeUPc8iFtmz=L=h`~tyegf+t(M=v}mxJd3*2$ZqIgfAwC z&_Ns=9-&X!u^c@?_{LJ{5d08|@gclXe;eVWBHamPmXHtZ|%! z2MzU+qpbpE>`TIH3Z(uH!bb^TCnIKy2%mu2#cwUFiu4gPrU1wH@F2t19EKkWe|nx| z_yCn*;Li=}pQKtI5-4Ly!r#te{*&;FGO`HUNgM8vz+EH>YN#b`FeAaCe2E_;{UX9A zb86-w{2-+wM*3dDTc~E+1r9Y>K!R2xz*CC@9YEsSiX>hNYaB}mFQrUulQ3%{{1b|} zjqryEZ=vFQ2yaEa8VIU$+Il5znC7Qze9u-5n;kD$JdRDKUQEVv}uM9P+_%9C)q%?dp*2s0OjPDLr7i)Cb0y;k$T4mF8eg&qc S#oS%Dswjq+=&X7}sPtbVwDv^+ diff --git a/include/limine b/include/limine index 38ff2c8..0aa46ad 160000 --- a/include/limine +++ b/include/limine @@ -1 +1 @@ -Subproject commit 38ff2c855aabb92e4cfa2cc7ef0c8af665ecba94 +Subproject commit 0aa46ad0a034a111df345dd80c3b950629041e2b diff --git a/shared/ui/fonts/font_8x8.h b/shared/ui/fonts/font_8x8.h index 7fe7ae2..4028fbc 100644 --- a/shared/ui/fonts/font_8x8.h +++ b/shared/ui/fonts/font_8x8.h @@ -4,17 +4,28 @@ //https://github.com/SloopyCode/BitFonts static const u8 font_8x8[256][8] = { // all unused characters can be used as a custom texture (0x00 to 0x1F) - [0x00] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // null - [0x01] = { 0x10, 0x18, 0x1C, 0x1E, 0x1C, 0x18, 0x10, 0x00}, // arrow - [0x02] = { 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}, // long dash - [0x03] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, // block filled - [0x04] = { 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF}, // hollow block - [0x05] = { 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E}, // rounded block filled - [0x06] = { 0x7E, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x7E}, // rounded hollow block - [0x07] = { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C}, // circle filled - [0x08] = { 0x18, 0x7E, 0x7E, 0xFF, 0xFF, 0x7E, 0x7E, 0x18}, // circle2 filled - [0x09] = { 0x3C, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3C}, // circle outline - [0x0A] = { 0x18, 0x66, 0x42, 0x81, 0x81, 0x42, 0x66, 0x18}, // circle2 outline + [0x00] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x01] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x02] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x03] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x04] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x05] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x06] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x07] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x08] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x09] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x0A] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + //[0x00] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // null + //[0x01] = { 0x10, 0x18, 0x1C, 0x1E, 0x1C, 0x18, 0x10, 0x00}, // arrow + //[0x02] = { 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}, // long dash + //[0x03] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, // block filled + //[0x04] = { 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF}, // hollow block + //[0x05] = { 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E}, // rounded block filled + //[0x06] = { 0x7E, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x7E}, // rounded hollow block + //[0x07] = { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C}, // circle filled + //[0x08] = { 0x18, 0x7E, 0x7E, 0xFF, 0xFF, 0x7E, 0x7E, 0x18}, // circle2 filled + //[0x09] = { 0x3C, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3C}, // circle outline + //[0x0A] = { 0x18, 0x66, 0x42, 0x81, 0x81, 0x42, 0x66, 0x18}, // circle2 outline // and iknow there are unicode expecialy for these special characters but this is simpler for now [0x0B] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // unused diff --git a/shared/ui/fonts/font_8x8_bold.h b/shared/ui/fonts/font_8x8_bold.h index 99f6f4c..49c079d 100644 --- a/shared/ui/fonts/font_8x8_bold.h +++ b/shared/ui/fonts/font_8x8_bold.h @@ -3,18 +3,29 @@ #include //https://github.com/SloopyCode/BitFonts static const u8 font_8x8_bold[256][8] = { - // all unused characters can be used as a custom texture (0x00 to 0x1F) - [0x00] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // null - [0x01] = { 0x10, 0x18, 0x1C, 0x1E, 0x1C, 0x18, 0x10, 0x00}, // arrow - [0x02] = { 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}, // long dash - [0x03] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, // block filled - [0x04] = { 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF}, // hollow block - [0x05] = { 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E}, // rounded block filled - [0x06] = { 0x7E, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x7E}, // rounded hollow block - [0x07] = { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C}, // circle filled - [0x08] = { 0x18, 0x7E, 0x7E, 0xFF, 0xFF, 0x7E, 0x7E, 0x18}, // circle2 filled - [0x09] = { 0x3C, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3C}, // circle outline - [0x0A] = { 0x18, 0x66, 0x42, 0x81, 0x81, 0x42, 0x66, 0x18}, // circle2 outline + // all unused characters can be used as a custom texture (0x00 to 0x1F) + [0x00] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x01] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x02] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x03] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x04] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x05] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x06] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x07] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x08] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x09] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + [0x0A] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + //[0x00] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // null + //[0x01] = { 0x10, 0x18, 0x1C, 0x1E, 0x1C, 0x18, 0x10, 0x00}, // arrow + //[0x02] = { 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}, // long dash + //[0x03] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, // block filled + //[0x04] = { 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF}, // hollow block + //[0x05] = { 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E}, // rounded block filled + //[0x06] = { 0x7E, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x7E}, // rounded hollow block + //[0x07] = { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C}, // circle filled + //[0x08] = { 0x18, 0x7E, 0x7E, 0xFF, 0xFF, 0x7E, 0x7E, 0x18}, // circle2 filled + //[0x09] = { 0x3C, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3C}, // circle outline + //[0x0A] = { 0x18, 0x66, 0x42, 0x81, 0x81, 0x42, 0x66, 0x18}, // circle2 outline // and iknow there are unicode expecialy for these special characters but this is simpler for now [0x0B] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // unused diff --git a/src/commands.TODO b/src/commands.TODO new file mode 100644 index 0000000..f01618f --- /dev/null +++ b/src/commands.TODO @@ -0,0 +1,54 @@ +[ ] dofetch +[ ] version +[x] cat +[x] ls +[x] echo +[x] cd +[x] tree +[ ] pwd +[ ] touch +[ ] mkdir +[ ] rmdir +[ ] rm +[ ] cp +[ ] ecc (emex c compiler) +[ ] mv +[ ] chmod +[ ] chown +[ ] find +[ ] grep +[ ] head +[ ] tail +[ ] less +[ ] more +[ ] wc +[ ] man +[ ] history +[ ] alias +[ ] uname +[ ] whoami +[ ] env +[ ] export +[ ] unset +[ ] source +[ ] df +[ ] du +[ ] dd +[ ] ping +[ ] top +[ ] htop +[ ] ps +[ ] kill +[ ] killall +[ ] jobs +[ ] bg +[ ] fg +[ ] sleep +[ ] date +[ ] cal +[ ] mount +[ ] umount +[ ] unalias +[ ] clear +[ ] reboot +[ ] shutdown diff --git a/src/kernel/arch/x86_64/exceptions/panic.c b/src/kernel/arch/x86_64/exceptions/panic.c index 172edb6..106407e 100644 --- a/src/kernel/arch/x86_64/exceptions/panic.c +++ b/src/kernel/arch/x86_64/exceptions/panic.c @@ -57,16 +57,17 @@ __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *m print("\n", white()); // Print RIP + char hex[32]; str_copy(buf, "RIP: 0x"); - str_append_uint(buf, (u32)(state->rip >> 32)); - str_append_uint(buf, (u32)(state->rip & 0xFFFFFFFF)); + str_from_hex(hex, state->rip); + str_append(buf, hex); print(buf, white()); print("\n", white()); // Print RSP str_copy(buf, "RSP: 0x"); - str_append_uint(buf, (u32)(state->rsp >> 32)); - str_append_uint(buf, (u32)(state->rsp & 0xFFFFFFFF)); + str_from_hex(hex, state->rsp); + str_append(buf, hex); print(buf, white()); print("\n\n", white()); diff --git a/src/kernel/cpu/cpu.h b/src/kernel/cpu/cpu.h index 273ff29..243e4aa 100644 --- a/src/kernel/cpu/cpu.h +++ b/src/kernel/cpu/cpu.h @@ -79,4 +79,11 @@ const char* cpu_get_brand(void); cpu_info_t* cpu_get_info(void); int cpu_has_feature(u32 feature); +void cli(void); +void sti(void); +__attribute__((noreturn)) void halt(void); +__attribute__((noreturn)) void idle(void); +void wfi(void); +void nop(void); + #endif diff --git a/src/kernel/cpu/halt.c b/src/kernel/cpu/halt.c new file mode 100644 index 0000000..ae18264 --- /dev/null +++ b/src/kernel/cpu/halt.c @@ -0,0 +1,39 @@ +#include "cpu.h" + +// +// MADE BY @msaid5860 +// + +// Disable interrupts +void cli(void) { + __asm__ volatile("cli"); +} + +// Enable interrupts +void sti(void) { + __asm__ volatile("sti"); +} + +// Full system halt +__attribute__((noreturn)) void chalt(void) { + __asm__ volatile("cli"); + for (;;) __asm__ volatile("hlt"); +} + +void halt(void) { + __asm__ volatile("hlt"); +} + +// Idle halt +__attribute__((noreturn)) void idle(void) { + for (;;) __asm__ volatile("hlt"); +} + +// Wait for interrupt +void wfi(void) { + __asm__ volatile("sti; pause; hlt"); +} + +void nop(void) { + __asm__ volatile("nop"); +} \ No newline at end of file diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 04cb708..d38b333 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -294,7 +294,7 @@ void _start(void) #if HARDWARE_SC == 1 // let the cpu rest a small time for (volatile int i = 0; i < 1000000; i++) { - __asm__ volatile("nop"); + nop(); } #endif @@ -332,7 +332,7 @@ void _start(void) #if HARDWARE_SC == 1 // let the cpu rest a small time for (volatile int i = 0; i < 1000000; i++) { - __asm__ volatile("nop"); + nop(); } #endif } diff --git a/src/kernel/packages/emex/packreader.c b/src/kernel/packages/emex/packreader.c index 52a4e3e..59dbe79 100644 --- a/src/kernel/packages/emex/packreader.c +++ b/src/kernel/packages/emex/packreader.c @@ -48,27 +48,27 @@ static int dir_exists(const char *path) { int emex_open_app(const char *path, emex_package_t *pkg) { if (!path || !pkg) return EMEX_ERR_NOT_FOUND; - // wipe the package struct clean before filling it + // copy path to kernel buffer first, NEVER use the raw pointer again after this str_copy(pkg->path, path); pkg->has_icon = 0; pkg->has_resources = 0; // only if the path ends with .emx - if (!path_has_emx_ext(path)) { - printf("[EMX] '%s' doesn't end with .emx, not a valid emx package\n", path); + if (!path_has_emx_ext(pkg->path)) { + printf("[EMX] '%s' doesn't end with .emx, not a valid emx package\n", pkg->path); return EMEX_ERR_NOT_EMX; } - if (!dir_exists(path)) { - printf("[EMX] '%s' not found or isn't a directory\n", path); + if (!dir_exists(pkg->path)) { + printf("[EMX] '%s' not found or isn't a directory\n", pkg->path); return EMEX_ERR_NOT_FOUND; } - printf("[EMX] opening package: %s\n", path); + printf("[EMX] opening package: %s\n", pkg->path); char child_path[256]; // app.elf is required otherwise - build_child_path(child_path, path, EMEX_ELF_NAME); + build_child_path(child_path, pkg->path, EMEX_ELF_NAME); if (!file_exists(child_path)) { printf("[EMX] %s is missing! can't launch without it\n", EMEX_ELF_NAME); return EMEX_ERR_NO_ELF; @@ -76,7 +76,7 @@ int emex_open_app(const char *path, emex_package_t *pkg) { printf("[EMX] found %s\n", EMEX_ELF_NAME); // package.info is also required with title the other things not really but well - build_child_path(child_path, path, EMEX_INFO_NAME); + build_child_path(child_path, pkg->path, EMEX_INFO_NAME); if (!file_exists(child_path)) { printf("[EMX] %s is missing! package needs metadata\n", EMEX_INFO_NAME); return EMEX_ERR_NO_INFO; @@ -91,7 +91,7 @@ int emex_open_app(const char *path, emex_package_t *pkg) { // optional icon // icon is later good for a taskbar or smth else but // then i probably delete it from the kernel and move the icon parser to the wm or smth - build_child_path(child_path, path, EMEX_ICON_NAME); + build_child_path(child_path, pkg->path, EMEX_ICON_NAME); if (file_exists(child_path)) { printf("[EMX] found %s, loading...\n", EMEX_ICON_NAME); if (emex_load_icon(child_path, &pkg->icon) == EMEX_OK) { @@ -103,7 +103,7 @@ int emex_open_app(const char *path, emex_package_t *pkg) { printf("[EMX] no %s found\n", EMEX_ICON_NAME); } - build_child_path(child_path, path, EMEX_RES_DIR); + build_child_path(child_path, pkg->path, EMEX_RES_DIR); if (dir_exists(child_path)) { pkg->has_resources = 1; // optional to have } diff --git a/src/kernel/packages/gz/gzip.c.t b/src/kernel/packages/gz/gzip.c.t new file mode 100644 index 0000000..43dc54b --- /dev/null +++ b/src/kernel/packages/gz/gzip.c.t @@ -0,0 +1,197 @@ +#include +#include +#include
    +#include
    + +// +// MADE BY @msaid5860 +// gzip parser +// (currently not used) +// + +static uint32_t tgz_get_bits(tgz_stream *s, int bits) { + while (s->bit_cnt < bits) { + s->bit_buf |= ((uint32_t)(*s->in++)) << s->bit_cnt; + s->bit_cnt += 8; + } + uint32_t val = s->bit_buf & ((1 << bits) - 1); + s->bit_buf >>= bits; + s->bit_cnt -= bits; + return val; +} + +// --- Huffman Logic --- +typedef struct { + uint16_t counts[TGZ_MAX_BITS + 1]; + uint16_t symbols[TGZ_MAX_BITS + 1][288]; +} tgz_huffman; + +static void tgz_build_tree(tgz_huffman *tree, const uint8_t *lens, int n) { + int i, codes[TGZ_MAX_BITS + 1]; + memset(tree->counts, 0, sizeof(tree->counts)); + for (i = 0; i < n; i++) tree->counts[lens[i]]++; + tree->counts[0] = 0; + + int code = 0; + for (i = 1; i <= TGZ_MAX_BITS; i++) { + code = (code + tree->counts[i-1]) << 1; + codes[i] = code; + } + + int offsets_map[TGZ_MAX_BITS + 1]; + for(i=0; i<=TGZ_MAX_BITS; i++) offsets_map[i] = 0; + + for (i = 0; i < n; i++) { + if (lens[i] != 0) tree->symbols[lens[i]][offsets_map[lens[i]]++] = (uint16_t)i; + } +} + +static int tgz_decode_symbol(tgz_stream *s, tgz_huffman *tree) { + int len, code = 0, first = 0, count; + for (len = 1; len <= TGZ_MAX_BITS; len++) { + code |= tgz_get_bits(s, 1); + count = tree->counts[len]; + if (code - count < first) return tree->symbols[len][code - first]; + first += count; + first <<= 1; + code <<= 1; + } + return -1; +} + +static const uint8_t CLCL_ORDER[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; + +// --- Inflate --- +static int tgz_inflate(tgz_stream *s) { + int final = 0; + while (!final) { + final = tgz_get_bits(s, 1); + int type = tgz_get_bits(s, 2); + + if (type == 0) { // Uncompressed + s->bit_buf >>= (s->bit_cnt & 7); + s->bit_cnt &= ~7; + uint16_t len = (uint16_t)tgz_get_bits(s, 16); + uint16_t nlen = (uint16_t)tgz_get_bits(s, 16); + if (len != (uint16_t)~nlen) return TGZ_ERR_FORMAT; + + // Note: No output bounds check here! + memcpy(s->out, s->in, len); + s->in += len; + s->out += len; + + } else if (type == 1 || type == 2) { + tgz_huffman lit_tree, dist_tree; + if (type == 1) { // Fixed + uint8_t lens[288], dist_lens[32]; + int i; + for (i=0; i<144; i++) lens[i] = 8; + for (; i<256; i++) lens[i] = 9; + for (; i<280; i++) lens[i] = 7; + for (; i<288; i++) lens[i] = 8; + tgz_build_tree(&lit_tree, lens, 288); + for (i=0; i<32; i++) dist_lens[i] = 5; + tgz_build_tree(&dist_tree, dist_lens, 32); + } else { // Dynamic + int hlit = tgz_get_bits(s, 5) + 257; + int hdist = tgz_get_bits(s, 5) + 1; + int hclen = tgz_get_bits(s, 4) + 4; + uint8_t code_lens[19]; + memset(code_lens, 0, 19); + for (int i = 0; i < hclen; i++) code_lens[CLCL_ORDER[i]] = (uint8_t)tgz_get_bits(s, 3); + + tgz_huffman code_tree; + tgz_build_tree(&code_tree, code_lens, 19); + uint8_t lens[288 + 32]; + int n = 0; + while (n < hlit + hdist) { + int sym = tgz_decode_symbol(s, &code_tree); + if (sym < 16) lens[n++] = (uint8_t)sym; + else if (sym == 16) { + int copy_len = tgz_get_bits(s, 2) + 3; + uint8_t prev = lens[n-1]; + while (copy_len--) lens[n++] = prev; + } else if (sym == 17) { + int copy_len = tgz_get_bits(s, 3) + 3; + while (copy_len--) lens[n++] = 0; + } else if (sym == 18) { + int copy_len = tgz_get_bits(s, 7) + 11; + while (copy_len--) lens[n++] = 0; + } + } + tgz_build_tree(&lit_tree, lens, hlit); + tgz_build_tree(&dist_tree, lens + hlit, hdist); + } + + while (1) { + int sym = tgz_decode_symbol(s, &lit_tree); + if (sym < 256) { + *s->out++ = (uint8_t)sym; + } else if (sym == 256) { + break; + } else { + sym -= 257; + static const int lbase[] = {3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258}; + static const int lext[] = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}; + int len = lbase[sym] + tgz_get_bits(s, lext[sym]); + + int dist_sym = tgz_decode_symbol(s, &dist_tree); + static const int dbase[] = {1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577}; + static const int dext[] = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + int dist = dbase[dist_sym] + tgz_get_bits(s, dext[dist_sym]); + + // LZ77 Byte Copy + uint8_t *src_copy = s->out - dist; + for (int i = 0; i < len; i++) *s->out++ = *src_copy++; + } + } + } else return TGZ_ERR_FORMAT; + } + return TGZ_OK; +} + +// --- Public Wrapper --- + +/* + * ungzip + * * src: pointer to GZIP data + * * dst: pointer to destination buffer (MUST BE LARGE ENOUGH) + * * Returns: Number of bytes written to dst + */ +int ungzip(const void *src, void *dst) { + const uint8_t *in = (const uint8_t *)src; + + // Check Header (0x1F, 0x8B, 0x08) + if (in[0] != 0x1F || in[1] != 0x8B || in[2] != 8) return TGZ_ERR_FORMAT; + + uint8_t flags = in[3]; + const uint8_t *data_start = in + 10; + + // Skip Header Fields + if (flags & 0x04) { // FEXTRA + uint16_t extra_len = data_start[0] | (data_start[1] << 8); + data_start += 2 + extra_len; + } + if (flags & 0x08) { // FNAME + while (*data_start) data_start++; + data_start++; + } + if (flags & 0x10) { // FCOMMENT + while (*data_start) data_start++; + data_start++; + } + if (flags & 0x02) data_start += 2; // FHCRC + + // Initialize Stream + tgz_stream stream; + stream.in = data_start; + stream.out = (uint8_t *)dst; + stream.out_start = (uint8_t *)dst; + stream.bit_buf = 0; + stream.bit_cnt = 0; + + // Decompress until End-of-Block symbol found + if (tgz_inflate(&stream) != TGZ_OK) return TGZ_ERR_FORMAT; + + return (int)(stream.out - stream.out_start); +} diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index 9678518..a887260 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -14,6 +14,7 @@ #include #include #include +#include // read syscall #include @@ -27,6 +28,8 @@ extern ulime_t *ulime; #define SCWRITE 0xFFFFFFFF +extern char cwd[]; + // fromsyscall_entry.asm extern u64 user_rsp; extern u64 user_rcx; @@ -340,51 +343,57 @@ u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { if (fd != 0) return (u64)-1; if (buf == 0 || count == 0) return 0; - char *out = (char *)buf; - u64 i = 0; + // file descriptor 0 = stdin tp keyboard input + if (fd == 0) { + char *out = (char *)buf; + u64 i = 0; - // reenable interrupts - __asm__ volatile("sti"); + // reenable interrupts + sti(); - while (i < count - 1) { - // TODO: - // use semaphores or spinlocks NOT busywaits - while (!keyboard_has_key()) { - __asm__ volatile("hlt"); - } + while (i < count - 1) { + // TODO: + // use semaphores or spinlocks NOT busywaits + while (!keyboard_has_key()) { + halt(); + } - key_event_t event; - if (!keyboard_get_event(&event)) continue; - if (!event.pressed) continue; + key_event_t event; + if (!keyboard_get_event(&event)) continue; + if (!event.pressed) continue; - char c = (char)(event.keycode & 0xFF); + char c = (char)(event.keycode & 0xFF); - if (c == '\n' || c == '\r') { - char nl[2] = {'\n', '\0'}; - cprintf(nl, SCWRITE); - out[i++] = '\n'; - break; - } - if (c == '\b') { - if (i > 0) { - i--; - cprintf("\b", SCWRITE); + if (c == '\n' || c == '\r') { + char nl[2] = {'\n', '\0'}; + cprintf(nl, SCWRITE); + out[i++] = '\n'; + break; } - continue; + if (c == '\b') { + if (i > 0) { + i--; + cprintf("\b", SCWRITE); + } + continue; + } + + if (c < 0x20 || c > 0x7E) continue; + + char echo[2] = {c, '\0'}; + cprintf(echo, SCWRITE); + out[i++] = c; } - if (c < 0x20 || c > 0x7E) continue; + // i think this is slow........ this read syscall :( + cli(); - char echo[2] = {c, '\0'}; - cprintf(echo, SCWRITE); - out[i++] = c; + out[i] = '\0'; + return i; } - // i think this is slow........ this read syscall :( - __asm__ volatile("cli"); - - out[i] = '\0'; - return i; + ssize_t r = fs_read((int)fd, (void *)buf, (size_t)count); + return (r < 0) ? (u64)-1 : (u64)r; } u64 scall_getpid(ulime_proc_t *proc, u64 arg1, u64 arg2, u64 arg3) { @@ -429,6 +438,78 @@ u64 scall_getdents(ulime_proc_t *proc, u64 path_ptr, u64 buf_ptr, u64 max_entrie return (n < 0) ? (u64)-1 : (u64)n; } +u64 scall_chdir(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { + (void)proc; (void)arg2; (void)arg3; + + if (!path_ptr || path_ptr > 0x0000800000000000ULL) return (u64)-1; + + const char *s = (const char *)path_ptr; + + // no argument then go to root + if (!s || *s == '\0') { + str_copy(cwd, "/"); + return 0; + } + + char new_path[FS_MAX_PATH]; + + // handle ".." (go back) before resolution + if (str_equals(s, "..")) { + int len = str_len(cwd); + if (len > 1 && cwd[len - 1] == '/') { + cwd[len - 1] = '\0'; + len--; + } + for (int i = len - 1; i >= 0; i--) { + if (cwd[i] == '/') { + if (i == 0) str_copy(cwd, "/"); + else cwd[i] = '\0'; + return 0; + } + } + return 0; + } + + // absolute vs relative path + if (s[0] == '/') { + str_copy(new_path, s); + } else { + str_copy(new_path, cwd); + if (cwd[str_len(cwd) - 1] != '/') str_append(new_path, "/"); + str_append(new_path, s); + } + + // verifyy the path exists and is a directory + fs_node *dir = fs_resolve(new_path); + if (!dir) return (u64)-1; + if (dir->type != FS_DIR) return (u64)-1; + + + // new cwd + str_copy(cwd, new_path); + + // ensurey trailing slash (except for root) + int len = str_len(cwd); + if (len > 1 && cwd[len - 1] != '/') str_append(cwd, "/"); + + return 0; +} + +u64 scall_getcwd(ulime_proc_t *proc, u64 buf_ptr, u64 size, u64 arg3) { + (void)proc; + (void)arg3; + + if (!buf_ptr || size == 0 || buf_ptr > 0x0000800000000000ULL) return 0; + + char *buf = (char *)buf_ptr; + int cwlen = str_len(cwd); + + if ((u64)(cwlen + 1) > size) return 0; // buffer too small + + str_copy(buf, cwd); + return (u64)(cwlen + 1); // return written byte count (> 0 = success) +} + void _init_syscalls_table(ulime_t *ulime_ptr) { if (!ulime_ptr) return; @@ -445,6 +526,8 @@ void _init_syscalls_table(ulime_t *ulime_ptr) { ulime_ptr->syscalls[EXIT] = scall_exit; ulime_ptr->syscalls[EXECVE] = scall_execve; ulime_ptr->syscalls[GETDENTS] = scall_getdents; + ulime_ptr->syscalls[CHDIR] = scall_chdir; + ulime_ptr->syscalls[GETCWD] = scall_getcwd; log("[SYSCALL]", "syscall table initialized\n", d); } diff --git a/src/userspace/Makefile b/src/userspace/Makefile index c5c6868..43a879a 100644 --- a/src/userspace/Makefile +++ b/src/userspace/Makefile @@ -1,23 +1,31 @@ all: @$(MAKE) -C libc + #@$(MAKE) -C apps/hello @$(MAKE) -C apps/system @$(MAKE) -C apps/shell @$(MAKE) -C apps/login + @$(MAKE) -C bin/echo @$(MAKE) -C bin/hello @$(MAKE) -C bin/ls @$(MAKE) -C bin/tree + @$(MAKE) -C bin/cd + @$(MAKE) -C bin/cat clean: @$(MAKE) -C libc clean + #@$(MAKE) -C apps/hello clean @$(MAKE) -C apps/system clean @$(MAKE) -C apps/shell clean @$(MAKE) -C apps/login clean + @$(MAKE) -C bin/echo clean @$(MAKE) -C bin/hello clean @$(MAKE) -C bin/ls clean @$(MAKE) -C bin/tree clean + @$(MAKE) -C bin/cd clean + @$(MAKE) -C bin/cat clean .PHONY: all clean diff --git a/src/userspace/apps/login/login.elf b/src/userspace/apps/login/login.elf index 1f20fd3974b021f759048d35939378db5e195cd9..342a9397aeb9e0f141597b81096b41bf5ce527a9 100755 GIT binary patch delta 2365 zcmZ9Oe@v8R9KfIVl^5|ixjW$Q;10M01x}cNKe7-d7QWjXE|rLBmd-Xejn-g!v{j?a zow}|IBfquLT#_R<$Ul11bZYHO`wHQTfuJ1u5xUK6tK_kF%#@@(%t-{#Z>1cq9}@Poq~K8v6!SR7Del z!|`C7(R+A5y3F%{e1NW1WqGJ zW%Q+#zOX)1q=b8BRNK+Z7+ps0B~QB@4a4wR?mj5Y8-xpaEjSlJU49n~<*$JeXCb8X zt02eaf+pvSxNb)|3?I4Lm}P<8-3`6&4RG15qdp&M3S7zn=mj-O9|Q}QL95pl3TDgR zYstlUHc{<&nhwXii_C&2Z(!9(zatusD@H_%OS`XevVAEI#e;s-pO!1z*cFU+J@ONE z;yr3BMv9|8I%nPOG{&{pa76=Cgz&TuqKG#8ks1*_oyx_`ZQlRSxc$cSj`;i$)DT}B4D zOC#zmfHNL%_4A}{(5DVK#AnYw(u0w7&nYY4M-~S@=q(`{o;BkMzt$ z^%=C^u}BDd8DscdmP0kg$!xa!M;>XIe%?a6U@;82MZ zJ}p@b9$&cyLx|)6R-eFSRZAC1<{8M=Rgzjmxa)tgp5PQFlMp{2S+Y2z--uj{Z6Nhk zIN=Lu^fo2129FkD$!TdLb;ta2J1sYx%MoWDJmt43n_-vVqn$^E7=6>PDy!uE5F!tW zDipCrh$hl@(hm*~KE%&4-vcA1m1>sAk0xcGxWy!pXds`3Wv)H}eme$GAJEm>*|e zmn{p*VSbW%BlB}~`RKzj#EQL(rGri!#~FNR2YW4&Z#Ah9Uoo%cLg)I6XJ^`XXwtr& z?JqFD!uCGqmvFYj%H`hBFlX*z&Cl#17G(I9`G=V@1F-!~<|#f)+>|+PGta?476j%p zPct8tI}3?tNsEL2?9rAhvZOnT>gjTM?G#!p(dW zpV>1ee@O^RL-QK4XgFT4}nIt&JVdO8r2=;@brpC%NG@7DMXDx H*OLDLw9sgz delta 2660 zcmZXWeQZ-z6u|H6)=^frevGbLyKXIGbeUw>p%5HygQdxHM%kFKkZdZF$dDi!x1b^v zC=+WlGrXV#gJBSLx_^KfK-9KjlerPIIf?Nj#F>DW6q6BA8Xc?Wyn9}|;!WOr_x{f3 zJ@=#SYdYWDQ?7}-4^}M8t~D{GJz+Zi+)2ZN1rlR&U^v>ZXYBSmIdEO}-*n1>T~Rsc zjiO)&Ut%oC9nWQ~XT%fnOnCnGB=}>-?OD|Q!uWKn$_Et(dv6|x2;n_ORu`R^NhHGi zu=h3gj$$tayz6VIF9E0qMU; zPhoEcdmlpYJmwZ#9?mcUI1C_`*%Om`{N8E)vU#3S@wfvmoT#vkA2M&&LAgeh+8r|& zackaz6nHRU0=@iY0IDY4tSQWbBqdev^9wL;p+zq3|KuW?O5X-d7Upk&)_9V|~!y8}O6kW@frK)YV(t$~l>EZZOHaDsf57#Tw2u)QV&-(!(?;);Q%2*_QkcBe%i z)*5vDbU~hPW)3(Fc;hiMXxzeqi0~VBgW6xcH#ynTHBpH4|A71m>O}!f@ev@QS_zTU!oj&!GsCa#cZ;CJ+eil78P;C!O>fS4Ml<4gcM@<&Si*CVDqH)qYIlFl0C&MEbQJCNx97W=+ z{IAj$8$au?q*ed2XF?R^ktl877Z0J|JGpUvas8lbOQ$QPSEBUo&XgG6e4@ zzMc4$9KkDycfi*K$uz>{iYOCb&|ZZH{S;C(CqigGc#!uR6n!7_D44O=Nw8K3SRwIl z;-6|nfMO(sR z56-|&i7rQywW1V0wh^V!@NWP*I!*~KRBFUn27HlQXtQAL zv1JqAde52}h#M%;pipO4;zM&qLahql%2+W8zM@^%NCsuZmrBB5FO0EO5I;%*HVDi- z#H(q>^~7t45AoiGR^KQ0?BRz=x}T=uAgg-fAJeqeb=V1VEXNG_v6FrS>AyugX*KaC z;(rPMw&X&zkYIrJq-mh3?2e?_ZR8E^%5414h934f`9Alu>^eGOwJv_qU8AXUaZP!R VrhO4#U0#ztg!dn`N(QFI{{dzB68iuE diff --git a/src/userspace/apps/login/login.o b/src/userspace/apps/login/login.o index 65a53f9b7b52b4951668f75953c266a0dc3c9c17..0f7f3b656b279b147231de75c8cfea1e7069a0ed 100644 GIT binary patch delta 665 zcmZ`#KS%;$6#w3N-kmmtgdS%^K||7%5EwXI4Z;;cNJX^S7DY(V7L;KU7J~AIa7$W( zrl6rAQZV|nHM9g3H53On*k0NDx<7-^2k(9F{rfS&s>5h{XmJvxzS} z6#~J6E6#GUK;ql_;iCXBj8C3kNaHu<6!wUF(P2J{P8Ws1fH{5o4`nQD`*(GV9Wspuea5m6`()zqarh>pcc1QF5VAYwytsG?LZqPW;e zI<{MJ=m+sPsU4j}5Gr-h#i<(aYd%9S+{1bIoOAPDs@?IP)PTU`lP57%NhDLL}661F6ymF^mmt7Le^HsG`D|$kMnkQ9* zR3cP|#7!!-fk2qsM6O-mod@SSiOMbCjY!8cQNQ40*1bB;Bp zjP=^{oPA!#vS$HQRK-*1$DFA6hv|3l@=;6F0)C4Meu=UgX;Ox`jcNt`lA@-Y)GN$CAJ7No(Uxb&ChA5|GDfDP=8k27jWHjYk6<*}{!o&^GEr7$ z$Ktg!LVj5?mzW`Fw)u}yl8qP!BqWgj<7P6^s97+<$p%W}qU*9@{r&FwfsSM+Dd(Ke z?|Xi)bMFm3Ey?D-kZGj6zp}>Svh)+{07ldYQmt9ESBZW7{a1Y&FnMdRpI%zv5* z4yVVoKNBjQN0fJA$QdlG{wI~v!-;5jLfG`mR4S##dK1eyVW>R##p!mBTG3N3d0Jle zblwVCIfo&ZGXyocjW`#;U~W73Tw7qbs{wl4ZurV|0M~g?=dQzj6s(>WgLiqlA?2xq zr@Udb=fZ&3t(=8R-YTUJZg@+;k>`)>TaQhMsZBKXPIMNGP={{L;UA>6M57amrmIy_ zSAmo5qBuU$5kPyM+}XyiYO(OFK0}p!h*grO3AEo`$Lda(Hm&}KI~p>?FC8s?ETw!CTeGlvW%m;`iqeR7 zCq)M~sC8D0?V_5ozHdl>`i|izx!RNrY)Z0kb!*qV@5jRTQTbe&5cK%Vr@fJPT68g_ z4Yw5xE0AC0SA!TZZmgE^F^|KWMILy+sKDr4kJ|@-7rDUguZENUG7I%?{w#JNj@!z{ zc3K%PnCxl=nN@@@{twm?OkfZRF?xnfP&-Xctt0cdU=M`au23fOeMJ!!C99qqZzhrc zP;(2J4?fiVESYzb8E+&9#sfBGCtL~mU@5Spzb_ryL+MZ#EcIPO9SwT7O+pcW2(g{^ zNdaBKa+B8%gTX4F(;_JqOQRltibxXyJKPFZ)h4nYH19$)IrC&o{wSTnu?K&|pJ84N zyNfF##i~>_7#bm7$JvRh!)cNaF@J;kM;xt``5~Mgm`unn_36ytV*NGN7cf7{+>c)} zTt>u3HuSRL2Tsq${3LTPC-f3?U|!4J`HcA)=AT<-LfOm*n2#{OOdn*7FV3;y`g(aF zOdQ7-_@ho-=KxIx72+cE3v2p2%6yJH+RFM#=8dvq;b$Jl*$#h|vA1Gyh10FB)L`Kp8A(8}n_8Lsb^~e}hiX`Qe37jm67vm@@!pLiHwZ0DiY!YRdlwHytyZ delta 2666 zcmaJ@eQZ-z6u+-q$G&L$y7glpwC}-2$1;}<$p(r*7$t9znF)d+f(8>Y8vKZCMvzgl zPVy{^gNsTq1d%`dV=;>%5(Qo7hFkWBfe?cUx=2J~&5Eg!Y>lAxoO{n(Sxvmjd-vVn zIrsd|*S&4J^YzXBb++Nqk@}Y6fXc*JrhfX|8E5egg)ze%Pb?_qKG)TP<}1z9%^7~n zwOmQ^#cEqo%Ei{8e1N~K)+lfB_f@@Uny~HsYc;rTiG#5T*f)VYN4FT}P2*tFWn=98 zd>|US1IlqAVTpaPHu`!~|70@fGXNOoSR7qR)X(SD?pKvA{;peZZve3wPDOiC%xTtV zG8rS*oBA6jaH18g8s^9>GA0clEd{c2urySpT4V=GdB*)pq2(9vE<2N5_{%rUlaY>c zf7yM!zx;`;@b~ij^Ff&5x~DCRI(z~ChG%CM&^;CWu4iQyaQM9ZVej)<;DUFvl~0F{ zXYtd%l@>nf3tOMMr<}L=y~%heph5=q#Fguz*DAFNa~(boy? zdkWxljIpT_@MF3_xB=F~Y3MJ}o3g{ANzE{O5+F!mDBu1Cp$KonX;en+DgJAPu6~rp z4hpAcJCv)Hp%SYt!p%SM<(2xbH9&-^@D3qi9QuhR-oxHA?X@UEn&`08h+a<_CVa>2 z4ul~YM$D6EX(*QgNg*4ywlMMt8hJ3B+M|x!f8y~>?uAA3$Qp;R#@|5*J7(`KDOiDm3zmQ@!Aj*guMXBlPG{q_nowj<1~C@z z#Elz-((Fw*C(g0>W>g9NugYVnlAo&r-Od|4h5U=4Qy0ewTQAy^W(Nv@J~3q%N7bsv zjbJ-(((3eUU<(J{jW(vR+l;NjHGGP(kT+{S-mewfG?kyw8Y_<$ONFIU&Q=NCJXWXj zpS8vn1CF`k4iKZ=Nx~nXZJP-9Ii>z;-mZrto9uG6k+gQf?1tTk^CUh%_zQ%uC#&^@ z?}1rmd8`R8d4%%u1!FHfXeUPc8iFtmz=L=h`~tyegf+t(M=v}mxJd3*2$ZqIgfAwC z&_Ns=9-&X!u^c@?_{LJ{5d08|@gclXe;eVWBHamPmXHtZ|%! z2MzU+qpbpE>`TIH3Z(uH!bb^TCnIKy2%mu2#cwUFiu4gPrU1wH@F2t19EKkWe|nx| z_yCn*;Li=}pQKtI5-4Ly!r#te{*&;FGO`HUNgM8vz+EH>YN#b`FeAaCe2E_;{UX9A zb86-w{2-+wM*3dDTc~E+1r9Y>K!R2xz*CC@9YEsSiX>hNYaB}mFQrUulQ3%{{1b|} zjqryEZ=vFQ2yaEa8VIU$+Il5znC7Qze9u-5n;kD$JdRDKUQEVv}uM9P+_%9C)q%?dp*2s0OjPDLr7i)Cb0y;k$T4mF8eg&qc S#oS%Dswjq+=&X7}sPtbVwDv^+ diff --git a/src/userspace/apps/shell/shell.o b/src/userspace/apps/shell/shell.o index b108e1d6eae9833a3057d0dc2a5200829f3bfab9..dfa4a102714bde80d9d5dc800b43e77c4b5c2c31 100644 GIT binary patch delta 358 zcmaDLazSK*24lcP%~z8p8GlTcWLnSIH2EZxBBROV*G!8iPheJIyfS$!vpmxehRN5M zyMUZT7IncZ3=r@GN-Is?$Ra*@1B(UYnaM9%+8Mbg7qW^=`ZGeLxquW4R3(TCpS+M& zoUsN>&YOG@$X*6!ADhg`CN6mwO&2#*=kv*iKv@PR2p41?NaoLf2-q<>5h!~eNfu-) zO!nsFiEQGGk0-BWvzLUqJpm{W0w66Qd}cBu`+lZ>Op_0>n=vL#{>g67WXC+2kwt8B z0EY&QIe|li(Qfii4tvI&$v=T)!(>ZNd&UiuD>?0%elSno#c9VVG5IH_J?9TLkl73j Jfs-9MzLIT zZ%tmxEYHNiIQbZJ7myRkqAqxg0SXu)w9@2-EaHDb8=S;ZNfz~qw22Z8K0VD_2GAA!1Fqv_&?>ijxckxg8Zj|svBnFo^j^B)3^ zO%4Rg-bIoH*$R_=KDm)ioblu2nQZowFt;ZFZkUiHCXeCU!H%g2^x0 z?U{U-Cx2uXo9w`$0b@3BXfXOrUddt4ST*@2keo1ClhdB@z~oF$dnOK+$*VZ+7&Rup T_$h2-}L|7e5m)6s*QE#&Ad{q;S${bnn@K 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 literal 13880 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 +#include +#include + +#define CAT_BUFSZ 4096 + +static void resolve_path(const char *arg, char *out_buf, int bufsz) +{ + char cwd[256]; + int ci = 0; + int ai = 0; + + if (!arg || arg[0] == '/') { + int i = 0; + if (arg) while (i < bufsz - 1 && arg[i]) { out_buf[i] = arg[i]; i++; } + out_buf[i] = '\0'; + return; + } + if (!getcwd(cwd, sizeof(cwd))) { + cwd[0] = '/'; cwd[1] = '\0'; + } + + + while (ci < bufsz - 1 && cwd[ci]) { out_buf[ci] = cwd[ci]; ci++; } + + if (ci > 0 && out_buf[ci - 1] != '/') { + if (ci < bufsz - 1) out_buf[ci++] = '/'; + } + + while (ci < bufsz - 1 && arg[ai]) { out_buf[ci++] = arg[ai++]; } + out_buf[ci] = '\0'; +} + +int main(int argc, char *argv[]) +{ + if (argc < 2) { + // no file given + // read from stdin and echo to stdout + char buf[CAT_BUFSZ]; + ssize_t n; + while ((n = read(STDIN_FILENO, buf, sizeof(buf))) > 0) + write(STDOUT_FILENO, buf, (size_t)n); + return 0; + } + + int ret = 0; + + for (int i = 1; i < argc; i++) { + char path[256]; + resolve_path(argv[i], path, sizeof(path)); + + FILE *f = fopen(path, "rb"); + if (!f) { + fprintf(stderr, "cat: %s: cannot open\n", path); + ret = 1; + continue; + } + + char buf[CAT_BUFSZ]; + size_t n; + + // fread returns full elements + while ((n = fread(buf, 1, sizeof(buf), f)) > 0) + write(STDOUT_FILENO, buf, n); + + if (ferror(f)) { + fprintf(stderr, "cat: %s: read error\n", path); + ret = 1; + } + + fclose(f); + } + + return ret; +} \ No newline at end of file diff --git a/src/userspace/bin/cat/cat.elf b/src/userspace/bin/cat/cat.elf new file mode 100755 index 0000000000000000000000000000000000000000..b1db53a6ce7e1db9ed732bf63aa1fd45b704748a GIT binary patch literal 16672 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�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 Z0~9@FuUIR`?*Ct()1AZ&0f+Mb{|g~tazFq8 literal 0 HcmV?d00001 diff --git a/src/userspace/bin/cat/cat.o b/src/userspace/bin/cat/cat.o new file mode 100644 index 0000000000000000000000000000000000000000..6501b5456f38db237308ec5a11c4c540f2733c43 GIT binary patch literal 2808 zcmb_eUuaup6hAlJy4rPZrxPa=xg!14%QNE4B2<(Lz^L}L?{(clW%v-De+iEfI z+X^n;%6)upnoTm^G#j+AJhuRMl=%g+9b1Ld6WL3fX1z;2Q#l;d z!kdX)cn#cllzTLDZ=hXqM)P7_Q8Dd_+Hv1(a8*O8PjMvDlW}WoRl6GLa*ZWYnOZq0 z(U+7NFL?g#MJ?*GA?TgD~N585)T9b|s2f@Q4yNy^eqnw_AG0d@n%skEh= zRN6q{nH84LRbcu1>jZASfSk^pkb|v3d{Um*Sn*!|k^D?oJ2N_dB{H>daNsAcgf^r*O-hu{y7ZrLeW2O-B-35+S8JyRV4%kr zhdwtE1?Ra4@&NEocDbVa;H2%4Lx?<#ek7mgjF^tUUiNgiUihUK??6>`Z#`J^TEU<<7&qwi~}N2T5xo1s9wJ*MtO39Fkr5qv|$Wfjk-^G{C7R5;qilNWni9IL;mSg$tL@75j$}k$%1s zI4#7H_;(>c1KbNhN%6B+vHwlM)jWp_ z&MEjP+R1zAL_#6|B4vJ#@@EH^^9n}hQqr|%adn+wotHbuUbGC?zUYE6XSo&_vzZJS zPC7Wm)5)ZrLLE1==g%h`D~X-{e?&(&^iB_k+(pIN75A5FvQ>rNOX^8f1#v$l9L@^@ z%?fR4#z+nZ3()&Wcqj~f69$BRI6l3%!VcU)E2;ui&Ov{g>$FL6Lb;{RxtMS%1nS92+5+A*U#^ rfAqf4_aw|Gzv0>=1lP$J==PO literal 0 HcmV?d00001 diff --git a/src/userspace/bin/cd/Makefile b/src/userspace/bin/cd/Makefile new file mode 100644 index 0000000..ab416ea --- /dev/null +++ b/src/userspace/bin/cd/Makefile @@ -0,0 +1,28 @@ +CC := x86_64-elf-gcc +LD := x86_64-elf-ld +LIBC := ../../libc + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(LIBC)/include + +LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld + +OUT := cd.elf + +all: clean $(OUT) + +$(OUT): cd.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o cd.o $(LIBC)/build/libc.a -o $@ + +cd.o: cd.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(LIBC)/build/crt0.o $(LIBC)/build/libc.a: + $(MAKE) -C $(LIBC) + +clean: + rm -f *.o $(OUT) + +.PHONY: all clean \ No newline at end of file diff --git a/src/userspace/bin/cd/cd.c b/src/userspace/bin/cd/cd.c new file mode 100644 index 0000000..19b072d --- /dev/null +++ b/src/userspace/bin/cd/cd.c @@ -0,0 +1,35 @@ +#include +#include + +// +// NOTE: +// as a standalone binary "cd" only changes the directory of "this" process +// for it to work in a shell it must exec it as a builtin or use the +// result path +// most shells handle cd internally +// + +int main(int argc, char *argv[]) +{ + if (argc < 2) { + // no argument: change to root + if (chdir("/") != 0) { + puts("cd: failed to change to /"); + return 1; + } + return 0; + } + + if (chdir(argv[1]) != 0) { + fprintf(stderr, "cd: %s: no such directory\n", argv[1]); + return 1; + } + + // print the new cwd so the parent shell can pick it up if needed + char buf[256]; + if (getcwd(buf, sizeof(buf))) { + puts(buf); + } + + return 0; +} \ No newline at end of file diff --git a/src/userspace/bin/cd/cd.elf b/src/userspace/bin/cd/cd.elf new file mode 100755 index 0000000000000000000000000000000000000000..25c463738bb25c21dd6a9400c6fd1b5572077fd4 GIT binary patch literal 15960 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 y3!c`SYQNzAa(?t)Z!zi05#0W&s|`F{a&Vc!=3 literal 0 HcmV?d00001 diff --git a/src/userspace/bin/echo/echo.elf b/src/userspace/bin/echo/echo.elf index b4df898cf58d2c76f8134c8fe68c93ed1dd3926e..c6706e71c1f83dbad420bea0ac870e447396ea27 100755 GIT binary patch delta 2088 zcmZ`)eN0 zchA>7?{%_cvaSDaWy`th9l666VaPSh$6X&-l{RqN{N}ht>>5)LPu^>WR@*jZ4;;5` zZJo^%BBm`yl1ihN4i$b*jL}b4xg%(fXlW&;rJJi)hI-J$Y1vu%f zQTk!XSr-1XQ;+_rM;1%;Xeg;id*<{=C@H%0^q7XKTDeIGJ*Jk>oY?#G2#$iqCgO-2x&JT`uu47VI7nNHqf8^RM9%c+xIFVH zooUjRPS_{ZdgPHKqgxAB$x~hObc*6vD0T3l%b#;AwUSextHgQ}`>{}m^f}7cS2 zjRUt0##*%|oQ72YYVo#cD2=m;{D(4ypox()9*h^c#}xQ(vtKPmw^PRM&K=rq^Atgw z$Ftgo)(L0LbW=0jCMw^Ws54wtRi^mKVTz)OBhIkIJG93 zm_9%)Y9{jx%y_GIe?{4>T%A!27L3<4KDLiY(f>6cAaj>dOVH<5+l<|_z5u@7{XRE* zt$08B*JAaD-^bXFjqtMdE{uKfw4=_DV^RJdDeZ$xPx`hV(4@L3tb(`59!s z$3TTR!uYQ;i?Gv&jB6B*?Eo>p1L4J z1C`rje4O4E5+}1>;Ck+puqb2v2+RkH!uM~O&;VO!I7u&`s$zVUi=y|2UA0u?Pv01j8Qn9AsY5H$w%RJr+I5&-sb delta 2467 zcmaKuYfM~46vyWR7bv^zgMAfPme(Rk4Rl+BVw+HkYp$hjsFWBJ(b5>2R6|UK4@Pip zwzO{7nvy}&q_v6tU}Df1LW-{zC?r6QL{b|cC=E4Y*DQ%k(v*!^#dBuPWq}V)a`)c( zo&U^v%()k)8>bJPe^@E&tE|boYGPu1YZ^R0U{>yMr=`$1XkvRt72pv=Hm|pASB~)$ zmTmQ)8W{`wmx2+c)}QFHe}#&Xp*8KhU=I2dO4y&+I*j~|r9IPk%XicF zz_-eMIc|Q$dL{|(S@)%bRodQ3^6NP}(}1t?Wrv-o*{YM4dAo-nvb7}vDkg39NswU= zCMRd@&ANkmJ5Tag9lLe@iNmiyE;}lfHtu#-Dc!u$S(=o0I12+48H{OR^%~xK$GY5K zU={!T9e#j*gfuv&Xd(5Y)b+#7Jj_mwbrymBw49koX0@qO#XI(xlFuI*nh#E zID0c4+()9S=qx&oi7Zyschb#g3u+Y;&+=5|HD|IturJ$zKQO#-DJ+$ZnfNoFs@hkK z8_hexoC1Q&#Gk-5Fdl~s`A@{__?MpYfGt(7ZWJ2E_QO2~R0kBv2Z$dgolPOgd;M{<^NG z>ga*KMckMr_4JpEohF_~d;%Mc1sFR=hSYSqK(EAm#J6veyan|zF2RKv9Hc-W6O^$l z#22Zet;9bju2O|ciGK!n3vVsT4;&=Vy=1vgD_omAj1zxIl@VPe{Wrv4AkSxr-y+_) z$@9;|du3(;)#;Vpm|^AUD@Lw1ljmQ;-F;s)G2h zl$3ssN5GD;_^5O9NncI+8&v(h#A}FG$f)v|e!#oQ@CP-Jb*Qi8Megt-6e7tLWHAr#P9ii7l0NwnY?U z*rG_N(~dJmVIPd5j){yqP!ZRLR#q}WR}?3kU>Q>qvOhAW7+GUH=iZY}d*Hrz&+q)s z=esvK{mALwi8Wf_$l8r%whAGowPI@U6LamPCd3~*jOcG)-G%V9ULksB5E6+KMbK(l z4}%te_feA&#v8FQ$257)pe7Qha=Dxl)n6vlcral^VrC<-^vLz~Tw)iuFQR}CDu+2Opc1D0%S^^@3L z9CwW!a(2U{${1>5O*Anb!QKA>I|)o<-raD_UZX9*7xvZq_p**QTNPyO#d>sE^Erz3 z!MtX=Fw;-YeG=G;UKHtpR4b|z8ny64M_crs~hzQyjrtO;;EVt4A*wSXSG4J+ra8}XeVK{yG5ITes>_8 zpP3JbpD?0hi$)}r5ToT(2!7rXoD80fA$s9ia?8q+*Rc;ocM=+jX~^qSyv_JBe=c5+ zjr!2OQEBGsOBii2`V)Qocc@>C6hpg16JbRkvm5hz5z4wiLQ!1-hrBJF&LYu6aNc}3?hBA`KjZ7kh|-LU@D~{GfTXu4jMtxxCGU7|vaFka3DJien!@SF4<#(##3vbkWy5(sN^dj1 zP^KJ$L`QiK7x8uGKPFKjjx&B~#n@?5#J|iFrHPT8!Br{BHF1DDu7fFGQ`k|i(&bMQ z{hpBfsTE=87%$-R0CkdYaS?wPrwdC|h#wd~o6pAh6~?!#cEaKbHe6!^a6w+4OOo-O z#j4P^n4f0c#tHHt>QBbkl`4LO`B}!NObXvF@hTzcE>j04PS6WUe^c98cHhSCPG)__ z={7Om!1&kjK)us-Y{jt*uyqX_sCN!r;|%TW`wYG*^L6&3i$>DQUhnd(yA&+$Wqe}A zOgAz9DIXE@xtsNuwF12YE;h7S=^vK@=pGfu41RAFxEnpCY_NIY!NzXQ1BdYGhuOyN Ol7OPNNa`;QrhfsC(%B3E delta 2286 zcmZ9Oe`s4(6vyvtlA1Pcel;&?^P^3d*v@XmrVi(H(yk@rt!^;w%J4^>{lkH7>c*OX zbS1cSj7OYIZk+`wO#Q=RK^%o46PnV>O4aF5skk3dMIogMUC|lFx_HjL=QT|)yu5oq z=iKi(_uPA5JJvn6_uNBD^u3lxE8TV`TC4rytK*Kq*9v3*^lJK_myu7J?5raTh~>&G zyw&-zE&gMCE`BFoNW^dOL(ax_y_zxY^iM;GgwjNOO#u3z2mhSZ*N5oDPxGnl%T{wu8MgE>u4E@EEOOuVx`H0*iGU0jv-pe{L=kFBrtB58lfp?!lyS6JwZ%EZpeC zO;=Var_8f84YmM;HC6)SrrWD)V?)eJV$=U!ckG!)=K{Z56Eus?W6tK1eNg;f-s7n& zVMjgNO2!vFE!D$NXOt2P;TJp)9uhm-w;qcGJ}8FrxIs}cj0oKn_C zH2q3;C%TOAE_Ji*qjjr2rur+o#Ta+-n5x=)(6PA$9YkbaLs!*Jij6O;exrny-WRQF ztElt_`H=Ta5!ig)MaLLV`_?)C=6gg|&{Nx0oT2#Zd9t>@27Iu)*1bb8AV%&cIzci7&Wa zL2(@x|A5K>J&ZIxrGVe_((eGg9GBS8)Ib>QyXD9+c@5MS^m#nUZ$UjlDV3Z8hbF^4 zscN$p4~($M7;i%lTucBpxTQ;O7~DZ711?E3W>O3|FGnQ-Z8G2h#=ErU9fM0|8AFY; z`yqdI6uMX7qT3*kv(U!|Nv~b>FM_J~>Rm`(M8}T?Ud`Fu$O^v^47)zgg9$zn#Zzq# zZRN30r@KvRF(14YW@5E=ekv5(@r;>upv5pZLB9+fhKN6oMrd2$K|V>moiBzuQt&ZE zqZNOk?S{t5b3}Uyeo?=Tl1POG zX6$7$T((G|IPs&zj}WgTeuDT1l+a<~ZyNrrG*LVQ7=WYeS4f>c;-3j_Q`izsi13RI&8hno?ligK zcMD}#sbGfe4DtC&Df=P$e@om>;c$7_eu4*e;#9AQpp0E7enc)O#rnzcI~medGC-8- zvPeAtfaJsEzf62+!$$o}e1#IqkpC+2PphTQ3xd}$W`;nR=@oPCS$YV_63Y&ez?vX1iOjlNgjp+j!ew4YM)QLO`{*-EpH)82Fv-%i}V zp{7p~|BjA`YvOj}FG`uo&cBJoT=@S73YhApjDt6ZYIrajsvv{Ao_9vum3n>(emC*y PXuCBkU1P%aW~AzWJ_czf diff --git a/src/userspace/bin/ls/ls.c b/src/userspace/bin/ls/ls.c index 66cc37b..2221989 100644 --- a/src/userspace/bin/ls/ls.c +++ b/src/userspace/bin/ls/ls.c @@ -1,36 +1,91 @@ #include #include #include +#include -static void print_str(const char *s) { - write(STDOUT_FILENO, s, strlen(s)); +#define COLS 6 // items per row + +static void resolve_path(const char *arg, char *out_buf, int bufsz) +{ + if (arg && arg[0] == '/') { + int i = 0; + while (i < bufsz - 1 && arg[i]) { out_buf[i] = arg[i]; i++; } + out_buf[i] = '\0'; + return; + } + + char cwd[256]; + if (!getcwd(cwd, sizeof(cwd))) { + cwd[0] = '/'; cwd[1] = '\0'; + } + + if (!arg || arg[0] == '\0') { + int i = 0; + while (i < bufsz - 1 && cwd[i]) { out_buf[i] = cwd[i]; i++; } + out_buf[i] = '\0'; + return; + } + int ci = 0; + while (ci < bufsz - 1 && cwd[ci]) { out_buf[ci] = cwd[ci]; ci++; } + if (ci > 0 && out_buf[ci - 1] != '/') { + if (ci < bufsz - 1) out_buf[ci++] = '/'; + } + int ai = 0; + while (ci < bufsz - 1 && arg[ai]) { out_buf[ci++] = arg[ai++]; } + out_buf[ci] = '\0'; } int main(int argc, char **argv) { - const char *path = (argc > 1) ? argv[1] : "/"; + char path[256]; + resolve_path((argc > 1) ? argv[1] : NULL, path, sizeof(path)); DIR *dir = opendir(path); if (!dir) { - print_str("ls: cannot open '"); - print_str(path); - print_str("'\n"); + write(STDOUT_FILENO, "ls: cannot open '", 17); + write(STDOUT_FILENO, path, strlen(path)); + write(STDOUT_FILENO, "'\n", 2); return 1; } + #define MAX_ENTRIES 256 + #define NAME_MAX_LEN 64 + + static char names[MAX_ENTRIES][NAME_MAX_LEN + 1]; + static char is_dir[MAX_ENTRIES]; + int count = 0; + struct dirent *ent; - while ((ent = readdir(dir)) != NULL) { - if (ent->d_type == DT_DIR) { - write(STDOUT_FILENO, "\033[34m", 5); // blue for dirs - print_str(ent->d_name); - print_str("/"); + while (count < MAX_ENTRIES && (ent = readdir(dir)) != NULL) { + int ni = 0; + const char *src = ent->d_name; + while (ni < NAME_MAX_LEN && src[ni]) { + names[count][ni] = src[ni]; + ni++; + } + names[count][ni] = '\0'; + is_dir[count] = (ent->d_type == DT_DIR) ? 1 : 0; + count++; + } + + closedir(dir); + + // print COLS items per row + for (int i = 0; i < count; i++) { + if (is_dir[i]) { + write(STDOUT_FILENO, "\033[34m", 5); // blue for dirs + write(STDOUT_FILENO, names[i], strlen(names[i])); + write(STDOUT_FILENO, "/", 1); write(STDOUT_FILENO, "\033[0m", 4); } else { - print_str(ent->d_name); + write(STDOUT_FILENO, names[i], strlen(names[i])); + } + if ((i + 1) % COLS == 0 || i == count - 1) { + write(STDOUT_FILENO, "\n", 1); + } else { + write(STDOUT_FILENO, "\t", 1); } - print_str("\n"); } - closedir(dir); return 0; -} +} \ No newline at end of file diff --git a/src/userspace/bin/ls/ls.elf b/src/userspace/bin/ls/ls.elf index bb629c3d00d2b659d1245e2b1e01a46852449124..252f8319a06fda6eade9616749c220bffafc5b60 100755 GIT binary patch literal 12056 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 diff --git a/src/userspace/bin/tree/tree.elf b/src/userspace/bin/tree/tree.elf index a95a17e0e05da4c8bf31d26ec819e64cb30a1cb2..8c8dbffbf48f071b4dad0cecc4f28a02cb9aaf0c 100755 GIT binary patch delta 2820 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 delta 810 zcmaKpO=uHA6oBV#HZjR=n%WBM+Db`L+Fq2khZG7~ml9kr>c!%vG#*+c2f>@(8j8|l zk!&BuLr=kjf`_&zwV*8KL;D%E&<#` zLz^1eJPyOEAZf0Xx2co&fx{|ruH~_6E@PmDFp5EB=yLH$ohgtvpFe=7`GfKNQF`f+ zYV7IdJ!ti>J2jpG8xcRZfB3)ZUx@ltq}AGA{M4MG!f&~8ZHF~Z>r;@$_xb=7v7ry7 zGZD&qUENQ#iBv4ogGO|PcqQs)vb>+9*fwIAtR_HIWSl{Wy@73f7hAI@WzHbW1(i%= z>6B&9$}mYbMk^}g$GAasse`6v+`u11Z}9Vx@OzrH=sGQ#!_#rgUOhp(PS84fM0+$! zk*L0B+M(#j2Sl%R&~uVbVkK@tf%m`+ekT10Az{G_*7kRKis#`;)jYS*A^KciUUkgK zn!oTa(ftmp<~hb7VO{Cvk|gSEe>)WCWu6T))p1bAuZf(kzNsL$^L)H2=p-%rp6kgf zOkl#u(v>{J#j9o<7mP7jz>kJY8cY{nqeprROQx%xP2#qhgF6T*7yh6}`XQE5L;nD~ C1I-u! diff --git a/src/userspace/libc/include/ctype.h b/src/userspace/libc/include/ctype.h new file mode 100644 index 0000000..6f70f09 --- /dev/null +++ b/src/userspace/libc/include/ctype.h @@ -0,0 +1 @@ +#pragma once diff --git a/src/userspace/libc/include/math.h b/src/userspace/libc/include/math.h new file mode 100644 index 0000000..32f73a8 --- /dev/null +++ b/src/userspace/libc/include/math.h @@ -0,0 +1,5 @@ +#pragma once + +#define M_PI 3.14159265358979323846 +#define M_PI_2 1.57079632679489661923 +#define M_SQRT2 1.41421356237309504880 diff --git a/src/userspace/libc/include/stdio.h b/src/userspace/libc/include/stdio.h index f2f3eb1..3352c6b 100644 --- a/src/userspace/libc/include/stdio.h +++ b/src/userspace/libc/include/stdio.h @@ -4,7 +4,36 @@ #define EOF (-1) -int puts(const char *s); +typedef struct { + int _fd; + int _flags; + int _eof; + int _err; +} FILE; + + +#define _FILE_READ 0x01 +#define _FILE_WRITE 0x02 + +extern FILE *stdin; +extern FILE *stdout; +extern FILE *stderr; + + +FILE *fopen(const char *path, const char *mode); + +int fclos(FILE *f); +size_t fread(void *buf, size_t sz, size_t n, FILE *f); +size_t fwrite(const void *buf, size_t sz, size_t n, FILE *f); +char *fgets(char *buf, int n, FILE *f); +int fputc(int c, FILE *f); +int fputs(const char *s, FILE *f); +int feof(FILE *f); +int ferror(FILE *f); +int fprintf(FILE *f, const char *fmt, ...); +int vfprintf(FILE *f, const char *fmt, va_list ap); + +int puts (const char *s); int putchar(int c); int printf(const char *fmt, ...); diff --git a/src/userspace/libc/src/stdio.c b/src/userspace/libc/src/stdio.c index 9165dcf..3004ec0 100644 --- a/src/userspace/libc/src/stdio.c +++ b/src/userspace/libc/src/stdio.c @@ -1,63 +1,206 @@ #include +#include #include +#include #include -#include - -// convert ul to ascii -static int _uitoa(unsigned long val, int base, char *buf) { - static const char digits[] = "0123456789abcdef"; - char tmp[64]; - int i = 0; - if (val == 0) { tmp[i++] = '0'; } - while (val) { tmp[i++] = digits[val % (unsigned)base]; val /= (unsigned)base; } - for (int j = 0; j < i; j++) buf[j] = tmp[i - 1 - j]; +#include +//#include + +static FILE _stdin = { ._fd = STDIN_FILENO, ._flags = _FILE_READ, ._eof = 0, ._err = 0 }; +static FILE _stdout = { ._fd = STDOUT_FILENO, ._flags = _FILE_WRITE, ._eof = 0, ._err = 0 }; +static FILE _stderr = { ._fd = STDERR_FILENO, ._flags = _FILE_WRITE, ._eof = 0, ._err = 0 }; + +FILE *stdin = &_stdin; +FILE *stdout = &_stdout; +FILE *stderr = &_stderr; + +FILE *fopen(const char *path, const char *mode) +{ + if (!path || !mode) { errno = EINVAL; return NULL; } + + int flags = 0; + int fflags = 0; + + // parse mode string + char m = mode[0]; + int plus = (mode[1] == '+') || (mode[2] == '+'); + + if (m == 'r') { + flags = plus ? O_RDWR : O_RDONLY; + fflags = plus ? (_FILE_READ | _FILE_WRITE) : _FILE_READ; + } else if (m == 'w') { + flags = plus ? (O_RDWR | O_CREAT) : (O_WRONLY | O_CREAT); + fflags = plus ? (_FILE_READ | _FILE_WRITE) : _FILE_WRITE; + } else if (m == 'a') { + flags = O_WRONLY | O_CREAT; + fflags = _FILE_WRITE; + } else { + errno = EINVAL; + return NULL; + } + + int fd = open(path, flags); + if (fd < 0) return NULL; // errno already set by open() + + FILE *f = (FILE *)malloc(sizeof(FILE)); + if (!f) { close(fd); errno = ENOMEM; return NULL; } + + f->_fd = fd; + f->_flags = fflags; + f->_eof = 0; + f->_err = 0; + + return f; +} + +int fclose(FILE *f) +{ + if (!f) { errno = EINVAL; return EOF; } + + // do not close the static standard streams + int is_std = (f == stdin || f == stdout || f == stderr); + + int r = 0; + if (!is_std) { + r = close(f->_fd); + free(f); + } + return r; +} + +size_t fread(void *buf, size_t sz, size_t n, FILE *f) +{ + if (!f || !buf || !sz || !n) return 0; + if (f->_eof || f->_err) return 0; + if (!(f->_flags & _FILE_READ)) { f->_err = 1; return 0; } + + size_t total = sz * n; + ssize_t got = read(f->_fd, buf, total); + + if (got < 0) { f->_err = 1; return 0; } + if (got == 0 || (size_t)got < total) f->_eof = 1; + + return (size_t)got / sz; // full elements read +} + +size_t fwrite(const void *buf, size_t sz, size_t n, FILE *f) +{ + if (!f || !buf || !sz || !n) return 0; + if (!(f->_flags & _FILE_WRITE)) { f->_err = 1; return 0; } + + size_t total = sz * n; + ssize_t written = write(f->_fd, buf, total); + + if (written < 0) { f->_err = 1; return 0; } + return (size_t)written / sz; +} + +char *fgets(char *buf, int n, FILE *f) +{ + if (!f || !buf || n <= 0) return NULL; + if (f->_eof || f->_err) return NULL; + if (!(f->_flags & _FILE_READ)) { f->_err = 1; return NULL; } + + int i = 0; + while (i < n - 1) { + char c; + ssize_t r = read(f->_fd, &c, 1); + if (r < 0) { f->_err = 1; break; } + if (r == 0) { f->_eof = 1; break; } + buf[i++] = c; + if (c == '\n') break; + } + + if (i == 0) return NULL; buf[i] = '\0'; - return i; + return buf; +} + + +int fputc(int c, FILE *f) +{ + if (!f || !(f->_flags & _FILE_WRITE)) return EOF; + unsigned char ch = (unsigned char)c; + ssize_t r = write(f->_fd, &ch, 1); + if (r != 1) { f->_err = 1; return EOF; } + return (unsigned char)c; +} +int fputs(const char *s, FILE *f) +{ + if (!f || !s || !(f->_flags & _FILE_WRITE)) return EOF; + size_t len = strlen(s); + ssize_t r = write(f->_fd, s, len); + if (r < 0) { f->_err = 1; return EOF; } + return 0; } +int feof(FILE *f) { return f ? f->_eof : 1; } +int ferror(FILE *f) { return f ? f->_err : 1; } + +int vfprintf(FILE *f, const char *fmt, va_list ap) +{ + char buf[512]; + int len = vsnprintf(buf, sizeof(buf), fmt, ap); + if (len >= (int)sizeof(buf)) len = (int)sizeof(buf) - 1; + ssize_t r = write(f->_fd, buf, (size_t)len); + if (r < 0) { f->_err = 1; return -1; } + return len; +} -int vsnprintf(char *buf, size_t size, const char *fmt, va_list ap) { +int fprintf(FILE *f, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + int r = vfprintf(f, fmt, ap); + va_end(ap); + return r; +} + +static int _uitoa(unsigned long v, int base, char *out) +{ + static const char _hex[] = "0123456789abcdef"; + char tmp[32]; + int len = 0; + if (v == 0) { out[0] = '0'; return 1; } + while (v) { tmp[len++] = _hex[v % (unsigned)base]; v /= (unsigned)base; } + for (int i = 0; i < len; i++) out[i] = tmp[len - 1 - i]; + return len; +} + +int vsnprintf(char *buf, size_t size, const char *fmt, va_list ap) +{ size_t pos = 0; + char tmp[32]; + int tlen; -#define _EMIT(c) do { if (buf && pos + 1 < size) buf[pos] = (c); pos++; } while(0) +#define _EMIT(c) do { if (buf && pos + 1 < size) buf[pos] = (c); pos++; } while (0) for (const char *p = fmt; *p; p++) { if (*p != '%') { _EMIT(*p); continue; } p++; + if (!*p) break; - // zero-pad flag - int zero_pad = 0; - if (*p == '0') { zero_pad = 1; p++; } - - // width - int width = 0; - while (*p >= '0' && *p <= '9') { width = width * 10 + (*p - '0'); p++; } + // width and zero-pad + char pad = ' '; + int width = 0; + int is_long = 0; - // length modifier l - int is_long = 0; + if (*p == '0') { pad = '0'; p++; } + while (*p >= '1' && *p <= '9') { width = width * 10 + (*p - '0'); p++; } if (*p == 'l') { is_long = 1; p++; } - char tmp[64]; - int tlen = 0; - char pad = zero_pad ? '0' : ' '; - switch (*p) { case 's': { const char *s = va_arg(ap, const char *); if (!s) s = "(null)"; - tlen = (int)strlen(s); - for (int i = tlen; i < width; i++) _EMIT(' '); - for (int i = 0; i < tlen; i++) _EMIT(s[i]); - tlen = 0; + while (*s) _EMIT(*s++); break; } case 'd': { long val = is_long ? va_arg(ap, long) : (long)va_arg(ap, int); - int neg = (val < 0); - if (neg) val = -val; + if (val < 0) { _EMIT('-'); val = -val; } tlen = _uitoa((unsigned long)val, 10, tmp); - for (int i = tlen + neg; i < width; i++) _EMIT(pad); - if (neg) _EMIT('-'); + for (int i = tlen; i < width; i++) _EMIT(pad); for (int i = 0; i < tlen; i++) _EMIT(tmp[i]); tlen = 0; break; diff --git a/web/contact.html b/web/contact.html deleted file mode 100644 index 2860a0d..0000000 --- a/web/contact.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - emexOS, [contact] - - - - - - - - - - - - - -
    - -
    - -
    - - -
    -
    -

    > CONTACT US

    -

    - Have questions, suggestions, or want to contribute to - emexOS? We would love to hear it from you! -

    -
    - -
    -
    -

    - Message the emex-team through email -

    - -
    -

    - click the button below to open your email-client - and send us a message, we will get back to you - as soon as possible! -

    - - - - emexsw.team@gmail.com - -
    - -
    -

    - please include following in the - email: -

    -
      -
    • your name
    • -
    • subject of your message
    • -
    • detailed description
    • -
    • screenshots if you are reporting bugs
    • -
    -
    -
    - - -
    -
    -
    - - diff --git a/web/css/contact.css b/web/css/contact.css deleted file mode 100644 index 0d5234f..0000000 --- a/web/css/contact.css +++ /dev/null @@ -1,176 +0,0 @@ -@import url("form.css"); -@import url("mailto.css"); -@import url("contactmedia.css"); - -.contact-container { - max-width: 1200px; - margin: 0 auto; - padding: 40px 20px; -} -.contact-header { - text-align: left; - margin-bottom: 60px; -} -.contact-header .aboutSubtitle { - font-family: var(--font-accent); -} -.contact-description { - font-size: 18px; - color: var(--color-text-muted); - font-family: var(--font-accent); - max-width: 800px; - margin: 20px 0 0 0; - line-height: 1.6; -} -.contact-grid { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 60px; - margin-top: 40px; -} - -.contact-form-section { - background-color: var(--color-bg); - padding: 40px; - border: 2px solid var(--color-border-soft); -} - -.section-title { - font-size: 28px; - font-weight: 600; - margin-bottom: 12px; - font-family: var(--font-accent); - color: var(--color-text-strong); -} - -.contact-form { - display: flex; - flex-direction: column; - gap: 20px; -} -.contact-form .downloadButton { - margin-top: 10px; - width: 100%; - max-width: 200px; -} -.contact-info-section { - display: flex; - flex-direction: column; - gap: 40px; -} - -.social-links { - margin-top: -40px; /* idk but theres a bug that the gap is to big*/ - display: flex; - flex-direction: column; - gap: 16px; -} -.social-card { - display: flex; - align-items: center; - gap: 20px; - padding: 20px; - background-color: var(--color-bg-soft); - border: 2px solid var(--color-border-soft); - text-decoration: none; - transition: all 0.3s ease; -} -.social-card:hover { - border-color: var(--color-border-strong); - transform: translateY(-4px); - box-shadow: var(--shadow-hard); -} -.social-card img { - width: 40px; - height: 40px; -} -.social-info h3 { - font-family: var(--font-accent); - font-size: 18px; - font-weight: 600; - color: var(--color-text-strong); - margin-bottom: 4px; -} -.social-info p { - font-family: var(--font-accent); - font-size: 14px; - color: var(--color-text-muted); - margin: 0; -} - -.contact-team { - background-color: var(--color-bg-soft); - padding: 30px; - border: 2px solid var(--color-border-soft); -} -.team-title { - font-family: var(--font-accent); - font-size: 20px; - font-weight: 600; - color: var(--color-text-strong); - margin-bottom: 20px; -} -.team-members { - display: flex; - flex-direction: column; - gap: 12px; -} -.team-member { - display: flex; - align-items: center; - padding: 12px 16px; - background-color: var(--color-bg); - border: 2px solid var(--color-border); - text-decoration: none; - transition: all 0.2s ease; -} -.team-member:hover { - border-color: var(--color-border-strong); -} -.team-member:hover .member-name { - text-decoration: underline; -} - -.member-name { - font-family: var(--font-accent); - font-size: 16px; - color: var(--color-text); - font-weight: 500; -} - -.contact-info-box { - margin-top: 30px; - padding: 25px; - background-color: var(--color-bg-soft); - border: 2px solid var(--color-border-soft); -} - -.info-title { - font-family: var(--font-accent); - font-size: 18px; - font-weight: 600; - color: var(--color-text-strong); - margin-bottom: 16px; -} - -.info-list { - font-family: var(--font-accent); - font-size: 15px; - color: var(--color-text); - list-style: none; - padding: 0; -} - -.info-list li { - padding: 8px 0; - padding-left: 24px; - position: relative; -} - -.info-list li::before { - content: ">"; - position: absolute; - left: 0; - color: var(--color-border-strong); - font-weight: 600; -} diff --git a/web/css/contactmedia.css b/web/css/contactmedia.css deleted file mode 100644 index d23f7e0..0000000 --- a/web/css/contactmedia.css +++ /dev/null @@ -1,34 +0,0 @@ -@media (max-width: 968px) { - .contact-grid { - grid-template-columns: 1fr; - gap: 40px; - } - - .contact-form-section, - .contact-team { - padding: 30px 20px; - } - - .contact-form .downloadButton { - max-width: 100%; - } -} - -@media (max-width: 768px) { - .contact-container { - padding: 20px 10px; - } - - .section-title { - font-size: 24px; - } - - .social-card { - padding: 16px; - } - - .social-card img { - width: 32px; - height: 32px; - } -} diff --git a/web/css/cursor.css b/web/css/cursor.css deleted file mode 100644 index 6476445..0000000 --- a/web/css/cursor.css +++ /dev/null @@ -1,30 +0,0 @@ -/* Custom inverted cursor */ -body { - cursor: none; -} - -.custom-cursor { - position: fixed; - width: 14px; - height: 14px; - border-radius: 50%; - background-color: white; - pointer-events: none; - z-index: 9999; - mix-blend-mode: difference; - transform: translate(-50%, -50%); - transition: opacity 0.2s ease; -} - -.custom-cursor.hidden { - opacity: 0; -} - -a:hover ~ .custom-cursor, -button:hover ~ .custom-cursor { - width: 15px; - height: 15px; - transition: - width 0.2s ease, - height 0.2s ease; -} diff --git a/web/css/first.css b/web/css/first.css deleted file mode 100644 index 3c25f59..0000000 --- a/web/css/first.css +++ /dev/null @@ -1,46 +0,0 @@ -.top-section { - background-color: var(--color-bg); - padding: 60px 80px; - margin-top: 20px; - text-align: left; -} -.borderthing { - padding: 10px; - border-top: 3px solid var(--color-border-strong); -} - -.intro-title { - font-size: 42px; - font-weight: 600; - margin-bottom: 24px; - color: var(--color-text-strong); - font-family: var(--font-accent); -} - -.intro-text { - font-size: 18px; - line-height: 1.8; - color: var(--color-text-secondary); - margin-bottom: 16px; - font-family: var(--font-accent); -} - -.firsthighlight { - background-color: var(--color-bg-highlight); - padding: 30px; - margin-top: 30px; - border-left: 4px solid var(--color-border-strong); -} - -.firstwrapper { - display: flex; - align-items: center; - gap: 60px; -} - -.first-image img { - width: 350px; - height: 350px; - object-fit: cover; - border-radius: 50%; -} diff --git a/web/css/form.css b/web/css/form.css deleted file mode 100644 index f618ecb..0000000 --- a/web/css/form.css +++ /dev/null @@ -1,34 +0,0 @@ -.form-group { - display: flex; - flex-direction: column; - gap: 8px; -} - -.form-group label { - font-family: var(--font-accent); - font-weight: 600; - color: var(--color-text-strong); - font-size: 16px; -} - -.form-group input, -.form-group textarea { - padding: 12px 16px; - border: 2px solid var(--color-border); - background-color: var(--color-bg-soft); - color: var(--color-text); - font-family: var(--font-accent); - font-size: 16px; - transition: border-color 0.2s; -} - -.form-group input:focus, -.form-group textarea:focus { - outline: none; - border-color: var(--color-border-strong); -} - -.form-group textarea { - resize: vertical; - min-height: 120px; -} diff --git a/web/css/link.css b/web/css/link.css deleted file mode 100644 index 901006b..0000000 --- a/web/css/link.css +++ /dev/null @@ -1,20 +0,0 @@ -a { - color: var(--color-text); - text-decoration: underline; - cursor: none; -} - -a:visited { - color: var(--color-text); - cursor: none; -} - -a:hover { - color: var(--color-text); - cursor: none; -} - -a:active { - color: var(--color-text); - cursor: none; -} diff --git a/web/css/mailto.css b/web/css/mailto.css deleted file mode 100644 index a0f85c2..0000000 --- a/web/css/mailto.css +++ /dev/null @@ -1,46 +0,0 @@ -.mailto-option { - text-align: center; - padding: 40px 30px; - background-color: var(--color-bg-highlight); - border-left: 4px solid var(--color-border-strong); -} - -.mailto-description { - font-family: var(--font-accent); - font-size: 16px; - color: var(--color-text-muted); - margin-bottom: 30px; - line-height: 1.6; -} - -.mailto-option .downloadButton { - margin: 0 auto 30px; -} - -.email-display { - padding: 20px; - background-color: var(--color-bg-soft); - border: 1px solid var(--color-border); - margin-top: 20px; -} - -.email-label { - font-family: var(--font-accent); - font-size: 14px; - color: var(--color-text-muted); - display: block; - margin-bottom: 8px; -} - -.email-address { - font-family: var(--font-accent); - font-size: 18px; - font-weight: 600; - color: var(--color-text-strong); - text-decoration: none; - word-break: break-all; -} - -.email-address:hover { - text-decoration: underline; -} diff --git a/web/css/media.css b/web/css/media.css deleted file mode 100644 index 67d5c7d..0000000 --- a/web/css/media.css +++ /dev/null @@ -1,81 +0,0 @@ -@media (max-width: 968px) { - .hero-section { - flex-direction: column-reverse; - padding: 60px 20px; - } - - .hero-content { - text-align: center; - } - - .pixel-logo-main, - .subtitle-main, - .hero-description { - text-align: center; - } - - .hero-image { - flex: 1; - max-width: 100%; - } -} - -@media (max-width: 768px) { - /*.pixel-logo-main { - font-size: 64px; - }*/ - - .subtitle-main { - font-size: 20px; - } - - .intro-section, - .about1, - .about2, - .tech-details { - padding: 40px 20px !important; - } - - .command-grid { - grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); - } - .downloadTableWrap { - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - - .downloadTable { - min-width: 680px; - } - - .downloadButton { - min-width: 120px; - font-size: 14px; - padding: 10px 14px; - } -} - -@media (max-width: 900px) { - .firstwrapper { - flex-direction: column; - align-items: center; - text-align: center; - } - - .top-section { - text-align: center; - padding: 40px 20px; - } - - .first-image img { - width: 250px; - height: auto; - border-radius: 0; - margin-bottom: 30px; - } - - .firsthighlight { - text-align: left; - } -} diff --git a/web/css/release.css b/web/css/release.css deleted file mode 100644 index 59df44d..0000000 --- a/web/css/release.css +++ /dev/null @@ -1,102 +0,0 @@ -#releaseContent { - font-family: var(--font-accent); - font-size: 18px; - line-height: 1.6; - color: var(--color-text); -} - -#releaseContent h1 { - font-size: 36px; - margin-bottom: 20px; -} - -#releaseContent h2 { - font-size: 28px; - margin-top: 30px; - margin-bottom: 15px; -} - -#releaseContent h3 { - font-size: 22px; - margin-top: 25px; -} - -#releaseContent p { - margin-bottom: 16px; -} - -#releaseContent ul { - padding-left: 25px; - margin-bottom: 20px; -} - -#releaseContent li { - margin-bottom: 8px; -} - -#releaseContent a { - color: var(--color-text-strong); - text-decoration: underline; - font-weight: 500; -} - -#releaseContent a:hover { - text-decoration: none; -} - -#releaseContent code { - background: var(--color-bg-muted); - padding: 4px 6px; - font-family: monospace; - font-size: 16px; -} - -#releaseContent pre { - background: var(--color-bg-muted); - padding: 20px; - overflow-x: auto; - font-size: 16px; - position: relative; -} - -#releaseContent img { - max-width: 100%; - display: block; - margin: 20px auto; -} - -.code-copy-button { - position: absolute; - top: 8px; - right: 8px; - background-color: transparent; - border: none; - color: var(--color-text-strong); - padding: 8px; - cursor: none; - transition: - opacity 0.2s, - transform 0.15s; - z-index: 10; - display: flex; - align-items: center; - gap: 6px; - opacity: 0.6; -} - -.code-copy-button:hover { - opacity: 1; - transform: scale(1.1); -} - -.code-copy-button.copied { - opacity: 1; -} - -.code-copy-button img { - width: 18px; - height: 18px; - display: inline-block; - vertical-align: middle; - margin: 0; -} diff --git a/web/css/s.css b/web/css/s.css deleted file mode 100644 index 6ded070..0000000 --- a/web/css/s.css +++ /dev/null @@ -1,34 +0,0 @@ -.secondgrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 30px; - margin-top: 40px; -} - -.secondcards { - background-color: var(--color-bg-soft); - padding: 30px; - border: 2px solid var(--color-border-soft); - transition: all 0.3s ease; -} - -.secondcards:hover { - border-color: var(--color-border-strong); - transform: translateY(-4px); - box-shadow: var(--shadow-hard); -} - -.second-title { - font-size: 22px; - font-weight: 600; - margin-bottom: 12px; - font-family: var(--font-accent); - color: var(--color-text-strong); -} - -.second-description { - font-size: 16px; - color: var(--color-text-muted); - line-height: 1.6; - font-family: var(--font-accent); -} diff --git a/web/css/style.css b/web/css/style.css deleted file mode 100644 index 1eb74a1..0000000 --- a/web/css/style.css +++ /dev/null @@ -1,300 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap"); -@import url("styles.css"); -@import url("first.css"); -@import url("s.css"); -@import url("media.css"); -@import url("theme.css"); -@import url("link.css"); -@import url("cursor.css"); - -@font-face { - font-family: emexpixel; - src: url("../fonts/emexfont.ttf"); - /*src: url("fonts/Habbo.ttf");*/ -} - -:root { - --color-bg: #ffffff; - --color-bg-soft: #fafafa; - --color-bg-muted: #f2f2f2; - --color-bg-highlight: #f0f0f0; - --color-text: #111111; - --color-text-strong: #000000; - --color-text-secondary: #333333; - --color-text-muted: #555555; - --color-text-subtle: #666666; - --color-text-placeholder: #999999; - --color-text-inverse: #ffffff; - --color-border-strong: #000000; - --color-border: #dcdcdc; - --color-border-soft: #e0e0e0; - --color-border-muted: #dddddd; - --color-surface-dark: #000000; - --shadow-hard: 8px 8px 0px var(--color-border-strong); - --font-base: "Newsreader", sans-serif; - --font-accent: "Poppins", sans-serif; - --font-ui: "Roboto", sans-serif; -} - -:root[data-theme="dark"] { - --color-bg: #0f1115; - --color-bg-soft: #171a21; - --color-bg-muted: #1e222b; - --color-bg-highlight: #1b2028; - --color-text: #e9edf3; - --color-text-strong: #ffffff; - --color-text-secondary: #c6ced9; - --color-text-muted: #a7b1bf; - --color-text-subtle: #95a0ae; - --color-text-placeholder: #7f8a99; - --color-text-inverse: #e9edf3; - --color-border-strong: #c0c0c0; - --color-border: #2f3641; - --color-border-soft: #3a4350; - --color-border-muted: #303743; - --color-surface-dark: #060606; - --shadow-hard: 0px 0px 0px var(--color-border-strong); -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -.div1 { - max-width: 1200px; - margin: 0 auto; - padding-left: 20px; - padding-right: 20px; -} - -body { - font-family: var(--font-base); - background-color: var(--color-bg); - line-height: 1.55; - color: var(--color-text); - font-size: 15px; -} - -.parallaxTop { - min-height: 5px; - background-attachment: fixed; - background-position: top; - background-repeat: no-repeat; - background-size: cover; -} - -.subtitle-main { - color: var(--color-text-strong); - font-family: var(--font-accent); - font-size: 35px; - text-align: center; - font-weight: 800; - margin-top: 8px; -} - -.tech-details { - /*background-color: #1a1a1a;*/ - color: var(--color-text-strong); - padding: 60px 80px; - margin-top: 40px; -} - -.tech-details .intro-title { - color: var(--color-text-strong); -} - -h1 { - margin-bottom: 16px; - position: relative; -} - -h1::after { - content: ""; - display: block; - width: 100%; - height: 1px; - background-color: var(--color-border); - margin-top: 10px; -} - -.lineunder { - border-bottom: 1px solid var(--color-border-soft); - padding-bottom: 4px; - width: 100%; - display: block; -} - -.button { - width: 200px; - height: 70px; - border: none; - color: var(--color-text-inverse); - padding: 14px 28px; - text-align: center; - text-decoration: none; - display: inline-block; - font-size: 15px; - margin: 4px 2px; - transition-duration: 0.2s; - cursor: none; - border-radius: 0px; -} - -.aboutSubtitle { - color: var(--color-text-strong); - font-size: 44px; - margin-bottom: 32px; - font-weight: 600; - text-align: left; -} - -.about1 { - background-color: var(--color-bg); - font-size: 20px; - font-family: var(--font-accent); - margin-top: 70px; - padding: 80px; - text-align: left; -} - -.about2 { - background-color: var(--color-bg); - font-size: 20px; - font-family: var(--font-accent); - padding: 80px; -} - -.downloadDIV { - background-color: var(--color-bg); - font-size: 20px; - font-family: var(--font-accent); - padding: 80px; - padding-top: 20px; -} - -.downloadTable { - width: 100%; - border-collapse: collapse; - text-align: left; -} - -.downloadTable thead tr { - background-color: var(--color-bg-muted); -} - -.downloadTable th { - padding: 10px; - border-bottom: 2px solid var(--color-border-strong); - font-family: var(--font-accent); -} - -.downloadTable td { - padding: 10px; - border-bottom: 1px solid var(--color-border-muted); -} - -.downloadTable td:first-child { - width: 120px; - font-weight: 600; -} - -.downloadTable td:nth-child(2) { - width: auto; -} - -.downloadTable td:last-child { - width: 320px; - text-align: right; - white-space: nowrap; -} - -.downloadButton { - width: auto; - min-width: 140px; - height: auto; - background-color: var(--color-bg); - color: var(--color-text-strong); - border: 3px solid var(--color-border-strong); - font-family: var(--font-accent); - font-size: 16px; - font-weight: 600; - text-decoration: none; - padding: 12px 20px; - display: inline-flex; - align-items: center; - justify-content: center; - transition: - box-shadow 0.2s, - transform 0.15s; -} - -.downloadButton:hover { - box-shadow: var(--shadow-hard); - transform: translate(-2px, -2px); -} - -.placeholder { - padding: 5px; - color: var(--color-text-placeholder); - font-style: italic; -} - -.placeholder2 { - padding: 15px; -} - -.ibackButton { - top: 20px; - left: 20px; - font-size: 16px; - color: var(--color-text-inverse); - background-color: var(--color-surface-inverse); - padding: 10px; - text-decoration: none; - display: flex; - align-items: center; - transition: background-color 0.3s; - font-family: var(--font-ui); - width: fit-content; -} - -.ibackButton:hover { - background-color: var(--color-surface-inverse); -} - -.ibackButton i { - color: var(--color-text-inverse); - margin-right: 8px; -} - -.stats-section { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - padding: 50px 20px; - background-color: var(--color-surface-dark); - color: var(--color-text-inverse); - margin-top: 40px; -} - -.stat-item { - text-align: center; - min-width: 150px; - margin: 10px; -} - -.stat-number { - font-size: 48px; - font-weight: 700; - font-family: var(--font-accent); - display: block; - color: var(--color-text-inverse); -} - -.stat-label { - font-size: 16px; - margin-top: 8px; - font-family: var(--font-accent); -} diff --git a/web/css/styles.css b/web/css/styles.css deleted file mode 100644 index 1765758..0000000 --- a/web/css/styles.css +++ /dev/null @@ -1,18 +0,0 @@ -@keyframes typing { - from { - width: 0; - } - to { - width: 100%; - } -} - -@keyframes blink-caret { - from, - to { - border-color: transparent; - } - 50% { - border-color: var(--color-border-strong); - } -} diff --git a/web/css/theme.css b/web/css/theme.css deleted file mode 100644 index d21cac6..0000000 --- a/web/css/theme.css +++ /dev/null @@ -1,50 +0,0 @@ -.theme-toggle-wrapper { - position: fixed; - top: 20px; - right: 20px; - z-index: 1000; -} - -.theme-toggle { - background-color: var(--color-bg); - /*border: 3px solid var(--color-border-strong);*/ - border: none; - padding: 12px 20px; - cursor: none; - font-size: 16px; - font-family: var(--font-accent); - font-weight: 600; - color: var(--color-text-strong); - display: flex; - align-items: center; - gap: 8px; - transition: - box-shadow 0.2s, - transform 0.15s; -} - -/*.theme-toggle:hover { - box-shadow: var(--shadow-hard); - transform: translate(-2px, -2px); -}*/ - -.theme-icon { - font-size: 20px; - line-height: 1; -} - -@media (max-width: 768px) { - .theme-toggle-wrapper { - top: 10px; - right: 10px; - } - - .theme-toggle { - padding: 10px 16px; - font-size: 14px; - } - - .theme-icon { - font-size: 18px; - } -} diff --git a/web/fonts/Habbo.ttf b/web/fonts/Habbo.ttf deleted file mode 100644 index 77075e4af1c4848f833ba4f85b776f14f96cd848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10308 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 diff --git a/web/fonts/emexfont.ttf b/web/fonts/emexfont.ttf deleted file mode 100644 index 20aac86c75977277109c3fee45bcc98109dccf0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12496 zcmeHNYmi*Ubw2koGy8sM85V&C?e1u`m^Em$!)QUPl`j}1nTNqV*0#(`pcRsXqy<)l z0JhsUukr&^Wfyi_6mb#CRZ(0nP*O@o#+A0?A9j_h!Vl-=q8!J;<;1aF{76!+6!GNy zPWPR;cXk)};Y$9fce`(Q-|llxpI4vmI}(V9wnO-!Zu3KV@T#4w0XI>!v?yJtvw; zXu{)YcS*=zB+LnqHxs$ljSr1Na_?OEr1m^1S4*#UaAu%=iCnBbLGVcMA5s9MKMYT! z=L_x`{JYeHZuCkq(s3*z%uI31%<}R9No1^s?xx7Cpv__o*TTnxGNI2~P){^lJQHwC zGr$;T3^&@Jd51nX&W&+(gK>WDnokEW2{_h`w;UTL+Gc+{r?Aq#1n<&u;_>sH&CFpt zoB1xy>}Oqo4_RTc&CIsx$mzSZKf(Lo1%ASj*7^xkkZp_36fgQh8}L2!%F~Q@tYfTE zdeP>4pAGwUZG_+MPqfcsoN<|QW$tWqoYPc^gxUmK77&Z{4YXL>AhFO!$MDCYAD2JD zyKl)~$#>*?@&kEI{#jm^f0H-IzEKm{Fh_n({#3rX)`;f6G{4*YPSZBO-F&5as(G^c zV)JXw=bK+`KJ`!k`05ji6F}Z71x0Ys4+yXXVa_JJjN(GE)YaY7+t)uZI5fO&z4Wr}b35jDz9+f-iub~! z?cVdgtFO8Cy7ymy!v}7>>E>G&KKP*z@BPTFx7~ino%_HB`2-mHNs&(h^QW`eS$|BH z_Aefi2j$4`$?`|pbDzjP$5;`082Qn=53_pjBXSp?+4Q(JeqYOvWnZv<6!{_7ss2+g z^nZyg$WwAkejU_;oxxqfW5G+o>EOq~8^N35Shx`0A07{1kNTn=(Q@=`^uxF(-Vkq# z7viP(nfR6XzYAl9U4^B>vxV;#eo;KDxUG0|ak=<>@nrF*B`IB4y0)}b`dsN`=^skJ z>Dth>r|aWgFLs^odcC`+d!qZw?uG7;c0bd7vim1J#h#g-y*-che7)y;J+Jo;^lt9G zv3IHWtG%!E{-pQKzRi7m`VRIz-FK?*jsCOyclO`azuf^M=1I4BCc*>ME=zrbtwk~@Qg77DQ}c1X65E8y zXsHFq!sgT^7wF$d=7V}AsA_2wi+AZ@h!A4|mo{9LDUtE{psHi5jd}xFC;75mE!WF< zJJqO`14&`L<WHV)1i9C747VD{AF&-*3Q`BxwRtTC#>@v}_k5-5EUH(yw?n%A`!o zR&WpSr|MXXu4+0UF0Kz9Rjjx?A3_kWdscY>QCL9N(t2#@Fz8!5K@ALis0|TVq|!BB zs^|eXyq=UiADp&;*+5MSQWn^iIE;3IpKHR=$x*!$PAR}feI*d~SV+aeFhQbrKzVF* zJi<)Kz-d7$eZnQCXP+6g zxhiG@n%ZOuHo3*o5ki6H!zye8f3*BiZKnYj5KZG{=uMKeyt9N=k(UNV0=p?gHWa{o zq-I$u)Yr0dEEVhHWTW;rjJfNjBIEKd=p(o~LcVdSb8r@Ib7Rkx(&{AX$TS&h$!KSW znNC#m_9;=L+uIXLiCkKlsVvl1L3&i5LowEg*!>27MRo1e#is12y+U( zkC~1dbMb1nsDKTjgU4+>DycW6RP#FTX@>61DzQ$gblquBOY^gA%GQaiGXZy-UnSLF zFNXEUl$_nz6{>hK&cOGgO zqe`mC3JL|6iy3ZC!P{@5aGlR_`w(cRIdAm_m{Cy9b;;3{!2T%-#1(G!^;uOI`r>vn zx*9A6e6wo%Ih@?*C=%v$Yq0Iv?ON(5o$uftN^7oop6E*HG}Jp2mWqLpY|gR_AzBtL zfvzHX5ej?~p{|D}O-tRa3Az{pD6|H;AJtWsq}92)&>;zohh>uA+EjMFYwd?kfSR&X zKbnAx^iAqZ2_1nBFitV(fdVt|X>rv6D04OuTIgYM9oR8vVOH4H!clDBMOrRGr3!We zo1M369dtPzhlD{PxuUc&4k|&!APqGi6|{&mfMv*9R$5Qi(F2ef`pW7T0jCP1=LQ99 zDNcEMbL-UUodsaUx>f`FN}!E0OLb7mf)j+BVhra+BzYJ%-}EiOb@HH&F%qP9Ve|Cy ztcwyt?o?AM5##5jPv7K&?k`CcUeoHin7#s35(qsv1wC!)A`B-Nc{AfHv!Q>>HQrRVn+wK4Ad2|IptkHZWpz!Dv-exUUVLRQ@dx;2s z!AGw11vp`oMegc3{pp6J#}SEpK30{Ruy+WmT8SuZ$kM9ISOruIIJGt-n*>&~K7~0B zXwb*E5ll{}2cdni;nuFg4H906VW->9h!1I%xJ3K)73d-Noc_VLjLsK82SC7&QQe$E zJ5^0*bw1siJd6=~sDeh$bcNL2LaMu-pp|N?tjqI;=O0*BtirB@jQfHHF`FEEQU?5O zU&QFxdwsXn&`Ww_r1tv#$0`(~B|-X{YqL!CpE^kIA@J-BUv(E@d=@(0v+XGzHIUWv zXY}2aH7I~9gE7WaszqsNy(*N}x?oALD7P}$Qo0{HVC^6VKn(v^*mcSuqrSQX{*2Pk zjDs;)QF+$uGa@&pD+SwLc5GjV<0lC0RT-D#}q;1kCzkd*MGsWL0wXfyVK{IDU~ zL^S}&R-xVzkoA)VNCaL@brbuH;{)`bOr`n*oF|;MOfp&r-BF8f#t7buV%@Xq?p#3+ z95edPOkbl4c;FXGt9t@9rKqj}%Ih%ZCt_q#@!QVx9J!T7I9QcNS$wv_hddy(0Lz`T zB*hICbuPAOSB%#2v=v~^;TG=OowCZxCI>6^83x#KmK}#kJI=C16iNadHso%AGqLW8 z8XXzZl`bijMFQPC6W^SPZ!DFg<#vp=+J&~Ebs=YWtV%{wqXli*?;b27s)fdLJ9j&qPf+`}&t zQ#|+LyAz0Zp=H?}Tyb=$mU(!^8yqC^aPlnx&KPe?rj$X2-=ILg-oYYv)hj13r2@X- zTUvcY|lN?|sR;%Cw*72Ac=Vmf`=3Md`Sf3=?2R#Oh9QQ%b+p z5hNT5ERe1MG7Kq0=aJmkKD{{}2N8NR!xJU%aCrp^a^~EPE?MBum!S|`h65zbvP&OE zEBS)BL*>4+v673K$yYB>4o>&{6;t{bMhW}U&pOvqwX$$cuf#A zO77I@ZYfD>&>%Mpz%j{N^~hlXB6m>96YVvVb#HV%hMZI#5ZF5@30kWOB}w!S4L5Mq6Y4xIS==p((|(-vG0|Pk z60q?M1x;wRlIkQFNZ$1l#wM1+gM8Ru3sZiY|6y0}Pa5#(EC!1CPDg+eJ5zV6)tNLJUVTStOodQp;_`s*X>B@cBZuQlO9b*SNS(s1$PC zRbZJF&M{;WVA#<+Q3BtAMyQ%n*)D_ z!QU>lce2!~dC%y_rnagSkYAigw+Fz4olfEE-?@!r{y1`K(|SWhVw}zM>riUaYS%zy z6&=de6L1&75rOP1IFx!9+!Bod&oIdLep|gY&^Yz?@Qivn*HDY}{lMk)Pt=YgXzzOL z>s1GpJftnG{0>9CHkj;^!Gjseo4aeUw0zUP?>3;l1S`Xh6xghLtzrS=d6SBdJ?>f- z46>ZA$)I#v#cxZQLnsxaKm)p#$i%_`q0dhtL8KFB>vdTMOnEwkI*p_{1L_|$W ze*=Ijtcw=GoQvQ5j{%Ig17~kp+O2C)1E>j^1U(d_0sP_;PES*eSi;oxW{dIYuW@Nz#O9m5d0ZgKyi zV|b?Hx3_A!ncE4~O;1PW-n&-|n0&uH0N6x2CN=zR#V@e=tf4Ini}ycp=;)ELT5apa zwOS25Zvia?caWNfU%gjJPoj@M3yk0a3Xnqy{OpF5dcnVb$ZimP8J2bMpJySaIvXDD z9C*@m5xZ`HPdXp|ZVYmqfM?wV549N)*9GuX7b32Gw_F6Owow6?o<&PoB$K~7dto*AyAy3O^@oV50!kK@`OD`JjN` zq5ie}7{AheUXIHP(4o7)x`W{Ky|N^q3`#*)>DZA&wc6!1_q<}pKkNS4@XyQQtB&1& yl#Mzh;Mf}IZ;S&p29VF8q`+5h#!n!}+9I!A_T}mM7ybr4^8JUVFXxlLB{k-|v6FKR@^5(cS5Izpv|cz2@^ZE)fQL>U7jB)MR92beb9`4avyR zSmY1oZusWG@Wl)87rB?Ax-wZo2iq6;M~Z`)<~dzmG9ma(Nw%AOH`y-a5i%6~j}G}i z84dg~A!i|@*!rG~%#NIO=krDKLw}wRzd(lm{fsC4P3GX@;3sP5Y-{g?{EO^w_(Q() z_pS``-*3Wq8K~_y(b$Y#e?B9x>4qn+!e3PG8s=VPWcziIKjd*OH}GU+yFOenGV?am z)seAxbHUl3b+dE8`MJ0wZ;{FQ$-qY!2X9+0KNn|LFBw01o~%FI zveC|ezv%S7aPH4eu3o>71qZ|0X@IZ2ZY*hE#T#S7XPmY@JGbNq(sGzh#rx~@0<_FmqRF%Iq7Ea zgY2be>*ApBNA_}CbpPj1{~Y_*tA-9EPuB zuPGe={mQ?;`=8I7{aH^z{OI;3|Ni!WzG2|#=IsW`;(5Vd)79I-6SniVMabMC@&A6} zf39WzzwZ9;Z~yhiS$i4p3*OESTbj6|AX_SV!rA*jzeNOq=#=vXL{(*+ZC%gH^Z1FL zbvS41KC{|g0j|562+6Q16_Zk|p?TU7pA+W+T6zmNB8 zyMGzPFKgQ(0?bW;S`NQsx(d`Quf`9MktvaBo;+dXM?Up|BE`krgmb9pO`*$v-+D4~ zR2zZFw?a6<$j5OH?W^zpkKbR_x9Rz3)X*%N?)&!I?hZfk%EHEXd9z*i!_%2O3!ky3 zk3Rywf0sS&Gb??5x~$g6y65rn?A!v&c`l_8SPxA}|KAV)Wx{_o;lEb!Un}^p75sm( zf}_*}M@G&h@N5N`(^R9AeY~vCCDYx4YCW2k^d-N$1f``WcSnaoU!hwNZu{4UN~kGbXA_KE(+ zY1ZJQui%}DiN*H70)=B@-I-3UZ1}A^{^z4M;vi6bK&AGv6!vhQd=*9$or)zWx z)*-c8_gi`&ZA^K(+FRy!O_5EOEpej%N0@!N;@(C&PRUMoYgPr<+5YJGiDYSK4n?-= z%HV6sG5)ka7Q|!Pe>T)+7B)!Z6&8v&*`rw%6v`*oSCW5(FL}<4`;_?WC~(4;oXh*1 z#z)RYwOcM;=1_@h55#|5{IvN&&UJAqKw+xC&EuLRTk=G*iS&7?b1O+bVOW0`Kic{5 zk%hJ84LQz@D;`d(0aE9sF7+m^sBrX2%7v9l##A4ARpi!W@2BuWf53LINKL`Dku$ov z@kNuwizcUr$+0(+F>-^^9`-#;_MQESUJF=HHoMW0<=Xtf;Ar+sah>v8fnLcAWvcxO z?_=MJc`DnotkhQ!KiyF>7HL;I^x=|y_4ij!zVR{Ak5@=hgRj10zyJ=NHa=nn)T=^6F?6{}Il{89b6S8tWCt zwz%8TG*w!$Y_GKID~)Jr$$5OMc;jAafmi-M35kVgZBokFCB51<{2pMMolNnD6F2SI zPP=vVlx=wOq5Tlpa}U-27{bXrd&cVlLUmGr}9!MN!fnWu$`?O2uQdA%r?M&t+W zY^}pRPOP4Cg&ohuea4IPFqko^7gDo#SufAmGhS($ud%j_8=)Vmu}<;To$ZfY@9(Rz zj@>jk&-Qe4TA*>UAd!vr>J;aO)##v8M`r@tq8tB)O4Mjl(B2-)1&yf1jcI|PZe7=i zTQL!LdQPh-bn=RO29>w3^l#qKiW zs~w-U-B}xjz2cv4V*UBlIyzY*6klM!4t$gxO|maF;dsP9G12?tV|mMDpTuOFM}&uU zbYG&&wYod@*7~l}cuuCHJ}y0X*gT!1TkV^~{l}N4IG6cf8323j1cE#VqJynd;dr-J z{GDGlN%tlC`H%X4n&@p`X~sA5*G+YL_>b1K+R-+St-m;E=REFVz1}W|yIx$0cN(p6 zj<}A+-;hT73|b-Qz^a&;m>(xb2C7FN$it3*BbzLvhU(6q=M z6QEF&7N`PS+S;T|6t4!X1jwpIxAsK3vEu%!89K2ALeDTZVQOoLmuE|UJ}P;3wr@e# zr1nlT=F2c^RZV6`Pj!IG++QVQx7@Ic<2Z|t17q!P=5D-YYMqFyJcH%@^NzSo#HEt>IfzP&TxY1yrbdvsJV;lfGyZ2&?da{m2ux$j?cSbjCqN|M5|}lhR2sYt)ml{cz$Z>hg&<3 zOMUxPGU-r_@fcY5y~XCcWS3LQR^p3iRE)9eX`P$3t9bZy(~9k%NGz@N-pxzlD=MiG zikA3>x(`#V8z1=9Qoz0}d7C{}+}@5a#oC9E4qy34$dv2CToH4iu zUg&QVpPWdMW90RDbrI|=xVqYtZDV?`Nwav5=BKfd<>31*+A$mb?RA?{u07J<>`dW^ zyNfwCe#A;OdlbE&QB4!lZ;$rZro|VWmv60mwvP^4 zm1Et;la?0U1b!a8Tzt^Jw4;5qJF%hAhH0LC!ybUv=HnkJ+Lq#t%9Ilsbw)rqong7c?$hO>>N**^ty z`qFR?9~*p8D^(@h+_yPE>2)?@p&a;mO-O0}f1c~OT}*0O--ZOKIenH`u7=hgZobp_X%*2)Ht zK1I3Ci3X2VIq?PTC+C?~Y5&09#0me>qG#Rbq869wCfsI(Z3`yi{QPN`Xgl#O_E!eo z^**H}j?7(F*xTsZsNt%T24TzVRfqVhbAgY>dS=Iq-t~YPZ1SpLjBaCljYN!vOk-wx z|0V75iVJ0{tEwh_iH!x5mrU`?H_}IURN5HXQGUf~wi>e;rD ziP0YOyY+5)sU&rzAQ+R}XvIA8*4mOexC2zmE1FIJvDY9QUS{TAU~pr1H> zUs6!%8FL;E;oWC#l6z)hP;S^SIOb@<|n8YkAbee*;f9{D|ZM9r|lj6%FCenizWc;>thD<;yn+iB|&Rd@vRrB{8M5*4o5zJi2l?p3Si1^WRDUn>|v1lv?Na+^7spvKO%TYoQ?@9_GSFxwNje{S_V4B>A z6FQuXIJVf!rIaB^T;Cfe+dAH9wEWh%408Jn5Auf4SFDEue{DdBM^$dqxr+|>E8Lw`==ulW6%q)%D7x-}wN8?J`Xb#vZdHUfJQFHtN6 z&3r6bJsLl~Y%mUwIGzFNe_7T{`_0w49HpRBzG1Zcs;>^8VoFD<6(k+hs%XQEWfE2Y z5qJZknHWKFgaEw%&MKxOA}WV)BZUEY^YxCY9QUs?!P4fSNqbr@g_Enay2Q!CL+=^I zEFJS~N`7k+`B;s27Sb`;&FBEe)z{PL5NYx87fr1WT)K~9)r9m7E1cbpEF#)zr+sV6!O$p`X>Br zZJ{%0)Z5qe=7^}&fyWE1p}(LS^32+SrdgY&&CG8%$yMrfO%B3W3H!w?%?tIjYXr9mJo5=r=FT*$Vf@ zCh<_-ZRX@yknsNb)ruwX4WPs@n)WiC`t40_Q!L10*YC94K1i{}?Gr;E7b0XayXiQo zw%AXOnq>6LiM#S{mSAT3##kG8au|5h^!EML-waVA1foF5`x2%v?Fw5uZu1hB#-1Kh z_pKX#YMooN9kl$nbK>hx4SO4jQF*@V%58$$c1md}4dEHRg(} zxQRlIZy)U6!667nL`>*cylwl(;eD1p@F{eus2f|?XZEd4$`5T?}I z*14`K(&H?$;D;qkxE4glOw?GM&NbmaKDJKU`4Q z6;^!VC8Bp%PzP~xmCv3y=xiU#Ac9mD8!n3#x)62@QSLaBS4({ujrJFd#NV3LRf|x( z%VAL#`+hcy8Xj_gg0NS5%~^2U)+p%@1*es8tq3y~pnOB{IV z-abpfnj1^O&yR7<{oq&k#U1N9ba;CS7JASsAXaZz*zPKRRd_1u5a^3`6jp!R+W|pO z|0abz4+SO=mnb1fW%meeyOuWon~JCX!Cl^IseJKR1)d0{2rA5S^R}&VglMQ9;ck*y~%X7($@XV&xUxrsX{9 zX~N|h;eM+b!sq5>elm=m2GbMb%ofn8Jt24I-BGc|B@CnzW*unZ=DJu;fU*gFW!|L6q{mPKr~GV zOni7us9pEW&Qg<1O*d$QPTBW0rpc9FmYT6vD>X(GIWU+TJQJ8Pv?@W zB-6zm2cO0O0Ytyhcw3(wPeD|q#UiXP4)hdIB8Z~uPEmumJX7^pZ(A3VQ9WAkpC-1) zXgujtG-u)}LV;Jdwx#e9y0x=YAaS5(?iyI3+XJw|&-z0>+L~cBKbMSEf1j7gLE$Q@ z`oXkZmJWN_x$y2*L~aN*b*?0<+&(j9z7|)oDo<%>I33pHo$pIVE`!RDVdXKp*lmat zLefRW#F;`snvo<_G{2&O)y+;0^|a*9SepI)@!k$|1t~{6jTFozf>l4EPiBK16GRZA zFXR(G?PwHz(kU)U+$dht(q~UY)K{ctMUsZ#H<95Nv2(D4NCXmsc;Bbf%BK~g6oaZe zbKP@7IVRPZ={K7RR;X2Z+MeJyBULRXqVOd|clY7=Nexxz9eO~Qu;8hzf=+&NR6$(R zkR#FN@Oc&-Tl>Vx-;5?BUPsVHVZ!u@U18U&cn+Y@CfuOodHMGYRkvLcW&Q~+MUGqK z4Jx~7ogAOCP|@e80%%ImYx)yyMGzNpsGof|t^KX*h_{KP2&$aAG*SOjZFy&%C&KQL z~~7A(gVt z<`5+(1p4;3ECarEdVCvCjuNGmE9JXT(WRU{x*aqSKn6^F>`;A<j}KT;52{t3)6to=-SVhhYwR%J*AlA*4^J7{KZucflfE z5hQ%P3@t|H!owq5t{5R}nR)KK(D#R)$jNaC)P9u6IZpY9KOd+-!^R6W1^`UYT+ZV{ zq0cdkStcDE@Z8~#F%{79*x8g0oBK8LENHyW&}Mu<`g^mEf3_n7xQ~YruzcgDA^3}% zzvNLO=puH!c9+^jc$-!-B0K7i=ztxmNTsnARRUMi9`j?RjvF zO|yiG`_7=ts#?noTt(Et7vm@9w{{+3LX=Cvs620mkfdP-xb-gm%AMFOSc)p!* z2SLRWvdMlrtkCq$CzSL_mWUAU1RS8*-U(c>#n73Hyg|`4KGnJNilK4Xwqf$DMWq&+QS?!2_yA zOc%LO<&}BEx;b`7=(@5HQZdGZ^rEI~WAuS-gleoPT_*iqa=XYgDRS$}_eR5#{ZvfshiR%4! zk_zhTio_&q(f+HuX$z=O=*tW%5r)@fF_*tQl-W^@Gf4gd(tG~Q1%Mnb?hW20P+KZ?2pess*td@tmlzx^hSaszW-J}6 z!%O}=g;brK9I7vpx_s{&t7kZXHGIq&LyhjFTS^29*cge9v{;ia7k)-Z0|>&;A8Ov& z)(AowYE?X9vhIsV8HyS#N{h&eGq3c@Z0XjxzWoe>W*{&A9^VddJputUB8MT~v*PcB zl?Z4dx(P+(eZU|JdE4d^OmMlSav z;HR7CoVnhP*}zj5eqn>@-L%?I>(|hbs8sC!BhM$oH*MyUs<9k^DqWcz^fLAkIYm?} zyfVY}a(9%S@E8T2>x^unE9wBEo#DbQ>OwoN3r)#}h-e{_Xd2qVAczF04MASrZM;P9sD$W>3zz;*HU{ey zr7HzJ9|0gRo+vl7XB?6+Js$8_JQB>0rdFkQ2iz(^I>^Ys8SuGE#`G& zkD|7>g8BeO!R8~aU17#HyRHk0MS_Nlv@!n)2}ReGg7!2_J5&#b*fIo1GD4jF9`?GTc@5fC3CWzaEl|g5?MfMNe)V$)MdGfV-N;ctC}|aW<^iE7SVnUfaUj0! zviw-?jxxhuOcaoZ9JTQ4g_x+B&GcDgNLEWUjE4QV5mGt&ZC&T+E6VacwqSPBiGD^j z6iM8NU09k1T~kZ^M|`%wD6AD-)T{&wS%{u9v55Fc@`9Dp`7bF|#Akj&`0?XkzTvO0tPc)Ku$_pY1FDE^{6J{o*C~RhMz8 z7frP(x7DF*{38r2ecm+n=@SVb;5u(Zj6Q0^00XUfC_$e>_Gzm`^)+)>3ih)#m6xfLHNPI-_njXuCH+15>V3 zW;Mxcu|K;MUpO`}TzpWmFe{8rF-10jExJ`wyg^bHh6LtI-L9qgN(&YOWdU#ER+9Z` z8=WUA4)PXzS}Tl;LlZw-^oOC7XMdDUT3Ry9Ft8oXmwcg->Mv@+5s~ha^Z?FBNC1Vyn+wL}Oq(Cpaqj{r7LT*7$LHc}A%S1!@oe_7- zj)M#R@%GZAmxCg1S9uLA4f+L*Ea^5b{Bz%FU;6nEDYqBBrp|%n+u0;XCYG#x60Bkh zj=$(=gkJkIY|W?Jfzk@;&~6NqYFLB@mkhqeVBEjT(wEjBnK`&$!M%qKM+ zS|v|M%)clZOHRQgh!!*QHX_aRK#hfpQfJ>dQSlPB<+0?XDeb8Ibgu=C=!jc2VQi%) zUo}z!O1<3rO7Jl+G@|>`drsTf2{gXwh2EKf+E*P>mFVWc(vB2g>u6~O@e;jHf@&A_ zqooynT*v*a@r;r_t`ik~TQd=hmy6BMf1-;{e%70RR9c{J^p3(=?Tu#fAG;feFCYA> znT6g!y-(-fo79-V&^`PSDuH6n3R;HOSuI9qFW&tlW0O0-AQdzEOFRIr0-=EPbxB<=cH^;0$`*=O%Fjp#>#vOsT5e(CD0 zoowSbq0O1{D-4a_xTMp3pT#A1jwY@Dlb4bhAThcAaAEy;>o}mbK~$Y_%at4J>Wx>S zNJ=$uS}Ul3DgLn?Dvt?Ud$?H=zj`;_ZT~{MRxPnvl6mzZj|G^{AlGOTTe8=}4cFRR zt&+5TPY>Rgdsd5Y9PNFfG4NtA8gzZ|$yx217rJ2I=hg!~Yedwj0_8Upd^lq5JzL>; zSKq0EJudBi)*CH8ioI$(=#LC3h=26w3u0rMxQR9AmFAyOl@=H;SZN-s!TQV3+s8Mm zN{{!BrX819#M(K(QpCq3@i%g-0XY-=&=L;Es;pZ{yEaPUH;|<(`D0W(bvC|ecC*T= zQTczkXu6({Nq6p#F4obL{(cW0S2T&f(q7^ZwT7pp!o&q@Y5s9VZw{zNYY+8nS9Y42 zHs|seX%PcP?riRPi&S#7Dc4V$f4iV9;;aj~!~s9=ikrrC*mGr1vBZ~9ZfAA_SJ4Jl zPBEHNRp@AP&y9>NWzY6bI6&iwVdaKli?B<=?fw)wNW;TPPveiI7e^Z!YZBf;eJjtk z?h};=4t%j64WAN$nV1|#WB!hvwzSvcZzzjE?D_D?9BMAaM-&TQqpPXAflhieWdLzh zK2D5DHbVo$%KwNFlIjkc@QEQQ!N8|(-l8b@aAd}WUuoziYBe<4jSNIQLlIPJv~s;V z_Zu%`_1PM|jD5sS;}-V`WzJ_t6vRkC6S#khV~~w#F%OxU)0Nm!n7x?Td$QQCj&UNC zI!N`aU!TED2ZhdMY)Y?dOGBIZ^f@Fi zz42Zd&3ph#opFPo&?a~|>6$hfNedm6_jZ-~$J>jfqL^5F$|wADirQ7PT_!Ei1013x zI*p~|si#crhrk@g4V(?ThedzI^j@jBX$T3$8mo{BDje`K+r2R})HKvhp7hJ!VfuUm z5(tJMk$VV2CcQ-Mp~En?u+w6$zSqv+CvKjK4QxzcOn_33IyA1?UXDXqUyTt0>mY-EDD)Z28qCZ7#naKCX39ElD0y5wmn*63bmjH6OKKxf? z2uTL5#)|v9RWxz3!qKQN2CBe{&y1*ut%%Anm865ppo5Cg%k~VXzg*YO;2@p~r#al3 zoOt=JFcT^fIBh9#R*@Kl4hWpdP88zqx{ILOin0e|+99Ops5*-dzdKhut47hjVwR}0 zl0+@^hDCEjjH=N;v=``;kOq+*VHoNT2-k1F+KaNH(m7&z?WUx-m6hQ2FGheUeP^CX zI50r@k<>F*%8>?@qI5`PvOap(j^&?3fODN`ci@*t-Iw+>7?pft#HtU~C5VO5jF??l z&bS1;c`wVSi24ai^sV0_o}qVt64*Bs;w35r^)he>lvPJ)D)o>K$aS*Ssq zX!nWwESl{f1?_d@i*dSqPkODI!#hn(i64_QMIkr`RTIU!y|IfN98 zs2$r5~`>^mhXa^fE(|OU2Ez zwAkef5%!dAf?$Nz9ZyrBzib9suI-5cZ6>oy$b!}&3tEU&TFs+R@~NOd<>qSQVRg8K z0ZymJ!mo?srCeE)Mct!^gpePW;FSKVBM7~WSdy1k30~T_9!gsl1DDYqn3c{k2VY!@ z8x$*^f#|+CAFOl*;)boP_>N~HbbKK$Vo6+bmODxPMg%EJHZ z1N97h;;d-d&)3nDr&-8RcxFG>)j39O+ls5Uhy9^9T}%oV;-tk`(xJP-tc#)*@?w>4 zz+sPHQq@Dh!k7W;J!!G8+;Xp>myx_gf9gun$iIdWl-{5QPnY;kD8CVnlOsMuGjrnj zwB7uczs6ssi~=_*Ci5r+oqJ%eto(hqMwHTb@Sy9(GkHc_+2kDbkGVTs5Uq4Prx_Tz20$aGG}3 zb}JYdn8MGkdw#zCT`?ey_rr6sm{McP^>F2(4vHRfq7Txpyx*D2XK)`3?S|DYCgMCr zE*tKFj@w_a+{&*(gBSYE-={J1P{`0Gw=u1D&bvo>jC-z5JHhSs$%oLh8`=-O@7w9# zS|Nu!p(YnsWye(EIW~wvH&B?O{*Mhfa1ShZh0Q19c!(#!q`qU*U}{IH2P9+l)YJo= z%e*oZn<|URb-gu88O3Ap)1BM+vdS^7LJDs8+rT|tK5MS7$03DTAIeQ^(YZ*8UNo=M z@GrH0MzEMWCUTs(;i|Ow6Stu!8M{WimoZS^2$p+Jr1r zt!u%P`4#~KBFQ&_?PJwnat~m$C#dfUb1~_cBEHOc^1Ble1(MnAJXvn~^>bRTHEA))sk9Zf%1wm^9-8+sSlVGXyVT6`y<17JQ>8#`ciT(H8; zb%xMu+TwxcU|Q)JJMD{;8y`N3l1IuN16E}WFl^$UIkV9eO)^7$pv9o?P)Dh}k6T{5BdLGXN;=^S;E~Ko38BA8 z)~H&AnU|x`fDxdt$bJ#fPxXmfGepS>^*zyhCSN$~O{vG8hA&|}`6@#;@khXCMO){^ zh7AAZ1PCV!J#(0b6(^GAW`$a$@|L!wOqV>hXm!%$qA6&k;v3hsBZ5jpWaKuOeI(CA zP?DhzxDv4(b&8i-Ed+eXzPJZ7IpW3Qo}POepppJfWDc+G5k@2LYvuxn7qj$ht3MAg z4W_)r3ZK5C6yfh$a_7#0(wo(pZWl!775kO%d4lzv1^(Zrg87;u4WgUyg#1X8S1Rlv zi~6t+^AELK&ihI(2bn@p`kId>yhRT}3PZKOS|pRI5WB4QVaiD(386Vej6c?fX?=KJ z6o$*2Hy{R|(t~i3c`;hB>mitRa^UUbL=Mo^%b)MDP+H=Oz}Xz4#p3F?*ou*evoTPm zWg<#^2QewXe2H4HsDiX9bPzOQUP2>;G>Xb&!JT}QoY!1KZM#Wb)HrF3xSmd z@zjNvY{sHdaN1q3TJsoI&Sx1mguZ)XktvJ;z_CgJlLj5oG=W$iG>17_vgY`R#6OT^U$73FI&#TjnL#FEH#8a>0~V^$J_OB0)BL_ zNj*ySL}19t%8C6p9)Jb#y)mfe6css27R`Yx9IUb*%(aGKpZorCFDq)$P@&4}`Ir)c z9c*UubEy#3+e3s31AEialY{^eHQni5VRW?V1^B`gK^y7leqL(M<2 zAO@ci@|sY7I&F-FH^OMnOTj1{K@IjkSS+eaIDy#v%E!N_L*_kA5r5@tdf;#v8PN(= zTQD6v5Ar-s6X0Y%6r=y_+6tP|hVM`5T}?1H&t zVAxCtPAJA*(1jLanhP5FD~wc0)>tqOB(7+;n`V+hLzQ7}$$6`bv%_{kyFYGduYKAZ zrX4cnY62GB*R7cX2(7l4Q)e8FK;;!T{%FofEY)c&1V6vJV)d(lOO!k{yil7JXQw(s z$KMOs0=5P!_9x#)YR$k>Uk>hQfE{n~Ky{k@5kfChi)}m7-$+buHn|7!foCZ4=i$p8 zfHwCNH_zxvSW2mORifWB0O29l&t=G3Gv9$`8V&MLF=BN|J%z6iQSkg~TYnrQd9mq* zC?%sly0P_2`iikpj?Z1B*f`bPmP+%kT-^>zn{zLNjP#yE-ChaC#mGd$867R*n7k~G zBzN@P)49luOrcR?{NKU|GsQ2?Cb<)U`f}jT7dtQ)x;|EpC!{KtT9<*Hb7o5&&k^z$T3;{p!RGlj*Q( zf9*dff%ud6&Uxn7$cX%~v<)(|*eyDjuC)sGP`lfxj)QzwQf=yZ8-sZ0T}ud0o^~|! zIclVy?2Bi(8K4{hhtSV2xJbcdmJPh%{r-WSmiH>P&#vpVXV_7~G zsHHL*c$E6P)laMSy&6rK~4!7bL^VgFlVgiMnt+iQ@t*1MIX+8Pw9(!Oa|s`itHX zk+;BmK24Mr^?JBryey{5`SCr<0Y0Exmv5wwKoYBcbS;}^{Tbt@K)rpuC~_1X<%->) z((MNt8K)6Q|Lo2CIMoo6IjrAtS!cN|#P-M;V$6PEmm8aZ!5cuW+OS3W8ovcfo@)Jv zVbrj)KD#ju@dFS)RemsV-_&bO3OQ)V45Q_;869;(eIh&Ue-QKYfe(aqc#inf9eReu6nc=g@Fw`iaXCsfjsqz#06x8rNK=F|lb%#k5KnGG3Xhk1Z%RPD#DJlxR= zyvNesmh|n1n{WLhUml4zN}iNNJ#;|v?1Nh^TwNKYI#KCrugvGKH1CiYU~M*{#PVU7 zmWjOnG=?M@cNHeXV&b4cfQQ5WkT)VHnjo&W(ByWaB#cB-0rm7f-g{u&_`LAKD&jsj zSF3A)n)6^6zTF06^o|-sgK?I07?z7kMpP+Wz#u9=`}Ev{u!HX{PzF_*Wd;~^?@6p( zd&GhgMVOy`M$4=KawSoC__g<&l+Sy^E?BBQGas64)t<4e=zA%QzPumU*;tSpp~MOr z@A6GE0s5_=!?Z7N*<;0`XoUtUftUbN<&_!$(r!S^_g}fxkWHcy%wOu&oz)uJ52~a0 zI(ZJDHNyDj|q;KR+0uc$+dWqFQAR zUT0s;szV`EvNA&o1=%HxHKD@{ZPo{;{^1k*3o%wMy@U1aw5Puo$d(V+SN$kl^8rh( zD+tOw*phHN7qZXFV<_Z{GCDn;&VsUS~ zsHEwWtikPmxuI@xq7>H8L0X-(l=25hv5xoe&oQp7JC-s%e%@^L207 z7v~=4RVS_IFi~dF^RC*2+-9ohy}u8WnKk&SRgR_*k|og5#xMU#W;ZRbU4fJl&{6Yg zEnW{scYuyZ{TKNS5=nK3zCho!Agw8kWCYLa@XLBw-blv!Q4G^zOuEkUGgfd9IfZEx z5fBPN(o0*^)e5QffjmuSJP!6T^=|(z0F2k3hKe+&$mMtc${z8{PSZ72R3b=mD`4MQ zB?1oQIv$(m$i6Eqf?!H70dg`wk*WpYvgLrylobUOS@`EVTkGLiT7y;SabzRwSxu9p zVB}>#GHi^6j#+-LZKvjQw<2M#V8HcgBWgL3cxIpqFsu-$LH@uS(Q_oRRF}eAM=e*n ztRqij$WiCPtP~rD0SO(YUN0?47_N^RO5iEV08OCz6!YxKxoFY%zH$wrwLkJ?P|1MR zoiDDWkP)R3WI*GEbA+J*Wo^>zkwzoqvC!f)=BYzwH)nraCYCsf7S^8Z=CRa2oK@ga`2QcUJAM z`W5A`^se=5IyQvru{@$hU7=jLTeK%u1(802!=yCNo`7*DUC@O0GDqwbW(Zh@(gp*Y zQx{>}FZ_lvBhd>v>YkS{BED03MUau&0hc5k)hrGQ(`E_Q5ckz;A{J;M&RD%Z(%4Kd9)Fw1A-R zX+jkhfW7!(2jl4^+`+9KZom%ePwv*#P{CXP>~OV$O(%qO4Ym2;#Su#^gV7<>0r0M; zJiK1%>6SJ!yU3;uEBF7rEl*TIuYcd97j0zxHE|Yvp)CX^?+qRUZ{C%kyZd6`x!4V- z$WwLse2{N3%L<-Hg@Z2+uDFAA@R0!=HuY1KPr#L_(O9uatM3ZCb%K>H5r~nvTm1xx z(IEwY-?!)q6X!4zHNx1EN;Ber{ba^DklNkqqqeRrirlWencxyH#2urGLS}b)d0#Lf z_h-TpcaykJzIh&|uMZDhX%py|(EDd2J>P@P;>JQ2zXyziy_ffAlF}LK_N*ALw>=jP zi7Fc`?7^nW-Srm)T^g&qVvTuBub8V`$?Lj`x3bG5@P%@6=ah<}V_B3Yvw`HU-t)yNq)`&z_#Xt6=Vn?9fUblxZ)TdUFr) z3sM%BEC*AZ063a5`^gw3kCY61-!VBsPnx0V)*Gkv>H zk|G8h=y^@ldtB<^>ADLXa$-+DY=e2F(?x@`uPEZG&7x`(0U4+qExaHN1?DXa2;0JO zD;%B&Toej40NYMz)i@gRTd9tAbMzS~Bs&&6 z9UXTjiSaJCX**QRz5cao0#dAd?vPLp{c>T<%D7>jEXE{=;ZX2#1h8FLnh#|WV{4MF0hKVi7NcO3}LSA zTdNs(PipkcA!+cmf2nB@Nz@b@L67>}Z9{LEE(pOZCVk5z*Dn>bO_)rYhtZT>QnQAF z9}q>HZ@7+hIJA+to~|9^32G=$xe`gsK@~ctL8kUtnD%xgC7VP_N%_z(dIsE@1&)HgFHyU{d@!@Ce3~nAO{q&&UE=% zC&iCxm{H?|mxC@#JMrUE%qs=W+uUs#O-@i5Au~Tejn4@jhM6#gIJa-s57v-Lr=cq+ zG4-!eGX$x-1=pGCip~yqgbJPErb6AO889}1@_kAlh%SW}^3%Q76DhrgAT7UOKOxi_ zVvGAS-_z_qJo0LvFb_HE09cs2O{l+S1Q~IIqV`c7OqFc>$X7oqL$SqTY2-bT~z|{?yZE8%+ zAE-3g8cDeVXzl0v^VkQ$rE_hoQS6 z%PWZbi4?U4?GG?w!RB{UaSAd(U+iz6xD0R~k5BPXDTgRcBg+;o^Nqn4i6|SJT!geshvzlY(NLZ_$DRZ zSKklai)%^hf3FRA!mXv~5HD)tZp0}#-;JZ%x$Z&O2PP(elkLbaCMBwFqJ3gL4LE zAz6?+ApUd{cptbih}6@s_UqcfT}3vSWpO7cj`A27XO~VMpVoGX533FNrbzS8Pgva4#ONXLIw0Wz4(d}dqSHhIG62!JLj3qk7Gn}S?S0RW`=^e!3PW-d@sb9HTHsnw z$>Zy=0fZYSmsmdHDbQFo+x=&SKtCRxEwluO^yVQA{s=fEsv4u_m#H)dj-M1loAAxW zXPJPN<_v3DL7l5Uw|`J=emCu#Z(ojTnKgu7a8~6vKuY0tHWr2pfCLX9`q3*SWDL{% zVKfCugogIb=`fmfg&;Eqz;FgbS=xGGGzTQqw9qEV(9vH4!na5;eNK_6d=z0%d5gQP zrT%Nmw@3_}eV39k09-N|64r76E|ou{=5gAuQhS6lRURTOE0M0S!Y5dtSs9Yljxqy>91v&M8{*k4x6a&xQ&qU7PvVVj| zXCIVFRuYDzKlav2L$5&~{#=+X#8U)!r)?9XdXnkI2vW7WzKN$dm*=x(Z<7(j(AMRn zUpqp>SOknA)ekU#1iasx=E6bixB?1w;9RiLlW#tZ9cu_3nMzU3IF1mMz11;Q!XN~l z#l#;1e9(#xu(@>S=1*P9ikth~;D!ASp$#8WPGqPO6NNQdaZh@srI{RUfKfj=azjY9 zsMWNoTY>v7u|b)H7Q1({8her}b$We{dmZE}HUc+Yc6UL%L`k9skY5MqT#gR`cQ~XL9 zOhDCEPC*Co>{#!y!%R|!fZ(0f(bp)uJ`bH`|{(}##GxtLhoF z(oBETeu&nCcr2ybS*c5j6-ya>2rgxD-O3s^IEqLkuk>!5N(kisAPt>un|BqSfKKko zli5A^n>M&l9wtMlTihR0JBbJUMm*e?~ z;%MtfXpf0{Y%JV6bk8AS5}0T)dyT#1h!Wtx-cKdx>+c7Fc)oNWei7O91kdqGNoOhzhOF;hA?bba$xpYnofNYNmvf`Yz$Br@PMZ#?4$@}L zA7JJ!%0UPcxl4RWC32`}Towz3&zd0?mFKC|C1KK9A5a%Af5qr_$8oU@tKlvBcRoS#29rlg=bmOs6BcSC4e;khyf zm^&S=FZ_L_sf}lD)!~3Iu1y&(6+{B=I|9J7hK?~um7rTUI?qJ2Ht`OHhoM3NK%_}= zrtUD$fe_|qT{H;4QDF^<^tDK*g7}7_+jGy=;rcH<*AWEZ_bxU^7IWrHf*jR1{yAT5 zX~;sCjEkhy81&;^^E2WKqZxnXh%qz4tL7AEv%b}`6++)qixE7>C^ zs%0;&ok&JhfE?`XM=w99M%9s+v?9QJ*L4cXof_(9>MWf9wq8eBY5W>Yd4t0Gahzkt z)(zwgqzl4Q%_E3+dmEb}i@7)(yH5G-@LXk?p_Dapd_FU6t@ewq@cuh1`$B!2+ipW=yJ66GdW4iUgde1 z7&k{NWamSz);vd4nSlHTiI)~!#BPc+hzOnpjWr`BRsd^Wn+@!mkVCyjC>nizkLqNI zQaef?*9>lBd~fq(DxyVl(}Hs>r)gTya9^Svc$L${oHQ}Te@5H>ttJ8aogBh-WO4e06W}iu9G)+U>LR5e{lnT|;RTiK`xzQx#qTZ(4B1Jlk zh;L2!EBHJt6M^n|2?~EILDJH!e2>Yj(NIFm@e(p^gO+z zF*wSJa-@dy7H6=?P79f-jr;=Sz9deO%z;X=v}}#7fsH$32EMqd*)a{2C^*?C1M-!U z+y;m<%8Y1Lk43}pI&dGxs7LTo!gTjuq?-9=uk6d$kPisW#cmJAKjn3I3Vjsh-TXyc zs7+f7j1fO~hX29vRxZQk4)<&8$JC;^x+39lonNxBKG4X|C`XudvG&ZU8eG_d$YVQj z6Ygp$5%9#$L+ZdvywDy7M<|D8t}+Y3l-pg9LJsPCmgsPEJQ?vm__yeXUXXSQB88nV zg0I}6pXfqaW2E^e6{^-+38|EC5l^Hnh>1HwImJEqehdreBp;)Ph99P)`s6W7Y^t#m z${2b5$5vv@PV*LVMxR$ur&)-i2uVSc$MxZkj9577gTt*l`9|e#pwEMth&u>P-;cYg z@=pyVghp;Om24!6rd%C^ni^8W;y9lNQKyvjVT`{aG})>~dF$711Qj;czde~jLFAu> zO&o`*Z}Ad6(AL?1L!6RIxCd_}!5cfU1+>pZR&dr8oxlRR;q66r7)gb|DGg+)OCxt4 zMra1Clv!|5vs;~Q>xX=BKM>NzY-1{sc~d@xdz8Vexp4=y3C~c$IdQHPMISfvQeaBU zH}NGMCSeNh{%p-$&HkFX>g5;vj;Khr%&-sYC*p`pf5vC=KxRVUL;zJFs%hRLQG(|4 za#5dvTh7w6gq6A2Z>CZ46;e<=gkN=I;B$pfJ;RAe%RDnvrTh}2Gi8nQDqPaK8Ww{V zqEB)n!80dHvk;~35uJpVzkqWq99nJYO>1eV)Z%qPaAiVZjI-a)q*TFxx>#e32I%8u zpQdEeFmmv=;cRJSXjKr@G)3nS8Sxz2y5Q_Z$b72#ssxA@0=VS{t@XkbKRTGI%TWQv ziB@R(i^Kw&(%tLx|Jr-=f2z~}f4rn3k}?U&k}%nlQYqU|Qbdt`k5cx?zMd(k)ly9; zTPpjW9ArC_2}LMt9ffRVFIy45_or=Muh-{???3RKALcgZJfGL|dhF}SP%K<3*e+Nn)Kp2dXD*Sqtl+b zb_Hf4gI8zMH88P45Rp@4LbhKlz~LAj6JwE&L31<{Q-@I)yisjTthpNYvec%Ho*Myq zJ@9rSPxCwd1LCCEbKg6{PN7(%)VGe41v$ozq--cv<>Q;pid6;K1r^O5NX@&Lkd$z6 z?cd19O41akS;v9z7E&WQ+r2k(xKKy_Ufpf$MLLC^^DP7iYj5GP5Qc;%z`2Vk*Ex;y zN|DkrXo^a6N?dBu7u7%%FvY)og0QHUm!c);4xEO^L zKUM?WEss8LOwwz=r)Gom%y|k@0!~@fl2RC)4s%0c*7LgU>(zQN{Dz|W`F|P0Z=N9@ zdXany>?D;0ZQ3D8G?gmI8}20$3FcC&aG0`!dJ zfSGR~Y5rdED_Snt1sZ>lFbQqSn_2Tunl}?9$Pay^flgI$oTZ7*6Aq#c2Rt3G{e6ei zb82cBD+U>TJVj5Z!xS|suxVINYPLKjCyaX~oh2N;TY@`Th(tVEltp?x(A|txQU?=u zxj^hTx6E#2EDQAQ=05t+m$Y9(5XsgV`IG>~n{@uEJ7(OC)QxM941e70MV$xE7$IE6{n5O#lUmfJ6`giET!`Pz7ywlXXRgoQqR+s5fE?$ zo#sQhRCH|V^fnS^Xa=O{oLV?XtyeRDj{5m#oT3}A>Zu8IFiMj|0m?5$*89c6uqUc4 zoqvv4XT|oOZ17q<+&<*}vMy~&)5H(}$bL@M#9vQ~f710EA!FjX+LR(Tx#sNj*QYbz zi`0z3Oq&VY|5G%>>??iKj?j)jCpm2U@(mg77??3_!>G!Z%)C`nUa&43Ed7C*^Pof4 zI|ev~-vncKC5Z`t1)Bwd&Gu$I+H_vUoI`R)2Qz1k@jiE{!)2Fo_<_vqJE`YNZv(m{ z#j}0qlPsocS8YN&!>9M_(C*m6ExF_EoasJga*C0V4BcZ!4yjuzJ6Vzahcb)0{8^AL zdYx=;!+4s8tu`i&tYyHlTW1?Gv!)2msOvh^jR_Nn)TNK6FVQgH-ue2qS$<0&JG7Vv zDKYHj!h90ajny?*rZHNFK=Np>f+BuMJu3>)F8j8-oSHaW> zz-no8;|SCeuhH?@M@wocNNaqLo zOdIuyXwuA3mI+4wWIPpPf_6Amo;*9f6O^|RhLWxruYjxFBEprsxla4JFIl+?G{G{*{A@IKm(Kj^B~aZ8!2 zCd@syBQsY`RQJ*MY?8E!Q2TI@{sU3l$Z>os8Rh$tx82pd7UmDtq0LZ9?c*I$jQa`Zl-zMvnH;#)+7pFR4yo#E z_B+wsfpkILj-8t@jA=vI0a!Ys&&ihcfE$%{t1?;InBQi{$eESOYxGb90@pZgW7Q8K zly!cLGiJD8f=?nd$5THtbI7hp-tcSWwQyLOIj4p)`xuOcMox7H>?$7MLp||}QhV<4 z%@Cz$S{qUMJ>W_WwVShk&&=5~7)i7xnpbB1RpiPjhDOD#w9-aK9P5VbU0v`n7iqDh z=C@WV@5QnOLZ_A5rGUz+D+9uH;nbsH&LwI8+dry6%3i~4Ag)X8%3jNyEUQdRxziw@_rQ1qYG~Z>Y>GoM9q*~*bKl3qGM(vCaduQ+ zrw|^NAqj0AuYUO7dlPE$;nQ`EhwRwC;X(clbe%x`tMz#c?CAIRqEEKeJdGHivn1C+Z`(HL|KW+b6`guF_c1q zrgH?-k#PQ9W)1VsrqH+tVQN>kiagwXohNO za|S&!Gcl+~?LYO+3?Ln=SG&iWuioxjwG!!C^;Z~esIe)+g&KOeG#yMYoLl{h{=r5` ztMdsun@o}+NyoQl4$S-Cds5Sk5mHo(NKOXuzvPsv{&42zM*Y*&P>WN3H`!Wtj>Mg< z)f;TJh5C_$aE&#b$Yo73Hov}7S(TYnq*U_BQS-yVIr_Y|qdTPI1%b};9 z#NgeIy316pRpb^S80$Hnrhci4`2+ zeEo+BE0v|Bt@88DCN_OJ1`bYiNQwXNw8Y)|EA02+$WAjg>@!#G0a7MwZ_^uY0gZ|; zf6vruzkK|RnbEvdn4bm{oRR@Mpq-Hm@&V0MaqoY)U=$j@+R@<%x;kWw#ZaG&A4|un zk`r{fEC5&T>>jIYSJom=0y!VfUe`rE*C zCLSW?VMU}oqIBC=sr|@|bYpxA?;eG@xH~GUP>MNpxf?j{4F2!hiNxBAe()d5elUaa zTu!LCWUKa_y;kSrw4LF!1n|$dZL77fI$mH_nsG-*4MP>+3jbr1s)zAhjZDu_5(@Cp z{Mi-uRPM1Ik#G@*jdJ(b*}qgpPBMW@_b1|O_hWu&E3bPOz@Pp+5u9)voKOl*n3L1( zxByN_{3#Qus79>rp~hH+DAsk|GvGaZXlEq9@(x*~ak}TbvnGhq$6KD`bYp$ zQD}*mR)0?4Bv$u1fPdzBuS$K)#m>hYuocL5oui|UTNIf7q64b%kEmPkJwZj_OmCMu z+WFI2INoIp=fBOdZvF8E#UC67k|GWRZ9}rm2?a04XGCoxB-c2gm626HRnVzka2Wt4yo(I3Y&ToT`B1V0tZ{T>hSDCD1`uv7zGH^+Vv?$Jt z(P0XhN2gW_dLZi^?``^W9H}N{t}~T&jc1cN5VCM!cB7^BRk~p#o2dkreyvR_>Gl&| z(c}H40~kq#5j}NP0sJ2@GSzsWg2cx48|ZxDMvQ$lYm~#*M(@I=i{>r_??CY?M=cDebr0>oosK~`2hcOzp)b>mMwV#BkX2+p z2zt7mW2`Wk;gWbLe_4Iixym}%NIj$0$*|Y!Idy4%ftiZ!8^XD84&YA}6om|l)Z!C= zGP7;LjmBf>m4dPTqm~#5n`bxt&gHg^K$a4*H;+J9QS^BPulC}Rd}2>#-ey*GTp)|E zoU1=y&?8J-uJ&&F4D^^Wz-DSaoLs5=AdJ6E`Rr)trg^nPm9+ZtUaM!j~KK}}R(--%tou#)Fg!?nz}r-z<$N=5mtzpnUj^-6cC zXLW)yJfgtWFrm)4MZd@{>+DSJIZc-=14>NPx zd?m{=7#Ez$Zx=!2agWZHSMteMPN`NiihDI1aSWdw`s;ad>MjXoa+^4<5IqPO(y@B> zyuqhvrm6{QA8{_xoH}yG1Ad!?V$~*nMF9TG*kIa#DGiBgZHS6`vgkgH*nr5CDq~58 zG%adCM>Yj)X!gGK)kws32!jYTfvt7pX83V9Y;~4?wk62lzbefEvw0X!^P%^G!Z=qb zD{Xba_A@8RboIWg%%#RRe4aEbHRc{CF?0GQ+6_})_ia95?gyHGXVN1^#Aex`rW#3e ztaQq`u7^*6N5~2m7x1CPW&=IHHLal*(Zzb>MNm+qUPNGX1J$=0$6)@lpAx2mb&tUz zAtpNYeCCzJtYmX8(*9i*Xm$xoPeS_ecXMi1;RP~tq5S}VT_nM{1zHij;a}1V`(A~1 zygxh5_B#@rMABw>oAe`dbef~3Dxl-@8ZIg00n1%zfReKEFob*Q)t6$p2G;+N7e|*J zu9YaFa7Y?|s$=FH5~m$9@k>QBxQ`H%c{pQC5nw%QJyI~d>Brws%R()}gPR$RC7?Vfjr}69 zIA4|qkTo+s>;F0qcGO$uj$##Erv9D%R_6;YJC~|bLp!!_n`Rhb_o#YWdCFX>Ls2N0cu1koQxImh*Z-^{TYU1vnkd{e#7?HxSKJ)m2y&<46NK@_Vc+F>9dUZpQ%y z>y77+nY&cBYwA-PWD14^pkZ)Wxk+q9H{Js^@}KKYVtDadppg3?*PixY%rX3BoSQTm zE{PIq;&X+AQBmIuDXSlEp8mXeUB_(A4TYni)2~O41b4EwXruc;GilpZPN{)_Z&D-{ zXo!P$DR+1_|A_m3pTF!ew>-boOQ*k&5L!ims0l054!#VvVERX!DD+7Yg+7zrR!$pP zajMcNd;`if(wGO*&Hw}p)YZtm4DI0lZP&&xry(d^TNI|EnWOi4zC3%ja%AgS@5#-W zMEwyq)@SlL<7r}!Z6}yAIFBY@A8KLrj|)toRprPtXn-+Vr?lR=%B-HD%)*Jho!wg{ z(x$miV%nN8SRjfa-_?tZspzyrj>SVeVL1^zjx}p z9n9Y*I_Wsd_wTdfXghtFE*Em!@PX4ah<~I^@EU&^N|6n47*Bd%?LtbB=ntrWCZbI4 zy@!?Rf803!PzWsi;5mPIHn3IBzBzLrDNmdcRSrr<+PV1UtHH{+EY2LW2W!;B*_HN=u##*1R^*v+y-9Np~bODNTdf?d|*ca)GvCF^nj2Z zFUXEf-woq(#GxE&T2Y4ZBW=E3!C`(Rj{+>F-0-lY-Ddy~ z?>3H5{=fw$*2S(qHGzqvo)%XXRT)Cztj3qv74y36U`u};fB(savRV9a`(99GNJjih z4l&;f!Q?6gljUu5zJgEq%NDw;;0>2&R9+AR&XFj(kBQ(GHWuITINXK+i~DN)P}aL> zg%UYMI!NlD0>~Z>?@!6ZwsF92_HJf9shF zVk?foQ=uE_KgIonQ+W)bN(B5T0l)Ig1ew`sHGO6BLZ1sXGulgQ(Y-3w#S%TqwI@lR zo`vwjX)Fgm#bJYdl8^AIYZ1a^DXRk;>xdFLf`TLiEjfK?GIJ^6TRTRA1%o?Ys7AaX zKEi>IST-aaLR3Ilxf6>FIx4W1$ND?JL<$Iy!O}H zAA+;1Cibu8zPPVuwmmoMm=MQ>yd86I8bWiP}Lbb+^I*o}bHSecWa#>7F zdZT(}r@b`#2MfMt3@MX;4LzT<(tlSPC5VM^~ zd)6^<)LipEbAi9?x|4=L)*qxR%>K{pJv)!`m#tZw)O~2R-=jg_hJE~H(dupze0;|G zD^6j09)lP^pSix$#h+YCD5=5C%4Lc zmLw^>Wf{H8bk#tHm=3pPGum?gn(n&E$fCtv!nynI9PSW(bo?`y| zZ{Svwl`G3!XF`g-l*ncmBC()u%{O|AFrQV+r|L^S`2nFFPNGL~I7FDXR-vHXff%~+ z8WJtaTNg9o_oP_Js%2HDAl<5Urz=C<+b3g~SFw0}7ZkLrjJ2K#d$mn$&X073X>NA5 zjC+0xU^6@5@uo{OF{^ZX5ShbZcM6DRvS*XByXfUrqN!Nv6dO9@pR$o*OY2%f1g`}I zSO{GHP=5})1NH{r_X=XPAgFXpS~Im^XJ}|gH|6Isa-@X3cV99-#4W*rmgY-a)Rpmqj9#jjNqgdlwfvV0F$jB&*fm9*KlRT%d&8q+OV{}K4VCr!0kh$5iv@7p9G(I%a0X>6M@Xz z$cgl8wy;Vu%eTJ@50ABCm8$k+W7yIYRj7l}exU&Up#>#=2b2zF=6!b9S!q-LLMuB+p|XAuEovcbfia_gl$dHlq^Ul0ntXYYJqhMYr)s z`&%AT&3C$ngHUjxR)S&HkT0D9OZvsx`Y%r!>v!4)|08m?fB)^_&Ns8 zrbCh1hu9>dM0$yVCu#bC>2rrzgP{^R){z!#loW$WnrV9TeB%vmpsYN?aa^%dvgSZ( zviM6)iCcR#MWIiqY}hB;jks6_PBKsC%Z>T`d{+5?cijD(ev_0>5%zti@bZcL5oMaa zSudeWox-6IB%-q?7&*%yBsQ|p0*kxx z-peFC?>KoYkLRvGDUEI^7%9vnGP2eP>YS0|3iF1>OS2#7H%WrfyYDHqeHgjR)E^Nj zLA-nlFCQt;^Uhw!Ijh<~@|D8Kse4EyXro7#q7r$_2O%pD$#^=^-{7amp8FBJd19ZM z8j$mH5jm{+gl7J_d(>Kqd_U1~Fb5Pk7x}}uf3uXastj-921E7;>OknROufPf@5BV?Pf6I1@;g@u!cQVbrrku(g!(>>KBRgEW{H zomj^rohnPt>n2c)CF;)jM_cqS<=$hs`nOZgyALGQw&Z)S5QxUcLp*;Ay_8IJx zu@Ak3YWo@RSm=KLU!PxQ3@Fjp?BcUJ5PR`OpubzmcM)Pa&RF3bF)2Ngj9!U3*$F_X-#9nv_ zTbeK*_hTr z)4Zbi_WmhtEqV_qsG*$iCuUruf1959s*Frua^e-{Av(HIh806j3r~gYG+V>)2gkVn^30zRlNrYcClBS5ozVrV|NOdJQ&K z$*7)v(*}&3@=cT?;j((dFagAl?hw=uLev22uR9qwWP9$3%Q(XGk* zI~h-C$MAsSy4+au z<`)a%^E%Sp+uYl!(`*vI+Nu3Hdxah2C`XZ3%IE1H9-8F)!{l#G@|Kk&+w5=oIa?HYzrXRX z94F>Sgj(F#ZM1__LAM#%l4ldfLD3cRuQf=}>TIsi_ zV{~RT*pjYhL7v<|$$3G-EXp&RDIO%Fq*nG&g;og;$atC(K{fGca%_aE|}Q-lLVauACKjb4LwkvbYwm)Cu(DXdamdNNm-QcLgcC7h$(5MImb zi#Jn~Liy*ueN!hGoINoK2MHO+u%j#8TUZXgIYqyZKdUE{A3dbBE02T-PBv!%jaV&P z2e!}KXeIKS;FF#7EHF>p>fO}!gdm&QPk-7xE@7LUN|-0v}45C_MAAs@}DdU1z8D&%DaHEh{K9h$yX2cO4RwwUax&3hru8Wob3Oc zwsEDiWgxiaW8-e*BRqbHn!x=I$rYdb){&`}c1iWa_N-9Fk{Yw~Ml+0R3a_$Q)1*=f zlq-C2yB=#*DeY&zIkjot)m0bA0$#sTO^QM-av#4XW&&PezIj(9e>+Lfa91x2=d4yC z*~#LFax>;+;bH<-$!ggd*G!Yjtf8M@g3)WHL>828G>oLmD3h-+`CHpFHO(upYEi7~ zK4GL^fSix^I{{=XMXW~3L#jMdo=U)y&lTG<(ua95Yzez_`YM4jb|_OZmE^knPV)A09*Fn^{JxpxsM-d0eWaqQ(zhxUjI`hWecmRj!HWuG*BRy}P)pKn-Kr3ytbYPE z35b~{g@VAy>)d0^loQ)1wZr%aZG+>H)r898%PImldTMX36#xl3;mbr-=;_ee!fK~o z;PNscLN|X~Bfpm&Emu(zz$iUJzZ`*n+0yNny%rSbVfb?CKSI6sMz`{8{xY)*y+2+B zK2DCF-&{B-X{<%d4P#}M5{pY(L$YT$T{&_y{Ud_c{!O%qNQn(>Acz?)EcST*@NKkN ze{?6#77_aR11yoPCUsnsfF#j~5~e#8L?BNB z*v?POOBEM}L(%-~&V0=4OcB|r9|?B0XM0oDie0d;H$m!Uc?`b{y-g~en1aI@nT1aBUxugLVlLjB zO|?FN=dh!6g#46)GQPuXNuhslRT!%O#zo4e|IVhyd%;KvOfWcVKT13Z6fNsJ314>b zAFpF%XopzQjZOOZpu@)dH^C(fI=W|m0|8V!?BKnSe1%savrF}R5yrz%ck)XMr9lg1 z-TC9Z5JS!l68l1oq-b z?m_kF{ptSxCX`y)p1~BqI~`}nBo4QKhD_bOTgW%RX|TfyD78rTm>^L;D-L&xu8KKy zdY0&CbW{=83ZMpJoh^U5-A{#0$dIR7&zc_rkV;!Kek9q?KL6+C7n6CF1oid&4?ph} zEB0PHcKDCe22f?AW4%U&p%x|gjlLBTWNJljq-ZkW9>MW|U<(m!bF_A6NPw%>8VY~9 z+tJrqhjJ`rpyqWd5sl9CYXa;@!qwUyLc^S)T>;8yBE3+$)pGu+i=*%*eg}i{QPk3p zKLnVU(?y|_Qr?~?V@jwJ`Q@?AOJm7>3b0nyi6W^G@NJBN(N2O?7mV=bTne0Ra{JO< z0Qy=W!jl9;BY1Rn7j3+RoE{+6uy?;T5h@bcXW7Jx#CF%izu_}gdP~XDDDKQ9rd0xx zg!dt9!|Hd(qNnih4}{qOBN5_#(^-UK0SO>qO>{*^JOgJiy~{F;tRMpa@!?a8>Vy+5&88&{}ej3mX*4C|K;1+?dDTA&-SKNUm z!fgYW9da6YpbHy4_(j}D2_L_roHw651l?uv^Jsp`b6@=L3G4H#=~*_zkco8vKku79 zR3cCAXB>VdIWxGz+=<}Ik4--fY4AwfSLG2wFdq|a7>?$sKH0&S+# zl_%j@!1Wt6|F+1L3xNUm(e~s-5i1X~G7pOV@D(&(WZ@-?qqY`{j}?GMn7%sN1Fu`3RjCoEPMA&B;$99wQMbfZ&Tk{KYy_$?BElq=wl~x8Hy17d(^+!gC5KP-w7|BsRDC`|Bmy|uElyvd3IVW4j=S?N7i7nU$h#(|?jt3}Y?8`n!j*%-($)`Q zupUYFes|*dQMjF#$x+ykp8L7?Of~uV%PMF+LA;s!SLq2k?Zm$0pP0^{{`c~b~iIR5fG zcGNAPd76unxL$FZ$TJf{xV#o<+w&l=u||9zS3*`1)ACtf^AAa;0sfY^hAm{Ec`H|# zE~D&8@GnoUVXUvY9PX7_`0`?!cCSZqF0c0${AAj$bz=%Ih%hV1s7j@r|kwn9O^ImyGFS2nIz;F?$AK5{u z5Ot#*1q+#1?cy%Sf#ts}^N45y1&A0tRCM3)?Ewe_;=zmOYy{~Y2*;>{pdsx_(IS!3 zOtHbKjTfAp@p{+(fNo8}k-sU1{AH&F^7I#$3d2%qo`!EC0NL(d8y)%y;CKR)$`FsZFCZ@m$wLfg9g>Vc<1)c?52PACkXlblJyPguDW>hI}!Ea@BV1>j|-f!3WQqEeC#Iu1lVi>7so9p5f*;m3u!*jmK#I( z$9qoD46O-;Wj2YZb)xX^sRd#mhhT_qyG3E({(W9DTuP>>qugj|oxn@9$os(yk1b?6 z?6WT;Ao9qzACF-svK96Q^e~}++b=S9nl3Q@;qCcb$T=#JA7eO-dHsTqP%4rAb+=8- z0)&t)4#x!Dy_w*`Pw$O>`rzT8=Nw)xY&u9w~Bbdl`f!?|1?kIsq{ zAzGsgk1+!_4wq-^=!yeEbGyW~ z;9yuHoj#v-{X&>~vwN^Mv(FD_cFMpVgi;8ir0LNnkOQ|y4xCUTRCd@Mqlh~^j8PJh zKsF)@aQLE5XN3H?-C3=v1%CtyP7Wf$x$z6JNXok5CdQ%&@*<8wuInA%w{-^ugBrWXd z+^=!HPrpiMN@jl!c@|E8N^{DY9lAKvJ2N`_YdWJbwppQcxM-GZ#&c#=t>H^%v%>In zVP?o|(d^Fx+o;0XA;YQK>E4R5Z<`0(+q^rkeB_$xEvy)C{u0uUTfJvTXFdIAeJdJ0 ze?}ZF(RDYg>h~14eeZ5Or7&Sz6z$x3s=4~+xX)x~iEm+M_o!DZC2XM7-ps@$Pes1% zqh7^;Us`9MrN2Y5F0cFKVAJc~M%%&u+K(U2roU&m;O-+6c2 z;IZPS=Hba^*QceWnp2kFi-J>ob4xSZn!k7tW|~wq|D36q&7U2Y&GhvR@zsT&H%N1{v?QZ`4yWHQ0XcK|^Degtz z3@3cg(wql+KZLnx3$*>!HChxiQ(8}veL8&8UM+f{YQIqO?f#--`vQlFUc;Yj1pU8# zPIt7Ek;pvT<`9w`YxrJI`kf_D@+r9_tuXAhmrHQ?RC})N zV7=v33ePlGqh-^5uEO9(%k-S#>}|6i(T$xYu3??NIr*s-DW`H&Lke?#3{Du1>-P^> zU(^e6tsRU!G8ED>_fzeN{>N8W%RfEPN9(c;xR*uSQ3G`a`_xDD8rtvQ(Q8_(^|Vid}5|#D4DUd&c;(!v)tiFYYH<}wuO&sC)$kp4y3kC zUepWnGt0O=`ZWF=kAYfa?I?GSx3PS!q1)s*PwuXn-rElfG~`P&{SI{<5&e}>%nRiQ{}voR_W_Hak0GUR8ESVebapihir@TW#f?KAPVTV46wcjr7_ z@6Y}jQrBi@WK)!A|1+e*=W!I5%>Lf)$jqp4+jy0}?yZRpnnAzTdfRkuz1N^RICg*b z`y023_}BrpVm#~O{KhAy|A}9)+DBQ<4F=XVnjxNMH@N3MQM#YwdXah>xUD%Y(W^R^ z?u~%-cQ3E%gE{_YAqLh>fAx27{qAEbcTQaT=2*nRWHY%YaAZ@7V{~$J?RKHO@reG4 z(sQ@Hu$j{#xiw?@IoB-wO9%SDl^9r=-oNnX(Qx*;i)}Mc58dqBor8UO(8O$_2SYDg z-=6Ypbt`RXKJu}?&}>UZ_4YN5maQ(1Ix~jWea$mkW`*zd%-oYV_I{ieoK*FyZhkp5 zbH~y)y3nk!z|1+M>r+*3zu&Q-hLp^k4XQKG&D=`eax#Z^_k*z-4qEES4NZS2POq5y zAf7rFF}-8_`|jedn4x9^v%;TKA)P}9ZP~GN*K)q5@zPz%cX_I8+}VH17WWkOU36#v z>e+VC-MiW|Iea|6;(Y`^lwY$IW?!R@+ z>@j4zpxGumIkuO8eqiXJi*Zj~?e-b#69(2mt!~ISSxUu$fr$t%9fev;UAZ2wuL2=s zx5us73-msR<_`8}#~v99=bp4;fBzMul8WeRpT+z8(@GNU%?|Cle2*bS7d+w2kZ~_Q}RltB|}mqnqU9 zFGb_o=8Nuw{lnL_OC?y+{fR$lgS#t+rl*Qh%R62Ao`~VP6HEh)xlqL}RW0M4y5Ox6 zRyQj`amIfqyJ!-QKt-}uhA{g-vj4d;(V7;<8~c6HpI&ea7V4|;b@XAvvmWP4&ij`0 zE>Soc2q9EJW(dR$kka8zx<7i4XD0PoV4 zt$r726ftOxcrXS<+p{9g;YOqNlge%MWG$4l2@0a2PA_|Apz9c zkba-~4Q`#OjnVA$E3sAwKGkym`#Kp_M`ndHOgpk7u&v$41D6+OxV7l`9d3_8aP~Rs zxy`>zw`5^oWo7jTNuqGUGw6q({<~xo;UtY-8dJfU<;_w>k8^(*(|);LAFnx%F(XSr zOTcf=XUMt9%Atigyh~sFKQ21F08enf#)k}n(i(RhXIg$Q1n#c`Jy9)2zKUkVj{x-K ziQfO%R}%L1_;UR|(mnJucqAjYd~dzVq2>4KC5Yn5U(fnkIm{4o#n@NDck8TeUAL6@ zpl6T;6UfGmAlRIb?##lG-CdFLA6KxY6FE|;oxYn|f`PI_Iqw!i3xb-Ym+(1no)W=y z17uykNXimr&4uktUdGPIJBU8?-OY2L3n!wc>qM%g>V6?Q?HAuB-6Re$YYhE~Yg*t2+aUOQycm2DTUsc8d^pHx zY=(;H4Cj}n9l=F@kL_AN*1_cias;W;2fZ`whd;R7S`5SIKhg3K8^5evFGUJsT108k z2CeCTx9+uarE+EmZiWuu1drL8cBIWWnW+#*M3*1w1xlkTbkM^*M1(X%9?7XRoanY) zL{FL_B9Xpt=Yy#u2rfE~+L4yu%>lO0-GAn~NuP*6igVs#jLZ_?m%$BdwPiwy#xUfk z9DjY03oPJ0a3_)bWalGQbHR9iTOxbxjNFB71es@<_z6fstIPS_6qdXK9A4XP zxGZYaCeYU?_Tele>wo5BK%Vy3*p=u8Dn>Qvt3y?D#49bMkUkhHjoYz@8KqUC*CL+M z?N5tw#J=np7OD^P0w95`PX3jrwy0enBemIWVUse}YQ+)8C6+`mewhaG*+|ss3Mkac zTluQC|K2;CB?LS_NQm1)M<4cEQfS=lmH1GLV%S;%hj2tVAjx;cs z1H8Yff4g<*+thQwd*rt0az<8<02q~(9vc7Zu`Er9D$y~=P|Y`wT_kZh6YPm<^8#?z zKz~$p%W9^W1^R~eAlv~TH6_%qZFljv&hO)gu}b{9_$bgG5Ta&mZc1NCv!YL zvP@880^s$o%{vs$-(YEJ&7+RXdrk$y(%klP;Z)oW{3iOja9M{?_W>ESsK^W)ASwkm z9WR7?l@LXjpKnb5z2&wH{J4IDWFQvc4o^GAF*;AffateBORWL3q-O;FjZn1 zA1CqJ0%t@a9qlBfe|8y?a>&-LJ!+!-itR;2dd;}7!MoO5hG_m-M2VdmD3R{@HEac` zpXjZWxWe2V9hkaI;WTyp{*-hcZRd@I=I#!X2xLy>4PUdo#IiBule_~`J-M)yR)=ZW zj;$Tx*o-j}N+dMy;ZAP1xAbp+rw!>RtHqxWG|yt8KO_- zPCbHQSwy~Mb+*Z}mH!XDVt4eR68X|Euqb2IV6{f#^6N~<_^|(Z8dptxMHRBXjc&yf zkGVii_QaGnVnjt6Hg2HVxbzGCK4`g?x~ylAyZ=sN1LAboupVe@Ly1Kn?NuDyPLnG4ugZ_mSuyv;qGM@>xaLe$rh`u(C$Lh@mq^ zJZ1%n3Ct%EFo2HwMQSxeD2)Br9E3vkA)YM?HW|*jlifjn7FCxVqPF z61M0$p!FTJs5($cl;`LBOqW@J8Hsxiw`c6g{~ZU4<`aWUKk~rJctpe!&GSw-AjQ8) z_b&a!uxxKvkVtrM)rRJGOFJc6tj|R~mj-HyVuPVj-27n>g6T*^QzMUh60t9y9VjTU z#@=1#r6xFZ`c*r|5PVb~2KLnM~8gI#q4P+3t^Ke5Z)XvfVRBVt>H2cjzNL>jOuL|WR`bGX9kG29} z2k&MmZsKA zOKiu1yt(ABYvS;NRuZ&iX}q%pyAim~&iBtLVK|YnGbJr6U=_C`KFDa22BFy~`}b^H zQa;Pkj-t61xai5{JWPRJz_cN3fbIP&^7w1S3BQ%C*IB0i0YofL+oRC_&X+}0TT1Gt zMq|L%cPL9B3E-P5Q7O_GOjJl911cwCMk5Pn)E8D?4NlndkK0cCZG4g_MBf~IfPeov zBC(jTXN}MSzWTe;F)x;rNVKcJ=UQT7QRv(>E7lJLGM1WDmW423p#+Z4NIrrc@YE!4 z$Q|?*ka+iCX>ary5XbzCQbGl{YXO;R$Clk-pkd`A8WM;y0usy9iKnv`Y9xeg5q@sX zixluZy)Md*`h(~9sw@(sg#uGg8?DEgCQN-q;p$NjMhY%`m2?OIyMJ#XhO1c+#W5eF zIJ0mLw`%Bwg{|kKO4H%oltFaFWq3(Y{j zwg^c7Cl;d;zV`;9)5J&q*VJYpaLkV>79|$62S58{NKeF3iv8`^_bnCx@x#A z9fDNYe!t(Oj4kOh01F@myDtTE_^amk5n8%iATv6{IOFau*`Q^Y7O-^_wYW?*2F@@S zo$HHKTPn11UKrFu-8FMwvMPJ zltvr_3)MfHZxKyIq_2_Zf(TU^^VcB4wwluA3#VYpZeVffdf3IJ$uQGAR(uPrxD&{_H}!vJy~1KQu_ z{l6#?KC1&dHJ(dc7X+oYPhN45V3I(>U^w&-DigIAQSLioOA@u%|21Ex{x8cXgq4YI zR6;eahSpmYdBToRbHSO-F#-L=%63pNEu*;ymq;+*@xM-!SifBzMBVeZ$P()H??TE> z)YlQ61?8wb-8y6>x>#OjkOcSIp46Se;!Lan*tx zHUnDY+E4fJH?*GLiO-Eh>Gb_Deg9&nhzu>xyj$fa0sc9lW5Ib}czHk2v0u(-o_E91 z)@A&ub@S4~MCO29ScfH|VgKOmdpFUdSOSwlaK2nB>cvo3-w z%GW0O;xD3UOL_M7KUY8C#2d>#^QB4|Fetf*L8>l#&5D{3JL?K3IW8=3ejH0I)`(H~ ztt1M+^Si+EPB^0CR9`lqEL!SUV_Vu4p*EJH0zE>J_8Rf>7Mw@aaAd&06ZSHy)dN@UlXBYI1mDU44D{}waPORs@UQQpuA zVlhy*0JwCiZR-R6vZTRUO+pD~ivV!}puLYNCkdPo-4QP--Ey2ICH9X?h0BKXq)X!M zJ-a-4eir%1G*8t|%GK^J?A_*#D-fS%`nS5JbLTjkjo+CWMIToT={`@>OrHKCKQq&+-ti>guca}1GrK6w--{;B`llDzG?dI5=4Ni2ZSa*&@e3|Y z#f{~D#|Bf(`is(4ObVmF=ZBQwf1Q%HF&n?_>uGNmWav^l%;d-&%QNcLX4yC}xy?{u z=4`)hm!VFnS9L{0ny+V!%Tv7IY&unW@qKuwvx9u??%Z7!BKP4CTNAR1`zTLI9W*Mh?yGxIa z%FawmPmFu02I=;ElXkH)d)(J+IarnLI#?1i=57=sBa9Cl=mb^osnu2p8JIJsy*t`i zTViM(EMCFgJgGmPs=__ZHCSKKJJh5)GltSxU$dCAMq};xXi;Bpe&25Cl({iuxh7vD z>35yhw264`t_5+Yh>SEf{V;Q+@!A^AzD=)K`{8ced73v(ch0HTa`t0YSg(xyTtv_4 z)EfTGZr*yI>fN4W71n06r`}ka1#w5tBv0S7ulnZMKw$ZmbWXRYO=AUjWV%h4rJS=* zUk~qWU$#v{g`sw1<;8Ks;8%~QRMSiRCUoXd7j2{Q%k@NY>jf8_YpfjY6Rl`KNh-Ft z#YY__oQdw-zGAuJQwp)x>$~4JC&@d6TvjY!u{?fMoHN)Q3GAJzd-LCDt>+)Kp*0$d}tanU6f9yxUL|;SSGj>(O^WHFYTGwe9=wNwfVw9fJC@hi33g z*D0YwX{|%kPiqEfuGO;*m9r&&{;efkgCiA_I!&?ZP46LMg(%;+**4hq6&d!Lpg>&c zRXv5`t7@!t*+)-`iDrqA%OJ|Ya^0Ran$c0Q2dBMm4a-+de7`$=)}8%*_|&vlnyp@G za$9DOmwHf|p!C!3eBb`+0vX|uk~xS=n&-Lb++E`?8WW8Na~$(38Y*3#?Yt_pFIHQc zg`73c`QoiU)9|I)K<-@h*IhJw>32q@nNtTS6%}hPRL>6%z-7Ln{;Z`4ug)87n%MFo z%>Sf+j{UHM(d@=KoO1}7)kB-OQ_tuX)}ND-q<>JRo}dT@Y6eX{6Q4VuSYG%cjO!=k zjbE0(8ttq0)4vbrN{;N6DfRmCaY9zw*=M3VYV1DOS8?glZ+V|QVjSt;Y0D>6_z2vN zZBPyB+nw3Vl^i`|VB|Gm+Z842Tx@6!J|t?=_IVXPce4s>qQX0$){Jr7^mw_mqMR?} zKte^@o?I8yVGC=$o7g+ciQe(*>~pts zyFJgH1Pz|nqzR&){k7Q4x`tM4rX^63sFHDail~$SN<;Cx)XauGInuK{dlMz3eo3C!t^}4s=1Ir0?nN%BFSN=TsgX{nG4tK18~A;Dh=B1y@|E=*JBX5+$Te*W}5cJRF#Z6L+`_YKl{pG8Z+5lOrE|tM)_zQN8$i;+|UWNS@Ia6YHVCs63kG zo9+G8y9?#c1r=C7t(khB#N`_@Gjqqa*U-Sa@9ehm+{lCP!;iLEn$}Kf<@ALET67>Z zI%@KIH^}+Y#GGdy9BI1W|KyxZ`QH9&G3U~kz_FRN0!pkQ_mA{hvwuBn7WBOLon=$# zsFtX-R_Rc9L?i0C_=LQ+LXK)sexgcE@^n0ium>OvqbzHEs$V_CGiH3KX8ZV_S{m_7 ziRW0qSOs^u>q7S+;+H<&cRtkuZ2?`pKVPg7}U*tC%M?va*_=da4j4^hxK z;X5Pf-D=$ksg$*ft{BtTEtri%nfUCzkV5H{3ct1?u_>6`1_HLlseTiKM%JcPB@bT8*gmV0Ezup%?)Na_ZM3YZ?X2U`E=5%{8@jHmwWPw& ztWne7vn$^(y0L;EC`(n5A8JbSot{eKnx2R+m3``H78Difo7Y%b;x#7i=3SJjVpcl! z#kLDz$<~Hdl<;g=K*ON-jLrV(FSb_xr8QWzvO;z$cdX)Lu4A4`O;y-Y{G78Zv((#o zJUg?z#8;J}+|-zhU5K5DiHU2wiNRhb zCM+KPVO2H=Re^UH_isL;k}SFsOvSQ6eZREB#-$Ig^&j^E(>gwMd*ZNy)_vwBU1u z4EGWK&-=Ff9U-ZLqzr?AoW^;UnMr%O;-I^^G<{`Vc`ZoWr+!B_&^N!xvnxCFp)N1PCu%Ow84 zulVn0S^uA>|NGN_-Qi5qI^urB%Vp6LmkngmB)57U`Oi<00+3C4xg%56@^bPyyhS2N z!P&*t>8RHciT_Z=@9X~aejO$B>3=>}N9q5dK<8hkptUvNNT6?k=l(@1|E=x+=S6?m z`+eNM9OAdPEfN9lrpvCQwCuXN>_ej1olHzbrtJn>_Xjb5?q#XiXlsG*mzjK`%sHCW zzuix!;!!WxA#9-Q%D{4plb=iucOZ_HSF(OB?|QaTt@hCq)+44bPaK^&mfN|vbZBgB zM6>tcffL0)ifi^A?dt9wE~@Hb6gyoPTDJPVOot(?Z@;^S|?p; z4M~gfecX<2M$1Uh3k^9qOO7L4^!*j2_4BCzuEZ?e9M3p(B{^Pi?P0C?@8d^To~EYP zg!SS(r>`Zdl> zOuywr52LsD1cp@4kORAG{ApG+Z#ten@$sj>?R;x@g?Fp_gV3JMT}O2oEXKM&YSGo# z?|&8ze-N6jlz6em?ApvA-M@BxydpGPCES#jPR%SH_7)*M_`+gq|FyPr?ppCM-M?Fv z>R;{uE=0GinM4hx=1#xWFsj+yM;)ilef!b-WqP)2!QoN+3A*k&zJGkbX#2E`(=-CQ zgM^23Mgw2s>Guf<2gK2$Y2)-Ryr$*ojCs!lHj4zu>N&K3sa-dzQ_i?A zqCKW*Uz187)?GtdcUOtpqf4FAZ`570bDat`9Y;L^Twzl?fqJAhWTK+iW)PoocvPEFX&ajzUT8?IC>A8e zk#bHSYVFBgHyIi{TH|ny6i2ugm~dxAgQ~&Mj3*qcP3gwdYjlihtt!5!J^T;E(eX2V zWRgOd0(Bj!$1?WTArabZ%h=Gdk0j6Jg=5#o(&EBfRn`VBd~uDN=~Jro6&n0G{?2gz zL>qk~hrp;!`7TOp!r#rIpHQSX5q{2fw~dqg;uL62xtgvuIhup?>LGk^NZ)n(*nIf@ zgyeDOxGK`1e|CVs@JBtCidt-?P}M2XhqJxvyoTpJL# zc<9q)dLk(B9q2^NkU*bExHI3J$O^T@aX0&L8={^lT zHrX zg125Au9}VNx1{Hk&qfiHM!)6Y0)xj@=OunLjBC)EVpDabeKn2j%?JH8jS_Na;z@&# z501{r`?psF*v>bc8y_+ZT9-viAPw3DUuqx!b~quI;M}TdlvC%RI;u&{$CKmY2(+d- z@~nttZX!uXa@}y$v4mXz!O%EDc|6JabMT#{_D(r^yN=5J9;M+YR-4-6#?$CI!8Im5 zU@mYgX`-T4C9$P40QA@v0FNQH5;l#BNYb8asMHi1`?LfhVJ8IddYaKr&Jod@Z1JD) zrzQn6#@Eo5s9Pq@XxZxJ!y{|D^YJQOt%u?1@BRA%;zG8NT6M@XHF%Zw)(yigHiHuc zYO4$QN;-XT3OUOf5~D_`UBuTWR#lUq^fY&#q!3X3ac0O|;knux?yKm0l1hyvKc+T*ox3yRdq@1wP``#h3YlH%yKz5cU= zc9HN9_~sb7dumLPW-{D6xwFQ26LoyyGWbY^{y4r;8SyOr6-hUDB~_>Hsdqx@|VJxjxGIw~2 zq_C+bqx4uoZK1e*c2ki^xDeecHqIr^ ze{!z0SP+nZ#zlyfkP)0P_7RY1D!65GFC&F?g+$%V&|E7iilB~>A>B!!>X73?isOSB zQ`13lgkJKyULA66VdFi)HQ|g4!Qfogq_~g49&sN_gh>g6gxthVuQ5@onx2oAN+HR(*zF51NUnb`CfBX5;zn!B@$BAKRl~XYB zD0fnaz)%P`Eg!l=5339f$w`Fp;h&IP?w|efzK*nmX!+1Ywbkp3o?6rzZ~AzrH=*@* zdO&q`{B&G<@mW$}chIf`fa&ocvznt-+D6pP)XFMv9oJF3O3p{S>v4LF4AL&q;w@Cw z`8d)ijd;%o@45&HKYGf#H&JiA{62obqEf;4bYD3D?B}Vh`In`?S!~s6n6cuO6p&(`>v1=m#vS#?pH6|IAgTj|TSQ)4JY27=INvZocJJ%=mMi z#Q5=>b471Ahni*2jJaNnm$V3=&-`$Il8j)wZUDXHIP8 zioP_mUIUS!03-y?xtRSSK|JXeZZvU5Qi$`wi=9bu?guj>IlnfuCH;3jU$9q9ulcy- zXrjCFervt0d}72rZ|1hB`y=w&za^2kfifHOXq$g{=E`mRj;3%z>i-EB!_c44ko+w? zM07J&6)z{B?#IS0)=^s5VOLQ#Br;_5r)A)_ORP3>puS>8B_&?KLJMdpumBp~K4;7R zO~VIUF`S}~(Bw>^?AAXI(%3FG!=CtfE{rSse9z}y z=uNb7!=?wN#Wm2zCTU4lqJ(4l1US3Eh zy&{`c6x_P*D1kJy53`LdzEGGfyj0o{A7X;HOwJ;ze{`7-BC0Kc>b|#U{!lGeBAFC^ zNGFRk(YC%slD+}mxKSR+o=tU<$ECV#*81}(M+J(Pa*ycbX*GP8g!(_|(;hWdoKN1e zmfegHV~^&TxuRV?sTsU;Qi3fRNO{TXrnrBf9EJCf3>o}Q zV~$@B%MJ6Z3BnD>1!EWu6O!TbxZ`1bO&5Q&^ufCSj>&xVnB#|O1+hRlxK&J96<6x{ zWyw&*I&z8g8O_G@u-cW|!XKw09$fk0NyRkBOpd!}gkqLtbFr>1M#HjHx3J#);1?`d zB4racn$ghN9Am`)n<2PTnBCcTz@ICcOWx4~PJ1B-D)k(Cw4{ghgP_vs!_B$Z>XoZ* zGb7izPgKQ)DQvnIkpE><%aS7e3W@V)nm;S(fbKVD%q{A^D8KTnzU-pp7D?g+u&U4- z{l{H7$ZS!3djM#R32)B)A-E%}t~a@)R^plM%b}e>Et%y~<=0#Og(?5mct;UY(XOd> zy?-Nn^s(5DDo8>SAfX)H7RQz1O9ijnZm}$m>BB9##q}LF?nB$)X=~8a;o&l52p4d$fN(e*G~yb8%irI>6|7KyK5+=q)a}Z`2*PnotFS++qCCb12sCaH;*6aZLa_LQ)qp&Z zCSfCw`?Mj$WQpXftb>8dgSj_COd|6yoQsJ>8fF8Bz`b!h-nnFltS^-ORQ8sf%%9h4 zM*cR;0guAb-P)oi*w!w2>4$^JOC|j$*K$6r zo%uO8kXf)7u&23{E%T2;&2JKm4pn^A#_v!_tN>O^l91_$N8b-{5_f1^qDG6asRn?$ zd6gPo>sIv3?%`Lrp0T?p2i#P&fr30!3Rvm; zqee=|`WN+1X<#WW{%X~uhG$p0@D-^&8Ii5H5+KUtS^cu-Sh6BHE04C9pB!M9%7P2c z?*fbkoyjC~YcENND1h+b>?XEzK*M3cgKP?ed-)_Xb~HY6-PxJWLPw3$?F4wVtQFvn zp74NmrMX}HsU@FxGZ9-jYp{8ZkB74A{sT9FOeCT8Y)cPf#>lhj@J#gJCXH3`7QE_Q zaD1v@hn#1dWPhbHC*PWS}6XHB^q}l+4^cF(SR~4SSDI8@2rqxUA{{r^?Mo7Fu zoIh~;R$^I?D1v+0-z2a62yyo}JbOv@x9|6%`&a-0t@3%5%Ei~8{T3b^{FJw8%&CIL z9)0(-2s-5pQbi|ER0>CTnm%^vlpL0CN+voYlc4qEVZwlZ6c6NoJ1w&!>XwWdYs1qt z=Fn6tF1)@@Nfa*BKY@K1b(nI4Z3_J;)J!LF0wJ9P<25g8ZL zwt!FmQGQ7Z0LNFJGq=CDErJU~fTw%NC{tLZylw|3a3dnMz`HXtb21TpLVX#0LePVXSNLIjCwAvWGZQG~yg@<%nq zJYLG|x@g;X->tS+Hvm8rwGmngbU!hX{$p~?n2YRj;n%*o>qN|3m(Qz$)H`VX=s#}CpPvVrf@WBd!-XHRlE(>_sI6ZzJt7Y#&{LUz&#J9| z64NOzg<;vh`HK(BHxPHsOrsEIZ_TRprV({QaFVBN7DD&M!yLC!sz{?*{iM7Ct|S%$vkj|(f8$gWF4s5=%vvzseg{-PJiyv`lTJjG1A`A_YD z=({P3hK_ydtLQEbw4m}T3KvJ3EqEz}@hH++453kYP7 z!2+zQjH;{R*$bk%Az1B0NXwsGyW`@s*rkXCJZ!|gu?rF#g=#1LaiELMB-1u(Jsf=l5{CJz)lL;(b{e`T# zMk?$}GGwBBV)<5VGWb3!%R+g-!%pOtsgPvYJZCKDG6g36XJUTTROnr*H{bK})Q*U{ zV+frb2vvZnDRr&O=H|lg>>v&?dxa3Ei=fGVs87}-(jVp}om#9g7B9@>r&LKM*@~X; zaFo5e{yjuM69}dfEfRl0Cjk4ceZMY#^0X?xdBa%~2uiz@9tcTN2)kEFtZs|qJuAL)SuxL1 zdhYXRZjWfP?8E)=12RS2mI$ED7#`N~d)r#2uA_fn_r~ z&b@4CrvqA&nJAvf2j=daPvLmA)c zf*f?O^^kr<-81AK>Y||$YnRcDmHV}fpNf5JqKQsneMutC6U(Zq0M;}Xk5$8E7L^Vz zvuDBIl(-$z>yk?qFo}3=4_+{v`bCn5`L8WWLprf>Hlta3#|B6Z5+DK4$ZSsd%UXf} z#M0zgoR7_)B)z}}6#I^k&8pJ;r~t~F{wOxDj*qAFHv-gsVm-q|2}ZHmvrYTv-!RY0 z%}SY_k20o@7MlcVqq-o1q2K)@W$h9@bqq|o?mC`5J)SI$j52O`_D(i1fGUy~6rPyP zic8l)H(@l27-Z8U`rPsBF)+yONGor5OUrEdt9}=@LEM(U+x6xadknTkK;8)+P=q%k zJFVQgZ7Ev^oHqKMvqCvIAhaQijk{nc0t?fFdty_U%rb&l21%>4l06!qftKuefl8N#IX=LQK-rY6-vZZuZXNQ4174M4cmG_J% zF;TPtYCjd6mtDT(0XIcr5qVozss^zr<)xn|xb0nRtJfbjW+ z4KdM7lr6{!xPE$lTdtWwGu`Y{tE0W=+90;wf!Idd@g{LuUv<)d!M#y>URsLSkB5vS z#Pjpvp$3B0&t1$?M;(JLD_vnb0mV_vaB>7!olst%^GpZ~2kS?T*fZq{EfsVwk6eNGD@&SDGIjLN)nsFX*VO z<4axukJ}%aKM{EHJKF_R_4iervU;?fz=Cyb|D8}wdMalRx*o=08Q|jSwl9MIo@XJ@ zq!iS80CnREKluQDUPH9!j`uW2Z8%H&d)+5q=tGR$OmkzqhoHOf%EMOYe?hlA#jZZd z;kz5lHcOYZjTC*bBlZoal$XJX)lRWr8?UIYih=48!Fu>3e+$Lz$YK1FbeJ(iY=fUz z!VND~KZuDTb|cyB?tZ#=DHj30AMgUL)#{__p-)JbN8y++$jf#Usu&H&q?A?u;)4`~ z?yr75qAwh+PQFTq#uN(4eV^~+w*1vSN<(eKZ|;rEPYGy_B<6z^MF|>N{pFYewZvlk z!Be?)g$F-UJJ4NAYq3!LeCOZFH^K(|XdwC5=GS+a7+&3)r;2Q!arLp(y1%?(T_LN{ z-;5vabWDHw(hd1uC)22kgMU?je_m`}{_0YsX4Pm!yYep(kL|32r% z#w5|?recSnofqV?Pj8zxxnBI@%2KwgVnXx5)hqXKCz% zlS-(|sfJIGx+}_z30#!YqgV^Y9&tL$UkUWG_WTMma6XZ^a+|tZn(XfgVf*wyBSgWj ze%D7M?fWe(R0nuvji5V_zL)jXU(fEsl+PQuVExMlIBnA!X0dXpj}@Mfbla|=&mR-ApZ8H4pf4U%%|QUezO1!XPevpg#AiIGmm)O~Ob4yym&M$~Rv zLXw{xkkxed$ZM%FhIKl;_qB}2^ zsbOuERSq+F4;`j82e=ILjv=GHUp6cr_AiPp_<-|_hfy>&yoHK752X|(NJn|{8TxNr zc$ecg%FsvSBi1D#abHa_(!p**U3o!*_a(^NdY=?k4cUNJsBdVeQ)|X) zQ-QYw<_YueIh}+1h?kvjI~_sh34^Iu?4;1 zsQ2?pE4Q8hk-|@*BVfxt)LyRb<9mWf%=`|~{_BEY56!`ix}WMG_U&*V)nVf`y@^Xs zvo0>PQuMB;jSGW!rduA5Dw%5z2ic9P=&qwR4Qrasw~{8huaj+SQfUe0AE#jFBWWg) zmY@g2u(b5?w2MJOp0hoh6LLwzgz2}c)bX@yFy*6FwEM($5&{Z!6vG+bafHORW0eZz zw%6C_w9bbFQ(99fb(%`p)E=TR7ThvEq07+pX_=cy)uRz;giY58HM5#)NrAIEuE*_k zLIbLGHv7VqU6b}Dcvh9FBV9i1Nmt0dZnjRvW{5tn8}Hwvl(>ej%}@FqAYUUQGx2oJ zCzL+@_16o6{qca&asQ`Tw88Ppu_JMW1oybk@rfVXf?-`{ScnD+9uM>+9KULYPWNAT z9!7iP(=YrphYt`ENX|aNS-{pVQpoz8!y>^ga{)c>ahlXDYG{wlx(84==GDm?o3=MC ztbqP%-Zo_YKi6JUbiq7i8&ujeCNgQ-O%kVTuL-C_6 zlPwOsVQQoBkIwfwxy7xaFa!^txmqzCeg_)Xnqg0W#8nI{?bD=k(6)p>nJ%jsw$d~j zJ>O2AtzP{^V_n?L3jcOOKtfMy?W4i_B9g=Hq;IJN27b*eJn3ml@Sw(Y%hL&ZPWQJ| zl5gY~nqZJTMA4a7x z{odj#$czV}O@$`B_Ig=5BZJ@?vgUA?_}H3oYI?U3ZG3JMBcp81S{3TObrY?jG&~Ka zxYn_)z79FCtKwUlV?9Ek1_j9{guoDgZNMmjN@xckse;M3AtR&QJ%>is=pt)T^Cx%y za^3~IDTH^h9#Z3AL<>=v6!uJ}A6B>)oKV(;SDEYuvPG1JGv=#+3D1;;(PN&;3D%Ku z{_kd_>}wRLaY~*kG#8ytom#n^+T%UQCv5w#OFXn}S?Kf!1*t&bdCIQXo5SKWw>Mz2 zH&9P-VRRxp+)O8I{kmZ#<>}bRZ9!owIm7g-_v4qxHNrERLPcYT6KNB(hNEYky3dmy zc?NQIuS@jS3`^ko$2Y!Kn|fq+_NvraBDKc<_3d#Q0i7#b{FTiBBdjz{bEm zA(F`LA|c80t1$WQB~bC5jy?C={YB`hq|fQKA+9-^VOp+R%+^Q_H%-w?Y+>pTXrMDO zoj68wjqm*0F`dg``In*0Hy!?bFX?JnxL8r@C`z6^Tmzocmd^EF&6y0cTIx z*Sc_-3}TX`RESNzHJMzySfU;m2wHFYbJ~Fj;uI@+K(zA>IlSxFgIi`^`WS4NU{Gmg z5}&7XVVkcmOm(395##HD8G#=PN4z1*Nn`vUj;|g6{zFYR`++s??+2$1M&x(bPvDW6Sp0ThUorh|@OZQ8m_r7uwNmZ&k7P zA(FnXSt%jbaT_=o#A(%pl{4|mbR^c9QNvq~-%PS($xEFSp65nnmGz9R{k-S+qbJLMLODz50~ zofPQQ!B2vZ)Kn>@*f6 z_KQ7`8&vEfk_R^F8S_Ec<^w~YF{q7~yIE+?W+#(Z>31>d3pSId!_Mv61zvIUT%MqQE~;YB z=ot@P)mRyjAZZ?f*gtq`fW*V{LZ1~Yh{g=~*I%J8i~0>-Bn}D{tLUM4B}#xZ{-NZR zPSo_8x;W>&aUZ6aU595usy>|i!~I!anG&S`5VFBnYPS(8!z{QfDk_r*9?FI08}@Oh z+k)Ns?4k3>qA~pI=d5wW8Q|^9E30ViN=k10Li+e~vYVT7YrY#NMxOoAllgblBekB7 zH|#cys58R&mj>qaHTB)Y9tU&#Ft=80Apz^^sdyzrDsAmU@)es}Q2CtN1!f8f6rGS# z3YjjMXvi=lsQxHj&Br85uDYt$r2dmM|+H^tA}fuF z@)8@STcmCuaN|v(qt%YC3YZ9hWKyZhTw~LXZvEws_ z{?n^4{~z5z*^B&kY=hJ~f54Dzu!?~DM$*K752W{NuN#}AZe@5$b)2kw-xg)?jpvMD zpIm^ODQKYb+>V&KtpMARs+-}?62$x6sOtnBDBd|{^?~iMdg=c$N3&oM+jtP-7BAF=Oz`*?<>e`eX zmiNc$wZ`)nir;6YlTIjMZf(Z#zBFEcJlONe-5_|<`Y!RaGda}Hpo+h`@7`iL}85Trubr?d@^r^x#M|;KGln* zF)D?uLD{*ejH)9dG(Ole0Bf06;}xe^EYf7?Q(N|Ob`T8hJf@cam9Wy!!MiDmPgUJHWV&RGoW_Rbu$iQw$)VuI+ zl-1BF(gLbJ?T~iFw6TIMhQ~WYU*_5+UU5Hj#|ehM5kr!9)d*I9Z5g?l$$x;dkOq`Zq697AK>_3?*sIh9cKN0 z`zEVJ67=9DU{&DZc-+pFR^P1T@u@G=j!hz!U#EZ@%xNnPSrJFUaI1rZ;f;s2#g$<;RT=%uP82b*_mes zhM_y6=m|Y^Fbs7A5m1FWCxP3_BJUR!=}PwW4l< zew-d9nCp_y1`x&CRT9by=qze@Et4bkf^F(W$PbRpuT0XVaDkjRKT=nt9A&xbqqsh0 zW#a>1{9QFPw3v6>wqbh|69tXbRykHf%zuy4m!pI;DIBpoVMNTpyi~{S?J!=yIb4)2 z&j<(?x+U$383w|$hZ!)-P+Y9G1E)=lz_0u$r-4ZKC|c0|APZ%Y$IdbsGd4sNRYe|` zBQYLBybA}lrCJ=qo`rZJTVsG(ubf6yX^X->b4(xccFI;nuqiqsVZELAgB_@ALOtR; zo0lxu$HIndLf);0d){ii-s1Rh`n6@SqX7np$h+vFejQSW-ed(8k~L2;JoY3jKr_n!8Q840;a6{JH~f&0PADMCo?&ATUrNT?O`9V z{~~l3EkFjgPqNbLK4Er)aQ8(z{g}MK=7~mx;g?c_9&eARn}$nHz!xXBB-FwbL6Vx60#> z7nF*aA$)olyQ0ueV|&|E>?h!);I7Xl>5h|NVjKr9te{-RK5$pO0$trbV{F<#(6-OK zv(j|)d15;pv&GV36nh_~cMEtPtI87ZHLa$OT$G|r4z^E{yq?v!TlYl4g9Kc7*Hf$k zI9;7oS1alQ-*XKk0g_N~Hza$!Z;Wj98PcBWlU=rG^jw?N>E3s#8#tM3~;18D>c+63- z!57x*d-&Y8q9$X4U_kN;7{9aYta~LqXrX)6>^3rscaM846uk~G zP4HU59;XxSt?~L}L>+Imnb`ZbIj*hl)ca+he<-);0&#xO_bhPLm+~u$I6sGyZDRjkY82GAZ6=~sAR4wlG(oN6HtWdPiQ-^MAwWSr;c{$-q&%f>keGJ0B^zp@dQ=r*GAE__P^ zz-^wOJ}j{S56>H@z(W$kwTGwgp8y3O!`k`US?qjQ@0XE#Ssj%=;bD#3yLLwa*qZ*7 z-g`RrEw z1hZsV!0}gYK8u+3BwS44kk8CI3!r8C69M5OXw8@`ra~j}(;kKO%DGpQEl@W!+$rkD zuB{PuRP=CM-FK|kqI!8gdMX~7U6*uR4>)DqE*o=9f7R*60baB*#?uWG#isEFXTd$d z{lNrz;e5j0R5^+dP~GZqTprI*S9^~^l-we~&LhWbp>srcc>L7^20GYZP&R(J-nB`p z|2QdQ5|#uv6&YRJgC6pD&1qGBW=s?q8qNmq#PfkDR-`^3e8qi8e^ptk1oJE5mWQiU z@sKZm<3taaC&V!tI8&p=%pXLY5B(^>D@r+ra$Qk3^=%nEV#@3leR!$VY1rCJ^;i4E zi8}2EUGdG_FyvS4cXkM(oHEXH0`rcJl~==P1DnT)fU? z)THh>bDnqth3$3;d3oGh`P*@p<9tIrwQcQ{&|dYPAoG6N;r_*lRb7&j2}R)bq< zeOkW*qp+Bay*}g^A;Wcv^bf{`lf-vz=!t5TM2{p0EaBD zJbp;Vyd0ui?+?B$lzreU*_X;%Yb=yE(mh^yf?E_Zmu3*Rfe~>D?2|*|6@VZSaadTl z?me}$Ujzg@T+kLCx3Y2eno+e8Vwf=?-fZ?9^m3^ zSLuw0^2QO*?`si7quNR*c0>>((J_Jtc3|ar&@ue^9*X<-Dmn317=SLMj!%e=XfK-h zgW0;?rQZd>3=&$8xYZTB6$5%nE7wpkdj$9|IprEeR zvA+{Aa7?hBRdoZ%%-LGXFpnLcBG+XfLwA3qlT&}+>BRGMX;Bnte)(dj1I6J4!wjkId5c96 z?JTFMIV4ze;DZ)V->jNg%L&Nuhd^meQ+M(_pcPB@=kD9LTUjqC!W#AQs7J<*x*+2T zYeltl0-QUa9Mdgg=nwlceGHU>Cm*Pk+L)NuV{LmXh9uSm2z!r)zf1)l5az^;r?BJy7PimGStu)UmkoA3Wzfa%_Bb9tq|Bx z$;D9Wv;Ype{BuqSaz$4fYK!#?B0wpqu{eO|fgho<+7%i>rr?lU;^beMe1% zPj3{rlqQ;NROp$S%H)X0Sslkp!}WZe|3EB0fT($LKt^p1GbRhv`}$Pq{q46M)8k8P zDIlE3$z>^v^S!k|O`z404KVoxYLfI>BkS0K8VjO*5Ia|N6vcLJ7*Jz&Yx)TY?K+4u zxAZGy$460uFh-5DP%Lcm*}QbZ&+TepK;GeX8gIh)INzx32)p58(yu6U!WV-&G6?@Y zZcW1;Y29(e@m>4l(p=G3qlAUS;S67r`*uiYwg3w!%wf;AP7YyU;30{&r~~(Q>pR*4 z%iX`)w^S(wXWQNz7+1v!DHgq8{miQIW-KBI*1J3q=9(36&OZZtKD)qqT))TehQ7q1 zd){0kGBZkXanKgHRah!sVp;bjOeq!zVgeO7u{iJJmIY@s5|2vP&gyC@2dumh$72JWavku zM0w|19q9LhMTc^wCcr4weP9Po6uia3eX0SPPFV0szLL+tav>5?If*Ebb3LGjr)&bF zzF?hJdHK0xy6rv6I4F8LIhvurqU-{OG6Kpg<|{?n9l{E21+^M~Hf~vCU|h4zN{bh1 zLLO-%gy`bL0YO{^ZfGZxA?v@3eE;293RD5lR9RvE3CA4Ft-L%Tl}L`Y(8*!wKYq-o z1q-yZ4(wU!e0}g_uw&%O9hDyq{L+G?{CWojM>GL7r+?jcyHhfdY3Rdp)Z75v3 z#*u~^MAE5Z<`sbE11vVmI-&z$VE+)JpiY93xOpTT z!gauAGgY`{weNRm?>Og%pM4(qr@dnd`!R{_+E>u7m)}FwW{H2@0xvY&_`EgmI6&>E zofto2ax_>kzn)VfXRIxH{`;}`cE%JgNv}0MniA& zj}VgDqO$JByMmNiMK+*QW|OPB^CMGH0XTZ=tTz;D7 zdZXU&h9iYWdooX!*w_|@@swQuua)y6)Cmb6|Fz}I)(GMk$coD>{T@!iYhHKlU9N!{ z6&{dQfuhNlL&tHbp-W0xkD`k}vDknC4VzSlu8Yu9Ib!jZqw|MUA`X*!q=KQp{UtXC zEXe`qP4Dlfqm_WgZR>-_?0;ThqO1gE2yOh-u)(^%MER>tBhXbzNQ2cmO4jMR`#?bV zudIv2a`>S))&BijNRE$KeP6S;%Q2nVe?%Ny`fhnb<1AE%5?}LDIBscV!3y$P6ee57 zpI3dZ{tPd%aiO}@>P5<4Xi=x+rDeh*;9|kH7p->T)@0;CqrnD6j;q(sUl3u&l!Fyk z^C#E-r9?Me=R^N`ir5L%?M@3!8HD#K zoN~g?ft>0m61@yCSayEcN8iRmm4aD}5DubQ@mc=cc5c;ApGzjeO?|7#tY|7x@eL37 zP?)}#?Bo*I$@AI-%uq6@llQ~o`m*QP>Tfa~$PNEFU@v3L6@4`OaFz=|R@3jM%{dnP zrsk+~Es~otU)TY&ERBxA>?7666`KR?k)U%8k!!FaPw1R6o?Q8rC8_s<;ax=VjbR+m z88LW!aX!mH?5mUzIOdfdU$zcPpmb_2`Z|!?HzsngKO-F&IS8Q*>&cOa~ z+6RRYuk6oyD%VN^oSY6fLj3NJQp2&|fNirQ($LSeuD{w1(<}W~Lk?2GT+s*8&2pVV zP_Gvkz$xs=2t5U;3eW?SL)uVEZA^!%8X-a8oPk-M4M^2vr;Hzr2%w3xixIH~ z-d}YkRv(E0W8_Iopu@`$H@Sm&n)7Wp0Q^I1MoUe&rYMXMCk~TC4g&2(UANF=zvv9`F3)@wgUg9W72cr?Px&x(Bo|mec0oW<9xXB_Q&AO`V#%yKoG4^ zIb{P{&hCGF8;0DhFyy|BnBOyayRw5cKGbs&=nIr8mL90Ob>`l4q8d(4A-jYvTLygB zL1)a|7{&Gwq?DTB#C~{P$OD3E!PUK?RCkuflSjdTWgdUEP~7O|<%VGaSmxi)na}-U zJA||A9xY{opz*$U%tOP)^(E%del0cVsfTYz9boU*JOcbz^ubT@DA(><;llQ(!eRZz<;sq| zdxrG;Bfwgj@k%%)M;P!)J-4gi?ij#+;zh)~6ex8AVo+l=gve3ZL}6N51Ss=jhJJ8? z8AwKaH6%JXyw(MxAoU9hwND%6>` z94|?AoJI85FTEv2kq3t=s=IST2+Ub!2kdjM%-qKMLLLku_qKXSGIZ3@JJC~hHgudi zGe(AO>fz`0irQ&%{qZ4(TvTzUke*T=u-F@s^G7jfbBMQrs4@%F9(en%LZ(PPM`Off z6_4yLK)zEa0X-sIEHOXOzV_iyX4~MMz87dnkSk1pPJr#eqn-UaloM*Wr;+6S8Q?F* zT~e@S63S6S9xzd=;weD$j&B(DTsQxddk$U_ zQA3US!(H6B@NC=_R{hX{#|aDNnNzAb;%~*2Kx*sH(%0(f1tfYBAo}#iz@NC?dl(b!m04mb8+)CNExQ5zzw8+@Jhq0 zzp6MifSCsFPk5+8KIq;qtpr%S(! zMguVZ9)OMF#28@Gma ze+qE6nGCt93J}&B;l>KHe$c|e@dkknFhYM|1E-Yq2tR514R(nFf4~kIEZ+v3%8sCm zSB)LHgEC>W8v`wa2h-~8SLS|jLidqOx1rN|pBWF#G4 zm)FF=3xNj<9RVZyFUqlCXdJUE<#7qLQW><(1G+v;b<5i8vMr)Vca0)lpoRoot!vd$~P%8A`!%=R@bM3x+Sm zY=k#PU14CGe(^;FTC0H^Q}=y(=$CEijX<#BvQKxR1QlS(v_iUmuT9;Ly^jkLkjLFu zI?2lV9gS~u1%o{mzgvZ9PNKwy^l~WV4)F)q%C@N3cPn5@a~=V}y=xJVp}{GPTurjO z$w&~^4J5yE%HxW7N;B%1DL3^bcw}b&Ia94WLiDkhCgv%Cd*1)FLHO@)fPgX|(k?9; zk&04+GI{W|;~`bel_ZK~SwKGh)6R=^(a1Az5FVy*2zS-Jz*<0}Z^hHS-t7#S*Ax4T&|v0#<5qHg7KJE^6gQ;1H$@8i zRA+qwI0`3SmH8;}{$}OZZ7h$(v9PR&G6B&}>$lIPI&Rg)x+{LSIUcN};5Yf4&u&u~ z^!5a3;ZLPV8Zh(u-G4|SvfYyc{aS2s+14*a@lu?9t~T=;)(SE(kBdOM8h0hDv)LV`XVHg@DTOz~GN|?hO{74%bRXH$Sy9~xL9~e)G&0vC9 zj1sP{i%}l{eD)gI0fr+vQC4%@3v+GL|h&)IaT^sIOv+_%P%>q=v z!rLI$k%5%0f29!WuHLKNi&W)zf0in)4n0U~Ds)hN-7cwQ=5iZrJpN(O& z6GMht(I0dg8R|yxy1TDM4Du`}X^>KOJwH<=MR^IoH~}Oh#-vv(Wl#x0#Js;8bb0R% zWO>U=p5Ksdk%ywBBrtPqg%1!Y)vBk*RiRhUCj%A4f-%_5sBt~J$=KmT#hIGzY=zL^ zFVU)GV-pdy@0;5~3OZ}C8(GuM1y>miuadr{Kv2Ml;=ui~{b za7u3#&hpCu3YTY+uU19UnC`Tbb)%EdrGabkst!>K(%#V?kC1@krj9k zU#S@iQm@0<@z6TMfp{u5OIb#E&+oyM!&67^><7PH8Z>i?V@;M5VgZ@O{eO`hWlwFr z#tiLUNja%tbWFGZ3wgM(@5@V~zs3qpAUC(2{Ca6iOuhX4>F||&bL{KGtxSM`-(7Qg zArLEs%))T#yMldex57$l)N*gB-S{feD~D?%NXNyO4~s_YKNSFco*?+3M3E6V6CdB+ zyvNM@29dvG);Dqpm*2yryIwsdxA6Ojzw6AsZ!qix7eJ&16IBALPf}ynQ3w}*H7lx< zP=>S>83=JU#iXCZf_2#KzZUXi-w7?k7z#jMxXt?~D2$1NqY>Lvu-u9&sey7X?Qd5* zvr9O8kUCs^bA6$Uv;Z-y-jlW z6uNXWvl67J8vPK%JbFKO=D-JLDhv??SwX>YsV<#5$tzBaZ&2}8wNZE~mxoK}@@L4c zzJXJiyxIru%Tb`!I~fzw(T)fc`tzz#k{yRJOaZ>2BwxYk2&;4!i}#< z5=G^i9=*>duEPSa21UzC=$yf&7Xd5iezL-bi2EaENUPs~AMdqac` z?p;MN7M!HQw3W2uPeBlx92OF2q=UxfA;3t;@nbmfZD1A87yVSw)$})!+zKGNbdMz1 z&Ubp}LD8qDrk%P)C_LByy7X|z6bAk4{_O-&^&!E$FHlmk_}s6!z&lkEvg4&_xq9~z zUZ@f!ngVR+Jo!pSq(*Ho$w8yWozm%eRB%j~pbCvEK^0zr%jc{p{HFk>2+@V}`op^G zk4pkDEl54vr`3B8 zBx#(^7k|gp7>{slKe#}fGz^Xfkr}E6dRcY^Gf6tJP64LE!hS9$7-a$WT1QH&*%7!a zHEe_u+(b92mJXn@$z!N&ve$=TGI!luN(ndL&jfCBDwsuI$`2pI1%n-~mYm!P8FC=5 zO*?#o7BIdLu0s?Uzfr>l0y^xt3u#t;>iV7iw(;avMYC9yEdWxGJ|Ca7H37^s8TN3=qj1KDMW^ipYNb&(Z( zhQh($sBjQL>S@<|$aVpwH@l3i<{%dRvg8tI{D@Gn%S_kmZt9rgetVKe6)n6UMgxlg zNDodgsXWcb;6#bERH3TrN=-mXa>=C`-_87i@{viiX&C>&N~|TE=BTAHS}YsbcH_lg zxKl`TT5so8xzOze7Nb#t90iUI3GX#Awkxhm^txV9bw)n;y4Imt?Y(7AqC)?=!hhH^?> zJn-%Bm72&B&_^L7R6vof!-OFb7fF!#)&>EeG{hGoVI{20KQ0F77164Qt%2Fh!gd)d0<&d_2KNHsG4(e>u%z9=fdFoI|OKh&3vZ2gA9?bs^#5}OG> z2T=uj8YcZLmj9}(hXI+vBPcL>z<*Q;3XDKP)cbZ3*3>=3X=sTp<*q`Z;{9v>A zc8xjqmsH$b*}(ta+i!CQ>iAY4i;H23tE$~yUvS-lp$)ZJKz+R2Qld-@hUw7bvwN9| zyI@W?GV zk)u`;LNo0;(;_X}DI5aY{=rvKC zs=ep+k=^hJ_&{E+SMP<%J-R8z9y#)VBth9eK-jU)<$^Bg-grO&S!2jr${+VPTkZ+4GXp0|psn$UnS_`6;@r&i>U(aTY zmbhw&Gz9&hyK}(Z6Q7&1V>-wRB4HK~&1IObCc<)SkZ||wD_{TT?iQ$Q&mDI_9vljw zS!LCeo{;kFCVm0Z)AB5>qnlTCu>j~U)R?(U)bG3;$=4oIcj28s8cPS9-rG;|5=yQm zfo9eGMr&Q2MHVeR(Nu|cDo|gx#vJMYaj3LQoBrr8E_P*%-9vu+BVZan zpX<%XOKX3gON#@lL>+PWH4P+T8V&n#a#hcqoN7h#C_mpWWN?DsTc(trRsneGeVDiw zO^UnV9YogCeU&u;tTr;75xhY!>%rX}6Tr;7{{i9*Thxwa`irGI4)`?6CgdCpQj0g^ zeebMc;-ay(^ff-=1myF4s2cSJm8xCqNWU&mb)EW@vXwGSMP<}cFIo_oqQi<$SzhN4 ze(9oMGWWsv+2aB^h&Q=uzDshf9!9gAP+c+Gh~=c`|lS2qsti}`r ziYV_8FoGAqG(U0w+CuWoK*9qkZ*@l`n&c(J0#nQaF?DCLX%{UIFMOV1Qa-x{eO8Ip zb5o)cb?#F=n7>vi?FS&fW2}9q1_CV2L}5k*`cZT8f*ei|CX8HpwpArvJiI}Rt$#Cl zYZ~G;h?UaG8eGE=-K74wA&j-PjG0@lno)C|i6Izf-aS>*S(9<>W!*q{3tj$m=}tB3 zMMM`t;*6$_DzJhLZq0$MxKi%6yd1hq*Ofu!4L;hHMQ_*d8nnKF9V4lP+~mw1YC^=> zFy@pa$>zV9l^=qah7(Ue;E@=?D)IMkoimj7H^l?{&XD;YJMw(4O@Qgc$hqL)MAsHBo23Ik;q z(f@8DW&j^|Rzct)ND;^}(uxXB^&F~^i^_3SRwwrMTZu54S@m^TM)cRiTJUR~-QmZGa`l|sdVNMWY|T&k0ON1>|ec62@!d5q>-+Km5< z;F~Qu@3;ALRHA=len$E=kE=;>x26Hu;>tt8CN3CrhLMQP+uE(*mOd_Vz;vC*21p0? z6xZ~&EVoaPdn?y z$Y?IC*f!4!l(py;ZY_y01DR`XPID6&t;T++QK$6|v#bZCQ%^M}1L5XpPKpYEg%AAO zjGR+^8z&^#PrwwPg`;OSq=yYFYL?4=398i(c(KjWEq}?Nc9V^8D(|^A8p+bF-yud6 zEK2>EJQ4beKi+{729B}&EMOkwJKkuAB0@?@qN}zcQJnYU!5*UVd8lJm)d*Izf z*}d$w)~5tv@c^u_0W$$O)#}w*?M|-8UrB43rj?*BxVT>6)oqCPGzLS?*?->KD^26# zdN`9^HoRv;<}CeGY=cyqG2~-@@VlPF;2}UP0EQNZk;OT*f$3ULYMKJsniJjpaLW*> z`mNnGpg6=L(>Dnk&FvKc^lWG3oDLP6I9t&9Z(BJa5eK4D3))=s_$O|FDHa*e)gnOD z%^GI8x$Hdvv7Wzh+{95y~97kCslJExp=1BB|_0ipoKjr8~RvCo`KEoVbWwQ}M4qE6JVrk4m z{2`{k8r6U5haG>0=J-^a*Ib*E)OQ5OMihN7`i%cNgeF@H5hdz`!k2HJ2l@w*3#dZb z05K*vpijuMp_m(-Fk<2({WEaG)!9~I#JA$+81uN?M)j&8kcyqCn33~Xv5APVN9}(d z&ip#wdc)s`tB}_N{i8s>9t@O0On|lEqtL)0uDm5%PAh{w(AoZc;tG&2*&cc=FHrGZ zL6nf_D@U~?ci-ilc2Xi=7a}`gt^z`f5@b^X!@JkFK{iRrNCcgpUI5Y^mnN41lM*uK zP+RdOzFe|RKyPV;OVIr-DsDaThMbXMG3BL~qV}4KoaR;jCm;vAFL^A#p!MJ@fzU&c;sz3Bofm@A>_Ga6sBa2W~^j5}}3<3X`B%E%DY( zSq~~d*~>8b^K+G-Tj}g)t5Ql*Tn%U<)C_kR^ZU@|=9-P<)l($Ex@TFT;78%|Ia;NE z&L4o0;%Qa9t{Nbny~Cd0W5o$Z6{?fZ2MHW7#A1v=9wl;_LB2eXGAAy<~+l5)E>d(*Q_WgA@cgvxA$u5dbR67=0qm>i^tcyH?3EN;+wLaVx98x z@+0G1GnKl2O~tooE}AcPMz+P}4_|P+e%A-EHL6z_g>?6NwHmY( zEH~GM?s?tlC4!BPOw%D3BcCLvazOLP{fn`zW1H`mp^T$J8D&IXudmcy%t9|0P{?dw? zTaxRUIW|uG@5OlbKXM+5nNC&Zu8!-Q^DV*Q(IB@@@WwyhQ+DN|ab>EX)b%GN25?mF zfeB9KLmykxX<8o6`RpUZ8IxeSH6*$qseK~#FpOh%7ojrxz9G*Mq_Ol3BGF5j<(#i} zKgR|r2NoS|sG7&y78Sn{j`)E%aw38(gw+nniA036m!ABflg7H%dQC$OhbQ@Q&}QB| zjonq#<)d^f0;j?Z(iE zL6D@!0cs3U1*q`l3+;UYv*`C=;z+T);lp+dF$ZYt z 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 diff --git a/web/images/icons/dark/arrow-right.svg b/web/images/icons/dark/arrow-right.svg deleted file mode 100644 index 7a08797..0000000 --- a/web/images/icons/dark/arrow-right.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/dark/brain.svg b/web/images/icons/dark/brain.svg deleted file mode 100644 index d0b4d91..0000000 --- a/web/images/icons/dark/brain.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/web/images/icons/dark/code.svg b/web/images/icons/dark/code.svg deleted file mode 100644 index 3c067a0..0000000 --- a/web/images/icons/dark/code.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/dark/copy.svg b/web/images/icons/dark/copy.svg deleted file mode 100644 index 86a078a..0000000 --- a/web/images/icons/dark/copy.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/dark/database.svg b/web/images/icons/dark/database.svg deleted file mode 100644 index 5dd467f..0000000 --- a/web/images/icons/dark/database.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/web/images/icons/dark/discord.svg b/web/images/icons/dark/discord.svg deleted file mode 100644 index 5714328..0000000 --- a/web/images/icons/dark/discord.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/web/images/icons/dark/download.svg b/web/images/icons/dark/download.svg deleted file mode 100644 index 3faaece..0000000 --- a/web/images/icons/dark/download.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/web/images/icons/dark/github.svg b/web/images/icons/dark/github.svg deleted file mode 100644 index dca0db5..0000000 --- a/web/images/icons/dark/github.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/dark/layers.svg b/web/images/icons/dark/layers.svg deleted file mode 100644 index 70d772f..0000000 --- a/web/images/icons/dark/layers.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/web/images/icons/dark/lock.svg b/web/images/icons/dark/lock.svg deleted file mode 100644 index 15291a5..0000000 --- a/web/images/icons/dark/lock.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/dark/logo.svg b/web/images/icons/dark/logo.svg deleted file mode 100644 index 476b336..0000000 --- a/web/images/icons/dark/logo.svg +++ /dev/null @@ -1,3 +0,0 @@ - - E - diff --git a/web/images/icons/dark/mail.svg b/web/images/icons/dark/mail.svg deleted file mode 100644 index 4f1652e..0000000 --- a/web/images/icons/dark/mail.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/dark/message-circle.svg b/web/images/icons/dark/message-circle.svg deleted file mode 100644 index 864a033..0000000 --- a/web/images/icons/dark/message-circle.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/web/images/icons/dark/microphone.svg b/web/images/icons/dark/microphone.svg deleted file mode 100644 index d3003fa..0000000 --- a/web/images/icons/dark/microphone.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/web/images/icons/dark/moon.svg b/web/images/icons/dark/moon.svg deleted file mode 100644 index 5556722..0000000 --- a/web/images/icons/dark/moon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/web/images/icons/dark/search.svg b/web/images/icons/dark/search.svg deleted file mode 100644 index 1c882e8..0000000 --- a/web/images/icons/dark/search.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/dark/shield.svg b/web/images/icons/dark/shield.svg deleted file mode 100644 index db2ddd6..0000000 --- a/web/images/icons/dark/shield.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/web/images/icons/dark/sun.svg b/web/images/icons/dark/sun.svg deleted file mode 100644 index 2d8c59b..0000000 --- a/web/images/icons/dark/sun.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/web/images/icons/dark/wifi-off.svg b/web/images/icons/dark/wifi-off.svg deleted file mode 100644 index 9d475b5..0000000 --- a/web/images/icons/dark/wifi-off.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/web/images/icons/light/arrow-right.svg b/web/images/icons/light/arrow-right.svg deleted file mode 100644 index b57fbcf..0000000 --- a/web/images/icons/light/arrow-right.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/light/copy.svg b/web/images/icons/light/copy.svg deleted file mode 100644 index 348907c..0000000 --- a/web/images/icons/light/copy.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/light/database.svg b/web/images/icons/light/database.svg deleted file mode 100644 index b39a956..0000000 --- a/web/images/icons/light/database.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/web/images/icons/light/discord.svg b/web/images/icons/light/discord.svg deleted file mode 100644 index f3dcb45..0000000 --- a/web/images/icons/light/discord.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/web/images/icons/light/download.svg b/web/images/icons/light/download.svg deleted file mode 100644 index 8629481..0000000 --- a/web/images/icons/light/download.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/web/images/icons/light/github.svg b/web/images/icons/light/github.svg deleted file mode 100644 index 0ceb44a..0000000 --- a/web/images/icons/light/github.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/light/mail.svg b/web/images/icons/light/mail.svg deleted file mode 100644 index a74fd98..0000000 --- a/web/images/icons/light/mail.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/web/images/icons/light/message-circle.svg b/web/images/icons/light/message-circle.svg deleted file mode 100644 index 1f0c1fc..0000000 --- a/web/images/icons/light/message-circle.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/web/images/icons/light/moon.svg b/web/images/icons/light/moon.svg deleted file mode 100644 index 39a8b35..0000000 --- a/web/images/icons/light/moon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/web/images/icons/light/sun.svg b/web/images/icons/light/sun.svg deleted file mode 100644 index 4dfbd92..0000000 --- a/web/images/icons/light/sun.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/web/images/logo.png b/web/images/logo.png deleted file mode 100644 index 506fcd05b5e6fb7df4e731977656a38eea0a99f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 868938 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%0A27kiU{7Lgb)JPUO8a+)Uo{>hhuAm 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 h@W+Ne6t#)71LiZ`2s;-J5FB#{w*zsu&V`$` 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 - -
    - -
    - -
    -
    -
    - -
    - -
    -

    emexOS

    -

    - emexOS - is a graphical, from scratch operating system written - entirely in - C - by Voxi0, - tsaraki, - emexSW. - Bi Moz, and - Novice it's - designed for developers and customization enthusiasts, - who want full control over their systems. -

    -

    - -
    -

    - Developement: emexOS is still under - hard developement and IS NOT daily-drivable yet. -

    -
    - -
    -
    - -
    -
    - > MAIN FEATURES -
    - -
    -
    -
    Made from scratch
    -
    - Entirely written from scratch (except the - bootloader...) -
    -
    - -
    -
    Limine Bootloader
    -
    - Limine is a advanced bootloader, excellent for - x86-64 architectures -
    -
    - -
    -
    architecture
    -
    - currently emexOS only supports x86-64 chips (like - intel & amd) -
    -
    - -
    -
    drivers
    -
    - currently there arent much drivers but the most - useful one is the ATA driver, i hope i can implement - AHCI soon! -
    -
    - -
    -
    console
    -
    - a small kernel-mode console with 25+ commands -
    -
    - -
    -
    fonts
    -
    - shoose between multiple pixel-art fonts for the - console -
    -
    -
    -
    - - -
    -
    > DOWNLOAD EMEXOS
    - -

    - select your preferred version, if you're not sure which - version to choose, choose the first one. -

    -
    - - - - - - - - - - - - - - -
    VersionDownload
    - Loading releases... -
    -
    -
    - - -
    -
    - from scratch - (no linux) -
    -
    - x86-64 - (Intel) -
    - - -
    -

    Run emexOS on real Hardware:

    -
    -

    - Download the iso file

    -

    - - format a USB with FAT32, use MBR -

    -

    - - flash the iso to the USB (use rufus, balena etcher - or `dd` -

    -

    - boot the OS from the USB

    -

    - requirements: a x86-64 compatible - CPU (Intel), at least 512MB RAM (the more the - better), and about 1 GB disk storage is recommended -

    -
    -
    -
    - -
    - - - - diff --git a/web/js/cursor.js b/web/js/cursor.js deleted file mode 100644 index a2cab75..0000000 --- a/web/js/cursor.js +++ /dev/null @@ -1,17 +0,0 @@ -(function () { - // Creates custom cursor texture - const cursor = document.createElement("div"); - cursor.className = "custom-cursor"; - document.body.appendChild(cursor); - - document.addEventListener("mousemove", function (e) { - cursor.style.left = e.clientX + "px"; - cursor.style.top = e.clientY + "px"; - }); - document.addEventListener("mouseleave", function () { - cursor.classList.add("hidden"); - }); - document.addEventListener("mouseenter", function () { - cursor.classList.remove("hidden"); - }); -})(); diff --git a/web/js/icons-theme.js b/web/js/icons-theme.js deleted file mode 100644 index 1aad224..0000000 --- a/web/js/icons-theme.js +++ /dev/null @@ -1,47 +0,0 @@ -// icon updater but for the contact page -// i prob should make a universal icon updater but nah... to lazy -(function () { - function getTheme() { - return document.documentElement.getAttribute("data-theme") || "light"; - } - - // default is light btw - function themedIcon(name) { - const theme = getTheme(); - return `./images/icons/${theme}/${name}.svg`; - } - - // updates and fks the website - function updateAllThemeIcons() { - // .theme-icon-dynamic used only in contact thing at the side - const icons = document.querySelectorAll(".theme-icon-dynamic"); - icons.forEach((icon) => { - const iconName = icon.getAttribute("data-icon"); - if (iconName) { - icon.src = themedIcon(iconName); - } - }); - } - - // Immediately update icons on script load (before DOMContentLoaded) - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", updateAllThemeIcons); - } else { - // DOM is already ready - updateAllThemeIcons(); - // - } - - // prob prevent a crash - setTimeout(updateAllThemeIcons, 100); - - // update - document.addEventListener("themeChanged", function () { - updateAllThemeIcons(); - }); - window.addEventListener("storage", function (e) { - if (e.key === "theme") { - updateAllThemeIcons(); - } - }); -})(); diff --git a/web/js/info.js b/web/js/info.js deleted file mode 100644 index 658e6dc..0000000 --- a/web/js/info.js +++ /dev/null @@ -1,122 +0,0 @@ -/// sorry for the cursed js syntax its my code editor which randomly uses the STUPIDS SYNTAX IN THE WORLD.................... - -const API_URL = "https://api.github.com/repos/emexos/emexOS1/releases"; -const tbody = document.getElementById("releaseTable"); - -function showError(msg) { - tbody.innerHTML = ` - - - ${msg} - - - `; -} - -// detect current theme -function getTheme() { - return document.documentElement.getAttribute("data-theme") || "light"; -} - -// helper to get themed icon path -function themedIcon(name) { - const theme = getTheme(); - return `./images/icons/${theme}/${name}.svg`; -} - -fetch(API_URL) - .then((resp) => { - if (!resp.ok) throw new Error("api gives no response"); - return resp.json(); - }) - .then((releases) => { - /// newest are at the top - releases.sort( - (a, b) => new Date(b.published_at) - new Date(a.published_at), - ); - - if (!Array.isArray(releases) || releases.length === 0) { - showError("nothing found"); - return; - } - - tbody.innerHTML = ""; - - releases.forEach((release) => { - /// search for .iso - const iso = (release.assets || []).find( - (a) => a.name && a.name.toLowerCase().endsWith(".iso"), - ); - - const tr = document.createElement("tr"); - - /// version == tag_name - /// name == release.name - tr.innerHTML = ` - - ${release.tag_name} - - - - - - ${ - iso - ? ` - - Download ISO - ` - : ` - No ISO - ` - } - - - Read more - - - `; - - tbody.appendChild(tr); - }); - }) - .catch((err) => { - console.error(err); - showError("Failed to load releases"); - }); - -// theme changes -window.addEventListener("storage", function (e) { - if (e.key === "theme") { - updateAllThemeIcons(); - } -}); - -// manual theme changes on the same page -document.addEventListener("themeChanged", function () { - updateAllThemeIcons(); -}); - -function updateAllThemeIcons() { - const icons = document.querySelectorAll(".theme-icon-dynamic"); - icons.forEach((icon) => { - const iconName = icon.getAttribute("data-icon"); - if (iconName) { - icon.src = themedIcon(iconName); - } - }); -} - -/// saftey against unwanted html in release.name -function escapeHtml(str) { - if (!str) return ""; - return str.replace(/[&<>"']/g, function (m) { - return { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - }[m]; - }); -} diff --git a/web/js/release.js b/web/js/release.js deleted file mode 100644 index 17e5ff8..0000000 --- a/web/js/release.js +++ /dev/null @@ -1,183 +0,0 @@ -const params = new URLSearchParams(window.location.search); -const tag = params.get("tag"); -const titleEl = document.getElementById("releaseTitle"); -const metaEl = document.getElementById("releaseMeta"); -const contentEl = document.getElementById("releaseContent"); - -const REPO = "emexos/emexOS1"; -const RELEASES_API = `https://api.github.com/repos/${REPO}/releases`; - -if (!tag) { - titleEl.innerText = "No release selected"; -} else { - fetch(RELEASES_API) - .then((r) => r.json()) - .then((releases) => { - const release = releases.find((r) => r.tag_name === tag); - - if (!release) { - titleEl.innerText = "Release not found"; - return; - } - - titleEl.innerText = release.tag_name; - metaEl.innerText = release.name || ""; - - // if exist then use - if (release.body && release.body.trim().length > 0) { - renderMarkdown(release.body, release.target_commitish); - } - /// kiad readme - else { - loadReadme(release.target_commitish); - } - }) - .catch((err) => { - console.error(err); - titleEl.innerText = "Error loading release"; - }); -} - -function loadReadme(branch) { - const readmeUrl = `https://raw.githubusercontent.com/${REPO}/${branch}/README.md`; - - fetch(readmeUrl) - .then((r) => { - if (!r.ok) throw new Error("nothing found :( "); - return r.text(); - }) - .then((md) => renderMarkdown(md, branch)) - .catch((err) => { - console.error(err); - contentEl.innerText = "couldnt find a README"; - }); -} - -function renderMarkdown(md, branch) { - console.log("Original markdown:", md.substring(0, 500)); - - /// relative images - let fixedMd = md; - - // Handle images with paths starting with ./ or just filename - fixedMd = fixedMd.replace( - /!\[([^\]]*)\]\((?!https?:\/\/)([^)]+)\)/g, - (match, alt, path) => { - console.log("Found image:", path); // Debug log - - // remove leading ./ or / - const clean = path.replace(/^\.?\//, "").trim(); - const fullUrl = `https://raw.githubusercontent.com/${REPO}/${branch}/${clean}`; - - console.log("converted to:", fullUrl); - - return `![${alt}](${fullUrl})`; - }, - ); - - // also handle HTML img tags if present - fixedMd = fixedMd.replace( - /]*?)src=["'](?!https?:\/\/)([^"']+)["']([^>]*?)>/gi, - (match, before, path, after) => { - const clean = path.replace(/^\.?\//, "").trim(); - const fullUrl = `https://raw.githubusercontent.com/${REPO}/${branch}/${clean}`; - return ``; - }, - ); - - // convert blob URL's to raw URL's - fixedMd = fixedMd.replace( - /]*?)src=["'](https:\/\/github\.com\/[^\/]+\/[^\/]+\/blob\/[^\/]+\/)([^"']+)["']([^>]*?)>/gi, - (match, before, blobUrl, path, after) => { - const rawUrl = blobUrl - .replace("https://github.com/", "https://raw.githubusercontent.com/") - .replace("/blob/", "/"); - const fullUrl = rawUrl + path; - console.log("Converted GitHub blob URL to:", fullUrl); - return ``; - }, - ); - - // markdown images - fixedMd = fixedMd.replace( - /!\[([^\]]*)\]\((https:\/\/github\.com\/[^\/]+\/[^\/]+\/blob\/[^\/]+\/)([^)]+)\)/g, - (match, alt, blobUrl, path) => { - const rawUrl = blobUrl - .replace("https://github.com/", "https://raw.githubusercontent.com/") - .replace("/blob/", "/"); - const fullUrl = rawUrl + path; - console.log("Converted GitHub blob URL to:", fullUrl); - return `![${alt}](${fullUrl})`; - }, - ); - - console.log("Fixed markdown:", fixedMd.substring(0, 500)); - - const html = marked.parse(fixedMd); - const safe = DOMPurify.sanitize(html); - - contentEl.innerHTML = safe; - - /// opens in a new tab - contentEl.querySelectorAll("a").forEach((a) => { - a.target = "_blank"; - a.rel = "noopener"; - }); - - // add error handling for images - contentEl.querySelectorAll("img").forEach((img) => { - img.addEventListener("error", function () { - console.error("Failed to load image:", this.src); - this.alt = `[Image failed to load: ${this.alt || "Screenshot"}]`; - this.style.border = "2px dashed #ccc"; - this.style.padding = "20px"; - this.style.background = "#f5f5f5"; - }); - - img.addEventListener("load", function () { - console.log("Successfully loaded image:", this.src); - }); - }); - - // copy button for codeblocks - contentEl.querySelectorAll("pre").forEach((pre) => { - const button = document.createElement("button"); - button.className = "code-copy-button"; - button.innerHTML = ` - Copy code - `; - - button.addEventListener("click", async function () { - const code = pre.querySelector("code"); - const text = code ? code.textContent : pre.textContent; - - try { - await navigator.clipboard.writeText(text); - button.classList.add("copied"); - - setTimeout(() => { - button.classList.remove("copied"); - }, 1000); - } catch (err) { - console.error("failed to copy:", err); - } - }); - - pre.style.position = "relative"; - pre.appendChild(button); - }); -} - -function getTheme() { - return document.documentElement.getAttribute("data-theme") || "light"; -} - -// changes the icon when theme is changed -document.addEventListener("themeChanged", function () { - const copyIcons = document.querySelectorAll( - ".code-copy-button .theme-icon-dynamic", - ); - copyIcons.forEach((icon) => { - icon.src = `./images/icons/${getTheme()}/copy.svg`; - }); -}); diff --git a/web/js/toggle.js b/web/js/toggle.js deleted file mode 100644 index 17ef8de..0000000 --- a/web/js/toggle.js +++ /dev/null @@ -1,56 +0,0 @@ -(function () { - const currentTheme = localStorage.getItem("theme") || "light"; - - // prefenvt flash - document.documentElement.setAttribute("data-theme", currentTheme); - - document.addEventListener("DOMContentLoaded", function () { - const toggleButton = document.getElementById("themeToggle"); - if (!toggleButton) return; - - const iconContainer = toggleButton.querySelector(".theme-icon img"); - const logo = document.getElementById("logo"); - - // iniitals - updateIcon(currentTheme); - updateLogo(currentTheme); - - toggleButton.addEventListener("click", function () { - const currentTheme = document.documentElement.getAttribute("data-theme"); - const newTheme = currentTheme === "dark" ? "light" : "dark"; - - document.documentElement.setAttribute("data-theme", newTheme); - localStorage.setItem("theme", newTheme); - - updateIcon(newTheme); - updateLogo(newTheme); - - // dispatch custom event for other scripts to listen to - document.dispatchEvent( - new CustomEvent("themeChanged", { detail: { theme: newTheme } }), - ); - }); - - function updateIcon(theme) { - if (!iconContainer) return; - if (theme === "dark") { - iconContainer.src = "./images/icons/dark/sun.svg"; - iconContainer.alt = "Light Theme"; - } else { - iconContainer.src = "./images/icons/light/moon.svg"; - iconContainer.alt = "Dark Theme"; - } - } - - function updateLogo(theme) { - if (!logo) return; - if (theme === "light") { - logo.src = "images/logo.png"; - logo.alt = "emexOS Logo Black"; - } else { - logo.src = "images/logo.png"; - logo.alt = "emexOS Logo White"; - } - } - }); -})(); diff --git a/web/release.html b/web/release.html deleted file mode 100644 index dd3426f..0000000 --- a/web/release.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - emexOS, [releases] - - - - - - - - - - - - - - -
    - -
    - -
    - - - Back - - -
    -

    Loading...

    -
    -
    -
    -
    - - diff --git a/web/rng b/web/rng deleted file mode 100644 index 554dd8f..0000000 --- a/web/rng +++ /dev/null @@ -1,8 +0,0 @@ -//%random - -// let my code editor know which langs to use syntax -( - %import gen.html::5; - %import gen.css::3; - %import gen.js::ES2024; -) From b7e935b277b6a76081ce01710ba1b56cdc03a462 Mon Sep 17 00:00:00 2001 From: emexos Date: Sun, 1 Mar 2026 17:19:38 +0100 Subject: [PATCH 28/41] new devices: fb0, null, zero, input/mouse0, input/keyboard0, hdd0; [FB] framebuffer syscalls/libc-implementations; updated devfs; [PROC] implemented a procfs, --- dsk/initrd.cpio | Bin 329728 -> 329728 bytes src/TODO.md | 9 + src/drivers/drivers.h | 29 ++ src/drivers/ps2/keyboard/keyboard.c | 7 +- src/drivers/storage/ata/disk.c | 14 +- src/kernel/console/IMPORTANT.md | 4 + src/kernel/devices/disks/hdd0.c | 32 +++ src/kernel/devices/disks/hdd0.h | 9 + src/kernel/devices/fb0/fb0.c | 109 ++++++++ src/kernel/devices/fb0/fb0.h | 49 ++++ src/kernel/devices/input/kbd.c | 63 +++++ src/kernel/devices/input/kbd.h | 8 + src/kernel/devices/input/mouse0.c | 38 +++ src/kernel/devices/input/mouse0.h | 9 + src/kernel/devices/null/null.c | 39 +++ src/kernel/devices/null/null.h | 9 + src/kernel/devices/zero/zero.c | 45 +++ src/kernel/devices/zero/zero.h | 9 + src/kernel/file_systems/vfs/devfs/devfs.c | 69 ++++- src/kernel/file_systems/vfs/procfs/procfs.c | 287 ++++++++++++++++++++ src/kernel/file_systems/vfs/procfs/procfs.h | 22 ++ src/kernel/file_systems/vfs/vfs.h | 2 + src/kernel/file_systems/vfs/vfs_init.c | 10 +- src/kernel/inits/fs/init.c | 3 + src/kernel/inits/fs/init.h | 6 +- src/kernel/kernel.c | 25 +- src/kernel/user/syscalls.c | 96 ++++--- src/userspace/libc/Makefile | 2 +- src/userspace/libc/include/stdio.h | 4 +- src/userspace/libc/include/sys/ioctl.h | 42 +++ src/userspace/libc/include/unistd.h | 4 +- src/userspace/libc/src/_syscall.h | 1 + src/userspace/libc/src/ioctl.c | 16 ++ 33 files changed, 994 insertions(+), 77 deletions(-) create mode 100644 src/kernel/console/IMPORTANT.md create mode 100644 src/kernel/devices/disks/hdd0.c create mode 100644 src/kernel/devices/disks/hdd0.h create mode 100644 src/kernel/devices/fb0/fb0.c create mode 100644 src/kernel/devices/fb0/fb0.h create mode 100644 src/kernel/devices/input/kbd.c create mode 100644 src/kernel/devices/input/kbd.h create mode 100644 src/kernel/devices/input/mouse0.c create mode 100644 src/kernel/devices/input/mouse0.h create mode 100644 src/kernel/devices/null/null.c create mode 100644 src/kernel/devices/null/null.h create mode 100644 src/kernel/devices/zero/zero.c create mode 100644 src/kernel/devices/zero/zero.h create mode 100644 src/kernel/file_systems/vfs/procfs/procfs.c create mode 100644 src/kernel/file_systems/vfs/procfs/procfs.h create mode 100644 src/userspace/libc/include/sys/ioctl.h create mode 100644 src/userspace/libc/src/ioctl.c diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 0449aad1ba442315ec1d5d34bc308f2cd62e2ec1..debf655bc7b8049ef03b53975d85a45e841479c9 100644 GIT binary patch delta 247 zcmZpeAkr{FWJ4b#x0#8VkpU2x7#dCg7{Fw_`3z&6BMV4$v!3$>JGi`&Y4YU273!M} zn#9x~(q1c;s3N4(48hV0=iY@P1XB&C8_F|jv^%OWZg*5+3ejURF)=ZlzA%W7#dCg7{Fw_`3z&6BMV4$v!3$>JGi`&Y4YU273!M} zn#9x~(q1c;s3N4(48hV0=iY@P1XB&C8_F|jv^%OWZg*5+3elTBv6jhrvcfr@=>;}S zEYoiUF+F58NKG=foW3uZNd=+NA`xhs#&*#VCRQ!5ZQJGQm~!kP%)Y%$Yl6Vc<#qzh mnmjNs7#JiaPPcPpQlI{kmsxcBKYnJ;_I^v|?fsT4h35dr7f7K1 diff --git a/src/TODO.md b/src/TODO.md index dcae458..0b5a973 100644 --- a/src/TODO.md +++ b/src/TODO.md @@ -1,3 +1,6 @@ +NOTE: +this is not a complete todo list + [ ] fix log system [ ] fix slow bootscreen [ ] fix user_config creates a already written file @@ -9,6 +12,12 @@ [ ] implement ahci [x] implement a libc [ ] implement a stub system like vmlinux(virtual memory linux zipped), call it emez (emex's zipped kernel) +[x] implement procfs +[ ] implement ext2 +[ ] implement ext4 +[ ] implement window system/server +[ ] implement desktop enviroment +[ ] implement window manager [ ] upgrade theme manager [ ] upgrade font manager [ ] upgrade bootscreen manager diff --git a/src/drivers/drivers.h b/src/drivers/drivers.h index 027ffc6..66ab966 100644 --- a/src/drivers/drivers.h +++ b/src/drivers/drivers.h @@ -5,3 +5,32 @@ #include //#include //#include + +#include + +//ddir == dev dir + +#define ATANAME "dev_atahdd0" +#define ATAPATH "/dev/hdd0" +#define ATAUNIVERSAL VERSION_NUM(0, 1, 2, 0) + +#define KBDNAME "dev_ps2_keyboard0" +#define KBDPATH "/dev/input/keyboard0" +#define KBDUNIVERSAL VERSION_NUM(0, 3, 1, 0) + +#define MS0NAME "dev_ps2_mouse0" +#define MS0PATH "/dev/input/mouse0" +#define MS0UNIVERSAL VERSION_NUM(0, 0, 0, 0) + +#define EFBNAME FBN +#define FB0NAME "dev_fb0" +#define FB0PATH "/dev/fb0" +#define FB0UNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 + +#define ZERNAME "dev_zero" +#define ZERPATH "/dev/zero" +#define ZERUNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 + +#define NULNAME "dev_null" +#define NULPATH "/dev/null" +#define NULUNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 \ No newline at end of file diff --git a/src/drivers/ps2/keyboard/keyboard.c b/src/drivers/ps2/keyboard/keyboard.c index dce2303..f69003d 100644 --- a/src/drivers/ps2/keyboard/keyboard.c +++ b/src/drivers/ps2/keyboard/keyboard.c @@ -4,6 +4,7 @@ #include #include #include +#include static key_buffer_t key_buffer = {0}; static int shift = 0; @@ -194,9 +195,9 @@ static void keyboard_module_fini(void) { } driver_module keyboard_module = (driver_module) { - .name = "ps2_keyboard", - .mount = "/emr/drv/keyboard", // because its not the driver not the device - .version = VERSION_NUM(0, 3, 1, 0), + .name = KBDNAME, + .mount = KBDPATH, // because its the driver not the device + .version = KBDUNIVERSAL, .init = keyboard_module_init, .fini = keyboard_module_fini, .open = NULL, diff --git a/src/drivers/storage/ata/disk.c b/src/drivers/storage/ata/disk.c index cde8d02..970a276 100644 --- a/src/drivers/storage/ata/disk.c +++ b/src/drivers/storage/ata/disk.c @@ -6,6 +6,7 @@ #include #include #include +//#include //note: // this is not a perfect ata driver and will not work on real hardware, but for fat32 i need a disk driver so i chose this one @@ -461,14 +462,14 @@ int ATAget_device_count(void) { return ATAdevice_count; } - +/* static int ATAmodule_init(void) { //ATAdetect_devices(); // already done log("[ATA]", "Load ATA module...\n", d); return 0; -} +}*/ // pub: void ata_init(void) { @@ -482,18 +483,19 @@ void ata_init(void) { //ATAmodule_init(); ATAdetect_devices(); } - +/* static void ATAmodule_fini(void) { // cleanup if needed } driver_module ata_module = { - .name = "ata-hdd0", - .mount = "/emr/drv/hdd0", - .version = VERSION_NUM(0, 1, 0, 0), + .name = ATANAME, + .mount = ATAPATH, + .version = ATAUNIVERSAL, .init = ATAmodule_init, .fini = ATAmodule_fini, .open = NULL, .read = NULL, .write = NULL, }; +*/ \ No newline at end of file diff --git a/src/kernel/console/IMPORTANT.md b/src/kernel/console/IMPORTANT.md new file mode 100644 index 0000000..e85f24f --- /dev/null +++ b/src/kernel/console/IMPORTANT.md @@ -0,0 +1,4 @@ +NOTE: +THIS IS NOT A USERSPACE SHELL AND WILL NOT BE USED ANYMORE +SO FOR CONTRIBUTIONS: DONT IMPLEMENT NEW COMMANDS FOR THE KERNELSPACE SHELL/CONSOLE +I WILL NOW ACCEPT THOSE ANYMORE IN FUTURE THIS CONSOLE WILL GET DELETED. \ No newline at end of file diff --git a/src/kernel/devices/disks/hdd0.c b/src/kernel/devices/disks/hdd0.c new file mode 100644 index 0000000..3922388 --- /dev/null +++ b/src/kernel/devices/disks/hdd0.c @@ -0,0 +1,32 @@ +#include "hdd0.h" + +#include +#include +#include +#include +#include +#include + +#include + +static int ATAmodule_init(void) { + //ATAdetect_devices(); + // already done + log("[ATA]", "Load ATA module...\n", d); + return 0; +} + +static void ATAmodule_fini(void) { + // cleanup if needed +} + +driver_module ata_module = { + .name = ATANAME, + .mount = ATAPATH, + .version = ATAUNIVERSAL, + .init = ATAmodule_init, + .fini = ATAmodule_fini, + .open = NULL, + .read = NULL, + .write = NULL, +}; diff --git a/src/kernel/devices/disks/hdd0.h b/src/kernel/devices/disks/hdd0.h new file mode 100644 index 0000000..3d30aa1 --- /dev/null +++ b/src/kernel/devices/disks/hdd0.h @@ -0,0 +1,9 @@ +#ifndef DEVICE_HDD0_H +#define DEVICE_HDD0_H + +#include + +// /dev/input/hdd0 +extern driver_module mouse0_module; + +#endif \ No newline at end of file diff --git a/src/kernel/devices/fb0/fb0.c b/src/kernel/devices/fb0/fb0.c new file mode 100644 index 0000000..d9bb6ec --- /dev/null +++ b/src/kernel/devices/fb0/fb0.c @@ -0,0 +1,109 @@ +#include "fb0.h" + +#include +#include +#include +#include +#include +#include + +#include + +static int fb0_mod_init(void) { + log("[FB0]", "init /dev/fb0\n", d); + return 0; +} + +static void fb0_mod_fini(void) {} + +static void *fb0_open(const char *path) { + (void)path; + return (void *)1; // dummy handle +} + +static int fb0_read(void *handle, void *buf, size_t count) { + (void)handle; + u32 *fb = get_framebuffer(); + u32 w = get_fb_width(); + u32 h = get_fb_height(); + u32 pitch = get_fb_pitch(); + + if (!fb) return -1; + + size_t fb_size = (size_t)pitch * h; + if (count > fb_size) count = fb_size; + + memcpy(buf, (u8 *)fb, count); + return (int)count; +} + +static int fb0_write(void *handle, const void *buf, size_t count) { + (void)handle; + u32 *fb = get_framebuffer(); + u32 pitch = get_fb_pitch(); + u32 h = get_fb_height(); + + if (!fb) return -1; + + size_t fb_size = (size_t)pitch * h; + if (count > fb_size) count = fb_size; + + memcpy((u8 *)fb, buf, count); + return (int)count; +} + +int fb0_ioctl(int request, void *arg) { + if (!arg) return -1; + + u32 w = get_fb_width(); + u32 h = get_fb_height(); + u32 pitch = get_fb_pitch(); + u32 *fb = get_framebuffer(); + + switch (request) { + case FBIOGET_VSCREENINFO: { + fb_var_screeninfo_t *info = (fb_var_screeninfo_t *)arg; + info->xres = w; + info->yres = h; + info->xres_virtual = w; + info->yres_virtual = h; + info->xoffset = 0; + info->yoffset = 0; + info->bits_per_pixel = 32; + info->grayscale = 0; + // ARGB8888: blue at 0, green at 8, red at 16 + info->blue_offset = 0; + info->blue_length = 8; + info->green_offset = 8; + info->green_length = 8; + info->red_offset = 16; + info->red_length = 8; + info->transp_offset = 24; + info->transp_length = 8; + return 0; + } + case FBIOGET_FSCREENINFO: { + fb_fix_screeninfo_t *fix = (fb_fix_screeninfo_t *)arg; + str_copy(fix->id, FBN); + fix->smem_start = (u64)fb; + fix->smem_len = pitch * h; + fix->type = 0; // FB_TYPE_PACKED_PIXELS + fix->visual = 2; // FB_VISUAL_TRUECOLOR + fix->line_length = pitch; + return 0; + } + default: + return -1; + } +} + +driver_module fb0_module = { + .name = FB0NAME, + .mount = FB0PATH, + .version = FB0UNIVERSAL, + .init = fb0_mod_init, + .fini = fb0_mod_fini, + .open = fb0_open, + .read = fb0_read, + .write = fb0_write, +}; \ No newline at end of file diff --git a/src/kernel/devices/fb0/fb0.h b/src/kernel/devices/fb0/fb0.h new file mode 100644 index 0000000..2d557bb --- /dev/null +++ b/src/kernel/devices/fb0/fb0.h @@ -0,0 +1,49 @@ +#ifndef DEVICE_FB0_H +#define DEVICE_FB0_H + +#include +#include + +#define FBN "emexfb0" + +// fb_var_screeninfo +typedef struct { + u32 xres; + u32 yres; + u32 xres_virtual; + u32 yres_virtual; + u32 xoffset; + u32 yoffset; + u32 bits_per_pixel; + u32 grayscale; + u32 red_offset; + u32 red_length; + u32 green_offset; + u32 green_length; + u32 blue_offset; + u32 blue_length; + u32 transp_offset; + u32 transp_length; +} fb_var_screeninfo_t; +typedef struct { + char id[16]; + u64 smem_start; + u32 smem_len; + u32 type; + u32 visual; + u32 line_length; // pitch +} fb_fix_screeninfo_t; + +// /dev/fb0 request codes +#define FBIOGET_VSCREENINFO 0x4600 +#define FBIOPUT_VSCREENINFO 0x4601 +#define FBIOGET_FSCREENINFO 0x4602 + +// /dev/fb0 module +extern driver_module fb0_module; + + + +int fb0_ioctl(int request, void *arg); + +#endif \ No newline at end of file diff --git a/src/kernel/devices/input/kbd.c b/src/kernel/devices/input/kbd.c new file mode 100644 index 0000000..a15623b --- /dev/null +++ b/src/kernel/devices/input/kbd.c @@ -0,0 +1,63 @@ +#include "kbd.h" + +#include +#include +#include +#include +#include + +#include + +static int kbd_dev_init(void) { + log("[KBD]", "init /dev/input/keyboard0\n", d); + // keyboard_module is gone... + keyboard_init(); + return 0; +} + +static void kbd_dev_fini(void) { + irq_unregister_handler(1); +} +static void *kbd_dev_open(const char *path) { + (void)path; + return (void *)1; // dummy handle +} + +static int kbd_dev_read(void *handle, void *buf, size_t count) { + (void)handle; + + size_t ev_size = sizeof(key_event_t); + size_t written = 0; + u8 *out = (u8 *)buf; + + // drain as many events as fit in buf + while (written + ev_size <= count && keyboard_has_key()) { + key_event_t ev; + if (keyboard_get_event(&ev)) { + u8 *src = (u8 *)&ev; + for (size_t i = 0; i < ev_size; i++) { + out[written + i] = src[i]; + } + written += ev_size; + } + } + + return (int)written; +} + +// there is no write for input devices +static int kbd_dev_write(void *handle, const void *buf, size_t count) { + (void)handle; (void)buf; (void)count; + return -1; +} + +driver_module kbd_dev_module = { + .name = KBDNAME, + .mount = KBDPATH, + .version = KBDUNIVERSAL, + .init = kbd_dev_init, + .fini = kbd_dev_fini, + .open = kbd_dev_open, + .read = kbd_dev_read, + .write = kbd_dev_write, +}; \ No newline at end of file diff --git a/src/kernel/devices/input/kbd.h b/src/kernel/devices/input/kbd.h new file mode 100644 index 0000000..76ee2d7 --- /dev/null +++ b/src/kernel/devices/input/kbd.h @@ -0,0 +1,8 @@ +#ifndef DEVICE_KBD_H +#define DEVICE_KBD_H + +#include + +extern driver_module kbd_dev_module; + +#endif \ No newline at end of file diff --git a/src/kernel/devices/input/mouse0.c b/src/kernel/devices/input/mouse0.c new file mode 100644 index 0000000..41d2c44 --- /dev/null +++ b/src/kernel/devices/input/mouse0.c @@ -0,0 +1,38 @@ +#include "mouse0.h" +#include +#include +#include +#include + +static int mouse0_init(void) { + log("[MOUSE]", "init /dev/input/mouse0\n", d); + return 0; +} + +static void mouse0_fini(void) {} + +static void *mouse0_open(const char *path) { + (void)path; + return (void *)1; +} + +static int mouse0_read(void *handle, void *buf, size_t count) { + (void)handle; (void)buf; (void)count; + return 0; +} + +static int mouse0_write(void *handle, const void *buf, size_t count) { + (void)handle; (void)buf; (void)count; + return -1; +} + +driver_module mouse0_module = { + .name = MS0NAME, + .mount = MS0PATH, + .version = MS0UNIVERSAL, + .init = mouse0_init, + .fini = mouse0_fini, + .open = mouse0_open, + .read = mouse0_read, + .write = mouse0_write, +}; \ No newline at end of file diff --git a/src/kernel/devices/input/mouse0.h b/src/kernel/devices/input/mouse0.h new file mode 100644 index 0000000..17356e4 --- /dev/null +++ b/src/kernel/devices/input/mouse0.h @@ -0,0 +1,9 @@ +#ifndef DEVICE_MOUSE0_H +#define DEVICE_MOUSE0_H + +#include + +// /dev/input/mouse0 +extern driver_module mouse0_module; + +#endif \ No newline at end of file diff --git a/src/kernel/devices/null/null.c b/src/kernel/devices/null/null.c new file mode 100644 index 0000000..7dc4f4a --- /dev/null +++ b/src/kernel/devices/null/null.c @@ -0,0 +1,39 @@ +#include "null.h" +#include +#include +#include +#include + +static int null_mod_init(void) { + log("[NULL]", "init /dev/null\n", d); + return 0; +} + +static void null_mod_fini(void) {} + +static void *null_open(const char *path) { + (void)path; + return (void *)1; +} + +static int null_read(void *handle, void *buf, size_t count) { + (void)handle; (void)buf; (void)count; + // eof + return 0; +} + +static int null_write(void *handle, const void *buf, size_t count) { + (void)handle; (void)buf; + return (int)count; +} + +driver_module null_module = { + .name = NULNAME, + .mount = NULPATH, + .version = NULUNIVERSAL, + .init = null_mod_init, + .fini = null_mod_fini, + .open = null_open, + .read = null_read, + .write = null_write, +}; \ No newline at end of file diff --git a/src/kernel/devices/null/null.h b/src/kernel/devices/null/null.h new file mode 100644 index 0000000..fd9b270 --- /dev/null +++ b/src/kernel/devices/null/null.h @@ -0,0 +1,9 @@ +#ifndef DEVICE_NULL_H +#define DEVICE_NULL_H + +#include + +// /dev/null device module +extern driver_module null_module; + +#endif \ No newline at end of file diff --git a/src/kernel/devices/zero/zero.c b/src/kernel/devices/zero/zero.c new file mode 100644 index 0000000..e34996b --- /dev/null +++ b/src/kernel/devices/zero/zero.c @@ -0,0 +1,45 @@ +#include "zero.h" +#include +#include +#include +#include +#include + +#include + +static int zero_mod_init(void) { + log("[ZERO]", "init /dev/zero\n", d); + return 0; +} + +static void zero_mod_fini(void) {} + +static void *zero_open(const char *path) { + (void)path; + return (void *)1; +} + +// write buffer full with 0s +static int zero_read(void *handle, void *buf, size_t count) { + (void)handle; + if (buf && count > 0) { + memset(buf, 0, count); + } + return (int)count; // show read bytes +} + +static int zero_write(void *handle, const void *buf, size_t count) { + (void)handle; (void)buf; + return (int)count; +} + +driver_module zero_module = { + .name = ZERNAME, + .mount = ZERPATH, + .version = ZERUNIVERSAL, + .init = zero_mod_init, + .fini = zero_mod_fini, + .open = zero_open, + .read = zero_read, + .write = zero_write, +}; \ No newline at end of file diff --git a/src/kernel/devices/zero/zero.h b/src/kernel/devices/zero/zero.h new file mode 100644 index 0000000..7177c4e --- /dev/null +++ b/src/kernel/devices/zero/zero.h @@ -0,0 +1,9 @@ +#ifndef DEVICE_ZERO_H +#define DEVICE_ZERO_H + +#include + +// /dev/zero device module +extern driver_module zero_module; + +#endif \ No newline at end of file diff --git a/src/kernel/file_systems/vfs/devfs/devfs.c b/src/kernel/file_systems/vfs/devfs/devfs.c index 9bb29a7..5a40b5c 100644 --- a/src/kernel/file_systems/vfs/devfs/devfs.c +++ b/src/kernel/file_systems/vfs/devfs/devfs.c @@ -17,8 +17,6 @@ static int devfs_open(fs_node *node, fs_file *file) { if (!dev->handle) return -1; } - (void)file; - return 0; } @@ -58,14 +56,27 @@ static fs_node* devfs_lookup(fs_node *dir, const char *name) { return NULL; } +// create a subdir inside a devfs dir (like /dev/input and so on) +static int devfs_mkdir_node(fs_node *dir, const char *name) { + fs_node *sub = fs_mknode(name, FS_DIR); + if (!dir || !name) return -1; + if (devfs_lookup(dir, name)) return 0; + if (!sub) return -1; + + sub->ops = dir->ops; // inherit devfs ops + fs_addchild(dir, sub); + + return 0; +} + static fs_ops devfs_ops = { - .open = devfs_open, - .close = devfs_close, - .read = devfs_read, - .write = devfs_write, + .open = devfs_open, + .close = devfs_close, + .read = devfs_read, + .write = devfs_write, .lookup = devfs_lookup, .create = NULL, - .mkdir = NULL, + .mkdir = devfs_mkdir_node, }; static int devfs_mount(const char *src, const char *tgt, fs_mnt *mnt) { @@ -97,12 +108,14 @@ void devfs_register(void) { //cannot be alone standing // register a device driver module to devfs +// "/dev/input/keyboard0" creates input/ subdir automatically int devfs_register_device(driver_module *mod) { if (!mod || !devfs_root) return -1; // extract device name from mount path // "/dev/console" -> "console" + // "/dev/input/keyboard0" -> "input/keyboard0" const char *path = mod->mount; const char *name = path; @@ -110,8 +123,38 @@ int devfs_register_device(driver_module *mod) name = path + 5; // skip "/dev/" } - // check if already exists - if (devfs_lookup(devfs_root, name)) { + // check if there is a subdir + const char *slash = NULL; + for (const char *p = name; *p; p++) { + if (*p == '/') { slash = p; break; } + } + + fs_node *parent = devfs_root; + + if (slash) { + // extract subdir name ("input") + char subdir[64]; + int slen = slash - name; + if (slen <= 0 || slen >= 64) return -1; + + for (int i = 0; i < slen; i++) subdir[i] = name[i]; + subdir[slen] = '\0'; + + // find or create the subdir inside devfs root + fs_node *sub = devfs_lookup(devfs_root, subdir); + if (!sub) { + sub = fs_mknode(subdir, FS_DIR); + if (!sub) return -1; + sub->ops = &devfs_ops; + fs_addchild(devfs_root, sub); + } + + parent = sub; + name = slash + 1; // device name after the slash + } + + // check if already exists in target parent + if (devfs_lookup(parent, name)) { return -1; } @@ -130,13 +173,13 @@ int devfs_register_device(driver_module *mod) data->handle = NULL; node->priv = data; - node->ops = &devfs_ops; + node->ops = &devfs_ops; - fs_addchild(devfs_root, node); + fs_addchild(parent, node); log("[DEVFS]", "registered ", d); - BOOTUP_PRINT(name,white()); - BOOTUP_PRINT("\n",white()); + BOOTUP_PRINT(mod->mount, white()); + BOOTUP_PRINT("\n", white()); return 0; } \ No newline at end of file diff --git a/src/kernel/file_systems/vfs/procfs/procfs.c b/src/kernel/file_systems/vfs/procfs/procfs.c new file mode 100644 index 0000000..02498e7 --- /dev/null +++ b/src/kernel/file_systems/vfs/procfs/procfs.c @@ -0,0 +1,287 @@ +#include "../vfs.h" +#include "procfs.h" +#include +#include +#include +#include +#include +#include +#include + +// +// procfs: +// layout: +// /proc//status +// /proc//maps +// + +#if ENABLE_ULIME +extern ulime_t *ulime; +#endif + +#define STATUS_MSG "status" +#define MAPS_MSG "maps" + +static fs_node *procfs_root = NULL; // nothings mounted on start + +// +// helpers +// + +// convert a decimal string to u64 +static u64 procfs_atopid(const char *s) { + if (!s || *s == '\0') return 0; + u64 n = 0; + const char *p = s; + while (*p >= '0' && *p <= '9') { + n = n * 10 + (u64)(*p - '0'); + p++; + } + // must consume the whole string + if (*p != '\0') return 0; + if (p == s) return 0; + + return n; +} +static ulime_proc_t *procfs_find_pid(u64 pid) { + #if ENABLE_ULIME + if (!ulime) return NULL; + ulime_proc_t *proc = ulime->ptr_proc_list; + while (proc) { + if (proc->pid == pid) return proc; + proc = proc->next; + } + #else + (void)pid; + #endif + return NULL; +} +static const char *procfs_state_str(u64 state) { + // same as ulime procs + switch (state) { + case PROC_CREATED: return "CREATED"; + case PROC_READY: return "READY"; + case PROC_RUNNING: return "RUNNING"; + case PROC_BLOCKED: return "BLOCKED"; + case PROC_ZOMBIE: return "ZOMBIE"; + default: return "UNKNOWN"; + } +} +static char *procfs_gen_status(ulime_proc_t *proc, u64 *out_len) +{ + char *buf = (char *)klime_create((klime_t *)fs_klime, 256); + char tmp[32]; + if (!buf) return NULL; + + str_copy(buf, "name: "); + str_append(buf,(char *)proc->name); + str_append(buf,"\n"); + str_append(buf,"pid: "); + tmp[0] = '\0'; + str_append_uint(tmp, (u32)proc->pid); + str_append(buf, tmp); + str_append(buf, "\n"); + str_append(buf,"state: "); + str_append(buf,procfs_state_str(proc->state)); + str_append(buf,"\n"); + str_append(buf,"priority: "); + tmp[0] = '\0'; + str_append_uint(tmp, (u32)proc->priority); + str_append(buf,tmp); + str_append(buf,"\n"); + + *out_len = (u64)str_len(buf); + return buf; +} +static char *procfs_gen_maps(ulime_proc_t *proc, u64 *out_len) +{ + char *buf = (char *)klime_create((klime_t *)fs_klime, 256); + char tmp[32]; + if (!buf) return NULL; + + str_copy(buf, "heap: 0x"); + str_from_hex(tmp, proc->heap_base); + str_append(buf,tmp); + str_append(buf," size: "); + tmp[0] = '\0'; + str_append_uint(tmp, (u32)proc->heap_size); + str_append(buf,tmp); + str_append(buf,"\n"); + str_append(buf,"stack: 0x"); + str_from_hex(tmp, proc->stack_base); + str_append(buf, tmp); + str_append(buf," size: "); + tmp[0] = '\0'; + str_append_uint(tmp, (u32)proc->stack_size); + str_append(buf,tmp); + str_append(buf,"\n"); + + *out_len = (u64)str_len(buf); + return buf; +} +static fs_node *procfs_mknode(const char *name, u8 type, u64 pid, u8 kind) +{ + fs_node *node = fs_mknode(name, type); + if (!node) return NULL; + + procfs_data *data = (procfs_data *)klime_create((klime_t *)fs_klime, sizeof(procfs_data)); + if (!data) return NULL; + + data->pid = pid; + data->kind = kind; + data->buf = NULL; + data->len = 0; + + node->priv = data; + return node; +} + +// ops + + +static int procfs_open(fs_node *node, fs_file *file) +{ + procfs_data *data = (procfs_data *)node->priv; + if (!data) return -1; + + (void)file; + + // generate content for file nodes on open + if (data->kind == PROCFS_KIND_STATUS || data->kind == PROCFS_KIND_MAPS) { + #if ENABLE_ULIME // why did i just make this enable_ulime... + // the problem it would take days to remove it its toooo deep in the system... + ulime_proc_t *proc = procfs_find_pid(data->pid); + if (!proc) return -1; + + if (data->kind == PROCFS_KIND_STATUS) { + data->buf = procfs_gen_status(proc, &data->len); + } else { + data->buf = procfs_gen_maps(proc, &data->len); + } + + if (!data->buf) return -1; + #else + data->buf = (char *)klime_create((klime_t *)fs_klime, 32); + if (!data->buf) return -1; + str_copy(data->buf, "ulime disabled\n"); + data->len = (u64)str_len(data->buf); + #endif + } + + return 0; +} + +static int procfs_close(fs_file *file) {(void)file; return 0;} + +static ssize_t procfs_read(fs_file *file, void *buf, size_t cnt) +{ + fs_node *node = file->node; + procfs_data *data = (procfs_data *)node->priv; + + // if dirs are not readable + if (!data || data->kind == PROCFS_KIND_ROOT || data->kind == PROCFS_KIND_DIR) return -1; + if (!data->buf) return 0; + + // eof + if (file->pos >= data->len) return 0; + + size_t to_read = cnt; + if (file->pos + to_read > data->len) { + to_read = data->len - file->pos; + } + + memcpy(buf, data->buf + file->pos, to_read); + file->pos += to_read; + + return (ssize_t)to_read; +} +static ssize_t procfs_write(fs_file *file, const void *buf, size_t cnt) { + { + (void)file;(void)buf;(void)cnt; + } + return -1; +} +static fs_node *procfs_lookup(fs_node *dir, const char *name) +{ + if (dir->type != FS_DIR) return NULL; + + procfs_data *data = (procfs_data *)dir->priv; + if (!data) return NULL; + + if (data->kind == PROCFS_KIND_ROOT) { + // /proc/ lookup - name must be a decimal pid + u64 pid = procfs_atopid(name); + if (pid == 0) return NULL; + + // check the process actually exists + if (!procfs_find_pid(pid)) return NULL; + + // build pid dir node + fs_node *piddir = procfs_mknode(name, FS_DIR, pid, PROCFS_KIND_DIR); + if (!piddir) return NULL; + + piddir->ops = dir->ops; + return piddir; + } + + if (data->kind == PROCFS_KIND_DIR) + { + // /proc//status or /proc//maps + u8 kind = 0; + if (str_equals(name, STATUS_MSG)) { + kind = PROCFS_KIND_STATUS; + } else if (str_equals(name, MAPS_MSG)) { + kind = PROCFS_KIND_MAPS; + } else { + return NULL; + } + + fs_node *fnode = procfs_mknode(name, FS_FILE, data->pid, kind); + if (!fnode) return NULL; + + fnode->ops = dir->ops; + return fnode; + } + + return NULL; +} + +static fs_ops procfs_ops = { + .open = procfs_open, + .close = procfs_close, + .read = procfs_read, + .write = procfs_write, + .lookup = procfs_lookup, + .create = NULL, + .mkdir = NULL, +}; + +// +// mount +// + +static int procfs_mount(const char *src, const char *tgt, fs_mnt *mnt) { + { + (void)src;(void)tgt; + } + + fs_node *root = procfs_mknode("proc", FS_DIR, 0, PROCFS_KIND_ROOT); + if (!root) return -1; + + root->ops = &procfs_ops; + mnt->root = root; + procfs_root = root; + + return 0; +} + +static fs_type procfs = { + .name = "procfs", + .mount = procfs_mount, + .ops = &procfs_ops, +}; + +// register procfs type +void procfs_register(void) { + fs_register(&procfs); +} \ No newline at end of file diff --git a/src/kernel/file_systems/vfs/procfs/procfs.h b/src/kernel/file_systems/vfs/procfs/procfs.h new file mode 100644 index 0000000..ae061be --- /dev/null +++ b/src/kernel/file_systems/vfs/procfs/procfs.h @@ -0,0 +1,22 @@ +#ifndef PROCFS_H +#define PROCFS_H + +#include + +// node kinds stored in procfs_data.kind +#define PROCFS_KIND_ROOT 0 // /proc itself +#define PROCFS_KIND_DIR 1 // /proc/ +#define PROCFS_KIND_STATUS 2 // /proc//status +#define PROCFS_KIND_MAPS 3 // /proc//maps + +// stored in node->priv for every procfs node +typedef struct { + u64 pid; + u8 kind; + char *buf; + u64 len; +} procfs_data; + +//void procfs_register(void); + +#endif \ No newline at end of file diff --git a/src/kernel/file_systems/vfs/vfs.h b/src/kernel/file_systems/vfs/vfs.h index 025251e..0179f9c 100644 --- a/src/kernel/file_systems/vfs/vfs.h +++ b/src/kernel/file_systems/vfs/vfs.h @@ -147,4 +147,6 @@ typedef struct { void devfs_register(void); int devfs_register_device(driver_module *mod); +void procfs_register(void); + #endif diff --git a/src/kernel/file_systems/vfs/vfs_init.c b/src/kernel/file_systems/vfs/vfs_init.c index 0fed55c..d404621 100644 --- a/src/kernel/file_systems/vfs/vfs_init.c +++ b/src/kernel/file_systems/vfs/vfs_init.c @@ -130,12 +130,14 @@ void fs_system_init(void *klime) // register fs types tmpfs_register(); devfs_register(); + procfs_register(); log("[FS]", "mounting roots: \n", white()); - // mount root as tmpfs - fs_mount(NULL, ROOT_MOUNT_DEFAULT, ROOTFS); // in future its just root so for (fat32,ext2,...) - //fs_mount(NULL, "/", "/"); // or root + // mount file systems + fs_mount(NULL, ROOT_MOUNT_DEFAULT, ROOTFS); + fs_mount(NULL, DEV_MOUNT_DEFAULT, DEVFS); + fs_mount(NULL, PROC_MOUNT_DEFAULT, PROCFS); initvfs(); @@ -146,8 +148,6 @@ void fs_system_init(void *klime) panic("Cannot open [logs]"); } BOOTUP_PRINT("\n", white()); - // mount devfs at /dev - fs_mount(NULL, DEV_MOUNT_DEFAULT, DEVFS); //last thing for init is loading all limine modules load_limine_module(); // logo diff --git a/src/kernel/inits/fs/init.c b/src/kernel/inits/fs/init.c index 7e9ae7f..8ec3500 100644 --- a/src/kernel/inits/fs/init.c +++ b/src/kernel/inits/fs/init.c @@ -19,4 +19,7 @@ void initvfs(void){ //fs_mkdir(EMDRV_DIRECTORY); //fs_mkdir(CONF_DIRECTORY); + fs_mkdir(PROC_DIRECTORY); + + //initrd.cpio.... } diff --git a/src/kernel/inits/fs/init.h b/src/kernel/inits/fs/init.h index cdd0681..77c30e4 100644 --- a/src/kernel/inits/fs/init.h +++ b/src/kernel/inits/fs/init.h @@ -45,8 +45,12 @@ void initvfs(void); #define LOGO_DIRECTORY BOOT_DIRECTORY UI_DIRECTORY AST_DIRECTORY #define LOGO_NAME LOGO_DIRECTORY "/bootlogo.bin" +#define PROCFS "procfs" +#define PROC_MOUNT_DEFAULT "/proc" +#define PROC_DIRECTORY "/proc" + static inline void init_early_boot_log(void) { extern int init_boot_log; - init_boot_log = -1; // Noch nicht bereit + init_boot_log = -1; } diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index d38b333..02d7b1a 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -30,6 +30,14 @@ #include #endif +//Devices +#include +#include +#include +#include +#include +#include + // usermode stuff #include @@ -301,11 +309,18 @@ void _start(void) module_ss: module_init(); { // Register driver modules log("[MOD]", "Init regs:\n", d); - module_register(&console_module); - module_register(&keyboard_module); + #if ENABLE_ATA module_register(&ata_module); #endif + module_register(&console_module); + //module_register(&keyboard_module); + module_register(&null_module); + module_register(&zero_module); + module_register(&fb0_module); + module_register(&kbd_dev_module); + module_register(&mouse0_module); + log("[MOD]", "found ", d); int count = module_get_count(); str_append_uint(buf, count); @@ -332,12 +347,16 @@ void _start(void) #if HARDWARE_SC == 1 // let the cpu rest a small time for (volatile int i = 0; i < 1000000; i++) { - nop(); + __asm__ volatile("nop"); } #endif } //hcf(); + for (volatile int i = 0; i < 100000; i++) { + __asm__ volatile("nop"); + } + //extern void kproc(void); genprocs(); proc_list_procs(proc_mgr); diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index a887260..b071551 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -17,7 +17,7 @@ #include // read syscall -#include +#include static ulime_t *g_ulime = NULL; @@ -27,6 +27,8 @@ extern ulime_t *ulime; #endif #define SCWRITE 0xFFFFFFFF +#define KEYBOARD0 KBDPATH +#define MOUSE0 MS0PATH extern char cwd[]; @@ -129,6 +131,9 @@ static void ansi_write_char(char c) { // syscall handlers u64 scall_write(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { + //TODO: + // implement /dev/tty0 and the write commands just writes to it + // and the shell reads from /dev/tty0 (void)proc; if (fd != 1 && fd != 2) return (u64)-1; @@ -339,61 +344,70 @@ u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { //(void)buf; //(void)count; - // only stdin supported + // only stdin (fd 0) supported if (fd != 0) return (u64)-1; if (buf == 0 || count == 0) return 0; - // file descriptor 0 = stdin tp keyboard input - if (fd == 0) { - char *out = (char *)buf; - u64 i = 0; + char *out = (char *)buf; + u64 i = 0; - // reenable interrupts - sti(); - - while (i < count - 1) { - // TODO: - // use semaphores or spinlocks NOT busywaits - while (!keyboard_has_key()) { - halt(); - } + // lazy-open KEYBOARD0 (/dev/input/keyboard0) once for the lifetime of the kernel + static int kbd_fd = -1; + if (kbd_fd < 0) { + kbd_fd = fs_open(KEYBOARD0, O_RDONLY); + if (kbd_fd < 0) { + printf("[SYSCALL] read: cannot open " KEYBOARD0 "\n"); + return (u64)-1; + } + } - key_event_t event; - if (!keyboard_get_event(&event)) continue; - if (!event.pressed) continue; + // reenable interrupts + __asm__ volatile("sti"); - char c = (char)(event.keycode & 0xFF); + while (i < count - 1) { + key_event_t event; + int got = 0; - if (c == '\n' || c == '\r') { - char nl[2] = {'\n', '\0'}; - cprintf(nl, SCWRITE); - out[i++] = '\n'; - break; - } - if (c == '\b') { - if (i > 0) { - i--; - cprintf("\b", SCWRITE); - } - continue; + while (!got) { + __asm__ volatile("hlt"); + int n = fs_read(kbd_fd, &event, sizeof(key_event_t)); + if (n == (int)sizeof(key_event_t)) { + got = 1; } + } - if (c < 0x20 || c > 0x7E) continue; + // skip release events + if (!event.pressed) continue; - char echo[2] = {c, '\0'}; - cprintf(echo, SCWRITE); - out[i++] = c; + char c = (char)(event.keycode & 0xFF); + + if (c == '\n' || c == '\r') { + char nl[2] = {'\n', '\0'}; + cprintf(nl, SCWRITE); + out[i++] = '\n'; + break; + } + + if (c == '\b') { + if (i > 0) { + i--; + cprintf("\b", SCWRITE); + } + continue; } - // i think this is slow........ this read syscall :( - cli(); + if (c < 0x20 || c > 0x7E) continue; - out[i] = '\0'; - return i; + char echo[2] = {c, '\0'}; + cprintf(echo, SCWRITE); + out[i++] = c; } - ssize_t r = fs_read((int)fd, (void *)buf, (size_t)count); - return (r < 0) ? (u64)-1 : (u64)r; + // i think this is slow........ this read syscall :( + __asm__ volatile("cli"); + + out[i] = '\0'; + return i; } u64 scall_getpid(ulime_proc_t *proc, u64 arg1, u64 arg2, u64 arg3) { diff --git a/src/userspace/libc/Makefile b/src/userspace/libc/Makefile index 6730091..d26821f 100644 --- a/src/userspace/libc/Makefile +++ b/src/userspace/libc/Makefile @@ -8,7 +8,7 @@ CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ -I$(INC) -Isrc -SRCS := src/errno.c src/string.c src/stdlib.c src/unistd.c src/fcntl.c src/stdio.c src/dirent.c +SRCS := src/errno.c src/string.c src/stdlib.c src/unistd.c src/fcntl.c src/stdio.c src/dirent.c src/ioctl.c OBJS := $(patsubst src/%.c, $(BLD)/%.o, $(SRCS)) all: $(BLD)/libc.a $(BLD)/crt0.o diff --git a/src/userspace/libc/include/stdio.h b/src/userspace/libc/include/stdio.h index 3352c6b..76e3e69 100644 --- a/src/userspace/libc/include/stdio.h +++ b/src/userspace/libc/include/stdio.h @@ -22,7 +22,7 @@ extern FILE *stderr; FILE *fopen(const char *path, const char *mode); -int fclos(FILE *f); +int fclose(FILE *f); size_t fread(void *buf, size_t sz, size_t n, FILE *f); size_t fwrite(const void *buf, size_t sz, size_t n, FILE *f); char *fgets(char *buf, int n, FILE *f); @@ -33,7 +33,7 @@ int ferror(FILE *f); int fprintf(FILE *f, const char *fmt, ...); int vfprintf(FILE *f, const char *fmt, va_list ap); -int puts (const char *s); +int puts(const char *s); int putchar(int c); int printf(const char *fmt, ...); diff --git a/src/userspace/libc/include/sys/ioctl.h b/src/userspace/libc/include/sys/ioctl.h new file mode 100644 index 0000000..78399af --- /dev/null +++ b/src/userspace/libc/include/sys/ioctl.h @@ -0,0 +1,42 @@ +#pragma once +#include + +// ioctl request codes for /dev/fb0 +#define FBIOGET_VSCREENINFO 0x4600 +#define FBIOPUT_VSCREENINFO 0x4601 +#define FBIOGET_FSCREENINFO 0x4602 +//#define FBPITCH + + + +typedef struct { + unsigned int xres; + unsigned int yres; + unsigned int xres_virtual; + unsigned int yres_virtual; + unsigned int xoffset; + unsigned int yoffset; + unsigned int bits_per_pixel; + unsigned int grayscale; + unsigned int red_offset; + unsigned int red_length; + unsigned int green_offset; + unsigned int green_length; + unsigned int blue_offset; + unsigned int blue_length; + unsigned int transp_offset; + unsigned int transp_length; +} fb_var_screeninfo; +typedef struct { + char id[16]; + unsigned long smem_start; // physical address of framebuffer + unsigned int smem_len; // size in bytes + unsigned int type; + unsigned int visual; + unsigned int line_length; // pitch +} fb_fix_screeninfo; + +// return: +// 0 == success +// -1 == error +int ioctl(int fd, int request, void *arg); \ No newline at end of file diff --git a/src/userspace/libc/include/unistd.h b/src/userspace/libc/include/unistd.h index c57e268..9f7f9c9 100644 --- a/src/userspace/libc/include/unistd.h +++ b/src/userspace/libc/include/unistd.h @@ -6,8 +6,8 @@ // i/o -ssize_t read (int fd, void *buf, size_t n); -ssize_t write (int fd, const void *buf, size_t n); +ssize_t read(int fd, void *buf, size_t n); +ssize_t write(int fd, const void *buf, size_t n); // filesystem int chdir (const char *path); diff --git a/src/userspace/libc/src/_syscall.h b/src/userspace/libc/src/_syscall.h index e7d9007..91a65ae 100644 --- a/src/userspace/libc/src/_syscall.h +++ b/src/userspace/libc/src/_syscall.h @@ -14,6 +14,7 @@ #define _SCAL_CHDIR 80 #define _SCAL_MKDIR 83 #define _SCAL_UNLINK 87 // (delete file) +#define _SCAL_IOCTL 16 static inline long _sc1(long n, long a1) { diff --git a/src/userspace/libc/src/ioctl.c b/src/userspace/libc/src/ioctl.c new file mode 100644 index 0000000..583d5f4 --- /dev/null +++ b/src/userspace/libc/src/ioctl.c @@ -0,0 +1,16 @@ +#include +#include "_syscall.h" + +// +//#define SYS_IOCTL 16 + +int ioctl(int fd, int request, void *arg) { + long ret; + __asm__ volatile ( + "syscall" + : "=a"(ret) + : "0"(_SCAL_IOCTL), "D"((long)fd), "S"((long)request), "d"((long)arg) + : "rcx", "r11", "memory" + ); + return (int)ret; +} \ No newline at end of file From e2ba8c88bf6bf9fea6460cab72fcadfb1b5d9e5c Mon Sep 17 00:00:00 2001 From: emexos Date: Mon, 2 Mar 2026 18:49:44 +0100 Subject: [PATCH 29/41] implemented a tty and urandom/random, moved fb0 + tty0 from ioctl to emx/ librarys --- dsk/initrd.cpio | Bin 329728 -> 332288 bytes dsk/rd/bin/cat.elf | Bin 16672 -> 11512 bytes dsk/rd/emr/system/login.elf | Bin 10408 -> 16720 bytes logo.txt | 20 +- shared/config/system.h | 7 + src/drivers/drivers.h | 31 +-- src/kernel/console/graph/dos.c | 2 +- src/kernel/devices/devices.h | 48 +++++ src/kernel/devices/fb0/fb0.c | 49 +++-- src/kernel/devices/fb0/fb0.h | 10 +- src/kernel/devices/random/random.c | 29 +++ src/kernel/devices/random/random.h | 9 + src/kernel/devices/random/urandom.c | 96 +++++++++ src/kernel/devices/random/urandom.h | 14 ++ src/kernel/devices/tty/tty0.c | 189 ++++++++++++++++++ src/kernel/devices/tty/tty0.h | 22 ++ src/kernel/kernel.c | 7 +- src/kernel/user/syscalls.c | 175 ++++++++-------- src/userspace/apps/login/login.c | 64 ++++-- src/userspace/apps/login/login.elf | Bin 10408 -> 16720 bytes src/userspace/apps/login/login.o | Bin 2792 -> 3208 bytes src/userspace/apps/system/init.c | 5 +- src/userspace/bin/cat/cat.c | 98 ++++++--- src/userspace/bin/cat/cat.elf | Bin 16672 -> 11512 bytes src/userspace/bin/cat/cat.o | Bin 2808 -> 3736 bytes .../libc/include/emx/{stdclr.h => ansi.h} | 8 +- src/userspace/libc/include/emx/fb.h | 34 ++++ src/userspace/libc/include/emx/sinfo.h | 27 +++ src/userspace/libc/include/emx/tty.h | 7 + src/userspace/libc/include/sys/ioctl.h | 37 +--- 30 files changed, 762 insertions(+), 226 deletions(-) create mode 100644 src/kernel/devices/devices.h create mode 100644 src/kernel/devices/random/random.c create mode 100644 src/kernel/devices/random/random.h create mode 100644 src/kernel/devices/random/urandom.c create mode 100644 src/kernel/devices/random/urandom.h create mode 100644 src/kernel/devices/tty/tty0.c create mode 100644 src/kernel/devices/tty/tty0.h rename src/userspace/libc/include/emx/{stdclr.h => ansi.h} (85%) create mode 100644 src/userspace/libc/include/emx/fb.h create mode 100644 src/userspace/libc/include/emx/sinfo.h create mode 100644 src/userspace/libc/include/emx/tty.h diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index debf655bc7b8049ef03b53975d85a45e841479c9..c3758d4f4f66dd752da288cb0f98241e4a84f050 100644 GIT binary patch delta 8491 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 TCsN&N6uSkepMSU8+;i%G!JYsF diff --git a/dsk/rd/bin/cat.elf b/dsk/rd/bin/cat.elf index b1db53a6ce7e1db9ed732bf63aa1fd45b704748a..839eb8775f75737b0593d23c1fa501194bb14ecc 100755 GIT binary patch delta 3185 zcmZ{meN0tl9LJvvTzS>~ff)(haY) zPS-ni$C_m?n6tUHRZ5m)ftblvhfWu3%xI&9?h;nyYO#gV_jk?@6vAhF&hwnl@BMk6 z^W59G$23@QU|wQYiWqHnktIyRF2cp6gL#id#aRu>LhH%x$1G9)5FunW5Ohz`5@WB2 zoQ!MwHFlcG6Dx$;(*4KquzI=+&;CtvKpG^&{%2*MG$5x)gR7eX?I|vQg9~0th zAYEC#Bdb^8a)X6jOF`LN7ZjfGGs9^8D_|3pO|T=|Y-wQk=d#~V9()ZHuUR0p?9m+r zr|1p_;9x*l_V0xK8Oq_(`FvTuDc9e&BYCx@<1Pg~-G(6`4Uqzp9iTBF-8P1x31c70 zymhyQvVd|pEc>k&NG$sr$W}I8lYNx%KtS^7c6}EieYmRSE3quMCiUS8vbW6yrM+!6 zk;sHn=&yaaw&8A$uHczCH~6Fc`ZK+CL$f>+N2Yy{hWu+yYW|Syi$j^}p$pgU4G(*z zpb5^i8)&^O`~C(BNWGL*KRwv>RFrq18<3wBCyM zjF?UbJVUT=7oJFz=BQrO%=byXYWrEdir{MG!lwTXmCGKRDHppj3Xs<7xxh`}B)+ERQ^Pk}`Ml(FsV+PG0Kv|Ur z`={dNdwMb4UZkndd=A5Xw@u;Nz~Y&6wNaP|l?KwpcOa_?J27p?%0?sF_Hb=UMrPO= zgwZN8)@$FyC*@tiS*Bv9wNf5uv9uz16t|76nop64zDaMJMfUa#Ag3UlA0dqNWM9I8 zNt)IA#3SV(WT;osZ-EVT&Fet5#`Gku!n!!*&Y z#`t9Iy~H%_PR5FmPlfhmX5RYkORRboX zgf0_f#8G&4JBy0bcDPFwr_JehyWCL+>uuWFC7B5!_@)QxM*-~=SHk<#g4UlhP_RWGk6+%Tg`kK z^GxPz$K-Hh>crkmIO$|C;%y^Yc{YPgMUK-W4CzWzK`TKgj_tG4`!RZ;xzLI4=bUL> zs43`isB|7z8m3brc48#`%dDTw++%Q$NZ@owewp83gR5L*0vq_5PvL}KVSb2t8ZZ5E z=0}(}PB99gi-p=zbV}$mog(k!RuJi#k^`<;GdYAxd4szZ!+J+ z2~kXHzoC05z-td?1o#&^@!7m|1$d`6giib&PG}~tTqs831>r`b`*dv~qL}|OZYwR! z(;|h(PP$$;NMym6F@~cTnNuJNVBr9(m_N?^!w^Hi3csM#7BD{*Y48^eEYg{Ozy;^% z>knZr3w&Jh$f3((UN-Ku=P)1S%4TqYmCSE)q8ZFrF<->r;7iPR(OytxO&lPR1#8&g zFz@9u=Ifakj@z=AnZLyWR|Qys#s*>Ym6m=|s>7S)Qow6X-WP;r%M zDLL~jTOE~3IRGxnN>{2wJD!uerovg_sHzneMdjr#hbY?Oaw}x1xXNj8JGQyuTbJn< zEJ64ej%~%IZc$jR6dC%!g05jLJ2!h3UW#j~1YB1;6}T>~)XgfYM2S;z>?jsRimOx< zI$tf-W0gBA1>N+z65>^qk#9%2tJUIuIq=Is4Mc KaK6D($@hQFY#+7& literal 16672 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�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 Z0~9@FuUIR`?*Ct()1AZ&0f+Mb{|g~tazFq8 diff --git a/dsk/rd/emr/system/login.elf b/dsk/rd/emr/system/login.elf index 342a9397aeb9e0f141597b81096b41bf5ce527a9..0f9390d79da33b10421e9fb866ba9ace766cf0da 100755 GIT binary patch literal 16720 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 EFK~D%iU0rr diff --git a/logo.txt b/logo.txt index 132c667..7b9e168 100644 --- a/logo.txt +++ b/logo.txt @@ -1,13 +1,13 @@ - ###########;m; ###########;m; - # ####### #;m; # ###########;m; - ##########;m; #; ###; #####;m; ##########;m; ###;m; ###;m; # #;m; # #;m; # #;m; - # ######## #;m; ## ## #;# ## #;m; # ######## #;m; # #;m; # #;m; # #;m; # #;m; # #;m; -# #;m; # #;m; # #; # # #; # #;m; # #;m; # #;m; # #;m;# #;m; # #;m; # #;m; # #########;m; -# ######## #;m; # #; # #; # #;m; # ######## #;m; # ### #;m; # #;m; # #;m; ######### #;m; -# ##########;m; # #; # #; # #;m; # ##########;m; # ### #;m; # #;m; # #;m; # #;m; -# #;m; # #; # #; # #;m; # #;m; # #;m;# #;m; # #;m; # #;m; # #;m; - # ########## #;m; # #; # #; # #;m; # ########## #;m; # #;m; # #;m; # ####### #;m; ########### #;m; - ###########;m; # #; # #; # #;m; ###########;m; ###;m; ###;m; ###########;m; ##########;m; + ###########;m; ###########;m; + # ####### #;m; # ###########;m; + ##########;m; #; ###; #####;m; ##########;m; ###;m; ###;m; # #;m; # #;m; # #;m; + # ######## #;m; ## ## #;# ## #;m; # ######## #;m; # #;m; # #;m; # #;m; # #;m; # #;m; + # #;m; # #;m; # #; # # #; # #;m; # #;m; # #;m; # #;m;# #;m; # #;m; # #;m; # #########;m; + # ######## #;m; # #; # #; # #;m; # ######## #;m; # ### #;m; # #;m; # #;m; ######### #;m; + # ##########;m; # #; # #; # #;m; # ##########;m; # ### #;m; # #;m; # #;m; # #;m; + # #;m; # #; # #; # #;m; # #;m; # #;m;# #;m; # #;m; # #;m; # #;m; + # ########## #;m; # #; # #; # #;m; # ########## #;m; # #;m; # #;m; # ####### #;m; ########### #;m; + ###########;m; # #; # #; # #;m; ###########;m; ###;m; ###;m; ###########;m; ##########;m; ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬───────────┐ │ esc │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ f11 │ f12 │ power │ diff --git a/shared/config/system.h b/shared/config/system.h index f2d67e2..fb05fcb 100644 --- a/shared/config/system.h +++ b/shared/config/system.h @@ -47,3 +47,10 @@ #define X64 1 #define RISCV 0 #define ARM64 0 + +#define EMEX "emex" +#define EMEX1 "EMEX" +#define EMEX2 "[emex]" +#define EMEX3 "[EMEX]" +#define EMEX4 "emx" +#define EMX EMEX4 \ No newline at end of file diff --git a/src/drivers/drivers.h b/src/drivers/drivers.h index 66ab966..a427b45 100644 --- a/src/drivers/drivers.h +++ b/src/drivers/drivers.h @@ -6,31 +6,12 @@ //#include //#include -#include +//#include +//#include -//ddir == dev dir +//#include +//#include -#define ATANAME "dev_atahdd0" -#define ATAPATH "/dev/hdd0" -#define ATAUNIVERSAL VERSION_NUM(0, 1, 2, 0) +#include -#define KBDNAME "dev_ps2_keyboard0" -#define KBDPATH "/dev/input/keyboard0" -#define KBDUNIVERSAL VERSION_NUM(0, 3, 1, 0) - -#define MS0NAME "dev_ps2_mouse0" -#define MS0PATH "/dev/input/mouse0" -#define MS0UNIVERSAL VERSION_NUM(0, 0, 0, 0) - -#define EFBNAME FBN -#define FB0NAME "dev_fb0" -#define FB0PATH "/dev/fb0" -#define FB0UNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 - -#define ZERNAME "dev_zero" -#define ZERPATH "/dev/zero" -#define ZERUNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 - -#define NULNAME "dev_null" -#define NULPATH "/dev/null" -#define NULUNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 \ No newline at end of file +//ddir == dev dir \ No newline at end of file diff --git a/src/kernel/console/graph/dos.c b/src/kernel/console/graph/dos.c index 8d0ecdc..b08337d 100644 --- a/src/kernel/console/graph/dos.c +++ b/src/kernel/console/graph/dos.c @@ -60,7 +60,7 @@ void console_window_check_scroll(void) for (u32 y = fb_h - line_height; y < fb_h; y++) { u32 *row = fb + y * pitch_dwords; for (u32 x = 0; x < fb_w; x++) { - row[x] = CONSOLESCREEN_BG_COLOR; + row[x] = black();; } } diff --git a/src/kernel/devices/devices.h b/src/kernel/devices/devices.h new file mode 100644 index 0000000..1205fa5 --- /dev/null +++ b/src/kernel/devices/devices.h @@ -0,0 +1,48 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ATANAME "dev_atahdd0" +#define ATAPATH "/dev/hdd0" +#define ATAUNIVERSAL VERSION_NUM(0, 1, 2, 0) + +#define KBDNAME "dev_ps2_keyboard0" +#define KBDPATH "/dev/input/keyboard0" +#define KBDUNIVERSAL VERSION_NUM(0, 3, 1, 0) + +#define MS0NAME "dev_ps2_mouse0" +#define MS0PATH "/dev/input/mouse0" +#define MS0UNIVERSAL VERSION_NUM(0, 0, 0, 0) + +#define EFBNAME FBN +#define FB0NAME "dev_fb0" +#define FB0PATH "/dev/fb0" +#define FB0UNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 + +#define ZERNAME "dev_zero" +#define ZERPATH "/dev/zero" +#define ZERUNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 + +#define NULNAME "dev_null" +#define NULPATH "/dev/null" +#define NULUNIVERSAL VERSION_NUM(0, 0, 0, 0) // always 0.0.0.0 + +#define TTY0NAME "dev_tty0" +#define TTY0PATH "/dev/tty0" +#define TTY0UNIVERSAL VERSION_NUM(0, 0, 1, 2) + +#define URNDNAME "dev_urandom" +#define URNDPATH "/dev/urandom" +#define URNDUNIVERSAL VERSION_NUM(0, 0, 1, 0) + +#define RNDNAME "dev_random" +#define RNDPATH "/dev/random" +#define RNDUNIVERSAL VERSION_NUM(0, 0, 1, 0) \ No newline at end of file diff --git a/src/kernel/devices/fb0/fb0.c b/src/kernel/devices/fb0/fb0.c index d9bb6ec..0a3d773 100644 --- a/src/kernel/devices/fb0/fb0.c +++ b/src/kernel/devices/fb0/fb0.c @@ -9,6 +9,9 @@ #include +static size_t fb_write_pos = 0; +static size_t fb_read_pos = 0; + static int fb0_mod_init(void) { log("[FB0]", "init /dev/fb0\n", d); return 0; @@ -18,37 +21,50 @@ static void fb0_mod_fini(void) {} static void *fb0_open(const char *path) { (void)path; - return (void *)1; // dummy handle + fb_write_pos = 0; + fb_read_pos = 0; + return (void *)1; } static int fb0_read(void *handle, void *buf, size_t count) { (void)handle; u32 *fb = get_framebuffer(); - u32 w = get_fb_width(); - u32 h = get_fb_height(); u32 pitch = get_fb_pitch(); + u32 h = get_fb_height(); if (!fb) return -1; size_t fb_size = (size_t)pitch * h; - if (count > fb_size) count = fb_size; - memcpy(buf, (u8 *)fb, count); + // EOF + if (fb_read_pos >= fb_size) return 0; + + size_t remaining = fb_size - fb_read_pos; + if (count > remaining) count = remaining; + + memcpy(buf, (u8 *)fb + fb_read_pos, count); + fb_read_pos += count; return (int)count; } static int fb0_write(void *handle, const void *buf, size_t count) { (void)handle; - u32 *fb = get_framebuffer(); - u32 pitch = get_fb_pitch(); - u32 h = get_fb_height(); + u32 *fb = get_framebuffer(); + u32 pitch = get_fb_pitch(); + u32 h = get_fb_height(); if (!fb) return -1; size_t fb_size = (size_t)pitch * h; - if (count > fb_size) count = fb_size; - memcpy((u8 *)fb, buf, count); + // wrap around if we're on end + if (fb_write_pos >= fb_size) fb_write_pos = 0; + + size_t remaining = fb_size - fb_write_pos; + if (count > remaining) count = remaining; + + memcpy((u8 *)fb + fb_write_pos, buf, count); + fb_write_pos += count; return (int)count; } @@ -71,15 +87,10 @@ int fb0_ioctl(int request, void *arg) { info->yoffset = 0; info->bits_per_pixel = 32; info->grayscale = 0; - // ARGB8888: blue at 0, green at 8, red at 16 - info->blue_offset = 0; - info->blue_length = 8; - info->green_offset = 8; - info->green_length = 8; - info->red_offset = 16; - info->red_length = 8; - info->transp_offset = 24; - info->transp_length = 8; + info->blue_offset = 0; info->blue_length = 8; + info->green_offset = 8; info->green_length = 8; + info->red_offset = 16; info->red_length = 8; + info->transp_offset = 24; info->transp_length = 8; return 0; } case FBIOGET_FSCREENINFO: { diff --git a/src/kernel/devices/fb0/fb0.h b/src/kernel/devices/fb0/fb0.h index 2d557bb..3ea6a23 100644 --- a/src/kernel/devices/fb0/fb0.h +++ b/src/kernel/devices/fb0/fb0.h @@ -4,7 +4,9 @@ #include #include -#define FBN "emexfb0" +#include + +#define FBN EMEX "fb0" // fb_var_screeninfo typedef struct { @@ -35,9 +37,9 @@ typedef struct { } fb_fix_screeninfo_t; // /dev/fb0 request codes -#define FBIOGET_VSCREENINFO 0x4600 -#define FBIOPUT_VSCREENINFO 0x4601 -#define FBIOGET_FSCREENINFO 0x4602 +#define FBIOGET_VSCREENINFO 0x4600 +#define FBIOPUT_VSCREENINFO 0x4601 +#define FBIOGET_FSCREENINFO 0x4602 // /dev/fb0 module extern driver_module fb0_module; diff --git a/src/kernel/devices/random/random.c b/src/kernel/devices/random/random.c new file mode 100644 index 0000000..60564b0 --- /dev/null +++ b/src/kernel/devices/random/random.c @@ -0,0 +1,29 @@ +#include "random.h" +#include "urandom.h" +#include +#include +#include +#include + +// +// for now random is just a alias from urandom +// cuz a real random would be way harder +// + +static int random_init(void) { + log("[RAND]", "init /dev/random (alias of urandom)\n", d); + return 0; +} + +static void random_fini(void) {} + +driver_module random_module = { + .name = RNDNAME, + .mount = RNDPATH, + .version = RNDUNIVERSAL, + .init = random_init, + .fini = random_fini, + .open = urandom_open_fn, + .read = urandom_read_fn, + .write = urandom_write_fn, +}; \ No newline at end of file diff --git a/src/kernel/devices/random/random.h b/src/kernel/devices/random/random.h new file mode 100644 index 0000000..467e8c7 --- /dev/null +++ b/src/kernel/devices/random/random.h @@ -0,0 +1,9 @@ +#ifndef DEVICE_RANDOM_H +#define DEVICE_RANDOM_H + +#include + +// /dev/random +extern driver_module random_module; + +#endif \ No newline at end of file diff --git a/src/kernel/devices/random/urandom.c b/src/kernel/devices/random/urandom.c new file mode 100644 index 0000000..f9fd262 --- /dev/null +++ b/src/kernel/devices/random/urandom.c @@ -0,0 +1,96 @@ +#include "urandom.h" + +#include +#include +#include +#include +#include + +// +// Xorshift64 PRNG +// + +static u64 xr_state = 0; // 0 means "not seeded yet" + +static inline u64 rdtsc(void) { + u32 lo, hi; + __asm__ volatile("rdtsc" : "=a"(lo), "=d"(hi)); + return ((u64)hi << 32) | lo; +} + +static u64 xorshift64(void) { + //https://en.wikipedia.org/wiki/Xorshift + // https://github.com/jj1bdx/xorshiftplus-c/blob/master/xorshift64star.c + if (xr_state == 0) { + xr_state = rdtsc(); + if (xr_state == 0) xr_state = 0xDEADBEEFCAFEBABEULL; // fallback + } + u64 x = xr_state; + x ^= x << 13; + x ^= x >> 7; + x ^= x << 17; + xr_state = x; + return x; +} + +static int urandom_init(void) { + log("[URND]", "init /dev/urandom\n", d); + // pre-seed from RDTSC so state is ready + xr_state = rdtsc(); + if (xr_state == 0) xr_state = 0xDEADBEEFCAFEBABEULL; + return 0; +} + +static void urandom_fini(void) {} + +// /dev/random will just alias those next 3 +void *urandom_open_fn(const char *path) { + (void)path; + return (void *)1; +} + +int urandom_read_fn(void *handle, void *buf, size_t count) { + (void)handle; + u8 *out = (u8 *)buf; + size_t i = 0; + + // fill 8 bytes at a time then handle tail + while (i + 8 <= count) { + u64 r = xorshift64(); + out[i+0] = (u8)(r); + out[i+1] = (u8)(r >> 8); + out[i+2] = (u8)(r >> 16); + out[i+3] = (u8)(r >> 24); + out[i+4] = (u8)(r >> 32); + out[i+5] = (u8)(r >> 40); + out[i+6] = (u8)(r >> 48); + out[i+7] = (u8)(r >> 56); + i += 8; + } + if (i < count) { + u64 r = xorshift64(); + while (i < count) { + out[i++] = (u8)(r & 0xFF); + r >>= 8; + } + } + return (int)count; +} + +int urandom_write_fn(void *handle, const void *buf, size_t count) { + // accept writes mb for future + (void)handle; + (void)buf; + return (int)count; +} + +driver_module urandom_module = { + .name = URNDNAME, + .mount = URNDPATH, + .version = URNDUNIVERSAL, + .init = urandom_init, + .fini = urandom_fini, + .open = urandom_open_fn, + .read = urandom_read_fn, + .write = urandom_write_fn, +}; \ No newline at end of file diff --git a/src/kernel/devices/random/urandom.h b/src/kernel/devices/random/urandom.h new file mode 100644 index 0000000..01ed6ba --- /dev/null +++ b/src/kernel/devices/random/urandom.h @@ -0,0 +1,14 @@ +#ifndef DEVICE_URANDOM_H +#define DEVICE_URANDOM_H + +#include + +// /dev/urandom +extern driver_module urandom_module; + +// shared with /dev/random alias +void *urandom_open_fn(const char *path); +int urandom_read_fn(void *handle, void *buf, size_t count); +int urandom_write_fn(void *handle, const void *buf, size_t count); + +#endif \ No newline at end of file diff --git a/src/kernel/devices/tty/tty0.c b/src/kernel/devices/tty/tty0.c new file mode 100644 index 0000000..473873e --- /dev/null +++ b/src/kernel/devices/tty/tty0.c @@ -0,0 +1,189 @@ +#include "tty0.h" + +#include +#include +#include +#include +#include +#include +#include +#include + + +typedef enum { + ANSI_NORMAL = 0, + ANSI_ESC, // got \033 + ANSI_CSI, // got \033[ +} tty0_ansi_state_t; + +static tty0_ansi_state_t ansi_state = ANSI_NORMAL; +static int ansi_param = 0; +static u32 ansi_fg = 0xFFFFFFFF; // default white + +static u32 tty0_ansi_color(int code) { + switch (code) { + case 0: return 0xFFFFFFFF; // reset + case 30: return 0xFF111111; // black + case 31: return 0xFFFF5555; // red + case 32: return 0xFF55FF55; // green + case 33: return 0xFFFFFF55; // yellow + case 34: return 0xFF5555FF; // blue + case 35: return 0xFFFF55FF; // magenta + case 36: return 0xFF55FFFF; // cyan + case 37: return 0xFFFFFFFF; // white + case 90: return 0xFF888888; // bright black/gray + case 91: return 0xFFFF8888; // bright red + case 92: return 0xFF88FF88; // bright green + case 93: return 0xFFFFFF88; // bright yellow + case 94: return 0xFF8888FF; // bright blue + case 95: return 0xFFFF88FF; // bright magenta + case 96: return 0xFF88FFFF; // bright cyan + case 97: return 0xFFFFFFFF; // bright white + default: return 0xFFFFFFFF; + } +} + +void tty0_write_char(char c) { + char tmp[2] = { c, '\0' }; + switch (ansi_state) { + case ANSI_NORMAL: + if (c == '\033') { + ansi_state = ANSI_ESC; + } else { + cprintf(tmp, ansi_fg); + } + break; + + case ANSI_ESC: + if (c == '[') { + ansi_state = ANSI_CSI; + ansi_param = 0; + } else { + cprintf("\033", ansi_fg); + cprintf(tmp, ansi_fg); + ansi_state = ANSI_NORMAL; + } + break; + + case ANSI_CSI: + if (c >= '0' && c <= '9') { + ansi_param = ansi_param * 10 + (c - '0'); + } else if (c == 'm') { + ansi_fg = tty0_ansi_color(ansi_param); + ansi_param = 0; + ansi_state = ANSI_NORMAL; + } else if (c == ';') { + ansi_fg = tty0_ansi_color(ansi_param); + ansi_param = 0; + // stay in CSI + } else { + ansi_param = 0; + ansi_state = ANSI_NORMAL; + } + break; + } +} + + +static int tty0_echo_mode = TTY_ECHO; // default == 0 + +void tty0_set_echo_mode(int mode) { tty0_echo_mode = mode; } +int tty0_get_echo_mode(void) { return tty0_echo_mode; } + +static int tty0_init(void) { + log("[TTY0]", "init /dev/tty0\n", d); + return 0; +} + +static void tty0_fini(void) {} + +static void *tty0_open(const char *path) { + (void)path; + return (void *)1; // dummy handle +} + +static int tty0_dev_write(void *handle, const void *buf, size_t count) { + (void)handle; + const char *p = (const char *)buf; + for (size_t i = 0; i < count; i++) { + tty0_write_char(p[i]); + } + return (int)count; +} +static int tty0_dev_read(void *handle, void *buf, size_t count) { + (void)handle; + if (!buf || count == 0) return 0; + + char *out = (char *)buf; + size_t i = 0; + + // lazyopen keyboard device fd once + static int kbd_fd = -1; + if (kbd_fd < 0) { + kbd_fd = fs_open(KEYBOARD0, O_RDONLY); + if (kbd_fd < 0) { + printf("[TTY0] read: cannot open " KEYBOARD0 "\n"); + return -1; + } + } + + __asm__ volatile("sti"); + + while (i < count - 1) { + key_event_t event; + int got = 0; + + while (!got) { + __asm__ volatile("hlt"); + int n = fs_read(kbd_fd, &event, sizeof(key_event_t)); + if (n == (int)sizeof(key_event_t)) got = 1; + } + + if (!event.pressed) continue; + + char c = (char)(event.keycode & 0xFF); + + if (c == '\n' || c == '\r') { + // always echo the newline so cursor moves to next line + tty0_write_char('\n'); + out[i++] = '\n'; + break; + } + + if (c == '\b') { + if (i > 0) { + i--; + if (tty0_echo_mode != TTY_NOECHO) + tty0_write_char('\b'); + } + continue; + } + + if (c < 0x20 || c > 0x7E) continue; + + // echo based on current mode + if (tty0_echo_mode == TTY_ECHO) + tty0_write_char(c); + else if (tty0_echo_mode == TTY_MASKECHO) + tty0_write_char('*'); + // TTY_NOECHO == no output at all + + out[i++] = c; + } + + __asm__ volatile("cli"); + + out[i] = '\0'; + return (int)i; +} + +driver_module tty0_module = { + .name = TTY0NAME, + .mount = TTY0PATH, + .version = TTY0UNIVERSAL, + .init = tty0_init, + .fini = tty0_fini, + .open = tty0_open, + .read = tty0_dev_read, + .write = tty0_dev_write, +}; \ No newline at end of file diff --git a/src/kernel/devices/tty/tty0.h b/src/kernel/devices/tty/tty0.h new file mode 100644 index 0000000..bcd3073 --- /dev/null +++ b/src/kernel/devices/tty/tty0.h @@ -0,0 +1,22 @@ +#ifndef DEVICE_TTY0_H +#define DEVICE_TTY0_H + +#include + +#define KEYBOARD0 KBDPATH +//#define MOUSE0 MS0PATH + + +extern driver_module tty0_module; + +// ioctl request codes for tty +#define TTY_ECHO 0 // normal echo +#define TTY_NOECHO 1 // no echo at all +#define TTY_MASKECHO 2 + + +void tty0_write_char(char c); +void tty0_set_echo_mode(int mode); +int tty0_get_echo_mode(void); + +#endif \ No newline at end of file diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 02d7b1a..14210f5 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -37,6 +37,9 @@ #include #include #include +#include +#include +#include // usermode stuff @@ -314,12 +317,14 @@ void _start(void) module_register(&ata_module); #endif module_register(&console_module); - //module_register(&keyboard_module); module_register(&null_module); module_register(&zero_module); module_register(&fb0_module); module_register(&kbd_dev_module); module_register(&mouse0_module); + module_register(&tty0_module); + module_register(&urandom_module); + module_register(&random_module); log("[MOD]", "found ", d); int count = module_get_count(); diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index b071551..269abb2 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -19,6 +19,11 @@ // read syscall #include +#include + +//#include +//#include + static ulime_t *g_ulime = NULL; @@ -27,7 +32,7 @@ extern ulime_t *ulime; #endif #define SCWRITE 0xFFFFFFFF -#define KEYBOARD0 KBDPATH +//#define KEYBOARD0 KBDPATH #define MOUSE0 MS0PATH extern char cwd[]; @@ -104,23 +109,22 @@ static void ansi_write_char(char c) { switch (ansi_state) { case ANSI_STATE_NORMAL: if (c == '\033') { ansi_state = ANSI_STATE_ESC; } - else { cprintf(tmp, ansi_fg_color); } + else { cprintf(tmp, ansi_fg_color); } break; case ANSI_STATE_ESC: if (c == '[') { ansi_state = ANSI_STATE_CSI; ansi_param = 0; } - else { cprintf("\033", ansi_fg_color); cprintf(tmp, ansi_fg_color); - ansi_state = ANSI_STATE_NORMAL; } + else {cprintf("\033", ansi_fg_color); cprintf(tmp, ansi_fg_color); ansi_state = ANSI_STATE_NORMAL;} break; case ANSI_STATE_CSI: if (c >= '0' && c <= '9') { ansi_param = ansi_param * 10 + (c - '0'); } else if (c == 'm') { ansi_fg_color = ansi_code_to_color(ansi_param); - ansi_param = 0; - ansi_state = ANSI_STATE_NORMAL; + ansi_param = 0; + ansi_state = ANSI_STATE_NORMAL; } else if (c == ';') { ansi_fg_color = ansi_code_to_color(ansi_param); - ansi_param = 0; + ansi_param = 0; } else { ansi_param = 0; ansi_state = ANSI_STATE_NORMAL; @@ -131,25 +135,29 @@ static void ansi_write_char(char c) { // syscall handlers u64 scall_write(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { - //TODO: - // implement /dev/tty0 and the write commands just writes to it - // and the shell reads from /dev/tty0 (void)proc; - if (fd != 1 && fd != 2) return (u64)-1; - - // validate buf is in userspace range if (buf == 0 || buf > 0x0000800000000000ULL) return (u64)-1; - const char *str = (const char *)buf; + if (fd >= 3) + return (u64)fs_write((int)fd, (const void *)buf, (size_t)count); + + if (fd != 1 && fd != 2) return (u64)-1; - // write each char to screen using console output - for (u64 i = 0; i < count; i++) { - ansi_write_char(str[i]); + // lazy-open /dev/tty0 + static int tty_fd = -1; + if (tty_fd < 0) { + tty_fd = fs_open(TTY0PATH, O_WRONLY); + if (tty_fd < 0) { + const char *s = (const char *)buf; + for (u64 i = 0; i < count; i++) tty0_write_char(s[i]); + return count; + } } - return count; + return (u64)fs_write(tty_fd, (const void *)buf, (size_t)count); } -u64 scall_exit(ulime_proc_t *proc, u64 exit_code, u64 arg2, u64 arg3) { +u64 scall_exit(ulime_proc_t *proc, u64 exit_code, u64 arg2, u64 arg3) +{ (void)arg2; (void)arg3; @@ -198,16 +206,17 @@ u64 scall_exit(ulime_proc_t *proc, u64 exit_code, u64 arg2, u64 arg3) { return 0; } -static void setup_argv_on_stack(ulime_proc_t *new_proc, char **user_argv, int argc) { +static void setup_argv_on_stack(ulime_proc_t *new_proc, char **user_argv, int argc) +{ if (argc <= 0 || !user_argv) return; - u64 hhdm = g_ulime->hpr->offset; + u64 hhdm = g_ulime->hpr->offset; u64 pstack = new_proc->phys_stack; - u64 ssize = new_proc->stack_size; - u64 sbase = new_proc->stack_base; + u64 ssize = new_proc->stack_size; + u64 sbase = new_proc->stack_base; u64 str_p_phys = pstack + ssize; - u64 str_p_virt = sbase + ssize; + u64 str_p_virt = sbase + ssize; u64 str_vaddrs[32]; @@ -240,7 +249,8 @@ static void setup_argv_on_stack(ulime_proc_t *new_proc, char **user_argv, int ar new_proc->entry_rsp = rsp_virt; } -u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 argv_ptr, u64 arg3) { +u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 argv_ptr, u64 arg3) +{ (void)arg3; if (path_ptr == 0 || path_ptr > 0x0000800000000000ULL) return (u64)-1; @@ -338,76 +348,27 @@ u64 scall_execve(ulime_proc_t *proc, u64 path_ptr, u64 argv_ptr, u64 arg3) { __builtin_unreachable(); } -u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) { +u64 scall_read(ulime_proc_t *proc, u64 fd, u64 buf, u64 count) +{ (void)proc; - //(void)fd; - //(void)buf; - //(void)count; - - // only stdin (fd 0) supported - if (fd != 0) return (u64)-1; if (buf == 0 || count == 0) return 0; - char *out = (char *)buf; - u64 i = 0; - - // lazy-open KEYBOARD0 (/dev/input/keyboard0) once for the lifetime of the kernel - static int kbd_fd = -1; - if (kbd_fd < 0) { - kbd_fd = fs_open(KEYBOARD0, O_RDONLY); - if (kbd_fd < 0) { - printf("[SYSCALL] read: cannot open " KEYBOARD0 "\n"); - return (u64)-1; - } - } - - // reenable interrupts - __asm__ volatile("sti"); - - while (i < count - 1) { - key_event_t event; - int got = 0; - - while (!got) { - __asm__ volatile("hlt"); - int n = fs_read(kbd_fd, &event, sizeof(key_event_t)); - if (n == (int)sizeof(key_event_t)) { - got = 1; - } - } - - // skip release events - if (!event.pressed) continue; + // (urandom, zero, files, ...) + if (fd >= 3) + return (u64)fs_read((int)fd, (void *)buf, (size_t)count); - char c = (char)(event.keycode & 0xFF); - - if (c == '\n' || c == '\r') { - char nl[2] = {'\n', '\0'}; - cprintf(nl, SCWRITE); - out[i++] = '\n'; - break; - } + // fd 0 stdin to tty0 + if (fd != 0) return (u64)-1; - if (c == '\b') { - if (i > 0) { - i--; - cprintf("\b", SCWRITE); - } - continue; + static int tty_fd = -1; + if (tty_fd < 0) { + tty_fd = fs_open(TTY0PATH, O_RDONLY); + if (tty_fd < 0) { + printf("[SYSCALL] read: cannot open " TTY0PATH "\n"); + return (u64)-1; } - - if (c < 0x20 || c > 0x7E) continue; - - char echo[2] = {c, '\0'}; - cprintf(echo, SCWRITE); - out[i++] = c; } - - // i think this is slow........ this read syscall :( - __asm__ volatile("cli"); - - out[i] = '\0'; - return i; + return (u64)fs_read(tty_fd, (void *)buf, (size_t)count); } u64 scall_getpid(ulime_proc_t *proc, u64 arg1, u64 arg2, u64 arg3) { @@ -415,7 +376,8 @@ u64 scall_getpid(ulime_proc_t *proc, u64 arg1, u64 arg2, u64 arg3) { return proc->pid; } -u64 scall_brk(ulime_proc_t *proc, u64 addr, u64 arg2, u64 arg3) { +u64 scall_brk(ulime_proc_t *proc, u64 addr, u64 arg2, u64 arg3) +{ (void)arg2; (void)arg3; if (addr == 0) return proc->brk; @@ -452,7 +414,8 @@ u64 scall_getdents(ulime_proc_t *proc, u64 path_ptr, u64 buf_ptr, u64 max_entrie return (n < 0) ? (u64)-1 : (u64)n; } -u64 scall_chdir(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { +u64 scall_chdir(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) +{ (void)proc; (void)arg2; (void)arg3; if (!path_ptr || path_ptr > 0x0000800000000000ULL) return (u64)-1; @@ -509,6 +472,37 @@ u64 scall_chdir(ulime_proc_t *proc, u64 path_ptr, u64 arg2, u64 arg3) { return 0; } +u64 scall_ioctl(ulime_proc_t *proc, u64 fd, u64 request, u64 arg_ptr) +{ + (void)proc; + if (arg_ptr > 0x0000800000000000ULL) return (u64)-1; + + void *arg = (void *)arg_ptr; + + // fb0:fb0_ioctl + if (fd >= 3) { + fs_file *f = fs_get_file((int)fd); + if (f && f->node) { + // fb0 ioctl + if (str_equals(f->node->name, "fb0")) { + return (u64)fb0_ioctl((int)request, arg); + } + } + } + + // tty ioctl (fd 0, 1, 2) + if (fd <= 2) { + switch ((int)request) { + case 0: tty0_set_echo_mode(0); return 0; // TTY_ECHO + case 1: tty0_set_echo_mode(1); return 0; // TTY_NOECHO + case 2: tty0_set_echo_mode(2); return 0; // TTY_MASKECHO + default: return (u64)-1; + } + } + + return (u64)-1; +} + u64 scall_getcwd(ulime_proc_t *proc, u64 buf_ptr, u64 size, u64 arg3) { (void)proc; (void)arg3; @@ -542,6 +536,7 @@ void _init_syscalls_table(ulime_t *ulime_ptr) { ulime_ptr->syscalls[GETDENTS] = scall_getdents; ulime_ptr->syscalls[CHDIR] = scall_chdir; ulime_ptr->syscalls[GETCWD] = scall_getcwd; + //ulime_ptr->syscalls[] = scall_ioctl log("[SYSCALL]", "syscall table initialized\n", d); } diff --git a/src/userspace/apps/login/login.c b/src/userspace/apps/login/login.c index 9c97380..fa78523 100644 --- a/src/userspace/apps/login/login.c +++ b/src/userspace/apps/login/login.c @@ -1,15 +1,20 @@ #include +#include #include +#include #include "login.h" +#include + //TODO: // implement password hashing +/* static void print_str(const char *s) { - size_t len = strlen(s); - write(STDOUT_FILENO, s, len); -} + write(STDOUT_FILENO, s, strlen(s)); +}*/ + static int str_eq(const char *a, const char *b) { while (*a && *b) { if (*a != *b) return 0; @@ -17,6 +22,7 @@ static int str_eq(const char *a, const char *b) { } return (*a == '\0' && *b == '\0'); } + static void strip_nl(char *buf, int len) { for (int i = 0; i < len; i++) { if (buf[i] == '\n' || buf[i] == '\r') { @@ -31,19 +37,45 @@ int main(void) char user_buf[BUF_SIZE]; char pass_buf[BUF_SIZE]; - print_str("\n"); - print_str("----------------------\n"); - print_str(" [emexOS login]\n"); + printf("\n"); + + print_logo: { + #define LOGO_PATH "/emr/assets/logo.txt" + #define LOGO_BUF 2048 + + int fd = open(LOGO_PATH, O_RDONLY); + if (fd < 0) { + goto login; + } else { + char buf[LOGO_BUF]; + ssize_t n = read(fd, buf, LOGO_BUF - 1); + close(fd); + if (n > 0) { + buf[n] = '\0'; + printf("\033[96m"); + write(STDOUT_FILENO, buf, (size_t)n); + printf("\033[0m\n"); + } + goto login; + } + } + + printf("if this is reached this is bad :("); + +login: + printf("\n\n"); + //printf("----------------------\n"); + printf(" [emexOS login]\n"); for (int attempt = 0; attempt < MAX_TRIES; attempt++) { - print_str("\033[34m login: "); + printf(A_GFX_YELLOW " login:\033[0m "); ssize_t n = read(STDIN_FILENO, user_buf, BUF_SIZE - 1); if (n <= 0) continue; user_buf[n] = '\0'; strip_nl(user_buf, (int)n); - print_str("\033[34m password: "); + printf(A_GFX_YELLOW " password:\033[0m "); ssize_t m = read(STDIN_FILENO, pass_buf, BUF_SIZE - 1); if (m <= 0) continue; pass_buf[m] = '\0'; @@ -51,11 +83,11 @@ int main(void) if (str_eq(user_buf, LOGIN_USER) && str_eq(pass_buf, LOGIN_PASS)) { - print_str("\033[0m----------------------\n"); - print_str("\n\033[36mwelcome, "); - print_str(user_buf); - print_str("!\n"); - print_str("\033[0m"); + //printf("\033[0m----------------------\n"); + //printf("\n"); + printf("\n\033[36mwelcome, "); + printf(user_buf); + printf("!\n\033[0m"); // launch the shell //char *const argv[] = { (char *)SHELL_PATH, (char *)0 }; @@ -67,10 +99,10 @@ int main(void) return 0; } - print_str("\033[0m[login incorrect]\n"); + printf("\033[31m[login incorrect]\033[0m\n"); } - print_str("\033[0m----------------------\n"); - print_str("\033[0m\ntoo many failed attempts\n"); + //printf("\033[0m----------------------\n"); + printf("\033[0m\ntoo many failed attempts\n"); return 2; } diff --git a/src/userspace/apps/login/login.elf b/src/userspace/apps/login/login.elf index 342a9397aeb9e0f141597b81096b41bf5ce527a9..0f9390d79da33b10421e9fb866ba9ace766cf0da 100755 GIT binary patch literal 16720 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 EFK~D%iU0rr diff --git a/src/userspace/apps/login/login.o b/src/userspace/apps/login/login.o index 0f7f3b656b279b147231de75c8cfea1e7069a0ed..7cdc853b73135fd22a25321bf30cb0961ef6aaf2 100644 GIT binary patch literal 3208 zcmbtVU1%It6h5;_ns$?#H5OE&GFmFOlucr2YT8oQhG|BT`bVB(O*Wf}S=rf1XD1{L z#vo4hrS)b#s-K4_4m_*xB79>QP^6vcBi3(CkFKA0EucEMy1<(Zr zu-l@ZpD9Ai{9hC+^e^$2Vv{s-Z&9NAi;fGr@Q>$JsLl>~o>x`)E(+g8;V*pQMdG32 z-CzS~MB09OAm57eRO|+INA*7c+w*2uopa18KAZZ z=}zQlb|NkFKU6MqIf4ys+@`kBqR?)bc6&0HGn`y|#`@5TJ5vs{4fJ%I`0X&G5RHO5 zV3@|#TkokzNN3MSG1Ap#2D1~yQW+UXp-IagVUV&QisWu{(#WJN(>SWa^9Xd1cvq)6 z;0vnhY|652BjubAN)jA)K@XewJ~e|0Kr9-VX7@{fve1CgcenQ_^|XR{@v|@xwZo zB>q9>yEXXp68}Z!U#-FaTH+sP{y=KolOzbWyrGXM7)e3j!AW{Qs_BwT(U z1Yf)Z5YJsSo#Zfj#}53M7}-W98FvhP{^KJ_CkgT4Tn^&46-@B;HjOOCe3~&fIBF+N z{&jK_|HG-6OIK!(q>y-DDVfI|AYY8i~fc0 zL%dr37;P%rRN%^Ax&9f9RNa3j>YPdYPrpBrFZRD$ZA!Vq^;K?^-T}HJaz5$Gdyf!& d#pi#LCLt5+7SQ83sFvSB!f5XVuKbnr{{=f4Oq~D# literal 2792 zcmbuBPiz!b9LL}67K%%8m&!q@hcQhQm2O%Eg_ht-vvy*LM4_i@+F?7`#hu+cJDV15 z6|zOMHYIy8@n#b*O}uy_gcxYRv~aQqkJGiEugw;opO@B98t*Vo~qzhvI~z0dFO zyf-tupJq?L5i<;?#9$}c_DWI4g3fI{!_^GyVtd)BRr}4VJ~XY`d|)kR1FN6vb>>wMw(mOJ1AF>nWO=$?NRc9l!Gik~B_P)$FE0L(>p0 zY+=>kE8P}WE9)VxbZ^tn8>rUU#dCz^c#E~lgY|5S=RUcZZCSYu3JWY_gUX&r_y=~d zeUuqEXg1@)6g!XHw{Y09q{Ks?Dp0M8{YAt0~ zZoWow*d`v2f%dOyRp*;5d98`%(&!3qkUFIfpw;dmu=X=H{NR=<=<jGT?zxM2#ir%_wS;&1nY~G1T)7R*O@(Y z)-06X&llfIu%5A(kGNtrXv)>JT`td*yh#G^Cfe^t=Icwa1SNRIopB1elIt8c*)vGl z@A6@c7cuk2T*>pCoKNM1z$4+8N~UWUFPRtYe8HJCZQpm?X}?TPBg4ak=An_dMxQqa zj;3Eq_sh5gayCAChZ(aeqo=ELPo18hr-|c&9KrDVXTn z<%|A!+4mS-gNm1|G4yDd4zwU`M)Xs>9Dz| z{uSS^@iWrDN8=wzKA`cBB_GoGCz7AmcvbR?8dr6FjW0`oQ_e6;7fv!7SI_N)#?^Cs zS>x(?W9jlG*SF8p?0aIKQkv%!?6mL9`Yb(Z`!-9TFPB-`D~Sbtja;WlHtyz3jbHF= z*O6uZ_heEA9BKPAhol({Bn$1EL2G&Z+=iitE<95iy4vNkd}Y6r0r(z3#WN3iQcUbw zn!)38t)?Hex{B-d50e2o|7-jJ#UiI(?w$nv=ZWk}RR3y?_XY9lyRP`>vLSr$+C}xR z<`FVR)nAtJU$qC5uGc?BENcJz<^Q?~8IS!3Qt@j4qiQ4M7?P6gk&WWLj*3TKeeV&M bk>@{%MVqMmR%kydQSo)z|J%w@&U*Ymm3H2j diff --git a/src/userspace/apps/system/init.c b/src/userspace/apps/system/init.c index 224b9f0..bbfd077 100644 --- a/src/userspace/apps/system/init.c +++ b/src/userspace/apps/system/init.c @@ -5,11 +5,14 @@ //#include #include +#include +#include + const char* handlers[] = EMRHANDLERS; int main(void) { - //printf("[ESH] starting...\n"); + printf(__EMEXF_B1__); //printf("[ESH] launching programms:\n"); // other initializations... diff --git a/src/userspace/bin/cat/cat.c b/src/userspace/bin/cat/cat.c index 2849dec..f79d401 100644 --- a/src/userspace/bin/cat/cat.c +++ b/src/userspace/bin/cat/cat.c @@ -1,5 +1,6 @@ #include #include +#include #include #define CAT_BUFSZ 4096 @@ -26,50 +27,101 @@ static void resolve_path(const char *arg, char *out_buf, int bufsz) if (ci > 0 && out_buf[ci - 1] != '/') { if (ci < bufsz - 1) out_buf[ci++] = '/'; } - while (ci < bufsz - 1 && arg[ai]) { out_buf[ci++] = arg[ai++]; } out_buf[ci] = '\0'; } +static int cat_fd(int src_fd, int dst_fd) { + char buf[CAT_BUFSZ]; + ssize_t n; + while ((n = read(src_fd, buf, sizeof(buf))) > 0) { + ssize_t written = 0; + while (written < n) { + ssize_t w = write(dst_fd, buf + written, (size_t)(n - written)); + if (w <= 0) return -1; + written += w; + } + } + return 0; +} + int main(int argc, char *argv[]) { - if (argc < 2) { - // no file given - // read from stdin and echo to stdout - char buf[CAT_BUFSZ]; - ssize_t n; - while ((n = read(STDIN_FILENO, buf, sizeof(buf))) > 0) - write(STDOUT_FILENO, buf, (size_t)n); + const char *src_files[32]; + int src_count = 0; + const char *dst_path = NULL; // NULL == stdout + int expect_dst = 0; + + for (int i = 1; i < argc; i++) { + if (expect_dst) { + dst_path = argv[i]; + expect_dst = 0; + continue; + } + + if (argv[i][0] == '>' && argv[i][1] == '\0') { + // standalone '>' + expect_dst = 1; + continue; + } + + if (argv[i][0] == '>') { + // '>foo' destination + dst_path = argv[i] + 1; + continue; + } + + if (src_count < 32) + src_files[src_count++] = argv[i]; + } + + int dst_fd = STDOUT_FILENO; + int dst_opened = 0; + + if (dst_path) { + char dst_resolved[256]; + resolve_path(dst_path, dst_resolved, sizeof(dst_resolved)); + + dst_fd = open(dst_resolved, O_WRONLY | O_CREAT); + if (dst_fd < 0) { + write(STDERR_FILENO, "cat: cannot open output: ", 25); + write(STDERR_FILENO, dst_resolved, strlen(dst_resolved)); + write(STDERR_FILENO, "\n", 1); + return 1; + } + dst_opened = 1; + } + if (src_count == 0) { + cat_fd(STDIN_FILENO, dst_fd); + if (dst_opened) close(dst_fd); return 0; } int ret = 0; - for (int i = 1; i < argc; i++) { + for (int i = 0; i < src_count; i++) { char path[256]; - resolve_path(argv[i], path, sizeof(path)); + resolve_path(src_files[i], path, sizeof(path)); - FILE *f = fopen(path, "rb"); - if (!f) { - fprintf(stderr, "cat: %s: cannot open\n", path); + int src_fd = open(path, O_RDONLY); + if (src_fd < 0) { + write(STDERR_FILENO, "cat: ", 5); + write(STDERR_FILENO, path, strlen(path)); + write(STDERR_FILENO, ": cannot open\n", 14); ret = 1; continue; } - char buf[CAT_BUFSZ]; - size_t n; - - // fread returns full elements - while ((n = fread(buf, 1, sizeof(buf), f)) > 0) - write(STDOUT_FILENO, buf, n); - - if (ferror(f)) { - fprintf(stderr, "cat: %s: read error\n", path); + if (cat_fd(src_fd, dst_fd) < 0) { + write(STDERR_FILENO, "cat: ", 5); + write(STDERR_FILENO, path, strlen(path)); + write(STDERR_FILENO, ": read/write error\n", 19); ret = 1; } - fclose(f); + close(src_fd); } + if (dst_opened) close(dst_fd); return ret; } \ No newline at end of file diff --git a/src/userspace/bin/cat/cat.elf b/src/userspace/bin/cat/cat.elf index b1db53a6ce7e1db9ed732bf63aa1fd45b704748a..839eb8775f75737b0593d23c1fa501194bb14ecc 100755 GIT binary patch delta 3185 zcmZ{meN0tl9LJvvTzS>~ff)(haY) zPS-ni$C_m?n6tUHRZ5m)ftblvhfWu3%xI&9?h;nyYO#gV_jk?@6vAhF&hwnl@BMk6 z^W59G$23@QU|wQYiWqHnktIyRF2cp6gL#id#aRu>LhH%x$1G9)5FunW5Ohz`5@WB2 zoQ!MwHFlcG6Dx$;(*4KquzI=+&;CtvKpG^&{%2*MG$5x)gR7eX?I|vQg9~0th zAYEC#Bdb^8a)X6jOF`LN7ZjfGGs9^8D_|3pO|T=|Y-wQk=d#~V9()ZHuUR0p?9m+r zr|1p_;9x*l_V0xK8Oq_(`FvTuDc9e&BYCx@<1Pg~-G(6`4Uqzp9iTBF-8P1x31c70 zymhyQvVd|pEc>k&NG$sr$W}I8lYNx%KtS^7c6}EieYmRSE3quMCiUS8vbW6yrM+!6 zk;sHn=&yaaw&8A$uHczCH~6Fc`ZK+CL$f>+N2Yy{hWu+yYW|Syi$j^}p$pgU4G(*z zpb5^i8)&^O`~C(BNWGL*KRwv>RFrq18<3wBCyM zjF?UbJVUT=7oJFz=BQrO%=byXYWrEdir{MG!lwTXmCGKRDHppj3Xs<7xxh`}B)+ERQ^Pk}`Ml(FsV+PG0Kv|Ur z`={dNdwMb4UZkndd=A5Xw@u;Nz~Y&6wNaP|l?KwpcOa_?J27p?%0?sF_Hb=UMrPO= zgwZN8)@$FyC*@tiS*Bv9wNf5uv9uz16t|76nop64zDaMJMfUa#Ag3UlA0dqNWM9I8 zNt)IA#3SV(WT;osZ-EVT&Fet5#`Gku!n!!*&Y z#`t9Iy~H%_PR5FmPlfhmX5RYkORRboX zgf0_f#8G&4JBy0bcDPFwr_JehyWCL+>uuWFC7B5!_@)QxM*-~=SHk<#g4UlhP_RWGk6+%Tg`kK z^GxPz$K-Hh>crkmIO$|C;%y^Yc{YPgMUK-W4CzWzK`TKgj_tG4`!RZ;xzLI4=bUL> zs43`isB|7z8m3brc48#`%dDTw++%Q$NZ@owewp83gR5L*0vq_5PvL}KVSb2t8ZZ5E z=0}(}PB99gi-p=zbV}$mog(k!RuJi#k^`<;GdYAxd4szZ!+J+ z2~kXHzoC05z-td?1o#&^@!7m|1$d`6giib&PG}~tTqs831>r`b`*dv~qL}|OZYwR! z(;|h(PP$$;NMym6F@~cTnNuJNVBr9(m_N?^!w^Hi3csM#7BD{*Y48^eEYg{Ozy;^% z>knZr3w&Jh$f3((UN-Ku=P)1S%4TqYmCSE)q8ZFrF<->r;7iPR(OytxO&lPR1#8&g zFz@9u=Ifakj@z=AnZLyWR|Qys#s*>Ym6m=|s>7S)Qow6X-WP;r%M zDLL~jTOE~3IRGxnN>{2wJD!uerovg_sHzneMdjr#hbY?Oaw}x1xXNj8JGQyuTbJn< zEJ64ej%~%IZc$jR6dC%!g05jLJ2!h3UW#j~1YB1;6}T>~)XgfYM2S;z>?jsRimOx< zI$tf-W0gBA1>N+z65>^qk#9%2tJUIuIq=Is4Mc KaK6D($@hQFY#+7& literal 16672 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�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 Z0~9@FuUIR`?*Ct()1AZ&0f+Mb{|g~tazFq8 diff --git a/src/userspace/bin/cat/cat.o b/src/userspace/bin/cat/cat.o index 6501b5456f38db237308ec5a11c4c540f2733c43..5759e4f5d350e1a8f37a79ee650888899ddeab40 100644 GIT binary patch literal 3736 zcmbtXYiL|W6h3#?HfyBmGDbG`KM;v#ph zOyT78PvTf)6*4Ze1)6wHSb)8ryLqy0yb6b!(wQQguTr;`ce-qzCH^$sJ?r(Fq zpJH?4HhP{9<=DL8<|$9EWb9}2+57!&Xx2BJ{$>gGyvIfXW*#QWh5S5v57CjiQ!EJ< z`Qh|4qXKUl&HssNC_m=1ibux_Fhcu*#;bj+$eoB(bRw1P#wr7(FqF$y;KQ_ld7*U? zPbRsD8ra9Qb5ydgpk1NWaN<>2k#m8e?9G zz9eR%;L9btbwl0m1_0;!QALH^y%PrhxbNoq+>5SrXffxEqXu*k5o@}}E z2Y2qM+B&SnbJ-G{tGl*{Qa+46C2pV}`5t6*AAH3N1&V;AaU29pUFAQA{&UcH@hrMu zqx)K784D51AN~<7IE<5QKIA$_hDA2(O(kmZ8EVX2b{6biL}7pzw%jB&UJUtS%W)So zvpMND^BpRKE$J4U)6rl9o*Op2Qm@5`#GsrBw)Vn39&AA2h+TOfHr6BOYA3F03wI+P z()sk}7(EwOGBEbRJXNdl0yTM&O%tgio5B%aDiyi!Gg=l3V^k2l=RxnC+@Yrut{_&( zlWJ%+nK?yq9pVi+Y&w^nhRmCT529)afAB5d4tNjD^ICdu&WMbIEwpSkNNjwb*TluW zk0a8gH9e{{ek-QY6Sq)$3F+jrQ()H<=sjpbYlaE0NwO-k37Td$BjmCPEQ{MG$|8@d zA9LH^%g3aQzGIH(vg43>V{jF!d}NmnB|j?x$6UYCv&beXRoQam(=Ho#e#C=VSnm9A zCVm&0HV0;+Bp%Bgo504HILIoE7k;5e@zv60lecap6ZU~fGSStQvLmT(vn!HH+udoz zpdN${s?_zkwai3&(;4fOZAMJXN?G*)Ek}+Vi0o*2HNG>l=h^7q=x(G3utkgj#@W}w z=-ps!ZKzvw39GRUar%+`Ox1Z|{f19MNA6u6{>d0c8`2#jCCX(Qls@zYsfF)bgrjta zaZvj3dtqT9G%E*6br1Z$xKaZUuJM<$4h=&ZF1R8_=OSF~1xFb)4Aef=vK6=Z>02R> z2H-ma@TU>qgn9eu`Jsrjc8L?FSG!5G*W)*9IQ`Q{<&A5&Zr|pM{}B3+oC>i2T*DjCPR0LA!*%`* zlCFf&iKov;#}rc86!Qv@T>w~OAAE-|^8mvvD( zvekvYKUCwG4&wSeJvNkXS+updCSM7|1EfTG0)K?lr&gDJenL{|&;JzS6!ZW3Q@>D5 z{cdp!DnFx*CjR{UQAe2fS83TWBl*)GQ(ct5np;pwYk&Sr(!W=C#4%QNE4B2<(Lz^L}L?{(clW%v-De+iEfI z+X^n;%6)upnoTm^G#j+AJhuRMl=%g+9b1Ld6WL3fX1z;2Q#l;d z!kdX)cn#cllzTLDZ=hXqM)P7_Q8Dd_+Hv1(a8*O8PjMvDlW}WoRl6GLa*ZWYnOZq0 z(U+7NFL?g#MJ?*GA?TgD~N585)T9b|s2f@Q4yNy^eqnw_AG0d@n%skEh= zRN6q{nH84LRbcu1>jZASfSk^pkb|v3d{Um*Sn*!|k^D?oJ2N_dB{H>daNsAcgf^r*O-hu{y7ZrLeW2O-B-35+S8JyRV4%kr zhdwtE1?Ra4@&NEocDbVa;H2%4Lx?<#ek7mgjF^tUUiNgiUihUK??6>`Z#`J^TEU<<7&qwi~}N2T5xo1s9wJ*MtO39Fkr5qv|$Wfjk-^G{C7R5;qilNWni9IL;mSg$tL@75j$}k$%1s zI4#7H_;(>c1KbNhN%6B+vHwlM)jWp_ z&MEjP+R1zAL_#6|B4vJ#@@EH^^9n}hQqr|%adn+wotHbuUbGC?zUYE6XSo&_vzZJS zPC7Wm)5)ZrLLE1==g%h`D~X-{e?&(&^iB_k+(pIN75A5FvQ>rNOX^8f1#v$l9L@^@ z%?fR4#z+nZ3()&Wcqj~f69$BRI6l3%!VcU)E2;ui&Ov{g>$FL6Lb;{RxtMS%1nS92+5+A*U#^ rfAqf4_aw|Gzv0>=1lP$J==PO diff --git a/src/userspace/libc/include/emx/stdclr.h b/src/userspace/libc/include/emx/ansi.h similarity index 85% rename from src/userspace/libc/include/emx/stdclr.h rename to src/userspace/libc/include/emx/ansi.h index 2af0190..8d7b3c3 100644 --- a/src/userspace/libc/include/emx/stdclr.h +++ b/src/userspace/libc/include/emx/ansi.h @@ -1,4 +1,10 @@ -// console colors (only in supported shells) +#pragma once + +// +// ansi lib +// + +// console colors //ansi: \esc[color #define A_GFX_RED "\033[31m" #define A_GFX_GREEN "\033[32m" diff --git a/src/userspace/libc/include/emx/fb.h b/src/userspace/libc/include/emx/fb.h new file mode 100644 index 0000000..bf7de39 --- /dev/null +++ b/src/userspace/libc/include/emx/fb.h @@ -0,0 +1,34 @@ +#pragma once + +// ioctl request codes for /dev/fb0 +#define FBIOGET_VSCREENINFO 0x4600 +#define FBIOPUT_VSCREENINFO 0x4601 +#define FBIOGET_FSCREENINFO 0x4602 + +typedef struct { + unsigned int xres; + unsigned int yres; + unsigned int xres_virtual; + unsigned int yres_virtual; + unsigned int xoffset; + unsigned int yoffset; + unsigned int bits_per_pixel; + unsigned int grayscale; + unsigned int red_offset; + unsigned int red_length; + unsigned int green_offset; + unsigned int green_length; + unsigned int blue_offset; + unsigned int blue_length; + unsigned int transp_offset; + unsigned int transp_length; +} fb_var_screeninfo; + +typedef struct { + char id[16]; + unsigned long smem_start; // physical address of framebuffer + unsigned int smem_len; // size in bytes + unsigned int type; + unsigned int visual; + unsigned int line_length; // pitch +} fb_fix_screeninfo; \ No newline at end of file diff --git a/src/userspace/libc/include/emx/sinfo.h b/src/userspace/libc/include/emx/sinfo.h new file mode 100644 index 0000000..79d7146 --- /dev/null +++ b/src/userspace/libc/include/emx/sinfo.h @@ -0,0 +1,27 @@ +#pragma once + +#define __EMEX__ "emex" +#define __EMEXF_C__ "EMEX" +#define __EMEXF_B1__ "[emex]" +#define __EMEXF_B1C__ "[EMEX]" +#define __EMEXF_S__ "emx" +#define __EMXSOPN__ EMEX4 +#define __EMXSOPN_B1__ "[" EMEX4 "]" + +/* + * F_C == fromat caps + * F_B1 == fromat brackets type 1 + * F_B2 == fromat brackets type 2 + * F_S == format short + * + * SOP == system or program + * + * N == name + */ + +/* + * b1 == [] + * b2 == () + * b3 == {} + * b4 == <> + */ \ No newline at end of file diff --git a/src/userspace/libc/include/emx/tty.h b/src/userspace/libc/include/emx/tty.h new file mode 100644 index 0000000..b8a66b7 --- /dev/null +++ b/src/userspace/libc/include/emx/tty.h @@ -0,0 +1,7 @@ +#pragma once + +//request codes for /dev/tty0 + +#define TTY_ECHO 0 //default +#define TTY_NOECHO 1 +#define TTY_MASKECHO 2 \ No newline at end of file diff --git a/src/userspace/libc/include/sys/ioctl.h b/src/userspace/libc/include/sys/ioctl.h index 78399af..98f3156 100644 --- a/src/userspace/libc/include/sys/ioctl.h +++ b/src/userspace/libc/include/sys/ioctl.h @@ -1,40 +1,7 @@ #pragma once #include - -// ioctl request codes for /dev/fb0 -#define FBIOGET_VSCREENINFO 0x4600 -#define FBIOPUT_VSCREENINFO 0x4601 -#define FBIOGET_FSCREENINFO 0x4602 -//#define FBPITCH - - - -typedef struct { - unsigned int xres; - unsigned int yres; - unsigned int xres_virtual; - unsigned int yres_virtual; - unsigned int xoffset; - unsigned int yoffset; - unsigned int bits_per_pixel; - unsigned int grayscale; - unsigned int red_offset; - unsigned int red_length; - unsigned int green_offset; - unsigned int green_length; - unsigned int blue_offset; - unsigned int blue_length; - unsigned int transp_offset; - unsigned int transp_length; -} fb_var_screeninfo; -typedef struct { - char id[16]; - unsigned long smem_start; // physical address of framebuffer - unsigned int smem_len; // size in bytes - unsigned int type; - unsigned int visual; - unsigned int line_length; // pitch -} fb_fix_screeninfo; +#include +#include // return: // 0 == success From 454a9c7e4f98868bcfe0316b1f94e81ee6d85c90 Mon Sep 17 00:00:00 2001 From: emexos Date: Tue, 3 Mar 2026 15:12:39 +0100 Subject: [PATCH 30/41] design changes, ioctl syscall --- dsk/initrd.cpio | Bin 332288 -> 338432 bytes dsk/rd/bin/hello.elf | Bin 9512 -> 15760 bytes dsk/rd/emr/system/login.elf | Bin 16720 -> 16736 bytes dsk/rd/user/apps/shell.emx/app.elf | Bin 10360 -> 10360 bytes shared/syscalls/mmap.h | 29 +++++++ src/drivers/ps2/ps2.h | 2 + src/kernel/arch/x86_64/exceptions/irq.c | 3 +- src/kernel/devices/input/mouse0.c | 31 ++++++- src/kernel/mem/paging/paging.c | 32 +++++++ src/kernel/mem/paging/paging.h | 1 + src/kernel/user/calls.h | 8 ++ src/kernel/user/syscalls.c | 92 ++++++++++++++++++++- src/kernel/user/ulime.h | 1 + src/userspace/apps/login/login.c | 8 +- src/userspace/apps/login/login.elf | Bin 16720 -> 16736 bytes src/userspace/apps/login/login.o | Bin 3208 -> 3232 bytes src/userspace/apps/shell/shell.c | 2 +- src/userspace/apps/shell/shell.emx/app.elf | Bin 10360 -> 10360 bytes src/userspace/apps/shell/shell.o | Bin 2640 -> 2648 bytes src/userspace/apps/system/init.c | 5 +- src/userspace/bin/hello/hello.c | 5 +- src/userspace/bin/hello/hello.elf | Bin 9512 -> 15760 bytes src/userspace/bin/hello/hello.o | Bin 1288 -> 1288 bytes 23 files changed, 207 insertions(+), 12 deletions(-) create mode 100644 shared/syscalls/mmap.h diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index c3758d4f4f66dd752da288cb0f98241e4a84f050..66324bfd0c70d3d0dce7855d8f77fa2d78863f09 100644 GIT binary patch delta 3405 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 diff --git a/dsk/rd/bin/hello.elf b/dsk/rd/bin/hello.elf index 65d14b28c0101a0fcf2390b9fd3ea9bd4ea1fb8f..11185855cd53dc4e68c65316a0354e0b7c664dbf 100755 GIT binary patch literal 15760 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 IGam*02p6IWvj6}9 diff --git a/dsk/rd/emr/system/login.elf b/dsk/rd/emr/system/login.elf index 0f9390d79da33b10421e9fb866ba9ace766cf0da..c3797b167222d3d1feb192a7f07348b47e62d92d 100755 GIT binary patch delta 642 zcmYLHO=uHQ5PlO}Nunij*EMW%$gZ`ffk^YavG~*NA-FfA9vaBOv|6!XsE7J<5wWR< z7^IassEBwFD^i8ZLMei{UeeyI7xf@EIW-}d6hw;$U;x#8Dou<2)bqJvzX&WlL>bl^C6J`FFPR>_RBP*Hsw>>8C6_Z>dPRJT4}=grL{ktQHx*n=h$stAcE_ zQVd3MOZo(N@Pj`GG3*bVKJ<;8_t6T=9g5Z%ja?)~AIvnS{6rSIq=(47@jP&zgSN3- zIpctuQRsc_f(_$$9BU>o}n2Rm063FOwh~R%(i}ml4ps{m{T%!P2!Ju@YKn! zc16@zxMReuu%DrMiz;f2Sf}ZVEuKiwBHL5i{lZQDQ;?t7Ma~C<80Em z)8cL!UnTvxmMrY?_A$+xCjZS*98Nuf9M)5x|9$h?c8rZ+UG-s2bwU)I>HxG+N}qs> zIGR2SI=&|?7|P)l0L^F){shPx^&_4gu!);P1Fo)-7sHzUQ`xpToY02I?ge2Mn}i_@ H4~PB$Tzb8j delta 665 zcmYjPL1+_E5dBlSkW?i#A%-MEcCEE7w6tk#(mA^4Ap9xOy@W131Jo7Hwz>P2i6 zi9x6gilCx+sDcQ}LWy2XFKtgvz1WLjyhU@cf@pHkI=eCI9A@5o|Lx4|=T{bBa{(56 zA$qGXWaZt=jH#FDF+0rRlHKRZ9b|IRP^%Z*jG3qwdUFHc+Yi7~+_A^uGsYdBuCl}! zFGQ+5SF-V3Wt-;-7lfiA=OcAqa6ZSojvmNk$>D5MC43QZqUf;b-yDkqtm8Ge4A*hh z?S~lF-S6NMmOT?7VXybtzy?j;M=KO}C~Bvv?ITinI8xO-MDDf79wK-2C*ElRD*A5e zcpGf$Q(X_Nu%-X%e=S(0$P zbD7{OW3^p0YzdzQ)=zeLg;SPshu*8 zI%q4iYN{$KiR`>MlSpS$(_%u?Qp#Cv&M-6sKO9c%W!+3RXy>0QVr=9gaQr&5_3y0d zXD4ta=)&!w1w?EF2cd#}p`$Q?=R%V(if<`Lb^quZz>wYu{{XCqJ0Fj=!$$;p(ApZr aFf5yI%^b^dULL1$uPDpdpzOl%k)Ge*iNs?7 diff --git a/dsk/rd/user/apps/shell.emx/app.elf b/dsk/rd/user/apps/shell.emx/app.elf index b225746d0fef8c6e83a33f8c8bc52aff8194b651..6608bf0bee60c0e11e905f9efce9def399c7c5ca 100755 GIT binary patch delta 56 zcmV-80LTCMQ20=gU;!4fVUZC55u@`F0RjOKv-J}C3= 8) irq_set_mask(2, 0); } } diff --git a/src/kernel/devices/input/mouse0.c b/src/kernel/devices/input/mouse0.c index 41d2c44..78c520b 100644 --- a/src/kernel/devices/input/mouse0.c +++ b/src/kernel/devices/input/mouse0.c @@ -3,13 +3,18 @@ #include #include #include +#include +//#include static int mouse0_init(void) { log("[MOUSE]", "init /dev/input/mouse0\n", d); + //mouse_init(); return 0; } -static void mouse0_fini(void) {} +static void mouse0_fini(void) { + //irq_unregister_handler(12); +} static void *mouse0_open(const char *path) { (void)path; @@ -17,10 +22,30 @@ static void *mouse0_open(const char *path) { } static int mouse0_read(void *handle, void *buf, size_t count) { - (void)handle; (void)buf; (void)count; - return 0; + (void)handle; + +/* + size_t ev_size = sizeof(mouse_event_t); + size_t written = 0; + u8 *out = (u8 *)buf; + + while (written + ev_size <= count && mouse_has_event()) { + mouse_event_t ev; + if (mouse_get_event(&ev)) { + u8 *src = (u8 *)&ev; + for (size_t i = 0; i < ev_size; i++) { + out[written + i] = src[i]; + } + written += ev_size; + } + } + + return (int)written; */ + + return 0; } +// no write for input devices static int mouse0_write(void *handle, const void *buf, size_t count) { (void)handle; (void)buf; (void)count; return -1; diff --git a/src/kernel/mem/paging/paging.c b/src/kernel/mem/paging/paging.c index b7827c6..8636671 100644 --- a/src/kernel/mem/paging/paging.c +++ b/src/kernel/mem/paging/paging.c @@ -12,6 +12,8 @@ extern u8 _kernel_start[]; extern u8 _kernel_end[]; +u64 g_hhdm_offset = 0; + page_table_t *kernel_pml4 = NULL; @@ -102,12 +104,42 @@ void paging_map_page( __asm__ volatile("invlpg (%0)" : : "r" (virtual_addr) : "memory"); } +void paging_unmap_page(u64 virtual_addr) { + u64 pml4_index = (virtual_addr >> 39) & 0x1FF; + u64 pdp_index = (virtual_addr >> 30) & 0x1FF; + u64 pd_index = (virtual_addr >> 21) & 0x1FF; + u64 pt_index = (virtual_addr >> 12) & 0x1FF; + + if (!(kernel_pml4->entries[pml4_index] & PTE_PRESENT)) return; + + u64 pdpt_phys = kernel_pml4->entries[pml4_index] & 0x000FFFFFFFFFF000; + page_table_t *pdpt = (page_table_t *)(pdpt_phys + kernel_pml4->entries[pml4_index]); + + (void)pdpt_phys; (void)pdp_index; (void)pd_index; (void)pt_index; + (void)pdpt; + + extern u64 g_hhdm_offset; + + page_table_t *pdpt2 = (page_table_t *)(pdpt_phys + g_hhdm_offset); + if (!(pdpt2->entries[pdp_index] & PTE_PRESENT)) return; + + u64 pd_phys = pdpt2->entries[pdp_index] & 0x000FFFFFFFFFF000; + page_table_t *pd = (page_table_t *)(pd_phys + g_hhdm_offset); + if (!(pd->entries[pd_index] & PTE_PRESENT)) return; + + u64 pt_phys = pd->entries[pd_index] & 0x000FFFFFFFFFF000; + page_table_t *pt = (page_table_t *)(pt_phys + g_hhdm_offset); + + pt->entries[pt_index] = 0; + __asm__ volatile("invlpg (%0)" : : "r"(virtual_addr) : "memory"); +} void paging_init(limine_hhdm_response_t *hpr) { u64 current_cr3; __asm__ volatile("mov %%cr3, %0" : "=r" (current_cr3)); kernel_pml4 = (page_table_t*)((current_cr3 & 0x000FFFFFFFFFF000) + hpr->offset); + g_hhdm_offset = hpr->offset; // save for paging_unmap_page } u64 map_region_alloc(limine_hhdm_response_t *hpr, u64 virt, u64 size) { diff --git a/src/kernel/mem/paging/paging.h b/src/kernel/mem/paging/paging.h index d09a79e..4cc41ea 100644 --- a/src/kernel/mem/paging/paging.h +++ b/src/kernel/mem/paging/paging.h @@ -27,6 +27,7 @@ typedef struct { } page_table_t; extern page_table_t *kernel_pml4; +extern u64 g_hhdm_offset; void paging_map_page(limine_hhdm_response_t *hpr, u64 virtual_addr, u64 physical_addr, u64 flags); void paging_unmap_page(u64 virtual_addr); diff --git a/src/kernel/user/calls.h b/src/kernel/user/calls.h index 1b80fa7..64eb115 100644 --- a/src/kernel/user/calls.h +++ b/src/kernel/user/calls.h @@ -41,6 +41,10 @@ #define MKDIR 83 #define FCHDIR 133 + #define IOCTL 16 + #define MMAP 9 + #define MUNMAP 11 + #define UNLINK 87 // delete file #elif ARM64 == 1 @@ -75,6 +79,10 @@ #define MKDIR 80 #define FCHDIR 50 + #define IOCTL 16 + #define MMAP 9 + #define MUNMAP 11 + #define UNLINK 87 // delete file #endif diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index 269abb2..a4ce794 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -21,6 +21,11 @@ #include +// memory +#include +#include +#include + //#include //#include @@ -518,6 +523,89 @@ u64 scall_getcwd(ulime_proc_t *proc, u64 buf_ptr, u64 size, u64 arg3) { return (u64)(cwlen + 1); // return written byte count (> 0 = success) } +u64 scall_mmap(ulime_proc_t *proc, u64 args_ptr, u64 arg2, u64 arg3) { + (void)arg2; (void)arg3; + + if (!args_ptr || args_ptr > 0x0000800000000000ULL) return (u64)MAP_FAILED; + + mmap_args_t *a = (mmap_args_t *)args_ptr; + + if (a->length == 0) return (u64)MAP_FAILED; + + u64 len = (a->length + 0xFFF) & ~0xFFFULL; + u64 pages = len / 4096; + + if (a->flags & MAP_ANONYMOUS) { + u64 phys = physmem_alloc_to(pages); + if (!phys) return (u64)MAP_FAILED; + + u64 virt = a->addr; + if (!virt || virt < 0x400000) { + virt = proc->mmap_base; + if (!virt) virt = proc->heap_base + proc->heap_size + 0x100000; + } + virt = (virt + 0xFFF) & ~0xFFFULL; + + for (u64 i = 0; i < pages; i++) { + paging_map_page_proc( + g_ulime->hpr, + proc->pml4_phys, + virt + i * 4096, + phys + i * 4096, + USER_FLAGS + ); + } + + // zero via HHDM + u8 *p = (u8 *)(phys + g_ulime->hpr->offset); + for (u64 i = 0; i < len; i++) p[i] = 0; + + proc->mmap_base = virt + len; + return virt; + } + + // fb0 file mapping + if (a->fd >= 3) { + fs_file *f = fs_get_file(a->fd); + if (f && f->node && str_equals(f->node->name, "fb0")) { + u32 *fb = get_framebuffer(); + u64 fbphys = virt_to_phys(g_ulime->hpr, (void *)fb); + u64 fbsize = (u64)get_fb_pitch() * get_fb_height(); + + u64 fbpages = (fbsize + 0xFFF) / 4096; + u64 virt = a->addr; + if (!virt) virt = proc->mmap_base; + if (!virt) virt = 0x3000000; + virt = (virt + 0xFFF) & ~0xFFFULL; + + for (u64 i = 0; i < fbpages; i++) { + paging_map_page_proc( + g_ulime->hpr, + proc->pml4_phys, + virt + i * 4096, + fbphys + i * 4096, + USER_FLAGS | PTE_PCD + ); + } + proc->mmap_base = virt + fbpages * 4096; + return virt; + } + } + return (u64)MAP_FAILED; +} +u64 scall_munmap(ulime_proc_t *proc, u64 addr, u64 length, u64 arg3) { + (void)proc; (void)arg3; + if (!addr) return (u64)-1; + + u64 len = (length + 0xFFF) & ~0xFFFULL; + u64 pages = len / 4096; + + for (u64 i = 0; i < pages; i++) { + paging_unmap_page(addr + i * 4096); + } + return 0; +} + void _init_syscalls_table(ulime_t *ulime_ptr) { if (!ulime_ptr) return; @@ -536,7 +624,9 @@ void _init_syscalls_table(ulime_t *ulime_ptr) { ulime_ptr->syscalls[GETDENTS] = scall_getdents; ulime_ptr->syscalls[CHDIR] = scall_chdir; ulime_ptr->syscalls[GETCWD] = scall_getcwd; - //ulime_ptr->syscalls[] = scall_ioctl + ulime_ptr->syscalls[MMAP] = scall_mmap; + ulime_ptr->syscalls[MUNMAP] = scall_munmap; + ulime_ptr->syscalls[IOCTL] = scall_ioctl; log("[SYSCALL]", "syscall table initialized\n", d); } diff --git a/src/kernel/user/ulime.h b/src/kernel/user/ulime.h index 5b92ab1..1c0bb10 100644 --- a/src/kernel/user/ulime.h +++ b/src/kernel/user/ulime.h @@ -31,6 +31,7 @@ typedef struct ulime_proc { u64 brk; u64 entry_rsp; + u64 mmap_base; // next virtual address for mmap allocations struct ulime *ulime; struct ulime_proc *next; diff --git a/src/userspace/apps/login/login.c b/src/userspace/apps/login/login.c index fa78523..5b0d838 100644 --- a/src/userspace/apps/login/login.c +++ b/src/userspace/apps/login/login.c @@ -85,9 +85,9 @@ int main(void) { //printf("\033[0m----------------------\n"); //printf("\n"); - printf("\n\033[36mwelcome, "); + printf("\n \033[31m>\033[32m>\033[35m>\033[36m welcome, "); printf(user_buf); - printf("!\n\033[0m"); + printf("!\n\n\033[0m"); // launch the shell //char *const argv[] = { (char *)SHELL_PATH, (char *)0 }; @@ -99,10 +99,10 @@ int main(void) return 0; } - printf("\033[31m[login incorrect]\033[0m\n"); + printf("\033[31m [login incorrect]\033[0m\n"); } //printf("\033[0m----------------------\n"); - printf("\033[0m\ntoo many failed attempts\n"); + printf("\033[0m\n too many failed attempts\n"); return 2; } diff --git a/src/userspace/apps/login/login.elf b/src/userspace/apps/login/login.elf index 0f9390d79da33b10421e9fb866ba9ace766cf0da..c3797b167222d3d1feb192a7f07348b47e62d92d 100755 GIT binary patch delta 642 zcmYLHO=uHQ5PlO}Nunij*EMW%$gZ`ffk^YavG~*NA-FfA9vaBOv|6!XsE7J<5wWR< z7^IassEBwFD^i8ZLMei{UeeyI7xf@EIW-}d6hw;$U;x#8Dou<2)bqJvzX&WlL>bl^C6J`FFPR>_RBP*Hsw>>8C6_Z>dPRJT4}=grL{ktQHx*n=h$stAcE_ zQVd3MOZo(N@Pj`GG3*bVKJ<;8_t6T=9g5Z%ja?)~AIvnS{6rSIq=(47@jP&zgSN3- zIpctuQRsc_f(_$$9BU>o}n2Rm063FOwh~R%(i}ml4ps{m{T%!P2!Ju@YKn! zc16@zxMReuu%DrMiz;f2Sf}ZVEuKiwBHL5i{lZQDQ;?t7Ma~C<80Em z)8cL!UnTvxmMrY?_A$+xCjZS*98Nuf9M)5x|9$h?c8rZ+UG-s2bwU)I>HxG+N}qs> zIGR2SI=&|?7|P)l0L^F){shPx^&_4gu!);P1Fo)-7sHzUQ`xpToY02I?ge2Mn}i_@ H4~PB$Tzb8j delta 665 zcmYjPL1+_E5dBlSkW?i#A%-MEcCEE7w6tk#(mA^4Ap9xOy@W131Jo7Hwz>P2i6 zi9x6gilCx+sDcQ}LWy2XFKtgvz1WLjyhU@cf@pHkI=eCI9A@5o|Lx4|=T{bBa{(56 zA$qGXWaZt=jH#FDF+0rRlHKRZ9b|IRP^%Z*jG3qwdUFHc+Yi7~+_A^uGsYdBuCl}! zFGQ+5SF-V3Wt-;-7lfiA=OcAqa6ZSojvmNk$>D5MC43QZqUf;b-yDkqtm8Ge4A*hh z?S~lF-S6NMmOT?7VXybtzy?j;M=KO}C~Bvv?ITinI8xO-MDDf79wK-2C*ElRD*A5e zcpGf$Q(X_Nu%-X%e=S(0$P zbD7{OW3^p0YzdzQ)=zeLg;SPshu*8 zI%q4iYN{$KiR`>MlSpS$(_%u?Qp#Cv&M-6sKO9c%W!+3RXy>0QVr=9gaQr&5_3y0d zXD4ta=)&!w1w?EF2cd#}p`$Q?=R%V(if<`Lb^quZz>wYu{{XCqJ0Fj=!$$;p(ApZr aFf5yI%^b^dULL1$uPDpdpzOl%k)Ge*iNs?7 diff --git a/src/userspace/apps/login/login.o b/src/userspace/apps/login/login.o index 7cdc853b73135fd22a25321bf30cb0961ef6aaf2..67b48969793af1d0e0a45074f38bd512fbb15870 100644 GIT binary patch delta 171 zcmeB>Tp&3?gK@z|%_?Ry1`yzqjy5*TwF8nyVA2#!n&m2#r{*N*=cei?Feq{X6&d6* zfK@6?-p?$~2I6xmOuox(v{`^ffQ2z*vLc5&WB24t4t>VSlV<|S4VzDLgflWRuuWFt zI>vZm@=GrB$qC#XjKY&AvItMM;Z|YPn4HLMKlwZh>*S@}){F}#KjgM&JTO_2$DYw+ Iaw3m90Nye#T>t<8 delta 164 zcmZ1=*&#VWgRx_yW)-s)mvpqTS#Ei1PI7*3s*VDKB2d5}mjNhhm>ZpwpPregkeQd9 zUsRNuToMbC;$mO`$^z-h-8-~^fs1c8$q Gx#R(Sr7o}l diff --git a/src/userspace/apps/shell/shell.c b/src/userspace/apps/shell/shell.c index 0962025..2105422 100644 --- a/src/userspace/apps/shell/shell.c +++ b/src/userspace/apps/shell/shell.c @@ -3,7 +3,7 @@ #include #define BUFFER 256 -#define SHELL_PROMPT "[pc@emexos]$ " +#define SHELL_PROMPT "\033[0m[pc@emexos]$ " #define BIN_PATH "/bin/" diff --git a/src/userspace/apps/shell/shell.emx/app.elf b/src/userspace/apps/shell/shell.emx/app.elf index b225746d0fef8c6e83a33f8c8bc52aff8194b651..6608bf0bee60c0e11e905f9efce9def399c7c5ca 100755 GIT binary patch delta 56 zcmV-80LTCMQ20=gU;!4fVUZC55u@`F0RjOKv-J}C3aCYqYZK=dor6dF)(bdV-{j&l-)d$Eu4`tWAaP( zmdUF)?HCm%zvQ&%WMF3igTTp#9P$8y CJsH;k delta 93 zcmca1azSK*24lcR&G(FqyqhJN3>YW-GMjJiU>0Czl-xX%Eu4`tVe&`zW+1^@EK83<4P@?_!q&06v@>NB{r; diff --git a/src/userspace/apps/system/init.c b/src/userspace/apps/system/init.c index bbfd077..87f162f 100644 --- a/src/userspace/apps/system/init.c +++ b/src/userspace/apps/system/init.c @@ -12,7 +12,10 @@ const char* handlers[] = EMRHANDLERS; int main(void) { - printf(__EMEXF_B1__); + + //printf(__EMEXF_B1__); + + //printf("[ESH] launching programms:\n"); // other initializations... diff --git a/src/userspace/bin/hello/hello.c b/src/userspace/bin/hello/hello.c index 97e8369..bfc12d4 100644 --- a/src/userspace/bin/hello/hello.c +++ b/src/userspace/bin/hello/hello.c @@ -1,7 +1,10 @@ #include +#include + +#include int main(void) { - write(STDOUT_FILENO, "hello, world!\n", 14); + printf(A_GFX_GREEN "\nhello, world!\n\n"); return 0; } diff --git a/src/userspace/bin/hello/hello.elf b/src/userspace/bin/hello/hello.elf index 65d14b28c0101a0fcf2390b9fd3ea9bd4ea1fb8f..11185855cd53dc4e68c65316a0354e0b7c664dbf 100755 GIT binary patch literal 15760 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 IGam*02p6IWvj6}9 diff --git a/src/userspace/bin/hello/hello.o b/src/userspace/bin/hello/hello.o index 940853fdec81f280b6246428f61fdd2f582de981..9f5de8e35c988a113ee4727657d5a08a18cdd5b2 100644 GIT binary patch delta 172 zcmeC+>foB-qP3p^2zG#o7jRbWVd-dNqg<|x)SR4r9fk7zqMQ^(u8BEP6FXFdq(I6X z`2^aSoO#(okMXc`OlD+~ns_6EQEIXwqpos6QD$CA8b}cD5x5-$(hXNj0Kw)GP5%>icVh15)S~kQX|L! delta 170 zcmeC+>foB-qOpsQfq`Kk5Hsv&1QIVmtQ{aC_HagOPENj#LV12sPKx5hJgJFoYC`fL zDMvnmHYR6Ywy0w~>>QIBnWQG(h+veTY{;mqTwat}k_uA8zy&5DG&7V9qC_S)GCl{Y p&SWZQjGz3F$sR~5GTU>;L)Gw4&SW-c%-g(>nVpeQWb#UucmO~&BK80P From 45c060292c626bdffd706e292079a859fc2ee738 Mon Sep 17 00:00:00 2001 From: emexos Date: Tue, 3 Mar 2026 15:52:38 +0100 Subject: [PATCH 31/41] better readme --- README.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index a34a7dc..70e9f2a 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,19 @@
    -

    emexOS

    -
    a simple 64-bit os written in c
    +

    $${\Huge \color{white} \tilde{} emexOS \space \tilde{} \space \space \space }$$

    -![Discord Badge](https://img.shields.io/badge/Join%20the%20Discord-Black?style=for-the-badge&logo=discord&logoColor=white&color=black) + +$${\LARGE \color{red}a \space simple \space x86 \textunderscore 64 \space operating \space system \space in \space c}$$ ![GitHub License](https://img.shields.io/github/license/emexos/emexOS1?style=for-the-badge&label=License&labelColor=black&color=white) ![GitHub repo size](https://img.shields.io/github/repo-size/emexos/emexOS1?style=for-the-badge&label=size&labelColor=black&color=white) ![GitHub Repo stars](https://img.shields.io/github/stars/emexos/emexos1?style=for-the-badge&labelColor=black&color=white) + +![Discord Badge](https://img.shields.io/badge/Join%20the%20Discord-Black?style=for-the-badge&logo=discord&logoColor=white&color=black) +
    -## Build Dependencies +## $${\large Build \space Dependencies}$$ For building and compiling emexOS, ensure you have the following installed, - x86_64 GCC cross-compiler - This is our preferred compiler for the source code. Currently, emexOS only supports 64-bit x86 machines, but we plan to support more architectures in the future. - [NASM](https://www.nasm.us/) - Assembler. @@ -20,13 +23,13 @@ For building and compiling emexOS, ensure you have the following installed, You can use [Zig](https://ziglang.org/) instead of GCC if you prefer to. -## For Nix Users +## $${\large For \space Nix \space Users}$$ Ensure you have flakes enabled first and then run `nix develop` to enter the provided development shell which will have all build dependencies and such installed for you. I'd recommend updating the flake using `nix flake update` as it's sometimes not updated for long periods of time. -## Building and Compiling +## $${\large Building \space and \space Compiling}$$ With all build dependencies installed, you can finally build and run emexOS. > [!CAUTION] -> If booting emexOS on real hardware, ensure your device has no existing data or else emexOS **WILL DELETE IT WITHOUT ASKING** +> emexOS currently only supports ATA disks, if such a disk is detected emexOS **WILL/CAN DELETE IT WITHOUT ASKING** (if you have OVERWRITEALL set to 1 in the configs which is by default 0.) **Using gnu-make** - `make fetchDeps` - Fetch all libraries and such that emexOS depends on e.g. Limine. `git` and `wget` are used for this. @@ -40,21 +43,20 @@ With all build dependencies installed, you can finally build and run emexOS. - `zig build -Dclean` - Remove (cache, output), fetch, build and run. - `zig build -Dnofetch -Dclean` - Remove (cache, output), build and run. -## Console +## $${Console}$$ After booting, you will be asked for a password which is "emex" by default, to log in. The password can be changed in `shared/config/user.h`. Currently, no SMP support is available just yet so emexOS runs using only a single core.
    -

    Contributors

    +

    $${Contributors}$$

    -

    Made with [contrib.rocks](https://contrib.rocks).

    ---- +
    -
    -

    emexOS - by emexSW

    +
    +

    $\color{gray}{readme\ by\ emexSW,\ Voxi0\ and\ Bi\ Moz}$

    \ No newline at end of file From 69f37f53c708319ceec7fe2a26afdc4f73e337eb Mon Sep 17 00:00:00 2001 From: emexos Date: Sun, 8 Mar 2026 13:19:28 +0100 Subject: [PATCH 32/41] ipc, whatever --- .zed/settings.json | 3 + Makefile | 7 +- dsk/initrd.cpio | Bin 338432 -> 2305024 bytes .../boot/{activeslot.cfg => activeslot.txt} | 0 dsk/rd/boot/limine.conf | 40 ++ dsk/rd/boot/ui/fonts/unifont.sfn | Bin 0 -> 1939917 bytes dsk/rd/emr/system/login.elf | Bin 16736 -> 16752 bytes dsk/rd/emr/system/srv.emx/app.elf | Bin 0 -> 25384 bytes dsk/rd/emr/system/srv.emx/package.info | 2 + logo.txt | 36 +- shared/config/system.h | 18 +- shared/config/tasks.h | 6 + src/kernel/arch/x86_64/exceptions/timer.c | 14 +- src/kernel/arch/x86_64/exceptions/timer.h | 1 + src/kernel/console/IMPORTANT.md | 4 - src/kernel/console/console.c | 380 ------------------ src/kernel/console/console.h | 85 ---- src/kernel/console/cursor.c | 85 ---- src/kernel/console/functions.h | 63 --- src/kernel/console/functions/cat.c | 46 --- src/kernel/console/functions/cd.c | 66 --- src/kernel/console/functions/cmos.c | 31 -- src/kernel/console/functions/help.c | 57 --- src/kernel/console/functions/keymap.c | 40 -- src/kernel/console/functions/ls.c | 74 ---- src/kernel/console/functions/mkdir.c | 36 -- src/kernel/console/functions/modules.c | 54 --- src/kernel/console/functions/poweroff.c | 28 -- src/kernel/console/functions/proc.c | 14 - src/kernel/console/functions/slots.c | 69 ---- src/kernel/console/functions/source.c | 31 -- src/kernel/console/functions/system.c | 85 ---- src/kernel/console/functions/text.c | 168 -------- src/kernel/console/functions/touch.c | 30 -- src/kernel/console/functions/tree.c | 76 ---- src/kernel/console/functions/view.c | 41 -- src/kernel/console/functions/whoami.c | 9 - src/kernel/console/graph/dos.c | 85 ---- src/kernel/console/graph/dos.h | 18 - src/kernel/console/graph/print.h | 9 - src/kernel/console/graph/uno.c | 173 -------- src/kernel/console/graph/uno.h | 22 - src/kernel/console/parser.c | 93 ----- src/kernel/console/promtinit.c | 7 - src/kernel/console/shell_screen.c | 108 ----- src/kernel/devices/tty/tty0.c | 2 +- src/kernel/graph/draw.c | 10 +- src/kernel/graph/graphics.c | 9 +- src/kernel/graph/theme.h | 74 +--- src/kernel/inits/console/config.c | 4 +- src/kernel/inits/console/gen.c | 4 +- src/kernel/inits/console/gen.h | 15 + src/kernel/inits/console/prompt.c | 2 +- src/kernel/inits/console/theme.c | 4 +- src/kernel/kernel.c | 30 +- .../bootscreen/console/console.c} | 5 +- .../bootscreen/console/console.h | 6 + src/kernel/kernel_processes/bootscreen/log.c | 226 ++++++----- .../kernel_processes/bootscreen/print.c | 88 ++-- .../kernel_processes/bootscreen/print.h | 3 + .../kernel_processes/bootscreen/print_b.c | 23 +- src/kernel/kernel_processes/fm/fm.c | 6 +- src/kernel/kernel_processes/fm/fm.h | 2 + .../{graph => kernel_processes/tm}/theme.c | 0 src/kernel/kernel_processes/tm/theme.h | 74 ++++ src/kernel/modules/limine.c | 25 ++ src/kernel/modules/limine.h | 4 +- src/kernel/multitasking/ipc/ipc.h | 56 +++ src/kernel/multitasking/ipc/messages.c | 152 +++++++ src/kernel/multitasking/ipc/shared_memory.c | 139 +++++++ src/kernel/multitasking/multitasking.c | 182 +++++++++ src/kernel/multitasking/multitasking.h | 71 ++++ src/kernel/net/head.h | 5 + src/kernel/net/net.h | 25 ++ src/kernel/net/unix/unix_sock.c | 1 + src/kernel/net/unix/unix_sock.h | 3 + src/kernel/user/_start.c | 4 +- src/kernel/user/calls.h | 28 +- src/kernel/user/gen.h | 2 +- src/kernel/user/scalls/mq.c | 49 +++ src/kernel/user/scalls/scalls.h | 12 + src/kernel/user/scalls/shm.c | 35 ++ src/kernel/user/syscalls.c | 46 ++- src/userspace/apps/login/login.elf | Bin 16736 -> 16752 bytes src/userspace/apps/login/login.o | Bin 3232 -> 3240 bytes src/userspace/libc/src/_syscall.h | 32 +- 86 files changed, 1254 insertions(+), 2418 deletions(-) create mode 100644 .zed/settings.json rename dsk/rd/boot/{activeslot.cfg => activeslot.txt} (100%) create mode 100644 dsk/rd/boot/limine.conf create mode 100644 dsk/rd/boot/ui/fonts/unifont.sfn create mode 100755 dsk/rd/emr/system/srv.emx/app.elf create mode 100644 dsk/rd/emr/system/srv.emx/package.info create mode 100644 shared/config/tasks.h delete mode 100644 src/kernel/console/IMPORTANT.md delete mode 100644 src/kernel/console/console.c delete mode 100644 src/kernel/console/console.h delete mode 100644 src/kernel/console/cursor.c delete mode 100644 src/kernel/console/functions.h delete mode 100644 src/kernel/console/functions/cat.c delete mode 100644 src/kernel/console/functions/cd.c delete mode 100644 src/kernel/console/functions/cmos.c delete mode 100644 src/kernel/console/functions/help.c delete mode 100644 src/kernel/console/functions/keymap.c delete mode 100644 src/kernel/console/functions/ls.c delete mode 100644 src/kernel/console/functions/mkdir.c delete mode 100644 src/kernel/console/functions/modules.c delete mode 100644 src/kernel/console/functions/poweroff.c delete mode 100644 src/kernel/console/functions/proc.c delete mode 100644 src/kernel/console/functions/slots.c delete mode 100644 src/kernel/console/functions/source.c delete mode 100644 src/kernel/console/functions/system.c delete mode 100644 src/kernel/console/functions/text.c delete mode 100644 src/kernel/console/functions/touch.c delete mode 100644 src/kernel/console/functions/tree.c delete mode 100644 src/kernel/console/functions/view.c delete mode 100644 src/kernel/console/functions/whoami.c delete mode 100644 src/kernel/console/graph/dos.c delete mode 100644 src/kernel/console/graph/dos.h delete mode 100644 src/kernel/console/graph/print.h delete mode 100644 src/kernel/console/graph/uno.c delete mode 100644 src/kernel/console/graph/uno.h delete mode 100644 src/kernel/console/parser.c delete mode 100644 src/kernel/console/promtinit.c delete mode 100644 src/kernel/console/shell_screen.c rename src/kernel/{console/graph/print.c => kernel_processes/bootscreen/console/console.c} (64%) create mode 100644 src/kernel/kernel_processes/bootscreen/console/console.h rename src/kernel/{graph => kernel_processes/tm}/theme.c (100%) create mode 100644 src/kernel/kernel_processes/tm/theme.h create mode 100644 src/kernel/multitasking/ipc/ipc.h create mode 100644 src/kernel/multitasking/ipc/messages.c create mode 100644 src/kernel/multitasking/ipc/shared_memory.c create mode 100644 src/kernel/multitasking/multitasking.c create mode 100644 src/kernel/multitasking/multitasking.h create mode 100644 src/kernel/net/head.h create mode 100644 src/kernel/net/net.h create mode 100644 src/kernel/net/unix/unix_sock.c create mode 100644 src/kernel/net/unix/unix_sock.h create mode 100644 src/kernel/user/scalls/mq.c create mode 100644 src/kernel/user/scalls/scalls.h create mode 100644 src/kernel/user/scalls/shm.c diff --git a/.zed/settings.json b/.zed/settings.json new file mode 100644 index 0000000..1d0ac21 --- /dev/null +++ b/.zed/settings.json @@ -0,0 +1,3 @@ +{ + "project_name": "emexOS", +} diff --git a/Makefile b/Makefile index 7e9249c..dc6e4bf 100644 --- a/Makefile +++ b/Makefile @@ -59,13 +59,16 @@ $(ISO): limine.conf $(LIMINE_TOOL) $(BUILD_DIR)/kernel.elf disk userspace @cp $(addprefix $(INCLUDE_DIR)/limine/limine-, bios.sys bios-cd.bin uefi-cd.bin) $(ISODIR)/boot/limine/ @cp $(addprefix $(INCLUDE_DIR)/limine/BOOT, IA32.EFI X64.EFI) $(ISODIR)/EFI/BOOT/ - @echo "[MOD] creating & copying executables..." + @echo "[MK] copying executables..." @mkdir -p $(DISK_DIR)/rd/user/apps @mkdir -p $(DISK_DIR)/rd/user/bin @mkdir -p $(DISK_DIR)/rd/bin @mkdir -p $(DISK_DIR)/rd/emr/system @cp -r src/userspace/apps/shell/shell.emx $(DISK_DIR)/rd/user/apps/ @cp -r src/userspace/apps/system/system.emx $(DISK_DIR)/rd/emr/system + + @echo "[MK] copying files..." +#@cp limine.conf $(DISK_DIR)/rd/boot/ @cp src/userspace/apps/login/login.elf $(DISK_DIR)/rd/emr/system @cp src/userspace/bin/echo/echo.elf $(DISK_DIR)/rd/bin/ @cp src/userspace/bin/hello/hello.elf $(DISK_DIR)/rd/bin/ @@ -75,7 +78,7 @@ $(ISO): limine.conf $(LIMINE_TOOL) $(BUILD_DIR)/kernel.elf disk userspace @cp src/userspace/bin/cd/cd.elf $(DISK_DIR)/rd/bin/ - @echo "[MOD] creating initrd.cpio..." + @echo "[MK] creating initrd.cpio..." @chmod +x tools/initrd.sh ./tools/initrd.sh @cp $(DISK_DIR)/initrd.cpio $(ISODIR)/boot/ diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 66324bfd0c70d3d0dce7855d8f77fa2d78863f09..6c65ad0b3bd364e2ed2ab00e34e4b319d60e14ec 100644 GIT binary patch literal 2305024 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 z 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%0DOhn4h;0OJTM@X31UrRXk0&F0f$L1AUZ&# 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

    ER9kK&&K4^jTM><~C;0?5YI><9B&UR%23 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%0AK2m@+59C9iwTNrPAhtX#}EJfz=p+cLPX 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Ⓢ#=B8AcuP*&h_VuClb#oTbiedtg^4GQ>8#@Y$jpon z`n8qfA+jdk)3LoY%fUOt@(=dach(12_fHJg2PKbzl~wSu(#U!&0V~Z;Jv(1nbrVg8 z)+0{IQ*zWNe$vam=GQ~!KAH&EM}|!-hj7tkIKLm?dB0<@UWpW9Cuwua`rN35WSo5% z`Q;NIV_p1X!~A4T{9{-_zhuu1P){v)bAn1Kr}&wZT54tr%xK@B&hOtp{zM?7m6H!{ zKo8NUA4DGsep)#rRoT+-RKS5B#<1#l~Xewdr576L#{{ zSf-qrJT*_IbbWk((<1t(V&I%+aV5GTmY5egQsjTVODl1-`2AZ&Bq@7^0mL zJOASdED4qF%2$~sax4APawR8xCDI&tkN;rPJT?A7E#7#rEUR)VRxa}y8s5h|>L~x) zkNJcC;0fM`2S0#&ThU(FSVXNbZXzY^HOSjZqt9;!KocPG^hMew2+x(;T+WK`aEY|Q-;BHyv9XW*g3<%=T z#OlAP*GB&hV^MlnBSWVTT@<})z6EE)F=V4DO(Z-8N8mYpZ1ppE4%yXL4rQ-B*~q@} zN+~NA0$rx?+UF?!$k% zbD48SmL6Wd_aC-qe4Zi|)gxR*zdl}%Si_9oBut@b8on`^f~R`N!pb1DrysJ$87iuK z!ws><;;j-#63k)H%L! zRqmdeP0#kv?p5EHx&`Tg+zi=|d^o+A6Qnr)EzN-jG>&zn2e+u9z?$|!%l*kircbT( zPCs=IW;p$u+B;lx*!-JlyGap;xUt_et#f>J#k==68EIq9ICUT5y$9^Gy;hWpWMWy+ zJ*u@SHlf!~1E4r}E*u`*JIEQd;o(p}M?Hn5#M?$l-hbQFHAh6_5$%c6LCXEPdakB! zGHTgHPKBzdZT}&=ulsYGWzAb*xifAUsQLi*t<3>-t>k;ugaB`vR9Q)-j8woF=I&WL z8oBQ|teE3D-j6ovPiJ-YAL!2ai8<*;MLa4}820V0hJA}Hv|9zky0s~xOWZ&33*$`_ zFfM&J+B>@4*jlkmy2)w>6iHQ5;wx0$Z|wQT&{v1f4*eOY)w9Q_+77a4Pp*h}4Bb}M z;iPJe0rl5V!7d*B?&hjGpR18M#LrLV!d$pD9P}O@9Cx@!DCbtdpWXRO#x$!&C4Q|% zbY{e}y=wV3tKsbMTRWC5(5W-$uN%*fNcFQ9BS`|yatf);t&|PG2Qsa(q0(22{nqBt zVwVjU}1Tx>$6`-Eu;XrWmkg?79 zPPEyCnml1BeumUN`jDNWGsQ7y#+h|ywz`ge@5#>)+L&0Fl9L^&59IPPh$Kq(e%jn{ z^Hj@S$-O)?W>4hF4cT%f;yVs2WzT;j_-b%A__OC_f3q~fYjXp_Q!+zWjS=XisFdwD zWuLQtp;1mgKQIxJD&c>@XpS`Prq!g>MS&eO+$5Vb=cpDb_@U|?WNwDC(?yx1wec_A zL%}cU^l6n9b!VO5U++q0O>rdjbE$|awN!`9ukP2g@To?G&$X=`vj3x~8rresG)n|i~4G9`bR>kH)XN)Nt2Ft;)J*Qh&dkcHFdrg^G`^5&P`Q5gfb_@37F zcYEF_lqHsKNTsWDw4ZE{ba;bhKwu9{_xHk+LzpvOBN$AUo3*EPq)pca!F@Iy1$YQEEK#O2b4U@k#JWy zAZKUT_5TTT^z`U+WCG~EpAP0+J>u@W^aq~oJSFG;9AEu0szykq&F(mQx%O7EJD(}; zNG&ZiBJ~CJ$c*l|#)47zHlI^v)Vev~Siex*CskFtPn0{fB>q337|yz-@^Gn~)I(2X zGG(T2=$!1L{C=y4Z&R+DF0+f$+qgHqd*jv`g&fByJJ}i4>EP9&bLQ)5q1!rH?2LQP zZNnukXaW5|BFOVt|Ja7m1cZkqT=m~D7v|Ma8J^~{>05Buv~ zG?wOW$Nt4S-cIftpvuHI6z@>ixYAFa+x!0JS!{^RJz8eNKVe$~EO@scxspOoWD@uz z89`|?8mo1$==NSlsP~xt$yDz>=9mY~UHVC|uHxP9J$|((v3f4|NOq=4#khnba{>J|EOwhM?!=Lv}-M{U*PpuhCYR@ersegD?=}ukkvG*RL{cjQ> zxkWUS>Tu=-yg|2@9$wqRw@<1Ks%}WH<~Aigm9a=K=Qe&AoumF?+iZue@HA`N$rZom z3di#tEeX25irAj+6)A7poQ1QXS69W8FdpoRTHyD&+Pwdk8p=jB6*iNl6r>;Jx0BA>3nW==y9xurnzY6 zbyVMOVEkvOkj5@WbIA8le1EU1PTr1A2ft>lq9eOnXgAKNVY+x#bEh;w_pSjps9Ob8;fd0VL?wOlUVid`IraZR6~T%ZKyyjYgaSen>1`Y8YwfEe zQTi#r-s7&(xMr>joZe))EG=$`PU(+NFCPgTx&(}i>13~T${@vha_IahWE>XTZj z1v^4UM`N*WJtrgmFv^YbX_`-6W8`-Fbmw(pY%Hc$TApG~qg`hPjmo;GWP~T2@PB2+ z`BMCn8n$>Ys%amt>&3}mXYp#dLX0XfD2M{fvxcOSUv`L->qCH1w~nu9I^iu+LW_|KrO zhah+ACrHeT$N?4CtW<0{12l%{SS|G+Z89u8(!fS_FL(-(s~oUl<^%hTea1PHKa-c= z()?9>#<)}bcUv6-{h@78MbggmFaGwVF`SlqQ^9hi-MUHz$C(Xu<& z2(<t#g*0;pWO~P?b<0TFQHwgMDbB95u4ohX)FDWCxx+1&*oo zj%3z_?qNK0s;7o~tAzP1-8yBuH%kz6=+?ub+bGq`)aO?<(Zu=w5I>-|3htWGno@IL zD(>GJn6suqPPa$ae6GiuW2`f`Wquef2k z@^kw^vAe8Y{Dj=>tHs|@s85g|8J2jX@sr3JlX=q(Ol7y(DclN92Xle^?R5jai2O)9 zr|Ox@=TcjJZo@XiGp?p&=iIu_Iel@K*tY>958_i0+pxvinocK0dj4rsh&6fJwsk~x)LsebkMpWNVz zP74f9UFSVeye!v?CGGaJ(=S&Lo~ce-5W9Xu0_2L~f(W$l@td#c^aBbg@wI%vRvRCW zqo`Pm65UDu7tTEIQ~{~ z^B-!R*ozAcA|aej;D@#8nvwaiDy8;sTKSC&sgJP!PDG9ss?hqdb4{4xUqflvx4UN; zSj1Idb(h`0AOd@ZyxP36z@E2-ZEss|)aJ+MPU;FoU;#$q5}S}F(Fsz}N6pdnj6B8d z#Hz|;r7`{$d(QS);(?gmpySwKQeBgyVcFugZ5Ty-1<~& z^m8(nEgo6HV{`@FgG!JlXh=d$y3#E%T2_)xs_Nv^3#d)q-Y&|KPO6_PjJWH~GW2C9ioRv0`waBC!A8%LBoD7+H`jBPaFngtv_o?eX--{mvr-PJQ+0xG!zA$qyYz{YteO_NV~ zWV~{(8@oine!MH~rX;T3^SR>q@=b@C-sn)pYofgO;F{+fH!JEcQ45S+w%@Ci+_j(I z5Fdo<&a{u7wvV~@2R)yw^WE~nSq}=KxyrWVX5{mje$s!|aCpB-jF?3m9Y^aOe=1*k zdsm+Qmp7@p?6~h$Qfr>i)77)}&vN<4x__PfYl*x`e6hcjrTvQ4g`VfD8m?Z3m=nL1 z2g*jt;1u>X{ZoBIu5YSbU=`=<>EF$Y(B+26MSK?bujTul`BT(!$s17Tu#tqT_SSVj zXMQ5|l6Rw!zvr(=4JwECzu5Erl$Qznpi!l@ff;6gv(K?Vrqe%R7~O?7{vy}aHla^yHAC_CRb_$xA;hX)!? zgDpC>`~TxqVCc^^f6Dl}uhZ6;E&LHg2eBu#XgcNfc~5zR-i{agz7(DggBM*iO)~zZ z=hA;K%}nMmSjX&=^biU%YD1_mqvYRkiJZM5Ys2^g_AQC>&)l+2XC;3yf5Sd#-zXde zb;g=`%dMGK&~o|QUYX%D`8;>9(XlTHjf@v64ZCq)9AmhzUijQP8VG;hq)y;tgN@;Q zY2RRdn8@tjE)B@Wux?VZ5C3;Y@i;g?7t>J25avBJ;0n2-j}>+oydC9KIV$zgu!Z)x zc~IVOY?t@<4xTpWx^u`JXbzO0w<_7;clTsiaP6*xdO0{qcHXMY_?yvbPPKaUSfWJ~ z-EucL)mX-{Qao<|1LrM&o3nh9I|zr-OSmhaBVu0(tsj%I|Ly+0oh$V7Rjw8}`8SBO zd_aZ&Z*O`Wzf{jth9Ch;ZP0;SI`n z^nGr@5rPYCg9G8=&g5>%Q@TI#BUyjs!jT`Q9*m#b{Z#pxjADvUf*ud!&MVeD8?1L* zdLW=zx|U6wtW+z@V;a(MwZ(3;>xR8h{#&E zv;*c&ZgUmgjJ+k>#fp}V6NX>$ZQtU`^nuhxO&i&bM=agqI5%m_#btZhST-&h@#m@s z++Qj=#_a^ZA1LiC&FUWLK2`)<^|k}!7prm-y2ym?VbaHUBi&csM;Wf#eQjE_Wv{ng z@-BL_V!?C`Mb?D;w4b68rIdDQ&rX>{vGE(b^p!c0f1k#?kwzW|cj%dUs4r{CL+IIA z$b8j!+}OnVaQX~7@rUUWc;x+xWDf**|Kk6vnNlZ#K{2V_z)a8&c~?IVlrD0XPN3_N z$CXo|WF@9remQ^1x@d8Fs@f?BL#hg{LW!6jSwDLqyE8|&OJ`poSLJ*fa}xR6{JifR z$X(=o1054lIE_;&qyiKFu@7_EJK-HD@5HRn#<)lL5cFY?tPs4vhW|zO;4K-6JR{>j z0cXh!=P%{|CH-_eRnbxJsuzBao~qvtkAKV!l`ws^%DL79P&ds&f$Z?1@y1lpR)nJb5j#pv(%7$vv`G7HXAG zgwPe*`|bgIr@&k}!$8%urE;Y3Ps)!+;^%~-G7{0udL`%PeGeUX!4+2DM%G)qd?OU= z{!8~npBbe68+CG!s-n`Sn!QkxX3=Es%NIeavysl6HSyR(Y8{2deDbm1E>vn$-?@kX zsRei-vonJfsam9rLgg%=JMgF^SL08ny8WSdS@E*1>`=CvX>Nn#1mmEmx7;Ryjs$9tS`T|fa@i3< zdk-AXk*LD2d>7hQP9XcsyW;2Uy5x1VfXW>fzpxqXcMC=#qgw83_E&7A%5|ZIj(4=9 z<*MvZjO7!a@5m-O09tz^`^>(?G0;!4XIaZZQFFM@Pmu#7hn6KTLa6lf;x_#Lt#Rgu zzR#_q#NdGP&iloow3ohBA?M8JD3K1u(0W~(@te|m=)GCAmf{L3H89rX8h-X@&R)Lv zPE>tH%mSn?$(Ve4)RG#YR8B%Fd?1Jgv>klr6B0usB zd}NE=UzwJ*IMb|MA1{nARu`+y+B;8g{iG36+OkAMG-FeNwEv}dH)T>l!QE~4!zR{G z*-kwM;cRIYA3Z1S!1&Jb#6Cz?p$Ms7L6$XSp?fk5aJJMglB%y-c01Cm>5o)tDv15) z=n#3D*vVOPuM{OkKd_Tu^+NUJjw=!gq?gMkEs}S%c6GKsE0yxIVxa|>YA-IGO3-<% zN0n_}9y(!*?pgcvgcn3>?A>?>$<^9xFV+X%7haG$|E%;VjbZU@_1h);;$fct-_KSx zFE9pdBsuMc#BTKRLh_UVc^8g6NA8d4%ZLG|P1+=(oAMEkxw;P1|IKX(_(q#$=(()K3g_Hp zUiCdhrwaAj)ZO9RrvJdZ$9;Mw{P%yU6%D1irO%u;v+SZ#0+By{uF>3TRP1=d1_gW@ zTeEHkVyV^^MBQMi@L|IMmeXk`o&^^-Bse;Zq!1xfFrxW_gTEn@4b4a0_Mc2zqax&!y z74jSg$hh$dRgwFVqHoC^gfUpj!)E8L_Xcw6#6i7wqFd}guHY+P?NoBQiK>RU%=gFx5C6I=iBYa5VA&wu#cy&Ab4 z$n+rk4t|A(g1Oui6WShjaG~6TOq&y8kvzB|lJ`rMogV#EYghqXB{6PYr@LI9<=;ZV z9?d|kQ22?FD#=!sSH_}wVT#elb%EI-E!Ywaj0U+M)YLSN1fsJyPo=kKZSo#uFTzRh z!8~BTk^k(qfbSaMMb1coPD*nvPo3!4bVJVQK%Q^BVvdL7&Ee+o^#=;Wi{p#qIJUp{ zTf=rH$jq|7B@3Ox@63m`&+7eB<)Sw$ZLiEnTh$3yS9I-8MOh{#nWm11=YFYp{d#fH zSTwE||4uMVM+=D;qxix6A$bX3B&$*Lrp`md7jRWo)!Q+wx}NA(0(s3AHEE3GYL{I1ZOveQr_-bJ@x%Vk=y)uQz^^N1IWQQUq^ z*00>&91f6Vf;B;!B3m5}m$^r)sx?ZP_avW|r^Hp!uSZR@={3FUgUv#-a5Qsd{Pm`* zs-kNfDjHnwA=XXSq!QVQEsD~Hy>qf$xn%By?~Hq{o>XH|^^?&r0s5uf94izTb4RnH zWwgh^yh%fcozR*>*_1mFg>a|LzVcg7G}qwW0dsGAV9uB~&QXoxi$u&qYpDlac6!R( zAtRs%c=(Q|B;%41b~6jwww0-F9NM-G8Az@WbZk{FyH$y?ryuXz)OXtAoOP}sTC4Uy z6%42vsQIfD$~#J1J3c&fOS@4iq?^v7vzUb!H!WtrmObKdiussC*Ocbb{*`-Tl75zv zY41P*1Z;_oQXD8qz&;WA<23btAQF@}dpICUD*R(=Y(BhbH^JxHia~R-!dMZF^{0$f zu)?qQ%$YsElV6?SnB+=DLDLGaebg%Wg=O!=Q_B7cqS5lDke`fR+VxkIEqP+`NjU-Z z<6F0a-KBv{xU;TR+*TRR8hXatkm}G@PMKhIUuqxR7b>Sq2{as53nDOqO2htz*g7hWOG8=(a9qdL2xw+0=b81 znRAAmx_kFbLv#e33`QMM=v1sPDD~0^z7tt0SYB2ZBzh{5TL!P<*T2H&y-jUh?bCHU zI_=MiE!La%pr`}X(C{8kE2Qpy^ zX0O@&ZQg&IGir|?ed@@V%%H&xS}$JP)DEp->7iI#`nt~M>N(cCxFnPOtJo5SHPjg$ zBM;6Ev`Xf^X1}@hI^=~8=|W|()U2Q@sDo!DCkF|h6^$qTEc2|)vh_g(l2lD;*VGO6 zc{iQ?$F3KfESAdqQRn+bV~nP5FF2hwQ=8XdIapumR}6KM|snn4P=%Ls}BVZ_%%-slVAM=&Z|MbbN1wKj5ThB0G0d zogZ<|J}jPRmq!D9er4%>^OCo7&?qRqH*SryqsswBh}JW}q~UUSDY_WWhU}dbuhDIB zUXFgrdzI{vbWYtFe>AqZ6@{_5I|zx{R;WL&fcLF`i{5^y={NoB4>$dz{`Vga%7GtH z!84H#Y^%q5hn#fm-7I+be^Z_5k{g9ahKf~+b>Ruikwm_h8!y+<$|0r(jFa4h$dBY# zMPxUTT_t%uNoEys56&dLCO9t}%jlzPG_1zk_%D2#ARK-Z`B1zdzKenG&5G{Xj|a2p zea-vI?%BNN>!b&)*ry{ZznS|FespPr~J_z89ptGbpgv8S+o|dX7qWR9coe2 zKI$CF2gDcy!C`l3NO<48WL`Wt3%|JBL$rXIHKh+VVi^(9q4Y1K9l5V$jE%+v%CCq| zDqDV1$&W-UQ$(lSPIM^?hBT?dY;H3juQbetAgG8PJe?X$5))D{{L^Ivk3`4(Iy5%Y z_|ndgqnvY%xq00VELL`y zqD?jOH@B~B5VWzFUG#tXkwyQy|E+z6O+9Es<}+f~X%$)+R1_Mc@qTIMlUQDNMzChW zH3sXwAyqlTVX}z?W96r*$7C>CBYitvo!OiF(D^E>xsF-LwjW(PT2%{(+>Aw!ru=H* z(4&nblfmI22pCJuSHjm7Jk{s~vb|ip6kMDn#3Ho_Gg9-q%vt4Y@61qhQfe7qn`mNr zlx2DrZj-2-tV#D<+NOXOz%8MY9FZAtOV8LGgUVv8z>#Xv$TtdSk?Znj|7!q^*CINt ztGDbZY%R=!Jn#dv?Dfkqi<$oH_7|52NPQ9azXyQ}UYj0Cm;NpruRAjq_h5cw{rHsHqSxc`W@iRxVjX+EHGq1C@*A*>W&qloOd$XlDpM z98#!fgh+lF{i~|vuCJLm=O$brmPXKNOY#|C3CrK|3ok9YO_UlGVV=H{Sas}+k}a|K zqH#2~fDgdcS#1SYPK8x`&>Gg>D-aRE@`vw4N5UY~xD9zr!O37oG^?>F@`zV+w0WfI zY92K;H3CC$hLTS7@nUh&UMz|fH{Ir*qr*q`1gu^K^qHiJvPmU`La9*VnmXF@i9$)D zVnOZdD@Kp(iNDviszJsr*pvMe8${a*9;&qLLPn$?kHZvgv7@+E){V5r?qDjBt>ksd zWe)WU*cN;o&JDU&0n-=#v}j{=LFHxQ(zddXd`hLrHg*Zx`Fsv`B(D6xML(#)2U61~ z@mR&**on7_*YT}M840~m@jZCI#|A4Y7YwmwXCg-(+$MakvvP%ww(+xp4d7&XM(DJ% zp|gK*aogvoz&WPKqESTH;*d<1?72^1~*%*XiWxvH6M9yppkk`3+&Ub>1*Bu~LdvQAqQ zg`skPx|SXvsiwb?9>U+B+dNWqbL@&RPghQ}kLPvvUb`N(-~xHRuDsVA-alB#F6KUe zys+WAwPWY^bFw`CLyHRJG=o^!L=*Q{JOkD5p1Ip#Sy zujRM=m8j(}`pw_oFP>;9whSa7k&?%R4w_G8C#GdCIWx%bSNs3qb6?F&ncL_EJ21%A zW4>hnR_B$?kWD*)Z2}8c!{z;;#Qh>gB2BC;vG$8S6og<3X1x|^WDUoO#HB&4x!KLe zmaAk$$Q8m<9Vt{?*%L#N>Rv&3@Md4r{AFMB)Gr5{gS@<74-x?poxo~HG7I+9?FVh_ z&-{#3=etcHomcK0J+Bb6CF$NGn_`nGeFXa*Cd+*4Zr6 zMw&+R3*ylt@m~lG(HTiERHk|1-)CJ?$u3LQ4C{{Mn5$h$8h>MtGhdJ9%~kUasf1Gb zIu!+_;z#!$?7_{v7PZa)Vt%7?*8HnCc&rA?&?dcF6}L;{Qtp1k0G@X&JkFP_Y1KiHhDeeiVV zbIIMQK{QaOs@0#~e`0EWpq~EE=nBbD`LW2RitevO->NQ#=)`p4sq22>{&#k7^^NhX zO7a9%2{jX+3hj&!_ciw`;@RnSBTlg+f>&6k9u<~4P@F>?Q$_gH6$!O%7AeD#1EnwL zrk#7p^udYDHy-}c%k(1 z!A}gkgIWWCCsc(hq$lL6s5!R3e7&-xyj52FmEKPJfvKl%U&XNwoqZmhmwPM9@OztG zQraq`*~KP@*b8^@m1gTnL z>?L3y$V|kpi2AYTWJN^3x>XGqhnn`c_7nmctJamXmQ)-v(*Gyb=Fb#A2_Hxu(tC5+ zVmf!aS2p6DT`Zly_~_yzV)F|2JJDBcA~^*m=W!K3diMxCwMBFRxatvBLLSjEg(PBd zJzBJ{KY@kIeSW%NfTS~qthJx)Qb8givVTeMx0Gn6mkY~dUs z^gpp};wkH>0AtC9wHELnnNYr)_B@~y^DHrmu1_M^nXCN8ak2M1GFu%*5elm} z8^3dG45Z&Oz*u!};`%eq|Dic}eNXcg@4JqkIx>iSdG1cAt}0nV4_9fJ7|UO(v2rzO z95yWKYYo6^X4{(oH#Xc>ivhz z!T;Cm%irWwmxaPYxqozSvp4da_PE`l6|kwyz?SYDfx}c4Gtn7^Af74VcK7P3U{LIy z=4CW7nSd9HZ`$YB$M8CPn9dYgz|9EyNbE9E0q?`8YTg>$>HWIkZM!w@HEw;@lo^O? z@Lk{6+zIXXH^nwaJB+Vbvo?7bioUVMv1;3H4pTRN#D z&{NOL-vajEI;Nf?wi9$qRH{NR^$S1xKQvx{_VvT+3^nxCoqRyXuJ`uCVR_}Z<_3f# zvF`uOuD}*~6JR>4`SRi@cn(b0%wB)xX!iTB1lgb#po_&runnS3*0dRpOqWBJ+l1}?EtI0(lge#;!3+=H zDv$%3U&!CI<~QHY&*5e1d+as0fWxnN{|;RCW(87z=H8d(^!Cr9jX|gQz#$k1`Tl(K zzU$5Xf6&bR-JT=bmz)wx!Q;6V)z3m7I6qp%-}pNdN_EhTnls}zo}Eba^oU{I-g(-) z1RlKP{XP9y%HKG(;M_QMecQL1i^rgfP{w_ya>Tt_5gvwOcd72CZEoW2>9K^yL1Lfp zkJQR9$1k25&*>erE;FxQ$*i|*L4V{VM8x~HHm7+VxW08qnzjC%#;JNmzl?MmES}wQK5w<>j5D#82PFHGS@GgK?LVoc&4Wf zlieipFZnB)*p=MLI~!hSiTxVTxqF3A4dL2wCce6J#U^={G~$BQ)78|;xqDhFLKQfH zvnNw^s!m(|TT&Z-jCPh@N)K&T4rB)8r7hh#l}Sjf;jVuN2XC@UE!!%w;^3@+pCz+& z!CA`lYP1e796JjglC{fO;vwCJue~K8NFhDPwf!6$z%0PZBEF#!pxqlB_B5oDFltdL8V+33H_joC|0aMmQCO z*8JPX7mtq_az$i;yUl`B{$z!Nl4PpA*!)uC^zlILYci~)=`k{9aX2M=mt9Z#Ga#$Z z>J@7Cd@6s}?JnPiBa$YzT~R*Jd9?IwiHKM-M3t}RC)M#n~HM#qScFv*e?$h%}fh{v1HZ$18V>a39vE)_ZMxjn+Md$gC?(OVm- z;mg0ArXCgT_ViqzjEp|(ac&yn#IAB~gxw-+VJuCLh*p(#C80c)3g7+aeH)G&Cif@G zukOEz8b!#D8n?d77P*VQ$Mi^V|K$6U>m|G)vzbsO{+VyFaw|<=q1R5=T-UvV49~mV zrTe+sZ+`pE=X9@#x%O`Nm;8f-)6S{Pw=?#uQfts|=i91}XaZsV=r*-sdfTc+nwzCF zY(!HzG^x$pZRd8kiIY;fOAxCed3u+1re0>5^Sae4DA8*EJ2@270g17ph0-*g-p1pQ zetegD&+DJF<|%4rY(#Ru*W^{pc&b$Dk$%vV%4Ls8hHe#5KAHRNpdDDOCBUT*!lg7; zW7GNY?C-Xwq?QCN+a@L`Ge!cz#@W==#^2wj^b~tzsb0nz5V?Y#G1ShZfa~}^JR*0I zsJ$fUvYhLeom5ZW?`77#PIx{mSh7wex$O9%0@Ft}Pv!uX6gdNSgH-F3(IQjjo%wB+m;VpP?m|-{75%5)-H=Ih*CEM6 zjd`_0^)>wv?~3TVU$}&=sD^PrRFs^ttji8=Th)BEJOnCJ_eftBPeM2K+a)q*Xq}Zy ze1ki3EPJkyyd!5M4HYDddW3vVGCD88rPVw-m8S^RB?ltsS?vGrjKprO8B5!|ED@6= zLj}r1bvZ{t;`rzkgUm76<4=BabUK)GduLyyHR#DG5q`LXUYf&_kt*NGHx3YAkS7cg zqgPt~j(ZDd;ZKl*0~L~0LG|rkI;k-dXQ29(^JR)f-1+>#cwFUczo_0jRegG>&=xe2 z8^OaR4xt*nLuROw5~>r#^OZ%8)@6ovX9G=%u9Wo**O2q7TeehP>6H@2d!WX#@@}ew z>^45Jj#ly%Q~9$ODi?^Yo~B*qjKmAOFXY9`#aA}Z(a5ggJ?_&qw2|3!6ZyU5$$ErU zlGX2cT#}z2bD5H4*p}chWC|C zdiNaBn?eo^qBQQvhmM_{aj4AYTaKANZTwo>5XH+~%KV&~Q?_xA6XhIzvYebt5sD^0 zCunYWD=*qt>!4y9?=bbt2&_*ujcksLmqkHmrS>Zl#FoU%PbM6(OnrLc36TsqS5d|y z!)2t%`Yx|`Wlw|09u28KQErd6g}M&+c=_@sKkrxlPcQ!w*{UxuZ#uxXKMJsXy8WE$ z2cGC;@GY117CaApq}u-9+c7MdG^~1PJ@OjKd>P7mwI4s9!VaHaBY#RpWWG})(Q@WQ z2E8czr+7!cGU#tmq0m?CxM+f3>=MiLb1E;am16XJdWADQB<>D9(&D4ZN*gi9jjj8S z!%J$^6?AL7Hmz5vFJU2KP0>qJ`L>EdO1=if=VaI8P>kpWb*U!k(hi09{#QS^deA@jF%K<%YsK1z5c zM(e?rJ<00+=hMwJk?joY9MMtMbZO;qRNaG9Cp(fOJkRSAahhZ-vEE6vPI3jhSzp60 z6R7#CJr;UVUSjtIDgD_WYOBaIz~t@9NQqt=O17|Al2=kyIY45qpoWZ9JVaSPOE+`8 zdq<_(f|=($8Sa7XSq2=YsV?`yMqiSXP`ubmV7uFR%rb)Bm1WLK4cM9ny#%SvkdYCQ zkuf9r82K-OVw8^7lC!2C&60{}kZbc!+H^w#!xWb5m%n z=a(ga{P{~D6&g8q35UVQDuYVJb<>jHfbz_>bQE2!=1m3?p@+|(y1u*ck;3phyUiN0 z7A5&r>vuDp3exwBQ&#!r;3vJO$bX<7L#9!9yU^hu<`&E}vivA+z3{lmqR4_+*vpDL z6HXOb5F8?N#}(+iYY~z!{Ku>+UNez=P=cOYdyQ@m(;p0Elw2q-+op7sS`{0)V^vI^ zElu%y&+I3BgiK%a4G$gu+}|H=%x2S~RS{lNbgD~#78)(2=3gJj*Y5jLb+wE5tT z4WaW|_Bxp- z3o$A|ZdpTn6kryl=s7WCwA3jZ2 z2a*0~lZdDAX>8*rk-EvFoUIUYidcA@o%uz<$+{(;Zt`!WCH8MMqMXIDbU%~dL{=mt zUN|+aRv5&}e;A3UrQ6(=krCyBsJBS%%adPCngog@+9WtYnylN{@&OVg$VlvkWp%$_ ziND?XuJYjZ2;{pGfskHxdnq)cWyuE0U3QO63N{>p_apTb`Ao;Oh-FEi%-b7GP`lt} z`Vm)t5)T_`aYJ{^tq}RQiE4TL9`RC9EoEQna2ozDQxrkaT1n2Ezv5CcGOm9%YY0+4 zQ(pEj?-4IteqI=oJ)wFxHz?h_Q2zRZW6BOyrfdo`95t+-Azlo^U<{|W#2?cM zt#z#!FTJKM2tzVMzb43fp;>elvXzo$Jurd!RQqG?If!b@81|}} z>U&TzBEDBL@vC|QtZL0v|1Vm$o6IG+i{;oK)Q8GOF`a&*@KDFjjtNrTjr45%~a?N+va(l9l8%v+O{N+3Pt_!^Lk` zap}4TpR+G=Rlkd0wvkLGPOUvSxUm~rQiq4R=1iW}(=ZR251EM`IVahIg}HNSool$n z2J}j_FC}G)EQzm>siVF6*2_o4(^>QE^Ye#=qAr@|n#JB-N6j@!^Qw{HJZkG6zEo#o-+cDV*Hzc?t3L7i zwCD(}U6cASD{?RK<5HoUe(ven%)$0d1#@F8&ddHvy_x7laOWOoQvTX7{Gr2{$@G{> zNx95l9w>KFv|taP-&s+qg&StWyy(v78odp3v6rZW3ui%*&2%W%F!9KlAOue`Otn&~ zfafQ5Zc7X1tQJaoxxTH>9dHNc(fh^XAL@oi$9ktGxl5t8Q)>?PZamuNJk(8+K?dq( z+2LrVRDNnh%WT)&S?ND)ZY29=H6;NB%~}5Yr!_5bhj#U@_#Uoe%-rOCp3b4WsEveR z$PGKz?#@#L-hyAzi_SSMN{R2mu3C5_=oaX2;l1W>p`Gz>WS(g169{{?*N2uLHMLBnJ=MH;C{1Ns)lq|bFkF4nk4-`6Ry+{Gp9p0jQ z_!2oFx*G8vut@WsA$-j3dkCel8fqC?7wtDbe^_0h3en#P%v&&JPvt4BBRgNrJ=vhn z(WeeY9@iF*HmHH5=P<;x*yWpb{s{o%`Q^^CK5(3OS$9O$QiW(p;tQ>(z~N-QzH&1w z&upXGk(+w=^U2+bnfBfrf`vZDs51xRQG{n0; zZ|z<-^Fcn7vFPp>!%NT6SBqE*GS8(v7`jS+%KX6oHk~xqRC=5TA3WHRDxF!%9A$?c zde5J6B<3GIC1*%|z+*{We~;b$iTkpfO(!#d+1XindM0`aTyjI%!jHFq*ONXTG0Y7= zvE$WXYM_JXxwapL2GTL)5+^xsqKF(`v!lbR-Jy~ zX((1c;~dIVdZD*y@0UhgciwdibV1CT34zGFXnlW!V%Rkc=pfp4*?FHmn6OUuf2&Oi z0v{l1g5#WWX}C+J#oiZl|NijF4hMtd>#9+O+`vj<(!c0W?xTmari5s%jpX6aKq>Nq zTS65v%s<(NxloVqLyxj=l5tS>CoUXLk0;tQbq)XcO4amo56*ix>Ak!1rR;Dv^$&E4 z>8#~qJ!j@h$A)r1Bv+ao`cx@vB(hQ`BbtY6tURvw^of;(Im0~t9mCnoyTggk#Sk-A zX2|k&cXy4mo76bFy6&+Kb|~^RoXP5rkx7dg&Ae<(O2o>^#7_Ym zMvzV3#X@84;lYgu7wNciD)aT;lWUF|t=0Mi{s6Gv=l%{g^}zW>x?Isx=b=haK?ZS%00mUM{eGC(PSRe^vima)u~M?|tABOI{|LQ8u7Fy4k<`Ss zCkHNW;0j}@-%;=O52<(h+w)LM8TUCiu{26$`RSF+j!f~ncQf=BZaoG07|AXzeW;r_ zj|KPQ_96S7QuGv7y6c<=#D0A;fuHWVl?{`biRY++mkBk*_&z4?3=iM_D%lwv3-+jGIy*vxo;v3j%DQ}OLPx& z1ZiG(E8vIYO0Vm@GjO5w-D0za>uPc2nDR$flwUvWERDc#$?U0&?53Jm>nTyyI;mVI zuX!&w`a%7wO00XojmdBo|DrbrtR^!nkMYVRr!QxJNZkp!2VQA&M&hEJ02Hs_pW&Z) zT79PYA1W_S9NgG?%H+UHE|9wa;{8xWPN4R|0IuHW-sx#wA{JzLT)A7>W;i-{q13mD=w119%dY{U4;z#@k^GSuC!N`(AAqF6+@d=izjLA3&60;AnIfAH>%UR`tTq3Zhv@{~ zBJmkXMw8^M7&^;Ko*ZA1ihSO8{NK7V|0f>tR;2eNJ)&j&IcGyCYeT(ihx6(4AM1j65G{o2Y@yw*yX&@ z`I(PIV%3AD+iLJyk!&cYd?ZkDs5I{YoR?iUci>66fpZ z%TL)3&pDNQo_a^){v$pGOYxdIUG0aXCwZ>@W@*+IZ;GM2!H%cK zQ%|KTdOVdG&x~)N-|p68HOE?i7Wbfi-abVhp=0PyFLYHsZ_je3@#I>IoZZkF%RK_} ze+SEi9TS&w??^T|bhVt69gOjcvuxb&mHG>&j8}k)j8|;>R_VW7Y<;d?P%ork`OGOt z#w*SXpLrq8UsUw@&*~ABp3k4M82RS~X2;)rz>@SZB(;vmQ(FyxGg)!}^o-=#h|Cn8 z8u_;kcE>K*19oc;)MR-gcV4&Vvxr4=iL~wjwBocje#^cVlB7^l#*Ejj# zV7=l${p4xQEI91;yaO;zGKJAN4ELXno3LO90IU-kY z)mQg*`iL4v|MWXxgz#f>TF6`5M79^b2LsIvMWcLOORXy+d| zpL_m+B$`&zdY+#df^#_{SE*9M&c6Z$o}`O_aGRV&cLh4Go>_^ckAbW8O#{pu2)K`GYgdGAf@&zuI({bec0dd^4n?askZ|DbsA)7zaRpI#^)`LyR0ijL^s z$$oRW?qwEA+cSStA2NSX`aj);(gH8fC}b|cgI2A(?_}I{c%06|n|e;wuM(++gX>vZ znRMUM?-HdG2ld!xd zo1c_@<2+ob?|a`nNECfWUrdtalkkWOmA ziYwgWrh2fEv*guk>n_wNk7sf3&xKDI&Xu}dByp|&LdvdF+OKY<>UAq|p`LTBjdMh> zXPj5-)5UUjrhX#z&H6;@-__S}Wj*m?9h-CGf8+|mffJ~ug9hqV@>n`7ZQi$NE>nAD<=dZKB75_AW zhvc{5nYQuHkZs@GfWOAwHME!^vf#kvs8`YGXFeK#c@mN}MkM{n*nhmK{)@)i8yLa~=ZoWKFOI3G!`fuddVJ|~z_U$2o&n@35-vS1w^iRG` ze=F82oLjC)WT+JGU!b(N&lS&&5+UX%&L6Hl*>`)$vu{bY7XMb6%8)1mw@0n=B%SgG zQj+;1ceusX9)FLXaZ8=zTJB4D*y0X6m;aL|TkI)ZBL4h>l}Qb9ho3%Slz+N;BKz0r ziHcpmwRyt21*~p8QFH!Vrk4H#oii!=hY8T-doSQm@x3!xDcS+&PUxd|-VW?-Lun@^ z4sv*kDA!UIL|;KPY~rEu`-2VdWoy~${Xsf#7?MrIzAMgd(1}W&q4Qv4*LUpGwx3}T z7bEjBvv@$?1D>;3&q{}-L~kiQlp?2F@>xSW&>8C%x;g(%?)^AEgl*14yHg4BY$?gO zjBPDXfz!hQ^c7^%zmX?{U-IC4FbR5^gFEFZtg^|8#w@ywGJDP0Qi|`mcr0OrRU1sxdIP@N-dVM!`5)K zG?uERUa!-wsTxj&UVsh96?B?ac&xIrKgr(Y4Jrb$QawJ>Yw2EXXr41?cbx%((TG+H z#HfYPur8o4hSoW{=ADt+2ztaR@Sl&-Rcb4Ox+Me=I14!BfHjmFtoo`P8+Y| zD~U#Y4?RQH!uRERF9~EnhwBHDC9U`+;^lQk<$`SLO}r*!oZG4n2ah$uw*bi%*m|{` zb83_(>__b8!((pEef{BpJ!(FzT3EC_ za|xbC*EFNOm3u%-7ucWZ9%u0L3Z-zLHOs74W@S>vv1%|EDOn{>xv_swuuXa+shkDR71NWTSF0H&!dXHqmpnP>QX z)fH%G&>Ycx-~qj)L2Tv-PYI16;c=cx&y=WdDjAS(`W@;=n(G?rMl{!o*ox2#JLQ+N z=yEN1ggMshd%n<&UJJXwNc0D6G+2wCKBo6@jT| zc+{}H5S-z3(#oFi1gC@fJ!Dr*&2OD%DLN}o?f^WXf$UO!ZT7W1IF|G|+dQ9isbwG* zuW;mdOK^VTaBGd%h*}Cf{AZa*=^Q?WR6>=IKyAuayO!6v z2#TNAJ@UE#$i8IH(-mi)Q`8rkHy#P$+B~IU!9VEDGA13XHSh4?j6w(TOiK+5UI>0{ zbJ8aKG@9xZ@Zopw8h=%YJjq6~L+4F8`xZo9*N^1@Hht6XY z4sx*~{6piI%@w9M;8OMIlI`}mrFnd^KOvIYD|}sZIE~4guU``xTN_BNm90FgB3FdgeD-SU%<<)|^IQI? zc&WHloZmVRjOL5(7Wau&bX#x>e_QH_GV)wB+3|~(NhHsL)<@o$F ze3lJOWO496KO>5_ouO1v&VS&kYtYGE2eSvQ!QeD%L{>jUsyKoti1wgFReUC+OHp8KAKQ?$9hLYmojF>0~;AB*uFUpJjv*mP2zg=1N6O4Rl-bNoBP4&b23~X=`P$ zr(xrN6VGay6DNbzTuw7YPt{kWt9YC*jGqdJ8sv;tn$giQVVYW6>3PvNX^;x?X?Q@@ z3JgYPUh(PU&Iwy)k;x9lbKq=u)LFs~LN>|Exg)TZVdl^o>EU^)r4 z$Lp50%Q#7#MMkHCEH-6V1jI^88=`Ey_2Q2E-K_i0I$4{*qJ>W%LGR2_z6|b}NHbE*vppir(5nc|xgD3c z&2G6?IKwHjFc_@(63%kN#76yAJh1tKS4bLB7ac0mrAE+CuS%9A;KiV z!k)pN%c^D-4~VwV8azjdy~B>n8N38L)&myyq`;EUl>NY?aolTBdp_b8H%ezjp6S8o zzIPmLwNK(q=>BB-Z9WvmAn$~R{DV%S0C7wV>J@N1HAqed8;5D)($Kmx3B2p8DfKeln=<*V@o>OJ6Za*GF(1T8(x)8b-i(j6^ce9d?o5Z*v8I2?FYa+SkqjS|1?*x6Wk`!VkUp3qgFa% z4ou1h_z|Rn_qApY?11J}_HuSMola`mtg#@%mb+(}YWv+3S`-{Z_v)L@R5GIjUJ7sF zkU6quH4VipXFp4`#%%J86K2D{Fd0^YN-*uoe&Xv6;9G+|U|!F)!N(4%#pT-KGs7INOphT;(#T+H==2-^4^IjNwBERdtxri-#QgoR^jUGeNTTq zrTrZpe2rG9@NrG0ifhR?PT|q0sG(+7Nez1OGxu2=-^8x$#2=dZ)pRRzD`XxbQ?5NM zyVtzKb1zVAVIk`P7RV*^CD{kz1D)LyJ98HQU+QlDBlmFT=nR)m!=c2xJQO_Wt<#ab z8KDO)N0|!}LwI%eOfIkjv6rIf=_{Zuic3S1ACy zm~9)+Sg9Ru4A;z+FPAwAYs4}m;+DMY)5z4^=%qgTX>Zi(0c}^F11OB#=;Xe04l~vK zA*jv`7avTgW*@8$dsX>cizf805M7(gUWUs7F?~H(RP`0Qid0N@$w6w@U|0JoW*AXo ztj!9iE7gfE`f5v^k`ZcK`U&B-q)N8#+&<9TuFpIU?2k$Sdwa1y*{!K+cZ)kC=|LOKSZrn z558@S904B_+9oow5r^jR9cX-Q-vf*e&eXypLObV4%IZ*vc97&u+j*ejX4et5S{&SQ z;O>$id+Kc3pI=0AI%whk-TrB&CX5aA5zZ@UvXYi)PI3 zYQ0HCo^I^%?%H0W7q5~`5hOczfE!1UfuHIq74sBsWrbNh3)NW*um5mFMIHVW>e^e{ z2NHX(*hSG5(Vf9ec0+Q|qnB?rQajf6?(Eu)v{Y4$UaRpW%0+mulwOB7t{uzjraNKP zOQ~KpFw+x!xMvha+4bjr&RsmgIc^={XQ#zJ%T2jY<5_9jrbPE!T~3r4YHI_pv4K3Y zQ#Sh`ltezE5^SWp;?ia!PsNw0C~`@U`Qm)BVf#bA6UE=aMy7&~$0!j2!AH?s$Bvukv#5NAqLg3SO)sFNv{VsIVADGNM*Srs3 zlwTXYc3fjrtno5Cfrelavt!p z)%Yp9zFZG2c5H2W?d*eJJrF@x@LqnBXclxJ)`44efwx%|x&1jc8cw1!M!OzqKVluD z3yF@Q_&Zl=tcdg_aK*&yt|JiWL$M~PIfdpE(Y4~YL!;7uyI>!G(-vDO_FBJVl0M2A z((J$=@KYA|a+Fhf!jL$`-+Z1O!D|`W2F%l`I$#7^N%RgT%bu;q9j?)z8)C3ryS)h*LiYVCty$HcZrD+-?|6(^vS30%$Ce0sefQnUgO|mw|3Zfz}{qYe#5!# z>~tm_P9JmPauu}jg37*6SvT@Er0MJVAPMeBOd-zIX;rH0)NK@L+Reu!SxxMex)hV* zU&^>zBDC>yT_hj6|0mEMMJ!1z!{xbpk4^SCiV*apjci`FLvPNz?A_Qp>%HzZhZl+q zKs@BHLZ9Nt2s!Un%>F?-6wj&V9oP=l?*(K8i&6zjr*Bfd(at)gPUYisZ3AH-*1O0oTqIDiM@|LQt3*csf-Z zNPjs6-bdJ>Gp^+Y=wM;EDjO%_%gf&q-9DYV_E==0bmiLUNX*EH=qbB4$-DgAjUjTj(n!3Mms8!X z7w3k6RGa$<4&g^9_NHnB!wz_z)OajZ#L$>d=ENXX8q@i7;^*}+$*$zkpIaVe>Loc& z^s10a`J!EPi^VO)tDBin)MHdus&(`mrJ7O8Rb8za;Hma93-%OT(u}*&_0sWnl#Z3J zNl($3;u<>33ZH@041Aa@;dPSN59dLnT7@qfo>S$bJu5kjA_p|j1LJJb?^^szcn7vX zCY_Gxp4E0ZzN{HvF#53#2eV&?7k9&hdvL`v5>IRa?ve%f6T(ZIQTB>Fg?T9OgqaM_ zS~WWbp0}RBvkZY~lRIz^VsJp+8a~8t*J&HIuX2G6wzty2#;WgpMO zB?pSyv$>Y8gKb)3E|F$bJTTj@z2$jDHeQ$w)8Gtxq-9DR`h8uUO>)~MhWdL4&KtR0 z&VBb`y#8c)$$0Pa@2S)3wT-WRT=dBmtQS+@wdJM#-?arBe^n?aqjR+h!#1Zqm>D?Ve$tS_Rk5= zkE1orLgb9&WhK)5v_-xLt7JFQk@S-sVHM+oma$|8oT&#B-UPlCKOp%>BtVA`OQcTX zbmyt6?P4vq;Mt~vOySUg0Z+hjZ6+IC`9^5OkDEjO@HuPWaG@}e?2+FKexZ@`Q|>_S z5c5DIQS{-NDi#Z~Zp}&YY<8&->Jgx}vRj-#{~}m8%hscV#0o_tcVdr?>f!I@eQ|)Fr8_l#_AM(H&;`!S$3% zg!MUfgPOxSrda~}WW*i<@rsCtq-BF3%Wb4yxh=WYiA3DB$t0*K@_;S^YZWyIeDkzh z7%de3bSIR;UW}Axi`C-J!tc9*BYV*;F`ztIZGA9xBUKYG@kV|Z&saer&q8qc1gA0o zkQ%Xn&Wp$aF^EAr7_YJqfF{vGiK$O(yRQ@s$?%4}(xCV;y0lgNDLOARu*9n$ia!OO zU?xm@%Dq92(d+foYBam!;G*pP=0(CC=9(pDA$60J=6A_nBqQ5Aqa$A3>xdxL!LgRS z?_d|)4UKjOIUzgy)*X#by@Wb?)yBWLve`?eN6kxaVc@z{_DZ8~49(kACoy!CuH4wU zvVM$ifR~P6-+J0>c#W+q_!}B@3v4*(0p#^6Izi33m)%)3)-!G-4PyR=-VLU?q1&uS zSH#%GU!cK<@DZ1R7kq{56LWY}@mNIo*W$F1Rj2zOhwfmtNPd>)vU|~$B7G@}UZIT! zzIgw!RAe6VROC{79uoJ=TbY@Rl^@LP%!^d9&=ouTY9__f6x*}M_^^(~Bei5Ai6rmB z>r;40u%xG`rCjT;8LuPdmg`D$>YZ?Et|0Cql-1((cWd4)3@>9DMm-t+zu$>!S+;g1 zG(uLi@cFsm^5@CP*q^eS+797Kk-UhxtiA)9LQZYqd}#MdR5x!D?7>fgJkU}ac(AW# zdFcta;?~~V^JuM5yS}FYDJ<=w9?fpQ;!fniQ1(QyygXHg;;{f;uQ%_=gaylyvv|tT zHfpN2_w@s2;97s*_6?I`K z53nFTbMRw$%e!l zFKbmv=2=m@L+x|YyQaMc*YdN_tA|v_^0AxSRqVHqES)##68KtP=-xLLOYSgrz#Ml7 zDN9Bfyc$it*Vt#BR`7+`GK%aYdFKkGvT%y`9!H9Em+Mk*kLyHE;gS~~h?HAK+RgQ2 zhv-@ceoRf(DWF^rD~~^J|%(;(Dn$GMS9k=<$v6sGv8S= z*eg6=VA{d*ZW*BS1n4B^;=buzAw6e8%SuTvhv8u_xA=fa5zq9KrxHik_EBeswd(qh zA~OmDg@H?-Xv++#Xk|ng$l6L%Lr-(+saC4WytBcEpqKX{sduAs6i&&$)#R&ML9-JH z*TS!UPPx0(<}p_aRF~@NFW#A{0%v9I-JX;PH-cgAB=cx#Mq7)&HoN1Vnh~%E9~>}@ z4me^V0OeJA=ggFh^r_*ehc>w{PXxw>qRmd^H2jX3|hCxUOXz6vJwob{AhD8z$ll zezs#vyFzc8J0l-CYb1UYks#4sTK7Ox6lv7*j1G|zp5W}u7JtO8A)>}>8N_wMi$?yKdh(6QzPZ72#i(DtAmadq*`Yby$#w2Yj?9wcUip36xA zmE|wQH5MH56#IO`8@Wx-iVMz#5u!_IT%6%sjk!*k7b-<|=Vy0UXS`^IdL|(df;sPM zu2J@sb2&F#s+lR_HD(OQl9DSVf3E(vczu!XXH3x;o9sV&TYOqd)+(#h`Z&HyV*7Fz zi7>?W4Uj<7oHH&X5ijq0JsqZ+oFIWRB}*XcyAna;fjQ|OP@a|SKf$qx#_$N7TpRUu zliqIfigu2u;D*cYwfbfIOtd0qqP4*&rlq^js><8XKCNnG(5L7`8%~510m;3Awi8s6 zT>@%z){SQ+)3rJrtt8$n(L1#DLGD>TZQKwUsePfWpX?uv>pIi!*2ttgNvAo>#hW&q zU8VJcKaxvd-bR<|(Jeix)0S_~?{APV#K7y%GqeRj=3^Jn4kNA)28rL%c;pqS-;)W! z*PYIPtt&rtYreU*LzBTH&CdtrIW4^|+dnKV*bDmQ!O3HMBmYA77X2vF7SYm_#a}Xt zZZ&F9{7MY+7B90_Ea6Nr5N=q`tG(eDj_gwh$>QjPFC;qN9!`g5FFNpOhf}`68OiTy z$+yI;y0$Kr3^PrEuV68RFZQop0iYX zn3u#Lx@^q;24_rtYumx^DLB5R?Xn@a;FG;3_L@KxPRYp_vj-n*p-^c1Slj2on5p1! zHp&5-jq@ttky-RThuI3=3tc#YJD0os&v-cw7#la4(7k_fniHwhxZ^oBoSQiGgSM3! zNmFpD5 z-Mh=CCcXhqie6Deuc)EL$J`~NNtr40=~*gmD?BPYdyi93Ep4#Z zcq>1OZZXQ~9TPnQsDU@)L6vNPJ3BZ8eD?nkhn-AG3|7n9N%!!3^+)~d`@XX8`aXAT z{;P+Nxrf}{Na1pHmgx3#mUF9c!M&B+nVY1F72b~B9hx)~4Fy!yw!(+c^;CL#UK`wT zsF6CnrI9(@%gKA5!s+pQ^bzmgIbSN4)02G6Z1p5xDM%GU&OA%}L@Zw7FhDFtengc2 zAbeHq`q;W>E#}RhbRV1_ zIK0oDpxk)^XegI@gJWu--c$WbeYEOJMPFUjcV6YXwYiZg2OVjoW>mk4XGz94gUB-K zlargL)ZPKl8B5kis>y}qAkw)@b8ShMe9JPAb}ZgGbYBAb!7VjW-=S_Ra5#6t$$-I~ zJKz^8VK3Ah<(2IX1KyvFUS?v#sRf*n5vfrMjD>uhVVh5h#6frS3L(*QYTEYQ1TSvR z!1uEzbvGUBhq)bO+;pDNnv?A5EV3yj_>5#i$H=HC!>6?ldK`(KR`r`>WWoF!v9E}M zyP94EP4iLo1X_dR>t6J86HnLDl{Ba1!Cf_<7!y7d3_5b32g3#5{DhWLM70APsj<7SDYinrYXx1;_PW(9zxN`Yzn@ zbMCKQ%uOEd)m61T-8brvu2JN~cW_5hg)Ge1$&ATu7`b14slGQn5R|(y*h~tyUa5~| zp%ksz!r>CSF0s%FR3LgwnC28r;s*Y{n)UP2)VSy_tru(2dcJQ`IRQPNvx(K(9|1~Z3H8Ruij4n!$vUo}EP`%ZGE!iJx zuLO-%SAKFX6#gvt*KjwfzSunri_n@s@|mIUI@3EWZ^F%OKAP*JqJBqS=$Kk!sV-5Z zOV1Eb5P3#ngWO9H$H$$%bg>=GW*bJ!+1cuW|AfoW&P0?~?CX)m(vE z0DkqH$6B`!lwZ@)S&>u%WvuR)hfdZf)t}vqhej5{^rSOcz(UCFq)Kge6}&ZepqIBK ztI905v>wf$PR6-Z64eoHxxJH`r{U$Rz5T5I-@84paz$I4>h|tN&lI^0zcT0R^U0S+ zzLB~#bIG_gGVjb&qu(7t?{?fzAyM&<7&FtEMX_7)-CwC>D*$90^8_pU3O64PSt0UAv~n$ zX6KZgp^=hU#J#7PY$!Zs`F!RS-cP_a1+1@Dlym@AUMsD`*s0slDu5 zEj@fKodQZ={$6x|TJRg<1NOZJH84!oJM&?xz_^}jaCAoDt<2zOU!h9 z&M^4Y?8s4#CW5)CWB8Yz8IW2UdIso^#QoxkANgs)u=sEBp2<^;ARoXB7R&{2Av*^& zLL<}?ZYpyF4+`3)T%%v!P#jCskuQ;FPw%hoZF|Qe%^xjKPO#kW@uy8}pp&^*uq$54 zjXNAP?2;71BO7YWcnfX*t-|Ro>^K%WIMe39qGh0Wsh8G2>RsA;>7h$saF5_wbNx|& zue(V{!tmEGQ7i1dXCK{iee0-q8a>bV7B_%lM6h$zb>MzvB)|Mjukm5&Qn7H4stqO> z=uL>IedLEM)Ap-Xu||Sf>)%8EKI#t<{>-R78yBzs~5s zO-6SMe?+3MJm6>EcDOX-~H&JnF6V>qslF>{w1lOIH ziduF)e5vT#TAH@3wZ0|JmF|D8Vg2G`fBl(DlNYn|>{BximSsZ!F^@-~0+sY59vRJeZYQp-Rs= z@mPmC^0G{Q_Gq=}B06&%UMs7`x)qNGxV%~XYq?LZ?9FAU{w}pZGW0_jzBo$X_vBtL zB%jlI#Ow3bXH=#>jpKG=Brfiyl1LR~cBM zXT#9%B#j$**#1hqJ`XjL9sU$1gHHup@XUYe=`FRwwMVODt7(0NtgOKHY}PTow8p1) z4LHiK_870>(_hJKD^iOzM?5|$lV4+`JC_<3}!OmZnTtd!RK zU1NUau)S^ItyIrQ0gYlZ?Wb2h>(e#Cy)XBz23#<@gYYN3_ej}PQjIo?>f^ksO`Uh@ zS(mM^S>DVoPH5fANe@Hmv$~1MUyEW*9bsyy-ol3uT`FFxz4ef3_^c#)kqspnC>C7? z?vuIn*{|#?WZa~in#Y&t4$adCge#~zGq0AO-Io6FflK!F&2X2z$T%5---2K7vi_5F zH&`wm+49H5!=Dz-s+&&=mYYek5`;UIfhbj*pbYdqo;|QcFP-QLtg$khDs`N6jMHE* z9eT&|f^X!% zr-bT1gtmO~^k{9*L}yTy=3{}vFV8uVqKR}u{F?sAou2GxRf))(q;YWfe3rfqcrn0J%j{n{da{2U`E`L< z>V?8An)z+wanop72fKWDetG^$cl7YSmnOgQo2SP|_ZB98vQK-p{P_wTou`CYiFhjF zb1y`)a&UCB=>`Kq)temrvc}VARc4Nk)z_X)OPwdtCAGv4;?9)l%E8i}a|(FXM^j(f z<5v&w@rMs@_4oQ;SUDo~fTE`m@gEk=Z@1YLY;a$hf0KbrZ*1EYJ7ebN8qu}>oz zzqm5x9+qlQYPk6z*;>Clm5BU3XVAaVt$7JY5FcKol}c2XnLd8{?z%)sYtbtr&GmHh zURN|r0w3*_I(mcZjmvdn*N^GfzecNrZWZ>tdTzuq()H9|rbY&g!pIYjIig-Hu2g=1 zqO$R1U&DTPLnipIkDJzytNH0y6Z`hPwXa*k<J}*Jhn`;X7XC5$OuWQ6xT>I1*#XbWEBKnZ20YwdCHb2R>OQ7c$9n%yQ`# zx#W!L+iRldoESpZZ8P9vl7(m_xrb;GoRyZy3nMVck`u{;C%MP!D|#^`-JHAn3aOk# z282Ogr{tmH$w5A-K#iH)<5jtbDIT&Jm$^*OuOl%Q4&jmi?(-Dm;EB7QGA;gi@qq=C zV@^B|J9#v{32(H;ljJ$$&Li2u-urzL>i7QSfRcN(=MhLo3-bshCK~u-erq1>D~zPU zT3b(<<_bg4R70$EOPyHz>d?+D>vrDxJMj*a^~;yJYx;$Cwp*e{C_}l-bm-sTpYcBK@_jm7N4q}> zkmo9@GBz_&i6EA{?VfZ`ntyQ&&$0Oz?j`q9?o#eA)XCuF%Z?&QNaPPo6q-@*Yp2zfg#oJkJgPR<;v@D$(lfe5*@raygiovinEE}1K; z&w*nz8e%td4YK`ino_B|VcwLVbB)~6`tJv)CQlqX!9B)vpP;fv&Ge5o`cIk9X*^}U z%H!<4e<;ZnhMMvGfb%d%E^oRJT&5Yi;ob5sTbHM9>?`S=Gt8M>MfS^_nLfWR%UUwP z!&2{$^@D|i>#2bYh}B!>g<}``c^4ljtF_easx@gHk}i%`?h!X|FPhFb{wERIXr^ZF zrXr7S@*fXL6)Jv@O{9z?#OH!r!G++Kcfq6n z^OWF6LT0Ld;f29v^#(9~BzPm(Tpjd2=RK17-=+>s4jx)3_sBsBKy3EdXZnA`{5neG zMD8~S{+pTz{$X-c1aX%<7Rwd5}cn0TiZhxr_Q}w>b^HbTcetpyP!Mm`C z3GX+D_htUyFO5&$(yO&{@3Z5wFQ4jv-h7v*{0a>E6;S`xMa#2ITcRphLr6_?O@l^1jy+_* zS^~E?7i-fGv7rawM>OxJB>~-uD+xUOWjtT)dx&hIw_yXFw$kb}*;ks8Q!H|hg`?z8qAR%k9S;gLOcZQ3a9Ce#r_?pzh*JHtF&l+ z3W0HrZPi{`j`^v6{dCL6N^hxss`_j3>&A6$HYyH6;L)-ScnG5Mw_hG@` zn_!4|{N!EEhDP5d^BXW<{6<74RV2@M5y{YwaRfyVASFQjbWn9tTV$T_L zdWY8Y{~@u;8Z_Ct2T#HC5oC4_aYg*(G_&CfLrEU5c}2f3m~-YiwFlKEAlO^9b7g&n z#05YcWHk=BK~%8y`e$WEy?+E2XC+?B37B{u@k~p^=TyQ=%o*p@ zSE2X?=x?zOHcMMX3d9J!+WhGnuoQ!w0yBJfD*qSD3r97i`wztalVYE1Iq7 zD#@%CZQ4X=FamRD7d+y5=+7gFd1Uo<;MIW`ci=uHfh-ZUL2Bf$*U#uYMV|4`+yj;; z`_j~yp`o5?QX4SB54BhAO&`?KP1i08GIgT6A*&Ub0uOyQsHSsU^bosFwvrX!d}@Tgxg0z;KNYOk^yAQW;oKE6W3BebvR9be#VGE$ko6^k&xMC&P}l+G~mS zRw#Ryrfl=9rt*-J0D2xtCABKErDTYY(@PIxW5QuHkC{E{3q{GkQ7yD2XKx;({)cnU z0Y7xL(4zK)YkJ{i^%WIlyhAEENT-JNaXm=(1-~s+xiefB8o;y^LH%5gdkAgkYPy=Y z>^U<@mvpwPRCSEjBCDCjPs}|c{76#>UZ2$LUAvxYuWAi{SM=hNnMPNb@IroysV=Tq zrh5lz?$E-ZCK@3alwQC33g#r^ieyAZyPrQRdE4-y8YUf2iLMB)1fdsxO!xVYz**b9*ADoCg%SUS!*E}r{UlT=erbHBHEJe{Z%$&$ zzOkS4eLfvR$1+b2_$hz4%NUqRw^!S&m&hUr(dePu(t4MbcjyJ&U?fV9H`l0yCooN| zUkf%BLa+9SX>;x^s?2FWpL@SwY9B1G7q8F<51%Zz<(!78JVjutu`mNg-OVjCS8VuL zxlP&R@`gbyqlEUmq{m#T!wuV5DEBwu$?zI)Em)X^DjoSPtv&zpbjCobK-~m?!JKk? z-Ss)}ic|mTHH!j|2&VNb<)ES}-tNKCbHR`HhvTZO${d%Fox`uM@a2Qa3=I$2eO+63 z);!6$=#FJFPPg=J0}md};X>Yu~4o8 zngb1H->btbrS1TD0|p(Cr|`e**%e;w9C^?&hv7+WekyZSa7$Jd3{CAG+r4MEr{|s4 zF)lu3z@@}c6NxNzE0_%B&IbNbo?@x{oBW5Y*28b!p(k)G!sLh-B7tOoG&P8tF$+%b30 zuQka-Vdr8g1}~)Y130Fbhd=0c@FUhPgn#sh=_^!#3DXPdx%9d0Svkv!2c%YUW%r{Q zifjP--uk)hn6uT1_9Dh0L!qAtJi-Hk5%bd+lhe9mjZil5OO^C@Fj@5;{}J>qUxFq) zg;=agHcJAJu)mA;A?_I0JDd(oYG1(}165O6AB!vgK)3KIf%+TuJ9Q~IF3%AiW*Lgm zGP@@0=>% z=u{FZh7JP{vVk(-iXkTSWI!)Yh|JLN5YF#}L!mL-l0ce1kRH^p3aJizE_pT~{}bAv zL~AXPe32{qHOGys!ggKJ(%6Qy7VNEe6;EmFQkwRm7mb+dYgii}d-Ygr|4q4k(+bK~=r9 zpROl9wJ*oAPiD!WKmz;5YxEHWKUPU~qKMs6{jeW!1#5vy(LX}uzKXQ|)!K#VQhXwm zy_!cUVl)~ak^N$Dh1u-ZwT&QAoasQUOCtC64y-4mDa0AM8iOL4%~|n(=89&0KOE(V z|8{-M-@{LW)m=QfC8PKrX%}Z*nS1*R{WF-XuWMZ)^9aew)ttX|1+rhY^fAF1sNotJ z!a{Qr#|!Mb&3E$%5F0c1#8s4IO{qndg8!vhKTYe}sxiln_Q*f}%RPQg##rr1{hb5j z-~L`LE%vSGv*fpwhKVGVj-;ki;8>N25}mhVp4`$MsOKJ#ae+Q2l91{fZT&;|2lOAo z)Pw3eGU{5ib0QPKQ%(DvrO`GJzbpP8Uval==si0Kg$8ZeK#mRclD(1>szGzK#xi@d zftP-G(NAq9+IR|`e~ltPSM5$mlr31uOzOf#b}W42?ZP?tY}BD5 z)(cI1Sq;35`-#ynQTunyeUkjUrGmNHbb5wQiEI#V2~76eo*h0cvg2&K-goS~06T<6 zMZTZ~X2yZA~%@I$`DKPpfchzkFZcV>b$e+LG2(~E)3jw~%OBy3@_#hy|*Y`;`~rS{aA zwMY74KG;Ol#F>XD8t$;s&;3m2R&3)m#TUtKX&i1O{e-`^a6Bs*)Y=zA?yEHv6AguW z6ajfTS~H04C@882uT-J8z~{Me42XTM_$_?}Sh38x=~ALeP0zpt3!{6G>=SFS5#5eN zbc;4F{3YrV5nDL;Gv(wO_P%`I!THg@)4xl1w}E0>_LlnjLdV);q`i)4TTqCMn8Ro- z2fiN3Y@?%DLY4Y70sBgYtKeVK3pt(OldIg%^^N-uf4w*PS9!KfN0@t(NwMZd+KQeG zPYs5Ti2gae=dq^dLopAE_?UG?OMlLKh`j9ut5uktJ=hSax3yrw0^uKbVvve!L<4n^ z9X*lm$sMSbT079jQ?cj3A9xU6*t_llCGaFw@|*vQ`ZaF=PUr6NJ@`vo-X?(PV`1MF z)nxC{KFLuR9aqNeh@RO{1><%>2wk$kn>?uC8Bq5&F_2^`;CQ1Mc!hmKz-hn zbBj`QNA=&de(%6X>mp7T`;&!A@ND37EVuaSSxp(rZ0{{Nq_w_8xM_i^qc5qm(Wxyp zn{Gf+Le)W5C>xAOz@_YSLwm9waRhchvXPU@3Af|zNdxsHKG^zLaw~eX>UcHqpPZDcO*7ve$mgEpP>EkzExFC)OQy ztk-q%jW)mYpUSC35(iDnSS)kHg7`z{`&cU|+b=qVzRT{Wo2)EBOG z@S_9MyYWL;>ZYIY-BQI?$3yW~9SApRdz1Oa_GYp6Iag>v_KWoi?y*+-J~2PdjoLb= z{#>A-uP}ta-La!a2$Zn%(1);|e0_!dh0)$~EL`+~H2g)*?A`7E*IsvM@$t}J@TRi8 z$-if3m9BGAJfwYZSgL}}c(hbN&lq@9a(!H}Dzc12gXdG>T5Ka#_gc09x=V|j-%*oT z$3`SF(!p?^sn-eTaTL`8#M=P3TF+n8Sl4!hH)=$zTHpo8(mZe#2Na1Az&-1xXoZny z^+)K1GGcg$bR!G-3Oa&^UHr!2XAd;_UB)%ImVSz!M+piIp(X7{6dgR8#{o3`h?n*J zKIb=IenzsJ){(g?`G}@PgC8xK#0P{I=qY($cxr9}pT z25Fr$s9qUX4}#$jP7QCXieFV*Pl0=sd6doa$`gLDKUhR_-BJ5m?T;x(XI2|!zg!s4 zMi6Vk)K(kgNXE?a8em;Px)H@}L0zN@5E-2-j6Jwjq}7lbO|OY!JI%Vt?Y0HRSz2_x zr=-2XHS(o>wn_5AVL7g_hJVegJc>-s`WQR7K%ev5m$Ra36pFq*C76w-X}W zni7$MN6dP%FTQA(1b2l;!j2yJrvn{5F6MxVpP{MGrTT}%V(k(4;k&tLS;yfh)_NZ_R?XR};M3ckoim%#LTbqyI5wEv*KaSf$ z*NiJ!C>#DeNQB@=nhz`c22oV-Lz$Zv*OUON@SFHNi3}V{ZtB}iqP4-?4(dkP16fnhtAU8UtHcAJTz4t ztNqg+KKiYo=%p{GbE$~3eeC$plRKJw(!_@QJF?=U@nN*LF(#Mb*{s^0%lG25fFJSq zSU+lOrQkFAvDTom=atwb_bo!VdgW+7C9*ZJCh6D3-p18@i?Kfw{)Jzu&IyXZST0TV z;GY`^$olg##X{~0R%?i*7tmPNkj8RAp^%igT8-s!_(L zxi}dwdB68{1EeHJT>vPe+28lQ@BM%8d(ZH&T(4s*yg^+%uiw*zvQ@;yGWN~hqddT= zGvE4Yx--qLq#I)aWh*^C@V?liR24m=bw}A*aB>!1$l$E$Ug6211ab|T#na5=U6;sB zM+5J7b-$x=2YYCMQzG}lApCd3BT$s$4%v*=x}YR!c@VCOhC#%4)ev1rA49Fpixo z+Hn4x?3%S3*T2!O6#fscEih#T0ttcGtS>$uw5@7G;e9+d*%{suXmX<=9^PzUwJ^vM zDCQ-Hq3;DCRHm_HW#MgWX3CC@y3K)S!no;N2pA zk$gRWb;F}Yk4x;fmx}Sgmms?!UJv3XqDu*7vlB8(z#Wv-Ad8_s>1rOLkL?a%D*tb5=`z!> zdUY^UcJ83g>Azl1anIeY7min+uXq*jae5NRw#JUMBoMP4O`IYA^Rjo`e*ro`d%~Ac ztvj-}R1^owqV*|y`Kdc>583iFk(**mV^jKv)nGM>7fO!HQa>}ofn7KtxdY&bhK5pE zSrNYjahc^aBIiW^LEi(DOPr##hX+@->uiTP9SXPF-pY`#3%<4YMW7B9hWjW`qUQt)QTa3s>;fVYt@yHnSQt||^NgXP zC!0emN5p7l28a#=mW>iWXs9T}3l2LO^0B?8K&s2RjnO1hx4VvxvtqyjU*@*yCDe08 z`!o0?J?nkRYwNDB7+&+}3a@Wwg-7aY=zS4CH|vC6vVmaz2$^gF0XiDa5hMDsr1oI zyfuC`@rK!yx~qwki9b&%iXtC`c{rn@TR2L(#2VDt6%q&{YETze$wH~&&&tj&G>~-1 z{K`O?*k5r#o$Il5>-t(RKbnVbHz05GAJSo)YwfqJTu=r37F>td-9Y;yJ<8}HzIw+K zt*IOa{+BnVRUddTT~#l@_J~|YAKYo39sQq$GN{Z;tei|dIBt;j5#r!g@tf#NJ&k%y zkCAa;j@nLTGI0st?FwDbc>|nd*^%o}Q5U5H&bq#;C5SF1z9v;Q&WNFZ2!{##AZO5{ z%fx=J`e-mx^$ebXCanc}Av$#Q{ftg@CuP2ySrPT9Sm1F!Hs^;vK(N7ZTnEY{YyD++ z*n2^p6DOt;_{{^_Vn=tz%}F$ARwX$oGFBVpVB^q5Yv!(kY>pU-&@R-x5=wmI2Z7Fw^W5lWa z;TT@A7_|XDU;I*v2&3{MVjX^Tht#3{Ejqv2=}^8iBdKk`MHfLA2Jy*i{;WGY!v8^$fAN=WP=b-3gjcrRZY2;jT_B=H)4gJhF zRi4Z@g)cQq$AZXSONu4Ik0jBKjCh0ubK5=xMcJ1RWYp(R9}MElmk)@(#c_S?IqU{) z^5Mz6vKuy};A79{o5`km(wxk{P7#^ItHxc^=9B~(|7L3Z)1pJ{3NS~*X=C4E70f!XXDjCPg?YLKUh{?sdpc|(We0ZaI)C3u2B`M z=`@|Q&Ku!RC!Lqb_XFmt&RrvgOwUlMTylcQ4w{uL#g?TGMhFhQFEuK>pAHL-&i--v zU(5fhb;aidqIU%OJePkjzrA}09EksO-SH#3WiX1y&N4@$scNP_br)myp)AeA(!pR! zJ-j?b{z7%AI2%@MuLfuBbo4i`?BKbeBBuBxC4y8=3Ev8Hq}u#Nuvp1s{e`~9QcYXk z0guvz3YCs?v$lStrY#mU(#KGiMNw(VAxv{vbDaK9QIUl%Vqx`5)Xt!rmv>g zr=3`H<+sv$x?`=J>uChmzU9)_FTcK9ELYoD-zb)`0fP)VU7JxJllSpBO&ayY#yvpY z^wxRQoPI7E4K!_~CxK&PeN#DBadkHjSHG*EqN!q+f)B5%Y7prA__fM%H=1(GHhJQy zNAGcxj+uE@PtB3vIC{vF{%qtq9!o{AD{kU!)~+7I=ywgY5wswTlbiSD3}?FGbB~ej zH`?M+$PP|@%=qLt^~|iT_YFrMjiQa(PS(l3lphSVQ|fGbrT2Z0fA!H}@6lnePTnQI z`x}1{IjDBAWq0C#QWR62{a58;OB-Y7*n51|=xk;5#0;>|z}m_1J1DNB zGm4y)o`qZ?j!B2U1YRlOW=7fE@|4QPSvyO|qIeLuk!MIAFKT4|?w{^$%Uaj)(4$!` z)XEHI{a_xUER{J?{T;hP?g(U;E0&mnhZSw?CjTlN8;fA3D?@b*J#y0i+U+ZDn@sJ! zUC&K=UxILfslsFCp{l;(#V7Cm1+)U@*77=pYgd-o1843P{|N9<`YBaRW%q@;khY-> z9mrdY^|htTWP(#Nu{l43B$;u^U?}|HKFVEwvV6sqjK=c5RuS4DW6j3aWEM z4_Kzu=RWW2X4E|AucaTvxrBDdtsZH^fP3CmuAaXiEzK&AcI#mbTX9Pdh{;Tavx@{O z?|8bp6D%9@&_3FHy&+VIhT;xfM!wE&>n^>!Z6%-O^6a)2RZhBc>J_T2>IFQ(ohzs~ zrLWS{lg^jCAY#E7>@QXnP!JnhMiG6d%-*Vb@U84*+qy+N#XsVaePSL{5jXk!)*WX= zC)8F_HLbjrtioiFb1K@{9Q*-2Ix^=fkMuK8ScczsJZJ0?3DlMiGK;0USUW=9+Wn-A z$2gLqpvG-y4aq!M$D#&gQ5p}bJ06yI{3FV`S}QeLTt#7`6WoIK@8pF1>~^30i$`kxFx`RHTbpLl5wzHNPJYn+ZV$Oa;#jpFDA z<1=SA@3cD$FSNULgxY#*EoeAcrYcY31+8H=7IPal(ZPwnWDK+jrHkX&<~L)PSBKFT zWmT3%?(2%1X5k*$a==dm9~==vfrx^K+S|^XeZ?Wv{SrH_JZS&6G(^cn&$;7Mm$@<&_C(U;gKWKMuc+NR8NDU!_H5l_iYQWEH^fdq;e2WB5LcAWpb!QK&D`O;F(zZcFg z9LS^UO-6L8NGfvGe_mu`(xbm#`tI*TmBO&*`mt|((u5>p(T|nwd&Xic65Kl|9<|=W zT*0~1DO|0rmuhVP>RSap))9+hBZ-Ga_#P1JAZJYY=>x2n6*rtvci>xSYL)U_c#XEK zY*_6an7C1$eHhQh(Cjxt+IC-PQDxwfUgA4n%+wNTAzWLxSW8}4Rk>VFWIC12m8(N< zP;1LcHf!~r>Ai6<2zrrtMC3gD&B*4(zv}(?GX}lW%T95t%2W_r_dq#4y4Hv&4uj>v z2t_a`cC4(d>^46Yu6ibe9qtY(&rrD#=s^NK&zLzBcrNP3u<pne8g?_c?4| zt~`C`&TYeAABvRkDW~%z)3rMDSi-f5;nu0)^{9z1oG3w6O#vdz#4@Ix)RYu~rXpUi3d!+}7{sF{RN`5VQgmF`+s=cl% zJn4~FrLNfWli92OiW2s{ifIM9gW%p}Jf0b3Ih~eM{xxc|Znz3mrzC&w#Rpt10hB zG0#&QcUEiA|0m#5i*#$;pj`;3V;;USSgy^E2HGe1VKc`# z{4|=+ygV>GzJVu&Qa$jUL)m2{vM--${8p=npBe(DKCoGYg9vOR-4tc)ejF& zRwqS~_HuR8KHN3aHL0qLXOy@9QuoH(3ek#{Z{mSHL4M>cSt#Ygc`|>Ltsb0t5FDY8 ztaxgKTf+N&T+YVaw#}7|l{Y@KcY|=tlTVB&ZrKRpL_rpJ@?}e8`b`#}QPvy%4LKj$ zKT9R=m;1?6vE?_dlLCQXQ_o&|#L*pn?vc*ydb%EXs_((;)L98}o$B;%iK=19nvH{B zt~P7V7cc!`YVgl%(X665wM$qQXfo)I2RjFc$nzj4A%c|Z` zLD#N6T@7+Bz@Md3J*>(1YO0~-qd$F6PWH||SiUi{Rp7DyJeXH5EtRG%jw`%L{^EVN z94(UxOa?#MmSuF2yndIiyxNMxIF|Bl^<7#y9D6k8#n23r=$0EyY6!P^GIHGDFX10z z1Ifr%ps|sA=i7t7?hSgwOIDSf-Taql_&s@fk{PeojCDtpq|yT zmNV?H@>)aN*dKW4RaSeTJK$YsWQjD2=E%=LZAs=A{}cZ^GJ@FK#^Fb0ra<+9A9;bN zhVOam65Djgkn+X1J)2=gMn>T;&yZhsT>G&LM?TPiZXN4zn5SvoM^B8lAE;CE0>Y~0 znaE}QYCBVB*WNt{|A<~@Hem)-C?WASz$b{Qc*>WcJdI&gCXjzSuu1TGpNZ~_cJ^cW zs?#5Vmfp}_+5PA}><<2_nIyJl;(h#8a?K~*3Ilp(%Sv9v7-KK9nov)o@bMWNgOSS46 zH4mwjTNV9TGz#<<@#HN%wX;MUyiumKw81w1<{M&WD{6%U(?8^z?|5?~dq=L0tZ(-Z`3K)F$td~$a<*Z* zoyIqxHkhX|)L#~D$|$!YvVr{5U9-Hc;XGX>=8|Yd2Se+La}aZ`mmVE)zMP_l%SL+z z{u|LMJag+^BD)%7s?R=LE}k!z(N%W#ZY-??r;KQW4!6^` zNvn;8abGyJk_p4wP=%AUcjha_q14yq8E|tOJ)V~lLHk|NX}*wUx4lNHnsdaiVOH%? zLW^@HybxV)Wqj4l{c046>D!~dvw1ps+rv4yTiB7{-zRiv9~@KNKdz-6uDL@SjW^oe zKRWh=es^-GfyZFEXLjw*K2ExH%~CV+jE__aBGh4};PxHbkn$vzvw6C{D_jS5f~TV+ z_V|?t7ZI@A|#lq>l22 zxngJWR~ww-Tye69j#Pa8p+V6Y^s>h&F*g}zC?_e+utBs@(YyV{Q=!dbvp!OnoI<)N>xuDkJCR%9oW=f>x9&HeJ>1Sp7CD^I zX=RdGpcdf#7ZUY_uO_zM>}^QsW85*Hs^9*0J@M7CflrHMHAH(_A|_Df!%a>=lI^#e zY@PhoN6{#i2V9Sa8Wb=!ByuB>7<_Lb#HdpNy(pgs&*-0|3fZgubMU;){TquP3bpj3 zt>#BUzAp4PyGLRfMlw&wq)sfshQ-`M>9N=^aIB|pj&(+F|MeFaGv8&kimpwgOGOz5 z$)eA6rtt1#PhR!|&d)rQ4J)V1CbdhMv&IV5AxR(-YR5f3G3oxNiaq^ivD5!1-R*BW zYl%1NP-<&^WOSrHLS@{oosnNjrCwvELtp;fo!_v8k5LU+tEXNyFMT^zNoAktcr1PC z4thctPUc^7s^Ev}Bw|jPZ>Rr`J|ai<+=}ZWUz+Aj4EeGF`9epK52?o|lD}EZt+UCV z)|1qye%MLATJ$_!yW|fKuD9{AQQ1?^KBppk(t*OG1H}X#C@c(`^Z*-h$jhq)(kkFrUn5A64) z{G*J2^B8gK;2EqYb?uRv?&iqJJ)PPQlszI)-hOcG-I)8Ok}4 zzZQ`_UeNv{FFWXTEs9EupBZYRiwxfE3_3IZeXvl@u!&_H!xN33eA6BGz1$_yzhLY@ z3l?p5ZnYO1JutUHcdl;$PldCucBq*jK-~!C@B7g5s{o7-#ida&w_07nR(3G$F1jyL0ate!redLAj_4Co0j zx3y|hWmi@ua1Z^ea?<*s_`Hk*4GVo;s6n4oonT(&1WdCxRa)dhlhnA5Lbtl5tJ>(V zrUWA{5i9=z*7#oNt6sV-$kbC@!HAy+!vby@c*I$6OAitcFq#4KmI$QEw1I1r-Gt|( zIx2dQT8rf0Q*+!|b$w`K^+RIO*YBR(KDqO`z2e>1Ii0}_48e7>Ejr%4>-YBPH^%)H zr$c7LEtl$2fs_TXRq9>8oE{uX3~Wv>wA_0e%=*W+EF#Ri;FD{3?F6+00)f8(Y2=@dJ2Uyj<_< z>tmC3ufB2QSBLZt-K%e{Z%ywPs3SGeO&Z4gs;4N~7%hLMR?bz)bYLFg8L{uOb8~Ke zyX+i(H`Sx$C0q2d0AhON8r34$+d=M7eUs!aymL{dOF_9$r$;$sfW%G@bJ{@q%9qpS zVo`N5G1km3GkRv1xoC7oUta6};?*@TeDm^}2CrkaNi-C_XKtBCz32DcN%|md-Yuh` zi71Ud;M#$QV1?{$Nq0_m2IJ-eI0eA&j{%uaD zJGq$$Q`F`AkQ&`V#q6yK$w`grV1~+)*WF&_^Oddyzao!ED0GJI1j4n;c7qclVx0tfa_9k8CzgUpMPLIp z^P_aN!FR86P6G+-*rD}mIGj$=4QwE4VAlO%CsDfDQ^_gRA7>`f9^65 zq9x^mWcsq7qT_1AnIX8&89LBRnBcLAzw`R?sm&OyUJd@#tJwZu9MtCol)hRcaQrleSMB^sV! zSc{MSR$NEx3!{S~ZJ_)2Gh#h$$-cXO2rta+dZTc;H}I+_`sOkB#|Gdn;0 zmveWMsyEC%%2(~^3%WBtzIGtB%c!MxebKr_>r&D3+TcdE=`?%Mw(e6He?BM#Cenz0lv#8g%Nc_De@m>r0LKaeu2Z=6alZ zy;+k6lOtf6=Z}c3{PgF@NiKz+n%3!@Hm-}k|8(C@@^yxyv#Re;v3ioeKW$D&oVsD2 z>A~mds%PNO{?T6Xyb68J{m$feq8$ev^INOWLbvSP2H|#`&7wC)!13R}&0irmpEHPutQwD+08f~3fvy!E}68XdG9O55A?g@Q=lGk_8^XCwsVqI;W%LMEH4IYvR^H7!;y;w#! zUHUxzSPrg9{NL@qEF;A#d+(@zIlbwbnBMOoYahcK+3J^*K5#_zB%y`05j*eC!VB@s zyT|nxls^bte$~v^1I==72yNZ>Vov;eFWP!9RB?y1V{SCJSNQ|N=rX>2^XWLX%2fP7 zY}QM-~hc=v;$BfZRQu z-mea%BG+@Nd#-OyZ=IsI6r4dKpk3d6c5eM7J`SvGG>7ZhdwUDd74|U7BvrhZYC&h6 zJ1PPFv^)k_!|PM&`iTE+Xkp}A-yR-Rr@EI!LcwE2b3cLZ@C*!`HQ#7=)amH@Xdg4x zb;I#Jdz5x0dgWXGaOKe_vF@Mro@$-P_sDG@J)|c-_uxzQPp2r4YBfSJVP2y7uKVS7 zhoP$FQ-kAHvQW`R7AQPYUBi=ZyyPfRi=JEGv3~{|?#_`_rCCeY_gU0 zbS22wka4i~;n_m>slhpyd<`i2Iwx}^YA35}I_`jc<3a#2Vd4N-N-B9i+D2bbirmP`PRc<8(E)p^rqhIJE^}! z)_N#A=nnL%Gk36Aee2n)L(jLn13gz3sn0x1mqzO&?~lr7s`SdX|EYX(TWaKFrT+Q! zfbi^SWZpHkkI-AF&Yt)vvpn+fgTL7Dc5(WlhrTlX)o=5RP@@y?Iy&{!iyEDFhTdzJ zcm{a^F*JT-^x4M1<%8YEy9bG;9%TKzs#Wis@(kiP75pRUk3w}Xo5RjujT*TIC+>@@ zb@awYwEVked-iwz-0TD89Csv!?Z4V4cBB!Wrk=z{Gk55udF{~5Qa=sYqTlvhVvo?i zK(vB%A)A;w{+yHlf!o|ZNvBz_|MjTJOamU}1^X2=8t1HE~l$5-p_}w$Dc@S5@Qg@sAx9&b$ ze&ZWWvi;#fX*_Jel$j#YX6_kH&)hSK6%$xsHK*JBM zY>5Jh>>vwz_K(@QKc-I+-dC~PsXn0Mot)fjcU<}f(w?;_KE{a#v?wpV@zAes_xhal z^+)tnJw0+Ls)zd$!o$(ta?e_C+$&Vsy!Ye-FOi$Z9g3^ZL6yR_Hzzm7KWukYO2^}L zRC2oEe6i-(X!@-?Qiram(Qyvd)AjVFbn4JZ#}uOk*fDqLeT5y$PeX<&`UkJ)5|T|$ z)#RbBzL}(1e*aJ@@?S=7)g7AMO*P83ly^IvC;dtK(J|?x{mC88F{B6Hu|S*Gvv{R) zUXjeS$cMg{Zmv&NXEM*l2gyjM&!3Wo&wR$o2}W-02)IMDeDdL!%EzDv1Rhzjg1WB3*Q=|K$&>1)d>x z2Pc|d#d9?05`kGSv1;K#*Zr+I@qKv@pyTm+<^ji&rv?5IPkay^&pCUxu(xeYHaZ&q zPm!khqXVgq?l6b$Fc)j?pG!O0g+tBy+@X|q>oX)zZ)SzAQ#B;HH$IvE+Pdel4TNi7 zKeTnnM~BqzqkGO|x@1iwGxywz>l65V1Fx@qenS30LbsyQe_{8s?#>lRAcQ}cuN&(8 zCnl*Qjf9QD%LzyOz8}#9gXE6$=!0^o;6<0-X34l2k8jae#E&F*@8%i&<7kSXGHkQ7!66 z(PQy+4kr7PR+8oml%(fH54_jgpHD2cUOFQ@`zOm@92-(5!*kV*psApn7SjX+teQZv-Ta#gp7-ZME&I=4!K|N zibswg%RH2hj*|O_$u&p$|&L>;cV$7@s+53s6A7Uoc>z&FS$eK2{MYTc1-+? zNhi+5Jc`K|gHd#966uLC%n;kOzmYRjTrBjXRF|n`CwK;Pz#G`VWG!}_i)ZvFPpfAH z7_^`BD00y&Eo&!v7%e>P_(Xso{9dOQ$r1ao{f^ztHHkvLgEwpjV10 z*nsWZF*`;y5hDwryhy*R|7;%ygEVR=Skc>o$BBfWEGIW6JK zX@BzOnNkqf$nW=zBgP?@erD1gOmbuK#EqpqTVoWtgPv4Cgf55lfB7C=h_Ii14VsZQ#0t@3YkphPX;{6KhoW-&B05MD7Cpqct+=Bdljuoht z(1*LeZPli?_(=sM2)IgueXQ$6Vev1I(0dPemt7aU_6 zM0g`(oHB(PYPp5DykfW%zbiy)JM=X0#_LiMn=n#mpxAd@-j$Cw?m%TL; z!CImL)t*ZT-GV>Bqn~y*skj5K4={>6gHBpt@*xFvc}Cqhsh*Ki+(GUb?>I5GUG2*_ z_+h60$>?Ec6J~IS%}P>HEz;lS4y=T=)Z?2%stiUE%8sr*WNYLvonY6%)6@rMk2k*K{ZAQ3Q%yAwO&`}wx;3_-c5Y1dZx@=pp4z5*xTB%y4)-`? z4lvd1@f;_f$=~FObUUlrw%~^`Z?Lxg>fIGgU$CKDh3f&`CX5r@QQMysnsBFp8#s{K zkrK*1Vn=v}Q1*hZDO?{1>f9BNz5!RXix*{2pgSq}MnUX~T7MbQ_m`C7PN~y$MgAN*y)p+0%?tV(s89Tx!8cxfcaqc7Q|kKuox$hSVQ0d|hQVVNkU+6rC-Z-E6n}m~G%o0h^Z!V>Ouq=axqokaI`aHNiFC25N1_m54fSi4V zXY6M0nfn3Hc-ts&RtdP;M}URm4+E`kmJCv*KfW4eDK7s)}pA>{@#JG=wR{X2V_llj~M2T}Z^C2y5( z%h>#rSqGZWjR)l)pyh$`)|8NgS~MUi#TK$A9p1N zyTG8E=W$tL8!H>enOHM^5;csS!=u=6C&&su;hwOjtdo-8?48V?OiZECO=##abQhHB z!F@gQErfw)jD&h&e9?A=|7Qt6#X*6Nmw<4KS95m6aEQpN;~N{ zMj9h^Y@ymncB}T3%<>3lnJoK!Z{9xBd#3p2z0>0V?=7yME@o{DuY_1Pe#dK@|DDrt zPCoEgyq|NYoqn|OEy*{mL11y=podqYR9!f@-P=A|E_$4Dv8VpLytglCR{q8I$IAwGX}oIe*#BCW1)htw z!_g1mNi+6jjou8K`Shuxu_aO8SI4uIPNs6i-C(sXJ2UMbR1(e`oT}9aB9Cy5g1D zg(HawcX(70UEmpGd@2oe-$G9`QB3?k%N$Q=tvj&u=jG0{j55_T&ln4? zi2GPI1gc{F@zVxfq4)a%L|A<=%Dm`;{1s0~P3@cSnM%-Kl;|GwNCMx)yeXVxKB1fQ z=~%k|>%~kF4X%t%TS`ta3MnwEC#S&=gC!;B)fXgAv81?|3Not?|REnPrWA5cz+N#{fENH|-Z6;8y7 z^hGFDLLQHz%Vbk@&P0}H=m~wxykM&&O3=FFq6KS;KvqY1r}(eKT@O* zx9Z0o^Qmkgx{6KXQ(I94Rj`Pc-22L&*|ttaz}prAI&3N|48?{y!mmmi%y~7 zkLHyY9`Pj46iI>x;E3#1FZ-8vR~A~(rb@)3JL>wBo;-Afld=DpJL*h3b2+hDC%D7V z{y*z9qx`$*MP{+EI?ouvIG2+dsXw#oe{ug!@ksHA8;zWEYxY#{RFSLK$qWEP2m z_=9i9r&bnYZy&Ua^Bc@Uyzq8$YD2N`_6B?1{91Z7e>VEi{K{&)7OOt{n+?;&-)vY{ z{7sQh+$sNKoyIJL>k5w)Pl%;`0Edt(BNh4A?FVE zT#NYRL3&zWmxGj3SH-SOmtWjh(hjc@o~Y?OgQvVhXE0~EW3boDY`tj6O5_QKKY`b1 zQlH%X&b@Ove2yEN^`>{aRP>W@_HYb(FnfBRuHr~k25LH|H%_OLJiGl24Yv{}Xz4f1 z*BMwm$KqOod1U+KL{*lVWS#73YdU|!9Z;pN_w_YbFqg48-fgew zB_&TffQRPGD6zhnQ{gExN|qv^pG`vbOCUy^V+lkyo=&lvr85Qc*mrxJAIDR!S#r|pI$yawjE_mt{-?H3bn?K|jLrKffM9XYobz63vB1cM0i8e0Fg{1N|1{&W3R;}`wM zI2Sx^RE-~Lp8@*qXK0M#>hV6}t4=VNJ8qf>b?vw#*(bW1(%0tvz*omJ45KiM&NdpK zBzJR-acQVttrstCsMl(>i+^;d$7=g#S2P?gecsopj51aVsg5Y!X=mDf(Ngmu2Y$kL z2`YB*|BcPOt;Lem~{Gxt2CXx>Pe^3ie4n10K_=WXOXcxNu{%Q zb~S6jO!hBpyG89qbR96rZ*-PS_cN2FN&lUZ=I6LW3-8D#c}5$@$P)4VcXX#Xmufx) z|EQf#eKmGJnw{(mxUMy$-liwkUD`y3KIU>DJ4fOp@h2+-mH%tsQ;Z<`UF+Y{pG8MTYf-26g6|i<{kV(O zQxU-3iGzj@B`?L6Pg_lCEe?==PeV5aB%TV@9-APl*5ujH&nNQ~ngT#wlLGB|pjfEO25X({HdAJh!L)ek7`0IbA-D;$shL z1vIAim{PYNyWqAD+#ZQoaP>qlx~-o~*7i#%skM5+BC+BYtuiYbL~mq9{p`8upAu)_ zU3us66%$9;T>{Q*U5|dzH+Au6pOT*DE-I_u zw0m0L0|u$*E1YWM6ZXs!=w}s9<#CAH=P;^5ShdGxWLJ$VV{bf_GWiCaH0Xs6Z=a;= zyhqo0GZBNQvj=_eEvspAy_cya)fL|ruc-*liQR`+U2uDdKXJv(2Ya&OlbXUZk?cLo zo)|d1{1eGgGg|M5jSpD85R%xHB3eZ&V0?pp!bK$)M}h|Ih+M20Xb5*`!!`K5#5B}( z&I)N}h3ud}PH-~V3;9in-?ZXUH|`!B;kF4^{ywd@Q z9*_OhPE&(i;kXzoz(!UDM!U7#rkt6ReXH4B&>k>To$j_E|;lDhy6n1KN z{BzoAx!9R-pWM@${BFWOOpcfM&pbFn0;|MRd{eB*F*4IB^iH0FuKmjm`@u6;UGRH! zlk1|t%d2^{D#Cild!<^5f7?se;oE}w%Np=R^887xzJSBCLdDnNH*TA99iihMg0I+L z7JeF`ZZH{+CG=^-(K8e?l%EDp`{D_d{XU2MSC`_4!O!x$30FfWkUNB1fH7rgJ$gDB zJmDOl+VTtNuHhYWkF%%DXbNK_0)un`YXaB?ny28u!2J3htM>+eDS5wfucTL0Lf?4T z+C73H31GOmQh}AJzvr8)%(R&nepT~i{5D?twMZ?pDbkZ6$}5-K!@KY+o&itlAzKpM z;d)QF>58d%&FtSJ{1lF_WJ&<>055QJgnU6q{__N$qj2BaWKFFPdDi+Vr^hlwnes_S zhffAHxY_B<>-R10pxSTYPFz#gRDM@t6LiE+)+t^@wxRLGyJbe_RQ~}ZyCwU)H7FRh zLNK(Ue9|YuyZ^&)X%X^wElgL~-=)QbW{?>Lv+$l&(;rv__- zr7=y&XB$5MC@p`Grv!?U0GRwznwju+yjOPZvA|>z1%jC zsLR;PU}k!cF|`6Se&c)hn766DPO;aHT}i0v%=%U%(4`sENc;RMUDw zR3i$-9>q;CA08T96*Y%_?AL8@AkA#yp~6PNN%`FcKhO>WJy*>@lbOhTMAGxUnjzE} zhcjEdMokT9l3#Jkg&taRzNLX^!b8SOO6DM8cmiDN!tTQz_@Z%PieFMV9`oS|MB)+` z-5y&gRrDUwfWP5A$evp7u0k!idUx^vQeGs-gnzDdx^#LMuhO|) zr)%okCBK{44!vO!PpI9y=(ctd{-Cj+$Q@|l28tBA8nglqwgvzDeXCZ9)Kz%Ex^QX-qT7@>q2tBToySD(~|1Dg0?A&+@uMiy(lN6{Sjx_$ahb z+zZxg`Ii%a#wsVW+U-4^=IVLbZmGHWTMRzf4=fO+Z@I?!{c^je_5t5MV# zfh=iDfPgBH0g5`{0-70{5F0tzGtM6g1+hY2HE@JGn7wdmb%#h>P3d06T^>IvTj2)G z63vCU$1V@3miTGMt{t^e(O@j=@N(sS3#k@uZ-wkppwCRAg_hXYl2*EJ+p0?R*U?I} zGX9Kt#e97A<7S0ERTbs2R%`W6c{NA)%zLbEm<{$mn#S0;mz;@{#(dY2r+$62uC`pFXiIdK z731z;b}+m69@t|64kn@>bBd^FCa9Rb42`WdO7N|$Un6d5jai%;aZ+4lGX&9W(F0C} ze7Hv}NWWIwR6}l;OP*E}Pc!KQA^?bG=WVY)+J1U423m&fYvesRTFup7FhLiS`G)cw&44>=4REp6KWRNiZ=PP|H$UG4Av67@3iAKat#*d=PtAVh2|mhF?e^!H3R_QXHQ;U^Jkpyja9w$%p!I6J z;{v{t?llV7r51drg&Fhi5lbw^kIC&0ULwXP zo=_HQAO#}l{5{@j?{pQ(I%=1+ye86+$dB5kG&CAo^*200aMOOT*EG%eM{wDm$W-QH z;(Ljy%qe1i6L5W=0q0@Iv-};H1zxfH@{C>KS{Gp@mfgoIOX%nqv|o0uG5%j{PO&@1 zl9s=dee6NPKtrrVut*EE79v*V@%xes=F4WC{LggUxc??da3||f>xY|Fg}=e!c&GSz zUGdKF4%vrO4@})Fy8)!IOC}sBRXB9t2g}gCQedpILg3-rRAv`45ii%>Xg-Px;po~_ z!i))Do)T`q6c+f4fQ$SVIdM_`-mMk;3sbn&v~);=(Q9rj`ol~ta>f0QQAxb{jL_?M zx)hb-O$Y(6)e(;mX}Fmtl(L2JTs}q8BI}buor^&LdC2B zUHz0*8{Cv+KcUHs2hG7+^;E4^)dnYO68AF1CQ6*kOedx@{n{`5X>HmaFBVk=XCvJJ zx1nJuTO_K9=g3Uf(o?HH%Jl4*`uy$@?WxcfUNUzx3eMqg*yVlCZBf`#tP)u#_w*#E zV%l=;&I{;@pQzKxpB$R&u775@>Jgrr%Q%U-jGg#-Mk2S`z6)JFcFmbeVDAsA5wK8C zu`?yZx_#oQ!=0jQHVMyNR6uv!YY+lKGmg zEZi3LCC!X*hMISAxHj_MABR}$V4V?5mFgc;ORkzuyWuJxD1E@74vF4kLokw*y5EuAH{#XqVF|9JPm-TPYfgnmZVCuy%E)8e_p)fCSSY!`CAL`uT< zqsY-i+jdlvm9*mf={M7fXN`!=6pMzx68-?yxu(aQ6YrtV@pR=c6MhE`cf6UeB(Aul z+kcp;B%tT$HnU)#kbPbC0T?8h^g*V?d8f_Ms~LxSPrQhz{1aB%g@e1QwJKC0vWqd~ zrDn-~iDbADZv&bWZm2jFCo68we-g+n%1Mjd!KLs+p} z*ek$_JJBq7v730q4GnF}7>^D5bgc?GMu2s~N7(T;#No|6CG>_N-%7@* zeggkA61muaszUsI4X+B?yoS{-+6LnYwlFsSCHRwgnQp+VMXU+v;FHV=ut&O=i+v~> z3)x}XLv+@1p3JU*XO<%^@=+b1&Q6t9U4_h1*ZN@xe1 z5vkMW*TU}ujL|aqVZ&DmNi$DOK)iMnfo~NVy@*q4FVV~|>l~-m#RvKuxVdJ`U}4>r4cqcZ^H(-h@;_V+Z53ZDCa3@r zdhD<^Mc+DN&ATO@E&KT&_WUgswZLpLgs$CDi52!=SzjP+=n8u9o5d^Ucg?rJtMPixnBq~Uc z4>)nE#Y@#wMa9vQvNr-b#m~?uc8fj%6$?$*yr~D^Cl3gXD6UkTkn29B9|{-nO`-mj zd~3Q>*7%QjNgv(2TfAyYW9f?i+K)xAxNjDF z*Iz-ikQdo%+G|dtB3f)$wvek73b~{DHlFpk{zJE-|Af~CzXZI+SMU?Xzpxw_?brTM zqhh{U>{@XYDWxq_vou+S34C(ENnXg7i}lxby|$hB%`JO6&uP8u8P24-bhYk$O0XMk z9or@Ordvo}@q6_*-8UV1eb+5$7Uy_A4RdbIw^J6l2aMypc1*do9VR*fUSr{jTLl(k z<6LvmrMfDK%45$w0AC;Z%43i3?$Ro`Qq|&=*9We$p$7l{A)xfocYwrK^uNCW8qBo6 zCwdX9`eGNd%f;7_!P}6jX|K7j75^3tmObeb?M>jU{ba+@@)iGw@i#aA(pSVn zTEtJuh1L8qdW??w{G6XI&-+u{Au{ON!I)8awlZ+#V3z@|3%*nJq!6dn5~to;bRv-h z&Y~yBGOfC}R&2}i|7VNr%C>5y`a}O{;%IT(vsXTIbbqDDv+{2iUwamh>}}T`!9x5@ zAr}*?u>%~+U2(r#{)>lClp8$1WKP7dfmcV-I{AIE5MqwtQYoik^@x?b_DD?bVX7Rfl-n{*9R~tnz$1jzjol31(tL*Y?BQ^gbUWHvFcoMwVMm6j3%6U29 zqptb&?VqI5_bP#rT$0ri#A_!L!l{BwG?w5JJ`wy|`V&u3+F_6xBXQ0!<{QJ;JUFp+ z-_EYxhgXRWcJmz#ZM(KxdwJOkEb0jzjL}+u`zcRQQS^3%h%EP8r0fzqRU+;mQ$4(z zE!c+jaaL&xhO9#TyX5Mc!Rv5LB=s0lF&E3n637sh3%XpqE;5&ssU~-#_W_=9bR3^r zeq`3|zQwx{1242O`Y();U3y*L79SMf?DDaG$^RX9^C_pc=c&VT7g=(iJ4U_M>&`ZN zuvkh;jJOoJZ~4``m+k%}(;AV9a1y&;pC&Kl+ym41PLpHOuNPG{=`yOZ(%CsLdrqDI zrtbmuJ{sO+^R`%hN1 zitkq{e^lWkrO}fph|2eK#|JLziTc<2DflGG(K7Nnca(ytEWTN>9lMR|T_z{Xg7_sT z1L3?PBTdcJ#0G15miWXcGgW>ZKmHgKlI!Nr!ECMYmyDnpeR8gjywAR5)7m@gn38$R zMVyn|EquV#LCJCz@K;7W&bM;PMXHR%2Gg~**#VwFPFV1ScfxF`J`RRBoYzx1cVfFs z)|kqnd&g-~b-~g3RF`D;B*Afw{I(_;J$tP_tGQmj;|@L@91uaalcusn#Zxpd9GVLq zya!pvbH?^O57+AESjxMSbp zu0hS~cko_G62+9n=k59a69g3{H|I!xK;R{r$#I9ds=Pk(x>~CTUe*qHo)%R(a@0sy z8CO=*eMfJ4&3rR)+MXVGQD!PJ1LcqI!5=+^Ke|Wxqmhd7spJ7D+V3B*N9-@zU*z*i zej4fLW&7EI?1aP)h$q?jt^)s6fABjsF8NT*>>b8bGbA%nWk~78jwEse${kzSn(*em zBV)YyoFe&|-wbl?5a|?H8!hcd^u9&g2|AUN&Om5>2}W@a5e!=(g6_2;)Faw+(oBc8 z1va&k_$m_fcnO?M;cb>9qyMP1U4)gB6-+lPDd3=cD{haRMbH1o0gZQlQ zI2Ds8lTEM-$g@^(#SO5kiGBJDmBS~v-g*g^w|C1M+$C;I8<^gEjT4 zRUb$8w7C4ddm-{#RBX3~LH4P2x$x zbN+O<{HAqB@C4EGf7>0c?^=KV(fY-CNdB2zKCkY`mPnn;j3mj5;Odu%A!8{iBI7Vm zbv5*cKB*tsf4DUdxdVM%X3!dC$!b^0d|UH7-ux``-$GsSfsb1raa(Q2#Q4FntAGTpgmi=+#6*=$4N*iUq5AP5;B0K2w>LyZOzrX$& zb1n0b-*Yijwd>rGOvJi7wk*4K-wmlADG+Ba$F*17BFD{RtXo~25DQkzSsXH|33cmR zI5StrJEw~6>xmBFspufU&p-!314+%qmO@NRbQ`;uPegVv@9zFHOW+AEC~BF6dkY;f zQ`w=`DDgU%Nw|aqA3#;k$BV3#EIwicUSt2Cv2Ovc3e5%2U@aoiIn`q-dI8*yPbxN0eo79nFrJM+&Zy>MZ&MVHe zbIduaep7bJR-WBwri&O9dnG;{zZruJW;si37U>%KTd~ju7wA6s+u(6C)!%w9OilpF zKi^Lzy1Tb@*Eu(+_Evt$aUNzG{yUFE>NM7X>53YH-^K%&D!3ESY1psWXF2g5w{M~- z;T#czZWd*$(|W}!W{Y+V4OU$WlV$g3mj&EqO?2b z5ZB3QN^<7BRi&Y%@J`?+XJ=&XEuI~6hgC#>K~ml|l@aGpF7rC5%a)8kMR|0*a-1U( z{Uho>dtya*bW60(1wDBjUD}@5P3}v;J;+o(ua&hYCH2(uwZ4b zWl)P`O+6tt zk|gMO@rro3i9|KD#d!qlm-iOsf0CI=E~R{dlh8{*PdCm3&cj-8ilY5?>+8sC`0G{A z?+bicfeZ}kTFunZ7cqT0#B`o)1@KUOEFxSCh-KOP>`~#hT=`Tt7$$QJo=mO^*(x{g znsD`i9~)B1J#pN40+`38f&-NRsDokUWnai1up zO{K_nwA}E@UVhM^2eItjtitw?tHW=LR?MQ}rR-jSrNL^`ZqC?x+Bo-M7PDH`g4{VXsk;E{Q{4WuMQ_ETe=0IL?pih@BRM%(b@|an*3${ErxDLl#P`_}4R&%q&5Zt*LZ*H_u zgS`u$(vreA|L(@WP?9T<`TfYpDJ*TE5)k-?4S@8=b!cFp^4TTn$h0+`# zK(4s4KiqTb>9_f?J8j)eCBP|zSx1I?WB0JgSgaT7(Q1|- z>p04ZRCVods2v5S;2)eC+7?#aEC#SX3C$i7NpJ-UNKsX#*(7h zQ0ua!;KAv=2EAp@gM-K6)zoL8-iFfQQe``jMJc`n$#V1(Yxg8{JVRLVH)>emm1NX0 z3UcYeHCd_gz%!)U4OM#@JOdpJ@21jyT&4SD>v$VQ2SZ=TZx>1vENsbxtkS{q?3~@m zwka*3UDf|+ShTckF?TfI=;iQuix!2B)Xs@UfxeK8Cs{3*=<#J4r42Eo@AwMgZ}G7o zO5aDp4={u~(BHVq=gW=!@w=B$n)LkKClEtUWXJB*SLoTj*){!>x5|{Il&0`>nuA5H zeF?ca9p)Pc)F|cSBWnUIyiq3&_ZALlJzx$etmWhSzNbs3a6urQ!;rVTfQd|_6S>+OUsCX&0#i$2+Jn;%= z-F}4cPoByJo^Zz^25HBAftcv{0!8+p&5>uYYSsb2&%Ba2n>d!J61NIg8o&c;K-=In zGT8re;;;QWT8HQyClIoM&LQ6_df^j0!K`x%c`DO7vCNs}@boYAl5E(+9(x-|Sy`|A zlhrCtH|vg)of+6Gaj{pRTsZ#zZlTIVqVELRJEA?m>?`g0W**dnm=DBOtyxt}$J0k0 z{yzMDI1jzypNAhH5xnW@bnWPl2HF7E_J$?!Xi&ion(Jwp$IVwb4?BJP(RgD}uJTx( zc?2^BV${raACD_-(L5?$R;4S+AkV-@D0{H@ehbyA z83z)hQ&)U0+2V7JJwVAr}>Yr?pF_6DjgF5)qEqQHx~$XZ#dHN}VHPv~FOtMN*_oSaRR z#U27)B3;D35ZN?C52X|2<$rPa1i4H5G$-YYiKXLrj_WP=6sh>8R{j~%^n_bXkB z;^N>jBO6MyVJ%b&^%C#XuhmO`&isN&xzhAZ-P!JJPwnn32}~sq0=hOEsaH~Gq3UCa zfUe64c9>Bnu;4^WmyHIP_c3wT32VOh0{Y_1ouc;vQ?^bnpUN)X90I3a!hkuD97xFJ z2Q{vOeMSchIpMT*lv%0^NU3?idqi6_a-HcJ=PZ29R*W8M0hd$SVhbKrQtZ^$XuoikJ)$^n0FO4r)E(>`{Pd{G z8V3Z5n~JAFJd_QtX8)klVQ-X_;1|~@9lyNl=c-?*j#Rf+Juau}JbSX*$?glEG$Mjy zW$XC*wjQ^>;TSC`r@n7kqt=<;Gu8b0eTETHb@=VBFG)>XCqY{OB z_{`R8*(qldWDH(gN-^x7;G{txj~1klrIfSubnn8aXd33@g0Tm^5$`~`JXG4#DEjj3 z_M4n6d<~De#AYIlG&$KBM9}GrT3sk29*NPB)_xDk0VUW{g?dbN2Y9^V^ENoKwtH1! z)pTr<8{^Qo{ql3hK@adk*5%gZ6QDlv6z|lh#3Bx2!whVgLSE8XN~*MpsI{Gp>>k(t z20gLaCo_XS#p<&Q`og~GN{ARo12JDDI~r#fN5|{eRz=&Ct+oUY-nF)9Iyf>tgD-^t zzHJ&loZJ=&7HjdT%#~f!i@H#w)6ho?u|*S`%}g{v1=vB(-B^Y#q>spg#?^8=8EOxx zEc!!qgX|Pqthc>ur1~w~%fR`sI(m~Rq(W54`hxTY(Q%H!W4~Nww#AY6l}${yl-H%j z2dg8|nmUOd-}usLZEu#ez}gngBU0~_S(kXSEwo2Vey{bd=!qtpf3lD*;4}DUPG;DQ zR5kRz6c==UA~zB*7*p<@b7h4zqMO0P-BQ#Zep6>7FKBb&(vVMii$rAI=}ehQQf+ZE zSO#>ZV%w+A1vV|I(1$81*kCs&@Q(R@NU;FjBKNKiw*1n60YwMgaxEx&I@RLz ztDWihB28ZoIN ztcdn}rtPU^-lT9@lZUw-Npzs*zb1z&t&6qK0nr+329qPn1IcpoqcwgKI>nX5ZC1(% zZn>d^{y%@h$o1h1Ei~M1VgVL>wx({zXXDKl@wG%pbR>UZpgfTO0=9~?fpXfXhmYDC z2mNxDTVDsuBV}yF&X2zA7qryE)vRP&JYhv&X}4BbnO8Eadly%|6(><5pWK2cH{qQq zT&hlUYRe@5=dnYc7H(~Dv&xdUe7)2smWZDgwY`%*LQ9l}KAahXW_h$^-LbMuB4bNAUuz=#F?1G|yH{h30>0FO<*pe#2WvY= zHClVGytdR{I{s`e=P3tvl3Nd06&Yz3&d+pYShqAW5C{5HRm&bOYP@Q5qz)~3eA_SN zutT2s)a;$URgDynrWdnwg8%<~pN@JO!4r3K$5fL${LSbqP9Y2Vx)tHQnJTiYJZ@fG zx8jfXH9aBK)Ob4Dh_=G&IwkR7Jth)bB9Xv|dVGfa&^q2Yv#ManlF<%ioWsN#`&5zH zVpE~NM0~{W>o4#``_Tb5f5$@$Idm5cffToQw0CC<*(r%D4f>w{WbSqGwZoR&RNp2X zHey~QN)rY=@OY zQadF4wCo*1T|tjY)q%xKPDcyl(f%Nd3#in}03Sv&DW+SCk4DXvwfny|w$?oEw&PXL za^#TwV-yKEECv!rmg&QsmPqcM785Q)_H7q^a>5!>#GMXJ4h1}%?EmFlmOjEY4!I*l zG7m>})zFKc{Eik2(LOSJyhXTUaw&T3lu9R}J>W+<&*7N4e6Fkx+D9YyCU(T0!Pm%X z%Rdp`All<{YvPIYNKwZeWhRT!V&Nj%xXh=Ch3*`M@J2#C7Ie<2hI&_W$DH{y*^Ipe zRI)-*s&t4-n5n_qADExp)wQ=P+jY)4?NmI5t#Ql|_WRe|-9)xlack9B{8QGg57@%v z@-g_8k$+Pt#Y$qE#VQ0?kC38*;uf%>*g%JM9aLXz$~{X=JYamrQ+Bu75{+>$CXyhJ z)aCTi2e-l~GIZ5)Fmz%F&G1K4L#49(MD+(DMhLmF8O6tszS}$1Iz%)Bd70ib@oU5s zC%I=(Kg2nBi?jgoj;a=l1uF}>B*vzie7=P0g)>;uyX`13Dv5xAoi!#SV+JNWc=bN` zh9`W>RZz%`(cnIWFlsQF4sC1G7I&$v$|7&CG*-WBHobL;o)5yQ`valrUET*A1g~f- zSj^$}@S)-`_j?9@9xlk{QQdx!7!!&i`4gdHt9vwOR0L?p+1+g@iqT&eh{Dha*67cH3= z*+42MniU;l!8ET2I;+8~mQ_?91J|_hPAf|p^!SEkI!{bo65PM&v4zod(H>|)L1L_} zq3sjj%L4~P57E{t>X&Bn>i&-Cnfnjq3ngk#qDU=Hh>j^rAI+EmeSBJVig1uvpLkFW z5e}I84uqq`av(uqAgN#JZPu^op9Kp@t4hsQzrBTeye-E6dY5Go#1cuTu@`akVB~`p zJ>ARoDWlNysupv0M+Dg?vOO7B_wZ9JUxT#`PbUDk5Pg)rHiCWr-#`7p_%8MOe}Ptm z9wB8UX94;@BeuhfR#ZWH2y|RQbRYXf$oT6M9oXf0*EqsHB;J!A93|RUB`=13ULtd$ z){aOEXzDGEv!D}X9ELjBcp80*uhVgVH><+BJbm?9KPP-4QIw`crK{Wg^k8~qo3^!i zpYM1?Dp&k=)xOA)wwEGDW4%=BuIu>Y-&^!b{(PUzR^}oVcPE>1j_~A$J9tc^6l@gh zi+z!(wAlPK<7?p;W-HtzJO;AR2xoGs9hA95g2xu(qfh8Q!WO!xkm{^n8*jlcxkH~8 zntY06qt~MDjv##|_pg(&$hB%TqE-bGzj|I{LjFEL`p~%X6R9)CG>?o_KYZma!l&e{ zF3Z{qns>{1VbEL8Kx}#-c$s_8i5DA^7n@E`WlEer3&Bkl=G&nZXY=E)Qx#%t=U!_n zpsa*LI9z@cS`WN?83*+%crL6yTo`aSkctI~7a51d&OI^-qlZ0CI^K%CJ#HQ6{9ySh z$E>42YAufd$H;r&y@K`#{Mxf#ZowlE6g|;cL3Kgzr4?HuF)CQ1Ho6OIdNtHi$Q*5w z==J1a^32fm&@|hd{?0rksw=mmVw_SdW(MhjnK{nMI6@S0DPqNQ2xm zA~e;yA&eMabi309YR2%P#JZ##d<|O&U6Cm6K9m;Vq&uuBFIhjk!i=Q2E5~eqQ|*nP zd+|88%+_!U#0R1ev?Vri9k&z>o+zJrY5LP_gO+l^x812NMoi`+Md;0Jk?7=P#NveK zXA@Q|x$;{?(eAAKkdcaH5e+t)Rd(p95Gi3lsyTxeSTUIyb0IEy$t_Tr{i|vq2tNVs z8L7#LW#romIKAc0=vs9=_kxtE$$@gFNv)Qg-yh+O(39RSOLeFf|9}iG)9bv&#|NpV zd}GkKzvg;}8$qbl0lvMGx$W9h+Pxb7IZHcyWhh90UVvTcBE+ ze|v+tlaHOlcZpuwePG|zXe(+Ya@3ry5jdmCToev+;13s>(+^T3^kC`WCG1P1I#S${ zo=TC9(m&xhp_e66nMON!+5!;`o^nc_*rf2G55dtZps7v$n;}+xNe(acf8u5j{9%te zHLGTHMu@W|j>l)g|7NU~7=y=ThpVY-?QoFmaIen|H*05Y`9Dv=k-0Q&_NY1^Mkd`U zXVQU2k}t^RXc1)8TGnID<+O^Rld=03*v$jyF2=C1FG5uvgAWm#Iq3;j3$WNh$RBc_ zdknO7s2QUve{_hSh*aqq4U(OjjXTj4zRTG2%q7(x`7mWNZd0Gv+|tQm&C?e$XbuyjqYIG_$&|&Z&OINSO^8n}+FVCI#0Lj4gJ7sQ1xdBV+9q8;lapBOVw@JN zDKio72;)(*k_)S{u(C}IENFdU*95wLRd?Du*tm&BOPF`Cx6=ux&x&L@ha>V-Vk9gZl z?CgvuxGx91v0Uy&?ywvw;vViu`at@ETWWgF+M;WDgPZg%&>i@kBGsVAJEIzrJ9!lB z!Aa0pS7T!e`+xESVR9M+~=UeDaG#01L zYR?1@o7u8Pt%p8ZQ7@1rzFf->>kT44(Y2h+Rx~yl(;3^(bm!lVmm@JVn)UnqJ^r3B zt{O(aiGLFVr+Ub3#=i|+o7s0#Mk+{$x59;zvj{U1#64u?)xC|Eq=nEN%^);gKuMwr z!l)=M_AhzvRCqmse1Ao9Zx_*1^6wlB6ebnhlIA3N-!!t{DWeB*n!9y|6X~N z+kpok*jsqA{F|L*c)v{XR;(VgqTyQ%7Qi$jL^a^UmJY=CL!x{WQyg(}h6W!NLY>rh<_@i})YJ&C>&Iye1eu!lTa zZi(Mc+Y)EiqZdOiSZuL{A=$aREE$XP7Zh^Ft9#PMJlocnMl0oGrG1AzR+AK zZ=ntPqiqu2<*!h?5px1pej&Kbasl>CZ)5YoMBzERM z=NEH1C6-i=DsWx&zxJWbscQ5|MSS0Pav`rP(lx$PyhTx8RJgWHN1BuVkpJb}nCjQF zMK-v58yO)Z{^WsO<>8O`o~J082wF(Kl2{p)3Zr4xi`l|KOR8Z+YonE1Fu!2a>DW|k zl8PojM%JplPUJSNUTS<+BF%wy;+0E8Ua3Lq3dRG&Z_7;(M_v`~57~{C4G57%q=t`m z5I*K!PGfN0$f^U~00ir*rd&G z=047Sm_Jvjr%$JA{FGDr7d0CwK8z1csb9ed;=lN5B0HSHh!-0vnnhKNi$9BB!5L#% zVs~5N;ljJ_d$AwH&Q-Hg{qbcd@1Tw873zyFgHr|LB=L}?-VS@2i(?9#Eu@WT5FLey z6qe~r=_70rI33yUu4!Uy(JrMeduw%liKb1^hxO~^nF$@2sETFt6S=TvLb$A1WAyHy zq93@av6KvA0a6>!epjk{j>H3^D^k%G`p7L!7J4RgZc1+YO-Te8Kq-VV#2TtjuM3Y(rL{;c5@L8IznMUL^Dmxe5z&C(<@S+MVrP zCg-$!o@46R`l9q}ONZy-Pi_v@vEI6dmDyq~{i0u%*hUMZgvjwlFC3`~`)Hz1vVYWv zMHw5Ks>y|tBapMPde(z7Qx(1XdWz2-(Myl%>>l5TKUYm#xP;de(+<`l z74m;`9Mrv|`wTpFa<1UMyKs)uK2oC!&M95oJ+g0lsSRQ^n5{;J*fHkR^0Ss9GPD8S zM@s5br6zAWf)6cG+y$>8jKN6N`~S4E10D_cKuWFQcUOLU-Cx4VGG4KA%Ir-^eyGs( z_-B*hyh`E0CKuM?CY!zHHjm~!&oh3yX0JV94@5l97Uni(+af!o!nIwD z@^96V@vXX#kYXW!JX?JV?C4SPK(ShBxG^TWy{XxmXSi}=rOr6oJGmqG62|c)lli-C zihrL{9TvW253>y`s)ozMCGJClGZ!kVG@pho`bWHLRjHx}8A_Y5=8AE^ACBuZs@={O zXUZ*mlUqYg*ThO127CHemwWC$(gckDg$)k3oH#^fp`&Wo@1 z2K#AY%FSS&?PcU1zle3zUasj>EL>^stS$}~p?a}g{7CbIwuQnUSh&FR9il;ri)o2T zO037XM7IU$7o|mx_bD6Mw$1iM~3vudQVNt=EjOu`XKU z+P-%}JO{AsotT~mt%wpg5ARCes1ER!(8uPpA+yzMYf9uI#5slKIENNZ{o!CM;lfx% zvL3-2)uDc`nQb5&6%0{RH8fIYhlFwAP_!JBiB%=ZxqCV;aaam{-Ql^c)4uiaqr+E* zv%}7?ljRvceJ|q>dAS4kp$nJ#*-}4HZ+uUIGk#%J!_juZ~#?@?B)fTI_%<~kA66Xu8i_S$kQ9XO1lSa}l zJqKQI=Ch2+P}b9;A;kVjWInwzu6}*r7o2qay1R7t9Z1@d$^qGPzF~}W=ok^R!Zf{Z@Dkdh!{ldj;<1!|L>cm9pN;&!2t@YNaHcB`5q$_j_^6NiLvFO>6NVwKp5(adq^7FYsiqJ3f_dr_&Hl-V!yiZt55@4ibH2&Ud(JmIB zn5|^D_5P4)&iY|xiQ@*$Q|LiU+EA0A`Gcs+W1*h_ehA;Pi0E52cxH)snNP$l$BrWU zkSM0ck~$h@W09hh!XM3l&4~RIEkxg$lNyb4>=ihjtmW!hOBo04>4!*!)3J8s-sz5V z7vbS7I=97Rk}W6yFyp9FM+s|Eo%VE^aO!T}t*%O$4yT39wuJ@@dk-{~O z#>gpy9osJ%9h^S$e^Xl(diO!NKNA1_np;knKpya*{;X%Ktqb;sYPCy;#NL#|_Ac08 z@DJEi=Sir}+ESXzU0C;y6koq(I2Loi{klC%$Q?ly?1N&(QJ0d3)wo?h3S6}>pmotg}7?$exi`X)T)yvnjse? zgN$egM*0Nb-mm8 z;t;CFGk18D`?qI@cfGpz4+owZc-89y_Y9mK=)h)+e!l8*o(2Cqv-(~3^j)i#3_seC zJy+0K>(kyE`=dtfvEGW>rS?__x(6g1nx7?5>1j(SJm|aCjPJsQ?g0~zC+V;8JN%@d zX-EZVoBDb{?T5QUy?P>jDL3s*ZJg9=8MOQvvN2?0SErbd+4iRWjkWFf9=FEUn%SB+ zrYoPY&SagzyhdZgU}2ch@mOS~TBMMdPsgME@?7-zlH3p2z?Db~#{e!@in3B6NJP6{YsQrk0Yo z5l=>siC)KNjzx$|B?8HBf2NU^KE(cDf!I}aLS(;K9xV}VUouggvBzkQ#SE6nxmci7hk;j3FQr0m$w|9XzjXC!)#vVM zJTo{vGJNfs*q+HR`op;aezQl{lM6lIHo;>Tt0U@wSzc38$ibSN%B}pi$UY;5-NGD} z_C&Ej*b2tRdV~>X{T;O)jWLiT))f41Ac?e+-@xlyYFm0t_QRmH_h{Y#`}u;{RAaMx zz%S2yURU{z7R)A=y2H)|S_idcpP0Pk5BPg>39kQO^~r$B&4pWLHsFbGd#~_=!nti( za-a2WPCnd|M;@$aZgVYnIj>`m&RY+)N3K*soK*CA@rPyg(Lv0NDh%IzS9`N$+wNQ! zY)jJu?F{pq7j~AOMf1n}dmESs#v%XQSDedL&vD$X<~Q5{bHMxsclV8%r*%%xFeglB zVqNC8b(-6-zN0M;ttxdQ4BX-7CFD+JGIo!D{P2gBbHvS0bE;mQOuC%rzvw5d zaqtSrKLmn%jnl?2t8LIj=(~i2SQp71315bMrZo(C!MUAheaR1A-}z`c`$o1rx6>(8 z3Ry92`p_%bl-ozn=(FRZrdsgMXdyC(<*VlL-P^js^XPTtUM!Fw?vmCr2aoaYGp^)0 z%0=NI{e+%H^DSb52KV5djEc-5EyP365lB?9Lg|?1%%5U`zBn>;pm1SxX{|3>XoyG7 ze`#qc5CpPM-R*@3OX+2J3|s6wI%@55Wng_op^Y}F65`; z(Fl2;VYp25nCiK@!nXs_1JOSdS&dU&D7_h#|?!!7Z$kc z+1-`dn;CGa?dG0Js=Hk?)1*gx@bC=sf8r6MVMHP(9nrxpdWhFJNBzKMZhV?^b^Xkr zwoANP%k~%=Mr<~x!zowIt#(RVOE-3&E1WAhiTY6GS!=9A?0!pLuvmH@TWXPFq5)~a z+M?B(*;qV2Jr1z-057+;n5hTAuFk7w)>j~ zvm=E<*Oc**mQ!EjX<2^i|28+X%#xoD&zo;Z2*1h{Y^t}EKQxpMfARguaFSx~p&ESrllci15wd0XGq zd;RdE>fE~Q{q?S~VP}ZT6~z)#edNFHcU3n~Yby8@KAd!d0$fO(<;9nTrY(tDtdS^* zSHKglJ{+{D$2N=q#HJ=Vffckq~4Q@!INtQyhUGBDH*be2>-;w4e_m@aSAZ;`sk zuol@49JpC>iwU7vAtft^_7T0p!|r3j!*Ml!c~}j196nQ-9=@>mo$;U|Kb1$%Wg(N= zk;cD0Bs)+Vy7pW?ON+*+dQc5rP6QROws$QxRhfL4J}h+hSQz_b$3NFJAlb?*?J9s^ z`_NK-Ue)Py_E<gjuj~|6t-w`aluX*YrJ_G)3l^xnv_HI_T=X zXjMP!cjcnFHS0tdQimh6*XXl}VWOP30ga>&rL}DV9;|$Zt-LcM=ro+qaPP|J+K+K4Sx*qumklQ6x4|AZV z#$yIlC2y>;HhdJ)R8eQVB{8+7{FIicPW4E`YiY}d8^nn^RR@bbHn`A@g6=go(3J{@kEONG2HcGoY4_#^ZyL5?!^1#2qpnsW)Uc4B&U)Zr&y0K#lm*3zPx(o_f0EJSG;sp8Ifm3Tk>yw}SOaJ?&4XO&$NjFjJL{;2wvZ&hFO ztwC$#wF6e!D)E1LWX=l|+cT49|7Z0~k&L70E5h(?kYXJYtd!kvS8p(_-4tRF@fqBjq!c5xpMz z`)OjIk~v7cm{nhptdE)DHt-Feeff}QU)->FtPwdz=t|ymhc_sTdR*t;M z@;!YENSc?;se12>s&jAs_4p6s=c?!8_2irdfDYryviBn;{+x<*q|Wpmm?#*Nf|Hvc zj6-K^Oye@1@_cnyoQlQlach2U#$l5lyS8x zHF(qUDcR-R#A`~lHu(hj)Eour;?Fq;T=p2>8OH_VUag+@h!(s5TJH*^1wNopNQ1v* z9DzagM2$i@b`CfR&8H!KB}%KSpANoqzg$!7eAwH@9mEfm$t{f_22FDUB}m@XdYm>xluGqqevH zqT1{H@x(Bygy;>6T8TND0^{qwWF=YMKfAt??C%&#W-?*kuT^=W&u6rKXT}PQj>x6Q zu=MGV9`hy7krtaLawwy?BU-VCNF^Tog6AZ0CUod1R&q=F(k8Ovn@Ub&lkc#Ky55D# zg;haOvBNItJz?wJxxJIN?28MqkYWwwExtjViLZlQ>^fgl-e1Cg`iWeUb7sYU!gpu{ zMzS9a~O0^Nd_CCr!&a)10Urw^hCtU*;(^tr9Ddkf^+lbrU&g zR9V3=CZc?kadGOU>b)2_6TuqTdZe~bty0S>fydU!dcTXesbfUYC-m_o;t^;+ksb6A zq9(FKrfnK&_i+y-LZthUcrr6}iM)2OL%dJ`fyLBkf&#pW&!J~4sHK(Rw?QqD=)LIR zo&dV%xMQq0WrsH>r=Scvkdv&aSdhAJ`JNuM)uJvd5v(STZR4F4(K%QO{h?_tx^ani zT!;|0d>;B}YfvpIJH0NZ@I~DzZg|Mq|6!Eh@aS>0wD#RC@nf(=c*3lBRrUKr z;8*R%DzcJSiN&VcuM(eO&s_3Cs+5GbL#lZaYPeq5|6H)@gh3zBdJ?%(3z-SibWCs5 zb5d5V`ii+Lve*5P$`C5KH_Y-`Vky{|gz5}FPwaro_%okBP+nY(7vT%mOYiL@3WgT! z=+_dEo(%1f{@mgl#)0M3`}L_Dn!GQt0@+ikr5T`!R>t$|RfUe;ONHrPMkX5NXca*!Cg;41?sgr%I`6rUn&;eej+{Pz+CA-@AZPID zw^uD{FOl~er!blRC!3wZ+-Ev-H+Hh4->-dTE?2{DO7yyBc;j<;TyED~mveY);zpuf zW$&L`=UC40>=#X}h!TlpruhA`W5F$WU@G*EmSH_x&+uNF-|7{zyHfIZ0 z3bjJ5Tr1Qc_mFq-`#}IzV)apHCw~9a*?cx%UsD;jzI5URQ~VgI_5`PnqBlEYXA%d- zVkqY;W2CH6i#y+V!-rVrlhHngK2hV+V>=oyEr;pzh1$B*^ z@zgELvrg?Dufz{b^erC;mQT&yLyU`ftC`#NxgQjcZ@)t1m1oo3m?u=fLn`5Q^v9$V zuDFbmae$bF4`*BlKHTd3z|ETHo^(EU+Nz9o=*$GG&wj}{dz8&Kuw3+!a8vB_(Eg>CZ0M|7S^QAnbIt}9G|YW2&j>K*2HcK5mAX`^ z8|r`OF)ZH`e1Kt)7x?3sYx3nykIUz6Z(RMta;gU{542g|h6j2O547y>Y?S?qLI)uU z@M9hAFjlDd5+m%BfJ6bt8K zaDs}%PDN@O$mR6okBw3@R`j7q&8+p*Y_DrnjdfN2XxEOt*?}Ek-5nrbdC(t%sAp3( zG_Ls0KTYk8f0!BoIrEp4)jdppOn5-(F*;1PXSmxuFpTva#xCfX-;2egtDU68$GybH z2X;O7R~3&+1EEJzpU2U$ZUy5os}2=Eo=R2C(ko$%Y`OW9}lm>8Vq`WTJ7Ks3Z^+1=W>)OQ^?m^l5d$jM~i33mo55 z+%qAw4I{pSQ!kAj*i$ZlG{(wt0unfj*?Q}1mh-4LoT}84-u;~sVr|R4$Cf8-`T3FI zEnkeKE*McW(Dszsq~$G3W^00u9FR?faU_C!RA=M!$cx_lsc~(y?r^z{su6dbTSM#- z?T(g;+*os*=p$7g1!P-dk1Ih=@!-BQ*7SW*jxD55q<}eiGmju0kBF6z86SZy6k}@I zEJmrizyZa@$SWh~?=%k>LP16;nQ$UM&FUoS!&DL%Tk4_X8$&_P1_H4d@cw51{#+@y zbKTeB24ilAnQ^j28?t8X&BQmx+E;w2%#E`Nv%_35CvOQUXjGGa65XgzH7c$5jq`=` zm1ip&8|wO|C7!X-$|2<39H%FSBlQixwYDbbC9>l%)poney>J$ zdZxk!f&*Id8Hq%*8|#2~VUYUJuQgG<15KORW3WVOP3Lem#DP0`{9k;lT*@v(g6sa=V^iGjld3GWfF;th#h z$w-BJLY&yqdFkt6v@%@ra4x>`RpZckE0s}ZhXPF#Nt)Cvt7i;7%*7~B&V1p`$Xi&7 zqW)3N(m_AkP1@#UKeiej>>79(;?~+8?7z0 zP^{t3Xm6+^vWW2%J6)kzTJy&fb@n2-g}F8L_BdEiljH&nls46 z0xI4LN{|X-Z3!4N6od=C;1PBxJR+z#%I}aT{aNNRf7lwR437?1hU>ZY18duUQ#}qA znQb@Ob@>XjRk^FwZZ+;!_xwc~g zed!vxK&gCVr}9T*fmHJ;>`l4U%*i$Wm15Wp!_h)c%}63Gu%u#X#k%Sp zJCO@d=swnxg(|2g1#L*Cb6v;7YlpH4^A@(ATX-y~@}2AAy5m0ji23D!IK0HWJ7U6P zQ*Kn~y?)bxR7;;7pW9%juWx#^08S)N>}AYN^EtgcHsoXj``gvgMIZQU!l(4o zl1i;T|Nkt(9QkKH*q`KpIJcUQuDtSCHbd6-&^&u4XT?trqY5#kvT)+_;jVd$*A8Yb}!6g*VOGp4m$UG{?Ysuu(z{jF7a^Q%$l-`Tgz=jpT>5v zD!Uh_3cp&w#335J>6W9V=q=YL|00=2%?;+mokLyUa`b5f-HjD$ePe~YzOkXZhkfsV zbgg^x&#ra{^1&%FyoD7MiMd=2;ujwy)0sFh9u+wZBdae-i_ii!YfCucVd_xHK3~9# zB-SF@A+$i$m5HxaMSD-&VQX+0v zDm@KyDm4Z}iSKkr4&J${faOIkwxkQnr z9z%Y|qgx094)^)ouC^6#rertco&G=A8_kz$ujjn@b$9RXzt`x@jCkyFIBn}}7(L#l zgM_Bqo03S2*)tdJSf`G6YjJOUIQ}8g?~0Cohi5!^cnS0OnCg?mPIhiHK4QK-e>_)P zGmqZq&FBxAso)=wwPg07XhC~kNOrWr;S!50w}>4U5ewMLq(w_7Yrh+0a7b74L1z@A zM#WHF=R%=rxg&pxT6z$zV6U%%z;+3u1;?`w(=VMRzxM97?&7snIZgzO$P08_wCWD4 z&nk47)Y`mS_K2B#jaS9uhS{)rs|;pH9AYP+d#OtJ5OV87g!(&R!SCU>IImY$N4hW|&yv=AKQQ2nau;R#K_ zOv8;=&+_@=t7jbci>t|8kRy6ID

    _1e~NN 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
      8YlcHltGm)t=^*=iAdrUZ+4ZZD(3b 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≀%?yiqoRafk)gSE|F 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ξPi@n-PEfa%7#L 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

      XDYoa?ee+GC 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 z zc3NesSmEv1-J(f7P&I(6u{Cw$Xh)%=Ao=MF*EBDa} z&{&Bbv-7*rFEOelFOTl0R27_+I|0ooI)fCl2&$K_CxV`uv>Uk zb;A-^wtU~oS8hBzH+YrT(zDe8US9R-!(|71Rj)@nzMmP2&Sg4+b3}h;GlIj7eG#2* zfirhtI{TVJuVdH1%qr0%$v6brDLzIj-hfg z$$1p~Z(;h_4k zRaJdw4Xa(7%MRPnTjfX_ypu440HKOIzwC%bHUfdjq??-j&ZrbMetnFmnw4TwJlkDjfvMD6^ zjATN`h!}o`Ph%bQI1)Xr=q~Od3+CU8eMJo1QS|!wET;~)W^QblGw0G*zo=`9=Kbgi zv)G5^=SC&v%;i%2JnP7dn!?V>?Z{zb9;#Zh zBWGohhP%s|lg~gi&6>90xVj5Ex^q?Cg*!gw{Q8Vl9_>_BwbH6@)NNg($cb;^jzJZ& zTD(GLjI|+qukq!|-r9(lZ^vLgDBOCvvL_0qD9siQ7f^MHg-)OX(OYU^PQe7OH<(DON)SS*zf9GGZ%{JQnD?vaU6*=pJk!w0$K8=Yox7 zIyKyvNrkDv{`FB~&7xs!T8tQ-#+qxgZ`h&e#rE*F>uDS&b}_YxPTaB;Cc4R1R#6*~ zJMGrfr``8rjm1@UaNoD-dwzDs*T1;)Hv3G@SqFpv4-ld*f$|y(q^?z3yRxF=RoBhj z3iT@e7rfs#`)-+ebISP_JnZmDeA_BI6DI}~3B?UKqtKedaHwr0@?d1Tf*%b3*O=7T zh>XEA+9*NF;sv=w;b1R5hFwL?3*%wPq<<|PKI2RyoQ2ZS3LE=#Rk@CD|Wnt^|!$RerKhrQWjs9_}X97u#oH5?XV! zk0rljk8L;8gO0WFkkv&+{g%8?F}1)_MWRS^FA+}=c}bSY?6z6ShC*+yYRJCFU9xM2 zBFD}CZK=G-emz*_B>pTqqeufcS`9DdPSUFmn8WIl~&{ z%y;l_b9w?w;)pjrF%Fl0c%CH)& zigvF5E*+)&^?v;wPQHS(_#$Q<@;!@+D^Lr-EuKuX)@`x;J1ROWl1iYA)m`VIux;Mw-Cn4b~%NGVC|$zZFCj96?UMPHzcbOxz^Bn6n~ni=Tb>jN3`YUPAZ;;m#_4} z5%s@!dS2y)C4e?%J} zi!6wZ8y=$$;R=~1Gl^PL+Tlwxme=dX$4Al0wsfSg_UV0it2Zp0Rs7Yi%TsRC$otja z>unl2)v80YWZJrJc}qD&4Q7rD+e#WWWU6O)#^RClR!=H}3<%2^9pV0;Gsq-=(N*~w zb$a`tGH+gflt^vl#oNz!b0$xy6g?(J%qEW%a2Snu;hb$=g_foxlA>X`n|e7WC#&4Z z3SH6jc+)7$6z**2;1Q(sKwGYmHe8Aqs4xv$felT|12~oebfmK{q=)XD72c8$VQwn=HNR6y^2tt2^?kXHvz~ zGvqMKt2n#I$&2@cUBP>{^aL8}6RBj%p4;Y7&7ECO%{KBGmBlOB7?;UJ{5do8C5XtE zv~8^69==xB@qOsyYHnyi=tJ~vYzv}KLh0}VX#aO(L$UtY)m%SS!`+xr4&Mpqi{DD- zQ8j0+kDs{GGe>{++dX~k3K|7gYA5?v3in+Ohkz28zZV^#MGYb3QGYePV7@7J1c5phGWJ?$ zkSJ7LrxMxeYmv*1)#_tZM6AnymC=2RjP3^hh(uq$&yBo$^z?vOKv#VWXkh7Stf1!( zV*?p?NO{)r!N1sRA$8 zE#>ym$8U~qf66P-&@#AI<)teB5Xza>6r0L_I@cB!0VJrrBnZL(`d#?IuEz)EVQ-!sO#*B-Z(ncKQwe>$Sp6G z%R_r2F7nMS@RWwX$i#zLD5Z+@oD+|AO+{X=QJ>vkExL%x9EaD+YO!v`qX8~&6#ts_ z$nst*LiKm41rnhjLf=e3ecyw7(>3xr&4<%nuJM==sf^*c9n4zxA-gNvu9*q%Xyka{ z>w(jbexWQ)U1PH`!bSH_bQNMt^lV6eEvQ|`!}ho0^?9HgZ1JaB(EGf%3D5lJ4{j=@ zF7GIkt)}!5va-BHI>9=|me#n`t^r5c)eh|)e0r>c7Z_Hy;9&k9OXNm8F!XcGOLVTC zmay!|dNAHI|NS4d1wL zE^&1u+$AnDPKMyO;MYg2e}e7?*K#jz`j45>FNkK<&L;)S^&nXZ!kzL!l&Vco2KpY) zjxEtk$G-w=ERUv29VZpz)Ywbg?G?Ge75pZUf3R@n0XWzLehnR{1nIy)EB9CH*n48+ zw0ur>&Yz+DUp1(-a&XZyf4t$hKY!)fp(q_a`MDhZ@s@H%UVFai=knHRIsi>a7jmNm zSQ+NRK6k78$U@%dU;@E+!} zOB+wI)TylZLV+IWbdl*R4lXDh^Y;ZyJA$Q67tL8^tIyKk#X&or=w?*`-_ z@W(^StL4rX;OIQ1hLwn?qJHj$NR|ah*B2cx<`vWBp06l8Jz_-8(6RdRk+9Tx5?xYB ze6QY_5?$F_ditaRyej>nuRiS-N1t~4Mz^?o-Dj6ylzKq^Q;7KYiDq)W(wDD6Ev*;w zOMJZFta>M%8%O3!bFW=}y86mOarU*DpxnJGI=FOW0juCZcuxDH$HQ1!wjP5r%{LEJ z0~6h2bk7>o(K+#2jyZ0H*nOs4{L}C;y-6>Er`p0pdtz4}I<9tCD7(Gt5OneR@=zyK z-yeDTzW%+3pK~8M`~@WAbIZfds8oY8`WEjeTkH3R1HQlK1o}6+H80@^;=}W`Qimz(;wd4qc~uqph=-=Wn(w+8mSaWrdd;Y#Rl zLfM#>%06l9S>s%0x$sAWg$F0Ps)>&_M7;n0gl@iHjE}t?7#g}V)Gpzya3yM0{*26& zY$X%Q($||;s8X>4=MqlwBHl3{N8t^TA1L0D3NIaT!n2P%;U6Ed!kuC0Nm)Wp;$*i_ zi)b%Gjq*Y&q@2=3w@5R2VdZs9RW9q_%hia&8Ja-M=(_fM6Kf2u61Vh9ZX%qG(^Xcz z5E4ZGn!br(B|a0abRPRApHjJ;t2pOc3D;E3B6U{a&MV^edqjNyM!vlx17453oVcYD z$lHa7-7dc)Lr9A-q}z#f%adM+q2Su69Zr2aU3gf!LU9y{&n1q;Nb0su(;>YRle-k$ zdvWBEJh_lTo}=e;E98L=t;>kfi7@o05=N@m%J#_JqjXTU`Y<3-qv2chq`R^`I z(e@v^<0)g}j~5@9SKedS=aC2=3islTHhGdfXTW|q+S7TjOG5qLACDMvkLEl)$!K97 zp2S2wcaPhcNAn6TsIk_@Q^vSLQ!`Z%%dHs4*1nzGxoO?b+kYqCp|gJZ(szxWU6*ij z^ay1b4l_;eKf7ukWOvFlSc_zMez>Q1P*+a@KBNbGdi8Ly`>5_Z4E)880dFaPdO$;q zGSnIGR~){N)z;DOPXgpt!6@t*A1wF~vu-&P&V>G>!+4JMA31Z*oHb|t$e8dZ%HKV( zn|lb%HC?={3mx)|o11lDS`O_g70QDLl3da5?eil|`QY2}alypohnpTGPr~2*dY&o} z(`+UCJ#)_|gT4DjLTMIra|-(S;X*g>^0PH=X@=vu<;epRcX@c9c4D-cERR3We(t$#}5>EimSUogj`zP z9lNmAb3?P5IfXT1)HS@FvU04jkhi1J>uLtWnb4 z!`1Fd{iwoI)@!6Wd+#0ya)oA$r(KWpFfY#cp7Q2thOVVo((~s0@b#gb+Br=hw+gaf z`uN!Nx+rUj01wmnWKTC(D7YSqokFax=%)^!>gHX1psdz3ZWYb4c|f{2n%2XP=gjE# z%fBK*>(5lTZW`p#mH*{{RH4#XYu`Ub=V>MM?T!tgyiE2$LlaCnOI|MT@ez;T?{foIRKLG}zFVy4+6LH{s~ zW)C?S(xS{z8%hGvL%3-+28cR35up;#!*GIt&}MfM1#ChG$NT;LQ#9n-WKJs z;0T6Qn=6;DYD?uMbYA3)NUX~pitsaWIk64iTRVZU&RV&EjN{`pKN2!iM4z89!zI{x`eN1wVsDREuBe9m)Rv7kAfg zs?}z!57}|qm(88$^q(=xZ@{460QKM0_8hn&Gu6Ls`R<7Od-}-O#44A)UBlj*#`v&V zz4_z`_V$<7jQdNV{>x`(I)52K)dH%=k!)f`Cd7(Fq6akSQF=#vnERyo& zT0)C5*zv2xpD*3fyoadpfA@dU@@(Cfs0!8)Qd3`1r_qmN_t20m6WvI*Q{MfyQ3M*QS83Fn@g+Bd{JU))2^~FGbYu}U|CE$n-gd`?cnH`PPSa^~om+H&#ayz_o6BrQq90EjiTAt-b6KrG z!*>os(UqtV?j7^E(O>G=0i-YjR!?_(u;A|vFho3l@+xOTqo0y- zUS=(V&2r`WE^?NmLu-%!Vjxb$h6Byj#eXKsTsD_fLYHp2<-~+ML$cnuLiHLXwkA3f z?FoY#HAYXmU!KvtV^*CDE^;ckBh?;Pg{T~Mg6!5F?ubWDGaK&E49VlwXVvSpepWwi458Wt1ba)iRaSRMTmZyDR^x!{LIrDA z?+rcb{Ufj-7bYv6s*JYcwk}3FCGk>Dz{K;2XX+83GZMwbS?#oOinF0tu;d64u$F*) zBKeFvxQbLz>S#MfRzkpC@jT)&WgZRh)_J^zrNT_3{Iq2JjPZ9?bR^r8WSMfM$J8B0 z^fk+g7sHsQ)}w-{I+J-advHI`knuUGG0WTyd)j6#PP=39-k{lvs*=oV(WZ5T23MeO zT?UVM9_sT5Vnwq0mf*DnF`mG4Jb^3`v@UAox2rLhMv*c8m1n^6WMAeLW+^2RiI%Z|A8k5W%CNP6`M$G{WLw*I>ussh~lALUACi za?+xC%1jL|o*{Irc!SaNi)ddA$(b~=vl*eX>CvuiN46b58Fp-@wU%gag|hn;W$ULD zl{YvEpyrV@q*kTrB^&rSi|H)x{OdRPP|g9hw+4 zk46XvrQ2`4gE`4HD;ZJI?&nWQ-Zng_f=S0H(H+5T&?q+U7ybbs<78f=(il8>Sj{7@ z&KANM0%9V2^yMXPa!$ciMiH1QEX+btcXG?@tPLM4wB=yqMCPF#klyC3oa#w znn+}!Tft-~_hjH7W|WL^_dNe0t1aR;U!o^)EW+f77b1aVe-t%{tb_vRTdS41ii}b_ z*wjCk@2#4Lq0fd5pMCMqR!&z>?GflT$|rYAeSBb=nC}Y+76n{~+`aCwJM^h}@=(~h zSc<_5sr&$r8O+1)a+mNU)-Hs9bT-nnRDfxur_*QCr_EDxmK6_3Wx$o)k7g*c0q7Uo z&zi%|1}EB!7=tte{Y2o=*dJ&yKaDXttvc2SWdpyIr+$LTM#qu2p?CQbG+`8Cu|{&< z6L>T_m(f1N9pm~ErvsB(cksl(s2EBgi!1&>x9}-}`o-{eT?&rNIHJQ`fg+U5Zfocw z9ZE-}2SXs*nGy7l7O!x^W^eB>=~lspU{8^bM)!?N#5Y>Gk$jI+5XD572hXOiVUP~U zL%2_^R%`&OdX`5A{DFnfSad~tzFZ&h{e_*r-?lrccCLl%U^^U!jx(R6k2UB+XC#qg z=rHgg8z=*=7-B+C8ua2ckQoXd!ug#>PeVJ|lt79;kRH^pYET{abn;X}{-6z+pm?>MVr+mP zO*seMS|=kpr?{BtA9(EjL!6Zxt`5bO4=cNU1+nNUEj@^y64(XsVYKmbq<_e+LocpD zZJby}#WWOCgZi!EDefRpr>F8ih60TSwP@=R9}_GLJv4e`x_8n2q2eUyZ&v&ag|ngiaTHi&wvyuqsMvI~rimziG^n1`tRJ8ZtqJ9tXeF>z^c!DIF|$=;f$;u@coG2tJ&%5L|~QM#V^ z)V>@xcba5SAc1}DujnHPe%vC}i6SnS>IeORJ6H=;ivH0+?i-QTf2(#Ox)h%XW#7u9 z3}Q429+CZ`afd#?T-VluL}`2pV#_4*>W*AH8BGnGk+)({B(pgy{;%9IACAIN4*Bnd z!~PKO1gn?v4yXL*~&SCs%R)<{ij>qp6Px&Oi-sks&NJ zCvm*M4sCwwhk)3yJ``6`jy0twRSN!lv3{CXwN+z|8|{&QYB zB^mWrv~wa8z*9y0oTX7V5WgGzJ-*{k+0b#S3knTdvVj~M=*671glf-Gmuj^ znKYZrS_FQ~Okogu<3(?%WqZ6uj*7ZN;I6^>wW6AZ*aTcD!-#QA{SH-*&qI?9^Q?t7 z&UkV~-GEUc>PjvBC?Xv+7^EkW3z9^5t+iIV0!H*<-OmQyY@ktz} z$@%G-2EF7vGVLOJsk9MeGO!DYSg)fChiiT2D;j+nBcF`q=e{Xaxr86c%wqB#Puc3r z?YU_6S#(R@DXlLbLnNEd>sj>-kx`L#66tjIDfon3CtG_PYp_7S=$-8u?%5FAVo0DK zo}sL$+vM%7Rub9`8iwenwjtVh3Y~w2L4K~WJsnZDU?DRJg^O&Ne(0UTY4=prp(54` zb$nTMyo{s7=ohH{JM8Wx|8Ak6uhpHl-V-7lgj)iWQM+h2){E>o)vEU$`!2u^p;3`9 zXhBNX3ZQs7;Q!uExFPc18X(&1x3iT)g z@^X}B5Zh5uR2yEYLPvqmt;R4A`)ui1bq82+g>%zhVxF3wfesc%&mh?+)?g#L?T_dd zZCvrMp|Ml$O1ve!kGL@)#+vBia@eB3H~|l$HZu zk7TyCq*+3h>NElSN`+I>9Gbxs&_rcOCp@NAjn6woFBs+mcDK=0)0yo(xY7 zdJl>I**o;;yy8PK4~qC$W>!gm&U%Qv?EtHdhI#VIx^<5iIqIV0%5}0|&GZib0aP{q3*3)%I*Ag<`7o&x(b2WyYahpcW8qPew^%Arzo^T( zMX9-Cbl%AP5Bon}6>+lIpDa{@X9J&OxyesYDatVP*4~0cO6yBBx~Hi+`kHYnI<;k- zOxK|(q3XaC$_676a4GwA&yZOpj==6mHgeK%8k_L;q=9-8A8a_B+<@L}EO|BsPrXKF zl+(KS&r(l~wYRE6r={A7l0ZP!@u2@{Yp-!S^Y&3WCEMVf>|4L<7Py18$gYZo6YCCJ z+Erb=Lro1uQG;3wcr+bgHI|0r>apn_(F_`KHPI!meFqOxyRP_HG>S-M*XS~ajnBWe zgda;Vy%RrFrEdBO-zimW<48mNRr?#=%HCvtvAtQUeAX2jko{tPf_to$zE8|gaif;b zsXiAds5>;_Z@2BJ)&NS_dFVq}PrkZC{=(JTb1Yo+fi(O@&g|Xk|5sjjXmMM^o-Xb+ zJCgs%&Kj!DN$G&{yeHsjGU0(!>4o09Eu#j40MZfJ~8g=?{mjIh|W1<+lZ-2Aqh z#40u-k&z_~XH2zDIFDmcEkL{taI1Fyn#Q`eBfK&C#i|8fa4f|GZ{dI<5dyepsEbw@ zc~;*>FO(~Whe$WFkY~{mirB>$yB^;^&+l@*1=muesCjr$XaibOenip1qj~H{(~o#r z+jlv?`TEn6-L#6#Rmn%xGc@>7l1Y3(c!BoG>-4^}ReT!NhWf4L(@-_42jJ3~{*Bsa z?!+Laa|VO6y~e#@_`Q33Hx7zlRasAgdzg8Y_44)4_`zr}hvvGa@>Jzj%F*eA^|D_s z>^38aHDPKS55$p-@hdBU^#Ib1C}tDtB2|FMjM?etS46R$`B3C`%L3yp zExO*3EBAn>tT=iGa4$!m*JAz?y!&bvN>aP{0razBhu>Z^O2V&V8;v{QKK^LUFp4YR zNr-ftmxvTR;$%_w#TV_8;I8mU*wH=zvVTdBi#cH8Jv8;Rsm|U;sq(P9{!T7hR&h8A z`H|V|I9jJf=x)P8jZu|kG6su-$}@7W@@Dh5Unot^m0B*WJ0Cui!OpXWt)220s)tNz zxya7Lvm*535g$S(Sm;pBse#7!#%&gu(0&6AxJZRtX#Z9_Pc%8auK225W5fKzc*Mij z?#FRE=$dQRgtFnkT|@}pR(#m7e?b%#{4n(HxfOacFPWWfXN=*@tB2|;Th}*s09tlV zr~zM49(pl|{9O&(@tG>PCr_eesXO2sO?o+d*Hed^vTe!Yki9QDP$l|Hu?_EwhZQfG z{CZOd=M&@udK#}+ysk_~<{!Z+uq@k*hRt(Q(ij+}TEcX-YoOyRr&P@Z`P<2=Xvd=R z)uFd**o8uC8~9+Nop1eLz-Rbp3O*w=pJr@N8CXpUrpR zvw$D*_gFt_X{F#Z`mxfWvF8o3N$#41Zq>@sd_1x>uqNr(#oor%d`q!E6aIx?DdYr2 zpk49yw&9=41!Vmdv!#Od8CI)_r5JgU4Kz7;A@S6PC-aCoT@wpStg!;;H%=G-K)Su7 z-&V+WkktlIfnLn4{NG78_+)Bm2&WyKRayZtChc^~(-@7?5F3ZNDm~4dw%!R(XRtR_ zCEnQHY{A2bEO_`j@KV-59G7XXMOjSBv$hXzSq(_jDJj2uU8^6FeAQRTnpwF2O!0K^ zft+vHTQ9aSdFdHqe?^v}2Y&USyxyD#T*-DR(yf4luRYj+@t|U7P zPR^qX8JsmeC_FiqK%OD9IK(_IdPHv88hF1eM_i3N*h2%H61fis;lCRmfua<*cH`Z+LMYY2auo#({y}8b#yYr~sb2h@u1|H`Exx9} zZ_*1^OI|nXZEz`NwOpkFhpQ|Y*C~`7IR9;S&DxFYUu{(i{|C@4|QVz<3qN=Lo~*#+@>5H}HBN+_G1 zkWnJ;pri(oELM!p*1~qRbCG|yxfZpbk!5^`=9pJfJulQCno{Hk0w?WO1e$#hdP4Ry z=s84{7Kx^-d5Au?KZ2?J-qO-#rg8P^Xr}DkQJvF&n>fY2aKGMrdhq!{f6)ITJ&990 zQYV@ch*^$iriuTY^-qVVpaZlgd43EAl0LI$o&HK zMr79*i~^;~?yI<+inqrRBzP;c%8HdQk{K@Kwcnbd(2QgOFZhS8WE3-p$C&9JrE4#F zPOuP_Ps6}2AQI7xFDr<}F_r134Glfn98x(VMl&-&bQrK~l=wkIMIlbP>}1Tx4wfUS zF6TBzvq;^p8amFZ?JoGTuuCtao-5j)!zbz6?@3-;S8dhs13OpweRHdPQdeW|i}<-& zC-kB2d0dwEMp^IRGtE4rHY@#va+?e2DSzJ?+*Lz`CImO=^3L< z{vq;K(Ol%KmU%!uqc-%U?X`y8x5XAo2h@e0v1_c>h- zUaxQ4Xs@^3_$m|?FO1FxX&#k6rZTUOU(LK~PD$O>%$dxeSc;;^2VoxWsOT21k}jzR zHFkvrqKF#Qg;laxZiMr)vx^NR-N|rpdqC{3v|XL+v32|UTE942gl;z=Z;Kz$VVi61 zGj<`Wf_(?B!|QILeUTmkI!LHq@kDDXhk@UU#*FF%52mZ?1=t>mE9irJ?bk;CC!q`~ z^Aam36Az9XWqrgrcvbu+`f^XBp3+lf9GIhyJ6O+L#&^3)*9-o3&avz%bgQU~(gEka zP}LGdml9u-sv2jc&_9I3#C?$S=+ObOpQ|Anj8r{?C!k4dkzR-noqR8^6Wy`Qi}_Va zpNa)O=VJ?D>;nWF4A*m^JhIl$dc*!Hbxxd^O5`_-a4hYK^cw{Wa~;{Yl^%o*)XGoc zzoQJ6Q7B4z-{2_l!lh>@Om+ev{*fVOueTS1?NWof6h-x8%>X`@n|AjObR=brhS<>^ zX|s+d&8mcFfk8%gy0q8t(3;Yv#m8cb^5Cb93^BL-X^C_$$Mq$8VZE|iHBL`s4Wsm^ASmCEcZAXSjhDI>E(Hx_wt#&|EY-`XNq=-|6!zsLCDQW|JzVua#2&3{MVjX^TkJO?4S9E^0)3JP^ zn*QnF)P_bEJ5xD1SeKbX7xUCtlX&|TJXi0m8HV!*=KPwL=Sny~TqfLZ>}m`Y2i_U& z7!ZA|v1?f-jhsvFnWZMCp-+EH<;i?Y_)?>MGK%aqrC1jH$P(?yi$_Q>x8*ZXlzrvd zy!!dhqfvbM%Cn+xaa2oAj`H7fjfh6P9G|1kJH`K?k@d`=*GPn6Gd<+qEwyY|3=_?_#Xx9FC^C>lG< z9Eql?nZDyK#q48QT7;#8!IFA-Wr+NR%1~)OuGn6Q&f4kdZ+_t7xu7DZ_#`EQ6j;Ky z;vA_Ke-SKJ@>oCB*I2G;t2^LPnoyzAac^jzCoIoH#OtbN;~uU~O}msqZjvA$6XumPhC zIbEAm9+UU*IMt0>X5#^%Zu;wdYED0wOh%fv(v!e3vA(GstGK#Xgsb1ztD>o5mx2$k zsA>@C`}nm2xf@NnX`6iM$(;|nS=Y>eN4FNpZyY`5OMf=<98X#a?26kso4v2wF#0_M zZ3Ha{x4#Mpkb`O$n|3GuCq*%p`F|Ufn%WpU$KKys)QXYD*4i_%ftMxG&g zyr_}I``alq4%c``*viF{FOIgtF;hI zg%@h`YXf>RT--1eRp*8tuuQ4XJsav~(!3C^r60tFjCRkR9%;jXd)^mRW}1QjMLWem z;*))1o>UPx`Tyn})1nhR9>M`Y&dQAK@k zU#$GFG96CS1>oOT>ibzsG>^PQfdo5FBct$}_cq9KNOPV)TCGIZ@N0sL@VPxhzKQ}Y z$$e#oH|%iK(3FO2Bj;iW#1;_0HGaEM8?~lQ>KBYZ#VE2vGW(NuopX5+ejsn*c*xrb zL)7O@DQ1WsNI@Gh*8zyTch-;Qtdgib@MT#}O4$yvbIQvr% zhl4(aR+a-pn)86>uwJI=gxs<6)V+uHM|*Wr)mYY(f-A0b4GU6ms3So(hO#?cYB)I$ z3ry#uctmBMIE2zJhJw98Z;%e|dJ9xkFip;TP3@vMAQE>7zgJKS%s3~R+#jfZySHcl zi9;iMM=n0mPW9wqq_~5epgj^fvF)2{(Qp{~Mq%1^dmZbJ3@Ekxj3TgB_%U2=Y9Nu_ ziS8dXumNT{q0o4yNEbMj>#6o8%GA?U=Z1Rbm0G>F@W>hSV&B1S(4oS}=AAu$!S9l&-i~lU1M29O4gBla&}0>f>^Ox~ zmFG3N!=zo~RI8l8R^Rqdw%h?z$t^dLgz~d{S|j2qxk*X_eLa#u3FF!MCyYI_pEuY$ zVk=)=&iN0*`Go`dRK3ZIPL;3{SHtH;HfDYL>*enM2~;TzYoQW9b7Nf*#7M^y?UxGmBdC84~y_UAl63CnDEm_ST8GXxUufQ zr_j`D<+<=1Em_&HTRAXkqcZuxluqApb$pUkEx_m0_Pl@ah`vJas3+Q1CZStjtM^aYZqKGoQ^kW+x7%3w zVCxj`xi)=Y`SHLed|wL3uvzw&Rn`S|L!)IkpednU;I~r#;dy$x!?kbm^)Qbh{wt+TlQSOmQgv$)Z9ilr`XwMkx?=KCB}no zP$VlglBV+^{8a6n$mV+2!6);{Iq=OwbNnEL+S7CTl<~58;z^#-l-bZ}!zKEXJ#7z- z%9DxjM){HAF$jYl9(Dbv4f2jcWxb$hk|Px=`$eK+`1EH>WEV+RQ0g?CZd(0zQg!Aq z$f%j`432~xwhsmm-Me?!@Hd7M!Gl4rI5JbMF^^?jn;3458eTh1bnyZ*IaOF=%1m3k z4=xe)Sh6jezCeBd_3pY+*GH*wG-uS@r^cTMz=x7w@droJj%bc?RePleiT(k^+9ki1 zJi@f8Q`KHq6`u6OD^gc%<(ZzV;i@wBy^3i?x`W`}6+E7KWIC~G$*72B`YkyXUL!+> z9MTjYzK*RWo-%MGf=3fSyksM9ptEywLS!;z)Ya5sh?CdNx{+6Tc+aRjJRiuQZ=u7e z^BGXKa5d%KNKD&Ak;`wBktbJd6+mz7i#bbe+0eH?b=-p<3(?gBr)iWHNo^|#K{MnkpQ zU3P9szI=it9Fp#5`1&GGpU_)p^Q95REgMmsD9Yl_p0!1$-)8X{ zf!^qE$obIzc`A9I?I%ygk-s!g3PgTQz319CS9kS=Z5=)9>3ZO+z6al@&Pt5yRHygK zR1HJcY#jJnWvc3ak9|veXpA>^iERK5xQ4Bo$@NHq?UQ@=~Ws$1#8r& zroY(xN&=yepleqSRic~=@MpPHk8AS1Vl}j4@|{QJWbgc=!L6CC0+02xU|vvOE=`*p zS9p{B$9rCo49El~gP&~609~Z0-={0Dw&F0Zt$bU3m)nO^J5zoN%^-_zxxu7{aEm7+ z#|{1y{vkGyjBH058@YF(Gw|z8QEzz3s*Zw(q){|S-UGE|nP2=S{&!>qvA2!GJ7uOo z^^v#y$Wz1TJaw6Ex@SoF;#;20xFRE?@SoG$SD_55PZ?SC~zl0ToL~ybbUPVk*A!B`8m09F>XW-yUodyx!Bv zy~&P#EMIl{Bhu0v+JD%;^Fek8f7M(T+cNVW{wlfVvI9BsS8+Fd78?yHH8gTyB-5sh z-+rVRpFLInOl41CRTQR*8*P=Fq^g>}oJr;tb|Ntv%0_D(zLJ+bt0B$@i(e-?6D&|P z*bz9fru3txmIkci%o1?#)@NMZhSpI)$4Zq{4@zheuh>GkX~12*uom5>Z#|u_-O|*+ znSqz9l?T*3q*880^k>m1&|AclxBS%3GHviynbOn-TliaSkVT7B@g%F7rx1b0R)peP zcd!$pb6h;o4u1@yNO@9X`nsjN3(5NUch^uUbbLxqWbrEAe|~ zct*SWIPrmAdX$>=jEWCLqrkT$=7MidA8s4+<|Q5lEtd2%u_btgh|a9|V2nfh-hONn z)!QMUhk_5kkGQB?V3dNMK9haw;HnjKhQ1C==xAH2(<2I%F_UW2iq6ZORCm5!p!o>7E(vYPg3g#9T7X=wNI;aSmd^^K+vk?$<18 zxNLM*;lB~B!Z&x^C$g(SruzKjL20%WpsVcNw6WX{P8rDt9d2hF$te_Bxq#Gs<;cR& z)VkM`SJyl*ef~_=R*Y=LNP`m1Mf9fEH*IuYjkRZ&__HJO&u~@mihQUK9t>-P!{N?W zFN-(}Q)$@ZRgXL?9eHd?;VZmGKAs4J*xM4?Oex}#Lj%De(tdZP?C%#$h8p2*_%p$Q zTPY@;t=lauOozgul}s4ch6XuFdv9^DG-Q24o&h&^(Bt_w5@^4xI?Pi&?6%*qDg{^U z8fMiRCAK)*;f3gW?djEXpH`ztOy3#ZG+(5Xw=-OTyTu&|{(VM=_Q5gL{o`8B~|-38h8u@-Scbr_HojsbDo-!(;-qNicrUuf?IcJL&}pB^c3m(u5caL z37(FQ;P)Bn(uYS*@e{tNG$^rI8$c|eH^(dRA@NpqX#W^CfIzX(a4RM8?)#d5`1(V; zq>l22g;Gc9R~y{YLaAOtM=E{)u>sK-^uTA7l$VV&6rvLq%dG{`6U*}O(;82Ov z?P+j170~0WWLWT1srW}dss4ixyk6QE=npL5%Ui(Dcs)!ePb3q<9YkV2>+cxdFqhMN zt-{q%`2o;w{GLLu8O;>>U2sNu^_}a`^-hPFzeKUCxoY}JW-8I2d;>ha0%v-MJ~D4B z|3m}7XvN=xeI=R;Hi$MVdUv>VDs-weRU4^EP9a^C_00IVlPN56&fRs zMGj|lTAAb*sRelR3z^#D*E2hA_cmnoG48l&)$V?ymihYF_D_mrHAH(q(yzDGj$JQ&sqm{pv+vIiN9~J1T?_g{@j&&H(S3#G`(|nt6MeNEe$a7Emi>~DNQW>^gWIAV!qY4Vqd7GuaQ8x9N zjPyd5Q#Dj~inN~vV)`-H?y-^=^OEO%i#8|{4QWYqketJ_@b&gqCy}&@m_U_}PjLd0 zY`-;R>lClS;CWm6H|#h9aw@5o4Li(W2s-@Sa;1F>qy@H>#rHa56-Th{%Bm5TK z?Qc74i8tz)wWBsNI#L^qiR&U?rp&n%@?`_^g^nN}P>)X}|5T~4 z&LMkR&r+ZIaX0%)$@g{bayUG&-oeL4Wlz25IThKH4ir8eC?@DYVRN{WW8k0W)D`Ci zn&(Cr;$8=f&r)JgEU;bcTfGhnWe17^VnkCHws}&k-xevhem%OIGesTlIQInZ5tvl^ zz>UENqb zie*=jJ3fHJxN8=&TYB3HNy(i@qZdl?B%36bxA+NxO;ZaF(1`HOTeFVQHf`+15^U$Z zk@%jQr-bSmo!FqB!Uxzpx3xz0>`r2Xj2+f9Z8`A)3Vqgx{PgJfR9a8fa;L55ks|JP zJ>wU4R2-`8%BlqJv0qhAS|1gkm+@@FMqd|d&=*uEm{&LfGquSoFY%x{HLjD;t#0e8 zHu@`;V8mr&4Q_nU70QR!k6{j)vv5qxmkKnPvNluKMX80kqx6NQ=%(<6~Eei{y!lbo4ytC1NdA0 z!lpIX$Lck|wsGWF$MiPcukEPq$Q===BQ?=Y8peC7rzqJNO@F2q6e?soFpv0**k7`9 z3tnxv>>PeK)uZHPNA$4>VtV2l)gsv20q#(JljJVEb4jI3LAi%=qnt57V&{fAZ6JN+ zgIrK5sV*kQ1M@44?)eoS8lBNs)VjWM^?_60y7EAS?~~O!8j9Y%u)?R_^Lt*MK1f^k z%P43fN@I_>cI4rh%a6+Z;JzCZA8d0aTCm}IwyigbUj%wVyKPzMbZ#H+*&vw!d`DUS zEl#Jqg}Fy9>hgU+jqa#o_Ku8X=!40s=g(~a!PM0F>)LDmueN&r6dZ@1KSnyJh^HQ_ zF_K|T{?gJdeI&({v5B@{3yv>-d48|u7Vyo_IgcpMyf0(6>&CTXP(EDYYVRtnyQnKr zY|n``Pi=H?EZZRaQM{@ReI8n9$~it~2BKXU(<$!@8Z0rE>utM4J1ptw zu*es=tOfV`15t!vj>?kPy-mvJD_seGMIMh(=p5Y%glh**gA*cRokV(a>;YCMmZC^S zWCKkVN9k&V?_TAcMiSU{V(Zm#Ih~>#*g(|4tcAnI&VFE|;y>S4S*dzaS22~pYlPEj3j!pxQPG39fu9Fi9lIiQmold@AGG+JC_!>^*A+KbV4u!$?y^kqLq$JK`OLvWpGI?&9RXGC9*Eu3%wUhV`!Q+ZDCEODSWjDfF0LQK3p2mo=)JNj@~UV0Zes3_4b=J;3zJ

      I7#6Ya?Iv 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"~bi} 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

      10D@7D`2p*&uAQ2!`pe@nWO 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

      Ab8Wu;%J%i|B%63v#lWVW{)9cuIPaw~tQx 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%0D2N>znx=Idh#ynVfVrR)!RoR!| z@u9*~Z9}a|ywD}Lbft$n#llzF1^+X~=!^c@hILIHMEmrmU)(wBb_}&H%@jYt`fOq{ zy8n||V*=TLA7Cf?!%zo3mOLxSebJQEc`N*5as-#A+Lx=X{D+^qel1J3Gc?y8wV?g^ z;!j-s5pb!=p|^O-wU+VqV=US5J)DNHx1t9nkx}0n+2S5loPWt$>%m$B$9x%;RGN|& z_t@JTTIhk8DZZ*-`*Oc-N3Hkf15s~7z`&F1a7O)y9^AEa8aryq27+$2Xl(-;jrTnl z8)#=NeY@g?SuCyW#ILsWe(qO=NH(^s+8my!!C|V%x$1V|Fjd8aW}fX}lyFTJ9&=vys?UwcA9_!3)V9US<$Sc6*%qYE*?* znZ~U?YiQhN$Pgu3Mjj_9ZtOP;_db4a?m=&RS~7&Jr1(H=JVFl+Yt$I#m{~|Z9?S)5 zR+>{^wBF#jL_-ESaZCJXkMiZILh$jAohA$-9h5A-%)(*>=D`Ts<9iESWiRY~Txz}H z(grk2R?d!kNL%x@9{m6Jzi>$qn_G?m=G?!|) zD_a)yH?&sj$YzbpU0JGlGS1p?<{!CH+jz>gW1L)-v7!UF?76N-bTJ&c^WEq@{f0Ko zo#F}+vs4;3+dBT~cO7dwXf@yHDgH|QXT-AS_Q$A})@CoRj@*1?OoahZ#Z)LxvP6Hy3|GXrkur8R(n4+?3_+r-NS#%qBmuk zt&8Jtb!F@ycU|9OO2fBjgGKg*u1xk*<7f-fYLqB#c^7|KG=ZaLpM0WiiaZ(B)1rUd z*by67=G(uq%l@D4ebzj8(+?xtVn6iS*k7q%|F_r7L)H?By}K^by?9r?XG8CWR7iNN z_$L(|P;-yp1)j_ln1(}x-DRz;T`rbynm{w&w*KA3|9t06Yq6Da@O3VB-Ld<9PLuvt zDl0C33fI^cy@>g4PbBj0y~Dll+#85q+hZ{~>ntWC8ZCMu5^f8Tr|If37K>A{#r_Cw zYS(1)sFS{SEmWPHvd*RE;^$I69zV+c+~s4$6s9jeH)}5zXTz5wNA17l*6Z>frg1Jc zWi6^ImRb9PXBfI6dR{e==uCK3Yrb>-$!dTo;=TKN5}%mgw<-E$clnxm_>~Lma1C7` zEB&<;XByB^^Wwg_#9ZRtFGQirP(vy;_J#YO(kqfVd8?^Cy?40q)ZX%{Q(yJS>)Ec= zJRH`my{F%Mu<*J458@ztaK|V9{cT$Q>a~QeS}_quYZvFmmt;RGaUX2j zoHmaIPllx4__mJ!{5!UJim2j}ftINGSXh&|4E;Fbb)%EFgOVS|NMvkm-WKU$VFySq zl*DloP;U(6tzdlI$>O@O@s77N`7*~-IcjzwpE}KX_;!CV8f*_)p;_lMEFIBewzmf=k=f{HpeTGMoaK)deB+qz0pIyrw%SUhh??&iA|H`#ygu3sjWj^ZK1BM z)LV5lo7}kEgkS2xxlk=<=lGVIw9>S2c6e(0<svtF;YN`1R5Q9+Y%{;bJU zG(1?=QV&a>r15mQKgel`Z3h}LO;RVvpQp@K^dqT#$oZ(5?2>oStdL~@PQu^n-JDHD z83S?-eK(Z|-5NUOrTA<%=C?>_#u-+%bC+jt?9K>eYG^b5v;3!MU6;|lg=1E%Y-n9{ z+C13t|L!`{giceh{k}ZXdB!H(v*lpNH+BhUm74P|^Wdh0qKD3jgc)GIa;tdW`8Mq| zv6@p3J&cvC!3$FHHSq#*`3ds{s!GCX?xaV2%9b;S;YW2BoCRt*b1b+cm@&cPF?JWTet2m#u|?c2-Lmc%nG-v@F5l15^ri}t?k`}#Bf zA+^KIwZjTk8}Dkx;aJGFkLy5&SwwQNvDgl(p$NaA1;>M}L4vPChlNiB@r=f22Ed^r zwh~xoN6$xB!KE~u-?`{ml-cnco(_D{EGltAmAe|iR{_AkAjrE0r)x>zFwa4vHkVaPed+`q* za5C{}YNQuSjd!g13joYEWx26+9xq0+vnY zvS@3&T$5^7x}|2|*)NXie@$5!4-YUijgI%U_7cM5v`2I(O6GCe11H)~@AA6Tesztv zGe#E)Fta)uEIo*+8q;=YIo!TL9SdMQ(W=7O+k*;g{2u8YM(%0v^AZ7I6)ye;SU~`> z!kTL;i`-~ml-=M-C3(xb^1Wbp&EvLOW3?%8&jN2;*3xDL#)Hp$ayhL%UH0*t+Tdfr zlpdi<999z^x4=E>akRITb%ni=u?YC1<|zBm_YzuT9rhG%_IX1&n-PeK^hT`hBt7}f z@q1hEC3FAw_AiyQ3L0&>Fgv?5r-?6G;xxv?t>FcNqS`}c(df9^dpb21-mx|pmZ&u^ zT=B+rAi7R&r`IXKhiDXA+hgy!v&Futa7Q1H)y{gXRrZZ%-eSCkb?(Q#a zY2PmpyS`>KQqr3pTtv^lp>VJTf2qa*SAzBC$T)37@%RCUHD*CNUG@6@Q1d#N+b=UoOVc zgJ+8Q!RjFO!UvBJ;<+D`*E^4q*M;~Wi2!nSIZ5|pfz-U=g9_f zeGf9=aO0x3E{^RtiOjvO$I3TTuaY0^}ui_XfiTvk~vKzdt!m+mdXFy5rt!tC;k@*_zK`r-3F*{`gSd28Fn;MS|5^ShV82c_5B(+mzh5;U znT_;VCvs2OX0~UOvrYnjK?@N7XdvDk>$SUACO@hNpZiZ?ez6YkcVglG zwI(}d+Wl)|9AL{#rAJk6@Q~Z~Vx;!Ff)xWahnQ&1X!N);)Bl0hc%CMDT)edd|Io6h zbdpbROSUr+v(5kNHPzvKZI9{$)2#HB3115=*;VxSSWmp?Z#PGs4^lDb!sbBFvN6@n zuNp&rQn9LDIQx&c$!-d)uIkYlyS=!@iN1?@xVUEZuJf(3nsUpi*2&r@Xaa?D>nuDA ztuH*6pBnn%69?1f6@s-s-qzoTCWj_RMN={DXCmpyUc9yGsFyA!bFp0P5ou^ir+dEz zM>DNw;^~3C0~o#{XwdC)kw+q`MNdb+1zvCi4ZCTtr^Y~Ar+l3BupXgjy+`DkSUR@X zOnYf`1+71KM=tRQX%HVlMxKs;3$AEt&!p%Z6w$ZEA`JoS_$5F<*G2WgKmn`IEwo{=kmQMvf%5lzKR zqx8^tO6+uod9W3`3AW<>i`jCsyTpgZJ{C@A znb?%hghRvtmh1!+!f8DxwljBP+d8%Gtdnu*VG>m!t!pBJ9j0t!?Bl$aul-i`v5YRB z4Z;%0C7iV;phIjM{EEKy%XyKNVK3@Eu)?n!qp&naQa#0-=u}U+RqAb2!`c^W4`zom zql{q?$*WGuFFV?uoV6!t{8TelIm}IykWIwKQ7;)Iy3srx!yUEKqt>98jW%~1~P^ z(d&eeJZ|N%J>B?Em`8uq#Gu%c{J3_T_bFnIHWPoeS))aJUM-fJ%?RI8`%PLI45!C_ zny0lB*4XnZS>a6c7wC^f`SEk%$yYwz9wNIuP3wInG}sgPOe52kW4L#pSUE?1oulD@ z_k`#Nej}GNe7fej-6z)aZTJW4g$GOXb;p^A=<_%3VcO`H;Y{dm=@%g;+)x|(T4 zt8~#=ljy_w_JbWV2mhx=4;xR!BCTe|sS|j{oWx5&WPkQd_Cof>@e+Hx)FT^@%}36( z(W7O)`360THG=8p`_DL&#A7msaVB#i^CC5M1(SoRO?D8=CqgCGF)!WWN&S}aSm@XG zR+4z|6fM%XxH4ie2B*Pi!joX}Jg+n13*i^TrI1L@h_z@%BDF|7I$t;wnS`pS1rs?F zY4ji;jKL=eoD1+-|j6b;41LvXV(vK&qO#4I z*oEkenG!MucqA92ktjVlC87uPMl1}!(Zf^wqD4}Ru}G{IV_y3bB&m?Eal6hS9cv)3wtV4`=!g%-moo5o0@Q-=2 zE}wBOI4?#7V*dG_qjas=HQyLTGd1$fgjG;2&w2CIYQj}G&^C#o5N2614qi5R}f#PphJG^uN!0ldt`4GLZ| z!fyaCekyn+UyLdoG=tVAj-5R%5-p_vK@%wo4o1eT=g7bBUJY~3=FUjQ&*1#N`QVx0 zg_SQpr^e8N-lkj-ffkX|@z15Xdceg4yhmV|S05t z(=$O-lE~gd8Vut?m|9Etx#6wb7e*N)91L#?AMk|Y7(h_L(L-%Jh&HE*w0gXz5T#6#2BHU+Ah+? zibA!_mfgoYq-at}d8oGVQ$^SQ4NKwN4)MjU`bBK8=~aSj!Y|Rpk)`k#?*JD~BO`^( zSnrR+p7&lB*o{1w+1k4xn9d;)t3|g0$C6{Bckq+vc?}%1Lc!2+kKO1OYVGDi?kHy)L7!V+}5Cr_HjOLD_>|)dEE!2&y6^G z75<*@IT*jJPAf1Sgs+POKURxqZN%`wvwxDE%)Xy}xz5#94@q37*ZRrDVb8#`e_~8# z-p{X<+kK{3b#BSNQa*4dEhgy&KOz+irZ(>1HMpF`gbAqcz3${sqP2rJbP)i z-0#rP)n?!hKM76--(UH%&mHzu$N{@goW-Kq;L*!LFOPpI?Xi|Rz2Hht@52}g>huWY zdUEg)=8<|T@N>&WFCcdoHzZ<42e(FuG9@~*(K5zxCMv!aqbj!yl39nddBeYHAp7m> zrc&z!?|_#vFKwPNAM3An8~vA>gWPEF+u)WL#>;^ljZwx!=7Rlp%S!C!Da#D};;W{W z+4pk#ov*I8{^qO0!FRs8lQtY29{d8Q@;4g8KUY#SvC2VTtGf19M0r&x^z_qRUG42p zKmEW1d-kkZ^X#+j?R)q7jWokwl>EO~%ic`3JN{Q6&$s{8$FCpb>QBN&8KtXh&z`MY zpM6$-msn}XQfJ)jK5)#`I{Y+pvLpULInyC#sy;tH19sC^rDdx7f}^L{1O4x@@Xu{F zo4x(nE&ugje7^8Rq4{6z+LGOWt~tA97u>}6UP)cMqyLNOhvMDa*){YruYKraJGbN2 zGl>%73`in)%FW0^JXx_&tX=d=@w>#)`j1cOTaZzKs?z@FMVpDuN8b`TWZN6#oWUKp z^Z+v5s&;C3AaxT}Dy_|1Zz*lbPQ{(9b3CbcBh#@Qv>ZJ;X}S5}Ti}2lwuj@tkqsXo z)*q}sId4{rTBe%e21iEf^}eNKs$Gn8dzmrTNh}K1i)bODXGHvYRAN?-)qaX>fL|C1 zQqk2ixxK`B?^GI>YDkUHK;Bee{^In7YG= z8AKkb#(OHJT?W$Zky)!bW~{HaGG_D}Hkb8=!^JR}yh3(pTIr{P+jtWN!%aJA2loUc z;YcXb{U6=1_O~^5i~njIuot6)>7P-x-@wYA~}mGH~eJyXBfb4INm+&;@A7?f#Kxi2Zjd+$&%O; zOci_F)RW;sFO8qy?}5;dMa(&G(){1d3Nc(KB9)F~*6&*f^W*sk9*d^SZE`N>zbbfO z{nrn*w@6z;-fdzIQP6QDX5gPj_hd8^i^gw_8;*R#8o=3EZ_b+Z{x7SNtWXWBk~o%R zbZ;C<8>LRCthJbucaQUt!CwASky&!0@w|s`Kc(54wP0#ZnyEpZT340X_}*fD!y`mj7I@E{1(JMM-0XYyS+ zV1~}E2@m}I)298-XS*gAny5|tS@Gjzej4Y<3Uo3xvOboZvQMVwhNil{ZU3vTl3nUz zWMTxYRK)I5edRH;}?>5kQjxw&^No%VC0rTG? z?E+CCz$xCT6z{;JLhc`WXw%$OoN{Iye#Q=(2h10^%fr912kf}h!Ax!KZI8?aMi`i$ z>S}{(0-Ut_FCV52sM}1(iq|<0dmZRA)0D0KMb~coue#=~U$Yyh zy5uSHF0#y!C@D?X-s&2*-{!MZU9CnooP|(kGa5665fOy}tO8vvQ@8BeWtvl|esin& z7TyPWl~;m()(DmBrizBO*18b+Mud}|=uGBicUX^#ZitrhBLY+=Q=9pXC;@}yzTFj0 zk2*~2V`oQsh8FYgj|@hdy*s%@{IkN#&kla($@ES%eo^1Gbor+DiHH=a3oZglqm|2E zQgcjj8(1l761wvJNdie=X}P-7(qTyq)0G}*pLK6UU4Ht~iaDJ0`t7MTlaUi^0&ujH zU0G9!R3gXLbfEu0(exnaUpLh{dZ^Ico9M23M5s}*M`~`V>Nq!vRPrNBSC78U+4u)u zTi|D_0(ymPqrkzsXdR2pMdq-bUfVIJ&0(X?ak3Fp8eSU~rRo6}nj_!IYtcFKHZ9U0 zBQzWtj%@!kffRSU^P9L!aaRpaK78l!?U(Kw-V{!RrP$A=7Aj3U1Z?k1L~}>HiQMqm zfgLxGJ(C+8`}~gR*oNHT!&BYmRbe^SPZ+rxN7eUBUC*)KqUSI@qPa^CH_^k;E_v98 zxj*zSarC-wM{R6%?rC}qj}7L&@bG$ixY|}PlNipOLBAq^c*ld-Y5B4Ij?7plH~ern zJu2q6!Nj?Vxy)SjO|lkzC-HjX{}_BN_qE)VH3zknR}E;}ysab}qhd~Ogn#?_v7Nck zGuD=|Y%c$Bj9SwiPLe37=EWHM(vC;Q7IR-1tL+%#S^w?f5YHf|lO;Zi*P~BHpWN{} z75Ky!Ji$WZ*!6KBs(Mgo^YtV>qOVI#DE&`F#=`O8`1WH!R14OE^PA=quiy0~GU@d@ z=Wn0CZ+_E>#8@Jph;NDmQA7KR_aO6l&-=~Xy=tuw=UDHKPmO&%_c1k(1JMJCk;GtP z&U@t{lE02TJ2dhj;TJuFpBOH@Gn5{ZUD?Z8cHnUPt=zvJdv*tAdhVZr>{DaixnDo5 zvsPp(DMw!Lp5$P5Y=<^hRC`h!8wQ?5*2+PE7fTd#|BqK>KZ`r^W8WjtAhUy(D?Xg* zF0YuftmY56_4@Vj?iH1rceht!yL%$W`(8O%MJuYVm=8W3tgd)^aDKS<;LzyTx0Y9& zs8#rHs`8`CcWSRy=G5y)wW$)A2&dXuHOo^2JFS3aB~pX9^k1k{;#LPn7*wy~v7p=N zq8E!2MX8;WD9Then%R&sbSSmFQnDQf3*XIm4*%t$$}QQ>J0{a}j)II2rlg;FI4;uAA@oYr{7x38D3>yL=Peaj0_VLse^( z7|xw>*Hrhc>Zd52DW&lfYN1>$_l^HFlbd)2pykehnEpZjbK zth(ogfBXBpc1MvDLXjoARzowA`0sifZF*znPoFy9TCo<;WPD$-Xj&G6Lhjw1Z7K(} z7A=T6VEk2+V+`?f_^li`6^IA>TF&yBW9*?h#)4iBoVDy#(}5w~e@zGMRc9?mz~nB4 z4&MCzj)f&nvAhDc%vdnoCf9hVZ4|9bUW77f<)C8@1&4TF{#xLfGS7;2zO|&CWk|o3 z1AQxp&?=}Fqh4WRFgsS3)x2a@<-h`x!7+{momQun_xemn%_GfDi=#QKj%a6T4xFMK z*w}$K!MQ@#IN7Csnj1SiZz@|t;|l6P zekdq^v2J261>!b%Ao_B}+S6M0C&jx+asNMHp#v9rA$!$JKP&%!)wFenn&piWZ)oIzpD{=2IDMy#~NtT zZaT}_1tV?!EVMGJmjnt;8kG;^8>NS<@2)_Md8wBVu>~;bEEpwiL9fFh@LxYB8OsI& z{wp5j)cs>+C_*qoAm&3$TdV2c?|9psUOR10cigOZtmWDLnxWl28aT4q2{?B<#vT2A zK&zv}FhSo=J{1^eS*<({QMFFBpJ@-CA6opwzEJJ zu^}*3f0qM$pqY}^*vXP6Gb^`_8b^#fR@`Hqw9FM|+gZKbx?sA^58b@mu7s?ctq$3z zgT`!hE_^bmwOlqd=2J2>K5g3|wrbmk1t@o0-;gzAZDU68mOv@^{kFF?R%yLj3L#UOt?U8GSshq?cO0 zuPykLRR3MDeW+=uZAf#Q-R8Gjhnk0)U4dWA?qFrL$j=H=RGMX!!9$y8mKZ_Nks8VW z4cKUvcqPu=DsnlPRMv{=e*yQgEP?0%`-&#ZyZj{-y%2J5-qSIlxI@-(JKUQWLS<7% zu2>dai5@GCv`t&n%Dc+DbwuHN3Fu3-Y$eDGoAWHRR1Th9Y3tL>d`M>n`cU(9GuXMZ z9Qa8~{MJ*C#f_f;^FHHk!*1dhe&Aq-#CM*=+j25A7oLqA?2s`^+6_NfP{YT|PROgI z2?Wcm#(%a%Y}99jwJg|tgU_LTnX{~aK=FE8@TR`cB`p5N*vtc7!wy5Ayqjk&N53Q7 z7nXf)yUD)W(H;FV4I^7`V<)Ed>6Yn^X-#(aV8;)&lN!~e>oNu`H3p1hG#gq2o=uMF zAQeiwW|Y8BnP)k89-iwMuI@I=XRaj(5*HJyMem6Abqd5Zc#;N}vh@L8!ms!=poNA)LxG`I z`K==~%KnxEKt{dJw#v^Kr<{FoMi<|+ycWpZ>SBitS)&Sbo!~;NW|UUB;nJ!OW7Lol z`pmaYn;P8b1rrTh=O;ViYOY8S(epIjl-s&(%2fCKmsDesK zztN}CmuIjh>A6Rr)_EFxG<4I@z0>eZ*;W2({(SRGtfRwja3a?nYPUmGlpu{<+i#DJIwE%c#9x>0F(^>_O6qvwY)2wbm8)zD68&GQ; zFi~8=uCnFA-8!t@Efsw?R;&D_Mr~%!0gd+#y}_j*^tv=GnFoy@>I!?=yh?%(V4MG9u6%N^PMPAXf};GM^b_xukD(1IE3($doCPK6w{`AW zyzDV9=KKhVuyoTtkiSy&Z&E*%!+m%i9W^aBD2uiG?LN8 zO}qIRzLO*TL@N)nFNW-b18tQwS9es5KU_vH8B-CtKY!u2N$0|C6>AFnL3s02SUx>} zTgf@kr*rm6KGj0oxaG4eq^(-|O)sxtJXWREWv5f;^9yx6zCZJHW-^`Ohof*BIB6C9 zDZDtb@_*lBmMy!_i9ZxO7PYz$M7PD9IC-ZOXBWyB9P(enIqLYc#)6g?S{o~ALM^YT}{sm}v1Zj_bD-4zQi zEicY60=6@>Zs-&C-N+5-X;{xQKiQ8`3r}8p_ql%m+DR%zUi~g~;5NB!{yUVe55U2c zJX~49XHrp+=eL!6SjSoM+w&h2e4=NOuQ_@o5Oj9zZT*OK1db{1XoGNao+Vl#_QcsP zTReaK#Yio(o-3TGthAa2Ze|_jeRWxL8uWNSuV#rI4hA?M?3V<+|fMRESy*~ zfH7L1%})($YFcDIP_{K+7g7Ah@>d4GLRXr;b=H_Qc7ccIn=~H_nL8_init@Z&@_Kt zjoSimX(EFwEftZ$>TmgsPnXg8d9?>u=-h{}^b=Z9)E{(O=5C#P%rVv*4r8}bX%a50)os(0_%LKwW8ssl`LrQNu`nvg(LQ7pP*YmU z*;|~JBTb{mS^W;Jj}e$nOR3|7ri%6f82EkdZJ-W?wW7yyL%seIjv*R`*nt7&we)_L zzA^M!?d}*fD14$JDGuUmS?KUN{6TF=&p`@mb?aELX;eu}t!3!eAuMYRAN3yI7lf;< z5Du}>x}2gG;A9T6?SmDzDOyWI8Y%5_g+Nzee9-zKdi~UjskR0E2%Hw~+vFlMOHEhC z;uCad)``V_Wyj8H!co*Z!5&+GJ213j2&s)8!aC7P49i46lGnVfh)N9MqPsXd|7aDTC?l#>=#mALzh{={%|#R zMB%wSxuM5?TRW#D9jj9w0VlA~s$uz_QkEVg0FBYMBN3;rLB*TH%2+3&@d_k;PC2cO zGH-w9r_rkXrg&0why8&KZ&q^3-;DvZd)X0Ln~Z_=<8Vkz4*MDELCqLhbECzjXQvD< zIfjX}pN5XzW%_}fH-E(E0rFRM!$Xmuefrz%)93Yvz^>(zLnz>g?r3Fwp~(@;UgKm( z9X??}i#ort$*I6kjQ6;Oi z*r0VACE#dBTCX&?nJzo-)40P)hwu&I6AR#E?8%c? ztW0ppZ5hDs9Wcge{MI6R+tNywuWyA~wIMCyMYhnwEn`%(sGQJ(uu#S%KyoLtN z=Gz~->7}-gwuf$d=%(3-PvNqb1!TurIM`WrUVk2(y@-y+928uy`~*(Mw0ddA`K4Wh zhQ-^7Z^xFiY4zJ#pl3CiH^uJG;`?IcR=&~Y(}AXJ{Zm(W8#YH1$NjuEt}H9g;_FeY zqe(N*64P)NoA^AqrI~nf!GVJ5>~%I2^Z99D<4PAQzw&a4)&>qCH{dqAO#`ic zzOSTJblg4Q4c44l30_=5Gb`F2X4cR|&nmpaQfD+qfET(e+?B4uYsoq(p|dQsy3Gfh z?$J*o!yTmyX|1JTX;mrM(TYykTC&`*E50Xwlh@UsPV2{7j$Nzw!u2kq?HxnMy9htkp4i(x`8yxF z2WY@GN==+f)OC(>u+&s)I}g2|$FIsy#WT^>EQgU?<=Yx+9@R%he+zbKqv(xze!v#7 zL>GKLaK*KsYmINzj$@B9_8Sd91ehz7Hm&I97=DV2v||e1zP>RH^yP)PHy0Ex3AE_f z>i3g z&xWx6zy_jSr?Kjnzr(@m{$i1A16We>DhJ2y$|tSgu7oOKp_Ph#%>J3(22L($E*7(k z)WSBzM)au#`Zuk>?mz{fySzh>Kn|QSPDR{yQZcrTnhj04uf=7bT_{^1C0GLIQh4Hm zPv;}~H4k;lZ{P`9x!4%;x>!F^;lv5eYe~-tRMttJuYuT}{sDf4p@S5Dnz2{%!g zvb*kEhi8cXZ}v40wXna;P9(DEVaG!8o8z}S@H3f{WB7WWrP(d9poK-Xz~{p09Azzk z#OF%$J)%z2j$nB@n!Jloqoh?>=Mii9yZ_t@rwkRPht{7PxY#7H9k_X@{cPt@`@qev zh8=$8R7x9KIixs4_ClZkKVk0!9M_Q^cJ|CX4Bh}k;LUI#j`TeWMp0lN3cTOf{oc%bGlM;RH4pFg|Ni>x zufP8K>uy>+_Jq!dJ>9Rt@vus-4K3-ETe_WHX6VyM5(3~ikjOl%4Luvs^vnq3!x6|w z#z{-(g}zhILg5^pHz={G?D(Cz&qJlX8wZQv;?8_v#TLcthH^L zUI1=3`T3+Ll)VgPlQVsGc~YL8KBM(&QVU7T;Ph7J9ol`p%Ngi*lJ^F^FVxt`7byq% z>2X*~agv|rf^aigcM%XyXxh7(Y08L^xdxs>tZ_cM@QJ-$zT6mLrh$wkPpR9j;b}el z5IViasLC^S4T?4I(%7w zXz9U|J!)rNMn=jH9q-`7dfmx;7K?@gYihB0Qr7D-Z8T8=?O{b5uE`tpu%1{?UoFb2 zr4OZ;8D(Qc@aiVL#4^-d8~5l_I?u>VbUk_1=)l3R@Mf6>hX2#PI98_e3Vrc_fZU-#*aVR$Hgw8gB75rb06o0O$ReB&x3NjCL` zi5vG?xk{pf<=~cB4<;IRHCr1&VzIqhw40gQNEID)v3PB|Su<-3P5X6wWF(90O!oE{ z1Tz}}hW>{k?hj!65t(6K&&F{_u=m9{W6+~Ynzn>Cs7}l9#_}$Zrf^% z&f5O&^@;U+eY6}ZwyL(yOxL&D%p=xE+>sgd;-ZiD^NhV&s8m)(vTx+y$+zg?dZe{o z!f76DFWGAuN3<>-t$?heG!-|J3sswWSD^n7T zr(=EdGo+i)daemIsnFIwKhaERePgOE77Gb?s5Rt@RL@9j%4X7xYY4ogH{zvvYFI?W z=b?@B=+Uj=MKlaPqm@8^U8LuVd;ooPwVAt|ls#^z9PAmuHRJg0p}L+snE!1Rj^2gT zC%Xy{+F;vG6cV5C!}4{6t>y#WrOl1xhV3<&c_+|;uAz-;Wm=i_ku}Dp&{a`qN3Y{K zq%R;E{;x*{!qF4a*aVO zS=Kdo+hE*~(W0H|>XCi;;JR>I;qj3b9#4-%jm$D!Gfpkbgq4|?$m1)TB-PaNf|WubI%8sD)L2(jWRMZ z6IPO@vFl2>376GFdS}+%<5vDLT3*-cKADly$GpVGum>NOr>~Y+f3mR$aI|(^TBQ5M z$d$0~yOpk`YK)OjC!bH-_pv54|5dbExO$`yVJg% zxt5Prgv9-bm55*-JhH@^F!Tcr+}8cv;hVJe`mL(i){WtcH9J%ps#v#li-}}vQ)(%9 zsL^B`*w?Joi|xsJv01V9Z80X013b2##Vspu!ZBOpu4p^PmHypk?WIkcl1>w?=VtIf zY!@jb^a_w0@0xP;xG6Dg>_&tpWn>jTrF9=N9>|Yb88tvs;xDr#)=Kv6U~Lra71s*u z`Btu#ThFht&xCZvMgYqX!E(rjzzJy>z9s#6&1ymS@-1^^H?=wBW{OaSUd4m=(N3Mv zzNTdoR4Or@?5+InB!G z)zZ51lW*leKZKBaFAd4~<4OO4Vp=Jex;m_5!&i~b zUG%-QcUs-2lC8-idkG#&{&8T{q_XM@%JS!CEZaJ5UDf@T@>3S)|@N+e_6E|87MK_ zEOZP1Yd_8Nr2J-ODd?|oH=z*SO443p{gaWIzu?ys?mn^zB`l)v>;CsO50$ixzITngCI2V5{`QO)k&QAV%@|Tm3^ZRuz`5S)LEwdR71n1H5 zK)z{J=qWlL$Tz)*u`;^WXk1O{)}XC!I`qoU3SBoH($&^hVu!Vvs36H!_}?%irZOYe zIufU}c1ud(s{QJqdT1k68otI1rZf!SL8kDL658;jYpk3YYcO9K%)`TX%_LN6W>+my zL$kJ+@JZiO8$%v=-59ddHrg@U^a-qJYlKtUB8ylF9lFa;ENC(zoUp4m2-~?$KYAyS zrWCEV28GE}+D^9_r8E4ek!sN@@ByHb))&Dor03J zkSaVC0(@uSn&}eqgp+oJ{|ac`3>*esKpfDWBY`-2EHG^$Uk$71EHb}P_b7U}3|P@W zM~`o$u6t|u*{1HrY$Y!}sSDEMq>bZ%tL5u{E!>B?rBufP5DFmWw$wOuO*uo1m!WIW zOWJ%#!Ui?-BRVO=m0hsqgELoyaOHMFNgFdFEAy6=+*-pDBK~ZoWvSC>i(KIz*6dgp zU*S3^_zLPxh)i2_m_zLpX=|8CNN-&dnO|$XeW5t!;7Z1aPJ4LBgzHwza?$dh_K^U-*>Yn=kL^``o85?%;chxcuIHVPM>s@a6aBz~27mbDzE@ z@aA(n#(iPOxTlEu5^)D|3hHZog;Qvau3+wRR@T%n!(a92pxp(l;x4Z84mFP;TqK{S z^=Ll<%g?Kf&zk93-5cF>YseRkscCy8b#Xt7m4C-wWP037rE>X$2d&LfXXDCP)G24^-ez17cbQ4NlTwDyqEpkbH*iPOX1>G!jggD$qWTX~!V&*qYhs;I zVok<)<8DRVE#n?ZKQHzaCZ$Ne9as7)?X_5}7iz5XiM-nd>KpW6#ecDg6KFeViW#rs z(6DDYYchn{v3!L+5f}}zTT5*XbKcajdDm{nb&qjjMR-Ka;fLz`j>{=!Pd&Bo`2Y2q ze2aaFz!&a${N7c^tcI@gE$tk_)?E1JG6z61O4obaAG|vDbfH>a)7G+H(tw|6D492O zaMi(yO8U&x1NRYSHh;4s6?0Fz<@TIgHkc*6=JA9`Na{R=>apbtQxE=+som>&kDfBX z=gIZQy%~I%{cSKW-AF89r`COMjAS3YcyQvK5}`HXYsyD>7WssfynySWFdD9G0= zsRr&7f%`=0uF`&DQTd5tx?&fDcd`G7xKBsjTf?r}kl8!1mZ-Ci>B_jN%i}V>YWGy# znh91aq+BugAy=3b0=Jl#dZm6JjVT1ZR@7T|7089*T#~#P2O&H zeRPoqX^p$81s#(@2O@nq#+#%~y z05u00U#}(GV>Q;AZSs|#a!ar21Tl2H1~y>*?lOib_Up2;1Jv%FxyO7dc%z#3rqy&6 zxO%AgH_VrsZj99FHFd3v44?Ad@9rrxCNM`Q{VloEpaWoY1ovFvjs>p)!Sa%}=aE@? zD;S-j`aaib@Y_h6ux9QK#|XYv0|YKY7NWxgI* zDvy}-#CIKP3;ntjhee}|pB;+Ry|8zjfU*oH75sZ@rev459)SDPw>HPk=p#2qci(#H zUwXswV{beNr!I2tN!gsvBeZYmr7K58TX=)|atkbbYn6=q=C~1k^M(b|)Sxxjbr-N;Nzq=Ko?ufQp+39BHdEOgVY4*t3?Uf^kOY}{@BgxBL%S}qpGh<8G2MdL$ zyP~IW1nW_Py$#I=8Y7~Sxsm%J_PS=2GMMalmk~_TSHn%(Qb2b62s9P*^{BfQbsxmh zmKdXA?n8#(iF?Ix>3iYQyZxM(aDf*2;(qU+#N1|+H^88jOZH`)=M)_CKaiMBI?}@9 z{)9K-W=uL^593~|P+r!Oai6@;(Dwwplm<+@dh`)@**6-x%exts1W%$1GRkkCe|~q9>d&3{QuydAY3-yLulcG+<*-a*EHT1Dh&a$ZKQowDjhkp zJ$K|tiMc>T^4;rCwJPh*S|Aadc8}LbdRUZh)_+EczydTz<~f)41N-E#(7^3I3LMHW z?%oP9ukkC^o4mlv-EvZ9mmbp|rp`ky?#*md zcEn;e#mEL+11`&s)Q|7Xfh*5ErZvfX(r1gt?|&rum-6Wt#74anUk@$O{(Sh{2yf zBSE+5W$U`f2|f*`Wvq_7i=VIOfs8}Jd==buK*k#x+cb3Eq}K>1bQt-%PgnP12^mV; z;eQ!NOIW~qa9S@>&6xjgQYh=Kj=OR7DEC{qSF=AH4SyjGt0SEFam3Y}#Klr3d^>`B z7*_u4@SGw@_~FuQxf-Vt^%>vtk|!T|wug3*CO8>`l@><&jl^bZL#Rk-EpV?T8cXz_;JcW-&$}z0p zJ8qPWGdOA)kx-?6hN28j^}4Sk*9#4*VL$6-J>?Cz%zyCA`dGyM_95-x=WfDpFsB_9 zK6G#Cb>_~Kbzc*{J-+S$;Zv;xSon?fx?f9bckHg2-Dcd#e@3I>MO$WoYpEs6k-63Q zZD%Gcwx>+P%ljYtH=pCb)fjHk($Y7ijav!ZZlvQb^u$pln=yy+s)b}zx9Z$KFOp4Z ztel&l^0=y-IT9V)O8(Z*|LVhxYe^S-4`6qDWQMhNV<*zEL6XNMISUUh{PEuwq$&?B z7CUB~Lr&^8-14^AsvUBiv+y-1IXxuc?7lW~TAy%IM}yII&p#P=?`=Wf=t}!ryx?=d z9W9t@kz-3K(QbF%qwY>6>TbjJYB6XkTgHR2>4b2@E=;o)Va8t3!^x;5V=tLatIAmU zp{eUr^ZU!QhTz5B?{WX0;-0|~HQsXA*A&X2Ve4sktYP%LL_bZd1~Sb2l#!9aE@8KRw3sHQ$wILtDxT-wxf3uaO&| zHyyGm0r(U93>_YZaszHxWq7``q~)LmTL zl)FE?xDIj`xl&|!I9+}aG)9)uzj}In3ZK4OW}J)W>to|@ex%dYASu7(m;EwQ;uxAA z@|P5ZBH#*)G(M}|e!@%A&#aTVXAfMTI`%;Iep&==ziaQe_dh?oY_w?Jf8)PwX5UN0 z65qfzEc#>wU7RUq(<%16%=jzacld~m5ww#FA2I)3t+hcePycX8S-@v~z4u4n=>ya4 zY3G2zmFfBEtJB3f`Vg~n!OvP`JePNo%{XO*8|l12BU?rCsk0(QzGLs)D`$ZCWB$Ej zMI@jphk1nt&iDdC4So9Zz1^9@W#rTt2IW?sKnEwQ+#*G+QJQsRm=^PF>FXO=@Ef{IDc3~1#vUZ0JU`_zhjw*K zxv6z)QLj-GK6Q&!0|@qvFfUZli^!>Z^bh}2`Z1Y}%#77o!D=R!BwnILY2vdOH<_=< zp4hNfre4%2v@Vy`+Lzyb?E)*f@3KTS zxUAn?2-j~0`^x%FU%oeAevkF0_g=Ueu2;q4-hAb~m*0Hly;p7yEY;0Z@4fgYdEXqE z@6DI+eeS&%Zw@T;P4Xn}i#J)x9#AS$)xLvMei>gdvO}4rRIj}EotxqMT)ak7Uw%8p z6<;ayU~HVyWq#pixIPz8nG)$z4X!Wk`{rxlYA_}xuC&77xPpzBcEoe&t5@<5@138T zp9-1Rd3S#5@ZQF7w%FssIMwQC$S!rqwb9m`n-DN-**2rjR?5O+2RV7txQd&Nd@eTP z8*?UHH#GLf!)Tl$@o~wl&aJ9H1bz=#4WKc+IvIDvig54hl)&$O?)N@t-j*r7aSh#Y z8Cx1_=B{xA(=!Q#Q@4CQB@J+oU zJc!D*FRQ_y4y3jVtOVbb72$!@Mt_G|WJP#j%B%+8l=a|&)TZN-?hbKT?JQrwQYtGvDP0B7t%A~inFA*WWsS) z?v`!I?oXlW;bjvpvkFwxv#f7K!cF#to9l!djfCr@=gL@+=}ptu_6<_QI3VBXdUsuM z85Ic+3lDSJFgwaFTN{iqKGeFDX$G!#ra834+7{HT$9G@-klp3lG<;cW zU}Od>(8wH-(CUcIRxzs_hG(a=jpdY`+1B$56BfPEsN{Tp?0oJ#7HQS7s@AKpk}MYg zjOp{^*PVIi^w?GBs#BB`9Hl>D?R4Rlcfa#4+60v-E_xNm6X z5K{eM-*60#`QGH~U97D-<6ztu3oU%RBVFA0l=kh8DREzs5BPP)g}Co?@4hC`8B^lE z5*OGZF6AZVoyr{g4y>={TVV1+$hTtoUU=oxmv6rE=_?mP-V^u5dIql6l~v-tFX8*# zr!QUzxmw(pJc;|_g-~XQ`wC|g-+?VinT2odRAwm^Ha!dl#)8XR!IUhlPTuML7o?S68j8MWhQ~Eg}mu3rIGSZo*6YtQ6n9 z>#$p*YGc$sybAlUWjA|vNr$_8*GL^rPK_|!#DVvaOR|-8Q;zITO|>|!pa_?|d$*dd z4&AW6Z9R^JFW|E;>F(Xr=@UbL$SS4gW%AUnIxZ{ovNzKaXo+XK^11DS^Ud7^V$>gkawbW^KqVTxP z>+)X4%d~U~T6+#Y;DyXq9c^1ESaH;CHKQe}HRe3m3yIoU?aGGW&e zb#@tv1hxj2#g+0Vi>XaYD`0l4<7#>7#i1WtwGbn^WMM7Dc3#>C9XBaZiR`VBcWBQL z{W{&W!g|ZI)-`wmMlH@ySq0A(t6*giAe@$KI@aZ7K~>GXY9R_ z)rO46c@;`*tu>`aYBBT%wUHFq9PIUg-^kJ+vY0dvYcqlou9B9Zdxdvl4Kr?+j`T1n-yuv5NjVhEmESX8;%?B=4 zu1sH_xju8=C2TsGkg#te{axXPmg~He?znNEN7G{9IyL5A6<45BF891HgK<5F6@>xT zNeOG_m_1>~>7j{j)syaB!RYzndHb9*pFf{V+8`8&?lz>z!XY z@16Iy`JMNug(_#uqaSca`3H7+w49~JcacUnuS@Nc^OnH*RDg#Le!Dm&w=RAIoN=an zW^)qyhBs`=X^g^pIT56hVSW=pTknyQuMj&yIyw#0LP^~M(N>kZF@B_Ou-S#pZ>o~4 zVzosZe`S8U?39t9&#QFedx|T-q%9^pVaI>$R4BzZ^PKJR^ND%<^U1s=P)Y z>>P2*&h?yT?;2<4Nl}A+-a4N=4^|25B(v9357AM_)I;ieDw$2f>u7mI^}XOR$!!Y) zg30Z>aoRDi*Z))bjdHWRHota$J^ef1YaMTueF&EXjJ9xE%``a8QvQs+so>VJwy+2{{g0gI7(J*>GMD_k^b4WnE7KP%Z$4nk zDCIq`DftRC{id!r^u=86dWV|l!GO3?hSBX62F9Y3UQGCNhM)U$i!?Pk29#jh?pgOf zH|>(P#&Fr4C*^J{CAY4Bul#yHE+lQCd0+V^ancn+GJuvhc!TFM-Ywdj#jWCIaZyv9 z#-*S1&uiG0Bz$T&0)}ys@90}2<7xRO{_N+t7tm_mdHLfPJ`N?+80XWz&wc#j4!&^f zJEw>n%CGUbaNIjD;Ty`JabLLgo!35o?c;DJ5cie1q`O00_%SKJ_VGY&eIfJ}Zf$>4 z&tyFerWk;*V`-AlNa z*^^R8Jd{{S90jHld)Y%NUki!H5-wk1z7lJJIkc;OyOZz7DwoI+B9VBFn7PCU%!K>h z7MZ`ZXV%_=P7~@6DC>d5f250)Lbt@e#8bc*6L~pBI|%oiO5FY&4stjMcSe0zy{=BF zzX!FVpV#5O$XyW&H87^+e+56aO)BG4Td&AFBHjBkU6w$JKO%hC0*~T9M$3h6A$EomqlpZ7xJg`bJ3u`i@Fw;24~hGrZs~8( z^5w)^ft!w|A4%OFf2i`*Y?TrnqKC64Y$&3k{)IXMo`njBh?mxJP5FMr z`1mh0wLPki0afB&S3{&HCpK3})6hXtT}@nP6qq87Tu|m0)Zd4qh5Cik6O6SD`=2Ei zk_$=h-wNOY`Tm@)Lz!LclJosSg*uOso;?0CF^xc5C12r~lZk&%xUfBRk$Fga{7Z5> zPdKURbWq>7z}^&XGr?~PkZ{uGUrl^hnSNvNmrwi?=<{_=D-!Ns5biEmvS_slS}kmk z|DAds2s5QEf0b~Z|-U<3_}>VzG^CGKit7=D7$%HqEVU?`3@tIrLNeppF)zT{Umoc2!$sC|U)bMrVy zhS>(C)pdHF$(^K4EpX!kbrsgAhW`w1MM`j*3sNLhT|KYeBwUR+C0$2Tt8?mEN?TW7 z<0l|B{jB<1#GECKB4K|S%nT7r`y$#e^^Y3tWRiV9-JMJ^?%lTwD(;I;B(@8x-xrO^ zn*+xqQjYI}ipPBkUw$1eUfdUriNKo!M;xs^3^jnZpOSHt**miw4Qa6ja+pVotFLgA z*{|JVEm@hFnHFc5HQIhs$Cde!d4n%5%Gzzx8EdmX=*!BhP27}gxvHfb)m0v;G&oz{ z6)O^1o0ipS(jYzMC2(ifzi8&tthdO75nv|2h9!$DYsv%WQp^z1AVyZCqBEYC@a1=N z;OKnwxgPCd43jq{Zd7|1_YL)f14n1{p+>hTqw|nY&3yFYf=}}$vXTBu`?!Ta#rnLP z^zf6P-~_PLuwqUR&~qDNONDIpbhVV`JopQHmnT=sLwT|A& z6^lce`zCeXQerc6a2hF<4oW_xU2XGCJtU0ziOz#K)JfwB8Z096SK6FxkI{zXV*Nz# zl|^t@xox-O2HpA8xG{`)@?iScioZ6qxH!|AWdG6F)lzf+(ted@4wIH=F>gf1QYp^-Ep8usQSgckwM(y-+gX60_qi3*0D6=iW_ z#SfVsyd`|B72JG#ykXm8O|kwK{glxZ(7!e(&1?8%w+#nJ+xIkc&pX`oSF-Z}eNMQU zELViEA?bm#4&WpC&Kj3+a^`XljeU5pn_I_1Vg?IM5XsV0w;rbKmMd|a<2B9#Dzei< z7m-INoT6q*>aFW0cQ8A*9XEHI|J;YG(-V4Z<-9z$83nI6gPU!v-DTZFc94v*I->C> z*s@&CSs+D8FR%#9ik@yJMc=0XYu+vO4{9v+<;(_WgMHuN#Sv>kTF$gb(Mqo-PODN_ zz7+Xcwz@SuZE>d~c{fl93W!Z0w-*+~)=}CBWc9QW=hCoOY(}yjbL6bSG%I&qx1cy0 z$+Vu;vx2out-Ef^V8o)NVN1;hb)goxX-d*q-GqJ&CYEg70$F=xGZW^Kp1JSPv&`!R zYr+t@1w&&3b_j($ADsBoZK>r*ONH2@Q499&Th6R$`5EhwD*IUU&A3_J0#cUj%oh&b zc)-v$t&%iWa}BIc7P0YZB-cP-JH=VfoB@CyI=L47Z>46koYxz0>~)JZaT-tPGIXPI zx;c%TTjt)DoY>P;hpIzmbSq)FMQdHOv|(I&zsGD4x1rFjHM2gwKD}01t2CK(%Q`cZ zA|T|+SmY)=%_+5u=6)V%lh}>OzG>OFRUd*&*^1H1x6n7|$=fC$+|Z_utZ@%;4arrA zBPnsq^@;jKlOCrt(r#!+3+`tb-#RTKtfvJlsDhvVsy5j)=*IkiYLLtRME@nj8whH~KHHBPfcLZcoYqbJ=yv&LD5 zHBP>4*zc6Dm8YksbJz0M@~1h|wn9G$Ytkge$C(|JB}Log%py0ri14$9=mWNrAZ=Pz z8%bgIX}&o`2*ABA&`8Jt&aqD{C^?pmbKL;=ZiB zXy53_*^P_LrFFeg$*AkgD%AxnTRN*$@syFdWG>%XhwAsmvSkNfWG+gDjS(Yue~n(k zm)ZJ-s2tHP6*AWaEL$!_Wv;HT#Kp2@hq!_bEL-#{745o~T}!SfYGX@zf5^ky3^~9$ zdqm$gTRwY)_cHH%>vzretisu{4kHUK`uzy@k4GS^BTmEm(U;ckAF<;9qc2GquPpIR zI=lzz{OI8N!5@8Tl^^3WuG*(`mI)VepuMv}y7*wj8|GI{3Ycb;@3Vv`+qIIbe1G59_BTdLpSe=G zQYpIvSKP|fhf_Z1%Cn9$TFr6et=ysu9ON$7S3gg}NL0N(_Z|E7SfX54E3g>T3@!a;|oZ?%Wa?j!*8WDygGwtExfwF(e?DD;5lXGAHayG)67PN7)BoX#my;YFV@^@>&xUk(-;$jh3l!Zm1pgK zb@De{%WI#~vb;5tMkW|9sDE_o9{~U8)IUAtpZejc)l;9G`rTjqdw5{+CnVJ@ub^LckRl_bf^}|Mb+r5Oz^Fo)5PIk}WI^8ulNutIn1Ao}4h1 zTikjy%QUM6fmw6cvc8i_e0X{Y*Q6LZWb#~$GHGI(Orqg4GPOXp-589UO* z%a)h&f>Oa1|BO!egOO_ouN}Mk>J{}n8|(IZ^LLhh8ya8+?k(v6HX2JtSx%ewknvfwf6zPTuDYwu;&qkScj)@2LNz zdQ_Dg*%o@P&UCLc4Rb|j#m}`k-4^{=Bi(&hNp@?ne_ViYa%TG|X~0F$dr7=(i``#P zti5Qj54+rVv#7tcJ|ru8IvqCM9#U32Jl{)ZY++e+O1D!pLAhLT*~o&=@H;Dc3h4Zy zK;cm~C-p~cNd(iSAVpI$B{k@jIt2yLR%R7a-_M~bz+GMcZh+NTD|GRwu`YPb#M)5W zLR|Z3{sMCHO|i+<>s?EW&Hui7>C)qe(Bcy)Uuay@cnmtg- z6*4y33L{Z{LGOz6$XnK9T19ssFtKjk%KUib!|W_IynO2P#pD|Z^XcT!CF`115FXm= z_5e%sd6n(=x%7Z{+|PUHtfaQom)bth8G{VHvkI4$XRaOsu%3_H!@%L=MY*JWOtf?-c4p3x58AN zwWL~NMz>(GR4G@=)A@C+!Cp*yVOd9FJ|m0VRnE{WC%Ea9D^qUL6VUX+88;801jQu4 zwrlDg!D=Rq&xpb4#fu}vC-%&2t$Lz*tl~lMAr4J!*YThfS-vTT__)_Cc+(xXwC)vo z#drgnT)3NTUOKP-84`+1AD6F-oo{%bx}siUJ!QYv19bu_C+KyE7*4D|=t~-3)aP{l3wiF>&8so36O8*k$qS ztV6_odu_Vnz7jXOGbZlK{FIcVR?PAGc5S*st|cRmD5KD0g`7;3rWh((Ur5g4HfzC+ zMxM|5a&Jw!m2>R?!}RglQng$~7w1pWC!Lx-1KkDvo@Afr>;mW!?Uw9%FITHIueLmW zwNlw#gc}F_5c#uapRg+ywyGh;A9d%wGLUPFggoiHzN@Cx)M9Qer^ijrnN6`R>|;+@ ztYp};duvlCrj8L0&X{Y#JD~ufpLN)Wr(7sk#*rAl#7bTCE$@Z1{lUI^lreWm9JXeV z)(kLuc&#aSucL0=FMYeh$vYlMTcON$Y*D1IBCU#m<G!dyg&jN@n^KOCQ{vF{ZgHlFQRgp$QvR#1m#%&T`5QBdv*QqyH_Lr ztL|IDcPPhwS<7)lS_XW>yXal?Pc>wB_c8Tdbpd&{is72bnzFj4Wt_#;^;OEgpz|nF zr+E#Pux{)4uLqJRir1g_n|`z1TtCqgT+H}K{f2+uU-fJLOk=*5_wd1?si6FB+*3{n!Xb4BuDl{{Q4(HVg<(!S#U z1Mi>XCwyAmhl^Qmhi3I<4JlbxV;aLPWM8L%QYE+MEZWOfBfI1_*}EMAlAAfbO!hoy ze|5H6to>i{1@w3Q-s z3(k{eFPbZ|Zo*Gglhc+{B(*k$%-g^{+#5(U5( zA%NZ?Z9ijlJLZ{nIhTuGU7MvqP(GTLSAy^yL%}4zn zkL}!lXBR%wE5(R30wQ_g15O3r0IywO7k#Jo(&=e#f|Zd#ZnIdD))O*;3LlHjvS-IM zZaHZOT1fs0mR2%v(7?{}wv=0>GwUY11+H@E$R+EI(i{7&dm9<$zkBpFqm+jE%2%!) zE6RM!Eiq)c2Am~!pgCBCdT`r!hDt0hgcN7!1RvI)2Kv}H)U;@|0+0c{F%omT&pu>v z&kr(U_J2-2YZftrXQ@liw(uB-y>-4=EF|8c<2LMnJ4TyLbzooi-iEOy(OB)wS?z~Y zZ(HB8%Lc0DN(r4{mf0Dy2{0{?cNm9T%-&qv8}XqI>Mrx^vB1stC)Kn&?N(Y3X!>?} z3T4SW7sydhUk#D^xtYLPi2mKp{~ znbQM3%hfr0gbmYkWgamqc@i@7#_;htCmCwxys;%~EmcZ<$Z4X4640qOY(L={{TjG& z4QI4eb}_jI<-6qAk1dJoOS|?-CRilB_^DVzg)3_@$>dE|5;+h0#W%bA-6GPh*1n1F zKv}NOdMlnX@nUCK$9-8zj9G8>`$ny|;=aAsTXA1xt(f&z+?SQanDtiNSK@}&Tm6_s zLlQf~IvzLl70I?Q?#-8FhJ>Be;F-@W@4o!*EAMvCK!~M`HnMl`XQYkLM!xti`o$e) zK9Vc(J7*yDru>@r9oW8?C6Z(`Wj;a7x`DH;1iEd)P@dQ%l%<(Kog9E|Qpx zKDRP6$aS3arSsGBndz_g>~JOX(U6wwH2>!AGr9YnlgT~JTMi+ziY;+_##yi*wdO}2 z{eJCt>iLE2W0D>v05*o#IG;s+goF1KQ&+8dL`RuPayEk2otTqj#RjLs`O2&?VaIbz z?2WXHDZCLo>A7m>_9pX2dZOP1*ewwJZ;TpE!VzVLj_$LObeW5^((ozK-&=|uam-S5 z_%R*2bNGz@qHRQ0HV1(ktI+^Kjbw0o9nzkhZP*wVd=km%4@FNOl+4w<+M@;aX=x^3 z%}wFTm{3p_SFh)|!g?FR|KPp-J&&20-go~U^G_?bJZO1p{L-gPa{N5$4?UnbX z=K=3a&trvWQMIx9Dsm_0W@>Y;_^`Yc(N6aGXjgpa8lygvt)FUfv)p2~J>DK)%pzk0 z1LI5*XRMb3cB zrm}PXgN*Jw`KCDIXtJ@3vQpZ1YK9wCXOfGIxEteQ!>H>xAg<)q8sEA%%k3$Vd?$-dRQYB9aY+F5&eY0OycHnQpT_Hfc#WU2mg;xa2Cn~AsRL)nM3tbh&lOW`+1 zd9s{=ZnsoBF_W4}wG$hu*;Ek=VWFu;Hk+1{(__BF#l6L!D>CObemcj=%l8I3O3%eE zePBGSjtBQ1YH9W>59~efYwpXvMWH=etYzNU+!tOluvOpJ>tvBTkK%DdU&+_ro~-Pu zj9$&0&QvmA$Qqt@*8X?y^JFEIYYZA`U*#+vszdy`2h5~e z(0EHrkxt4bW5v6)Z^TVXidL)R_OM%P{h~YJPPD+igi}ZX&;b&2KnLVewXfQyveNc) z+n08;v|C~wWZ`PhaP#FFCnB^)*BvyiVxbTZsiqkX`{KiEb?+R&y?bQNI4*>9@$1Nq zao=8^uq2ECIFg_ zLSkZHMV2{3ZF4~hoI!8T+Ll{0S8Efqa8~v~6i}`evU(?7EM}PJ8MIuszZ}W4o9Y?0 zK&s0FQZ2a!r!*i{PkEb1vA#Jod@G9U1w~BE-fNp`U zQ6+2Mueu{H_}>mJQSbxDTVG|>;~XX4 zawHxY(-^ql&XJ?RqV7vNt#3F_kk-jaT4BBSP{KWZCER6b|IR3@TO-b^&WIAhDxh|- zt#NnftIjdtRp*$3+CzE|Y4^@<*1$9co> zwLr4KLA*TA@g9q*83(zU9C>!~)HJSBHEHtfOI6b3*O#iMX9OdUbmi%79~BA@dAzD~ z)KxusQa|h4PZ*vB2EuqI7SB#RFeX55`X?A5yzU#Flt{0WR#@*nl#pLf2{nxy982A$ z&b>6=5g?bP*1a??tzcjqs*KRMrirLuFEwk$ptD7+ov7JhC9F%FnlTjwwxH#msChu% z9cu2$djK_uv6GI}OG;?)Zm1djN5F)j9m2K={DQWDvbHlC$C|c6x-t@rf`&r?}39+0Z0<^icfmD@+V)Ev@eNX^?% z=oZt|9MWGXvFLaKHAmuUjDZ17&4RCxnsr*HU!07j71mo*b6*KHH3zu1x6cUA=%wZW zpEZ2p-@VkloipufTC|s%w|57=yA4I)-;qVOazax-jheTgH1xdvWIu1-n)v^t<^g$k zsJSQa0n{9?S1&b(zEZo8mP2aR)QNkiZNTZBQBGI2=a=PqCy@O@YW^7BUS29YAM3W% z50Dk|<~v`VuK~;Qyc0-P45a^d5F)U5N=InFOf@-*^?q^i@zuRm4NESCnP z3N_#P^1KHu%k$2c4c85+`OcH`b>O5t@8~v@b~C(L$J4RMu^UfQGZ-j=gOb63;mtZN zoznctNLrejsrMdAxTmj#nwkS#gKepGFEt1Fr1nzpUTVIxd)_f{2a1hTbKFlTB1+A= z6@xY$Bv}Wz>0l<#n{`VD?YKSR_DR+Q^X^b{Pu>Hlxj%lCH+OyK9jSNV7q*SiXHYZR z25R2Yv&pS9GOM@b3%8J(Wqz@>M86(L&0BglNz9r6Uma=M%q_M`j8FrqS?76XD?^UU zkvugu>r~HdEs*B&fK*Fc1&d!F$A_A?^lXyyh%!jNv=m_|a7)i7x4xl`qUwA>%ON%E zcxSeb5^FgUPh$)Wl(rml)EJ1Q^^L73Nb984O-oZVbE-X*kY7&;H8lsg&X`*FQgeXM z1yk={YKFH0A+L*2^QhLQX&sZ?OB9!=&Ae-Cx8}}JLzK?pb-C?a$nyr#`PP%_xH`V| zq+pHrm_)rjp(eH`lFS`w52@gnRl*7|^+~S+vernXODeo$JHM7VurzTIi?q&`Q#R+9Pz1L=7FA!xMQz zT`_9LSKC)Y7c}5tYPODt&`Zs5tO*O)S)v}8cZX~DXdJq2_ZtQnSuWxOT?0Ymld=W}TXF z?VweAQiYOtqGs!;0Oc|NV_e&MLIAF9{>P|UhZnAWl+qmSaC^h<6vqwZ5~obgqlZXZAb1YHqSWMj>n4Ax%f$XJJWfHE%`6? zj7lel#(x@}56nBD^S-`VcZiRLY?Q7|z!U|a>vvo#411dMt ziN5*3*eP29QoX#t`3N$Xio%nhAxWM+4<{78+%0vZT zF29|mlYw~$bl#Wu06OoFAEk3i!IVF&f%uAsB%oXVcUleJ%?g7J#+U2pw9{Rh(^@3K z=FC#fxiFBw9_$)R0S89Db)%WdfQvmxz3Zj)5vor zsg`C6wbFo8k+|j0^(YTI?R1x3wT@19b+G<$vW`wW-K9<4KXklhmmuWWji>oJ7%0s+ zN5J0`QfWaFa#WG7T6ykH?DBx%e%z%PO1OiOvJ8Nli7@qWoM|?G_7bh3t-W zJ}_@xhsIc6-UH~oKYolcnSHrUb$HyX05vL@UbZ8RfQUGsB{7j*TdH|otxF7%QktQiR7v2+^h#(u951Q z0jZV_6;3ct^rZ@&>y?|Ml*g+ceR#gZmo=U1m76CnpS)JDKJoDJ4iDCJZdQCQd&D~v ziKj6J21Vua~|0rnzI-=hnrCV zUK6x|eQjCVpqKswJlF6A&%N|7d!(J*W%gZEa}Vbu^dHOdKgeyX06Au*ByO@k)WlL& z`iGgVN;&%dENgYn8nbd|*%{Lxk0<~q)D7@sRU8|OL4LBCH267c#~d&c>D(V&3XB=%w5h7z{^>yHFtLBx(Cu?f105bIjHVc zt7@HPKkV6De>|0F%bA!-tS0*EE^TDmX^@}bc`&Y}b;b6%jZGOnI7TaRu4jCk&WT(( zFFyUN*Fhf=y4QUu%JrCOPdF3J!ikCUJ%iUj2Id`by}rETTrY+Vq2iq=R{VCNSQBqB z#fE7P!lL-?M6rS2K#J9VJ5a3l+ks+(GzU_w_S=DCwcidDD}H8PBlDX$1&QBI6f1r^ zQLOmwM6o8n!4zx!22-r~#VK|W%|=JNUaE?Yc6#)3!qLl&cFUYyXLL@h_Oc-cp3*nu zjyYgymA65o-EwWUW^_)gwPmeWl@U**_~pW?Kxvh?zHy1vb)H(wwYnV1Q;&8!RjtRu zuRm4NTrCYqmCd8o2VZHZI!aaQ@)T7#_ZDo=pz^hhfQ)KCwrNU;-T1XxPUbPlBMP3dp zbEGX4_Y7LOBo}jVHAik!bBREz!#D01=VIa~u&LW{5Et95TTdj93s_HVicT$JgR@zX z*|;^asoQaT!tGlr7?^j!#rpD&bFl&SlCnpsSz5qookA)UUzwu>)QNwmZJ?~JjJ7yi zUc`nm+cQTwC#70?dWSj6me_{XyyeB(S}of%M>!|6l+x2X%u#fnSe%jPawJbp%{o;q z&Pa86K&sfCJ-x#mWlJo_Jj&y(dD-qe-$-ijIfH8S$1Q@wDs) z2CzFLM@TB_1nI=UbY#-uWqWlmKf|Q;oGKoo_Km@e1$!lsU@4yaPJ# z%X0LYeO_6G#(5@Z*IX%{$L-r^Z(%>N$Gt3h^dh&$cJ9%n(MqB4&M^CEI zdta)op}D02slw+&JNnI^Vn@IEQ|#!8*JDSoF~DjtIcf|TKCf-^v7;xg9y@wnZ&rid zJ$)t2Y)wi_$Wye1G6@j9kSKGuv>pA{cd(;J54DYjj{ttmO}4ZhJ$}c;l71We9z6q! z*wJr2fE_)S^btGyPELBJh9$k^)YWG6YoL1lqVxG)Kbfx!$egy{ud9LT^^4Bu2l#d7 z^L>7i`Fx*WWIo^L7tuiV`9-NycGy2LAn$M|M((=()RL~AU5J5j8OH<)6>G(!zkZ<;$%ti+4zO#9;PK(RXB z4ip=t+0j7trMUye>UcX)toZFjvEsKA#fslf6f1r^QLM?YtAXmRgTZq@=a6_2iXHB9 zO5vEAOA6=IduPm3D78E0p`9@Fiw44nhN63Cf-y|H$ru)JT(P;cv9^fV`WcOsSOF!m z8{tRj{xMHmtw%(|DBUG9#Uqp3N918mZ7;&k`Fp?3`Sn ztC8yUjdC?(&zB7BnENF-;b|H-JJ|Fk;broZ`V7)Y4a{4YuQAq_cbuyYs8=sFW7i@z zj@Xh5C7OK&nmUC-HFX+l-X7Jbld+D=>QW#*gw(v9LnF(o`F3s)HE(}a_JB26<85|i zi;$YPCs9Q`$`Bk3v{vFZyln*Vu;ax>k!&`x9ofph*^hdEoIbCC<1DajL{N@k&ct`OMzyem{>S*61Ub7 z&Gz!BY$wlUW7!wUvzzL&vFsa=Dtf1CX+Wxa-n|4Ji(Q_@9>pc-RDiPTdG``+B{q20 z6V3Wkhnmg2n|RB{vM&;k!xuCL&^wW%u6!h|liJ>meUhED!g`~3s_yA4VQ1#ecx{VK zU+-#x!6>sljnUrK0^!9%k4FCykhetx|}-T{U8<=sc&gW^j$MVc^vQg*Wj64pT|yhE{2ZO~rq zw%2E^1*e*E$_ytZak}w~?*^yi_4uCRq+{_7_Qd!2a(bFRcPTjItjCvl7s%(`;54Hi z-`7H0Do`m7qIq1j=zMmmq@PtsjX|b9`X42nXPf)> zXv<`qwxl)X9N3uuTf3bk{>R%$*#R+QM+sionGIoAtoZ312GIoCD0N>|0H*;YBCFSnz!|C*j%nqy-D{(qe;*J}& zH>IwxB&}rjq5PXujiKMiPDkK$f)kR`cVFPf26pgQYo}kmywFJh{=INEEP$-s>B(ZQ zF?2*K>{!LqmC~0RLwjGrxTb17R#|wfj^DY6Us@gJoIi0fVXbp>cG5m_D>-wR`(9^% zlyc9x`NNM`k6Di$exzaD`I1w<^QC$B&I96mCsjXJ&p-3X{A1U@^2}^w*iAh1YCV5@ z_cQtV{Po?>d<&N|&y?%)x4-(#@%j1d4?OcKv7Ez>JL^^tONpw7iKUkQGGTAta)0Kf zsn@4o|D&ab#W_gaxyl@LvXOo-B{x|L966ihK7%{ii?)Hi5A!{A_DEF@z%R?ab&a%} z_?g_FPaSyhz`|dCHzB@rWFoiWO4*pHsP>Rokz^qt1A z_UGn4lb#~Ia?ZS)X9LsI{Hyu=-rU9f@xn9T)+s9P+Y9pGdv7)N?I`z%Tb?P`$`_81 z-Z1^}vdVd5PjUWs_+FP9o=-?rGZU*OEBqq!A&muLHq zkBxJ4vM`3**otZlGfW=Q7YR`JSyR%IcC%SQ6E{k_g$8rxNUgjo{zLwy_bxU6%cVsuUdk+s9ZQ^Gj#{1BPp7UsWe0$EL z*}+#v8%rf@Iq`{e&Kl{BafiEJ^%>n|JrcRwEBH@suJD^PKPR!yIYBe2v9tPAB)$JZ zG&P&!GwJc=#@Kmhb#B#J+xz|eU#uK-SHbAtnLO{DpZq({-zlB98)NV|XNwSGOTOy( z-Hs!1B6@~!r zg&kWWeed=8yI*;|_ImBlzxsn?KR71OKU(;~{93iS>~oh0A<5I@#I0iS&wdS>p){O; zp0OXiF?HT;j8~_t%b)y>YUSt8{pUxYdhMx4KY6WMy>a&RqbCl?8SnHLY9JU{u>SgQ z9?NgOR(tgE*Z$u}7tY?Oo__84frV;gY->(vV{49Mt}~UD-_F!C({txCYVJ_xMCLf- zyK8N)xb)^)esj_ps%3t(VnP(=xF8SzrrTU;R^Fc5=6A6C_T-Vu+bj0MwEgsffBCg} z(my}9TDesD{kgSDbM9)TV7j-9sQv9-nKkK}XP`F!?V zHlIIt>iV2F^&3-9O+7U?L;h{+f3#j_8`xcI+PXWmF!a9;C5B!bI`HU&k1jm=zny7} zdFsP*>0Gt^c=^P^69=mgRm-Q#C(G4G+`N+6y#Uf9H&3Y#?KeRmA^dTkJ%k#jwBl=lBex%G6kYoG)?(97DVI^w$TXP=!h<-eI zf*JO$$;Zm%n0+ksXHIny`b$1!U8*!!-f%C@ec!!2cWM4&`TK=6`(pl2Pc@Ns?8@5N zt$nMNRaP@s3#*l_$|{!#R3HDnFTBagz?uWW0eq!3Pxht4^{MqFXYbjoGs1%;{X{Z7 zRLHD3wP&ZR1?$Ef#{}9*>wGFH=eQx?T|4;veU(hT&@68upPc88Y^}S^Ib&I=-;rAK z78HH!S8DUmuROi)k5-QDtIgG{AFS-1zwt%|*_4*ga zua*DeSAKc^*vheqg~{5)(~}i-b?)N9Kc{_sPK;kwTPv&XCzGq*jg@Nt#$+}B$=oIG z5&bLtHGK@(lbb6|Zrg5pw^qO>)bY{e)xuv({7K|Zi9NpReYjG|(^mNpk)u9=2ftL3 z`qLce%2QYJN3sX=_NniAkIaosjZ8fx@*lRxR;f?>RcJ0#J^zu{ujy{(b)Gt${PXLNDM z$-Mv4s!RNG@yK+!noCa3+07N(x_kP-=kB}bdlSp2$G?)4{6#H1GMDogyd|i9m{618K%wttJeSd2PP~LZ#+yh3^0V!g|BteFfsd-X z7XQy<&zUomNis7|G$19DVZb4xM5JC+ni=ANlSma};8JTPV6;lB;;W*B%nU}1lp>~R zDYb|cEvDSoTC3Kdh17BpyTA)rZsAp0i@P^(lL%%6Ic%vL261(!5czyiUbaNc`JCi#hZZbG7a$n0#=>Lg0wCec2 zbhQQ+h&TWv_upqOob$@ei|1T0XGSZ?=U6hm(BCrf9+h4_10}Gl(F0g$3O+n-N}o_s9Q9jLK>2l7SY4?yz_1g7VwH{ie7b7o(D@wBhrI<0z|_B$va z+R^>KY_cs6H4A;R3%1bw*a#L1T2^r}uX5*g@D0C>*-|!oF_b_0W;$X75^v>wfxBuOsv}kRL@o}T z=F_d>i0fO5rVzXGX?VkCF|aqEY3#{wh!@fuV65(nZ%Dra>BHt#zAur3_ruSNbzW|b z>NT|p{(dUjn)`I9U+DXgLIlob#pq;Dezc*bH&i!OPpTfBjzas>pjG2<$*)n*!PwaP zj?{rJJWZ6p)W3KMUq$0iP>VFWZf454=zH$neh2lgGjLpuFK81XyeE7Cr_BfTS> z3<#@ZL@VTv{S(&f@GM%7wo$CHJ8L^ymS?#C!X#wa$#^mmiNOcnOgMhr^yGA5uBe_- zooomBjXtBx=pWP7-Uq+l))(!9KRebR$WETJ@TF-m{zGdoXdQ8!1L|YF@TN&<{}VN8 z{{;=kMR>Y7ncUl6n3gf>zS5&jF$yD=SOtBFhVv&pt(~t=_NFre|3GtraOB{1VwxJ? z3fiOgnsDcp9rcC|?@mlthL2Q*!%%1P58D^&dJWVYtm@$10EcAVXW%`Wl_RVLV82D` zVQi?3v__UMPHDMxf3+PQ6|D(1#O%v=fqsSjDXL83*?e<8

      " +#define FILE_PREFIX " " + // signals end of the archive #define CPIO_TRAILER "TRAILER!!!" From ef33c7b97113a04cc7b095072409d51c00311ea9 Mon Sep 17 00:00:00 2001 From: emexos Date: Wed, 11 Mar 2026 19:43:35 +0100 Subject: [PATCH 40/41] Mouse driver, .emxrc file parser, reboot command --- Makefile | 4 +- dsk/initrd.cpio | Bin 2338816 -> 2364928 bytes dsk/rd/bin/cat.elf | Bin 12424 -> 12480 bytes dsk/rd/bin/cd.elf | Bin 17048 -> 17096 bytes dsk/rd/bin/echo.elf | Bin 10592 -> 10648 bytes dsk/rd/bin/hello.elf | Bin 16864 -> 16904 bytes dsk/rd/bin/ls.elf | Bin 12976 -> 13032 bytes dsk/rd/bin/lsblk.elf | Bin 18064 -> 18128 bytes dsk/rd/bin/reboot.elf | Bin 0 -> 10632 bytes dsk/rd/bin/tree.elf | Bin 12704 -> 12760 bytes dsk/rd/emr/.emxrc | 11 ++ dsk/rd/emr/system/login.elf | Bin 17856 -> 17896 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 17184 -> 19448 bytes dsk/rd/user/apps/gui.emx/app.elf | Bin 0 -> 11888 bytes dsk/rd/user/apps/gui.emx/package.info | 4 + dsk/rd/user/apps/shell.emx/app.elf | Bin 17672 -> 17832 bytes shared/theme/doccr.h | 2 +- src/drivers/ps2/mouse/mouse.c | 93 ++++++++++++ src/drivers/ps2/mouse/mouse.h | 21 +++ src/drivers/ps2/ps2.h | 7 +- src/kernel/arch/x86_64/exceptions/panic.c | 6 +- src/kernel/cpu/poweroff.c | 14 +- src/kernel/devices/fb0/fb0.c | 31 ++++ src/kernel/devices/fb0/fb0.h | 10 +- src/kernel/devices/input/mouse0.c | 45 ++---- .../kernel_processes/bootscreen/print.c | 27 ++-- src/kernel/packages/cpio/cpio.h | 8 +- src/kernel/user/calls.h | 3 + src/kernel/user/scalls/scalls.h | 7 +- src/kernel/user/scalls/system.c | 25 ++++ src/kernel/user/syscalls.c | 9 +- src/userspace/Makefile | 4 + src/userspace/apps/gui/Makefile | 27 ++++ src/userspace/apps/gui/gui.c | 83 +++++++++++ src/userspace/apps/gui/gui.emx/app.elf | Bin 0 -> 11888 bytes src/userspace/apps/gui/gui.o | Bin 0 -> 2688 bytes src/userspace/apps/login/login.elf | Bin 17856 -> 17896 bytes src/userspace/apps/shell/shell.c | 4 + src/userspace/apps/shell/shell.emx/app.elf | Bin 17672 -> 17832 bytes src/userspace/apps/shell/shell.o | Bin 2592 -> 2752 bytes src/userspace/apps/system/Makefile | 6 +- src/userspace/apps/system/emxrc.c | 141 ++++++++++++++++++ src/userspace/apps/system/emxrc.h | 33 ++++ src/userspace/apps/system/emxrc.o | Bin 0 -> 6040 bytes src/userspace/apps/system/init.c | 58 ++----- src/userspace/apps/system/init.o | Bin 2072 -> 1968 bytes src/userspace/apps/system/system.emx/app.elf | Bin 17184 -> 19448 bytes src/userspace/bin/cat/cat.elf | Bin 12424 -> 12480 bytes src/userspace/bin/cd/cd.elf | Bin 17048 -> 17096 bytes src/userspace/bin/echo/echo.elf | Bin 10592 -> 10648 bytes src/userspace/bin/hello/hello.elf | Bin 16864 -> 16904 bytes src/userspace/bin/ls/ls.elf | Bin 12976 -> 13032 bytes src/userspace/bin/lsblk/lsblk.elf | Bin 18064 -> 18128 bytes src/userspace/bin/reboot/Makefile | 28 ++++ src/userspace/bin/reboot/reboot.c | 7 + src/userspace/bin/reboot/reboot.elf | Bin 0 -> 10632 bytes src/userspace/bin/reboot/reboot.o | Bin 0 -> 1200 bytes src/userspace/bin/tree/tree.elf | Bin 12704 -> 12760 bytes src/userspace/libc/Makefile | 6 +- src/userspace/libc/include/emx/fb.h | 13 +- src/userspace/libc/include/emx/mouse.h | 13 ++ src/userspace/libc/include/emx/system.h | 10 ++ src/userspace/libc/include/unistd.h | 13 ++ src/userspace/libc/src/_syscall.h | 41 ++--- src/userspace/libc/src/system.c | 16 ++ src/userspace/libc/src/unistd.c | 2 +- 66 files changed, 689 insertions(+), 143 deletions(-) create mode 100755 dsk/rd/bin/reboot.elf create mode 100644 dsk/rd/emr/.emxrc create mode 100755 dsk/rd/user/apps/gui.emx/app.elf create mode 100644 dsk/rd/user/apps/gui.emx/package.info create mode 100644 src/drivers/ps2/mouse/mouse.c create mode 100644 src/drivers/ps2/mouse/mouse.h create mode 100644 src/kernel/user/scalls/system.c create mode 100644 src/userspace/apps/gui/Makefile create mode 100644 src/userspace/apps/gui/gui.c create mode 100755 src/userspace/apps/gui/gui.emx/app.elf create mode 100644 src/userspace/apps/gui/gui.o create mode 100644 src/userspace/apps/system/emxrc.c create mode 100644 src/userspace/apps/system/emxrc.h create mode 100644 src/userspace/apps/system/emxrc.o create mode 100644 src/userspace/bin/reboot/Makefile create mode 100644 src/userspace/bin/reboot/reboot.c create mode 100755 src/userspace/bin/reboot/reboot.elf create mode 100644 src/userspace/bin/reboot/reboot.o create mode 100644 src/userspace/libc/include/emx/mouse.h create mode 100644 src/userspace/libc/include/emx/system.h create mode 100644 src/userspace/libc/src/system.c diff --git a/Makefile b/Makefile index 89fba71..ecaaf12 100644 --- a/Makefile +++ b/Makefile @@ -65,7 +65,8 @@ $(ISO): limine.conf $(LIMINE_TOOL) $(BUILD_DIR)/kernel.elf disk userspace @mkdir -p $(DISK_DIR)/rd/bin @mkdir -p $(DISK_DIR)/rd/emr/system @cp -r src/userspace/apps/shell/shell.emx $(DISK_DIR)/rd/user/apps/ - @cp -r src/userspace/apps/system/system.emx $(DISK_DIR)/rd/emr/system + @cp -r src/userspace/apps/system/system.emx $(DISK_DIR)/rd/emr/system/ + @cp -r src/userspace/apps/gui/gui.emx $(DISK_DIR)/rd/user/apps/ @echo "[MK] copying files..." #@cp limine.conf $(DISK_DIR)/rd/boot/ @@ -77,6 +78,7 @@ $(ISO): limine.conf $(LIMINE_TOOL) $(BUILD_DIR)/kernel.elf disk userspace @cp src/userspace/bin/cat/cat.elf $(DISK_DIR)/rd/bin/ @cp src/userspace/bin/cd/cd.elf $(DISK_DIR)/rd/bin/ @cp src/userspace/bin/lsblk/lsblk.elf $(DISK_DIR)/rd/bin/ + @cp src/userspace/bin/reboot/reboot.elf $(DISK_DIR)/rd/bin/ @echo "[MK] creating initrd.cpio..." diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 68349a08d81380d60cb5a9f6fddb53b576f2ad90..becb5e9a714c143c5a83971086f9b3a3ded13d29 100644 GIT binary patch delta 34578 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

      *{xpXBjiob&NNu8wODiCvdk8Zo2aJdNl z*(G;c)Y+9aR6n`6=|O_zm)_*!MlR~=T^2V3C_bF6O~pLr;$|@6@=qS(q=Qbb=3@A8 z0L6qEoIAN}Th@9}0-Px%NUljR9=e%?ccYe=EMO&*@DB9k$hF5}!oQ^o^L~ZR1Y-hk zy0_Yh8psYUmw5$LGr2TaO7Uk>Q_Cl51>pxNW4Saq40+(KX-~IOE)5=n_c7hcPttkRPE3YQMX_W&kL9u!YO%b;aBON;Xg3kD~|B@T+0 z0n4E5oZn-(F_WV)naL@W~{G5#AG4|(CYgctK>vGI$^*lr9aF%||8j&_0dL`|jt-kJO zf@Mm}k^Q_#2=<7UtCm?1v~61744SyyP_DxQIqqjq9Ad`}QAnNlI~cG?>=)>* zFn^^hKD|ZDKd>F!M94 z(WVWZ`PwMI^I!gMDL?2R8;pN|)HErGe~55-t(87R=#kt3*N(phia$nr5GH{jY(&&} z`5z-K0>ruXwnzqW>n%4>Y`x8{v;H6bHPQub*8f1eZg+i@uu*=Lus-HLK1vwtxbmMn zZY_VTv;q2&Sg4CXR%+kkjNY>0*7CPY-^A$fq{;6V*1GXEclzgdZ@7(d3TfGJYx%Yz z&yx$`e;(UZS=HDPjevD~E-j5v!nWkper7MWkHp{PjM(OarzY594@ zC0b#w22vJh6=WC3Su9FT^841Cs(&+7oo5v*sGsx5J-nB9!J2C7AIr{Mu*P-tp-Eio z-Gd<&?mMN%GM^8v-Dajk81?h(G)GJAbpYWWbQW2r$Bh(>A5VBZgwaih3-P&x_hscN z)-GIwmt~cj(;|q9n!O^+j_JV_!-cq?3;rPBDEcy4c~P-Ow+1d;cr{X6$bF-7z-eKm zza8rhf7}gU47h&5>S2E;N;H>iZGIwL*5+{#fhx^Ex{CM-5JvX|T!@Fe3w$_7!L|Yu z2;zAZUv4+$10UB6F``N>e;)J@3Hl7~1j>;6P0taYLt6X+WP-Z|7iREu7ZD$u8{H|m z5Z_L>PwIBHfa7+PjoPveMn)6t>p(C;qs#q%lkncOij}JsxvXfW`^vRSh%1*BPmw(s z^>cKe!iDnTpj#@2=i(2zui)Z;9<(<#wY1}2rlz|_O*e{12U7$l073Xo1BANZ54dKy z5bsAFTds?KCHxUG;mhqNmE_~!n?-Hd`Dtgl0(pVfGjhS?LkT|i6d9*sB5*+xr;H~E zSb_7Syg>M;^$?PM$U*o9>b9`mB!-7DVl+`Fno5GY5`LTRvD|LzN%$PPH4zj)2Pk$f zjqb5r+xHgRO>*J#rb`2+lDG(35SNj-HH1IrQjbxDx1;vZDgFe)v#1)pae+5o;C5xV zOL^x~f>>(snItHe@I6!@xgwJbno0DGJWBCPD88BG%W*}nPx^V_jez2;r39-ffj3!V zuxp`vnDCeAJic71;WiR>v0o_zxvjK~a1Scb7$HX4P58fPscwZZ-|na)1{xtT?ne9p z_jkhKb8M*?o{T@>juQ@l<{=fsDfk1f1TMVO2`+c~MJb0&5`{cAe9{PTzVf<7H9ks= zvy@;f-2(YEze>2=f|SEZ1L1*GAkdh&J4d+un|FN(-$Hm~H!_~cHR2l(0h{y`4LiY< z-~uJsN1aP95kDb3nmVuSTvrHRNd=P6!V?k)r5r^MlNPXVh=G6Z0U2`Gk^5F_*qqDO zdHf@LsWrDQTQ7@0IakYH4TxiX_iBEs6?b;xEpi@f?$1B52a5Tlmty6uw}5Y1r%G3tw7mE_@jo^Y;G&FO}br delta 25859 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 delta 1821 zcmZ8i4NO~A6u!66VfkwdJf0<^E!sk%V=ex$%)kcIZUtQ29~o#ANT%DI@h6eEB@!gS zLao!yV;l=}(Zmr$786out~i0jWEc~&7>UZ%I3jE%M1w&V6XWolzEhU;B=3Fae&2V` zJ@4K7@+Lb5I!^mc-)ufpQElnhMIz3R9__Zt@z|p6DJc&@C~v!I)fPLMH!Phwb|E66 z`QEO1aiV3+f%frPP1H@8FpIZAV}V!OY87HklCrX{c%iT0VR;?K3R<0|HYzdG+chIj z92_%~adq8z9I7<0wl5b;;3dZYU01fjG0mHG*O?1LnzuBbgU)<%W)>#fm_cqT^b55R z4b4QR;-A7z%_ZNCZ74jD*6l>!;wjWrDP_HsZNqHob=5-9sg4l5sNNtrtllJOR~HCc z)g^*`YMh`+eM|6|`hlQUEf7?zRf2#@*AaY5BPdbj1VyS|FF?#!yJ?uMo*^)+*J6J- zX41BOZ4n|IHD4jgmlt#@Sgu7J>;U%Z5^!7bTPDe)^N8wX@ zuoLZ9Os@*Dl!c2;!)MMh(ztXus;y+ekgK%l z8Zz0*4wtMr2fgOY$b!4r0e`zLTU*kEXbwjfCTKt7jWOlkVS{$Ym-(73qkq~z3OD@a z*Bxc7TDe-IA&SjVvPo}vkktvEOP>bCBg~I*=d}hcb}>K5ohSFY9(p$Ej-9NUc~&vc zdK^Yk-Op+*pX4W5?Snb&q=nUs*~U}Uu-eA_3n}mLS?14jwH@p~2KANgvEjK$a6qJa6!qdy#TeWMA6Bdaug_;DT}U!+q7;f za3(cpd^Q=HIwECvYz8nNP- z_wID_Avf>H;zOO;r4ij3OqYQSQB~#W>1Z}}c9^=%v#cHI%;mdfWXwIV-qPQNvz4OO zoc8E($)+n__vk+p6H5C)nBp}nUZWXO^&J66#WSd3Qr|JL*X*$_MAz%ExP~(rszpS!lj0 zZrQT6tm4<&IiQ>`&B+F4mc{fQH(g8 ze24hkQJ*_EnK3)WXs|sK{*|zLI}l}Njc>gZCYHb?3MP?aLtF*lAhfto`7O~HKgj39 zZ;F`bJiwQT-<*TIUz|u#`D{^`c!M_zOVTAi(t9&$p@DzjTa-Ey#v6n+yN%xzUD?HP zhy4>1r*LcfuEEL4P1+7jTrpe4z3kkCI&?6g!*z7Pk*@-n*SJ)aO`B$m{C@)7e!usP zY4suM7zEtig3Eeik6 zsOD;iP*rFesuFDoRi1VYRhH&MHANdo<|>n=)t|hb}{r ziQa(`IQju9(82x~nB2gL%=#k^y~c~6{>$1YMha7M_dH|{@aRCtEwxaI%?-ozjQJMZfVs@fnb1}bpJOaFYz;wFAHS@Jo=FTn$a{zc?pPrMqm1y;UO zR->{&IUi7>wTUuOltD&(Nc>NyP}TSOq9sp=kcK4R$WVXe` z!-$`!<6BGIOgwXv^iLsP4jTGKWgS6nY=;0dtRBRLKLJUiL?URn(up6V;53!H73L_f6W>7vEs&V0 z#GSO?eZ)5rf0}OmK5;McdHVjXVGO?!P`b#liEdmWF~b|-8)9G3L4QR4?@pF0Ya;)> z#J>)g{0Q+QqNT#29wcjd(Cgqc;x}nulPIc(_y#)FBI2(R|AV&gdE$pa94X}>NEUeLc#9~3>c$j1lr~t@yCMN#!dXmbh*50nTA~;evn=e*c*5v4 bJqgBkVXV#x*D7@byDnx{m-0^0Ql0rPK@AW* delta 2746 zcmZve4NTQl6u|F&@Dvc^J>>Ctd?U(disKvP5f5ZN!HSPm#MMMwt(<};%a!&pLS;`9 zJWbI`V}4O->fYx5S}CsOQ=6jGS+Q(bvtds+%9S5$(K-KnUM<$$;N1H=ANQPl&wcNm z>yW)2vO7)o_M{ht^ri@X98G~$4(qY*mav}gux+N2h_-2>Y~*XB5FG<+%%|U?RW;O@ zk{{ox*i5IpWAv}FF=zWgkkf5)x{U%uoq8V)ot<8df{yHfJ*H^OQFL%(lrU#khZsYT zPVdM?xMZr8t&nJrPHvozdUxdrMhbJb505%Kaqc!&5bmse;B;FG;W=|^R0M)h46DcX zg`o?Y8XrvqM~-D%cp$W81;PpQED7+7xj_~|MR1g&|A4yaEp`X>t%8k+umnggbE>FJIBYLITy`icFE!a3FHF zyaYc+UYGabgw-A!`;f}39Co&^9~P}K?#eq@YiX@qRNpq(YT26FDBz+3iL$TWe*HS9h5iViRc8_ZtItGaCS!4gN*UYlW;!9C5vHh z><@A=q{Us7mpy;P)f?o1rz&wcNH#!b`g%D8AEoC;?e~q1oupGZ<;5#f=h1@@t9Sw81)R! zf2n69glB86G?;6!SOQB}wm@Hgv+M4$1m$6j{ndu*n zM%qg*)puNuYbgRnKgSHxEre)+RfP$zjmiIC)nVrTs@9@cIL29NQ}(ksN*nX-@rqY4 zKZnnQ>|@!!j=3GB8SCGyvZ)jPbT)CI1+gm7WP|ePW_}}D@x2O*Zjx|pxvUFd<+pmw8M?H+fl@3Q^!Nveuw-CBrUif4#V zf|cSBD-N>5V(xGMqwIrYcI(^&tUbr47{^|Rm@ngN&0)Th`S*NSjm-Cfxzy_Nur`vL zs)V)lWlt|~h?Dj=$pG`LaXr$;JfA<8%Q?Qdk5y#69P!fX+(eR5|gC`{HBOw?gL?Fa%kR=e9mW)LGp;_W^zHiSvNctw{Jnwm) z_pA4w-Upk`Z2mkhCkE=9ovj{`x1B?~Z@9|FT_QOmk;uIVN%y-+u}Fwa>S=FIwxs3` zS6(4$c=CDB!wMmKQ*$ztnp>56dg!>;UlbY3PPyMM>bZ{zPx>)cJtD7{ynoS~Ii!4U zgf3M_uvaArcByp)@2htRwyWI)n^ZT!o9YU&_KI@GaYf$Q?wKN_p>M5YU+(Zj%3DZ4K#SM5X+$3#Chu6t=_$eIgd<~->}*bbKT83FcQb-^6??bcRjY1|3UHs{=VN)*N=|+zN*d+5zdMX3qz#c5%lD zSJ;K<5k+DfUMQkoq77{iE~<8^VDbaZd-39?$rd)<;XywqV!L!M;!u@mN1=UmPgtbqkh9%=HtjuHlY7T;c)q-31+g zXWq%bcRR=b0Rvd=A68fJ+dRSQGv=px1~>B#9G#wzuUOAdUnjCs_$y*s9#(Twt8H2o z)ex>T*VnLmhI8qflSP>Sf+we2NVc5${XF@?yKaDVooOv&^>3cAMkk4tFofz}JkgwI z`Cgf2+>AFkw?#Fx5oCR{{03U;WB&sHG&AG? delta 1557 zcmZ8hU1$_n6uvic)HR#zZp=8@n7D2dCmU8ssVan=&En#xbir{`>M|&9t_#{ z-fr>E{J-u*s9y~CM;BCdI zS9fTl4r4I3XpwvbzEDIyguN9etP6Q$%Juf3x7+p7=(WQ)AzQX*?}V;M*b;7(^>8k{ zMmECJa1G?bb6W-rMGQ-d8d}hnt=`S7Cb)7nSNI$;Ao4{F4+l}RXhGYF7gf8#@#QWn#23u}%acTz zKfwI=%$v*~)I6-I3IvaEj5$yDy2>#r=&rJYCt3ZvK&wB|7l(ERE>~H-7ty16ZgK8< zR}+G25PyvOPCv10%;yYUt&8JtGH>J8M^uOwG&&G|tb-P#W!eVN!TQip9SGv#b9-%^ z(d#$ZT5YZUgVh%9*vlpUW`6sOj?b9)@cnM$_*d{VR(s9rGJcyUSe;=0*BQ_GE%WAV zJwN?v$P5TCv4UQ_F?veFQmbuR6!W2DiM6(r)w7(tfz=T6NuIo!`K8Qv^W@X-+J+4F zin98IC#>MC58x@PyKqO7oa1w4vDyd$+X}AYTxZ6!a-hXtmj(NXgwn`jnS-WCoriw5 ul%0d_NQ0-I4{#JRkyU1WSl6B4^K9VO3r20!6S1|@22HgMavyZp*8C63nJn-C diff --git a/dsk/rd/bin/hello.elf b/dsk/rd/bin/hello.elf index 87051a7bec51bdde92fa9b903ae1dc02849815d8..f292287f734aa08453a481cfd2ad2695160b805e 100755 GIT binary patch delta 2784 zcmZ9OeQZ-z6u|H8R_MOy$JV{I`)FZf>p);^tjn@>ydjgSOtvuuB$~lL2n42)85Bqz zMPW>a=0-F|BiTX}MsQ129$;Jr1^G}wacEE&Mq){I4h&?N$UNuWQ;a>y>$&%L&OP_s z`_8?6LqWcMD}T*nFsZLk@g_$mGbx4rt3NiUjN~&_Ll9XZrdS&JDzVAp%zq4={GD|X ze=uzJ2Zu)d9nkJHRv_-E8})bE9}tHvMNSidR2ZyBh?-#txEhBG7!!Y#I7GU&)U@BB zhZ+$#OVUM)wT3r{_pHU{)&#~D`8%!;aGZO2=#q7g!JOsq*bMX3Ma)K=MvpPik}cGX z@5T>QqT`RkWzXY-qQ>sw7sX0wcZpZ*dHJpP#>P$^$AJFe?T> z=-iHV(x5XU1{EKFQDkJj&wml0W}V~@!>>#9IJ)@~@sRT*9}p9=1AMmV%D%!|#M+#% zxjR&qyU@TbpgKIN3~QNK-HvOK=r8hGpf1T4OBjD6qQ$l5>TTvGzFDM^PrljRikoh&66`gr)w?P zP1T-7Wz=?rj!e6lP_rNr3&ZF~^>Vl^N3Wq9ze0jQOOXb{9IB~E`nf@wKVe(L>)l|t ziL*0ZjklnPbk=6~pEM3Z4@CxQhZZ=V1L%iZirS!a3_CLFA#8RU`#}8{wOdq|x(c`4 zX9{?%N5`EFkcoX2G*2)VO@YaliuTfSzC#=;JUijK*>!H+ z1FOcg`bdYxh4NOhp~4~>yjjZ&!D3*X*%GB!4!VNa;6Xl}c#%#Sn@W5U@fpNRh;Jo6 zi+H)XS*~!OxaL)s&jrR=!u?Dv^vMF(ORpGW*#902}jQ)Hlg;+Kd+F{p@e zr6^b6LH|A~n(Sm9vk39CoT+JuCP>bPMSrE@xJ~9S-7*}$F_eGAwMr$>L&^OXSM}$J zA4rv>9+!hyBJnd+AB%{m5T8W#v6gr`@gVK4i+BxasG9&gPwy{QHx3wJfmMR2_!AR1 z1^P2?w~B}-Pn76Tjm^|0?)Dr2$?t%%_z>Dd|!}{PVaK)QOo@N}!&s z+i3bc=%X|f_fh%3DluC|d@4nY-3Tqj-FjM#1RF|=``HFZqB@`?C?Zo%d#B(Ul zH^gmp;9|GOCE_2z>4suG;Va`Mq1(PfgK(>E9u>9fj3oTj#4sb`1+^k6_P4l49EKiz qmFl*LxU0^#N6OI;P8c1xanQ~b^|e!zM(KV1B-(2$;Op&hZPCA}q~@{! delta 2709 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 delta 2084 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 BR!sl^ delta 3122 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 P{&9J+uX76pUAg{W82UgM literal 0 HcmV?d00001 diff --git a/dsk/rd/bin/tree.elf b/dsk/rd/bin/tree.elf index 23811cc2883d9ba8c673ea63822a7ddddbe901e8..2a4a63005b0133dbf852cc3a48c6ecbc7a3c832c 100755 GIT binary patch delta 1995 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 GNcso#m~JNk delta 3132 zcmZve3v82B6oBvT=;(M@wyue)t(iU@!#?GE4*oL5v#?b(EzH zY3g+23Ym{&fKeU-VoKl#W$i#22nYrP0-^%}3q>=d!iy-w{`1A4!Wz4;^fn?$uBg35A-3tc2wPBY+ z3^c%&j~x~k%Oq|WPg(4#!Qogq#jiSjX4To*1(o-!ZlfQuOX*hK)=Q$rlFs)FpT%lw zmEPSV)?yQXT1J~1@U(Ct04$;?ege-HE8{cGv!WQQR9)BPC6s&i#+Mp|-I6W}Y-h6D zux{RbEM6CEaqeOCRGqg>uDTw#(xbLuZO5beTQO!(20ta{4oc!K_)dtPfp`%PW1hs} z6i5JT#}BCN)K3ACQ*|yb4?4iR#Rmz+e4n_Kkjv|Z*?yL97uW5DgR{D!ja*76G*&08 zNpvf>;4YRyst)6HQIuGbb8iS^10jzFw-^jO0|hw^M9o+H)pnR14^8^RXu*+xA~3gcpjercWwqWP zsoS~dU`|Dpqa6ZnG~#)V;mC=j%PJr{V59U1#wZ z^)}ohX7YjkXvn+9s&*Ln!VE<&Q4b^4?J#}>RE0(l#6ds{PUM1(ICLA=fckI2S~% zG?WLe#iXZ+`utX2D^kX#uN!A7`8`^i)6oYc4?YIQ*`VH%kJ2e)1;i&2A49xYY|6Jm zqReZi|4-B}=Ke$~2INkIaL%GwXmkQ!Wz*WtHg4a_;~#nw_C;BP<|H+;u|<^91j79Q8S2;zrRB!86nMffeD z|77y7AU+FpEbRQbi2U!#Jf+N;EEDxN$cPW6f%Qp}9Oo!E;e!h_Bub7YLHR_yG~Sl5 z8%D8kj8(J@bhIve#isE#$LBD{*r9Y8*-%4dFl$ce4##>z$ajRR%zvThBs~5?Cr{r1e`+m}} zgADkujK7TyRPWG_a*t>)woTqo)+kyY-Vk)be{hUyqUX}X#OsL{P*LU(-zQQ^Y>p#j zeUzFC--b|567Nk-7;2I;#1}>Mh#e7C{O6Ya7A*lucX`)T{_Ir++-9P zWkb0~OfDN0gKzJcz$fa<#>RyH3r34}n87Q*ZmShsDYDk$+Z{*-J+|R3oY_RBk{z?L RL^rTsgi9IA-w^Fe`o9V~jivwq diff --git a/dsk/rd/emr/system/system.emx/app.elf b/dsk/rd/emr/system/system.emx/app.elf index 977e02c3d5fa4af5fa4e6a05f5178084897ea7b3..195d898ea195b5beeae3668965c3e061f8c272e3 100755 GIT binary patch delta 5957 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 A3;+NC delta 3725 zcmZ9PeNa@_6~OO)2`adJ3dn-HxC;nz7ptM*$GTWIdG1^gNn_PAGb?B_R#E=cMS=1db=V42+ErL2KdyykxXVL<<#% zyNJOtt~gG+Zz+1Py zR5DE(!3m5FXN3PeuPG_u4P`ZYUc?yhFKf})Lni#wvU1~#I>xX%6B?Y?Gp1X!UCZlB zR`6ciY_-U!9!KWBPNfdqpgN{U2cE{+-%ERJ~h#ZG)jFQ zFHh6IqIOcy@nWZ@B#)O?7&TsQuPEc&D~ogo&5R$c{G;ye)r>#8)>4;iVl3*OjSS4P zlWAgY2PU#GwCM>}$Q_p=198@09COb`rxQ*vpElURd1!5;{m-S0tpr;cikV6tg2G(| zBGtPSp;geiq;@i)bD@-HRISTCQ;hRHRca3LMxJm_)u{IVSNwW)DbK3Dq}_qdNp16g z`Kf27wAY{T9qSI2dUDkLaK~e?VJ)yT-%Uu-Pa(vnC;WHo?rU4;`33tY+BxgkaYvI@ z8@G<#T>nM7_QhE~y6KenUNV(3e&mK{@?*8eSyFTW;=nFLl&gB2;kTkYCHCqfI9&16X1gnqzDH5t=Kk4p_|a7!D51ffofTx-h44Aqb>E zLDIfCrxN7xm#Nh7LfUnZ_E=|OgD$MGG1sF(tp8GMMX+UoR`Qg*8CAdRMHP@cP#ua^%3&j1k zxuo*h1zG?$6=*ux2-)PDpgF}@ayd+w0md532L1W_aF6ON`}j~v4nJor;iDDXb!j@r zlNHYJ6zq>U{01ehk8da`!s}3PZ^+-<-s$UOM}2((pPyNq-Hq<1hP`{5tgJr>ysfP- z#2mh!K1c9mFy!lT_(-7Foj zn%zxJdzvKI}B-eE@rlPLrf>fgU++;&G>mKXB%)&xSEA)38fS*j1o02!0wgOwZt# z!-f5He1VwwU!4UzRj;@7-}HhnsuB%uqzkPb_yVbd2WR;U@r??Faf}xJHuN-1$JAW$ z6Nci12f3QN%AX^SYk?+H`EF?AENz*B{~QNFTHw*Z$Q%>~`31ZICCUP%+YK>QqW2W^j) z`1_!Y0vZFY%@7l;A%2_qXH0Nh5XxP6&^~j8 z;Kg(m{{}pa11_x?Sb^3c_y-d5-Nb)GEBGhzGK;WxqcO;T;6eKkgu?zFe1VM80=7|w z)HC!s@uit8>_WqR_yYMF9yk>2H98aO;YuTi%GF{5Jp3pth=*zK@u;J$Bp#=UR}0MQ zKx6#)!kNSRgP6b}3swN)!j~#*DA2A&rLH1=m?|+q4u0ZUi&ngzc(Yl==VV_Wrh%W) zwV`}i1M$)&!a-euMEnMo`Xvg~Nc;gMR0@5R7l@xL7IA(kFgr**99eXFJ7{2lN*y7G zqr`{PMW7_{wCe>1O@f0M~ini+EiqXIlt61@N3Ur%zFWmz519gwMi7H_vd)6K34%s{S!{;qazQx*t z9UFL&RGS+N^>qgh+dEiWsP`!A>Ij7Ve3$fg`jPfPr{C8X;w#W6xIqMrfp8*h2nePfZSO<7>5I(i8CCO|iFx&wH{g>hJqJjTNeSkxu8gowDz?y7aD%fTf20|CAu3GSHCCYfAJFM;s5{u diff --git a/dsk/rd/user/apps/gui.emx/app.elf b/dsk/rd/user/apps/gui.emx/app.elf new file mode 100755 index 0000000000000000000000000000000000000000..a751917fef2ea8ec0413cb2b8e41e0d63aec974a GIT binary patch literal 11888 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 HDINcB0ItmQ literal 0 HcmV?d00001 diff --git a/dsk/rd/user/apps/gui.emx/package.info b/dsk/rd/user/apps/gui.emx/package.info new file mode 100644 index 0000000..bb06ff6 --- /dev/null +++ b/dsk/rd/user/apps/gui.emx/package.info @@ -0,0 +1,4 @@ +gui +emexOS +0.1 +starts the mouse cursor daemon \ No newline at end of file diff --git a/dsk/rd/user/apps/shell.emx/app.elf b/dsk/rd/user/apps/shell.emx/app.elf index b9f7ef86e1bd2ca8930f1653d82ae9c3e803b9e6..cba027aca2dc1a5b989ff7280d089ab5ade4e522 100755 GIT binary patch delta 3237 zcmZvf4Nz276oBttTm?jz1z}MT-U0$U8ZaihsOaiKu9~5!nU*H%lH?*LFr%ikgQ$u4 z2iJaeOv@kAa>iM8o?859Ni;fPW0`4+j^*mw4COdtQ_(r^o@XP|oq2oi{m$P#_nx;4 z8#nR#8ooV^*Vo!cgxYOP8_(OsQK#kT_GPBp?WVf$D89lM9d6?Mj7Tv%Lz+^U!&Tkl zuM^A7$-G3oYqo}*Bjyy%=7b?Hm>6q4JJVJDi>vZ}xPh_8HqfgW+h3dr%fYGoa*p`h z9K&B1(GeAVwb&eC<>}%`gc82d3T8P^%vSoYM-&Bl3jo~R0%6oSIIF_ha+n2HtD8|& zsJl=sRga-~O>ICiU;PfnY_%Olf%*rE$?88Sa@Ei@5IJgp6vI^;iVW3`B2Ar$!m7?i zF+ijyGYt;A)RT8F}@9`;?1z7#ZeRXk&^8e%KXRIY$NCtlne5I=384lANuEymuk!XYD7!VE0`90;O1uQLzIxe z@bB&F>VkcrM^#OpAM%-8RqY+H2|t88ju`gis);%z*2Sg9ZvcRP+O7j8Z~;@JM|yXP zZ!H$l9_KTa1~G>H(a14Jq3@%C;|(D(uIe=qG|w-Zvm(WhmcHV2mP?FO_VsGaMzbs8 zo)XW05Fyqyeo0KT_U}0r@m83|^HL4WLNHZqv!?K=;)HdS!DbN;tlt|7qQy6fqvMQ^ zv6#GeSJj$!RuNm1cOUwAL?mM^#>XNtsoB*G3M_yMmjQ8Q=lRPAz+#EM z=mU!)u{SA)uM#(s4)R+fe^7!rkX+9v!mOFUB+Mx-yir_9S;*ImoYYu8R?JSl&gTnz z+6CU`>uH;A;7z_cgWH4oTrq0c8h%5Z9H!X(H*te!;1D`p)#v2t913)Gox*c!Xn~fK z>>Xjq%3QkbiM1cC;YDNqX=shJhE}xJSPrlnV*{Kylsn~yb_Q@|n4`r%=}8bRrREU! zbV`kNialBT`4#cpaEJFjAo7Te+C{gXWh`Ss@zM;I?)DTxau}hpFK3o0v)rDAr6q2q zyi_S$?Dlw84pH1C?iKmdQ_GY^?xMm9Pq|d2hbl8xE^{l1o-zePB`QUw%auaKQ(RWA zlolxvrKE7_qO$bRQ06;4{2}kx0rhE_Y*L1UtgVa_ZT7_myG@MDPPg?9ld4qBj<)z4QxK-!QoFwDFZS1^lr z5v({1V*2*ONxOtN)5{@VMjXpSq}#sOuBkzl+Ou zGp`l3*$LkBgZ{ss2gLPy-UrVJhta2zM$LHoDq0+TfguL4Lj z6z`%V?4fZlV_%X(Tell;B|g+F6AacI7;7WmK{pFu2imwyd|#Bb?}x7|jGy7b4fUb| z=4q6%+sM737)nR|0V%H0(FN$}CJ+yx1K1z1$OK8mJBVjdqwgpFi1?=d(mpm+DmcYI z(1$soe#ZJr&U%sJ7$^{ZK^62R{!@tLd1N20b4r{~{Bz>X-QEd5@eS0iFEXa(X9G#m zPE9nE0wojwi|)9D_z>cA>1q;)yFp@eDRjqrZw&?ea5y;_4*bwZHi!Ipq^;eK)IkXn zLZ!nR@>ol}u3Kdji1(%w5@erGypRf$S8MH`BTHI5SE z1@zWzmY9_jH&T543u7hmtYBG~w~8DpNzn)XzCnb|hT|>br+Q01Lt?g-_#;YyYaBa> z2h)ZoNz8T<|CP%)R%!2Ldq}Z9QYto*!$IOI?Q}ZvBg9Wp;vC}TAo1=qyWRb9Jx;WY zUrP3;HSXoClPdm{6kn4=EnR{BexD)!Mz=4P7UEH~A^3|*8yAQNddkGl65mEV5&j(3 z`hN~7z5s4H*|_5P8ld-XMyd84>tD0J=8~$4|zr264!l9-{xIb%>iz?cWIp zD(%@KF?URq9e+n*IOx^v3G*0HkvlkK#W+pD9*R$LM}(Bn@5nIGY>yPHonik1nm%CV delta 3086 zcmZvedrXs86u|E-pcJd6#ZrXws6Z)Wf<^{*3ggknin<}r*EEXE`HJs}e~A@w##)`= zb-Jm^oJONl7fmrd&*+7n|wX@{?57QoO|xQ zU%w+hzIh98wDahu?7|qu&eV3zE+#q6ry5u2n;P{yVoiLJKR#B^xnI}}<=Xu=R^s-y zbvB4qh73Mi>^4}nhl%Bj^M=%9yPmNt7pJ(rzq#wXVl|949|OIDzB|i>&X~a86q&|a z?h|{BR$e5|8q;D|TEXmWpIMFn599m@&rJYNw!u851A7hFdj`G0T1A%yqE@k>Sf=Eo zSfCW6s8*^_%uuRPR4J=aj91p7a4K6+6e*veC{T`~$Ws&)cI65Rt8xcLqViYPV32VN zw}a3rMify>j{i~o4-s!@Qy6pmqBJNzXsNZRt9$Yg5(L_n45FchyS-5lux)_p;y<^u z#KNRh+n7FP28&!Y+*S#xn9`x!%2;3k1d9_Vl8#u`SU?Hc$DhN%%{ut${45v@Lf$jQ zN=v-Xi3Skf?K3%quwl818>FN0$}; zQ^{o-@z^{_B&T)hWH1M6x<#xth2Ic)Ry%JOjj1NF)T-rPwYL>|i`CvS=#3X&S#9up z+d5j)9xsLr{ZZ3n65T_`aEln0p2$BH?)0i*6HJW7V|uWNV4w!p9}mRsaCNRugn=P6 z7zhKMXiG2Z-}E9F^tpP)th6Ly%h<&4h!YuY+zG#_VrS+7K3Npn+V~j}w7r|W?%VW9kEt&6srSNY)cm-sKiuEKLK{nM}M5SY)MzM=C zj@<0v0BMq?I$*3ABxjMVg{DLkcZw0CQ%mpYU$&kIS`FIAN}fm7Rm4XU&nG@jOmdh# zb6~_-1Pi4XOWOIwL+OV2GUAv%nuhoq=wtNL36g(-N@#WPaL`ney+NgnZ3G#~{uI+3 z2EG;7<2ju9|LeI$6Sosl| znTLhSdk_>jp*>PM8mK{Y#*V{-d}@T`Xou}NJjgxil2219V_y>AL>rYs{2P!4So~!w zNu@V=o5=V=1GTGaL}ah*X1$RU1}_$As|xXfz1Nqn72+7HId1np;dFwq{3t}3`4}k*FSz3XX_*JdsF0wa-I0b%-_}9dDh24o?iC5EUoyr&Itt0TT3 zY#C+5d!wbjkmjs{conTetu5%PB=@k|uykk8ghZNrlGBDa +#include +#include + +static mouse_event_t evbuf[MOUSE_BUF_SIZE]; +static volatile int ev_r = 0, ev_w = 0; +static void ev_push(mouse_event_t *e) { + int next = (ev_w + 1) % MOUSE_BUF_SIZE; + if (next != ev_r) { evbuf[ev_w] = *e; ev_w = next; } +} + +int mouse_has_event(void) { return ev_r != ev_w; } +int mouse_get_event(mouse_event_t *e) { + if (ev_r == ev_w) return 0; + *e = evbuf[ev_r]; ev_r = (ev_r + 1) % MOUSE_BUF_SIZE; + return 1; +} + +static int abs_x = 0, abs_y = 0; +static void ps2_wait_w(void) { + int t=100000; while(t-- && ( inb(PS2_CMD)&0x02)); +} +static void ps2_wait_r(void) { + int t=100000; while(t-- && (!inb(PS2_CMD)&0x01)); +} +static u8 ps2_rd(void){ + ps2_wait_r(); return inb(PS2_DATA); +} +static void ps2_cmd(u8 c){ + ps2_wait_w(); outb(PS2_CMD, c); +} +static void ps2_dat(u8 d){ + ps2_wait_w(); outb(PS2_DATA, d); +} + +static u8 pkt[3]; +static int pkt_i = 0; + +static void mouse_irq(cpu_state_t *s) { + (void)s; + u8 status = inb(PS2_CMD); + if (!(status & 0x01)) return; + + if (!(status & 0x20)) { inb(PS2_DATA); return; } + + u8 b = inb(PS2_DATA); + + if (pkt_i == 0 && !(b & 0x08)) return; // sync check + pkt[pkt_i++] = b; + if (pkt_i < 3) return; + pkt_i = 0; + + if (pkt[0] & 0xC0) return; // overflow and discard + + // 9-bit signed via sign bits in byte 0 + int dx = (int)pkt[1] - ((pkt[0] & 0x10) ? 256 : 0); + int dy = -((int)pkt[2] - ((pkt[0] & 0x20) ? 256 : 0)); + + u32 fw = get_fb_width(), fh = get_fb_height(); + if (!fw || !fh) return; + + abs_x += dx; abs_y += dy; + if (abs_x < 0) abs_x = 0; + if (abs_y < 0) abs_y = 0; + if (abs_x >= (int)fw) abs_x = (int)fw - 1; + if (abs_y >= (int)fh) abs_y = (int)fh - 1; + + mouse_event_t ev = { + .dx = dx, .dy = dy, + .abs_x = abs_x, .abs_y = abs_y, + .buttons = pkt[0] & 0x07 + }; + ev_push(&ev); +} + +void mouse_init(void) { + ps2_cmd(0xA8); + ps2_cmd(0x20); u8 cfg = ps2_rd(); cfg |= 0x02; cfg &= ~0x20; + ps2_cmd(0x60); ps2_dat(cfg); + ps2_cmd(0xD4); ps2_dat(0xF6); ps2_rd(); // defaults + ps2_cmd(0xD4); ps2_dat(0xE8); ps2_rd(); // set resolution + ps2_cmd(0xD4); ps2_dat(0x02); ps2_rd(); // 4 counts/mm + ps2_cmd(0xD4); ps2_dat(0xF3); ps2_rd(); // set sample rate + ps2_cmd(0xD4); ps2_dat(40); ps2_rd(); // 40 samples per sec + ps2_cmd(0xD4); ps2_dat(0xF4); ps2_rd(); // enable + + abs_x = (int)(get_fb_width() / 2); + abs_y = (int)(get_fb_height() / 2); + pkt_i = 0; + + irq_register_handler(12, mouse_irq); +} \ No newline at end of file diff --git a/src/drivers/ps2/mouse/mouse.h b/src/drivers/ps2/mouse/mouse.h new file mode 100644 index 0000000..6664a2b --- /dev/null +++ b/src/drivers/ps2/mouse/mouse.h @@ -0,0 +1,21 @@ +#pragma once +#include + +#define MOUSE_BUF_SIZE 64 + +#define PS2_DATA 0x60 +#define PS2_CMD 0x64 + +typedef struct { + int dx, dy; // relative movements + int abs_x, abs_y; + unsigned char buttons; +} mouse_event_t; + +#define MOUSE_BTN_LEFT (1<<0) +#define MOUSE_BTN_RIGHT (1<<1) +#define MOUSE_BTN_MIDDLE (1<<2) + +void mouse_init(void); +int mouse_has_event(void); +int mouse_get_event(mouse_event_t *ev); \ No newline at end of file diff --git a/src/drivers/ps2/ps2.h b/src/drivers/ps2/ps2.h index d3d2755..c68a0fa 100644 --- a/src/drivers/ps2/ps2.h +++ b/src/drivers/ps2/ps2.h @@ -2,12 +2,9 @@ #define PS2_H #include "keyboard/keyboard.h" -//#include "mouse/mouse.h" -//#include "mouse/cursor.h" +#include "mouse/mouse.h" // keyboard driver void keyboard_poll(void); -// mouse driver - -#endif +#endif \ No newline at end of file diff --git a/src/kernel/arch/x86_64/exceptions/panic.c b/src/kernel/arch/x86_64/exceptions/panic.c index 3658972..cea3854 100644 --- a/src/kernel/arch/x86_64/exceptions/panic.c +++ b/src/kernel/arch/x86_64/exceptions/panic.c @@ -53,6 +53,7 @@ __attribute__((noreturn)) void panic(const char *message) print("System halted, \nYour computer will now restart...", PANIC_FG); + delay(50); panic_reboot(); // HALT @@ -123,8 +124,6 @@ __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *m print(buf, white()); print("\n", white()); - print("System halted, \nYour computer will now restart...", PANIC_FG); - if (state->int_no == 14) { str_copy(buf, "CR2: 0x"); str_from_hex(hex, cr2); @@ -157,6 +156,9 @@ __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *m print(buf, white()); print("\n\n", white()); + print("System halted, \nYour computer will now restart...", PANIC_FG); + + delay(50); panic_reboot(); // HALT diff --git a/src/kernel/cpu/poweroff.c b/src/kernel/cpu/poweroff.c index 421df4e..a255b92 100644 --- a/src/kernel/cpu/poweroff.c +++ b/src/kernel/cpu/poweroff.c @@ -18,12 +18,16 @@ static inline void x86_restart(void) __asm__ volatile("nop"); // PCI RCR - u8 temp = inb(0xCF9); - outb(0xCF9, temp | 0x02); - outb(0xCF9, temp | 0x06); + outb(0xCF9, 0x02); + for (volatile int i = 0; i < 100; i++) __asm__ volatile("nop"); + outb(0xCF9, 0x0E); + for (volatile int i = 0; i < 1000000; i++) __asm__ volatile("nop"); - for (volatile int i = 0; i < 1000000; i++) - __asm__ volatile("nop"); + __asm__ volatile( + "lidt %0\n" + "int $3\n" + :: "m"((u64[]){0, 0}) : "memory" + ); } static inline void x86_shutdown(void) diff --git a/src/kernel/devices/fb0/fb0.c b/src/kernel/devices/fb0/fb0.c index f434363..9d865fc 100644 --- a/src/kernel/devices/fb0/fb0.c +++ b/src/kernel/devices/fb0/fb0.c @@ -105,6 +105,37 @@ int fb0_ioctl(int request, void *arg) { fix->line_length = pitch; return 0; } + case FBIO_READ_RECT: { + fb_rect_t *r = (fb_rect_t *)arg; + if (!r || !r->pixels) return -1; + u32 pitch_dw = pitch / 4; + for (u32 row = 0; row < r->h; row++) { + u32 py = r->y + row; + if (py >= h) break; + for (u32 col = 0; col < r->w; col++) { + u32 px = r->x + col; + r->pixels[row * r->w + col] = (px < w) ? fb[py * pitch_dw + px] : 0; + } + } + return 0; + } + case FBIO_BLIT: { + fb_rect_t *r = (fb_rect_t *)arg; + if (!r || !r->pixels) return -1; + u32 pitch_dw = pitch / 4; + for (u32 row = 0; row < r->h; row++) { + u32 py = r->y + row; + if (py >= h) break; + for (u32 col = 0; col < r->w; col++) { + u32 px = r->x + col; + if (px >= w) break; + u32 c = r->pixels[row * r->w + col]; + if ((c >> 24) == 0) continue; // transparent + fb[py * pitch_dw + px] = c; + } + } + return 0; + } case FBIO_RESET_POS: fb_write_pos = 0; return 0; diff --git a/src/kernel/devices/fb0/fb0.h b/src/kernel/devices/fb0/fb0.h index c76fc42..186ae16 100644 --- a/src/kernel/devices/fb0/fb0.h +++ b/src/kernel/devices/fb0/fb0.h @@ -40,13 +40,19 @@ typedef struct { #define FBIOGET_VSCREENINFO 0x4600 #define FBIOPUT_VSCREENINFO 0x4601 #define FBIOGET_FSCREENINFO 0x4602 -#define FBIO_RESET_POS 0x4603 +#define FBIO_RESET_POS 0x4603 +#define FBIO_READ_RECT 0x4610 +#define FBIO_BLIT 0x4611 + +typedef struct { + u32 x, y, w, h; + u32 *pixels; +} fb_rect_t; // /dev/fb0 module extern driver_module fb0_module; - int fb0_ioctl(int request, void *arg); #endif \ No newline at end of file diff --git a/src/kernel/devices/input/mouse0.c b/src/kernel/devices/input/mouse0.c index dd4efff..67366fd 100644 --- a/src/kernel/devices/input/mouse0.c +++ b/src/kernel/devices/input/mouse0.c @@ -4,52 +4,37 @@ #include #include #include -//#include +#include static int mouse0_init(void) { log("[MOUSE]", "init /dev/input/mouse0\n", d); - //mouse_init(); + mouse_init(); return 0; } - -static void mouse0_fini(void) { - //irq_unregister_handler(12); +static void mouse0_fini(void){ + irq_unregister_handler(12); } - -static void *mouse0_open(const char *path) { - (void)path; - return (void *)1; +static void *mouse0_open(const char *p){ + (void)p; return (void *)1; +} +static int mouse0_write(void *h, const void *b, size_t c, u64 o){ + (void)h;(void)b;(void)c;(void)o; return -1; } static int mouse0_read(void *handle, void *buf, size_t count, u64 offset) { - (void)handle; - (void)buf; - (void)count; - (void)offset; - -/* - size_t ev_size = sizeof(mouse_event_t); + (void)handle; (void)offset; + size_t esz = sizeof(mouse_event_t); size_t written = 0; u8 *out = (u8 *)buf; - - while (written + ev_size <= count && mouse_has_event()) { + while (written + esz <= count && mouse_has_event()) { mouse_event_t ev; if (mouse_get_event(&ev)) { u8 *src = (u8 *)&ev; - for (size_t i = 0; i < ev_size; i++) { - out[written + i] = src[i]; - } - written += ev_size; + for (size_t i = 0; i < esz; i++) out[written + i] = src[i]; + written += esz; } } - - return (int)written; */ - return 0; -} - -static int mouse0_write(void *handle, const void *buf, size_t count, u64 offset) { - (void)handle; (void)buf; (void)count; (void)offset; - return -1; + return (int)written; } driver_module mouse0_module = { diff --git a/src/kernel/kernel_processes/bootscreen/print.c b/src/kernel/kernel_processes/bootscreen/print.c index 2129ab8..d120295 100644 --- a/src/kernel/kernel_processes/bootscreen/print.c +++ b/src/kernel/kernel_processes/bootscreen/print.c @@ -141,31 +141,23 @@ static void putchar_at(u32 codepoint, u32 x, u32 y, u32 color) } static void bs_scroll(u32 line_height) { - u32 fb_w = get_fb_width(); u32 fb_h = get_fb_height(); u32 pitch_dwords = get_fb_pitch() / 4; u32 *fb = get_framebuffer(); - u32 bytes_per_row = fb_w * sizeof(u32); - // shift everything up by line_height rows - for (u32 y = line_height; y < fb_h; y++) { - memcpy(fb + (y - line_height) * pitch_dwords, - fb + y * pitch_dwords, - bytes_per_row); - } + // single memmove shifts the entire framebuffer at once (much faster than row-by-row on real hardware) + memmove(fb, + fb + line_height * pitch_dwords, + (fb_h - line_height) * pitch_dwords * sizeof(u32)); - // clear bottom lines - u32 clear_start = fb_h - line_height; - u32 *first_clear_row = fb + clear_start * pitch_dwords; - for (u32 x = 0; x < fb_w; x++) first_clear_row[x] = 0xFF000000; - for (u32 y = clear_start + 1; y < fb_h; y++) { - memcpy(fb + y * pitch_dwords, first_clear_row, bytes_per_row); - } + // clear bottom lines with memset (bg is black = 0) + memset(fb + (fb_h - line_height) * pitch_dwords, 0, + line_height * pitch_dwords * sizeof(u32)); } static void putcodepoint(u32 codepoint, u32 color) { - u32 char_width = fm_get_char_width() * font_scale; + u32 char_width = fm_get_char_width() * font_scale; u32 char_height = fm_get_char_height() * font_scale; u32 char_spacing = char_width; u32 line_height = char_height + 2 * font_scale; @@ -174,6 +166,7 @@ static void putcodepoint(u32 codepoint, u32 color) { cursor_x = 0; cursor_y += line_height; + // scroll only once, right here if (cursor_y + char_height > fb_height) { bs_scroll(line_height); cursor_y -= line_height; @@ -185,12 +178,14 @@ static void putcodepoint(u32 codepoint, u32 color) { cursor_x = 0; cursor_y += line_height; + // scroll only once, right here if (cursor_y + char_height > fb_height) { bs_scroll(line_height); cursor_y -= line_height; } } + // removed the third redundant scroll check that was here before drawing putchar_at(codepoint, cursor_x, cursor_y, color); cursor_x += char_spacing; } diff --git a/src/kernel/packages/cpio/cpio.h b/src/kernel/packages/cpio/cpio.h index 86cca3d..df4dd8e 100644 --- a/src/kernel/packages/cpio/cpio.h +++ b/src/kernel/packages/cpio/cpio.h @@ -8,14 +8,14 @@ #define CPIO_MAGIC_NEWC_CRC "070702" #define CPIO_MAGIC_LEN 6 -#define DIR_PREFIX "

      " -#define FILE_PREFIX " " +#define DIR_PREFIX "dir: " +#define FILE_PREFIX "file: " // signals end of the archive -#define CPIO_TRAILER "TRAILER!!!" +#define CPIO_TRAILER "TRAILER!!!" // newc header is always 110 bytes before the filename -#define CPIO_HEADER_SIZE 110 +#define CPIO_HEADER_SIZE 110 #define CPIO_MODE_IFMT 0170000 // mask to get file type bits #define CPIO_MODE_IFSOCK 0140000 diff --git a/src/kernel/user/calls.h b/src/kernel/user/calls.h index 05d9a7a..c5da4d2 100644 --- a/src/kernel/user/calls.h +++ b/src/kernel/user/calls.h @@ -55,6 +55,9 @@ #define SHM_DESTROY 245 + // emex specific + #define EMXREBOOT 169 + #elif ARM64 == 1 #define EXIT 93 diff --git a/src/kernel/user/scalls/scalls.h b/src/kernel/user/scalls/scalls.h index 8cc931d..ca5c1dc 100644 --- a/src/kernel/user/scalls/scalls.h +++ b/src/kernel/user/scalls/scalls.h @@ -9,4 +9,9 @@ u64 scall_mq_send(ulime_proc_t *proc, u64 mqid, u64 buf, u64 size); u64 scall_mq_recv(ulime_proc_t *proc, u64 mqid, u64 buf, u64 size); u64 scall_mmap(ulime_proc_t *proc, u64 addr, u64 length, u64 shm_id); -u64 scall_munmap(ulime_proc_t *proc, u64 addr, u64 length, u64 arg3); \ No newline at end of file +u64 scall_munmap(ulime_proc_t *proc, u64 addr, u64 length, u64 arg3); + +//u64 scall_fork(ulime_proc_t *proc, u64 a1, u64 a2, u64 a3); + +// emex specific +u64 scall_reboot(ulime_proc_t *proc, u64 magic1, u64 magic2, u64 cmd); \ No newline at end of file diff --git a/src/kernel/user/scalls/system.c b/src/kernel/user/scalls/system.c new file mode 100644 index 0000000..8eeb2d2 --- /dev/null +++ b/src/kernel/user/scalls/system.c @@ -0,0 +1,25 @@ +#include "scalls.h" +#include +#include +#include + +// unix/linux -like +#define RSYSTEM_MAGIC1 0xfee1dead +#define RSYSTEM_MAGIC2 0x28121969 +#define RSYSTEM_CMD_RESTART 0x01234567 +#define RSYSTEM_CMD_HALT 0xcdef0123 +#define RSYSTEM_CMD_POWEROFF 0x4321fedc + +u64 scall_reboot(ulime_proc_t *proc, u64 magic1, u64 magic2, u64 cmd) { + (void)proc; + + if (magic1 != RSYSTEM_MAGIC1 || magic2 != RSYSTEM_MAGIC2) return (u64)-1; + + if (cmd == RSYSTEM_CMD_RESTART) { + cpu_poweroff(POWEROFF_REBOOT); + } else if (cmd == RSYSTEM_CMD_POWEROFF || cmd == RSYSTEM_CMD_HALT) { + cpu_poweroff(POWEROFF_SHUTDOWN); + } + + return (u64)-1; +} \ No newline at end of file diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index b39082d..27d8a7d 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -27,8 +27,9 @@ #include #include -//ipc +//multitasking #include +#include #include "scalls/scalls.h" @@ -36,7 +37,7 @@ //#include -static ulime_t *g_ulime = NULL; +ulime_t *g_ulime = NULL; #if ENABLE_ULIME extern ulime_t *ulime; @@ -47,6 +48,7 @@ extern ulime_t *ulime; #define MOUSE0 MS0PATH extern char cwd[]; +extern mt_t *mt; // fromsyscall_entry.asm extern u64 user_rsp; @@ -640,6 +642,9 @@ void _init_syscalls_table(ulime_t *ulime_ptr) { ulime_ptr->syscalls[MMAP] = scall_mmap; ulime_ptr->syscalls[MUNMAP] = scall_munmap; + // emex specific + ulime_ptr->syscalls[EMXREBOOT] = scall_reboot; + log("[SYSCALL]", "syscall table initialized\n", d); } diff --git a/src/userspace/Makefile b/src/userspace/Makefile index cf9f7c4..30477cd 100644 --- a/src/userspace/Makefile +++ b/src/userspace/Makefile @@ -5,6 +5,7 @@ all: @$(MAKE) -C apps/system @$(MAKE) -C apps/shell @$(MAKE) -C apps/login + @$(MAKE) -C apps/gui @$(MAKE) -C bin/echo @$(MAKE) -C bin/hello @@ -13,6 +14,7 @@ all: @$(MAKE) -C bin/cd @$(MAKE) -C bin/cat @$(MAKE) -C bin/lsblk + @$(MAKE) -C bin/reboot clean: @$(MAKE) -C libc clean @@ -21,6 +23,7 @@ clean: @$(MAKE) -C apps/system clean @$(MAKE) -C apps/shell clean @$(MAKE) -C apps/login clean + @$(MAKE) -C apps/gui clean @$(MAKE) -C bin/echo clean @$(MAKE) -C bin/hello clean @@ -29,5 +32,6 @@ clean: @$(MAKE) -C bin/cd clean @$(MAKE) -C bin/cat clean @$(MAKE) -C bin/lsblk clean + @$(MAKE) -C bin/reboot clean .PHONY: all clean diff --git a/src/userspace/apps/gui/Makefile b/src/userspace/apps/gui/Makefile new file mode 100644 index 0000000..e46a1e2 --- /dev/null +++ b/src/userspace/apps/gui/Makefile @@ -0,0 +1,27 @@ +CC := x86_64-elf-gcc +LD := x86_64-elf-ld +LIBC := ../../libc + +CFLAGS := -ffreestanding -nostdlib -fno-builtin -fno-stack-protector \ + -fno-PIE -fno-pic -m64 -march=x86-64 -mno-sse -mno-sse2 \ + -mno-mmx -mno-red-zone -Wall -Wextra -std=gnu11 \ + -I$(LIBC)/include + +LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld + +all: clean gui.emx/app.elf + +gui.emx/app.elf: gui.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + mkdir -p gui.emx + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o gui.o $(LIBC)/build/libc.a -o $@ + +gui.o: gui.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(LIBC)/build/crt0.o $(LIBC)/build/libc.a: + $(MAKE) -C $(LIBC) + +clean: + rm -f *.o gui.emx/app.elf gui.emx/package.info + +.PHONY: all clean \ No newline at end of file diff --git a/src/userspace/apps/gui/gui.c b/src/userspace/apps/gui/gui.c new file mode 100644 index 0000000..32f6d67 --- /dev/null +++ b/src/userspace/apps/gui/gui.c @@ -0,0 +1,83 @@ +#include +#include +#include +#include +#include + +#define T 0x00000000u +#define B 0xFF101010u // a bit lighter than black, but its lit unoticable +#define W 0xFFFFFFFFu + +#define CW 9 +#define CH 12 + +static const unsigned int cursor_px[CW * CH] = { + B,T,T,T,T,T,T,T,T, + B,B,T,T,T,T,T,T,T, + B,W,B,T,T,T,T,T,T, + B,W,W,B,T,T,T,T,T, + B,W,W,W,B,T,T,T,T, + B,W,W,W,W,B,T,T,T, + B,W,W,W,W,W,B,T,T, + B,W,W,W,W,W,W,B,T, + B,W,W,B,B,B,B,B,T, + B,W,B,T,T,T,T,T,T, + B,B,T,T,T,T,T,T,T, + T,T,T,T,T,T,T,T,T, +}; + +// saved background pixels so we can restore before each move +static unsigned int bg_save[CW * CH]; +static int bg_valid = 0; +static int old_x = 0, old_y = 0; + +int main(void) { + int fb = open( "/dev/fb0", 0); + int mfd = open("/dev/input/mouse0", 0); + if (fb < 0 || mfd < 0) _exit(1); + + for (;;) { + // wait for next mouse event from kernel ring buffer + mouse_event_t ev; + if ((int)read(mfd, &ev, sizeof(ev)) < (int)sizeof(ev)) continue; + + int nx = ev.abs_x; + int ny = ev.abs_y; + + // restores the previous background before moving cursor + if (bg_valid) { + fb_rect_t rst = { + .x = (unsigned int)old_x, + .y = (unsigned int)old_y, + .w = CW, + .h = CH, + .pixels = bg_save + }; + ioctl(fb, FBIO_BLIT, &rst); + } + + // save the new background at new position + fb_rect_t save = { + .x = (unsigned int)nx, + .y = (unsigned int)ny, + .w = CW, + .h = CH, + .pixels = bg_save + }; + ioctl(fb, FBIO_READ_RECT, &save); + bg_valid = 1; + old_x = nx; + old_y = ny; + + // draw the cursor at new position + fb_rect_t drw = { + .x = (unsigned int)nx, + .y = (unsigned int)ny, + .w = CW, + .h = CH, + .pixels = (unsigned int *)cursor_px + }; + + ioctl(fb, FBIO_BLIT, &drw); + } +} \ No newline at end of file diff --git a/src/userspace/apps/gui/gui.emx/app.elf b/src/userspace/apps/gui/gui.emx/app.elf new file mode 100755 index 0000000000000000000000000000000000000000..a751917fef2ea8ec0413cb2b8e41e0d63aec974a GIT binary patch literal 11888 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 HDINcB0ItmQ literal 0 HcmV?d00001 diff --git a/src/userspace/apps/gui/gui.o b/src/userspace/apps/gui/gui.o new file mode 100644 index 0000000000000000000000000000000000000000..69f64a870daae3596eab79db1d4f15e1f865b409 GIT binary patch literal 2688 zcmbuBO=uHQ5XUF2w$;|UwH_2b1VO1N+g1_$fKm;wji7=;Pl9oitTxazA=#Ex5QU(y z#7YhxJb3UT^x(mR2Nh8dLIg!TOOFZ_6e{-6Lov?m&ZOJNrad_D_Ragf|IC|xd3nh# zb#A035&^LY48iJ1D8TLZRe#uXhoK8PVJz-`kC%Vu-w=CCj~Db_&-{eXIia^NSOw0nsp7}xdc9u#QU6=7V^YH~ zs9V=avyqPG$=1_}W<6a{(@dvp!gOI8UDr$#)CD!ZvP4GLk&eqUxGC(Uvgjp+ir+Cd2eeELw{)`qx>%kTY zjSjCLFF$Wy}<$rV7Pe zA(1aZ@_M3ZP21E@TN9ZygXDjyf z&ayANm=o*7wn7IMZ9j9-zvO-CZ=#O}I9)W7=SqNY3-B4{E!ekWd&>FC8kainXO91p)}=MXhM4Q? zMp;04s5Q(i&SV`c31-nL`2Dze1$)9W9lPX!nYJ7Y%w(|$W+CSfQn_r_p2Rs%W{)SX z6|Ah?$orp86yxbt^m}3$8JT=<{E@E}pZY!6Xb*<51??(d1&#g1Nm{3aMRI-*Fb|#q zlFah{vb@ph_%O~;PCdTL!q-|rw2{eo2C*Z_n$HTy68~|7_!AsYcXQA#b3wg9h`ywg zew3NMexBp$UJ9D*pRhCNgzdk<|F>kH>AwUai5DLB?v#6u*B|FX={}*R$5UQ??-7B) apZ{4J1Wevr5d98>#rJXj7e&au9{&$R$d0uD literal 0 HcmV?d00001 diff --git a/src/userspace/apps/login/login.elf b/src/userspace/apps/login/login.elf index 06a50c74e92852bc80612316187804c797373e0f..4162f16bb40914980b4036920164d49c7a6c88ec 100755 GIT binary patch delta 3161 zcmZ{ndvHuw7{Je2SrWu%ZPLx|<{^SS2vU&G*Y=nq3COBtyW=yGc zw7MN_l})~Rq0n-bwz5@)O4UcjPyBwx?Pyi_*+vMx9SnVF1vmHPR;8+3^Qmm~U~-=w zl6me1-A;pB3$OM(3X&s0JdcCT&#Z$PYjU*X7@N}}g{MnWV8|b0A61UJqq$&Ipa*pF z?H4zVL;F~QUfG&gd9mN`f7Wq|$myBO2a3|3X6Ha~S73H4{`ULJy(O8RVZrz>EV36c z%ay7H;F%t@S3y%Vv}Aea2I)IMTSBT~ZZ1bVca^s54C}ss>i2spf-aLVPzOUkc}(1j z9w_om7M?0zHCYo4{c!OdKE>rVD6Z?Ru=+m5t#9j#({!{c?x?$>#+1ZQ3a=?DWFKJB zkYN!IP0xqc;%s3kmcd>kQFKWhvx!_zZeX ztL12mE)?U;JG*$YaV;;4r{*|*NyJ7c^9y2hbX@*An8V3qm`ZWo355hO8W<5Q{zME| z^uOjQXdVw{7+It^8g1a?#i{6{{DCO9*!h0ZXi4WQM4ROj-ywdq=5Uh;w^@0iNVXNF zJ&9%PIfz$b5B)83U@1-lQL-Jr5-T*02O8nf@QB^E99|)A*>>|*Q5Dm~r@%d4l*E3* zUl-=MCVoa-i*xd^VpjZBzEF(pb%uNEyC+Q4@%{D1iPuB<0+BbMl;0Je0U1&1A5b+| zxDAJ4-{k7;6rpJawpnPw-D^047JTxJ0p`{l#Qe0>DC@J4n!R)Vr)foa^otW>)tgIcQEP%Tu4pqj7dpej};pqi@ALRF+LK{ZA#MOC0yqRLTgP-Uun zPz_QKqe@m!ph{4GMP*h0OpXL?QdtV9?y3=$UQMlcr(ftaGA;zGM{h<|?p+$A)phet z7$8uN)aB($rT#IL6Oj9$42RfiZ%Hp`{U){!ji2ycfGv$un)Lgig(4G`!4o)c!)PeD zmY&d9j}4i14L-W{PEh}5T_VCW5&Srlas?J)lg12+%>6&drz<&jFGW$ z2y0S9{FemDM-jgc?+E%AlYbHM8K8|Yqvaj)Zb>RzTOTn8LRZEu+kYZ}Ey{1I*7TN1NG;&W)-rz<;l@E5WiIg^^a8Avm@OdQm9hoi^2Nj-Q134CUrs!vyUgE0 ze3j%*whX?dkWC^(IR)GclYAYtQQX9j)0m3uk0rCRFMBR;w9Sp zEno~k3{ZBF!9z34k(kW`jc3Gr9X5I|`S0r?J6J^i2Z`UO8Sf?T5oLC>^9Wg&bvO_j zh+C<5_-4@LIPu+dq75OwhIkPz(=_7Wg2wu8p!{ayr=`D>O`|${fehy;Q5@A}plp67 zUe=*(YKZTpj`JzcRpP%>9_;`D+il_>Xz#b!m^X?KuD_VqPq(3<7e6Hu3I>JYS3YJr zE2b7?g#~_H>|!&t;QxSTs}Pq9a-%Bnvk$~hKLqf#&Z0${qkq_mJk7xFh}n)T{*~D5 GNcso#m~JNk delta 3132 zcmZve3v82B6oBvT=;(M@wyue)t(iU@!#?GE4*oL5v#?b(EzH zY3g+23Ym{&fKeU-VoKl#W$i#22nYrP0-^%}3q>=d!iy-w{`1A4!Wz4;^fn?$uBg35A-3tc2wPBY+ z3^c%&j~x~k%Oq|WPg(4#!Qogq#jiSjX4To*1(o-!ZlfQuOX*hK)=Q$rlFs)FpT%lw zmEPSV)?yQXT1J~1@U(Ct04$;?ege-HE8{cGv!WQQR9)BPC6s&i#+Mp|-I6W}Y-h6D zux{RbEM6CEaqeOCRGqg>uDTw#(xbLuZO5beTQO!(20ta{4oc!K_)dtPfp`%PW1hs} z6i5JT#}BCN)K3ACQ*|yb4?4iR#Rmz+e4n_Kkjv|Z*?yL97uW5DgR{D!ja*76G*&08 zNpvf>;4YRyst)6HQIuGbb8iS^10jzFw-^jO0|hw^M9o+H)pnR14^8^RXu*+xA~3gcpjercWwqWP zsoS~dU`|Dpqa6ZnG~#)V;mC=j%PJr{V59U1#wZ z^)}ohX7YjkXvn+9s&*Ln!VE<&Q4b^4?J#}>RE0(l#6ds{PUM1(ICLA=fckI2S~% zG?WLe#iXZ+`utX2D^kX#uN!A7`8`^i)6oYc4?YIQ*`VH%kJ2e)1;i&2A49xYY|6Jm zqReZi|4-B}=Ke$~2INkIaL%GwXmkQ!Wz*WtHg4a_;~#nw_C;BP<|H+;u|<^91j79Q8S2;zrRB!86nMffeD z|77y7AU+FpEbRQbi2U!#Jf+N;EEDxN$cPW6f%Qp}9Oo!E;e!h_Bub7YLHR_yG~Sl5 z8%D8kj8(J@bhIve#isE#$LBD{*r9Y8*-%4dFl$ce4##>z$ajRR%zvThBs~5?Cr{r1e`+m}} zgADkujK7TyRPWG_a*t>)woTqo)+kyY-Vk)be{hUyqUX}X#OsL{P*LU(-zQQ^Y>p#j zeUzFC--b|567Nk-7;2I;#1}>Mh#e7C{O6Ya7A*lucX`)T{_Ir++-9P zWkb0~OfDN0gKzJcz$fa<#>RyH3r34}n87Q*ZmShsDYDk$+Z{*-J+|R3oY_RBk{z?L RL^rTsgi9IA-w^Fe`o9V~jivwq diff --git a/src/userspace/apps/shell/shell.c b/src/userspace/apps/shell/shell.c index 8cab739..5a226bb 100644 --- a/src/userspace/apps/shell/shell.c +++ b/src/userspace/apps/shell/shell.c @@ -15,6 +15,8 @@ #define SHELL_CONFIG "/.config/shelly/" #define BIN_PATH "/bin/" +#define WELCOME_MESSAGE "\n\033[0m Welcome to shelly, emexOS's default shell.\n Type \"ls /bin\" for a list of commands.\n\n" + static int parse_args(char *buf, char **argv, int max_args) { @@ -56,6 +58,8 @@ static int exec_from_bin(const char *cmd, char **argv) int main(void) { + printf(WELCOME_MESSAGE); + char buf[BUFFER]; char *argv[32]; diff --git a/src/userspace/apps/shell/shell.emx/app.elf b/src/userspace/apps/shell/shell.emx/app.elf index b9f7ef86e1bd2ca8930f1653d82ae9c3e803b9e6..cba027aca2dc1a5b989ff7280d089ab5ade4e522 100755 GIT binary patch delta 3237 zcmZvf4Nz276oBttTm?jz1z}MT-U0$U8ZaihsOaiKu9~5!nU*H%lH?*LFr%ikgQ$u4 z2iJaeOv@kAa>iM8o?859Ni;fPW0`4+j^*mw4COdtQ_(r^o@XP|oq2oi{m$P#_nx;4 z8#nR#8ooV^*Vo!cgxYOP8_(OsQK#kT_GPBp?WVf$D89lM9d6?Mj7Tv%Lz+^U!&Tkl zuM^A7$-G3oYqo}*Bjyy%=7b?Hm>6q4JJVJDi>vZ}xPh_8HqfgW+h3dr%fYGoa*p`h z9K&B1(GeAVwb&eC<>}%`gc82d3T8P^%vSoYM-&Bl3jo~R0%6oSIIF_ha+n2HtD8|& zsJl=sRga-~O>ICiU;PfnY_%Olf%*rE$?88Sa@Ei@5IJgp6vI^;iVW3`B2Ar$!m7?i zF+ijyGYt;A)RT8F}@9`;?1z7#ZeRXk&^8e%KXRIY$NCtlne5I=384lANuEymuk!XYD7!VE0`90;O1uQLzIxe z@bB&F>VkcrM^#OpAM%-8RqY+H2|t88ju`gis);%z*2Sg9ZvcRP+O7j8Z~;@JM|yXP zZ!H$l9_KTa1~G>H(a14Jq3@%C;|(D(uIe=qG|w-Zvm(WhmcHV2mP?FO_VsGaMzbs8 zo)XW05Fyqyeo0KT_U}0r@m83|^HL4WLNHZqv!?K=;)HdS!DbN;tlt|7qQy6fqvMQ^ zv6#GeSJj$!RuNm1cOUwAL?mM^#>XNtsoB*G3M_yMmjQ8Q=lRPAz+#EM z=mU!)u{SA)uM#(s4)R+fe^7!rkX+9v!mOFUB+Mx-yir_9S;*ImoYYu8R?JSl&gTnz z+6CU`>uH;A;7z_cgWH4oTrq0c8h%5Z9H!X(H*te!;1D`p)#v2t913)Gox*c!Xn~fK z>>Xjq%3QkbiM1cC;YDNqX=shJhE}xJSPrlnV*{Kylsn~yb_Q@|n4`r%=}8bRrREU! zbV`kNialBT`4#cpaEJFjAo7Te+C{gXWh`Ss@zM;I?)DTxau}hpFK3o0v)rDAr6q2q zyi_S$?Dlw84pH1C?iKmdQ_GY^?xMm9Pq|d2hbl8xE^{l1o-zePB`QUw%auaKQ(RWA zlolxvrKE7_qO$bRQ06;4{2}kx0rhE_Y*L1UtgVa_ZT7_myG@MDPPg?9ld4qBj<)z4QxK-!QoFwDFZS1^lr z5v({1V*2*ONxOtN)5{@VMjXpSq}#sOuBkzl+Ou zGp`l3*$LkBgZ{ss2gLPy-UrVJhta2zM$LHoDq0+TfguL4Lj z6z`%V?4fZlV_%X(Tell;B|g+F6AacI7;7WmK{pFu2imwyd|#Bb?}x7|jGy7b4fUb| z=4q6%+sM737)nR|0V%H0(FN$}CJ+yx1K1z1$OK8mJBVjdqwgpFi1?=d(mpm+DmcYI z(1$soe#ZJr&U%sJ7$^{ZK^62R{!@tLd1N20b4r{~{Bz>X-QEd5@eS0iFEXa(X9G#m zPE9nE0wojwi|)9D_z>cA>1q;)yFp@eDRjqrZw&?ea5y;_4*bwZHi!Ipq^;eK)IkXn zLZ!nR@>ol}u3Kdji1(%w5@erGypRf$S8MH`BTHI5SE z1@zWzmY9_jH&T543u7hmtYBG~w~8DpNzn)XzCnb|hT|>br+Q01Lt?g-_#;YyYaBa> z2h)ZoNz8T<|CP%)R%!2Ldq}Z9QYto*!$IOI?Q}ZvBg9Wp;vC}TAo1=qyWRb9Jx;WY zUrP3;HSXoClPdm{6kn4=EnR{BexD)!Mz=4P7UEH~A^3|*8yAQNddkGl65mEV5&j(3 z`hN~7z5s4H*|_5P8ld-XMyd84>tD0J=8~$4|zr264!l9-{xIb%>iz?cWIp zD(%@KF?URq9e+n*IOx^v3G*0HkvlkK#W+pD9*R$LM}(Bn@5nIGY>yPHonik1nm%CV delta 3086 zcmZvedrXs86u|E-pcJd6#ZrXws6Z)Wf<^{*3ggknin<}r*EEXE`HJs}e~A@w##)`= zb-Jm^oJONl7fmrd&*+7n|wX@{?57QoO|xQ zU%w+hzIh98wDahu?7|qu&eV3zE+#q6ry5u2n;P{yVoiLJKR#B^xnI}}<=Xu=R^s-y zbvB4qh73Mi>^4}nhl%Bj^M=%9yPmNt7pJ(rzq#wXVl|949|OIDzB|i>&X~a86q&|a z?h|{BR$e5|8q;D|TEXmWpIMFn599m@&rJYNw!u851A7hFdj`G0T1A%yqE@k>Sf=Eo zSfCW6s8*^_%uuRPR4J=aj91p7a4K6+6e*veC{T`~$Ws&)cI65Rt8xcLqViYPV32VN zw}a3rMify>j{i~o4-s!@Qy6pmqBJNzXsNZRt9$Yg5(L_n45FchyS-5lux)_p;y<^u z#KNRh+n7FP28&!Y+*S#xn9`x!%2;3k1d9_Vl8#u`SU?Hc$DhN%%{ut${45v@Lf$jQ zN=v-Xi3Skf?K3%quwl818>FN0$}; zQ^{o-@z^{_B&T)hWH1M6x<#xth2Ic)Ry%JOjj1NF)T-rPwYL>|i`CvS=#3X&S#9up z+d5j)9xsLr{ZZ3n65T_`aEln0p2$BH?)0i*6HJW7V|uWNV4w!p9}mRsaCNRugn=P6 z7zhKMXiG2Z-}E9F^tpP)th6Ly%h<&4h!YuY+zG#_VrS+7K3Npn+V~j}w7r|W?%VW9kEt&6srSNY)cm-sKiuEKLK{nM}M5SY)MzM=C zj@<0v0BMq?I$*3ABxjMVg{DLkcZw0CQ%mpYU$&kIS`FIAN}fm7Rm4XU&nG@jOmdh# zb6~_-1Pi4XOWOIwL+OV2GUAv%nuhoq=wtNL36g(-N@#WPaL`ney+NgnZ3G#~{uI+3 z2EG;7<2ju9|LeI$6Sosl| znTLhSdk_>jp*>PM8mK{Y#*V{-d}@T`Xou}NJjgxil2219V_y>AL>rYs{2P!4So~!w zNu@V=o5=V=1GTGaL}ah*X1$RU1}_$As|xXfz1Nqn72+7HId1np;dFwq{3t}3`4}k*FSz3XX_*JdsF0wa-I0b%-_}9dDh24o?iC5EUoyr&Itt0TT3 zY#C+5d!wbjkmjs{conTetu5%PB=@k|uykk8ghZNrlGBDaT=Vz;|4!F0&9z?`N}@cvTR#B#9=%h+ROdC1 z&f_oiCSPIls%Kze&`-+D(`V32%}E1tfPhOn+8|dUJT)gdKQ~pOBwwL8BQ+* zH?_h)SiM*wB{eOvG^Ye2p~s~VQdy9ypp;Xr05VERAuYd1AyFYGv$#YdKTQE>N^W9a zO0gan7X!%T=z?SikV*N)u__9at(bKtXE3KQDo#Gj{F_m6^GOzSMn-|jjBN7t&l#ca z0a7eLoDJbJe1wXF#JGU?&wmKuVuC0DiE|@~A4U>KR(}F24iW?DsRd#XxC9a3oX;l6 z$oO`0BfB~04pxX%#^i(S=1jWGlOHmRO%~wLfH4C&G&l{IA!;T~X5^HgynsW3@zCU* r9QKSiCjaEHXHsCFY{hBE6u>gMiqnppO?j2!X+Odp0( delta 251 zcmX>gxO9 zH*>O!Gcw+rtjJ-`>A?ySwV0g9Va_DSJUNg>Z1M&U4H)wShX$t{GenKi^V=cL39LybN~Pv**}Q@ diff --git a/src/userspace/apps/system/Makefile b/src/userspace/apps/system/Makefile index 118cc86..a44b9d3 100644 --- a/src/userspace/apps/system/Makefile +++ b/src/userspace/apps/system/Makefile @@ -11,10 +11,10 @@ LDFLAGS := -nostdlib -static -no-pie -T ../../user.ld all: clean system.emx/app.elf -system.emx/app.elf: init.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a - $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o init.o $(LIBC)/build/libc.a -o $@ +system.emx/app.elf: init.o emxrc.o $(LIBC)/build/crt0.o $(LIBC)/build/libc.a + $(LD) $(LDFLAGS) $(LIBC)/build/crt0.o init.o emxrc.o $(LIBC)/build/libc.a -o $@ -init.o: init.c +emxrc.o: emxrc.c $(CC) $(CFLAGS) -c $< -o $@ $(LIBC)/build/crt0.o $(LIBC)/build/libc.a: diff --git a/src/userspace/apps/system/emxrc.c b/src/userspace/apps/system/emxrc.c new file mode 100644 index 0000000..5ce9fbe --- /dev/null +++ b/src/userspace/apps/system/emxrc.c @@ -0,0 +1,141 @@ +#include "emxrc.h" +#include +#include +#include +#include +#include + +static char buf[2048]; +static char *tp; +static char tb[256]; // token result buffer + +#define PREFIX ":: emxrc: " +#define CMD_PREFIX "-" + +#define VAR_NAME "var" +#define EMX_NAME "ep" +#define ELF_NAME "elf" +#define EXE_NAME "exec" +#define FMT_NAME "f" + +static char *tok(void) { + int i = 0; + + while (*tp == ' ' || *tp == '\t') tp++; + + if (!*tp || *tp == '\n') return NULL; + if (*tp == '"') { + for (tp++; *tp && *tp != '"' && *tp != '\n';) tb[i++] = *tp++; + if (*tp == '"') tp++; + tb[i] = '\0'; + return tb; + } + if (*tp == '=' || *tp == '(' || *tp == ')' || *tp == ':') { + tb[0] = *tp++; tb[1] = '\0'; + return tb; + } + + while (*tp + && *tp != ' ' && *tp != '\t' && *tp != '\n' + && *tp != '=' && *tp != '(' && *tp != ')' + && *tp != ':' && *tp != '"' && i < 255 + ) tb[i++] = *tp++; + + tb[i] = '\0'; + return i ? tb : NULL; +} + +static void skipline(void) { + while (*tp && *tp != '\n') tp++; + if (*tp) tp++; +} + +int emxrc_parse(const char *path, emxrc_t *out) { + if (!out) return -1; + out->var_count = out->exec_count = 0; + + int fd = open(path, O_RDONLY); + int n = (int)read(fd, buf, sizeof(buf) - 1); + + if (fd < 0) return -1; + close(fd); + if (n <= 0) return -1; + buf[n] = '\0'; + tp = buf; + + while (*tp) { + while (*tp == ' ' || *tp == '\t') tp++; // space or tab + if (*tp == '\n') { tp++; continue; } // new line + if (tp[0]=='/' && tp[1]=='/') { skipline(); continue; } // comments + + char *kw = tok(); + if (!kw) { skipline(); continue; } + + // var name=("path") or var name=(ep: "path") + if (strcmp(kw, VAR_NAME) == 0 && out->var_count < EMXRC_MAX_VARS) { + emxrc_var_t *v = &out->vars[out->var_count]; + v->fmt = EMXRC_FMT_ELF; + + char *name = tok(); if (!name) { skipline(); continue; } + strncpy(v->name, name, sizeof(v->name) - 1); + + tok(); + tok(); // skip '=' '(' + + char *next = tok(); + if (next && strcmp(next, EMX_NAME) == 0) { + v->fmt = EMXRC_FMT_EP; + tok(); // skip ':' + next = tok(); + } + if (next) strncpy(v->path, next, sizeof(v->path) - 1); + out->var_count++; + } + + // exec -f"format" var_name + else if (strcmp(kw, EXE_NAME) == 0 && out->exec_count < EMXRC_MAX_EXECS) { + emxrc_exec_t *e = &out->execs[out->exec_count]; + e->fmt = EMXRC_FMT_INHERIT; // fmt == format btw + + char *next = tok(); + if (!next) { skipline(); continue; } + if (next[0] == CMD_PREFIX && next[1] == FMT_NAME) { + char *fs = tok(); // "ep" or "elf" or whatever + e->fmt = (fs && strcmp(fs, EMX_NAME) == 0) ? EMXRC_FMT_EP : EMXRC_FMT_ELF; + next = tok(); + } + if (next) strncpy(e->var_name, next, sizeof(e->var_name) - 1); + + out->exec_count++; + } + skipline(); + } + return 0; +} + +void emxrc_run(emxrc_t *rc) { + for (int i = 0; i < rc->exec_count; i++) { + emxrc_exec_t *e = &rc->execs[i]; + + const char *path = NULL; + emxrc_fmt_t fmt = e->fmt; + + for (int j = 0; j < rc->var_count; j++) { + if (strcmp(rc->vars[j].name, e->var_name) == 0) { + path = rc->vars[j].path; + if (fmt == EMXRC_FMT_INHERIT) fmt = rc->vars[j].fmt; + break; + } + } + + if (!path) { fprintf(stderr, PREFIX "unknown var '%s'\n", e->var_name); continue; } + + printf(PREFIX "" EXE_NAME" %s (%s)\n", path, fmt == EMXRC_FMT_EP ? EMX_NAME : ELF_NAME); + + char *const argv[] = {(char *)path, (char*) 0}; + char *const envp[] = {(char *) 0 }; + int r = execve(path, argv, envp); + + if (r < 0) fprintf(stderr, PREFIX "" EXE_NAME " failed: '%s'\n", path); + } +} \ No newline at end of file diff --git a/src/userspace/apps/system/emxrc.h b/src/userspace/apps/system/emxrc.h new file mode 100644 index 0000000..d87435f --- /dev/null +++ b/src/userspace/apps/system/emxrc.h @@ -0,0 +1,33 @@ +#pragma once + +#define EMXRC_MAX_VARS 255 +#define EMXRC_MAX_EXECS 255 + +#define EMXRC_PATH "/emr/.emxrc" + +typedef enum { + EMXRC_FMT_ELF = 0, // plain elf + EMXRC_FMT_EP = 1, // emex package + EMXRC_FMT_INHERIT = 2,// if no -f just use the var's format (ep:, elf:) +} emxrc_fmt_t; + +typedef struct { + char name[64]; + char path[256]; + emxrc_fmt_t fmt; +} emxrc_var_t; + +typedef struct { + char var_name[64]; + emxrc_fmt_t fmt; +} emxrc_exec_t; + +typedef struct { + emxrc_var_t vars[EMXRC_MAX_VARS]; + int var_count; + emxrc_exec_t execs[EMXRC_MAX_EXECS]; + int exec_count; +} emxrc_t; + +int emxrc_parse(const char *path, emxrc_t *out); +void emxrc_run(emxrc_t *rc); \ No newline at end of file diff --git a/src/userspace/apps/system/emxrc.o b/src/userspace/apps/system/emxrc.o new file mode 100644 index 0000000000000000000000000000000000000000..f1a9aed3417fe1e13f7118fb749557a2d8368284 GIT binary patch literal 6040 zcmbuCU2IfE6o6;D)|Ta`6(yK}af1S_NCl%9DnAS5%8iH?OryphT(-B+wB4?|ccBF~ z)GSr5Yq9Y`t2}6U^98GkrfCRnAYp+At@L9w?XkPM8Vorxb{HWFV}(|;1p&+;<4 zQm}z$@Vp2IXIksiMRR^Z;i<(Nz*J&A7XTzNALpwOFqWH+icx`UusI4O3?0>dUNcs z)C<^RD!4}*Z9|gP*$+v*db?igHQGz0-ZFds%c=Ygm}||6$7g0{e6}4qkm4GSqV~_JZ1K0@Of?)(zDrgQX{6595&ObVFsxMGn$!b_hTfD;auO5SG=6Z zUS<$`*m4HXY~`(yvnV#59G|QUZRQwPGse}?nJUK4@_vr6n@(M2z2u<^Jb;?x3DYT; z9VN-N3Y55o{4sOh9)qokQIJt6|MM||gR^+{*ol2blenw*B}L++1CIpUo*NL9jiBkS z$j{7}jxi458i#PXFQDWuZo?So>xE$O1@~ub`u~DS^T_pKyf*Spe*>jOXbzd}W83)Y zFosRv7#P0-(kr>XkQaI8e*7o*IR-w*(C5#8fzJ=UA)vc+Y;-f4bUqiZ-98xM9>zZh zys^_TcAD91!Sb{+OI)yUhaTM~9Ji@t99J<1%n*(ro#Eatn9dh`p}>YSe1UjC3)wMI z?agp@RDLN00P~5W@@)x(sB~nvnFE7aFV8447s33+Tqp$bX70&9cvz-jX;T=MuVHH@ zhCDMA5DZ*bAsE_zus_<^iTQ*z1_GI29MKvMSzP}#AFIQ_>xtl zxPr+_UV)`4nBixLikcpUQ0EN1-5JzbUJtZn&4Hbm4=}2b_>S>iI`tjvy@OoCET(3= zPaAofIBv~)BVY6Sn{bQ=2QQrm+XupNX2qD*V?|hFW6H{io3%7S#t&KF0ZEtF74AyObyrn+4_Q8hx8`j{8n0Q9` z4((>Xo?73Mc~#Ye5bdQP!w-vziN9q*?JE^c^KbSyRa^ialx;vEl&A2IkXP(RF(3OJ zawxCEty_@$U-gUeN4S)+*D&?Pcz?f-8z7llq3TWSSG){n6@S^65@UWCp_VxSd@`^0 zH0BFVeX3Y3@t^=W5h%C9S0VZ3u>!W3xajj30mI^Fh2Itrz~3Nz3&GBN7;7jzW>DV? zANp3yS^(wvIt|CYDyQG1;X8oid{*5I4Jdq%pl*S$oE_Zja{PG>Z`E+dGru9i_9oky z9b@)hW_Ne6L`Qq9vps5g;ytl&JYli!m=$GlE8NN=o!!t+*zrhL46A4))=R4KWE4oN z6_2yFSiC)IxA8-Ez=8=t5&4f{$285u0|LvPUIlww%2#Ok0~)?n!<#jHzlI;u@O}+H zq2cdn_-W#Ep~g6fJpV+ae_q4C)bQ^${F;VOYq+1zojT7s!~-x+p8q1^>OS73;cGQ~ zvxe`~@TWCAtnj6DpX}4{F5>FCdKG<X!uVWeqF;W za08*J`&g^t_Yqgu`!I1ep1U-5p40G%hQFlYM>Tvv!-q8dI&u6(!?nQ!kC&S;>7j^q zc|Fh}j{5W96Z&-$$KO1`n~00J2|GK8qkC*l(>?iwM*mqwU*u<-hIeWBVGVaQ{A~?C zrQxSF{EUWQCysH(H-sp8;uz-z@QHXHL;wY=8u$c%m$ z;S+JYThSNuU#0LmGy>%zh2wh)%NEH#zTt%Zn8fjIAb1~fb^eZGe;XQy@|I*ro_~-_ zy?YF8i4vj)GW^85@kND;_hFyH#XF5PBzn8-@Ls6xxL5BNt+>@0Zm_K$n>DnC?J#TD zn@F&Rc(>Pyba!=GQIK&pYyY0Mc(}_VH~+f|f(5+VDLo4ILe%<%;w1$1Ga$Nb3AAvp zLj~eBVt7$OiP7(<_pWD*y6kpO%<$cYHtCoWW$bswuMnvIF>lbOI$qp^LHRNOy&!yY z!S_1al=mFvVtg1oQc?Y{2N|+8k`6YXp@m`&%SDVA^>z?qTlFvEHY5**wuqm=TcJ@d z{^R8MMN-5tU`WMy5&v?&aY!}AZJH*E_W*wCcvMqk56JrwgsOvgihsnq1;IO~-1rdv M1F%adQmu~v8>N8)fdBvi literal 0 HcmV?d00001 diff --git a/src/userspace/apps/system/init.c b/src/userspace/apps/system/init.c index 87f162f..8f6b777 100644 --- a/src/userspace/apps/system/init.c +++ b/src/userspace/apps/system/init.c @@ -1,61 +1,25 @@ #include "init.h" +#include "emxrc.h" #include #include -//#include -#include - -#include -#include - -const char* handlers[] = EMRHANDLERS; - -int main(void) -{ - - //printf(__EMEXF_B1__); - - - //printf("[ESH] launching programms:\n"); - - // other initializations... - rc: { - //TODO: - // create file .emxrc - // content: exec emx_window_system - // dir: /emr/system/ - }; +#include - //clear +int main(void) { + static emxrc_t rc; - login: { - //printf(" launching: %s\n", LOGINLOCATE); + if (emxrc_parse(EMXRC_PATH, &rc) != 0) { + fprintf(stderr, "[init] .emxrc not found, using defaults!\n"); char *const argv[] = { (char *)LOGINLOCATE, (char *)0 }; char *const envp[] = { (char *)0 }; - execve( LOGINLOCATE, argv, envp); - // - // load .emxrc and look for login.elf location - // - }; + execve(LOGINLOCATE, argv, envp); + goto error; + } - emx_shell: { - //printf(" launching: %s\n", EMX_SHELL); - //printf(" \n"); - printf(":[%s]\n", EMX_SHELL); - // launch the shell as a new process via execve - char *const argv[] = { (char *)EMX_SHELL, (char *)0 }; - char *const envp[] = { (char *)0 }; - execve(EMX_SHELL, argv, envp); + emxrc_run(&rc); - // - // load .emxrc and switch to ws - // and initialise de + wm - // - goto error; - }; - goto error; error: - printf("[ESH] ERROR: failed to launch %s\n", EMX_SHELL); + fprintf(stderr, "[init] all execs failed, halting\n"); for (;;) __asm__ volatile("pause"); return 0; } \ No newline at end of file diff --git a/src/userspace/apps/system/init.o b/src/userspace/apps/system/init.o index 20fc01406493ca12ae0d592f6c41a9a185d6d72b..8679896045004426d70a189527b901ac661c8721 100644 GIT binary patch literal 1968 zcmbtU&ui5{5T3Nv*8bx8;~-RIMHGdawxXatlxItA4kA@36r_~&y-gcP@=B5?uU-_z zLMw&-DLr~pPZm7+PY8v2sCe;EsPiSed1=V=;=u0Ad^_{)W@b09XP-RoG7QpU&=j>j zjS}tkwC!qQR%wt1Xu;b0VZHk)J^}lT=>XIFFR^8PI0G|Tv9|UJv;^z(U|nZF;n`ju$K5Q+`x^OM2d)@5eui$4Cx(vL$PgaBSC;oWEv!F*EcN&CSeA zid%C}7jBD*`{rG992;Lsb|*4kJtw18F-8V^`*yjoR~W~DY-4&fT-ofJ89EF5AA+9r z(65uSknYls5p{D$nRHXqm{UuA>>0WEH=F4#7-IZFjz2kbf)Q0tF{I8_R%Q5&4)~o8 z_`MD|p`T`r!W!4vx7~n}UN5iPVI(Pv>oN?(iED zWdhGv?V`eg_3}7ANd?~t>EeOfY5Y1s7R{q;kz5MK!GkmC_y=r526$j?5)R8^sxlsp zFDV?c*hBNwbMg7_a&z(6L&vWxymdv zO2?RIk|A`Jsx_N}pf*57|KexCWG-RtMGZMK9~~Ydyycu#5XIssQ~SbbfLF zXt<8 literal 2072 zcmbVL%}Z2K6hEVqRvKy%ffWzZFp4)C6k#AE@^TiIF*a>P>^XC%8G0Y`-m}IC3IoA~ zG0XlGSJkSvvz%p{K&XY$riEbVyg6rlUB{vh-1j@@_s-Y7=iZmr?46EO3Pe&c2?v(2 z0FAB#Jrk=L=!0I!XE(oOUw<3RezJCnM*PXR6XRBXC%a|sW;Z{+Cp#wJkrtcVEe-=4 zWFUTKtjD;OuVaG7UlaVOechvgf0Je3j~w4FssNs-z*7zk&s+Dc+|+})+%T+$$S*Ag z5u}wHq{Fo^Qf}JuA6Gn6IVDJwL)u8SbLnh5aez)ZoV5oN4B#J;xY?Kk7)<1edqe&# zu6}V&;DsZ2sCbpgEI`@zijE3GaP5i*s;UZ46|4jmFDk`ZdO6ogMCxXg?Q4v5{z-nE zdAi25tG)fE++<$-C)vKO@$+n3jFhJvm*lz2y!0b^T;}!s0rPr4&yMhaq4AH{-eA=G zVLG13!L$Hqek61sh^Kx@WJbadHfcD=D7^R^8h?>(nS=OWVqW|^(5BTAGhA~cdl}3y z3Yu6JEl`eaMyeWt8LLG*vcX&qL$v*-QSe`yp3-pX(fdS{xafmh>>o z@p}EY?08Fy*Xz&V|90nBCK5&FMCV7b5-&WJ(Q6|Gb*}$`3>11#lv0mBj@+TMN3O<6 Yhfz<8>|eM6RNBSA;{G3sBcmSw3w6`JJpcdz diff --git a/src/userspace/apps/system/system.emx/app.elf b/src/userspace/apps/system/system.emx/app.elf index 977e02c3d5fa4af5fa4e6a05f5178084897ea7b3..195d898ea195b5beeae3668965c3e061f8c272e3 100755 GIT binary patch delta 5957 zcmZ`-4^&iD8ox6*DkD1l5fDTjbyYwG5yLc*5uJMJu}GIpTT>)376gPD%aSuF{+mV= zeRXoT(^jjsd&~-TS0^$UwZN>*HIG|uwd`7_hhr|C-HKX_{eAa-gTgs`&w20O@Av(^ z-~H~rZ{~&Vrmkm94aw%NyZ5GM4LO@8WP7UFbfol7ykBW`*X+&hX~NMG zIYl^(=rAF+1zeiuvuuS*vmK!3ZS#||v1zmrTAQm)0_E z`trN$7n;0_yKTn@YlWwG?yP;wv|#B|ft z-UG!x0~q?8-P-=vTCytq^zN9UqCLP`*{)P*Jt*5vL0`CazP~^=ceoo4FBI`M}Vg$TZ34vio#M<0}DJ_eM3MM8z<*1^v~vB=Om#1TJoo_Pm@b;p2L`W zt2@^Sf|32sTeF`auLnv8&8#;aL>O6AJ3h;S<9zzqw%v(^3~hCFPsuIGS4YQ#Cis_U z1m)spD*UQW+UcG`fRxI1pTmK@*XE?^62USFBp@Z~^JsP1cqjI&+3mSa^X2>dNTEb6RGL28>%rJMr$I~ZSL;8^X>8gSG&QIN z83W~Z%s6HePJ`XIUY0}R5o8TqnB0S!s2qcqrb8q^i{))?c@1Mqj7J!6kCPJwjBK|# z>7=I%Iw1S{{D4-!m}&xiS^j0i=(PE)uI4kbaTI*-pGfNYoz1Pc`rm~cz0TRqk<;qT za(3Hx?Za+vXu!Fv7UOp9*aNBa!#r1@+EEXO{veI&XcRUTL2vSpqR#D~N?p0%N!?oi zz0|Gt7gD#}zn;1!{yORw`S(z_!2c|D+5SV+W%-+^OZUG^U9$gE>c;x7Q5dEhhvmO7dbr8D@|wh(_}(@x;%+tD@tYv;&>cmYKXZ@FUqj#w#<lF1c)@{bb~f1LD;ees9unfpzny9Zu&}JoSCR!ikdsX_gznq9v3~)R)L$1s;7lw zGzyL_iq18MkH9?(FHS>$ad?bgo)MwH897p4F>RQBdiXmNTV|2yCrCr@#XQ(s)2;SB z_QD)uU)GPtCYvtle~TS$+KqR@z@-FN&@g-%4f9|?KNS_D-xC*U%F|cHjnjh}R{f30 zQPR`C%)+pPFPrqP%(>x(FPntC>-F_?EaTbx+{Kck`soowdH+1NX>p_ zOC-67>C%tH$Anixpv`jQph^EAJ}>RiL6g94QU-%-kj#^~(>0s~u0#+gLc~xIM~CZ+ zMof)5iDS=;4@FuBl-$lP-83#F+v}28%pt~;godG zbG_n-qP0cdNUKPkM$OAfTw;rW`7EdRnFM@1_(kt5q|XO>jYywTA+fJdi46pXlPSGu zT~&Ho(YnW~3h8bV;=z*g64y$*g6!oLE_-o>yZqrPc6W72`C9wKMa2c~GFSCjtB|VI z8>?MK>(a|A)|Ql~6_pi-^b5+$>_v|i6;|7e3rfn0p#MlgnF|)IVnacdD5@016|-mC zrSI8xcez$tUh!zT9c=rg3DuLVg3R3%AbIJ)2#TsfJo6p!9kZqnOljNQ8> zMvt5yp$D?;!)uW}nqC90& zgba+yS8a1&Us)7kMh>`SVRe+UfSXaa1$dLz&VE`8NvnYNI%&PN_ z7{WI*PAiI`2;p9gDQ5c^g}+8jv<5sTa8|Q?lthJi20iE8^E}4Ukm^ZQy3<(Z4~$nv zD11KS7PFFnmF1T({y6$5#O!BZp*o>h$o@2|vNII=)K1_5?hz*jE5-o{3qfD{q|lL~ z@KB+&F#h#$h5v%(-$oyW=``^24`BQp%a7}~@EE5f1<2TRg|hMz z)#$0X8v7O3?fR)Z;ypR6HI&_l@^>fW>v?)LY;7mwU-sMLiy2=zOogknd_LpHcq`DF zQCq2SkNBovxDT_!6P&;0N?w#Pew_mv4Vqdt;|If)<6R0Ck2AiE?T7Zehw&XUuL!4( z6?QP=zC>jx$ap>D5nM^XWc(?{KOCs!p9D?qcZ}aLLgBj^$M=e?ycHbiLK3EQyuyq` z!G?%|*2ws~2@2n-U~z(RE2o-HX=?PZ2vuYRpO@JR7F*C$0R;LLz&ntaCET5)98|Ev zdu(V9Z`#9*f64e2UYgJ*zsUIfFlA>~m{RzH@iYBSohyv5jT0URiH=h8qJtUPTr8Q4 zKhOB{JhK&yzlWY?JcNrep7BnW@8k^8r!2J}7%%0+!Xxt!#tmki?^ldR82^zS=Snj| zgqfA&X}oJf$5aI4mpDT9>;A~ zMO7A5RqIC`hxOI-?B>WR`j&ZVQS=uyMH9)%D9}&Mn`Y;dsGX|<)l}E}j?|-a$Bb=f zsk1Egr#(o^EzPdqmpdso#5MT#!cToMO0UnIY;BaMHHy%zpU%xPpSoNBDR<)k09PbD A3;+NC delta 3725 zcmZ9PeNa@_6~OO)2`adJ3dn-HxC;nz7ptM*$GTWIdG1^gNn_PAGb?B_R#E=cMS=1db=V42+ErL2KdyykxXVL<<#% zyNJOtt~gG+Zz+1Py zR5DE(!3m5FXN3PeuPG_u4P`ZYUc?yhFKf})Lni#wvU1~#I>xX%6B?Y?Gp1X!UCZlB zR`6ciY_-U!9!KWBPNfdqpgN{U2cE{+-%ERJ~h#ZG)jFQ zFHh6IqIOcy@nWZ@B#)O?7&TsQuPEc&D~ogo&5R$c{G;ye)r>#8)>4;iVl3*OjSS4P zlWAgY2PU#GwCM>}$Q_p=198@09COb`rxQ*vpElURd1!5;{m-S0tpr;cikV6tg2G(| zBGtPSp;geiq;@i)bD@-HRISTCQ;hRHRca3LMxJm_)u{IVSNwW)DbK3Dq}_qdNp16g z`Kf27wAY{T9qSI2dUDkLaK~e?VJ)yT-%Uu-Pa(vnC;WHo?rU4;`33tY+BxgkaYvI@ z8@G<#T>nM7_QhE~y6KenUNV(3e&mK{@?*8eSyFTW;=nFLl&gB2;kTkYCHCqfI9&16X1gnqzDH5t=Kk4p_|a7!D51ffofTx-h44Aqb>E zLDIfCrxN7xm#Nh7LfUnZ_E=|OgD$MGG1sF(tp8GMMX+UoR`Qg*8CAdRMHP@cP#ua^%3&j1k zxuo*h1zG?$6=*ux2-)PDpgF}@ayd+w0md532L1W_aF6ON`}j~v4nJor;iDDXb!j@r zlNHYJ6zq>U{01ehk8da`!s}3PZ^+-<-s$UOM}2((pPyNq-Hq<1hP`{5tgJr>ysfP- z#2mh!K1c9mFy!lT_(-7Foj zn%zxJdzvKI}B-eE@rlPLrf>fgU++;&G>mKXB%)&xSEA)38fS*j1o02!0wgOwZt# z!-f5He1VwwU!4UzRj;@7-}HhnsuB%uqzkPb_yVbd2WR;U@r??Faf}xJHuN-1$JAW$ z6Nci12f3QN%AX^SYk?+H`EF?AENz*B{~QNFTHw*Z$Q%>~`31ZICCUP%+YK>QqW2W^j) z`1_!Y0vZFY%@7l;A%2_qXH0Nh5XxP6&^~j8 z;Kg(m{{}pa11_x?Sb^3c_y-d5-Nb)GEBGhzGK;WxqcO;T;6eKkgu?zFe1VM80=7|w z)HC!s@uit8>_WqR_yYMF9yk>2H98aO;YuTi%GF{5Jp3pth=*zK@u;J$Bp#=UR}0MQ zKx6#)!kNSRgP6b}3swN)!j~#*DA2A&rLH1=m?|+q4u0ZUi&ngzc(Yl==VV_Wrh%W) zwV`}i1M$)&!a-euMEnMo`Xvg~Nc;gMR0@5R7l@xL7IA(kFgr**99eXFJ7{2lN*y7G zqr`{PMW7_{wCe>1O@f0M~ini+EiqXIlt61@N3Ur%zFWmz519gwMi7H_vd)6K34%s{S!{;qazQx*t z9UFL&RGS+N^>qgh+dEiWsP`!A>Ij7Ve3$fg`jPfPr{C8X;w#W6xIqMrfp8*h2nePfZSO<7>5I(i8CCO|iFx&wH{g>hJqJjTNeSkxu8gowDz?y7aD%fTf20|CAu3GSHCCYfAJFM;s5{u diff --git a/src/userspace/bin/cat/cat.elf b/src/userspace/bin/cat/cat.elf index 5d8cd1cdf3930c29c0a7f7e0d575beeaaf25833f..4ff1ee4ddffdaaff747f2accc4f0465b20e7876e 100755 GIT binary patch delta 1834 zcmZ8iZA@Eb6n@`AWrc2~h09$LT96i6J}iEWxdenwJ3BB+bwt=gvL-BZI)^6mV^OTL zbFRTH&a*@fL}3v#6QeHOmN%%tVkS#;{xF@J(L|TPC?QKAbJ3_7p3{5ElAh$==iKLc z-gC~|`_Utj>Bu`ilL#EIZL*B$A{}Q=?~NA9%ZY`;ol?FIK}V~}ZciL`d?H;QyAbi< zY;15=9O#~KqJ45n6Kzu_%u=sFd$CvRvI#LENy#tCD4XF>@dmjJ6U9BQmO?6#j14Bm zfoCSnWVEgtPr!YeSKGf1OW+|U9jnR?cwX}s+;P^zu;#7KC1(*iD_5OMYlWBz{zfAV z1(Wfa)CIV%x#f7`u9EFJ(GBQZIEtETp)5vO7iNpEs(yk26(!iO-Xqwf#t3$)vjjcr zTY{(5Wr7ZMjo?vrgP=wIN6@6KIzm9*P2f}Y1eL0dpj371#fU|!k1nlhfWWMdC2lyA zIS>D85h65XP7=I1Jy51_G_f#?CuApyjZMo?+?+6cpCQ=Ji9^#bSD^kOtdzUMuVuIa zEi_}^hgTFvp@W#AaVM>g2mfAl;KdVkVN`vD(jjv*!kw!3Lchyhy>6A$(ILoqv=b-M zZmkjGJ0TVeu-P1(ah;MO=yjKR8jueS1yfks7K;6`g#A*uvV>@C9U9UK*1)j4x^zBI z2y14-MH{X`ulW+PP*LuLKiy|-{W(H(h2nElbU#y(gsRwLvaAoq2eD!>1us<4%ex+z{2AOHpG-ms^JB0F&;4-N`|%*&R%GxsX;z31 z=9`!gFyG1iZss3kz6&BgxBoUi8AN1P@#5=6e5Oh-jMeCJH&ps{=RV{eIKf<=;aO`U zrw{`W_Uq9>%t#&Kxjku3h&K@JB1e3QPajdabiz1-2l=mL?UP;>;y3Yxb!5gkfd}z_ z@qV;4E5xwD!@S?_JjtGBo6&2WJ)eTTR(F2E>Q{w^`VHMuX0)S5-fs{4^C5!O?5y_i-F%zX^~_tj8h$_1QOn+a delta 1821 zcmZ8i4NO~A6u!66VfkwdJf0<^E!sk%V=ex$%)kcIZUtQ29~o#ANT%DI@h6eEB@!gS zLao!yV;l=}(Zmr$786out~i0jWEc~&7>UZ%I3jE%M1w&V6XWolzEhU;B=3Fae&2V` zJ@4K7@+Lb5I!^mc-)ufpQElnhMIz3R9__Zt@z|p6DJc&@C~v!I)fPLMH!Phwb|E66 z`QEO1aiV3+f%frPP1H@8FpIZAV}V!OY87HklCrX{c%iT0VR;?K3R<0|HYzdG+chIj z92_%~adq8z9I7<0wl5b;;3dZYU01fjG0mHG*O?1LnzuBbgU)<%W)>#fm_cqT^b55R z4b4QR;-A7z%_ZNCZ74jD*6l>!;wjWrDP_HsZNqHob=5-9sg4l5sNNtrtllJOR~HCc z)g^*`YMh`+eM|6|`hlQUEf7?zRf2#@*AaY5BPdbj1VyS|FF?#!yJ?uMo*^)+*J6J- zX41BOZ4n|IHD4jgmlt#@Sgu7J>;U%Z5^!7bTPDe)^N8wX@ zuoLZ9Os@*Dl!c2;!)MMh(ztXus;y+ekgK%l z8Zz0*4wtMr2fgOY$b!4r0e`zLTU*kEXbwjfCTKt7jWOlkVS{$Ym-(73qkq~z3OD@a z*Bxc7TDe-IA&SjVvPo}vkktvEOP>bCBg~I*=d}hcb}>K5ohSFY9(p$Ej-9NUc~&vc zdK^Yk-Op+*pX4W5?Snb&q=nUs*~U}Uu-eA_3n}mLS?14jwH@p~2KANgvEjK$a6qJa6!qdy#TeWMA6Bdaug_;DT}U!+q7;f za3(cpd^Q=HIwECvYz8nNP- z_wID_Avf>H;zOO;r4ij3OqYQSQB~#W>1Z}}c9^=%v#cHI%;mdfWXwIV-qPQNvz4OO zoc8E($)+n__vk+p6H5C)nBp}nUZWXO^&J66#WSd3Qr|JL*X*$_MAz%ExP~(rszpS!lj0 zZrQT6tm4<&IiQ>`&B+F4mc{fQH(g8 ze24hkQJ*_EnK3)WXs|sK{*|zLI}l}Njc>gZCYHb?3MP?aLtF*lAhfto`7O~HKgj39 zZ;F`bJiwQT-<*TIUz|u#`D{^`c!M_zOVTAi(t9&$p@DzjTa-Ey#v6n+yN%xzUD?HP zhy4>1r*LcfuEEL4P1+7jTrpe4z3kkCI&?6g!*z7Pk*@-n*SJ)aO`B$m{C@)7e!usP zY4suM7zEtig3Eeik6 zsOD;iP*rFesuFDoRi1VYRhH&MHANdo<|>n=)t|hb}{r ziQa(`IQju9(82x~nB2gL%=#k^y~c~6{>$1YMha7M_dH|{@aRCtEwxaI%?-ozjQJMZfVs@fnb1}bpJOaFYz;wFAHS@Jo=FTn$a{zc?pPrMqm1y;UO zR->{&IUi7>wTUuOltD&(Nc>NyP}TSOq9sp=kcK4R$WVXe` z!-$`!<6BGIOgwXv^iLsP4jTGKWgS6nY=;0dtRBRLKLJUiL?URn(up6V;53!H73L_f6W>7vEs&V0 z#GSO?eZ)5rf0}OmK5;McdHVjXVGO?!P`b#liEdmWF~b|-8)9G3L4QR4?@pF0Ya;)> z#J>)g{0Q+QqNT#29wcjd(Cgqc;x}nulPIc(_y#)FBI2(R|AV&gdE$pa94X}>NEUeLc#9~3>c$j1lr~t@yCMN#!dXmbh*50nTA~;evn=e*c*5v4 bJqgBkVXV#x*D7@byDnx{m-0^0Ql0rPK@AW* delta 2746 zcmZve4NTQl6u|F&@Dvc^J>>Ctd?U(disKvP5f5ZN!HSPm#MMMwt(<};%a!&pLS;`9 zJWbI`V}4O->fYx5S}CsOQ=6jGS+Q(bvtds+%9S5$(K-KnUM<$$;N1H=ANQPl&wcNm z>yW)2vO7)o_M{ht^ri@X98G~$4(qY*mav}gux+N2h_-2>Y~*XB5FG<+%%|U?RW;O@ zk{{ox*i5IpWAv}FF=zWgkkf5)x{U%uoq8V)ot<8df{yHfJ*H^OQFL%(lrU#khZsYT zPVdM?xMZr8t&nJrPHvozdUxdrMhbJb505%Kaqc!&5bmse;B;FG;W=|^R0M)h46DcX zg`o?Y8XrvqM~-D%cp$W81;PpQED7+7xj_~|MR1g&|A4yaEp`X>t%8k+umnggbE>FJIBYLITy`icFE!a3FHF zyaYc+UYGabgw-A!`;f}39Co&^9~P}K?#eq@YiX@qRNpq(YT26FDBz+3iL$TWe*HS9h5iViRc8_ZtItGaCS!4gN*UYlW;!9C5vHh z><@A=q{Us7mpy;P)f?o1rz&wcNH#!b`g%D8AEoC;?e~q1oupGZ<;5#f=h1@@t9Sw81)R! zf2n69glB86G?;6!SOQB}wm@Hgv+M4$1m$6j{ndu*n zM%qg*)puNuYbgRnKgSHxEre)+RfP$zjmiIC)nVrTs@9@cIL29NQ}(ksN*nX-@rqY4 zKZnnQ>|@!!j=3GB8SCGyvZ)jPbT)CI1+gm7WP|ePW_}}D@x2O*Zjx|pxvUFd<+pmw8M?H+fl@3Q^!Nveuw-CBrUif4#V zf|cSBD-N>5V(xGMqwIrYcI(^&tUbr47{^|Rm@ngN&0)Th`S*NSjm-Cfxzy_Nur`vL zs)V)lWlt|~h?Dj=$pG`LaXr$;JfA<8%Q?Qdk5y#69P!fX+(eR5|gC`{HBOw?gL?Fa%kR=e9mW)LGp;_W^zHiSvNctw{Jnwm) z_pA4w-Upk`Z2mkhCkE=9ovj{`x1B?~Z@9|FT_QOmk;uIVN%y-+u}Fwa>S=FIwxs3` zS6(4$c=CDB!wMmKQ*$ztnp>56dg!>;UlbY3PPyMM>bZ{zPx>)cJtD7{ynoS~Ii!4U zgf3M_uvaArcByp)@2htRwyWI)n^ZT!o9YU&_KI@GaYf$Q?wKN_p>M5YU+(Zj%3DZ4K#SM5X+$3#Chu6t=_$eIgd<~->}*bbKT83FcQb-^6??bcRjY1|3UHs{=VN)*N=|+zN*d+5zdMX3qz#c5%lD zSJ;K<5k+DfUMQkoq77{iE~<8^VDbaZd-39?$rd)<;XywqV!L!M;!u@mN1=UmPgtbqkh9%=HtjuHlY7T;c)q-31+g zXWq%bcRR=b0Rvd=A68fJ+dRSQGv=px1~>B#9G#wzuUOAdUnjCs_$y*s9#(Twt8H2o z)ex>T*VnLmhI8qflSP>Sf+we2NVc5${XF@?yKaDVooOv&^>3cAMkk4tFofz}JkgwI z`Cgf2+>AFkw?#Fx5oCR{{03U;WB&sHG&AG? delta 1557 zcmZ8hU1$_n6uvic)HR#zZp=8@n7D2dCmU8ssVan=&En#xbir{`>M|&9t_#{ z-fr>E{J-u*s9y~CM;BCdI zS9fTl4r4I3XpwvbzEDIyguN9etP6Q$%Juf3x7+p7=(WQ)AzQX*?}V;M*b;7(^>8k{ zMmECJa1G?bb6W-rMGQ-d8d}hnt=`S7Cb)7nSNI$;Ao4{F4+l}RXhGYF7gf8#@#QWn#23u}%acTz zKfwI=%$v*~)I6-I3IvaEj5$yDy2>#r=&rJYCt3ZvK&wB|7l(ERE>~H-7ty16ZgK8< zR}+G25PyvOPCv10%;yYUt&8JtGH>J8M^uOwG&&G|tb-P#W!eVN!TQip9SGv#b9-%^ z(d#$ZT5YZUgVh%9*vlpUW`6sOj?b9)@cnM$_*d{VR(s9rGJcyUSe;=0*BQ_GE%WAV zJwN?v$P5TCv4UQ_F?veFQmbuR6!W2DiM6(r)w7(tfz=T6NuIo!`K8Qv^W@X-+J+4F zin98IC#>MC58x@PyKqO7oa1w4vDyd$+X}AYTxZ6!a-hXtmj(NXgwn`jnS-WCoriw5 ul%0d_NQ0-I4{#JRkyU1WSl6B4^K9VO3r20!6S1|@22HgMavyZp*8C63nJn-C diff --git a/src/userspace/bin/hello/hello.elf b/src/userspace/bin/hello/hello.elf index 87051a7bec51bdde92fa9b903ae1dc02849815d8..f292287f734aa08453a481cfd2ad2695160b805e 100755 GIT binary patch delta 2784 zcmZ9OeQZ-z6u|H8R_MOy$JV{I`)FZf>p);^tjn@>ydjgSOtvuuB$~lL2n42)85Bqz zMPW>a=0-F|BiTX}MsQ129$;Jr1^G}wacEE&Mq){I4h&?N$UNuWQ;a>y>$&%L&OP_s z`_8?6LqWcMD}T*nFsZLk@g_$mGbx4rt3NiUjN~&_Ll9XZrdS&JDzVAp%zq4={GD|X ze=uzJ2Zu)d9nkJHRv_-E8})bE9}tHvMNSidR2ZyBh?-#txEhBG7!!Y#I7GU&)U@BB zhZ+$#OVUM)wT3r{_pHU{)&#~D`8%!;aGZO2=#q7g!JOsq*bMX3Ma)K=MvpPik}cGX z@5T>QqT`RkWzXY-qQ>sw7sX0wcZpZ*dHJpP#>P$^$AJFe?T> z=-iHV(x5XU1{EKFQDkJj&wml0W}V~@!>>#9IJ)@~@sRT*9}p9=1AMmV%D%!|#M+#% zxjR&qyU@TbpgKIN3~QNK-HvOK=r8hGpf1T4OBjD6qQ$l5>TTvGzFDM^PrljRikoh&66`gr)w?P zP1T-7Wz=?rj!e6lP_rNr3&ZF~^>Vl^N3Wq9ze0jQOOXb{9IB~E`nf@wKVe(L>)l|t ziL*0ZjklnPbk=6~pEM3Z4@CxQhZZ=V1L%iZirS!a3_CLFA#8RU`#}8{wOdq|x(c`4 zX9{?%N5`EFkcoX2G*2)VO@YaliuTfSzC#=;JUijK*>!H+ z1FOcg`bdYxh4NOhp~4~>yjjZ&!D3*X*%GB!4!VNa;6Xl}c#%#Sn@W5U@fpNRh;Jo6 zi+H)XS*~!OxaL)s&jrR=!u?Dv^vMF(ORpGW*#902}jQ)Hlg;+Kd+F{p@e zr6^b6LH|A~n(Sm9vk39CoT+JuCP>bPMSrE@xJ~9S-7*}$F_eGAwMr$>L&^OXSM}$J zA4rv>9+!hyBJnd+AB%{m5T8W#v6gr`@gVK4i+BxasG9&gPwy{QHx3wJfmMR2_!AR1 z1^P2?w~B}-Pn76Tjm^|0?)Dr2$?t%%_z>Dd|!}{PVaK)QOo@N}!&s z+i3bc=%X|f_fh%3DluC|d@4nY-3Tqj-FjM#1RF|=``HFZqB@`?C?Zo%d#B(Ul zH^gmp;9|GOCE_2z>4suG;Va`Mq1(PfgK(>E9u>9fj3oTj#4sb`1+^k6_P4l49EKiz qmFl*LxU0^#N6OI;P8c1xanQ~b^|e!zM(KV1B-(2$;Op&hZPCA}q~@{! delta 2709 zcmZvedu&r>6u`f)TlZjtwzzWFZEOto>JSGE%8G1sxXFbX9z&2vF!+ih2veCc!fZk@ zQVY0oGzRg(A`d|YMiDL~ZX+blK~NwB1}GMlFj7ng{J}uuJm-F=CM=%h?tI_xyuQb| zcU`|uMgp?2$P$^{RO}hhl`l-`$%hu7*3wvKYihJ@w&$coMhKrlrtTUjw$GLeV2wRv zL_~oh`mtj%@ZOOgUt+48-}2(^$Ogz&yWC* zJLXF-eC}}D=En&!R}WrmlT>MX_=01K1ri;DU{I+Jp|tI(t+a$TFIjuQ+8csM)W{KMAT=7 zs&586x+}7T=&-JZ6k zZc&501XlMr=ZGj47jn8_T#2efJT)#imovhk*YVAky>E{NWExmB(=n7CbhuWN2=C1Mykd* zMXJiUNUGfECgm~kl6}z(kXW??4bvXQ9h-eDdU4mm0Tw`x1Y#-~E&G6&c6W9q`N`0;jyeHLV zR&(#2$CbATM@z3sMAREU%KViA9n{cD-~P&;t{Kd9Bzir8}ALjwgI$W)02T2uru_hu;mg~H+z z^Mjh=^c5o63e9DjYa5OnB3?vz)7ZYI?1VFAn*S>tQ>{v?ilr+fIe-uG`+RjylL~Q! zc{o}5r_omfr41kQzwA={X_K1$sPZ%an0c!@lwxt8PlfKA9gcZ5{|&ZYlFIrWFRq9A-eHPYt02+K9LxC#QE!oa#y57dUq7E< z{vr1s^&CkbKDg$E;$XH)G}pvJByd0qZ}Ju9gP1SpQ_o>e|7WNr+WD?x9gzkt6E%M( zM|Jf(n&Hgv@b(%w+w;sn>9-9x^Ivn+YN@YC#xNhxyYMS4yo&q9o_@>qallMIzXcqi zGq1~41+sBYf_~=R7I0&4P*}`kZsYv1W?RHO*<9!{^@>r0B3twH7+`26Sx07)bBPToej!a_$) zw|ctYt$xJ*9RpPUmF)ki;>9A7U$U>+u!jQ<^LfY4X*=ASq)pq+);uncKNn2d$GnZd zOQp&p_40|~f{Njmrba91zG3nlEcKNn)2~8G5P@djgyh(Njz+kOGyExO+PWaO kaX6C2I4ftqE8WMhkqB{;TaY`Py=cTVqVmymc9-nsYl zJwNWd@7`N390(ui&o||J2MX6(8Z;4YZ9}asHl==e!uFGrVM`H057vbBKxbIA?;J@+ zm(fvGR9#ZA7v2QlrsOPl+k_Y~kun}v7TZ9x?^K%Ln7tC8Lv|NFzqF?wTx^eKoWhJ# z!rHqo5{c-2SRfb*Z$&9oGe@(SuEYF&HFNsg){Cz;Ju9ku#;iTPD2$k?&aHTz`$^Jo z|F|9;*Dp^k(3NrB+yt8)8U7|sRO!JRdhnW@?RoSap?QzqiN_BROC&ZKXPwAq>Ztns zte-nFlILe#1GA2enN#uTd&@A|A?y4QrxU||=fQ-oy9lOFVL9VI^#asOOchl#9fq4s zyHP^skWovf#qg17GF~9F%Q!}6tIKx;SbxGpnGjchVzqhh#TyPdG1vJt;apShe&?^wIbz^RGpyZAtwNi;B~=t1*x z>1Rb_y(oId+A>gA8ewmm+yDL34BMT0$ov(KsL4#-*h9}zgnF>%;Y4< z)Gt^sjFBe@V`;t5c?cf3^OSl>Pj@DkB8EWKGqB zotU5|Y&BDS)VbHa5?)z#YvHB!_+H^Vus6%Cd<`90`OUZgjYO_rr6hXb{vr&;f>;zc zp^sc&f28~j$%h{)?;zQSGIYBfpk-SX9~5K{DaTxB@%)LWDSliXA@i@$ zoHMKJ24C(P_g@d9;y9kXanYU@T_HSmr5F=3Ux4>>eadt2Tki9D|2!px1*;i&HX}3m zeQC{b=|bT>52L3Q-zF6H4R_?-R$xoPdX0_*`U_DVeTtQ66pK}3NY!3r^}1QAAIMPgCU{XjjiY3I<0HGJN;e9%GtgY5 zcAdi>Wq!*p)uN~-#31u+%$>|XX8sb_+Qo62i>dHuD@Bm%xXHv zDtPbOaEjQf7)8w@L^SmP*Xm@^%KVRcAKtd-z!Hr{TPry-Bt66R3So~>=wpuugY9p&|UTE5$)V9M!vD&pK7Hg83O$kzMW`2{m z-71sht;}8gE_4A~n(WpT@B#VW33S-op{C zb{em$%4!fUm#E%;j@`lAtCrQ%%%|q9=NYhgT9wk_L!K)N6nnFjQSf^`7W(&qB1a+U pEw{w(h6cFq-Qe^UaLxtN(yzH4(#nb~KHf*?z+YCb%t5d$?>`Ge{*(X! delta 2084 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 BR!sl^ delta 3122 zcmZ{m4NO!=5P)|NPC-!afa5qg{``Xz0r3Y!1y1Df32i~psr>{ANF~#G0qSV$rVb$jD9}&K1V@%~> z+P|XvH~lXt`hBdBPgFJo?hQlyA}Zq zYX(?#kB$$D{ieD0_7qTl)KeYRg(12_G0xY1zhChfzZ7BSs8BZ=V1D(MDv@bUww3`v zGcBk7Ff9d-F-xpBzhZc77v1Ise2=h(JHi$QFg9QD-08*}@fCYZ!wU?;Yf2XB6GsSB zc9ICNd>bmm=AgxZXtTugOX8d*gXK~mY0b4qo(s=q9f{OK1noKbGcodwZ`!4;;ywktuBeNC@@yxmi_%JlzQVL zAWDwQR}}+`dHP~FEK0?y=-i=APyPOS*K_eKGFBY6#fY2H@9J_zrPa; z)pZq~qbykyFs;fWDLO*jb~s{RLMsDWT|+CJ`KAJ^H-06?j2mYg`tMyd{iEOg{zgbQ zR~#6(n0E`Fn#Z>aXX=#j$~*X+T|Q_GAFGb+HRgEhQb+NG8GRbR2>c?ej)R)}u#Yx^ zd9U$Fs5m{olz%5|X)EBCH>cT5&1g@}wgcuO*KYH6r7aF{{{dOvYry(G#aS)R%qh&- zzgbO1QLRo#u}-Z(v07b%VwqZrVv!21=j<<6n^2Ufdr=gsttfI;6-AbM3Ppx`6-A2b zLy@FDM-ih&IwC3itMk1+NDyc`(%K%b zc#NZ@ogGA22iw+Dl?eI~qH9XR+=tNL8mqP_y~Z1`!XY>M5N2R_7N7zzPk%Tpx^N+P z_2RVNcnHKlyEcpTtc27pFPIf9HlSfc8DwHv1=Ex8VuwJm`7mcpY%p6yLsl%$6RlZi zc$uimc7}(+Lzmrb)KWQp!h0e6Ha9PW+efDjB)5v=IqP|g$efleOw)p9eiA74$!G*) zEL;Z0Sv&CzjWU)>{1)-a#3zW`Io8anu;MI$>CsH2%_pu$*ZFL5X__^&6toy?<#3rp z8+pB|c^TL(XdXmn{DHAVi=}5$5hJyFCU1fT?p8;9mgd9QCiLPT;IC~PFwO#*O4SG= z8xLx+9`0jf|GOT2#PxbKfoC}ERbZ3$6KJPh#Lp#3u4fTwkoE)7l9!Xc6Qmg`w^L^1 zW_n8dK!E`o5~Ra$*Z@Z>T*xEiCI3dFj6EYho&w-mh@%}Yw4X!|ZnQ=j>i}tnQXHXD zK&QiSGxie*bXZ3Y@NYyL$B7>`%E0&>aGZh*?Kcv)Xq2%F#8Zb!`$#U>j{jGosobn_P@m5L2NRSGh7*7EF^e`T z8&tAl;^*o1YRF+b@yJ0pHkWwkDBOQKoK@toh!iHeGw3sIEGIs4h)hVogSSL`zSX^f zv?XJtHXhbE-X+fI-PkTM+d{mK($ZV8mUtgUuO<6>;-3e}{ribGN$zHA=&heeik;-J zh0^^L);OAp|3EKgvBc~EaroGCBHBUxAn{NN{4w!%;%Bro42m?;AT>uxv05uEWB4J2 zqlfrRN+?%irhvp_W#6C%=q3C75Sh?=vOh=M9W41F-K)j8T)|=-M@lrYfipc&s z@qj^1^*!;m6up4#4F>IX3}>6D{q>V4M64-rdfN)#FbI9f2<6 +#include + +int main(void) { + reboot(RSYSTEM_CMD_RESTART); + _exit(1); +} \ No newline at end of file diff --git a/src/userspace/bin/reboot/reboot.elf b/src/userspace/bin/reboot/reboot.elf new file mode 100755 index 0000000000000000000000000000000000000000..5374ad12c7a7036a0ff3723b8eafe1b09f7482ad GIT binary patch literal 10632 zcmeHNe{5UD9Y3dWo3?46n>MAT1zcJ|yZ%Tis7uv$iw1_bLK$1}fC4Ly{nA>o{k-S* z`eRyJF&k9N%Um(ghK5u&G^7o&P1>jo6HS&*ZK%Y^0Ck}YD2%c>c+&!lXtuS@KHs~0 zFVC*SCT;uAC)xMC&wcOv^X_}^IXM)#Y7wYKpca8z1ZokeMW7aeS_Enl zs72ua9Rc-*zo@w_E7WdtMMH5Ww5i!s#i#HKz*tbtzTdMuu-sGpo0qX3`ca@b0~FzE z`pR2WBuV9XZ@RcX8yG9y zX-_^h$@jH#zI%x8I-9TU;0~MIc}R83`!x7+fw9ejp{|x(U`YM0iVcI5^#R0y@5pg? zq%*zBBSGw;lIIAv&@eM8zQf2jj*pM;shI%A)$@a;dLo?s@^lmO5(UfIZ_BW8{vFT7 zi*6pdPx{WERX*Q$`BK=fo@iNlF zqUmoNQ-lsqr@4}sSIfz$@x)-a7Jh^kJp8)ry{V_`Mv*bf1cF5KN57*1_0(?ht_LmP7{J*7?H>nCeVD?yE_ z-FHo(ALbS!pWWLq#O8CXjE{QwJz@P8Y?CJP!;rPkIcI_VxBaFoMQjbvKrVRhu+Q!6 zpz$sw6+h8gT3jB=+g&1+V?J>>$l-oOv$fAeopV$IQH~9iv*0#Z)mK{JHl*Kp?j>ZG zWd|HvX!EDLE?lQ%KEUzeRQ^wbx>m`&W>fh$1m#yUzp$x1T~%1IRLMMPQ~BovwMfYv zw5j}e1hr7fgl#IH7F4s6QEe)(3u=LqS!+}I`vo;$$u!wi{x(6)Q!?k_3@n(Zx3RF5x|YHn z)U7N$NZqo+SE;+Qkfm;Z;R)&*3(r#LE%cysHp3!bC+s~}O^1C##88FMl+GsPxBY#;1 z8#Ep(zuLH$S!=AcSX!S8j(Sy1nO?U=paP)$BODMGp@f336Z0)m_@hI?UkShMla0J&r zUaEu;^1!Y8z6c7I3`+?y59y)Hh z>BoGx7%9gG$jTOw8!uSizhWfLM)Nt4*z~2@Fyl?o)L?RDYIqXyiuX^r zz|BBH!9{K@`H*Kuz82E^8>aaC+o(*&#K+*^rz&NI!&)lE^rU8l%&4C5Cv?+~K|E@j zT7)HZKUntoJEAeouN(eI)X>7FZX9rCl7`MDL=&cF7*-Oi{HX&eQ;YkyXD-m|W7L6xk8p(&@R-!YZ?@LJ6MH;JqQ;O@^hZB{P z^k!8JpAWna|J|@b{y&5L?+=TBd)PEKfU6HAqxV^ASL0Jn4y_|OzIwsGl$gz;@=_h7S7Gs4HEx`#BY-LM)cM6es&7{wkdFW3&giVyJ*O8jM6 zGw4B(@C|bWe}I_Leu59-m!y1p+oJXYK7_wtk>6iRymhvaLvg3phY#^Dk@nmEz9R95 zrN7q@GumtT_`r|WMqhS21A^r2lXg-ZslAO4;m0cM`Gds6jY7`1i5cw!e2D)=xgQR3 zl(CN_-cw=E-zC0X#trf2jsE3`h2)*Bw{EEa^N%`~x6SV~r@0M{( z3z#jHcoQCb3A$V2%O(Dhl)p{lpOW~MGH!IvskKPlC*!a~z-*($-;wrgmH3?!e?j_d z@58MUzg6aOvE-*07>dIa73Tu+;`k;h|0>D9L*h5f_}?h;1L#T4+fvRI65lELKbH1y zk$6brPgmq?x5S^7_A8PfHMw2a&2?dxG9$5QJBVGW@C|I&9xaqa8OC)H5!iZ~*g#)5 zGI2uz$JLb3`C=oQ*iDS4-U(4gIC+3NadqK-itBqd7BcmiSi)kV_7v0hYhl2MWO^s^_nbH9k-h;~()|nx(3`;N-iV#~O z98ZcK@~uQHn&_lCE{kjEQ7W6|s^umC{Vu6-{uRV1vcseXv-!QrfO) zB5IOrQML=$D_<7V1S?FAcamKlhK35dE_EPohT74?E#B|3DO1~TvUP?Y37H|bt{wOF z|E4X07^EKm(dV=_PRWDT;cNskPrUB733r_L9@;cGSDh#d|;ts36 P{&9J+uX76pUAg{W82UgM literal 0 HcmV?d00001 diff --git a/src/userspace/bin/reboot/reboot.o b/src/userspace/bin/reboot/reboot.o new file mode 100644 index 0000000000000000000000000000000000000000..d6eef49989c973f319df566636f58b3a03039920 GIT binary patch literal 1200 zcmbtTO-lk%6uqNXW?%L}1hyCmq9BG00&!6jVirV;KyW9cO&K&A<1DOAyQrN%p=JNV zUlX*fePH*@ygLmtwWtI4-E+^oAHMg-`|`4dMVo8yi%fW2+ zAyJwc2mb{an4*tiTuL(LBpFUzi0J+-*5=r literal 0 HcmV?d00001 diff --git a/src/userspace/bin/tree/tree.elf b/src/userspace/bin/tree/tree.elf index 23811cc2883d9ba8c673ea63822a7ddddbe901e8..2a4a63005b0133dbf852cc3a48c6ecbc7a3c832c 100755 GIT binary patch delta 1995 zcmZWqeN0tl7=I6Vluz#mT+TfTSGaiL0^+@QLzor_>5Utk4Vp7h+7PHHeZ5NeYV~184y&0l1q8k0sYIY>N zAt!Icd*%vd6t0@zS1O>xvPwAu?^sHeY?!ueUO9kHqY7pWPn(2*4y$wR%)im-=xOA` zlW2`BL-E3yyKcwPZS?H$eydNx>Tji0Zz9(bmAvjHyOSzJpvONS=$;5`cmAK{C)6>E zp8i~X`zIJb*N5@OXJmDf^&MJ~SByD=7Gr_nfML-PnvB&1dkhc36Gk~fo$(04He)Bj zR-=ia+<1wg)Hp)mFb0!j1huW#`l^HG0nJ2(-h+m0@X;c59{{n_{}>~Xc=lP zLDyJIrh&bQxnJ>y?0v*`jwyj|)hqo95KNznSH})zqrN%?iZUIw|0FZnVhc>Db2y_R zGj*Vap0h{>y8ZJJD^9+liA+02W{>(g!o9Q~!O6@uc|CVI4L#b(u`h_N*bbukwGfeH zEVdV}WuB?Hl!PL7pK*Z-k7AD^JQ$5evF{<0di-ImX9{%wd<&ZhV>%!j`w8^ej>4s^ ze8)Z{C@$7@#DpQ}s@BNpc`)l5+&GABP4|Ly<8>(UWy5oVkG<%@C4U_uACROJ2 z%Yf}!Ivmigusdgb#pp(A>IxJ&9m)?-<8&)C5OV6vgG3*TnU9j$jHW{g!jv-)@3);H zr5`@btx)P9oV&s5S)fJHYTCl0C4E9o2G82xm7U;ll{o&s9TTTeoDwZru~p;d^kU3} zIteehf=VllyY}X1#0il|YsE(tjo^!<=YWr6BD`xJQ}Ct^4%g&eR^Xafg-mw|9;RA% zy%Kq5e|!}L{nta4adWH5x!Sj9OG*gI@|X{aseyTqe~IIQA4+3N?KQ zXBH7JcHlRM1o}MCI0sdQTKjplDDyt6REuJo5MMCwWZuU7Mdmkht=-H|GXE@|e4=vb zhGPaV%HNbK`BO1gh#w_iD89twOk5+~a9qcW0%liAer1fsLkvohrr%;UC0VL|R_DQo zYLwN#mb?-b8cw&ZtY$O+)smbp=F5|0C&2#2@F&*V z!0NY4YTXYx>ok2UtCzW!1LrihK`p9vtd?=CS&HIu=s>le)tf1@?qjU(htN8${drc6 zc&T=bM2$;A3CDu%ZH0A;={U#tj$yVe>7{uu+36n6&a%LXrL=rde@4&kVzhbZi_vx zR|QAlGfRy&4mT~IYemp!U8fy{lhz7Nzzu6{iVsE88deORH46cKw!97B{u>TY4 z8ohHdNS+^lAnQcg^l|@7HkYOyhmq9A$4Pq5M5>3y=97i+47!&*zS*F@{QoKeCY#2;XpvsPtJ81d@&BL;T@M+fi!j~UlIx2RP@K`gBlHQ8$j1ZwjY_=6{ zWsTR2B_N5@uRTwVr*TFRJQWUyaqjnt8gvJ-pV`wtzlcKwv0Nv?IFDyAeIH!PF0$7n zKzWg=LuO1tsi|0HFM-9-A=mCV?}`@U8ISKbwV|H$|7zbF1%{CVPvtI@sP3Dn`{Mm@ zc=tt8diodQd_Bv9?q$!2$2T**nds}#mgk7MilUEl(-LQTrBfL?>K(@rV+da5G*`Ag&kjAiRt5MC9bDYXrVTZt4tQ#ZDo`_NGY0e#mEy#{xWEIh( z3O_AG&{u%g1iVqK_fDcmm3P<_TN2@fILr7N#?u+6XHWV~-0OM9FEPFo-)w?%>4fVl z9;EL`Rya*V>w7#9FBTK{))LT8CtNr2poF;;g{MSNA#Q`KL^ndrCM7D?&Fo!hL-roC zKdgEr0)~-|#g8LZew#08J?AFFg%W*x8nZ22xrfZFH%wfDbK}`azcR=n&-EcB{ zW>v3BXhF7?*(==3jxntU=tFh~vze=IeJe~M`y8_iNviKol`7ic=Z$*rK4xXKV*8kV zm2n?$ue>Nlcp3jaUg@7^{b9zx;~A +#include "_syscall.h" + +int reboot(unsigned long cmd) { + long r; + __asm__ volatile( + "syscall" + : "=a"(r) + : "a"((long)_SCAL_REBOOT), + "D"((long)RSYSTEM_MAGIC1), + "S"((long)RSYSTEM_MAGIC2), + "d"((long)cmd) + : "rcx", "r11", "memory" + ); + return (int)r; +} diff --git a/src/userspace/libc/src/unistd.c b/src/userspace/libc/src/unistd.c index 7f9f601..2dd0791 100644 --- a/src/userspace/libc/src/unistd.c +++ b/src/userspace/libc/src/unistd.c @@ -16,7 +16,7 @@ pid_t getpid(void) { } pid_t fork(void) { - return (pid_t)_sc1(_SCAL_FORK, 0); + return (pid_t)_sc0(_SCAL_FORK); } void _exit(int status) { From 06632c93e76c4f47fa531e5dddc33c2b60495b7b Mon Sep 17 00:00:00 2001 From: mcss <124400650+D3LTA2033@users.noreply.github.com> Date: Sat, 14 Mar 2026 20:42:01 +0100 Subject: [PATCH 41/41] Update TODO.md --- src/TODO.md | 135 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 109 insertions(+), 26 deletions(-) diff --git a/src/TODO.md b/src/TODO.md index 0b5a973..bb0fc07 100644 --- a/src/TODO.md +++ b/src/TODO.md @@ -1,26 +1,109 @@ -NOTE: -this is not a complete todo list - -[ ] fix log system -[ ] fix slow bootscreen -[ ] fix user_config creates a already written file -[ ] fix fat32 is not registered -[ ] implement atapi support -[x] implement bmp -[ ] implement png -[ ] implement mp4 -[ ] implement ahci -[x] implement a libc -[ ] implement a stub system like vmlinux(virtual memory linux zipped), call it emez (emex's zipped kernel) -[x] implement procfs -[ ] implement ext2 -[ ] implement ext4 -[ ] implement window system/server -[ ] implement desktop enviroment -[ ] implement window manager -[ ] upgrade theme manager -[ ] upgrade font manager -[ ] upgrade bootscreen manager - - -⁠ +# Project TODO + +> **Note:** This is a living document. Please update with new tasks, ideas, and details as development progresses. + +--- + +## Bug Fixes + +- [ ] **Log System** + - Refactor and stabilize the logging mechanism. + - Ensure thread safety and log rotation. + - Add log levels (debug, info, warn, error). + +- [ ] **Bootscreen Performance** + - Investigate slow bootstrap or asset loading. + - Profile and optimize any bottlenecks. + - Reduce time-to-interaction at startup. + +- [ ] **user_config File Overwrite Issue** + - Fix bug where `user_config` recreates/overwrites existing configs. + - Add checks for file existence before writing. + - Provide a safe way to update configs without data loss. + +- [ ] **FAT32 Not Registered** + - Debug FAT32 module (mounting/registration). + - Ensure correct integration with VFS and drivers. + +--- + +## Storage & Filesystems + +- [ ] **ATAPI Support** + - Implement ATAPI protocol for CD-ROM/DVD device access. + - Integrate with existing storage infrastructure. + +- [x] **BMP Image Format** + - Add loader and renderer for BMP images. + - Verify with test images of various bit depths. + +- [ ] **PNG Image Format** + - Implement PNG decoder. + - Support transparency and various color depths. + +- [ ] **MP4 Support** + - Implement basic MP4 parsing and playback. + - Leverage software decoding, investigate hardware acceleration. + +- [ ] **AHCI Driver** + - Develop driver for AHCI-compliant SATA controllers. + - Support for hotplug, NCQ, and advanced features. + +- [x] **libc Implementation** + - Integrate minimal standards-compliant libc. + - Document supported functions and limitations. + +- [ ] **emez: Kernel Stub System** + - Design & implement "emez" (Emex’s Zipped Kernel), inspired by vmlinux stubs. + - Enable booting/compression for faster load/testing. + - Provide generation tools/scripts. + +- [x] **procfs** + - Implement process filesystem for kernel/process info access. + - Ensure compatibility with debugging tools and utilities. + +- [ ] **ext2 Filesystem** + - Implement read/write support. + - Integrate with VFS layer. + +- [ ] **ext4 Filesystem** + - Implement read-only support first, later advance to write support. + - Handle journaling, extents, and 64-bit features. + +--- + +## Graphical Interface & User Experience + +- [ ] **Window System/Server** + - Core windowing server: composition, input routing, application management. + - IPC mechanism between apps and server. + - Hardware-accelerated drawing support. + +- [ ] **Desktop Environment** + - Build a standard environment (desktop, launcher, panels, wallpaper). + - Provide basic applets and settings support. + +- [ ] **Window Manager** + - Develop window tiling, decorations, focus, stacking. + - User-configurable settings (shortcuts, decorations, behavior). + +- [ ] **Theme Manager (Upgrade)** + - Expand theme definition (colors, icons, widgets, fonts). + - Implement theme package support and selector UI. + +- [ ] **Font Manager (Upgrade)** + - Add support for font discovery, preview, fallback, and internationalization. + - Cache rendering for performance. + +- [ ] **Bootscreen Manager (Upgrade)** + - Make bootscreen assets configurable. + - Add support for progress animation, logo customizations, tips/messages. + +--- + +## GENERAL NOTES + +- Add regression tests for each major subsystem/fix. +- Prioritize clear documentation for new features. +- For completed items: review and update this file regularly. +

      _bk{sQ9#%iepo_d3`e&}zckt~9(B8G8PCNki0! zHpQZ+*a>X6d(uX9^Q1LRvzkI*+GX1?o1oUh0sDFj`UTn#kEFZf>tQb44l9Ut>8)U0 z1faLu&?B+l!U5HD4#CWcGsYS%d`7rzkC<9%W4{Hf5X)T*6w=$`h4{8~Az4?E7`rLk zetyEhaow4#%dsTx7>|2bI8MO4R?-D0OkKIp@{Nt3U4Vb}IsE^H3(o#dU<|ZNr{Bt) z;fb~!^g|E>K63S0hAk5Ia;jqb;XKR|Iyp3>%r z-aIxrB8ksdMco06N-7mvSqc4B_9tS3J!+7H%J zHk}=R8Mrp3o9w21Q^RHRCoKp={Py9hjUKCtH6ET3t^XA2 zez7sSKHT2kP@A1szxLLq1h(~YSNHhifj7?RgtVbAhHom%reGGd4~%L)b!NkXs$>}d z_E%Ly+kp8pFRBlZ&VofGLwsvyPQV%~S(h--=IcmyB)6ZQ{ra1y-&-?({wIs7L`8B( zK401q%eE%7#j;vBaypd8cZNnIhthIHgVuwi41QqEGO07#89bODS<)SCT-XrawJa5x zSJBxHt30^p4*cVt@dGE6P1$imH1}q{v1ZQPKhBA3o8#~leeT&R@V9fRT^Gy`-Lb}nQ>NM4^U2d2VhvC?A_i-VxF|wj>P{a{ZcdL8`(a)kBfc(HV%M*8jV5`iBl8biHDBAlQJK8%MJM8=OciIaBaTxP7csK4b z=y&~jwB=V-n%DNi*wYW=9DZQTiR2@j8xMSCYGiZGfpe#3;k)MXnqQoosEG$Q;;w>y z40eb5+EcOY7z0MPa0Ge^{Ha;V9kYaS5O!^Psxr|R!Jgh#WyAG}#(t1rGmOOhFzWZD zGl^a4`S6!ZfG@7O4P0~EqB6M!Eu8%JZ08l7bNlm;WJi_-D|%Zm%Ho_=fZwIV1Hv`g zL(@C6tFm3$Sy>nY@Ku$IEodKDiglHpEgka=cne62URnKiUaKy|Gs)U1A*i2B=K1{m zYy*6rpO4=SGa4E%n*IE&Or|HF$rOVy&Q*t#;pCyQoyk=&^300Ir;LVp;665->;<=3 z$!Dg(uLdZedPKln3VQ)U z1i@Orwk@;y+=tNjz#A|yH&PuUp^@gL$5lFy$X8p;i}ePQ}n9~LH^_o z(dKApa(B9^X7#MvkBncH;98&~G!SY6OFu-CK3wj*MJkpmkX_R(9wmeEYP zmXNbxM|C!_IXUWV5kEXpBzC~+9M|Up-kXBI=H8nw2KVGsBAf22j;H&oGwFEsDEO`O zjSEmdoNGGmOTsk^Yq9~c3r95D_QB3b2;ScU?J{hogRqu~=j!cjTG+7jk_uPae!l_B zaBO$YHIqk11JLfk0x{xpRRBA@1yM-hn3@1fF&4~23icJ-a*%R5ABP-DV5I=tG*Iub z3z7^bgV3%Qwq~b_B&-r|3QvqC#;8K@kjC_!@=MZQ4WF+Sj&Me z-(s!{`L91z4!sG_N$|JYtCnY+wVt+jX;b6grA5(~hP~L(W*AFB{`eYL!KBjJ>aOZ) z&`Tfe)Fi7b(_rh4>;e5iUDh8uKbOlj?!Ks|@#@BPjdp{Lzq5-kW`%Ywf-q~0mtQos>H<7t96Woz4rp&NE=#4a2kYUD4)PEH*3L z9}UN9WAhfn)8i*ZBJcyV&_A(#9n7buzmV##dcC%L{#~#?T`4xlT9b+MBeH$N?r1(> ze3tJ{!5Y8z{rO)HKVKz`Y;e;Fkp)F)`DkkugYD^Da`BXz<9gt|LLV&AtV1I->loy( z#;x4=LbxZrW!3|*Uhk~xjOAJ!U3L?K8YB4KFj-g7Fvf z(LgkifX}$V`dmHq|LEdkS!L$!^Xg$`d`aWO4Y$G*kxMUtJAoUL4O=n?m)1f3+hOQ2 z(A(4SR~dP~swNVQ1mJ^i2eEz)`+{9dai|2Wzzetkq^GBE|{P|4r+Lp7;oIht@53 zXLDC=ogdWR$)_4puy2gt@L5pw!z#hqr_VsU`EV(mc2vQB5&XfYQd;7s?JL;z;m5Cw zX$RA(vE#wZN^T*wdgFx7MgB>kqF* zd{20LdUiMv@L6|^xVq)8s)%+^><{VFzzWd?YQK=#H?0m@N4%jQ+T~*S4T)q!qM$v(OmA)t#d<(0ZY6p$G3ZR%uxGw5 z?FZ9wAC_O9WCZk;=e-MeA0514RqneD&o^#vT$@?GqzL7APclTJQ*`EE7u^E(DPcVU zf3W{r)KU6kiL#W!u;Yi;QYI1)PVqfl+0p_h74eQdoKz&&K+c`0k6!)oOcpbZ>Nd`+lf@1JbV-_2RR1y$^QT^Yz;PswVic@@K2+ z!;o{CG3~%ISanYO+pRSXHTHpJvFT$PmM>WNwUf{PyWB}GXsAzlo&_`h;E&`LZj zj$9TrQn4#vQ?WkTm|YpZYiTaJt|GZ?GweO1)tv$VDp=)<3fS|`&JXWcmW{MlfYk~9 zxKdQ3tK84TJlrQjQ=R#Xuklz z*V6i>i)&yA&7Eh%tEW?h@bwY(;8L(?QM$%6A{oP zyz%x}8b_dvk&*2b{0;oMxSDu3td;X%DOE-$L>r@x@;E`x-UiqvI93?P@^N@Vqz)_< zd0oA!WkCi<*NnZds#eUD?>Vj2%SOO2oA^47jHs;)LHp^jq4!VR-dJeV0()U^bMFPP z(|T%C^p%S*TNH)%*X5p$Qnh1?xocxMp}r<_SM6(K`x6_%&f8fFI|f*9u=810U6ZcUy7Swz-Pz83f3_38@gyY? zsY@p!T|szNckq?#qheD!;d?mwI^KT)AJ7k$UOTo_q>f$Ck;~3IJigw( zUj9l#zglZLduU;Ns}R`M#sVE|e|WDz9rpQSQSJIZZCbt!&Uo8m&|+h43$xRTuv7>~ z^Z8AI)^uecoKC@6s;M6(~nf#)?_U#IGD&)bcU9kM@JYTR{KpgKMCU~R zdcws~xHl(;7P=;0$=8XlbX0ttAFbgorrOEuiWjCp4&`VOz{(XZn8c{+t?eu0FC-sH zb*4ID#SGsNBA0+s26r^!9Q4xEg!6-9WmN!I3b;1%!HGri=*Y16$rkcso>QdR20L@{!~gIZL2y(En*XcCupC@3) zb8UPrxIdM?Grk;k2PbvA;2a%x&qQY)x;M1>3F*e_256D?**2UcWnlbYJSCUPChHR| zwX;&WWHwQc(=*tzF#eXu4Uo-<8*mO%4fmVCU)E^L@5p8^sGr?*Q8l!1Av)mmKzfe& zvcR8exHk(vy+I%AUr5NZ^)ERbqSGWdtHf(!}?T358oDk`R z_>zGA{&*eOskW#QZ$RiN0)`w2p&51hrYcxTRILoJtm@J>rW%=ybwz1iYHc&@0&|0w<`x=Z?>+-2gb0#`}Stff?8*Cu7HHeFn4Xv5W zmcTj~_b=>JLvy|>zN{(>&%0%-+H^QVu5PWqOpRnATQtDRY&x9gw5Ovw96jjm`Di9O zr*F~nnj*ddwyr%<4|hPd2jzESC7k#sPD}(FjTr`>s;$x1z^;8t+f_9)(im+B_vUjE zXvc8p0MtPl_~X0T;5;vv-7WWrYz^C(`v-c4H^BCqw%!5nftxPpy<_FsK)gC!9a><* zXd~cM<`|6BiG06vCexJ&Cn~Gg&WmQy7L;c;qAdw$6Y9h!**`Xnw)ogXXWtENwV-8T z-(0}GWa^|V8;R>-X&u7Ms6$%~KcAitYp(|Ui`)hKF;{0{N2W0|yXPW!8+Td3ekcEc zeOEc0WTnR^-T|xpopd?u-D$oaxzhr7jKDn$Xhjr62G;&z*uU;`T(XH`DUQhS$!||| z#(<++qU-YKgFfRCJX69mjZ{Uh0_Qh%mXeC*t`O7QGe@*k(N@hSVIL>mJbrERa2od) z6VCo(PRl`GPHC@KHKO*Tj`pLj_C-9o>_8-0aazSE6=UHpf~380EZTN8{g^?oBQ)L8W;|}L-y)(Td{sf%fzz4p;(zRiS%r2Dc#=CIO&H-4( z{5_3lcBcOO&?JzrpdI=Tn3HTNS9z^{uzZ}ouRLxi;cUD<3wI&eS{3YHf)=5b!^o>a zUjVy7@0&u$W7cz1juxe?kijE9JSl}Oq5!j#Bv5njLP-J9e zd?Y2GrpU?tU}xNf(HHD5Jyg9ue|2?A+BP!aY9a(9|?0-2cNf-?WtSq7R3vE1<04?Vw zWstwJd^d_hxVHp*LqXeDH6{Eur4RRzfwbGfmgr0-jaYtl_LJ=9#*Wz?nU0G@Ez}Q= zt?`ZNK3PBa$GhW?z`7l@3pI2Q^yAbYlo`%;4K2SR+mqeU*fqN=v*DsB#HTY{cz5Rp z*p=Im*2La?6zr(cU{7Iu)c$7^H^RFVR~d)ON6Qtm>cyjAw7jP_9f^R=Ge7%s>+Csi z=3(WYejt8NdL{hb1N*Y-7WtwL-3Gdj`h+xfe_PfEXPtqz{F*>}peX?NV8Z|5bblZ< zKAW$Hk-BrqfeS9H*>!UBqRSd~onr-htMK$U>_`A@2Ug87aTCmBv1({V)iI#1>e;Zn zSvhjWf?|0g1SboiQTG>d)gDPf+k8gy>MLjd-d_y#wZqJp>B}r{Uk8(@86LmE!Mk#+*w z3UE)zO(!Lz_!oSV<=LuwN5bw;U%F7M?a^D@xY(3*7a zlO86n>|ev`+4cRx`aLpqiJba9GPG1q{nGnF2ee7Ie(61>1AU$PJ@SS1J50(>{SG6u zQ@=;tcgPRS7i$pyhKcLc?=Zfel!oXjPW=v3UZ;MC(WFzq!^CxJa2Rd4zHa?`xS`lMza^));=)q^=dTZ_iL-xk0k`DE?1)& zzngo2FUEz>Fmavn>P5Hj56su~9a0_m&rLgtyb*vf6F!15%dnu3zAN z)4NyZobP~l*AMVL?%nkRe2;r~{QzI@yX$S((#(W1wVB;#z%Amncm?n3&TH|3 zAL$0B89b3hAJ@%!3JrYw;Jg@?<=U}4xy4~ODO7;>SNE&unJD%#d=EN@gV^|icU2Dx zXJur+8KBpl3$|Ui`j%}=cMjP?cV55kn$_2AWQlg(0%O-LPu#L|$o>j;4Lr5$SUrKl_{@pe4VFNQc0cg8 z^HEx&P?a%`_bCkLlWH|>R7;}kfoLX? z9EBmk7eg!@6Vx87tqG2*+LswR1f-!oTAP9p|H$a079`dTo5skh_cQj8xwM#e%cRJx zo6atOK4T3C(d?V+n=@zb zd21%;!5YwP3LJ^ePwDBuBM zXuU#|U<`QP&7Xl*=cWNiA~H?r4)JijKb^sIYIqw??9VonGfN~SeDQqlcZe?YrOD}xw@=4-Z_5BG1tt%qQ4{DI6hp{cNBH2^sB*B z>F}4zoS{LhkaF3eRd|c}!4ILHb*G;FvhGuTM@iEGv|z&Zsp*+q?{;@@rl_T$PQeO- z`$-xjusc^?#MT(ZuwvTE`f&E(cA-VxR0Gf~9QVHMB$K}o*W!hErWz!wax?|;ZTNBG zcxKOb+Xtt4sy)N=)KEWgP7@CIm#g*!HLYop{)xd9Jfni`QLiwdJ*MEHEs(4Ldw*KA ze_{+z>^xWSRIEGW<4mn=aF|=svU<@wx3VwHtzebiA}w@3bcMLc$##8i2DL3+K*(mT zx&K^QV=z2H?h(knTxl6%=qnTO?8uu?a$VNOfG|+Y@MLl-o{9Iq3Fn7RsAK5Cpo#wU zTEiX>?OMO9z9Re9c4%{PY;!O{u#0h=iw-VsJ3Z>QQ*U38E!PbJeOO+@y>;-Z?n=}o zUwAXBCG=6)`p_*Njn~A%&6hC14Wywkvj$zyhHD>%Zjx78jrKx+bWS26!@_M%!CD$= zWW5&PX%*0xY5_LGJq*S zZ>tP1?z`L5ilH2$dQd$;+qR9^^mq14Ce0hSwN| z_#340&tY=`DW#;t>lD-Y_ZP~6X<*F_p9X5|qc5x%H^je(ll0Di9hI%+&S6V?=jTU1 zeeUz4pWivG9C!ZhDAd}~f8RN5`+zq2;d6gK`r#L(@yXFoAdRDU4%P-7o`VZFE^RQrHcll;`i8{*UV)P)4jp2y0I!AuaQM*-iVjJ?qh69#o@ z;wdmcfH<}YiD2vQSnbkc$PJSlo163aLfDytAEORJ-nhaTSi-OfYLm2jP1>a8o|VxU zTp5YAR`b8#OJw5R&-A>o(sxBsz~mQ?&WaY^?=Si?V{^WlV;kqp?5O>`7|7_($CvSC z>$90D)3w@SdD*?6^_OWs`B|!a%g?&E{oFL)2(Cq!pFddhNZ)VF5ZD$V7OY9)#+*ru z6ZLPLQM6_ivfY>Dr|Fq;&}^VsDnc6k@&Y_{1SKD*>Ss){dH*eN6Wtlb@;P(x2IuTE z(~a!?aQM_{#hdvk7nkk5-m^nKv@h=T;hxrzpJFMF55s-n^jG?!GI5EB;RbTiDCli=YBv#qnAiM3e@B1CFlYx2ff9rtX#1Gzpa*{WwlgRwpc3` z;5VdWDu3`Xl@GXyL$v1&_8-WCpT6>0h7EouET2a~ z8>j>t4ebE7-B2dntC#!rAd~u_g;^VF=vuKreHV?4R)9gqIeGHbDD323x8m|`>Lk@H z;2IG39_UFRuvFn%eKcvMySj%^V8w#3stfq#CzS_=&46D4Qgc3L(bq#Y)&phF==)6d zR}`41{4>zKp!LYBB32L(N$F(cCLjcZXol`1Pg~T{L`bJF4fc!wRj7$x_ z@fWJ}jFB_I3BG2l(P?!`=lS zT=&6{aiN~%S-R(x&s&S0l+w=JIs{qZ zOzlSJ)C|}2RsrgiKSlUeDfKA^dTQ}=EREO4(jgN+U;*g8RVx;((0g^b<9NY}1@P>i zUJNX0SutXTd}6+!w~Su5VBG?1bTP2cUn&3X^Y<>WuCywx(Y*_xM~5_1Gkf4^fA@pe zTBul3D_!Ijx;UY5x4EFNSg>xyKL5HAD;7Y0j?{3UkCYwOw6)THp%@|DVGHy?X+Zd? zp)+^aPK9FBhI(WP_UY?9WyTT}1Bc47;E+l=E>Ft{lbTH5O#xyli7|pxRyQ|{hvD3??iKuQ0LFpj4#CM9 zj0~U!+ze>Jind^!u$f&y{EahA2V-GAQl47S$JE`m_z9&!=TJ`6l++c}H-^U#l*p08 z{XbL-wxy#JRaW?hkXX)RCMd&+DgO^0gWOmrZg|w{@vc}~PB~GBN`|S2&MXGpG+8c` z3|rm657yznJm`Tw7X0glwh1YOLgsF5DtvZp(27A$aK(HEd{8pXZ7TfRedg{n-JH>N zDtx5A&J3Li?P)5e;MR*9&d~$wj8ZQK2Zr5!=G3Y1^wXgM8b-OK1}SAY-GH+UsZ-Rj z+uFV5RuZ!WNEp^?!H?>Fh!}^%V(GAy7+SevCOsy%0+j;BS8*{uraO_*9E$#Z1KK3E zNT@#&3MmAqS8jYrShmXDZkr4ajPJ@+^tX?O5!dr6`n}~>c@J!1*ao~|P)8^Tw5>t< zkTv3_N5Z=LbXy>%=gOo0$8T+P(NDTX9ZUTx7p3wZXj4VM)#8wkvOQLSHK6(`xK_2m4A`Re`PKiuRinZ3cE%|f-CP?SM^ASI zEe6!c*q2{7qA$N>^peqdeY~XvYns7#0D7czS3E0Fy5p=Y_kKvv9b(?N$KNmK^~HRl z20Zt1d3~MxA&;{TrAFQRAwBoYdE;WeLh8e$eEj`#1LI06Fs^5O z22hjwHRQK=X{-jO>1a^3a&1GcE3f5@s~OibK1^s_HO7r*K1Qx)521D41UG>7Nz%p8 zoP>*k-+j0r%c7Yk)5!7uMM zi|ad`g8Gvf6u*?-d}ouF$O3w_E4~WXj&?8c5xxd>;JEgYZp5F)k?WNl_HHiZ0giT< zDp0K8us`CkhdAspMw_!ZG=_4^aSAaGFr8I;jKh9N6$sC|Pzv|4I6q|>_H$w%Fka7L zW0ZpVHCEI&3C$Y`jV08c%F0LveM-ue!McG;Vg8C_u!2;0a~Y*zg-8aoiHhm_jD$4r z8}Bv*6Z?t<4|F&U!~6+&S^iVpe9e`Vtoap|=BE%!Rk0PPQd$)xqxA!dX3ZxNtP?0* ztA?V9Mo#xMlHB?hM~hJ@tsXA>wN!1^XbNB!S*L3V&5evdLCMtMyO#$N?dvrDBp9=d zS2A`ob~El~{D3ihDWyA!v6=BZjO!SmW_*LOk1_rYO1GY|m2m~*7RDDC-)Ahlj1sG5 zY+}5L@jk|<7++^R#yEQZpwSr{n;(a0XL$GpRg3t4gudqp#mj)s$c{sDkjG{5R|=*5 zNl=RKPz2)>K>I{$P`+anA?W`xwSf%C=txtFu4>xg;ZHO}qjp5Vkv_!T)4Z9QsM$`a z|C;)*HG)zUV+n1Z56UKyt9d7+pz<+ZfJW|>{45G3rZIk%@oRvNj2~Bnim#w+Z5b#) z;NYzMH9w&Dx^2+)9&?~S>ed_nX(*k%c9gb-I=Xln#CCF#x#BSI&DC=)bM;)yTs+s; zLILE^?~T8L)06Q%*D^j{J5s&LqR0Z_bl?>Y=LB!ko@<%3=UT@1T+6KRT4m+`B@Kn< z8mdC2cAPi7xp=N+E}mZ9P}x+jILCN%^<2wbJ=Zc9&$X1AryM1<=UT@1T+8@)t)w!(%L4+v?d+JUb0aAGUb-eb}rPx9($a;cuQNsaRY2E^$ zRiUmmEP(L%%K~})ak%mNUGQ+B zbipl5>4N8@>I$t`N0)dltuCi*vWD1S z){xg}2&Z_)9C#DbNwPcGUQLQlln^wiO_yBe3iZ z-0_r}*omOxGG(0v_95TA+@sqbQV-0<%y(PBPoBzDee&q1 z>XZFdeR}*;pg7_2$7_$#FW%-{Kc-yO5QA$hr_$t@$14GGjAI2Ka6@TI=NwCx7-M;A zPT+FQo9c-iU-k%(KVEwm9dQV%nu>Kg$C9~vV#!=ROODxf1bvqtuEMKwGLbJw~3c#8GxNH@ZqS%L%PfgyPjY zH-LDLCOnbi0Fw#LX^a;UihY!Vc`3VI&3H3okA665<+Agh;97-=`GIflcY!I&mAFCY~22#qTU#f^-4 z#_uxzfYA37Lh&e}^$ejn%JsIBT&-6a_Y#VC8IKTJ#wNFHB1C9a5}HZIGZ^atRo~&w zPp2bxRFhmL@H$TPP-Xgd52`$m>4|0Z+Lw4OaMRUOnVzjdF_IdYl>$_ulq~4wm4*FP zlfjOo{8f`N&!p==V-w@ONKaE1f2CrW?{G1sapfrnUVAO*BNR&*KXJ3sv6=)MSEgJ< zvPq_uLr`xk!HLvgMe()2gSG{$+`wzObas>_+uNEtH$Q3ec@~jc1k&@Y+zh<-uIwrX z`Qx?MU&g-@it4CQ#`mmCWPFdmjPLQ6@jX3L#`pA08Qx9K%LuJ+ z0V<8_vU~9IOI?>kLv|*~TPT)!2ccL?Xl*1E-GtUtfKHw6F$S~|f!E&E{SJ;b89JPI z*pOo)s$V%8I3fsil%~5kBwC=pS0E+js76m|mU3+wQWCCBB?PG+npwC1sR3mIo~fJ+&_$#?_fN36Iu zc3nYeUd!pOAy=`U(0Z8hmyEw<+{O3`<6g#tj2{!4eT<=>lA=ZunqvvYnT%;dYbN7d z#umm!j5iUAc0y|<<66dzjA$J=?e1sf>gk%|Np}4`q4g4>IGIy8h4C*GzA7o&lu_;Fr1< zcY=69{Brd6ONwRvmeBkj1u&oIw5I!TMxao>*BSrDc#!cBBZ{E1^c^KvF=4FhDn6&K zAhgrSbq-iJDw?p!)x3|zgP%2Y0+{`juIYb-Tp#8D<>V?V8AmhXc7>B0PT~&w#}MMA zAO#xn_Xr(Vu*is%CN?+vwepL&n35Cs4mB=l&V` zlmdkM3Cmb#WvsJOZYrf*ppdWIEl_C*^+~CWxx>ai|MU>Ynl+EqK=Caz{KCDVoh7l&AL$8u}WwWXJOGi_H(lLZuit#i+ zC5R?v;(YYiDMfuUMbOV?WJPLUA=l7(ggR=^DJ7QOqkuBpQBeghdz13f8Yr%I5#t;# z&m3|s{W{i?x(8?>-T$FoLIL1~MQ#?_0&*?=CSl1t6rh9$m6C5$0C<(Gn}Xg#Z6b6d z1t`6hP-{n&;*?%L(?y-pxZ-rzwVYA!K+$D1eHCHJ)fiTuUTb%77OMcAy843w_vcHv&tcW(u=x9(qnzd+YMFXdpPkA7(*?j{~AQ8 zbkFTSn*K94aqWz;Fl*s1pVL!uq;cv)dhzy*3d)-a>KeCSoRa1sFK<*_W;jJCAG*b!dfE z;OHGkAkWT)taIz@Fa;`qbv=cYt*-IV#OsgBchZxUQ6$-9QjVDQB&IcsP-IC=i`U%Z z5(?lwp}C4(xxTGgl!Ca40~8on5sLc=J*U0aC6t0yMbnD4nZrKH_%x%Zn5~q8ZwCi> znenzUu8Is)xoodWW$GH!@~V_Kmz2r}`(t{JUjItDi1!$eGJYLq4ySr#59Mop0gRvm zubs5atu9&-#*+!fDTLOS3B@!*|5pjcTtfdsLU9eDbt|FhAoQ;x6h9)g9w8LJCbWJ> zDE^1g_h&+JfY3TbC_W>!{Qu>a*o+YRMiYwhgw|P%(-<#cZ4YKolhQOaeEXPZpKYWuL z#*>^N-c;a-Gp1`(%qT@! zcX5Cnl(F>}vW(S%8D2XPUgS^@af+|8>-RZD94nn@zu>T*`}VP0Isr~SjqokX&AU_S zxh?-UoY;QO_)sb`2h(tWliGI6{+evQsyBVa0eQ<~mfj?XXs@T1rL04>CFu`a^_b zDhJ3hHWOMcgklk)^&LV{AhcEyiu(wyO@v}Aq4gA@@hqUDFx)n?ULh~R7L>i0T|EOi z?|_R6DwS0Ys8ZBU1(aTn#_(GDtJ)F=DOu|Xp=mtoD$5rJbkdrLaYxa$iPwQ~bgiF- zd7++Fc!AemWuHc=TIVvJPpHo#)aDTCUuSG#yaLdama4G{ELD3ee3d>1UykF`=(qzN zcf*&GNDZWmAf}@YsqZC}sOTW{uOSpaB(xqPG=51awln?@q4j@+;%|i32ZZ8NLd*Y4 zSK;CWLaUlkoJMG!ODN7Kv@RwT-ypQECKNXkT6sco7oqh7Lh%zq>lcLLH-y%6gytUz zt-le<=NFs-;eB@PCA6%^sKmUGu%hfbn$W5t6lW1ySwb<3(7KFJEF!d)5Q+{$YYm~` z17>SIyKW}59wih{6I#0ny-!%Y3a$cYb*I_=7|=5Ti9b^;>mP*TUxb$aD^gA=p>;B$ zIEB#qGNG78XkA1ozD{UeO(@QxeyVPML^H+_7mXe7JrUAKV}G?=z}sY;F@zsm@!qK+ zO(wK*oW3Sg<=Mn@bDo6BvTzmghfKX3Z%ucY?)<4(2k_~W(Z@t5_E#+_Hb{c!En`**1|SwAGHl&-c8ip3U* zc!*>DicoAPwEmY+{F%^ti_rX#@fc&^aaS<&L_#r!(3(gn&L*_ZClnVGTJs6T)r8i~ zgd$I9eV0(&OK3evD1Jt0JxM5jM`*o7DE>ld{ew_^L}>k+Py~MMme{Hw6#Ou*=V?)a zcNsh5aSW>2slh6WW}QkXzD#JHM<^~Lw7x+ot|qi@Ar!Y0TK5o&9}`+XLzJ_(con8+ zh1Lg%YOV4lhy8Ct@iL+HCZ(Vo3ntt^D~B$fCC#wx}MjQ7zZNlal^&l-C= zyUu3(2IJL?H#2%xo<($3+lq0lEQNJcZ`$`Ln)ZFhA2Q;CLp2SJALQ0HaDdH(mgj+L zzQ@Gh%>jPR_&Y-1{}NiS5sCwZ)<=y0CKQ3ET**WQp*4n3Ol15DV*?}G9^yaA)w-Ne zT*tVS&~wL@xRYGP_X)kvusp!7e6Nl88M{8o=((HkckKES)(u? z`7rPs(%DIb))+uF)$mU&s5&p1h@n)gxs)5wZG`4J#z(1Hi8DFcE^;kRQ$9N025g3C zCsWG~@{+@kWBfR ze7y@|m5-z?ywd-nR0f|JI|*R@$OM&2%lJ69^kNdxIE$*vbIV5Q9!lKix-8|>c$1Gr zr2V9_@cogZ87FbN=fX(oG*CSCERjc_vPo#3({4uJK1xPOs#@^d)K+z|kVeA|5y{>17#%ox3#>Y^4=DplXb ziM_)3SH|@$*{`Wl`{eytDz^(c-ET9lWZc5Ilkotf(MpoV8S5A?WxS10TgUh`;~R{9 zjPWbnEVOz;y_HZ~PAE1ZO6`~jNe|{>L|J0vF$&<<{-0X`wuLAI1a?tk<|`Cd4^aU9 zT?(KdA=Hd3T_KGyp+1sOO9C27>pP)?nv>8=N@{TL*PehLQGn7)zPh_)3_#Wl)dT=QQ6ZAM+IM~=|Z zxjr3i_P~Ep3pPKZrJcV3=1?hS>jagzpihSI&UFz^_+%h;1Z?1a3ZmI{RI=JR641Vg zHf?r4)^};p6JsD(dF>?dd9|CNiiOvXS1YPtsR+gN;rMT(qZ^gV;=}tQ?a$#_ zd6`WlmiZgfoByn_ZeH>(d3miO7?VNgPF`jW{Ja2`vrOKZAq5b4|C;?}I?S;;K*gSG z9~R4>riu&78*n_bUzeb)QP2K!X)R@zLVk|ezov?^FNG4Qicosl4hg7G7S@qMS@Q}# z!r0G3GUZqT<)vLo+R%Pa+6Xp~v~o|}3Ht(xP{#JM`7*g`eD{@p5v8DEJ5woyB+B+* z+CuGLYv!;gae;Xn*1t{x^aX^T-|Eu7Nv_%pREp65kz^L%S!V8`0Ons9-)6j)5;JdQ z>|p$e!yaSw*Sp0u?xwJT9}$`l68fSPR`w#L9Z$t;d~cdI62hw5*04anzrvT(4dpMW zaVbq663m}cX67#mjZ-Ks^BU+Z_IB`6X&H6UfRF3a*vdVQ5<}SG$~=RE91M0rO3q+_ ztxF6U6GO_F-jFnGC`Xlt42fS#Iujd?95tMdh{+EgO6;?sbV`+W2GAQ6JC0BPABaGoYzR=%^y`Fe!Z;M^e{uj)Rgj-h!I9 zc~BI153Rg*3jG(VX!|Y34;Xu?JZiwiv>YwTQ4|#}6LcJLROOJWkOIe3e>17t{|!>L zdfo^lNk>O2{h5K8$f4RZ9tX%@=|_%%I2^0^J{}$=dMd$?x4fgj$5F?Um{M}|Q6*6^ zF=aV$D@T1aOg$!kdGb)j!y#A&^2p>FmvJ6YwuX5Xjbr8sP!gvlNg;6bR@a)GF5ZLs zb2N)yA?gmQr1~ft{PZtDQjY64LBCF_7(h-xP66aKCheJyv^#NzAJ3vp2K1fH*SIt? zaW+wjXsARZ3;yDK_;TdC7_b!OE0-mavy~6g#>qxHI@OEUN<3p4RGRcx*DCyFoT%)y zvL||GtQ+gy_^Ll+&vc55o!&E}1-?UG0=+!f7IqbRt)%i_1-Ux7lrk_=pg+&NXxzbG zM?fJSW67)-WIUlRq`y*-r>Ucb<>&&900(aX0aP(mH)Z=k*%uf~CFTDdvMxp4l;fAz z5lbZtymkL)9>Rp7|{ft`xm9VPyEJf|fxcaR#T{Ir2 z2>NbB*(kiXrni&QwL2&U?R|AHbnW?{kRGe0W zoz4FwU0XP}hn}Te{JRLvKOjm~i3y}1^S_d=YXDI#Fr=&J+D5N34r*mkX)-NqI`o#H zNVrig#1eE={sy9SRM$bgF2g|Th+LlmNpborkf_7ifh$SBkObBjF?JGa4-*=@2(^8L zzV`|BKE}$c+=gOKV!WH$j4wy7zDo$rZxi~K6YBRdK28{T1<)z#Ly)fd;g?~c-B14F z2%!G6)aFF{pQm_A)ZjHDO6}3VfiM)vWE$^t%RkI6PAyI zF6?Ca47mn&6PlQ%3gF4uev9;+Vw^!}v=ZuVfU5sXGg$6z3bj;}lP69H%7>?Ak5P`3lnO4k)H@-iX;g+j zYV?t_tV#nNJ-LN&lvLLynwBz^>B z;o8YbF6mL5Qb&$B($c|Ywj;Ukw{Ca~SM$mUVx1}-kdHIWqYgQ^BS|@>B$r4Q7RO`L ztA!5R<3uh)S)(=Qqh_S&H0Si0IIYF zZWEO(B`;$+<2{7Fjf`6f?WYLMX91lQv0Zq|WT0`Z%4F@K2-cq%|H}9TG#n@F0d{?t z@ngnb#@}+Zesc9$+bFRx<9~D5N^+AFhaFh9K5HTe_z%W3q5phB-&YB( z|0Fc$6Z#erS~n5;ZeuJ0dRnYs>P1c78)#6my9xb|v!p9IE;cW}r@&oBy6 zNY~QD_p@Ggelk$!M}|xBrhKKKQg+oJhGdkhzLoJY#-|v!5o$XKkzM!=wct^`;5JeV!Nvy z5oR34m|~pFm|-j@W7_^-YRzIM1ql3+TRI*4`?ORFzK^CLvr+k6`+n)Mjt4#qz* z9%THCF?6llZLHCRzFI+;+J%JrufPUy^y|S(IKWkmiy46n9(%(wgMizE?e2Y2g zazg*VV6mkZU%rbVmc16df=EtM=pV!{rNZG_e>2{)|%D!KYUCiH37yJZw% zLSKR~Fp1E24xzY}mL+zUT+Is!eU}o7D;e7eeXAKa5ZaFs`ko;ayBYTr`g$4d8{AU( zDj91S&mt5V#<_&0ix@v8{gyt-O=K|z&{q?hTM6}N3B^9fBaGo2T_MFd#;J@=j8_r* z+6hG$;}*te3H8?)k1)n=ax>N^G0sAiGq~|n8Uu~T2+gB37Ms6i*XJ1Z^Pq9b6!cfv zbuZ&V#*YEj5U#ee@mSW0+s9tG*pT@;LFF}PV+4Qa#xg4ys~E>Ko=NEc3S$;fB`!}a z<-W7Jwl4%Pd9CE~-$)0qa@J9y)VV0{^x79wg7OU3vuCfa(YExQ4w<|%!{wODD)0>y zP>puiQVnUV7=KQv?_vCaF?2K4aSdaR@k&CigRo>RVQ3>^NjIXZ*eg&niP|E@>lkka zRH{)+cHE72mWuMI9uM6^XfCKgK3u|k4$;k}5MQmirBR{Q$a1-hkyJ|ZCT@9<=&>No zJ0PaxkE&EwJf9+qF7TI!!j7qc=?y+9wl_c^r@pr^K1LW^4(m@R0X)>_b8;2SewuTB8))a11uYVsQQ`;Z6uE`SjKZcXSy%Cbam_{%=5?WV*;GX>DU4yXjtu{>rgU(4!R zL_tfgM^tIO&N9Bs*vlxs^jW*;V^r4*Lq@|1rKnsQ(>N)zw+7|2jst9j)(z*;ImGPJ|g0 z%KR;v8s;Au7g7MNozUFK_ypr_#{GcGWYpe)#LN#VMXi@Zd0bDtWncsrL7NO-j<~ZJ zzfEX%GWx&j7R}tiu8%Xmz_^d`2xHk2H#alMSjX7RxQOvfobj2A1rBf@<5tFJ8Q)<1 zn9;tK#ECPW#W<63A>$Ip)r^}NpJLp@_%`D)#uINN8745+GtOhYmQeH9t}Dp3j2ABE zMshWuAk=m<9waOkOI;aCLyR%Pl2L?Oim{gQ9L9RaM#d`{mosi4EN$S5eVSagJ%sxE zgqqdn%3D@5#%+_@Y)U~ZqX628gr#4j0HveJ)f@+?dXtF_ysW;;P0^gnp_(}qw#KqA zC16C8lq&mijV%$%t9Rqaqf@5A;WxFerIhyet##xMu7z>Q|F>Ymi zmhm;l4+yoJL2*hD-&$xRK|AjXrmoRZ4SaeOycC+Xj58>LwhYqpT{`G`F$L9@Gj1R> zpJv=cs2^m6H*IQVq8h6 zZDf3g(7clxtN9wcegNn+iT%*9ePTHYaw6jd#(Ktig!;9F<|@Wbj86f2^LdfI_Awq| z4BhSuq9+N>dP033<98U>5}J=O?qb{v=oREJdFgfsWjT(plslN2C0FxOLhS~|)r6sL z!qUeHL(dTUcM|HaGxidiC*I+TqfH>xbBtFKnjM7NdP2{z?R$b;^<9i_Gl~^%ZhC?- z!+05E8{>LH?I}Y2RmP7Q!*@~^rvo~*fbCL_*iJ8>$)TmYXMBn<^kW)Q{I7zm zymp3=y%b76M(7=}M|Qe`iPITpFkZsAn6ZO#9phF)vxo6djPDa#;x0F1Gfe0oM`%wX zH0uaGQ;^wAuGT{|1^KRJ*LKF$jJ!FiZ6a5FE8`1<+P`U2PV?B)zlPj`_~j`1AVm?PF8?shZQClGoJI=zux#Z`pb zcNp&@EPaA7^bDcClkotfv4%2^Gu9DmGYIurjMoxss~GPiEd41>!}>;Y)weOeL0I}3 zp>Ev6;xN`RUdnhI<2uGC2*s<6?=xCmZWdxRp+1FB%q7&XWn9JB&A5y4ZAS5ZHw!&M zD1JdI5x-~5aDZmUYZ*HTwe^JJ2|{x>p|+o~kI`D|iX+MhwIrdDAq-tYXtfgRiy2ol zZe@Id@gSphubZ)+WUOawVQeQHW+cWRuOwwqAA&DhHr`~e9zit%*D3}X{x zE8}+>s+~_(l@y69|2cgyK@hYZ(iSU4;5(#%BpV!?D;$uHqyroAxoeYN7S6WToR6 zPiH)fu%wPq!v^G78ja+t^I)o71+Gr(yaCXYyM7x*(AF_NMp(L=P=A&2V?ZZGJU2GO zKXN74$1!FZ7cv$YH!wcK_&Q@RIEgkl!sLdO4(uls@bvAq8WeqZ-}-S_A7InFtm zB$LUclO#zenMo$o$t1~ik|dc-l1!4xBwtDLHJzE6WF|>6NixYyvNK60nMsn&%w#e% z$?SK%uj{&BuiM%8@q2hYK9A@1|L=W$?$4j&Gm@M{&LWqPYeBUY)JMqRmuVkV9Z%4mNa81a>2q@J(nv ziMi&1dM&vXjQ4{@r^x&ZXuTd;4kkT8J%AidP9x`$E6GjdUNAZV>f%LdA9N$K70K@$ z=}wI8MGhiIlT$!7hg?nWBu|iaUrf8BT9ZA|eb>ucs?FV(Z zByCMK1a&*IC#VLJ6Ucd>UQ2ET)gdzfGFmGGb!W04IUH0I$a&;iQ12#>kipWlHQj(L zC%cf97bfNt|fPa`V?8bENxgf z0#z$ecPIOkBfx-1o0^DNH6M)DfoeB-imd-i+6UE!>_v_M^>k3pC)bgC$kSwlIhL#5+8M_)(n?b#wJVDl8 zk#;g@0*38DT}h50CxXFjay6)Slc&h~ucfW2He@gIE*wnp2*f7y&H3w}G3BGYLgw?l z^EsUpP(W9a-$#vlA!5T-spza2$exM!;s%hjxaxJKLkcYtd zG^k5oPx}xyCfk7eM;NB+&e*|VI1bcRpjt?-1@%raI0S0FD(!==Pc{dG4xp+8gHhyk zQ2&_yU4qzPBe@sUr^w=8qYsV1pcSaQf~qe$5)7u2OUR9&+Do1ROSsSChO5zs7GO|L zb^zn9pzZ_4LqRlnBHNRFKs}nA zN@nh@=QDN%Sc|{ItB#0`+n*+5qaEpgIKV{JOL|VFNH|1%_Qg-5*pVz;Ftv=Y!!2aucZcf$BJ@OMjd8 zK{o}XHe^?_AE-xy;UqAcLoO#bg5hpZ9W!(nVfbgWq)F}dXNMb^u)7j72Xokxxw;r8 z-H|KmOAZJ1L~PF7xpvuIH-y@q}>TF#N9{G+{F5GPGa-w=CmWK%h^dWTL=cS zt_h%;O)exiko(Bs?X)+l5!s&X1M1OWwtG_%s}_^hDu1`KAAt3f4qr2eUEH)Btc z^{dl9s5WFTas)Y@TuN>x50Uxbquw$w;5*8SchLWzb6R&sS>2l)OpYUGk;};q|*)y`7>;eYo z;^+%5#Q~}MB7+_cswrSFAB@+KTR^>^JOirwThOyMWLL5;sD^=hDmjl_4h9>+%$H*I zR>Z0Uq<$~$gK9!{1fzanID(u6>N#Mz7}V>?ZRCD1Izbk1P5Yo5ljUR=vM*RX609{2 zR8z=BV6qX^+sK3DDYEzv=uRWDHQALMK#l?9si2-ut^{+{pxRCz2DRRXKGY+dlkGv( zog74tBWIFJ$&KV5FgOin4`F%IC}f^FlK0WQrep`Qk{m%!1%tVuUPW#qcaulSa61~V z2L{c_&SXC@8V#zcV6*^KtI3_@2~gMl01cOcNjp$ifMFj{4+p~upqfQ41EXqC?K;0gUdxL5asK=4h!Dv3Y z5{x&2Y8QD7)U|h_4^7C9pza4I!@+1AsArH1$dzDH4XPdFak9>z(mn*OK-H1#M~)?D zgUKpTZv>OwU~q&y36_Mr(uP$LSkeqst-z!^sQZDza8OSn=YYXdP*;eJg`H#|u zRT;`o3?_5Hcp;d)0>*EE$wou>C#bnAt~cLiln1xa(N^Z# zj$D!avPH57Nzo(t4+Eluj6F;q1xt^UC&_mB%QDrIyK^`>ja-5~t52hbr0{my>Ev86 z`Wo4syar4_fdx$xdW{avV8_TutsIPmpy#HBGqF^%&Rf zG}cYEW`<;Ax|*s7V{1#StDyl|Mz$i`3GIGR!&pNXX6Q-wB?pni$+6@laymJiTtF@* zSCbpaE#yux+y}--!SG8kDf}*-hwxl5`8s(S7+wt~*9+a0Oy!i^#Ms4*y^Y20ChsF3 zB7a0aNj^h9OTJ*}PU57!oW%0rPvTdZ>viM`e`}a*L{juE7TC(z?c`3d^yBN&%1d`6 zHuJv}M0*iix;0AkCi^AU%~Q3^h~oiH&QTOgPJyAWPHPD3kd1||2E88_Kug9pL2UL% z6xyMN;5st%154KTN`}7uv%!IDlD?j$zh=KFAx4MPB`FTyOeI zlh<9lHnvvu`*h#wB14xH%7qlyMpASEsLH@d{$D?T-Dh|;GjuX^HQKz%%_i*s-x&E( zqF5esH<`})NcmB;nvp?olOEr0O6K~axR#R1AQQH~Zsd#0fBce{|8cO0{{@U1YBIT< z9L(k9tONC4%v0e}$?Kk*SVQtZh}BPlx#sv!N^)0_KS73QHaVYsiCh8dwP5r%xrO{A z`7wEj{0DiOj5nnN(&vCtee&z%W#m<0*a3_x4E@%T<<8xLq~hBR-6Ck4bd9<7F5;fZ z{FgkzT__cNPiPOB=oHo?D*9`>$HO7W8$JT&CzCV4Xb$;2`7*hZe2d&nen9RKy5p|_ zx)c3{89paZk@}rSI z?j%1U`9|4CLdyG6yCYzDBlsunoOtvJiAv+4)vb2?DaqLZwBxhjVif%*=!K2O6 zJ#1MRi2j#!N3Q&>hHj_3Tz8%w&fRl%xcL6F!?_=rus^0BCBI_+#}OYpfw51JQw{xb zX^%3VLBai|pT0-JOuvI4vjRCPT?>VuAvT^52EQU#3f%-Q!&Ipes3E@=dGl|BY7{aQ z-bHK)ia{F1IFvGI z4ytZoI0RG^$pz#Fa=*|%+vn~#t+~r9mgn_?eMYxUhT-4RTxtYz>Br5eisZpnpeLZ` zdNO(*)|0ZXn$~1@a)_b(4`riChPi3xq1H@B&XLFk61l`Y`0c-(+)5rHiw`4jbFzXQ zL{22PA($XkvqwwWd3vZjBG}> zB`e5Eaxi%XM==($$y6|&O)e%^lbgtWK3+ zMoZS4SU+I-3#NiRxPzf&6AA>|z<4(p90!Z*9ZyG9t1%ciC)<%-$v)%=atb*gRI9;w z8+nL4Mc#wSi0k|_9bnMJFm7QU{K?lDj0b|jSTLSR{(vN=Utq%FP z>67oCFw?!b33Ih3JAuW0!1x(c){QD2h}d8xIUX#0lQUv3NeR2M_UiP#dCAmRkO!BP zin>Z(MTWS_#QL(f+Si%100rU| z;1|Eb6mZ>jJC8FM^pd*lomMoBH%dPz7m=@#za`%#|3n@Dqhp}{4;a^a&vefkXJBP2>)8 zA9;j4MJA`y$qVX$sxf&P`mb6rwmsR6tR$~tv4M;oPF~LpV;MV{tRm-u!4godCO4AX z$UWpC@&p_WpaZCTg26yA90Nwv$OT|-wV~S%iOfzB#~N-xF0~yD z_Ji?BFbq}NQ(cE_0;<+z7ckc!R71$|p!qNB(t5+i%gx}oG`>I)}pgt;DO zH>cIAdLdW_Ms2{LE2#P#`qO#1Vc{8Uj11Ly6o{vTYAzTrC0BxaBe@$4kAmj8DeY;Y zHrbGDMwXKu$!=sNIglJqjwL6PRpdN!3Au{gKyD>>lLyJ;V6=xkL6+vy zPKISR*(b8vE)opEd%2%_d(O z^$c<$7_KI_lSjyW5n5{ks`g;mha5>xBNvhD!Du&m91M$Vp|xgYC$cX&ikuEci@|U` zxtlyi)-6VBEy)UU06CVNNiHL|kO#@I1Why~+mJoTA>>4I9;jA>;ZE`xS-TXiwFFfK zIS33Vl5@#bL61Q<>y7n9ZG0Z;|C(iF90rN$RIQYuh;kq@#&1!_(Gu*>4?#=M~=2(q~Fl_4|S0g;bg#Eh*i^&b- z9`Ynvrw)p>AiI$L$#LW?ayhw~JU|BLqKO7%IoXpON=_o@k*mq=VGn9U%2r z)7HW!WP7qVIh>qAE+E%}Y9|<;09EYgxo;xCXa)vxFH&D2C7bA*qq-G|`moKvt3?z-THME+p5HyU62Y>4j*m8QF>KOO7I^lS|2Javyn`tk)Q= zwIaKM!9Y+=BIlE9$z9|Lvd-7jCR9tZD;NzSCy=wr<>V%E9~hn@>o!SSi&}xI0*nTc z!v1-AA~_e- ztI4h80WdmE)@_y0~qclPmy&m zPJ0%%BrC`P2FHjE!!%3i?2S%&OZD4qW%r{G03!9Mb$=>8}atgTsRO`WD zFQ|e`((_{s;z^lAvUp@8%g>H<4Rxv!X-}=5XV>X+4mdlf8~cc}b4KG$ zIGH4oRpuc(_Sq6C^P3q_yhI{7pWzx4j@L`%HuK&IQR@%pba5XGhxX4y_!d|+V1NeWu^(o zBT}zpzA1Q$vB@@bLAeY^&4=B&_smt~3)C@5o{h-nhSPm(_&e?h)X{+fK7`~&$B`B(Cv-Jq>GqqYUqaTHq8HW!w9nrVUyf| zziEc%c3>c1u8J~Y`O8Zi_H%Ow#t?m<9ByX8S0G=}iX`lMpDSnQI+K6Ja^$|iN@=;# z%t?~#rwdEEt1Bw>1TQl5>no*fk`LQ^SV{M#t|f0{Df{zUlH^O-T_fqPljzJ4d_XjIX#Db z5WQE@do5w#qvgmIZzP{!hM%Ks_%(B~#FFIuDf1Ugy02>&EBF<2+0h&|Nxqa^rm>{^ zQc0_HQ^pMqeJ<%|+?rt-cwE7({e*6+AC~Rq=657BOa}EFayg2{<4iHX73J?8;~R0= zTDqjLjkKFd>V+#Hl>d|`&V=s{ec1IYzKdDqVzFVL^dzo`xQZMn7lR#B{G_4pfo(>T zeAw0{={{=}`5be}3&B{Dd?`6cVoCR zWoP3lve4qA>%zn8Fq*Fn9WyxhE)cGc=ljNL~5NodcV z!rM6R^dAfhzr}avEZv!w$QhPRy5F?mljLYEWWx5%8wvXc-Zd3wYpKSOR@hGNB|pRg zTlfn)=XxMXzAib7v+0LT1qEr#54;5PnPhHd{>*_NGX-2-`VrIH!tdLl%R=9bJW*tm zK46j^cqV*CdLUsx@PDwgcKY;{>9a+lHrbH;4+mcBR`fuggbI?B9k`_XX3i%sVkvnN zDoBzqWjibBzSI?DGt&c~%l1=}vTc=158dHEKz6omFx* zYDxEXT}$4`T(*=X`BHWqlI}}=m%N*~Y(FK*my&}~OS&)Bjh($8u}LLk?;`Id?4DE>OYLXamO3gubX)&NocW1hFdftnak1^M&_y-b{DPls}E#kuPeUZq0msL$_j)9N_u*8Wa%v#gqfwCE3M`KS1x? z4YGt?@8WIfN4x>cWZ!+YVV~gxxxRTM?u&Yo%%Ov}9DHDENuKc!WP|1a=d&+d$iHRDZTk%kd zb=UuR@^xG{@jGb7U5Jw8I_tuc?tAnxl3a@t_DTO_l3a2+6SkeNVrS(N)QizseGxmm zjy>E?*6Niu6CXsZJ`KjjS7D5e$#SxS>`Pu~>dlT+!hWi*Vv=+>matE{p+=H~{Uvc3 zHbz_yYT5j*8T+U5@x|B}mc9q}P|PIV!DeK&V+s2nJisKG>sZ1*X}FBeT^!e;2XR+& zFE5erO03%%<2WfZ$c5x;Lq7)j^@I2u9D~r0!FDv0^f)_uvy4H)zQvz1N#5CrCG3;7 zu-QFAH=O<)!+qr6IGj-?*7YOzq-iX3Gn|v3x6RxEyL8^>y0E>sb(ha$rmDC^s&<$5 zOX#e7k5Ixs=}jidS|k$oN$)X9F6~6Zexppp2=r9)glW+qw)Uw;!oEP*1xfZsMZ!L* zlu7o6LBc+17V3_FK`tR*C)bnjk~_&y$s^- zlb>Lsj_ghjAV-l?$hqWla-+}= zDA&QF(Bs+s~A95Huft*P$CfAbN$OE80Mb`c%x>H8BCwr1# z!&K|Rh>gdQGsuPHYH|yx_mL;TxU_xRowy0vhU`lABS(OG5;=!lPF9n9!1y?*i>^)k zpc|8I$ZlXffE)$tDdaqICApd02gWBsUD^SCXiBytdys>`cr2)Akc-H*4>R>w!^ovJ=^d90A5t$hly&oZLk2BTs>GolfXO85p%A zdy+%Q2|_oZBV}fVEDLG-up>7-6=Ag zt{-1Fn~4_SPl0&wNbbI+t6I z(dD+0`^aNtczrtAst(zNY)y6|dxGHratt|xTuiP9<6Yzd@)&uBEb5$gGOP!xmSCd6h-bCI>-cLSCK21JLzD&MJ zzDs^Yen$SAEZLQA67@Cma`IX*`ZhL{x(TuBPV#>8QSxc>S@LD_P4Zo`2V3h;e#8u) zk^d%3KE!}nEczN_n~`nF3bK+MOb%xsMl<#a@+bJbS^bo;<5}z%jD3atE%^uX6Y_IX z?Z()?LVlghbn;5Zev7;X)OUmGKJtfP_>|Bd5-R^~Y-PJFF1C!ZQ#j07s6j0vnIWH< zs8!5RP3{Df_sY|QD-;&VgFn*_BA5CH8GV#yQ0I~tkynw|ledzyIh1=C`vdZEp__ru zG6RkS$noS{at*nQJPGQ0UDC>QbFw|zgB(bXCZ~bPJWwws*ONQQL*yASsdEFm(}Zk8 zb|w3P>S^-^gqxBQc~8XiPxv@48N$5d$+_ejau<1$tXGltOqG*8$>Cr$4b%(BRpe%J zFL{hiZcJO#4ak;cC$cv=gd9iC0P~sO?Oupjy_(!Y?gPUUVCg9^JOk>6UD4lGpz2Hx zAjgw)$u;CI@+4XBJ82WDoO}THHcD8lCz5ofp?gNvLk(+}k~C8*26up8MQ)Z;)k11y;Zs=4GEau<1$tanq|9aT>DB!`pJ$R*?^@*t>_ z?rFVIW1+iid>+!DJw)hlAl{Fq#MI)nK#*)ceVkpenvO?T&6vb|ia&YA`to zES?6cndAy`8+nv0?U6RDT994I!Q>=z0lA*s3+gjuomg|U9Dt+8s!1;qrI!@+q zMV}gytw7Zo)cwd267Kw_)x83aI0tuG0LUJh>tQ6YIyyQi>Ke3Zj zvJM$aszJ3C3=WaSz0*$W=WtL5ElsQqyBdQw$QAVjgTdta_!L@K$wv$F;HD*aR9-8| zgR4uuid76`JNcJF?0ztj)lMU4k@LwVpyJE1V%}B+{C{Kg3gp$*hW^({mYR9XZ6gsne`Z%+?LK&(g4)Wgmw+$c{pm-8yKZ(kG!f6s7I4iK{XH5tHEdssP=>U45;c< zrae?+>YnoWbE5u(W|(b z&TmF+?tP)VZ7#i?10uVUgULzc0x(<;=JtT`e)71XzjEcn;v#wQt?NE%>$#?6b1-T{ zb^~(*z+f;rg8w+_9w@Hxhir2 zsF#D$S}@!WMu*6tf7*wr0oe-7bs;OkXo#Vo>G6goRSeHIEWQb!gNI8@*dM6t!Q6Io zA9Vm2%*#XS;2E##MGy%-b2GtTUR}Jc&V0Z}3g#*xs+MsFzh8;mw z2}UEx$zV7aj8=fT-*cx|n^?au_ZjMg41dqeOMDuoROvlw$HFo&YH#S*M+)R*Hhox@ zCev1~CrYV-U~VE9R@JC$DZ^_FZQcIJT#r&}FL{P+I56$4YDZR*qrj*NOcsNB1sH84 z_ki&UQ0ecbtwl}2upQYGjD~`_N#rbY5xJ7wNbVpHfZ++UbWpk|s<~lFC-dMZt^&*r z1f!8)ZVISpfodrjRfB2|7@YvaqI=WUqo#(r77VwSaA))2dK30y(h$Rvu}qqPB=w=$ zukoB3;ibr$TSsmN!#!Zh2~eFO>km%*q1uqW$PwgpFjz`%A&-!y-#7KzyO`iZ+-(Gh z$$uNVYb0oC^6EC`!F?{`zN^na7;)eGx&*X-;*iu3#cy4Z=FWnOjirN*?tdeYBpPs@$8@c48tAZqDYmszUDnGz<)AL-EvR|pq zOV}mpuOrEQrB1>=X}DBi=Pl}JhUBO-f52D4*dAmh*`FLlJ^)6e$Z=pGv*uc}-=+40 zm?YEg?pL*0CSAp_{f6ISj5l5fCfmXI01AXsK`dYEa}~PpAfIB^(jn=V4DH`q*l(@b zw&Nx>lH?m;z83poBEJ`uw2`c~RA|4%C*KyyHkkQxNCmRGzis1}8REVs$uGks%#mJ& zd-~)$d`m?Qm%MI{rjbj?P2@o`xevvflAXx@g27-= z4F^lcfYAhU78oogH<1U(BVf@lxZd69LCwr2E$%*7_a+%Pc$H_Dt1j$dydE|@a za`Fvw1NknwgZ!90NPbS9B9o8P13Ni~ynwufyo$UIjLyM(7*Pdddy)MO-AzLD8*}uP z%Fhh@Q&Ga653s-w$tmQ|z~p(MJ1aM0lGT1r@+-`{ntY4gOnxAAm4zeHHCK(v4rE_) z3^|KjNp2^Pk+pw-CR&2}W^--0-Krim8`XwgpY*+Q+1Rb4_n4l#T)LYnTdNN%c$gR0 z6QCZ%4CBb>kRh1H*o9!Q7SwylBSP1azhTPs8N>!B8C!p3I!fIP3_60kk{nDqtAcNj28o z(P+t)T_4HnS3=gu_QQWasF5jJdu?(au9PdKFnMbaQR+<8W#pS^SPw-FY7=88B3AEUv5%1T`wc40 zY^bnkboxxF&biIJ?zqU@K>Ms0o*fRaI6JJaJv$sUGgW2E2kp)dtD9=%?^YxI&a>0i z{WZdm)(AgcBm8WQ@XKe1gMMjy{#qJt!hWbr%;zk58Gkk`vgR<%=Fk`nI zFrEbl%gAkDd>9N)gC&iAlr|BSfk7v-J6Q=94**Msk|W8npqdDl%r|uVJ9*1&`XYJo zC(8|Z29Fn`K)4zVwvxNZ{p1m__#_#OPX`$0!IIjbst?9($qGH`UW?dZD;OREFbDviN_}hU12yY5~TbLDiQWBeXY- z>M-u})aT^C$kSjLeqy$fEmm>`USXFej4dM1A?uP~1;ah4K{Y~bF=LC!(lTTyZ4L$p z_TN`}C;O12$(iH|avOP+ES-!dT994I!Q>=z0lA*s zOP(PcK8YsUk(J~qvWi?zZY7V9#ZypkbFzXQL{22J{V$ayz-7 zJWlFo(*EkYWK*)7>`e9|AHxFZfs7qVP9&?y1%`gResQ(=L(>&ZT1Rdr_mW4+pepTu zzBX9W1T1b22Cc#3c3{#8%ykEYKI8x}9s*{*P+UBLu~R@jgPcz;C)bnP$bIB7GWKEdXdD<$A^*oLwCiGEDG#oi{0!vE&j!_8at*nQJW1A@mClMPCwr2^$!TD; z6x18ZU0`yAJVTcLENv}mM7AV5klo3C`LB74kRBW$B|Ew zv&iSk<>YV3&E%iR1LQx*;8P5!gls@wLY9-?BD;gy{y(gCcIOZ!ZSodGF+N9(T z6v)lRn`BXc#K!#N|M+vfbr#=`49RG6A~_Azv%q8lsF#A_YA~u6y0_U@V>hau>lzE*_wGzFgE-%dR8iQyJRYtdoh>018Zo&Vij>(EUZQ`y_Y;n@{<%DJeTe>U7u`5 zwgpuMIf$G{&L`KAd&tvdgL!Gg!7p%w7qmsJl2>eg9y%g6_avUfN-7Xr+5;@&VSuxD(7D z1ocTUD*i<}Wl{mKs5@~(+u71vA+E#^Eo~La#YVpF0}#-){uM1 zV1C*sCI8dCU$Dj|)>rW*)Dm^yz}ZNBmYli$p0J6#Rt+1$tgSsCZ&vRbTKm2N33oF z#x23*NAeYXH}(1k@EgpK>H77Iy$OtNBm0xzCr6M!Bqx$jlQYTZ$VKEU zxre+8PcPA57<-ibf-J?9MB!i3*@<4VI??}uqpbQcR;%mRZM%O9$WA7t!kFn1h#G=3DZQHvYWCgQ8fNyrdCP4dsV zbroWxIbi$(82t*2SCPLpbOX%G*oxZUkhWgLKN~4xM~c{FeiN!G+D`5!_mhXg8;s(bAt!;!(?WY+5v}97`ZH$uCHXS>Yw|5H zdY9Zy{tZk{fl=~T4E{VYX-c*t+mjV!FEHv4CJ&H5B%dIkA)f=om%!u=@^|F>X41VxH)+x*%k~tf-$eps4HTlTfz8FFdAg&yC?fQegH}F zDDqKqA`5Jl0#6|+sv@5QjeBsYC4?L%=t#HxYh_sQ#TNb{;;jQs&Qn&kgIQT!-l zA19v>y8Hf}xIWeAozf<1J%zlbGe9+y{5kncFnEDnO1?&}A>Sr9liSG;$$jKs$)jWi zW+(U;WB*O+!|B+9TI9K81F{LIE(L=t$g9cry z!@VTDx(U*4_#qa(855w!F!o2J{5SFLZmD!4VoT+xY+P(GSz_&;DA{ZFgzHDGt&zD= zl?R{eulO!d$uv}>p8=C!7`n1b&I!$5ER9}9l8rq_(*2S0s(F9l962Uj*rm)efO z4qBM|MEwU-$fbu8PUdz(!mnsKz6O-pRH=|@|f6}G>Dd=8t6Y`TQq4CvpPsvM&a zK)oM~jv2ac1-;CwX!$K;_doFjZJU{})Rh#QBi?7ay+$TGHe~Xxs?X9^lXF0Q0hnBB z=qgnGq{6Ea4ketFn}ze~c3u7#lNZRmM?Eolp|q{{<4#;(&#G+E0j54b1GgYaOKf&t zXI^^Nk}7ScLCa4j`(aBsl1zSt{Y+K9)}f&OAs9Ug>RE=a8uwhe5aD3Cp`K*w_Je)h zgp&Z9U%hFMW;;Kn#aV-K=`t_ARh!PRmR};ymcQ04wB67C7r^b5B9s5A zCy9)Z)79*1V$Cjn7-n35i2g@^1=UFmC48-k8So2cUR{NuU9!B{^uFt|+L?4MNtsK} zCS}5* zzJIp;=3F{S$}CkPNttla-3(o`yt>tdZ6?>>;C4)nvS-NmP1rAr-8HD+MY{Q^(TFXn z^XQc8bXRlz_(4iirc+vyGMAbydQLr@D=wXrqUHUGlJm?=`u#Qvoz^o=sdMaha&IGC zE@63Q^;svHtbS=`fO;;NEJ0ntD#LgS_J-TFQlZ~~wi)S`ZPl-`M7mX#oNmCOY~^?@ zYPR9zz7A=+e&Our%H;PZtDO+nRrNlLZZd~{QupF?6lx!n>@gupu2pwD@8e$np6u03 zx;;i7$KG>m$#gAAnPss>Gt1_d^>efz*}eF0gkAgc-_ZNLDpQlJ!;_TTCJ$nkT>Hb! zvby|%{cF#<*hZm*6L~wyrE5vb^v5P;!Y-ZL#-%fCpQ$p}R+#&{Svqc0^`zNm+4-_z z_D{*TtdkL@Q+~c>{85pq#I0I%KG~GK64af|`+|Nf9ZYO?uBF<{4hXuMbl*%LL))xt zCg{(kFVY_Qq~T2ZPmQGUND8LcsPLyudLd2nZ7(%pJH>vt+aVc%-f6bL<8}t?SXVT0x z$&JnZ3A7!HJ)i9<=dKK?+OCbSWH>5Oc0h8+FYjsbElJ15aeTG`1Q=rZrOEV z)Cm8&MtE%+b~`M%$2|E&(nu~gpEPD8r6n8bdJ^1lu{k~Zn7!!3_nMN~aJL%iLu;hp zQX~DrG~I8HYcT%c29CeCS(l{TWcBlL!hAB74R^le?C^~>!rg0xZ%xDgO{RnLCX;)= zDfwmk-hvyeoKD%XX2N!?nXnyeCTz!=3EQzs*f-VGH09X|t%i22UvjPOSTkWe)=b!r zH50aD&4le(CG3~gKIup!xz}zuJ5pM*k=eD*ydt)1oeA6VXTo;;nXnyyCTzzqVZYY5 zajoyIvDPIx-a|Y7OxW)AOxW)AOxW)AOxW&q3IEsl*Zp7Pm&ok+Cvp8BHl578bPw$K zGwF8xnXnyyCTzzqVL$${9RJiB`uYP9P1x_l~|9cw0R$C?S-v1Y<{teLPK zE5m`^>vJ%-F8rcQyMJ>TT?y>wmP6bponVq3YbL4g0vr)`n3<&3CdsevN;Dg8G)%_e zwLthzjj$bNCfyD*6Sl+5gzYdT{9jwTl*hLnyS=0(GP|X($3f~woeA4z&V=pIGhw^T znXnzdg#Dnm%G}!9xL_~G|9f*yWuLyb)Ce~)L&+ZJqfCX_uuab#X*N9*w&|Hm-lk{5 zHa&Am*z`=;rgPhbHa!!z>0`Kl?@RwB?Dt9!S#`IghGB2GC+#0%u0#8zoeA56EEBc| zSte``vP{?>WD?G`?6!*{3zeZ+E>!X2(APZ`rtA zp9$OXXTo;;nXnyyCTzzqVL$%5X3(BxHOBu;jqzu~cKn&J9e*Zl$Daw?@k{u>#((7h z8oxwl$3N&2gzq(#=uFs-KNGg&&xGyxGhsV^3Hw2}<@mdD{PL}b%vJAx-|i0H*w|A+ z_Oq)c$!v9dK-eUARZYcJXl`pQ zd&|WZ74W5}fU)-J#80t3ZHswC*ds$Ws~=ouAKTN#Cb_{at}!?sY;JHY8raSc;fQ^?+)T+ZwG2DSM9Kge=?}(g zo{ol<4IZ0SU+kxPP3zyL&J|+ z_K^Lumljni&#GK9wie$FyLmIWkaifEuuae0d)Rc|d)Ncbk3dG`Da-0dF!uRyigz#@0}IxW zd&pp6I`W{2(B9M(WGDPLn=&@THnIa06l?~&wn1l3(I9d%xtQEc z9wBSL5RUhK*UQj`UPDGWcy%>nw~*V(UF2S{ zldD+1?d0Y+;Odsj+qORT5!?wB#mCdK$sH!PsKkU_u6!L(U)~{&jp`vbYKpQ^Yr~TE z3|}YV8yW5<;fWWewIsbw*fpaEkPncfz}y4)3@EXGBO;s1Uyle}={jqHqu90-61x}e6_(6I%Qk;rl58Pu)3tn@k&}lac_=Xt~x-;&a=~bb~?{a=h^8ZcDh(P={j9YSjtZ4*y)_@w42B(%wEy?=ycJu*z`sG&To8!jE&%m8VCL@t)weNh z^&K#{1cyN|?vk{!9Dko7cMJ07ZUe(Ra1MlbO01ixgY4w1{KJ_15{$T+&~`nzOKNcI zSiuYfz+gP`hIg~!2iV#?WH{$hWKiRgAz6zI;Y4I88HBEv+y~a;Jk;Vm1T#>X+Jv5| zgJkkD#@3YVMD{1gk#oq^UY5SkK{g3 ze@1=*2JyerU6Py!>c(K$0@Uq=ZjGm+ztIBpS649acfsgxau}$8NIpS6Lp}#4FM;}X z@+~mh3hIx@zmoq1Lv=D8v93*?Pc{O>i$Q%Ac^#Q~iPMd-m0&UmwBG}Cr&Azb#t3_m8HC5L10>lYE5yhi>8jDJsVCqFjyho{`2YlNyvRJbi4B{u+E%P~Ei&l#$dIc*hWvJBxCI$>KXM2;ikv`BBWIHf$>ro)aud0O z+(#ZEPm#$f%wD^1fpr+$h-^-_Av=-X$v)&Das)Y!oI=hd=aWmx)rNkr$t$?rMuz1T zUhX}H<*6yRli`cZp2>Y;!fu6ghnO^0vi^hN@e)4GaQvkS7tDii+E!J^gnd;PFv(Wc zlwn)d<;berfVobf{tlSj2I{-X`-N_6@8cF*k5_RC{}NL_!eUQ=(KDzaI>{R5A%k8* zu0mc_ds%uZs+MFoa){7A>*O||hVUIQ_aPYU19SFi-xdpxAvT_f!zd0;r_&qf!K5}A z*C#I$+Sy4aqi0DKd)5+p!>hsEx51zrn7fl4NZtpABf#8vFnogi37Gtne2ILOd;`qA z1;(4e@B=XSDR~48z94h|PUoy}9vCzPljh`=hHg7Ya<^-z-iO zyTLqPQ09MN%DQ6V5M&4+At!^mpOVj#zXbEY#DMcl5Sx1q)N9F2f@10nS*p@WSB=P)WCyZ4*^eA%=+7s)sjek&jry=K^Pd8_H+&^iHa(MH zlI$X8-^AT+4!v6PCT{jkT3Kn^l8cO`WL`ee$^4%~Htg0d-wOLMKMq~bJr2fGz@!QT z%G+k7TG!#6Z9yVkwb5LY)%8G2lFQF@{W59|e~nsgEk%;w)e={ume|&UR{Y=?De~>f zh}fQ=Q2A7#NZt_l;n&PgD0-hQOSqQw&sSon%??r?+MpH8~8f|VT|0}ZFRsS6smY+3E zuFmiy(`L=$;io3jj<}c;6dgJ%ryHy~Y9j5M`ONMHll;r1xHfW}K#^Z*6)HbtcCu_A ziX`2(=@)If8F4oJ(=_aAjwGEe`$);eNY`9cY?||I0LIP8t3cfWjJlGQpdLhyBp)-( z_FHzS58HlA*mXfqW2rghVsa%It|zyF@jmi1@+7IFbii?K@&Ztok*&d`9ZrX&6R594 z2K^mFKPt&<-*xq2Dd66PwXYHMZ7ekqOdcf1g8B*a8S*(W`AtPSd&%z%eUlQK?Sdp_ zx{$oY3SK4OAUBZjk~_$c$*!1?*v!6XV=P1{r>Z-T<=pa56hap%$$kmsyw2AQOHMZ${Ty1=FM-kP4MRoIDN2xg?$U_*^i$5DYH|XgR4v1y6wviSJyIBpf{j`{5VWeG7;4L``B8|%tv~@ zM!EJ9N%C`I!}fw?{%9I%34cz$NWM@G)a;qNwy?Mwj@cCBu$zU3uKT)wtTi)h zX2jgb;CjR4eB?fBSP_3jDmkj(nhPyGzFV&B-kr zXWrXZTBW%bs;l2DhFisayBHmT9hS*u{+Om8d`^f)~~B6(&^JzF=;hf_D7F<$`u-|6OX~F;1aMofym$ zy~Tz}ZP$MDzwr0@Z9824#CT|5Z43Ix6DVxk38d@$sH*s%eqxsR>&${t!B)lN57OrN zXkYkMWeN7dBZh@95_Ukm4oPkAl)8GIhDojXE8(1dOOmvcuW9XDmSj}!w_^O!)MRgT zO$kE#OMnG$s={s)Ds0;XJ^oIA`wJ!orz8H*cXF@#S9Je*_r&r(-_U(O&@#R&z5B}O zSC+d@c`vg`UZQ-X2Q%X+j;A$tv_QN1dLM!IsIR^s4&0-Z!)9x&6d&jAfj` zeX%k)H*~6Q~hUrygSssVtg>zm<#(|oi zGpd04NN>PIDqz84C^!Q)zzuMZWpYuhU^?rW z&MEcvt{El|jA*OrP_aV;9M(U-NRO4|vsJX?P^JCARl2$#G!NGNQ?=SLEA7tYMC60V zvttS>VIMfyFnRhpUon&EvDkcVn*4Tl@(>uMuH}2$YiZ?sqRj#$PkoPS))8eUL`@TOt1Ai<05E9T3Rl7Pa5LNq+u>n&5}t#X;SG2fM&Ht5R>OX92pk0`z-e$M zoNpOlhrzdX<5s@Gd`C8YQ}9Exx9lehh5u`qh9;W_TxI;no|D&_2Bmd3z&-F3?1K42 z*`c|E;6ykVu7q3RA=nA;z?%P2iIK1tE`jUeZg>)2gVAB-9SA2_CTn_03m066cVJMN zy>JCRVP7$Pju<=$9}>e?iNSQs)1xX>2NVz2Y0~}@G1C4)_j+| zqE`o(z_oA(JPgmnZdiFNE8z`-w z!&MH>5V{+9|Ab`lU9-4RN77Y zWzh#ruE=gG?Ix}D2;=7(CO$B8aNn^ zfm7jZxCE|(8{tlP0G@;w;0-bN27Tuy=k(0J+;M(sKc-?g$(KLQ4AU!bH|cjj?7f=j zhIIlnG`S(78ZkFOj2?s!iMdya(R9(71>XtZ2baT-!B4|2a1T5JJKz;~+pzEe^Z$|^ zRj%5wFf>bR;XKoX3fE$gx;pdivK1`Ta3ypm6!o$R(?`k-^~yaWItyVVTmd)0?P6}9 z==}NlD)G4X<_q>7)L!SkOy{un<_q>7)n4bgm^&{z7vP7KtcoXlV*YbFpyYG3(wEsyg>9x;K1_dpwi>Qx z?V((-tfclqwo{(Gw=&yv_lMcTgKmX^6u!3YyO++kpCa}J@_Lr`WgHc{5||X z(fJ2_pe9>M=hN=ks20`6NA@?;hV(V95Hy8VRG31B9km?P;!4Y$s08wT49;Y zX{+gwe6l2%Y(7+yx0_14Nq0^wwKMK%BTwpCypxqJLcs?}&ldJ3H+`l^FIBgXh8#aGaQ%A_i|1qesN> zU1HE^nBE>M4J)ho086uaDh{e)nf2W(SN=ejS_?LVmMU{9)@p+?-j!ji$ODN5&f-V@KyM@=zkZU5xrlE z{vSl|ju_Yf|KDwxDM`tXJ9w%bxwIliGDq75QDXF zD{P0yVJEyH`riL$)%?D26r3)`kBnqV;#)O&5=HiYF1MSsZExVhb{w}m3*+47{`qGVi{ovD9hP9$MUkp}?Zma0*7ya|1dsB3(evy@Mhr?-bq3Ab@!B)|2 z7sC$Gy$ZbxSqZNn94)#tM88q=*27(*dtCIcLg$y+hbz23hUEjzCRxs4nCMLu{n?_o z6t;-&Zg|o%z9{@3>NL66=n!4Zs<{K<1UN_ZSBPG#=(LOe8N=k^5ZVuESG?p6*_G^H zqnGomtfb#t42FyDB*P?)JI}DJk@k5cbMo+5rcW6*C+<-;Z`x+BL>Gr?}F&u65U?EQQ_gDGYu|=>){^JJ1sg_MK`*l zyaPpVyy(n=%i$Jy2ws5qM7Qs6Rbq_j%n;p1xE{8_qwoT}1AARniQ%F%6)uA7M0dC7 zoPgJ0{&!hkXE2-$7r-^J4W58kVQ@`(2f~S>I}ffDoh_n!NOU^kUD)UMDlta%X2J&1 zT@QD`WAGxpW0*b-s=GX=@*U>oJ!w0GZTr2n$D4MAZKuzHI@3onWZ;2JCewn7wKBIfmt*(nQ@x(=M~^WD4GDC2+Qh-Vu1gGI{Wy z*Gsj372bm0GqN|!eoxpB4uxajWLO91!3MYze#$a=KYm;Db!x6_$wt9CxD;-J`{6lw z8`k`hys!=~g`41hcn;o%H8;o$>)=wj3GRpI;B8p*C-TBNxD;*@-Tk81Ax2*?7fkYQ z*R!v9al70qy^6Zj)%R{@b^RJROmruR-fYobD*7#OCp;)Rr{N7)^=B3S4_)8EH$`_C z9j3t9ut7BccPUHeZWq17qI+KSx-FCU%Ug9xx|Q8o24|2MOcK31FoFjl^SYxb&Ekk$8;Vl-Y3UI>iy{6h~}3vYRJmTVx|~9lI&4 z^S1wQBpwrID>nKAZgHLBNW2DiVCl6k8HvZ(l%>a%j8La|2DTl= zb&4a@DUQTr;yT5VcnwOm6K5-q#A8ZE;xTqpX2XTq;xQ#7@t8PU$uT7(@fz4o@~pB4Ui$T?AQF$U z?b2gPMyO-Ml?B->lk2)TLY?ABJjQO4*B`5N*6|vYJf3*nN=D)_aW)$+oLfAmWQ004 z{G>5)o#F^}iX+r1j@U%WRaHDU+p}~e9uuGKl4D9ns8c)x>J&$)QyhuM#C3`z@fz68 zldhe34N6AhF(qdmk0}|UPVo$=QyigAafCX>k$4U4CV5ub@RRNzo44=^iO1NUrN@+v zP{+=tFq`e3+&{$;>J&%fF>#&ZNW2CmkH_{bc>S@X3-7r&Tk(;`V@gJ-Q#=Fe6i4DQ zC1*{Y;xX|W*ny?jx@06CV-uAgQ!+xG;u+Wp7rg%1X1Z?FDLE#tQyhucpyaG=&w|&V zf;#b-IGa`BwG)pi8KI61KWR)ngW?EviX*li*-i3lRxr1C4eTa)9@rF5x_@lAvLF(V zu{lbQDH)-T4Hss!?Sj{zl66XsiR%ynXpj7?d3Ovwm!if3Tk$#q>Ep-yom9uwCoj>KzFa@O%0l#Ik< zO3peSQ!+xG;u%n9sBy ziO1NKrN@+vP^Wlqc3K6mKel4&*Pnt&JSMJFoXvJBc$Fy_V|$j4#AD)YR)yD2Jf>uX zIyU^IF*cmMmRP076OW0rl^jzt60e)xB+n|_=SlaE4afgJuW;Ssvt1mC*R5oPIyPLG zEglokpg0nbiL(_);xQ#7@fyV0?541eJ+$OLEsn%v;%vo{cudI%b!@nFo#F^}iX+r1 zj@TI`S5@)cY|qk>c#KV1`ka=GP^WkX)G3Zor#KRiiR%oCIs(Y`D-euI7DD)tsNHTDX+HtKfRL8SaGb@Gv|H&%w*^ z2D}TSJK15n)o>V`0_Ve3a4S3r&%s-;=ijnw-Y_^>bmzjAa4S3r&%tgnth$?(aQlef z5YZV6Yb}#A^jn=F@Beg$q6O+3HNfR?jp%QJZK8J&o)!HYF!*~mU%!tS4u_M(U>00t znM~b%X7Ha`VY}!Z7yZkkciS+Tomc%2^Et8sW|K@I8fKV=#@Wy`8;Y-@ z@LO8+@Hi)ECSw<=um2PEjeccMP@EyK|9YXEe|h5lPQAR_q969lE?oa9@Y(Q%@MZ9| zhDja&&4v%mr~NM5-mTxA@t2x*a!~$i*aEk~J@Ala@}c+@I%dUz7Rg%0 z|0yQ^hqh_kh6?_{ZN)3~xAH4S*aXS(JNL6I#_t11!f9{;Tn)FuLt=Q|FuDBv7W03t z!ta}pc_nRknE8tyaXXoUb6umH@_%Nt2?xWma5|g^o8UUQP4xGP?kUmlg60=UvK8qA zM~LARI9v1^;99sH9)umD*JYS4#!mA`!Tn!oaXiZh?B82W7RL?TY+~L3(HSd-vtff} ze1k?W(Ipa%hp&OP@GW9)9(<4JErpxSzno8I<~6IZw_SyEkE(C@2{HPNWqiTq4m0ee zVS2HC!E`A2M+o^V>g9KfUb&YoMlcYLh0{cT4qOH|S|+chkK4yca`Wv`hv2w6_>XD+ z{vP-(cmnXH@m-lh=r-};y$C&-A{{?N|{_mTDcFZdKa+1s?ZJSQ%J-);iOm6q(suH|u zfO%JA|9L?&DrSYvlKjef?qjBEva^rrneMbqcG_@ytW)e!Bsa)h9Z>G4W-*e~@qdEI zef{}aJ7#hd$Fs^cYem9k5q9^Mw+@-W-$4uTUbdmuC|TKV$Zme_o;BF){iYeB3ZSvVms(;(vx#*e>`#Y2RVg4>c<6G$*+HlG!Aq zLd$ZyGg)QdGXEWuI_{M2w4IWjHk=$r`OlQU{1;;QYcaZRnOtnMwGjSNF<5VyzW&;m zm@s^ynN~6&Za>|$(*!#;%0DcI=U|r@+=soQ>|BIHM1LHtgNtFaVe(0J*Zw^o;E7pWK7?>Pxx@x6OGjx0T~xF;6dXYg_ZRbyq}*N=}&jYn$Dkt8$wy z-5Dp2ciM2e)4Y3hD($JR;(WVRPuQ6}d)z)|XUZ2?Cg*OHshn~uoC})_lc@&JFkd)F zc9XY9^5mUn{z)oty~caH43qT_?V;yiV%9rp2XWh;gycH%Y&*2^9(H}=MM@*bO_I>| zB$7`0lq!XnR4KS+SXpo#24&e%2ED}GKsZtiC&HQV)w)c=x9A9byElFmrB|2@6+FM9 zB_=`nC(L=Qw41ckx6I-d4r(%;daP3^e*@fYn5?sFM^)HIVL^WPy`~;JlO=IaXuNyP zFsbU;@#Xn)we8SyE`F!lgpvf#NYSr@3&m&!++dhIC;exclUCL>!5nA&@b%Z)wtXHI z#(A5O#0Thkmb~q-N#ge!$@LwKGM8JY}ZNz2gK;3W^I!W(Ps_Q%iZoRIPZZC zCGBLr;`Ory3fIr>EL^{Ww(VMGH%Y17X-y#4DF#By|&MQlBL(B)2*^%UX zTE^24Uaf~+@J9Fud^h}{W&AV@`YKs40!}teFUS7AnUmdA+D$UbpRKO`QqfxvcZtDq z_!})|aKY|P7XG75Y`rGtcWanm-Xl9;e*hdK2DNamWt`Xhg7SJ_A#a2F`fK5Kcu)*F zER$r9D?{$GI`}ul++ER+s{pXX)hoDQLiN5CH3|1h(XT>vI7YQ!||e5XBp?seNU^M zJ1zS0wtOG@%-iGS3iEEVx9Ta`9K1eaFd9yS^WZWu++di#Z`)#+ zzctw0j&@UJH%Y~?jZSuNXg5jEeaaLZf#=2WreSjRc=lV+!97AXy%ZW?_<)V4_y1Va zPB~M(f{M}REo~ERdpSmHX>T#?VRt44gFUuw2PLV3Bc`3uJ0k`+MDM;B^nI%Oju8Fn zqBmdkSBu_e!}M_NdCV7_%mak%$;=m=(Q``R-V(i@HQ5y0A)+@4&Jq1(qPJ1>_lV&M z*a@%0`=ZzLX<6Z5nCOlZy;-8$BzhY~cdzK365VT}7xd0bxcxkie9_uo)*0uqMz@Zm2d~ZahCCe*c+<{ zu{Tp4@(V?0ndom8op#ah5WOxKJu@rp4-kW~qE`o(i2gdbLktdyeuwB?7lWu@RxRi& z`Xk^pF}G0kSHR71KRgY)#2|WBR?Y7(24h9H4mQFTxL5Q}i|$p?vtPfZ57@qS{glfV1HO*kGB=_YCu0t`50oG5C}ieGz^c zejR?xGRb>c7eRCjMgy`NJ^CKQehhyOe*^yr|0)Ll^Rngh9}t7Sa4;MxMiazfDy$d% z`C{+^(f_Czw209*G1v_cz(1MqU#0i_aqW#d#NdJ$T@!ZQFw zKQS5tM;a#I$I8FTeBY;hoI?I2F?cXZiGW^XU^P2BVX`Vo77E(X65qd$qk z-^3^!lC6XHfEYXrJ}5>HiQX&4pcXzNM(-BG4~Y5KzgqMCu=eJf4byMq{n7kXC2u#C zc9ZOk{%lxgH7Ll3?37suZh9qV)R|n{gLQj z5QE=~(O<>DADSIo^ne&VU5uV9x-S&{aboaVF?v`G-X=!x5rYqk(WCIwqW4A7{hDR` zLgMt+ONM(`9h@JlLo~*8NPj}`YqPgJ{{O@AyR7J%X;;{GdXd~vg6OUicvDru2_DQ= z#C#_+qgy5V&$Nsu=FYIg5;njMa1T6XnZEN=vS1XP0H=w$nPT*I(Oo3w-v^h$)nd3_ z%zxf8o^QTO)A9d?zgNS819T{VPIeUjaXS2z4!zYO|0{LK|4to(LFy3vnGW~q zFxGZRCRs<{{IKj?-KYc(v`s%q{&WyrUvgWExeo3P6KL@m9dhQcY9@wJoRLWTu&XjX@Uj}PZ|XlA*u ziP3&|1fGOv;YD~&47=e!43p=#Z$GUSe?XyN3Q_)r*=dWOVwiLdUus^r%f^@=E%vZV zjx2hny5^n-hZ`n8+4szsoK9pn<#tnLH|fxa)IWM9e4SzXp64Z|Or_nV10J@$;>)7! zMfOiD$7>tDO=H7FV(x=tv=V+o3^$3<-}P26dd%!ipGkIaRrj;AI=S71iazn3;}4qW zzDe4{hUrVEJ!*aemabB)9x|85MxB|Aqeef*2Av*b?SqXQr7*2xqa3Nd)H;B%5 zF+41~XT;zJ3?9r12YuiOI0epuOGS4b+y#%r%g`B?Rdf5pv9KOCihc{+1&_iD@D{9m zVOGr_D7s@sXC`cdo8W$U7Iwp)!?P0ZFwvU|=fjn73p@ZjMCZEbmcPi9h#wWsJN0OD z-V2w)e}j+0b?`HAGn}k1)ttxJ%da3gZS4Io_?wq!4|DSgKGA-dD4p+q`W}YggQwtG z_zU=Jcn$su{uTZc=3bP&W;s>xsjx2`DEdR;NH`Y03QmI$!#QvPTmqND)v#PI*#1cK z3k=Ef`Mu4erXM^TY%YRuxY_g=Z!d@VHSGcWJ9G&vCu?tIt!47k@?4uM?(5G|2fq=n zQ{QmCW|RNCVfv=UzF)~brcks?q0oNzH2z3!($%wi0tCaaSP?%Z-49_pO$h*H%t5;Hr;D~ zw;;`EJH*pULSD5pdi~)rF&JwZpXm70zbSX<>{bjhS3(q5_w6UAlaF6pmDx@F!R*3c zu6vbIyE6=vX_bA)u8!R#)2fVg9F>2wPmp*5xi(WZ8Q>3nu6Z+RH_3qfznIHBJ;bLC zG4Eh)I}O=(%D1axWY?s^Zjw;2fO$32>rul>zJ>@sp-}E~PYi`yOgovUyH~e?drAux zeA#qJ-%o$Tu*`n+vGUF4GqK6Ma|dif+fHWW9kvPMh4p>}FTg*D{$1$3I2%@04y(od zTKhkZ;stfDG0|v5cJsRf;RHAbu7F$ML3keChP_^_5+mSrxEQX3yWk0U6$T@fcK{p@ zXT#-iGduv#!CSEUUsYl_oCX)cwXh8y7lSLJds_@^MybRg(VHYX^F+59?i8Kl@Ep7& z=K8!OE8z@-qeXv$=*)&I;daqGCc2lPGde2~^b?&CVmL!|7QywRyH|9+s*m?M59l*F z?rA#wP#xSq!W(qx@s{jbcd8!BW>)?Yd)vo%fHPcso$+uwY=AEy*-Gv8wu;U(%p}tf zVSL1VlqWby=(QT_o;7=uUe0^W-pWVKCT)Mxw*OOIov%TgJH2bKD6QKq`qg8y<8y|< ziH2$N8HTyJguYGkpTnheSPOT`B#U=id)-da`MXJ$mVBO>wExUm8t|YF!n?zO zhv@KTSo2cN{9EP;9)6h6r$l$O>6Omrzs%mWZam;8wChc;+0t?e#vz z-hJBZoP{?H)5Z9@IiPaVc#rDbu-C;Gb$)8zXNgTo3rXW=baJzjOb zL-i5tt%VJ61KbTy!RxT{6)G_lPKNX0D!2_EftTPd*lU7HjD)}DfM#f~+bBA#;C6Tv zUWV=*UEba+Rc!#A0B6G$a4S3vFTi`S??jat3unRQa0@&HFTi`S@2kiQXTjxg3p@lb zzWg8Sh)cpLVbqP!#F47dQUfo<>@yaI#QD(^tUg6C2=flxhcf~^dAwz)Z?2f0HI z(Ca+B1A9+Z-O;cfHo=#Zx0SsI;CXll_I@2DU_EStt?&Rm5AVR<)5r_!VH0eH2jC+d z&^h+rhW}27n%8F^vv)=rhVidS+fCUx(@ft*Of^hT-6BK3fzUd*8=ivKVdZpX915qx zFEOu0?EN--*O|TPL=Ha3ToSwKbp&35zhdk^q4Ne!q(2-F=fIV4n_*i0h+*zDp-a%I zCAncbV7y^8mCzhQD-H7-2yKH$;3eq1kqU4;oC8-Hrc>Bv7_<>O0xv;lM)r|d$G&s$ zpY=BL2CKi>nO+McU@dHbE%13}Y&xu+y&bR{R=LhS;Ek6@^(|PqA2`Mv)IvEv$OKOMi1B_>4L|j zHav(H|nZV??hGE*9N2qVwB&9nVho9*0+9G%G6{^b?&?VlYi~=EG*g zq(sew3uza?v4~COOcP_MFI;9y`n!WLNsnd&iooUB^xT2DuXE>WQwDOahms`N?=JhLC zrb?Lqfw?l1GLdDO-6XxD{mSSZhL@oChz@5UoCN2?HEBQ-z0! z?szerEqaY&ut9X&;4yev^qd7*39m04Erv5hccJL5f!js*FuVZoh+)mUvTFVi(VYnA z!j*8lo^b9O_HGcv&7!|k^!6JjH&$+l$xvZ8$&HljP%rdi{5v>03$J!eT)&Fc$CivDylnlF0G#N0+P+%87#qJIot5WU-?U;RGK zVTc$^6m#{Wzfkm6i@`S0Zx@48qI+44oQAAg)Jt>*i|%ANUvyT8(L2mv4oh$Tt=b#z z5dFQPcSLkAz`L;b`?Kk|qu>nDYk=$EPIy>!J4EjW%r~mU060$cX2M3e4(^0UME5+r zC3@8#$g256L~nxV&J?{SxB<3_?h(cdO_h61@)5?}GPX^@?l` z-XPH#2WN}^3fKa7irzudKO=fq;9b$}`R`d_cLdK*M{x9FXOSD~{?h5N!$a5`Kl`pu%Z z3AV$N@CtN3npJcAiryGlC%O${v;l61`^4OF(K{#lH{g9StX`eX!5bvH<3(?l=r@VM z2GQ994~yYN(Y-Eu`A4&A{s7S%3ulUMljya=y`p(M|3OKsKgLB8P12R z;dXcgUWE5xpO34=XjmskjfTl1EVst6e7!=s&0@4$%pHLpVsuH&-4e^9wORGBrx*<~ zOiD&$49mtVl$$0-bHrSu7&VJ-E8Gvy!fx2}6WK)EVQ?y32-m=!@EE)dops9F4~~U1 zVH4a0_rVT$6IOjvC5FN&Z~<(FJK#}x3Emf-zUx(DESw3O;3l{acEFpk>Ql-)6i$H) zU^CnSkHSmvKJ2?eCC0#dxD;-L?eGk|0V_YPyhGq*I3KQt+u;#-5#ED+T2x{*tb>iP z1-8Qu*bS>cqrAi6G`I+^g>CRSydnnPM&<1dN5L7e0d9bM;3?Pz^Pg3TL2x3R3s=Ie z@DS{TcVNvXl^6+Y;S#tW?uIAfH5h$Pc?ZG?a1LAnx4?t&JiHBiwW`DjI2|sA>)^{@%H!UOO;yaRi0 zCoimrO=8e0hV5c-5?&JB+pyPvsKf|39WI9J;4XLqUWLI9E?C*F zWW(Te*Z?=e{qQ`z3;TW}%j=DU^{@f1gFD6Oi0GXYotv;~pGpiB-AQo1=&cgnt%m6p zbjUD&N+Iteya#K(sX8O!G`Ik+f?MEzcm{UC{C<@fAco^%z343w-Su!6JT7{d;XPRM zxT=kW)8GQQN{qI^J@6PjCwkWm(?$M{xnrXraofi2U(xmsn2%cg*|f9U#R^-TZHD{cX?P8K|E*+w;W#mx1DC=zaI5I;g{R>)7#+;2dHvxS zI0H7ob#NCv1~0-pu=-nBwP>j5jT56;qPtjh){5S4cpP4W_hIit*%|e}`zCWnN0@eU zn!Jf{Hf(||a5p>-ufY4T_y4HG2sl-Y=8N8PxJiumir!IpL3D4!UWc=4?g&^58(<4; zhaIpRR)3qkuogDJ7T69uU^lEjLS9%48(<4;haIpRR)2@QuogDJ7T69uV7KU1AIGP%LyXGCkf7`z%k$f36*t8S6lMT~e3$k8myD4j@qt?*1 z%`ms0_6ggyQ*F1)wr#;Q)dS`MSAJX{5p?d-weKfr@6_4;vsn)d9v5jyOJYbm4xYMw3>`i)AAJ5XbBSmM1VLCSdeDgaK zON-j;Y40>FJ3!m6ZulH?V$#W-Ak<};yJI$KsPg;bFgOh^fh}+!JO}TS!>#ZLybOaMDcK-687_qD;2wAecEet$m3I`Zhs)p=co<%S-j9`RAe;mj zz_oBUJPmKc>NCna64t>cxY;nh`wkgabP&1-ou4S<05}oOhil+2cnaQtJv)?l1e^hv z!d7??UV!&u|DP)F1UL^i!!~#lUWZj@m25byg^h3%JODf4J=pJO$~zv;g{$FCcmj68 z%5zFK3{Hm)a3kCg&%?X0@Bb?AIMJO0SHf-Zi0E80Os_ESy!j&Tr97{zO*?%)j}+ZH z(OGJkj%_up*iGnwLT;yF<)8HnOwLVuRsTGz;Eps*bImY}-p%XV9QATmiS7>3IVQSS zMK9`9@@hCjbZSMnQFJ!KeWH6#bZ(1o?_XpkoY8P5Tqe3(;33hu0Pn$m7nFBAoC{Zr z?oQD;F1pu5C;v+&8zQ<>MQ0IQ5BI_jcnj8CRNm2WCR`4;!Xxl941T3#gWzPi5UzuJ z;2GErdtFlAQLr8^gInNXcnNyHREAL2H2b&Djn`5(KMYVY+ zmfo3r>D2*m!J6MF`Di#3E{9v;5qQ}!t^Qi`bSSJITv75thH0<274@1-uZ3_O+|Ah2 zh80%`-GtS@Rk4w<&M;dW^Bcuc6QT8RFYJJ~V9iw}9}Q>1U7Sdkmuw>H+K?q*tft-h+LvWp&)qunsoD7SY)YJ4E-E=v4nc%j=AUb%x1I-KB*N)kDWbbbbk@N=@C@vRz5bZxbw-J9J!}%4R>O1+KWVO%^1tha)jdeB zPIwRYyP-Pc;as>1?hxJM@G6Y{q-2BOWVjHngS+8rcoSCNRNj%WPIQ|@ZP^p0$bod z(LHCFPAvY`!wmC__URpVn_j*CPrXJOR_wHYiy`?w%oNiu|HJ^b%N{b9jBTe`W}A3I zcO_Y#X?le}HpiIu+Nxg85qMd2gIie|XCRye7l`g!!*q7L3=3y>xTyU}Gle)_{Oy{; zK^@tk^f<1Xb~^9qFXCW01ulZ?M0XE7Ejl+~&)ZpEcLb~zod&oO?ibzjqI1VEU60>o z$D6kQZrVA!Gi~?zt2w)8pQH0K+_ckBtzqGbov)C)#<0gWvq=}I4IUSrt1y2j>+1{_ z-6^88&@id%t~0E9p1EGqM!|a61UJJ&@FH~XDcJzgohUlHEH|_LDCct^H8MeWb@Ve+$Ize^?4;7uMhUpv^8x|b3 zvs%5}ouYGGbgzj{-p!IbgW(jo2(E{FVF$crn9ixj3!EOq%_d!j(QqbQ4!6Q1@G=a1 zB^v}M!-a4i+zn3~rqlb&6E76!CcUZy)fs7+4yZFMSYvmQdb#W1Zg>h_hn1m{4;9^M zqO%xofbH-sybWt2o;U;(h zcEWqGU#0SnhjR_n_bBb=haSHDX-{r7@m6>cUNB5Aefv-?Z#VDT(p&jHz54f1#R+g8 zY=&*{1nh#9RZ2DtPJ>I}2H0+x9^VVhMN|F>-~8q1v&1h#=K)n104KtEu-PzOfHuRh zozO{m9ai;J^5L)+Ho{Ht0PKYK4AbiU{>40bMw(5!{NoMN&}RERg}J7k9{(%td*deC ze>MF#&_Di>;$A{0;dRlis#dLGa5`*&8x7OR>^CesLFhcZE4qE3qU2-YY`79`hsWSm z81+)J!ElOUI;Ta3}De&C`{4 z6s(8K;1+loUV>g9B^wAQ!3A(F+zn5|o3Q#B$~zL)!6vvF9)uU*eb~RR@=kzr;cB=O zo`7Aj@|j9D3{Hm)a3kCg&%?X0Z$IT72j{?5a0fgNufqJZlxzr`3Kzo-upOR-w_)%8 z$~y+mf-B%QcobfN(X*9oFq{Gx!S!%2?10^{*8t@m1?%B5xEUUT7oqbUB^v-Iz4^pxra4K93H^6py7T$)v zpQpTI;4HWTZi7eRWf%-rvO#b%TnN{}J@5?dhP|GzyrW<}Tn4uormtbIGj9l@H|skf z&SCX(FF|LBlJ|!b;5^t2+u%vV^gYPS&3mxmy{2UTy4jh|BmQ#hKJAJZ*#GunK9H2g zZ97-~0!^bI91rKh)o=$q4zI!Tp_<1~!}5Y}RE{S!*M|6pwX@W;)0g{J!}Kq=zSmKj7|BEU47Uvm~bQ`8e+v~w6zAG7Q+UbBPhH0-i znNsmjn$z||6DrKTno&F93D^ZIhpECaINdN!zQi#9Hd8U3$4Yu_hsWSmn17*?4}nwR zVz>de!?WpeVcJ0G;~Zikw7I>(7{K3oHL!Bg-C?D--k8v$p)rLYwq zgcsm_*nfobPJr`ZGi-w=MfW4% zw$b}_p}Sk@b(mhZR{rDa@c@L+O~(A>u+|ZhdUD18KzGmTRglIm=BFMDekTjoi=#VuwcsJbwa^IDl-U9h6~|3 zxCfqr-LQI$@{WXcunBI4hu}r%yi~~szzK$hNA)p2sxyyX%|*T1OuKLeKVlv=75~LK zJi^e+Fc_;D3^FV%JDJcNxC-tl8gQJ@#iEe&GL`8K#~2n?oJFXS&|Lf1uQ!=?`uY{O z2bgbE=k2#i%D=@S?qyJiVZ}AGNiVfqux6b0j)pVga<~;9ftR88awQuGCm9x=i%*(! zQMSPBOpi7`gdZ^Rr3`I_2jK;HANC)w;uGLJ*bLj?Nq8Mry+YHA@4(@voi5&FxDc*` zd*B&((=a_}zcI(^_nct9yJF8-#qT-vzGi1yW*nRYR~Z&A+h5Gs!i#1HT@S&F(0QdQ z41g2ie7FYgf~VjO*mI)tj({`ZQrHR)!VB;|?Efm|odD;-X4qz!F2+g2e5XS0byz+r z%jga^E6?$HTdBHQWhL zz%E$%8YLSBr^5!g5$=cQ;a%8wit>(wbKokt10ILhVEJp6Y$%)tm%tXd51xZ}V4tbV zI~LA{E8%u{3|@u#*D2W$I2A628(=#;3va{T)0B4%oCR0FZSW|(0;AU}*N7}Y7+U^qo| z7r}L+vs-jei_Q($^I_#30cVKrQqkE24;UuzD%?)PCw--ULtWjT^{OyjbZbSY0d9o* z;dyu$_I-1f*Bu9Ei_QwT4IUNUE20z3%#t~SM0c|2EP!j_Zg?8rgw=0R-jT2lHo?vC z5WEPTSxPnlPK5K}8n_Fdf;V8#w<_-lI0G()t?(ec0Pn;8vz2!OoClj>8$1cG!>UJ= zY&fiijc^k@06XD5*l&*Vj)!yMYPb`gfL*ZiZAvx_PKOP!1@41q;ceJ^ZkE>_4eLZ_ zDQtxYVJEx?`@KEO>x_qU;cB>3bWe!RRT#}vvcYgNTnN{}J@5?dhP~dQyrW<}Y=WEN zA$Sow^ObA>oB-#-)o>>~4zI!TcPj5tI1Mfl-4@Z=3p?N~ShGNRN5Oiy3~qsk;U(z3 zOUVYpNpJyN3wOiQ@CNL;Pgx6u!`;>7wtc8tm6WlMl=SAlZ?A@Te zW8f^f0&asx;bj=SU&#i+$#5ZD3wOiQ@FuKoRNj%W4mQEf@DRKRoewD405}oOhil+2 zcnaQtJ(nu)2si^Sg`403!}LnHY`z&Ab`t7_y*{YqqhLK;2DiY&@DlWzlx!fJ1Q)=y za5p>+Z^G&iDep*F2b*9S-(=d%-b3&rbe1Xa05}oOhil+2cnaQtRUcN~;jk7q!cFi1 z?1cAVzvaq19?pfU;ZAr0cEQSjQ?g-jI&6R&;eL1?-i3WvDDOBp2d;uU;Bj~jmjAnw z4TaO-64(Ow!E^8q?6XpN$HLigCEN~=!K+ehEw1oxE}6>9q<;cS*5(A;Y_$3 zZiPqSWf*)^$p*p6a3Nd=_rNo-8}?eQyrW<}Tn4wm!|)RH9#yh|a1vYq*TUWKG`tC` zo0WGYtbZ%EcLJOT zn_(L~39rMdwMsS|*1|@(2_Ar*@E+{<3FRFR=fc%+Cp-bWVC6a`8wRJt2DlOKhv(s4 z*!PplI}Xl)tKbfJ9A1Ov>y>OMoCcS`7Pt?dgLhz`Pbu$MI2*2n+u<>I73Mc6*$_At zE`}RmJ3I?-!``1(-Z5|%TmiSiqworhT9j-soB|iY^>8ojfVW`HXOwp|oC%l1t?&rE z41nBAFhGB;3;?m_WZo^j({`ZQrHR)!VB;|?7vxgC%}2I8MeWb z@H(vef|3n~wT9_?{rGoL8wst1+u<>I73Q}n`4Bi2E*9MlhDk~HgMs-m?_PzRQ}Bl9 z_WYuf4~Mm|5pIG9V5ebvln=ba{5<&{q5M`Q9}K6!MQ}ab3p?N~!}QRuo3EV8o@hAv)J!`8HJ?YMADpYFJh9 zYkTw6%UL73yF}+Cybh}#%aS|8M0dLAEP*YeyH9k^!rQR-cFiad!Xl*#CF^ z|DVs}?Q}Yw-X=+s%uJ?pXObkDBuSDalO&zVBs0k*lcaN!B%PCFCX>lbl1yfjnM@|h z%uF(wNoSH|Iwwi?c^-$?@wgpt@AqflKHqASL)XzmKIr_uN7*-kdxE)A(=*mAyxj^qMW~8} zx)}}%)gpXuXbtmi=6Lq-7;+}6Ktt=eN-%W!(-EB`y>zuub;2p3-iDV#74RV$Cmt5S z2G|c5;Gs~v4@+1$OoL^xO{m9&Y7L$VweKHEZZyn+HLx4bz+FRY^WGRf@EMWB5SR>$ zVKW?tEARw*|FPso!E9J9)LlX~1-Ie%a$>t;Y0#*12%TtX-K#$^m!my+A|+J;+u;P< zgcmU2Pn_W@UZ@L%svh>id3XTb#w08prol4U2FKt!JcoXND!H*R57rr4+vUUd?UEBN zC#ha~&B1+W8<+4fmZ(zuzf=!0b zhnsoYdufQ$0z8E7AC<%im=4R~GdK=6;0x$KExB9L z@IhYhl+vpej>0u~27Nz9ILw8$um{e3-x76r3mHSB`Za0gz);04J|f<>?i4#8!3481-fVUaKk zR>4j<1-Ic93|f@jL|6zL;h>>)5HA^e?oc{{o_{5Yk6|XPgdK1aZox|!xFop=@Ckeh z2jC)n4n008VUJ)2tbpxs0&cCOIQRtP?9hX>H@ZzL=nrol4U2FKt!JcoX(k{b*2U>)p*b8sKp{#L@mU@9zyt#A~s z!87Q)Cb=;%7uLcaI1Bfn`jmu)!W38nTi^&>g{OwMk5z5|OTc?R>(2L^I^6KyyUeFK z_alw0ciqW`)?@n<=Jz!27gMT*J#ZH8LG@`#3>E4WSS++P3H5+bEx<$Qz9G30Fdde| zXK);Dz!%W}Gm;wz^M$%zsCtEZPN?>v+LW+Rm;y^+3mk!~@D%!dR&t|Zj!@SKRTrEV z>K&oFfEM)0o&n(p>^0u~3Vr@wa-(4mtbyHd8t%Yr7`!97iLekh!a=wMkD$lrB=f!Lq1u9%LLIR0%vEtPAJ)S@p`I72 zJ$M5{zTnK&$wE~q)Qv*b4;SDebU$#0sR)=3%i%LP4%gus^!-Q4jTY)0p{f?@E}@zd z>TP%_Q~`&Q8!yxauwJNo;ha$K3zhmO2@8cOuoyPOVYmWMp!ajhje^;*8g{{HxFgip zLKXDSlA9>hg+ldIs0V~<0Ukp4BMA$KX|N2o!7;cl)MrBF^DmMcEz~(eRRufYlu&QO zOQ8xlmfUz)02^RGToCF*==QG?76wycDQtzKa1EY8pA*TAhS{(hcEM?(-Vv%R81!$F zn+OYGBOHW_@DRG6I>U5?P^H0A*a}DC8ax$hpMQ7eswkKZt6>+Mg4^&42AxT6A}kc@ zMmQi;3qpM;RBm6CuyB|L%U~NEgX{1d`khN|EX;#-uouq4J*fUe!a`vREP*XTJt9;q zLVY4sUN0o~G0cROumeuQEup>?s(>#^ZXC>q^{@}l!vpAcAz|S#4VJ++I0o0@xlsH4 zr{u=KTv#jAJwi1Dci{~TzLeY~SOlBk5L_1OW1;f=F9~}LGhrochZArUUci7WXReMH zs(e@v``|o0fNuZo3{&AS4VJ++I40EV@Jy(DuAMI|b+n`Iwo)!%IqTH&O~W zbe&zIXE)v(JR0V}8rThI;4Zv@AvVcP7V2WyBvgZN2_6|*^Y?t| zmGciXZR@V2!cy1@M}>M#s7|4en}kKf99Rvz;IyH&pLYx&982GeVb;DpPEQPIb6t2ND=<6xDF)#<#z;2JSTZC#DuD}!M{Z*11 z1+!r_?1Iy92VTQqU&&2^MX(7D!DV<1y}nw)B4HM+f}L;*Zo?}Wuan$3m=Eh=ADo8=&@E8H!eJULgKcmOuETSo_WOFt zje)ta7WN4BtWfR38yFHKxyi5?Hp5||UJtGL@hTB4Q zA+!a&!I`UK46UcwTtkl%N;R+>&cI!G4TD1^JP8)TCZQe@swJU55-N{3O4uWz&Vc1Y z)h5)VLbVD{p?8?%MhSH`tP-jYI0?7lB@FyV$xVPy;8WNS7vLdu4|nbx9bx$3`}m$I z&a|ypLis{nFI2s74(>zSn=*Fw@}X*T6^I$=H2{*6m#je)!s2BNBj0r(kHT(^7>}yU@8)333V0h zFtidU3|$h{qLlPMIS01}doBUWJyHgXfayYAE>vxX)?j0Xu7l0f>j1iai>wfC=pJou ztSO`kRjE+7!V#fbfhW*A${D7jU^c84>Mo(0g4^&427RmKCc;A4XlQMQLBogt$VW^w z^xB0tFeKW!u1+>|-GtdvQjQ;)c8RSvCF_*a1*chI$MC_I%wD#7ozTns+hpA+m<_89 zt-Is+cadF`hT#f4f!;CBb@f}#8S+7tX^26^0BwuFW&MwZa6wHsJ*f_;v}8 zhXq32AXI&D9v(njtb~QZR72~xweFRe3vNqI+v9=J?HqL#T|3~UP;Uv<1q}EO87v+a zzy{b47vLdukCU(nm=4R~GdK=6;0x&gost^|^I<*ggY)nJy2VRaI81|OunmsEb$AZ_ z-XgiNFb~$jUN{H$p)Ene!eA;ag{^QDuE8_t`(2V719M?5?18gz52{273xz4L1h&8t zxC&39&v#31G|YiDup7?6U3ddSk|Z}77Q<#Z3|HU@^!^?Ri-Os(8g{{HxC5_YaI)kk z!6MiMhu|_ihF;$*VUaKkR>4j<1-Ic93`&vQL|6zL;UHXsN6_>8B2uoPyi%N~nW=z&R%!Z|IrM*A^M3Z9UtS3w4{Uphlc4Sa)j9v>$#pOkOo^ zI_uW+(Gjb#BckK7oG_WfofXq&xN8JL`YR{BF+6IlN#kGj-Q?le2Bz zp+3{LI4{%(LS_3w=@2H=sX|o(TZFa|p;{K&j)lr2!86HEgOv#OeS+ELr!b!LVFJa&hOKt*u0-p-? zfKbiD1L&3|Vd3y6&Gxo7a++D{@yp-ne5IuFq?fJ}svg7J74+<#6;|kV0=<94xq|w4 z`3tqy&JPA(_ zssh*m``|o0fNnqT3{&AS4VJ++I0n~+`dp}d^CdS1=E7Ro183nLR6ikMp)duOz!o?H zSB3gisJsiDxjGVN3RQ(rw+q!c+z{#)hSuKo`$_YN{%y`T;ihdpxYJ-MY=t92y(&~E z(EEvmMG1AbP*uTBL+h0GPxg;lT;?=IuWfh*gMLcJNrZ*45e^9TqEH<|_d*GafayYA z4%>uk6t2Qk==0N(8!gm1unKkv)dbvx7cihma^r=%K&a|ruTakk)vi$Az~Hw@ZUTHF z)K7(~A1=T{=w2*g5kj3VRHd*Ljv87Ah2tN2zZ4};J*)IOg+4zc<3tN}j!;#@E;tQ$ z;1vuiapvkop?YFyJ&v9lzV7`zj{4{|4-cU2XPt>E45q?T*a}DBDm;ZgrIH&Bb6^eZ zhBI&%-oTKzOKvhOhRtvouD}!MT_#~sFdJ6GE;tQ$;57_>hvX)~BG?3n;4(ahUgZ)N z3A11o?1WQr8(zVnpOf4~SZHV+OO1vvzm0E7dg(O>_o1yq62o9BEQPIb6t2ND==<}M z8v}D;E$o4_a1W|V2@8cOumrZi5x5FZq0c)dHyY-^8rThI;4Zv@Ayv*?oh(#Eun7(s zTIVUpwSLQ#cHlJ({sm{aN`ghO2@b(!cnrO&B`gwV!7A7Zr{FfcfnRSm1J#Q#^{i=)*3A11o z?1WQ>)@-&7J&q_{!JwxSo(KzJqoEZuX!!6u@5x=Cq1P_FVTF))-&6NL$JMNnrfqGj zELa6Q4XweZ48821=2RIjJH7th z98szK^Fc*%0K>*?A7C-1DaMd<{3x5$W5hSo6IhMxBS zEa^IB`~Ro3{?DIdH`)Iw^8KGMAAY+Y2PK4jt+|UHuj7qTiz!*_j~L$mTSxo<3G{ko z{>!7ab!SY);x4>_A-^ddl3_7yhQn|Lo}(A2AM__Nz9B`6C_k zZx1;GtPphqy?={gVYZ<))|;56KU*D$zE#z}%jhSskxHW}V`%-R0S zgVuKMpz9>uf|oGxw`GI`_yj(M1BR~0(;}r^Lu*Q}HwTQneM+7`!2Q3WYsfPhF&P%a zW;hI2;EAC%5AXMwefnk&(Gb(Nwn8#2hRtvouD}!M-7aBKFdJ6GE;tQ$;57{X9m!3C zMX(7D!DV<1y*eZ;5@x|F*a@fLwxP8-uMAy&Oj7y%u7tC z3sr`p6<%TZ;3=hcH~}}|1q|qMhO2m302^RGT!4qr{r4p-0;a=q_zaH24WWJ^RDQjZ z8w>Mb9qfg3a39*(Dp$I3xg@J1h&8txC&39_mJd9!E9I! zyWlk3f!8qjLz0^a3t=N1giG)UdJaq2W0(mmVF#RqTksMF{E_6w!vfd<`{4pSgzh5} z76H>?IeZ4k;W|8ret#^vu`n0b!X7vaci{~T8I{~5SOlBkAY6h+(DP3u>@m!Qm9PU& z!Yz0K1I8pb9u~j`*bf)rA$0#!35$T~upB;v<8TAMfd1o>8wc}YJ?w+?@Bq4fSi-_# z8Z3ita15@)bLcxExiK&o*1{e*3-{m+4EZz3O@_s=2@b(!p*}Xeee%@bWIp(Cf3v)% z)t-~)MbdlZ#hDH;ZP%_JpcHqflxNzvFUxcVdf1KVe zl~UoI(nn=ps!@9BLFuIz4IS?hte4u3z@IUnB6!w@J6}%fUHaSW_pT*M`Ax~RVqqSv zgS~JL?nB#0B`gf4!cy1@N8uVggTB*}8v}D;E$o4_a1W|Km#|QwPBFB0SFxdo{ZHtu z7vojZOLf92xGmIILKQgU97iVzRRL^({cr&u3bp%RIKx!9P^Sr1DQp$$QK4Fer_g6s za-(4mtbyHd2JRYK2lI{L!x?jcSsTvpV^aDa^H6krGGKL$F(t1Ib7OVQg|$N6BUCeR z7v8{-ISEUK#jqI;!xeY}y+1BtQ7{`;!!9^2)I0D>r~>CDHvv9@Plb9ws21R%P`m%7 zGfamIRVplnt#A~s!84)uU2x{AXqW?Qgt}X(riFS(sIFkpCnPt~&^i(d4e$S&d<>u~ zq?djsRAX=*o(r|#qBC5_2vrWOf!#tqBUC%^8V3KB zP_+s57+e#oQ|R-zk{d15IYLzpyWq4??+Dcu3|f=iL|7=)jY2g57vXd0@hJ&=1T$a- zY=;wY6J7{)z`Eqd!F-{v7ph)32ls{A_GxFB4i&0oSS-}dLNx@J;jvJAZ8&q)W0(mm zVF#RqTksMFenxT=;1l>14!}kD9C~a@*dv$$D`2}&PYBfpd|_yv-2FdmPVQmm#(J8M z6Y6}Ss)Idn7Vbf{?1S_00J{C1goVR2SO(kR7+i0u~27PxVHwNayTG#_;;T}|j0!v^E9D%Fw z6#DE+ZZyn+HLx4bz+J=JqtorJ=0&N8%Qq5lFmIdOZ=|jqZNGnz5g)+}L+coK^s1oL z1c%@8n z(bq8O^D@IkL)WM?EW4XI-+`&Ud4CRpegaKW@aSMRL3bEkbyd)!=ha_@7z zA@2+%8cz0y2^&jS*c-}9S zivZjX%-c@;hVqmz@vWYI_KM3l|6!(Wo%2#*DQtzKhOX0GGi__nm>+0WZqH5I%YM~? z6?j4afPXX-{(!mE*;@aH%y&$lUt=b0b&WK2*XS(Mwo0Y26^_C+cm{nBB_SH-7+T{v zrd&g*9Zt~8adf?riEdJI1YEF|_diLtW34FDw(dh3EW6X|o#vrs^=hNn7+i2kYqNcue)uc5I(X)3%Ng z$40Rq9-ePud#(|627QlYtQeRJYhe$Zg?omsvseEjiGhYz$uXq_N;$9wb{o1L=QF15 zxkP=F`h}r~{puUfs|Y#R-H**HmrwG8rhcYvZOK@e2kQ)7XZUu$k?p0|9NdHIUnM*g zrWjg@C59d~lv*e`_SgueMfem_JhC!B)Y@XFB23OaYay2Hu}Hw#_wNSbL|r6Sk_hu|_iHnd`Xz?^{Yd;N#R zgurB244VzDb%zZf%urf^C(!$agh#<_SPi=jUGLvCr49H3`hQ8n<6u6lhkbA!9zeGX z2@8j5une}rF+}N{ z(Q6xC!Jz+=aS~ynp_SNZ=z85v52abd2W#fWI%@Zzx{{@#Fa?&t7B~V|;VJa_Z^?~@ zIj{zH!x^{>Z(zu^zUN{H$q3xbC zOos_o3M_#waKz9$fL0AXb}5}gA9rWCiiSC`26n?4xC?J!$bHF8f<>?q4#FjP1U)4*UMZs)X4ZGkp+=16H*jsXwU=eJBLvR@$L$B9KSR~AX zRj?CI!EJa2gM1`65f;KmI0%>E5%l~j3407PVI}Nd8U3T-n6ZkExE83_P|-V2i4a|LMTjuC9nmKz*Tq( zef%Xi8s@+nL+kYWPV-9drEW@-a0_0-z^|3?1o#9#g#&OAK8GFw67~pYzzWzd)Dv(+ zsLl;<@0IrZI(PFII_AdOK`}5F)(UlxP|d(yp}rBS;6TYuf<>?i4#8!3EYx0KFJX^i zCae_d4xyTWn?ijdRQ^Gd8wc}YJ?sJp)9hQn|Lo2uoPyi%5(d6OaueVa_!JJnMfe4p#NA9UaT`AG+VQd&U&de{f&;6AjyQHBXKw9X-^hWD~4mBLmyYG|#n zX82&A(i!v(lM!NIF06&!hF0Q?;r(SwyN0))oah_FSKWW#Z**=X9c_4LBUzg-`PCKc ze3D}-7HeQPoPoRW#?Z3ea!~28g#_Bo^ci@$w6%h0$ z6A)=`tQ8VrA#8+$a0xz#9uX220n=eQdd3!G5$c(aTU0n=eQY=dKP9iBtK z$C4Wh^9-%&)*0UaJw6a`q1Q0IR_wjDDV-QvA2E7=^J_d%!puTzGp52)Lu=Sp!~5No zMk&3^{$ZlajMnIN3VkAFglL!zt6>+MhCA>Y27im>Ccz@uB-BGfwJ6ljg~}~T!opyx zP?ri-GaQC1@C15)t20+e300Qi?dH|?uT0#kD7C^-xF*zR&?nj%uA*SJP*)pTJHONL zfqk%tf5ag)WENVxdD+lyUHa?yny(*T)&H3OUfS>|cHngU7W$5l6BQZfRQK$>yQ=#gI3-A!Sf4k&Hz;sv+pTTjs0bfA>Sjmlp`LG`L z!FhN9-M&M@!eJULgKcmOuETTa7bm%~LY*g6wXg@y!abHyIYg zW;hI2;0g3jlCUV44Xa@noQ6B_8U}xl1%uKgH&Ljc2vvhn_rrOi+K1`~BrF6b!y?!O zhu|_ihF|kpF@u<343H{J*UN(-?_P;AthZ1p9)n!ToCF*p>q2X2@i*9une}rF}M!Tp~_7g{80+j>0u~27PlRHwNayTG#_;;T}{!Dq*281(v`TI09GU zDfG#e+-R5sYhX8=fxGYqhWwc1Cc|Rb42R(gJb~VM5*7usVKwZ6({Kk~!{8s6+$2~8 zo8S;!hR4t=U&10`7OaAua0+h2D;V?>lA8z%VIv%bOYjJK7D(7*mu-X;10Yp zw5A*QQ|4`DxVf?3oyNlgSPy%JdJgWv8$&BRsL+H*n48;hogh^CunzXX8Mp(lVen5& zZlX{<5$dNx)ejfo0dy;JhN*CvCe&p@)e1)qt^2xWcyF81nNa(_%^9wvVYX0J33Vr& zgquS3La6u)eWOXt2U zZMA3k@T2lZQN3U-{}LH24(7vp*azo@`aq~`KkE$BVM3K6)FrT4sD|J&JceGS&Ri7< zvxK?|cEAat+JG;h|Jx-u4(7vp*azp~0dy;quyB|L%U~NE6Y6z%CR9G}klbjY&Vkji zQ>Z547QBRk<<4B4AXEjg0rtZMp*|EUx1V!{sc@JE%Y?d3s7B!$JcGU!k{bhaVJ+-| zvv3cppLd4oP@zhO#jqI;!xeY}y(^u$Dhg%`b+u4+!YQ~7uVBzSB{vZk!bUgrkB1WbqJ@EIJ38}J46|3%4-gZZ!? z_Q8300NrXNEF7l6GS~*k;5s~qe(#dpSeOUvU@x45`_NV^VPP;8mcmvz3fJHn^!+8t zje)ta7WTkdxCd38goVNsSOQz%2wa7y(C3#WHyY-^8rThI;4Zv@A@!1*42xki9EL0K z1bY99ghjz@SPi@2G~9vLFt|Z-lVA~SfOr_DREI+C-Yj9^Fb$T$HlZGaYeIDj zeSSl7qhXFv*T62JniA@5p}K^DEzVq>AXEjg0rtZMp*|EUx8HPzsc@JE%U~NEgX{1d z`n5`KtWf6(RW0m+vqHTGZ-grNw(CZ_7F+WGik@7L~ zL5a1Q9qmt;x0bF`*}v2O%(SghY`^22wX*-BnS0os_B+fksJlkTo4U1X23;MamfvZA zidi|L8>lUj&`^t8hX{@x8W5G>XzI@SO^>8AY6h+ z(DQu~_84ZuO4tD>;TF7vfjyF&0H468Z~!jC=g{N#CF~K*fEBPEPQXog0Rws^Hy#$i z2G|c5;30H>zl24=bXX3b!Ev|&UqJsp$&G{gupaiod3XTb{y@UQVHzxhZEy^(!*l4@ zFS)TW57xn6I0yHk?E?}P22)`vY=xt64W0?L?||e+!yH%xyWtGng*Pzd4<$Dl7Q<#k z>l8g~==!VsbM)Fbw5~F<4VtUeJk5=Vueq_#bYX^8N~)o2N`ds!4X_W+3DurZs}DNE zb%;Sduif}Vfm3{#I`rchVHcA**<>J6bfhkhfH8w>MW`gaI#j5VVKHom!*B(jK<`n>jS{LXp{^3D4mc^)TS9dq)B%6u%vEtPAJz+XADn}` zLUkq7L1U5|FVy)$RSSFI4BUm+F!)a;HxU-XMmQ+cOG0%B-Nz*?9HzlC*apYo8a#tO zAC}x`m@U-RLe(kMlR~u#FNE5ELULna9;|~sa8{`Igz5%{{F&q?3w5zjHNhdc43CA{ zYf{1G0Q=zrJcRC35*7i|VL5yT$KeKi0sTKJxp6Qb z*26wH4-cT*w1kDjG*|}P;22zo=g{xZB{vr4!8+Ir=iolH%}7`nOogSe6^_C+cm{p{ zLULnZF06$;a2D=CH7jAEFa?&t7B~V|;VJa_nB+#o99RRp;SAgr>Khn5=gifKLiGeb z73u+@T7ZW_?f!9RmoqYcrft20D}gPB)|sVc+$}xq3blw zownzij1^#L4e%%C!)lLsN*Q-b6_graKfMaxXg*L~ptMct%Fy)_UEfd1urY>?k~IxS z$`|<%FN3a*QpKHilWAKUt_RN2%W=Qz4y;|W2T!p95`|l+& z($F4j<1-IcP4EVg{#=`>G0Q=zrJcRE1 z5*7i|VY#7o_&zgyd6?1|T!UxO_X`pp19M?5?18gz52^zR3xz4L1h&8txC&39&p%3T zG|YiDup7?6U3ddS4kb4k7Q<#Z3|HU@^!_Iai-Os(8g{{HxC5_Y@N>ycf<>?i4#8zZ z>!7fI)oeSamfTpF2kT%joP+z&_OB8a22)`vY=xt64W2>Y6UmK%xv&=Yz*)El)xSwtC`^GR zumz65Rd@=0P9--Q=D-@*4QJpkyn!MAF1g9D7&gOUxB^e0_nCx6!E9I!yWlk3f!8qj zi;|lJi(nHRg3It2dYwyHB+P{%zzcJ z9ZtYacp=mQUy|H7m=Eh=ADo8=(CtFP!eJULgKcmOuETTa_n(p*3-e$d?1gi1AKES@ zEDWZ?QrHSd;Tk-HzW*h;F)$a_!X7va_n^9xuuzx+OJEBefvfNo`uw-#M#CIf1H0i2 z+=VwVKil@IG-pHR;W z)jqU+*%_w7ggRBIN?;2dfvfOTsD0FZ=NptLm<_987o3JW@EQhd$xVVqu*uMR$uea4 zvi;K{>z&d(y$+z8O%lUl8Z0xk659+tdMS-jTDO<>DV;;Vmt=%km(B>v# zVK5bz!d5s6*WelSy(hUbFc;Rs9ykm4pmLY6P?!QsU<(|9tMC;1+?U*Fm?P9RLe*tx z?Y3#d2P>3z;57{Pknki}WN5`S89wNuG(>6H@ZN@$^fB~&;EdG~LX`%~U>h70>UE(y zHFWp!`6}~?r~Q|e?%8kd+iz}v2+6LO?Kf7RUYqG-zqxO}d0@YJXuo;ce&gE5k#nby zOOBm)bL`8$LXN%s(9y?!^V)NE%;z<8>=lqtMIr_MaW#{d7rjK1;VV~N|uf0zlb9Us|_1b;x<=f+jKK5m< z`^%AIzi~On?9JESK8_rFgzKE`ZI^xF=wrWm)&8C4_vG;b}7q2yzqmTW@ zbu4@P?zzRKk3IbE`R9L~V_*4I$C!QLS2#yG=3~G43XdIo#O-#r>-L!c{}{_&e(mjZ zXDoa3wYQJG@~Zu1&%Jw$-5tx($A0tw=h(2X=ei9YIrf{c@HnN9W6t&)*W<_DcA2xi z_p9!gqtBfjd-GK}jz0F@|Eu{p#&XQZF4y~IU-%V{L&tpRW7k*M@Ak6G@ndhgj&*0w z_VTOlmwlnjIl;cltBxP~{IBoV-LdQ|x|}l|IgYXH9bJz@`@*j&@*{impW6qAT?D`7(%U*VwkA0QfSM&Gn{{Zrq+Q(B~Vnqp6 z7OWKNb~rAyEeq9i!`rW$ZH`&mzlnR9!IZ~C87u;(!BU}W5$X}R0*?)EUtMYsulvf| zWt>pcw(ehwq1CJCPOp0DrF!9Ak zy7W?KLhb7<>qf(Dp?aAw$*Ne|38&z;P+tjE;Om@2s05*YB2*2qA1=T{=U^Q9723MtfKbiBeWRXs4j-r~7ruH~>wTLfMTb)dg<9xBez8YbV+Wf)!N zY+G4%tko;jb3(OeXzkhmGP}Ta9ygR;e#R?O{NBR z!x^}1Xiesu%|>y=TI=4>D0F z?GIXOm)P6xThdjZNLOty-SY}`j;O;7UDryXl>f@oy;@4`LN#W1`-|^3$FTNkIR5pl zr+E(eXp;-uO8aJ^7FPo2U=Z2%|ff5 zWXPaaJ;yAxSS3^*=GXqL9qc%dw40LEwwK(8={ony(!G7!j+5slUHyV2<&*ZaQ>$`4KjVMaSMB`g>hz~wWj03w+z#^{sDlaU2577 zzSHcv*SWlws5T3&k-P4!KTT;9UeGHb_?0geqD|Y%%7T@!15Uy%cq!C@ua~fRSO6Pf zKU^@hHo~Fdg9}RTA(9vY(_uM$2FKxsp%s2^`0$6#ZnW;O#~TQT>98C=gX3@mzJUIr zk{bu}VIAy+b8sKp-Y8*VFcp@ zg{RObTympfHmrtSa2oEwYZ&|{$xVcXun`WzC3plqBP8rG%!HM&15Uy%cnJf)Npch5 z6ZjMkz(x2RdOVV_M=-u%++&GvI>tP?9hX>FtQo_Pv8Z3ita15@)bLjUik{b*2U>)p* zb8sKpq9iN~rovL#3P<4@JcGX9D!DN*7uLcaI1Bfnik7fYm;y@-T@TmK^Me;H^csPy z@D%!dn~W0;b6^eZhBI&%-oTI;$xVVqun7*qWq1s|zFop1VHT`{orczSnKFE^L}?3N z!oXMwPk>M0Q#b$@;dAKm9TN5kX21&A4&TnXW`d=g@B#+J$q@0d05-sWxBw5K`*+IL ziZFcmTTCRuw5=BhPvBEH02kqN=n*dok6?zOwS(SkM!R1@sSyssC3plq-y-3UVJ57E z9dHtE!AlsJAh`+f3496%;39kuJ-$oA9>EM)0o&mO+=Le}AW?GT4Xw@jLHp(`pi~Jv z;3V9FmoV_VB|HH>fluK8T!hb|N0Nj+f*G&^w!;ay2`^y4_egF$EPxHLA1=TH=$0&D z;V=!B!8SMs*Wo$z`(DY7g?X?J_QE+s*Il|#=>_ypk?=T}59?tcoQDU{?fWDw9HzlC z*apYoIy{GdsgfHD^I#q9g>!Hp+P+`H!eA;ag{^QDuE8_tnVIHi5 zy>JfhLtCDNg~3!<3R~eQT!UxO_s1nS2Ij(A*aK(b9#r`f779~f32cEQa21|HpP!K2 zXqW?QU^kqByYL2v6i99|EQZZ+7_Pt*=>3xt76r3mHSB`Za0gz);3txs1dCu39D>X6 z7<&Dbghj$ESOq)b6x@baFsM*+6Ja52goAJi9zoBamaxY#6IQ|wI0?7lB@8T*+ywXp zK7|8t5k5C`egEX~Hc1SEiLekh!a=wMkDzC<eXcEcIC3vXaZh2$o~V%Q9a;R-x~-ajv4Q7{`;!!9@tci=S)u9Vy)SOlBk z5L|}G(CeKN774Rp73_pla2sC1peo5tgoUsX4hn5cLUjn;f5CYQz5Nn9!nAKc>e5L< z^=Et*R>;yuI0%>E5%jEf=Bmdq6IQ|w!`suko;37alD2w>`O4dEQ@ZL?=>3Z_LZnb< z2~{QRfRk_wUc$f{$xVPy;8QpN7vXd0@h%B_1T$a-Y=`6Uv$8AnhFNMo{hb@$SGCS? z?I%<*hSrznIfnP_-xzy*NmA4kv(QR;YOlAN8|%B~0ejnVah_adVD%g|6|Y5eW9_Gn zH<_=A)}*c8YA!i(+oOGH_`p7>wZ7x3AkSZNuCM$IU4GD?)uDR9?R6c~Db zxWqX-T|wzhW=Gt6##%#g2|i~9_l8#-O15Crw$5k?hPOwCE--YrU%=s6Yc9>O>Lt=u zH5*!!8#cT*PH9O>>d4TGO9!<2RT(Q-s1k*`P^cPUzfdp0Z{ZL;kfqA)sdESw4%39X zOsHDnC|rYQ(D&Vv8v}D;E$o4_LcJ$cH!!5pxgpgL+jnI$?R>*~#pcF3@al!SPpIbL zKD7OstQIQNDMD3bc)J5tlc9UNl=PrbEeiE>p>l7M@CcYL)a63e2FKt!JcoY2E_3>E z`?iQRZR^m>gcU;d42}!+20Rxk-)0GmfjO`mb_&&`P;VJpo9x2S^KEhfYR}(rhO0+H zogq}^LjBCpig~9=csNFBM(DO9)Gvg}uf;izj)l2GRRg=>j8N~wYeQ=yj;nive$yFl zix%oEp{f+>4mbffgz6mnwK{WEEX;#-uouq3eQ5hF2@8X%uoSk!QMhJ!d$;wOp~np+ zpEe1PhB>eXcEcIC3vXb^Z%b}6EQZZ+7_Pt*=>1H>qF^?xhFx$P?!app{2s|of<>?i z4#8!3487VVED~nHD%c69;5NL1LBAupiLekh!a=wMkDzCVggu6tuo8B_Nw@_sVc_pd zZi1op7<*!PuaweLH~<&nbLi12F^>!%`hJu1Nm(VCw)F&21e@RxT!zQc>-Quf5@x|F z*a@fLHoSsCU6Pv!3t=N1giG)UdcN2B+C=?UdfGv`LG`L!FhN9-QF)@;V=!B!8SMs*Wo$z z>yzAAm(Dnxs76wycDQtzKa1EY8-+sxBfw{2O(AvB2vR{PXLumqT!V4Ji z0SS+X1+W43!v%N<-3KHr0;a=q_zaH24fq23|Doi*UtW)?IF{zade{f&;Q@3Tl-zKb z2FqX@9E0od9Qu7wc8L7~b@y1)cAgDj1#E{Ca1&m@fFTKshXt?!_QM5u2;Dy1g^qU=rbz0(J%+rz-~ALci{~T`4h=ahDERm4hi)# zJc90H&M+MYlVKrjfW2@AZo>=c_op&MG|Yk(unmsDW%yjE+{Pt09Hzh`p?V4jgnCh^ z4xrnIow+I;romF7twpE@;5^)e*FqII;T%FIzuP?!vh zU?UuW3-AEiK1MD~hDERu4!{L?0Bv*R!em$k8{q(4fCtd_adKfYEE1|lp&o>b@DRGq zOKzA@r3iHiY=%Q{2|kDJf9cFs;V=!B!8SMw*WfAiS&-alm;-Bsx(iMT)s~_4{miA| z!>>1A&3N0tV6t8&dVfMjh%&UgW*d6l`D0a8M%OktCe-Wj4EiiGg3y*NRF$v;PQopC zX?Xhp*MWa!-u`}pms*cZ+xgnp(CSt3%3ivGUVYL_ebK~t%v0JB>K8)gwr6Cj_+X9F9#o%nCfY)UDiIb6b)%tmr?$**c6jJ_ICr9LfL`)v}?rb>C;de@9Z%moVUOWt=#e zFVyw07tRXRj!<6K&oFGPH(toMtx6#RgV8=riV7;fwq)muS;= zol=TvTPKMUp{+%z2Zd@8K8GHg&IJ8PsM2AXP`AMmxMJwCliZIfsn0sYRR~OmMX*Vz zhlFYgJ{M|_EoZKdfN4Ti3R~eQTodXu=<|1y8zod(LR*zkwF__i4XX`r*HvAH9z)W$O&fZ@pUWoJOxrq} zo(h%Mjx3E7stj0RXuXbc{1U|e8((?CZ}b1)SHb73v)fwOQAs$J(@ z*B^MBc?J(P?c4ijixH}9SPi@2G~9+)Fz6qgxhfGB8d@9vsiF6m&9BW^TenAg=^5#z z?I$_+Z#SnMtJjVxSr>GC`e#ka{wmVrN>)`~dopaKP-h8M1#CC8Cgb?Q9G*DU1idze z`a-DuKQH6N!F*T```|o0fNuK|77o*3+5h3{j^nBQ@4}CNKIV3x+wE&+W+q8yGLxCf z%w#f2Cdp(nlSw8slle)KnWQ_(Br}stl1Y+eCP`+JnIxGcNoHm;GnvU`zYq6y-mkO! zACKpCuFrXWu5+F1Tn>(NU@IJh>xR~Y;lj}I0CxQ^dt8UXG@&Ykt%lYfd3bA+FN7?=y| zU>}?p>H|Y-mwm@Po*v)7Ozruxs+_(e@gSHCOJIwkbq78i^52mEXxF2xS~YY$(H*hM zc4W?D?~(gQd7EWxJ7Qq2P}jj8I3rX$hSnzC8a}ptRf>K>9WPY*u))yUD-Ultd$isuNDZZFmFy&g@+s5A%hp9`?fpcwlH9oX+1c zFCFwZU##U|L)TdI#X1^NU@2@B>M@~OgXhrmTw+l$8`i)cI1Bfn`liGJVG=A7>LxfS zREzLPsBIV04S}h!47R~>q23Ux3+VMf(v5=ILR}+N-Ec;zcZKQ}`d>=-gPigbxU>*9 z8Cv)5kfH00tkTOubu84b-?GPbC`=Wq64(Mqg?de>&Y;JYy{jT&7OaNda0c$eJ45SM z1$^6_%sy{^(`+5H5oXz9rchVGPNABFTksnCUP~+v=EDX!Ak>TSP^g^$S7O011(w2A zI11N<`dp|yZe(Xf8a|ydPqv@$9Gzm8AHHK+JFCzvKjCSNsx-^i&gz6ya2wtjTG@}8 zqt3Lcd#kSH}reo>12dRUiB$kA!(HJutL>5IHbEML+r* zGwSK4*+I{5wf+aL<@|p#Z?I4$!(#Xhj=)uTYH01OhbJ`dclKo!Wa#(|HNh-f_dy|S zfSCd4Hng(Ch7LcBs6|E{G0LWFj{8pen`JBT z@ZOn2W(Qk0B*Cn*-zL}uhv2fIl{qnVJbWK^ozl|shA}V~*1_z(U2q!iz+33=BD+4p(EW$ZtNyJ0ooAMxQ`ZYsADkEJ1L*YF zel-;clVCA?21nqkP@f8wn@zgmFauV=4mb(7;5GDpBHcKc4;$bBTomdfp>lDRSO`ot zw2tpbZ!+h*GFCOgL7`p}n)e8oqV1_LRH)O0stmRX^*CIIXF}!fX0xA;BMe>Q%$KLh z=8JV8WWq|=38&yTyn%i%Nh}@~z(%1S5UK^CJ`^fvcZmhV6j%ydg?db=)`a?8s61XS z-AI@PtA)B-sHWi#yoLTA(oKMcun7*rC3tLT{WILl&GF;>wIK5=@B4o!a|@MUFlyIV z*r(B>O7&UgMDxw9zbUwi3J;4C$tp9mpaUAEUlA8 zA)}h$5L|{Q(Csx64}pZUn_qChs@8mY zzDhR=)c{7hYK||}Ny~-SePD`vh6l#~( zN--Fwz*0l&h-o!+={8^723bD_*Wm^93X&P3VGgW?y>L#b_n~^7J*ER-g3zfzsOw-a zoE54ap}vKF!7@c0%!75X7tX?6cnkf0$lg_PLY)umVIQ1>d+<)E{6p+rod6491MG+M za38AIODq5;zyjC+`{6v?7b+Dh-9VTK3t^*B4G8rjJcQ0~kZzDrB?)ygY!<2^xGdBs z&^657RiQ$iCRAmx4UWSNcnQ6K*xuDKLX`t+VXsin3Dq7{;r5scfC;cbs2hc}zrbc10EEQKv_#Lzn7eEJRMkEHistdrF$qfVh)gv=8L(_sbdfRk_&UPA9TNjDni zz*?d16{;Dy3-4e+q;wNtA#8#}a2cLJw>L{H9A>}@*a0WuCcJ_^QPPctxv&oQ!dbX$ z`22o+c)u3sTUL4fh{U6XI$Nl!U?-e}TksnCMoTvi=D~W{59i?lbb5=#0$~y?g3WLk zuE1019wXfdm;ozcC!B)Y@EZEORl2b-57xtexBw5KORU5~U@9zwZEzf}!*l5IHt9yf zELa6Q;UwIGSI{R;y0I`1*26wH5BG)I=|?3N025##Y=T2@8J;3V9F z*U;zf(v1=7T%oFgJ%-k!@-^n^+>=>Wt-w?0mLTzPm<}soJDh-<@Dh6em~>-cF06xn za2_5&=R}DG!xUHoTi_^Mg=f&?9ny`2S+ELr!D+Z-Xni+(YJLEIbjvEQB#B4CY*+(( z;4IvOcQD|`rJD$gU=tjI%kTucB}*(EX21&A4kzFyyn^08A>A053+rGXoQDU{IYnZ@ zFd3G>7B~vm;5qdCN$EzxY*+)k;WXTVx6nUTx(TolHo+mGUKXk&=<-g9g}_u;3R~bP zT!m-QJx#h1LY*m86|e(N!Yz0WeSS*1u`n0b!9F+-_n}j|#DZWFEP~B&7_Pum=>F5v zjewc35_ZBVxDBtNZ-#W^U_NYs{cr&uLg$~6b4#${(>U|RdZwHLOJOSDp= z3Af-i^v#xT9L$FeZ~(rZU;Zs}=@GQOTe_i!);FAU^V@&tG*%VEW;hI2;3;&^k$42m zgq5%pPQopC4Sj!3y0I`1*28`{4-cSouEc_23M_@Ka1^e=GwAUi=|;jVSPi@34BUlx zFd$F5iLekh!6CQ|PoV32B^CzLVFm1flW-GWL7#l-#=<;U5BuQ)JcKSkFR>7q3d>*{ z9Ea=h0(uolHyY-^TG#_;g?dk@?qIrS6NZj|3|V8;8T2TYc%)Eg3RNZSgi~`Yk3Yy=b_scwS zFdsI+0k{Z{pshq=p)d`W!*)0UHw~?gzA|*&Xs2J2co0m6#fH{C{;0XFwq{m!!x={H z8oC^_{A%+@qsMnIEPIwp^#uSBhnJcinB}KujK6_?ACOACp*8En z3pV1+t$0$v`U;`$5UL5d39q0}namIi^I$#fhYRo!x_nS#Autt|33Z#HbuWw=x-Q5n zwGJa0^~T-(Qw)9L$FeaKO;IC5wg*A91X9 z7dt5zig2P84hMHB@9i9fuVLO~Kv~J0!;nN9T%6P&kxBn-_aF_ur;pf=$PA;8- z+wcbZRm&7{FdsI+0k{Z{pzT*A77EjZx?HH*;5giXm(aULx-l>p*1I@ky2;Q@61h{S@0I$5ZS;WIb_ zSK%piZ;);T%!F023r@prcmw@DD&2Tk02|>TT!Kf?)+n)1mBTA3Af-i^!;t=#==}!3wz-#+=Hq` zVu3IT7Q<(71g^p}=X z;Rd{f-fhy2fw`~__Q8300G&T3v0#`2OJEBeg=_E}dbUe93TDG<*bQgkF1&*QzbD;9 zSOlBlFkFGB(7i)q5ik>0!7exrci^p1`~SXl<6%B*fCF$59zk2D#6pESO{mIX8ytrl z@Dh4|T)HtZ7uLZ(I1dk?bC<+|VG1mTt#Ayk!wcy33F$_|99Ro`;T+tDPTlsH4ic&) zSPY-R5x5G!%yaZJF7^1NeF_x`vtTvshBI&%-obz#=_bGeL+hubN9OZDUe?H}J~$5# zpz|Nti#k}Sl3@vKfunE@oJKFr2$NtjY=*;d1)f6pKIull zOjrfG;IvTh2-OYr`;>I!VLoht18@-@L0iAXLSY&#hwX3zZo(_*^GDK+g?X?Z_Q830 z0G$UU77SBh32cF*a1EYA&p(!K6wHP-up7?6U3dor2Bn(_i(oSxhRg5-y8Vg7!eIui zgq?5-Zo?bsHzeJ7SO6R0AY6jS(Dl<23xnyf0(QVjxCO7F@33^^U_NYs18@-@LEE27 zEEJ}}a@YX61iFn&EF5OQ zO4tdf;5NL0et#+5cvt`%;UHXs$Ix{`Vqq{HR=^H83Af;*56VlEuesFsuVjiim=7D^ z09=Ge&^Bq0=}@6cHMD*=@So=Y{2rCDstFFkWq1PJK4XuoaF_urVJDn|+wjKF+NNOh zN;jL|6mggVD`6*`g4^&0`h8Zq@vs0k!a=wMkA>QG+8)!PFcp>xRf|xM!d0O2Td}v&#BiZ-!7;3RQ<(SAWC2SDNE>CmFRR)Yoza_4hAK<})jk#Tr^S zC(qC^Th6FYQN9EY~997hJGv58fvY2Y9_F* zbEfZok@rx>*jZ=m1jB_0n8U?UuaONQ2z$A(XCSmnAX#V|u_RJx%p zpXCa}ms-ph>y~xENw@{Cq3_?z)#6}2Y=8rX)+Q_(KFQ?lwZ*7w=({9$_0O7}$>(NT zl{mBBHPyW6z1 z1*>5IOqA({K2AOjfA{R{fp%ZtD1Ne20v3S(h0?46RnG;iD{;%M4xX%@^zD zwZbvD4lkhBKg-pkVGgW?y@u8%%o#peXVtz?J8eiYP^goHst7j2VYmWMq5Ho`Hv(qD zD%b_5;f_$>3Z48m?Oh!Ub73v)firLi-ay|k(S^CN7WTjyxC3vX?-pH{3u|EyoPj&= z2KxRhU6>1Ng{nuWXN784sPCZvwshlRKCFj*a89W9gj)TZJ*EO+A}oT%4mBpxP*bQgkF1&*Q|0(k%!Xnsg=s5cjtLEVT3!|L&CF^VG82A*MAIGSC z*Z>EFdcn{kmO_G|<1Hy3=Y~3xR{EsA_01IIg95S?u-!U=UC(VzB)`l%H>X=ckU;W8cZc>U_ zwgUOE;e}C8%VnB=MlHZY=yEK@5SR+fU>h8V8}QQ5+T23(aVyT=Uz2zQ%!F023r@ow zcq`QYCo<2&ar9bqgB^F%+t>l|W~jBt3Sc7~giG)ky8gEm!eBbAfE{oWZozBldn(;H zm=Eh=zoB&l=M7!o#SPvx%P#v2y@Ebpmuo%jrdYFV?TbuU1-sxh+%a_AyYFM~-ZIMn zOyUW!(9rR^O)o6>FmwWL!Ykaj8C8EX*9ly7) zm}TqHdCI7VwELB;3Wh1L6t==KL&qDp&Z-mW_HBuW!wgsnJK+@Eg4c%D?f1PlC#Gxj z+ZNX^nCDH_EekdmT1Gg9kS{c`hQ2_39t}0!6CQ|PoV3q#KK@YtbiSG($Lz{hlA`p=1_Ima_23EoT6OY0Wv&uROQyEoe==O2` ze%8dOA-D`rpqqMPFNVVmSP47fl%aL|whdpl$Eq9XrzIY5XkFpUMdnmfz^Xdf$Eb(1 z(EJO_I}E*q-cB-249tafun*3|1L*uRi3P(HSPEO=7+i-JhK`4Um$SsfVFs*(op1_n z!yD-LNV@T`05-xwxMb+KdGF@i{V}6lT_hd`(}hkILfs-%LvY#9n&^}LL9On9#tNK2ctA5)IaE@a++we(=`SSb`;Z!439YQ?;H{iM9^DWXI zwkOIh*nF`v5kj3NRAsOYj>8S1zJ#7n>|GrJ(}k)`sM~~URH)Yst$p|K@x!NP+1htE zhEMPREb!8Y`G7MwSNnJ!Zs_nIgF3-1TW5~~*eKM4LbYgUP5V*vhw7IdvC8SGWP)Ha zEP*X>6t2N@=;|GTNb6_p(g>!HpzT+3=iKo-6q#Fd2VF_%3qi_wLLr-t%M!{@Y1AE{s+=J@X z5(|V$uoymrBXAX-K@T74M#3yu4ZGnC+=X{A;5E`s6zU?_BvgY!y<})TBHm?w=5;=j zRZ96vF%TxfV%Q9a;R-y3?%yZf2$%`0U>BT*JMaej`AIhp=EDX!02kpAw0*zCLSY&# zhwX42ZomuZ(CG&x76g-F32cF*a21|Gj{xaL!Yo(?yWlk3fw$2A z2c??;3t}@*a0Wu7QBYOua#~b%!dtd04~BKXbX~9C`^N8unmsG z4R{H?Unkudm<#J*ADo8=@Kqm@Q?qlhbc10EEQPIb48DcfI+tERuOE^rqG1lKg}rbN z?n9>#i3P!ASOQz%C|rZ*(DU`uje^;*2KK;NxCd3J!~%s*NkUyHRE=;DF2Q5y`UZPf zhru*hCUj~Qsu7`H6{=Ii=idmldzkqt31*e`w6Rb|sn?q8 zx-_xeW9WFTQLeQH&!OiJOEwB-!y4EFXW^but8jZv2MASyp>?AQ4IN)4SjVV7p`I72 zedzQ?i3h~u*eTRghSs<9EkoPS$)iypG0Npl_P7p) z$wF0ZXl1@>-eSigqn^nqJpxzYiBP#l$~<90l?Ka&x?QNog?a;CK+iYZyDAc9!D`qo z)H8@giA zR7tQHK7%9h*X5X2t8%G66Ds$&+NV$vFjJ_jgsM}hr-W(?UPIql>Bhl)*Z>FMB0Pe& zw@EA%ronR94kzFyyn;S)(v5|Aupaiq1$YQuepF&1Fcp@;HaHG9;3f2qmu?Kqg>|qG z&cg%f{C0^2!xUHwTj3a7hZoQ*LAuc}2iC$~I0yHk(~n6k2qwc4*aAPru|CSBYw#R; zCdw31FdNpu9ykm4pn8YI0$~y?hR@&#T!m-QBT2fEFiWVbg{o7ir-W(?UK?7!IQ*TL znG^c`FAiq(H8S#L2K=D=FmYiP|lXZU2D<-Pl5hwQmowz8f-A&i3ALR~FXU2qC+!)rt9mb~@@ z=C6YeH`+Hv=81#(umKLhMR){Veo|r~Fcp@;HaHG9;3f1|qO&cS`?^iGKd z!DLthTi^&>g{ROxO}gPQ9ag{&I0?7lHT3-{>Bhl)*Z>FMB0PjH=@JVuw2sS{o7ZzY z9u%pJDuZos9B#l%==IYwPc+PdwL;x1R5NfF-a-Ei=_bHJ*a!#UB0Pe&pOIJyOoe5z z4UWSNcnQ5Tr5gitU@h#0b8sIzy-V(tG+8hX>I4XC)R4Q(&o~bp$^AJEFsxu$56`a2;L69F?}73_l3a2sAj z-*-zl&d}P@`}ZSs$zxR|?1WQr3tmIt9O5t^Ho$(NUJ$ASp?3Z`i3JLEl28@GCO8C_ z;R$rhm2MbJhZREIVQB555%aPf=W&)lXP(_W9JkNc>xa)Nak#UWrJ_!t+k0g4aF_ur zVJDn|+wdCt=1DgW=EDX!02kpQba}7DLSPCkfh}+puEBHYnJ?Wam`bwz0e?hu2Fc;RrJ~$5#pmUMLf?*0Q zg)MLtuEBHY`HRwxg4wVJcEcIC3-4e+v2+t)A#8#}a0wnm*Y`^-45q^`@xxOEmv+EO zxCO7FZ;4D12lEZBGggD4!x>Dy(mac{bue@QF2F5!HpI(<}PK`p-?$LlUOiJfhDj7j>0u~4n2Qcx=}D2*1#S(3-_REkys#1g2nI| z9D%Fw40`;IbR%IFtcKn2Bb-oXxO5lZ!GKnoA`uqBW;hI2;3;(fU5Q1&Ojrdw;S}74 zH-^@U%CGH-`Sb?!#d;%V9g5fSd3N`g~Hlu`mzT!+y8`51~ts#6n;yEQ4)u z9B#l%==}%Mje)ta4)(!$cmSPyB^C@*U@2^cV{jc_K(9ZPZZyn+wXhe?!F}k|C$S)y z3`<}O9EEG}9D06Ax=}D2*1#S(3-_SvmslW7g2nI|9D%Fw40`;LbR%IFtcKli2JXT; z7%(8+L|6oy;V@i*r_lY6B^CiQVHNCx({KmgLjOVOCcr}21c%@@L zcm!?Z5(|ZCupG9-3AhQbpwC}QHx}l>de{#a;30IGkXQ&zg=Me}j>8Rj3BCVHx-l>p z*1hV4l7^>oP=BO8v6c|bmL$?Y=8rB5gtL?y2L_Z z8Z3wHZ~|_^E9mpj(v5|Aupaiq1$YQuHY64TQ(+lwgX3@mUPAAGk!}pkg>|qG&cg%f zyeY9@m;y^-D;$Gg;c>jqr5DiaOEN_?%z?GA7tXK(AeyA{yqvTG$Kc;68Nv4~YfAWLN@Q z;3!;!=g@Ocx=}D2*1#S(3-_SBv=fe!4bF$&!ES?bR%IFtcKli2JXT;81P@x zO@u|T84kl0cnaMQBo+ZPVHNCx({KmgLjNyIHvtyHCO8C_;R$p*lvp^-fR(TlPQh(> z1O2`t-FR348{r^ag2&MHNMd0y9ag{&I0?7lHT3Bho5SP%Q*0z8B+ClU*Rsjv*T!Ev|&FQNB;OE(7Q!aCRo=ivc#K9yK7 zOo64a6^_Amcmch>F5PID18ZR~oP+z&=}cllFd3G>7B~vm;5qdChP|t!genVG!)`bO zci|ljIJb9IA}oT?C9yD=4l7^>oP=BO8v0&IHxA~*1~>p0;Sscb zTVkOw4VJ@pH~}}|74*55ZY<1$^{^i7B~vm;5qcXlkV$z zt{las*{}xoz*)El)pw;E2$NtjdkncPFcVh6E;tQ$;4SojnRF9iA#8#}a2cK$T3hPo?5dvl zn=jUuhQkb42|M8weD%-Ek6GJXdIS9)$rSOh05-xwph8V z8}Jf(za-rlm<#J*ADo8=(AiyL!7v4u8d`_s%gvi}J{>auz-&DzTNyP5*Wm^9db!LK z4Rc^E?1ghey$}B^*S-x}c}O=vs1sqKq4i*CG<19iuO3;YW(^%a>_xAdW$RX+3Z2|v zA(w{1bVF+oRTw&E8f292XVj_Lg|?5qUv9&^j8gkT?c{0C>ia7^2{g;rCPl(5p{|xI zs4hdt?HH0#Y7rhm+bivpsSrcg_i^HhGt1Vz`LKa2ESar)_;4$0H^23f`7EyihE56f zwp>eJ8$NlXc?&qlYuUVHEnCLx&xzS{OAdqx7nw+c#rm6AsL>_0BU7JLUerlwF;?WiAh)jx=<*jgK>A zl`0bIW;i5Ni|`1#yjtc7fvK=esM~~U46efqq4x5TZj?}G!)n-NXzjs=yJt$4_5BX9 zeaIYU*7{|$%I)pEo#4Jyl+$bMm4|CR4l>Kuog5=nIgEOEykwbI|5(RuEu(rF^>CNW zy|BE&@{ytYZ)&M1Uzs*gs1jhIP&WzHpinOf)sax!zR%uO!7v$?7+Qx>i{bOnZ@&M~ zVrwUKn+vUDXX<{v!-rNanq_O$kx;q#$)zDel_J!outlgw;Hsf@$KCHnmygK#LZ30p z{rhE}2%*Y=ALnY7a;fexe13b?7w+F6|NaE?a)-}no{*tx6J9|df7!a1?my0jeWhZ} zDr<-22~{2JgY$-tH}YSK?YmsD;p%`ZIRAh>u7ZU+#n8%>7(U!R*7BRpcT`)A3{@>~ zRH)a4>I{BX_MP$wkQpKkZHeZKb?9foYS;~D;4Zv_0Y50QL|6oy;V@hg>QkX|3zS$G zOc&}3p=uZE3AiCt7trgq_O6Z=s%%&Td*G~4?+Mi{^bfLkRRS!8O+q~+R7>y}y1q`1 z>$jVa0&xyC%MQn;jyB8I-Ifh&46VbZ`~C_JpUpGMs5N*FJ%jB<9R;(5s>;xccNsc9 zJDOnBCcNSbZ!ovPVe^&G57{SEu`mzT3w6Ix&B1->6e6)8m<&r`3mg^dRd^~?Zm*Ya zILv^Ru+z}mIg^Htr=Sf+T|)0riO0ZPL+f-_XXtwWEWoXu^*wL~?h5stQ2D<>W{4N+ z0-wWhh zM05WX!Mf6(8SnU%;f(nodLD0*?Flw?yz0aHXx670I-U^<%(Ar)8{r^ag2&J`(tb4^ z2GfM9OsLz0Y7DN!3+VM`dsjun99Ro`;T-%5-*flnQtcEad+4JP=4YQkvuxe$$CdJw zA(~5bU@h#0b3(lj)sINmA11&;*aU~*GCYB9(b5fv8L$#|!YQ~7uc7Z-q#FnGg}MRu z3)MV4fX*=z3x+AM6t==KxDGF%*IT6<4Rc^E?1gi1A3DWKEC?pU64(Mq;hLfK!2HWM zn&-Zs;FI{y8RhvlnI{Tn!y4EFU(eAvE0^j$p}KDVMd#m`! zD-~f@Sr3*>SOvS_G~9u=&_7;c39t}0!6CS8Xzlb9L${C0&sNIm?NSVa$*=^rz)`pc z&!K06bfaK4tbsjn7VbgyV-gF5Nw63`gClSioS>|chBwgf$E6z&3t%H0giG)kx+Y6345q^h*a0Wu7QBYO zKOx;Xm=7D^09=Ge(3T>xP?!eGVLP0FoA3(y{G@baVIHi9{cr&uLYGvDg}_u;2HW5` z+<=$R`<>E_fw`~__Q8300G-q9F&!*a$*=^rz)`pc&!Oi}*}EzVX2TlT183nLROu26 zgh__hxv<#K@h8GYMh(Ixcnn>CTH;|a9ag{&IB96jzGe92Kh5(g>$}4dqih)x4~1#4 z9Ja#=xCyVI&(BCV7Use_*azp~0d&rkSTIb1rLYx_!F6~6z1}6=XqW?QVK1D6`_L&% zVnHw&mcSM`3fF}CT&O&LR=SZe3s%E!I3v`%LUn6s9Te|0&tRUsm!~oQ*)mT8EQC#P z2rk1D==N@jg~JS32|M8w+=e&MFGsrZumCo~LAV5uq3h2{EDWZ@3fKWB;g+GbJ0IRR z*kmje)ta4)(!$cmSP$USh#81(w2AI0o0@1@tPAZZyn+ zwXhe?!F}lTK8XdvWLN@Q;3!;!=g_lIx=}C-R>N+go)M}Ycnkf1LAnXB5H`UfxC~FA zTam=VVFs*(op1_n!yD-Li_(pU1+Wng!X}@^ z2hh1(V!<#4mcmvz2G`*Q^!ku=qhSuLg}rbN?n9>vi3P!ASOQz%C|rZ*(DRq28wImr z4eWula1W|Vi3P$Wp)MAxW;hI2;3;(f@b@0@5oXys;1gjHY=*;d1)f6pDv3qFOjrfG z;56KUx6uFpNjCu&!X`Kbm*EL?tCmFz(sfjZM6~$g=w%Hw!;ay39q2fuSqu+=D~W{4;SDe zbg7eA2uy`#unmsG4R{H?e_gsUFc;PtTHlr)enI>v<`ojwBdw27^Y8#V*GoJYrod9z z3di6&yntRGk!^}Lv?ZG_);8t9TG$Kc;68L}kU|hlh9$5Cj>0u~4n03A-6)t1YhVwY zg?msnN-Pj2!D9Ffj=)uT20ea5x{)voR>N*M19#ya3}}*WA}oT6C6P z%!Bo?A1=T{=<;!ig}_u;2HW5`+<=$RyGyz;Fc;RrJ~$5#pz|jr77SBhDQtyfhSmf4 z;e8XBF=OoGMm861JD z@C@4Ghr3%g41vZ-a`LA=_bHJ z*aU~*GCYB9pORQO%z%}!6HdWxcmw_Vr5g_mU?UuaOYj)F{*lDOU^=XT9dHtE!D~b7 z8^s6BA4?wj4oEx_X2ELM4QJpkyn_LMEZsy{1e@V7T!E+1eNbW%FcVh6E;tQ$;4Sq3 z6X_=?1S_006LFJEEuN1QrHT|;5xj3UVkCoXqW?QVK1D6`_O4z zVnHz3&^l3l+Pp5+rG!=WupchKL+J9C5)Xl?une}rakv35q4$JzV_+_Ip;O@M{42@b(!cmmyKB^C}dU?uE?Q*ayJK)=70Zagf2jc^by!DHw; zC$TV?4l7^>oP=BO8v6d7bmL$?Y=8rB5gtL?yu?Cb8Z3wHZ~|_^E9mn%>Bho5SP%Q* z0z8B+3la-~sjv*T!Ev|&FQND6r5gitVIAy)^FqBZRCmySQMw7R(9rs3^ltM{ytXD* zb;&CI8S|T$hksnPeo-;asBL&7S5Tif|6cOg@9(AkupDldp9gfJP!+%iH~<&nA#_=? z$5aSR5$a#z6;og2f9FeOfNFuGa1EYA&wsGbrlVk%P*uS$I1P8;E%aZucU1x`giS&{ zBvecA7`lEzVqq{{s4Il39ZtYacm;h{q#FzKV7*ZH3)MV45NhWy+G9FMsFGkYdy$pjfb-)8+T^Y11O@5-Q( z%&Nzk3@wJw;0RoSC(!L*WU_FW0V@oxP3SPR^|NXMZo(_*vnladmJM?8Z3wHaKg~K z^M=enfj-)NVfmDy&j0?sLxW#fj(=e}`-SE57nYmNvh`T*dtuf53(MOtET6xyY}@_b zO$&HoIp&4sj2D(mURZ8;VY&N-%Qa2D>tJE8XfFX_g^d_(Kle~mfyKmKd^#;WTX)hE>Ra387zdt3(yRlK2f zQZF!cjF&O0MW{!FY6YGMwcD5N^QbVGF4PsU9ge|Op*n$Xhtds)8L$#|!YQHN7OHFL z`xWWN!F<>N2ZVZ2s1Bg>k;H;w3M>`sR-qad>NTM{h3;RqcXb3z7pijD4kv_qQ>ZSX z_p!aJVuU(JsH%m!Td1amdPk_Pq3_r1T^%P>d9Yrn`-N&A?n9>&drSqwBv>re&xC3i zt_bxhbo+1Vh6!~#EEB3$I4abuLUjt=Po*0HGhvlbcL~*`P;Uv<74-hPy{n^zDjU`a zb&pWZz+HGJ)B$Jqu8J4x0-@giAR7tQ{sGEgq2rk1D=yq=Js&JSg z)RjWj0Vm-WyoSEtlx`f%hYfH*s2Aa(P&r@NV>(!pKnPw7UscvL+g85zu^Vd^+Meb=ixrQ6Dt2}=_bHJ*aU}!dReHB zgxdDM5(|N;LR}_Qt#Ayk3-yIidEQ7j3TDF^*aK(bo=~grNGt#*!XnrVhv5o55o)(v z>4w2{SOGiWq)>0dOQG`oKj}sZbvCRLs!lisx8V)+yR&z7yinx{b-hsa!a2AP)pzYN z6$q1HG5kk)im0A(=?GkfXV61EwLia)gjui}cEf4718NcSogX=q3VQ_LcJwaS3>Rca_PpvTv!MDgnC}6_Mwx9J*I<%DhU?DXK)0r3iTOu ze}%oP!eIui6zWc)niT3Sp}K-Tp3;qld9WV#!8y1Oon9%iAeanGgt`Te2-ONa6>4`c z>4w7$p{^9F4mb(7;1%?Km2_iZF06ySa1QQ6CvS-b33aki6~kw61g^kSp>}_@bi-i= ztQ6`_p_+tShSpQ=D??XTA1V64SeOUvVLx1ehtTCU_O1>QsuWlXTj7{cuL;!|^zgNJ zRV2(3>T03tg41vZ-ax#i^l*1nB~;!a(v5++uom_T^_-z~e%>{F zbR?_P9SnHA#1ml=Y=*;d1)d7Ed#F98!(qBml?ip5P>sQLp}r6*&o|h+Dhg)98bj-^ z4&8>2`dKv%ci=7b3zK*}EP#!0P^g#Skx;q(u*8C43M>)o7NHt}t3rJyRPN!@jewc3 z3U&(hlu&KKYv}t%>Bho5p{^IIKB1l$s(qn$ijY_!OcLs1*bIl@qEH<|mp4f_1g63= z*apYphEQJ$l~<&6qlG$0sA}Lh_zg%8m(IdHsNO8y0HIEVg+kQ`2jLPthOSZet`37~ zLRAW1@nQQPQB^CKj=?o}F4UesVxK}q!YrY#5~@x(1-IZe^o^EooKWWrRXyw%>II=X zfX;7`STIb1rLYx_!F6~6y<(&r4Rc^E?18gz5309HED$EaVxfK}RKsuuo4w7$ zSP47f6x6lagAAeanGV2e7I1m2MbJ zhvl#xzL^KZ1eb2WOXwXhQ^derSO@#yJUoETZ?EB@GCS!^CzB+TNixYKlT0#6CYdB(=_E_UoPe9~5(dA+nX8k9st7j00im9U z`_SW_goO*um1dpKsxsIn)I)GdsE&l%=be%e4YOc1?1JNPL#Qtd?LrRBG;hhn%!B=$ zc^4K6^?jl07wTD|+J){vD`8R3|HU@^vjdnSfS1lsv7tZPQXog34`Awxyi5?HVgG*p_+#W&?{fUqF|;_R|(Yv zI11O`Q+VgSlACB~cjot$n^So6sj7xua2#&Ha~N14;dfynybmA2Ik*o!e?h_`;XPOh zAHY$#2A{$^g_4^n)CEHI^Ss$@;MqPn19zeOFG_A0OoL^x4GzI&cmn;3BsUJ`!aCRk zr{FeJ?~|}lmm3x_lg~N1M4%>w;w+PY0@~m2h$I$l!(nT!Hfwiz(s3(PL6JEmLa>-4G#fJ7+ z_+@iSx98W*-;nH^t!Ano8@g7F6R-gT*mYJ`Xmu*o z{=Xvq#KBxx2YcWY+=i-F!a`vxEQPJ`30#85hR* zfo{JlVPS@L@uwNObg7GIbss*0b8sJeHcEITyay}c12_uT;8S?#Q3t%JcH?(s# zYv{UXZ%UQ^yxHkpW>{Sk5PV-cONPa;89s&!@DO@`Lc*e97OaL{a2#&H3mDWSxk-k0 zhKmec=c-;>>0Y6lg4H!>uYeM}L27H=umz{GqhV>rJ*CnmcRVmzSYW9Pv8eY7Xuj+I~E{Uw#M- zHRaoD=H||Jg(aA>Wj<_xeQ*ZuLigX4gm9P+%V9elhAZ&Y(2m@{$BZ=6JlNsI!#r3I zd*L+Pfo{JgVPP;0mcceS1ef6n^y`&DJ9dgVQ?`S?2P@$NI11O`Q+VgMB`gsZz(&{) zXW<_7=##Jrm;ozb2ONQ`@C*igQF0StK5T$}a0c!|_kIZrhv~2!w!>k#0#Bj;mn1hH z=D~W{3#Z`@bbI6s(_umt2XkQ^?158o8>-)N=BiMb3jdrh=Sz9E6+VGWhIVf{HuSur z%6CBeiG|rhT_aRoa2#&H3mEjflA8pJU=tjG^Y8$AJ(jR2mFMFRRufYm{6|^)l+z9 z%-Net6zT$@YJh!k2JQ;A`yWeK7)*m@uuZ6k;F3@sL7#ESje*%hT?4z|7+e#oGZ^qy zXRb~VsytW^d*L+P5o)&yXP63wsjw8b3iT7XC{%~g`%fe{8fFP~HS83sQMd-5!aI|a zn<&%;Le&8K;EYi33YFW}BrFW3!7|tehv2eMp9q!jl;p<399S#V-EcyvHsA#e`cuhG z66zwMx(^@0Ik+#>p3@Q*0W)9)?0_S16`l!oz@JHOJj{djuoq6l9ieuck+4vqP8F&W z*a8RPB0PdVe=fN(LY*yC)vybW3-yLjoeOo~tmGyNb%9Vd2z4KvhTB4QCDb8bm)sX> z z9YOC^$&H3tuv)0QglY_~!*ihy{9DOQgatykM%W`%6L3?gFNG>-O>*xF-3o=eL8yA+ z6x@dDTM`x`)G0z$44dHqoP&GNV_kB?g*qLU3014m?Fn2Es(tABcaj?cGlaTAsM>^j z2rj`R=)EDik?@|-tx~Ak;1jq6kD>41OKvR8fwiz3P73vwP+h{{O=qr77OEnlZW5|T zLOlofgv$Nf&M*}&)agQ12HW5eT!tsmcS~|(VUAGO3e`h64mX7QLZ|}&L2~a3b)ir- zz&@d#5vm=bcH5S)P@ztRC9oL|2-O_iho1i^xsgJBPpB${xJgk1>V2W|IFzsmm;ozb2OJja z6`?wYzW*w@u`mbL3U#+ojl&J0z7VRwBWJF@D^vxB_UD5}LzlfkJ&;yyOFKvOudt=>6}~ zPZZ3ARYKh*fo}g#!a`vRED`D!p?Yj+SMh?O>%!Qk zl{$5X>rkOefhDj74hr?6P#r?=|B&1$p}Gev;R85oXb1gOb6|GeF4t)F6y7;=_M;ME zflxOZ+QeSNR|da9wuwnvZNW>S3i?k8Pl83T2@b$HxDP#_N?0Vk2P+NjNIMK&SJ(ip z=7st|s679RaF_urU0KJsA^QYY?q0Th4 z{l=N&#?4BpQcYA17~cL4|Eig!)fT*Bf=`>jB)U!zqNVc`SOQz%AY6n;(8o=}VqmtR z>x%eKZmeEIt1dVO*Wo$5^Mdq~2n%4NQ1`xs!po@#=Nia{L1^CuOV(@Ql(!q z_bqq-fZ58Qr8sV#*3xyHsxn0Ksy$~3-2}m1@gQ!ClT6# zUNLEir*xhIOAPI@zYcVrw#8K0ldGSYSoiC@!@JfGGU>0GrRG|-NC!vI=a!5h24)L& zjiDV(m!WIo0IlW??YLfR&iD4X9+y{LxXkmuG*zBn(qp7hX9!g}Y=^^!wuf(+?d8^Y z!<2gE^+slw>IzLyq5o~^EZ)$rraVKJ|J>**T0NlEbq_a3shXE6bzpewg0h#l*({k| z9c;>WTuHFV(B0Sf`^=a>rOl1DUNlSUd*-7_+UrL`HEZa)N!%)x8Q-Oq`zxH?>TsAQ zRHd-R&@PTa!&m;c`~^wR(P|HR_&CE=1WXsYl?hdgp)=gj$7Mau(rQmyDUVm07mXnE zV3%41%zzcJ1CGE|cm@M}B{u=)!v@#~XW%Y$|2_!|hv~2!w!>k#0#Bj8pXA2FJXjBV z;WXTVZr?9qVK5Dr!8SMqm*ENY^OxK>m<#J*51fMAQ2l^}g~C)=3R~e5xCD=(Z-C^+ z!W>u&yWu3$u)2PHQJmcSM`2p8cI^tmHpF)$m}z=v=GZo*3#{6mtP42xkid<+-h zA@mNEuxOYCt6>)$ha2z$2E9shlVA~Sf&*|K9zd@k35$Z6unKmzGUC9nk!!bNxlecm8pF)$m}z=v=GZo*3#94WcUuoyPO$8Z52Lhm<9 zSTxLn)vybW!wq-=gQ6ri2^PU7H~{D20rdJ235$Z6umX0#5x5G^pntUF#tU_xP}LdQ zcgo#{Ua#Y${Sd8|;R*EnQ3;QOIfgdzRpxEC=PDoNYH8ICC*UT$guyY=Pckfq&G0dt zhX>H>$DCnqQ9_jgD_{p4fvfNo`o}tRRXogt^{^LC!yV}M;}RAI(_k5FgF|o`o1@1G~c$kOsYzso3!q^N!v`>e)|4r^8)cG%-on4x;OJ6D=Q34ZS9;`F8<198`&D`jrJZk93 zwj-LCsq}%+&GXI99&|WNGqkavG0V^MWAaUcDwS61HD>wQ@D_R2?XghJ!F}j?*V(0t zfElm?cEAz1D%58}<^NNX8!vRr6Y3hF>Vo5N16~MqP?F@{g@r>ovgAe>+Lf1K=(_UqY1IJxm|({6#v)a_Lhb%m=^+fJ!7`z4 zGqgi^{qJ?}wGQ9Pes#{Xfp3$3?!rQ$zAse$a8{`I zgvu?=8K&P)Z=v$6N)_r-p=uH8L7`fJhtTV1oL#6WmK6`=CFJ1qLaQ(96 zxhC~$U#LCPrH2TZVQ9C#3PaazuYp#5a0c!|x3^1pm{6w)RVi$RgF?Ls5206vH-GcliVbsE)=Rp*biq7?OOPx*}z=Z zg5IN*`#U8(9Hzr^*bax`GCYBPnUWg^b73v)Hnbz1H1vF5iM%UVye@A_Q+*^<-ajin zM8hmtZD?b^Xnr}pOr^w4}@->1?0jspV2eIiu8g_0W!bA-A^sJh@d+z{#u82F2ln<&)zuwJNo z;1t}3s>m7U79!M1LRBc#_l2q-&cI!vc7LDbhQcJFDu4~J*U;{Nj3bl8M zj48^{bxcX7{OrS~E)=Rp*birgdQYg_e#x1jLSZT_g)MLpF2W<|Q!2SJFk7f=gsMxZ z$KkqAJr(LZzbv^4Fi)uKg{lWm3Ej4Z>H-FqN$y>tE)=Q;*av6eE_DBZgoVR&SPt8T zdKfMX)iLxfm)uyGBh~i zhR=G}|9<`UkG)IhN-I?hyWs@ffEO_6gU)_b5-bwxCZT!+=it6jdsa$V1k4cX3fL}G zLvR_MK)(-3ZXC>kwXhpb!Yz0u)FD-pn+%I#vrs=av>zs~PhYz6q3hF(SQTnsnyLfn z^ zl^zzVWq1PpK2A8yg>^#RBUF=yw)d}I|53%|sJTU}E1?d#Fa0FLV%P*93H6*%?FqHV zCnPK!rol4U28ZA>JP~TYCg)t~SVNa(s?to^zQHULs#f>}F2Q5y`$_;UTKI=z+_6758X%SWLc&~inRLis7a1w68D;V-A=_du2 zz!o?N7vT}~X_2rPm$T+d3+5DX8|(KOsds$Dd%ix-)Z3=HunzXXDY$KD-}rpX zy#4&1ZdIGahQd@>YG^m$Rzt6MRmzZiX*CUZpxb99JPfA6GS~)(;4(ace(jPQ2XkQ^ z?158o+wj@x+G^DN=KR7(%#rQ(^&)@8`;F{+QlB$#8`KR`<7;FWeh^H8MX(7Dzm4Uu-Fj2(Xt>5(cm2G`*^4EzlVzY7cDefS8@!F}lYP{JbNJy;1Jz)`pc zpTav|klaLA02^UHoP~SPqg%ovUJ@tK(}5A3xjE}47R}`xC~FA-)~E99L$Avum?^V+WkJ* z{Eqg*^@sVJ+ti;z|32v<9_GP%*bArO4s`pXGfamGRVplnt?&t4g2&Le-JC9nk!8ro&bYvCgG>+l=~K9U~p!a{f-K7w;_AA0_dghj%8uo6Ci zqi_vAg?9!dHxU-VM%WK$;U4t(T?vbT8L$F&z!5`xh9t!vp9wC}B}B6IQ`aI0o0@ISl+g$-N5;;eGfB&cS`?`9#7Z z;XPOhAHY$#2A{$^zc0CoumCo~emD#FpvRDeMZgSL0XyIbT!m*a;46|F5A$F>>@~C- z=EtwkeSY)%<(>UBt#+W>u!M&h+G#7y>4qL(`em6mjaFr_4GzI&cmnCS;xv&oQ zz$v(GXovTCGix{1h$Q;McthJN&+zsrCx2H`<(R*JH{TcA4*(Ac7=f!yaAtUW^0hL7 z*B?sfQ7{u$!A>{^*Woz~9F^R=un^vdkKml4>#EzQ>JkS3k+e!S^!l+-nV%d}w#%Xx zcEd@y1+NTkzaeAh?AB?PcA_cU#GAF!PXW(1!hSdl_n^lgOIQTVFm#>k3aXmm0Gx*h z&}&@6qhKbif}Mu8%P~W*1*+EJISl-&OmNrmW`=pNi=`0WH?$vJ|IB<5=zjfoV~X2<2JB8%vZO^*hg%&z>v4f$hn2Qic%;@4-q#*S^2)veVOQ z6t2OiGOZ5y+RJA@%9QPr$b?m}6OO@kcn$-nBot;G(1oK_p~0tU@VKS{6<-iMFi9NdE*e<1^jFm!!~kz~qtOhvE> z4#0VM0KMiVA_Yb?$qF~Tl|VWDy8JZ;o^Q%_tEh*)OfYTeI+!)8982c< z9u#hO=Nb?1JNP!_dZD7PtaNPp1mVV*IR9eet>%$95C zB*j$S{#SOOJX5xFQU`kom@>TeUrew}s}tz=Es2SPxv&oQz$v&5)w+a*8rqSk8ag%w zJKQ{4)zhli@aD~zWPYERvbW3sF=v@-4|@Ea?CKGQ&n`ao4YRA;zT(W2b{LMm{#A64 zW2$_<&U^SOQ?^re!ZElG&kb#C;D#CZU-I!c!jxTm{D7Q|p)#ndFmxP}Y>)R%+42#b zgZt3)@1<>|q3!IR;jKc-m4>c=>ufS*+rt2yhX>GWQ`$zsOjrdw;TT+p=Z1D~4g9tl z)Aet0-al^EgB?w@dD1cqR>Lkh4maQh4BC>gBv=HS-~gP52hj5$BrFo%gO%_B9EEF! z&W*ur2OdAgY(J&do$Z&mN;GBX5`opQ3y#ALcmad{QNog7k)a(}lc8rPRRdJb8@m3@ zc!ySQI}#gaXtUA`U3Z2YTGhgCI0?7l6%6?&=_du2z!o?N7vT}~*_E&umn%h4LOm+F1BHsuE101e;_@?!#qQ~gz61%f0iZmfL5b$4L*f;zANF0 zumCo~emD#FpvR$vMZgSL0XyIbT!m*a;9n&-0e*ow&ga<%*av6eE_6SV+;Er<%V9el zhAZ$C`v04(n|MRdH}fi-X3BQOm%%nT1ef6n^gEV>IG79TU=N&v+feF0;}~t0%Pjk%a4CYnb6BS{*~*6X`eB(DsmH==B*s8kNzi4GzI&cmn;`1@KBfvOJOT~0+--1^gWZ@SeOHA zVKH>Lc*e8Cai*;a15@)a~SwPl6w~x8rlv1 zgXZjA?@w_G?|oYJ!&$foJuW3Y0%pK+*bax`3Ot2=|0}t1FbCGcZa4|I;1vwHlH3$n z0-NDuxBw5K*Z)aaB)kVJ;R84d*WgnapkCp8d5MR4upaipX}AO3w1kDhG*}8-;S;z7 zkD!m6&x_e7l zI82A-upJJ=6?h8$Um>~iFb~$lUN{YRpqr0`g~2pf2HW5eT!tsm@0F4p2XkQ^?1qzY z6JEk#U&&2|MX(7zf^%>mdVHURMZgSL0XyIbT!m*az)x}$U_NYseQ*ZuLig{NuyB|T z%V9elhAZ$C`uj_6Jj{djuoq6l9q9H05*7y2U>R(KLvR_MK)(RVjf1(c4)(w)xDC}0 zN?0gNg{80s4#Guv1byyEZVb$ZHSi&vfSd3V2LF)cCc|Rb3@m35$RkumX0#5x5G^ggW5$k{b{6U_I=G({Km6MMzi}OoL^x z4GzI&cmn<2Ah~fc7uLZZI0d(%ij=TWm}=16IHe zI09GUnV}uiiTR(4dq9+g$G~h@10TW(xCt*|@Q+AtGAxG8@G)F~htNA(!lGdotcIO% z46eg-82F=-dlweMM%WK$;U4sek+2Au0V`k!9D%Fw3JcWKgF8##8Tv!Xc;UwIGS1>qEa+6^(Y=Q%D4(>sZ zpOCN!m;uXSI~;<`@C5qB%YutD^uA{v?2iXIuogaq6L1q=!k{-vSQ0FP_u(Tr2lt_8 zf`moFd$1BdfTM5?p22{hl-vZE4;x?~oPj&gEm6Y4U>YogZEy%K!DHzAX333(Ij|OX z!%4UWuVC<9$xVjEuo*sv3-Azn|CEG9!z@@0yWlw7fEO?*Nph255p043a2_5&ueV58 z6wHKGuoI5Kb$AW~lO^{qEQI&rBRC89p!-`TEDWZ>GS~)(;1WEBzA2I$3v*yC?1qzY z3tqvHpO)MdSOQz%AY6op&^uMaqG1-ShFx$RZomr|^ft*&f<>?i4#0VM0KL*AEDC1A zD%c6f4DIXGn&B(n!Ug}2Y32Jf5*`b4;Q#V5vX*DN;UwIGS1=@9x=4W~umujnMR){# z-Y#J=FdNpuhj2ouH{q+yue;A)f%I48Ra{@tATYz(n@)szhR>F)<8s+I>!@m{%5kyr zq36o8G~IZv>M7;B<_|qLUR@`H^LmG~Lv@{cBT~waOPb$IF=aa+IaJjcx|{~DTTR)X zx^dmXvzuNHN_*vaa?+G-)S6J833b3d=UARyPCfp)@;xa(3oJHe8`vOJz0yig8@m4I zZG~2+Lhb)fXSdH5!LM;`l(^@rT+R~AHC4|#S9P#QsHcQ#%h2vGj)nX`Zejm@l<}e|6zT%l0DFaM%Fy<+ZRq)@{FmXFR=)3+@K~55)V1&-92cr}cn$;eoW1M2hPU5h z&S1Cuc$O(!Rtt5PP>sQLp*|O?JMWQ%L_>SHblm3U`uZ2Q-pHvy1vG7h{czUME~Y(0 zkB@&?26`f`v|qmT7z=ZRx)we(w29+}E~C*4(n=i&wby%Pf*-m5_sfgs?0q{=Uo_i=_QM!`sE?!B$nm2SPn6RIBhzr~?XQDaIRq&q?Je=1JQ_iBPu~KATbf zPv+j(u0wn*t<(ZMgxLkh4mX7QLZ|`@CHF2YgnuS)AylJz)~=|xUf+r6 z?QElOGB4}4>L1M857$?|ezIoa9`yLdm&b;i^0S4f<6$nW6{?4D!q5)k8|FB1bCarL z=v(9rSFtb$*1~Q$3Af-C40)gAroa-|0tewDJc2&O5*7oqVGVo;C*UT$gu(BZ++if>0emuMaqLRTRvGRj?C|3H7>AJ%xA5B{vZk2z8@S^}!jq3*BFouyB|T z%V9elhAZ$C`d3J9Jj{djuoq6l9q9H!2@8X1une}rA-D`r4DD9qS7}}Z!_0$y1&M=y z&%rpCXX{`OoPyg>eMoXcVJa*Y>Q#dx>-lfY414|-?>&ZPD!n39C(!RD z={FAM!aCRkr{FeJbrKdT)TyupHVf4NoQDU{>!Xqz1v7=Z3O*335x5G^ggT&Ja^qp1 zP}d7p51fMAP<>3oLSZT_g{?yUM5q>p`bem}8zeUxX2ELM1;>SY1D*@jonMvQL|7oy zjY8E2XW%Y$ZtGL@g4SO5BB)QQr3s%D}p&l2ib$Bk+fuEGzL|6bDVLzOO zd(fjV#uLy)INw;hh%AO%$qp*Z}+B z4BQoJ_fI>+R2WQyWv~qn!DXR75h~wS$&H0Mu-4G-Ue|X&aXIemZdy&iO`*ONs-VwE zKS{6%Ho*a*o)@Zp=-K8B(~&}zA=DK@)eeW@icp^lmEUKbxhf9k3U!@Ob;C)x1+RoU zq+N28g}N9v!AC+hE7W^J<^DNmm=1?&LRBi%twJ>@)Qj*?sJuFyxhe`~3Uw8HAXFnl zy((0v(Esz28!yy(LRANQ;1t{zYV|Ql&}z?N`}R-89s&!@KC6|f8Cj@qF^Sh66#K&8ii}{DZJAq zxrwj>=o*1q1uM(3lbIzQ(>v0 zJrsV`d{}bbYFcUaM5vd9>InLDOFuC%8`i*wZ~|_^OBno{lAA2l#X{8t2jDzBfL=Wk z76mh573_p#aNW=@EyvFW=T!OrmW0Q`99Rpxg?bWh2-Uez2lh&C0?Zfc2BGSO({LNA z-kMbvF1sRAwrqj}a2_5Q z+E}kIncoduF3B2f$~Gn$7Q<%v7%sp==>15-qG1-ShFx$RZomr|^gEK91dCu39Dwui z0D28bSQN~JRj?C|!F6~J1AkX?@4`ZOA3lO}a36X;mas^84_3kla1^e=r|`~~B{vZk zz(&{)XW<_77?iLGm;ozb2ONQ`@C*k0p5!LLeAoc{;0)Y_?oT8v9Hzr^*bax`3Ot4W zzc0D*Fb~$lUN{YRpxcmyg~2pf2HW5eT!tsm?<=EiIq1qDaE1?P=mfU1m z1e@RhoQDU{>klOCHRhX7d!V|eM-)}bhOSk`RMo*AT8)?!K5k4=b_A|HS3Z2MtVUkm z%STG&mz)4oWsj5zw0g;0;^{^{Rn@SIR*t@}F9d7nz%jOQ>K!S|rflC)J5F-HzIxQn zeey17@0dR54`o1chOP@Ihq5EOoTm4wa*XOdTo$aKR~%u@6%6^Kmv@jt*)ca?{w3+qv5fLfy+eeUYj-Q)P#d3u~X7pqr`@xB^e1{~t?YJj^q+ zLv$>T>rLoZ9rdm730#85hOR5ncU-!OfEk9iRfVDBO2Dq0Ujt1$;TT+p=P>ZA(%D@@ z*Krg+SFU}o+)mjs<1fnDd1}B^*=0XZs{_MVTwgHUR$Wr%*!hAdWU2(14;u{a2>T2j z7kG6YvCD;mM``L9+?&i#Otz_Gb6Yd@cC8&5-n=jmj*A1k=6U{!^yk=SL!K)qPYxH!mZ~fxT4B`N_vckd9dElbsW9VmB(nh1dpF<<@2Y~O*l-0Wv~qn!DU0& zaU4HazCJtEwf?U-7I{od=MgXiR={>R3|9z{gO%`sq3ak&pDQoW zbO*Z4$j;*EJj|56qRoTd*zdwZL)USB$1DWb@_p(Zdw}N3&W`e*nj2==)NYzOdVPsY z@=ls6+iJ_u?#PZ-j&ssnt^|BV%70v6W!U958zFx#DJif7w!lHS2oIt6tju_{p;roJ z$Bbo}vK?|6Y=c8^+0b>Ny_T1B$2^|U)bs1o)X`1kbLA9Mw%z8#2H5x91h>su#I9S& z4E2s<-1U|5ZM~!Haw+Z&)70J@!ZDWXL;cO`TX(o#b^U^_gXUyxcMWZ7p`q)gyQ^u{ z1;?4du}C(kI-$xj48OmSZX)45L)ZCqxyMQ+tscNpCisNe)4hI!m%BAuJ*AbS^E>m> zc?`@pbnU!`s&+U`s};lB`&6Am|G$(T;tg$Vo}pI-RrORk#??#J*mG6ulpQb2$CMqD zdM-#Wj&jIzwZrfSmg=DT^ZaWwt3`O(j&EHKp}Q#o3_ng30AFUv5Z z3|+6dpKQuDtC&`f!8TLXOVzZY*Oy)=M@vUvt28}?-rtmN9j&5G+4hwN%V67c6AV!` z_gvNfbLA_V2CPUo2{0cvz+N~Fcc9zfNLVOLHFQ1Dl~UD6m18OPQ#AoM;Ux@SmClk4 zZ4bqUu0L$l(CQ(afSd3V2LCPLuoyPO$A-3d$6mNV)h<y4GzKI;U#>TXHTHthUCV< z99Rpx4ejtI4R0+`wFR$W$lptN3M_#wa1buSBj~d!VKFcp))?C1Jv6*M|9Uw#4$*3v zR*uc>RPU<-f+?Ea;6WpboW9WLj7e{@$dD8aP z1P9M(^=25*q?jU3?Bfac(%iqKGk1+IdJebR9=ARSi^q(@c7^kFsM6{XJ%Pl&RL>Q+VgQ(v9OyLWX${ zZby)4sx0$i1MGt{hOVRCrRov}A4;oaL)Uxt5x0^4OoQuvha(%_r@>> zpZ}8Z7?=%f3~kIqL)Q&ph*rz+1p1vzcpS`yb+E_K_A_O8)8(GEi?lj|KL0J@F)-WE z#yHkQjVZexF~4gz$M3m0Q#;cS!xf?&>-&@{?+fWW8fL+2L)V4hWy*GccVrElvd=7y z77TCyJs+31P1$Zh>VJfxFcp@*^nXD*k2kb|d4}GGhr3%gkx|Wo*UYMI(GBG8xkI8=vwtn z-ZJM>RcGk9DZFjkY05WUZo%De%64{U;U4txkOmPj9hSp(I1E?dsiEtb{cpa!9Bs;W zG- zZ)js3pJryM+JaXw#7Fu`F|^Z`7<$&22fLzLuFE;EHNVO|q*1@2>wV#dsd8++E2eDM z=@wOQH&@+*|yyq+~>yT13Jhrc`<0W)9)?0_S16`sL>ACS>HmUDtB z+upNb4SWbE;3m9;!2z-olMQcXnupuD=E3$*44dEpoQDU{>jxzv3TDD8*a^qrIy{Gg zcO>^NEQI&rBRB{5q2~`tSR}j$D-7*+(P8*K_fs4&PulHh-tg9jd9cgv0D1+=vr+Jc zkIL&nCeK#EPB;eF4Q-c>kJTSFTcs_Zn=03fG5Neo`i+6vum(Pa6L1q=!r&muO@_sW zb|B4$j+;clKU}(HfoBh)cc^p`4YOc1?1JNP175(O*Gg^@EP_pN0M5e$=oKbmQ7{u$!A>{^ z*Woz~e4XUpg@y1w?1wXO7rKW_Sh!H93so6xgF|o$9zmbiOKuFzhSjhOjtTXeP@M^N zK!oJR!(3Pgd*Bq@hUyIx76MaX32cFba1kCs??}mwhFP#0cENGDA=DQ_75GNUy$cKB zefS8@!F}i%C1H{99;|>Ja0IRj^{G(#{fOko!CY8p=sai}-W;TA3U0$I7!obvDX;`K z!^dy|9zyRQm9S`-1*>5v9E0od90tZn?p;^_8(|-uhC9&h$0RHarol4U3J2jLJc8b_ zk{b=PU^VQ5V{jdw!@wVx+`F&qLbXX4C;V@i*r_lc=BsU)B!Ft#W zr{RuJyTwabC`^T=uoVu%MR*9k-z2%wFbh`0E;t6);W-RUkleel5Z;H6;2hi+YR{jP zun3p|D_{p4fvfNg1|&*u0?daEun$hd9q9IE2@8X1une}rA-D`rpzmGDjfFX|7Iwo) zxCO6Z$WKXb3M_#w@G)F~htNAo!lGdotcG219B#l181xp&O%m!Np}G$r!8y1OJ(DFY z65bQ)N}=k2BXAX-!GO0)ZUW4Q4MN=~RMT(=x}`{17)*m@uni8uWq1Ppep+(lU@okK zJ#Y$cLzOCFp)eJe!WQ@#F2FanI z+=Ct&5*7h7UGoT7OaL{a2#&H3mB9oxk<1H-iQ5gR;c%c z%KhggEF7l8a@Y=s;W9jde%X>62XkQ^?158o8>)9nSSU<|rLYw~flKfh`sPS(EX;wm zup3UoEqDooe_nEvVKHomkKqD5gxR>4j<2G`(Ic;`Kmn+OYF1MGt{a2LAgOISEehvl#x4#O3AYG}XMbzD`c)BKtL zmj8RDhcK81%U~NEg3Is(`V~lS9L$Avum?`TZK!@h!a`vxEQPJ`30#85(6>->V_^=g zh23ycsJDdb5(fXGhOVP&rm7Flz+LG6q9lgHbVHk1Zs<`_QP4Y2R&*eECOc03fKWh;3_aWH%WL5%!W0Fb^^!Sl!sJ}z*Tq#13oF?2{0cvz&!hkC@8yQ_@)^yay}c12_uT;8S>~MRF5i0c?c*a2D=Ck55Zj z1k8XHumg_3Rd@yiS|#`YvvvRRl>T-8$KP)bV~mevHOWenBx%-KUpq;%lkBV{Nz!Cx zHEEKptd%q?O_C(ZN|GkoNwbrrS;GV5@{B zz&uz3yWu!og~u@BBa)jAOJNfngtPD=3}}%#OYkaeHne{G(D`D>$NAey zr++}=^sj7KBezYF&!?UL0nNEMdzbe6a1%N{BeTZ9%di}_!C|-n_h86P$xVU#t@w4?iHz{7RVhFpT`H%$N>KU?c2@Q*aCV_DfhS%z_oL&Cq(5 z7&bh6pP>b~2SYw5;mNQN*26wH3D@8Wj2MvIbXW?T;2@lVJJA2{BrG20z$(}YN8vI& zG_+1p*e&yJCDJV1&z|s#p>>(B8@hh|&Uu-ia{g4ss&A)$7%sp)81i|UCJ7e6I@oLI znp{sB{_cBhj`~M1a8Ra6fO)VQcEVA(Y-pXI1H-d^Uy#I5coANK*WpcgA8ta&ZOM&> z8HU#EWrk;J7-})JF3BCk-+f6Ysb7cc?`5tim|^Ii%kXR+LoJ5ZcW~|)o^$?P?5CXH z#;yw|@DU9Bip-Dz^9-%YstwOHvfgEQcF-)W{ThQS@W{|QJ>hrFL&N!} zS)p*lW-lXe~_>!m;uWSt+RUi;A=7KXWAI=H*`P149_kxv;}=f zWtv!+1uI}X9EJ<>*z@v&Wc)b#9VjA*?sF8u|=RpMl)hfvOdF1jEK8 zJQe#lsv!>jYOB{_Ycere0oe+@STAp*7)*vvq}`ZRq!PnKl+?!3x+8hv5s&?AAQ5 zGCZ@u&=&NalzC#{W%x!8qMWU5@V(44Y_^`6WM~2I!r*Vnlu3rxJ{B0-zfM;<*I$(^ zXRwv7AvkYn1?(E0IWY_Cx&+@dC)fGapO*mEb&NJ67BdX3{xWBM9Yf9VHk^ZxVBkMV zVgk&AHHOwa-G<(M42{DTcm%`mOL!VAfj8hSI0JW}|2HKp-q1Q%IflRc9xgE>){fsW z^l38->)hRfGjIp`Pf2aOp%s&3c;*x4ry5pF5mgQFCcFv%-jJbKO(zf4KIzZ{Pp;fwV==zI2Up2>J?a=9i?1=inY1yF!mAJ| zkXbwxVis0qxSGe{51<*3T4EU(I-zA;)Gl-Faf8m3-f9w0}WZb%t!1 zg|!pMhW4F^cpyW`umIM8uVp;Fic2jMJy2m`(=;TK>otcG21%+T7A6+@p* zS=V1T-#heuFW+81k}e&-Ad{uSVxew?{qVj}twZ%a35$g3umm>30im9TThMD!a-(2| zP?y0bI3QG0a0~kWo8-m{^<|+d6Y6F-C{#0WN2vXm$Q9}=SPom^Z8$4bJJA38k{b_m zV3kmJ3e{bqUJ|N(p+3JXxyeFZC{(qu2Ts6Mcnl+cAi3$V6gI&@I13-bfE5XghdHnc zcEVA(3=f4m?1%1Log!3M;B}$C2`7bW&CvD8(&>sZciw)h(f(5vpzI z_wSM$C)C+ORRP{|m*Ig> zhiU(fqs7_$ymgHW7rLYMO3iYf| z?LhyZNLaj~>m`A9{$*vyr_7(vJoj?*M!r6fO_q?%7F&nK3 zieQ7GmC|o`ZcK*s6x@VfKb4p$m?6|JH<;$aS~f}L;_F2h3@_A|*%g~hND4!~)+4gDTVSRBlTm9PWeg-h@N zhW=b~Q(zHnfcJfLT zH8erh8ax*2h+jxdnxXaZEipX(L#kFxB~=|#rSH0{tgd_Rb*t+EU5{bVo=lTyXrCsX zp;C{bDuy~ehWgFAHRF_2=@&l7yhCxGG;3&!D&Jqa8+5EtU54eb4GzNvxMye`|IeIH z!2fLii-$F3$i56E8`_65%(_)o23z1ALszVJ{t;<=?*pnH!=PVDVj|3kwT4z=k72+t zL*qidDpW@>{6NCfUJEGW zAH$&EN^SzogEg=ljtljwp>;AoYd-sU_6sR;OCL#<3O|;4(qJ)cgadFI{?9@eZRTc{l4*h_qkLDX2_}v zRZnv>#n8$wGPE~TP}L4c;3C|I=e2}iG_=C67}~?jscNI@^r@1=Q^Ouz_bA&{hCFawss7I+6ffRAC&nWz2VhkByfXkFz?@G5MEx8WRo1OxpfECJ@h z8rTiT;VL{fw64S#oHtIyS;Ao+tbyHd9InD+7~wCu>976&&o&)k#8?Z)iQs z))@NTV5kd@!4;uC5~{G@bBC)`p)P{gVV_VpdKDfDRp{?a zZVJ32RCTads3+kXJQAv~aCfdsg~hND4!~)+E!2L`matfu1uKNQU8siP0^EZk5t5q> z3t>I%gZJRNP^;%iSR}jzONF`#-V&;5xDEXx-MKnWsIp)MY=KE!Mq1uFw7zv9Jnm>3gTd%=ZI3(2bLiHF1y}+HI z6NM@d*1#?}23LgoNT|YM-MK0i7Q;q30H@(L^nIa(#lkFD0o#RoM5q?vu22WZNp7N0 z=L=O0?1E!(#n5`yd}Mg`m;5v&;6)N14|8A@?1ZCm86Lv0c*#u_>SCd4fc8Da5+pnwmck}D2xs9#81RP@b^+$XYS;zG;0io~;fa!)220=#cni+J z9q9i@5*810U={3yqi`7>!muRCO@+m<5e~ptHXOgzHefRKlWQ1}uXu@D6+cAH$$j$xVd$uom{f3AhGNVC2gr_Y%Ac zo8fIZ2Oq(}Gzm+9d9Vg{!*RF@k72~iB{vH_kS<{tU@okNU2qJpz#|y` zCz6{6OW+N73(mkD=zmGV;$aS~f}L;_F2h3@_6o^Og~hND4!~)+4gE4CEDmPFO8D&e z$~VwE*m@T(!2=ljN|_?X(E5T{WcXAqLk+MWPQfkcn<XS zUV+!)O?V$}LdRtZi-DJ6Ic$T&Z~^YYkUx{$WLOC6VIRB)H=tLRghj(lcnyA;AIP+_ zbqLPGT^Rf-nIZ`mz&h9qC*e9&*%B57Ghi8Pfp_2o_!tJgT5=O%KCFd3a00Hu6BwBz zxtHKo*bHyOIrs<$zDB|lU>>Z2-EbVP!ebbbE4k^g6gI&@I13-bfY(ac1(<7SJ@A`j z%m=xu8ES*WZ~^YYkUWV=HuOn13+sm)g|Hs>!FzB6dc95(q7AKm%rx}LW#}4grE17o zHOA09+@&fw-&BR0g=jY)&+AKH~ zlV7XAY3e{~mE7Ute`4{Kl-9ED48AD(}+ zA$7OGK0>#1nT(04IgsvQms^}J9$7V5yaNNzmLh805HCRBHX`hieA zg#K5_h1sxDs5^ve7%sp)p$>klJ69(NRgR%`k}C~;>sjw`uJ@UR^|fOJF2X$+Tqapb zhQ8@$VLb;H2vvwShkgJxl!yh*qQPhjLbq&6Lvz#Bq+OQ@#cCj3+0>p3bUHyUQbYp@mG5$ZXi zdMMNZ@08qlm;=Eh-p;{H{V;Ej7xv8)iHVXBCP))%tq4xbN35$W3VL5Dr!*D^U_k=3A#+|E^U_Pu7 zsxF}(6RKr+2*du`ovTuXx>%?hU_YFKThO;w!eU_-tPtvUp&Et@a8Ia1-YvOFumIM< zUN{NYp{kRxD51`PSB0tx4hr?GQ0)k{|9d1iPN=hmssgsd5x5BVh5CHGJ69*e0->sf zJwiPJSK*ORg}v9Et5RVxY=i@FTBx^$<|UImOvehVc6|fzSz(t|n7pjm(cdkwr zssf>|6RI9K0oUM(P)EMsovYGeDQtp+a27rk>VO*(77ue^73>u1QK4Fb2Qc&llA8jH z46Uy!4Tk5wCLdeZT~v+2Wq1g~nj}0G7Q;q3Ak@=vOQ;+lbcg8}p~{5UU@IJg^Kcgi zH@kCH5-fmquoq6kb)i-tlCVg430{TG@U~FT!G}WS-y*s3LY*U2m9Rso@4`j6Cse^7 zmfR#*0PBRh7fuM(Dm)hIh*rr>6Y3J7YJ>wqJuOsQ(Dx$}77Mdr1#E{Sa1rjq^KFuQ z5nh4Uh5DvY-Gdv@>!a>49W7KDune}qJMaN~41?O;xhfIn!&;&4f#X880*{0`{9}@v z3X5SQ9Dvhs8~SxfSe#I23sr?sx5HtfnuohE_~Y(eodolRss?t$aiLxnsv{WQ>CRPe z=M796TT9>#cuS~fglZf5{jKE2!E9IwJB0eKP%R4ezEFj9Np7-G7YbD!?1htX9jZ^b z!*rBTU4mDIx>=|O;VgUz1G?S0>Vi<`3RM;Cgrh>eEK~W0geAZ{SOdG^ zI9!FtFyhman+{816TAgy;12ZfldyQ01FK*s9EHp95Qcq5a#LY3Y=i@F8g4_sn-UfW zvtcFdfOp{%Jbw_n0yVHT`_?QjGx!hLxDbCP=zUV+!)O?V$} zLdSrF#lXw39Jaw>xB&NH$lpnBGAxAkun*pY8_?^Pghj(lcn!9~Avh0rVescAHwhNN zI@k**;2J!Ek%N+Z30{TG@HU)-k6_>zBrE~u!5Y{N$KfhGh7q?VHyxJ3CO8OZ;X@ek z_Y!si=E7>&1;^kDJc8kOBsUF~z#H%uoPj&g|BDh94|8A@?1ZCm86Lv0A<0dJ#jp_$ zz-hP*{k|k&aWETJ!VY*BF2MsBIxM*)$gDda| zhJQ_R(_jg_0dK(>xC8yiB`h9h!%Elz@4_W`07L&#a#LUtY=Hf63T{HjgoMSw%di}_ z!C|-n_h87^B{vxs!g|;T@4|)$h0E{|hW(4=rov*_2nXOa+=hM+ zBrFbQ!%Elz@4_W`07L&(a#LUtY=Hf63T{E)c?pY!S+D}O!x6X$_u={PO72B?1zv|Y z;eEIX9Saf`12f?@*b0Z>Jlusr-;>-#m=9}V51fE&@B~IKO710i6*j}$a1K6#f&V69 z2`~@Vz-~AWSK%>?Sd!dySPGlqAe@B{VZiq#>;lY%)vybW!4-G}!m{SV1afkm(Z z_QNT-1${RqEEZ;lY%)vybW!4-G}!yij-DlCSLZ~#ujZRq!N35$c-uo8B_yKo5} zz|dXEO@T$Q0rtZwxCMQGAz`sF3s%5(I06^pK0LoCxfkITcpct^_u(dV{8GYV;AL12 z+u$%c{#lkFD0o&mST!j1Z{BI=pBD?~x!<+Cv+=PxJ35$W3 z;WgL-Z^JqG5C;5KaxcJKSPeVjC|rhzFzi@zQ(+NofcVH+HV3vd?(YspQ5 z1+WhG!b!LePhg~%#mCGZBk1!v$6^naR!#lsv}1v}v= zT!sfQG)Qt&U=eJ9H{pG_2^~+Duo!q5mcuqU3>V-Y3<;LpWLOC6VIRB)H=x(=Nmw+@ zfMu`+-hmI`V;B@7xrs0z*1{g4_W5)7@AvEH3)O@as5N*Z)RE7S+0uo&RH$AlVfuz_ z)dO$}ZVHvxd3Uakh8gfGY=XDoG~5y@$1^22MyN7{`kGL+z&r4PP(K!`z);Ce5UO0E zt`@3Jp&o@xLbWf{=bz=yRmreWsOw>`P))!!cmgBCB=?d~Ulpn*I0$FqLm2S;5_SRR z!fK)J5~@+S3=d&gxa6k7V%P`=;56KZe$SS$IG7D9VF$bmm*4>mjgZ_FSOgnjKb(SF z(DykK77Mdr1#E{Sa1rjq^O2H!5nh4U;Z1lSZVI*Ixe^u)GvPJZ3Wwl4+=anWlA8nz zU>)p*lW-lX=SkSx>pxlVPDy*9%oIoP_H_t^Pp5 zB8B>rP?f?aI4IP!LbW5*{t50}9Vb*-umZLV^$1)Ls$CfThwfaJ1Pfpt>=o)sxF%G` zFd|WM(_txWf`f1tK7;{(Bw-hXI#;NwV5d-z!X=^Fhv$Pzx5VqGg+bvGOns%4=*6spiamMKz%x=5(5!<+EF zP;UyA*F_17hMDjhY=uK`9`3^6mq>0BED-8C*dtWqa1|cIh!n|9ho!Iy4#HXZ5C*(d z!Y;sESPi@27+irzFg#Uq(_jg_A=J0vv`}q9-L) zGrSGw;3F7#Nx~9f9;|`ga2&3}V;J!Y$xVl)un7*rUvQ0Q+4>L$WJvA>q0Tk5{>@s9 z`A@WdAMsYozshX1J^^{Uu|d|gbNy_G$9li4tJC@sS$Ea{nf$GHHD!jZ-$UGjzOVeh zdvWd~Z+HKZKv!z4DRS+VPB9GFc;1ua|Mph*cPUgZrKdamI`enjt=7}^YBO%_#SJNS z&2r0QeavHh)?)rLNmg0SYMPs#;C{0TQ;;`XJrEX4;gp-sid6F_X|l;F=oh`>#|Un z({OstTV+V~!FzB6dR>;pXqXAF!B#jV)bob+gMRF>uKvtD?z#g%{}T75a9!nKGj1JI zG|Yt8U@IJg^M=+QoSv{_@Iv-8&0I=1%0Nw^MGu7pLw3|IzR46S3hW9T!= z&;y}<3_jM8$3$tJaY=y4e0d-35$lA@EUA| zLvSAM!r(&5O@alm4)(%HxDM4DB`gYNz%tkZ@4yG}F$}sQxrs0z*1{e*0oULOjC_;i zUV>L)GrSGw;3F7VB#+<(L&rt4a6gg48rTiT;VL|a5q~aW>974j<3YX!_cosioYuI1N z6sfQnHo^fo4Y#3Rsf5MBY*-09;9a-`4`Aq9BsT?Kf!EHZ|G2vI1-;*= z_$TY?s>~1tGhi8PF?4^eGW45Z=mC5TgWf9Pi7+3&nM+eETXhc{hbuyLDAZwPGDV6| z7YWsMcvGnF!}rTR=ndJb)Y~LC3T6m(8El4wLNx<-p#L?=jfXj~N~k;GU7=cp`|$kR zCHEq{0NcE%k6_?C+_^eIsB&R7?1E!Ly&_bHFswpy zQ-!JsHVAdUP~C@{@N;rMD91b9xhe);hUKsg4#NewC)6R8lA9#d1wvH|d*B3I6Y3Kf z@t2aDCe$TD)hN^hLNz7STSDcilCT(|zARMNV5?9M!3RS12nN1Oaub9)PpGPex(kj9 z)e<~_q1BR`BGg4fbsgR`w4TZC8wRW}vIAF$}7a+(ei! z)E|}~nCe=#cEd5aEK~P4a2gCTY9T$Kz9VLj{<>U(e_umIM=ZlM~3EAR-0zt5ek(uBH1s2bsb zQ2#v->1o-jwxDmLnK%uWz#H%uoPj&g{{s>h4|8A@?1ZCm86Lv0Cdo~O#jp_$z-hP*{XQsR zaWETJ!VY*BF2MsB+AO&#un0E5emDiUpzntyEEZ4j<3YX!Fd4fJBe|)t2sXfeI0ZMM*QX>b8fL<4uoVu$dAJLMdnGps z7Qi~#3n$?^RG*fxD3}4uU<Nz&uz3yWu!og~vi2@ptZAoo49zzJZQ< zq50o|Z|6Vn6ibzA6zTz?nu1$G?R(1|u43S2SPt8SdRVCD;VumRygOGX2~|FwAwUj1vz)Gnn04#H8U-_8nMXqlL)~!PqiU6*9giXZ z8QFu=;|w+H)*i&cY*^{h(82nEVL+UDLt+I?(6t6nVB|l`WS8Jo*lcKBh1-S!_gO#P z+c}T*@A6URH8W)G#|ey_m93ZHRYPl0B#`lo*z&Z1=)t8u8H1_dmv(cJ7#n3)f#85Ttf@5&S z(CR%hJQwsY5*rTFV2M!QfCF#}ZbGjIk{bmxU>R(Ici;mazqF@HR3Y+0=I16{6|AOSk!)#ay zJKzXhfV(j0dy<<7^I$dXf@6l(nSa?u^J^0?Hy7DDhbvSa!SF?yCk>XsM%WLh;3jnZ zn}o%{%di}_!67&gcVY07BT=7cRjAc>d>- zn+ywKJ?w+`;0E;Cm9S`-0n1=Bybb5zBN+G#$xVQHum*O)F}MPcVECRqv8EY5RcIF0 z%hVEh1Kxr&a0mMTQWD}}4y=Nma1<`XLm0L%xv8)iHo^fo4Y#20uOuuMUWVnc4GzNv zxCcWHBsUor!g|;T@4*e|^=k=>hMDjhY=uK`-q7|YB+&VG)4IC5R0SW(JV~&?(0YGZ zXL#1xd-~qq3TUNt2+qS@82lS%fCaD)_QFZH4%LwyRFt9ppwi5``|gD|;4L@z$(}YN8vI&G_+2C*m010n)4J|>lfYY*6tRVb&GYd7f!-;sQyRVqF@FrGqk2` zF+AM`Yo0->X5m8^a3bLsV6LH+SZ(-J8$(@i46eW<82-N!o(4{|m*F7{(~_GCi(w-ifYWdr`guuMoS}6NvkmQ6rJSlZI1Cry9t`o8@MKsB z>kX|b`wZ<_mQx8m;H_5FlX}U@okNU2qJpz#|y` zl;ozt5_kjNf-`Uj`Ugr_Jj{VruoI5LWq1g~o+i1euoyPN0XPk}p+mML4>zGBM8aa= zWmpc|;4oZ(dobh~lA8<*VLj}F_uvNfIxk_-FcV&bt#Am=!(ABsOvz1x1+WhG!b!Le zRj7nT!3?2$$S+SPGlqAe@B{VZgH`>;lYzRj?C|!ew{}!y+U%6&AxrH~^>NHuQUr zgvG&ZSP47eUAP1fU}&V|robZD0Q=z-+=9N(m9SWt1uI}X9D$2)AD)kr+>7uEybf=| z`*0IFo+n{3@G>liZEzSaz&#ieExF0C5Z1#!cn@wsujflxG|Yt8U@IJg^Kcgi$4G7x zEP!>e7f!-;s9qppQ7{9R!4`N2K7fy5P^>#wCkj;_tbyHd9InD+81X`Pu1bfcun7*r zS@;kJ#7Wo%mpth?V{!#datC*e9&@sbb)Ghi8Pfp_2o z_!tJgSaK6#KCFd3a00Hu6Bv0xaxcNFuo>QlbMO%i`~wO53ZDf?U~3+%f!%N%uEJv& zkswo~!&2A;2jMJy2m}65!Y;sESPi@27+irzhSuBV@WiJp-&nJ-?xi$X0&l=ua0c!` z|38wjc$fpLU?&`f%kU6}B}r~7EQXD608Ybg==c95EDmPFO4tGK!X9oh8eKT(0W9)7(SJ6KKo@oA_l0Mf?LoxRl;Lo7Oa5na0D*G zeW5=8GRaMbg|Hs>!FzB6dZkHNG|Yt8U@IJg^M=+b+I4cDq2QNGcoHmtb+8vs!gZ+9 zB`gYNz%tkZ@4yG}-*|3+%+{bkktq^kKCFd3a00Hu6Bv0(axcNFuo>QlbMO%ie1(K1 zz&uz3yWu!og~u==Lvqt$DQq&dF7%+G&j{dQPwX+er7U8~7pZ`;tAsH4LT4$l&(4N>y)hJws zhcN82gr~w{*a!#UG~9-Me{Y-}jiEKvZFuJF-?&S)_sf)P z-MX1?(KQ2igxder?#Wdg%ogfOp=vj@@6w2@yXKvjQoSiuUO6&DG|Yt8U@IJg^Kcgi zzeaMCU;(Uyy>Jq)LzOFGQ82^MI^Z%xzgpIRU1@&ppoP)_I1RU<-)m)tIG7D9VF$bm zm*4>m&6C^|SOgmkt%K+{^c!Jl3T{E)*GXb5%z_oL9gY}U^DG+rZJLGk*c;5} z$^G8Mop6V$2ko5zv$rK4H4s@sOvq0AYc z+b|33q3!%T>8^h>@D}rb6Rg%pvz@qKCFd3a00Fg^@&hLyj>oG>4r}| z&AimK9+HFR1**>#v(a^bc~uKl8yptu1)OR?$!1~Qu{p2`cEVA(3=d)0 zJ0vU>7Q;q30H@)$(BW6%-c$WuZC(hzS)MlSj4)NM{dXjJH2gIUHfGUK;?eLC8lYFL zN7d)3g5Dj(-u7tt8Vxqy^Qih)s+@FPb;lQ-zZbhi_PR&cf6`^+J`MiweDW;*h6WoW zO_g;PlMP*uHrHu?=F7|;ICsO^qu;fDF56?4r!}~r2OT!%GfTNg!}Doy(wgg~hW^fl zeTQD@-1u6GWZgP|MrP^unB`5T%c`<*$fN3ARM|M?QS~9JY+UiE`V3VzKK7{k2dbct zqw>j1_Z_Ni3^i4*WAeG+(ePs$Y`o-A^((4uER{WUmv;dh;#2V7vT5Jlkii{ zh3nEdp4@1iYwPB%VInPtWY>wA!4fKZ!4t2^}^TdsMxgD(GF~QT2MN zY;5zW8ZhgwE9yNibS!vOZOf4NvCt7x{p8-igBfj%Gga0-lkU;*ej02n@TmGERW?=- zd&8sQOElQnBMsie9u423!NwU=Wq)w|&{X-?$s^t2vF>^@{0ULed(C6Q-%@4czDL#5 z-|xQt9MIeUubw>XFQCfCC{tyf^@|=2FQdUp*Zt?ZHFKoP`-(@`>*%tvS{fWJ9u04& z!N&K=jIQ(b394+o>5(ua0x#2X!rrK&`16ClY9F!s%#ALsPeucH<^ubrpo=G z^=Nn&4L0V}Q0~$22Q=8&NJF{j5|upm&6+vfpZ-HgEsWe$|v(k1<)dPHnPB>NiQXG25f+2UJ0?Qje;iQDx(G zQ)NxwDGgqyU+la;;Jy)jY`iU1uE*;$rOILBq({|@sj~4EW~=K=xK8yOrOFFB7TLue zkJ!JG28WF&9#tQv%1PIZUe1?M4)(xxG$HSn(-8;L4eby6&k|^30Sy&~_E*GTH4SIJ zZWaOGHVfAs;dpYR>mqpHAf#7jb)B7mky*W=V}ynoX>c9Pe@cVH#x;+s-%w@a9ZMfKSYoQI{iu}&*Qt7~GH&@tgL)%Tdn#s!b6pHgMxwp3a7fmC__kI-=}Rn~pb?A}GkGhpz0LkE$87 z?z%W$8$!ns47%<1s$nU<;wb=R5@(SlPXu%Po>HmI2 z>zS-U8eFmeD-8}CyFIF&@gc4`9P+4|l4%?(@UchLiwUsN@i$MNx>rzTW0)M@ZT}(_MQKp&7BxnXJ2J@!pdO zef-}i$8q}V`Hy5mALt!ns;oUsezL*wr_yjr*KYV^o2s+UZ}y#YeoN76&G%^ib6RaI zm$|$fJsSRs1{-@ksydSwxNRT^ARU;iNu-Zs|L&}nGD1)SgC@&A&!53F0jbN%$Y1-I$HD-*i* za8`!A*M*J)sdDXB!28`N!aEwK8d{Hy)0_A=vhxln?L$xdu-qLs=1Z2NT(VpqBnFbdsKZ}sx)*wl30h=2i&o)$I*XCgAa6sN|o!Nek^ z%+JQTciA!O(e)bUfb!m z;~Uc84ILMy%5^5bFI5g3b3Cg4n<^WxGI_m6gZ_w|MH@Rjss;&|go|*;qv4sv+IT`k z$Oqjg!F6~qrUClIc~rfEDjU;GmHUgRq5XR_-*SGfk29}_o^mc+Pcx1uH(K}9>Be%8 z`QFHU(7VQ?>MyB+K5bIvdMfBQ>#n`@8W%bih2A^T;5sEAB-TdN{N#!IG*vd9H&w35 zyyHC@zCweO*5PNEs;BZjO8=Qs8w(}dQR&g}BN}XM@~HYHRnWVa*t>?VYvp>n`>yjU zIv1{;_3>DDoNY7X&V_5-)%1I2-E|6lp!cloi>vAdR6)mvRJkt2OQp(T&9{Z^!n^=vPY%Mb%K8`T|Uq;CsnRJ@cyX#VmWNwkSbT!v!u!gI$mtHx^~8u z^$MwS*mxkjr~_KuC)hhy=tviO7Z}G8<_k?e)T#$l;)JY@p?re$3(8lL&3>2h5)Z|C^w zx;4Q%rKhjCz1z9n4DHwYSqwR8ANm7^oOB(L>x{h8teZ*6hx@!l#_C0psbwoj* zz}6?P+1shIG0LOreN@?a(WB}URN0v0QT0WtY`ki!tTS2f(eOF>S{FCZ zRM{@J>kjy1N^LALrS|*e^o^zMji;$%1Ft64#x{?tw@_u{fT^-#$2}U}Lj&}l zr(xTp;bSz|cOq z6nQkfga#*Fd+SqUs{9)~N?${%lh$LS#Z;X;{n(jvVL#fpQtzZy?|jR6#<@7hn@88J z|6b~C?D5!(k5dJ`hfS4rN@hG7zCZ)?S)*ZB8eEtC8`9tn9lq@{L%5;+K)){y4jU6a zs{WfQ8!vlQ>5t15hhD`VRnMf##yY8T9mtEN%G*i%F27QS98TJY-o%iN?UL=fSnr|= zdfzft)@7LVX!sBfHZIbzlUL|FRM{BkQT1c0pm(}Q)vu_s zvCyOHT&G+|=v8T|tn<_2(ePXvY`jUss8G)dy|>|sq5VSsF^M*w?|8E6)l}IS?@{#@ zs-Vw%%vSr1AEnC1OCDK&N0p6*rph`smD1q4kN;5`yrIwcWUHe|dUdbRdkoGC9ovTg zpRG5Jm#(_&bI+WaGrYXKAVG?Vhy)P{mtcyB6v-Q;DI!utM9NJmQkrs+QlydQBBeBP zks{5-h)7>CBGQNyky4C=B9~G^F{Oxz6cH&Rl9W;;lp;k;>D|9)&8+Wp_V^E<@3Vhv z@0l~t`K>kk>;?Eee=(O){K{z5kK_+XihKOj=4<_Vu9Y}Fco@}wvdOVMPR~rdcyyWf z{B-}_QT*g+)Hi38;w`!Cy`vL8m=h8=o*0e#{)|$5sb6;eozV$v&Z#^dz?N$I^kDxS;e>d3G3T_dinjJ z&4K@JIDtnm?FXH8UcBrc3}{;uWJ&J6+#@=MtwoMx(wyqZIGzquL$YxAsvRiL*zBQSArWc&?w& zevt3#C(IHzUhgN&X4fx2$#%lu$_a}545Jnw{Rc)T{76nvJU%C!IXdAda)RQ=Mx%Zq zqZF?mjr#SBN}S%*N3~h*KlV}UiL-n9sP>b8v5%T1P9GaaEq?NsMkoAvPEdTOk7_Ue zo}XFjpC-X7FHNuLapT55s{ME$%4HSr9F6*c zj7nU8xLxu!t3Ll)O8Y_E`~IQr&-4a-y8`~KNs6c5Z7 zt=xI>8-KtszLi>w{BpnQM&j(qKB~R;Z}d^q#Mw!GRD11n242X&B=Ools$J`MbFIYL zXGWv`TSh6~*GIKioZhhfZJ8-PnHPU~bi&u>1jToUQSI|@Z}D4(QCmMa{A2M+74KZ! ze!BHN|9SsG4;x||)!xyEduj5K9%tX(&z*gIbixm&r1;4`s{KaX(z$8-hyARL#Oa-R z#Yg%H?S1`3KVg=*@!V+CFJx53#hp_9!C|M@hoM_*|ABwnU(a~OxAHc&?b!VB95C?W zSLCR~lSiXIn$o3-pBjz&k9qOL>8&~8fzb(nloJvsPvwNyM<@KxoRB!3|7`ym_8X!< zk6r)y@^@sWctk&8{ltDk`%U}Ce!?_y_R-O(@5rc%3oVxpqqfw&?$#^&_$K@N`}mpS zwS823?H}r+riqi!45ON%$wP@R^f-GranBo59jE!iF(fZdXCP2Zux$v!7r7K>Q88U173MKRP)o@$|%t6R%6WEAjEf zR};71G`!lD-FF@~Sv~VjgP|7pJgCR_ed}a-^ywVka$p~@*NHv8lqKeEv;_T}&H@!TAJYI{HWcXQea8E`|c`)%*y*leS5#cwtqZ~T}SM^#_m$1%yqEw&UXxNciY$0p9vYi(}6X< z{?UF7rw7-s3;*Kk^w`8R5-&=;I`QVjdlR2Xd^vIL7y3)=o%n&o6B5r(yd?2ciMJ&_ znD|WM>xo-#?k~K5;vawea%G<$H5}Ey6g~a1VV&6NqW2A-P^HD<^Ar7GrA7ar)UUVk zQ~l`d?0$51agWoh6K_tuH}Q$YmxtJv+3DIZ4*yNQTzonkcwuVa#3Oo~oz&y>oW#o# zZ%Di|@sY&m6W>bQ?Uw$+2PJM#JU#Kk#H$i-O1!7Xjb9o*xc0LWxBXg875pl0Jl;o5 zpG$l*aofM>@9DtAV-ip6asD&?al*zoo-sUqEN*URw+=l;eV0m$Pxpd;>h#LQPbYph z@v+3062H>pY|qau-{|a+9;e6lI6I@q>4k|`CEk>HPvYY}&c4*+^ea8C@A*s17oHxP z_~FDe6E9BuWa4KM?@xRx@zuoHt^L*ZO*|s;q{MT2+_+?ji#96(8&?m!t5odhL#KBo zej)LN#J3Z7|K76Wv)`>5b?*=t@BH_NTZNs!`g@mi<`jNxRDWi~ zFXd9NC$9hM^4)LjnRrl-)1wkkNjxv{6Nx(#?@Iha;tPpyC+>dd@;yus9^zsa;0Bz> z{`HT=gnVotIzOYw>G_FQB;J^KcjBXoFAj0}yYS7!l=Dt6&35}&%eOQ;pvUQvi6>Qy{*TM2Zz|+ zQ(Nwy7YE;+=_)BtD<` zR^o1VFJE~6?|YvRw|&nc%XhkQP#-ltGV$cZa}zI5ydm+<9%qjvK0CyP#orlTedpK0 z?+g*Eu5bIb<-48ko%n&o6B5r(yd?2ciMJ&_nD|WM>xo-F+h2J9#G?{VNjxv{6Nx(# z?;2wJspeaU`-!dfkM=9EuSmQx@$SS& zhq(B){m+AxjTZ;rwbJs}Hbb}Gleds~bmFN)TnJ>sxnlUrzqri#8FfYCjfrkulv^S;=cY8vxj?}Kap3vDp&Y) zk85}Ki%lLLI<0l_brg4@QRCng}R>K&i|+;;rhq6SNoOL zp6zd7^2Nkghq$=ZkIjac+Nr)p@N-Q5M@GGqIQh1v@X1l#++<6Reod`6?Ft{tfWP?Y zZvC{`HzXdKcyz_~tN2#^D8%`;-{>Fq34QGRv>sgS4U+!`CMvwD%dz@`Ka{2Mi_o~=_w*Be{YCqc%`PmN0*u#3< zI7+d9zH1-qM<*xrIQ!nj_YL3Orf8XdSKT?*KX&@D{5kD!4nx~7!p1ia-)*-1U!7+^ zJj7j}SYMt`eWxEC4sNTFi{JWxGVmh)vz+?R>(t*JPF<94&Zs*Q?@fF-@rfZW-q8cK z3HrH|UP}C*ALJx9NixaHgX8{0E+{~@-E&-NMC?fLst`u4=Xn)tmr;hzpYveVz} zrHzmFIQ`)sXO|^jop^oX&53vPxN&cfv(G2~cH$rOIQ=g@&fZL1JF5S{+YfYlz$UyKZZW*nva|1`7icSvs)AI>?cgGt&gS7Y8RMR+^B<% zw-j$JUi{kJ)337aH~Ll9|Jty6>|Fm?T;-(V`p06f{{9~4iL(d$wWg0(Yzx?tCB4N{ zy8qdK?qg^FHSte-oKL=^JK43z`PU_WbK)WWuidlr`>V}A(c|p89_P39IJ>XM`4c_P zUhHxHc8{~I|KIYbnD5`??C>7vCsky=m|fH#qRqdm$Jt-*?|1sa9%m=^I6b|`+284L z`olfWF6(i6b&s>3>2dmtJ4vuTIN!U+*?~RI53kr>?V7yWXYy*>Gxo$DXQ%ZzKc~mpg+0zM?QwQxkMrw#oZi&q z#;^9ceqWE%FC_k6;!8cw{zs4V|J~#4%ydBFbmtE)Ka%NQJ13k{p>2ZExMP6cZLw||MXA_@Hd_8fuf7=`Ul3eV^bFo7+ z;HPr*#C~-C3;nd|uO!~v8GuLH~3nFD3p-kF&RW zoUec9@;7SBwjQVN>2YJ99_O#-8^U}0(b@YGv$tmbuhdao%#NyeMx36U_|YEMF70u8 zMUQJcdYpc?$F*-iedv>Ru}AyS=?jT(C2srt@`cw9=y7^T;<1URCti?vMdFUcI};yH zd^Yj*#QDR^_b}Zz@$keG63x8Lk9d|=|yiKirK@l`>d|d*Pd_?&Eb*1Z zEsrhV!{ngE4=0|J_=&`udffP>-cz%RJJ&xJJ#~K{HG3lQrNp-rxBb@gjm-8>JR?jp9+7x*;yHU`>DhF(Kj-7{=3WfFxw~bu*BmM zPft8Q@$$s$dYs&v_;BKjiEB?SUwE=#;xUP}z_*`b?IZo@+Ifi|?{RWfk89T@-kNw% z;zNm#Cq9?>a^jnb>;Gx_e%JO$+&}TK#O*!K{!;#XFBNw_aVWLNlCzB+!(T7!AKOkJ z4lcgSFzDmeY3KyC2l9#Jzf4+b{9J#6yPIuDI*#LkE9V{bTWBhxbvFqZ7|a{CMK^iFYSHk@#BT zw&#}bbaF`I35ngP$&HD(Cf=R+K;ol`U(-Lm$uIYtr^(Y9@M7X?iSP8dHviB4 z{qB``K;p0Ey8kxuunagl@%Y436VFOKKk?&vsJ#B(|NdgAPl`kVaGjNQ8*T|2bL+5ejXC*o!;tkW9y6k{T?vHrho02A(^Ipa%vwtyCCrsJ-S)sRlhI!b(q}PPn+DE_;li%J51njUY>Ye;;o4fCO(_^TH^XE{e|~RJS1^@;;D%jBwm^LuQEaI$k96z zA4+^W@s%Fe-c8)?zb)U{+P;a0_PFcOJx-46aehML89lCD*yFC3_qfwlJ+9r@2lA}*2zS*PyfU(DG{Y@U!6UUeM#(Wr;T>KG@^r#U7{Y|GmGFy?R_f ztjC={*QeX*ul2a4{)_C(x6{XNe6+{eWr^4JIK4UX{={bzUrpTd#`2v_5A1R6*u;9svhZclu;$LUKwuD#vkbdUehU+u6SXD9YJJu~r=#H$lOop^7LYftq!d#%UG z`kTvFTiYk`h{Th7oSfI=+7&%cZb`ha$Mq)@U+!`3-Ne2Bbos*5!xN8BJS*|i#A_38 zNxUcV(ZuI_oV<~^$6Nh{_w8}=fgab6>T&DwJx)*UadK{tYnLZp)8q7p9@lU0aq?h~ z(`R~|yxHU0ZvS)n&erzrae7FPlkGiDPwa7WZsL`RwHRO zIPto~yAmHyd^K_FpY`h=oOpcVM-#6|ygBiK#OD&}=U*fRDlX_e`Kk@3sTN58nd@*tD zfA{O|mv~H%YadCxB=LsC&kk|%yY}P|XV0eedXJOc*7jJqnH-vUV&Zv;S0#QX@u9>Q z65k!-;?=)6{QKFn-yi;>W&ZMrH@&i%kybacz5#lQS!}?H%9MxA4rrFY#|C{@uhM?s58~J~a34|1j~D#5WVy{_1kq;e6W= zcmB@5I{fk>db<0-i}-bk-_+yAxAZtaGV$2N6BAEMJS*|M9;YAcarR?9&VRDUji2pt zeski#tjKN1PmpZI_D&A0PMa`cHIw*5@=*N5GeJ77O#H|F-}swv&1d#p z27D>;l_QoNJbyh$-|2B{fXb6_??O0llTLPKbZJK72B4EH+n11 z=F{bZGutQeu*BmMPft9*$Mws5oZXOkd*TC$PbPk8h;8wm{rK=d8J)kA($-mjPx~bv zo_KuXM-negyejd=#5)roN_;x;mBe=w_t@xf=b*%+6HiV&C-LKn*CgK5n{(n{Q^y{f6wp? z8g*HNWext@!;ilBt%PN*c$dFFs>>SVWet`!Sk}0ntWlS>GxO2kH~iZ$?zLiDgR9pT zZ=LbqonK(;YB=g@I9Tdnse`2smO5DKV5x(p4wgDt4F^jdEOoHd!D={I>WbZP)TIuV zI#}vpsVjEFQJ1<)qVC>N!xdW{tcJUO^Qmq)E~SQpWet`!Sk_=!gJlhtHCWbQS%cMZ zu&lwd2Fn_(hJ$6T*bPTr)?itKWet|KVq2pwYj@|Pf2;)mKpF_v;s&eX;43pXz?v(I zw@Mu>b+FXIQU^;NEOqb?ZhpUB;iyX;EOoHd!BPkRz0vj6aMY!)*bPTr>R_pZr4E+5 zVymMrb&p5g^Yu~ddr7ey4z7k<%$1DST-oZGOQ}m8EOoHd!BPiH9V~UQx(-&?!BPiH z9V~UQ)WPaHSX~E8U9r24y41l^2TL6+b;VXkUFu$mx<{)))pfAC4p!IAciv-d7j+$V zbzQN$4wgDt>R_pZr4E)lSX~E89V~UQ)WK2*OC7APgVlAg)D^qys7oCzb+FXIQdews z)TM5p;qzZ~(R1}ttLuv0b+DGXBR8MwWsXa!;b2*VWet`!Sk_=!gVk`btiiGd%Ni_e zu&lvqI9Lq_%UZD;j=HSDvIffqFpX$>(ENhK_a#Vk@&yB5~ zhHKZ0y2jV`xwi4Eo6p}Gb*&zCjiavdjic*DU8_f3<6B4LpB}yb+atbv^Y~qUcJ%ZA zixL0Wh<|l6Z+&3%^|n4ds?Rp_E}z@XTOS?HU);!@-_=dl=9?R?Sn8!bzQONO6ux5 zSX~FJ>tJR_pZr4E)lSn6P@E4Di7QU^;NEOoHd6a^AsOC9xHwANAAS_f;b<9b@_V6Anq);c)q+WU#R#!=T;YaQoDU8_f3W36?J*IEZ_ zt%J4J6??6NwbsE}>tL;Q#a`=Rt#z>0I?mTxN4?g%_KkA-ABG)$TkjnnIW}H@b|~$1 z{_qF&_OBr}-hEgrk+^bDChN>C4-Z#b86=%t{<7inez|K$eDjF!9`VB?etN_&kNBMt zZ`*(K>+d(>4~+P@5uY~j$`4uJUsev5*p-82cjcfI^BJ8xdd*8le9d3<9^{#ee0mtP zcrNf%Z_%}3zpC&58t4A6am}vn)U`K8r$#43b?etS6Kms4tc}y1jnkct)18fT>(@Bl z**M+VI5!cEGqE<##M(HwevLD+HqOKfYhrEnOstJFu{O@c+Bg#{tckVNGqFzg*t)#+ zTN|EhZn6f;8Z2uc7@aC>HPqH%S%YN_mNi(`U|EA@4VE=n)?itKWet`!Sk_=!gJrGQ z)~L%GENif=!Ln9tYt&`!lzjAijjX}42Fu!oqf=$AhT0k|Yp|@rvIff?HR2rudnx0G z9Iu2N9Iu2N9Iu2N9Iu48k6!cs5kLMHy@&Bi_(DHvcJ0t&yVSmn#T&0Lt6Pfs+B!aH z*?lBmU{^-gx7d|~Wqf>)E?zlUUustl);HUggVoe42dlGJ4pw`w9K7)_dZB9cm66r$ zD+lY#@5;gY2E1~xz6P%xtnb3(gM1-gIjCQmeDeC0$-(-S8K2IV@*pEdGuG=V%_sl_aBKEuiI6|>vom8Zdc*V^zHRB(>Kmc-#9aU zY3?b&GfCFnZ9vm`o@{*8)v46 zHPg3x*5~zmqwbK+>+=N8`rKH5X?SWl)z3m0pIM#pTBI9GU5)o18(8XKse`2s&LZ8e zFLl(V4$dOo#!DS_se`jfxA9U(UFwRhj=I#rQU^;NEOo_JM_uY(-n#rkJUOO5N_Aba zyAIA*tI2GaO{aQi6qi!N!LkOc;b2*VWet`!SPciu8Z2wD8V;5%se`2smO5DKV5x(p4wgDt>R>e-EOoHd!BPjS;b5sNcEeGZI#}vpse`4i z*y^ZD-6c_X_Nd{CtqxYhUBCHMHyoEz!@;r!%Ni_eu&lwd2Fn^OYp|@rYB*TdU|EA@ z4OYX!vR3Sdqb_T(tiiGd%UZFmQJ1y5^UR_pZrLNfOs7u}BQFmE= z)cRgh?1qE2Gm7z=D_ecIb!vZ?m{3>O!BPiH9V~UQ)WK2*tLtE?gQX6ZI#}vpse{#Z zu(}SGx?*=7b*Y1;4wgDt>WZz7y41ZAbswt+RoB7lI#^vd-?sT~fV#S_*j)!p9V~UQ z)WK2*OC7APgQX6ZI#}vpse`2sR@cGmI#}w8-F4KZ4wgDt>R_oWwmRxkx6knTFS_K) z`l!`)#qK&-%iNKhPxUg#rPOe+tiiGd%Ni_eu&lvqI9S$TS%YN_mNi(`U^N`9hJ$6T z*bPTr)?itKWet|KVq2qL)|#r>@6{v6?>S(}>(|zVS%1uFby(^e>(8q-eiuD5hSPQJ zdhyp-kBoV}SNr>E_4sQXe~sg>as3fZ?^nBkTRr|7>ya_9uSdr4+oSiRN5=eo+8zb# zkuj`C#<2d1TI@&0upSx1dSuM``U5KUY>%3pme#qcF0HOBmbwY736t?!>!|C#fV%Dr zV6`5s)`O#t*V`I(jiauyT95P9dT`XW@wzXduGWLqdazm#)`SVG^@=@VQdjH2YCTx3 z2dnjp-FnnBVNO04b$5-_6QYBt>R_pZr4E)lSn6P@gQX6ZI#}vpse`2s zmO5DKV5x(puGs3ROC2nAu++g)S8R3ErS4Nv_s~dPvDLv+$9SouE_KwU4wgDt>R_pZ zr4E)lSn6P@gQX6ZI#}vpse`2smO5DKimi^i)WK2*OC2nA#a2f>>SlL#b?Z-+I<0lZ zQb*m}qo`}GgSFOiJ*{=H);d^g9UOJ-{X|{ksB5gXj`O3g)uXPl);h*(t%J4J!CLEz zy*&!nS_f;bgSFNbd#!`D*1=lqIA3cW^=yxt{qbmfRNV}CdlWq09+iXo)=~$(Jt~8w zlY`nG1#5d0tnE>-wnxF*9tCTA6s+x0u(n6R+8zaKdlangQSfnjC=F|S6wJq?hr&6i zCww`mCww_5#T?Z3C|KL0U~P}eMdX=-+8*_AZ_%|I>g#K60vp%(_I0mu&8~~>Q7?{8 zjZTK@{;zQ+*2bAw8>c%Pr#l;`I~(WzuW`Dwak{f{?j#y#Vr`s>wQ=tM8fRi{oQW0I z#Mp+ZuIQgJlhtHCWb) zZH;Zfn5 zZ?-EVtEpEGR%fpqtoB|xsO?dCp=$J%k=5-h2emyar)zsu4%XM;mD9C7s*m*cs2m)9 zd1{~h=*v?(SidqWFI4}&+{(fFro3{nzAldsdV5rVOWGbaxxCNRlb7l{x&BC0ta~2n z-X6tx-L5iTx2x23y9#HfZ?Bh`zHw&y#+m6GXQpqg+f}ZgnZDIC(>K=bD&sTLw|Zv! z#=2c)d}jJq&rA<%rf>Dk^o=vqH_lAoI5R!0nZDJtKCgc|>Ym)ZK2PBC-4=z$`b)#T z!>QgL#rVwXjMpOFSn6uLw@1NJ2TL6+b#NBxc73U%E_HAg={8>Ks7oE3MY@fbI_gqa zY<1M74wgDt>R_oWwmRxk_gK`uR3D|gu1=M@s?&9ge?jEs&8K>M6qjJCZnzpRYt&_}*w(1a8Z2wDtiiHYY-`kIZNA&` zHfHixy){`Ywl!Ffu@2aLsvl!NQx_U|EA@ z4c22USk{XD7>l~B!LkO+8Z2wYwnkmnj@3s$TH)Rrt#GiW$>ObA;izkcqppU7t**|u zx?-yQ+~5b;VX!Y<0!@Uc&X&aIn=4N;3m2TNVCyNbn8z z>bhcg9c*<~x4L4hE4I2~t1DL5aeb?+y44k1U9r^_TV1ibj_a%IV5=L(yX&Z1U0u)W zimk5L>gsyxI<6;m??&CBb*j3q*j)!}ncL^9`d89cO2cs}H5@E!u&lwd2Fn^OYp@y) zmNi(`U|EA@4VE=n4F{{?U|B16!%>$tSk_=!gJrGQ)~J`Y#de}^82(4l-X3*mO_+LQ zTr73#u>QOX>ya^>u4BBquCX2&*LeQ0ws=2q{I&7%*Es$f>ya_%$6u?*Ut>KoX1pF5 z!*A#Ff%V9^*pG~1Ju-&%$QagNQH%Y^7}g_WSdWZ3Uw=TQuI*7rrFD*}ORMXOrEUUi z!eqSGI_kPFpsxD@Sgi-E_28)E^*muxkGfV@>rs!oR*$;Ix-Ve7S`Sw1!D>BN6DF+I zEB1s*U9AVJ^ru~yIXOM*P9CW%wmMkq7%z3yrH;DP!BPiH9V~Tlx^4nX z9V~UQ)WK2*OC2nAu++g)2TL6+b;VXkUFu+|gQX6Zx?-!NE_D}2-Pt2`#a0JP9pj~r zy3|pZI#}vpse`2smO5DKV5x(p4wgDt>R_pZr4E)lSn6P@E4Di7QU^;NEOoHd6X5;v4tObwr z8@QS_Q!CLTOEqJgNykakSuogU63m)fd!K0o%QtNzS(SJg! zRCtdRJl-RfgECnMy+RK3|$VY$b$Qmqbu&li{I#t$c zsI9@W2Fn^OYp|@rvIffJlZ3bgX5KOyhkb{ z$1CCOqxYaaQkEe}x z+9TDk={-_8SWUfhdUf{7!D{c7gW4mNYgVJLjI3^7IjB8SIbD0Ca?pYbHdsgbYXN5D>`OC6j=x{a4Q>QV=1k#6Iqj=Izp zTOD<&gQX6ZI#}w8t&Y0X-57PBtdCM%SM08X^VMo{&*oFTM~X|S;b2*V)o`$^!LkO+ z8mxwcWet`!SPciu8Z2wD8V;5JCvIffR_oWwmRxk_vxs6 zs2WsV2dnE~b=|$gslFSauC6O~*TGT;OC2nAu++g)2dnE~se`2smO5DKV5x)Eb+Eb) zmbzkh9d)ULr4E)lSn7(cj=I!67Ijb6N3E_acGtmL=3d@>s+Tz~rG|rL4VE=n)?itK zWerxt!LkO+8Z2wDtiiGdtKncZ94u?aZaC_)2Fn^OYp|>p+Zy$ya_6N5-75KcG_AU%uvh^!tKm>(c7F zVyTR_pZr4E)lSn7(cj=I#rQU^;NEOo_JM_uZUi@JA5>WZxn zmO92u9d)UrE_JZf!BPiH9V~UQ)WK2*OC2nAu++g)2TL6+b+FXIQdews)TIuVI#}vp zsVlZR>Z1kEd!%;XvU$NPmcMma3m&Wm57vTL>;(_jf(O5v1qO~kUQe@TExjHNWt181#6EKtUXe&_DI3nBL!=Z6s$c`u=Ys7+9L&P zj}&}do?OG)BL$E5Nadg&^W~uSNadgubMV~JYif@ab?uSLMdX=-+9P##pJLa(RNrB9 zC)hZ5f{km6UF?y%d~|AbGF08!IJ0Zx%&v{oosBcQHcodo&P`zBbZ6sqXXD&XG|ueW zIJ0Zx+ypkx?Akc9E3DbI)ib*`&g|MavuoqbuCQj;R@cIKQ$G54M%G|igJtdh(W$al zLv0O~HCWbQS%YN_mNi(`U|EA@4VE=n)?itKWet`!Sk{Vdjk>JCvIff@ygxVvOLD9L+!3RgP{F5Wr9x29a zj}*M+z5Oo*u=Ys7hmPvoN31i!{ z_R)LL9w|=J9;sYpyb`{Ui_|wB?~$sLR`y8sgM4?@kGQf&DkJM#?8?Y8K0ZhnuN>4K zseVoGk;=hp>Xp;0vsVsQd#@bS9;sZj8hvGCb^FRe?UBmq+9Q>N^)-0qbnTJqBfUo| z2S>j$D|@6evVLV&UPybS`bh7Q%E9`&JU-ofq%u-}Dca|&`(KLoukYmgOHr}zc_y&# zSsAZ;R_eNErLKEcI5R!h^F|x$ndw_SGkxRC^o@1T%K4e;TRk&Dk^sr|7R?ke|I5U0Y%=C>j)5DtSTRrRZ`cYALz~=RN0%v`0EOn<1r~0V~ z<1?!>UW;^NsjKl;2TL6+b+FXIS)|+brH;DP!C9o+c&VcR_pZrLNfOs7u{>QFlarlS{Px>R_pZr4E)lSn6P@gQX6ZI#>+{OC2nA zu++h7I9Te6-Eh>U4wgDt>R_oWwmRxk_jc5sF>1JCtAo{Wd+yo4*R;~`C2p}>gG;I5 zU|EA@4VE=n)?itKWet`!Sk_=Q94u?FtiiGdtKnc-D|W+Cmo-?{U|EA@t=QJ6%i7`j z=s#S7^EbK)tnVeT8V=STDOlf2iv7I=mO5DKV5x(p4wgDt-%DVrgQX6ZI#}vpse|>s z1XjbrQdjJTqb_x@)WK2*OI@+mQJ1=tqwe(jsP(<1*bN73j}+rISGIb(j=H)ImO5DK zV5x(p4wgDtT?b1YEOoHd!BPiH9jvZ{)pfAc6}#)GOC2nAu++g)S8R3ErSANwJHHxK zT?eb{V0GP9!>PU-psubfcGtmD2TL6+b+FXIQU|N+V5x(p4wgDt>R_pZ)pfAC4wkxN zcO7-9gQX6ZI#}w8t&Y0X-57P3)km$aD|XkxTITNAe5$`!aw#<&ENif=!LkO+8Z2wD z8V;5 zmb!IVe_n<4$QVx7FlJ&# zq^{P3)q1d64_50HyY;AN!koMjb=Qp46QYBt>R_pZr4E)lI9)e^r4E)l zSn6P@gQX6ZI#}vpse`2smbzlAqb_x@)WK2*OI@+mQJ1>i|5Cp%`}9a%vDLv+$9Sou zE_KwU4wgDt>R_pZr4E)lSn6P@gQX6ZI#}vpse`2smO5DKimi^i)WK2*OC2nA#a2gs zwBUJ<)Scx|3tqAOt;1UIU@dsC7QA9Fc(4{c_|+^haQyLlnl&58Ut=wJoF9L!9)FFs z;4xkc9;^iq)`C~;1rOGO2W!EDwcr(d!GpEn!CLS*Uke^}?UCXOi}pypGCVKx9w~Ud zM=A$pvJQHWR0c^W2en5E)*dNXd!%6Pk%F~H3f3MeSbL;k?U91DM+(*+DOh`?;N$Y- z8rB{uc)Uj{2lbdQ2en5k2c?*U+9L&Pj})vuQn`pcb5MJv4(n6w+O_o^Hg|%Jb0^ri zrr5p+Zy%JHyQ7dVg}V7DR{g`DhJ0aq4r2+P;{Zf~;R1Q{C zubf_;y>hVHd*z_^NadQ<=qn?u+gA>1k5o?A9;qCxufZ#)YmZbP={-_8IQo@Y*&~&a z^((XTLfRwMM|zJ`4%XM@@#)?pm67^O(aU|No;*z)Dk^o@1T%J|Imt)7`4 z)=b~(nduv6rf-~?zHw%HSTlXAXMJ9u@74d@@aX3Cc>-sBZmd5y959^fry`8ctj>5X z(v79A#(R$xEOoHd!BPijk#5(QI_gpfXOV8>rH;DP!C9o+c&Vcs`p57DK#7{Yp@y)mNi(`U|ECJaImbwvIeW+ zU|EA@4OYX!vIfgqv8_>;HCWbQS%YP**w(1a+C};3UmIB~wl!GKvOc-_R6on&QhJsJ z%Ni_eu&lwd2Fn^OYp|@rvIeWyU|EA@4VE=n&$3`yEB3Q2>aqsQ8Z2wDtQFfDby>ST zAN>=f6|UIUU`>;Z*9u2nD;#w-94vLP)WK2*OC2nAu++g)2TL8ShJ&RJmO5DKU^N^p zb;WKt>QVGDb*XzK>el|!=4rCn>R>h8iaqsQ8Z2wDtQFfDby-{cn*P1y#S)yq(M@1| zFM-u?u=Ys7`d(7(?R_pZr4Clt!BPiH9V~UQ)WK2*tLtEO9V~Ul?mFsH2TL6+ zb+FVGTOD<&J1^=EtdCkQDaipz3=LSn_1P^T2sz3|n2* zcgdeuTRo4A8>{QMp8UaiWZYiw)&71O%OB(A50*bTkBr;-@<(0%;5;&J|N^Ab;VW(Yr1gQX6ZI#{g-OC2nAu^rb z>%nS0Sglv=)}x*YbMj!+9Wqi^Y;~~IF<$DZOC5EogQX6ZI#}vpse`2smO5DKV5x(p z4wgDt>R_pZr4E+5VymMrb+FXIQU^<2vDHzRy62ZnT{EOoHd z!BPiH9V~UQ)WK2*OC2nAu++g)2TL6+b+FVGTOD<&gQX6ZI#}w8t&V!st$!uzPA+v? z>x!)o)>;Q^t%J4J75f_|thEl-S_exVEOoHd!CLEJse`2s)>;Q^t%J4J!CLEzz1G26 z>tL;Qu-3X_uXV82I#_ER=WDH_uI*8LSIPFMNqv;s9@TiXJxT{#T3?NN=hJ*siGM>Wp&sK(hI)%djGp>}(m)_Al% zN(b|VPY1I-N(ZHw&nVlY+MsNYYMkv+x`;e;5p9p!YwzWsUe=DRudlfYY@D0G#x=Vx zwnrT?IyE{Os_tx@iM4Si*2d}1#_7(+>CVQv|7)D?Y@F_FoI8oenOGZVVr`uJzs8wZ z8)ssLHLaqsQ8Z2wD ztQFfD^|I!>_WW=5+O(SOQH@92qjYe*5@vgp21RE(_+Z~2)i~Ru8fSY{<7|&=yyd;i zx8FG1qZ%JNs&5~0wnw$`=ZxwXk2u?-+V~wq-7Dc}dsG|5!SPBs+8(8m0mYW%IVeFD+jB+R}N--l&)EgzB019edS=bN9puzkJ7>V8oY9Pwnt^8wnypU=vQXE zJxU|%S7zmfvOOvzwLMA)>+ACPbZw8)Nd1xMi9S-sBZY*_MzjpHj5yop)FV-T> z`CFxqy41l^2TL6+b#NBxc73U%E_HAg={8>Ks7oE3MY@fbI_gqaY<1M74wgDt>R_oW zwmRxkx8LyjFaCojSJp?Zt}Axe!TD-6IePP{-X6uJ)Nrt@!LkO+8Z2wDtiftHSk_=! zgVk`btiiGdtKnc-gJrGQ)~L%GENif=!Ln9tYt&`!jC}MrjI0&g8mz}y7jHh*kFmIv z9)rNL2Fn^OYp|@rvIffR_pZr4ClZ!BPiH9V~UQ z8V;7aVmBOhse`2smO5DKimi^i)ZH0%w~ZRE*y><4+@qUMb;EHfH5@E!u&lwd2Fn^O zYp|@rvIffB z0;}O*ZI6QWy`R zh4si7R@W7~>tH=HhF|UPX9CL~EPt^4!Fps2%O5O%upSx1dSnd0J$gTSWL$MWGKTfY z7}g_WSbs$=_9J6hkBnhGGUj~!0hPM`@^wvG=f1kMx~|yjU`?2e*IGwi_XX5-UjVE1 zV6`4Bb+FXIQU|N`V5x(p4%U4Etk#3odazm#_JmoVms+ptnjBz47B2TL8}rH;DPQI|Sc>R_pZ zr4E)lSn6P@gQX6ZI#}vpse`2smO5DKV5uv%I_gpfOC2nAu+$Y>9re+Ir~ic1R1WGfUk+-I zR1Qip2en5E)*dNXd!%v^dFG(@NWIjj*tO^DJ8bR*8|O~2aZRy{JyPpmx4i#vrRap! zosBcQHqPwYINjMe-Pt(Z**G_Wjnkct)18fTJJC3^YvatWjdK&&IJ0Zx%&xFz*H+K$ z+Bmaop+ZuIQJ3Al!e6P*D2Fn^OYnP8sm9-jb zYp|@rvIffCs!m$jBh?S`-Bmy0${wkV)E=oEEaT(T>Ee}x+9TCZ_a3PntfpQ$y*hj4 zV72$kLG6*sHLKBAMpn149Mm4EoL*^VWPJ@@IjB8S{dDh<%E8gE%*r0AjI3Xol^4<; zsXo$sq;jynE{{+59;uAfUy5$(GxcPB>o7Cxp0(KbJh1Lr8LxX*>bhs8u6tHEGktr# z%=C>j(>Kmc-#9aUW8JfI{mk^Oo|(R}?pYb1nZDIC(>K;VE8{cMw|ZuJSTlXAXQpqQ znZ9vm`o@{*Va@cdp7nYC{;1n$^ZGo2vpzSLx@U${{ZxeUn$?T7NOQjTNKuzMSn6P@ zgQX76BHgYpb=0K}&LZ8$OC5EogR@At@lr=!>WZz7y41l^2TL6+b;VXkUFu$qx)?E~nrzv3c^fmKq=w^CYB*R82g@2PYp|@rvIeW+U|EA@4OYX!vIffR_pZ zr4E+5VymMrb(clmDWirfwmMi1w`23EZa6NbhJ$4dmNi(`U|EA@4VE=n)?itK)o`$^ z!LkO+8mxwcWv$o^M_txnS%YN_mbGGAqb_UrR_pZr4E)lSX~E89V~UQ)WK2* zOC7APgVlAg)D^qys7oCzb+FXIQdews)TQpVs5_?`R9y$F>tJ==*00}uH$YuoSM08X zr4E)lSn6P@gQX5u*TGT;OC2nAu++g)2dnE~bsa2q#qK)lQU^;NEOoHd6q<5FrkSk_=!gJlhtHCWbQH5@E!u&lwd2Fn^OYp@y) zR>Q%vR_unOE^Dx?!LkO+TCuHBFKdfEQvYl8pO8ASCQLmtF19*Ye_n<4$QV}F6}#(T zJu-%0?eAv-%O5O%u>8S#WDLt6EPt>b8N>BArNyr<{Pu|T$hhi$WDM((F|0?%u>Oi# z>_^719vQ=WWX$>c11fd>J&Y5*-bzQO5!J04`ueFZ4?hB~vz5rJ1!D>BN>R_pZ zr4Cl>!BPiH9jyBTSgi-E^lJ&#q^{P3)q1d64_50HyY;AN!km0O>Mk6q zE4DgV>KHF|)TNHP)WK2*OC2nAu++g)2TL6+b+FXIQU^;NEOoHd!BPiHU9r_smpWML zV5x(puGs3ROWpNR_lc3ZVylCtj`31QUFxVy9V~UQ)WK2*OC2nAu++g)2TL6+b+FXI zQU^;NEOoHd6x#YB!CLEJ zt#z=}!BPiH9jvtumO5DKV6Anq);d^g9jvvk*lQiEwGP%=2Wzb>_F4yPt%J4JalY0% z>e?Q~cNJ}qs<-a#QSf+sR1V5y9rX6743bU`YI_u{?NP9{N5R@21#5d0tnE>-wnxF* z9tCTA6s+x0u(n6R+8za;mhDmSczaY1>Iq*CYI{@;N-+nuJqp(LC|KL0auIpvpteUn z)?0M#s`~nxo504o32a=m>tcJCVRK z&c?ZuXq<_)aVFNrx&LdNiM4SiR#+2jt7l?uoQbt@Cf3H8SYb`9t)7W>vUR`Z{omS+ zBWtj%!LoMn=u}y&p|%Fg8Z2wDtiiGd%Ni_eu&lwd2Fn^OYp|@rvIffKBh#+oKr2W2i4SmcZlf zQ8_qX3CG)`GIG2U-adK{+8)J8+8&jQj90=J`bF038;`d~)k!PcqxwO2U7W@UR+M%J&)$_r_GR3GW>Q8`#&m&d1jdsIg1k3?7XnR@b> z`cAGt5*7QN2iEN><8`}AUAL>$b-M~@rf;v8nZ9vm`o@{*8)v3(tlL$tpP9bZGt)QL z?JDCl)34Y%=C>j(>Kmc-#9ZpteL*mvp%nXCh8vA zygpChtj~?5?!nM}N;~g)6o-SkolqwZc)?3P)WH2TL6+b+FXI zQU^;NEOoHd!BPjS;b5tQr4E)lSPchDU9lUEy41l^2TL6+b;VXkUFtp>b#IRvuGs2e zHQXmQpX!F=QffF@)?itKWet`!Sk_=!gJlhtHCPP?%Ni_eu&lvqI9S$--Eh=p4VE=n z)?isHwl(Uqc2hq3FO=Z?jcx+#dkL(DgS9;h*7uTPe=mWh4wgDt>R_pZr4H8j5?JbB zse`2smO5DKV0|xv)o`%X6}#c6OC2nAu++g)S8R3ErS86{d$vAmeJ?3?!@=4f#dyt? zt)6es)YWyc)WK2*OC2nAu++ioI#}vpse`2smO5DKV09g=u7jnn*j-0m>R_pZr4E+5 zVymMrbx%j#)~^|cs_S5N9jvZs1!1Ju=Z#qK&->R_pZr4E)lSn6PP9V~UQ)WK2* zOC2nAu(}Rb*TGU(?5?9Ob+FXIQU^<2vDHzRy7~V7d*#0MQLF2U-F2{*xdS$z>Sc~g zso`K*gJlhtHCWbQS%cMZu&lwd2Fn^OYp|@rYB*R82g_Qq8;-iH!LkO+8Z2wYwnn|I zE&kBD>*0ec{U@YetqD_)jEk)f)}L2lJu-&Xb;a&FSdWb1SNr>!!14#nA1r^c9vQ>( z2g@IBN>R_pZbzcCh^KHF|)TNHP)WK2*OC2nA zu++g)2TL6+b+FXIQU^;NEOoHd!BPiHU9r_smpWMLV5x(puGs3ROWkErcfd$pvDLv+ z$9SouE_KwU4wgDt>R_pZr4E)lSn6P@gQX6ZI#}vpse`2smO5DKimi^i)WK2*OC2nA z#a2f>>eg?Jx+6-R*1BS=gSFPdTI*n~b;VxmV6Anq);d_~V5x(p4%S)+OC2nAu+}dsGHVCkM4X3fA^0SlgpuZI6PrJqp(LC|KL0U~P|rwLJ>f_9$4}qu}H65F6I^ zD0sX*DhKt1F9)?fDhH*QgW4ViYkL%YO}1#|BJ#{ZZIAkFZ_%~G>g#K60vqQhuyM_< zi|tWQj!unEhN?RoXJT!fiM4UMvvIn!ak{f{?*AI6I~%7v8|O}qI1H*2S+Q5wntId_9*zR(fBRz zUB3NxJ#CL-{Gp@z_7Q7)6ywhs)h`~gwns63$53BvEP=<{qjGS(5{|b=W#o7zynXZ@ zv^|QGv^^>p8Lxyd^oy+5Hy&?~s*_f>NA-hzch!%$vOOvzwLK~a%lP+<+?Z;#4I{gLRxK2uMQukYmgBT=#Md0^eHGG4c< z)OEW`UAL=nX8QJenduv6rf-~?zHw&y#=2eQ`kColJu`h{-L5h|GkvRPrf;m>`OC6j=x{a4Q>QV=1k#6Iqj=IzpTOD<&gQX6Z zI#}w8t&Y0X-5+(A)km$aD|Xkx`D!(JX7j1u9>t~9aIhKXJS}rlsTFSMlrCds^=^D@2XMUfvw*S1J z@ys#T-21F&k2%-cYqF6wSOo{m8Z2wD3J#VvSk{Vdjl8VEvIffm5D!LkO+8Z2wYwnkpoo{>}kve^n(Y-_NlN&0JrBd-;Xyb2DMI#}vpse`2s zmO5DKV5x(p4pzazQU^;NEOoF74wkxN7aV!1gQX6ZI#}w8t&Y6ZT@ZEeofTZM)xj#b z*Bm_5&y5*M&y8VOgJlhtHCWbQS%YN_mNi(`U=t zQU^;NEOo_JM_%ea7Ih!00#(()QU|N*9+(dG-2i!2U9qbUmO5DKV5x(p4wgDtRR>EQ zEOoHd!BPiH9jvN@Rduk`6}#%lOC2nAu++g)S8R3UrS8j7_sKfds=8uV9js+;@9E>Z zvQsHIhEl=7vIff>_3J#XFViz2FS%YN_mNi(` zifxU2SzCV5`c1R#QP)ic>PN=KRtM|rRalRVVO3qRs}9y9WB8HreipF&!SV;oAFM~l zu>8UD2kVhBtVhQ1w!J07XueFZ6?hDB4z5rI~!74pi>R_pZr4ClW4_4_FyY$Fs!d#pibsw6kE4DgV>gX?Z=db+FbtSZiIe*E(2h9jvtumO5DKV5x((*1=K- zOC7AW4%S)+YpsK|))jlLgSFPdTI*n~b;VxmV6Anq);f;YT1Q^nqqtVl_NcYZgWIFv z`Sz$Z%49WqdsI3}Cym-31#5d0tnE>-wnxF*9tCTA6s+x0u(n6R+8zaKdlangQSdo= zC=F|S6g=M^l}0_`OQW_&rBRA$)b=P?+oRxXvpp(<$TN-F9(C&|(Y5>Q@-;Vs&AAC| zuGw|DJ?f*gL!*}SGcxDZjHCWajpB*Y|)z#KuS%YN_ zmNi(`U|EA@4VE=n)?itKWet`!Sk_=!gJrGQ*2v2mENif=!Ln9tYvg6^$tUmMdar$L zW(}4#Sk}&*9V%fv_iSa+_9*h&9tA%(>%aT7 z{kPxaX?qm?PoL$_nz6P=(f`s}{)!oEdlda|p7P6$CGdQER2t_i;e2~kdd^qEBeVCQ z?NJ=0?NJ$Iz7jq(23fBw9&eATgI2ajjYh6r^(U@uk4jH%k4j@1pC3*YuQY0V)HvMR zqtaMKy>fU}_DW-w_e!I-M`g?^^p&1f?JJGi9+ktjJt~cL8N711wnvSg-X4|4*+*t& zdsKSXM`q=Pv^{F{^!BJU*5&g2aBq)FPkl*r@tCO>U#e?zeMwa8dmdP~tMu3HDtXpKk81dQ?05icGbbTv|8MK@KA4$Vki|Htb&7O4VE=n)?itKRdBGZ!LkOc;9yyU zWerxr!LkO+TCuH>mo-?{U|EA@t=QJc%i4oE^=Hnk726uD$5>AsJk+~27)p<^U|EA@ z4VE=n)?itKWet`!Sk_?G8Z2wDtiiGd>oFEAYsG$yMPAlmS%YN_mbGGABQI-D{?`55 zn8g#b6|UIUU`>GDd8vC=)SWjgxMHh=Rd6pkc&H1Gp;U0NtiiGd%Ni_eu&lwd z2Fn^OYp@CqmNi(`U|EAzaImZuyWq&n8Z2wDtiiHYY-{9Y?F~8ghYwF(bzK7Mx&&6i z!P*`L>$;@a*Cnvj!BPiH9V~UQ)WNzgfu#R_pZ zr4E+5Vyh!Bb=OASiFK-VT~h3VgS9=1{+cU0Kfae(kXO~gQU^;NEOoHd!BPjS>R_pZ zr4E)lSn6P@gH?5~st%UAVpkn`se`2smO5DKimi^k)O{f8UQq?As)JQ^u&VA8)1kf_ zAg`(`cGbaB2TL6+b+FXIQU|N*V5x(p4wgDt>R_pZRdukc4wkxNR~>n&gQX6ZI#}w8 zt&Y6Z-5+(Yt5dD2D|XevTIRlT@K7&v45fmDWet`!Sk_=!gJlg?!NIZy%Ni_eu&lwd z2CLv;6&x&U#V$DVvIffO_<^=H&vnWx3DtTpGG)#f}cZcf3$ zD!Ar6EpC2f%&pB)*Bo`tQP-TO#m!OI9CgikTHKtc#m$e;-cOzulh@PY<~%KK&eP)N ze1QtoI&7B}ZY7z`93OR^kGf{v63|~&2dnB}RUNFk5?0j}d#)s}s)JQ^u&NGL)fKzy z$fxQS=SJO2XX=Wr4wgFlOC5QsBQJHZ)WK2*OC2nAu++g)2TL6+b+FXIQU^;NEOoHd z!BSUjb>yWEmO5DKV5uv%I`UF?S=3!NQ&((tu+-6C>c~qSd8vb?4wgDt>R_pZr4E)l zSn6P@gQX6ZI#}vpse`2smbzlABQJHZ)WK2*OI@+mk&n8KYlgb@D@&c$x?-s#f0Wib z@>=U)t#yo-%ak5pYaMy5b#T;m|EOz@x@N6)93OR^kGf{9b@bO-2Wzc^wbm7Tt%J4J z!CLEJt#!p->tL;Qu+}<`*IGwjJEMO8`O|o{Gpe`2tltuq*PU`u9V~UXY%RA!EgvnD zFLleIK0FPz41X`-mlN)N+vspg!gCT{lJKnwZ%X)~g!d+VIN|oG<0_1|_nxt5ZynZ| zhjr%RI`hlF;iPG(Wq4M?SIl0ZPW7_am7~|-B)w&zM5-p>rvJ|I6E}8 zL04S|HfLIE&a~E?+GtK~G^aM2bK}*V+GtK~H0Kh&In!EmrnTnWcr|BQYtFO=Yg+4k zrnTlwYt5O~nlr7zn$|j>X>IYDocbGP)?itKW$nweLuIYH+8Qitu&lwd2Fn^OYp|@r zvIffz8frP}I}^S);av$ooAA+u$DKAt zI6dKc2`@`{b;4T{eq;*$_OuT1cC`+{T8Ch*L-%FWKTde~I}W~p)}d2JYNO7wb_K1o zg#Y}s|AkAo-W`%guG>}`>&&k-W>=67F9-9U)X+*}b_L~d?Fv$3mDI}NRaYyGRa`5L z*%hQQtISq=67&#oXf)+OM|;n@|Gp4t_p#`-+W4?n6t6f2GO$(T2CfwsF2ax>X~uTQxZIY`sX}^w$#EEOpi2KTZHk9V~UQ z)WKOIdwi)QFLiL1$nGz7aqv*@3SuY~94u?F3J#VvSk_=!gH>>_tiiGdtKeW+gJlg?!NIZy%UZFm zk(V`C)?itKWv$rO$jjQNbLty=tiiGd%NnewH?XV~`{@mNS%YN_mNi(`ifxU&tZkpZe>t_ddA7n8+ZwEC zlKxuZ$ZLfouY!Z64wgDt>R_pZr4E)lSn6P@gH>>_)WK2*OC79&gQc$61xH@$V5x(p z4wkxNt0OOUCq>;K&kC;C>R=VzSqBew!7-Ey4wf}o)?itKWet`!Sk_=!gJlg?!NIZy z%Ni_eunG>AwPF_>d0B&H4VE=n){1S7ysW)4r~XI@&NpNWSl1=63J%t;AXwKW#l9|q zr4E)lSn6P@gQX7EbqOqWu++g)2TL6+b+E2WU=GDd8vC# z)ZJC5TGu7TE;v}bg6OZgvh(9xfdzS09V~UQ)WK2*OC2nAu&NH0I#}vpse`2smO5Bf z2dnB}sVjEXk(WAH>R_pZrLNfO$V=UgQMdk$Q&&|Ttg3@mbswA#_1yq@Rb8>G4wgDt z>R_pZr4E)lSXBp09V~UQ)WK2*OC7ALgH?5~)D^qx$V(k8b+FXIQdewsp>I$se4@ zrS#{EwdMOEFMqK7!SV;^acPeyf8^y4&g0VVpU0)mkLUc*KaWev>v3swzASCdm!-{l zTng)PX>%TzHs^6^AD_pio!2*CUrXscRO(c9#a0Jv!lb{}I`X+N)J})!74pirC03IBcBO#@zn1e zw{%~bsVlZRSnB96b>yXvywt%`2TL6+b+FXIQU^;NEOoHd!BPiH9V~UQ)WK2*OI@+m zk(WAH>R_pZrLNfO$V=UGqi*x)gH=~-b+FXYU+Tz99eJsPr4E)lSn6P@gQX6ZI#}vp zse`2smO5DKV5x(p4wkxNt0OOUu++g)2TNVC)sdeqc!y3tbu54x zFLu;`bQ4$po$37-FQQW|Bl8vV;j=_H*r>X(yX{c;klUrvJc z%So_)ISJM;C&BvVBv`+k1Ru`tPr&-+Bv`+k1fMhOuU}3gKmX;VH0CkiB8_>>r$#BJ zr+zsJe#`7VTsv_;*V7>K%t89)q?e5;cI}k9hRvN|bM6G2Yl>a&P`YwmB)!CftY|c$!bE>mB)!CfeiRR3%&6!=Ba}(H{*|j;dE3DbI^O;?nGrKlt zc5Tk=3Tt-lycWira_XNuvj)o=ENgep4wbd)YHP5p!LkO+8Z2wDtiiGd%Ni_eu&lwd z2Fn^OYp|@rvQ}(s5Yp|@rvi6nPp|Vz8Z4H(+Sk_=! zgJlhtHCWbQS%YN_mNi(`U|EA@4VE=n){1S7ysW{p2Fn^OYsI!kK36j9tc3dIBxX?k zauPiM<)k#uS3>=AQaVLv&)Rp-W_A5?5(nv*lVJUF61@Agap48)my_VrXZf>ctY1!| z|E0716*JZ^C(-}rDeqNi{>w>pqH(?w&VM;6J?AUok=c9DFDG%3emNI zY0Mrejah}h(zB|4r7?S?ba?hisj)7DR}Rk}sr1wyDK*YMGAqBFlrvu+nUxpPFDH$j z{^g`J*5&g2aP5)GTk;;MC!I0AZaB5B$@NW9vF~|c-LukP_pIb~&q`kRtZ-)f1)Q0_ zIWv88X8PvL^v$|wWxUMvozG0)tb11aXQuCbX8LB`v(i5^edjaN!OE2nrGkT1aImbwvIffp+ZuUUyCtXoT{CONwg&52)`t%s>StLDrDq|qtiiGd%Ni_eu&lwd2Fn^O zYp`k!mNi(`U|ECpEDM&kVn53wFKe)@!LkO+TCuH>m$mzH>YqDX;fiey)-*|ft#IVE z!jV_O!BPiH9V~UQ)WK2*OC2nAu++gSI9Tdnse`2sR>8qiSL}i#FLkig!BPiHU9r`X zm%2ZWx|?SOS8R2#3hwZqAJ;XV%6F>_rGkTH4VE=n)?itKWet`!Sk_=!gH>>_tiiGd z%NneLgJrGQ1xH@iU|EA@4VJZHTO%)Pr{&aNP=fOv-2&Ei39N#HwMPopbxEk?Q62TNVC3y!?h!BPiH9V~UlR!3gy&W*ZD z>Qw8xq}T-qYmXHDHCJ{%RYzV`2TL6+b+FXIQU^;Ntg3^h4wgDt>R_pZr4Clr!Kyk~ z>WW=;R_pZr4E+5Vyh!BbvH!aU3IEeb;Yha zSj*fU2M_giB}1v;U|EA@4VE=n)?itKRdBGZ!LkO+8Z2wDtidWcSOo{mTCod`ysW{p z2Fn^OYsI!kzN{_(1Ih2){~yaOzjJx=^j+Kb8*A3A=f?9!B(5~px2-FU`T}l@=`Y|$ zqrZSlqrQMk<0JVFD~%<4{_1;We5J9puQcilxQtmJfR�DOhRL7jQXTU%;jD@vryh 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 literal 0 HcmV?d00001 diff --git a/dsk/rd/emr/system/login.elf b/dsk/rd/emr/system/login.elf index c3797b167222d3d1feb192a7f07348b47e62d92d..1b4776741e3395a21516ae5b10f0ce8fe73b67c2 100755 GIT binary patch delta 596 zcmaFR#Q33!ae@Y8!9-1S&J0xsFlgAA86zY~7W@AmL8eA0FMJXD81PR%cu} z`GBw}Q@`Tm4aTCA6@)o9e-WO*%J^b(tE2H4BX3dq?F1?QIL!wbJvv#ZK*W226#q7cmIEaUKvngVzZuB~ z#lyr(MLmwQ`T}_%01k+kjX)Mqp$$kk(2uW$fE;}g2V$xUh}q353#1UH@-t0NHFDuV-vZvdqoCI_0%XUv%V(eyf8P5`PQeDX&#@yQ>|I2au!|1<+SRCThJxf^4} zpELyO~#i~*Z}T7G9_OxXOpR!IlO>64F18ZstM{vmmdv1{^qsR%~H$r{o@ zy7z!qiviuR<3A9*P68Uc0Vv{O>H4BX3dmUv<|;2ax>= zP}*Q}qUn6bh{=p**Wq#kAO%1WKKY`V_#|@;y5Ft!)8va?~Ick$z+_JcaKdl^nHw>=)4?8S T=Sd(LFqzZQo>6_Wr=vOm6;7-e diff --git a/dsk/rd/emr/system/srv.emx/app.elf b/dsk/rd/emr/system/srv.emx/app.elf new file mode 100755 index 0000000000000000000000000000000000000000..e22e4269a7890f7950a18e7ee8ea8fb0a4192b32 GIT binary patch literal 25384 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 RQ~3|p2rg?rYL!VX|G(nq&yoND literal 0 HcmV?d00001 diff --git a/dsk/rd/emr/system/srv.emx/package.info b/dsk/rd/emr/system/srv.emx/package.info new file mode 100644 index 0000000..9350078 --- /dev/null +++ b/dsk/rd/emr/system/srv.emx/package.info @@ -0,0 +1,2 @@ +x1srv +emex \ No newline at end of file diff --git a/logo.txt b/logo.txt index 7b9e168..301ff4c 100644 --- a/logo.txt +++ b/logo.txt @@ -9,21 +9,21 @@ # ########## #;m; # #; # #; # #;m; # ########## #;m; # #;m; # #;m; # ####### #;m; ########### #;m; ###########;m; # #; # #; # #;m; ###########;m; ###;m; ###;m; ###########;m; ##########;m; -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬───────────┐ -│ esc │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ f11 │ f12 │ power │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼───────────┤ -│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ -│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ — │ = │ delete │ -├─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┬─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │ -│ tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ -├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┤ -│ │ │ │ │ │ │ │ │ │ │ : │ “ │ │ -│ caps lock │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ enter │ -├───────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴───────────┤ -│ │ │ │ │ │ │ │ │ < │ > │ ? │ │ -│ shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ shift │ -├─────┬──────┬─┴───┬─┴───┬─┴─────┴─────┴─────┴─────┴─────┼─────┼─────┼─────┴┬──────┬──────┤ -│ │ │ │ │ │ │ ├──────┼──────┼──────┤ -│ fn │ ctrl │ opt │ cmd │ s p a c e │ cmd │ opt ├──────┼──────┼──────┤ -└─────┴──────┴─────┴─────┴───────────────────────────────┴─────┴─────┴──────┴──────┴──────┘ +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬────────────┐ +│ esc │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ f11 │ f12 │ power │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────────────┤ +│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ +│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ — │ = │ delete │ +├─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┬──────┤ +│ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │ +│ tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ +├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴──────┤ +│ │ │ │ │ │ │ │ │ │ │ : │ “ │ │ +│ caps lock │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ enter │ +├───────────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴────────────┤ +│ │ │ │ │ │ │ │ │ < │ > │ ? │ │ +│ shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ shift │ +├─────┬──────┬─┴───┬─┴───┬─┴─────┴─────┴─────┴─────┴─────┼─────┼─────┼─────┴┬───────┬──────┤ +│ │ │ │ │ │ │ ├──────┤ ^ ├──────┤ +│ fn │ ctrl │ opt │ cmd │ s p a c e │ cmd │ opt │ < ├───────┤ > │ +└─────┴──────┴─────┴─────┴───────────────────────────────┴─────┴─────┴──────┴───────┴──────┘ diff --git a/shared/config/system.h b/shared/config/system.h index fb05fcb..43639d4 100644 --- a/shared/config/system.h +++ b/shared/config/system.h @@ -15,7 +15,7 @@ #define JUMPTOUSER 1 #define USE_HCF 1 -#define BOOTUP_VISUALS 0 // verbose boot == 0, silent boot == 1 +#define BOOTUP_VISUALS 1 // verbose boot == 0, silent boot == 1 // 1 == run tests like processes, scheduler which are in early developement and not finished // 0 == disable running those tests @@ -33,15 +33,15 @@ #define OVERWRITEALL 0 #if HARDWARE_SC == 1 - #define ENABLE_FAT32 0 - #define ENABLE_ATA 0 - #define ENABLE_ULIME 0 - #define ENABLE_GLIME 0 +# define ENABLE_FAT32 0 +# define ENABLE_ATA 0 +# define ENABLE_ULIME 0 +# define ENABLE_GLIME 0 #else - #define ENABLE_FAT32 1 - #define ENABLE_ATA 1 - #define ENABLE_ULIME 1 - #define ENABLE_GLIME 1 +# define ENABLE_FAT32 1 +# define ENABLE_ATA 1 +# define ENABLE_ULIME 1 +# define ENABLE_GLIME 1 #endif #define X64 1 diff --git a/shared/config/tasks.h b/shared/config/tasks.h new file mode 100644 index 0000000..c064f5a --- /dev/null +++ b/shared/config/tasks.h @@ -0,0 +1,6 @@ +#pragma once + +#define SOCKET1 0 +#define SOCKET2 0 +#define SOCKET3 1 +#define SOCKET4 0 \ No newline at end of file diff --git a/src/kernel/arch/x86_64/exceptions/timer.c b/src/kernel/arch/x86_64/exceptions/timer.c index d0a118e..1aa14c4 100644 --- a/src/kernel/arch/x86_64/exceptions/timer.c +++ b/src/kernel/arch/x86_64/exceptions/timer.c @@ -6,6 +6,7 @@ #include #include #include +//#include #include // using PIT (8254) @@ -17,12 +18,13 @@ static timer_callback_t timer_callbacks[MAX_TIMER_CALLBACKS]; static int callback_count = 0; #if ENABLE_ULIME -extern scheduler_t* scheduler; // Zugriff auf globale Variable +extern scheduler_t* scheduler; +extern mt_t* mt; #endif void timer_handler(cpu_state_t* state) { - (void)state; + //(void)state; if (!timer_initialized) { return; @@ -36,12 +38,10 @@ void timer_handler(cpu_state_t* state) } } - //banner_tick(); - // call schedule #if ENABLE_ULIME - if (scheduler) { - scheduler_tick(scheduler); + if (mt) { + mt_preempt(mt, state); // real preemptive switch } #endif } @@ -81,7 +81,7 @@ void timer_init(u32 frequency) timer_ticks = 0; timer_initialized = 1; - // Enable interrupts to start timer + // enable interrupts to start timer __asm__ volatile("sti"); //TODO: diff --git a/src/kernel/arch/x86_64/exceptions/timer.h b/src/kernel/arch/x86_64/exceptions/timer.h index 24cde7b..ab98be8 100644 --- a/src/kernel/arch/x86_64/exceptions/timer.h +++ b/src/kernel/arch/x86_64/exceptions/timer.h @@ -2,6 +2,7 @@ #define TIMER_H #include +#include #define TIMER_FREQUENCY 1000 // 1000 Hz = 1ms Ticks #define MAX_TIMER_CALLBACKS 8 diff --git a/src/kernel/console/IMPORTANT.md b/src/kernel/console/IMPORTANT.md deleted file mode 100644 index e85f24f..0000000 --- a/src/kernel/console/IMPORTANT.md +++ /dev/null @@ -1,4 +0,0 @@ -NOTE: -THIS IS NOT A USERSPACE SHELL AND WILL NOT BE USED ANYMORE -SO FOR CONTRIBUTIONS: DONT IMPLEMENT NEW COMMANDS FOR THE KERNELSPACE SHELL/CONSOLE -I WILL NOW ACCEPT THOSE ANYMORE IN FUTURE THIS CONSOLE WILL GET DELETED. \ No newline at end of file diff --git a/src/kernel/console/console.c b/src/kernel/console/console.c deleted file mode 100644 index fa2d270..0000000 --- a/src/kernel/console/console.c +++ /dev/null @@ -1,380 +0,0 @@ -#include "console.h" -#include "functions.h" - -static char input_buffer[MAX_INPUT_LEN]; -static int input_pos = 0; -char cwd[MAX_PATH_LEN] = "/"; -//int is_login_active = 0; - -//---------------------------------- -// ! IMPORTANT FOR NEW COMMANDS ! -int cmd_count = 30; - -console_cmd_t commands[MAX_CMDS] = { - CMDENTRY(cmd_echo, "echo", "prints text to console", "echo [text]"), - CMDENTRY(cmd_clear, "clear", "clears the screen", "clear [color]"), - CMDENTRY(cmd_help, "help", "displays all available commands", "help [command]"), - CMDENTRY(cmd_fsize, "scale", "change screen size", "scale [2-4]"), - CMDENTRY(cmd_modules, "lsmod", "list loaded modules", "lsmod"), - CMDENTRY(cmd_meminfo, "meminfo", "displays memory infos", "meminfo"), - //CMDENTRY(cmd_memtest, "memtest", "Memory test suite", "memtest"), - CMDENTRY(cmd_sysinfo, "dofetch", "system fetch", "dofetch"), - CMDENTRY(cmd_cal, "calendar", "displays current date & time", "calendar"), - CMDENTRY(cmd_date, "date", "displays current date", "date"), - CMDENTRY(cmd_uptime, "uptime", "System uptime", "uptime"), - CMDENTRY(cmd_time, "time", "displays current time", "time"), - CMDENTRY(cmd_reboot, "reboot", "Reboot the system", "reboot"), - CMDENTRY(cmd_shutdown, "shutdown", "Shutsdown the system", "shutdown"), - CMDENTRY(cmd_shutdown, "shut", "Shutsdown the system", "shut"), // alias - CMDENTRY(cmd_cat, "cat", "show file", "cat "), - CMDENTRY(cmd_ls, "ls", "list directory contents", "ls [path]"), - CMDENTRY(cmd_cd, "cd", "Change directory", "cd [path]"), - CMDENTRY(cmd_tree, "tree", "shows every folder, file * content", "tree"), - CMDENTRY(cmd_mkdir, "mkdir", "create directory", "mkdir "), - CMDENTRY(cmd_font, "font", "change console font", "font [0-1]"), - CMDENTRY(cmd_cyrillc_sumbol, "cyrillc-sumbol", "print cyrillic alphabet test", "cyrillc-sumbol"), - CMDENTRY(cmd_latin_sumbol, "latin-sumbol", "print latin alphabet test", "latin-sumbol"), - CMDENTRY(cmd_all_sumbol, "symbols", "print latin and cyrillic alphabets", "symbols"), - //CMDENTRY(cmd_edit, "edit", "edit any file", "edit "), - CMDENTRY(cmd_keymap, "loadkeys", "change keyboard layout", "loadkeys [keymap]"), - CMDENTRY(cmd_whoami, "whoami", "display current user", "whoami"), - CMDENTRY(cmd_source, "source", "reload configuration", "source console"), - CMDENTRY(cmd_touch, "touch", "create empty file", "touch "), - CMDENTRY(cmd_view, "view", "view BMP image", "view "), - CMDENTRY(cmd_ps, "ps", "displays processes", "ps"), - CMDENTRY(cmd_slot, "slot", "switch kernel slots", "slot "), -}; - -//---------------------------------- - -//module--------------------------- -static int console_module_init(void) { - // console already initialized in main - log("[CONSOLE]", "Load CONSOLE module...\n", d); - return 0; -} - -static void console_module_fini(void) { - // -} - -driver_module console_module = (driver_module) { - .name = "console", - .mount = "/dev/console", - .version = VERSION_NUM(0, 1, 2, 0), //should print like [v0.1.0.0] - .init = console_module_init, - .fini = console_module_fini, - .open = NULL, // later for fs - .read = NULL, // later for fs - .write = NULL, // later for fs -}; - -//--------------------------------- - - -//extern void prompt_config_init(); -void console_init(void) -{ - input_pos = 0; - input_buffer[0] = '\0'; - char buf[64]; - - log("[CONSOLE]","starting console...\n", d); - - //sconsole_theme(THEME_FLU); - f_setcontext(FONT_8X8); - clear(CONSOLESCREEN_BG_COLOR); - font_scale = 2; - cursor_x = 0; - cursor_y = 0; - - console_config_init(); - clear(CONSOLESCREEN_BG_COLOR); - banner_init(); - console_window_init(); - cursor_(); - - console_execute("scale 1"); - cprintf("\nWelcome to " KERNEL_BARENAME " " KERNEL_DEFRELEASE, white()); - cprintf("\nyou're currently in " CONSOLE_APP_NAME " " CONSOLE_WINDOW "\n", white()); - shell_print_prompt(); - cursor_draw(); - //console_execute("cd /.config"); - //console_execute("cd /ekmsh"); - //console_execute("tree"); - console_run(); -} - -void console_run(void) -{ - // main console loop will be called from keyboard handler - // this function exists for future expansion like syscalls maybe for a app like a code editor which needs a console - // actually idk why i created this xd - while (1) { - if (keyboard_has_key()) { - key_event_t event; - if (keyboard_get_event(&event)) { - if (event.pressed) { - console_handle_key_event(&event); - } - } - } - // Let CPU rest - __asm__ volatile("hlt"); - } -} - -static void console_redraw_input_line(void) { - u32 saved_y = cursor_y; - u32 char_width = fm_get_char_width() * font_scale; - u32 char_height = fm_get_char_height() * font_scale; - u32 start_x = cursor_x; - u32 clear_width = get_fb_width() - cursor_x; - - draw_rect(cursor_x, cursor_y, clear_width, char_height, CONSOLESCREEN_BG_COLOR); - - for (int i = input_pos; input_buffer[i] != '\0'; i++) { - putchar(input_buffer[i], GFX_WHITE); - } - - cursor_x = start_x; - cursor_y = saved_y; - cursor_draw(); -} - -void console_handle_key_event(key_event_t *event) { - cursor_c(); - - // Arrow keys - if (event->keycode == KEY_ARROW_LEFT) { - if (input_pos > 0) { - input_pos--; - u32 char_width = 8 * font_scale; - cursor_x -= char_width; - cursor_draw(); - } - return; - } - - if (event->keycode == KEY_ARROW_RIGHT) { - if (input_pos < str_len(input_buffer)) { - input_pos++; - u32 char_width = 8 * font_scale; - cursor_x += char_width; - cursor_draw(); - } - return; - } - - if (event->keycode == KEY_HOME) { - u32 char_width = 8 * font_scale; - cursor_x -= input_pos * char_width; - input_pos = 0; - cursor_draw(); - return; - } - - if (event->keycode == KEY_END) { - int len = str_len(input_buffer); - u32 char_width = 8 * font_scale; - cursor_x += (len - input_pos) * char_width; - input_pos = len; - cursor_draw(); - return; - } - - if (event->keycode == KEY_DELETE) { - int len = str_len(input_buffer); - if (input_pos < len) { - for (int i = input_pos; i < len; i++) { - input_buffer[i] = input_buffer[i + 1]; - } - console_redraw_input_line(); - } - return; - } - - if ((event->modifiers & KEY_CTRL_MASK) && (event->keycode == 's' || event->keycode == 'S')) { - // This will be handled by edit command - return; - } - - char c = (char)(event->keycode & 0xFF); - console_handle_key(c); - - cursor_reset_blink(); - cursor_draw(); -} - -void console_handle_key(char c) -{ - cursor_c(); - if (c == '\n') { - // execute command when enter - putchar('\n', GFX_WHITE); - - if (input_pos > 0 || str_len(input_buffer) > 0) { - input_buffer[str_len(input_buffer)] = '\0'; - - // check for && and use chained execution - int has_chain = 0; - int len = str_len(input_buffer); - for (int i = 0; i < len - 1; i++) { - if (input_buffer[i] == '&' && input_buffer[i+1] == '&') { - has_chain = 1; - break; - } - } - - // prints every command to the console - printf("%s\n", input_buffer); - - if (has_chain) { - parse_and_execute_chained(input_buffer); - } else { - console_execute(input_buffer); - } - - - input_pos = 0; - input_buffer[0] = '\0'; - } - - cursor_reset_blink(); - //cursor_draw(); - shell_print_prompt(); - return; - } - - if (c == '\r') { - putchar('\n', GFX_WHITE); - input_buffer[input_pos++] = '\n'; - cursor_draw(); - return; - } - - if (c == '\b') { - if (input_pos > 0) { - int len = str_len(input_buffer); - for (int i = input_pos - 1; i < len; i++) { - input_buffer[i] = input_buffer[i + 1]; - } - input_pos--; - //input_buffer[input_pos] = '\0'; - - // just move the cursor back then print space, draw rext, and move back again - u32 char_width = fm_get_char_width() * font_scale; - u32 char_height = fm_get_char_height() * font_scale; - /*if (cursor_x >= char_width) { - cursor_x -= char_width; - putchar(' ', GFX_WHITE); - cursor_x -= char_width; - - draw_rect(cursor_x, cursor_y, char_width, 8 * font_scale, CONSOLESCREEN_BG_COLOR); - }*/ - cursor_x -= char_width; - draw_rect(cursor_x, cursor_y, char_width, char_height, CONSOLESCREEN_BG_COLOR); - console_redraw_input_line(); - } - cursor_reset_blink(); - cursor_draw(); - return; - } - - console_window_check_scroll(); - - // add character to buffer - if (input_pos < MAX_INPUT_LEN - 1) { - int len = str_len(input_buffer); - - for (int i = len; i > input_pos; i--) { - input_buffer[i] = input_buffer[i - 1]; - } - - input_buffer[input_pos] = c; - input_buffer[len + 1] = '\0'; - - putchar(c, GFX_WHITE); - input_pos++; - - if (input_buffer[input_pos] != '\0') { - u32 old_x = cursor_x; - u32 old_y = cursor_y; - for (int i = input_pos; input_buffer[i] != '\0'; i++) { - putchar(input_buffer[i], GFX_WHITE); - } - cursor_x = old_x; - cursor_y = old_y; - } - } - cursor_reset_blink(); - cursor_draw(); -} - -void console_execute(const char *input) -{ - //TODO: - // OF UNKOWN BUGS THE SYSTEM CRASHES WHEN YOU ENTER A WRONG COMMAND - // not anymore :) - - // skip leading spaces - while (*input == ' ') input++; - - if (*input == '\0') return; - - // find command name end - const char *end = input; - while (*end && *end != ' ') end++; - - // extract it - char cmd_name[64]; - int len = end - input; - if (len >= 64) len = 63; - - for (int i = 0; i < len; i++) { - cmd_name[i] = input[i]; - } - cmd_name[len] = '\0'; - - // find arguments - const char *args = end; - while (*args == ' ') args++; - - console_cmd_t *cmd = console_find_cmd(cmd_name); - if (cmd) { - cmd->func(args); - - banner_force_update(); - - // for PC_NAME and USER_NAME - uci_reload(); - } else { - cprintf(CONSOLE_NAME, WRONG_COMMAND_CL); - cprintf(": command not found:", WRONG_COMMAND_CL); - cprintf(cmd_name, WRONG_COMMAND_CL); - } -} - -console_cmd_t* console_find_cmd(const char *name) -{ - for (int i = 0; i < cmd_count; i++) { - // simple string comparison - const char *a = name; - const char *b = commands[i].name; - int match = 1; - - while (*a && *b) { - if (*a != *b) { - match = 0; - break; - } - a++; - b++; - } - - if (match && *a == '\0' && *b == '\0') { - return &commands[i]; - } - } - return NULL; -} diff --git a/src/kernel/console/console.h b/src/kernel/console/console.h deleted file mode 100644 index ba19666..0000000 --- a/src/kernel/console/console.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef CONSOLE_H -#define CONSOLE_H - -#include "graph/uno.h" -#include "graph/dos.h" -#include "graph/print.h" - -#include -#include -#include -#include -#include -#include -#include -//#include -#include -#include -#include -//#include "login/login.h" -#include -#include -#include - -#include - -#include -extern driver_module console_module; - -#define MAX_INPUT_LEN 256 -#define MAX_PATH_LEN 256 -#define MAX_CMDS 32 -#define MAX_CHAINED_CMDS 8 - -#define CONSOLE_APP_NAME "console" -#define CONSOLE_WINDOW "w1" -#define CONSOLE_NAME "ekmsh" // emex-kernelmode-shell -#define WRONG_COMMAND_CL GFX_RED - -// function header macro for command declarations it should be easier to port it to future syscalls -#define FHDR(name) void name(const char *s) - -typedef struct { - void (*func)(const char*); - const char *name; - const char *description; - const char *usage; -} console_cmd_t; - -// for the 'help ' -#define CMDENTRY(func, name, desc, usage) { func, name, desc, usage } - -extern char cwd[]; -//for help.c -extern console_cmd_t commands[]; -extern int cmd_count; - -void console_init(void); -void console_run(void); - -void console_handle_key(char c); -void console_handle_key_event(key_event_t *event); -void console_execute(const char *input); - -void shell_clear_screen(u32 color); -void shell_print_prompt(void); -void shell_redraw_input(void); - -void cursor_(void); -void cursor_draw(void); -void cursor_c(void); -void cursor_redraw(void); -void cursor_enable(void); -void cursor_disable(void); -void cursor_reset_blink(void); - - -void console_config_init(void); // config for promt in /.config/ekmsh/promts/promt.conf - - -console_cmd_t* console_find_cmd(const char *name); - -int parse_color(const char *color_str, u32 *out_color); -void parse_and_execute_chained(const char *input); - -#endif \ No newline at end of file diff --git a/src/kernel/console/cursor.c b/src/kernel/console/cursor.c deleted file mode 100644 index 509e550..0000000 --- a/src/kernel/console/cursor.c +++ /dev/null @@ -1,85 +0,0 @@ -#include "console.h" -#include - -static int cursor_visible = 1; -static u32 cursor_blink_counter = 0; -static int cursor_enabled = 1; - -//todo: -// move to doccr.h with custom cursor bitmap/ character (e.g: A,B, _, █) -#define CURSOR_BLINK_RATE 300 // blinking -//------------------------ -// "_" -#define CURSOR_WIDTH_RATIO 6 -#define CURSOR_HEIGHT_RATIO 1 -//------------------------ -// "█" -//#define CURSOR_WIDTH_RATIO 5 -//#define CURSOR_HEIGHT_RATIO 8 -//------------------------ -// "|" -//#define CURSOR_WIDTH_RATIO 1 -///#define CURSOR_HEIGHT_RATIO 8 -//------------------------ -static void cursor_timer_callback() { - if (!cursor_enabled) return; - - cursor_blink_counter++; - if (cursor_blink_counter >= CURSOR_BLINK_RATE) { - cursor_blink_counter = 0; - cursor_visible = !cursor_visible; - cursor_redraw(); - } -} - -void cursor_(void) { - cursor_visible = 1; - cursor_blink_counter = 0; - cursor_enabled = 1; - timer_register_callback(cursor_timer_callback); -} - -void cursor_draw(void) { - if (!cursor_visible || !cursor_enabled) return; - - u32 char_width = fm_get_char_width() * font_scale; - u32 char_height = fm_get_char_height() * font_scale; - - u32 cursor_width = (char_width * CURSOR_WIDTH_RATIO) / 8; - u32 cursor_height = (char_height * CURSOR_HEIGHT_RATIO) / 8; - u32 cursor_y_pos = cursor_y + char_height - cursor_height; - - draw_rect(cursor_x, cursor_y_pos, cursor_width, cursor_height, CONSOLESCREEN_COLOR); -} - -void cursor_c(void) { - u32 char_width = fm_get_char_width() * font_scale; - u32 char_height = fm_get_char_height() * font_scale; - - u32 cursor_width = (char_width * CURSOR_WIDTH_RATIO) / 8; - u32 cursor_height = (char_height * CURSOR_HEIGHT_RATIO) / 8; - u32 cursor_y_pos = cursor_y + char_height - cursor_height; - - draw_rect(cursor_x, cursor_y_pos, cursor_width, cursor_height, CONSOLESCREEN_BG_COLOR); -} - -void cursor_redraw(void) { - cursor_c(); - cursor_draw(); -} - -void cursor_enable(void) { - cursor_enabled = 1; - cursor_visible = 1; - cursor_blink_counter = 0; -} - -void cursor_disable(void) { - cursor_c(); - cursor_enabled = 0; -} - -void cursor_reset_blink(void) { - cursor_blink_counter = 0; - cursor_visible = 1; -} diff --git a/src/kernel/console/functions.h b/src/kernel/console/functions.h deleted file mode 100644 index fa13f77..0000000 --- a/src/kernel/console/functions.h +++ /dev/null @@ -1,63 +0,0 @@ -#pragma once - -#include "console.h" - -// text.c -FHDR(cmd_echo); -FHDR(cmd_clear); -FHDR(cmd_font); -FHDR(cmd_fsize); -FHDR(cmd_cyrillc_sumbol); -FHDR(cmd_latin_sumbol); -FHDR(cmd_all_sumbol); - -// help.c -FHDR(cmd_help); - -// system.c -FHDR(cmd_modules); -FHDR(cmd_meminfo); -FHDR(cmd_memtest); -FHDR(cmd_sysinfo); -//FHDR(cmd_usb); -//FHDR(cmd_usbinfo); - -//cmos.c -FHDR(cmd_cal); -FHDR(cmd_date); -FHDR(cmd_time); -FHDR(cmd_uptime); - -// File System -FHDR(cmd_tree); -FHDR(cmd_cat); -FHDR(cmd_ls); -FHDR(cmd_cd); -FHDR(cmd_mkdir); -FHDR(cmd_touch); - -// whoami.c -FHDR(cmd_whoami); - -// source.c -FHDR(cmd_source); - -// keymap.c -FHDR(cmd_keymap); - -// poweroff.c -//FHDR(cmd_poweroff); -FHDR(cmd_reboot); -FHDR(cmd_shutdown); - -//edit.c -//FHDR(cmd_edit); - -// view.c -FHDR(cmd_view); - -// proc -FHDR(cmd_ps); - -// slots.c -FHDR(cmd_slot); diff --git a/src/kernel/console/functions/cat.c b/src/kernel/console/functions/cat.c deleted file mode 100644 index a466952..0000000 --- a/src/kernel/console/functions/cat.c +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include - -extern char cwd[]; - -FHDR(cmd_cat) { - (void)s; - if (!s || *s == '\0') { - cprintf("error: no file specified\n", GFX_RED); - return; - } - - char path[MAX_PATH_LEN]; - - if (s[0] == '/') { - str_copy(path, s); - } else { - str_copy(path, cwd); - - if (cwd[str_len(cwd) - 1] != '/') { - str_append(path, "/"); - } - - str_append(path, s); - } - - // opens in read only (RDONLY) - int fd = fs_open(path, O_RDONLY); - if (fd < 0) { - cprintf("error: cannot open file\n", GFX_RED); - return; - } - - char buf[256]; - ssize_t bytes; - - while ((bytes = fs_read(fd, buf, sizeof(buf) - 1)) > 0) { - buf[bytes] = '\0'; - cprintf(buf, GFX_WHITE); - } - - fs_close(fd); - - // buf[0] = '\0'; - cprintf("\n", GFX_WHITE); -} diff --git a/src/kernel/console/functions/cd.c b/src/kernel/console/functions/cd.c deleted file mode 100644 index b359fbc..0000000 --- a/src/kernel/console/functions/cd.c +++ /dev/null @@ -1,66 +0,0 @@ -#include -#include - -extern char cwd[]; - -FHDR(cmd_cd) { - if (!s || *s == '\0') { - // cd with no arguments goes to root - str_copy(cwd, "/"); - return; - } - - char new_path[MAX_PATH_LEN]; - - if (s[0] == '/') { - str_copy(new_path, s); - } else { - str_copy(new_path, cwd); - - if (cwd[str_len(cwd) - 1] != '/') { - str_append(new_path, "/"); - } - - str_append(new_path, s); - } - - if (str_equals(s, "..")) { - int len = str_len(cwd); - if (len > 1 && cwd[len - 1] == '/') { - cwd[len - 1] = '\0'; - len--; - } - for (int i = len - 1; i >= 0; i--) { - if (cwd[i] == '/') { - if (i == 0) { - str_copy(cwd, "/"); - } else { - cwd[i] = '\0'; - } - return; - } - } - return; - } - - // if directory exists - fs_node *dir = fs_resolve(new_path); - if (!dir) { - cprintf("error: directory not found\n", GFX_RED); - return; - } - - if (dir->type != FS_DIR) { - cprintf("error: not a directory\n", GFX_RED); - return; - } - - // updates cwd - str_copy(cwd, new_path); - - // when cwd ends with / (except for the root) - int len = str_len(cwd); - if (len > 1 && cwd[len - 1] != '/') { - str_append(cwd, "/"); - } -} diff --git a/src/kernel/console/functions/cmos.c b/src/kernel/console/functions/cmos.c deleted file mode 100644 index ff88d98..0000000 --- a/src/kernel/console/functions/cmos.c +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include -#include - -FHDR(cmd_cal) { - (void)s; - - GetCMOSDate(); - cprintf(" ", GFX_WHITE); - GetCMOSTime(); - -} - -FHDR(cmd_date) { - (void)s; - - GetCMOSDate(); -} - -FHDR(cmd_time) { - (void)s; - - GetCMOSTime(); -} - -FHDR(cmd_uptime) { - (void)s; - - cprintf("Uptime: ", GFX_WHITE); - timer_print_uptime(); -} diff --git a/src/kernel/console/functions/help.c b/src/kernel/console/functions/help.c deleted file mode 100644 index 028ee12..0000000 --- a/src/kernel/console/functions/help.c +++ /dev/null @@ -1,57 +0,0 @@ -#include - -#define GEN "[GENERIC]" -#define FS "[FILESYSTEM]" -#define GUI "[GRAPHICS]" -#define PADDING 15 - -FHDR(cmd_help) -{ - extern console_cmd_t commands[]; - extern int cmd_count; - - if (*s == '\0') { - // these are COMMON commands, soon i will split all comands - cprintf(GEN, GFX_YELLOW); - cprintf("\n", white()); - - for (int i = 0; i < cmd_count; i++) { - char buf[128]; - str_copy(buf, " "); - str_append(buf, commands[i].name); - - int name_len = str_len(commands[i].name); - int padding = PADDING - name_len; - for (int p = 0; p < padding && p < 14; p++) { - str_append(buf, " "); - } - - str_append(buf, "- "); - str_append(buf, commands[i].description); - str_append(buf, "\n"); - cprintf(buf, GFX_WHITE); - } - - cprintf("Type 'help ' for details", GFX_GRAY_50); - } else { - // specific commands - const char *p = s; - while (*p == ' ') p++; - - console_cmd_t *cmd = console_find_cmd(p); - if (cmd) { - char buf[128]; - - str_copy(buf, "\n"); - str_append(buf, cmd->description); - cprintf(buf, GFX_WHITE); - - str_copy(buf, "\nUsage: "); - str_append(buf, cmd->usage); - cprintf(buf, GFX_YELLOW); - cprintf("\n", GFX_WHITE); - } else { - cprintf("\nCommand not found", GFX_RED); - } - } -} diff --git a/src/kernel/console/functions/keymap.c b/src/kernel/console/functions/keymap.c deleted file mode 100644 index aee20e8..0000000 --- a/src/kernel/console/functions/keymap.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -FHDR(cmd_keymap) { - if (!s || *s == '\0') { - // Show current keymap - cprintf("you use keymap: ", GFX_WHITE); - cprintf(keymap_get_current_name(), GFX_WHITE); - cprintf("\nuse: keymap \n", GFX_WHITE); - cprintf("\nnote that only DE & US are correctly supported by now.\n", GFX_WHITE); - return; - } - - // parse keymap name - const char *p = s; - while (*p == ' ') p++; - - char keymap_name[16]; - int i = 0; - while (*p && *p != ' ' && *p != '\n' && i < 15) { - keymap_name[i++] = *p++; - } - keymap_name[i] = '\0'; - - // convert to uppercase - str_to_upper(keymap_name); - - // trys to set the keymap - if (keymap_set(keymap_name) != 0) { - cprintf("error: keymap '", GFX_RED); - cprintf(keymap_name, GFX_RED); - cprintf("' not found\n", GFX_RED); - cprintf("try: US, DE\n", GFX_RED); - return; - } - - cprintf("keymap changed to: ", GFX_WHITE); - cprintf(keymap_name, GFX_WHITE); - cprintf("\n", GFX_WHITE); -} diff --git a/src/kernel/console/functions/ls.c b/src/kernel/console/functions/ls.c deleted file mode 100644 index fd6d457..0000000 --- a/src/kernel/console/functions/ls.c +++ /dev/null @@ -1,74 +0,0 @@ -#include -#include - -extern char cwd[]; - -FHDR(cmd_ls) { - const char *path = s; - - // default to cwd if no path given - if (!s || *s == '\0') { - path = cwd; - } - - // resolve the directory - fs_node *dir = fs_resolve(path); - if (!dir) { - cprintf("error: directory not found\n", GFX_RED); - cprintf("use: \"ls /boot\" or \"ls /dev\" or any kind of dir.\n", GFX_RED); - return; - } - - if (dir->type != FS_DIR) { - cprintf("error: not a directory\n", GFX_RED); - return; - } - - // list all children - fs_node *child = dir->children; - if (!child) { - cprintf("this folder is empty \n", GFX_GRAY_50); - return; - } - - int count = 0; - while (child) { - // different colors for different types - u32 color = GFX_WHITE; - const char *type_str = ""; - - if (child->type == FS_DIR) { - color = GFX_BLUE; - type_str = "/"; - color = GFX_WHITE; - } else if (child->type == FS_DEV) { - color = GFX_WHITE; - type_str = "*"; - color = GFX_WHITE; - } - - cprintf(child->name, color); - cprintf(type_str, color); - - // show size for files - /*if (child->type == FS_FILE && child->size > 0) { - char buf[32]; - str_copy(buf, " | "); - str_append_uint(buf, (u32)child->size); - str_append(buf, " bytes"); - cprintf(buf, GFX_GRAY_50); - }*/ - - cprintf(" ", GFX_WHITE); - count++; - if (count % 6 == 0) { - cprintf("\n", GFX_WHITE); - } - - child = child->next; - } - - if (count % 6 != 0) { - cprintf("\n", GFX_WHITE); - } -} diff --git a/src/kernel/console/functions/mkdir.c b/src/kernel/console/functions/mkdir.c deleted file mode 100644 index 047698f..0000000 --- a/src/kernel/console/functions/mkdir.c +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -extern char cwd[]; - -FHDR(cmd_mkdir) { - if (!s || *s == '\0') { - cprintf("usage: mkdir \n", GFX_RED); - return; - } - - char full_path[MAX_PATH_LEN]; - - // Handle absolute vs relative paths - if (s[0] == '/') { - str_copy(full_path, s); - } else { - str_copy(full_path, cwd); - - if (cwd[str_len(cwd) - 1] != '/') { - str_append(full_path, "/"); - } - - str_append(full_path, s); - } - - // Create the directory - if (fs_mkdir(full_path) != 0) { - cprintf("error: could not create directory\n", GFX_RED); - return; - } - - cprintf("directory created: ", GFX_GREEN); - cprintf(full_path, GFX_WHITE); - cprintf("\n", GFX_WHITE); -} diff --git a/src/kernel/console/functions/modules.c b/src/kernel/console/functions/modules.c deleted file mode 100644 index aad43e6..0000000 --- a/src/kernel/console/functions/modules.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include - -FHDR(cmd_modules) -{ - (void)s; // unused - cprintf("Loaded Modules:\n", GFX_WHITE); - - int count = module_get_count(); - - if (count == 0) { - cprintf("No modules loaded\n", GFX_WHITE); - return; - } - - char buf[128]; - for (int i = 0; i < count; i++) { - driver_module *mod = module_get_by_index(i); - if (mod) { - - //cprintf("- ", GFX_WHITE); - //cprintf(mod->name, GFX_GREEN); - - //cprintf(" -> ", GFX_WHITE); - cprintf(mod->mount, GFX_WHITE); - - //i simplified the module printing because its uneccesary - - u32 ver = mod->version; - u32 major = (ver >> 24) & 0xFF; - u32 minor = (ver >> 16) & 0xFF; - u32 patch = (ver >> 8) & 0xFF; - - //actually version is uneccesary too but i let it for now idk - str_copy(buf, " [v"); - str_append_uint(buf, major); - str_append(buf, "."); - str_append_uint(buf, minor); - str_append(buf, "."); - str_append_uint(buf, patch); - str_append(buf, "]"); - cprintf(buf, GFX_GRAY_50); - - cprintf("\n", GFX_WHITE); - } - } - - str_copy(buf, "\nTotal: "); - str_append_uint(buf, count); - str_append(buf, " module(s)"); - cprintf(buf, GFX_WHITE); - //cprintf("\nkeep in mind it will only show all modules if the os has a fs/vfs/memfs", GFX_GRAY_20); -} diff --git a/src/kernel/console/functions/poweroff.c b/src/kernel/console/functions/poweroff.c deleted file mode 100644 index c614da7..0000000 --- a/src/kernel/console/functions/poweroff.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -FHDR(cmd_reboot) -{ - (void)s; - - cursor_disable(); - cprintf("Restarting system...\n", GFX_YELLOW); - - /*for (volatile int i = 0; i < 5000000; i++) - __asm__ volatile("nop");*/ - - cpu_poweroff(POWEROFF_REBOOT); -} - -FHDR(cmd_shutdown) -{ - (void)s; - - cursor_disable(); - cprintf("Shutting down system...\n", GFX_YELLOW); - - /*for (volatile int i = 0; i < 5000000; i++) - __asm__ volatile("nop");*/ - - cpu_poweroff(POWEROFF_SHUTDOWN); -} diff --git a/src/kernel/console/functions/proc.c b/src/kernel/console/functions/proc.c deleted file mode 100644 index f90d6fc..0000000 --- a/src/kernel/console/functions/proc.c +++ /dev/null @@ -1,14 +0,0 @@ -#include - -FHDR(cmd_ps) -{ -#if ENABLE_ULIME && RUNTESTS - if (!proc_mgr) - { - cprintf("proc_mgr not initialized\n", white()); - return; - } - - proc_list_procs(proc_mgr); -#endif -} diff --git a/src/kernel/console/functions/slots.c b/src/kernel/console/functions/slots.c deleted file mode 100644 index b55a5dd..0000000 --- a/src/kernel/console/functions/slots.c +++ /dev/null @@ -1,69 +0,0 @@ -#include -#include -//#include - -// ---- -// NOTE: -// Switching the active boot slot is a low-level operation, -// this directly modifies the boot configuration used by -// the system! -// ---- - -// --- -// this is a test function it will help us wenn updating the kernel -// --- - -FHDR(cmd_slot) -{ - if (!s || str_len(s) == 0) { - char current = readslot(); - - char msg[32] = "current active slot: "; - char slot_str[2]; - slot_str[0] = current; - slot_str[1] = 0; - - str_append(msg, slot_str); - str_append(msg, "\n"); - - cprintf(msg, GFX_GREEN); - return; - } - - if (str_starts_with(s, "set ")) { - - char slot = s[4]; - - if (slot != 'A' && slot != 'B' && - slot != 'a' && slot != 'b') { - cprintf("wrong slot num, use \"A\" or \"B\"\n", GFX_RED); - return; - } - - cprintf("this does currently not switch the real kernel slot!\n", GFX_YELLOW); - - if (slot == 'a') slot = 'A'; - if (slot == 'b') slot = 'B'; - - char current = readslot(); - - if (current == slot) { - cprintf("slot is already active\n", GFX_YELLOW); - return; - } - - if (writeslot(slot) == 0) { - cprintf("switch slot and reboot...\n", GFX_YELLOW); - - for (volatile int i = 0; i < 5000000; i++) - __asm__ volatile("nop"); - - cpu_poweroff(POWEROFF_REBOOT); - } else { - cprintf("failed to switch slot\n", GFX_RED); - } - - return; - } - return; -} diff --git a/src/kernel/console/functions/source.c b/src/kernel/console/functions/source.c deleted file mode 100644 index dd7b231..0000000 --- a/src/kernel/console/functions/source.c +++ /dev/null @@ -1,31 +0,0 @@ -// src/kernel/console/functions/source.c -#include - -FHDR(cmd_source) { - - // reloads the shell - - if (!s || *s == '\0') { - cprintf("usage: source \n", GFX_RED); - return; - } - - if (str_equals(s, "console") || str_equals(s, "console/")) { - uci_reload(); - - reload_console_theme(); - - // Redraw banner - banner_force_update(); - - clear(CONSOLESCREEN_BG_COLOR); - banner_draw(); - console_window_init(); - - cprintf("Console reloaded\n", GFX_GREEN); - //shell_print_prompt(); - return; - } - - cprintf("source: only 'console' is supported\n", GFX_RED); -} diff --git a/src/kernel/console/functions/system.c b/src/kernel/console/functions/system.c deleted file mode 100644 index a46fc25..0000000 --- a/src/kernel/console/functions/system.c +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -#include -#include -#include -#include - -FHDR(cmd_meminfo) -{ - // (void)s; // unused parameter - - // char buf[128]; - - // u64 free = mem_get_free() / 1024; - // u64 used = mem_get_used() / 1024; - // u64 total = mem_get_total() / 1024; - - // str_copy(buf, "Free : "); - // str_append_uint(buf, (u32)(free >> 32)); - // str_append(buf, ":"); - // str_append_uint(buf, (u32)(free)); - // str_append(buf, " KB"); - // print(buf, GFX_GREEN); - - // str_copy(buf, "\nUsed : "); - // str_append_uint(buf, (u32)(used >> 32)); - // str_append(buf, ":"); - // str_append_uint(buf, (u32)(used)); - // str_append(buf, " KB"); - // print(buf, GFX_YELLOW); - - // str_copy(buf, "\nTotal: "); - // str_append_uint(buf, (u32)(total >> 32)); - // str_append(buf, ":"); - // str_append_uint(buf, (u32)(total)); - // str_append(buf, " KB"); - // print(buf, GFX_WHITE); - -} - -void print_res() { - char buf[128]; - str_copy(buf, ""); - str_append_uint(buf, get_fb_width()); - str_append(buf, "x"); - str_append_uint(buf, get_fb_height()); - str_append(buf, "\n"); - cprintf(buf, GFX_WHITE); -} - -void ShowCPUName(){ - const char *cpu_name = cpu_get_brand(); - if (cpu_name[0]) { - cprintf(cpu_name, GFX_WHITE); - } else { - cprintf("Unknown CPU", GFX_WHITE); - } -} - -FHDR(cmd_sysinfo) -{ - (void)s; // unused parameter - - cprintf(" \n", GFX_GREEN); - cprintf(" ###########;m; ", GFX_GREEN); cprintf(PC_NAME, GFX_GREEN); cprintf("@", GFX_GREEN); cprintf(USER_NAME, GFX_GREEN); cprintf("\n", GFX_GREEN); - cprintf(" # #########;m; ---------------\n", GFX_GREEN); //15 characters - cprintf(" # #;m; Kernel: ", GFX_GREEN); cprintf(KERNEL_BARENAME " " KERNEL_DEFRELEASE, GFX_WHITE); cprintf("\n", GFX_WHITE); - cprintf(" # #;m; Resolution: ", GFX_GREEN); print_res(); - cprintf(" # ########;m; Bootloader: ", GFX_GREEN); cprintf("Limine \n", GFX_WHITE); - cprintf(" # ########;m; CPU: ", GFX_GREEN); ShowCPUName(); cprintf("\n", GFX_WHITE); - cprintf(" # #;m; Date: ", GFX_GREEN); GetCMOSDate(); cprintf("\n", GFX_WHITE); - cprintf(" # #;m; Uptime: ", GFX_GREEN); timer_print_uptime(); cprintf("\n", GFX_WHITE); - cprintf(" # #########;m; ---------------\n", GFX_GREEN); - cprintf(" ###########;m; ", GFX_GREEN); - cprintf("^ ", GFX_WHITE); //all colors: - cprintf("^ ", GFX_RED); - cprintf("^ ", GFX_GREEN); - cprintf("^ ", GFX_YELLOW); - cprintf("^ ", GFX_BLUE); - cprintf("^ ", GFX_PURPLE); - cprintf("^ ", GFX_CYAN); - cprintf("^ \n", GFX_BG); //i think nobody will see this xd - cprintf(" ", GFX_GREEN); // empty/new line - -} diff --git a/src/kernel/console/functions/text.c b/src/kernel/console/functions/text.c deleted file mode 100644 index 32e1225..0000000 --- a/src/kernel/console/functions/text.c +++ /dev/null @@ -1,168 +0,0 @@ -#include - -FHDR(cmd_echo) -{ - if (*s == '\0') { - cprintf("\n", GFX_WHITE); - return; - } - - cprintf(s, GFX_WHITE); -} - -FHDR(cmd_clear) -{ - u32 color = CONSOLESCREEN_BG_COLOR; - - /* - if (*s != '\0') { - if (!parse_color(s, &color)) { - cprintf("wrong color\n", GFX_RED); - return; - } - } - */ - - if (*s != '\0') { - return; - } - - shell_clear_screen(color); - banner_force_update(); -} - -FHDR(cmd_fsize) -{ - if (*s == '\0') { - char buf[64]; - str_copy(buf, "Current font size: "); - str_append_uint(buf, font_scale); - cprintf(buf, GFX_WHITE); - return; - } - - // skip spaces - while (*s == ' ') s++; - - // parse number - int size = 0; - while (*s >= '0' && *s <= '9') { - size = size * 10 + (*s - '0'); - s++; - } - - if (size < 1 || size > 4) { - cprintf("Invalid size. Use 1-4\n", GFX_RED); - return; - } - - clear(CONSOLESCREEN_BG_COLOR); - set_font_scale(size); - /*char buf[64]; - str_copy(buf, " Font size set to "); - str_append_uint(buf, size); - cprintf(buf, GFX_GREEN); - */ - clear(CONSOLESCREEN_BG_COLOR); - banner_force_update(); - console_window_update_layout(); - - cursor_x = CONSOLE_PADDING_X; - cursor_y = banner_get_height(); -} - -FHDR(cmd_font) { - if (*s == '\0') { - return; - } - - // Parse font number - const char *p = s; - while (*p == ' ') p++; - - int font_num = 0; - while (*p >= '0' && *p <= '9') { - font_num = font_num * 10 + (*p - '0'); - p++; - } - - if (f_setcontext((font_type_t)font_num) == 0) { - clear(CONSOLESCREEN_BG_COLOR); - banner_force_update(); - cprintf("\n", GFX_GREEN); - } else { - cprintf("use: font ", GFX_RED); - } -} - -FHDR(cmd_cyrillc_sumbol) -{ - (void)s; - cprintf("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\n", GFX_WHITE); - cprintf("абвгдеёжзийклмнопрстуфхцчшщъыьэюя\n", GFX_WHITE); -} - -FHDR(cmd_latin_sumbol) -{ - (void)s; - cprintf("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n", GFX_WHITE); - cprintf("abcdefghijklmnopqrstuvwxyz\n", GFX_WHITE); -} - -FHDR(cmd_all_sumbol) -{ - (void)s; - cprintf("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n", GFX_WHITE); - cprintf("abcdefghijklmnopqrstuvwxyz\n", GFX_WHITE); - cprintf("AEOEUESS: ÄÖÜ äöü ß\n", GFX_WHITE); - cprintf("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\n", GFX_WHITE); - cprintf("абвгдеёжзийклмнопрстуфхцчшщъыьэюя\n", GFX_WHITE); - cprintf("0123456789 !?.,:;+-*/=_()[]{}@#%&$°^\"'<>\\|~`§€\n", GFX_WHITE); - cprintf("«∑€®†Ω¨⁄øπ•±å‚∂ƒ©ªº∆@œæ‘≤¥≈ç√∫~µ∞…–¡“¶¢≠¿'£\n", GFX_WHITE); -} - -/*FHDR(cmd_help) -{ - if (*s == '\0') { - // show all commands - cprintf("[COMMMON]\n", GFX_YELLOW); - cprintf(" echo [text] - echo [text]\n", GFX_WHITE); - cprintf(" clear [color] - clear screen\n", GFX_WHITE); - cprintf(" help [command] - displays this list\n", GFX_WHITE); - cprintf(" scale [1-4] - change screen size\n", GFX_WHITE); - cprintf(" font [0-1] - switch fonts\n", GFX_WHITE); - cprintf(" date - show current date\n", GFX_WHITE); - cprintf(" time - show current time\n", GFX_WHITE); - cprintf(" calendar - show date & time\n", GFX_WHITE); - cprintf(" uptime - displays the uptime\n", GFX_WHITE); - cprintf(" dofetch - emexOS system fetch\n", GFX_WHITE); - cprintf(" cat - show file content\n", GFX_WHITE); - cprintf(" ls - list directory contents\n", GFX_WHITE); - cprintf(" shut - shuts down the system\n", GFX_WHITE); - //cprintf("[SYSTEM]\n", GFX_YELLOW); - cprintf(" meminfo - heap memory information\n", GFX_WHITE); - cprintf(" modules - shows all modules in fs\n", GFX_WHITE); - cprintf("Type 'help ' for details", GFX_GRAY_50); - } else { - // show specific command help - const char *p = s; - while (*p == ' ') p++; - - console_cmd_t *cmd = console_find_cmd(p); - if (cmd) { - char buf[128]; - - str_copy(buf, "\n"); - str_append(buf, cmd->description); - cprintf(buf, GFX_WHITE); - - str_copy(buf, "\nUsage: "); - str_append(buf, cmd->usage); - cprintf(buf, GFX_YELLOW); - cprintf("\n", GFX_WHITE); - } else { - cprintf("\nCommand not found", GFX_RED); - } - } -} -*/ diff --git a/src/kernel/console/functions/touch.c b/src/kernel/console/functions/touch.c deleted file mode 100644 index f1daf15..0000000 --- a/src/kernel/console/functions/touch.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -extern char cwd[]; - -FHDR(cmd_touch) -{ - if (!s || *s == '\0') { - cprintf("usage: touch \n", GFX_RED); - return; - } - - char path[MAX_PATH_LEN]; - - if (s[0] == '/') { - str_copy(path, s); - } else { - str_copy(path, cwd); - if (cwd[str_len(cwd) - 1] != '/') str_append(path, "/"); - str_append(path, s); - } - - int fd = fs_open(path, O_CREAT | O_WRONLY); - if (fd < 0) { - cprintf("error: cannot create file\n", GFX_RED); - return; - } - - fs_close(fd); -} diff --git a/src/kernel/console/functions/tree.c b/src/kernel/console/functions/tree.c deleted file mode 100644 index b0fb2a6..0000000 --- a/src/kernel/console/functions/tree.c +++ /dev/null @@ -1,76 +0,0 @@ -// src/kernel/console/functions/tree.c -#include -#include -extern char cwd[]; - -static void tree_print(fs_node *node, int depth, int is_last) -{ - while (node) - { - // indentation - for (int i = 0; i < depth; i++) { - cprintf("| ", GFX_GRAY_50); - } - - // prefix - if (is_last && !node->next) { - cprintf("`-- ", GFX_GRAY_50); - } else { - cprintf("|-- ", GFX_GRAY_50); - } - - // name + color - u32 color = GFX_WHITE; - const char *suffix = ""; - - if (node->type == FS_DIR) { - color = GFX_BLUE; - suffix = "/"; - } else if (node->type == FS_DEV) { - color = GFX_WHITE; - suffix = "*"; - } - - cprintf(node->name, color); - cprintf(suffix, color); - cprintf("\n", GFX_WHITE); - - // recurse into directories - if (node->type == FS_DIR && node->children) { - tree_print(node->children, depth + 1, !node->next); - } - - node = node->next; - } -} - -FHDR(cmd_tree) -{ - const char *path = s; - - if (!s || *s == '\0') { - path = cwd; - } - - fs_node *dir = fs_resolve(path); - if (!dir) { - cprintf("error: directory not found\n", GFX_RED); - return; - } - - if (dir->type != FS_DIR) { - cprintf("error: not a directory\n", GFX_RED); - return; - } - - // print root - cprintf(dir->name, GFX_BLUE); - cprintf("/\n", GFX_BLUE); - - if (!dir->children) { - cprintf("(empty)\n", GFX_GRAY_50); - return; - } - - tree_print(dir->children, 0, 1); -} diff --git a/src/kernel/console/functions/view.c b/src/kernel/console/functions/view.c deleted file mode 100644 index 9873d6a..0000000 --- a/src/kernel/console/functions/view.c +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include -#include - -FHDR(cmd_view) { - if (!s || *s == '\0') { - cprintf("usage: view \n", GFX_RED); - return; - } - - bmp_image_t img; - if (bmp_load(s, &img) != 0) { - cprintf("error: cannot load image\n", GFX_RED); - return; - } - - //clear(CONSOLESCREEN_BG_COLOR); - - // centers image - u32 x = (get_fb_width() - img.width) / 2; - u32 y = (get_fb_height() - img.height) / 2; - - bmp_draw(&img, x, y); - banner_draw(); - - //cprintf("\nPress any key to continue...\n", GFX_GRAY_50); - - while (1) { - if (keyboard_has_key()) { - key_event_t event; - if (keyboard_get_event(&event) && event.pressed) { - break; - } - } - __asm__ volatile("hlt"); - } - - bmp_free(&img); - //clear(CONSOLESCREEN_BG_COLOR); - banner_draw(); -} diff --git a/src/kernel/console/functions/whoami.c b/src/kernel/console/functions/whoami.c deleted file mode 100644 index 18ed0b3..0000000 --- a/src/kernel/console/functions/whoami.c +++ /dev/null @@ -1,9 +0,0 @@ -// src/kernel/console/functions/whoami.c -#include - -FHDR(cmd_whoami) { - (void)s; - - cprintf(uci_get_user_name(), GFX_WHITE); - cprintf("\n", GFX_WHITE); -} diff --git a/src/kernel/console/graph/dos.c b/src/kernel/console/graph/dos.c deleted file mode 100644 index b08337d..0000000 --- a/src/kernel/console/graph/dos.c +++ /dev/null @@ -1,85 +0,0 @@ -#include "dos.h" -#include "uno.h" -#include -#include - -void console_window_init(void) { - cursor_x = CONSOLE_PADDING_X; - cursor_y = banner_get_height(); -} - -void console_window_clear(u32 color) -{ - u32 fb_w = get_fb_width(); - u32 fb_h = get_fb_height(); - u32 banner_h = banner_get_height(); - - // clear below banner - draw_rect(0, banner_h, fb_w, fb_h - banner_h, color); - //TODO: - // implement real dirty rectangles/ screen clear - - // redraw banner - banner_draw(); - - // reset cursor to console start - cursor_x = CONSOLE_PADDING_X; - cursor_y = banner_h; -} - -u32 console_window_get_start_y(void) { - return banner_get_height(); -} - -u32 console_window_get_max_y(void) { - return get_fb_height(); -} - -void console_window_check_scroll(void) -{ - u32 char_height = fm_get_char_height() * font_scale; - u32 line_height = char_height + 2 * font_scale; - u32 fb_h = get_fb_height(); - u32 banner_h = banner_get_height(); - - // check if cursor is out of screen - if (cursor_y + char_height > fb_h) { - u32 fb_w = get_fb_width(); - u32 pitch_dwords = get_fb_pitch() / 4; - u32 *fb = get_framebuffer(); - u32 bytes_per_row = fb_w * sizeof(u32); - - // fast scroll: copy row-by-row with memcpy instead of pixel loop (huge speedup on amd) - for (u32 y = banner_h + line_height; y < fb_h; y++) { - memcpy(fb + (y - line_height) * pitch_dwords, - fb + y * pitch_dwords, - bytes_per_row); - } - - // clear bottom lines - for (u32 y = fb_h - line_height; y < fb_h; y++) { - u32 *row = fb + y * pitch_dwords; - for (u32 x = 0; x < fb_w; x++) { - row[x] = black();; - } - } - - // move cursor up - cursor_y -= line_height; - - if (cursor_y < banner_h) { - cursor_y = banner_h; - } - } -} - -void console_window_update_layout(void) -{ - //after fsize change - // adjust cursor - u32 banner_h = banner_get_height(); - - if (cursor_y < banner_h) { - cursor_y = banner_h; - } -} diff --git a/src/kernel/console/graph/dos.h b/src/kernel/console/graph/dos.h deleted file mode 100644 index d06bd98..0000000 --- a/src/kernel/console/graph/dos.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef CONSOLE_DOS_H -#define CONSOLE_DOS_H - -#include - -#define CONSOLE_PADDING_X 0 // 15(baner) + 8(font scale) 23 - -void console_window_init(void); -void console_window_clear(u32 color); -u32 console_window_get_start_y(void); -u32 console_window_get_max_y(void); -void console_window_check_scroll(void); -void console_window_update_layout(void); - -//TODO: -// this needs to be remade when we have a window system in usermode - -#endif diff --git a/src/kernel/console/graph/print.h b/src/kernel/console/graph/print.h deleted file mode 100644 index 28eff0a..0000000 --- a/src/kernel/console/graph/print.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef CPRINT_H -#define CPRINT_H - -#include -#include - -void cprintf(const char *str, u32 color); - -#endif diff --git a/src/kernel/console/graph/uno.c b/src/kernel/console/graph/uno.c deleted file mode 100644 index 31e3132..0000000 --- a/src/kernel/console/graph/uno.c +++ /dev/null @@ -1,173 +0,0 @@ -#include "uno.h" -#include -#include -#include -#include -#include - -#include - -static u32 banner_y = 0; -static u32 banner_y_s = BANNER_Y_SPACING; -static u8 last_second = 0; -static u8 needs_update = 1; -static u32 current_banner_height = 0;//BANNER_HEIGHT; - -// forward declaration -static void banner_timer_callback(void); - -void banner_init(void) -{ - banner_y = 0; - banner_y_s = BANNER_Y_SPACING; - last_second = 0; - needs_update = 1; - //current_banner_height = BANNER_HEIGHT; - - u32 char_height = fm_get_char_height() * font_scale; - current_banner_height = char_height + (banner_y_s * 2); - - timer_register_callback(banner_timer_callback); - banner_draw(); -} - -void banner_draw(void) -{ - u32 fb_w = get_fb_width(); - - // based on font scale - u32 char_height = fm_get_char_height() * font_scale; - u32 o_cursor_x = cursor_x; - u32 o_cursor_y = cursor_y; - u32 o_scale = font_scale; - current_banner_height = char_height + (banner_y_s * 2); - - // draw background (in future moved to the wm) - draw_rect(0, banner_y, fb_w, current_banner_height, BANNER_BG_COLOR); - draw_rect(0, banner_y + current_banner_height - font_scale, fb_w, font_scale, BANNER_BORDER_COLOR); - - // use current screen_scale for banner - - cursor_x = 4; - cursor_y = banner_y + banner_y_s; - - const char *os_name = KERNEL_VERSION; - for (int i = 0; os_name[i]; i++) { - putchar(os_name[i], BANNER_TEXT_COLOR); - } - - // centered = "console" - // TODO: - // should be called after the current app - const char *center_text = CONSOLE_APP_NAME; - int text_width = str_len(center_text) * (fm_get_char_width() * font_scale); - cursor_x = (fb_w - text_width) / 2; - cursor_y = banner_y + banner_y_s; - - for (int i = 0; center_text[i]; i++) { - putchar(center_text[i], BANNER_TEXT_COLOR); - } - - // right side = Date & Time - banner_update_time(); - - // restore cursor and scale from before - font_scale = o_scale; - cursor_x = o_cursor_x; - cursor_y = o_cursor_y; - - needs_update = 0; -} - -void banner_update_time(void) -{ - u32 fb_w = get_fb_width(); - u32 o_cursor_x = cursor_x; - u32 o_cursor_y = cursor_y; - u32 o_scale = font_scale; - - // based on screen scale - - cmos_time_t time; - cmos_read_time(&time); - - char time_buf[32]; - str_copy(time_buf, ""); - - // date as DD/MM/YY - if (time.month < 10) str_append(time_buf, "0"); - str_append_uint(time_buf, time.month); - str_append(time_buf, "/"); - if (time.day < 10) str_append(time_buf, "0"); - str_append_uint(time_buf, time.day); - str_append(time_buf, "/"); - if (time.year < 10) str_append(time_buf, "0"); - str_append_uint(time_buf, time.year); - //TODO: - // in future it will be a programm from functions/cmos.c - - str_append(time_buf, " "); - - // time in HH:MM:SS - if (time.hour < 10) str_append(time_buf, "0"); - str_append_uint(time_buf, time.hour); - str_append(time_buf, ":"); - if (time.minute < 10) str_append(time_buf, "0"); - str_append_uint(time_buf, time.minute); - str_append(time_buf, ":"); - if (time.second < 10) str_append(time_buf, "0"); - str_append_uint(time_buf, time.second); - //same for here its from cmos.c - - int text_len = str_len(time_buf); - int text_pixel_width = text_len * (fm_get_char_width() * font_scale); - - u32 char_height = fm_get_char_height() * font_scale; - draw_rect(fb_w - text_pixel_width - 8, banner_y, text_pixel_width + 8, current_banner_height, BANNER_BG_COLOR); - - cursor_x = fb_w - text_pixel_width - 4; - cursor_y = banner_y + banner_y_s; - - for (int i = 0; time_buf[i]; i++) { - putchar(time_buf[i], BANNER_TEXT_COLOR); - } - - //otherwise the time banner will overwrite the line - draw_rect(fb_w - text_pixel_width - 8, banner_y + current_banner_height - font_scale, - text_pixel_width + 8, font_scale, BANNER_BORDER_COLOR); - - font_scale = o_scale; - cursor_x = o_cursor_x; - cursor_y = o_cursor_y; -} - -// private timer callback (c static) -static void banner_timer_callback(void) -{ - cmos_time_t time; - cmos_read_time(&time); - - if (time.second != last_second) { - last_second = time.second; - needs_update = 1; - } - if (needs_update) { - banner_update_time(); - needs_update = 0; - } -} - -void banner_tick(void) { - // This function still exists due compatibility - // i don't want to rename it in other functions too - banner_timer_callback(); -} - -void banner_force_update(void) { - needs_update = 1; - banner_draw(); -} - -u32 banner_get_height(void) { - return current_banner_height; -} diff --git a/src/kernel/console/graph/uno.h b/src/kernel/console/graph/uno.h deleted file mode 100644 index ba2dff8..0000000 --- a/src/kernel/console/graph/uno.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef CONSOLE_UNO_H -#define CONSOLE_UNO_H - -#include -#include -#include - -//#define BANNER_HEIGHT 15 -#define BANNER_Y_SPACING 4 // vertical spacing -#define BANNER_BG_COLOR GFX_GRAY_20 // bar background -#define BANNER_BORDER_COLOR GFX_GRAY_40 // border bottom -#define BANNER_TEXT_COLOR CONSOLESCREEN_COLOR // White text -#define BANNER_UPDATE_INTERVAL 60 - -void banner_init(void); -void banner_draw(void); -void banner_update_time(void); -void banner_tick(void); // called from timer -void banner_force_update(void); // force update -u32 banner_get_height(void); - -#endif diff --git a/src/kernel/console/parser.c b/src/kernel/console/parser.c deleted file mode 100644 index 90e646f..0000000 --- a/src/kernel/console/parser.c +++ /dev/null @@ -1,93 +0,0 @@ -#include - -// parse color argument if provided -int parse_color(const char *color_str, u32 *out_color) { - if (!color_str || !out_color) return 0; - - const char *p = color_str; - while (*p == ' ') p++; - - // simple color name parsing - if (*p == 'b' && *(p+1) == 'l' && *(p+2) == 'a' && *(p+3) == 'c' && *(p+4) == 'k' && *(p+5) == '\0') { - *out_color = GFX_BLACK; - return 1; - } else if (*p == 'w' && *(p+1) == 'h' && *(p+2) == 'i' && *(p+3) == 't' && *(p+4) == 'e' && *(p+5) == '\0') { - *out_color = GFX_WHITE; - return 1; - } else if (*p == 'r' && *(p+1) == 'e' && *(p+2) == 'd' && *(p+3) == '\0') { - *out_color = GFX_RED; - return 1; - } else if (*p == 'g' && *(p+1) == 'r' && *(p+2) == 'e' && *(p+3) == 'e' && *(p+4) == 'n' && *(p+5) == '\0') { - *out_color = GFX_GREEN; - return 1; - } else if (*p == 'b' && *(p+1) == 'l' && *(p+2) == 'u' && *(p+3) == 'e' && *(p+4) == '\0') { - *out_color = GFX_BLUE; - return 1; - } else if (*p == 'c' && *(p+1) == 'y' && *(p+2) == 'a' && *(p+3) == 'n' && *(p+4) == '\0') { - *out_color = GFX_CYAN; - return 1; - } else if (*p == 'y' && *(p+1) == 'e' && *(p+2) == 'l' && *(p+3) == 'l' && *(p+4) == 'o' && *(p+5) == 'w' && *(p+6) == '\0') { - *out_color = GFX_YELLOW; - return 1; - } else if (*p == 'p' && *(p+1) == 'u' && *(p+2) == 'r' && *(p+3) == 'p' && *(p+4) == 'l' && *(p+5) == 'e' && *(p+6) == '\0') { - *out_color = GFX_PURPLE; - return 1; - } - - return 0; -} - -// split input in && then execute the commands -void parse_and_execute_chained(const char *input) { - if (!input || *input == '\0') return; - - char commands[MAX_CHAINED_CMDS][MAX_INPUT_LEN]; - int cmd_count = 0; - int cmd_pos = 0; - - const char *p = input; - - // split input in && - while (*p && cmd_count < MAX_CHAINED_CMDS) { - while (*p == ' ') p++; // space after/ before && - - // copy command until && or end - cmd_pos = 0; - while (*p && cmd_pos < MAX_INPUT_LEN - 1) { - if (*p == '&' && *(p+1) == '&') { // == && - commands[cmd_count][cmd_pos] = '\0'; - cmd_count++; - p += 2; - break; - } - commands[cmd_count][cmd_pos++] = *p++; - } - - // if last command is or buffer is full - if (*p == '\0' || cmd_pos >= MAX_INPUT_LEN - 1) { - commands[cmd_count][cmd_pos] = '\0'; - cmd_count++; - break; - } - } - - // execute all commands - for (int i = 0; i < cmd_count; i++) { - //trailing - int len = 0; - while (commands[i][len]) len++; - len--; - while (len >= 0 && commands[i][len] == ' ') { - commands[i][len] = '\0'; - len--; - } - - if (commands[i][0] != '\0') { - console_execute(commands[i]); - if (i < cmd_count - 1) { - print("\n", GFX_WHITE); - } - - } - } -} diff --git a/src/kernel/console/promtinit.c b/src/kernel/console/promtinit.c deleted file mode 100644 index 8f77b1f..0000000 --- a/src/kernel/console/promtinit.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "console.h" -#include - -// i wont delete this function due to compatibility reasons -void console_config_init(void) { - console_init_gen(); -} diff --git a/src/kernel/console/shell_screen.c b/src/kernel/console/shell_screen.c deleted file mode 100644 index 61222c7..0000000 --- a/src/kernel/console/shell_screen.c +++ /dev/null @@ -1,108 +0,0 @@ -#include "console.h" -//#include "graph/uno.h" -//#include "graph/dos.h" -#include - -void shell_clear_screen(u32 color) -{ - - console_window_clear(color); -} - -static conf_entry_t prompt_conf[16]; -static int prompt_conf_count = 0; - -void shell_load_prompt_config(void) { - prompt_conf_count = conf_load("/.config/ekmsh/prompt.cfg", - prompt_conf, 16); -} - -extern char cwd[]; - -/*void shell_print_prompt(void) -{ - - string("\n", GFX_WHITE); - string(user_config_get_pc_name(), GFX_WHITE); - string("@", GFX_WHITE); - string(user_config_get_user_name(), GFX_WHITE); - //string("\x01 ", GFX_YELLOW); - string(":", GFX_WHITE); - if (str_len(cwd) > 1 && cwd[str_len(cwd) - 1] == '/') { - char prompt_cwd[MAX_PATH_LEN]; - str_copy(prompt_cwd, cwd); - prompt_cwd[str_len(cwd) - 1] = '\0'; - string(prompt_cwd, GFX_WHITE); - } - string("# ", GFX_BLUE); -}*/ - -void shell_print_prompt(void) -{ - // emexOS will be the directory if we have a file system - - // in future it should be like: - /* - * string("\n", GFX_WHITE); - * string(variable, GFX_PURPLE); // variable is the current dir - * string(" > ", GFX_WHITE); - */ - // - - if (prompt_conf_count <= 0) { - shell_load_prompt_config(); - } - - const char *format = conf_get(prompt_conf, prompt_conf_count, "format"); - - if (!format) { - //printf("using standard"); - cprintf("\n[", white()); - cprintf(uci_get_pc_name(), white()); - cprintf("@", white()); - cprintf(uci_get_user_name(), white()); - cprintf("]", white()); - - if (str_len(cwd) > 1 && cwd[str_len(cwd) - 1] == '/') { - char prompt_cwd[MAX_PATH_LEN]; - str_copy(prompt_cwd, cwd); - prompt_cwd[str_len(cwd) - 1] = '\0'; - cprintf(prompt_cwd, white()); - } else { - cprintf(cwd, white()); - } - - cprintf("# ", GFX_BLUE); - return; - } - - cprintf("\n", white()); - - for (const char *p = format; *p; p++) { - if (*p == '%') { - p++; - if (*p == 'u') cprintf(uci_get_user_name(), white()); - else if (*p == 'h') cprintf(uci_get_pc_name(), white()); - else if (*p == 'w') { - if (str_len(cwd) > 1 && cwd[str_len(cwd) - 1] == '/') { - char prompt_cwd[MAX_PATH_LEN]; - str_copy(prompt_cwd, cwd); - prompt_cwd[str_len(cwd) - 1] = '\0'; - cprintf(prompt_cwd, white()); - } else { - cprintf(cwd, white()); - } - } - else if (*p == '%') cprintf("%", white()); - } else { - char c[2] = {*p, '\0'}; - cprintf(c, white()); - } - } -} - -void shell_redraw_input(void) -{ - // for future use: redraw current input line - // useful when implementing line editing features (programms) -} diff --git a/src/kernel/devices/tty/tty0.c b/src/kernel/devices/tty/tty0.c index 473873e..36c522f 100644 --- a/src/kernel/devices/tty/tty0.c +++ b/src/kernel/devices/tty/tty0.c @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include #include diff --git a/src/kernel/graph/draw.c b/src/kernel/graph/draw.c index ac954ab..a41d23e 100644 --- a/src/kernel/graph/draw.c +++ b/src/kernel/graph/draw.c @@ -3,11 +3,11 @@ void draw_rect(u32 x, u32 y, u32 width, u32 height, u32 color) { - for (u32 dy = 0; dy < height; dy++) - { - for (u32 dx = 0; dx < width; dx++) - { - putpixel(x + dx, y + dy, color); + u32 pitch_dwords = fb_pitch / 4; + for (u32 dy = 0; dy < height; dy++) { + u32 *row = framebuffer + (y + dy) * pitch_dwords + x; + for (u32 dx = 0; dx < width; dx++) { + row[dx] = color; } } } diff --git a/src/kernel/graph/graphics.c b/src/kernel/graph/graphics.c index d873b5d..6d0e708 100644 --- a/src/kernel/graph/graphics.c +++ b/src/kernel/graph/graphics.c @@ -73,9 +73,12 @@ void scroll_up(u32 lines) // clear bottom lines for (u32 y = fb_height - pixels_to_scroll; y < fb_height; y++) { u32 *row = framebuffer + y * pitch_dwords; - for (u32 x = 0; x < fb_width; x++) { - //framebuffer[y * pitch_dwords + x] = bg(); - row[x] = bg_color; + if (bg_color == 0) { + memset(row, 0, bytes_per_row); + } else { + for (u32 x = 0; x < fb_width; x++) { + row[x] = bg_color; + } } } } diff --git a/src/kernel/graph/theme.h b/src/kernel/graph/theme.h index 5270c6c..be85a99 100644 --- a/src/kernel/graph/theme.h +++ b/src/kernel/graph/theme.h @@ -1,74 +1,4 @@ -#ifndef THEME_H -#define THEME_H +#pragma once #include - -#ifdef __cplusplus -extern "C" { -#endif - -// theme types -typedef enum { - THEME_STD = 0, - THEME_FLU = 1 -} ThemeType; -//context types -typedef enum { - THEME_BOOTUP = 0, - THEME_CONSOLE = 1, - THEME_PANIC = 2 -} ThemeContext; - -// unified naming -typedef enum { - COLOR_BLACK = 0, - COLOR_BG, - COLOR_RED, - COLOR_GREEN, - COLOR_YELLOW, - COLOR_BLUE, - COLOR_PURPLE, - COLOR_CYAN, - COLOR_WHITE -} ThemeColor; -typedef struct { - u32 BLACK; - u32 BG; - u32 RED; - u32 GREEN; - u32 YELLOW; - u32 BLUE; - u32 PURPLE; - u32 CYAN; - u32 WHITE; -} ThemeColors; - - -void theme_init(); -void setcontext(ThemeContext context); -ThemeContext getcontext(); - -void sbootup_theme(ThemeType type); -//void sconsole_theme(ThemeType type); -void spanic_theme(ThemeType type); -void reload_console_theme(void); - -u32 get_color(ThemeColor color); - - -// current colors from theme -u32 black(); -u32 bg(); -u32 red(); -u32 green(); -u32 yellow(); -u32 blue(); -u32 purple(); -u32 cyan(); -u32 white(); - -#ifdef __cplusplus -} -#endif - -#endif +#include diff --git a/src/kernel/inits/console/config.c b/src/kernel/inits/console/config.c index 608f73c..301cecd 100644 --- a/src/kernel/inits/console/config.c +++ b/src/kernel/inits/console/config.c @@ -1,9 +1,9 @@ #include "gen.h" -#include +//#include void running_console_config_init(void) { - int fd = fs_open("/.config/ekmsh/con.cfg", O_CREAT | O_WRONLY); // get read by graph/theme + int fd = fs_open(CONSOLECONFIG "/con.cfg", O_CREAT | O_WRONLY); // get read by graph/theme if (fd >= 0) { const char *Cconfiguration = "CONSOLE_PROG: \"ekmsh\"\n" diff --git a/src/kernel/inits/console/gen.c b/src/kernel/inits/console/gen.c index 7822920..2c20586 100644 --- a/src/kernel/inits/console/gen.c +++ b/src/kernel/inits/console/gen.c @@ -1,6 +1,8 @@ #include "gen.h" -#include +//#include + +char cwd[MAX_PATH_LEN] = "/"; void console_init_gen(void) { promptdirs(); diff --git a/src/kernel/inits/console/gen.h b/src/kernel/inits/console/gen.h index 7a72304..1026d06 100644 --- a/src/kernel/inits/console/gen.h +++ b/src/kernel/inits/console/gen.h @@ -1,9 +1,24 @@ #ifndef GEN_H #define GEN_H +#include +#include_next + #define CONSOLECONFIG "/.config/ekmsh" #define PROMPT_PATH "/.config/ekmsh/prompt.cfg" +#define MAX_INPUT_LEN 256 +#define MAX_PATH_LEN 256 +#define MAX_CMDS 32 +#define MAX_CHAINED_CMDS 8 + +#define CONSOLE_APP_NAME "console" +#define CONSOLE_WINDOW "w1" +#define CONSOLE_NAME "ekmsh" // emex-kernelmode-shell +#define WRONG_COMMAND_CL GFX_RED + +extern char cwd[MAX_PATH_LEN]; + void promptdirs(void); void promptcont(void); void console_init_gen(void); diff --git a/src/kernel/inits/console/prompt.c b/src/kernel/inits/console/prompt.c index 227acf1..c98d766 100644 --- a/src/kernel/inits/console/prompt.c +++ b/src/kernel/inits/console/prompt.c @@ -1,6 +1,6 @@ #include "gen.h" -#include +//#include void promptdirs(void) { diff --git a/src/kernel/inits/console/theme.c b/src/kernel/inits/console/theme.c index 5b6ce70..10c15d8 100644 --- a/src/kernel/inits/console/theme.c +++ b/src/kernel/inits/console/theme.c @@ -1,10 +1,10 @@ #include "gen.h" -#include +//#include void init_consoletheme(void) { - int fd = fs_open("/.config/ekmsh/theme.cfg", O_CREAT | O_WRONLY); // get read by graph/theme + int fd = fs_open(CONSOLECONFIG "/theme.cfg", O_CREAT | O_WRONLY); // get read by graph/theme if (fd >= 0) { const char *default_theme = "# use: 0xAARRGGBB\n" diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 14210f5..cb6d6e5 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -66,10 +66,13 @@ klime_t *klime = NULL; #include #include #include + #include + #include scheduler_t *scheduler = NULL; #define SCHEDQUANT 20 proc_manager_t *proc_mgr = NULL; ulime_t *ulime = NULL; + mt_t *mt = NULL; #endif //vFS & fs & disk @@ -107,8 +110,9 @@ void _start(void) // emexOS start // Ensure that Limine base revision is supported and that we have a framebuffer if (framebuffer_request.response == NULL || - framebuffer_request.response->framebuffer_count < 1) { - printf("no response"); + framebuffer_request.response->framebuffer_count < 1) + { + printf("no response"); hcf(); // enable text mode } @@ -121,7 +125,6 @@ void _start(void) cursor_x = 0; cursor_y = 0; font_scale = 1; - f_setcontext(FONT_8X8); clear(bg()); BOOTUP_PRINT("\n\n ======================\n", white()); @@ -129,14 +132,12 @@ void _start(void) BOOTUP_PRINT("emexOS", cyan()); BOOTUP_PRINT("! |\n", white()); BOOTUP_PRINT(" ======================\n\n", white()); - delay(2); #if BOOTUP_VISUALS == 1 log("[BOOT]", "BOOTUP_VISUALS == 1\n", warning); #else log("[BOOT]", "BOOTUP_VISUALS == 0\n", warning); #endif - delay(3); //actually not needed but maybe later (e.g. for testing themes) //draw_rect(10, 10, fb_width - 20, fb_height - 20, blue()); @@ -210,6 +211,14 @@ void _start(void) scheduler = scheduler_init(ulime, SCHEDQUANT); proc_mgr = proc_mng_init(ulime); + mt = (mt_t*)klime_create(ulime->klime, sizeof(mt_t)); + if (mt) { + mt_init(mt, scheduler, ulime); + //log("[MT]", "multitasking initialized\n", d); + //ipc_init(); + //ipc_test(); + } + if (scheduler) { char buf[32]; str_append_uint(buf, SCHEDQUANT); @@ -221,6 +230,13 @@ void _start(void) log("[PROCMGR]", "initialized\n", d); } + init_ipc: + { + ipc_messages_init(); + ipc_shm_init(); + //ipc_test(); + }; + syscall_arch_init(); // SYSCALL/SYSRET _init_syscalls_table(ulime); } @@ -313,10 +329,8 @@ void _start(void) // Register driver modules log("[MOD]", "Init regs:\n", d); - #if ENABLE_ATA + //module_register(&console_module); module_register(&ata_module); - #endif - module_register(&console_module); module_register(&null_module); module_register(&zero_module); module_register(&fb0_module); diff --git a/src/kernel/console/graph/print.c b/src/kernel/kernel_processes/bootscreen/console/console.c similarity index 64% rename from src/kernel/console/graph/print.c rename to src/kernel/kernel_processes/bootscreen/console/console.c index c2098ba..0c36ec9 100644 --- a/src/kernel/console/graph/print.c +++ b/src/kernel/kernel_processes/bootscreen/console/console.c @@ -1,7 +1,6 @@ -#include "print.h" +#include "console.h" -// console print void cprintf(const char *str, u32 color) { string(str, color); -} +} \ No newline at end of file diff --git a/src/kernel/kernel_processes/bootscreen/console/console.h b/src/kernel/kernel_processes/bootscreen/console/console.h new file mode 100644 index 0000000..b593e2e --- /dev/null +++ b/src/kernel/kernel_processes/bootscreen/console/console.h @@ -0,0 +1,6 @@ +#pragma once + +#include +//#include "../print.h" + +void cprintf(const char *str, u32 color); \ No newline at end of file diff --git a/src/kernel/kernel_processes/bootscreen/log.c b/src/kernel/kernel_processes/bootscreen/log.c index 4d8ce90..86c3025 100644 --- a/src/kernel/kernel_processes/bootscreen/log.c +++ b/src/kernel/kernel_processes/bootscreen/log.c @@ -23,121 +23,125 @@ static u32 get_log_color(log_level_t level) { void log_message(const char *tag, const char *message, log_level_t level) { if (!tag || !message) return; - u32 msg_color = get_log_color(level); + #if BOOTUP_VISUALS == 0 - // gray - //print("[", LCOLOR_BRACKET); - print(tag, LCOLOR_TAG); - print(" ", LCOLOR_BRACKET); + u32 msg_color = get_log_color(level); - print(message, msg_color); - //printf("%s %s", tag, message); + // gray + //print("[", LCOLOR_BRACKET); + print(tag, LCOLOR_TAG); + print(" ", LCOLOR_BRACKET); + + print(message, msg_color); + //printf("%s %s", tag, message); + #endif } void log_printf(log_level_t level, const char *tag, const char *format, ...) { if (!tag || !format) return; - u32 msg_color = get_log_color(level); - - // gray - //print("[", LCOLOR_BRACKET); - print(tag, LCOLOR_TAG); - print(" ", LCOLOR_BRACKET); - - - - va_list args; - va_start(args, format); - char buffer[512]; - int pos = 0; - - // formated string - for (const char *p = format; *p && pos < 511; p++) { - if (*p == '%' && *(p + 1)) { - p++; - switch (*p) { - case 's': { - const char *s = va_arg(args, const char*); - if (s) { - while (*s && pos < 511) { - buffer[pos++] = *s++; - } - } - break; - } - case 'd': - case 'i': { - int val = va_arg(args, int); - char num_buf[32]; - str_from_int(num_buf, val); - for (char *n = num_buf; *n && pos < 511; n++) { - buffer[pos++] = *n; - } - break; - } - case 'u': { - u32 val = va_arg(args, u32); - char num_buf[32]; - num_buf[0] = '\0'; - str_append_uint(num_buf, val); - for (char *n = num_buf; *n && pos < 511; n++) { - buffer[pos++] = *n; - } - break; - } - case 'x': - case 'X': { - u32 val = va_arg(args, u32); - char hex_buf[16]; - int hex_pos = 0; - if (val == 0) { - hex_buf[hex_pos++] = '0'; - } else { - u32 temp = val; - while (temp > 0 && hex_pos < 15) { - int digit = temp % 16; - hex_buf[hex_pos++] = (digit < 10) ? ('0' + digit) : ('a' + digit - 10); - temp /= 16; - } - } - hex_buf[hex_pos] = '\0'; - // reverse hex string - for (int i = hex_pos - 1; i >= 0 && pos < 511; i--) { - buffer[pos++] = hex_buf[i]; - } - break; - } - case 'c': { - char c = (char)va_arg(args, int); - if (pos < 511) { - buffer[pos++] = c; - } - break; - } - case '%': { - if (pos < 511) { - buffer[pos++] = '%'; - } - break; - } - default: - if (pos < 511) { - buffer[pos++] = '%'; - } - if (pos < 511) { - buffer[pos++] = *p; - } - break; - } - } else { - buffer[pos++] = *p; - } - } - - buffer[pos] = '\0'; - va_end(args); - - - - print(buffer, msg_color); - //printf("%s", buffer); + #if BOOTUP_VISUALS == 0 + + u32 msg_color = get_log_color(level); + + // gray + //print("[", LCOLOR_BRACKET); + print(tag, LCOLOR_TAG); + print(" ", LCOLOR_BRACKET); + + va_list args; + va_start(args, format); + char buffer[512]; + int pos = 0; + + // formated string + for (const char *p = format; *p && pos < 511; p++) { + if (*p == '%' && *(p + 1)) { + p++; + switch (*p) { + case 's': { + const char *s = va_arg(args, const char*); + if (s) { + while (*s && pos < 511) { + buffer[pos++] = *s++; + } + } + break; + } + case 'd': + case 'i': { + int val = va_arg(args, int); + char num_buf[32]; + str_from_int(num_buf, val); + for (char *n = num_buf; *n && pos < 511; n++) { + buffer[pos++] = *n; + } + break; + } + case 'u': { + u32 val = va_arg(args, u32); + char num_buf[32]; + num_buf[0] = '\0'; + str_append_uint(num_buf, val); + for (char *n = num_buf; *n && pos < 511; n++) { + buffer[pos++] = *n; + } + break; + } + case 'x': + case 'X': { + u32 val = va_arg(args, u32); + char hex_buf[16]; + int hex_pos = 0; + if (val == 0) { + hex_buf[hex_pos++] = '0'; + } else { + u32 temp = val; + while (temp > 0 && hex_pos < 15) { + int digit = temp % 16; + hex_buf[hex_pos++] = (digit < 10) ? ('0' + digit) : ('a' + digit - 10); + temp /= 16; + } + } + hex_buf[hex_pos] = '\0'; + // reverse hex string + for (int i = hex_pos - 1; i >= 0 && pos < 511; i--) { + buffer[pos++] = hex_buf[i]; + } + break; + } + case 'c': { + char c = (char)va_arg(args, int); + if (pos < 511) { + buffer[pos++] = c; + } + break; + } + case '%': { + if (pos < 511) { + buffer[pos++] = '%'; + } + break; + } + default: + if (pos < 511) { + buffer[pos++] = '%'; + } + if (pos < 511) { + buffer[pos++] = *p; + } + break; + } + } else { + buffer[pos++] = *p; + } + } + + buffer[pos] = '\0'; + va_end(args); + + + + print(buffer, msg_color); + //printf("%s", buffer); + #endif } diff --git a/src/kernel/kernel_processes/bootscreen/print.c b/src/kernel/kernel_processes/bootscreen/print.c index fddb00c..944786c 100644 --- a/src/kernel/kernel_processes/bootscreen/print.c +++ b/src/kernel/kernel_processes/bootscreen/print.c @@ -4,7 +4,7 @@ #include //#include -#include +//#include // made by Dexoron Feb. 18, 2026 // Decode one UTF-8 sequence and return pointer to next byte. @@ -102,45 +102,67 @@ static const char *utf8_next_codepoint(const char *p, u32 *codepoint) static void putchar_at(u32 codepoint, u32 x, u32 y, u32 color) { - u32 char_width = fm_get_char_width(); + u32 char_width = fm_get_char_width(); u32 char_height = fm_get_char_height(); - u32 row_bytes = fm_get_glyph_row_bytes(); - u32 lsb_left = fm_get_glyph_lsb_left(); + u32 row_bytes = fm_get_glyph_row_bytes(); + u32 lsb_left = fm_get_glyph_lsb_left(); + u32 pitch_dwords = fb_pitch / 4; + u32 bg_color = bg(); const u8 *glyph = fm_get_glyph_cp(codepoint); if (!glyph) return; + for (u32 dy = 0; dy < char_height; dy++) { - u32 row = 0; + u32 row_bits = 0; const u8 *row_ptr = glyph + (dy * row_bytes); if (row_bytes == 1) { - row = row_ptr[0]; + row_bits = row_ptr[0]; } else if (row_bytes == 2) { - row = (u32)((u16)row_ptr[0] | ((u16)row_ptr[1] << 8)); + row_bits = (u32)row_ptr[0] | ((u32)row_ptr[1] << 8); } else if (row_bytes == 4) { - row = (u32)row_ptr[0] | - ((u32)row_ptr[1] << 8) | - ((u32)row_ptr[2] << 16) | - ((u32)row_ptr[3] << 24); + row_bits = (u32)row_ptr[0] | ((u32)row_ptr[1] << 8) | + ((u32)row_ptr[2] << 16) | ((u32)row_ptr[3] << 24); } else { return; } - for (u32 dx = 0; dx < char_width; dx++) - { - u32 bit_index = lsb_left ? dx : ((char_width - 1u) - dx); - if (row & (1u << bit_index)) - { - for (u32 sy = 0; sy < font_scale; sy++) { - for (u32 sx = 0; sx < font_scale; sx++) { - putpixel(x + dx * font_scale + sx, y + dy * font_scale + sy, color); - } + for (u32 sy = 0; sy < font_scale; sy++) { + u32 *fb_row = framebuffer + (y + dy * font_scale + sy) * pitch_dwords + x; + for (u32 dx = 0; dx < char_width; dx++) { + u32 bit_index = lsb_left ? dx : ((char_width - 1u) - dx); + u32 pixel_color = (row_bits & (1u << bit_index)) ? color : bg_color; + for (u32 sx = 0; sx < font_scale; sx++) { + fb_row[dx * font_scale + sx] = pixel_color; } } } } } +static void bs_scroll(u32 line_height) { + u32 fb_w = get_fb_width(); + u32 fb_h = get_fb_height(); + u32 pitch_dwords = get_fb_pitch() / 4; + u32 *fb = get_framebuffer(); + u32 bytes_per_row = fb_w * sizeof(u32); + + // shift everything up by line_height rows + for (u32 y = line_height; y < fb_h; y++) { + memcpy(fb + (y - line_height) * pitch_dwords, + fb + y * pitch_dwords, + bytes_per_row); + } + + // clear bottom lines + u32 clear_start = fb_h - line_height; + u32 *first_clear_row = fb + clear_start * pitch_dwords; + for (u32 x = 0; x < fb_w; x++) first_clear_row[x] = 0xFF000000; + for (u32 y = clear_start + 1; y < fb_h; y++) { + memcpy(fb + y * pitch_dwords, first_clear_row, bytes_per_row); + } +} + static void putcodepoint(u32 codepoint, u32 color) { u32 char_width = fm_get_char_width() * font_scale; @@ -152,7 +174,10 @@ static void putcodepoint(u32 codepoint, u32 color) { cursor_x = 0; cursor_y += line_height; - console_window_check_scroll(); + if (cursor_y + char_height > fb_height) { + bs_scroll(line_height); + cursor_y -= line_height; + } return; } @@ -160,11 +185,12 @@ static void putcodepoint(u32 codepoint, u32 color) { cursor_x = 0; cursor_y += line_height; - console_window_check_scroll(); + if (cursor_y + char_height > fb_height) { + bs_scroll(line_height); + cursor_y -= line_height; + } } - console_window_check_scroll(); - putchar_at(codepoint, cursor_x, cursor_y, color); cursor_x += char_spacing; } @@ -241,15 +267,19 @@ void IntToString(int value, char *buffer) void printInt(int value, u32 color) { - char buffer[12]; - IntToString(value, buffer); - string(buffer, color); + #if BOOTUP_VISUALS == 0 + char buffer[12]; + IntToString(value, buffer); + string(buffer, color); + #endif } void print(const char *str, u32 color) { - string(str, color); - //putchar('\n', color); + #if BOOTUP_VISUALS == 0 + string(str, color); + //putchar('\n', color); + #endif } void reset_cursor(void) diff --git a/src/kernel/kernel_processes/bootscreen/print.h b/src/kernel/kernel_processes/bootscreen/print.h index a1a9829..5f29982 100644 --- a/src/kernel/kernel_processes/bootscreen/print.h +++ b/src/kernel/kernel_processes/bootscreen/print.h @@ -3,6 +3,8 @@ #include +#include "console/console.h" + void putchar_bootstrap(char c, u32 color); void printbs(const char *str, u32 color); @@ -11,6 +13,7 @@ void putchar(char c, u32 color); void string(const char *str, u32 color); void print(const char *str, u32 color); void printInt(int value, u32 color); +//void cprintf(const char *str, u32 color); void reset_cursor(void); diff --git a/src/kernel/kernel_processes/bootscreen/print_b.c b/src/kernel/kernel_processes/bootscreen/print_b.c index a60baa6..5f5c9ed 100644 --- a/src/kernel/kernel_processes/bootscreen/print_b.c +++ b/src/kernel/kernel_processes/bootscreen/print_b.c @@ -2,24 +2,25 @@ #include #include #include -#include static void putchar_bootstrap_at(char c, u32 x, u32 y, u32 color) { const u8 *glyph = font_8x8_bold[(u8)c]; + u32 pitch_dwords = fb_pitch / 4; + // bootstrap phase uses black background + u32 bg_color = 0x00000000; for (int dy = 0; dy < 8; dy++) { u8 row = glyph[dy]; - for (int dx = 0; dx < 8; dx++) - { - if (row & (1 << (7 - dx))) - { - // Draw scaled pixel - for (u32 sy = 0; sy < font_scale; sy++) { - for (u32 sx = 0; sx < font_scale; sx++) { - putpixel(x + dx * font_scale + sx, y + dy * font_scale + sy, color); - } + // draw font_scale scanlines per glyph row + for (u32 sy = 0; sy < font_scale; sy++) { + u32 *fb_row = framebuffer + (y + dy * font_scale + sy) * pitch_dwords + x; + for (int dx = 0; dx < 8; dx++) { + // draw both fg and bg in single pass + u32 pixel_color = (row & (1 << (7 - dx))) ? color : bg_color; + for (u32 sx = 0; sx < font_scale; sx++) { + fb_row[dx * font_scale + sx] = pixel_color; } } } @@ -40,7 +41,7 @@ void putchar_bootstrap(char c, u32 color) return; } - // Check if we need to wrap to next line + // check if we need to wrap to next line if (cursor_x + char_width >= fb_width) { cursor_x = 0; // past was 20 diff --git a/src/kernel/kernel_processes/fm/fm.c b/src/kernel/kernel_processes/fm/fm.c index 5fbd447..f66cf64 100644 --- a/src/kernel/kernel_processes/fm/fm.c +++ b/src/kernel/kernel_processes/fm/fm.c @@ -42,9 +42,9 @@ void fm_init(void) { BOOTUP_PRINTBS("[FM] ", GFX_GRAY_70); BOOTUP_PRINTBS("start font manager\n", white()); - // default font is DOS font - current_font_type = FONT_8X8_BOLD; - current_font = &font_registry[FONT_8X8_BOLD]; + // default font + current_font_type = CURRENT_FONT; + current_font = &font_registry[CURRENT_FONT]; BOOTUP_PRINTBS("[FM] ", GFX_GRAY_70); BOOTUP_PRINTBS("default: ", white()); diff --git a/src/kernel/kernel_processes/fm/fm.h b/src/kernel/kernel_processes/fm/fm.h index 072608f..c3a8872 100644 --- a/src/kernel/kernel_processes/fm/fm.h +++ b/src/kernel/kernel_processes/fm/fm.h @@ -4,6 +4,8 @@ #include #include +#define CURRENT_FONT FONT_8X8 + void fm_init(void); int f_setcontext(font_type_t font_type); font_type_t fm_get_current_font(void); diff --git a/src/kernel/graph/theme.c b/src/kernel/kernel_processes/tm/theme.c similarity index 100% rename from src/kernel/graph/theme.c rename to src/kernel/kernel_processes/tm/theme.c diff --git a/src/kernel/kernel_processes/tm/theme.h b/src/kernel/kernel_processes/tm/theme.h new file mode 100644 index 0000000..5270c6c --- /dev/null +++ b/src/kernel/kernel_processes/tm/theme.h @@ -0,0 +1,74 @@ +#ifndef THEME_H +#define THEME_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// theme types +typedef enum { + THEME_STD = 0, + THEME_FLU = 1 +} ThemeType; +//context types +typedef enum { + THEME_BOOTUP = 0, + THEME_CONSOLE = 1, + THEME_PANIC = 2 +} ThemeContext; + +// unified naming +typedef enum { + COLOR_BLACK = 0, + COLOR_BG, + COLOR_RED, + COLOR_GREEN, + COLOR_YELLOW, + COLOR_BLUE, + COLOR_PURPLE, + COLOR_CYAN, + COLOR_WHITE +} ThemeColor; +typedef struct { + u32 BLACK; + u32 BG; + u32 RED; + u32 GREEN; + u32 YELLOW; + u32 BLUE; + u32 PURPLE; + u32 CYAN; + u32 WHITE; +} ThemeColors; + + +void theme_init(); +void setcontext(ThemeContext context); +ThemeContext getcontext(); + +void sbootup_theme(ThemeType type); +//void sconsole_theme(ThemeType type); +void spanic_theme(ThemeType type); +void reload_console_theme(void); + +u32 get_color(ThemeColor color); + + +// current colors from theme +u32 black(); +u32 bg(); +u32 red(); +u32 green(); +u32 yellow(); +u32 blue(); +u32 purple(); +u32 cyan(); +u32 white(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/kernel/modules/limine.c b/src/kernel/modules/limine.c index cc37376..e960b76 100644 --- a/src/kernel/modules/limine.c +++ b/src/kernel/modules/limine.c @@ -113,3 +113,28 @@ int limine_module_load(const char *module_name, const char *vfs_path) { return 0; } + +/* +int limine_module_find_raw(const char *module_name, void **out_addr, u64 *out_size) { + if (!module_request.response || module_request.response->module_count == 0) return -1; + if (!module_name || !out_addr || !out_size) return -1; + + struct limine_module_response *response = + (struct limine_module_response *)module_request.response; + + for (u64 i = 0; i < response->module_count; i++) { + const char *path = response->modules[i]->path; + + const char *filename = path; + for (const char *p = path; *p; p++) { + if (*p == '/') filename = p + 1; + } + + if (str_equals(filename, module_name)) { + *out_addr = (void *)response->modules[i]->address; + *out_size = response->modules[i]->size; + return 0; + } + } + return -1; +}*/ \ No newline at end of file diff --git a/src/kernel/modules/limine.h b/src/kernel/modules/limine.h index 703eecf..3dc771a 100644 --- a/src/kernel/modules/limine.h +++ b/src/kernel/modules/limine.h @@ -10,4 +10,6 @@ int limine_modules_count(void); // module-info by index struct limine_file* limine_module_get(int index); -#endif +//int limine_module_find_raw(const char *module_name, void **out_addr, u64 *out_size); + +#endif \ No newline at end of file diff --git a/src/kernel/multitasking/ipc/ipc.h b/src/kernel/multitasking/ipc/ipc.h new file mode 100644 index 0000000..a472b66 --- /dev/null +++ b/src/kernel/multitasking/ipc/ipc.h @@ -0,0 +1,56 @@ +#pragma once + +#include +#include +#include +#include + +// +// https://github.com/Novice06/Novix/tree/main/src/kernel/multitasking/ipc +// + +#define IPC_MAX_MESSAGES 256 +#define IPC_MAX_MSG_SIZE 512 +#define IPC_MAX_PROCS 32 +#define IPC_MAX_WAITERS 16 +#define IPC_MAX_SHM 64 +#define IPC_MAX_SHM_PAGES 64 // 256KB per region max +#define IPC_SHM_INVALID 0 + +typedef struct { + u64 sender_id; + u64 receiver_id; + u32 size; + u8 data[IPC_MAX_MSG_SIZE]; + int used; +} ipc_msg_t; +typedef struct { + int is_open; + int count; + ipc_msg_t *messages[IPC_MAX_MESSAGES]; + ulime_proc_t *waiters[IPC_MAX_WAITERS]; + int waiter_count; +} ipc_endpoint_t; +typedef struct { + u64 id; + u64 phys_pages[IPC_MAX_SHM_PAGES]; + u32 page_count; + int ref_count; + int used; + u64 virt_per_proc[IPC_MAX_PROCS]; +} ipc_shm_t; + +void ipc_messages_init(void); +void ipc_shm_init(void); + +void open_inbox(ulime_t *ulime, ulime_proc_t *proc); +void close_inbox(ulime_proc_t *proc); +void destroy_endpoint(ulime_t *ulime, ulime_proc_t *proc); +int send_msg(ulime_t *ulime,ulime_proc_t *sender,u64 receiver_id,const void *data,u32 size); +int receive_async_msg(ulime_t *ulime,ulime_proc_t *proc,void *buf,u32 buf_size,u64 *out_sender); +void receive_msg(ulime_t *ulime,ulime_proc_t *proc,void *buf,u32 buf_size,u64 *out_sender); + +u64 shm_create(ulime_t *ulime, u32 pages); +void *shm_attach(ulime_t *ulime, ulime_proc_t *proc, u64 id); +void shm_detach(ulime_t *ulime, ulime_proc_t *proc, u64 id); +void shm_detach_all(ulime_t *ulime, ulime_proc_t *proc); \ No newline at end of file diff --git a/src/kernel/multitasking/ipc/messages.c b/src/kernel/multitasking/ipc/messages.c new file mode 100644 index 0000000..101047f --- /dev/null +++ b/src/kernel/multitasking/ipc/messages.c @@ -0,0 +1,152 @@ +#include "ipc.h" +#include +#include + +extern klime_t *klime; + +#define MAX_MESSAGES 256 + +static ipc_endpoint_t *endpoints[IPC_MAX_PROCS]; + +void ipc_messages_init(void) { + for (int i = 0; i < IPC_MAX_PROCS; i++) endpoints[i] = NULL; +} + +static ipc_endpoint_t *get_ep(u64 pid) { + if (pid >= IPC_MAX_PROCS) return NULL; + return endpoints[pid]; +} + +static ulime_proc_t *find_proc(ulime_t *ulime, u64 pid) { + ulime_proc_t *p = ulime->ptr_proc_list; + while (p) { + if (p->pid == pid) return p; + p = p->next; + } + return NULL; +} + +static void wake_waiters(ipc_endpoint_t *ep) { + for (int i = 0; i < ep->waiter_count; i++) { + if (ep->waiters[i] && ep->waiters[i]->state == PROC_BLOCKED) + ep->waiters[i]->state = PROC_READY; + } + ep->waiter_count = 0; +} + +void open_inbox(ulime_t *ulime, ulime_proc_t *proc) +{ + u64 pid = proc->pid; + if (pid >= IPC_MAX_PROCS) return; + + if (endpoints[pid]) { + endpoints[pid]->is_open = 1; + return; + } + + ipc_endpoint_t *ep = (ipc_endpoint_t *)klime_create(ulime->klime, sizeof(ipc_endpoint_t)); + if (!ep) return; + + ep->is_open = 1; + ep->count = 0; + ep->waiter_count = 0; + for (int i = 0; i < IPC_MAX_MESSAGES; i++) ep->messages[i] = NULL; + for (int i = 0; i < IPC_MAX_WAITERS; i++) ep->waiters[i] = NULL; + + endpoints[pid] = ep; +} + +void close_inbox(ulime_proc_t *proc) { + ipc_endpoint_t *ep = get_ep(proc->pid); + if (ep) ep->is_open = 0; +} + +void destroy_endpoint(ulime_t *ulime, ulime_proc_t *proc) +{ + u64 pid = proc->pid; + ipc_endpoint_t *ep = get_ep(pid); + if (!ep) return; + + close_inbox(proc); + + for (int i = 0; i < ep->count; i++) { + if (ep->messages[i]) { + klime_free(ulime->klime, (u64 *)ep->messages[i]); + ep->messages[i] = NULL; + } + } + ep->count = 0; + + wake_waiters(ep); + + klime_free(ulime->klime, (u64 *)ep); + endpoints[pid] = NULL; +} + +int send_msg( + ulime_t *ulime, ulime_proc_t *sender, u64 receiver_id, + const void *data, u32 size +) { + if (!data || size == 0 || size > IPC_MAX_MSG_SIZE) return -1; + + ipc_endpoint_t *ep = get_ep(receiver_id); + if (!ep || !ep->is_open) return -1; + + while (ep->count >= IPC_MAX_MESSAGES) { + if (ep->waiter_count < IPC_MAX_WAITERS) + ep->waiters[ep->waiter_count++] = sender; + sender->state = PROC_BLOCKED; + + while (sender->state == PROC_BLOCKED) + __asm__ volatile("pause"); + } + + ipc_msg_t *msg = (ipc_msg_t *)klime_create(ulime->klime, sizeof(ipc_msg_t)); + if (!msg) return -1; + + msg->sender_id = sender->pid; + msg->receiver_id = receiver_id; + msg->size = size; + msg->used = 1; + memcpy(msg->data, data, size); + + ep->messages[ep->count++] = msg; + + ulime_proc_t *recv_proc = find_proc(ulime, receiver_id); + if (recv_proc && recv_proc->state == PROC_BLOCKED) + recv_proc->state = PROC_READY; + + return 0; +} + +int receive_async_msg(ulime_t *ulime, ulime_proc_t *proc, void *buf, u32 buf_size, u64 *out_sender) +{ + ipc_endpoint_t *ep = get_ep(proc->pid); + if (!ep || ep->count <= 0) return -1; + + ipc_msg_t *msg = ep->messages[0]; + u32 copy_size = msg->size < buf_size ? msg->size : buf_size; + + memcpy(buf, msg->data, copy_size); + if (out_sender) *out_sender = msg->sender_id; + + ep->count--; + for (int i = 0; i < ep->count; i++) + ep->messages[i] = ep->messages[i + 1]; + ep->messages[ep->count] = NULL; + + klime_free(ulime->klime, (u64 *)msg); + + if (ep->waiter_count > 0) + wake_waiters(ep); + + return (int)copy_size; +} + +void receive_msg(ulime_t *ulime, ulime_proc_t *proc, void *buf, u32 buf_size, u64 *out_sender) { + while (receive_async_msg(ulime, proc, buf, buf_size, out_sender) < 0) { + proc->state = PROC_BLOCKED; + while (proc->state == PROC_BLOCKED) + __asm__ volatile("pause"); + } +} \ No newline at end of file diff --git a/src/kernel/multitasking/ipc/shared_memory.c b/src/kernel/multitasking/ipc/shared_memory.c new file mode 100644 index 0000000..7c8f82b --- /dev/null +++ b/src/kernel/multitasking/ipc/shared_memory.c @@ -0,0 +1,139 @@ +#include "ipc.h" +#include +#include +#include + +static ipc_shm_t shm_table[IPC_MAX_SHM]; +static u64 shm_counter = 1; + +void ipc_shm_init(void) { + for (int i = 0; i < IPC_MAX_SHM; i++) { + shm_table[i].used = 0; + shm_table[i].id = 0; + shm_table[i].ref_count = 0; + } +} + +static ipc_shm_t *shm_find(u64 id) { + for (int i = 0; i < IPC_MAX_SHM; i++) { + if (shm_table[i].used && shm_table[i].id == id) + return &shm_table[i]; + } + return NULL; +} + +static ipc_shm_t *shm_alloc_slot(void) { + for (int i = 0; i < IPC_MAX_SHM; i++) { + if (!shm_table[i].used) + return &shm_table[i]; + } + return NULL; +} + +static void shm_free_phys(ipc_shm_t *shm) +{ + for (u32 i = 0; i < shm->page_count; i++) { + if (shm->phys_pages[i]) { + physmem_free_to(shm->phys_pages[i], 1); + shm->phys_pages[i] = 0; + } + } + shm->used = 0; + shm->ref_count = 0; +} + +u64 shm_create(ulime_t *ulime, u32 pages) +{ + (void)ulime; + if (pages == 0 || pages > IPC_MAX_SHM_PAGES) return IPC_SHM_INVALID; + + ipc_shm_t *shm = shm_alloc_slot(); + if (!shm) return IPC_SHM_INVALID; + + for (u32 i = 0; i < pages; i++) { + u64 phys = physmem_alloc_to(1); + if (!phys) { + for (u32 j = 0; j < i; j++) + physmem_free_to(shm->phys_pages[j], 1); + return IPC_SHM_INVALID; + } + shm->phys_pages[i] = phys; + } + + shm->id = shm_counter++; + shm->page_count = pages; + shm->ref_count = 0; + shm->used = 1; + + for (int i = 0; i < IPC_MAX_PROCS; i++) + shm->virt_per_proc[i] = 0; + + printf("[SHM] created id=%llu pages=%u\n", (unsigned long long)shm->id, pages); + return shm->id; +} + +void *shm_attach(ulime_t *ulime, ulime_proc_t *proc, u64 id) +{ + ipc_shm_t *shm = shm_find(id); + if (!shm) return NULL; + + u64 pid = proc->pid; + if (pid >= IPC_MAX_PROCS) return NULL; + + if (shm->virt_per_proc[pid] != 0) + return (void *)shm->virt_per_proc[pid]; + + u64 virt = (ulime->user_space_used + 0xFFF) & ~0xFFFULL; + ulime->user_space_used = virt + (u64)shm->page_count * PAGE_SIZE; + + u64 flags = PTE_PRESENT | PTE_WRITABLE | PTE_USER; + for (u32 i = 0; i < shm->page_count; i++) { + paging_map_page_proc( + ulime->hpr, + proc->pml4_phys, + virt + (u64)i * PAGE_SIZE, + shm->phys_pages[i], + flags + ); + } + + shm->virt_per_proc[pid] = virt; + shm->ref_count++; + + printf("[SHM] attached id=%llu to pid=%llu virt=0x%llx\n", (unsigned long long)id, (unsigned long long)pid, (unsigned long long)virt); + return (void *)virt; +} + +void shm_detach(ulime_t *ulime, ulime_proc_t *proc, u64 id) { + ipc_shm_t *shm = shm_find(id); + if (!shm) return; + + u64 pid = proc->pid; + if (pid >= IPC_MAX_PROCS) return; + if (shm->virt_per_proc[pid] == 0) return; + + u64 virt = shm->virt_per_proc[pid]; + for (u32 i = 0; i < shm->page_count; i++) { + u64 va = virt + (u64)i * PAGE_SIZE; + paging_map_page_proc(ulime->hpr, proc->pml4_phys, va, 0, 0); + __asm__ volatile("invlpg (%0)" :: "r"(va) : "memory"); + } + + shm->virt_per_proc[pid] = 0; + shm->ref_count--; + + printf("[SHM] detached id=%llu from pid=%llu\n",(unsigned long long)id, (unsigned long long)pid); + + if (shm->ref_count <= 0) + shm_free_phys(shm); +} + +void shm_detach_all(ulime_t *ulime, ulime_proc_t *proc) { + u64 pid = proc->pid; + if (pid >= IPC_MAX_PROCS) return; + + for (int i = 0; i < IPC_MAX_SHM; i++) { + if (shm_table[i].used && shm_table[i].virt_per_proc[pid] != 0) + shm_detach(ulime, proc, shm_table[i].id); + } +} \ No newline at end of file diff --git a/src/kernel/multitasking/multitasking.c b/src/kernel/multitasking/multitasking.c new file mode 100644 index 0000000..8973143 --- /dev/null +++ b/src/kernel/multitasking/multitasking.c @@ -0,0 +1,182 @@ +#include "multitasking.h" +#include +#include + +static int mt_find_next(mt_t *mt, int from_idx) +{ + if (mt->task_count == 0) return -1; + + int start = (from_idx + 1) % mt->task_count; + int i = start; + + do { + mt_task_t *t = &mt->tasks[i]; + if (t->valid && t->proc && + (t->proc->state == PROC_READY || t->proc->state == PROC_CREATED)) { + return i; + } + i = (i + 1) % mt->task_count; + } while (i != start); + + mt_task_t *t = &mt->tasks[start]; + if (t->valid && t->proc && + (t->proc->state == PROC_READY || t->proc->state == PROC_CREATED)) { + return start; + } + + return -1; +} + +void mt_init(mt_t *mt, scheduler_t *sched, ulime_t *ulime) +{ + if (!mt) return; + + for (int i = 0; i < MT_MAX_TASKS; i++) { + mt->tasks[i].proc = NULL; + mt->tasks[i].valid = 0; + mt->tasks[i].user_ctx.saved = 0; + } + + mt->task_count = 0; + mt->current_idx = -1; + mt->initialized = 1; + mt->sched = sched; + mt->ulime = ulime; + + printf("[MT] multitasking initialized (max=%d quantum=%llu)\n", + MT_MAX_TASKS, + sched ? (unsigned long long)sched->quantum : 0ULL + ); +} + +int mt_add_task(mt_t *mt, ulime_proc_t *proc) +{ + if (!mt || !proc) return -1; + if (!mt->initialized) return -1; + if (mt->task_count >= MT_MAX_TASKS) return -1; + + int idx = mt->task_count; + mt_task_t *t = &mt->tasks[idx]; + + t->proc = proc; + t->valid = 1; + t->user_ctx.saved = 0; + t->user_ctx.cr3 = proc->pml4_phys; + + mt->task_count++; + + printf("[MT] task added: idx=%d pid=%llu entry=0x%llx\n", + idx, + (unsigned long long)proc->pid, + (unsigned long long)proc->entry_point + ); + + return idx; +} + +void mt_preempt(mt_t *mt, cpu_state_t *state) +{ + if (!mt || !mt->initialized || !state) return; + if (mt->task_count < 2) return; + + // only switch if we interrupted user code + if ((state->cs & 3) != 3) return; + + if (mt->sched) { + mt->sched->ticks++; + if (mt->sched->ticks < mt->sched->quantum) return; + mt->sched->ticks = 0; + } + + int old_idx = mt->current_idx; + int new_idx = mt_find_next(mt, old_idx); + + if (new_idx < 0 || new_idx == old_idx) return; + + // save old process + if (old_idx >= 0 && mt->tasks[old_idx].valid) { + mt_task_t *old = &mt->tasks[old_idx]; + mt_user_ctx_t *uc = &old->user_ctx; + + uc->r15 = state->r15; uc->r14 = state->r14; + uc->r13 = state->r13; uc->r12 = state->r12; + uc->r11 = state->r11; uc->r10 = state->r10; + uc->r9 = state->r9; uc->r8 = state->r8; + uc->rbp = state->rbp; uc->rdi = state->rdi; + uc->rsi = state->rsi; uc->rdx = state->rdx; + uc->rcx = state->rcx; uc->rbx = state->rbx; + uc->rax = state->rax; + + uc->rip = state->rip; + uc->cs = state->cs; + uc->rflags = state->rflags; + uc->rsp = state->rsp; + uc->ss = state->ss; + uc->cr3 = old->proc->pml4_phys; + uc->saved = 1; + + if (old->proc->state == PROC_RUNNING) + old->proc->state = PROC_READY + ; + } + + // load next process + mt_task_t *next = &mt->tasks[new_idx]; + mt_user_ctx_t *nc = &next->user_ctx; + + if (nc->saved) { + state->r15 = nc->r15; state->r14 = nc->r14; + state->r13 = nc->r13; state->r12 = nc->r12; + state->r11 = nc->r11; state->r10 = nc->r10; + state->r9 = nc->r9; state->r8 = nc->r8; + state->rbp = nc->rbp; state->rdi = nc->rdi; + state->rsi = nc->rsi; state->rdx = nc->rdx; + state->rcx = nc->rcx; state->rbx = nc->rbx; + state->rax = nc->rax; + state->rip = nc->rip; + state->cs = nc->cs; + state->rflags = nc->rflags; + state->rsp = nc->rsp; + state->ss = nc->ss; + } else { + // first run + state->r15 = state->r14 = state->r13 = state->r12 = 0; + state->r11 = state->r10 = state->r9 = state->r8 = 0; + state->rbp = state->rdi = state->rsi = state->rdx = 0; + state->rcx = state->rbx = state->rax = 0; + + state->rip = next->proc->entry_point; + state->cs = (u64)(USER_CODE_SELECTOR | 3); + state->rflags = 0x202; // IF=1 + state->rsp = (next->proc->stack_base + next->proc->stack_size - 16)& ~0xFULL; + state->ss = (u64)(USER_DATA_SELECTOR | 3); + } + + next->proc->state = PROC_RUNNING; + mt->current_idx = new_idx; + + if (mt->ulime) mt->ulime->ptr_proc_curr = next->proc; + + __asm__ volatile( + "mov %0, %%cr3" + :: + "r"(next->proc->pml4_phys) + : + "memory" + ); +} + +void mt_yield(mt_t *mt) { + if (!mt || !mt->initialized) return; + if (mt->sched) mt->sched->ticks = 0; +} + +int mt_task_count(mt_t *mt) { + if (!mt) return 0; + return mt->task_count; +} + +mt_task_t *mt_current_task(mt_t *mt) { + if (!mt || mt->current_idx < 0) return NULL; + return &mt->tasks[mt->current_idx]; +} \ No newline at end of file diff --git a/src/kernel/multitasking/multitasking.h b/src/kernel/multitasking/multitasking.h new file mode 100644 index 0000000..abd3c19 --- /dev/null +++ b/src/kernel/multitasking/multitasking.h @@ -0,0 +1,71 @@ +#pragma once + +#include +#include +#include +#include + +// offsets MUST match scheduler.asm exactly +typedef struct { + u64 r15; // 0 + u64 r14; // 8 + u64 r13; // 16 + u64 r12; // 24 + u64 r11; // 32 + u64 r10; // 40 + u64 r9; // 48 + u64 r8; // 56 + u64 rbp; // 64 + u64 rdi; // 72 + u64 rsi; // 80 + u64 rdx; // 88 + u64 rcx; // 96 + u64 rbx; // 104 + u64 rax; // 112 + u64 _pad0; // 120 + u64 _pad1; // 128 + u64 rip; // 136 + u64 _pad2; // 144 + u64 rflags; // 152 + u64 rsp; // 160 +} mt_context_t; + +// saved user-mode cpu state +typedef struct { + u64 r15, r14, r13, r12, r11, r10, r9, r8; + u64 rbp, rdi, rsi, rdx, rcx, rbx, rax; + u64 rip; + u64 cs; + u64 rflags; + u64 rsp; + u64 ss; + u64 cr3; + int saved; // 0 == first run; use entry_point +} mt_user_ctx_t; + +#define MT_MAX_TASKS 32 + +typedef struct { + ulime_proc_t *proc; + mt_context_t ctx; + mt_user_ctx_t user_ctx; + int valid; +} mt_task_t; + +typedef struct { + mt_task_t tasks[MT_MAX_TASKS]; + int task_count; + int current_idx; + int initialized; + scheduler_t *sched; + ulime_t *ulime; +} mt_t; + +extern void scheduler_context_switch(mt_context_t *old_ctx, mt_context_t *new_ctx); + +void mt_init(mt_t *mt, scheduler_t *sched, ulime_t *ulime); +int mt_add_task(mt_t *mt, ulime_proc_t *proc); +void mt_preempt(mt_t *mt, cpu_state_t *state); +void mt_yield(mt_t *mt); +int mt_task_count(mt_t *mt); +mt_task_t *mt_current_task(mt_t *mt); diff --git a/src/kernel/net/head.h b/src/kernel/net/head.h new file mode 100644 index 0000000..5545d85 --- /dev/null +++ b/src/kernel/net/head.h @@ -0,0 +1,5 @@ +#pragma once + +#include + +// commit: deleted unix_sockets \ No newline at end of file diff --git a/src/kernel/net/net.h b/src/kernel/net/net.h new file mode 100644 index 0000000..9301158 --- /dev/null +++ b/src/kernel/net/net.h @@ -0,0 +1,25 @@ +#pragma once + +// commit: deleted unix_sockets + +//! ( +//! this file is half empty now :( +//! ) + + +// gen net + +#define _EAF_UNIX 1 +#include +#include +// initial tasks +#ifndef SOCKET1 +# include +# define EITASK "1" +#elif SOCKET2 +# define EITASK "2" +#elif SOCKET3 +# define EITASK "3" +#elif SOCKET4 +# define EITASK "4" +#endif \ No newline at end of file diff --git a/src/kernel/net/unix/unix_sock.c b/src/kernel/net/unix/unix_sock.c new file mode 100644 index 0000000..221f299 --- /dev/null +++ b/src/kernel/net/unix/unix_sock.c @@ -0,0 +1 @@ +// commit: deleted unix_sockets \ No newline at end of file diff --git a/src/kernel/net/unix/unix_sock.h b/src/kernel/net/unix/unix_sock.h new file mode 100644 index 0000000..307e38c --- /dev/null +++ b/src/kernel/net/unix/unix_sock.h @@ -0,0 +1,3 @@ +#pragma once + +// commit: deleted unix_sockets \ No newline at end of file diff --git a/src/kernel/user/_start.c b/src/kernel/user/_start.c index 768666e..22b790f 100644 --- a/src/kernel/user/_start.c +++ b/src/kernel/user/_start.c @@ -26,8 +26,8 @@ void DEinit(void) // smth like desktop enviroment and userswitch are here - console_init(); - keyboard_poll(); + //console_init(); + //keyboard_poll(); } diff --git a/src/kernel/user/calls.h b/src/kernel/user/calls.h index 64eb115..05d9a7a 100644 --- a/src/kernel/user/calls.h +++ b/src/kernel/user/calls.h @@ -41,11 +41,19 @@ #define MKDIR 83 #define FCHDIR 133 + #define UNLINK 87 #define IOCTL 16 #define MMAP 9 #define MUNMAP 11 + #define FTRUNCATE 77 - #define UNLINK 87 // delete file + #define MQ_OPEN 240 + #define MQ_UNLINK 241 + #define MQ_SEND 242 + #define MQ_RECV 243 + + + #define SHM_DESTROY 245 #elif ARM64 == 1 #define EXIT 93 @@ -67,23 +75,29 @@ #define CLOSE 57 #define STAT 80 - //#define FSTAT 79 - //#define LSTAT 79 + + #define MMAP 222 + #define MUNMAP 215 + #define FTRUNCATE 46 #define FORK 220 #define VFORK 221 #define EXECVE 221 - #define GETDENTS 78 // list directory + #define GETDENTS 78 #define CHDIR 49 #define MKDIR 80 #define FCHDIR 50 + #define UNLINK 87 #define IOCTL 16 - #define MMAP 9 - #define MUNMAP 11 - #define UNLINK 87 // delete file + #define MQ_OPEN 277 + #define MQ_UNLINK 278 + #define MQ_SEND 281 + #define MQ_RECV 282 + + #define SHM_DESTROY 283 #endif diff --git a/src/kernel/user/gen.h b/src/kernel/user/gen.h index 8f29557..4f7376e 100644 --- a/src/kernel/user/gen.h +++ b/src/kernel/user/gen.h @@ -19,7 +19,7 @@ #include #include #include -#include +//#include #include diff --git a/src/kernel/user/scalls/mq.c b/src/kernel/user/scalls/mq.c new file mode 100644 index 0000000..8320b8e --- /dev/null +++ b/src/kernel/user/scalls/mq.c @@ -0,0 +1,49 @@ +#include "scalls.h" +#include + +u64 scall_mq_open(ulime_proc_t *proc, u64 name_ptr, u64 oflag, u64 mode) +{ + (void)oflag; + (void)mode; + + if (!name_ptr || name_ptr > 0x0000800000000000ULL) return (u64)-1; + + open_inbox(proc->ulime, proc); + return (u64)proc->pid; +} + +u64 scall_mq_unlink(ulime_proc_t *proc, u64 name_ptr, u64 arg2, u64 arg3) +{ + (void)name_ptr; + (void)arg2; + (void)arg3; + + destroy_endpoint(proc->ulime, proc); + return 0; +} + +u64 scall_mq_send(ulime_proc_t *proc, u64 mqid, u64 buf, u64 size) { + int r = send_msg(proc->ulime, proc, mqid, (const void *)buf, (u32)size); + + if (!buf || buf > 0x0000800000000000ULL) return (u64)-1; + if (size == 0 || size > IPC_MAX_MSG_SIZE) return (u64)-1; + + return r == 0 ? 0 : (u64)-1; +} + +u64 scall_mq_recv(ulime_proc_t *proc, u64 mqid, u64 buf, u64 size) +{ + (void)mqid; + + u64 sender = 0; + int got = receive_async_msg(proc->ulime, proc, (void *)buf, (u32)size, &sender); + + if (!buf || buf > 0x0000800000000000ULL) return (u64)-1; + if (size == 0) return (u64)-1; + if (got < 0) { + receive_msg(proc->ulime, proc, (void *)buf, (u32)size, &sender); + got = (int)size; + } + + return (u64)got; +} \ No newline at end of file diff --git a/src/kernel/user/scalls/scalls.h b/src/kernel/user/scalls/scalls.h new file mode 100644 index 0000000..8cc931d --- /dev/null +++ b/src/kernel/user/scalls/scalls.h @@ -0,0 +1,12 @@ +#pragma once + +#include +#include + +u64 scall_mq_open(ulime_proc_t *proc, u64 name_ptr, u64 oflag, u64 mode); +u64 scall_mq_unlink(ulime_proc_t *proc, u64 name_ptr, u64 arg2, u64 arg3); +u64 scall_mq_send(ulime_proc_t *proc, u64 mqid, u64 buf, u64 size); +u64 scall_mq_recv(ulime_proc_t *proc, u64 mqid, u64 buf, u64 size); + +u64 scall_mmap(ulime_proc_t *proc, u64 addr, u64 length, u64 shm_id); +u64 scall_munmap(ulime_proc_t *proc, u64 addr, u64 length, u64 arg3); \ No newline at end of file diff --git a/src/kernel/user/scalls/shm.c b/src/kernel/user/scalls/shm.c new file mode 100644 index 0000000..4a6e9ce --- /dev/null +++ b/src/kernel/user/scalls/shm.c @@ -0,0 +1,35 @@ +#include "scalls.h" +#include + +u64 scall_mmap(ulime_proc_t *proc, u64 addr, u64 length, u64 shm_id) { + (void)addr; + + u32 pages = (u32)((length + 0xFFF) / 0x1000); + if (pages == 0) pages = 1; + + if (shm_id == 0) { + u64 id = shm_create(proc->ulime, pages); + if (id == IPC_SHM_INVALID) return (u64)-1; + void *virt = shm_attach(proc->ulime, proc, id); + return virt == NULL ? (u64)-1 : (u64)virt; + } + + void *virt = shm_attach(proc->ulime, proc, shm_id); + return virt == NULL ? (u64)-1 : (u64)virt; +} + +u64 scall_munmap(ulime_proc_t *proc, u64 addr, u64 length, u64 arg3) { + (void)length; (void)arg3; + if (addr == 0) return (u64)-1; + + for (int i = 0; i < IPC_MAX_SHM; i++) { + //shm_detach handles "not found" gracefully + // + // TODO: + // reverse lookup by virt addr + (void)proc; + break; + } + + return 0; +} \ No newline at end of file diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index a4ce794..d2a794c 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -7,7 +7,6 @@ #include //#include #include -#include #include #include #include @@ -21,11 +20,18 @@ #include +#include + // memory #include #include #include +//ipc +#include + +#include "scalls/scalls.h" + //#include //#include @@ -523,7 +529,7 @@ u64 scall_getcwd(ulime_proc_t *proc, u64 buf_ptr, u64 size, u64 arg3) { return (u64)(cwlen + 1); // return written byte count (> 0 = success) } -u64 scall_mmap(ulime_proc_t *proc, u64 args_ptr, u64 arg2, u64 arg3) { +/*u64 scall_mmap(ulime_proc_t *proc, u64 args_ptr, u64 arg2, u64 arg3) { (void)arg2; (void)arg3; if (!args_ptr || args_ptr > 0x0000800000000000ULL) return (u64)MAP_FAILED; @@ -604,7 +610,7 @@ u64 scall_munmap(ulime_proc_t *proc, u64 addr, u64 length, u64 arg3) { paging_unmap_page(addr + i * 4096); } return 0; -} +}*/ void _init_syscalls_table(ulime_t *ulime_ptr) { if (!ulime_ptr) return; @@ -612,25 +618,31 @@ void _init_syscalls_table(ulime_t *ulime_ptr) { g_ulime = ulime_ptr; memset(ulime_ptr->syscalls, 0, sizeof(ulime_ptr->syscalls)); - ulime_ptr->syscalls[READ] = scall_read; - ulime_ptr->syscalls[WRITE] = scall_write; + ulime_ptr->syscalls[READ] = scall_read; + ulime_ptr->syscalls[WRITE] = scall_write; //ulime->syscalls[READ] = scall_read; - ulime_ptr->syscalls[OPEN] = scall_open; - ulime_ptr->syscalls[CLOSE] = scall_close; - ulime_ptr->syscalls[GETPID] = scall_getpid; - ulime_ptr->syscalls[BRK] = scall_brk; - ulime_ptr->syscalls[EXIT] = scall_exit; - ulime_ptr->syscalls[EXECVE] = scall_execve; - ulime_ptr->syscalls[GETDENTS] = scall_getdents; - ulime_ptr->syscalls[CHDIR] = scall_chdir; - ulime_ptr->syscalls[GETCWD] = scall_getcwd; - ulime_ptr->syscalls[MMAP] = scall_mmap; - ulime_ptr->syscalls[MUNMAP] = scall_munmap; - ulime_ptr->syscalls[IOCTL] = scall_ioctl; + ulime_ptr->syscalls[OPEN] = scall_open; + ulime_ptr->syscalls[CLOSE] = scall_close; + ulime_ptr->syscalls[GETPID] = scall_getpid; + ulime_ptr->syscalls[BRK] = scall_brk; + ulime_ptr->syscalls[EXIT] = scall_exit; + ulime_ptr->syscalls[EXECVE] = scall_execve; + ulime_ptr->syscalls[GETDENTS] = scall_getdents; + ulime_ptr->syscalls[CHDIR] = scall_chdir; + ulime_ptr->syscalls[GETCWD] = scall_getcwd; + ulime_ptr->syscalls[IOCTL] = scall_ioctl; + ulime_ptr->syscalls[MQ_OPEN] = scall_mq_open; + ulime_ptr->syscalls[MQ_UNLINK] = scall_mq_unlink; + ulime_ptr->syscalls[MQ_SEND] = scall_mq_send; + ulime_ptr->syscalls[MQ_RECV] = scall_mq_recv; + //ulime_ptr->syscalls[SHM_DESTROY] = scall_shm_destroy; + ulime_ptr->syscalls[MMAP] = scall_mmap; + ulime_ptr->syscalls[MUNMAP] = scall_munmap; log("[SYSCALL]", "syscall table initialized\n", d); } + // syscall handler (called from assembly) uses find_proc_by_cr3 u64 syscall_handler(u64 syscall_num, u64 arg1, u64 arg2, u64 arg3) { if (!g_ulime) { diff --git a/src/userspace/apps/login/login.elf b/src/userspace/apps/login/login.elf index c3797b167222d3d1feb192a7f07348b47e62d92d..1b4776741e3395a21516ae5b10f0ce8fe73b67c2 100755 GIT binary patch delta 596 zcmaFR#Q33!ae@Y8!9-1S&J0xsFlgAA86zY~7W@AmL8eA0FMJXD81PR%cu} z`GBw}Q@`Tm4aTCA6@)o9e-WO*%J^b(tE2H4BX3dq?F1?QIL!wbJvv#ZK*W226#q7cmIEaUKvngVzZuB~ z#lyr(MLmwQ`T}_%01k+kjX)Mqp$$kk(2uW$fE;}g2V$xUh}q353#1UH@-t0NHFDuV-vZvdqoCI_0%XUv%V(eyf8P5`PQeDX&#@yQ>|I2au!|1<+SRCThJxf^4} zpELyO~#i~*Z}T7G9_OxXOpR!IlO>64F18ZstM{vmmdv1{^qsR%~H$r{o@ zy7z!qiviuR<3A9*P68Uc0Vv{O>H4BX3dmUv<|;2ax>= zP}*Q}qUn6bh{=p**Wq#kAO%1WKKY`V_#|@;y5Ft!)8va?~Ick$z+_JcaKdl^nHw>=)4?8S T=Sd(LFqzZQo>6_Wr=vOm6;7-e diff --git a/src/userspace/apps/login/login.o b/src/userspace/apps/login/login.o index 67b48969793af1d0e0a45074f38bd512fbb15870..f24ff3ad89d5f510a32c898291697423a5b01445 100644 GIT binary patch delta 105 zcmZ1=xk7S+2IGp2nhng13X@kdyR$KX!RGhO6ImF0CO2~EGftVj5lHUX{E#D@k&$Dv zCD(Dr8l8xj=G)2IGQ_nhng8S24S9{=qzfg|T~bCx<@ctk874b&9cR2S unUmX`QDCwow>_iA Date: Sun, 8 Mar 2026 19:23:25 +0100 Subject: [PATCH 33/41] lsblk command, hdd0 renamed to hda, new /sys/block --- Makefile | 1 + dsk/initrd.cpio | Bin 2305024 -> 2338816 bytes dsk/rd/bin/cat.elf | Bin 11512 -> 12424 bytes dsk/rd/bin/cd.elf | Bin 15960 -> 17048 bytes dsk/rd/bin/echo.elf | Bin 9672 -> 10592 bytes dsk/rd/bin/hello.elf | Bin 15760 -> 16864 bytes dsk/rd/bin/ls.elf | Bin 12056 -> 12976 bytes dsk/rd/bin/lsblk.elf | Bin 0 -> 18064 bytes dsk/rd/bin/tree.elf | Bin 11792 -> 12704 bytes dsk/rd/emr/system/login.elf | Bin 16752 -> 17856 bytes dsk/rd/emr/system/system.emx/app.elf | Bin 16096 -> 17184 bytes dsk/rd/user/apps/shell.emx/app.elf | Bin 10360 -> 17672 bytes shared/config/system.h | 15 ++- shared/config/tasks.h | 2 +- src/kernel/devices/devices.h | 2 +- src/kernel/devices/disks/hdd0.c | 93 ++++++++++++--- src/kernel/devices/disks/hdd0.h | 4 +- src/kernel/devices/fb0/fb0.c | 14 ++- src/kernel/devices/input/kbd.c | 10 +- src/kernel/devices/input/mouse0.c | 13 ++- src/kernel/devices/null/null.c | 9 +- src/kernel/devices/random/urandom.c | 6 +- src/kernel/devices/random/urandom.h | 4 +- src/kernel/devices/tty/tty0.c | 39 ++++++- src/kernel/devices/tty/tty0.h | 1 + src/kernel/devices/zero/zero.c | 13 ++- src/kernel/file_systems/vfs/devfs/devfs.c | 8 +- src/kernel/file_systems/vfs/procfs/procfs.c | 71 ++++++++++-- src/kernel/file_systems/vfs/sysfs/sysfs.c | 108 ++++++++++++++++++ src/kernel/file_systems/vfs/sysfs/sysfs.h | 4 + src/kernel/file_systems/vfs/vfs.c | 8 +- src/kernel/file_systems/vfs/vfs.h | 8 +- src/kernel/file_systems/vfs/vfs_init.c | 3 + src/kernel/inits/fs/init.c | 3 +- src/kernel/inits/fs/init.h | 11 +- src/kernel/kernel.c | 50 +++----- src/kernel/kernel_processes/graphics/.gitkeep | 0 src/kernel/kernel_processes/kernel/user.c | 1 + src/kernel/module/module.h | 4 +- src/kernel/user/syscalls.c | 1 + src/userspace/Makefile | 2 + src/userspace/apps/login/login.elf | Bin 16752 -> 17856 bytes src/userspace/apps/shell/shell.c | 15 ++- src/userspace/apps/shell/shell.emx/app.elf | Bin 10360 -> 17672 bytes src/userspace/apps/shell/shell.o | Bin 2648 -> 2592 bytes src/userspace/apps/system/system.emx/app.elf | Bin 16096 -> 17184 bytes src/userspace/bin/cat/cat.elf | Bin 11512 -> 12424 bytes src/userspace/bin/cd/cd.elf | Bin 15960 -> 17048 bytes src/userspace/bin/echo/echo.elf | Bin 9672 -> 10592 bytes src/userspace/bin/hello/hello.elf | Bin 15760 -> 16864 bytes src/userspace/bin/ls/ls.elf | Bin 12056 -> 12976 bytes src/userspace/bin/lsblk/Makefile | 28 +++++ src/userspace/bin/lsblk/lsblk.c | 20 ++++ src/userspace/bin/lsblk/lsblk.elf | Bin 0 -> 18064 bytes src/userspace/bin/lsblk/lsblk.h | 3 + src/userspace/bin/lsblk/lsblk.o | Bin 0 -> 1728 bytes src/userspace/bin/tree/tree.elf | Bin 11792 -> 12704 bytes src/userspace/libc/include/emx/tty.h | 3 +- src/userspace/libc/include/stdio.h | 1 + src/userspace/libc/include/string.h | 2 + src/userspace/libc/src/stdio.c | 15 ++- src/userspace/libc/src/string.c | 26 +++++ 62 files changed, 504 insertions(+), 117 deletions(-) create mode 100755 dsk/rd/bin/lsblk.elf create mode 100644 src/kernel/file_systems/vfs/sysfs/sysfs.c create mode 100644 src/kernel/file_systems/vfs/sysfs/sysfs.h create mode 100644 src/kernel/kernel_processes/graphics/.gitkeep create mode 100644 src/userspace/bin/lsblk/Makefile create mode 100644 src/userspace/bin/lsblk/lsblk.c create mode 100755 src/userspace/bin/lsblk/lsblk.elf create mode 100644 src/userspace/bin/lsblk/lsblk.h create mode 100644 src/userspace/bin/lsblk/lsblk.o diff --git a/Makefile b/Makefile index dc6e4bf..89fba71 100644 --- a/Makefile +++ b/Makefile @@ -76,6 +76,7 @@ $(ISO): limine.conf $(LIMINE_TOOL) $(BUILD_DIR)/kernel.elf disk userspace @cp src/userspace/bin/tree/tree.elf $(DISK_DIR)/rd/bin/ @cp src/userspace/bin/cat/cat.elf $(DISK_DIR)/rd/bin/ @cp src/userspace/bin/cd/cd.elf $(DISK_DIR)/rd/bin/ + @cp src/userspace/bin/lsblk/lsblk.elf $(DISK_DIR)/rd/bin/ @echo "[MK] creating initrd.cpio..." diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 6c65ad0b3bd364e2ed2ab00e34e4b319d60e14ec..22614ea491b3bf5a015f8c2fe71c9f6215ff857a 100644 GIT binary patch delta 31180 zcmeHwd3Y7Ywr_WnnIt>&CIPa0LncIa0)#+>KmrMbArL@@zy%YMFdQHW85D=G(Ey48 z0=81YgMh=meZ5!J zuc}s6cUO1+)~f2>3y&^S7oJ+7ZVp#{3sO=Gic)(g6&V?iMzGu+wn!sK&1gHV&-BzJ z2tAYf7^mkZFyG6zw#NHvvbNh{j4Vms3QPTG*0ZY9XKD47n(8ZYmPKDd z86K-UCt{r}i$0LCx{pLmw=8-?#_G0X?W{SQZt^SY3^X zIm0cBvPCr9QdcTsVU|VRWUOwoh=p1fg~(Xl5D^QuEczMt3pyQasp~1QK+B>N0t>X% z*#s6~S+ql70hYS90`s>ldLA$*RQ9*jks4piqFPbV*HZU|h-A5wrQ8@+D z9+tXyMY>JpU`V&I)YXf$R+$KC%~H2sq?O9HkX9=#=N|#UjD|CFemTbCFy^emXn%-a zxX+x3qRO0!qQqQ?VutxJihOe|iac{8iZNybis9y76q)8>6lvyJ6e;G9C=yK%D~JR$ z9EIKNf+EVyKoM%@pzt@RS{0x43!dg(kgPwo@L(I?cYR@u)_VTK*Elsbtkd(Ds%ccS zmwNtHWIPJOvPD_cSgAv?CBDYRMbTrXORy?DyUFu*NMSJX=luQf10@Gx^`%*tFN8oM z1rtJTSB%zr#(-#18{uo@FOH7?$wz`#DAEk6?B%)8m++Gi-K8iO+Cpple2j(Bgd+TDXsq@m+Yp@7|*6?Aq{4-fTyp9;bcay*k$(rv2U9c;>qt z?JTc5L96|7>y8KYxgJKpcm3FbW%>w~bVwhl1#0Y-FnxfwPcz7BrElTKlE-^MeAhA zodt7dfu`~qRdb6=DwWF8Qhjbg$;`WT*z*$JEupilps-k7dg?-@4rnE}Y@w$pK17rx)KI<*;08M0+8PCL9o%1R8N$N`s)v5*= z3|(CV*BU}_2j>B=f7Et_%6B0AA;LRR=eiPJNBAeSPvL~G7P!$nA=vp8mFY)^>p3d( zEa97iL?7^}gJA<~*oU_We;aO*7+!-7@zegId=^I)I1L+itJe(Egi{F&OzE);ty~>TfjWIc&y(Zb5zz(N(%Q-uS9pf8U4bhO^G-?&$5C&`lICgW|ol zH4bBgW1@@FCih6?ly=q*ptR|U$=aH9Hgdh5;&zXv38 zabsoh_6K5&H3KrdpjN|^F~(;DmaDP+u{J4|Kh_38pYe$bkF`Fr;;|MM%O7jM#_-3Q z5y?J#L!Y3fwyR&6@t}ulWAe)-Ho3m@Go0ZA|*|k~C;-R06QRLyb z!(9=1I8PD@A93N@wQU;os$mZtA3@Cf09NZ+=nv$(sW}8P#gTxc0cnd%2_#90H!4wK z@F@*VE-jb7x^``4{poY3Zn9uts5g`apN5klSnzp_2^Orz0xP}GY>%SK?24kqgmI26 zI0r?(S%4zXEJZQKydTAIb2*Ak^Kleu=8Gs&OcO<-*@Pm&Jc`0@evKl^^oRoyY6hY3 zH|=qP1>Xiq!Gg& z(`nX7Dggck9x~wsc#`q2*Pg2&EPzE2!C!++up6VPSd}2F+Pau4aF}KJX`4psrfxxb#KGINE z)*DYj?u%6Stf#0eiR-Jzz9MVE7RsGKTr3Qp*cko+8}`IWJ(C2P z+`m%0rL=d_q-Zj}DYiykp}G@oqORn*ZB!$AdW6qW0AdR7d@P*VNNq_GlJc>?pgD9>zjjJ=PkxM8yi4K;e#mkLuGj;cq@Tf6mrZw^j zs`4@s+Kr^}1!FnnK0~>EJw&%-DEE2e?U`2RM#?Rub0EoZ3E?MbXC)ba7HZ>}t|4ub z4A)cn2pR#B3Qx5j==`Rw8I7Kc>Hx|rop~yW_Q&`3hTY}+RGDuq&&pp0f!CQ+V6Rw6o zdwjt?1Qf5Sd16}@9im1C!)_`KjbMGE2U2Ms7-$qPNNPJCZbU!?FV<#VVb6r9;iGED zT|@@R%bW>72k6%|&1!1amFh4&no7evE)_c=yC&<33U&KteSP11p%)30g5Q|9Ewo$5(EJ_5IKAZE2b zoGVsgN|3t0h>SuIEu?Oo59f-#B*?j9XGmda#T7%ay7ZWOVnV3>)tk3>2}Fz9v);%R z<9510Tf{P<^hv_vhZdso3;+Ew;FVQksmhX58%W|z3w=5TV zxj9Vh=RNorkDC*?B3zXjm5E+ll*@6eZc%5oa^5Ec0>xP7feS7)L+_d@wZ-J(6S*$qeE^ z8`2@FNU}JE@G5FpJ{G3|jvmi+xK<$Q@_5dKIO^Ff$~zVCLGUn_GJc~jO6FKe_#1>v z-f=JC=jib-IpYI_hZDz?>~AUIOXvwIcpp4RrBC%y%8>rg)l^{{x!oicTq|*EK>9zi zA>6aY)KN(eUnabfh?As+uOl7?72@DF26095Gn4y2w_`TsUZdtE7lbRB#suHYfGF_I$tbGK*(gfP8Wc0krN1EaN`@gQ1=VWjX){?dj(&Nt6N3PUTtc^E*vXt{544<>}#28;rk1ks}Q zCE=S~>H?8(-isv#-zP~)`6i>#H`&2>a%Y#DzR4Rs*Uo*DD`AY`uvkZO zGf3f^%-J7E<{_0T=JIo6okIPf8t9z|OyHM_DE$TG8?iET2Nm+DWayD{y1|zTik)<%eY+p|%E6nLWn7 zeOC2D1jG@KgwR~s}E3* zvhVxqp~lREx2gwN_kMu9z~=SS6ItUFyQks%VXTYq_UthY-H|S+)@*nI?oz@F znE*G;?B$D({w~&?-rg+@mqLvEFC%a78;XlR|AqT;9#?(TX8kLBjb+P1thcDqvS=}6 zh*hiqa5Z!Q?lxGi@Idy`1KB%Hd1b2yvOUw`_J+HA*~936&U%|j?sa)rmqI0Ssk#(Z zA%?f!hJU)Sf|gCKokhFH$3iuAX`zCn29K6n5ii8%^VbY=42FO%(*Crn|Gtg zG#8^tGap5fVm^x^(X2<2VEz+@-8_mS%Djjo)VzYi-wcQp1UU}Iry$7DBjK8=^|X%U z4p|jbg311r!!y1E(ZXa;=WvJY4heFC{3@g{v?9oBvAQJ4t1uzdF2QK6rxQer+IcyA z@_w`nM1njBOA3PA2cnW7C*=Hj32W^L?vX7U!9B8h;F80p!Jr;FLU?3v8Nm(epb>5! zS+Rtb`DLrg?8H!YvQ{#fr4Ccmw8X(|{xCI5YtGubeV95x)n3S4JwhF&jn8DGN2mqb zr9teC5o)dxayjm%L-&R`bl+E_!J*sUm~**96y62-u*=}TN_!BK8|kTv}Quv(Yt)-ru_jmvj&*4&u*;829|*h{~iDcFCl5 z8fDK9Gv4{d(d7Z6ACj{#fNXrM4aW&Lb(9Ow!gPqbXvw1xM~86kWMf59 zL{u_$NxFZZhHO;o3^f{xB7*z4Et=e9toqgJe1i%tf!hs46+8YwXn+kXKTd~766&3V zpM*v65LF8C2f{wsu)H74>tGt5RXltIzlgUZT)KkE;25s-cUuelIaTOS-Z(tq7|z3n zihSJ`seVUzrk^o&Z$$70%9c#{3itfBA=*?!jY-z+NBD8KvuPo`l&F}2J%C^(d?%eh zNztUUwArn7a*8^Y<+L}_^D7q^DCFdn)Vvopu!R`%GSRNmkMJC~lPH&%K2DzV8Y(}O z%186l*STfoYc6HXp#~(?o?sljVs-up<-SG3x05FH6%pQnj>lMPMy?O_rt)co&!_S~ z(r!yjqMY!L-A3|V0(UCYX#YBrB547Pq66NO@V|n@(a@1joaEMvr~%DwD@*ju5OJ0t| zX|qZa=TuCaGuu%-XS!i8>8h>F6pLbCB>jzDuEVjNzR)<5&ImZI{~DLQ^lWy`*FoDi z$HOw&wP0KEM`BI&Wu+>3`&$Uk2gYu~flw|?+r9$;{`_u!yd3~tfEi!3Y)KF8=cw#} zad>)%B7JRgm79m<)RmCQmyu5G0NS7lC|P|`scMw?2Do1tj(6LMcTHYP;1BB63H(9r zOmID@D-*+-Kl!(BygC zE>`6}Xm|H~=K8 zEDS^flN>tlEZR=e!U}8hObukfXui>2@if$*!r8mS)o88X8RPq(!hOo2Y?J3@f6jDX z@aIhDmP~NX^;xp{9<)-|XH+7#hPMDGZI_VB5kamnl5)-2E;rg3cnN z1Be!jAW(SXzimSxH#AN_3PUSH<2?XjfD2DNcfSj@^@!JcZj>7MD|l;#Cw_qoL_-7J z?__8cLsS|Xn^RgiTj4iyWn@N9 zmY)(^;U{(=p`>cgoGyx=a&uYn4Sr3IyYBO0P~wRwBe@Wyblvxk+Ng+JX%is%P{BR^ zVi$1fJJg4beY>oYuX%_<^oUo`D~<-jDdXy{L@mDycl%5I?r#5uUBK-h5miX+@D=O} zgz>PcpygCNOb5iV1LN!-v8Zz_`Awy@F&)Yw{vhFljFU|^^m67H6_IicB(o|B(ik3x4e@>CWgf&)Se~K@9Q_LjjUgNp z{KY-D4y*$l^(+_eT&E(9pqD5kjGW)=A&ucz*s#K_)PS6`c#ZI$bOvIuFa%sGjk6e= zsbRRC@bC}#MLi`{Uf54S?RQYdo8%9d6C1k;FL(2ke?WLwx3$H9r;m{$U@AO(LwGl0y`2gFfp9Rw(h-tI+%JR&lX2Ic z?mE&;`WlwCbJL~}Ye8s>J%WZaX$h0G?t%#)L%6i=+7Z4qMl_ry)VN;A1N$Hyp;3hI zr}Bg7h{8pKV_i|&Xrkc&x)KE1@&aES%`nJ$7im}3(3qG@4akMtXN={0t-&kZhF(9u zV%#~1dXejP7>5zQpY}#tkIM)TYw0y_ZZzTB$j>gV$2`J=sMFGVED*R;=|n~u&{ZC0 zQiUcuTzQ1cd6eO?;xJ07~xOSDUb&4XM{gtSDd_pv~VA%j8I@|sAv-YKzJKA z?C1n)Kw7?EQu!Pjr2TklMfryCSKMZmE)hP8?j?hjIikiD%4p*@7+)rQE_G-iHK1vt zLltz@$h%lu!gV@A7Ah|Y4^uzYCm034+l`|Aom!dK$#G&0J-q0C*Q}Bvc;8={UR*j| znG5gomli5_R+N;L!>j(&*{QMc2IqzS4}0Sa^ia&O&+h9}IH$Ct7!$92z~4;OUWI2R zEWk%27dx=Ix9EnL^YW7q`utQ_fS=+A<})w#Vk)e_?;rkRswljU9+F;=Y{xR9?YH_2 z6gffc`*nJ6ZDJ-Y$aidAqpDk4)_wKtULcp{TiD73_!`TpL_QIAjm}v=(DkRa`MqCg zgLJj2c>~;JT}C>*<_X?vVfkHXZTZ1zQJPl;vr~Q4m_7>J_uy?;Z?g(NTH$Hl0|J$; zh8Ix(upIvYe`D0!bc#}oB3Qpv@M*so!tPB~OSKGd_I0Y7q{WA^=-bpttu&0K-lq1_ zVCTzjQ~L)lg=%8{Z7ZBr*0HbJDfJM1`el0^WHj%En3$(pQ8&nA*h; zeJf_{)_F2(Uo}Cy(-V$``h&JQg7xaB4vs)gVkWJnu~PwTRX;T>xJ7Ma09U(pOF#AM zO>^=_o0Dtc90_xB9ma$?X+jjt$q!LfnV+L5F@HrdLwrId-)x6dTX|+2iZNy%6vNF- z6q#l&iZt^M6e(sYibQh(iUhL`h230_BFcOVMX1??!rwefpI-SMlER$qd_lCBlfSj)^H!g<{i8X#2T~YXnUf}fE_3o_ObE5>Fk0*RIEWUtwQc#l z)od4t=HwJCDdw%lKvbHO1Ka+2-s(9&?hbp{kGsRrI>e@7-fE_waEE33ad+4)e*e|H z)k7Y_?K9Lv%v)(5G;g&-OKQjBMyigeXmXxQ^D`etC|Y}2!K?(!RR*&qST2No>C!5! zpmKvl*?!2^a(&qEP(C<_9`w@QTEhZHsaEGYD2_yHu%2t-}eQy&mMgX{un*&HVP zW%?3@G+;g@{3uyG(ttTb_?LuB1LlIjor*uvCTYQ3q6+?0VHBh>{0bZH%@NxBM2^A_ zv8E8>kJ3=_CR~0SL{k0$z=N<7XU1$~FWt|HOXg7bXzEKf>26Q>i*9Y|gr|`mYEbzE z!VMzVNVqX15x#}agzQUifjgDSw6oIw7(f;FQ-`GeF_`d0L~@r2{Ynnu?cGlG7{X`J z!I9?2B*MSul(KWn>=ju`%5Btuv?pe=lcQnC&ZT-wY2-^Qp^EUYsGYIYulor9nEI7Q zxLjHGF73A*n$lic?{-N%B=o=sZb(r_QiOI8p1F>6#CsCH5hUUlNRcG*k5Typbmk<9 zf0FP(x(o)B9%)B0-tHf!uOwN2BanHGRiA1_uwC<4lf~-~RS|p+3mGG-t%?)MA9l@Q zA*n>{T0Gk|PVMifB#07<7YiJ(!q>+fBE6YUV{J}^X)Fg@*H8C+@XhfmY#MBBVDo?t zF)!G>Ve^5_7dAiG+QQ}!TL5fqE9V>_0xX1+&4&Y=P{)k8LB^`weT0 z?!}{h*;Za0ieP;bppZ2lwneIQS;0|T82kOO&5PNN*kVI?2~keAmvqDy?tuxm16p8L z58J$1-4W=h|1n!A``Zy)n0xNEBeu4z?NM6?mT=S-8i_i^9^hVxz_C9xF01&myu-G( z-hAJnlYc*AvxkZ5Qj3u6AZTW1kJ{n_5fBFlf7yUzHY@9S%of5r!Qu1kECO_3>x^Tz z*>>0Rz~o+qd^(eTlW%X!f_}55YmI}%?B#r#yJ82g7=f2DmPi z?eD~~p8onc?MNJZ*k6zBf6`UvjVL|^x%~?l@;5-Xf9XmZkZj7jg5&pmcTl$d=Q#F_ zzka*s8_xy>=mlM)!EQtY>Jczoz_1#by?k*#*isD=zenIH+Y{p12LXC?yAe=<^Tp;n zBZ)a)=)L{+c;*?X+qL=eEFn;zq(#A}Dd3ZO*Tf4x&9N?CcamQ4c~g9Q=;>I_>lR0e zY0j>ZFwOa=FX~;ki7)DHwHd*it;W@?NbP=l184((1BgXM=)JVj^ybg+aCeG;9d7w5 z(E&hQ^Plg@1kQi%>bMoYO7sMNjmY@y)u^pYqV!FwwwWeB*Wu*nXFhCZy#6$Nmx%c$ z=pCFe2TsP})9^hYn(&~>X8r&Eb48Ot$urGa;kYf%Ba`MIL!;h@~`SI}`Wfv_C+U`$w!ry&ZK<8LUc%(e+2O3cnE zW|-Yj zKRtvamA?|S1`|T)KS8vpoi8RLC%Qni9EV{^VL1+fsI(jt#YE(*CvYM%^x98+ z*8L((Gs?h{6ZLOyz6SKa@)}SQj4M13=_GSO%DKe$Y}q)wKRb}5Pt@jjVYhVG5BHGe z<(%LIsLPivQhkZvL3nN#)}x2+fSWR#)llILU@HrkI9{hlefj zi_LsY<)wA_7Fz}CBHy9xW8R{gWZZk$4#@5<&Ap9oGicJ>3n3hL2E%^#J!(A(QEYSx zEko1Ff^OXG;vY+HM*d;a^vWNac*>94kUD}4AkZX04r(K$cK7`BnJ)~*) z3VRLJ9jEN+#QDclXXIML#ht{iOA9fA%AcUObmUZ4Gz;#f+k&O%TAs%kF^AQaYQ5yP z%RLDHCw01-TCXJhUOMp7ZcQb8v)de22H{@RTWLemfAOv>PW< z<&0Q?OS|z7!hfc*Chf-Qta}Qar`eQ!oZ76RzE`jU%)Xnl?*LYZIdW2JAzOvnODKDj z+Z@z#wga-eKSJ5XWXnE8%H{ma6t|hBbd;dzX_m5iG`)*?I&kFYb zuwd`4z8ngR6sPK9k>Z24KYu#ZVH1lKKZ$lH=`emn+AuwS$sP5(sjA`b*cCtJ{@|_rRC=9`TuLL=c{lt7F^sHV}gs@Aqrf) zFN!J?*BJm8FGMlJoQon~d@MB2ti#k8^BEMw%}ppW%{Nh`nY&S>h>wLPn&&W;U|vRH zH~rx*0bD!=MW~sC!r#oGPlrx|q~PKjTzfFYe-m8%Yzr4Zj#2o=Cx{l(yi+U+d`^O# ziyM%_(29#cfYl`zufl}j;(x&?dd={sd3q&rC9|j;Ujw=%-7x(x0KYu#Z zyNxi`ckxe$vO|aT$8Qqz8%)fN(OTp!xp4ErVS%5ZKsn7VT|()K7`Fdoy>}=KNh~Ix zZU-POzch*;kYc%q^3`02Jua_Vg~s< zhGT5`QD7XB_9uFX-HH*p%F`f`zr$Ywq$30|9-f0=R0r2bIs%fvZ(!emx=6X^uEbMh zOMYXrj>mvxHBjwQ)S0QM0>Vz%Q0w2_R>19IIZ!R~eai0Qwjk>utH$i3lpR2vOY-;6 z*(S&y+DzFaHPI)@-@hZg6OpPcNMraJHtY;g;&e<){{B1*IIdfVeMq#(*KH}(xE`TKu*JvqKYcf|gZOx9XSNU8jJ$=~oIzcctbGo< z3fV)^V~IT;tBW4XiJnx#U!oBtNxCHO(O#mwB!1a!$|t(jDQWu|YE9Df38d}`x9`ADas0=UwN42oPeXbin0|tTyh#{4XZx!=QHs%+k}yM%rUZ;L#h$&nT&r6GIJD{!8k*Wb``;-$2%jJk#$9 zoUK2p2S?UYA+H#5+6U4u9Ax{TkLq!D_N2bn_xIfT)u;MBs+KK2WGe5PxiqWX z4#|C@{Br5S6!z&U&cxHPjms%4`m{d4mkfa*A7kpl6kneKqW#Y}wLh26K0U2Z^uWKc z+IrjP`o=LW1ix1j`##xzm*zwB1Mrdo5AP@Znc;_f&Vt22|6->tdMKNlWxuS|d$JjW z?E`(+!G(z~{2KQ9V0(-@l^q#uxBEU%XfjiW*lpPf7Dd_fE_YMk|8V!}F#TVft1KX}a2k__uRm_|kt0dF*2RxB&z_^t1rck@k}8}7jV5KfIC&Brk&Nb?U61=8#fk4_-X9Z-~* z$tY%+{ZZtbV^HLo`6$MiC>GZ zxRE`%17G@-34{ZihNVxb9mLY7@D6%J2>#HB^N6L|0={TaK;cYL3SjESBtg)`( z*03@-V~8vyxe{cnxr1RI@Fq_JJ3h|th`L4`K&}hx4;AsXq{al+X}sN$dXoHkGCv3M zaov~)IiwS@B?x0+L%b*9$*kK*)#khdU^HT6pX5Bmbi!pHC0;@}_8FqEs!4=9L7@6A zw5sG4!mB~z%T2jd9>4U1VG(Q|%J;^ExL|b|>ptFYb3P9)1k7^ZlYNBCJ$V$$Ae(xO zh>xV^PZBQw{z+O`XNV|CzbPIG3^QOuivObMnp2U+7aCRAzz0OvO!~J_E^LP4cHhEuF(h=+Nz?Lp_8le2EpH zqYGhOE<&C02Lf_`#N)`cL;DiL53nI#L>8g6>8=pY!1{vyZ~4H4Mh(LU<>n|Q)| z)2Xph`FxQ4l@vP1a%^=I6FSLM4Ocy54S4|j5*|cL#qjdMP)+y@xBVDM_!S?a#}LI8 z`Et`3+6{hiA&=JPIpJdfqJr#i9w~~V1D;2U3J70L9g^0ge2HlgT_ek=d?}Sb?lvUl zj8q)&D0HWWD#+D(=V*1GG#?)zMX(k-9g9lqQLf@UNIM{{$2uwxAMxbnrS-U)@Gr^! z4}mmZYsz0K;|^;0A;2*FjqsP~kd76w@)F^XQp0J4mx9DIz1i(dZ>I8(&(hXFqn z$6reNkUp;=ZO?b9!UJ>)p zdMQbor;Shm8`wY%Nb~dqs!&H4TR&2Cm~fQ_uN+(_2p{h@w&Xg;@xY`}#Xz~#@N=rL zixkP*&IQ6N0@$QU_G07K{k@FR{nqOmv+$=JHDbl%8Zl9Yh9S1Hj_lJN;!io`1FozO zej;1+l2G4q9zs`LM9Rsza0@MJdkya!%ow z%Cy1z9AKgHvrxr(017L${Q|(m!gptTRoD3y0yB~$!a7kgY@ zohh}xsW!iF>ari03Pn?oU8ar#b~O76-bG3F8MxQ=0qlT1N}Cl>e%*dkEiXHH%)=+& z8(Lao8RE_FuTjHdI%9TDm6}s*X(J>la0=R^%&nTNgI=sRTYoyLpN9megy$T!+;0F? zK-!Bx-^_v^(5wM4r#SoJtq{n3ff-@;7+#iG4#KICpZLCnG%IJugvXPDyyF7q{*;nyBO0;?i)f zpBLL@^r|SDqK0^u2RG@hYFibSpU_boqp1*uS4iiu4Xp zoOnA4_yegm9IE1>=wYl`v!v9og6oUBf>;BE0IR@TVi`z1;6S{+mA%s}De_Xt?-x@; z+2_rYiXyy)xU*SSQT`0)5GXy)OW+#`pFsFxYDFC3li_TIMm7x-`ksVOC;bzo--z%c z!ox+gij?Lgm`{RJbUWdMFC;vW8Z?aXrG&SnUi%B-?-9N(P&5c%c1-Kxz#H36_$T<1 zD$tzGBsk+M3S=V=X(t?5;0#sptcfa01>tMm`u!8aFHw&UB>jI7?xY71P522o2eV~~ zp+%=j!{H}dP)HgV2%qRy(^bMP)M7^ZHwk}^T7Z3x={6jACo|ky@T0(+DY4WiLr@#i zBRH_Ya%xbN*;k61Hws??8A7-HUvG+7Le0?ZwR$c#-muZlf_7>P!W0 zHV_R;BfLA|$uQa>G?ef+;Edf-P8HY*f0p!D&{Jwp_#nbxG;bhLQREBpJPF>R3OZ4N z;e@{#$i7dS!j~7R|6%=;7qaWghW1$~kD8?>S&?i|{j*q6D4S)aMzj2sVBZM(Fs*TH z{F)9v5%l4{%?_rt_F4CgQ2#SiQ(J2dnzN*}scc+o6Bk3Kjm$6^k_Tt${;WDRT^rn< zJz3kzcSVdSxibc6a%&K~-zg!u#!#HKp8_wTqsv$NqEI@=iL(5ZzPth6*t`=5?ur}p0n9-W}(X>0A}diGnMYQyD;>RIhUBrED3 zqm6U$UlP?8-W;g*sAWwgPi~?1P3jS;C^l%<-lvdm4Tk}}F(5f@vuh_uLMB3H0w5C_ z$#=9+TWJ4@sJPZb9qXZO465jnq8?SX^KdXETN|hL?-Kinu5vF;8HSKti}T;tLa)!4KG-%>&R(sSm~%q zT9j(i(^ZA7_@WUT@@KThu76?Ux4$qthV_Y2oY=^GI!}Z%Uw=_;3>?-+jbYbbSq#79 z$JiaD5RBT8y1;=PHZg{+8IuHE%TA5y2CBBPN!oRt1&*<4UIrUBHpzOop{Sy>Sq}Px ztsbj`X60C$wR5D9Z6w)I_IRv4cQNGf!+X(FNa@X1kQuCsr?QUP;z^~-NWYBqB_*w8 zFO0K0{z}p{7GX_}AKTc%arTsQlHPO(sbrz8^lh#oyc^ZEkKG2F2dLCjMU;{pb%Zr8 zusfQ%FPL8)1WstNWT3C~8)1L5TdNUSK8{`08?)Ic|NZ*TEHHY;3 z5MD*Jc#Civh=(dAx~NzZ(+gDK18VLf$YUBo_*e8gb{DWRhHw~OoCsACK7oBQ!S0w! z(qd|sB(g$wdxGx%5azPR6YY+7sK{30z7NSDXT3nWgrx1<-uvaOaH73v6-oC~uSxnE zMtBAc(r9id*_8g$9I__qYa{7Tpf^C$*9U}OBHuthgq&w?O~ad z?CJqFaMBv2u_pXp7bBpe-&JFV%4(8z?X)4-42cAb)TD@lFY(hu)o8wRs2c1mhoU~I ztoP*BKJ*f=NM(yAcl1sb`p4K=5as_#kAd&*!WwpM27moY*RTg_}WnAJ{6 z*SzD*_^$%OFif8Xn8c>`;DzJVNGsftQdthJ-~qg<&G2U#^OOB@HFKQ4SCajRs|9NK zvn2!X&&-J9eD?IfwB@f|L#|qzinPhW9f+pGQg&d}OWU~p2OR_1$j4-P{fbT2b(8tMX(YJVIep3J;j9Zq}AskoVPT{Pbki7BC$A1FQ`~ zraX(_{WJ^mzUrt*nWE-s1sb#Cn?74SIx}TaQpVE(ndsDL{y*wg(A-$TCMLgK! zGJBCP4TX{$PJ%WjNw6hkO|pWd)~R$enL=HOB|9(Evz4uCOn4W!mo`S=MapTqjmBiC zDHW(BuS4=fKFG0C7LXyy11(8^5%+JkIJNU?GBg-7hFUCTgQa6;Rz1)^9SvyuM zZD&R%#|$(L@KVGHqBN`rZ{qW}4$fvM z!e2OJG-Ner)3sv;vz=QMDK%v*(h-a!SCks8@|;auXRveUlC*q-d7ba7T`*Yh^GRAe zoy|CJ(}wG8`S~PA54V`)@AS^U&S&*i?OA)N3DSdp2P(i%Xe|W;l33)x^^sk1f{K!d zKak#Ky)M`t9Ih~2sU~ZZURJY0kZu4e+RUQQPm;+Nw(WvFMb1%`)2I*z4a6je+$^_n zWjhPFXm`kgcQ<|Nv7(T2h-HHGIOMR#mGmh#^cCVSSiwbmE)A;6B~{#usm&G)F4!WB*)+Yw*cm6kfFX`gs@g%YAebUg(Y2z zvhH+yAf9GOQ{+drTyVSJ5W;&>n+wU>0K!+%*evPKL3kUtu*V>L5xp*wn4S?h`{9x` zH<@%`R>+CfNG_7oQ^%L1BP{aGPMhmiDZ3aBI_ z<+E)d9YxYkZc$7DyL#E4@+wJ}5}UnEeKL*kn^dFZtC=kRO7t^TZXN#?X&XMGjYlPn-o1Lir9~1ryy-8(+A7TryuCE``%vQ|_x)v1DBvTJ1 zQ%I8~LYm-ihSi5eGgBa#qE0@OXD(~8%gRx4iWC?@@!VSk}F zqB^IzI_F@GSB_epW5I@?#aqzaoZ^FMh!l$IX`FCHb#HBcS3di}1DcuK+7o-% z@_tX@8Z5%B;P5#@@+O?>IDC9hGg#~`LDMy84>?TrT!ZFVT)GBPm=R_}@v_9?52re_ zPkNX$lh=Ak5M6_6$dPOCPq>t>!R{XD8f?-cdYH4skGq?*#9wt6)j_m)xx0uKE4rJ0 z+Uo9gD{K%l?%{8Esf)E=x^VvnYNoco3-8fD&DN%L;isMIZC>Q9_S4ck^McLlv)X?; z@ygBWOWMp%+}NV_;pcr|Dq=%_%>lES4f!fRwNWI#7v{}pnZHUyIGJ(gApW_Znxs|b zam`;%iX2JACF4;ngnGyFcz2MecBVxEDSsB^7>SM{Tv7`T(TJ}M<{zNl*0j2j4mhUa zaG-o_2>%}BMN?>a?rcgGWd@v)7?0CHCS4C162f=wMAbO_fm8wq#$Zd_tIN;J^kwa(hx= zA)W|=))Z9^1OU@*IIzHK>IumuKbS%A|42HOs+YcoN{n*Str{=Fhm&U~gWy2I_tFa> zeGM5mUUsXU;=^XjOu9emc*u3PAE-gn@kr$BgH(HN8r9=;d#=)7SwMF$Jr5`8Tj}{p zpQ9UBgH?M`ZxX*kQK#mCU8X4g3ExiddyFRV=Lip?+n4T!TnqajH7ir7D-%e+mhMu% zhOY>`NIB;A0gR^t1Idu|GA0w=iTYQD$L~T#_;iEmImz(&4buOK8Y=yZ*@UN=?|Gu4 zbfuQcnfv{24{8Y&xER1YS=9yTOth%*3{jsq{Rp*;sVOb3$i!%;EM8b^;tHJQfK?UG z{}&1oa}{Y+^Q>Ujk zw=8=L;Dp7O1DF45>a!Z14bXa3X#HOpU&UYye=nF{X6ghj-NJh=Rg<;I5I$q6>d=OV z@Rdu|3~gN)uU@Kl2z(QYi5b@q!13UP%hZ^*XJD_*f!QFaJposOo9DXpMuFaeVw8S} zdvZ$Vy?sYGG|Yql-!iqS_KF8zzfApJD-Pq!maAQDXh}E}b(MYL$L}v!!>n~?%l%BV z6*jIuCLX>C!4q)aHDAHQ$1p1h^AjQ21E)H|-0W-e@Y@nJc^HNaGu7kakyu>v@LVKJbA0y2p@0n zt?DrCSQy{F6(~2&k6+uW+O+C0{xjqwt@K4pYR!jELW*n?#5;TldVdb$gFXa33w>yk zN?#+rwpP9dxDB^7p~iVZM;2|OsX;-M6j{KZ5S!p{=^DGk+vIe|znli(r=WNiO$!k^NZpG}6ol{i%_sq;SJC+G=DC+7j-78+Y6 zb3Q>l47yJ4(U8>X7Qc6)F;;S?jNjjLt4D4)Nv8Hn?u@1(c0SGfO72V`d<#7xS$&eg zn<>4iLnL>~xzB^tAjzGXyw?uk&MssxknBk^$|Za#-Txf8Z%lm&zfM#vxpOez2Ih)h zB=KIF_nsw6DK8WLCcWU2JI4`zm8y~4DTCT$)GW!JGf96B-KA{qbb%Ks%iX?!A}SC| zh9q~+BRrV;S8^wQQTSzCBRi5i7m)s8dQOr%8R4q=qW_9J<=W;uZVze$71-p@@9b1p zySVdBRT~{9mK2eJu-``0XB;b;(;rC+B_$x?GxLlv?(Aj+vvnyEzNMsGYvE7I)mA>Q zH$z25*<`Y4bRx3oTkn6Q!lA+80f#3X7C5}%XaI*d96oUP!r=#pKO6yY1i}#nM=%^# zI6~kEg(D1(a5!vm*x`tP!vRMm91Y=U1V>{yqAK41DB3c^KfUe95ox%fnVg=%tv&Rn z{A#K`mItTlo;)W_xAMVh`g0;%j@iR$dO{ODww)du3qSY^=K{EbWM=9Re!rC-&gZ7< z!8|!#ZyXJB^RJzG0vl#A%$SMy&Co-=1k7ip>!H1Lkb#mfSeDwqxUrzx#?lP)ms8UB~G0u`OIWA4S4^fm(VX&4p|LvrBMOJirUEii^O1xN*QSX%p^{?^far5-G&Ac>he|@*N z{9AA}@mW+pfF2Pp>Dq5A61n;{xr6($REcFbt=O!^tnk~G3duq^)%k5jV#Ve~37YO; zFUVo4=MJ{V;?f;#i5X!w4liLF9GvRR28k7$yU#ZfQo3SDe_gWI8+H>{^;h;H%!%2Wz9_`Ooj_=QQ}V zPBGmUDRt!{&5KYTCs3U6{0Y;Op!0dsQoXD8dOV-HR8O)tqB-r(SP`U8`R=89bk<<1 zQZB`mfe0yQB2D`u1!1}b2jcT+5;@OA6=ef&u}rr+&{xB?n2BUg`gYs+3n=~@mDY){ zq$~F^UkKuqDiY77AXKi#NCz#18Y3OLN`4!P`AR=+eh^E#Xyb9q^0qT$buUJc)(spi~@OOZ!B8_*iyu%QrXZb zb_%e6ASUDPk$&vSWt(-6E^a{jK&9NWQjdI zE{Gi`>@#=>fK4vbKlr`11=XML>T0yKA{k&U!4%=Be92I?rLX)N^$c@a0XW3e8l8d5 z3gM$Ou!y2OY#`2FaI&)-lbfsgtk;c>TI-G#GuG$>M!C2tZRALPW1i8JTP#L@tw!tu zei$Q42gjP5rFeF@VTGksJ~-Tnip3YSc9aE%!#i+wzyqGV;H=^Z7;27YU$|rNm7r)v zac#UyF*t@F3pWOLr4K0|B+#KjPsWd<2y;~(x9?j!dLJL~Tk?)IDg!dpDRdWmI&*e`4> zz^oXjX9>x4IMt2QKKYJMnINV{r;8NYdy4{bA0|yWw34ua4pU zGL0myPYj=(X>?O#`3cBI?x4Xz&LE(dg)<1}bRN>dNU|OvlIRRLro+5%2Saa4l}M^7 z1__R_p|qa5(bQFx<9t^K!=5W=)LVKgPLxncVa}){)hMw7msEq(3utZ(>C0(^_1xOg zusb%Bc)Udvlfl{!o(1BR-6Y=aw(u{9p7Dft13gUp`FgZ^5H7LOe<{N1UrZsaLGsfm zmOHGRnh?vm_6uBfg7`X>e#33;|7)It;^j1)b)+WC>3~E0B@pM{fzmjiGL!l>nd*K( zR%bO5l}gewXA7XMMQ(cly!b(<@tX~`{$dM2D7B#{#kjFlNhIM_Zd(AJCp_4#%?9Bg z5|vBldxmh08e2s6i4pl*S%x)N&Yi=U??m|!QgTw^OrmGWjkvUlPX$(=O#KC<-<#ja zf_{~A=jW)-IV66LTRVaHB`WWnAc^&D{&A<@ejAHPyB*CCO`uAaakVqFLB{RP>AjLK^D3SK;@tIAdIdcMInS_( z@CDQ_l76L+V1WSzD;i3*t>#Oxw(V4`BRy+5-LRV<#MG?kV!{4bK#PJ|yM za}(&5DkJ;^H@X<>>Ij>|{^rz*R@ugMRa;NH0p!rQGes2I^{d?g^cl=d<;}Vot_{u) zaf5RQpNFZUK#jS>`NE$>?qBA7#HRMJ9UzUrkYmKVSUWlSC7cyVsQ4(yn9<#XRNlC`}}%xQlc4Xla5=4OF_vv8{z5xxl%+&}V^kBw0N@mAxZ zcEp31e`s{_`4T4JP`;5r`Ot_{XYkl;+r|Mz6;i1 z#oP+5ue=LdB2;=G78M}Yya$^L_B{m=E+^pq)jp2`wrMW`cML0o3IF-DO?$Z5 zrkzu_O`9ivZlrSUw%QOk-;MP2P$Gi)kuyN8AvBelAnrqv3=MNhfoFk29@LAv}m$i`{_fOE|E#BdK<}IpsUT-*&70 z2Z0wUEvP>vU;aV`)=`5bUurZWk093xp9>}*!f(4hw?M+%(tPzCp|02nuQbCrXr`o2 zx!Kx56-dsEqXJ(Mv8O^Flk^JqQw9A6tjNuPo9K=+3C|=u%jky97Ysf`rM1cy!GA2s zz113(lZ4ob%H5@QrIEeqaK;}0geD~Hgy)j}26{r03HuQKirbSIBybO9z8@cU#Tdzk ztO}}t1?o`{1ZbY-zwUe)B<9(X3b2+h=^aXy^X$G6^!eE!s$bI~JVHk`h+6UfAmJ&H p9bA*>9dG89=S)(Y(*!2j)A;%tBi~^Ott;R@9?*TjpkN>n4NMR>OOWs#8Ah-X_rG14hI;&Y{ zHX3-qHGGN01mO>u8ZtFcz%fE1Y9v5dFd!x%Oa@B~NQNZx;koagPPd!9o^yWZch33U z``&B&sIJ|;y;AzYxnt7I%r-kQ)_(i3w~taOmdot97p3m}uDiLbO_Dc{)mp2i!Q8G7 zt%ps{oIFB0YHqc*+#=1Zj*o%D?khGj_ml))|5{3jYirwuC(oX_I?nd*GP8L$Tj2|U z9yf93gCS-aWo-pBq^r5?M8PU&c`k3-+uG7gnqNO|=G4I9-aXF3O1&-lqw}m&J#?L1`?UL|h8viQkX{Ur&MB{sto_17tqiOuTq^Io` zULlQplAhKoyqJx~UBb0dEhxMK8lRH%v^Rv8Pvh34r@bn?JR1KS_64Hzs5V_-78<`M zFbma61(rkOrv;WnwJd>U)A(V)Vo;n-HEfeX;|W2`pxRC0nN<}yW~yBhajNngy{*rFV7$pqId%xwDmf<=l(4a<>}Xfp_&)+(h*T zZUXxI+^pBPaPyXafSWqKlbdCFH#ZCQpSXENzs$`Xy^ouj`XDz`^;A2UO5MiIIDH~F zWA%C50X7WHxsN!zI>`2xa6ADE%Y(lA+pz;Y1)02Aa5cNak+PVbv+I|D~dqM`X zVDLHc`2vxTeq>!m3#DfdcNQ;}rlqr`#bX>cUX`fn2OZSadi|cO1N?;fX&S(w)0MD2 zNMqZI%SWFFBpdn|XEZ>e2Ds+0)7a0&i=;kiIfl(Bsg@FhU22KhELkM>&V-kwb0&6j z!pc}A>hUO%2nmLiuv_&719Bj!$`CaAR8{ekKu`usgIw?PD{?R_dwpTWqXxsxLzz%G zXms!eR3#jahM-E0G)GjWQTDj~e&U-NlpzrelXY&d=;Ku)p0F$}) z_PfJrdcZc8*(Z+87o@2Mg^-0{C7>-pd%m%~SznsKb0m=nA?_a~@Po*2LVUkf;10xFz~+JSJ@D>wD3yP}YK4pU|3&a)q{x5? zX~)EP)LVtPhWM|zI~(G=5VxS9HHd$L_-s7NLx_Kd_~*Go5dR5-?^i;OVB!QOzJo7d zzK+4gmEOn}1vLgr$hS!x2P{Us2l37kw+G&9qt9(T>6OSo$MFIfun2ctiiu0?`3igN zDwdV!i1GYD`MLoYm(?<2%pZtbQ7+?TSbxIB`3*Q8c5JMNh$lu&ec3X~BFCu;fH!}xu{zJ_9dvGtwhi4w*O(UM#T7k!i85*$|-^yVtXOl;}nsTjdSF)&Z_Kx0S-8hLI3~& delta 1812 zcmZ9Ne`s4(6vywo@ilFlA5HSIB(+N-ZB5#4d8-cFKf129WQ6%gXXk!&iaP(9bOVd5 ze{8OX8aoyMe&CEtzUl;j&2@R+o%^k3pCa!Ht zkS{r>|79fyA(YVwj!<|LVKS3gUH0J34|Jnkuh1~7e}&xx*PImwL!l^?pdTfpq#WOY zrTC8G@EakPt8ujfD|{N-E$w%~5$=`OD&YBWu;D@lxhC?sh%1@C`6sTNM~f-KSVS`G zJ5d2s;YVu^A;IHRwJy6b2eo=1Qi!Y%!b1{YIQQ&YZZc+}$ zQ`m@iFyCCDLhOM3v9NXnMq+-cdEwt!+#RS?sXZ(?08cmhQ?KBi2Mylg1sizwF!pY& zCuXRuhnOE_{Z-c2F;6k~d6d3|`Elmoae+SO5Zp2 ziH&ML%ls0(xfmZ~Bfel$`b2>WajwYOznA&vil@YfWv6WM|A&bxO#lD@ diff --git a/dsk/rd/bin/cd.elf b/dsk/rd/bin/cd.elf index 25c463738bb25c21dd6a9400c6fd1b5572077fd4..8fb91ab6469ff637e1b804bdeadb8a39a4303cf0 100755 GIT binary patch delta 2993 zcmZ8j4{Q_X760yR(_{%;oDeP!A-O;Z2uA)I=TDOo1{sFYsZHC#I<3Okm(C*gx#x3R zHmE~wT4iZ^q2DxU*Rdf+SG7fL=dHTY2}05E#wxLjsq3m%0&R2wuTs@%8>=E^@A-Sq zx_y%Ue((2t?|tw4?(VyL@4&Ic()3#S*wB%6J>{*eI9_Yz(xCeKbV4~YtvpjTP&MAd zhGu`~VeIgXzx(yP7}XU84d~3G+BOS3!Xk2=#o{!k_ovDRUn$cz4Ntb-At8Pr9Wh{`RtW zrAB^IT`AWz@VvUA?2ZP;@}A?3d`=zN(8$;_EHw|Kuoq@q0Zg!Oc-E>1r>^8I2B)Tx zf2VGP{N3fbm+JPp&HwIMIbzi-K1T`?ldGc7s4_E`BBPrI?*x1g(A!HJ9KB&a@n zsxUu)2GQ9(Y=q#B0LR~{TAI!roMqM~T)6TE%g$JSgu#jY?7a(>z`b}*#!5S}5~8!e z#Y#o47r04J7`6nGs(})_h4bfUm4zb3c8UqNeZHMas`B@n^Yhbu^STv3TX#W9mrWd; z%N(3*RkAms?;^7QD$q(Ld%1+{D*|as_U9#JO2|Gc&@v?( zE+IQ3P`Xyh1_i8DY(t=>N_ImD+20VTM#)x}kiAVHuaf;2>=3lzRqSrTEm5)`2yTgD zHwkXBl07fD#fn`axJo7a0&s9q<|-AN%9JbFNfB7C*nbwtV_6X6QS2+icU#{C->uje zgzvJx48BXTbHbOccJO7zJ}G==Re %8h4$aIV4CyfKC72BLHZp|qL}6%IJd(WIR9 zXyOh$4nu_pojcL&aYAUm?igrBoI_~7;!L60>O6~P(0LI}z;V#DJ9#u~o%hf*JAXq{ z@3>pR)HqdWDxKz5RyI`dIQ`(}&a8jOwaLVrXwtI}&Ec6;L-EPG@fYY3*!z&p%t-JI z?htWXz=(TU1AU{LUuth0sV$MI+F;(}0uP6%bO;bce(C}PPkNymoa^X_vhO3D^jrb+ z-?G1U@&1m+HK!Ix6+(_;Fo>c4M+4*mQ01idNRq3gl>kc zs1euVhNXcMi&~Z*VR1u)kZ)M^{{1_`xlgiX%s6&gS>2Zr$hM~nm@%1;F=4=-$7G?p0Cu|9O3 zitmdXkHj_D6+<%ln*%<+r>nUJ?mxT|d&nlh9y!#&U+cPCYUOgb-AO_fM!^_>pTt}X z2_=3j@rhRcR(Bhm*!(qmZ{0MaF)^ z&-=CAG;bM^PlBz6oUb*A;Ki~KriuTsUhpR={*T1(t`qz&;*as>jjHd5;CY#w{g`H< zCxxBlcZ2#OT%|h<}dw zHz5z>j}yO*_)Gj6^l+K7=9$PkMe4iU8&G{$NlnN?T|(+dd^4yYlRDBY)L~Np!5;$k z2Q;rit7|7U&rbx@t~tux-6V4FBh^J&uhM?Th_8_N%|O%I|GQdVh^~UQ!5E^zqN(GZ zJ*p4i4Y=~7)Zal03Gq;my1kXuj3#n9scppniEfuP@d4t$x=6$~5kJV!_o(S%QkSk2 zY9shKb`pPSx!|7?G`olR9PLgm@w%&${U5zn6puK zJ`FyOB=O_a&<;VfZxdfnTX~lFG=IHU^*upq2W{3pq)zc`y&Ar2&@Vkh-{ams)%P5w zyj(8SS19GDd^4ygNWI-H)D}`-;1Bhw=~qY%(>3TOHBS5owAlNJ{|Q*U(iy6z5}%{^ zWpoGNse%JP;4uFE3Nd@>8qWxx-`4N-jZ;hjUgDVZCH#YNk$3j1(q+EA|9Dx_GVz=< z`A7Z!MR1A(%=vErkt9Fb!p{t}RpYlZ=8XICAC4S}e>Tt#pVmX@-4)4TfC^)`_%A`4zC(C_;Qt0MG9)}dKhagg-yW#^4}Tifb^rhX delta 1945 zcmZ9Ne@t6d6vyv-w4`Kce<0kx0;R7kvMhno7AWOc+cC1vEC%pL3{iwl{bO#S7-sy% z5E)spn^2E&bDB;NTv|(Rtm+!C-4s&+z0f+cASu3g4DoQyehE-ReON z(!APqQe!M_OgLbTcULERfsU0S2Ril*=RS0b9Pp~WTK&bIoV7on zr_Pv@yezG#weDo5yjxXW?qr?oNP#C`6|G;!4(~)JmX{Q)zH&CZzJ5{67OUJWBv~9; z?rD<4+cQe?K+ToBpq3|g!)Oy`JaxD%r~m#dCL&!Eg~w6~KKE@gjT!$yV?M`@riNVT zT~}ey>+HU?0S^~P(#Bcz#E_LnafXraiFDlEtPP#x!jWZ1#WZGo1#W{; z4{{7?6Oku6v6o^WPM7gaw%}@&I2QxYqzHn(QZ81WkJndM-{5Zy^zYmM%(KtMM<0Os1_Km^P0-h%7vVmN$Ud@B zwDHk04Czwbp!z30Bv`0k3tENc-AmZuyNE~KaM@pjrwM=icVmgB#u~>@F1bh*)u=?P zVwHRy-e|0`{#7dFc9Ji^7mcoMw62NZF|;|#7|TFX^Jl+eg;MZT>FUBgi%&2CiPQT2yjo5)SH@Adr6(cizzxx5Z_JwB3PTa zwnSO$OlF-Wbs55_en)ClmFoSZUV}kY#X*b8b55ytka`oQQH{~M1JvyfQqRNHChq-{ zau>>E?qj6>L;N$lIAj*2&uzhZFN~Ty%R?v+{(2#DP^ue7W{-#PQoCnaZ;N%y&3PqbSoeEfYeL0 zYd*^DC0>vJ9)Ws@zmHbj#4)P2@s*jO_yM{B;wvG>Eb$+<$T}NmJTE!;+pJoYVkT*= zoidf3gZ?(IEWyid32+5{$(~?BQLpN7H&kO2|3nd%@yOtQ22J4|_zTU^PA|L=7C+RS mcghQ&hl3`sjJyJ?DD^c-?<)xG^cQTUcI#lep$NZ>h5rG`%vU4; diff --git a/dsk/rd/bin/echo.elf b/dsk/rd/bin/echo.elf index c6706e71c1f83dbad420bea0ac870e447396ea27..77bd4bd1e6d4d6dcc492290e3905a97db6931ee0 100755 GIT binary patch delta 2503 zcmZ8jZERCz6n@*atowY|jjn^RayRGrm~ImyqJj*i+JHu#LPSGi*WSS$ZEtOFQQ}6$ zUNxhVD_o+YhG-1_0DlN0dV>lB1vOyM@KZwwj4&865F#!*ndjX1bjVKf-gC}#&UxPF z?fuw(TyeJZo!QQhXKkCiptQxyY+L5t*Rz*9pDQ!{Re|zB&N>b|pfLP!rMa}K-MPwT zrmN;I9jag~AH0$qcHAEv>zjHITMiwaXg&tzTyV^h4~{(;ywbZx)NhgPt{6B|bmd>PxS@(@D%bBWM8*pus^NNdAu=8lk(cX#!Kp!lmmBj1R>}3>1y;$8 znF6ce`VoOuaHC9MO|LRMbWLWlIWIMz33KOd2|b`57D(*d(h3czDCzzokBO=x`?jE zx{j{ga(S7jW5jLMds)Z8H`TuuE!pm2ER=WW(Y-O4nPGuCc4-JMfMyWQ4LU;o?jF$> z0mr{&`k*F3eWk}dSsUoQw*Y2*pLK!zrmHbVrR)i~ZC9382K#Eprd{kzyMUk7)K z_Cm3_$RC(>Yy$Md&{x>G^(oNe`y9gKjE$7RZXXq!oBgXi<2S~~L;2uUb6<_$yy2g> zWPA#=!+~lKp_aqta2ft&9Gd#wLs-fOhd}}l<<4FOUBj@!&j^FWP~LZRin+F~Ij{>5 z9JEg|!jT`wbum6_Z*{b;-E-mA-ZkcHwJy^;?Ez>0&w(eV^|-R>Oe7+w(@agusj#M~ z2`Qm!5+rd&)8r^is1mfSle(3dEU76es-)zIrlvMdRFWyxW>6BEoJwVqFeRlorZqV( zMZ&QdQ`%Gs3TldVg`BHyt)(ZnkIEaAhzzMFh5x5cN#C9(HiTmeFs0UJ;&MV`nyO0iaAMs?2~M7{WeLt? zI3i0ixf@iW2AjMqrLKpjq>_{w2+71W3Fl+LCbRBLA~NyADe+`X#tlGuCb2%DzMK$; z-?lkm{!+it+3qz<1Fh5lC}ACN=h!T~fHlE#up+k5Yjy@&=bfy$y*wYvPH4DJcpJ`u zErf-5W2L!2&^qU)ON>2Y7a4mTd^MC0IR#$f6or-MwSYgnhN>ANMGa_Ou)Lt9171SR zU3dXo2MgK0p#B*)%2=H6e=0?P3*j2!2MG5O{;I&uw`O{?uTzh&RLt(Co_@mLEE9Mo z;RfM52>%woooMgELTv|&MSsvn8QWFBiT_E$aUbZ8VPuLRGHC!m@<_Cl1i^@H zzY!jtB7H+(gi2ODRZyOP9qI}HWIHx`hR<={ctF3lN<0`a(q!yL^2VfSn3trzcwwM6jwyOAb z>tR{ivQ;h3i3EhuGB5;Tf4Efz5Xm0TM=6}LOAt-$eF%0MN zn;Vq8&6aB~27-yvGb|b)2eeA7NMGUI=_WpHE0&j6plgFX_$Sbq(yAEfvGRLP1+UF4 zk%M~PlUZO}h-Xz$hBx6zY z@e{;{h?|L@7MxqM6TKazQL9DnBhp+T-k}kE1M$nmuMi)_s|?l;jg3cWi@8M__h zRDVD5yMlY!IT|kZ%RQikK%6L4PYI8STj@thC;kkcMraIHg-gta;ROd;rh&RBFiN~S z+SkiitnnKP%qc`6P6<=QOK2cSiP{YDhIIqY5)adf@oSL z>4QDm4{%I)weIu%Ca$JIeJBPCgQLEmt}tFNv^Z#lJS2(6`vhiM;5=uO$!j2ip9&r% zK{D~Pbi!T4vx&FR9f;klG~#>L-RCUg@97|ERL3cJGaI9m<6je66F5%XM};g1!3wF+ zDf*@r0<%)$iE6lf)eEqiv6eHjCOaJ$)5Y}Nmsoy z?K$W7JLh-LyC3gm^5I?=@$<#2T~SSGT+-3b`h_v}~iW!Ar-=Jk6_s z3{I?>4yI3t!E|mmI1c`Vvz5W)YvzIzm33bFR#{8+Tr(jHK*wZSGa}SLuJh|=dfs12 z8!Ad@rMq3A9=g_jmk_AV?sNaiAslI-%c?#X&eqd>Rim)Djy6flOIFnpa?1H=J-u7H z-RG|-q>8ELVa#lXnQeds18b)B8VIf~!C)Z-KQ5tPNXv!CYO_VvTkXQl<=I5-DVtE% zoE=!QUJyugcCz6Sm+)5yEo-Y2ikqpgttKT0$H(B|#-@or$evSton%hv-PR+IpPIhI z!JhLUJbdT40If{lI+M@8#k^y#W-`RFe!wQ2YheMPs2oVXIIutvi}NB7qDV0lv5|66 zDV|sP{=0mBGCSCov!zPL$F8QwuC|Do?`(uvo^g?Tjbi4*f@gfnJz2~gEqKOp?$wEz zrwg8On0wV?=8=MD?B!mSm{V%i$tS=V++O1+Z%6TK8-n=W2@0swO>5%_(L!m@hN4-h7*xTg(rbxxxIBnU&@= zGrcBUkf9mBS?mR~%&cZ+sd*hUHRcV>EH>9Mv%m~_Ny*TR(|icRY}K_N+g*3E6Exwx z%|T~<6^#KFrBB%4e)%}j3WlFt8PYrs+TyQY{~tSo$;#j<=S7Ivu zb*3DG(=6b!$Cx|ed;`q?We?ivlm7bF@p({!l!sa7u658$WgOgh;O>{gZ1>vfS%0@M z^%Zru%O&|A@_D#Iv$U+@5A><_>xE4MJ=Z>1TLTw`-)yJV*6EX0i|ij=-f>-Og>1#` z9i3g>J-vPXfzak~L>VTDWH_uO5=4zFT1bzoF*&B{G6bVhT~{I`rpl0VzdRfrQDjw< zBT-EW>#DY6o{4L!r4Wtjil!ywP$egJBy?p|4u?iYNYt;&N=nmIjcg7@xKKn%gtcfK zbcmYNWp!8{RYsYpHE|-r`iLm8C^W!oLXn8ZnzWiw9*idR#QgLTWqUNNK&Z>1pL7>Z z{47jGW7|U`QIOK^OO7fro#?76kA`A9WO(wJ)fLx_hr)_Hq6|YU$5Pb}6ITRhK<=G1bPEf=HH5}iM z`Ts`zsKoKR5Pz25-Yt3dLF6V5lEYcxnpxvTx)a#L;Ip|_J9+K3$R44uc1xi*kLF(1HpE--Kt0Z3awp;uebqbq&lH;^5 z;P$ZJGEDOcoa=h5JxxOa$@U4|5tu4T=o)*~Y1Ff#y9i$7;AU@Kalj^g)# z+8jQ>pKY{rz;{jIg*Vwlw+vW6p@*3GnI3v*V3q4k51(m{ULNRkeYBECU(k+~eZotF Jbj!+?{{bK@#8m(Q delta 1880 zcmZ9NZA_b06vyv#X?YpUzHH^;DIM*j3tNrUz6@HRK#O53&KTHBrkEIDx(_NJ+)Ip_ z4QhSKWFy66LNuAch$b2}kj90vXgZ9eh#HJB(+@`G+c0$z{4gCK#B+O3XTnLE^W6XM zf6hI&H*l;rctojln%e0SZZjLvegq)$EZk%@bC(9K=EU5ArqZMz3yY_M%PmPngo ziKUg;X?z|uszN^9_D^ikR;I&@x!S($Vyq1NOp9Jw6V{;D_!X*f!>hp-i@*3*MXuKh zta`UVx22hns;M!{%LabF5_Xn<%NOjhUVbNkN`t%9n&J_Su{q;WJ3ORzdYpE~%0>5e zjBGDXu!=ZV-?n_*j*CC?i_N&WuEABchW}iVDy(?2fKQlG$13L(-mRy?+xBtZp{J70 zQzg8RgW2uihjj3`?Wv#KSC!P2noL2<4KAiM{wC5(=@X9J7yA7d+#J3+%=8aToGQ4qy7J_9gS;30rK=cnVh{WT!Yjp|ekv;|XT1xabxO+4i7#95gHoG74o&{59j@D=iWaMIp6$R{Y(@BZ1&_THcl%p`7yP?;Yze0QuHv#=>+9k!@XT$n z$6N{Kz|;IM28lq6bxO>XJ5Xb8wE0irhrm6m7!||o^9Od-)&)cLJ-vq?d;G|7d@C$Q z%V4b5wRJ#e5#dQv9>Y8wcfd+*2hZrxS~uj+Tg<|T(Sjd^72Gb#>w8Ea(}4#)cuU|9 z?&ja=@LbSiZ*<9hc8Crb)%fAqrq>0tL62o`rNsB;AY+$62|3-BI=StZUy#K+KCuWGaSB<6pFN&0qHjk5YN&EgZa97eZeqsq zF(Ty5rBWDgP&F%!@Bj^Xk}L<{>jt%5BO2N!Yk{av`Vjp9`bl?_{+?0#ouqrg*QoY~ zh|beqRk#+>Li!oItU4oQwwrVlb<1DoUebH%U=rltPr9R6_Q{g|u++QQb*BUe2y|0H zVWHH;eTXG(2?2nlm8j)ERmwP%U`N@MLOIslzvrzO4NT3&%T)|{o9 zq7vEheX4mArjWi)bY#Qd#v5=gtoDx*t)NQ?P;C$C!!Fsgi}bfJi{J5&)Ghy_d58Q9 zbje}ze?WR&sqB-#St*XytektOkotoPNL?eF_@F>vs~B2W`@1VWJ<~VQ-#5|B z%^#pmN3*_{+FWiP&TG~uQd7D4YF@K&{~)4)o4fLw^}N((a`TS7W<4UcQ@I(=YgWJ1 z(zV7?@$;!F;EU+{Lmvf8KlyEaE9ZR_Nwba~(0X}YSeIn<@#`Q2S=GNPCUSzC>c@ejU zTSx2*m>X9TaoyqbTa_<0z`_2^8ga zMID>&A9vf$aIA;?-j9kdXu1sl%-miS10$&h8@gj--@p%07t;O_S1{u~(czF|Aow0; zju=-M^Di$zFSx8i&%sXUrM3-JxE;pJpxS~C;cmEEIe9`{->_E6t`RRb)Xj^p!K`>o zjqqUq=y9l=gB0r#LlePl?PY7kctdl23y|`Buj3qIz}H;`RK)A+M0?|6jrrZm2Nni5i9$VKH3=ms`|L(QZxE6KW)y(87kE=q*^{3EjyM zjTu@Zk%~iY*Q*0 zF1)yCPrO^h0?>IXwmGJ6jmgDtzpGIkJ-w|S?`zmk##TDNY!(O?D`N1?XleE-{w}eh z*;k*alwR|tlQTiDV3&BZ*|)gUGugZr+!RQ&m3S+KT}k{|k5K0O>f38%*itfYB=fc! zamjpN`tA~GUPb0RKzbnSh0`RjP^95r;)mRlKSll)argxL5zWIN7(3vZ0nK-INsiwc z9FM|-`IpMB)2zY4j6FeybhQjPgE-!f7|=$%miPYI3h+??tB?hnV2IM?$~#hLfJ#Lh*kvfC?$ z7x_H+Uo)oKO}EgXOZ>ISSDL@UmM#>FeJe`Z7Rqut(d#?6M5UAagxKplxAd*Eq|L`5 GVbedOOU(BG delta 2095 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 delta 1943 zcmZXVdrVtZ9LG;jdmSxEAG@`a^f5+(4r*66#zvHZ4)E>|9Wc>J%zVsEd`H>T;7DZ! zL#;;0FWDmuQ!&eQE}Gd$NaLW+gpnB&6KB+@j2M@6VsspX66V*B6&g8|+W9IB|X#8sxZAJpSdyl-7KQoz_B?ON=d7X8(x#d@+@yeX^2PGx2k z#0NGbB;R49Oz(sv+rLHf^jwXAvICjOhB)yWQhrN6-I^KS-wq zjiwD+OgSO##;~)FvA*=K<*2`Ffl9ZxZD0ZJc50`T7jPz;jMR%GwA>-wV@=sP2Trz% zi41#}7{--m?5>AhZ-HUAw|v<(=t2{VuzaHhYjNhxj7>2%myg+gH^Z#^-n@d#`YBuh z+s!U$_pGjOLmRQ6ng`Y=y1C@t$6+UtSYunF9OYH?@U0^9hs3LgbRMQid|114tW z;s;wRJ_crFU#jqTAhgW6JLdM(RSb?_+wV+SQ#o(?9#1T7a8j!xz-M& zD?^cuH%NIS$!}usK=1t~$=@NqpLnWJazF7y*xRwlZ}DOZByP88qxgt8f0Dghr;HsT z-eA-1Bdn5y4@kI7%W)F_n0PG}w2k;D#P6iU#l-QB=!rXMHxCp4g7{lYWue=39%1Zj z5sUR=TMXQ6>pleejsf847;aE2j@1Vs;r4wr$oon-Bo4(0vg0;6aWAK diff --git a/dsk/rd/emr/system/login.elf b/dsk/rd/emr/system/login.elf index 1b4776741e3395a21516ae5b10f0ce8fe73b67c2..06a50c74e92852bc80612316187804c797373e0f 100755 GIT binary patch delta 3042 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 Hx@Z0cMD1lF diff --git a/dsk/rd/user/apps/shell.emx/app.elf b/dsk/rd/user/apps/shell.emx/app.elf index 6608bf0bee60c0e11e905f9efce9def399c7c5ca..b9f7ef86e1bd2ca8930f1653d82ae9c3e803b9e6 100755 GIT binary patch literal 17672 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 delta 1988 zcmZ9NeN0$re2&j;QVBXo9UC2`=1F2k=0@U2R4hetD`Ta&Y>qXf zV_B^;z|G=EOhl*I@E@~~Ornf2NtpPLi!swhqf?o}m|3GUb})oEhwvh6bf!*{(mBIp&Zp zI{l16R9YL&a}s!z*v0viB4jPo9TKluOU&1q?GP8NMWvgv0cNLnDzR(I;Ty6Z;A1Pg zp1g@h=XE%ne=keiu{z`@vjCKsFR4WPk|4c$MU>l`P12EJG!c7k&Pe}1OG`1|t!UpZ z2=7(m0|{I!$4{t3>@wwW{~fYOMEepT#nvsMnypZmhk=#Yrz>Pei#?Hv`P@zU=;Y;m zP9s}bL|=mo*VO(8>h%j(#{RVZs2lq^=QBe?YdX4%8@JIgFx8tsjxJzf4m+f7qR}ax z5;M9qyGk6Svv6c8T#Wj>baCBTxc#wEE3wNo@P;^7`R>0wkOqaSMzH!eou1zr3$;KE~wYP{@2*9f{rvX@<8oSzf)YQ z>qs*|t}GsOyPURF_&iZ6sYBU(Rhr(fGZz2W2}p;tyHG zPwsUQ8&204H50FD0MLOW@fQsmKgqm{`5PRnjCl`^R?MUd-w>fR>QMG$BR^lUeZEQo z4lys1AmSmmo;s8PY_#DU&e^U~fLEC3azalr7tGyUn)jK%$^3&%Eg=i@5$5B}&*>tX z<`gTwPuDj1Gz=dua}KbL`B~?iBUY%Ez2dG zP$fz;G~UOGubCf63H%*%i4Q=PA)%in`3Z1Bd|tT0JaQ~0qd!8eP~%zsO{N(*zhNwtqaRI`U1R!o{TM?07oFwf%v&CJV~|3Y7F zlv-SqtYto-1%O923^mM8@qst19P6=}6({(_%a3j&^WK!#Ue8?5jtV$HBlDY_=zYu& z;7AoZ$9^2lA13<^sCbv}tezDu?5H#4YFe2e%@kjH0+v81)V0Uuhn{fA-@RYNw^n8c z13{cZuxzIO3eqth7Ng&xG`jWxqwMfkj>`Z-Cw;B{H)-ymf_#}B(! zT&TNC9Q0;6*CNfpW*{|6E`K9(ip83yE%w}Em4b|)MiLq #define ATANAME "dev_atahdd0" -#define ATAPATH "/dev/hdd0" +#define ATAPATH "/dev/hda" #define ATAUNIVERSAL VERSION_NUM(0, 1, 2, 0) #define KBDNAME "dev_ps2_keyboard0" diff --git a/src/kernel/devices/disks/hdd0.c b/src/kernel/devices/disks/hdd0.c index 3922388..03c3dfe 100644 --- a/src/kernel/devices/disks/hdd0.c +++ b/src/kernel/devices/disks/hdd0.c @@ -1,18 +1,16 @@ #include "hdd0.h" - #include -#include #include #include #include +#include +#include #include -#include +#define HDA_SECTOR_SIZE 512 static int ATAmodule_init(void) { - //ATAdetect_devices(); - // already done - log("[ATA]", "Load ATA module...\n", d); + log("[HDA]", "init /dev/hda\n", d); return 0; } @@ -20,13 +18,80 @@ static void ATAmodule_fini(void) { // cleanup if needed } +static void *hda_open(const char *path) { + (void)path; + return ATAget_device(0); +} + +static int hda_read(void *handle, void *buf, size_t count, u64 offset) +{ + ATAdevice_t *dev = (ATAdevice_t *)handle; + if (!dev || !buf || count == 0) return -1; + + u64 lba = offset / HDA_SECTOR_SIZE; + u32 lba_offset = offset % HDA_SECTOR_SIZE; + u32 sectors = (u32)((lba_offset + count + HDA_SECTOR_SIZE - 1) / HDA_SECTOR_SIZE); + + // temp buffer for unaligned reads + static u8 tmp[HDA_SECTOR_SIZE] __attribute__((aligned(16))); + size_t remaining = count; + u8 *dst = (u8 *)buf; + + for (u32 i = 0; i < sectors && remaining > 0; i++) + { + if (ATAread_sectors(dev, lba + i, 1, (u16 *)tmp) != 0) return -1; + + u32 src_off = (i == 0) ? lba_offset : 0; + u32 to_copy = HDA_SECTOR_SIZE - src_off; + if (to_copy > remaining) to_copy = (u32)remaining; + + memcpy(dst, tmp + src_off, to_copy); + + dst += to_copy; + remaining -= to_copy; + } + return (int)(count - remaining); +} + +static int hda_write(void *handle, const void *buf, size_t count, u64 offset) +{ + ATAdevice_t *dev = (ATAdevice_t *)handle; + if (!dev || !buf || count == 0) return -1; + + u64 lba = offset / HDA_SECTOR_SIZE; + u32 lba_offset = offset % HDA_SECTOR_SIZE; + u32 sectors = (u32)((lba_offset + count + HDA_SECTOR_SIZE - 1) / HDA_SECTOR_SIZE); + + static u8 tmp[HDA_SECTOR_SIZE] __attribute__((aligned(16))); + size_t remaining = count; + const u8 *src = (const u8 *)buf; + + for (u32 i = 0; i < sectors && remaining > 0; i++) + { + u32 dst_off = (i == 0) ? lba_offset : 0; + u32 to_copy = HDA_SECTOR_SIZE - dst_off; + if (to_copy > remaining) to_copy = (u32)remaining; + if (dst_off != 0 || to_copy != HDA_SECTOR_SIZE) { + if (ATAread_sectors(dev, lba + i, 1, (u16 *)tmp) != 0) return -1; + } + + memcpy(tmp + dst_off, src, to_copy); + + if (ATAwrite_sectors(dev, lba + i, 1, (u16 *)tmp) != 0) return -1; + + src += to_copy; + remaining -= to_copy; + } + return (int)(count - remaining); +} + driver_module ata_module = { - .name = ATANAME, - .mount = ATAPATH, + .name = ATANAME, + .mount = ATAPATH, .version = ATAUNIVERSAL, - .init = ATAmodule_init, - .fini = ATAmodule_fini, - .open = NULL, - .read = NULL, - .write = NULL, -}; + .init = ATAmodule_init, + .fini = ATAmodule_fini, + .open = hda_open, + .read = hda_read, + .write = hda_write, +}; \ No newline at end of file diff --git a/src/kernel/devices/disks/hdd0.h b/src/kernel/devices/disks/hdd0.h index 3d30aa1..153a8f3 100644 --- a/src/kernel/devices/disks/hdd0.h +++ b/src/kernel/devices/disks/hdd0.h @@ -3,7 +3,7 @@ #include -// /dev/input/hdd0 -extern driver_module mouse0_module; +// /dev/hda +extern driver_module ata_module; #endif \ No newline at end of file diff --git a/src/kernel/devices/fb0/fb0.c b/src/kernel/devices/fb0/fb0.c index 0a3d773..9b67c91 100644 --- a/src/kernel/devices/fb0/fb0.c +++ b/src/kernel/devices/fb0/fb0.c @@ -26,8 +26,9 @@ static void *fb0_open(const char *path) { return (void *)1; } -static int fb0_read(void *handle, void *buf, size_t count) { +static int fb0_read(void *handle, void *buf, size_t count, u64 offset) { (void)handle; + (void)offset; u32 *fb = get_framebuffer(); u32 pitch = get_fb_pitch(); u32 h = get_fb_height(); @@ -47,11 +48,12 @@ static int fb0_read(void *handle, void *buf, size_t count) { return (int)count; } -static int fb0_write(void *handle, const void *buf, size_t count) { +static int fb0_write(void *handle, const void *buf, size_t count, u64 offset) { (void)handle; - u32 *fb = get_framebuffer(); - u32 pitch = get_fb_pitch(); - u32 h = get_fb_height(); + (void)offset; + u32 *fb = get_framebuffer(); + u32 pitch = get_fb_pitch(); + u32 h = get_fb_height(); if (!fb) return -1; @@ -98,7 +100,7 @@ int fb0_ioctl(int request, void *arg) { str_copy(fix->id, FBN); fix->smem_start = (u64)fb; fix->smem_len = pitch * h; - fix->type = 0; // FB_TYPE_PACKED_PIXELS + fix->type = 0; // FB_TYPE_PACKED_PIXELS fix->visual = 2; // FB_VISUAL_TRUECOLOR fix->line_length = pitch; return 0; diff --git a/src/kernel/devices/input/kbd.c b/src/kernel/devices/input/kbd.c index a15623b..2f5037f 100644 --- a/src/kernel/devices/input/kbd.c +++ b/src/kernel/devices/input/kbd.c @@ -23,8 +23,9 @@ static void *kbd_dev_open(const char *path) { return (void *)1; // dummy handle } -static int kbd_dev_read(void *handle, void *buf, size_t count) { +static int kbd_dev_read(void *handle, void *buf, size_t count, u64 offset) { (void)handle; + (void)offset; size_t ev_size = sizeof(key_event_t); size_t written = 0; @@ -46,8 +47,11 @@ static int kbd_dev_read(void *handle, void *buf, size_t count) { } // there is no write for input devices -static int kbd_dev_write(void *handle, const void *buf, size_t count) { - (void)handle; (void)buf; (void)count; +static int kbd_dev_write(void *handle, const void *buf, size_t count, u64 offset) { + (void)handle; + (void)buf; + (void)count; + (void)offset; return -1; } diff --git a/src/kernel/devices/input/mouse0.c b/src/kernel/devices/input/mouse0.c index 78c520b..dd4efff 100644 --- a/src/kernel/devices/input/mouse0.c +++ b/src/kernel/devices/input/mouse0.c @@ -21,8 +21,11 @@ static void *mouse0_open(const char *path) { return (void *)1; } -static int mouse0_read(void *handle, void *buf, size_t count) { +static int mouse0_read(void *handle, void *buf, size_t count, u64 offset) { (void)handle; + (void)buf; + (void)count; + (void)offset; /* size_t ev_size = sizeof(mouse_event_t); @@ -41,13 +44,11 @@ static int mouse0_read(void *handle, void *buf, size_t count) { } return (int)written; */ - - return 0; + return 0; } -// no write for input devices -static int mouse0_write(void *handle, const void *buf, size_t count) { - (void)handle; (void)buf; (void)count; +static int mouse0_write(void *handle, const void *buf, size_t count, u64 offset) { + (void)handle; (void)buf; (void)count; (void)offset; return -1; } diff --git a/src/kernel/devices/null/null.c b/src/kernel/devices/null/null.c index 7dc4f4a..91ff4a9 100644 --- a/src/kernel/devices/null/null.c +++ b/src/kernel/devices/null/null.c @@ -16,14 +16,13 @@ static void *null_open(const char *path) { return (void *)1; } -static int null_read(void *handle, void *buf, size_t count) { - (void)handle; (void)buf; (void)count; +static int null_read(void *handle, void *buf, size_t count, u64 offset) { + (void)handle; (void)buf; (void)count; (void)offset; // eof return 0; } - -static int null_write(void *handle, const void *buf, size_t count) { - (void)handle; (void)buf; +static int null_write(void *handle, const void *buf, size_t count, u64 offset) { + (void)handle; (void)buf; (void)offset; return (int)count; } diff --git a/src/kernel/devices/random/urandom.c b/src/kernel/devices/random/urandom.c index f9fd262..89dc37c 100644 --- a/src/kernel/devices/random/urandom.c +++ b/src/kernel/devices/random/urandom.c @@ -49,8 +49,9 @@ void *urandom_open_fn(const char *path) { return (void *)1; } -int urandom_read_fn(void *handle, void *buf, size_t count) { +int urandom_read_fn(void *handle, void *buf, size_t count, u64 offset) { (void)handle; + (void)offset; u8 *out = (u8 *)buf; size_t i = 0; @@ -77,10 +78,11 @@ int urandom_read_fn(void *handle, void *buf, size_t count) { return (int)count; } -int urandom_write_fn(void *handle, const void *buf, size_t count) { +int urandom_write_fn(void *handle, const void *buf, size_t count, u64 offset) { // accept writes mb for future (void)handle; (void)buf; + (void)offset; return (int)count; } diff --git a/src/kernel/devices/random/urandom.h b/src/kernel/devices/random/urandom.h index 01ed6ba..e4d06e8 100644 --- a/src/kernel/devices/random/urandom.h +++ b/src/kernel/devices/random/urandom.h @@ -8,7 +8,7 @@ extern driver_module urandom_module; // shared with /dev/random alias void *urandom_open_fn(const char *path); -int urandom_read_fn(void *handle, void *buf, size_t count); -int urandom_write_fn(void *handle, const void *buf, size_t count); +int urandom_read_fn(void *handle, void *buf, size_t count, u64 offset); +int urandom_write_fn(void *handle, const void *buf, size_t count, u64 offset); #endif \ No newline at end of file diff --git a/src/kernel/devices/tty/tty0.c b/src/kernel/devices/tty/tty0.c index 36c522f..8e8448e 100644 --- a/src/kernel/devices/tty/tty0.c +++ b/src/kernel/devices/tty/tty0.c @@ -8,7 +8,9 @@ #include #include #include - +#include +#include +#include typedef enum { ANSI_NORMAL = 0, @@ -19,6 +21,7 @@ typedef enum { static tty0_ansi_state_t ansi_state = ANSI_NORMAL; static int ansi_param = 0; static u32 ansi_fg = 0xFFFFFFFF; // default white +static u32 ansi_bg = 0xFF000000; static u32 tty0_ansi_color(int code) { switch (code) { @@ -49,6 +52,14 @@ void tty0_write_char(char c) { case ANSI_NORMAL: if (c == '\033') { ansi_state = ANSI_ESC; + } else if (c == '\b') { + u32 char_width = fm_get_char_width() * font_scale; + u32 char_height = fm_get_char_height() * font_scale; + if (cursor_x >= char_width) { + cursor_x -= char_width; + draw_rect(cursor_x, cursor_y, char_width, char_height, ansi_bg); + // later the window-system/desktop-environment should handle that + } } else { cprintf(tmp, ansi_fg); } @@ -102,16 +113,18 @@ static void *tty0_open(const char *path) { return (void *)1; // dummy handle } -static int tty0_dev_write(void *handle, const void *buf, size_t count) { +static int tty0_dev_write(void *handle, const void *buf, size_t count, u64 offset) { (void)handle; + (void)offset; const char *p = (const char *)buf; for (size_t i = 0; i < count; i++) { tty0_write_char(p[i]); } return (int)count; } -static int tty0_dev_read(void *handle, void *buf, size_t count) { +static int tty0_dev_read(void *handle, void *buf, size_t count, u64 offset) { (void)handle; + (void)offset; if (!buf || count == 0) return 0; char *out = (char *)buf; @@ -129,6 +142,26 @@ static int tty0_dev_read(void *handle, void *buf, size_t count) { __asm__ volatile("sti"); + if (tty0_echo_mode == TTY_RAW) { + while (1) { + key_event_t event; + char c = (char)(event.keycode & 0xFF); + int n = fs_read(kbd_fd, &event, sizeof(key_event_t)); + + __asm__ volatile("hlt"); + if (n != (int)sizeof(key_event_t)) continue; + if (!event.pressed) continue; + if (event.keycode == 0x09) c = '\t'; + if (c == '\n' || c == '\r' || c == '\b' || c == '\t' || + (c >= 0x20 && c <= 0x7E)) { + out[0] = (c == '\r') ? '\n' : c; + + __asm__ volatile("cli"); + return 1; + } + } + } + while (i < count - 1) { key_event_t event; int got = 0; diff --git a/src/kernel/devices/tty/tty0.h b/src/kernel/devices/tty/tty0.h index bcd3073..19a0378 100644 --- a/src/kernel/devices/tty/tty0.h +++ b/src/kernel/devices/tty/tty0.h @@ -13,6 +13,7 @@ extern driver_module tty0_module; #define TTY_ECHO 0 // normal echo #define TTY_NOECHO 1 // no echo at all #define TTY_MASKECHO 2 +#define TTY_RAW 3 void tty0_write_char(char c); diff --git a/src/kernel/devices/zero/zero.c b/src/kernel/devices/zero/zero.c index e34996b..c3d5b45 100644 --- a/src/kernel/devices/zero/zero.c +++ b/src/kernel/devices/zero/zero.c @@ -20,16 +20,19 @@ static void *zero_open(const char *path) { } // write buffer full with 0s -static int zero_read(void *handle, void *buf, size_t count) { +static int zero_read(void *handle, void *buf, size_t count, u64 offset) { (void)handle; + (void)offset; if (buf && count > 0) { - memset(buf, 0, count); + memset(buf, 0, count); } - return (int)count; // show read bytes + return (int)count; } -static int zero_write(void *handle, const void *buf, size_t count) { - (void)handle; (void)buf; +static int zero_write(void *handle, const void *buf, size_t count, u64 offset) { + (void)handle; + (void)buf; + (void)offset; return (int)count; } diff --git a/src/kernel/file_systems/vfs/devfs/devfs.c b/src/kernel/file_systems/vfs/devfs/devfs.c index 5a40b5c..6c185a1 100644 --- a/src/kernel/file_systems/vfs/devfs/devfs.c +++ b/src/kernel/file_systems/vfs/devfs/devfs.c @@ -32,14 +32,18 @@ static ssize_t devfs_read(fs_file *file, void *buf, size_t cnt) { devfs_data *dev = (devfs_data*)file->node->priv; if (!dev || !dev->mod || !dev->mod->read) return -1; - return dev->mod->read(dev->handle, buf, cnt); + ssize_t n = dev->mod->read(dev->handle, buf, cnt, file->pos); + if (n > 0) file->pos += (u64)n; + return n; } static ssize_t devfs_write(fs_file *file, const void *buf, size_t cnt) { devfs_data *dev = (devfs_data*)file->node->priv; if (!dev || !dev->mod || !dev->mod->write) return -1; - return dev->mod->write(dev->handle, buf, cnt); + ssize_t n = dev->mod->write(dev->handle, buf, cnt, file->pos); + if (n > 0) file->pos += (u64)n; + return n; } static fs_node* devfs_lookup(fs_node *dir, const char *name) { diff --git a/src/kernel/file_systems/vfs/procfs/procfs.c b/src/kernel/file_systems/vfs/procfs/procfs.c index 02498e7..a703251 100644 --- a/src/kernel/file_systems/vfs/procfs/procfs.c +++ b/src/kernel/file_systems/vfs/procfs/procfs.c @@ -245,15 +245,72 @@ static fs_node *procfs_lookup(fs_node *dir, const char *name) return NULL; } +static fs_ops procfs_ops; +static fs_node* procfs_readdir(fs_node *dir) { + //(void)dir; + + if (!dir || !dir->priv) return NULL; + procfs_data *data = (procfs_data *)dir->priv; + + #if ENABLE_ULIME + if (data->kind == PROCFS_KIND_ROOT) + { + if (!ulime) return NULL; + + fs_node *head = NULL; + fs_node *tail = NULL; + ulime_proc_t *proc = ulime->ptr_proc_list; + + while (proc) + { + char pidstr[24]; + u64 pid = proc->pid; + int ti = 0; + char tmp[24]; + + if (pid == 0) { pidstr[0] = '0'; pidstr[1] = '\0'; } + else { + while (pid > 0) { tmp[ti++] = '0' + (int)(pid % 10); pid /= 10; } + for (int i = 0; i < ti; i++) pidstr[i] = tmp[ti - 1 - i]; + pidstr[ti] = '\0'; + } + + fs_node *n = procfs_mknode(pidstr, FS_DIR, proc->pid, PROCFS_KIND_DIR); + + if (n) { + n->ops = &procfs_ops; + if (!head) head = n; + else tail->next = n; + tail = n; + } + proc = proc->next; + } + return head; + } + if (data->kind == PROCFS_KIND_DIR) { + fs_node *status = procfs_mknode(STATUS_MSG, FS_FILE, data->pid, PROCFS_KIND_STATUS); + fs_node *maps = procfs_mknode(MAPS_MSG, FS_FILE, data->pid, PROCFS_KIND_MAPS); + + if (status) status->ops = &procfs_ops; + if (maps) maps->ops = &procfs_ops; + if (status && maps) status->next = maps; + + return status ? status : maps; + } + #endif + + return NULL; +} static fs_ops procfs_ops = { - .open = procfs_open, - .close = procfs_close, - .read = procfs_read, - .write = procfs_write, - .lookup = procfs_lookup, - .create = NULL, - .mkdir = NULL, + .open = procfs_open, + .close = procfs_close, + .read = procfs_read, + .write = procfs_write, + .lookup = procfs_lookup, + .create = NULL, + .mkdir = NULL, + .readdir = procfs_readdir, }; // diff --git a/src/kernel/file_systems/vfs/sysfs/sysfs.c b/src/kernel/file_systems/vfs/sysfs/sysfs.c new file mode 100644 index 0000000..439895b --- /dev/null +++ b/src/kernel/file_systems/vfs/sysfs/sysfs.c @@ -0,0 +1,108 @@ +#include "../vfs.h" +#include "sysfs.h" +#include +#include +#include +#include +#include + + +static fs_node* sysfs_lookup(fs_node *dir, const char *name); + +static fs_ops sysfs_ops = { + .open = NULL, + .close = NULL, + .read = NULL, + .write = NULL, + .lookup = sysfs_lookup, + .create = NULL, + .mkdir = NULL, +}; + +static fs_node* sysfs_make_block(void) +{ + fs_node *block = fs_mknode("block", FS_DIR); + if (!block) return NULL; + block->ops = &sysfs_ops; + + int count = ATAget_device_count(); + fs_node *tail = NULL; + for (int i = 0; i < count; i++) + { + char devname[4]; + devname[0] = 'h'; + devname[1] = 'd'; + devname[2] = (char)('a' + i); + devname[3] = '\0'; + + fs_node *n = fs_mknode(devname, FS_DIR); + if (!n) continue; + n->ops = &sysfs_ops; + + if (!block->children) block->children = n; + else tail->next = n; + tail = n; + } + return block; +} + +static fs_node* sysfs_lookup(fs_node *dir, const char *name) +{ + if (!dir || !name) return NULL; + + // /sys > "block" + if (str_equals(dir->name, "sys")) { + if (str_equals(name, "block")) + return sysfs_make_block(); + return NULL; + } + + // /sys/block + if (str_equals(dir->name, "block")) + { + int count = ATAget_device_count(); + for (int i = 0; i < count; i++) { + char devname[4]; + devname[0] = 'h'; + devname[1] = 'd'; + devname[2] = (char)('a' + i); + devname[3] = '\0'; + if (str_equals(name, devname)) { + fs_node *n = fs_mknode(devname, FS_DIR); + if (!n) return NULL; + n->ops = &sysfs_ops; + return n; + } + } + return NULL; + } + return NULL; +} + +static int sysfs_mount(const char *src, const char *tgt, fs_mnt *mnt) +{ + (void)src; + (void)tgt; + + fs_node *root = fs_mknode("sys", FS_DIR); + if (!root) return -1; + root->ops = &sysfs_ops; + root->children = sysfs_make_block(); + mnt->root = root; + + return 0; +} + +static fs_type sysfs_type = { + .name = "sysfs", + .mount = sysfs_mount, + .ops = &sysfs_ops, +}; + +void sysfs_register(void) { + fs_register(&sysfs_type); +} + +void sysfs_refresh(void) { + extern fs_mnt *fs_get_mount(const char *path); +} \ No newline at end of file diff --git a/src/kernel/file_systems/vfs/sysfs/sysfs.h b/src/kernel/file_systems/vfs/sysfs/sysfs.h new file mode 100644 index 0000000..a3085f1 --- /dev/null +++ b/src/kernel/file_systems/vfs/sysfs/sysfs.h @@ -0,0 +1,4 @@ +#pragma once + +void sysfs_register(void); +void sysfs_refresh(void); \ No newline at end of file diff --git a/src/kernel/file_systems/vfs/vfs.c b/src/kernel/file_systems/vfs/vfs.c index 3fad51c..66c7cb2 100644 --- a/src/kernel/file_systems/vfs/vfs.c +++ b/src/kernel/file_systems/vfs/vfs.c @@ -200,8 +200,14 @@ int fs_listdir(const char *path, _emx_kdirent_t *buf, int max_entries) { fs_node *node = fs_resolve(path); if (!node || node->type != FS_DIR) return -1; + fs_node *children = NULL; + if (node->ops && node->ops->readdir) + children = node->ops->readdir(node); + else + children = node->children; + int count = 0; - fs_node *child = node->children; + fs_node *child = children; while (child && count < max_entries) { buf[count].type = child->type; diff --git a/src/kernel/file_systems/vfs/vfs.h b/src/kernel/file_systems/vfs/vfs.h index 0179f9c..d8a8b8f 100644 --- a/src/kernel/file_systems/vfs/vfs.h +++ b/src/kernel/file_systems/vfs/vfs.h @@ -67,9 +67,8 @@ typedef struct { struct fs_ops { int (*open)(fs_node *node, fs_file *file); int (*close)(fs_file *file); - ssize_t (*read)(fs_file *file, void *buf, size_t cnt); // read - ssize_t (*write)(fs_file *file, const void *buf, size_t cnt); // write - // could be used for syscalls + ssize_t (*read)(fs_file *file, void *buf, size_t cnt); + ssize_t (*write)(fs_file *file, const void *buf, size_t cnt); fs_node* (*lookup)(fs_node *dir, const char *name); int (*create)(fs_node *dir, const char *name); @@ -78,6 +77,9 @@ struct fs_ops { //tmpfs using ram // devfs using modules/modules... // ... maybe writing on disk + + + fs_node* (*readdir)(fs_node *dir); }; // filesystem type diff --git a/src/kernel/file_systems/vfs/vfs_init.c b/src/kernel/file_systems/vfs/vfs_init.c index d404621..576fe33 100644 --- a/src/kernel/file_systems/vfs/vfs_init.c +++ b/src/kernel/file_systems/vfs/vfs_init.c @@ -1,5 +1,6 @@ //#include "init.h" #include +#include int init_boot_log = -1; char *logpath = "/emr/system/logs/log1.txt"; #include "vfs.h" @@ -131,6 +132,7 @@ void fs_system_init(void *klime) tmpfs_register(); devfs_register(); procfs_register(); + sysfs_register(); log("[FS]", "mounting roots: \n", white()); @@ -138,6 +140,7 @@ void fs_system_init(void *klime) fs_mount(NULL, ROOT_MOUNT_DEFAULT, ROOTFS); fs_mount(NULL, DEV_MOUNT_DEFAULT, DEVFS); fs_mount(NULL, PROC_MOUNT_DEFAULT, PROCFS); + //fs_mount(NULL, SYS_MOUNT_DEFAULT, SYSFS); initvfs(); diff --git a/src/kernel/inits/fs/init.c b/src/kernel/inits/fs/init.c index 8ec3500..bccf04e 100644 --- a/src/kernel/inits/fs/init.c +++ b/src/kernel/inits/fs/init.c @@ -20,6 +20,7 @@ void initvfs(void){ //fs_mkdir(CONF_DIRECTORY); fs_mkdir(PROC_DIRECTORY); + fs_mkdir(SYS_DIRECTORY); - //initrd.cpio.... + //initrd.cpio does the rest :) } diff --git a/src/kernel/inits/fs/init.h b/src/kernel/inits/fs/init.h index 77c30e4..709f8b2 100644 --- a/src/kernel/inits/fs/init.h +++ b/src/kernel/inits/fs/init.h @@ -10,18 +10,21 @@ void initvfs(void); #define ROOT_MOUNT_DEFAULT "/" #define FAT32 "fat32" -#define FAT32_DIRECTORY "/" +#define FAT32_DIRECTORY "/" #define EXT2 "ext2" -#define EXT2_DIRECTORY "/" +#define EXT2_DIRECTORY "/" #define TMPFS "tmpfs" -#define TMP_DIRECTORY "/tmp" +#define TMP_DIRECTORY "/tmp" +#define SYSFS "sysfs" +#define SYS_MOUNT_DEFAULT "/sys" +#define SYS_DIRECTORY "/sys" #define DEVFS "devfs" #define DEV_MOUNT_DEFAULT "/dev" -#define DEV_DIRECTORY "/dev" +#define DEV_DIRECTORY "/dev" #define _DEV "/dev/" #define MOUNT_DEV "/dev/hda" diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index cb6d6e5..82e42b0 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -271,50 +271,30 @@ void _start(void) } #if ENABLE_ATA == 1 - ata_init();{ - // Initialize partition system - int part_result = partition_init(); - - if (part_result != 0 || partition_needs_format()) { - //BOOTUP_PRINT("[DISK] ", GFX_GRAY_70); - - #if OVERWRITEALL == 1 - log("[DISK]", "(OVERWRITEALL=1)...\n", d); - if - (partition_format_disk_fat32() == 0) - { - log("[DISK]", "Creating FAT32 filesystem...\n", d); - if - (fat32_format_partition(2048, ATAget_device(0)->sectors - 4096) == 0) - { - log("[DISK]", "Disk formated successfully\n", success); - partition_init(); - } else - { - log("[DISK]", "FAT32 Format failed\n", error); - } - } else - { - log("[DISK]", "MBR creation failed\n", error); - } - #else - log("[DISK]", "Disk needs formatting\n", warning); - log("[DISK]", "set \"OVERWRITEALL=0\" to \"1\" in shared/config/disk.h\n", warning); + ata_init();{ + // initialize partition system + int part_result = partition_init(); + + if (part_result != 0 || partition_needs_format()) { + log("[DISK]", "no valid partition found\n", warning); + log("[DISK]", "run 'install' to set up the disk\n", warning); + } + + #if ENABLE_FAT32 == 1 + log("[FAT32]", "mounting FAT32 file system\n", d); + fat32_init(); #endif } - #if ENABLE_FAT32 == 1 - log("[FAT32]", "mounting FAT32 file system\n", d); - fat32_init(); - #endif #if ENABLE_FAT32 //fat32_mount("/dev/hda1", "/boot", "fat32"); //log("[BOOT]", "Boot partition mounted at /boot\n", d); #endif - } #else - log("[ATA]", "skipped (hardware compatibility)\n", warning); + log("[ATA]", "skipped (hardware compatibility)\n", warning); #endif + fs_mount(NULL, SYS_MOUNT_DEFAULT, SYSFS); + //logo_init(); //draw_logo(); diff --git a/src/kernel/kernel_processes/graphics/.gitkeep b/src/kernel/kernel_processes/graphics/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/kernel/kernel_processes/kernel/user.c b/src/kernel/kernel_processes/kernel/user.c index 80d4790..3cecb41 100644 --- a/src/kernel/kernel_processes/kernel/user.c +++ b/src/kernel/kernel_processes/kernel/user.c @@ -31,6 +31,7 @@ void uproc(void) { clear(0xff000000); dump_kprocesses(); + proc_list_procs(proc_mgr); ulime->ptr_proc_curr = init_proc; #if JUMPTOUSER == 1 JumpToUserspace(init_proc); diff --git a/src/kernel/module/module.h b/src/kernel/module/module.h index 4a8ca19..6a1ce3f 100644 --- a/src/kernel/module/module.h +++ b/src/kernel/module/module.h @@ -19,8 +19,8 @@ typedef struct driver_module { // not used just for the file system in future // void *(*open)(const char *path); - int (*read)(void *handle, void *buf, size_t count); - int (*write)(void *handle, const void *buf, size_t count); + int (*read)(void *handle, void *buf, size_t count, u64 offset); + int (*write)(void *handle, const void *buf, size_t count, u64 offset); } driver_module; diff --git a/src/kernel/user/syscalls.c b/src/kernel/user/syscalls.c index d2a794c..b39082d 100644 --- a/src/kernel/user/syscalls.c +++ b/src/kernel/user/syscalls.c @@ -507,6 +507,7 @@ u64 scall_ioctl(ulime_proc_t *proc, u64 fd, u64 request, u64 arg_ptr) case 0: tty0_set_echo_mode(0); return 0; // TTY_ECHO case 1: tty0_set_echo_mode(1); return 0; // TTY_NOECHO case 2: tty0_set_echo_mode(2); return 0; // TTY_MASKECHO + case 3: tty0_set_echo_mode(3); return 0; // TTY_RAW default: return (u64)-1; } } diff --git a/src/userspace/Makefile b/src/userspace/Makefile index 43a879a..cf9f7c4 100644 --- a/src/userspace/Makefile +++ b/src/userspace/Makefile @@ -12,6 +12,7 @@ all: @$(MAKE) -C bin/tree @$(MAKE) -C bin/cd @$(MAKE) -C bin/cat + @$(MAKE) -C bin/lsblk clean: @$(MAKE) -C libc clean @@ -27,5 +28,6 @@ clean: @$(MAKE) -C bin/tree clean @$(MAKE) -C bin/cd clean @$(MAKE) -C bin/cat clean + @$(MAKE) -C bin/lsblk clean .PHONY: all clean diff --git a/src/userspace/apps/login/login.elf b/src/userspace/apps/login/login.elf index 1b4776741e3395a21516ae5b10f0ce8fe73b67c2..06a50c74e92852bc80612316187804c797373e0f 100755 GIT binary patch delta 3042 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 #include + +//-////////////////////////////////////////-// +//-// //-// +//-// SHELLY :) //-// +//-// emex user-space shell //-// +//-// //-// +//-////////////////////////////////////////-// + #define BUFFER 256 #define SHELL_PROMPT "\033[0m[pc@emexos]$ " +#define SHELL_CONFIG "/.config/shelly/" #define BIN_PATH "/bin/" @@ -52,7 +61,7 @@ int main(void) for (;;) { - write(STDOUT_FILENO, SHELL_PROMPT, sizeof(SHELL_PROMPT) - 1); + printf(SHELL_PROMPT); // block until newline (\n) ssize_t n = read(STDIN_FILENO, buf, sizeof(buf) - 1); @@ -69,8 +78,8 @@ int main(void) int ret = exec_from_bin(argv[0], argv); if (ret < 0) { - write(STDOUT_FILENO, argv[0], strlen(argv[0])); - write(STDOUT_FILENO, ": command not found\n", 20); + printf(argv[0]); + printf(": command not found\n"); } } diff --git a/src/userspace/apps/shell/shell.emx/app.elf b/src/userspace/apps/shell/shell.emx/app.elf index 6608bf0bee60c0e11e905f9efce9def399c7c5ca..b9f7ef86e1bd2ca8930f1653d82ae9c3e803b9e6 100755 GIT binary patch literal 17672 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 delta 1988 zcmZ9NeN0$re2&j;QVBXo9UC2`=1F2k=0@U2R4hetD`Ta&Y>qXf zV_B^;z|G=EOhl*I@E@~~Ornf2NtpPLi!swhqf?o}m|3GUb})oEhwvh6bf!*{(mBIp&Zp zI{l16R9YL&a}s!z*v0viB4jPo9TKluOU&1q?GP8NMWvgv0cNLnDzR(I;Ty6Z;A1Pg zp1g@h=XE%ne=keiu{z`@vjCKsFR4WPk|4c$MU>l`P12EJG!c7k&Pe}1OG`1|t!UpZ z2=7(m0|{I!$4{t3>@wwW{~fYOMEepT#nvsMnypZmhk=#Yrz>Pei#?Hv`P@zU=;Y;m zP9s}bL|=mo*VO(8>h%j(#{RVZs2lq^=QBe?YdX4%8@JIgFx8tsjxJzf4m+f7qR}ax z5;M9qyGk6Svv6c8T#Wj>baCBTxc#wEE3wNo@P;^7`R>0wkOqaSMzH!eou1zr3$;KE~wYP{@2*9f{rvX@<8oSzf)YQ z>qs*|t}GsOyPURF_&iZ6sYBU(Rhr(fGZz2W2}p;tyHG zPwsUQ8&204H50FD0MLOW@fQsmKgqm{`5PRnjCl`^R?MUd-w>fR>QMG$BR^lUeZEQo z4lys1AmSmmo;s8PY_#DU&e^U~fLEC3azalr7tGyUn)jK%$^3&%Eg=i@5$5B}&*>tX z<`gTwPuDj1Gz=dua}KbL`B~?iBUY%Ez2dG zP$fz;G~UOGubCf63H%*%i4Q=PA)%in`3Z1Bd|tT0JaQ~0qd!8eP~%zsO{N(*zhNwtqaRI`U1R!o{TM?07oFwf%v&CJV~|3Y7F zlv-SqtYto-1%O923^mM8@qst19P6=}6({(_%a3j&^WK!#Ue8?5jtV$HBlDY_=zYu& z;7AoZ$9^2lA13<^sCbv}tezDu?5H#4YFe2e%@kjH0+v81)V0Uuhn{fA-@RYNw^n8c z13{cZuxzIO3eqth7Ng&xG`jWxqwMfkj>`Z-Cw;B{H)-ymf_#}B(! zT&TNC9Q0;6*CNfpW*{|6E`K9(ip83yE%w}Em4b|)MiLq2g77#CLP9olLMH%m`bWAFJO|Y@BaJ$f2Zr0=Grd| zB~c#Ttsj7VkKUO8&!WaXcY+jMiS>n z65lepkWE~2ClgQz2tYbOI%Po|AUM2vA)7cOl zggaU+ z&|Le0fxlDhKhPAYDxe(D9H2pm;3CKNGXh1x!n;I(tbIx#6$rtXuYrb5c=;4e-UpL6 zCrdMLWHg$5miafQ5lA->*i0^D5udEU$uhZwMPw4I4R?7_W=SeTQEFle!(?~Xm5g^M ze`FO;d=6F40@T6<#D9Q}0|5pmkRc2VAaQOWhKcV$5@$maKaV7iY|hQefo$T8k2hxm zNydMZ8`;e{GgyK8fFNM=_Ft?*x(^lYauq k9g{6N?U@)@CRcIVaVkKKaG!jT)0~rm9b#bMWJV5o0HLd~+5i9m diff --git a/src/userspace/apps/system/system.emx/app.elf b/src/userspace/apps/system/system.emx/app.elf index 80712abe5920ad767b7a35868263bfa5830cbc6f..977e02c3d5fa4af5fa4e6a05f5178084897ea7b3 100755 GIT binary patch delta 3072 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 Hx@Z0cMD1lF diff --git a/src/userspace/bin/cat/cat.elf b/src/userspace/bin/cat/cat.elf index 839eb8775f75737b0593d23c1fa501194bb14ecc..5d8cd1cdf3930c29c0a7f7e0d575beeaaf25833f 100755 GIT binary patch delta 2756 zcmZ8jeQZ-z6u*62*>~^Ott;R@9?*TjpkN>n4NMR>OOWs#8Ah-X_rG14hI;&Y{ zHX3-qHGGN01mO>u8ZtFcz%fE1Y9v5dFd!x%Oa@B~NQNZx;koagPPd!9o^yWZch33U z``&B&sIJ|;y;AzYxnt7I%r-kQ)_(i3w~taOmdot97p3m}uDiLbO_Dc{)mp2i!Q8G7 zt%ps{oIFB0YHqc*+#=1Zj*o%D?khGj_ml))|5{3jYirwuC(oX_I?nd*GP8L$Tj2|U z9yf93gCS-aWo-pBq^r5?M8PU&c`k3-+uG7gnqNO|=G4I9-aXF3O1&-lqw}m&J#?L1`?UL|h8viQkX{Ur&MB{sto_17tqiOuTq^Io` zULlQplAhKoyqJx~UBb0dEhxMK8lRH%v^Rv8Pvh34r@bn?JR1KS_64Hzs5V_-78<`M zFbma61(rkOrv;WnwJd>U)A(V)Vo;n-HEfeX;|W2`pxRC0nN<}yW~yBhajNngy{*rFV7$pqId%xwDmf<=l(4a<>}Xfp_&)+(h*T zZUXxI+^pBPaPyXafSWqKlbdCFH#ZCQpSXENzs$`Xy^ouj`XDz`^;A2UO5MiIIDH~F zWA%C50X7WHxsN!zI>`2xa6ADE%Y(lA+pz;Y1)02Aa5cNak+PVbv+I|D~dqM`X zVDLHc`2vxTeq>!m3#DfdcNQ;}rlqr`#bX>cUX`fn2OZSadi|cO1N?;fX&S(w)0MD2 zNMqZI%SWFFBpdn|XEZ>e2Ds+0)7a0&i=;kiIfl(Bsg@FhU22KhELkM>&V-kwb0&6j z!pc}A>hUO%2nmLiuv_&719Bj!$`CaAR8{ekKu`usgIw?PD{?R_dwpTWqXxsxLzz%G zXms!eR3#jahM-E0G)GjWQTDj~e&U-NlpzrelXY&d=;Ku)p0F$}) z_PfJrdcZc8*(Z+87o@2Mg^-0{C7>-pd%m%~SznsKb0m=nA?_a~@Po*2LVUkf;10xFz~+JSJ@D>wD3yP}YK4pU|3&a)q{x5? zX~)EP)LVtPhWM|zI~(G=5VxS9HHd$L_-s7NLx_Kd_~*Go5dR5-?^i;OVB!QOzJo7d zzK+4gmEOn}1vLgr$hS!x2P{Us2l37kw+G&9qt9(T>6OSo$MFIfun2ctiiu0?`3igN zDwdV!i1GYD`MLoYm(?<2%pZtbQ7+?TSbxIB`3*Q8c5JMNh$lu&ec3X~BFCu;fH!}xu{zJ_9dvGtwhi4w*O(UM#T7k!i85*$|-^yVtXOl;}nsTjdSF)&Z_Kx0S-8hLI3~& delta 1812 zcmZ9Ne`s4(6vywo@ilFlA5HSIB(+N-ZB5#4d8-cFKf129WQ6%gXXk!&iaP(9bOVd5 ze{8OX8aoyMe&CEtzUl;j&2@R+o%^k3pCa!Ht zkS{r>|79fyA(YVwj!<|LVKS3gUH0J34|Jnkuh1~7e}&xx*PImwL!l^?pdTfpq#WOY zrTC8G@EakPt8ujfD|{N-E$w%~5$=`OD&YBWu;D@lxhC?sh%1@C`6sTNM~f-KSVS`G zJ5d2s;YVu^A;IHRwJy6b2eo=1Qi!Y%!b1{YIQQ&YZZc+}$ zQ`m@iFyCCDLhOM3v9NXnMq+-cdEwt!+#RS?sXZ(?08cmhQ?KBi2Mylg1sizwF!pY& zCuXRuhnOE_{Z-c2F;6k~d6d3|`Elmoae+SO5Zp2 ziH&ML%ls0(xfmZ~Bfel$`b2>WajwYOznA&vil@YfWv6WM|A&bxO#lD@ diff --git a/src/userspace/bin/cd/cd.elf b/src/userspace/bin/cd/cd.elf index 25c463738bb25c21dd6a9400c6fd1b5572077fd4..8fb91ab6469ff637e1b804bdeadb8a39a4303cf0 100755 GIT binary patch delta 2993 zcmZ8j4{Q_X760yR(_{%;oDeP!A-O;Z2uA)I=TDOo1{sFYsZHC#I<3Okm(C*gx#x3R zHmE~wT4iZ^q2DxU*Rdf+SG7fL=dHTY2}05E#wxLjsq3m%0&R2wuTs@%8>=E^@A-Sq zx_y%Ue((2t?|tw4?(VyL@4&Ic()3#S*wB%6J>{*eI9_Yz(xCeKbV4~YtvpjTP&MAd zhGu`~VeIgXzx(yP7}XU84d~3G+BOS3!Xk2=#o{!k_ovDRUn$cz4Ntb-At8Pr9Wh{`RtW zrAB^IT`AWz@VvUA?2ZP;@}A?3d`=zN(8$;_EHw|Kuoq@q0Zg!Oc-E>1r>^8I2B)Tx zf2VGP{N3fbm+JPp&HwIMIbzi-K1T`?ldGc7s4_E`BBPrI?*x1g(A!HJ9KB&a@n zsxUu)2GQ9(Y=q#B0LR~{TAI!roMqM~T)6TE%g$JSgu#jY?7a(>z`b}*#!5S}5~8!e z#Y#o47r04J7`6nGs(})_h4bfUm4zb3c8UqNeZHMas`B@n^Yhbu^STv3TX#W9mrWd; z%N(3*RkAms?;^7QD$q(Ld%1+{D*|as_U9#JO2|Gc&@v?( zE+IQ3P`Xyh1_i8DY(t=>N_ImD+20VTM#)x}kiAVHuaf;2>=3lzRqSrTEm5)`2yTgD zHwkXBl07fD#fn`axJo7a0&s9q<|-AN%9JbFNfB7C*nbwtV_6X6QS2+icU#{C->uje zgzvJx48BXTbHbOccJO7zJ}G==Re %8h4$aIV4CyfKC72BLHZp|qL}6%IJd(WIR9 zXyOh$4nu_pojcL&aYAUm?igrBoI_~7;!L60>O6~P(0LI}z;V#DJ9#u~o%hf*JAXq{ z@3>pR)HqdWDxKz5RyI`dIQ`(}&a8jOwaLVrXwtI}&Ec6;L-EPG@fYY3*!z&p%t-JI z?htWXz=(TU1AU{LUuth0sV$MI+F;(}0uP6%bO;bce(C}PPkNymoa^X_vhO3D^jrb+ z-?G1U@&1m+HK!Ix6+(_;Fo>c4M+4*mQ01idNRq3gl>kc zs1euVhNXcMi&~Z*VR1u)kZ)M^{{1_`xlgiX%s6&gS>2Zr$hM~nm@%1;F=4=-$7G?p0Cu|9O3 zitmdXkHj_D6+<%ln*%<+r>nUJ?mxT|d&nlh9y!#&U+cPCYUOgb-AO_fM!^_>pTt}X z2_=3j@rhRcR(Bhm*!(qmZ{0MaF)^ z&-=CAG;bM^PlBz6oUb*A;Ki~KriuTsUhpR={*T1(t`qz&;*as>jjHd5;CY#w{g`H< zCxxBlcZ2#OT%|h<}dw zHz5z>j}yO*_)Gj6^l+K7=9$PkMe4iU8&G{$NlnN?T|(+dd^4yYlRDBY)L~Np!5;$k z2Q;rit7|7U&rbx@t~tux-6V4FBh^J&uhM?Th_8_N%|O%I|GQdVh^~UQ!5E^zqN(GZ zJ*p4i4Y=~7)Zal03Gq;my1kXuj3#n9scppniEfuP@d4t$x=6$~5kJV!_o(S%QkSk2 zY9shKb`pPSx!|7?G`olR9PLgm@w%&${U5zn6puK zJ`FyOB=O_a&<;VfZxdfnTX~lFG=IHU^*upq2W{3pq)zc`y&Ar2&@Vkh-{ams)%P5w zyj(8SS19GDd^4ygNWI-H)D}`-;1Bhw=~qY%(>3TOHBS5owAlNJ{|Q*U(iy6z5}%{^ zWpoGNse%JP;4uFE3Nd@>8qWxx-`4N-jZ;hjUgDVZCH#YNk$3j1(q+EA|9Dx_GVz=< z`A7Z!MR1A(%=vErkt9Fb!p{t}RpYlZ=8XICAC4S}e>Tt#pVmX@-4)4TfC^)`_%A`4zC(C_;Qt0MG9)}dKhagg-yW#^4}Tifb^rhX delta 1945 zcmZ9Ne@t6d6vyv-w4`Kce<0kx0;R7kvMhno7AWOc+cC1vEC%pL3{iwl{bO#S7-sy% z5E)spn^2E&bDB;NTv|(Rtm+!C-4s&+z0f+cASu3g4DoQyehE-ReON z(!APqQe!M_OgLbTcULERfsU0S2Ril*=RS0b9Pp~WTK&bIoV7on zr_Pv@yezG#weDo5yjxXW?qr?oNP#C`6|G;!4(~)JmX{Q)zH&CZzJ5{67OUJWBv~9; z?rD<4+cQe?K+ToBpq3|g!)Oy`JaxD%r~m#dCL&!Eg~w6~KKE@gjT!$yV?M`@riNVT zT~}ey>+HU?0S^~P(#Bcz#E_LnafXraiFDlEtPP#x!jWZ1#WZGo1#W{; z4{{7?6Oku6v6o^WPM7gaw%}@&I2QxYqzHn(QZ81WkJndM-{5Zy^zYmM%(KtMM<0Os1_Km^P0-h%7vVmN$Ud@B zwDHk04Czwbp!z30Bv`0k3tENc-AmZuyNE~KaM@pjrwM=icVmgB#u~>@F1bh*)u=?P zVwHRy-e|0`{#7dFc9Ji^7mcoMw62NZF|;|#7|TFX^Jl+eg;MZT>FUBgi%&2CiPQT2yjo5)SH@Adr6(cizzxx5Z_JwB3PTa zwnSO$OlF-Wbs55_en)ClmFoSZUV}kY#X*b8b55ytka`oQQH{~M1JvyfQqRNHChq-{ zau>>E?qj6>L;N$lIAj*2&uzhZFN~Ty%R?v+{(2#DP^ue7W{-#PQoCnaZ;N%y&3PqbSoeEfYeL0 zYd*^DC0>vJ9)Ws@zmHbj#4)P2@s*jO_yM{B;wvG>Eb$+<$T}NmJTE!;+pJoYVkT*= zoidf3gZ?(IEWyid32+5{$(~?BQLpN7H&kO2|3nd%@yOtQ22J4|_zTU^PA|L=7C+RS mcghQ&hl3`sjJyJ?DD^c-?<)xG^cQTUcI#lep$NZ>h5rG`%vU4; diff --git a/src/userspace/bin/echo/echo.elf b/src/userspace/bin/echo/echo.elf index c6706e71c1f83dbad420bea0ac870e447396ea27..77bd4bd1e6d4d6dcc492290e3905a97db6931ee0 100755 GIT binary patch delta 2503 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 Jbj!+?{{bK@#8m(Q delta 1880 zcmZ9NZA_b06vyv#X?YpUzHH^;DIM*j3tNrUz6@HRK#O53&KTHBrkEIDx(_NJ+)Ip_ z4QhSKWFy66LNuAch$b2}kj90vXgZ9eh#HJB(+@`G+c0$z{4gCK#B+O3XTnLE^W6XM zf6hI&H*l;rctojln%e0SZZjLvegq)$EZk%@bC(9K=EU5ArqZMz3yY_M%PmPngo ziKUg;X?z|uszN^9_D^ikR;I&@x!S($Vyq1NOp9Jw6V{;D_!X*f!>hp-i@*3*MXuKh zta`UVx22hns;M!{%LabF5_Xn<%NOjhUVbNkN`t%9n&J_Su{q;WJ3ORzdYpE~%0>5e zjBGDXu!=ZV-?n_*j*CC?i_N&WuEABchW}iVDy(?2fKQlG$13L(-mRy?+xBtZp{J70 zQzg8RgW2uihjj3`?Wv#KSC!P2noL2<4KAiM{wC5(=@X9J7yA7d+#J3+%=8aToGQ4qy7J_9gS;30rK=cnVh{WT!Yjp|ekv;|XT1xabxO+4i7#95gHoG74o&{59j@D=iWaMIp6$R{Y(@BZ1&_THcl%p`7yP?;Yze0QuHv#=>+9k!@XT$n z$6N{Kz|;IM28lq6bxO>XJ5Xb8wE0irhrm6m7!||o^9Od-)&)cLJ-vq?d;G|7d@C$Q z%V4b5wRJ#e5#dQv9>Y8wcfd+*2hZrxS~uj+Tg<|T(Sjd^72Gb#>w8Ea(}4#)cuU|9 z?&ja=@LbSiZ*<9hc8Crb)%fAqrq>0tL62o`rNsB;AY+$62|3-BI=StZUy#K+KCuWGaSB<6pFN&0qHjk5YN&EgZa97eZeqsq zF(Ty5rBWDgP&F%!@Bj^Xk}L<{>jt%5BO2N!Yk{av`Vjp9`bl?_{+?0#ouqrg*QoY~ zh|beqRk#+>Li!oItU4oQwwrVlb<1DoUebH%U=rltPr9R6_Q{g|u++QQb*BUe2y|0H zVWHH;eTXG(2?2nlm8j)ERmwP%U`N@MLOIslzvrzO4NT3&%T)|{o9 zq7vEheX4mArjWi)bY#Qd#v5=gtoDx*t)NQ?P;C$C!!Fsgi}bfJi{J5&)Ghy_d58Q9 zbje}ze?WR&sqB-#St*XytektOkotoPNL?eF_@F>vs~B2W`@1VWJ<~VQ-#5|B z%^#pmN3*_{+FWiP&TG~uQd7D4YF@K&{~)4)o4fLw^}N((a`TS7W<4UcQ@I(=YgWJ1 z(zV7?@$;!F;EU+{Lmvf8KlyEaE9ZR_Nwba~(0X}YSeIn<@#`Q2S=GNPCUSzC>c@ejU zTSx2*m>X9TaoyqbTa_<0z`_2^8ga zMID>&A9vf$aIA;?-j9kdXu1sl%-miS10$&h8@gj--@p%07t;O_S1{u~(czF|Aow0; zju=-M^Di$zFSx8i&%sXUrM3-JxE;pJpxS~C;cmEEIe9`{->_E6t`RRb)Xj^p!K`>o zjqqUq=y9l=gB0r#LlePl?PY7kctdl23y|`Buj3qIz}H;`RK)A+M0?|6jrrZm2Nni5i9$VKH3=ms`|L(QZxE6KW)y(87kE=q*^{3EjyM zjTu@Zk%~iY*Q*0 zF1)yCPrO^h0?>IXwmGJ6jmgDtzpGIkJ-w|S?`zmk##TDNY!(O?D`N1?XleE-{w}eh z*;k*alwR|tlQTiDV3&BZ*|)gUGugZr+!RQ&m3S+KT}k{|k5K0O>f38%*itfYB=fc! zamjpN`tA~GUPb0RKzbnSh0`RjP^95r;)mRlKSll)argxL5zWIN7(3vZ0nK-INsiwc z9FM|-`IpMB)2zY4j6FeybhQjPgE-!f7|=$%miPYI3h+??tB?hnV2IM?$~#hLfJ#Lh*kvfC?$ z7x_H+Uo)oKO}EgXOZ>ISSDL@UmM#>FeJe`Z7Rqut(d#?6M5UAagxKplxAd*Eq|L`5 GVbedOOU(BG delta 2095 zcmZXVZA?>F7{^Z!)PV*10$t^;RRd+bl~Bmw184<0u3&sY1r{@tVN9kbF5ARpPF56H z))g1nF@}+_4^y)xESshQ9b@duHen>jYW88q#dO(1YH*pE7@0%a^W5{$jqW7(o_l}) z=lP%KyxjJ}{(-%H&+*pc{(|RMt5&A9A6qUS95(Xn$--v(k~_`8o2GlZJ@<@^DSmH6 z>FS8E_SP{o#7+!andciFJVi27Kt9#;)6=CT#Xl8kipS{5D7h-59wsw3#xe7=Xyz}; zB0aU0t5)$wYPAE3@LYx5fH!O$^;oLnji*)rWWc+q47}T?HjC@2Hs7pCDFa}q9IBAk+y05c+`5r0M==;h>0lu)DUd4KGFr7)2HJ$4sXHL)t|$z zM{Uo#48^g#zrhXY`$)S~o#NMb$++Xt8An;SdSor=hqs8Avh7VJV3UMtQzxA9+V#Juxm-dQ7B@{abOTqCyUS7zYx!9`)4v^&d$PRHUH9N~}i zU0iJuH}hQ?`;%l;o($4nFlxF*WE8mEwWgKwHVETjbC7rmrR^gAp-CJoaAj0jWLi1N zZ6qJEh{*z%ul*S**OL4;^cHaaK`;4P;_ncLFW-YG2XD{bYvys`Deg+6&y zU6w`}J45_+vlj1Tg(M7-P$&gPzd!68@k3P5UWy+k{wA&MI^rY5ducV#6CWoYN|S}| z)3}eZ??`x(ECu-O(%KAhLyF{IVfJxw-(ymb((oOm>YzN#x)w9cD&lR4auh-FDa0?+ z0f3dz+Ox!O$BdpWc>(LB`MpR9xs>pL3bMmHwj%Lbv2Al1sh*f^tt8${lkbvA%tPEv z+lQwaTfMkZZ1Zg;^#GTX;c-&kN&Is}wu zW45WE_^o7NDd`PEjgrZil!~YQjH!O;K~jOzDP1 al>$P-?5;@cqp$Rg*x|0=&SLSN+xZV +#include + +int main(void) { + struct dirent *entry; + DIR *dp = opendir("/sys/block"); + if (dp == NULL) { + perror("lsblk"); + return 1; + } + + printf("NAME\n"); + while ((entry = readdir(dp))) { + if (entry->d_name[0] == '.') continue; + printf("%s\n", entry->d_name); + } + + closedir(dp); + return 0; +} \ No newline at end of file diff --git a/src/userspace/bin/lsblk/lsblk.elf b/src/userspace/bin/lsblk/lsblk.elf new file mode 100755 index 0000000000000000000000000000000000000000..7679efe3810af4b6b1f7debf11464f797b6b1e7b GIT binary patch literal 18064 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 IHAnOR0JOrhQvd(} literal 0 HcmV?d00001 diff --git a/src/userspace/bin/tree/tree.elf b/src/userspace/bin/tree/tree.elf index 8c8dbffbf48f071b4dad0cecc4f28a02cb9aaf0c..23811cc2883d9ba8c673ea63822a7ddddbe901e8 100755 GIT binary patch delta 2831 zcmZXWd2AGA6u`d@yY%ktZco}$1}JSg+9DvJQZ8v-HH1SjK}1+~r?AlOth=)aNZF8` zCM*>O_##Ilu?fKt%O7A7MvPD-Li7(&K_!uBMbScy0S_bysqgLgwj6%R?0fI`&Tp=r z?Ju``w^vEswL3;l%;+m*i8ZC@$f^#x_T3!D{#xjcUv^^*w|42NR-}MU@3mX&3;24+;Pj}li~`>7sFM!5_zw!#K%)@H+-R@XRHC>98GE_?h7(XWn*trGdqMtO1+w8yYGzDm(R|r(3pHOhHKFCn zMs-p%7Yi*{He5-~d`4(a+4u*x4kI{abG%?VvT<3k9N8QqShj4O7A#vfGX=|%jdy@W zAvsGnsZ6?Tw28oU+5Aapc3p=UyKG(%woP9GwoNwA2z!9u0QLac>=d@7*Mcp{=6+!_ zJrnE{UB0#xfVBrM*tM;wwWAh|p=yEJyTSSjMZ~&-B4FJ?vBI(yf>>r1p;%;9pqOt> zM)ABg3&kvJE{Zy9DT;}fhN9Nmh@#3eQ4F>AqbRmMM3HNqLy=`&Dr9MRzuyG2GpFFo z0n;XD;jLqT3`J{Kq|}1x*tMVG2WSb>SXYWWZg+^dbP)0}W_0Na`2Wr1WyNLlzsn>T z$#@_}SO_6YFmmf$ zm?eKcsAn1L&4g|$$7p1;ie00ei=|BeGP%@}|O9objhcnhCyJOuqpmPtD2qT6e z+->{$oj=Z4@~8)Io!|t8`r2)mw=t`v#v;kjs~rPLC zC;?4Zz-adCy6R&AO@WY=N~6C?RkV=e^M_Qgu7%e1dx9Y?QNbV3)leuBge)bzF08A~ zir3TB#Qe3I0uC+2mV11nj!zAHL;fI?i83vsD_Wz{tTtoOMB{K6=kTckKMa6L9-l9S zLnek$*ZRYHxWBzmUE}wvVCstJf$99=ht0qmPm>=ig;qqG)qu`)O;egZftBkN*m)o^ zmZ%x@cvYoIZG@?ChD7n@A#F7T1^q#l!61<)UBUb&sHU>UNWj~F;{46QCKVgN39=X;t#BOaHOySY-|zVGNNW& zne$=yGH^=}P*1!TY+NcF$aN>b4pm*bB5gv#$yk`&4Y_<=Ma{^$X~O+9xlNER$aV}A zJX;cuJ^a;*!e~2r&pCv*TsYYQkWLtNGW7vd;icclJ zmNq|xcs6hcCNYeU5(SY*3G-;67IKvkKln&vg?L?tXv`_Tia4ixA=zRq@na7Tgw9Fi zSWG)!M1`gi|C|OY0~=QZalyRDHQ(}@f>;-8i*etzB|zuJ_3`s z5`On!gQGco)u?@GVLg<1A9oHM9Z%ug$0$;yfWJ4U#)+SpSSwN?DsJINs)uk#wIc(+ oLXq`V@=?`OGgy@fU;}xmdSW`O5$0itpOk)>UP(3l=9nS>0Rc0SH~;_u delta 1943 zcmZXVdrVtZ9LG;jdmSxEAG@`a^f5+(4r*66#zvHZ4)E>|9Wc>J%zVsEd`H>T;7DZ! zL#;;0FWDmuQ!&eQE}Gd$NaLW+gpnB&6KB+@j2M@6VsspX66V*B6&g8|+W9IB|X#8sxZAJpSdyl-7KQoz_B?ON=d7X8(x#d@+@yeX^2PGx2k z#0NGbB;R49Oz(sv+rLHf^jwXAvICjOhB)yWQhrN6-I^KS-wq zjiwD+OgSO##;~)FvA*=K<*2`Ffl9ZxZD0ZJc50`T7jPz;jMR%GwA>-wV@=sP2Trz% zi41#}7{--m?5>AhZ-HUAw|v<(=t2{VuzaHhYjNhxj7>2%myg+gH^Z#^-n@d#`YBuh z+s!U$_pGjOLmRQ6ng`Y=y1C@t$6+UtSYunF9OYH?@U0^9hs3LgbRMQid|114tW z;s;wRJ_crFU#jqTAhgW6JLdM(RSb?_+wV+SQ#o(?9#1T7a8j!xz-M& zD?^cuH%NIS$!}usK=1t~$=@NqpLnWJazF7y*xRwlZ}DOZByP88qxgt8f0Dghr;HsT z-eA-1Bdn5y4@kI7%W)F_n0PG}w2k;D#P6iU#l-QB=!rXMHxCp4g7{lYWue=39%1Zj z5sUR=TMXQ6>pleejsf847;aE2j@1Vs;r4wr$oon-Bo4(0vg0;6aWAK diff --git a/src/userspace/libc/include/emx/tty.h b/src/userspace/libc/include/emx/tty.h index b8a66b7..38de6d9 100644 --- a/src/userspace/libc/include/emx/tty.h +++ b/src/userspace/libc/include/emx/tty.h @@ -4,4 +4,5 @@ #define TTY_ECHO 0 //default #define TTY_NOECHO 1 -#define TTY_MASKECHO 2 \ No newline at end of file +#define TTY_MASKECHO 2 +#define TTY_RAW 3 \ No newline at end of file diff --git a/src/userspace/libc/include/stdio.h b/src/userspace/libc/include/stdio.h index 76e3e69..5516723 100644 --- a/src/userspace/libc/include/stdio.h +++ b/src/userspace/libc/include/stdio.h @@ -19,6 +19,7 @@ extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; +void perror(const char *s); FILE *fopen(const char *path, const char *mode); diff --git a/src/userspace/libc/include/string.h b/src/userspace/libc/include/string.h index 3d3a70b..4d19e87 100644 --- a/src/userspace/libc/include/string.h +++ b/src/userspace/libc/include/string.h @@ -1,6 +1,8 @@ #pragma once #include +char *strerror(int errnum); + void *memcpy (void *dst, const void *src, size_t n); void *memmove(void *dst, const void *src, size_t n); void *memset (void *s, int c, size_t n); diff --git a/src/userspace/libc/src/stdio.c b/src/userspace/libc/src/stdio.c index 3004ec0..d3d69e9 100644 --- a/src/userspace/libc/src/stdio.c +++ b/src/userspace/libc/src/stdio.c @@ -18,12 +18,12 @@ FILE *fopen(const char *path, const char *mode) { if (!path || !mode) { errno = EINVAL; return NULL; } - int flags = 0; + int flags = 0; int fflags = 0; // parse mode string char m = mode[0]; - int plus = (mode[1] == '+') || (mode[2] == '+'); + int plus = (mode[1] == '+') || (mode[2] == '+'); if (m == 'r') { flags = plus ? O_RDWR : O_RDONLY; @@ -291,3 +291,14 @@ int puts(const char *s) { write(STDOUT_FILENO, "\n", 1); return 0; } + +void perror(const char *s) { + // "prefix: error message\n" + if (s && s[0] != '\0') { + write(STDERR_FILENO, s, strlen(s)); + write(STDERR_FILENO, ": ", 2); + } + const char *msg = strerror(errno); + write(STDERR_FILENO, msg, strlen(msg)); + write(STDERR_FILENO, "\n", 1); +} \ No newline at end of file diff --git a/src/userspace/libc/src/string.c b/src/userspace/libc/src/string.c index 7750ba8..4e2f60c 100644 --- a/src/userspace/libc/src/string.c +++ b/src/userspace/libc/src/string.c @@ -1,5 +1,6 @@ #include #include +#include void *memcpy(void *dst, const void *src, size_t n) { unsigned char *d = dst; const unsigned char *s = src; @@ -25,6 +26,31 @@ int memcmp(const void *a, const void *b, size_t n) { } // who designed this, shouldnt this be in stdlib.c...... +char *strerror(int errnum) { + switch (errnum) { + case 0: return "success"; + case EPERM: return "operation not permitted"; + case ENOENT: return "no such file or directory"; + case ESRCH: return "no such process"; + case EINTR: return "interrupted system call"; + case EIO: return "i/o error"; + case EBADF: return "bad file descriptor"; + case ENOMEM: return "out of memory"; + case EACCES: return "permission denied"; + case EFAULT: return "bad address"; + case EEXIST: return "file exists"; + case ENODEV: return "no such device"; + case ENOTDIR:return "not a directory"; + case EISDIR: return "is a directory"; + case EINVAL: return "invalid argument"; + case EMFILE: return "too many open files"; + case ENOSPC: return "no space left on device"; + case EPIPE: return "broken pipe"; + case ERANGE: return "result too large"; + case ENOSYS: return "function not implemented"; + default: return "unknown error"; + } +} size_t strlen(const char *s) { size_t n = 0; while (s[n]) n++; return n; From 7d6b17beb47e59f5b1aa4ca63a0048d1b1b63714 Mon Sep 17 00:00:00 2001 From: emexos Date: Mon, 9 Mar 2026 14:24:25 +0100 Subject: [PATCH 34/41] new panic screen --- dsk/initrd.cpio | Bin 2338816 -> 2384896 bytes dsk/rd/user/apps/de.elf | Bin 0 -> 24792 bytes dsk/rd/user/apps/ws.elf | Bin 0 -> 21368 bytes shared/config/system.h | 2 +- shared/theme/doccr.h | 7 ++- src/kernel/arch/x86_64/exceptions/panic.c | 56 +++++++++++------- src/kernel/arch/x86_64/exceptions/panic.h | 2 + src/kernel/devices/fb0/fb0.c | 3 + src/kernel/devices/fb0/fb0.h | 1 + src/kernel/kernel_processes/bootscreen/log.c | 1 + .../kernel_processes/bootscreen/print.c | 2 + src/kernel/kernel_processes/fm/fm.c | 12 ++-- src/kernel/user/ulime.c | 2 + src/userspace/libc/include/emx/fb.h | 1 + 14 files changed, 62 insertions(+), 27 deletions(-) create mode 100755 dsk/rd/user/apps/de.elf create mode 100755 dsk/rd/user/apps/ws.elf diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 22614ea491b3bf5a015f8c2fe71c9f6215ff857a..1c24137bfb423145e4c87dba3a2e172acd4bc692 100644 GIT binary patch delta 18811 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 delta 1386 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 literal 0 HcmV?d00001 diff --git a/dsk/rd/user/apps/ws.elf b/dsk/rd/user/apps/ws.elf new file mode 100755 index 0000000000000000000000000000000000000000..c2de3b0a5e6d107026efb67e3b3e110d40888c5f GIT binary patch literal 21368 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 QZ68ut&bh=HGjsfZ0^Y#Ar2qf` literal 0 HcmV?d00001 diff --git a/shared/config/system.h b/shared/config/system.h index 945acda..e84f8df 100644 --- a/shared/config/system.h +++ b/shared/config/system.h @@ -15,7 +15,7 @@ #define JUMPTOUSER 1 #define USE_HCF 1 -#define BOOTUP_VISUALS 1 // verbose boot == 0, silent boot == 1 +#define BOOTUP_VISUALS 0 // verbose boot == 0, silent boot == 1 // 1 == run tests like processes, scheduler which are in early developement and not finished // 0 == disable running those tests diff --git a/shared/theme/doccr.h b/shared/theme/doccr.h index 2396b08..cd80e31 100644 --- a/shared/theme/doccr.h +++ b/shared/theme/doccr.h @@ -1,5 +1,7 @@ #pragma once #include "stdclrs.h" +#include "../ui/fonts.h" + #include // fs_write & fs_open #include #include @@ -33,8 +35,9 @@ extern int init_boot_log; #define CONSOLE_COLOR_THEME FLU //panic -#define PANIC_FONT FONT_8X8_DOS -#define PANICSCREEN_BG_COLOR GFX_ST_BLUE +#define PANIC_FONT FONT_8X8_BOLD +#define PANICSCREEN_BG_COLOR GFX_ST_RED +#define PANICSCREEN_FG_COLOR GFX_ST_WHITE #define PANICSCREEN_COLOR GFX_ST_WHITE #define PANICSCREEN_COLOR_R GFX_ST_RED #define PANIC_COLOR_THEME STD diff --git a/src/kernel/arch/x86_64/exceptions/panic.c b/src/kernel/arch/x86_64/exceptions/panic.c index 106407e..00a3b2f 100644 --- a/src/kernel/arch/x86_64/exceptions/panic.c +++ b/src/kernel/arch/x86_64/exceptions/panic.c @@ -1,26 +1,37 @@ #include "panic.h" + #include -#include #include #include +#include + +//#define BOOTUP_VISUALS 0 + +#define PANIC_BG PANICSCREEN_BG_COLOR +#define PANIC_FG PANICSCREEN_FG_COLOR __attribute__((noreturn)) void panic(const char *message) { setcontext(THEME_PANIC); clear(PANICSCREEN_BG_COLOR); - // Disable interrupts + f_setcontext(PANIC_FONT); + // disable interrupts __asm__ volatile("cli"); - print("\n", white()); - print("!!! --- KERNEL PANIC --- !!!", red()); - print("\n", white()); + print("\n", PANIC_FG); + print("--- KERNEL PANIC --- ", PANIC_FG); + print("\n", PANIC_FG); + + f_setcontext(FONT_8X8); + + print("\nIt seems that emexOS has encountered an error.\n\n", PANIC_FG); if (message) { - print(message, red()); - print("\n", white()); + print(message, PANIC_FG); + print("\n", PANIC_FG); } - print("\nSystem halted.", white()); + print("System halted, \nYour computer will now restart...", PANIC_FG); // HALT while(1) { @@ -32,19 +43,24 @@ __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *m { setcontext(THEME_PANIC); clear(PANICSCREEN_BG_COLOR); + f_setcontext(PANIC_FONT); // Disable interrupts __asm__ volatile("cli"); - print("\n", white()); - print("!!! PANIC !!!", red()); - print("\n", white()); + print("\n", PANIC_FG); + print("--- KERNEL PANIC --- ", PANIC_FG); + print("\n", PANIC_FG); + + f_setcontext(FONT_8X8); + + print("\nIt seems that emexOS has encountered an error.\n\n", PANIC_FG); if (message) { char buf[128]; str_copy(buf, "Exception: "); str_append(buf, message); - print(buf, red()); - print("\n", white()); + print(buf, PANIC_FG); + print("\n", PANIC_FG); } // Print exception details @@ -53,25 +69,25 @@ __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *m str_append_uint(buf, (u32)state->int_no); str_append(buf, " ERR: "); str_append_uint(buf, (u32)state->err_code); - print(buf, white()); - print("\n", white()); + print(buf, PANIC_FG); + print("\n", PANIC_FG); // Print RIP char hex[32]; str_copy(buf, "RIP: 0x"); str_from_hex(hex, state->rip); str_append(buf, hex); - print(buf, white()); - print("\n", white()); + print(buf, PANIC_FG); + print("\n", PANIC_FG); // Print RSP str_copy(buf, "RSP: 0x"); str_from_hex(hex, state->rsp); str_append(buf, hex); - print(buf, white()); - print("\n\n", white()); + print(buf, PANIC_FG); + print("\n\n", PANIC_FG); - print("System halted.", white()); + print("System halted, \nYour computer will now restart...", PANIC_FG); // HALT while(1) { diff --git a/src/kernel/arch/x86_64/exceptions/panic.h b/src/kernel/arch/x86_64/exceptions/panic.h index 526d0b2..2d66a5e 100644 --- a/src/kernel/arch/x86_64/exceptions/panic.h +++ b/src/kernel/arch/x86_64/exceptions/panic.h @@ -4,6 +4,8 @@ #include #include +#define PANIC_SHOWSWITCH 1 + // Kernel panic __attribute__((noreturn)) void panic(const char *message); __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *message); diff --git a/src/kernel/devices/fb0/fb0.c b/src/kernel/devices/fb0/fb0.c index 9b67c91..f434363 100644 --- a/src/kernel/devices/fb0/fb0.c +++ b/src/kernel/devices/fb0/fb0.c @@ -105,6 +105,9 @@ int fb0_ioctl(int request, void *arg) { fix->line_length = pitch; return 0; } + case FBIO_RESET_POS: + fb_write_pos = 0; + return 0; default: return -1; } diff --git a/src/kernel/devices/fb0/fb0.h b/src/kernel/devices/fb0/fb0.h index 3ea6a23..c76fc42 100644 --- a/src/kernel/devices/fb0/fb0.h +++ b/src/kernel/devices/fb0/fb0.h @@ -40,6 +40,7 @@ typedef struct { #define FBIOGET_VSCREENINFO 0x4600 #define FBIOPUT_VSCREENINFO 0x4601 #define FBIOGET_FSCREENINFO 0x4602 +#define FBIO_RESET_POS 0x4603 // /dev/fb0 module extern driver_module fb0_module; diff --git a/src/kernel/kernel_processes/bootscreen/log.c b/src/kernel/kernel_processes/bootscreen/log.c index 86c3025..8f5505d 100644 --- a/src/kernel/kernel_processes/bootscreen/log.c +++ b/src/kernel/kernel_processes/bootscreen/log.c @@ -35,6 +35,7 @@ void log_message(const char *tag, const char *message, log_level_t level) { print(message, msg_color); //printf("%s %s", tag, message); #endif + //printf("%s", str); } void log_printf(log_level_t level, const char *tag, const char *format, ...) { if (!tag || !format) return; diff --git a/src/kernel/kernel_processes/bootscreen/print.c b/src/kernel/kernel_processes/bootscreen/print.c index 944786c..2129ab8 100644 --- a/src/kernel/kernel_processes/bootscreen/print.c +++ b/src/kernel/kernel_processes/bootscreen/print.c @@ -272,6 +272,7 @@ void printInt(int value, u32 color) IntToString(value, buffer); string(buffer, color); #endif + //printf("%s", value); } void print(const char *str, u32 color) @@ -280,6 +281,7 @@ void print(const char *str, u32 color) string(str, color); //putchar('\n', color); #endif + //printf("%s", str); } void reset_cursor(void) diff --git a/src/kernel/kernel_processes/fm/fm.c b/src/kernel/kernel_processes/fm/fm.c index f66cf64..c68cc80 100644 --- a/src/kernel/kernel_processes/fm/fm.c +++ b/src/kernel/kernel_processes/fm/fm.c @@ -4,6 +4,8 @@ #include #include #include +#include + static font_type_t current_font_type = FONT_8X8_BOLD; // default font static const font_t *current_font = NULL; @@ -63,10 +65,12 @@ int f_setcontext(font_type_t font_type) current_font_type = font_type; current_font = &font_registry[font_type]; - BOOTUP_PRINT("[FM] ", GFX_GRAY_70); - BOOTUP_PRINT("switched to: ", white()); - BOOTUP_PRINT(current_font->name, GFX_ST_CYAN); - BOOTUP_PRINT("\n", white()); + #if PANIC_SHOWSWITCH == 1 + BOOTUP_PRINT("[FM] ", GFX_GRAY_70); + BOOTUP_PRINT("switched to: ", white()); + BOOTUP_PRINT(current_font->name, GFX_ST_CYAN); + BOOTUP_PRINT("\n", white()); + #endif return 0; } diff --git a/src/kernel/user/ulime.c b/src/kernel/user/ulime.c index 3f72bb1..5cbee05 100644 --- a/src/kernel/user/ulime.c +++ b/src/kernel/user/ulime.c @@ -81,9 +81,11 @@ ulime_proc_t *ulime_proc_create(ulime_t *ulime, u8 *name, u64 entry_point) { proc->entry_point = entry_point; proc->heap_size = 256 * 1024; + //proc->heap_size = 8 * 1024 * 1024; proc->heap_base = (ulime->user_space_used + 0xFFF) & ~0xFFF; ulime->user_space_used = proc->heap_base + proc->heap_size; proc->stack_size = 64 * 1024; + //proc->stack_size = 256 * 1024; proc->stack_base = (ulime->user_space_used + 0xFFF) & ~0xFFF; ulime->user_space_used = proc->stack_base + proc->stack_size; diff --git a/src/userspace/libc/include/emx/fb.h b/src/userspace/libc/include/emx/fb.h index bf7de39..8f4c995 100644 --- a/src/userspace/libc/include/emx/fb.h +++ b/src/userspace/libc/include/emx/fb.h @@ -4,6 +4,7 @@ #define FBIOGET_VSCREENINFO 0x4600 #define FBIOPUT_VSCREENINFO 0x4601 #define FBIOGET_FSCREENINFO 0x4602 +#define FBIO_RESET_POS 0x4603 typedef struct { unsigned int xres; From 768451deb558a14ccb1eecd4b0602d29905d5e84 Mon Sep 17 00:00:00 2001 From: emexos Date: Mon, 9 Mar 2026 14:24:47 +0100 Subject: [PATCH 35/41] new panic screen --- dsk/rd/user/apps/de.elf | Bin 24792 -> 0 bytes dsk/rd/user/apps/ws.elf | Bin 21368 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100755 dsk/rd/user/apps/de.elf delete mode 100755 dsk/rd/user/apps/ws.elf diff --git a/dsk/rd/user/apps/de.elf b/dsk/rd/user/apps/de.elf deleted file mode 100755 index 4d3ce8a3b3154e36ec834f3fcde3600b6b7489d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24792 zcmeHve|(hHmG_;5goqo98r`NV_U6-Fqy$DA(LjFflvv- zoy6tobPV0MxVE(|wte?wtKHgG*@4%>gry|)wcEkcZnmY{xXr$uIN3VgWtVB+?B@M` z@4e5HNeFh^eciu!+RVN8+;h)8_ndRjJ@*H8n)j|L@_2;v6^Yx0F4Ykxe~=D*lqL1m zi5lS4i83)=;!Y>HTvv`asUzf>RSN#1P7Cl<#f9Gs61X6N3lg{>feRA2Ab|@KxFCTG z61X6N3lg{>feRA2Ac1#X0{$ES$se!1)}OGhEz5YZllR+wndy~6oT>NQ|LBj6)cNg> z0lyth+x4&e<0i6w8S56}nK^%~BPXIWlH_vuukq7oj>>#Deu11Z4%W@7U1GH}?~kSC z#Op`>fj9h3uT8@lgFjxM_IqCQ+b0i?5#K)Hw||g%1Ih~X^^PmSK#rWBu3<-HrXwSa?hlQPjX71< zE|(pD@2~a1*JI%Q71X_RG@0H2=GA64IEvc*=TV?lS0Oak6WDuQP>6MK3 z#~r+ntXMI&DmfSRlTmXQE7Vno6wa9+e}C-I;H{$Wa49KH!w=c+yF^p0D@(NQQJt#> zPqsFX9r{1nK^K{%CjHNuigC({(AjO-EUessi zAHK^R%T7mzLK%mj`R&WLgrDKi*hhh4Q&4Pt57pJ3vOpyF+%Nt@BIh`)__}<&ejpw_ zEyrtrZ&h+W#Br!m%jA_A=NQTadNcfeW@hFJQI{=aZVqxV-$eV2xOqC!TC_TD=Hu&f zFv1M!n|3cW30t&(OCdf46;8qI-S#okSg&YY9q#~%Gm5?6p!vO!8X8}Y#85<4*$zpL%;a>5dcx}VcJyNPkwCrAA^ zBp(TWp@PkM+K_z>_|i zw@vs~)n%P`v6(KY=0k(hhZ0xfz;1ivxGR&-H95ZB{Ys$d-&(*SR?jI#ElT4h$m>G z@%^+{fBY31ujZcy^S^$}UQ}mlRDS!%toYVNAU0J+mUFqjKW?Ty>BRaG3^dVNswu8I z#4)T&N>5isU4qgMK|Te zK}qNUC`l7PqU^jc^9io%nx(^7QP{tB9`SXf@%j;e;uYy?G|nj4aPU6?eDGRBUMC3l zdlgc!gAnW>Cf$=o#M@6i2zO8kSGy(%mhjpujczWHY*A!9^=)KPvz#@L7~Nk{#amG{ zj-+Dw)z)_W7(Ks%{l)TkTI=y+^kijel{F)lzr$KEe452=qouKqQLz(ij|@K0E5IVV z9xk|4y5Nyr7sbtySjJto&%~bsC3_O1QhoTZ^N%M zm>EX*M^RL6ZwilVbge|S((7z^85u6c>vI$)X3!BToHjBWmJf;KgtZWYLqwJF7zevb zh*P`Nnk!*&dw#n<2j@iaQpj0(YPptbXD>bVR~aT?S@yFd#%i9l|F-`CA3N4g)hKau z5p@QdsvB>SY-CHvyOVQuoR02XWLG8Wi~NhhtK-R4Oy_!Xz!gm};c@)<^&oem`xdBI z#5+dg>tJ+p6tF#sOgp#pl*o@^ep(x`j=V6scKthC%~XcE;ors$^-VA}`~Wcb4d07j z9m7>1hRfU0GmxH*F1h5_m2nL}vpgMHuF77Pb0{xj*&i?0XvR0poQ)XsjHe%~R_|bu zpKITUU4+GDLXen*{*nxX$M6k51V&Uih$$hCrfzrK#s?ADLZC_e4)&0Y*Ohmtc3yro z?INtcUI;~FHYKcZ{E7P15wQkKbYEr|&I4=tLI^R#|U%s*}S_#@9QQ@R+`p4zGt6IjsCC$m-@?0wp0YcG_> z2j;hFKM0hCzdIFu?>XexyW}5s$Y&QzEWeUSAull(`353`3*idAN^VJF9Ro0quPXjv z^6b^<`iw41@fv$SF?^{ z=T(%0cI5~rAcp^gFv;Co?7j>r8NY`Hg})VMuI*5E+P*^5!SwGKu%oB!`n0|7_0_i7 zzuI1R9Ja(^y{Y+jhIJCO6Xj2^_}aM}pC`kBqgI!;O7cZ$5mI?}R`W`Vq7e9O(z z-7|C^O;ygj+{`;rFQ{PUwaqix0BhA0U{g$iGyXt-+&l%1V;aaw08e9P;P)86m_rCF z*;n>Glo5ivx!n4(YYZOK<+xoGGjj;iax2WCT|bRsHep7sF!Q_ipHCJLgA&DF1Vu_3 z-&G`CCBK5QaRkv2e0ay`g6&)YI=6EHScw|=ZXf+}?_jaNBqjZH7Uto|5M>c(Tcj1U>!x=j|WY-V+?R5hf^C_r5jR9j{+VvzD zkYl$x5&Tl&<{-3`ZG>P4z;x}5s8>~h`iv}~h>fRH>Qwl#UD%(n6)SZM<48YtJn4AH zDMa4!D9s=v_dKxbzDyJ`GgiSef6N^4=oVe6=%*%gJivnh#n^NtX?OF#PY~a(T1J*6aM)wzL|+-%Ip)pzgpnQoy@xga*5Vy z1q70en<js6$K-K8tu4tm1Kq?hqKaHKGV<||P!~rQI1T!t8!DI_ympmU;Cr8sukS-T8V z&=f}IDpKvJr4}#4xV3fVXkF~3D`j1ashIFzBuU7Vk`(O21L2M=?=?Qzg2lAZ{Couy zMokiWJT!&{DA#{n8kIVLdQs-3{~rD`S{V->jDvd)U|BH^!g=N=Px7tt`axhplf)Yz5PXSuI2kq2hXHUw~F9u0;_{yREmu zFyvw4NuZCjxKJw{;V+y&IO6ynS3XaYQvATc_m&q9cA)J|Hh9Ouo-4|G3P>6U5tXdd zg6)SiYmQk6YGh|b#jjq!QHq+=?pkS96 zUA+o+iP3Yhf_aUuzfdr*(W9wcWOT(9>>{J*7b;g`S)gBH^!!kjr&*7pJk99g2{UrV z)*AjAJ={VfS7a^auhH{mRTkF8D0?hJ&iv%pFy)66s7ii|xfpY=A(!2i9AXkpo?+6G z^wuHSlDw43rsVZZKAfy!@<4JelY5d6F*3{m3)QC z70K^2nUnlGCf?**OiGf)t3;h^3>7qS*QQIf>9`YGy2|JAW#%E)Ty};UK7(HhUJl9v6=vaA{H90z6?zAR)uz|Keo4Egy zqr|Q{d%5Nw(OFG8iUT`@sPkOCD@C53*w$IbT`llx1`@~aW(YLOSb`PjCz-=fNZS>2 zq4^A|ZrFJy`!Ie7xmK&*JE}lRRDE}KkKSvBBD>=e~>hIgk#!FsAGTz@8 zRB1wg3sip=``hheV;@`6N)mEz%nKrW0$Zhv!A3pu{J`>L)ku-xA_N;D#Re1#ENbR{ zw%{@@54}JhCaKoYoL0sdk97)XRiV0J)NoPu-x?(#B8j?Ip*$&-;#^5SDY+|2UW+av z$xG!8-BH}mh|F^`t}FRGtH^CEW%y%*U;+7f$&&<2`tu%lFc4g+=nF_E6p@dR2=?}o zS$!oR1Rg0%rDP2bz;Bn_rdm&ykK?#eS$`K9&91bz(-Yov(`9&kgJrmd< zh@&DXGkcR$`YBb*Zg`+(QRahg+@dBx{9mQa$N4OyCmTQKDo4nI=opkgR4fEf*BFS1 z%vxQ-Me#zpkYQwY{ppEbx7KInzzS!1?G47KQ}9NRqzw1u>>+${RILE9j?*Igpo3i% zeLu6bAtJR~l&f3(P;_RWd72N;Ib(~me>C0L%nch2`4YRWKZPeo2!!7w6w`+&YerV5Gu9JE)3xLYK3n)kRmH=Y5cErUbx83XSIFa>J6;^%ZM-5dUsgwcN%F|Er_AS|1n}68S<)|d zB62nR&koonPglZ$qiRe}kN!ec<5F@&X#_4$WU3VbJ9p~9^U@j9h`#AZy5Ox|8k$2QnkNAFMJA4pwQqHEq8O zk81+i0!{R~^;#2%=gj^>O$>hlDB5u3`D;HEky!WkVJSwbiH6@4YJ&Va6tZ_pB}6q$ ziav`l!FeSkFF6Kq3u7EK-`)#1VZL2E!@2~QIk;oSrO+T^Z2TO2UaU8Fd#xeg5%%~|DJ?xxXU4y1D>BYFk z#C9q08Wf-8yHcF@uPzzbiwj8oN^Er3kH%&2#K=pWpZ0eilPmcvn`E;8Lo&f}HRP!~ zfG`!*%nf&6r2HEf-RrDce@r%4k2hd1*x|3}CZz~AS^Fhr2E8607V*|YAIJ|cCmDS< zM0i)q=vo2T3G;0q?!~|u+`kw>?deH?fx)52uy=gbP!qX5YGfM=(xidVVG$ z5o>iUA2E7jziCT z?}jD^e6XqPN>^d%i(990g)IO8PXy%&AT|gIr96FJ<|vLhQeDx5!%+^VV@OyHF0b#( zAkx`Q?^Xv8680F3D*0~U1Fmqco-CYM6Ra6)!woPRTr8b^G!0Z-weD|+N{(>v$S~)h zaPDK92jb=dI0ziUIkV)t$#ijXSU5}6N+n6h@X`UUWrdm9mC}#wva4J|+{RDP9(Lq~ zgy1kZ{kuxYmY#GmJeUA{g?V7tU-g*>z^WMjCXM#LL5Hb#Q-_!#(nCufKrks+4?%=K zjvik9L-p_~r1q-TgNh%2A3Y?e&_fawlN0o?i0w0)e&jsk=r6Y1B#eDc# zeq0YP{-Jt!5mI|m>*0A?@9#Aqo}WSw&x7Lg6ZG&LBM`^)zAN7B8Fvo2RmyK11k5j60OtAR%lA7Li+nP2(6CHIvnB=;3a?kf`{w*@Py%W21C_tgAu36)RL z3LIbBeofz84gVMebs75IqPtFtZur0-(n`+U8-I_^nkOoD;bd{WWAL;Ojpe194xGB1 zaVUX?T7aL=4siS8pI_=AK>SyQO9^wGz#_Al~=$E5AnppPUEp>DM=;j z@a7!<@M#ky1UrE>@)e%^Cx@y>oa`s&&jR1uaGJRH&e_;SQ$ptu!fRK&p_rm$>>1|h zf3GOF!7sp)ra(Kfhi_-_&%lOw|39$Y95OyBAaQlRx%L-QXe#iI%IhS`at~zLS8@p~ zz!hK?FD(#Ys~a3rvN?s)c;L+h8+?jRp*%Y7zslsylV_1Q-+UE26(~iY{@n)byn6SY z$Hob-MfGvpwXE>Rt7LthmrqD|pt_dtqP4y~lb<>`U3}Q-0z(|j`V=K;A1`vK+6Np! ze&XC7XH;IK=kx!oEOrI1-dyKhg;7h}F<$HMMMUIz%7a zo7%!H+t3&HNcbdP5PYEPPy_mCB%P*~Cd=2@6lra4*f~Qi1)gRZyoSkXTT?LN3x%UC zjllI0L4OsswG|bjLM&UR0Lzwj;(yD8_x9q-ss*r;Ky`&T6cF>5&2L#z-6Bd$dH63x zg}1b{)LS9&SAo0`q1v(95GuUhm0oFFGSAa}zO7atDmGOCyVxUc4@4dhZ@FD~XL|9i z6qVIg^GmB$T2);sYHF8NcUHBFmBkCHSe{>6yr3HC%4!e*ok|o~#?S3l75IlT>~#FE zl)aEY**!Qwo;|al3NNO~?SaQ1f4sO-ctK!gb+uR-3f&$GtrWGP;^N{^tyr)O|7363 z0@1nV(#lKMbgHz}koA$!E>SI;Rf|fp@2wQ=RbUhRYzZx^To&3Q42WkCsP;^m^ZzcN!d9Oh0t(`kS z4@5wVaIjD*Is-RW+>8Dy(Qj#KrQqPJHr0trsHdW$Qj`&S{2TL1*$_}!bvyJry|fhL z=UrfBbus#{sR9^qmRCYf^Ou!kNCwI+l=y<_rOR4E;MXgtz)DdilmMoeQUF^dlyD)c zDFCEUALLAWl#>uEAaN3u^x9Ew2}%0W@I;yScCYvS)E}FX4>qG=Vf>vmRtP{232^WO zJzws9?@CeQ^-lMCYXk-@|5yM>v~Xzn=x6vXZ47Q-8roc?pqN)XB9Hp?yb3h5w1h1= zvwaSpo_-VX*4%OT{dbuUZhUCNoe!AieRtot=6*dVXH39rYT4e<+|=lc1loeZ7R*!3 z=SWkyCE~lTvHiM6NxHEAZ4J%M;ea!}LvRl1!w-PijFU| zd1I*YHbrnx>cGCexdXoP@<=ogfbS7-RBa6wx`j)yd?;*dvaDdEfP(UDy(BZeAp2h+BOUQg!1^)i-}&*)288 z8#V_TgY=Z=d|ddQk9h`F&c}RVc|GD&)@{;ht4;}<>La~r;@4x7>*%11@Gt4F5Q^S! zGy>O1!smDt{KL9)&RoKqixvEv#j3$gNT#BH3*a8K;J>Glm>Qo2()rsN3f>?qg}4VP z@%iAMAZOk^i2PLa9|hclnrHO*83ps(jK8Vyw*t<7KR;j5e;<+Ywc?L-4osr69q@Oe z^SEy!olfAB{+Be|S!%m9{G^88j50qPfA2&;eD&1ypVn}P{-@4E=QDtNM6qz}g?i<8 z0Dpu#_T#{x*Ko(49QaFsb6jh#SN!}X%KZKcf7Dl%mK*-9xBQOacdBtYa#(hYqT|Sc zu{`Pjv4-EN$cR(tp>z5?@FBowgU)r!6#XhqXGFulewl(h^trbn{%7!?!XPSFD1Il3 z6#R!DQ1Ay7SUiVx7UZ^flAUngkj}Pw3jY$c=U0S@NBEgJ3jSpU78^9&(DeCGhTjYg zzgFAHwF)fwZ+vD!qR;Dor)l^+jlWUj-R@bX=s14zn;O67Vg-+)%x^3 z9e8nq}|5D4LLpS&v4Uf)Jboj4D`2B;1UsJB&)GNRD7b*FaOp?#9HU4KW zSNQ)!p$q;yf9gG_=QaH=KaZv}NBc=f4rLmi)Oz`_LKo#4zW7Q-zf$vanTEePSHVB2 z@hdgFUGwS8qiZz$xYk!p<1g0m9oH#3Sq;BY!|&F1{-B1}X!zH?3jc(LuhQ^_YZUw` z&F5Vj{^y#{wHp6E4S&ycg@3qMRcz4kx35+3y&C^v4gb3K!&jrsZ?lGf%ux8>Qee@d z;dg1hY|!wihTo*+f18GX6)Ej--zr7NvBO;&|LTPb9@hAOqT!q0tKctcxUJ!lOB7r_ z2|?Yn8t&8c)X~e+8ZIXJ)z4{oLhBLF&*b-RQ8}z)W)$ng<_^0%E9lL!+!*9A()Dd-!#y_IrXEdLVJwK@73$#7lq4AGv_(OW0 zI{x|l8a_+Q$I$pVFjx{08{2{njT^B85E~oY8g^`S4n8*Wlw)Hk+}s#!+qk2tr7^ri z?1->IDBNPzwAYA@tx;=ZYg2o$S!|TYBulD91ji07TZm}X@v&e- zD?(_5`i%;96Dz7kD9~ax0|IzcSk@rZf;y`aI|-R$uOT)@o2+mH$+V*N)}5-F1+{m<24!1#dr&l3;btM5h~|dP5fN+; z1_0g?v|5`QMF?p`0GAZ7nc=RdEl812YN22_B-HjzY>%|GV*FMJl2X!?om0X@b%D{g z2xv5H4!2okhP@+c3p~~)xVs8d6m5Y9OKjKV0*~qT-1|`=I5a}fk`maQ0z+b5OAfdUD8P%02Dz(5fXN^JNEWgT?0`(E7!lgh)?@`G!KUVBSYp7UE}FzfYzU=jn$ZDU zLNaU;5wZi)-nNy$+e2DH;4p~LC9-py)vy^Uq$<Y_HwC z8~3mOBZcHIz-88n?;SAX5&C4Oy|b@+Mz^2qAnMfd-wwEtcL&DQXZN?_Wuv=salc% diff --git a/dsk/rd/user/apps/ws.elf b/dsk/rd/user/apps/ws.elf deleted file mode 100755 index c2de3b0a5e6d107026efb67e3b3e110d40888c5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21368 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 QZ68ut&bh=HGjsfZ0^Y#Ar2qf` From bbbdbfbeb574ae0665031abd2ea5f1dfdb9e9a06 Mon Sep 17 00:00:00 2001 From: emexos Date: Mon, 9 Mar 2026 14:27:40 +0100 Subject: [PATCH 36/41] new panic screen --- src/kernel/arch/x86_64/exceptions/panic.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/kernel/arch/x86_64/exceptions/panic.c b/src/kernel/arch/x86_64/exceptions/panic.c index 00a3b2f..993fbd0 100644 --- a/src/kernel/arch/x86_64/exceptions/panic.c +++ b/src/kernel/arch/x86_64/exceptions/panic.c @@ -12,6 +12,10 @@ __attribute__((noreturn)) void panic(const char *message) { + print("\nPANIC WILL BE EXECUTED IN 100000000 TICKS\n\n", white()); + for (volatile int i = 0; i < 100000000; i++) { + nop(); + } setcontext(THEME_PANIC); clear(PANICSCREEN_BG_COLOR); f_setcontext(PANIC_FONT); @@ -41,6 +45,10 @@ __attribute__((noreturn)) void panic(const char *message) __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *message) { + print("\nPANIC WILL BE EXECUTED IN 100000000 TICKS\n\n", white()); + for (volatile int i = 0; i < 100000000; i++) { + nop(); + } setcontext(THEME_PANIC); clear(PANICSCREEN_BG_COLOR); f_setcontext(PANIC_FONT); From 386e89bd21ba55fd3b827f57fcc761c6e66f4f08 Mon Sep 17 00:00:00 2001 From: emexos Date: Mon, 9 Mar 2026 14:28:43 +0100 Subject: [PATCH 37/41] new panic screen... --- src/kernel/arch/x86_64/exceptions/panic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kernel/arch/x86_64/exceptions/panic.c b/src/kernel/arch/x86_64/exceptions/panic.c index 993fbd0..7a907e8 100644 --- a/src/kernel/arch/x86_64/exceptions/panic.c +++ b/src/kernel/arch/x86_64/exceptions/panic.c @@ -14,7 +14,7 @@ __attribute__((noreturn)) void panic(const char *message) { print("\nPANIC WILL BE EXECUTED IN 100000000 TICKS\n\n", white()); for (volatile int i = 0; i < 100000000; i++) { - nop(); + __asm__ volatile("nop"); } setcontext(THEME_PANIC); clear(PANICSCREEN_BG_COLOR); @@ -47,7 +47,7 @@ __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *m { print("\nPANIC WILL BE EXECUTED IN 100000000 TICKS\n\n", white()); for (volatile int i = 0; i < 100000000; i++) { - nop(); + __asm__ volatile("nop"); } setcontext(THEME_PANIC); clear(PANICSCREEN_BG_COLOR); From 941eee6aeb64abc14c02db8bd88d4c2c1b3ac620 Mon Sep 17 00:00:00 2001 From: emexos Date: Mon, 9 Mar 2026 14:58:13 +0100 Subject: [PATCH 38/41] new logging tags, changed panic screen design a bit --- dsk/initrd.cpio | Bin 2384896 -> 2338816 bytes src/kernel/arch/x86_64/exceptions/panic.c | 90 ++++++++++++++++--- src/kernel/kernel.c | 1 + src/kernel/kernel_processes/bootscreen/log.c | 20 +++-- src/kernel/kernel_processes/bootscreen/log.h | 4 +- src/kernel/kernel_processes/fm/fm.c | 13 +-- 6 files changed, 102 insertions(+), 26 deletions(-) diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 1c24137bfb423145e4c87dba3a2e172acd4bc692..320818d46c526979c96ea64a60386064133f33b7 100644 GIT binary patch delta 420 zcmYMwy-Pw-7zS{TY2`pfS^p`jaz(CQ#j(9K$c1`Bs_5h4U}I9u-0 zP~70GjtvSH)zqL<(BvP`(4)ikzz+`3%L~sr<<~kX_iN;-M%)*1gDE&n+2!<>M$9&O zSFBW1)8mv&`?AOEsb9Js3#!>FeaA*OX5KYV#u+nz2T?XzOr{(4W=iDze^URhf|G&ec2mk;8 delta 17662 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 xuhiLKt|$ #include #include +#include +#include #include //#define BOOTUP_VISUALS 0 @@ -10,12 +12,26 @@ #define PANIC_BG PANICSCREEN_BG_COLOR #define PANIC_FG PANICSCREEN_FG_COLOR +// from the old console poweroff +static void panic_reboot(void) { + outb(0x64, 0xFE); + for (volatile int i = 0; i < 1000000; i++) __asm__ volatile("nop"); + + u8 tmp = inb(0xCF9); + outb(0xCF9, tmp | 0x02); + outb(0xCF9, tmp | 0x06); + for (volatile int i = 0; i < 1000000; i++) __asm__ volatile("nop"); + + // nothing worked, halt forever + log("\n::", "SHUTDOWN FAILED, HALTING FOREVER.", _d); + while (1) __asm__ volatile("cli; hlt"); +} + __attribute__((noreturn)) void panic(const char *message) { - print("\nPANIC WILL BE EXECUTED IN 100000000 TICKS\n\n", white()); - for (volatile int i = 0; i < 100000000; i++) { - __asm__ volatile("nop"); - } + log("\n::", "PANIC WILL BE EXECUTED IN 100000000 TICKS\n\n", _d); + delay(10); + setcontext(THEME_PANIC); clear(PANICSCREEN_BG_COLOR); f_setcontext(PANIC_FONT); @@ -37,18 +53,23 @@ __attribute__((noreturn)) void panic(const char *message) print("System halted, \nYour computer will now restart...", PANIC_FG); + panic_reboot(); + // HALT - while(1) { - __asm__ volatile("cli; hlt"); - } + //while(1) { + // __asm__ volatile("cli; hlt"); + //} } __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *message) { - print("\nPANIC WILL BE EXECUTED IN 100000000 TICKS\n\n", white()); - for (volatile int i = 0; i < 100000000; i++) { - __asm__ volatile("nop"); - } + u64 cr2, cr3; + __asm__ volatile("mov %%cr2, %0" : "=r"(cr2)); + __asm__ volatile("mov %%cr3, %0" : "=r"(cr3)); + + log("\n::", "PANIC WILL BE EXECUTED IN 100000000 TICKS\n\n", _d); + delay(10); + setcontext(THEME_PANIC); clear(PANICSCREEN_BG_COLOR); f_setcontext(PANIC_FONT); @@ -95,10 +116,51 @@ __attribute__((noreturn)) void panic_exception(cpu_state_t *state, const char *m print(buf, PANIC_FG); print("\n\n", PANIC_FG); + // Print RFLAGS + str_copy(buf, "RFLAGS: 0x"); + str_from_hex(hex, state->rflags); + str_append(buf, hex); + print(buf, white()); + print("\n", white()); + print("System halted, \nYour computer will now restart...", PANIC_FG); - // HALT - while(1) { - __asm__ volatile("cli; hlt"); + if (state->int_no == 14) { + str_copy(buf, "CR2: 0x"); + str_from_hex(hex, cr2); + str_append(buf, hex); + str_append(buf, " (faulting address)"); + print(buf, PANIC_FG); + print("\n", white()); + + str_copy(buf, "Fault: "); + if (state->err_code & 1) + str_append(buf, "prot-violation "); + else str_append(buf, "not-present "); + if (state->err_code & 2) + str_append(buf, "write "); + else str_append(buf, "read "); + if (state->err_code & 4) + str_append(buf, "user-mode "); + else str_append(buf, "kernel-mode "); + if (state->err_code & 8) + str_append(buf, "reserved-bits "); + if (state->err_code & 16) + str_append(buf, "instruction-fetch "); + print(buf, PANIC_FG); + print("\n", white()); } + + str_copy(buf, "CR3: 0x"); + str_from_hex(hex, cr3); + str_append(buf, hex); + print(buf, white()); + print("\n\n", white()); + + panic_reboot(); + + // HALT + //while(1) { + // __asm__ volatile("cli; hlt"); + //} } diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 82e42b0..39abe50 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -122,6 +122,7 @@ void _start(void) kproc_loader_init(); init_bootscreen(); fm_init(); + log("::", "finished loading esr\n", _d); cursor_x = 0; cursor_y = 0; font_scale = 1; diff --git a/src/kernel/kernel_processes/bootscreen/log.c b/src/kernel/kernel_processes/bootscreen/log.c index 8f5505d..f541263 100644 --- a/src/kernel/kernel_processes/bootscreen/log.c +++ b/src/kernel/kernel_processes/bootscreen/log.c @@ -18,6 +18,14 @@ static u32 get_log_color(log_level_t level) { return LCOLOR_D; } } +static u32 get_tag_color(log_level_t level) { + switch (level) { + case LDEBUG_TAG: + return GFX_GRAY_70; + default: + return LCOLOR_TAG; + } +} void log_message(const char *tag, const char *message, log_level_t level) { @@ -26,13 +34,14 @@ void log_message(const char *tag, const char *message, log_level_t level) { #if BOOTUP_VISUALS == 0 u32 msg_color = get_log_color(level); + u32 tag_color = get_tag_color(level); // gray //print("[", LCOLOR_BRACKET); - print(tag, LCOLOR_TAG); - print(" ", LCOLOR_BRACKET); - print(message, msg_color); + print(tag, tag_color); + print(" ", LCOLOR_BRACKET); + print(message, msg_color); //printf("%s %s", tag, message); #endif //printf("%s", str); @@ -43,11 +52,12 @@ void log_printf(log_level_t level, const char *tag, const char *format, ...) { #if BOOTUP_VISUALS == 0 u32 msg_color = get_log_color(level); + u32 tag_color = get_tag_color(level); // gray //print("[", LCOLOR_BRACKET); - print(tag, LCOLOR_TAG); - print(" ", LCOLOR_BRACKET); + print(tag, tag_color); + print(" ", LCOLOR_BRACKET); va_list args; va_start(args, format); diff --git a/src/kernel/kernel_processes/bootscreen/log.h b/src/kernel/kernel_processes/bootscreen/log.h index 0920ceb..1b02155 100644 --- a/src/kernel/kernel_processes/bootscreen/log.h +++ b/src/kernel/kernel_processes/bootscreen/log.h @@ -9,11 +9,13 @@ typedef enum { LDEF = 0, LSUCCESS, LWARNING, - LERROR + LERROR, + LDEBUG_TAG } log_level_t; // Keywords for log levels #define d LDEF +#define _d LDEBUG_TAG #define success LSUCCESS #define warning LWARNING #define error LERROR diff --git a/src/kernel/kernel_processes/fm/fm.c b/src/kernel/kernel_processes/fm/fm.c index c68cc80..50eeabb 100644 --- a/src/kernel/kernel_processes/fm/fm.c +++ b/src/kernel/kernel_processes/fm/fm.c @@ -65,12 +65,13 @@ int f_setcontext(font_type_t font_type) current_font_type = font_type; current_font = &font_registry[font_type]; - #if PANIC_SHOWSWITCH == 1 - BOOTUP_PRINT("[FM] ", GFX_GRAY_70); - BOOTUP_PRINT("switched to: ", white()); - BOOTUP_PRINT(current_font->name, GFX_ST_CYAN); - BOOTUP_PRINT("\n", white()); - #endif + // do not print font switch messages during panic + if (getcontext() == THEME_PANIC) return 0; + + BOOTUP_PRINT("[FM] ", GFX_GRAY_70); + BOOTUP_PRINT("switched to: ", white()); + BOOTUP_PRINT(current_font->name, GFX_ST_CYAN); + BOOTUP_PRINT("\n", white()); return 0; } From 46de54951ceb9bc2cf71f8e51decee7982083575 Mon Sep 17 00:00:00 2001 From: emexos Date: Mon, 9 Mar 2026 17:47:50 +0100 Subject: [PATCH 39/41] fixed slow printing with >8bytes per time< copying, design changes on cpio --- dsk/initrd.cpio | Bin 2338816 -> 2338816 bytes shared/memory/mem.c | 53 +++++++++++++++++++++++++++----- src/kernel/graph/graphics.c | 37 +++++++++++----------- src/kernel/kernel.c | 3 ++ src/kernel/mem/mem.h | 5 +-- src/kernel/packages/cpio/cpio.c | 4 +-- src/kernel/packages/cpio/cpio.h | 3 ++ 7 files changed, 74 insertions(+), 31 deletions(-) diff --git a/dsk/initrd.cpio b/dsk/initrd.cpio index 320818d46c526979c96ea64a60386064133f33b7..68349a08d81380d60cb5a9f6fddb53b576f2ad90 100644 GIT binary patch delta 375 zcmZp8(8t&S#2fk;xzj97(+q&X*uY}CVzHw7<^znE4B(m=lJew~VU2|dq zY1q7~^o}Nk)ipl`D)#E3hA~2;ndRh(^Ub%1h%!dy!bOb@6DMyhHE;jW#0bPpK+Fup zEI`Z(#B4y!4#XTl%n8I?K+FxqJV49~#C$-^55xjMEC|FxKr9TzB0ww(#9}}!4#W~b zED6L?Kr9W!GC(W~#B$p|G|A7q3U`f(X)@4_8q?2)DDZE;5TU@d1|el^H2q<#qQ-Vs zR>fLpxUhji;&ef81@-M)JQVAK;KC-R2B1*Vm_D~nQFJ=rLq)FbEwdG!T)`pKe(HhZ L_EQg(%+3Pm=lJew~VU2|dq zYB1Wos`QQ~h-JLFYkmw^%y{#whZ@ERjb@gUC(bwD9wN#Zl?xX&HcXtnvDCc%LlYwq zGXXI(5VHU=D-g2*F*^`*05K;Ja{)0o5c2>rFA(zqF+UIs0I?tt3jwh(5Q_k@C=iPQ zu{aP*0I?(xO98Po5X%6uED+0W|Ij2q?<&YOMj$Vnm?i_=s4@L)hywri3lR!TYY 0; i--) - d[i - 1] = s[i - 1]; + // backward copy to handle overlap + d += n; s += n; + while (n && ((size_t)d & 7)) { *--d = *--s; n--; } + u64 *d64 = (u64 *)d; + const u64 *s64 = (const u64 *)s; + size_t blocks = n / 8; + while (blocks--) *--d64 = *--s64; + d = (u8 *)d64; s = (const u8 *)s64; n &= 7; + while (n--) *--d = *--s; } } diff --git a/src/kernel/graph/graphics.c b/src/kernel/graph/graphics.c index 6d0e708..68ba1d9 100644 --- a/src/kernel/graph/graphics.c +++ b/src/kernel/graph/graphics.c @@ -60,27 +60,26 @@ void scroll_up(u32 lines) { u32 pixels_to_scroll = lines; u32 pitch_dwords = fb_pitch / 4; - u32 bytes_per_row = fb_width * sizeof(u32); - u32 bg_color = black(); + //u32 bytes_per_row = fb_width * sizeof(u32); + //u32 bg_color = black(); // move framebuffer content up - for (u32 y = pixels_to_scroll; y < fb_height; y++) { - memcpy(framebuffer + (y - pixels_to_scroll) * pitch_dwords, - framebuffer + y * pitch_dwords, - bytes_per_row); - } - - // clear bottom lines - for (u32 y = fb_height - pixels_to_scroll; y < fb_height; y++) { - u32 *row = framebuffer + y * pitch_dwords; - if (bg_color == 0) { - memset(row, 0, bytes_per_row); - } else { - for (u32 x = 0; x < fb_width; x++) { - row[x] = bg_color; - } - } - } + //for (u32 y = pixels_to_scroll; y < fb_height; y++) { + // memcpy(framebuffer + (y - pixels_to_scroll) * pitch_dwords, + // framebuffer + y * pitch_dwords, + // bytes_per_row); + //} + + u32 *src = framebuffer + pixels_to_scroll * pitch_dwords; + u32 *dst = framebuffer; + size_t rows = fb_height - pixels_to_scroll; + memmove(dst, src, rows * pitch_dwords * sizeof(u32)); + + // clear bottom lines (bg is black = 0) + memset( + framebuffer + (fb_height - pixels_to_scroll) * pitch_dwords, 0, + pixels_to_scroll * pitch_dwords * sizeof(u32) + ); } void putpixel(u32 x, u32 y, u32 color) diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 39abe50..441d9f4 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -168,6 +168,8 @@ void _start(void) physmem_init(memmap_request.response, hhdm_request.response); paging_init(hhdm_request.response); + map_region_alloc(hhdm_request.response, HEAP_START, HEAP_SIZE); + // kernel lifetime klime_t *klime = klime_init((u64 *)HEAP_START, HEAP_SIZE); @@ -188,6 +190,7 @@ void _start(void) glres.height = (u64)fb->height; glres.pitch = (u64)fb->pitch; + map_region_alloc(hhdm_request.response, GRAPHICS_START, GRAPHICS_SIZE); glime_t *glime = glime_init(&glres, (u64 *)GRAPHICS_START, GRAPHICS_SIZE); #else log("[GLIME]", "skipped (hardware compatibility)\n", warning); diff --git a/src/kernel/mem/mem.h b/src/kernel/mem/mem.h index c8eafc9..6b9aaad 100644 --- a/src/kernel/mem/mem.h +++ b/src/kernel/mem/mem.h @@ -10,7 +10,8 @@ typedef struct limine_hhdm_response limine_hhdm_response_t; typedef struct limine_framebuffer_response limine_framebuffer_response_t; typedef struct limine_framebuffer limine_framebuffer_t; -#define HEAP_START 0xFFFF800000000000 // Start of kernel heap +// moved above the HHDM range +#define HEAP_START 0xFFFFA00000000000ULL // Start of kernel heap #define HEAP_SIZE 1024 * 1024 * 32 #define GRAPHICS_START (HEAP_START + HEAP_SIZE) // Start of graphics memory @@ -32,7 +33,7 @@ typedef struct limine_framebuffer limine_framebuffer_t; #define KLIME_OFFSET_HEAP KLIME_OFFSET_DMA + KLIME_SIZE_DMA #define GLIME_SIZE_META (PAGE_SIZE * 256) //2mb -#define GLIME_HEAP_SIZE (GRAPHICS_SIZE - GLIME_SIZE_META) +#define GLIME_HEAP_SIZE (GRAPHICS_SIZE - GLIME_SIZE_META) #define PAGE_SIZE 4096 #define FRAME_FREE 0x00 // Frame is available diff --git a/src/kernel/packages/cpio/cpio.c b/src/kernel/packages/cpio/cpio.c index 4d6d2eb..1b4be5c 100644 --- a/src/kernel/packages/cpio/cpio.c +++ b/src/kernel/packages/cpio/cpio.c @@ -144,9 +144,9 @@ int cpio_extract_to_vfs(const u8 *data, u64 size, const char *base_path) make_path(s->path, base_path, entry.name); if (cpio_is_dir(&entry)) { - log("[CPIO]"," dir ", d);} + log("[CPIO]",DIR_PREFIX, d);} else { - log("[CPIO]"," file ", d);} + log("[CPIO]",FILE_PREFIX, d);} print(s->path, white()); if (cpio_is_file(&entry) && entry.filesize > 0) { char buf[20]; diff --git a/src/kernel/packages/cpio/cpio.h b/src/kernel/packages/cpio/cpio.h index 2323a4c..86cca3d 100644 --- a/src/kernel/packages/cpio/cpio.h +++ b/src/kernel/packages/cpio/cpio.h @@ -8,6 +8,9 @@ #define CPIO_MAGIC_NEWC_CRC "070702" #define CPIO_MAGIC_LEN 6 +#define DIR_PREFIX "

      hCv-M6Tgs$H1UtVAwMv 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 delta 2068 zcmZ`)Yitx%6y7^_k}jRH3+c}AD)$cE(l$_bXCHlp*OFLV6AN1sLd^o*w!4)kf)I-F z2gDLV#ezbn;m{a<6eBTF5^#|LBcY8+QPEfoDkO%YH4##t{*VeqJTp6YVQanfnRCzSyu6omUMkvOPXeILD^U)l8u{wSXT^{|?61|Ab<2X5+1BgHG*Q#4w6K14 zK}m5{s--RE#}R04t1)LBnmuI|j~oDS?#Ewa%)^y=EX~2W6ahMR#s;8T-r0^9!IpPV!0e=~#nPQVU?#8nQa$M24G} zs07_>h+AxJd&#j3isK~43G9xO1lJpjlXkw2F;z0&UQ50^LxQj(PN==1$GQulM;6xF z^1&rcGNvhl*9C|AXk7+X@P8K^?57R3XkIgE8-R84-G17e#}VYG80QA)yIExO5#}~J zF3=v17~Vm8A}gT5*IYmXZsV6L^e_jE{a5KRTTo2TE=Ug3Y%m6g=|=8&`z=b1t-sT6 zp5e$SI)=TssLR-TolYVgwiMGh=%-xKKqSittnJo6=~2E7>@RwS8@un*Uo&gPOzR}a zca73V&Z?@~=1?e9mHP|N{QX1?|B3{W2ee((YB7OxQzWESO`M>BUfm!qW|Ls{LmD6n zXn07gosFdqYiu?SJfv%ob7{^FUv`ajWNVK-@ddCbDKITFp z3P+9aWtJ3$yWaHt`c;B(&71CAIg}3@%Gg=*hcUODeJ(mb5zxF#{7}%ZtuIpFGo?5B zNOX_5E3>f!C)X**uD%Y2YOm-AzND*Ga%`I?dR|G=FxcdUEPxq9=CGE*l~oR8Zw2O3{5Wq~aOC<$%L6Qh?r05xsME2=aZb2afpI zb8y$knErBeqR3t9h?qQ>J^OKn=6$4CuOFBRdsnLx4Ek9kX@m-m{Y>0I0!*30wcVyE zjwYCbFhl~3Vc?)8z?MU~hG~8}z>o|$gRF@pjP@WqPe{bj!t6dFF{7fIx$?+8{qUgA z$%(jO%R*))QN%pC5l$>*OVRy3bBcks2&XdGvWRu?93NZ6yijz6RpbTRS^|2cTd`Y$ z4EV+?t*Y0Yo6^CQ)f&vS&gluVfsfO(G*hP6^|GhRwBO&%>-0F24ZpDp{)&x{hS|0< zn;F(Id{qVNiR{aiRI_nu$zV<~-6^U3!5U+dS~@j*Gf6Fm)l{`BsSICGb%(uaV2!KH zYT^bnP6pIkP6Y5G61YQZ!+)cKK4e%BR-G<~zZyTyueF+usWmr9ftuNm$>@N<^#U!tHgc!YR&L{}ds2Bi5MLn$#4J#=dzaPWY!ujdQ^4$FM!2zG&N< U^+kGXG@%-!i8=Wf^n`HfUu4Nq{r~^~ diff --git a/dsk/rd/boot/activeslot.cfg b/dsk/rd/boot/activeslot.txt similarity index 100% rename from dsk/rd/boot/activeslot.cfg rename to dsk/rd/boot/activeslot.txt diff --git a/dsk/rd/boot/limine.conf b/dsk/rd/boot/limine.conf new file mode 100644 index 0000000..c9e16a1 --- /dev/null +++ b/dsk/rd/boot/limine.conf @@ -0,0 +1,40 @@ +timeout: 1 # better for trying on real hardware + +kaslr: yes +verbose: yes + +#wallpaper: boot():/boot/bg.jpg +default_entry: 0 + +#term_font: boot():/boot/liminefont.f15 +#term_font_size: 8x15 +#term_font_spacing: 0 + +# ---- +# Dualslot kernel system +# ---- + +# default/ active +/emexOS A + protocol: limine + kernel_path: boot():/boot/kernel_a.elf + #module_path: boot():/boot/activeslot.txt # Slot A + + module_path: boot():/boot/initrd.cpio + +# slot 2 for update +/emexOS B + protocol: limine + kernel_path: boot():/boot/kernel_b.elf + #module_path: boot():/boot/activeslot.txt # slot B + + module_path: boot():/boot/initrd.cpio + + +# ---- +# resolutions +# ---- + +# resolution: 1920x1080x32 +# resolution: 2560x1440x32 +# resolution: 3840x2160x32 diff --git a/dsk/rd/boot/ui/fonts/unifont.sfn b/dsk/rd/boot/ui/fonts/unifont.sfn new file mode 100644 index 0000000000000000000000000000000000000000..4a5addd85fedd8796fe279f389ff0f5b6d9d04bc GIT binary patch literal 1939917 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