From dab25b3a5aab0c6f074961fdae6cd8f1b6d4bc0d Mon Sep 17 00:00:00 2001 From: Yigao Shao Date: Sat, 22 Aug 2015 11:46:53 -0700 Subject: [PATCH] fc --- DEBUG | 7 + INSTALL | 17 + Makefile | 42 +++ Makefile.dep | 25 ++ boot.S | 56 ++++ boot.o | Bin 0 -> 1444 bytes bootimg | Bin 0 -> 95328 bytes debug-gdb.lnk | Bin 0 -> 842 bytes debug.h | 33 ++ debug.lnk | Bin 0 -> 838 bytes debug.sh | 23 ++ devel machine.lnk | Bin 0 -> 838 bytes file_desc.h | 21 ++ file_op_table.h | 155 +++++++++ file_system.c | 242 ++++++++++++++ file_system.h | 21 ++ file_system.o | Bin 0 -> 5636 bytes filesys_img | Bin 0 -> 319488 bytes i8259.c | 92 +++++ i8259.h | 41 +++ i8259.o | Bin 0 -> 3844 bytes idt_handler.c | 375 +++++++++++++++++++++ idt_handler.h | 31 ++ idt_handler.o | Bin 0 -> 8620 bytes irq0.c | 58 ++++ irq0.h | 13 + irq0.o | Bin 0 -> 2624 bytes kernel.c | 229 +++++++++++++ kernel.o | Bin 0 -> 12504 bytes lib.c | 832 ++++++++++++++++++++++++++++++++++++++++++++++ lib.h | 161 +++++++++ lib.o | Bin 0 -> 17556 bytes mp3.img | Bin 0 -> 8388608 bytes multiboot.h | 76 +++++ page.S | 196 +++++++++++ page.h | 45 +++ page.o | Bin 0 -> 18600 bytes rtc.c | 156 +++++++++ rtc.h | 17 + rtc.o | Bin 0 -> 4136 bytes stub_handler.S | 285 ++++++++++++++++ stub_handler.h | 13 + stub_handler.o | Bin 0 -> 2572 bytes sys_call.c | 433 ++++++++++++++++++++++++ sys_call.h | 29 ++ sys_call.o | Bin 0 -> 11816 bytes table.c | 149 +++++++++ table.h | 20 ++ table.o | Bin 0 -> 4576 bytes task.c | 486 +++++++++++++++++++++++++++ task.h | 80 +++++ task.o | Bin 0 -> 14200 bytes terminal.c | 394 ++++++++++++++++++++++ terminal.h | 9 + terminal.o | Bin 0 -> 13096 bytes test.c | 68 ++++ test.h | 19 ++ test.o | Bin 0 -> 4008 bytes types.h | 31 ++ x86_desc.S | 111 +++++++ x86_desc.h | 298 +++++++++++++++++ x86_desc.o | Bin 0 -> 3324 bytes 62 files changed, 5389 insertions(+) create mode 100644 DEBUG create mode 100644 INSTALL create mode 100644 Makefile create mode 100644 Makefile.dep create mode 100644 boot.S create mode 100644 boot.o create mode 100644 bootimg create mode 100644 debug-gdb.lnk create mode 100644 debug.h create mode 100644 debug.lnk create mode 100644 debug.sh create mode 100644 devel machine.lnk create mode 100644 file_desc.h create mode 100644 file_op_table.h create mode 100644 file_system.c create mode 100644 file_system.h create mode 100644 file_system.o create mode 100644 filesys_img create mode 100644 i8259.c create mode 100644 i8259.h create mode 100644 i8259.o create mode 100644 idt_handler.c create mode 100644 idt_handler.h create mode 100644 idt_handler.o create mode 100644 irq0.c create mode 100644 irq0.h create mode 100644 irq0.o create mode 100644 kernel.c create mode 100644 kernel.o create mode 100644 lib.c create mode 100644 lib.h create mode 100644 lib.o create mode 100644 mp3.img create mode 100644 multiboot.h create mode 100644 page.S create mode 100644 page.h create mode 100644 page.o create mode 100644 rtc.c create mode 100644 rtc.h create mode 100644 rtc.o create mode 100644 stub_handler.S create mode 100644 stub_handler.h create mode 100644 stub_handler.o create mode 100644 sys_call.c create mode 100644 sys_call.h create mode 100644 sys_call.o create mode 100644 table.c create mode 100644 table.h create mode 100644 table.o create mode 100644 task.c create mode 100644 task.h create mode 100644 task.o create mode 100644 terminal.c create mode 100644 terminal.h create mode 100644 terminal.o create mode 100644 test.c create mode 100644 test.h create mode 100644 test.o create mode 100644 types.h create mode 100644 x86_desc.S create mode 100644 x86_desc.h create mode 100644 x86_desc.o diff --git a/DEBUG b/DEBUG new file mode 100644 index 0000000..59ee97a --- /dev/null +++ b/DEBUG @@ -0,0 +1,7 @@ +DEBUGGING MP3 +=============== + +The only steps that need to be taken on the virtual machine for debugging +using qemu is to perform a "sudo make debug" (after "make dep"). This will build the disk image needed for QEMU and gdb. + +Refer to the handout for instructions on starting QEMU and gdb. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..90c3320 --- /dev/null +++ b/INSTALL @@ -0,0 +1,17 @@ +ECE391 MP3 - Operating System Project +===================================== + +To get this skeleton OS running on QEMU, you must do the following steps: + +"make dep" +"sudo make" + +to build the OS (it is called bootimg) and the QEMU disk image (mp3.img) + +You can then follow the instructions in Appendix G to setup your +debug.bat batch script. + +If you would like to run MP3 without having to connect gdb (When you are done +and have removed all your bugs for example), you can duplicate the debug.bat +batch script and remove the -s and -S options in the QEMU command. This is +will stop QEMU from waiting for GDB to connect. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fc2a68b --- /dev/null +++ b/Makefile @@ -0,0 +1,42 @@ + +# Makefile for OS project +# To build, first `make dep`, them `make`. Everything should be automatic. +# Will compile all *.c and *.S files in the current directory. + + +# Flags to use when compiling, preprocessing, assembling, and linking +CFLAGS += -Wall -fno-builtin -fno-stack-protector -nostdlib +ASFLAGS += +LDFLAGS += -nostdlib -static +CC=gcc + +#If you have any .h files in another directory, add -I to this line +CPPFLAGS +=-nostdinc -g + +# This generates the list of source files +SRC = $(wildcard *.S) $(wildcard *.c) + +# This generates the list of .o files. The order matters, boot.o must be first +OBJS = boot.o +OBJS += $(filter-out boot.o,$(patsubst %.S,%.o,$(filter %.S,$(SRC)))) +OBJS += $(patsubst %.c,%.o,$(filter %.c,$(SRC))) + + +bootimg: Makefile $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) -Ttext=0x400000 -o bootimg + ./debug.sh + +dep: Makefile.dep + +Makefile.dep: $(SRC) + $(CC) -MM $(CPPFLAGS) $(SRC) > $@ + +.PHONY: clean +clean: + rm -f *.o Makefile.dep bootimg + +ifneq ($(MAKECMDGOALS),dep) +ifneq ($(MAKECMDGOALS),clean) +include Makefile.dep +endif +endif diff --git a/Makefile.dep b/Makefile.dep new file mode 100644 index 0000000..6778188 --- /dev/null +++ b/Makefile.dep @@ -0,0 +1,25 @@ +boot.o: boot.S multiboot.h x86_desc.h types.h +page.o: page.S +stub_handler.o: stub_handler.S +x86_desc.o: x86_desc.S x86_desc.h types.h +file_system.o: file_system.c file_system.h types.h lib.h task.h \ + file_desc.h +i8259.o: i8259.c i8259.h types.h lib.h task.h file_desc.h +idt_handler.o: idt_handler.c lib.h types.h task.h file_desc.h \ + idt_handler.h i8259.h terminal.h rtc.h +irq0.o: irq0.c irq0.h lib.h types.h task.h file_desc.h i8259.h +kernel.o: kernel.c multiboot.h types.h x86_desc.h lib.h task.h \ + file_desc.h i8259.h debug.h idt_handler.h sys_call.h stub_handler.h \ + page.h rtc.h terminal.h file_system.h test.h +lib.o: lib.c lib.h types.h task.h file_desc.h +rtc.o: rtc.c rtc.h lib.h types.h task.h file_desc.h +sys_call.o: sys_call.c sys_call.h types.h file_op_table.h lib.h task.h \ + file_desc.h idt_handler.h rtc.h file_system.h terminal.h page.h +table.o: table.c task.h types.h file_desc.h lib.h table.h +task.o: task.c task.h types.h file_desc.h page.h x86_desc.h file_system.h \ + lib.h i8259.h irq0.h +terminal.o: terminal.c terminal.h types.h lib.h task.h file_desc.h \ + table.h +test.o: test.c test.h types.h lib.h task.h file_desc.h multiboot.h \ + x86_desc.h i8259.h debug.h idt_handler.h page.h rtc.h terminal.h \ + file_system.h diff --git a/boot.S b/boot.S new file mode 100644 index 0000000..53fff06 --- /dev/null +++ b/boot.S @@ -0,0 +1,56 @@ +# boot.S - start point for the kernel after GRUB gives us control +# vim:ts=4 noexpandtab + +#define ASM 1 + +#include "multiboot.h" +#include "x86_desc.h" + +.text + + # Multiboot header (required for GRUB to boot us) + .long MULTIBOOT_HEADER_MAGIC + .long MULTIBOOT_HEADER_FLAGS + .long -(MULTIBOOT_HEADER_MAGIC+MULTIBOOT_HEADER_FLAGS) + +# Entrypoint to the kernel +.globl start, _start + +.align 4 +start: +_start: + # Make sure interrupts are off + cli + jmp continue + +continue: + # Load the GDT + lgdt gdt_desc + # Load CS with the new descriptor value + ljmp $KERNEL_CS, $keep_going + +keep_going: + # Set up ESP so we can have an initial stack + movl $0x800000, %esp + + # Set up the rest of the segment selector registers + movw $KERNEL_DS, %cx + movw %cx, %ss + movw %cx, %ds + movw %cx, %es + movw %cx, %fs + movw %cx, %gs + + # Push the parameters that entry() expects (see kernel.c): + # eax = multiboot magic + # ebx = address of multiboot info struct + pushl %ebx + pushl %eax + + # Jump to the C entrypoint to the kernel. + call entry + + # We'll never get back here, but we put in a hlt anyway. +halt: + hlt + jmp halt diff --git a/boot.o b/boot.o new file mode 100644 index 0000000000000000000000000000000000000000..3de94cfc51de6a9d20c1ad83efc33f9848f06d5c GIT binary patch literal 1444 zcma)6PiqrV5TCb6Yn1*;YSls%6Qo#_zSP#XAP5$$e^9g-1;Jw2&2H1B>2BS9sqM*r zf}H#sf)@`$FMb4%9t96-Pl6|_#NX`h+iXud@ZQXCX5P%~%-i>B`Ti{-1ZfhKqdp?q zPr%j4VTwj+h>W*y$~oY}hmXGeI-pT;ijCjTVJp%;(H^b6pP=r??x*gD?&t2e`pVbe zy&}iy+JQm8`=A8Zd^i=T3|2?Do#Hdo|Ep^}=e^FmU84 zOa^;VKCSf{P!gc_(hoLlH>hoH&DHMu%B+Q|V>_Ojw%t$#u0^*WJgF?zE3@*-qMVk@m1&VghM2EwDRA0S zIXjA^Z7P$b6^0~PX**V@)o8n(lf|yL=EF6znU)ne+gYm_m|n{X)4cy7oQDthX)y8S zS!Qd`C;Bq@@kD0!7~ehtK8(fZ*{^^#nP9#HOj|KacOCCCH0=K`KdvX8BV>-ZjHOB2 zW}wK{*G7FDpX-B|)^`)KJ_C{7VXd-|kha|b&c;&+Qh|=+9mCS!y8>CCfk-8QaTXHN zHVatGY?=b7u#gbf%Jdv7oA)*H7NO(3C$Mzh5@g*wh;#?>Ua*jm&c!^wo3UY>13)@y3z&I&_+JJdHKa>htuYr}fN_z7~wL85rlI8I7ig1o3zA3lNit{;fp~ zk93gF^CbF|JJLC}^W^)KLkFvX{M}4N#JdQd#WJ$Q8~3H3JMNQyN1DE;T(9HMhU08C zTE6SGXx(fp3Y8fsYQ(H%tA_1_O~L~c>~hpGEP>{qVUEGffg5PRr3CYTC@>7JNnqey P1N-rvVjkIXS+xEyspN%5 literal 0 HcmV?d00001 diff --git a/bootimg b/bootimg new file mode 100644 index 0000000000000000000000000000000000000000..30905d00b073cc3925e8bcd779600727eac173c1 GIT binary patch literal 95328 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 bZ%Y6RuMm&xq^66D=}vdD?#$!OJLCTXkpemP literal 0 HcmV?d00001 diff --git a/debug-gdb.lnk b/debug-gdb.lnk new file mode 100644 index 0000000000000000000000000000000000000000..285c40c85d7c15bb12b0acacb63c616645eadcf5 GIT binary patch literal 842 zcmah`O=uHQ5dKyz7Q~W;6e9?(^B6(ef1D3mH($sOOBKfz_Ti=$#@Spu`_cH8D2JYY9>mzh#FNt) zpG`RZUA<@nQ5EYm=K>wM`Rv^Ml?Pl}!yt}f@AZ#FD=f89?$RE~R!!{}NU10XA61ly z1$b;Zg)%B|QDZepTxMM1A4d!pmQ;KZCbK9mVOrfEf!*t4CMx8VYpJ8ZJvWgGn`+j@u1qHoZE2rWZ9 zLzBD3n>6{-G@W*o_O^Xsh3G-CbAGkt7d#_XuDCTvCUW}C3}Y4vIQYMKPH(6TuUe*X z1&TX@MRm^O1I2m%Dy6Tp;!x;11z2LctBg!WWwqwh7cowG6;eDmHna{#pPDOzAp zS)^WZHN@XSqV z$LMsz>7MF%n}{l3pSl$2$SkC17H&M^);;v$G!EYWOfKF(@$hzKrV4_unJ~a>s zq=w6zXKA}Ns1lIn8y=x4#SCH^2{`z_cuuFOSw6K& z;c^sr2+Qi8#}A70{!L0>WyYbL|F&>=c?9MP#D!Ap=Ke!f5U=aTq)e7?W$zxVll|HJ`k{&SSTzLJRT z@is*NQ7>1mkJ{H;uU{P7pS6}fo9L4$E-Kj(4>dooB^!w^#?MIB_v%|W1_lRTUcsG- zh~3F*YwHLpT_3;h=}68bCTH$HqpOH+T)@G*-;ugsV*Sk0o=d8x@9=9h3gIqB)%yWh?K*lrA5u>K2{6*EK_Bn+1X9Dz z^&ZMj4XOmB_(mT51%5mrvkYf)BsyTAM5drqb%3!ZoA_I7{r_bvHQ9o^s{{}rrirVB zye+p$$cYm=ah~|lI12iBgTqd`g^Zid8?kK8DcjPK-6^II6NtdZ>BF)h1({(IWjO=IJePv5(m&o8EpT4f8k^chw9JjhdlhW!LKSwcYQ#*4s^M z_Ha72^~Xc)*QbWQwHesyGA?J%ipwCo$S-SuPsq?O(LRXIJw4j~H|1IThmALXHzX$K E1b}d)bN~PV literal 0 HcmV?d00001 diff --git a/file_desc.h b/file_desc.h new file mode 100644 index 0000000..7227b21 --- /dev/null +++ b/file_desc.h @@ -0,0 +1,21 @@ +#ifndef _FILE_DESC_H +#define _FILE_DESC_H + +typedef struct filedescriptor{ + void* file_operations_pointer; + uint32_t inode_pointer; + uint32_t file_position; + uint32_t flags; + }filedescriptor_t; + + +typedef struct file_type_op_action{ + int32_t (*open)(filedescriptor_t*,void*); + int32_t (*read)(filedescriptor_t* , void*, uint32_t); + int32_t (*write)(filedescriptor_t* , const void*, uint32_t); + }file_type_op_action_t; + + +#endif + + diff --git a/file_op_table.h b/file_op_table.h new file mode 100644 index 0000000..f90ace5 --- /dev/null +++ b/file_op_table.h @@ -0,0 +1,155 @@ +#ifndef _FILE_OP_TABLE_H +#define _FILE_OP_TABLE_H +#include "lib.h" +#include "idt_handler.h" +#include "rtc.h" +#include "file_system.h" +#include "terminal.h" +#include "file_desc.h" +#define debug_fread_f_d 0 +#define debug_fread_f_d_freq 51 +#if debug_fread_f_d +static int32_t debug_fread_f_d_k=debug_fread_f_d_freq; +#endif + +static int32_t fopen_f_d(filedescriptor_t* fdstruct,void* buf) +{ + return -1; +} + +static int32_t fread_f_d(filedescriptor_t* fdstruct, void* buf, uint32_t n_bytes) +{ + + + //char buff[n_bytes]; + //char * pointer =(char *) buf; + //int32_t h; + uint32_t temp; + //uint32_t temp2; + //uint32_t inode = fdstruct->inode_pointer; + //uint32_t n_bytes1 = n_bytes; + //printf("indoe %d",fdstruct->inode_pointer); + //printf("fb %x",(uint32_t)*(uint32_t*)(fdstruct->inode_pointer)); + if(fdstruct->inode_pointer == 0) + { + //printf( "directory: %d",fdstruct->file_position); + temp = read_data(fdstruct->inode_pointer, fdstruct->file_position, (uint8_t*) buf, n_bytes); + fdstruct->file_position += n_bytes; + + } + else + { + temp = read_data(fdstruct->inode_pointer, fdstruct->file_position, (uint8_t*) buf, n_bytes); + fdstruct->file_position += temp; + if(temp == 0) + { + //printf( "cao ni ma quan jia "); + + } + + } + // don grep excutebe file + if(*(uint32_t*) buf == 0x464c457f ) + return 0; + //temp2 = fdstruct->file_position; + // if(temp == -1) + // fdstruct->file_position = 0; + // for(h = temp; h < strlen((uint8_t*)buf); h++) + // pointer[h]=0; + //printf( "%c",*pointer); +#if debug_fread_f_d + debug_fread_f_d_k--; + if (debug_fread_f_d_k==0) { + printf("Buf is %s\n",buf); + printf("return data byte read:%d\n",temp); + while(1); + } +#endif + //printf( "\n %s ",buf); + return temp; + +} + +static int32_t fwrite_f_d(filedescriptor_t* fdstruct, const void* buf, uint32_t n_bytes) +{ + return -1; +} + +static int32_t fopen_rtc(filedescriptor_t* fdstruct,void* buf) +{ +return 0; +} + +static int32_t fread_rtc(filedescriptor_t* fdstruct, void* buf, uint32_t n_bytes) +{ +sti(); +read_rtc(); +cli(); +return 0; +} + +static int32_t fwrite_rtc(filedescriptor_t* fdstruct, const void* buf, uint32_t n_bytes) +{ + + // printf( "fwrite_rtc %d",(int)*(int*)buf); + // char *type = NULL; + // char temp =*type; + cli(); + write_rtc((int)*(int*)buf); + sti(); +return 0; +} + +static int32_t termin_read(filedescriptor_t* fdstruct, void* buf, uint32_t n_bytes) +{ +sti(); +return r_terminal(0x00,(uint8_t*) buf, n_bytes); + + +} + +static int32_t termin_open(filedescriptor_t* fdstruct,void* buf) +{ +open_terminal(0x00); +return 0; +} + +static int32_t termin_write(filedescriptor_t* fdstruct, const void* buf, uint32_t n_bytes) +{ + +printf( "%s",buf); +return 0; +} + + +//no +file_type_op_action_t RTC_type_op = { +.open =&fopen_rtc, +.write= &fwrite_rtc, +.read= &fread_rtc}; + + + +//DIRECTORY +file_type_op_action_t directry_type_op = { +.open = &fopen_f_d, +.write= &fwrite_f_d, +.read = &fread_f_d}; + + + +//REGULER FILE +file_type_op_action_t file_type_op = { +.open = &fopen_f_d, +.write= &fwrite_f_d, +.read = &fread_f_d}; + +file_type_op_action_t terminal_type_op = { +.open = &termin_open, +.write= &termin_write, +.read = &termin_read}; + + +#endif + + diff --git a/file_system.c b/file_system.c new file mode 100644 index 0000000..7412b99 --- /dev/null +++ b/file_system.c @@ -0,0 +1,242 @@ +#include "file_system.h" +#include "lib.h" +#include "types.h" +#define debug_file_system 0 +#define debug_get_inode_by_name 0 +#define debug_set_start 0 +#define debug_read_dentry_by_name 0 +#define debug_read_data 0 +#define debug_check_name 0 +static uint32_t filestart; +static int checkname(const uint8_t * fname, uint8_t * cname); + +extern uint32_t sizeofinode(uint32_t inode) +{ +return *(uint32_t*)(filestart + FILE_BLOCK_SIZE*(inode + 1)); +}; +/* + * get_inode_by_name + * Description: obtain the node + * INPUTS: fname -- file name which need to access + * OUTPUTS: N/A + * RETURN VALUE: return inode if succeed or -1 if failed + * SIDE EFFECTS: N/A + */ +int32_t get_inode_by_name(uint8_t* fname){ + dentry_t copy; +#if debug_get_inode_by_name +printf("get_inode_by_name:center get_inode_by_name %s ", fname); +#endif + if(read_dentry_by_name((uint8_t *)fname, ©) == -1) + return -1; +#if debug_get_inode_by_name +printf("get_inode_by_name:copy.inode :%x:",copy.inode); +#endif + return copy.inode; +} + +/* + * setstart + * Description: set the starting addr + * INPUTS: start -- starting addr + * OUTPUTS: N/A + * RETURN VALUE: N/A + * SIDE EFFECTS: N/A + */ +void setstart(uint32_t start) +{ + filestart=start; +#if debug_set_start +printf("0x%x ", (uint32_t)*(uint32_t *)(filestart+4)); +#endif +} + +/* + * read_dentry_by_name + * Description: Search the file by name + * INPUTS: dentry -- pointer points to the struct that we + * need to construct for the name comparing + * info + * fname -- the file name that need to be found + * OUTPUTS: none + * RETURN VALUE: 0 on success, -1 on failure + * SIDE EFFECTS: reconstruct the dentry every time failed to + * find the name. + */ +int32_t read_dentry_by_name(const uint8_t * fname, dentry_t *dentry) +{ + /*Indicating the number of directory entries. */ + uint32_t numinde = (uint32_t)*(uint32_t*)(filestart+4); + int i; + int end = 0; + int h; + uint32_t address; + /*Search the entries one by one*/ + for( i = 1; i<=numinde; i++) + { + /*If we failed to find the file name, reconstruct the dentry */ + if(checkname(fname, (uint8_t*)(filestart + 64*i))) + { + for( h = 0; h<32; h++){ + /*construct the name buffer bit by bit for 32 times since it's 32bits*/ + dentry->name[h] = (uint8_t)*(uint8_t*) (filestart + 64*i + h);} + /*the addr of type is 32bit after the name*/ + dentry->type = (uint32_t) *(uint32_t*)(filestart + 64*i + 32); + /*the addr of inode is 4bit after the type*/ + dentry->inode = (uint32_t) *(uint32_t*)(filestart + 64*i + 36); + /* calculate the address of the inode pointer*/ + address = (filestart + FILE_BLOCK_SIZE*(i+1)); + end = 1; +#if debug_read_dentry_by_name + printf("read_dentry_by_name '%s' ",(uint8_t*)(filestart + 64*i)); + printf("read_dentry_by_name '%s' ",fname); +#endif + break; + } +#if debug_read_dentry_by_name + printf("read_dentry_by_name '%s'",(uint8_t*)(filestart + 64*i)); +#endif + } + if(end == 1) + { +#if debug_read_dentry_by_name + printf("read_dentry_by_name: success on looking for '%s' ",fname); +#endif + return address;//return inode pointer + } + else + { + // printf("failure on looking for'%s' ",fname); + return -1; + } + +}; +/* + * checkname + * Description: check the name + * INPUTS: fname -- file name need to access + * cname -- expected name + * OUTPUTS: N/A + * RETURN VALUE: return 0 if fail or 1 if succeed + * SIDE EFFECTS: N/A + */ +int checkname(const uint8_t * fname, uint8_t * cname) +{ + int h; + /*If the string length doesn't match, return 0*/ + if(strlen((int8_t*)cname) < strlen((int8_t*)fname)) + return 0; + /*Compare the bits one by one*/ + for( h = 0; h < strlen((int8_t*)cname); h++) + if(fname[h] != cname[h]) + /*If not match, return 0*/ + return 0; + +#if debug_check_name + printf("checkname1 '%s' ",fname); + printf("checkname2 '%s' ",cname); +#endif + return 1; + +}; +/* + * read_dentry_by_index + * Description: Search the file by index + * INPUTS: dentry -- pointer points to the struct that we + * need to construct for the index comparing + * info + * index -- the file index that need to be found + * OUTPUTS: none + * RETURN VALUE: 0 on success, -1 on failure + * SIDE EFFECTS: none + */ +int32_t read_dentry_by_index(uint32_t index, dentry_t *dentry) +{ + uint32_t numinde = (uint32_t)*(uint32_t*)(filestart+4); + int i; + int end = 0; + int h; + for( i = 1; i<=numinde; i++) + { + /*We only need to identify the unsigned integer which is index*/ + if((uint32_t) *(uint32_t*)(filestart + 64*i + 36) == index) + { + /*If not find, do the same thing as read by name*/ + for( h = 0; h<32; h++) + dentry->name[h] = (uint8_t) * (uint8_t*)(filestart + 64*i + h); + dentry->type = (uint32_t) * (uint32_t*)(filestart + 64*i + 32); + dentry->inode = (uint32_t) * (uint32_t*)(filestart + 64*i + 36); + + end = 1; + break; + } + } + if(end == 1) + { + //printf("can find in "); + return 0; + } + else + {//printf("cannot find in "); + return -1; + } + +} +/* + * read_data + * Description: Search the file by name + * INPUTS: inode -- the exact index node that we need access + * offset -- the starting point start to access + * buf -- pointer to the buffer which store the accessed data + * length -- the length of the data need to copied + * OUTPUTS: none + * RETURN VALUE: the length of the data read or -1 on failure + * SIDE EFFECTS: none + */ + +int32_t read_data(uint32_t inode, uint32_t offset, uint8_t* buf, uint32_t length) +{ + /* Obtain the total number of inodes */ + uint32_t total_inodes =(uint32_t ) *(uint32_t*) (filestart + 4); + /* get the addr of the inode of the file */ + uint32_t * dentry_ptr = (uint32_t*)(filestart + FILE_BLOCK_SIZE*(inode + 1)); + /* obtain offset in the block */ + uint32_t charoffset = offset % FILE_BLOCK_SIZE ; + /* pointer to the data block */ + uint8_t * block_pointer; + /* data block index */ + uint32_t block_num; + uint32_t i; + if(inode > total_inodes) /* offset > total # of bytes Or inode > total inodes */ // offset > total # of bytes Or inode > total inodes + return -1; + + if(inode != 0) + { + if(offset >= *dentry_ptr) + return 0; + for(i = 0; i < length; i++) /* copy length blocks to the buffer in order */ + { + if(i + offset > *dentry_ptr) /* if it reaches the end of the block, then break */ + break; + block_num = *(dentry_ptr+1+(i+charoffset)/FILE_BLOCK_SIZE); + block_pointer = (uint8_t*) (filestart + (1+total_inodes + block_num) * FILE_BLOCK_SIZE); + buf[i] = (uint8_t) *(block_pointer+(i+charoffset)%FILE_BLOCK_SIZE); + + } + return i; + } + else + { + strncpy((int8_t *)buf,((int8_t*) (filestart + 64*(offset / length + 1))),length); + return strlen((int8_t*) (filestart + 64*(offset / length + 1))); + + } +#if debug_read_data + printf(" read success%s",buf); +#endif + + +} + + + diff --git a/file_system.h b/file_system.h new file mode 100644 index 0000000..e5450c4 --- /dev/null +++ b/file_system.h @@ -0,0 +1,21 @@ +#include "types.h" +#ifndef _FILE_SYSTEM_H +#define _FILE_SYSTEM_H + +#define FILE_BLOCK_SIZE 4096 + +typedef struct dentry{ + uint8_t name[32]; + uint32_t type; + uint32_t inode; + }dentry_t; + +extern void setstart(uint32_t filestart); +extern uint32_t sizeofinode(uint32_t inode); +extern int32_t get_inode_by_name(uint8_t* fname); +extern int32_t read_dentry_by_name(const uint8_t * fname, dentry_t *dentry ); +extern int32_t read_dentry_by_index(uint32_t index, dentry_t *dentry); +extern int32_t read_data(uint32_t inode, uint32_t offset, uint8_t* buf, uint32_t length); +#endif + + diff --git a/file_system.o b/file_system.o new file mode 100644 index 0000000000000000000000000000000000000000..dbff2b1b88dd4f25154604976160cc99cc442464 GIT binary patch literal 5636 zcma)Adu&tJ89(=4C%K88IFO7Dx~l02Ev&-{k1=Re+Cnc6tyHKjQXkONiJinFu`~M` zNDCd4DaCS`7C>TM*Alw@u|Ha=npP&YP(fJBO3}ooZS5pBp{bLCh^n-TM6^Z9e!uf@ zZUWkNkni{Y&i8%iJCE=K@8J!WWeGDZ;fQHU2)9m2R!Xo~d{s1xZN-0RPEAb}CZ_V$7raYAr><9)yvd?>spMVy zhz3ymIsIts)zWFfHdIFuswLz&qKBM-9v&|*Z=DGRY1#eP@g>p}pynq(VJvp=7lPLG3 zEO$U}cDZMZ%H>8_rmW*A>v)?t7CqQ0%Q|7P%SL4&sOzYz>!_@2VRS}kjoh+_(Q&BL zqN%7r^Nm5J%^TSj(JOTA1{@dmxgvVtn5@MpbC2w%oKs%=1Rqm}B>a@NO)`6^tr_0E zy|it#FpNzx=6I9mMk42~+DMsAj-|o6joiGWirzSzWZ2n;CZw4R%<;yt#E0yHH;MEo z+q}l?QQb>VV$ydR%8h&@-BrrvmWD7SYtlGmo8heL|9#^-eh}jAm=ChVx6L8cP6_tk;=C8^{;5zoblr=IX|CB zrv0UfRL;+)I)t4{`zw~W`@)Xy$2<;55vs8BWp@2>utQby0GKi zjX)%~%IWNhXN6TMJ*=kRd7sj6Sxw2^ie{Og5R09v%5=OhiK3EaFBFyjKtIUpmtbcv zY^qG9GYQZ&if$HFE1~xhgf5XgOmH^y$_`*kCwvXk>K{UCkF&JqWx3&JwYFu8!OL$oa)(RJkhT6DMzqgMnKE$nBf4ebp-2Z zgb3ulX{~!hQlW4<-*Oeci3QBl3&9${@#cz-yaNMw__ zoUk@4J0GdM2A@&p6A3ZD`Wv7-dy<_yRSou9G-h0X!S8M0Cbs8wY&D%q^LbUR5NF&+ zBYUu4RPRNf&(4~$?-ABdW!iN6Ys|?r4~r%xujrzwv|qU??N^n&hiU&zP1UQ?eoarz zAYNCvFRGu!=F>sM{kX6`lrwWyZbKIln0EO<&s>w~>cY|rOEW?>9r-R$Do3}bH<|AC zF^3jM!anw3uWBvS_jk(8vthl|{XVwNMTTJyCc@k)#{VUgN=I*|b7y;h2D>c@<=?BB zdc%s36&KcJrQ6T6|DbTLAh9ry2i>9T{|=I_y-tPYgM=UELRVopFy2x?c>rC)}aDqbJML*O+sIz4y@ zJXq(xXs@fSFnscs-Ga|eTYC#Wx1$Ze#?RM4b8ss>2Wa>Y6`bcR@#Ss6wF2%EGEQ6MaTTgT`gZ)NOL&LET|&kl)Fu6hl7|SlD%>TM`2_ruep<;x zggX@O5;Di2U(!1y&kqr{E8Hby&Ou$$pD1~V@UIGY30a4rF6nn9&kqs)M&T|YcVKE+ych!J*cM7(&p)T;wFx zZWrY%kvFHR_F=V(DCs5~3QnyOZ z;75Dval(BE}K02NZ)WT9JPpn}8pwlZv&rMg zEPq$wuL(Re%)CDWBj|4&{_4SF9{5|V?C&ISV*^xP1Xz;tFtRtnF*t>d2r5?AnwGsY zOK%;64-DgD4tS>bD5l;Ax6q?LPN(u1g5i(BoCgklurADtxd#2UVt>30o*8CdLmL?6 zhr}0ChEF*2e{M(zXCQ65Mp-!mO&=Iec~=`b{?gTQT3WE54`}XF-0WJafFnC@n&k*A zc3?R2)}CfKW$%jT$O;AJC`w>BVy;-IX`btIF@FmnalR8sKL{xAO@u~z8|W?gaal=o zznH;wNaAPS0F<+@&D~G>fKdjd{)}f!thNm_BOhYye?G~U$gx>?SvC(#G_`ZgJ({er| zsdtZtk7=0J@I4JLYxoS>j{0wD_%Wc3$JkX(e@+_n@%*&Vf-;XPRbT#v#{EqA6T&(n zKG*Quj0bdr5b_=kdkJx#4Qcup8vauAKhyMxhNGJQ4aSS#T^fFq5Pt3_#60h7{;-B0 zYWaNT0sM9i?<9oXDni&D)%@cczN+O})P!|mKhmD>QwxVQ`8y^GN&z$!^`~nj& literal 0 HcmV?d00001 diff --git a/filesys_img b/filesys_img new file mode 100644 index 0000000000000000000000000000000000000000..96d9bbc11b478f7715135fb1f295d1b5d6ba142f GIT binary patch literal 319488 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 ADgXcg literal 0 HcmV?d00001 diff --git a/i8259.c b/i8259.c new file mode 100644 index 0000000..3c772e4 --- /dev/null +++ b/i8259.c @@ -0,0 +1,92 @@ +/* i8259.c - Functions to interact with the 8259 interrupt controller + * vim:ts=4 noexpandtab + */ + +#include "i8259.h" +#include "lib.h" +#define PIC1_DATA (MASTER_8259_PORT+1) +#define PIC2_DATA (SLAVE_8259_PORT+1) +/* Interrupt masks to determine which interrupts + * are enabled and disabled */ +uint8_t master_mask; /* IRQs 0-7 */ +uint8_t slave_mask; /* IRQs 8-15 */ + +void +i8259_init(void) +{ + /*INITIALIZE*/ + master_mask = 0xff; + slave_mask = 0xff; + + outb(master_mask,PIC1_DATA); + outb(slave_mask,PIC2_DATA); + + outb(ICW1,MASTER_8259_PORT); + /* ICW2: Master PIC vector offset */ + outb(ICW2_MASTER,PIC1_DATA); + /* ICW3: tell Master PIC that there is a slave PIC at IRQ2 */ + outb(ICW3_MASTER,PIC1_DATA); + outb(ICW4,PIC1_DATA); + + outb(ICW1,SLAVE_8259_PORT); + /* ICW2: Slave PIC vector offset */ + outb(ICW2_SLAVE,PIC2_DATA); + /* ICW3: tell Slave PIC its cascade identity */ + outb(ICW3_SLAVE,PIC2_DATA); + outb(ICW4,PIC2_DATA); + + /*restore the IRQ mask*/ + outb(master_mask,PIC1_DATA); + outb(slave_mask,PIC2_DATA); + +} + +/* Enable (unmask) the specified IRQ */ +void +enable_irq(uint32_t irq_num) +{ + uint16_t port; + uint8_t value; + if(irq_num < 8) { + port = PIC1_DATA; + } else { + port = PIC2_DATA; + irq_num -= 8; + } + value = inb(port) & ~ (1 << irq_num); + outb(value,port); + +} + +/* Disable (mask) the specified IRQ */ +void +disable_irq(uint32_t irq_num) +{ + uint16_t port; + uint8_t value; + if(irq_num < 8) { + port = PIC1_DATA; + } else { + port = PIC2_DATA; + irq_num -= 8; + } + value = inb(port) | (1 << irq_num); + outb(value,port); + +} + +/* Send end-of-interrupt signal for the specified IRQ */ +void +send_eoi(uint32_t irq_num) +{ + unsigned long flags; + cli_and_save(flags); + if(irq_num >= 8) { + outb((0x02 | EOI),MASTER_8259_PORT); + outb((uint16_t) ((irq_num-8) | EOI),SLAVE_8259_PORT); + } + else + outb((irq_num | EOI),MASTER_8259_PORT); + restore_flags(flags); +} + diff --git a/i8259.h b/i8259.h new file mode 100644 index 0000000..6bc38bb --- /dev/null +++ b/i8259.h @@ -0,0 +1,41 @@ +/* i8259.h - Defines used in interactions with the 8259 interrupt + * controller + * vim:ts=4 noexpandtab + */ + +#ifndef _I8259_H +#define _I8259_H + +#include "types.h" + +/* Ports that each PIC sits on */ +#define MASTER_8259_PORT 0x20 +#define SLAVE_8259_PORT 0xA0 + +/* Initialization control words to init each PIC. + * See the Intel manuals for details on the meaning + * of each word */ +#define ICW1 0x11 +#define ICW2_MASTER 0x20 +#define ICW2_SLAVE 0x28 +#define ICW3_MASTER 0x04 +#define ICW3_SLAVE 0x02 +#define ICW4 0x01 + +/* End-of-interrupt byte. This gets OR'd with + * the interrupt number and sent out to the PIC + * to declare the interrupt finished */ +#define EOI 0x60 + +/* Externally-visible functions */ + +/* Initialize both PICs */ +void i8259_init(void); +/* Enable (unmask) the specified IRQ */ +void enable_irq(uint32_t irq_num); +/* Disable (mask) the specified IRQ */ +void disable_irq(uint32_t irq_num); +/* Send end-of-interrupt signal for the specified IRQ */ +void send_eoi(uint32_t irq_num); + +#endif /* _I8259_H */ diff --git a/i8259.o b/i8259.o new file mode 100644 index 0000000000000000000000000000000000000000..680178a867b0c90c799e648aedc4bc0145ee067c GIT binary patch literal 3844 zcma)8U2IfE6h3qBw!N^0mV#)+=r%&EQEvYb6(d++5fW4+X@U=0cH3pUVY`dFcMJX} z)<1$V5r3XAf+qT)A}?ZtFGlePpD;Z5f{70riI5t95))}$zi;l$?tmnCl9_Y9bIzPI zKj+Ter_!4@D5b=b5?`7~WOEQ(R%q5ESIQz8-uu&+EyQ)hI*w|1tQ)!+3l0$+OQD}$ zpha4ziD$IqbfPITMfw>%!8j}dQ<1FntCE=+a2uq zDm~jRXXlb1lBtOx==eB2yEn1)%(Zad``NyGf@uak^}}B$yHCE5u6KMqJlkP98(|r1@|t*`vRuHvbTD-$nEHCV z-jA8H?Nk7zV&m+VH%@#mq86ym)-LqRf`v&xSb}5nmWm%FldF>={$hx$l6NFGEfh&W zKR?#DgtDeRw%pLZKy|6RT18qzr565I-PVF(aSU&+NU)+2l5h?O*&H^~TnsU3>62^@ zS<_C1jNlx3l$aEEU7psx$ldo2r`Dxbg#F<_YM`(0*1nYkD^opNb7QHEnJCsT?;pHT zRN=OPTW$|WrFVC^vU99Z>7Cd$*t@A5WqPYoZ7f%cmX8&xQKgU-uTY94(c;&@2M0zX z@jIVpUZzd7dDZc9B}&o9i+%c6(r4j2FdJj7R4wF7n1l9e^G3%r6;Z7^;%#(Ze2UHu zx7Z$-3@!0oM+&7vB&t&{^i3uQwGIQSTq%<+=0*yYheh=&+I~j68Le#|Iu%yXdoN3{ z3sV)<_qv8rFqtXVa-#Z=YrI?Lyo6|l5|%v35e#x3Z5!HLJ=7cA37L^FRJ;{&+(=r# z=QOZk&3W9VICKd5XTalmthsO=Ll@0st(`~f)i_#J&6UPRa^-@k`xWExh>tX4ZLzU- z6f^m%sI461y^K>RmP`3mV=wjLwIwGq)hJgP0oy4m$waEfM=!~0F*BJnhIYpwkHPB6 z0A1Dj`SZ~0+l?y~TRkuq3)yfST%t#I<*KnL(xQvg?@+62lPA78eE5UIXdj;VX0VWd zCcioOZhyk__k`oG-I-8E^~wIh@qGS+;EGQk@H`~zL`Z!7btUTYpgoaz0f`qek0BoO z(EQ+8Z|%GmtEX<`CGaCxhIkS+_-a)19Il{q=suFCgOu= z^d)~QmIHFm!}TRT6WbHyzr=Dt&bhh1#IvzILHr1>=>!Jkt`dALgSw^n! zxQ>HPMsa3m!S&(BpIaN8ov(}Ehg;<=`$n1eVz^son}D6-Vuowbpams#&yMr4bV1eP za~>(xCUB>%Tem9JgPZNf|8cQNSbbz7%4ET#O3cTtRLK>?D7Pn)a4ZvLB+OQ;5OdjD zek7C4R&tXP(k0duN;}FfE*45T7w@QKCZLF&i{(+*wyTyc!HVe3c$rG3l&2~lfjLPy zTArA|RV!hs9OXi+aCtS#jPj28e{>z(xP5qgH1XfU-A}vAOQ4?u0Z2> z`munQ8LV#x$ofSGw`Akp1O@#s=f@n*@#=U-Z7|2S){$v0p-5PbmTZjGP`K+jj&+=b zj_cqa*mZ1$Y{x*9Z((?ff+1_W7ub#W>il?JjK}racv;AH3`E(2zqA)A7_$5F5U?BX z0ODH}5%T9ee?8-u=!Ph_bXz zBt^lH&Gizn8}CoV>x7Q$=s>ga4nekKAj*2gqmLzPdmjob)Aj)TLhIz%K5}H5pNF4I zHU@u#ZSB!czb_m|>qqXCk^Gnx*$(Am=(!%QgPd!1q{@fy}($qVS=0x00) + //printf("we want %x ", scancode); + void *p; + uint32_t fd01; + read_terminal(fd01, p, scancode); + + //outb(0x20, 0x20); + //send the ending interrupt signal + send_eoi(1); + +} +/* do_irq8 + * Description: set up irq1 which is the keyboard + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: enable irq8 + */ +void +do_irq8() +{ + //write to the rtc register + //printf("rtc "); + outb(0x0C,0x70); + inb(0x71); + happen(); + //send the ending interrupt signal + send_eoi(8); +} +/* do_irq0 + * Description: set up irq1 which is the keyboard + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: enable irq10 + */ +void +do_irq0() +{ + + deep(); + counter++; + if(counter >= 60) + { + flages = 1; + uint8_t tmp = (inb(0x61) & 0xFC); + outb( tmp, 0x61); + } + + //printf("do_irq0"); + switch_task(); + send_eoi(0); +} + + + +void deep(void) +{ + uint32_t Div; + uint8_t tmp; + if(flages == 0) + { + //Set the PIT to the desired frequency + Div = 1193180 / nFrequence; + outb(0xb6, 0x43); + outb( (uint8_t)(Div), 0x42 ); + outb( (uint8_t) (Div >> 8), 0x42); + + // And play the sound using the PC speaker + tmp = inb(0x61); + if (tmp != (tmp | 3)) { + outb( tmp | 3, 0x61);} + } +} + diff --git a/idt_handler.h b/idt_handler.h new file mode 100644 index 0000000..eefb21a --- /dev/null +++ b/idt_handler.h @@ -0,0 +1,31 @@ +#ifndef _IDT_HANDLER_H +#define _IDT_HANDLER_H +#include "types.h" +#include "task.h" +//system internal interrupts and expections +extern void divide_error(void); +extern void debug(void); +extern void nmi(void); +extern void int3(void); +extern void overflow(void); +extern void bounds(void); +extern void invalid_op(void); +extern void device_not_available(void); +extern void doublefault_fn(void); +extern void coprocessor_segment_overrun(void); +extern void invalid_TSS(void); +extern void segment_not_present(void); +extern void stack_segment(void); +extern void general_protection(void); +extern void page_fault(void); +extern void coprocessor_error(void); +extern void alignment_check(void); +extern void machine_check(void); +extern void simd_coprocessor_error(void); +//interrupt of outer devices +extern void do_irq1(void); +extern void do_irq8(void); +extern void do_irq0(); +#endif + + diff --git a/idt_handler.o b/idt_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..494cd683610c9aafeb210f4d48b85fae6858b903 GIT binary patch literal 8620 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 literal 0 HcmV?d00001 diff --git a/irq0.c b/irq0.c new file mode 100644 index 0000000..511b80a --- /dev/null +++ b/irq0.c @@ -0,0 +1,58 @@ +#include "irq0.h" +#include "lib.h" +#include "i8259.h" + +//NoBcd,leastfirst then msn, cntr counter0 +#define timer_ctrl_port 0x43 +#define timer_port 0x40 +#define INTR_ON_TERMNAL_COUNT 0x30 +#define HARD_RE_TRIG_ONE_SHOT 0x32 +#define RATE_GENERATOR 0x34 +#define SQUARE_WAVE_MODE 0x36 +#define SOFTWARE_STROBE 0x38 +#define HZ 20 +#define DIVISOR 1193180/HZ +/* open_IRQ0 + * Description: start up the IRQ0 + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: enable irq0 + */ +void +open_IRQ0(void) +{ + +outb(RATE_GENERATOR, timer_ctrl_port); +/* Write the divisor to the time chip port*/ +outb(DIVISOR&0xFF, timer_port); +outb(DIVISOR>>8, timer_port); +enable_irq(0); +//printf("IRQ0 ENABLED"); +} +/* open_IRQ12 + * Description: start up the IRQ12 + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: enable irq12 + */ +void +open_IRQ12(void) +{ + +printf("enter mouse"); +/* + frequency approximate 18hz +*/ +//set up the registers. +outb(0xFF, 0x60); +outb(0xF6, 0x60); +outb(0xE6, 0x60); +// enable the mouse. +enable_irq(12); +printf("mouse ENABLED"); +} + + + diff --git a/irq0.h b/irq0.h new file mode 100644 index 0000000..ddf6df6 --- /dev/null +++ b/irq0.h @@ -0,0 +1,13 @@ +/* lib.h - Defines for useful library functions + * vim:ts=4 noexpandtab + */ + +#ifndef _IRQ0_H +#define _IRQ0_H +#include "lib.h" + +extern void open_IRQ0(void); + +#endif + + diff --git a/irq0.o b/irq0.o new file mode 100644 index 0000000000000000000000000000000000000000..71abba4f9f3650d3ea601af5528188d86c2531eb GIT binary patch literal 2624 zcma)8&ubl36h3$6B^mpY&?IVtRh&hOX*Kg+(wa(zHb1R}7%)(9WjZgJB+ur}d(N9@ z6$(N{(VZ(7uH3pvR|+9fTy!B7bm7APz*37uM9_so{Jxoc-`s#u58OH5`OdlLzH`r= zx$oV@rI(aaVnm56g(Wgm%01^YH7;ZFm|Xqn=l6c~_U1wDl0Vp+AuJd07s78#C!ys2 zKZl2hckkqrY;Nxwyt{{Z9OUrN0^TD;a6fdGz{Yp)h^QfTymuJSQ{G6~^-g#q&Pj2- za`_^DhYL8E!%`rZ`d#lr`Ni@x{X=S4&GaJYZx{}SNGYrKR)$3`FJJZN{d2)&Fy&8G ztLLlJQ`7$VO0@339Hu!xF?sg1sCx2dHCU6%jb?Ivy`EGWt+SOY%`~jE)6RMnrxWY- zcAC^{;?(0*Nq}TT#4v zW#!eXsIlzVKd*m%;hLNhbw-hAWzW$+i{Z#qcq;Yx-~gUk+mS$tu7+XKlkJN;sLx(%A&+?G&}7`vZueeJUh3vxWJjmG0^KnCF-WvUn+fw+>g?s zg+FI@(0kvR8|X1SxmPTnp{&V~H0unD2F{9StRo$?Iv3j07>uQUA;%sy%eG^m&1^j6 z4~%_`Vi$k1ENmR*NsMeCM4x}yOlhRs8}>{t&(B}*$8mN}|Bs_1LHnIX8rGoGB-dL8 zCDC?}MsKGQtcPhRL9N{ejB1_D)v#7eqPHYqNY2#bjizmH*W(CwGoM<-Z6sj>j(pN~ zbIqR9>eOO*u}TpiCSkluDxZPhCc#>>(LnDdh?{8?pwfwU8m?V8+wpMyG(y-{zI+sZ zH|z~H+k682BMi{ef>8y29E0;2#{+Om+u2J2yo+Ir$;ZAk{$X)kgZYgx-z8%}8{eFT z>HZ6YC(4M4y9mOr<1-l7z_AYQfvIB!*vtWx2QU^1v>4wqY&)ME%j;r3)@Sm)4$L|E z;T5R>JOSH?$@c~bgXvpB+=2;$Hv6{$Y_IEKT^}6R#fP@L?hRl&-^a-J8aN}y_W=ll z>AR1(iV3oOw}9<+$E|t?;WPDqYRv(ZQ8d~o&|=p51h$>8ihTTDu?}jJ?{i=?2T;x< z-vEIYSl#`m>_$tQ@j#l#JPv|Wt*-U>8v)Y!5@(EJ&YqhL%O)U4Ic zHv{6o_PI!uBeM>zlKjrwxhqHi88E-S0&R0@@+q$LbmtPd-M8QPd2$PJd8jRMvlCVj z?vYL~A5TIdZnguqJzN+-?vdMw_DJ^bFo<`_FuG>X;6C!cGvi541ke{26VJQR9s8;$z;bw)vf=o&63xjArfR{{>nY BCAflags); + + /* Are mem_* valid? */ + if (CHECK_FLAG (mbi->flags, 0)) + printf ("mem_lower = %uKB, mem_upper = %uKB\n", + (unsigned) mbi->mem_lower, (unsigned) mbi->mem_upper); + + /* Is boot_device valid? */ + if (CHECK_FLAG (mbi->flags, 1)) + printf ("boot_device = 0x%#x\n", (unsigned) mbi->boot_device); + + /* Is the command line passed? */ + if (CHECK_FLAG (mbi->flags, 2)) + printf ("cmdline = %s\n", (char *) mbi->cmdline); + + if (CHECK_FLAG (mbi->flags, 3)) { + int mod_count = 0; + int i; + module_t* mod = (module_t*)mbi->mods_addr; + while(mod_count < mbi->mods_count) { + printf("Module %d loaded at address: 0x%#x\n", mod_count, (unsigned int)mod->mod_start); + filestart = mod->mod_start; + printf("Module %d ends at address: 0x%#x\n", mod_count, (unsigned int)mod->mod_end); + printf("First few bytes of module:\n"); + for(i = 0; i<16; i++) { + printf("0x%x ", *((char*)(mod->mod_start+i))); + } + printf("\n"); + mod_count++; + } + } + /* Bits 4 and 5 are mutually exclusive! */ + if (CHECK_FLAG (mbi->flags, 4) && CHECK_FLAG (mbi->flags, 5)) + { + printf ("Both bits 4 and 5 are set.\n"); + return; + } + + /* Is the section header table of ELF valid? */ + if (CHECK_FLAG (mbi->flags, 5)) + { + elf_section_header_table_t *elf_sec = &(mbi->elf_sec); + + printf ("elf_sec: num = %u, size = 0x%#x," + " addr = 0x%#x, shndx = 0x%#x\n", + (unsigned) elf_sec->num, (unsigned) elf_sec->size, + (unsigned) elf_sec->addr, (unsigned) elf_sec->shndx); + } + + /* Are mmap_* valid? */ + if (CHECK_FLAG (mbi->flags, 6)) + { + memory_map_t *mmap; + + printf ("mmap_addr = 0x%#x, mmap_length = 0x%x\n", + (unsigned) mbi->mmap_addr, (unsigned) mbi->mmap_length); + for (mmap = (memory_map_t *) mbi->mmap_addr; + (unsigned long) mmap < mbi->mmap_addr + mbi->mmap_length; + mmap = (memory_map_t *) ((unsigned long) mmap + + mmap->size + sizeof (mmap->size))) + printf (" size = 0x%x, base_addr = 0x%#x%#x\n" + " type = 0x%x, length = 0x%#x%#x\n", + (unsigned) mmap->size, + (unsigned) mmap->base_addr_high, + (unsigned) mmap->base_addr_low, + (unsigned) mmap->type, + (unsigned) mmap->length_high, + (unsigned) mmap->length_low); + } + + /* Construct an LDT entry in the GDT */ + { + seg_desc_t the_ldt_desc; + the_ldt_desc.granularity = 0; + the_ldt_desc.opsize = 1; + the_ldt_desc.reserved = 0; + the_ldt_desc.avail = 0; + the_ldt_desc.present = 1; + the_ldt_desc.dpl = 0x0; + the_ldt_desc.sys = 0; + the_ldt_desc.type = 0x2; + + SET_LDT_PARAMS(the_ldt_desc, &ldt, ldt_size); + ldt_desc_ptr = the_ldt_desc; + lldt(KERNEL_LDT); + } + + /* Construct a TSS entry in the GDT */ + { + seg_desc_t the_tss_desc; + the_tss_desc.granularity = 0; + the_tss_desc.opsize = 0; + the_tss_desc.reserved = 0; + the_tss_desc.avail = 0; + the_tss_desc.seg_lim_19_16 = TSS_SIZE & 0x000F0000; + the_tss_desc.present = 1; + the_tss_desc.dpl = 0x0; + the_tss_desc.sys = 0; + the_tss_desc.type = 0x9; + the_tss_desc.seg_lim_15_00 = TSS_SIZE & 0x0000FFFF; + + SET_TSS_PARAMS(the_tss_desc, &tss, tss_size); + + tss_desc_ptr = the_tss_desc; + + tss.ldt_segment_selector = KERNEL_LDT; + tss.ss0 = KERNEL_DS; + tss.esp0 = 0x800000; + ltr(KERNEL_TSS); + } + //Initialization of IDE + { + printf("Initilization of Idt table..."); + set_trap_gate(0,divide_error); + set_trap_gate(1,debug); + set_intr_gate(2,nmi); + set_system_intr_gate(3,int3); + set_system_gate(4,overflow); + set_system_gate(5,bounds); + set_trap_gate(6,invalid_op); + set_trap_gate(7,device_not_available); + set_task_gate(8,31); + set_trap_gate(9,coprocessor_segment_overrun); + set_trap_gate(10,invalid_TSS); + set_trap_gate(11,segment_not_present); + set_trap_gate(12,stack_segment); + set_trap_gate(13,general_protection); + set_trap_gate(14,page_fault);//intr + set_trap_gate(16,coprocessor_error); + set_trap_gate(17,alignment_check); + set_trap_gate(18,machine_check); + set_trap_gate(19,simd_coprocessor_error); + set_system_gate(128,system_call); + set_intr_gate(32,irq0); //intr + set_intr_gate(33,irq1); //intr + set_intr_gate(34,0); //intr + set_intr_gate(40,irq8); //intr + //set_intr_gate(44,irq12); //intr + lidt(idt_desc_ptr); + printf("ok!\n"); + } + + // Init the PIC + i8259_init(); + + //Enable interrupts + + + enable_irq(1); + enable_irq(2); + open_rtc(); + enable_irq(8); + enable_irq(12); + + uint8_t file =0x00; + + //Enable paging + printf("Enabling paging...\n"); + paging(); + printf("ok!\n"); + + //Restore interrupts + sti(); + + //Mounting file system + printf("Mounting filesystem...\n"); + open_terminal(&file); + setstart(filestart); + printf("ok!\n"); + + //clear(); + //Executing first program shell + uint8_t cmd[10]={"shell "}; +#if debug_by_showing_dentries +test_dentries(); +while(1); +#endif + + test_system_call((int32_t)cmd, NULL, 0, 2); + + asm volatile(".1: hlt; jmp .1;"); +} + diff --git a/kernel.o b/kernel.o new file mode 100644 index 0000000000000000000000000000000000000000..b992ed7de91ab9f4359096b405e8ce7f46a1c423 GIT binary patch literal 12504 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 + { + // set it to 0 + screen_x[cur_terminal]=0; + // update the y coordinate + screen_y[cur_terminal]++; + } + +} + + + /*scroll + * Description: scroll the screen + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: update the video mem + */ + +void scroll(void) +{ + int32_t i; + + video_mem=(char *)VIDEO; + for(i=NUM_COLS; i< (NUM_ROWS*NUM_COLS-NUM_COLS); i++) { + // if it does not reach the bottom line, shift the video mem + *(uint8_t *)(video_mem + (i << 1)) = *(uint8_t *)(video_mem + ((i+NUM_COLS)<< 1)); + // also the content of color + *(uint8_t *)(video_mem + (i << 1) + 1) = *(uint8_t *)(video_mem + ((i+NUM_COLS)<< 1)+1);; + } + //if it reaches the bottom line + for(i=(NUM_ROWS*NUM_COLS-NUM_COLS); i< (NUM_ROWS*NUM_COLS); i++) { + // replace with space + *(uint8_t *)(video_mem + (i << 1)) = ' '; + // as well as the color + *(uint8_t *)(video_mem + (i << 1) + 1) = ATTRIB;; + } + + + screen_x[cur_terminal] = 0; + screen_y[cur_terminal]= NUM_ROWS - 1; + +} + /*clear + * Description: clear the screen + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: update the video mem + */ +void +clear(void) +{ + int32_t i; + + video_mem=(char *)VIDEO; + // fill every pixel in the terminal with space + for(i=NUM_COLS; i= 24) + { + for(i=NUM_COLS; i< (NUM_ROWS*NUM_COLS-NUM_COLS); i++) { + + *(uint8_t *)(VIDEO + (i << 1)) = *(uint8_t *)(VIDEO+ ((i+NUM_COLS)<< 1)); + *(uint8_t *)(VIDEO+ (i << 1) + 1) = *(uint8_t *)(VIDEO+ ((i+NUM_COLS)<< 1)+1);; + } + for(i=(NUM_ROWS*NUM_COLS-NUM_COLS); i< (NUM_ROWS*NUM_COLS); i++) { + *(uint8_t *)(VIDEO+ (i << 1)) = ' '; + *(uint8_t *)(VIDEO + (i << 1) + 1) = ATTRIB; + } + screen_x[cur_terminal] =0; + screen_y[cur_terminal] =23; + } + } + else + { + if(screen_x[cur_terminal]>=79) + { + screen_x[cur_terminal]=0; + screen_y[cur_terminal]++; + } + *(uint8_t *)(video_mem + ((NUM_COLS*screen_y[cur_terminal] + screen_x[cur_terminal]) << 1)) = c; + *(uint8_t *)(video_mem + ((NUM_COLS*screen_y[cur_terminal] + screen_x[cur_terminal]) << 1) + 1) = ATTRIB; + screen_x[cur_terminal]++; + screen_x[cur_terminal] %= NUM_COLS; + if(screen_y[cur_terminal] >= 24) + { + for(i=NUM_COLS; i< (NUM_ROWS*NUM_COLS-NUM_COLS); i++) { + + *(uint8_t *)(VIDEO + (i << 1)) = *(uint8_t *)(VIDEO+ ((i+NUM_COLS)<< 1)); + *(uint8_t *)(VIDEO+ (i << 1) + 1) = *(uint8_t *)(VIDEO+ ((i+NUM_COLS)<< 1)+1);; + } + for(i=(NUM_ROWS*NUM_COLS-NUM_COLS); i< (NUM_ROWS*NUM_COLS); i++) { + *(uint8_t *)(VIDEO+ (i << 1)) = ' '; + *(uint8_t *)(VIDEO + (i << 1) + 1) = ATTRIB; + } + screen_x[cur_terminal] =0; + screen_y[cur_terminal] =23; + } + } + +if(system_init_flag) + if(cur_terminal == alt_terminal) + { + // *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + ((NUM_COLS*screen_y[cur_terminal] + screen_x[cur_terminal]) << 1)) = c; + // *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + ((NUM_COLS*screen_y[cur_terminal] + screen_x[cur_terminal]) << 1) + 1) = ATTRIB; + memcpy((char *)VIDEO+(alt_terminal+1)*size_of_vmem ,(char *)VIDEO, size_of_vmem); + update_cursor(screen_y[alt_terminal], screen_x[alt_terminal]); + } + + +} + +/* Convert a number to its ASCII representation, with base "radix" */ +int8_t* +itoa(uint32_t value, int8_t* buf, int32_t radix) +{ + static int8_t lookup[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + int8_t *newbuf = buf; + int32_t i; + uint32_t newval = value; + + /* Special case for zero */ + if(value == 0) { + buf[0]='0'; + buf[1]='\0'; + return buf; + } + + /* Go through the number one place value at a time, and add the + * correct digit to "newbuf". We actually add characters to the + * ASCII string from lowest place value to highest, which is the + * opposite of how the number should be printed. We'll reverse the + * characters later. */ + while(newval > 0) { + i = newval % radix; + *newbuf = lookup[i]; + newbuf++; + newval /= radix; + } + + /* Add a terminating NULL */ + *newbuf = '\0'; + + /* Reverse the string and return */ + return strrev(buf); +} + +/* In-place string reversal */ +int8_t* +strrev(int8_t* s) +{ + register int8_t tmp; + register int32_t beg=0; + register int32_t end=strlen(s) - 1; + + while(beg < end) { + tmp = s[end]; + s[end] = s[beg]; + s[beg] = tmp; + beg++; + end--; + } + + return s; +} + +/* String length */ +uint32_t +strlen(const int8_t* s) +{ + register uint32_t len = 0; + while(s[len] != '\0') + len++; + + return len; +} + +/* Optimized memset */ +void* +memset(void* s, int32_t c, uint32_t n) +{ + c &= 0xFF; + asm volatile(" \n\ + .memset_top: \n\ + testl %%ecx, %%ecx \n\ + jz .memset_done \n\ + testl $0x3, %%edi \n\ + jz .memset_aligned \n\ + movb %%al, (%%edi) \n\ + addl $1, %%edi \n\ + subl $1, %%ecx \n\ + jmp .memset_top \n\ + .memset_aligned: \n\ + movw %%ds, %%dx \n\ + movw %%dx, %%es \n\ + movl %%ecx, %%edx \n\ + shrl $2, %%ecx \n\ + andl $0x3, %%edx \n\ + cld \n\ + rep stosl \n\ + .memset_bottom: \n\ + testl %%edx, %%edx \n\ + jz .memset_done \n\ + movb %%al, (%%edi) \n\ + addl $1, %%edi \n\ + subl $1, %%edx \n\ + jmp .memset_bottom \n\ + .memset_done: \n\ + " + : + : "a"(c << 24 | c << 16 | c << 8 | c), "D"(s), "c"(n) + : "edx", "memory", "cc" + ); + + return s; +} + +/* Optimized memset_word */ +void* +memset_word(void* s, int32_t c, uint32_t n) +{ + asm volatile(" \n\ + movw %%ds, %%dx \n\ + movw %%dx, %%es \n\ + cld \n\ + rep stosw \n\ + " + : + : "a"(c), "D"(s), "c"(n) + : "edx", "memory", "cc" + ); + + return s; +} + +/* Optimized memset_dword */ +void* +memset_dword(void* s, int32_t c, uint32_t n) +{ + asm volatile(" \n\ + movw %%ds, %%dx \n\ + movw %%dx, %%es \n\ + cld \n\ + rep stosl \n\ + " + : + : "a"(c), "D"(s), "c"(n) + : "edx", "memory", "cc" + ); + + return s; +} + +/* Optimized memcpy */ +void* +memcpy(void* dest, const void* src, uint32_t n) +{ + asm volatile(" \n\ + .memcpy_top: \n\ + testl %%ecx, %%ecx \n\ + jz .memcpy_done \n\ + testl $0x3, %%edi \n\ + jz .memcpy_aligned \n\ + movb (%%esi), %%al \n\ + movb %%al, (%%edi) \n\ + addl $1, %%edi \n\ + addl $1, %%esi \n\ + subl $1, %%ecx \n\ + jmp .memcpy_top \n\ + .memcpy_aligned: \n\ + movw %%ds, %%dx \n\ + movw %%dx, %%es \n\ + movl %%ecx, %%edx \n\ + shrl $2, %%ecx \n\ + andl $0x3, %%edx \n\ + cld \n\ + rep movsl \n\ + .memcpy_bottom: \n\ + testl %%edx, %%edx \n\ + jz .memcpy_done \n\ + movb (%%esi), %%al \n\ + movb %%al, (%%edi) \n\ + addl $1, %%edi \n\ + addl $1, %%esi \n\ + subl $1, %%edx \n\ + jmp .memcpy_bottom \n\ + .memcpy_done: \n\ + " + : + : "S"(src), "D"(dest), "c"(n) + : "eax", "edx", "memory", "cc" + ); + + return dest; +} + +/* Optimized memmove (used for overlapping memory areas) */ +void* +memmove(void* dest, const void* src, uint32_t n) +{ + asm volatile(" \n\ + movw %%ds, %%dx \n\ + movw %%dx, %%es \n\ + cld \n\ + cmp %%edi, %%esi \n\ + jae .memmove_go \n\ + leal -1(%%esi, %%ecx), %%esi \n\ + leal -1(%%edi, %%ecx), %%edi \n\ + std \n\ + .memmove_go: \n\ + rep movsb \n\ + " + : + : "D"(dest), "S"(src), "c"(n) + : "edx", "memory", "cc" + ); + + return dest; +} + +/* Standard strncmp */ +int32_t +strncmp(const int8_t* s1, const int8_t* s2, uint32_t n) +{ + int32_t i; + for(i=0; i>8)&0xFF), 0x3D5); + } + /*statusbar + * Description: display status + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: modify the video mem + */ + void statusbar(void) +{ + int i,j; + uint8_t text[] = "terminal IOTA OS "; + text[9] = (uint8_t) 49; + //mapping the video mem from text + video_mem=(char *)VIDEO; + for(i=0; i< 80 ; i++) { + + *(uint8_t *)(video_mem + (i << 1)) = text[i]; + *(uint8_t *)(video_mem + (i << 1) + 1) = 0x3 | 0x80; + } + + + for(j =0; j< NUM_TERMINAL; j++) + { + // text[9] indicating the terminal number + text[9] = (uint8_t) j + 49; + video_mem=(char *)VIDEO+(j+1)*size_of_vmem; + for(i=0; i< 80 ; i++) { + // the video mem will never interact with alt_terminal. + *(uint8_t *)(video_mem + (i << 1)) = text[i]; + *(uint8_t *)(video_mem + (i << 1) + 1) = 0x3 | (0x80 + 0x10*j); + } + screen_x[j]=0; + screen_y[j]=1; + } + + +} + /*putcur + * Description: print current terminal to the screen + * Input: --c: command + * Output: N/A + * Return value: N/A + * Side effect: N/A + */ +void putcur(char c) +{ + + int32_t i; + if(c == '\n' || c == '\r') {//change line + screen_y[alt_terminal]++; + screen_x[alt_terminal]=0; + if(screen_y[alt_terminal] >= 24)//scolling + { + for(i=NUM_COLS; i< (NUM_ROWS*NUM_COLS-NUM_COLS); i++) { + + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + (i << 1)) = *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + ((i+NUM_COLS)<< 1)); + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + (i << 1) + 1) = *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + ((i+NUM_COLS)<< 1)+1);; + } + for(i=(NUM_ROWS*NUM_COLS-NUM_COLS); i< (NUM_ROWS*NUM_COLS); i++) { + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + (i << 1)) = ' '; + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + (i << 1) + 1) = ATTRIB; + } + screen_x[alt_terminal] =0; + screen_y[alt_terminal] =23; + } + + } + else + { + if(screen_x[alt_terminal]>=79) + { + screen_x[alt_terminal]=0; + screen_y[alt_terminal]++; + } + //put to alt video memeory + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + ((NUM_COLS*screen_y[alt_terminal] + screen_x[alt_terminal]) << 1)) = c; + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + ((NUM_COLS*screen_y[alt_terminal] + screen_x[alt_terminal]) << 1) + 1) = ATTRIB; + screen_x[alt_terminal] ++; + screen_x[alt_terminal] %= NUM_COLS; + if(screen_y[alt_terminal] >= 24)//scolling + { + for(i=NUM_COLS; i< (NUM_ROWS*NUM_COLS-NUM_COLS); i++) { + + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + (i << 1)) = *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + ((i+NUM_COLS)<< 1)); + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + (i << 1) + 1) = *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + ((i+NUM_COLS)<< 1)+1);; + } + for(i=(NUM_ROWS*NUM_COLS-NUM_COLS); i< (NUM_ROWS*NUM_COLS); i++) { + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + (i << 1)) = ' '; + *(uint8_t *)(VIDEO+(alt_terminal+1)*size_of_vmem + (i << 1) + 1) = ATTRIB; + } + screen_x[alt_terminal] =0; + screen_y[alt_terminal] =23; + } + } + update_cursor(screen_y[alt_terminal], screen_x[alt_terminal]); + +} + + + /*putcur + * Description: put a string to the alt_terminal + * Input: --buff: buffer stored the string + * Output: increment index + * Return value: N/A + * Side effect: N/A + */ +void +printscur( char * buff) +{ + register int32_t index = 0; + while(buff[index] != '\0') { + //if not reach the end, print the char. + putcur(buff[index]); + // increment the index + index++; + } +} + diff --git a/lib.h b/lib.h new file mode 100644 index 0000000..fb118c9 --- /dev/null +++ b/lib.h @@ -0,0 +1,161 @@ +/* lib.h - Defines for useful library functions + * vim:ts=4 noexpandtab + */ + +#ifndef _LIB_H +#define _LIB_H + +#include "types.h" +#include "task.h" +int32_t printf(int8_t *format, ...); +void putc(uint8_t c); +int32_t puts(int8_t *s); +int8_t *itoa(uint32_t value, int8_t* buf, int32_t radix); +int8_t *strrev(int8_t* s); +uint32_t strlen(const int8_t* s); +void clear(void); +extern void test_interrupts(void); + +extern void printscur( char * buff); + +extern void putcur(char c); +extern void statusbar(void); +extern void bksp(void); +extern void bksp_t(void); +extern void up_screen(void); +extern void dir(unsigned char dd); +extern void screen_ptr(int x, int y); +extern int gety(void); +extern int getx(void); +extern void scroll(void); +extern void update_cursor(int row, int col); +extern int screen_x[NUM_TERMINAL]; +extern int screen_y[NUM_TERMINAL]; +void* memset(void* s, int32_t c, uint32_t n); +void* memset_word(void* s, int32_t c, uint32_t n); +void* memset_dword(void* s, int32_t c, uint32_t n); +void* memcpy(void* dest, const void* src, uint32_t n); +void* memmove(void* dest, const void* src, uint32_t n); +int32_t strncmp(const int8_t* s1, const int8_t* s2, uint32_t n); +int8_t* strcpy(int8_t* dest, const int8_t*src); +int8_t* strncpy(int8_t* dest, const int8_t*src, uint32_t n); + +/* Userspace address-check functions */ +int32_t bad_userspace_addr(const void* addr, int32_t len); +int32_t safe_strncpy(int8_t* dest, const int8_t* src, int32_t n); + +/* Port read functions */ +/* Inb reads a byte and returns its value as a zero-extended 32-bit + * unsigned int */ +static inline uint32_t inb(port) +{ + uint32_t val; + asm volatile("xorl %0, %0\n \ + inb (%w1), %b0" + : "=a"(val) + : "d"(port) + : "memory" ); + return val; +} + +/* Reads two bytes from two consecutive ports, starting at "port", + * concatenates them little-endian style, and returns them zero-extended + * */ +static inline uint32_t inw(port) +{ + uint32_t val; + asm volatile("xorl %0, %0\n \ + inw (%w1), %w0" + : "=a"(val) + : "d"(port) + : "memory" ); + return val; +} + +/* Reads four bytes from four consecutive ports, starting at "port", + * concatenates them little-endian style, and returns them */ +static inline uint32_t inl(port) +{ + uint32_t val; + asm volatile("inl (%w1), %0" + : "=a"(val) + : "d"(port) + : "memory" ); + return val; +} + +/* Writes a byte to a port */ +#define outb(data, port) \ +do { \ + asm volatile("outb %b1, (%w0)" \ + : \ + : "d" (port), "a" (data) \ + : "memory", "cc" ); \ +} while(0) + +/* Writes two bytes to two consecutive ports */ +#define outw(data, port) \ +do { \ + asm volatile("outw %w1, (%w0)" \ + : \ + : "d" (port), "a" (data) \ + : "memory", "cc" ); \ +} while(0) + +/* Writes four bytes to four consecutive ports */ +#define outl(data, port) \ +do { \ + asm volatile("outl %l1, (%w0)" \ + : \ + : "d" (port), "a" (data) \ + : "memory", "cc" ); \ +} while(0) + +/* Clear interrupt flag - disables interrupts on this processor */ +#define cli() \ +do { \ + asm volatile("cli" \ + : \ + : \ + : "memory", "cc" \ + ); \ +} while(0) + +/* Save flags and then clear interrupt flag + * Saves the EFLAGS register into the variable "flags", and then + * disables interrupts on this processor */ +#define cli_and_save(flags) \ +do { \ + asm volatile("pushfl \n \ + popl %0 \n \ + cli" \ + : "=r"(flags) \ + : \ + : "memory", "cc" \ + ); \ +} while(0) + +/* Set interrupt flag - enable interrupts on this processor */ +#define sti() \ +do { \ + asm volatile("sti" \ + : \ + : \ + : "memory", "cc" \ + ); \ +} while(0) + +/* Restore flags + * Puts the value in "flags" into the EFLAGS register. Most often used + * after a cli_and_save_flags(flags) */ +#define restore_flags(flags) \ +do { \ + asm volatile("pushl %0 \n \ + popfl" \ + : \ + : "r"(flags) \ + : "memory", "cc" \ + ); \ +} while(0) + +#endif /* _LIB_H */ diff --git a/lib.o b/lib.o new file mode 100644 index 0000000000000000000000000000000000000000..43b285bc0ed82d69c39694f53f664db564a87b2e GIT binary patch literal 17556 zcmd^Gd3;sXwch948#s`_4P*cXG-{X>0|7)3gQ8pn8AU;`mY6vgGnt&rP?_uv$~B^f z>T7Ma*gElSwc6KOtJWrHgE-RGscKss=mSF)Ax~&U>G$ou&b=owQuX)#c)#B}KkohZ zx7ONg4`&Z+?;F;IXHT~*OL>o_0xHRrsyf|h#%ma%2C6KzFupssZ(vi{*%&?&dL(=# z9zGmfb9k1!gx~8@@jb&mVect$gXEl0<2}fW)cjCm45_`nq4*KqH3c^iHnfBqKL#3E zrk2Itx8f$X_sxXLGk3GQH}y;X1;j7O4aS4HdyX7EdUWp%33pP`Hm{_1*PkhNc<#D^ zevh%F;czYAZt4Snswqo<2X7_BTCBK9`Lp|d`zy5LDRie_iGtUD*#f@F%&~px+f!Ju zTA!-6hmXuhs{OL2@DZyezD;}H6tv^55X4&M`(>d=)JCg|9V_3BDa6`32CvtwIkK*& zQfu!(S?iH#Kdp<8HkH#wg6wUor(}MKnV;7c^L3%04@3)ezjWKQuV37T7I&U5r*&6a zin=*f-Njz>y6o%w{eos#$!4s?Y>9{WY~uI6Sa@G>@AWo@O?VG_HS}al?C?-GWp6P= z+r#@=r&xFo-iⅅoDEJ*_ExxNTa> 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 z4z*M5Qqd|#?N)o#UbRo{R|nKVbx0jnN7PYuOns@2t5|hHom8jPSL(DnqrO&W)j9Qz zIWaFmzEj_;Yw8CTudb^bDnZ>;x72NQMYlo<9;k=vNA*ZO zR!`JZ^-LwH=PFsHD3gWBWTwnj8fBrzRS{KG6;s7k3FWFvs#3~Ll~!d` zSyfJzR~1x6RY_G=?<)ob5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0;rw*ntnm`qhwHC0`?D-Tse z)l{`qZB<9rRrOST)j%~=jZ|aRL^V~-RCCorwN$NCYt=@zRqa%J)j@Ssom6MlMRir4 zs+;PrdMGdDt$M0ns<-N+K2&{GKh4zNF7#3)KPUzeW{MCSam|3RHxKe>a;qezE)?| zIrWV?uP&&I>RWY5#i`5cin^-4Q{Ss=>IW6CuB#g=LETih)NOS~C91pXp1Q9dsE6uD z^+-KdPt;TOOeLx3Dp{o{Q(BYBOqr`R%0i`8mdZ+5t8~gnrB}8pgUYBfDLZAaGOH}g zL1k6hRCeX4a;Ti@J(Wx4R(X_@a#k)Xuga(Ls{*Q^Dx?alBC4n=ri!Z)%2kzArIedu zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R;Y@0_HdDb;r!qy(Zhde|sOTEaTG{;~amw+|R3T@BRUS zzr7mg5kTN?EHKc=$G@^qw?1Co{ksgT?A^PsR~P@vex*#dy3e*IGjmscH-B;3+}u@X zGU&9O$M^gqfuhQOrU0z$|t7|Iedy zX`HRe!mMm1w=%|ijh)Hbs-IW?0N1{L{>EkbO*Updyax5|?&aFg)7NBj_|5sux{iZ! zo2h1%MdKVzc4oc(d@7YMU+U+1IsA0pKB=yo`^C6)W<3W6baU4v zc>9(9c@pzXW;tGr&tx`8KB=ZK%c=3>%x%pAQ;mF2;{r8}>n{+leuI5Yc{IMOdHPg7 zBQ&1(U$HR!1p>y;x$(15{!iYP@xJkLO!$<7fAEL(hR;ddGSFU`(Ix^%tA`y7%(x@rKKd>5ccQ*A2bA`u6pC-Gv%& zOmDnrzHS)k-~DwL{XE|0=TrapgkSHT{$75s!PnJ|`5V6@UN`s|58!ndYP>PM@fv&G z;N9D=*Xu4b#v9Wcy>964`TF~AOk+%&{&f>;{EOFLsW-p=jNd=68+?2B@9FE)zvt^N zH|B5gx(gYP00IagfB*srAbcrY?rBXX4^>0eRJBxXRY%oT^;CV;Ks8j2RAbddHC4@2bJaq%Qms`R z)mF7r?NtZWQFT(CRTtG&d8%%zyXv95l(*`sda2&3j~bzZ)JQc-1*;Ghsz$3ZYOD%V z;VME!s&Q((ic%BQL^VlGR#VheHBC)dAFCN^rkbT@t2t_}ny2Qg1!|%CL@iQ_)e`lo zTB??*Z})~WUCGqpi&RGZZ2YO~s+wyJGvyZS=yP&?Hw6|G{_Zna14 zRr}O_bwC|dhty$pL>*Pf)R*eGid84nNp(tnrB16e>T7jYom1ba^Xh`SsJ>N~RGhl3 zuBfZ(JN3P~rhZWI>bkn264Xs~OWjs?RHC}8?y39gfqJNZRFBkS^+Y{Y&s36nu9B6D zrOA|6`R7F)uRaWn-D(VAO zRaH~fmAmp#HB?PiOVw6&R9#h1)mIHvL)Az%R!vk>)l4;4EmTX@O0`yPR9n?fwO1Wf zN7YGnR$WwA<*B-ZN+CKI%i&SM^iQ@W^I~i_S6aPk`wLynfB*srAb`{>w+rPvIt5OS<9kGEemh6vk|=uZQD1G@K4`Vw-vR=?fgdbV_62)9=9i|mSx+RxU^=qEW753 ziL(fgaZ7RgG3tEM{l!i@9bDqOnmk`ThS610Lhe{!cTL%u%_Y8psr?O8UhPOPhf91l zQ-bBrJTCDSOgro&EehdwRLKmNU7UGT4~vc=_}*HTUxDVREiD zaG=jX({?k{#*D}8YDZX9F$LV)^Y?yQ|M1?u+^3tf`3+yWn9`W1q@=uTWY2*C-AcZoF?I#_*27b`=%}+%u~E@Iy~9f+<=0N^b|h-QbKc=MpY;sO z`dA~5W$}*p)O>b1f1uqVCh1F&C#9m3?yrcSp*tNvP8U76{#5rbvSxnkMWzDU=i?r4 zowo2^WT7*9O_=Rj_*j#Lhgj>n5n1hYIm7cqr*}#TW3s0`y)&6*t*%p< zoTI%%4w_}k8|{4~dp?uN+T^{(&ZPSp9TgW99~B#Ek$;hKFBd-0{R`h4zHgy%F5Du& zTlAivZX!Hxk#XUxYi@aQ1zpp7i*u?Qx)GpTcYHa&xa1e}8>=z8TQ69Cn%y(+J*~pO zZ`~rYmYsL_eq9t3ub-}%h*q}Vk)5pLBlOtA&qkd)mL=?pF`0LKX^jbs?a;ZCFA2)S|&jN0R#|0009ILKmY**5I_Kde};gs*8fkdyPEl*ad)|w2q5qm3b>u$nZ^|U z_*fP{yRfTn(Z{kh4oNooTa-GVaKk(Pn`G@*_-yAc9bWEOIHHwxd{wRq13JE#Mtg^!)qEpc=C|m&!79Fs#)QR|N-=ia z?H!+9=REg#PfQH5{6%o&FDHNR)QjC>&pNIhV(Ze$KYgEP`suvMRLJD09Y{}{s2wkd z+$`J26yHuj2Q2cN>FSGmXwTE}bu}XL#h$Ihvwoowi+btHLTl}Id(jr1YTIsnt@x(R z<3DsTnL_s3jgAhm{IOP&d4TPKwAFR7G1~;2g~pDt7a8Z{AEY;#4(&1K*QRxgkee2f z!>uD5*@Y)>Gxp*delYx$+sQ}wL!PD^@6jeG&3KPeFUE&ihMx*Q=ytO9qx++y!(#$Y zj_;fj{v^RR)6Ogr?kQnu8iX}V2|wswY0uzW?ZXp0bnf!v36E@LJ>Fwi$m1M?(}e7H z?i3zt>|Q#uk#)%RbRkc&56-g1c#zwSFQ?*`XEBX51(>^?{N-wqwQLhCLr?nKyH}5} zuWaZ4Amm_*&ZbYWaEnez`(ol(vx#hEJL+jlCX;DIVSU$$pbQHQyzvh9F>y8tnHCym zgI83#LF*Sc*gC$bZmxa!y>{W}^jxM( zu#Ko?TQAHb#bflLpa;L)!2a=Gj}7UUKUv1}*vUHNnN2{3kejxBGQ|I&8_}yFyptY6 z(xL0cpQof4yY_y0y#za5DbvpArZwVsy}VvT8vXp;Fs}M?&*33A?ZyY#Ce$47ZZ`61 zf$&<^{uy6Pvb$;gcukQ|IHH-^cz1JM;1p?Xeb+lnEmIm}NAD&4eEWL(^>PjL?Pt0* zx6|62Th`CJ^Sqe#+7lgb&Mnuo;N5WtoGlK{A8a+Hfw{YH*NV0K#_fF;U4Ej;J$Y#R zypgMlW-C&^(Wb9fuJrake!Kss#iyUI+FZ45{*>>h3`lv{<=E1oC+DgqKRFPT{IJQj zCP7cGUOKjP*YGFjol?G@pK?B^!lEa;sy+L-$+e)Ahe1jAOI|A(l$?-~bfns`OUVzu zzqBjqxzmw_DUUa&JidP^YJb?~m|gGM~|8u9qn z=4wfa3E#)fPukNZDe*|PqnWCe%(UxS@^+`73f1OZ8(S^;^5#p=M|^bWd{UyWdi&9? zl;=r_E1z7}L&;Pv>BiV6m*bi|JaT8m{i{idAEqQeyOi9g(&?p7E<0tL?G$x?kJE^U z373*?KYMa{=$4h2o?qK_G}EnniGz0~-L0_eVYOTL>OG!6sBM{qv(?U2+WypaQ{M>bnAC11u07xz0i zsXsMl%DCz?npx+HYHPcF=JG=e@`t)c_}N-~JZJbvmi+_!{xZfbng{4;6Q`6g`InSA6P1|+p+@| z7IlK-?nT^)JJqhG)0L?87xsP^IBK2Gp;;As%%6XxvUR$8nZKxIktWzK{pV$t-Hn^p zu%$=hfkiIKTLw3+o8)FH>>ht|M}CVPcM5d;*0-hQ{MfL}1C_uy{V$K}i{-V11YHD+bIW4T)t=;*(0tz*=fgXI-d&EPNdEwindX?pb_i4=dFx zIL{cDebwWVT93Dye|EP|?gbB}!KgWa+<%p2CD>F~Q&>w+_1xjA)Xo55oymiOP+dbFeI(-jT# z+T~kT`LTV&#trv+cm`Q!x6aqJ_tWM#nvL9lI(9|YQk$TEGlMS&_cZT9SI@%0V!uB&W!M|)ScNzbQ`|AXc36C>X zj$iR@tHX867TUU?ST1K~tv9V)*?orpl3H^P%yu4K zu<602PEKjM_4y{}=samhY_DlmVfn>AGaSpcEHZ54D2MtPI-Rr`VAZs4jhLLlW%FDp z8d%K3I%UI+NlyJgsp0DHpWED}W$+pMqgP@|4BVVIB(d7@h0PzgU9@TUXAb+nTfAZP z=A(I+=jprcz2`q`RdGnZiVLT?uFPA}BKNQ`yFM)+cik}6 zBh54qx8hY6Pw@0#W9Gg#WP-iN=)@D2cH4p-^5n@HwZ<&QYJbRz&^nY?hCm*zs?A=K2^&MF!SiS&N1RpJs*qbpJxs*cgmLO>8>K76E<781RQu0 zH+SvzfTgjv#jL9q&10MO!_kR%E%$Vp<1wJzm>NY#4_X$KP@?i#cgr+mR)qF!`?$4@ z-N}fDE_UAUf7|S809S!vh%1L+j@74O^b>Tw?CA9%8B>S9Ecsda(#ru{wMoN zZL=PdH6^l1`c(_Nlzh;oV90|U8PXkJ|G3|k8BH%-xjwPIXFHomYd161pit&k z*2l{?v$@)TaPLl`MfQ!!eavC#=JvNc)_p(cw_|GG2+OE9+jeFi%eOwXcAL7`cWuV< zmA{&?JvLWumntXn+cevk^LX{D&P5%Zs{}rGpW5>3)OIW0728}DE438_?XlGkbyFF1RSG$2lstn8Bdh+y<-CMg< zxm0{%?A~+pYtJ)%lf|QT(JCXH1|JOTbh5fvqRln4;*ExUlHU5!rxPz6Omk*Y!E&=| zUcGj_;pz=B`O|MKo%!6zGfi!Vep)Dh;bD8XB~8zewA`-q-s))%CFZ`pq>}Fii?pLB zw9Rrc!tVCtqhAeqFQn9xf~y*z>XL4fL)9KZnakFn{MqE(^Jlal9I|Thy2}?Qr7yiV z>9NbRDGQFa9i7-dTZ7Y!yUkteRK+Fe!uT3f&eZhTdV1(Ew;aXVSUPzPYCHSj`dnEH z#HJjJYc^%lQICutmVS`e*SyHEqg5L%-?-Yg>fS0r_j_Jg_k+35_XC%;t~k*8nQOKR zv#xzG@b<;EjRO*6yiXMzxFOq`o7*PVIJkJ?arfJ2uMU~A+v?WL_*E?|oxDv>N!zbY zwhtNKYF1SHinFY4waLD&MVBN~jrr?7j(Iqty`9I@8Hrx2T-=FeMv_`Nf;wp7eq*JWn!-RCnCTbM z-p?jDrtenSV_3rYl4YOIDCU{Cf7Pj=i2RKQ*S#EmcY(**(|zk%oEqD&-$$9p%%0vS z_ouO?tT$v!_-@jj<~1Jfb2`}C(e`=pJ*#R@y^h{*)w}SRjootZOI$N#eCfx{8a@qk z8F=s9`jyVTk_P3qEWEf|-SVMM%d71Ss+91);}?S$^w@L$bnDfhj>@w;XK;TDi>psh zIPPv)BG>ic(Jh|(eRJ{NuGulu0tJbQ`yHI@PL2tn0jr?v6!@rybL7^*0sD+#Hv# zLkrlJJm%g{zHe?s=i&=QH>0u}4C)Urj8rc+QN#4mGA^30XXG+__P8EKSdY77w{NI>vT)qww`fk=q__Xq{#C;!zVr zid&mEarAJE@vC5&W0d<<+iAP^)q3{vj+5&>JR@wEj`ZwsdfiO-$D8uzx}7rBA*S(| z`xzs;4slHH>c7mj%GE5B?Z<}XDdJMJtmm~(aS?Sw^PP-dJ}J6i@S>(DHos z<`$VY>|VQh&xWn(>cwx^+|062!4P}*o5wxNjR_oA)8(t4v7g)+btF&aii@2q9O^oy zLTkPJY>L*+_SnrlG=5iw3ug&JW735sPdJ)ooy{c_8hHgm)Y~=u$wh)4|N-zZ`H(5yN*RVZ!R+<{lX6m zXD%8%cILPReqq%UnlEgUlx>dB$Mx#Zs2N-FMuh#?g3TQ-_Uqwm?oeh|$Ix{%W84qc zJ9B^Xy(Vi1Ee&@nmhngnOUHD}KEGd2&qar#tf`=kT*&#vYTeb4de zhh(8s$&ck*cuFt#okj94Zgb2&B15NC|I3L=?;p3)pN0#LayuY`>)f?8i7S7x^tz=P;Fq<>? zQ`}k<`5>xs#X}1ggbsF_VYhK|$)*;W+@91pR&`jJHPgM;S#O&Yy}L?}hMqYq#8^+B zRqk-3t`0M^_9^dHc<9x--SdU**cq99Q{GXo&rgr(y6(qv)vp#cUw5m6$JhSO3p-oa zYia#u_C^(49^M#GDCAt&+cmBO_^5qb6osP3+^n9O6s?L zQp=*_)_l+?WlmGO8RmQ2R<<46*SpjjpT<|*C(kLY*HuI3r)T$ET2W+umruX>^xF0@ ztx88e3N92K;&-6TW%u-jPF|{ZCD!-C(XNiJmmj*1PwUimbf#8~!@aD>K4?-UA&>c~ zi*bz_H7{2D#{({wa~3Q~|9pLwU31;nhR!V0KhpY9(yBh++9ai$TjKQHNyBy|@3>UI z;-!<9eKHI>czKuoFrQhWH}-cRJe?`}|R7TiM$-4y@p}ufxEW z>FZ>%Z|Jz+Wy*}nHGOuBjftrpG{>ez(O|3DNi)5jo;59DJE(wf_2jdTbMnrv=~Cq6 zf}$>0e6xo%{UoN=jR5PR$u~>(oVc}l^1WtP>K}=VZIkBmPV3N&g$@=hf2yH*Sdrf6 z4mdY_So7S$oWXO0er&TLe~(<11LNMyS~0kHshC~Qmc75nZn8s;kFDIs94v6B$Hb;> zvwJ+w+WNdtrJx+4O&#;EUyyIm+0Ah-9WA|Mdt|ARt$(8(w&Qlsz1wxmx(~DO-dXMb z%613yR~(rmI8C3H*0<)~ws#!UA#uu;4a;JC7L09H!|sa~R%7#zUU@oZUbQ>L+7B$a zq>1D7W~BzyyIyhn#O{FybJw;W<>8R6pmnn}86LE~bfD|3C!J5njHq^f<*cvWP0c2{ z`|j$MwAuFZ=dI?w@!oG-R(x06*co*JOA$J5-wrOx)7kPhY1? z*B;a@(j(dNW1ID5#>D#u^{c&Qn|a`jg#q^YbNjEiACob2$j~c!&gCjPdXh&Thbuz@ z8crP?mA%cK>UR_RE?g9SE!@pLcFeU=H#d!|{zHdOQBR^K=jrfX`ZJlwEbDQxo|Qhm zwOuvdCfAR9Ljs;SyUiWBzf_fsyVtcZcz8myo-Xf|oSD+pa(?sz*N~+HyIN##((%@; z&zE)Xx4YVbq6_~Yd+!0))UqyohaMo3&_OAo3Ib9^nkXgGi-7drq}N1I0fi($3{9jd zHWa}QHb6xs^dema6%`N>1QEo7g7VEm_u1#{bMAY--}`>Q_ul*6$u_Gz^E}Ty^PgF> z7Fjd1E7aP3tZgxUjHDmrFs%0dC+uXkgsGcq95y~X&dnj@w8r zyB4ztd+AwYSAUFso7qsAERU~_ji>b{<@5UA;gTBRw_d3lM<5@p%YT=elojd8Be9O#3dwV)H=Acc0RG1h##gi*QCxquy%LQL? zy(K=XjuDRu=_1+AUqR0A8s0cYM1%dt!a+%GGp^B**LDYczj4T%!F?qvl8b5z8;u}m?0#7a`r>Xj{TGZkLuGAuXDIsuM%gTPtx9A9WeQ@4lm}rvl~^)7}yGa!l=*S znqZY)WEUB@bQ1f4X@42+`*XLnK#c>L;aVLdZ`NRQt4eVRTb8#{vcqxiH$}fFaQU?| z9gq~fBSO#-mddm|kMSP9JV{T-Fm#SLe3=kX-Z%EmNAI~fw)_(l?>YIC4Y`u(<3kGM z!OhPa?UcwY7gvl9*fcJy(@oI?iqMDezIR9oeUD@pUx!*27@x&>KRf+W*ovGjU5uwB z4)IJ2=(Ta4(X74@g}x+0HLRD|N|CH$k;5z{ms^%`5JUZ75i>!B)FLbJg7gdbaCV$ zx8^yS{?hY$o72`vw`ue@$=^=B@j2aMY4dfaz@Rz*7H4*Wa59@qNq^p^=$Q>|3`1?d zsSa=48Ou@@MdHNCO*xNvs$GRl+cU^f4C&O`Oh-!Z`f`l}gz2KAvRqyw+B?`Qg9?`| z+=GWVc#dSJn2zGG__*fSeY`JUw~QO?R_uRx&Vu6-|F@O!tnYWyj$aINPNZK6mwGrm z!aAlBj$h+#*dZ8bILH@ zeKWZIpIDsL;^WV4&XvwsFUb9Q>v2}$@^yD#8jJk6X5#=_MVs=^l5rQ8z!=}|=hV;H z_FoO3b}GG*4w#~p*Wiqu4qDoDjF6N`gc}c;gX6U^Z2YV$*6Sy5{-U1kI@Wun#FRI> zD3M*RYw^owC*Ui&?601ZGfho&qw4%r5@MkzN=19JlkPt&l+3>q5Hx4WE`Bhy+%t39 z-=KCMPxYfhqj=re9l^4kW__XoQpzzCg}TzO3!_XPc}1SkND#bnI%RJ`^tX%0oYaof zHeL&2H8T*NdS@xw22L zqIGGbw4;hlqtZh^#XYuO$`fE~RCCiqFF3NIr%uOYME3VLP}V8ZOxfyJ46omhc1Y31iuCrsmUHV{}mtHJX#Hcq;#{~4n%5Nvxr^4NN_Dfk%WaP81H-fC_CUGFkK zhr~ZVKF+m0&c~`QmZY~U$BLg_6YY|C>&pGxkMkJ|Su(B}>^Y^mUF)O*#0xKs>mOM7 zaWz3ZXfCm{ir-*5tUD7<5uT_Dsb{*wVv& z4(xWD?-UxhXWvZ@a=vyx=UmMOvR(LFW}P{`_`b4`oRCQ_@|&?djfCo_mbP(3waF`- z#_FSZjI-H0Ul#qTO+j-+kG^eo6Qz54QKg=HO7GX^37e#;Y#cp@IT@L{yyb~7_HxP2 z>z|X;q$_Tmlg_zW3_6wTo6e7nqOTh16i$W(^*Y%B-H10)Mq{*`iCo)_erTZ+%Hbu7 zMz#InS1>2T3wz{R*cIDNW+_)UlG``3?-;qAHm_7|zjb!^%K=+| z;&(?z#FaNp53h)og1p>r2yO2@7ZfZJ;wv6)`9Fo=x->3tJKAC>HcOTY;CmmsR35MalJk3d-PK z+4^o{u*lX9-)DqcLBZyVtK=!m{lpjmK-!^y`bdNLdxc&hJLoJF^nm}&D`4GxH~+Dv(de3@?OWt6g%6o6usBz z(ThCKq|(SacXo}+YX{2TPZT+@A!yFY3)p%_u}SRg1y0B`E>DTe)N#F4`}=Mr`S072SOE@BcL`&+a(EtrXmEfnbX4*s0; z6L@A9koNpTzLD1zDQPEmJ57v>=i~Egg9$;W8>fAT#0!HS4A3xnF}O23igd&_Nf-TPNCPW(wD5aoBCTf8JNQ3vD!NKdt9_efl&xFf-zKRF9xk!ol0$ zXTDHD2WZXz*@lNb{N<45JM!gyisQriruKf}SuNyUYfY4b)?YqQDuHb&@(@WR8n|+C z9C16VmvE*%;#{BpT5QLnYrf~*#~V{{GKSrmlDP{k($td@XE7&3q$v)O+rK=U7gHOm zxl{YIq4bo~ClNlIcUB7WZ)`z5S#m}nVsg1Rzib>9f*brOsCzt2Wl(&Lx~r#ZlG>e| zrBLS#jw2YJ1UcuYkyuuHpZ6g*H3WViW*w4IJ+GFTIuL%IP^0 zS)8qQY{PuVh+9j2gI*i2GAl(pJ?5;C#QWSN)t+Ua_m&{ZIdkFqZs(`#tn_piC60aB zOE62P3QYt(=5b)}xvmF(H4ko0tKh!kwOg&+0z0_pK<(hnJEBO?oYtl3k!>QKJd~$% z1zs=TGP&Kb9hI4AuFSZikx(d@KH{&bM9m$Sh}EvUa>%-KpKHaHBLX&}2A!7PM1@Vf zl$Q3 zCL_%mHF6+dT)}Ip52d@y3Jk~gHs#bX@)-k{nQB)LaixAyow>BT2$t(c26Lb#BS_SXnZR*k?&l`d1^KGtmj==5`Q@+qB^K!2Pg|kbKd|2a}1vhs5#9DBhf9n?6FFz&yiM8e2h0^fw zq|z`)6;w4lCCbgT>}J!%4}dP@@n!Aiq^jNz*R^g1aK`^&?mTZ^YSsIsejf~nyR#7_8TPJ_jpOIn-w(pa-^#OLs=YDDzO$`> z5q~AGz*qd!YuVQyvE-Pq1v0F+F>4RG`7LA@A&31X!?M1 zW!t3v;b$M3#uxaww|MPYG*wa+Ox>ng_o}qiQ#b6W(SCDR?~J?s{V4; z=(H>K!E#!AOet(84(pGLs@J~0Q~1p`{jCm3wn9DW^3O*ltuSQ-y+B6{U|WP?D%Pb%lG% zy071CEI$|JYpwpLY1$p`X8PDPdTISJLAx+G7KVO*KB?2E5jpj_%8#F}ii`1juCX zp4rSwCu+8d@-sDM203Kph;fqN(JOuZc;CG{##y_KU&t|QYJSXo-4KY+rZyt51-VjN0xH>tf1c zF|*XuJ%<_xI!2DTmG#=o9nV$Ry;k4bXYTAagU*l^H9a#8KJ!C6IaC89joY@rM^hBp zChur@WQ*JGX}&N!`9|H^^NdD@*ENj<@o*>An|>5do;94d(dZj@ZhqKtWuvo+*}`@q z&R{fn{tqEO%APS7TX|A>?^X1@E#JAUJ-w5ZHQHJh&ajSUGjf}AjtTp8J!`B@-7LTF z@wL)kpX_0u*xfJ2?)P0X5VqJLBDsOw6VhCa9jp`b1@fBR2kg5HZg0R%=JBi*;Lc7QHWjTajucdp6fo95z>t*W z6BN42*146^{?&sj^JBKKE9OtGh~EZkl!; z%$G8#m!$I#4tNK5>&?~UQ)T)Hj~UbM;rzn;%$ypys4srZ>!+w?h(EQ(?)BTMC(Q~5 z))d`*pRBpTZ%xBbhe;7K`-jMNTdr}QOvq0)0zc~XS9431SBVMkwzI*k?_Dob$VQGm zpm>CXeCOu~A<~XHC7{6{oBZlg(`n5k_x7u$%I_PSn`RJu!OuoFy_DX+HXdbJzV^D$ zcdqGzGRxD9lmiRCF@BDsb!Xn^Uy@gxiBAu?TUmcv-NCQ7xT&ff%Zz2J$7WI1u4d*dog&$}gp*&O85A(^lQVGY>p)HSEs8T_w4E$ZaSP z{5DUqB^ShGGNZ$JnUDVzCWzKmzc?aM`KI-GSxk~maz3rBJLz?W8iOe`M0aOgJ_8%3 z^5&gNXa8kY)*=-}{)-wH?ybwuJAe91m*=ZlWr3^PhKeOOM_Q-0ZqMV%4v~7ISjfvl zKKrH1AmuZSQ)$yZA;k#yHAgPu7oV$dq-R(S`0ZExP*}jYRFZWdB6(JfP;M?k27y0?)GagURdDp3bCY;PHBE zWm97}Ue{QZ-OWK}h`+v4L!WTu58wQ4v<>gRq+t@1*`C3~`o3;Uop?TD*R>N~k3%&1 zwMNe~A2}sbBW~orE*~c*$6NQqpkstv#$^*SvRvS;zP|*8y%!;X7 z;GD0&-m=~D059XPIG#Ro8goDGoZPaD$MRQ=;ynKZOT3y?2!CqF2)(##Io5}@PvA~J z(|yY>LX17TPfKswjp?WJ!R!O9<-@#osFBpue$qM$WYxfg_-iMB>SP~0c>iNeyy=Z+ zwYBvyyVHq6;-?;B=ma81tkJo_?K ztBaF{zpD~7N6n1dKin$0zKK;7+%DYL7r!dhShNflrG7QZ;M59{(61ADHz0^~Lyu-f zw@d`c?~y?#4Y(O<*edYdG?twN8LLe1Y*Gs&X_F*-`87Z!_EyoyEyf{+i+V7Zv zrP?3Q&Q6d$Iph-Pxq+*rrVMlcc;w7PST2KCo-gON%vCuV@P~nmW~btCB_&iO;UPCU zIjd&VR)Z3a#eHcvUO#e7;7AQ9ksDpCh}^W937frB1a*+%l<`@ht7;XIBBc@z>3lAG&4k zyGS8Ue{atJ0XQFPb^R^aE^t+K_+<9+aLUFhv<%S|zH4;xD4oBHZHdbHP zQV*Id=whZE)t9JQQ?gBVlI3C6o>I*Hn@2UAb@~+_8DzIq+Np+E__fLGQ?TAX#8m#$MEkA0K!{>%GI`{b?RR ze{;!03!~A(^Y%l#Dv;XP>~UJ{+iR6Bt?6}r6Xlru)o#pE5?iz_xHo5&L{tFeu{R29 z0}PUnTZ|eBY#^&f-QeQE7@eW+Ps=@#Eqp1min`5KYQwDd{i?0z1B@92GPC%(3H&v0>jC_1tGytrQ0 z!~#Y>+Su)LJda5Z45znW#&U8M=(RA3JA+A%2rum&sA(JBreJ;Jgt3nl zQRs_}Z9XF>oatg3OA$FfCqhNVMgJ-#Qsn9m;KuXD>4<5w3AVKyVZ|E!TJuqkE`w{q zD`mvF#)&i2j3i!d(GNiuVvKsy*5|u&fWg)t^IkLI0|GscQ+N!rxNFLsUCIw0uWxmB!*I=B+fh;^D)4-+8=AYUD~! z9HL~ue7~oyV7g;c+q?CS$wn6Q;aFwiV_pL9B%VpWxNe?%y>C31L*#bjZH+7a zBH9^s=emvs0UHj@@y%?^74BJ054PUy!_Z9D`WA*!mo&kPj{s3YhPqiyT9w}&j`LEO zFK=*bxkhWdq}Dxpd=8VWVDha>DaZe^DfQY>rQI)3)HwULeLpsbgTJc}E8p@oGAf_@ z;ldwy;9@#U!YJ61&I>6x@PT#Gsy(lT~P)jvl$1kD1QjB>ar5kakSCK5) zs=Uy+2K|sTPKJ7|hI@~i$apRd7bW^&9k@{#Wje8KRzCSG`KK(!E$-p2Em}D3`I^ngaZMS*A9#&%~nZO$-TfPXn zfSbEW4%=omku)1;g`4eySWixyL!48?cb_mB1kJICh@O0&F`|`IvZ){xmy)V)d(QZ} zp$#`^I}0Al9SI+54%df1o$0;$IP{~1UG_26p7E5?J66u@r(U}H?R$H*@=~+$-Ufd0 z8hZEzE1b{=&;#ryZ%@6af1jBeMY3V{3zfaDSHyi%XKqML1UxxMB@ZsowwTm$47?-6$7Ha{a5UpXO9P&6eR%RM%}$wUcT~-U$ zml2U~s1&^1KB>O5K}2vY&kxW0q4q2$8AnbmQ%da$uQ{X6e;T*uXzsA7yREC}GCKIg z`y*MV?3-`i%8Qe7U(-}CiEb>T6@v$*Zz@4DFL2faX3na%E>Umda~g9wx2p-@yf%XP zZ@6!;-Xq80^?0@<&-yA$Ku@;EaJdj z>xet(-GmwA8IAszyY4+6k{tNth_-4B2)PXxs-}d+%&|UKW;$|jzTy*?s^uwJ+9X$#kLQTZg zDslaShd^5ihogq^c*o9MKXYns zR&H7BU6(@~4<<&EH18#S|Mca{eC+b@jK#NbhLdqVXcUaA(-{!$*XD zbM?of4GAS_U)RUBE}&in@E$*scl(CY zJ2e$2rPQzez#V@=W;8#{9I2BXoQcYc)*4@8IKEV%SaV)jmXcat#9Yr@RHBSjJgpoK z{J8M+Yi(2#uNe0x;jr$SZvmRRbAhO?H|3yP*Z|rhie%*b~SL-|mv5dzJ z`1@B!H59ThS8b8Gep6P_ckPDln~vpl&0~^3JNn1WVZ3V%1NKYnM4I-#s+SIn<1do&=*;_0TvmG7E$duS zx^o`9T+}wcu2$^uMo#5hV(hMAb;;1n9TDo`EGP1f`5))5Gfj;(s>OEuKDk(>RxGj6 zdwjvpWn<5$F0(r_wZmtqx8)4^#Q3P*%!fU+&l~cGERSH~Sda1~ryU<}VDcMGEX&JO9>jqCrPmaAoX;UL_-`v=b_5OD3$*mowK^ajM>gi%dhJ(fKJ_4Z zb2MG$Gvn#RwXq<>ZabIYUJ{|#^xB3uxA(kIK8M>FD4m#ir(J1kWLV|BVeGme(X&9O zYESI5Q=4QfIfg6cR6KvWUIMTy;$DbF=u*l_tGbyN6bQ$zy$(msDJdUwS| zGc}!s_YGS5!nbm-YMOk^yOq#ud-L&Z6gOV%W24mEqV0 zeBR@kFUd}9E$1^{>+mo(af7*T;i8$`t=ogbH>7?}$mKNSz=j#6&TidVlH}$dV0_?7 z-igFBuVwqL>exzW_hlKe9AU$|;F_#944oA?MD!ja)Fr-qha2N)u>*$X_HH@j~VDx3}h`V@#Ht zoG@0H;5Ronst=1|T6jl~@p$(N#*3CEeU6p1c3t0_`AH$~S}v#Th+Olfjqg*FxP{9+ zi~EmgG0K|omS#g*1N&zu1lS{6Ml@^v4Q;KztuvWE5v}GWQAOrE3#&kP=ddN~bB$Y!uw(WqHL~~U}W>cvjr-hB)(jH&; zR$(dg@;GCXeIRb*GY@ot$Kb&xT=F4i@(#A8mz|uTU&muQgo7W)vQ`e7+61Zbp>bmx z9z$!otz|8>UIwHGojbao2gg;ERW##MOS2Ri;LkNa$|ycev^{L=J9h(XQds`8s;R*R z!%*7ipUbe{&qyFFFF(39*QCSC%75soYXflY+GV;jhtwstk2YN>iRdH`xIV?_Pew8Z0_c(%&E+jiEZMT!QCRp zm9M4ALWjs+XBqLt7#ceE9LInw=aZtEG>!#*n>sK1UG9^~EtyhI9@ZGZ*MnDWf2DmgY5ZQ>&* z*Xl}mer-1FcMWP^d%S2TY3_@kb(SNx$i!+;`m4as4+}1@5Mdbo7JZF#jN-Ec{`;nXzP(ncUfi?XKAyX~I(dUOY5sM~ z8J=L3ZUZIFDdY1eI8Fow4jRwDSQ^Yry6vkW)8Vdxw{4oK-S(dH9jj+ zPIe65{Ec{GY1hY+gOW6j#f{P#uNyLp?BWvEi|x_3PBeKUR~Re)yi&z)O?Tc8=fr)J zWd$#T`BOs$FEyP1asB=0_vhqh=@&Et@3V=DIc&XfnD-OQqj-_t1MCX-=-(>NV4f{^ zetKotmiCEsfNvl73F2@`8QIxTrtoEg%goT+^`^NB4qK7QNDFqy1hehShuu`k8{2%( z^t#<g#Rmc*$(67o1z(PD=eG7!@}@ z&R*=5@a@j5;x=jXmGKazl-f3m-o(up?0hIM?pbmqFZ#+*&%{zhfSOKqVzTU3>EpGm zLRF9AWcAMPZkJBAdr`;^(PuS?-@o=Ysrw%fH1N zzuL+QaK3y?aTc0}^oOoSenq1avc<#eKbQJ3Io$`46?c1gndD{0i^ zuo*RX9*QZmN`Z^W29D3==qt80DNz-rUb8(j_?jyw9Fg z6%=ja!6)4|FMg4~_2^Bs;JX-Y7L0r?7@b_9+2ZKWy8h$NvLk15%$J)J){>)?t*R>| z8a5nR_I*&C*5vys92WTLv|JpX$@ED%bZd-Hc;@6ZM`|stGlD;!}K9 z(V4ILvm=~TTt|P3!Qv@{S6xRGspRUU*@-&o{Kz4RpXYnaU*0&_mlKuq!ctZ?{^`uN zM>@V!`g?8k`XwaRvp=n@#y5bK7b+iP2mC|!Q~eHpo;4X>FLrNPYI@|!tF3oiMs`>Z z8G3t)nFO!lpZxtam$o1?cL!u`&~=9KFJ23#qgA>OMOv5ch{aFmxx-6 zbI0?yvJ_Ok5GLycUAu7h)t*PE4aEE~4WbJ^s!#NVM3uz~YxbMzRTf^Lywa)Gj zEu(MONx4L%=hN~JU$-Kt4>G!3w2uxyjhJ3EG3*u;7s%_X8Ae<2Vs8Hk(xvuHbU0x@ z<;(5ZuVk=Q>z;TF-UYM~s+y(Zb| z<-s<^4}PWVX?krr7q@xpe!I11O=i8O(VEU^^*q&=iKCAio4pwh2^5_6(pX2ah+nRS z$fmmtg4WFm+3KAfGUSG4 z^H~>GcIMz0D7l+lJ zJiWDwudMGUL!Lc$iDbbc*KPggmesmb%e4kBW-)z?yNwJd34t@`WhpuS_Q!n09z2p$ z<3i&Q6%k}tVfuD5VUAPuAzGFyTAK5iYwvtEcaGr0mUK;p#~gh{#|-(uaO|zb z>Goc?Q3*WT;nL6Gnst0L?xJnFW8s9=8-{pMTAeG`H=Yx*gAaXeh#8TU*og=3)bGAi ziMR9I4TryKRf{vcF{!vimR}Rt&&`h=n#3t#cbFEw43See%V<6;C$5ZbFAJOKc;Vg6 zrRQ2|xmNxuY3iJWN=?WXZw|SXYe7jKT%V_m=BHJ&gm<9{sY3~|yHCv-PZ+)&I(M>V zcdh>gts7s*nh6(GN9jsFi*bwj_l`;y>s>@;rZ!stcs5GQ;}P;8+DFeEX(sC@#%>nB z3_w0Jy?0_sO?&Wsr%%E*d5MyJH$yx|Dp>Nh>{;ThLGGYu|-@oj2*cv6dS(e}tSLU3+rFJNz9dKdw&$ z>cw9ih8j-m7Bei9dXHWHL3-T|tT@I-{dW=ENAVJLm!xsHcTf3N?+Dg&aaAAR$mNxCMLM;ltZHvv!nKe2M9XO|iuv(FW@A>3@%?WX zy`#$$N|b7;TWA|YpZ^HGN*;Gg{}S-#L5xwPz>BPVEXC$S%HGfBF`sVF^#H;-E7GsRQ_3Pd?6@86$(Qh;@ zy7NV-XnF+qwt4@wG-dHj;MRLY_d5%FO2BVKgV)6|!L-;!3CTxCjWXBnbP-!$%?XB! zs~?#-a`_&?S8d%c#Yk-Rz=qSeuQ(bNFz9ZZ#m7H<*g&~jPBND%;kwZ=(j1YaStvR# zsHRFun(cQw*R4Rdi$tG`lxYc{dAZd!6=S0#WSil1z4@yWSy=O?O2pEB_r%yCXZ)52O9=@;0+0YC00}?>kN_kA2|xmn!2gOs zGx-01As@`I9o#|!kN_kA2|xmn03-kjKmw2eBmfCO0+0YC00}?>kN_kA2|xmn03-kj zKmw2eBmfCO0+0YC00}?>kN_kA2|xmn03-kjKmw2eBmfCO0+0YC00}?>kN_kA2|xmn z03-kjKmw2eBmfCO0+7Ie0)aOID3m(LSMEO{ZkN_kA2|xmn03-kjKmw2e zBmfEg-yv`pWFz)}Co7l>BmfCO0+0YC00}?>kN_kA2|xmn03-kj{3j831J?gn26?0Z zlk$hzLIRKgBmfCO0+0YC00}?>kN_kA2|xmn03-kjKmw2eBmfCO0+0YC00}?>kN_kA z2|xmn03-kjKmw2eBmfCO0+0YC00}?>kN_kA2|xmnz`rMetp6ti)YkrcRj2_8Kmw2e zBmfCO0+0YC00}?>kN_kA2|xmn03-kjKmw2eBmfCO0+0YC00}?>kN_kA2|xn>MF|`r zSZ`-yV)|Qj%qSKVa@L#5iq-;qHNIa-S|~h7Q9$8PYgW@&r3YEjDDX{ZL!po__=f@t ztLdk~$>{=CH1d@LV&u#IJAKC+Vjyz(*AE8}u!3)vwJa-nd~PLnc_;17j+7Z$Ae=_k zqN%KCnyD;nE2}IL;basu3e{>Vi(X*?Ce%+$D=WWK5xshe+;I>0pDcUJZ&;kELu|Sy}m0KMy3*2#e&T#TC-pTD8A~Rs;f{!UBVoq(uZJ zP%-_B3K3D6`MI(JT%fR&F>q8H@)sR@M5hg;&{vC@(u7cS^UCsDZgi{#X(+m>@4 zkCl}$R2a&BQV=lA1ucj?gKH%$16|ZKnoK}5kqOJ7Lebc26s4XtOD8P1Hv%m>0fVi^ z0eJ?pSxv+i)c?}QFagb%UWgibMg(ZmK&_tv?m>e?Bd4HM0wY9<)Wxbl@(kr-UVY?l8B5I7_!;ZUTFf4H*!!#k0S z9EoFEP5ig{bpF4{XSIZcPe7AKSSBZ-Q6zg1R0~QCY{~UZEue-#nF%w~j`W?N1k1F( zI|$vc^R!;jtm%YBY;`Vj-Gi$p14kx+%jYj@h}UHliGf^JznlSbNX-MMbi&LkKNs>0 zrj_ssaSQ^v4PdX(2y?Z_`7%9e?&DQj+t*%jse*qX(`jXpEeld_AlF4&1Itb%_f-KZ zgZbBC2B`f{OytN#Q2UFzginbNfn#zL#>cA>h0@ejw{tYaqvC@60`b9d(UJJ@puPUl zesSQ;FEk=3kP8)*5K2TvMdRa10U`K+=*URFC?Ex&n7HU&aek3_Vo+RUXp|o@C=lNwGn%6U@I+^^BxpAhp$VCXs+b=*o=1WBlA z#Xq%X{!XhHXn|qNh=D%vK_)CRfwB9oz#_T3h49j%h49KIxRo%%fdbnxc4Rv&#+*eM z{-ZpIr3g#vdl)t(|LNoxWi-=!j zwg3|1O`!E}d}jUWQ|(WmJ)jnnyOBx&UM>R_P*=bw@IORu()u+iVRdZ1Yb#+=0VxGx z21y5XgX~%eJ!&n4ZZ#0pBP>Gi2^J)cAW6s=b>Pz&`201a0<{+d5UhZt$;SWzGEg0) zORuJ{jylKE0+Cw(t#b|NOgXMLgK@+kwwlmmz(w4MR5ViTEJDw(ie5zAR08c^b4pMo zZV(k0h!fEQR^9(-)&0wA8L`^?k5=8lYVNlc$cqFf03g;_3NkHZHGe!2jAKXQAmLWi z@Wj|(I>gXlav~?P&mi2NW^Ezd$Agpm8HE1dI!Ib~2H^pc_5ewHkUXX za?;#tQa4CiEotBHq;54bVFXM_m;sYh&aV2H14l>yoEm{#f!o%wp(i_$Mgpe6{B7O> zx)hOvc?W+^dl2|z!h<}Jf$*_42a&5k7+mzo>;oWSL(Y*22?EI6j+CV3)dtu1yA}O0 zqX10ZK&ln#nEoj3@8*L{eEB_TLjbgx3}hAp@VEF!#(YTmz?=dwv4Jp?!Tf6i$+A8H zmpJj;3#A{ylABS{P~Zh}r7=gJm$$1F>D5O@!Evu1;oXZ_K3&B4y6NFe4L8 zoLwC0;v%3t}?G0{CR(|0|5yuBLfpwug}R59Rm^(w=GJhHsz!f-1jwBw`!Fa)z8 z$creFU2uwiFGsw2a4V7v@V)9S3^z$cDzS+b=n$3c!*GuFlkC5&+)I&AX~r0uAaa1M zVeT6_WXU|K2$H8cYQc78nr*e5Ad*#9Aa9WEBo=97zdTB1t=j4`6FKO7Sq_-#&vbJP zjmv)0{8z63p&!7UF^RLEYy{Q!+t*H73y{jKfDXWZ^3tF3Ewt8P`gTwpGgh!?2YYs~ zM}s{Y?76_63tPj{H-fFUW5HJYFn=-QV!~Q?PWpim{&oK38D>zFFlJDgtfZeVlb^x7 zqu&_iur-9A_LInM?{`@IVK{rF)V+UGBK}J_j=>=MKdYZBSeJ#!iB#mgdi^vrZO8+( zmfYO`U(erK`3mQ6fe!XRnkV*e=5NIj13;^TA4mWafCL}`NB|Om1Rw!O01|)%AOT1K z5`Y9C0Z0H6fCM0c|M3L=qxb)9lwa@vn}mKL`d_{Omj+9BAz$#4^>6S0w}JC*#jI%L zD+k1C;0s<~ucrU+tpB(A#tytl&7v+M3;lujkk`ShLux%ywicECkLv>30=2(e+YebR z5G=)qm>H;(w$zILMO_k6HFu!?1Q70dE(EX%7{mj5-D zW5D=dU?C&of5sAli2oVOPDK3ASPX&q|Nrj|Tfy}L*M0ooeQ&sWssDem?jzFQgW(SU zZPtAZh$ck@;-jL8_|=sk{o;0!B7>rcTqujEcp_MvF*IryK0b6;lwSls1g!TM5fm5C zg)$FS#_tL7Bd(9f?~NwK;iLQ_gSO&PCVo-tfBQis|G13gMqm~c5fQD7M}Y+-1A^j# zA7o`oQd|(S{G(&gu3$e>1o1DK;R8SnL4nGvVp60Y9;L>GQs+WxaG^B0P@z$~{USoa zB9!)Vz#ksO9TbNrMuWvEqllqVq@ax(L9UMf5Ira+krWpNip7O8itvkz{I?k*_XhZZ z1Rw!O01|)%AOT1K5`Y9C0Z0H6fCL}`NB|Om1Rw!O01|)%AOT1K5`Y9C0Z0H6fCL}` zNB|Om1Rw!O01|)%AOT1K5`Y9C0Z0H6_&+6}rmmr>wMl!kj;@ihi78>bnYo3fm9>qn zo&636N2i_6F0O9w|EGCCdq@BhfCL}`NB|Om1Rw!O01|)%AOT1K5`Y9C0Z0H6fCL}` zNB|Om1R#O`J_I~f|Mh=d_&-0<$YJy!lD{4NQuy<9RSoE^D*Av_RW5v@r|L#eJl+%U zsfuh@MO*NAAH!7{(D6(JN~)fS01pmUH(V-z``92ys~hA1Sttp9AOT1K5`Y9C0Z0H6 zfCL}`NB|Om1Rw!O01|)%AOT1K5`Y9C0Z0H6fCL}`NB|Om1Rw!O01|)%AOT1K68LXI z0M76KZ&Fb(Oh^C{fCL}`NB|Om1Rw!O01|)%AOT1K5`Y9C0Z0H6fCL}`NB|Om1Rw!O z01|)%Ac6nV1mOGk|I*b1gM$Ph0Z0H6fCL}`NB|Om1Rw!O01|)%AOT1K5`Y9C0Z0H6 zfCL}`NB|Om1Rw!O01|)%AOT1K5`Y9C0Z0H6fCL}`NB|Om1Rw!O01|)%AOT1K5`Y9C z0Z0H6fCL}`NB|Om1Rw!O01|)%AOT3=e>?%WKF0s}CIA6I0+0YC00}?>kN_kA2|xmn z03-kjKmw2eBmfCO0+0YC00}?>kN_kA2|xmn03-kj{1+f_@H>elPG`^Znk2Wd+J})G zC(ry?S!qF`94F~3D=XwC9Nh+eh?mk&x{(#M=;7_vxRdsVJcFhS;{_ zdwYivX9E;!GWnNHJE8>)>AbXF#-zxW6;M(VTWK9I@k$v3I;gWa#N3FLCb$R=8cXNE z_LmK{p1u>4fYxVg1EOTEQe<})Nv8HEU{}wS*pO4*hGYy~5J^=MM9yiwEUR*Twuj&> z8Pm#!M92ejo>nLo0Egs7Cem*yFCyg&uNR^1#L#TeUi6Gf5dF%imwJ6;I2)oYf&`N> z2c*`0ywqbK1?M}Q8tu8o`|fU0Ez-muwK%)sYw|AL5rUz*M26bVS_ z1hg)j2rwXOI68*(f&=@>L>vgH2}i9bb4}EzMHF+FpeA#B#i?X zbenOy7v|{Kq;bVQ#Q~bl46qs)(-%iF&&tqopV^qdQc)dL4fv*X)%k)zCtIA z56tS5W|Fa4>4*-f9~xnfPMF!TBLo!#O5?Cvs1*`A3^ln4uq8L)sr5wHEhymU&!YVS z9|?Wh2>3f7WpBUgzx{SI%Mowgb7x=fN!>kpq$~&}Oks7Fz}FXwQat1yO+QuFs8o?%i~{#MJKI7oKXC!PZCIGp_2qk6+l=Zc6YisQXh&-x(nDG8i>@v z(S`OElvMH6N-t9NE6JNdoot&HCeN@sgrV%ST$xt-XhR@LX$xXW7hK)0LHy|s?s@9y z0+d$zK>7{Hw-a7yh@&<=K9Bn8pgS5S0zx-E_l zE=E>TfO`L-lm?Jyz(zzHV2P{-RFX2tgYJx`qgYZ}KnjhS?#xQoLyB4R}~$#&3=V6J}JN2gpkT|pc6*O z9V;n1E(GUP;_sde;W(|6<<3OkIYJu(U}!DannQ8cAGph#6c`J59(fIC29{ zw=?m>pS3|-ltTe7TaXP=g7!US4D@m+&^>`IF$9E4N68__x(!74Usk{)D$AyKG7PlZ zX>+>GFt)m$F@k2iMq{gaIeTeLAV_+?S}{-q#i8MTo#wBe&VW+q|y zv!A@f^}7cr@~YSW3Lfe9rzXH=)%MSx?<~@tmm=La_4(N*up{xNY(WA*YL|qax{74K znkgb^W&0y(+8A5iOruVMXlQMWNgR30YKS!IIFJzKsLx4K^a3PS-40?Ta;L@py3=xF zt6TI}&4|wS_F2?rpaOP_zjmK~?dFhO2og;QQo0btb;xSYw-A>rn~?HP>VQLXlNx;u zl0vP=Qo}&fG}|g$y4UjRjh;Ls06PBDKUY?MpQ0xxfEH*{O0BCmQ&2qAir_f7nVJ(t z5Ln0^7F=4Os7NQZdN;=WeIK>z2V6O<;GWXDdRIqWOjdkdS#hJ*(;AUm2@)RiTrsUb znGSL*MLdBlxen^95*5gcyd;@FTU6`nGXc;#fTZ&LNrZ#;x1Zy16AMHW} z33CH*M(bT63COL0oEhIa9qqGNxmZ@4mi=$qM?nEW&$*gIZZ7f&LO^?+6$8$Yrw@=J zE+h~HGb#LKWu=u>R#+Mw_XF;$(GjDO`xYyxMbtqAtt>D*t`0O#0d1f`-hwz<`IP`7 z0xb`O6hirb*!vd1D5`V+*N~`?)xY`=i_S(m-dP`%VikpNcQSmksZ1Hh5BD51X7bB*yg_QmOzB4nM z%_bmPuU7pQ&g9H@zVn@Pe&;#!edi1bZ1@{$b^Pqv%c4uAQrs^`6s_LqFk_az;UA1F zQuL+LeKgP;#U0V8@d08P%it4vwH8Mst~#EAxvK-rWpCVjMP(Y@F7k|N&Z^&#q}8KF z^Jhmd_ke0VV`p71{RuE}jG#zu{|>J{a4ZH1a@rEXASv2hOKb3+=*U0o1?>}u zP6CS@oD23w7y0R@jmU=2iqD-!Mh{a2r9k z@m&d%mbUkYNB*vjAfBbtVY;}fuv%^MKnb*2MoM>v4^m=>#=Nc%6!M#2iRdL1NBw(p zKrY$m@F&+soTH*LYCcu{yEEV#MKi=imluNM;8w)ONWKBf+~FXsm(3=LEJW89GyP~yRa|1N9Q@AAH^PwG zfw5HE+r4VoL3yT0t}+A3n-xJFt-IS+QG;kyb^*I+qtc9P6iZ&3HT;9o0OcK_JfrFZ zyAhwS{v}P+v|OrToVL3pyi(gexJDH>Iz`D9o12xyo9)Bo>28tIVPXBS_&w5yF%Gha#RlZp2#k*^PjEm zyIQWU)0ACzg$6d1NQcmT}EC4{BsO$=;YSAt%-|j``DIg00Wy=Y?++CTw@5iQ+kakXTt5l`Slx%%~qi<$#xW1=IOXg$VQba8V4EPVvEXknZg4X0eA zM&15#@{XLzdjMvh(eS?D1ilYYpsk~*`%Vh-b&xRb$RWw-obfw-0 zd|mQ0A#_xwxoQ~kJfrNWqQT3j7d80Gq7-}t!GS&6=%OJN zLodd@H_?}H6G11aq5&p6t?UiC^bACpd;}e=(M3eG>ga|u%xD>XlKle?*i zWe$~M_(Yrdp0-!}prtjdPA=O4Hs8jg?@38=*?&>`Vj3FrLCd>Yiyo89ej-Rz9QE%> z@}|wWm7f&j|8|;0v=*)DhewW0bP=${fuPcnx6Fx$qRR3F(Aj=BwSG6f4~A)ZE~wGy8Aa})dfx$-M7(2GnNEN zVJ{Xm!||X%X+<3J{g0yM;$Z<;1`f1s?yDK=MQ%Od(ITax#_2;)AW7CH0bTUPc}BnY z>=wC2d1zx45C2keYDv*U7?#5D&t7)HGAX#|@qFWGJ286l=Ph+yCrJ&;&b9#*R4z{N;L)P|U^8>c&wnAAAkjq>478dZDabPqr&4rii8{Z_6n_%E$V zedp>?A#enp_h~7Rw^h5|P2A`i+H|M`#X z8K~e!R+NxVkTi-sSbHpJn-TkFsZhSf&S!z&jpg3$>ReqK=7pNClxPw@@P{xmf-6^}@H zTA&>x#9tbe1CsIVU#-IVm+SdM4%a0Gmgv)*>b~RhlgaXv)7)DA5N(<#FApyQhRw~V zw*eUDzYWyGSz1Tt?jvj5+AH+OiHA__Pk8p5IJkyZ>}y8kQAiAOX!aul2-Y=`ToUs6nZc7-nqsbSb5jVRqIxc zlN`yee*I5N8#LsMVZ+Zw1@`f~6*FY!m3Z*D46hl+_rZ`rq9+P!3xGoW5`y`b5%^Le zFnjKfgf;G zZ&Fg`*S5MGO3JP0((9<&%xLD}O>cC4_|x-t3>j(MDlHaeD4P^j-*>l-i|#mMq;Z{e z(|gkSlC6*e-E2PQ?ej%J27?cLP8DRhTVyQC`}v+;8s=i#cgAG@P`Xat0p2m6f0 zNa*=&C?vKGpNL1;zh{KHKK!Ne17zBG5J8=7N0DDWC*55|?+>+lAN)>Vl@m8;6OQ`I zVTh)ww1lh}ngKcb%yf@23%5S)UstPu?0^woId1icr4 z^kHUtt;a=r4}gMf30SP;j``?q&)j@nN%Lt92&y&EyJ{;6JU+a!G%8SbZSSVnULIV& zkD~dE%Rni|Dnh)-&!0CJ5zGHjp$rSPCi!ZOr1IK|zz{RGx1!Kpp$zwFjm9)YqK>sA zS<)ge4_=d2{%&UI<-ymh$0ffrF@wkX*#hORa{shWa_sfGz_XqkNuDv>twDs2V zcYVgaAP1MHyURPWp;XiQWroU|(y!KwhG_jlZ7Jou$_>yxg1%SeB41yKiY!O8l4A~^ z-}Uk!U)Z^|{ND|zvH7lu zfR{?d^@JDEEq?SzbO^9~&-(jgS|8B8BwZv8Ljw};ztr~ec#69b0O8dfts$yP(ejKL zAn2lHYeU}zp{g90N;kS))n54K-x$P#Znp7#ymS=L*nyP8N>>uS;k*^WluS6ak~&5e z-5ad~Bg)9YwSYtmY+CMmTUU718YKEYfr_i%W=I-f7 zKE&(O+Q9DM%~9>|VZ3`8TrnkDo_t;TEWBZ!l2yO%e{a${?Byt4ZmMnl)xV#)Zm@XH z*iMCNY5m1ufEGx~+`UL^w)MPZOiPPH_@=J@L z_Ny<*+>LI6(&y^|H{N%J`&Bs4E_YrwHS5Lof3tc6Izzydk0mu0xo(4ArrdZ79>Kg> z0r#3z?KPl>nIn8U7PCSBxl!%4;QC?Fe|-4UE;Aj+S)q~QeUrVgrGAOTguuDR*C6gD z?a+H6)W+2B*w`_T1wi?}Q%!s_O|bp0e!olMtHuIneTdg}V$=}Xt&ovnWtRYqFT zxNP;I>z@HEzyw`CCGp90{S;FlDy{=b-U)R5m!3@5Pt61icU#wQ-hNqi{Zu+z*H3|7UdlHjW=(*KgOx$J6ywEc$&Wx_+8=gsy)GJoIaHc`To$>(4-TvRpJ0H@aG_ ztO;E|4GDS1(SFtlZtD6e^WD0Bii@|*5J-c16$z=N;TyXC{rE$=e#!vC`qK5=LA`bT zB8#7A^8>H7;y@#0-GPxECzb7Sq;;R`vAjY3oDT6HmgHtq;YewOPEakC2C$u;U``Zd)G; zpbQ9GAN%1z*!ob2cs%H~_3?mYs=80v)`x~w)7FRNoz&K+6$~(>5oq^q>oW-)F$3qq^Ib=g z=d|MfcxrAG(30J>{YJtAJvVe!#U9;RHae6dwUM%0A2AC#kvTF|A)yv;`h$0Nk0BdG+NJa}nkn;`uR(!>+5Fw~iWY-2!CU@H%W?JifMQu6;SNF0bO-d%^{d_b2r7N}OxXVDL&w8=r1_g8_XdY2T`*!M z?z9eL6N-gbISuzLfGO0G-4_%XV_LF~!NBU62{Md~1MW(y{g%Jv&z@UF4;IGP@w^W# z$lzxLbu^g$G`c8+ey|OYt+y+3={EsK7?ur$hvbJHOb4+5fw-b#7eLA63}PS~2(eo6 zpQR5a4>Zuw*yAC5tsB~BES>`6)ydRP&Rcu&QVAtkN;L$3wmSB?#9z zR8l)uLmuRUYP^buF7d9dZ3D!Tty8YMB#UgFCQ}@k0{0Y`4RJ0lcYk=0IlK}mZBs;4 z82s-yEuF&MmQEMi`6BzJu&{L64@)Pje#0s9GxZKw<>q!w97yS{KC?mz>jnEw;iRH3 zPiotTKb6#wk2GHZowU*}m#HA>1F1#BK&<7Mw%0fafJFP8ryd(nJk$&fPIKs@9BAc@ ztNT@oMt+u%)!ob^FwVQcMa|r7$*^Wjk@A+I9nUpZW7K2I-Qk(& z3hH)Zm-HVw@kcHli*}rsr!~9WB!pf8Ue|3QBqLBqS1j01rQAjl%ah37=a=Xw-A2Q) zcdg4$W-IZAurWY8mOsK)Vw=c74_k@T?705|wi0K@vKMD7u_A2a{&8(3j@mJ`kF=He zV;t*eX)Ce$J-e@dHntM;MS6YNO8D0N-`Pr_i}dw-5G#VKU>A}5bxHc2WgjvAB$_^2 zg<*IR(9dmeSXcQOPZjM56dA8c zzRI-qK35d8Ka`LIv_Je_N+NxuuhO&LI7fOA+SMIek@2*&BU0qk$5tSoP|}Bw?|7_8 zTj+eSUR#&~qXKuq+==6!E?VoV0JX5Yz9HqeMF@bt(usG~_2v7HpZ41#fBIv;EvmTi@uEpd>zrF1 z;r^47*9~lLFWDoNU-)!UIRbo(!@G7oSY(_ol{XuMAhE45YMB81+8qjX*86Vt)rN*` zgPCxe@TP5ZN@17p)@{%p*M^+FymWa|>KdmrBb?;C(u(Puzwce&;`&631FvavK-LDP z4U{+I9!WbK#2S{Sw)kH(kq{sFvHiXE|NUA2&-#DX|HpcgnBo4F^#5s|e?9#_6zpPq zWBAMp$5qKiE<9+52W{vl9%RD(r%m~0+3vuB%#djiLaJgm7x=Wy1qOYF<^tuPj=6x? z*VgN7fH(2v%k}~QAkGG%z?~mgUwAv|3*RSw;q|t@aGv(Zxmp9XH6GJaj*c06wxuj|uQ(%t1{0w-om}>U zcxc!#Uc(;Tj`G@;qfZZT92#BQvJX-5`X0Map>s$c+KL$S@^Fp->7R@Z;+TTi8`YR5 z5~jcEWKsl3{%;8#oTcZ`>a<22LxoOS8yyhNtD#MYIG>|910&X=EmvFgnDphqYy};jmp+X z%Ax5S2vuq}4s3!h0tyJyt18b@IQF>*T;Y9D!)vry}azlDH?0$E)6+zx(Cwm+EQmn%(yvyt95dMDhdw9=oFdqz6e zeZB3k@XOUNVW;fc3w#^bpLTp=X5j4Ll;emE)trA&$@-M&xWItmlz-qhoUG-x%GLF9 z_3klskQe;++m5E-{E>(29sZQy{PTm~eydTbAw(LKxBIsxL3YW%B|8G^e0s8P^7Xm? z3)i`Qlcy;GUwDCU^6c4u+~v&=%ny$&`L`tJ+PsQ7`6gGWS%#m=hlci(Wf}| z8$J5HLqxqSm3{!0CQ~iCv7YW=U2YjO69VBh3ks3s-%yLX@@$sUit}dB8IXhG)hlO{ zu4}Gwb4=a05PLYY3Z4zj!5LssCQj?&+=^wGQAK@0pPDMvm*x}xRcIq}wZl=XiMCgfR=Qg*+X=}yZein!5H&WnD1?(M z*2PjIRbsb>&9Zmzwv&s~BYy})Ej=>cd<5?LJ-q<6nlgHhfDHP^AJ__6|FtEPB?LGE z6Y`e1mi{kBu%!;%8?$Z2UtnZq9the9QuuXu#cthe*o{L8yn!EOhRlOl?D6E&(f=7S z1zT*d^uLn+@7h@QSpWBbvse0r`oBBZtjfCLij4m|9pJQ_j0{Zr@juf4m0cl8d!X}M z4jte}{aF9^Q3!pp!g>EM@BfY8|J(0hNB>95uWiGpe6sz&h-UBqed=ngVtN0s*gfp6 z;Qha!;r?H=;GX+`L8vOn#oGT1pS}P0f-^0{`+v>bFYEqaDxIy*BR}b(u(`*NqhI)}?@xHvw~gb+ z*XP-_@$vTmQY`v?Hv506Z_!!bL*Stw_WxQwYyU6JP+2Y-iLw7TTkuHc{$JeW8TZ>3 z8Rq_9%6#|!Uy6(UzYs`+dKC$&>;ebv|HU7%|JMxcbN{au)W`l`%HpTG{};JgN~K#$ zrC&OXQnvJYRED_ye+c;``~PS%rC)StDSX!cKO#CnjGK+c{y)(Idhh>3()8=O|Btd4 z1=T+5o8l(!{}b}SgZ+O9MNQaeeNzBsKVh>-S_^#XOVtv|KD)joZ9|BCj|H0|3`xGYM%n=XYT)-L;_D~{~tv^ z@&3PBoIV64)m)s^l&`hW3Fv{etd`=`_0Fu?HFW0B2uH^b!u<53AiD)QDf6&;*r6T5 z@y6nSA#5(o1_u^`fm9sm<_bLxJ(!z(q>3^R%Lxzi9g#|+zr}%36~oHUzIH0KPGv6y z-ZL!;H@1^T2&YtEU3^urY(A;@uNwWUM&obK42VzajHh4|mcY3ahh9Z7gHKAh?znF+-~l+na)DF28T!~zKvk5E z1A-7F?Rw;B(japOw)%tL8>G=op9=3fJ1!|CiH$|grS)*F z*YDKoGDCTW6J?QixK2kD6db3_f}bk2N@Q$@ixL;QP7WV0@QA zWE%~NGDIOSXifH}-^#JL&z|VYz@IAeuV09qLNSy1LM7>Ew3hz${`q!ZK{!EP=R;p6 zKkpg@4v|+9g*w4#kOQ9=47hb~d_f0aX;? z@YJ*M8`{3hbL)zncPcBLUERBCq4{J*wx zZf0>&S0#m*+Z<_!<4p0yB)+<{-%(f7`V?R(FpTMFUDg5RjmjR}T#eJjbvhkfU$hGf z+hqM(RHVp})}Z6e*FWn+(;>M3e>W;`O87+sZ{kq;D0WKj6)8jmd$oe5irgkBjpxm6 ziTuzQWN*%tOGAi&J&=0An_zHsoPM-t=``gj`W{EY)*ogSY}J$+t>D@9acVhEvr865d+ffL@b3`=IUPa4Zt)r(z6e4r?7-eTPuoF7g0s3_x z1#ba12h!J0u)$Svk5N1h@#u(|8N%roE}mGlXZ^Q}T@wS%Yu8XQJG5SanyTRHij%w5f>}_d)f?a zY@dmFsjN^&I(iLDvPnXZ7S62e8H0Oaq;P8YT8pijT{vt>@LY_D4!e z_#=A6FEQh9XFOy4iS^~ z)<&Z)8pK)*P2{+Slx!zYj|P@vzO8F z_r?_TW9)4ef&)L(2M)o|tdEEg0+)AD=ltWwztV2sjZx__jNN4iki}>j)sy-hUELe- zxd$m*lFmjz+qtNk%-tK`ktC-i&R7ogt0_T1=I*RN6_3EwS-IxK8UosW zj)sK3q6Z1xlIKV+Y)!DA39abi$#lChN^*+_eh0lKmroUIf41)-ZqirKNL8a-~q+-S}r(Bwt#dJz@1KJ`c z)E&Klyddn zk`2yiaC%DMbnP{x8m3VVr6VX@3a{9P!y_f*anR%))1ATRKBVTn2De&$_&mL=2Jy9{ z+sHUWZIq2~3%+DywqPik7!BqpX~lh)U>0)M_eS_j6CKTlAH$i2IqMg4zP7y z@}Es#AR?B$S;l|cC#TD$1JO5)WR!q*iOXeIU?Qpz)o50h*$5~n<>z)AigbTx=A^b5 zH`u42f7D*=OT<>(9(%Fx!>5Z-8yL4g|8wg%3AiYGakd!m9I!L^ara`cw2Su9d$Fg* zv3{0&v7L6|KBIH%ckL%IW0r&6=hiR#jP_y=!!YB7-Nhr9OVVRFr=EV>E;Il3b*1@^ zMjUh(@e}@}ao9lG_fLd7P88aA9Hue?i~u9R2rvSS03*N%FanGKBftnS0*t_y3xNYL z;kp1tqF2%UV+0rhMt~7u1Q-EEfDvE>7y(9r5nu!u0Y-okU<4QeMt~7u1Q-EEfDvE> z7=bS~0>#SA=?({337fwpDOuPT@4wIKrq4kQrxP6T8!vegG8+3D28wV&EOELexO1@q zpB(;+57v-0FK)bBoNjWXa8E7;jy6WjI^bVI-oziy%ETTRY(JTq?o{`8M8DOA&7re4 zw$m}2jY>PQTZgJPD2JysC`TL?HH;Hb+Z%FR4|!Fk-Juq>=WRIHpuCH-LieRMDDSLq zP##`ib9R~2tvS<;WyqeUL>d*tO9FG!-6BnFUdu^$>Pm!oG6atiru1kdN_ZYp5}w4A zayJ~rLABWGbhtcc=tDu}A(GPQOeYMCR$RLi*dLd`HUz6m2lCpHyP*oHemVBmYn;ELxS? zjzd(tz>6)%s^WI2N|ys$gXL-*u^Tw3D_vsuCB9Q4SJRf^a=M5>YzsH}Jq~cbCAKN6 z?Zd!H?dEZaM=jF_PRz;{Ep8t+zX*BQSQmAy6$!lLF&xQPo&>G#2PeXL*{cbUNsZG4X69 zwMz=rg2567JgMd(6usNr4T}w4jY=m8Mn<*)Y;2+I5IbDE^rDVKztNhGG^>UK|B+~T zERs#8dPAxatuC1kR_+u8eCN^hmZSDN9qNh*YCn>tbgth8!Rk)WEsN?``){X&_{Rt^ z0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2rvSS03*N%FanGK zBftnS0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2rvSS03*N% zFajTmKt|?eUmt(@6<1!BHD&6w9A)}7Gp_ySbu)9Xzaekd?EEj&3g{j{43ojkF5Z?9Pg_nB0^dGdzUhgg6pz!r{ z5u{5O-hx2z(RKZ$sh7llx#SZU^3X}|{9^7y(9r z5nu!u0Y-okU<4QeMt~7u1Q-EEfDvE>7y(9r5nu!u0Y-okU<4QeMt~7u1Q-EEfDvE> z7y(9r5nu!u0Y-okU<4QeMt~7u1Q-EEfDvE>7y(9r5nu!u0Y-okU<4QeMt~7u1Q-EE zfDvE>7y(9r5nu!u0Y-okU<5uN1o-=ypAYVwDkH!MFanGKBftnS0*nA7zz8q`i~u9R z2rvSS03*N%FanGKBk*}5P^`?H?r=C_SxAzSCAyn&pVK`af3r_FgT_l1xTmIss5$A*MrS%@*?1M#Mx`kU{0>NjuRoL@uP)EB0^^_l4&eNKAX%Owly^J^%> zy{VK~Zz|!_n@Y&{rV`%0sf2QGs=H5W|30bo<;6q^#x=*I(Ph#yDbE-hjYc=4=G6AI zMx_h9QrN93ZilLLIdsJ>S4*X#z(HN(JAADPZer;v^)q0$LXP3cmL+)^M9nQD+S za7E*60O}~S(jLy&3s8bC?Un6>?vW3)X0$xCV7YoT^*6N0@-$WHbR@Eo)GjGd3kFLV zkfWN1P+e&k_{~$>J&j5y2}VY?0qm%zbkxv&mtNFy=r>x^k!IC!;6D-#k43V{RBuQ% zqSYlAQ0jspl_#0ra@2mOLtPO;?MJed&h@(>Sl#KlWl{Y&X~~_d3vc(YT79o~)!l_F zy}reFE-ze?8b>Z%=||w|!o^Esfs_~iF#?PLBftnS0*nA7zz8q`i~u9R2rvSS03*N% zFanGKBftnS0*nA7zz8q`i~u9R2rvSSz?TOB-rxM?sY@;iBftnS0*nA7zz8q`i~u9R z2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q` zi~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7 zzz8q`Uj+p25g+CIDwLGV$Ote3i3r?_{{L;be}h{OR|K~Kt{AQaZX?`%a4K9WTp8T` za1X$h!)b68a5~(Ba6!0DaNmL34EJ5Q@4-C;_b}WRxc>+DeYhXM{SfX)aQ_bX2;8G^ zKZg4W++%Q+aF4@P!Tl7De~bVlzz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q` zi~u9R2rvSS03*N%FanGKBftnS0*nA7(2YQ`GIP4a;fN8Eq-2Ti+^W+(9)I%&nL*cFmn4zHe+djCJcOIj7N?usD3Hks^BsiGI^bVItckyVAUNTI zGt-^w{*LIkx(c)dvo^M;gIJSY=5%X0>CQ%HI_1xJB1w`ObJE?>WJDm$58`DjC9}H^55f~s>iT`6>^p7w-m)V{Se^U6YMkSJpIN>yS z(k_ChA3WJpWvNl=B#Gf0f?KG>y3(nJ9E1X~Yje__8VYbXQtyF?!0R4dYo1QX=Y{Q#xuWp)S3s3Es?%vEI>{!jq9f{>yBCMh3OPX^U50+*;$6AQvZ!CY z`i{Vg!j=9tsgm!`<%J@^w<@r5iFGf`?tP091PcEc0Y-okU<4QeMt~7u1Q-EEfDvE> z7y(A$tBgQK=4D?WfB6+xUX?Xv>a-kX`ZY7I{pNKubFaT4Z`SPmIR$g)&A;)cuQEPd zc1C~^U<4QeMt~7u1Q>xY76K>I|Btuy{~4#C|Nk}g^5mfMkLmwIxDP#y^Z(#J4gG)3 z@&pC^9#X(Vjc%U*7lC>_{`|jRASd?ueD2ES9^P$gGZ!ZC*aK}T)uqOSTORB5nu!u0Y-okU<4QeMt~7u1Q-EEfDvE>7y(9r z5nu!u0Y-okU<4QeMt~7u1Wt;;iS+-@GIRg`%rngBC)@wO6Q5)w7q9; zugy(|0VoC)qK05NFUcz z`Y&Mypey?wiqWXFQyTaR8NN0acB)DTz82OoQ89{S{FSRqU6k6S)Brvh7kBHQf`lah zM75}0@?VZ1*dY+35Y(MT91vh;mvX2ghe&6PVzliSN%n}ObhiCmQ0ZHA@(z3!uG3B( z--gSolgm^J&W-4cNO_!q!$R{Dg0)DZEEHHs-)oCI%OC^fnwt|KImgUSoS?WE#{qxM ztqC#OKn$B7c%$zQcE}H2kE%l9@sT+5OK!kTe()(+8CX>(KytNB0L7}N*MU48t1z?U)glFzmf#kVTjX6El5RZL6^$atIB>$wT=){Ql<^`un5jak;*rgK zQ0&ttHk$0904IvLaVG)tmH77KAwF*c)&9BLv(Q}e#j$4*r%J54yKtq~K1D)MdYmgU z0iSCW)Z3S@S_8ut>$r&%995Ajjgyw#xw`On|EksZdV7fOCgVs81olXU`Yit#0Y-ok zU<4QeMt~7GRRnyiVR4%=&VP?z65dSVHDkYzcK|Ezce<~@6G=7xo~lgdV+0rhMt~7u z1Q-EEfDvE>7y(9r5nu!u0Y-okU<4QeMt~7u1Q-EEfDvE>7y(9r5nu!u0Y-okU<4Qe zMt~7u1Q-EEfDvE>7y(9r5nu!u0Y-okU<4R}Q$v8iUw3LaF&87i2rvSS03*N%FanGK zBftnS0*nA7zz8q`i~u9R2rvSS03+~aLf}N_f6uVK|DAmb-~Zloeg9i+ z&#Bo!ALYh@#e=%fRSw)!Q7y(9r5nu!u0Y-okU<4Qe zMt~7u1Q-EEfDvE>7y(9r5nu!ufv-9OyubOY-U7J%i~u9R2rvSS03*N%FanGKBftnS z0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2rvSS03*N%FanGK zBftnS0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2rvSS03*N% ze6bLCCFP5iU(PKfzzBSL2<%4xZ-Ltb_bS|<;QkD^7w$E<*WuoPdlT+|;NF6J8?F`Z z9k_jP@51eeI{^0=xWB>~aBXn!!G+=4;ru7$HeYmgvr{I^E;(H*b&`G+y!|WVDnf z4HV&mTHrz#zgyxCw1>y2*_KnVc}+LHMi#{w2hk`0EFP6D~M2-Kp;H zh<>Z9KszvNV|zM?HQ8lOx0aLcY;>km{){J*B&jhc-5pIvgtE?K(Wn(lQjH?;Xi7va zibMnHHR}`NE~mI<`w<6`rM5IMTOyq4MiK(mNYc77-K6)yphg^l0dloSY0{-@W8TZw zrq?{4Am0;{Pnl_Z3KuJ;TpiNN3?!^RN7qdM2-94c2lP6bms9S}58 ziLC#H2?`~l3wSo}B+7A4?z$=B_ zs^WI2N*91~%hgh8C~#0$x?ZRUm#%o^>NL>H=^_HpkTP&ZJ8b~! zD6`TY&esc2f-dcq?S$@;542|VRb7e5)thO&Kx-^d6U{P#jih!-fm$$F!hjsrJcQ~> zyTEUr+U~Ks2{N(`U`I8jqlOad(u+C{{YGm#(yST|{70hUu}C(V>J6zzw7TR1N?j17 z@+8w+j@s{Zs4F6<{YaM5xqcS}t2;fnEUK3zWu?Dxwb#G2&^xDajo*8HV8v~Pt0#Cz zXN;NP&CD3<9i1sW85!ii%=TwwP#c`Kc;!WY@9M(EON4-xBCglBdesW=U4{4FwrcU} zCF4@1d8=2gyu&+f>8d+#FC3XFQAGYR0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS z0*nA7zz8q`i~u9R2rvSS03*N%FanGKBftnS0*nA7zz8q`i~u9R2z+G`IFbGT!}po? z|4*E5LUS_v{}h;SlOro`+y38+8!v2m$&CV;+&^Rg4HRzC~lv^7LtKo2p&_e;LaeE{kYNyGw@C_1D^$MbKim#C^KV# z0&9FKPP{e#m)aKp7~A5b(!(dR`TwkJ@u}~^1pW(Ri+}s7!15*Dm8&d^`o*j72&^bv z>0gs7`R-g^C<1(|0xOqT_rmPnw-`a7@Q)E-1Q-EEfDvE>7y(9r5nu!u0Y-okU7y(9r5%^*ua3cNxcuW7EaSHnXUqdfX4l4hc{y&8K(8Ds_~WvHzkq-g{RCR(n@2UQu|p zx5qhnMCx?{-i*TK%U6vBBmWoyMt~7u1Q-EEfDvE>7y(9r5nu!u0Y-okU<4QeMt~7u z1Q-EEfDvE>7y(A$qzIfy|L-g__y5m4!;F5i{r@}hNj7rv`u|qkw|?L0Ciijm|M*;5 z{>Jw4upppMiD6g#UGR!8gozKRy?{ORn$oHkwbHl!COpt{_y2?7Z7kahT|WKV+;kX# zVo)J!Xve))dvUIzD~47VEPESFj%ICUy7;i5uC!8GR}1O;)uR0*eP)96aXqE~5@rCp zvfrT?jY>PEfv=F^Yhz)js&wFMVI30{qe#YIxw_OvsZB}^;Dd2-xBe+eNb*lqi`pgs zq+s_4+zC|bRz-Qq)?bPvYxU4$4 zOr_x5h`xxF#|bzrG(RC&izLcIfra$Fwz#tlGC;1mIRTP$%d^@Ymd$5Tgym zu=#;E`tD$d{NVMdDij_ci8H_C2HfNapMsTvRdoU+SK9xBv2iE0tObke6F)PVLv@S1n+G$rfR)gG011g>CISiRTp-eE0viC3 z+8S}G*+e{ubRi;Hr%cFYB^0tbA@%`qG?r0ph>_YfT&$BO{v(0&_c2aNCw!Y+t+Y%U z=f8xER&rb|Qc!6LZV|af-nAj=#&ccKC~}MgC+y6HFCj}AFQS8)DwHZ7*~|yUK5b&7 z$qou|qKF%J5+GlRZ$BR5^CnR3pSwK^%@to9dlqr3#HzasS9~ zefg?2Fl@1on>fKy6{*rVX~~_d3vc(YT79p#hv;rHj z7=cqoz_%I}w;AL7_xL5@%@kfU_WO7Tu=0MV`wBdfRO9cd%49x9fDvE>7y(9r5nu!u z0Y-okU<4QeMt~7u1Q-EEfD!oDKp^R<|0Dwr>DUdk_a6;QvSaAk)3T-aMo8KClE<@> zR3iDd4U;y#vgx%=wVU4A)Rv!TJUT~`I>Z0i%s)ne5nu!u0Y-okU<4QeMt~7u1Q-EE zfD!nDARysEA3xakl;HmW=?ju=&L$(k2rvSS03*N%FanGKBftnS0*nA7zzBQ{1l%~M zqd#0K+yFQa+(5X~;AFToxYOYV!3~BR0yh-y47fAlhQXZ$cQ)KPaKqt7z?}>%je@%n?jpF+aAV-U26r*sSh!2z#=%_*mjRavcNyH*;l{&V4tE9Im2g+V zWx-8=n+P`vZZh0A;I4+thMNL66>b__4x9ov9qt;q8F1IaeG~3FxS4RdaM#1#0G9_h z3vM=CKHMC*0=T(w^Wf&g-3Z4&Mt~7u1Q-EEfDvE>7y(9r5nu!u0Y-okU<4QeMt~7u z1Q-EEfDvE>7y(9r5nu!u0Y-okU<4QeM&R>60N>h~m!GGPkkYaxZEtP(41BC76dm{g z@)DdZc|mmkL?7X?Lo-8aQ$GY`WJ~=ceK2@7zDu7&86|aGEyXw?BIqJnAV;IJ_YE+~ zFgvQ3&woSqwyI5O^7*Z@H#87mIw_IQ56xe2%M0~(#+*pH(v6E=v+^H-%M0eD56LrzDERuzPUrjuH{SGUp05Vyt?bYCZhq@^XeIUzt}a=HNmY(S)Ssz9V~P=afv8dOH~kG{=+TbC_G;jX+VTPpc> zwlwJ9vZbHG4KK=;*1)yEc{XHAXTXu!+#Sfqd2p~ElQ!cdoU5c}Tz#7b>2tW?Q&5uh zqd!XG@As^~N3FkyK1uaQ`$;({YjEp@pF?ptNk)JXU<4QeMt~9c7eD~ZZ2HJ%UF|+k zWyw?7QqY;?!pVPNy0Lh2&CQM2X-k zg-6kcE90X$>hK*zWLmCH!%Dtq^6JE-<#~GtrCUMiBFNL7 zA%TXbbRqAQY5H!Z^=Z#``TlPJ0kx>p5x`>vP7XbqyGa$sQ zehFeIbNH^Qx-%W0wiGotBp&+?D*>w*ZQm8_ojtHuL+QFSQE>;>G%8&P7jSpsi+tT& z1b0_YxVr#%mw-EtFA?sC zEThjhEWRb`8AZ>U_$Vt_@LAEd9;=4hj-Y^Qkz0~W9~M}&Q`tT1D4fdP_Gesd914NA zUeHCQ2U}L%x`lc{yIP0uXm%tkUA2a%wlxVwrbdpcLA~MovWYzk-vgyaQkPtSs-aIz@);HPpnLGh+&otrnKl{C0U{^t}a+TiliAGuoGZXbz658{T1+bij2yBF7* z(}kBpYv}%7Df3Z+Lp0uq>w>h)-s;#mNCr81EsPQ^C&)v zTt$D)o5;is7dE=eaZkxY)MAQRO2cJq7h3&xx);sf`0x_JfP2Z9(=B>PCB??Koo8d@ z)don?_G#d#p{W=xHnM%H<*7B?rr%EFJS0N>3Vlj#N}ixZ{b`mTpOqHrqN~~M*%UgS zWNpvJwFU{<-Zt_=D*i~uFnp`n0?rLuA=Sh~ry*CjBD5xo%R$q7xZC>|@`9P*H2#b) z6~q56ig*(uT6vf^7c=idW8*+c+F0bqA;%Z{htV8?x&wC!agPOe+rbnuW@^e_9seaO z{80+`AY2gDR!3>bk2S+yJr50Fub%D1kZa5OHSxA09g8;!pI$ygaM_>EZYGW$-5kys zN1B!10pfV1o5M}Zo@Y?JMx_;3Av$}Qh7W#!SKJvQr^rjIC7_c8ED!=Hj7E5avME}u z%{1)CV7dZKKwtv-zeav#Kc#?$6=GmU*)Jw{d^kL0iJnWG5;#?S=N#YRmN&eL_zQ{p z9%?{US}||6>IHlC*+a6L<@;_%JF%chLqSJaelPr|BjU{z@o7YCTZ5Ojaerk7La8pCCC`X~#(OP3zx$=^IAC+p2v~s0M-1{`8p>l}HC{uviDr zKH1Dr2hD9S3I=fQ)bYQdsj3P5+R$CN)?5YoveXRjI+6W4)AxM2V)>AL%ZChFz7Eq@ zD+*GJ7`37xmJfWE4+ZIu8_e#{F2#DGM{(-yd#gAhagR*ys7&j-ILM$VPMu%?=d(Kg z7lf)pqBuKo^!j(&(gh<35BCZI4MqEXioH;6=FGB*w9Xvam@hEhpJkwv@1q|q>K z+-cF)n>2J6$tbXB-!*9%4kTlWMflgMJ0;W)0qQr3HOvk0doHe}bTw(KI}iNBpIniKaq-N$Ov|A&%`=cP?B2JrX@4 zVnXyaI{%QALudWtros6KC;SqY%5t^yRTunf>+y2a7f-~f(+APn7t!4ZvGx5vh)uWl zMJ(wi;?c%eBhkp^)10rSAalqP5phQv4YNpsRNIZ@3- zNBZFW1jRb#YUne+{}H1$1)X8PLRhy^*z(gnN!44akiO;++%K1)J}2rkoaCV(}VlSZ=Dv~qti zCeBK!&Q2-pw{s=LMy@X&)*~IkNI~I?1ijJB59CSuP_sN+s62S|(wxHgQ5kv%^PzZ( zNl19ZsU~2(>_}^LNq9P=b6D}7BM%u0--Oo{ju2i)QUI2aw5IG*LwWHudVxeQkK$>R z`94@d7Tol@X=71WF=m$yk0PxSc)}Ma$Y_wf2^2(ckosAX|45N{B|>Q56N1A~0{gMJ zchNpsav`)0JWJdl>ZG>SzCiMdUFCwP%~)URL#daEVrJC^(kK*N>wIvEu4UafL1efXH$i&z z#Z#Cq&F+hXAqv52NN5KR;7+{f?8I0?Z@eN6Ij$!%tatMLHXQ7kDju~uwK_z1G*jX~ z!;9MRpq{jAsQiTUx$wlwLu*&cp;ewuSi$v_Jdi>mayE$^VBH)O@IcmXc+6)?dT-Yy z-8-s5dEydq1@ovM9ob8zq%`bOUV;R|XX71^9T1oJ=_gG5Rg6=y#5Y)p(-S9f#7h&( zU!_f*+B5&MnLTi9CLsf3w^!N`PPdwsDd$E(w%b~1NG@B7cRqT7LGAUGF|}G#>@AD+ zY9Hf%mryj=Svf<95O1MPdTA)|2AD)ddYyvjSj-gryE}48(f(9_Dy{?NvUd^tM5AY4 zUCWv?)X16graMII?G)o(Hmctda?ucoH?K;k80y5Wcuj7GI(mlEtq4^ScVkf}jcRM3 zfu=)@YUg%K6ayNGrx;=&6Z|xgt$oez@ia5g&%URD>`dIZh0p>85qY;}mQxl6(U-SB0q{Et|dypGXN-I=lAW@|b}7xReG5R(Pz z2c$qAC=C)il1Ee#1|cxChx2vP33X|&nChMnv}RL}Bv)_tVq!xBE{EC?`mqEybMy*e zp6_g+5l!d>>A}x@i)MBCVV3HTh60p?TDNLAkfku*keOou#&)5Z!e3MS2#u8KEjJaa zE5x{vr9{^6f*4D%6EiM^Nnxj@y^4(+@7v?Xyp4sPC|D?OP+<`wwXJFW(X;W_-M@JN z^lC+J=(5UQ@Mj!pOa`kzwY;C&=uq1n;rDzGzP_nWd$G1HN!^#+_2I9|cH5!vIl_mK z6Z1iK9>keqM1-yneZM+!SX|ItJ$Hu1h&pMfHB`1pfM1SjNQmP znqyq_mX-$h-1hL`m;y0v^;4GC6qANkQ)zZmXCf}CAgRL5lwzt!^A>60cPmL)1KdtrbO%UAq@SG1+G5hXSZIxq%8Z|^WOi3O`zbN-Lri@(vM z+uDo3Qx;=o!fj5y$Q73RG`89I=uTq!Pazlz(8#F&kQso8X^-7BL5Lo26G(Cu^}LDYi472`k>deCn?SkoM(+6bJs7-du-t^^{2ArARwpcwM>cPN z74(BvwQtzjqBm@7^-7k zhMo~Iyhh||th~i29v>v89o1To->{*<8W-9$B!-TshBC{Qr{PI>u!WYlxL102IwitL+gW7NT~Tc!ur~>h=?C3`6gN*>AvET6FW238;Gq)G z!vtcEoyhmrQZXIe8s2Zn&kK6>h!N`d&?wy&9|^1X3M4bnY1+jvbN_< zK@usoN;h@i6rTz4G{pLskq3B!nUbJ8JnZ<_k;iL$@D$-+7!IJ0X-W%|MIg;y;briU z_Ak5`9@2P)=fgv_8NLA?0wz2i9@035C&NRJBjNGz;2|5Y7~x4F&-w7+aY+iF1rPEH z!%BE){ZF=jXh38|V7_}06RD^pYa)PU0}NOu>A4uN-NHz~EsO-noWcVoy&Gl%;yqW( zpJBg67I|(x8}qHOymM=L?(l?+<8}b8SFvnG_{h zjn`UrmO_?o{)!>CT`!1WHRWhlLurj*rMhW{K~8(Wwfm5t#%$+u40OUrUC#7T2Q__Z z$hqko65~UIv1r3%KCi_`Rb7baSQ3%<)mP|kVkeOF079!$2e(n25G{ z4y0Hy&%j7PGzi&&p#;@yru74Lr{8>fr(SJ%FsKN)-TjL3KHMYu$5FTKF0)R9Ivx(= zXih;(!J8FfDQr-?316AWLbg1xl`V(}dtHq1PDdT#Y;_Mbh-gbf=M_2nHcJ1=b0mq; z;Y2y2Hy$4=M{4{0pt6g)v(=7%+#G9Z1@I!H#tRsQ@m2@x7SWB-W;*f4+HNxft5jMs zqPz6lun$)^HSA|8k8K`NVeJ@J^Lj*cHcB%@vx*btHk)4$K2IMsG*h!NwW~1Y?j?85 zry(~fa6^xLAiuZvlq(b$5iO|)+exzv-31v8S;Ocs<6D^2ECb(S(b$T~EL~LXrJ}Lf z7{{cdjoLJ;ulAb%M;m9GVlmj7T^}9f=a5Qch6fhrNXa90r-Y3UnC(nfdIqI|0qnxN2GMzn*Cm<_gvdOfvN4_5*s(d z3+zYE2@pp8IGj$Sg8f1pFN-6h=&6oo*JG#$yhEZH1TSuASNMh&>ltwHh7hU)E3n7# zNI*ZUStf1xiH$nViDo$39{kAPO-I5duubF^RG>HGyWZ+T>i+gQq)l z0$EEahTR?+wI0m6v-;f0qSm&iisI3rcIZ8kr*7oY@9dnJh4?jcMk+R|5VdB6@XBsJ zRj8yt^%9s9(X5^s#Mp+M5V({tH8MmlI|JR+uHmJ24bSccKxfdCL|ac1G3^AHnB>G* zZC5<@uRxX1n(EjqfTGve5j2B{Xa+yCs(a9e@7byOF-2Glg;f7HVmGk6&FmvRGapur zgoI$p+E)g9<&v6R~s#??Yz&4 zWp`4le_HGYdB37pR&3lYDElr#JXTedF{j9w`P55UBwDNr@gz+7Rd=RgIcxe*B*g~ogT3q6f@$?Qb(o-^C z3#hge?O-z>=mj%6$0$3N;1f#>tSIeVP(Pb#XB9A1 zkx&ssjU)$B8(nlyzeJ%{j!!7`$X~njYv#~gFpDxj_gr_GZ3!`b&|?%x$)Y0>%9O>+ zF~*s+A%aGu(0v4GBIEDy2qXqN3<*_lB6jTQ#_ERF8oF&HBGaIpvDAvX{&7`vjy(wJs#qZ4u{*v?l6&4+Qfb|LOF*8zQn&;k;1 z)YjHo!$n%Hf=-%JhnMZ7jA4mhtG;udwFjsFUNlOJUfX&GVRH%A8I@F2x_O|H<~j3r zP9G~uunc=q6e!k?kb?bA(q15sfJl1A06;oIBJiMc#iF$b{2*{rW2rvGUj%)V7r&P&w;Lwp^(;$X0Fa#`p#$|yPsFxItC8WT#j#x(J`Om@jXM0cmo$u z25AhVsnpB{4QoaQ@Pm#DJ-qgzZxLOh4jaC zn5XMGfxQkBe^aSBJ$@Ba1gCp6s#D3WSU-6GR~%-($k1MU9eIKwEo-xB5kr0!he8x* z{6@xv#h6c|F^>J)ft;e^2x!DYr<3WMqzLp(ot{3rCt)se=M5&O^r!*5*^}J#GV+~T zF6hxDzf2dm`^qiSneD#HSgyR-@5Hh?M~s8PD?Q}y$2PIJ-~Vu)7nBi-5kXw^Fh8T2 z!a_7y?%!khi{Wh*94AP;9^1rKghLE+R2ZoXBa6bwk^s4C3nQVURV|hfq_ zKD_BE^yG*?F<;?>IU^qlzl2d~{?kfA**L?3qdAYvH0O$^m=*=O@31Ub`QFd;hVNu5 z9|wk9o{^2811~^tD4RPMJZf5JWViF~haYARVX&!hVo}`A!x)(7NUm!#Kct!L_s1KD zz2vtQjA}82#1_$Rzdr731K|P;PV4wcEB+q42dqiWK|rR3K!R=|5*6t(Obo8t#Ev`n!0mm^pdsw4O%!(J z;y>ZM9G0<6!*H{eibiC8Td8lum2D0!(OfcTC0)&h*7Fx+A+jwqO`n(9@}i4u@6&eG z(9E|SA68Oiru9rDdh2}7xDg0qCxPfK7c8#)qq3QnecmELelHDAp$2#Mg2LC;A13m0wd}n2%EJ2ZCQl=QmKGYb4MIH=D6$c6^IJBEA*-8sA}`FupY(5#Kw1 zsWT~vFZN1y{|JlDyN|%0h+p|oyKv@Mr~NCSZr)fjmBWjY+1)H3 zv1ATd|KzjM)U5XktEPjMre?xO2+J-e`cI=DdA(W-%yzhe4x+i=@I$lA-)iYlchfDCG%6EmO z>)hgZpy74?FQk4-H-R4RJ-@ydadgh{(N+J89j)Cx|6;c(yLp@c0)0fic4+edQZ5Q% z5&!Vw%U^>HT?lqzuiEt1ZR`;qUHq>aY^VNA4&YW5L1Tu6p7ahvB?m>PvRyaHXGuX zNL(w#7DK#-#8ZXXYKZ5OIA4fo8)BTqX+m6Uh$oOZN{DTScqEC?C}P@=G{l2Q{9jCD zK%8ud!%2Kmi02w2XI-!TNQmnV@l_J<5@Mqv{+z^{gxF(<_mg;u5E~5ft0X3c*kOp* zl6aaB+YRvo5*G_`njt1gtQKOWA)ZX){z9xW#Cas<2{CGjQ%U?g8oEDDd2Lsw`BR0? zH2>e+?l=DmG{m=G1o1v0e##JEBJnFiTx^IxC2^||Pcp>sk+@NaCmZ6eB(@51wIP0n#Fauk z#Sqt#I9G^E4Y7g5gN3-l5RW6VOo%5K;v5n`#25}~KhF>+koadIZZyPUB=U$8IL|l4 zcQJR-hc7^!Z-{>)@f*Uq(h#2}@pD34WQac?@ggA}ZHQkcu}z4_7~&QZKPAK^hIk%{ z3xs&AAvTkEs1TPK;)x`V7UFV4Jc>j|h({RWWD@_1&oojr-VjHS_)8(4W{CgB-08JP zgt*EOcawOx5EmNavm}0Ah^HFj10-H5#07@H}+-DsX@-dm(ywUxZ=(pKimj{`8-4JS68@WtXdr_cdeR^puh(H(}0kQj5Ze)XmAgT%4V)mjh-EpOig)(jnSeFPGA-;EXU zt1cb;j&Oteb5d{8)M!9`iPX)cUQa3}GDXi|TygcK6NM*B31io{IM0@i+VNOXEB@Xk z5%O`!j3^x$*yRD zYKk{>x4`UZPvGx@u6X_0XlF9fkp{M+C*IZEmRv`NWOqkXD%#i@Z(Iv>X-7|eTcRnN z>}*UzSb7M7*C}TbSmD`9!D@q z1k%;r0oQ~t^yHN*fvxo2Au`(86;F{D)O3C0+KgW#_n3G`ysN$qe93gYF`Y+Cr7M>nwLpM6`PSqzUT_RC8N>ODbAx(DrzH4EYOD zwb4o4%N9(FlG5GTnV}S@h9vT|NoQ~1v9Z0Wjj@Ec6z12*C7ZgD&6ApzG-C{T$1`lw<(NVi5C66sWQ zX0*PeDLN}!-xWuBq$@eikGD0)Qt`$km~5S-Y0*^TTt-u;f0~X|fTdbHn${bX{@dH@ zJ7bKvAtFOaYKwQYAY3g5xu`-?*H4S`*HE8|XZd7yYnSwfPCo)<^(Dc@kCQHzr5%ZM zqAhVQ3K>-g>0a8Dj;2|MD=RBia&1L{THFB?6)1{o1q1W~WP5i9D^;{P(H2i_NTuWL znx1Nnx3xu)9{!>LRF?Kc2P)`)`dhl<3Qi_su|JF=7Gj`^hgD)8Pw`R)R z`{&C)H2ZgQYaE>c8llb)=0$ybG?9w7*0-hOP1(E}`#Aak zX-*k`8Tm)gU%EWn(b?EgU0riTI+={N*LQ3{;jTr)nUvbMf6M_br^}afd=e5;YjrDX zYpaZ|PIgDzyU}{$>*I~x>3Fn0DwQD75nUVa>WH^hHdde(Wy_g<#QZesOlLHmjCRG_ z(G$X72Wnt^eFBxKNrypSlNxca{%7mdp8zwi`DF0f|G>{D4deeN|Af%nxkFy9W8O@>3N^4)3AMOo%$}|alr2ZZvpbJty2d8W&oA|&H!`)E(aKYH^cr- zz@va)1O5hxTvw;|15^PP0agP#0Gk2E-wxOx2D||H3&6S_?+ySC0n`Cb0h|rE5Mcb= z2)^rpe+}>e;90h92m@j!5kROfx#RY%z?oi7|enH zr*Z)5C?EB!u9-e#=B(L=%{hGjf`y9~AAQV{rN=H?e%$dZPB`(Tl_#Ha>Zew%K8^lk z>oBGVYy@oYsZ(DEoYK#JAMl$1zW}IX7A`y@I^~$-PdPX`v$CdgdUSeq^ajMUjv)(UV`~$O~4@T_h#IA zY4E+=jPQTrJ{A<;|MEKZo?~2%{A;m)EAH>Fz+87P|Np?Eytwm{=%*yYT8PN!NlI}) z;biy^#QX7IHPpC22lq*#CMo_e9%J0!k6}HdED#{>OC}iiwsf7ExmWm`CK-3OO8=eKrho2D*J}ale56i1)TirpG+K2WSjLU;^g6J_oawU;N2rOk8iK&$T+NNg5?$x0 z&jM{qq%!z#bzC}{V)0}`Rl$3EJ=Ws7VldXKrNC2d^*wPx8Q2xzw-xJ466yUTC{22Y zC8qZnltuB}V^Q2l#4d~CE+h6=W~ha*aQA~-Eb0s(4SJJBb!!H_!4gY$s$QV7{-3?Q zqW*^tdV@vpgT$IU)C(Xr2AeEcjMtkiF@KXqxro2N%@V^li>hFHd>-!I_!}+iXwtdW zVkD?IC@r$h0xq-7qOJs)8!a&%1@&d1;qWC7egZ1Ci)5!IrgvJ@YoN8uUW-r3M=_=n z?M<=01x$xiQ(^1A{f$)~0y8 zq_Hht-=(&~*4c#uZdNZabGp+hRgQSV(x{ffl1L}()gNFx;uLGrgf<~Gc5YBV5GxmuReqk9*3sDBsT#yimU|2t_9E0( z?C-DD?o#`%hK2S8%4eAE5tXJQHrD1KVQ|gj-QA_0q?NgnBDN7(>W8*oT^Ar5bk@(uUt6&UoP!K} z9GEV}F63V&GFLZsBFlla)?>4*Ls36}T~`7Tp#y)c0JdT``F(V54M=nXf{G$qaMDuMxq>hr>aSvNY)fMEj~gW5LSEH(wWQP)f?|gi+g9qQ zf}uELt=KGUi+8Eusa{{~9mD7u(@hf2{WP?m|EngIes%@FPc z0exW$)}QGIwXb2O&L5MIS1H0zXjdHd!$w{*9UbXdvY9c}R-Iv!;Us&A`ZE>dRxt}g zu|C`CjXI^aqEF~SxgZjaNoJSG_x=UGkTEZO49r+^VX4u5ti%j&(eu^_BPmk#wk0g77%4094oczn- z&z=y?lYyX9AoxTzgy(>E!qKDUKodFJAO5A4Q}`NO^Eq_1!edEmm_-@P&#?gh3PiZ2 zpS!nv;p++d3c4yY;Zz0AZ8KM@Hn&ax!C7~EBpeMv&7--5`aGS>5 zLMT;mz^kmqBE6|Fp{%1ffyeG`EreEwvW^j~t*}*DOT^w;=xc%~YpM84BPq8)W--%K z=Be%uNgh4VbgEter~q$j(#Q{{6=-apkcShqf} zlTESTIlfN)hN69!oBT|ZWZ$$`vcDkitxWdK5>%Tc`xZZ7M&gTNPpkaZXncMoI5Dsu z)gd!fHbb7sGu7qCe#iyM=4KAQET7;OG;}uulQen-qCJvvE-Fl;KWjsOjj2saSw9gm zXBGNYmm?|baYn=LZ7O6-G4h`N-x0A{Knb=u^ zv=wT_6PY#X_7rh8;gSx;E97l887XwF3t_+D#5%=!?ml-rdb(7(uN@A07$?)iI3*V& zX0GnDhuB#?40&p1qZ4sT?*NbQnCVKS$Fcn$M@wXnQAnnyIg zPUUl^nCNIw_6+)AY%H9Nyg4%SYK z?tG+dx#kJ2KUlxANbduz*KXm|_zNjQ1Q4!I&iHqJ>pzS!60+iR_PHcylolY+>@JmocmpP*J@?0wCM0U;6*qN`xY&L{4~}UtkbL?XzA-Pkl=xm zrg$9GX3HW!djl6s4*AeF#_-FJbEo)h&G;;8qy{BFd_&HGu!zHlQH$7T@pI}4?F!J; z8w^YF5QS^;sL9U}09Ri3y}Ri;r}`81GqVxmC+b)B>PQ?B;ab5Wlr`F7tS<#rBYOfT ztVp5UNoUH|z)c-g#3b|BiEGV92EU7iVlF1{bCQkX;XY0qvcBSO$!4a1`QDkJzsve7 z?v{Q9&imNex+9+>bLPuq<_%l~_0@){d>d=U+6&eUWFex&smS9P$QhraXUruy{#VWf zLEStKZIv@oP%lp_6f0+v;6=(ANHT{N2knB)$O2TUc4((3w4ODW7t~B=YMy*IokL8x z8BJ~FOf!LJbhVXpsEI*HTU$AmemwGgb#3KT38f?tiq$EsfuQy)r&@?*LX;%c2yJwp zp91AfXHMA@#^!}IqLnj4_@)U}{LU0wwQ{l(#zfDGLrUasCR(d@qkbL6aQ!t8XO8$) zn#L)GbGT64JWkd-T9k8y5WFD^k$=vSf+4R(AOkt-G{}z}hnkBlN@5+0i(#Xk`F`mw zFkxhrwy6ZKoP{Q&fZm#DX;sc5Kg2v4e+&0wKVU-?)}w`5;!iq{5wr}k%fy5+T=GN4 z@OH#-{hZm@Xh=0G&mNc8i40^K?E^SV&eS*iKtXM(Z+29qy2>%WA=9p?hdA$Xv{cWY zoQIEJtS!+VtCgj# zwRQD#tpf5SJ9VS8r!&>Al}{R$ygItu>apUw0mET&@ZgZAQ!=9_Hhm@rz><<7s_>6G zQzprG=peEW{Vp;~MR+4EbILD)iNlzE$am!!Ds%QQ`j6Z(1glS}6bP;M5qU^ykF2#p zD}SxBk2D#a?GQteD*Gst(eYF#3S+KcetD@BuzBK$-Xm2l>~%sZ$OC(gvi1f`ap{2U z>*c`Y4J6W)!;FeJK zDT38O3b0cJTLd>{uacN90U}XfEret98sU1nAj^S>>lz^(kEAO5OhHZnBCatZoRrrD z*Lp!t1|qHvLO3Sy zoy8a;d0)fwwr77XPv-fi@!ufK_k&uKzD}C>_4G9K+i0+=gbw!Y%$VV>Kb{y-j>UG&%dy3wtZ^0xHSeB| zQ+OEll zd*6j>BwhDk?Q^hV3C9(}@tq41$6WLGQ7%U@qZv~sd(5-Q?0hxK{}@NC5t8S#2T#1u@pL#{rk;2OAsHLzyBFz+P$vY?^$04H!Xb6 zf3xUu(;0Q@CExQKzUR`GCiLGv2G1qfw_*g?Nm6Y>h* zvmbkj_zx|5JqTmtIllJ?vb;Z#@%|a#JEr0$)lXaW$bof}@A;`L&rcc8V|CZUv8Ua` zx@}pS!s5~UrM50ap(-1nY0bhClqPsyh!S`@pXCZq;8XTSe%~x>bRLHNY*4xsKU8BA z%)vYUfyjdsh^`Y7=vO&_fr7!qs9d%};h>k`1qy4^n3^I{`#e)M^B7Zss?k0gt5&E`1eP!Op!k+al8yfcwDcar@r#xALv!7U_)*IF|!AF1sF=@MU=1 z-M3_;-)ghSGqn-z73D=fto%q=Mc+WvvwSrGEP0bo#@FL@xVafI!?tI8JysiUA|v{_ zp@n*-`4&OXD&%L|+Wt-L*fdPIp(jy~-Bi5|tE}%gLSFGI{P_Wd7Gh5j=gioat*=Nd zT1&VU_yQPqG}Wo$?A5FX{s$zdcl(9KlR*0tpiu8vV9<+IY#gk?D!KS>V|pGFdndZ_ zP4GxL?`CBE>M>uIDkd?7SV$nR8izuxJ8%hgw}?q226^uH^Gy=7I*Nj9uCtK)RfwZYIDrQ((MZ=0)S~`9G4)6$l`YCGiJ*aYBY)yVN z-14sarUWvvNutr~jl}M=W@+_V+8AEKckZM!7iX-qeSztbZOP=?ZoQIHo{v$l!}kJJ zSuJ}CUtz?$QX3mKb+e@-La}QAV-W@B^A{{~p`MP^T(?MUk;{4RMQ|9+kjkjCVqu=8cTm1!SzNQB zkcRttUV%#LYA+^_mhIqzoTKlnUR(1 zLQ>zf{*K(h2b4*DGmu7g9ZJ)>JJtcV_C--WfOi6M<7~YGhJ4fF#@Qip<7}zD$T@2K zu$pM~A8WR)(?C%#19%f#Ii@hyEZZ;5a?DUNn2y>kBa7AaFgu|momOSkAEIEL>SeaB zX_Ps>4eM}}E2%!#_S>UG^H@J1m(rF8()gv9XfhL5i#Uqf060Gow<=rQDkF}WxGEge z(=xJ0QIpB)uij*xZCjN60pP2U&-k>rg3l|(iR9A&)8Mq9rFE&S>urmq{0?j%XULf0 zTHmrQ5~n7yGYp4ORII}HE39i}J#1TazY1^YD;%kT2Y$~lj5al@IG_G9x?cqM0G1YK-v7e79}? z%+MQJS)Ai5t3>2#C0|?BprN_eJE)LU?4|PWK9Ay{`nJ!bxU9uqr(_e-<6g`^pJXR( zuhm>%MC5Hql2vc2<5^`E)A4PI`^2Z!CeP7R?(pKM}al%aVZ1K(%BC;PGX zjD%)Yd9sN?E{^8%WoKW@pQgJx`ujWJUidAre8oU(fkj$gH+DxsFZ?covjR;)YlZeo z=MrTo##l*kp?+}P)E?mu88YQvtj?&UF(ajds zB4}DvNr(*l5fi2I5}24soyZ%7p-{x(OJ~Ilp(MMO4w(*T>>n{R)OXQPZ9V&Otu1JC zRQP7_`&@5OC1Z`y@7m|eqo)8)@kRu`*A&1hxejFaM*i8CDS*>|(C>`=1?BFwQNRs* z&i6Te>PmESX{W?>^R$8#HduJ`M6v@bLcF^MJ4$YZ9=L=ns^%Gb-X##v)eP-3(<{0| zgzouE|E?!^5vCb-cDU%D-TYS|CGulGPDTYYRe!%$K> za8WCDizjQ`QyyQ(vN|9%pSFBPUKO|vFbZ4-1xE}<2VS$?m zLnozQbeW!#b0MQBiNWvkNQquTj0~3yP1@rV0Vx&y4BE5tdDHn`V zI#pz(U}fM0HcBvTYhXDuGFq^)ToR0o5d=%0K=u=4B9{Xr`wKFKtACNPf=tW9E^3T> zLy>Vp!NMo6G{TAw_D~}S2yrIX)~IHyuZB^P1BE(=>z9$JAXo;Kwbn?55bE+eV>+_q z1z*JV%*X^mmMEKwoXE1s#AA`4Lyvc%glt8o8 zV)0ni?4Wj2_#i}-p8@w~y#w1E!*W20ZbR%Jd7!NoUG&InAj&Fcv%_#=l%A~>>&^o! zD&^m&cdfsty_ak6<}BQG8SiCT-phRNBfmw_(mZ;-(Y)(LSyG*$C09NK-}+|x7-`|h zYT-O&$HR9IW`r-z626p88#4(JzEo#Kucyk7rZk;U{ZU+@g_%=)f5`|tK1eE{`^nn7IRH3%n8~M=S>9J>C3IybE-wcu)6&*xX*^2E+4js7*hiozAJmuqihnrO{1}mb5Mu2r`3Mn^SzrR4)&2+0)1~f7qeDMFv{fi zk>o}r7~PCbvs#H?(`YQA`-?+{);c=A9@iY{g9L_l)@aeawdYFMZTqvkv*+pV4HJaX zX!FXhdq{`SiJsv;*v2x>1upxC{i6AjP+i3K{W_YA;)wI0%)@9hQum8+X{Pr5ri6dM zpnNw^LVDPQv>y*|FbAcq?3cA^2?^Ev}E7Sm;6dbGLM2#vaUw<2U;+N zj@<~|AuSjK7Of|1e-O^v5B)3}=XZOyve=E;y^F^AnOI;+?styU*;Zspm}zwYPnhH(BI` zjHu3qCSRm0B3m*d3tSfC0YCNy`=?**3q>wv7GX?!GUfV{CB5jV>(-&4C(+L zk744tM_`W3*f)wC$`}dQq~$3(4(eE+^_|Y5lk^c#5Y9MX>pSzs zPPLZ(xGF^*f(j-6K7EnIXP*b|x&iL^$nB0O6Jb->J7BWsk! zyxj_T5&4^km4wl25gHa*^RSTM+dK1cmdLl`WajAQYjrgn+ev_fAlU@K_Vd-kfr>KBXm6+Ft?H8HuN6NjxYDjba(z=#(87=Ml&%D=cjHIFMC zREjHNm=R|?DoY`CODRLMVy-AWJVKb-z*axi)$JxU zwsWsWCxz&Lg6fu9yU(@F-zM6CDDO2#v`e;t?7qc6*>gm_^`n)`?9%VhtLTqsCWDyU zDLdDpl$XhzVKd5QZ7Bcjx!cFg8R;R{oN*Jx=bAGLJ(x2JKG2-;O-S*$K)T$KIhHeA zJjfi&86lX=v7A!DWRB&O2_|zar(7_ZV>u%QlR1_%N-&vYIim&Bb1Y|!AbO7F>?eqx zV>$Z^qUTu7SV4k0mNQN$S#vDs03l}2v77^is^?fvRFKRZ%c&58nPWNQ1=n*dXM!NX z9Lt$_844u-TFfn4El1{9&cVW!HOF$Ml7}Vak7Z=vz&YgWAP18zXPV&IlP%{^O3a>Y zIh8^SCR*(%@$ZU>TBNDC%g(j*Fg z0PN?8lP1qoMHIj(lb&ojlZSpE0)_>XEoauNU{J*_{S~}}Ka6|{Wd@Ti=P20 zFwvrloFJHJQAJJ^3>6((RFRVe6D_L9O2I^nDsr-5qD2)sMX)+q0y$MMtwj}CB{9ut zQAJh@L2FS(P8TGjMHN{i1g%9CIa82~7F8rB1g%9CsTU-pMHOifg4UvnGzpT?qKd?Y zptYzXErMjUs3NUG7(k0Ea<(`JT2zs>LTMNt(xQsAYogYo8t!XRMLIMshZa>NDIze` zlqwnNjJW6`w_$$eMfzz`MQ#x0ep*zK8-*O!qKe$a#)GOk+^9RvP?68GOhk(+L!Pc8 zUl202s50alG!r3Hi)y%5;fUNK6lzgr7*X%PC}e6;4W~M0WSb^vEvn&09W%0Bxc1hf zirgyE&r>6)hyY~{r2M*JTebr^dFKjY_ZhCTyE zBISAkhTB+}Q*ymw7R7MMeB^BU#IRoutl=+i!@$n7_6gtLf$vc=|F9BgYfsqP+2M^Gk8zC^J~W>5WV!W>MKR9; znjmWbKQMAn)31nP&pa~TUzD<5wdke(a_E(0yuIRkW6F0+YSXy)}@sHM5cQTgdQRaT0bRmO3ccC&lWIuH>n zwj^dv2kP_pF|JZ(h^+^rph|p>wx}+tQp*%o1y9JEil*asnq@J#M*wvQa=a$4_JdR6 z{|w)M8$&lpCj&AF=CC|$kNq2NdP}M?Rb+*uGl8a4B4)oVYt<8SiI@JW7fx+Q^92ANcDjgWd!8annVwd3*%m$f7pufGgDn}xr z$c@`FcrpR2cL%{e;_#Kxf_hk)y@pk*#Nl#ut@}6jM9ugJ7|Ue~LR!r@CN$#wh5~K_ z%i~7C3RTWEoaK^Nkubv*ngiXrc0gd|ZeCup7mDVB~Ih?Spg0=9-{!8b?hiWpF z)*^SDPH|Sj6);$-{A`*WY?zK%uQ?0_d!?m9ne>s@Dp=)gr-&%uiY?$J3&ef#ld>*c zutvVXAi#Rpd^Kr+s~4!LEMa!7TpvH1J5&qHMaRcPO* zQT}ZgpL8m<5m}gHDs>&mZjrUuRBE56PQResy{1mkvHL3=hWMg6^KObmptLz-EvAm zU-TH4?ci5*2Orz5F;^1kyLqa}!spT7@(!f^!=j{z04Eq}Z)Zt+`xReWhkgt~S-!KU zhP6{*==Knvh-Bg^tz#=%10)tRey&-ZE7rN|TJ(vXi(*{_#?>o9J`d3nFhVH7m%<>} z!_g~?!yke_Y_WHws0fM95$ksdhb`}`3`>hU$huB)qeO;1Q>+Ixo+@dqPonGd1Hjr4 zuGT?C&SR7#4xj!jK)ph!Lf`{`1&#Hc37qW58AKuS5yBDqX!%4--=JVHnZt_(?;?H? zhmY43@I1e=3i+B=#NktYWpo_Dld6o5_${Xdtn~1D0a@vprTO_b&d97j*;&v77fbe# zMrL)#&O&igo0zNW=%MV9w&3rWo1wLYy!iw@QY!sPdn0z}IeMclAiHDGr2ao$*zrS% zyn%o`x8Fp;%{@_Yb4(OmGf@~4OcdPEL?J_-uH4W>Aw#ZFZfK$~L{AjlTQ)HdEKU?M zjMd5wO%#T3qTq%m3Pa39!QC#N_ns)YnTdi|gx-NF&z^f-J|_z9_4HKmF8-)OI=Htp zV~S1zpV?OpZe<~rGkm?T>g3aFu&?SA2tH8_jf3y!a2)m~{)G2cokA+76#o@}M9)aFr|d!9&}bjF%&7GfAj@JXJlMGG}g8@y{~UP6mhl% zB`Q`p&LBp(6jXW&D!l}+lgP`6tV1k@$?C60;<$(|dF0aP%^jBBTvdRyll9 z#Z)@IZzYFIZ(PmXaeALis-eyB$Mlym{Z9{3Lwi7A*6R%U5Q935aojt|hRK;VT$SVv zw?ZD~-U@zSFFdyb;Jb_$#D;By^;5ydw&aEL>WO_)G*+SU490HW$`mVvS%< zSW1L!_YQ+@!%3}FLBvhKdAZ{=Bs)G{ zc4~Acn4C3|2F`$aMNHFw8f)ep3MN;@>Udh!`N%6uDio%(0egCgBDhTNc+K~bCJRw z5h}7!^3nWFC1a75Wfw>Nlk2Hla$~3dlrs0k;4R^mx`Gi8)Kf9Wb4MLb#bX3s* zbvB&q19U2Woi(u;au7s?>t!ek`Pqpq$W;&ecP81{71ZCMqY=)q0zcQdmso6arX4nySVZ*(TALXD|abohZ=Af1p$SHV0lVD zKEq7G6iYUg1o8aus_94f6HRns!nZG?OQFD2>q1uRqHzB)R3j1TchCcvdZzmU zlbjNhoZ-4>@CtqY5z=v#hC7oo&5L0`dG0(KncaZ#$Z)vF7#(C33pA*LS%sy0hTzK> zlnbk2sG*FNifk&OU+WJDm1feX5e-DwiLwas?(rg(gBp*>x=VIGK8aKGM`@shFs2 z!-FaqeDOwPf5%G0-?4CyS!jB(@}MkP`$pz2lKxdTsOLt`nCxm8^q85D`hUhUbt_c# zk+_9Sj2r@o(7mg{V3RImD`{s;HRIQdPTp zb;|-6RkbZuEpuUMSzX&w$3Io`YHR1!uAWzcpHmPee+B5;N9}4-CxTX6D`o|3BBQoe z%Mg|c+8am+MkqEW*w%M+Y$xIG-bwCvXRjaYljkGWQ>>~gC;wRg&k0qGlKduUV_C&& zL%=UtPEiziHxs3QzSrYd+f|6`GdkXN zIpeLB2W9;P3vl>xRVG#0N^96n6IhyRIg&Kgs`Xl&{K~an%XPg@VP)-QPH|=H0;+3@`yS2|*cdRqi z8{zfzt+{WjJ!8y2yjOZ_>|=(1;FNgjZSs5EURmmuUg2ZgcDC9p%e=DQ-ffrld9|PD z-`ws8&gkn~-FM${eXH-E(6?j91NP+6_5_@xw=bBxbBDJq{15b+d0uHY^*HC-7gpBp z&01QM(|<0a&U2m;!d<*M^IY!TfK&hW5z~3vXCGE>SC!c-%Df)?;8J^XsXehAMLO3j zf6Ggt7ACfBwWpNXmBXIi>W%k~erC^Ga7}FQ^(wq2Pk|&BP)AlK5-rPDdo|t1+ozWI zt?52~W{bCD*IQ3`FL*6go0puu%bV+sUw$TNkMCH1=H`}V-do;Q+NbYXHhtGCJ5Q?d z%AKtj9_#!~J>NH@wY$ozUGik@^cT17@mltH%eQ(vy&pf>yYtZ}_BiLf>6ESV%Jz7z z_K~Ib;iX=SeROFS%RhQ|+mn!%ksA`YwXLPs$-mgE-L=dc+mY}}A>1pg>h-ENFI)WS z+8Hg~RZD+bJ7Zb56SYsVYUeL=3caWpBWmZbb|%`#ShXuwJHx%7)UIfSD0_nC^muPN zLw~T1p1rCiPxfjtuz4%0dY4>YJN@i!z22vOirj(m#PpUud%TM2wS6_Ux&^-Fwe)$H z;_pA~iKWQoRwSgR%&sZ5=i+~vJ+W+hi+9NmuX=~>gj>D7<=eKR7d__7_xJ9h<=?lz z;B-Il6hDtH`j>wG*mFwlImJ)*qCfqtiDq-+QSm-sY4vZ@9!hV&o0>5v9&>v2UflxVgid_~NDX z)%HM--+|4&B(Ti&(2%?ZTlxLo{J>T^Y}0n{S7=h&>P_6*M+>4k41aWP-+)ZB)xkM) z+Z+nW&R2eQsgIA5VC&Z2t==CVyWQD<3i?Hq@YyeV)4kfQ_Uw`;kfiArvZ2-M`G-$J zyDzNl@v3{b+Q*kXcKcSZ*RC2~V^13Tw0D`;y_)#!;wKUF`F0*g0~hLwuwsCyX$A7^ zm{DmaRK!8qXMcp40IIn;)2+2A9&fof7o#0?iLcm`${ydg9Y(p==RM#pgi|e|T)Ua^ z?(S=`CzN_G>_Wrq?L)8gf?ZwebhDEf_B{Ceyt%7aPw2I)hu^l%DQa%@YT3(biTLZ? z=RLqqU}$BFZWwoa+b(17^!9oe-G)9H9Ozo?s?r(gI*KaSt*4;d?eQa9`W~<=%dYh% zFjimQjE~KDuXm?CwRETcp?|LMTHe;d_F^=4w)WS18oICN?Ssk?#N+2moL1X+TICfp zDQ|q4J$>|^z6ZSJ_SAA`*qyyj!Sg$JzUA%mYF}~kn_FJ-#&6TLL%#B}a~DCNd@@im zFsG^Cfsc9%`mV4iT_wB)_B2n#~xqbD_?(P@v zhg;9qQ@!2xv{Fq$#G7c}bXP2`0HY7YWf>Q6&`*oh{jl}^*Ry^AG@uT~_t2;MQ zof50ZDe|_UMmK-cUR3IJd#m}+o`T$c)VmzhNKE`nP?jI!hiTIJUXknaO|ml3^ba$J zv9Qb^=3Qzp7#cBjK7CP>gU;tHphU12KOd^VJS;=!iamdPB;s6{M*gDBP9|)=^6Ec;WuhIq1ARe}0HQP+XQH zzML{(M>|V4>AV0w7oB&&=c4l#_+0eo2B7l}_+0$F|2-F-H@@ehPZ@yDOWkwv^FH@n zbY9_}i_W{-bJ2NUdoDWfYR^UI1?{=$&kR84eeAjTdHs4WIxk+Y%~6iLL%o09Vfpfo z^y(b^ydM4Z9CTiR&iR-!#a&^Mito1a%L=90r(6vOmfab=iWpv%My`c@!M zOhJW#9 z_cEZm9?+fFzg-^kXX4A-*H-7C^XfD%QW<&dCn<+Fp*4r-^HDy=?P0iu`{=M6FDcu< zpFb0K-aEE33CNC13n#0|sp$G13L+*zDGU)Sj(0N7Ir*hDFwbrFM=)6Pg zh#Yj@k~KUBomXV#qVtZdyL0gKimZwpb&1zv)#u>n-B#rxev^;9n(F$Gr~|xzisLC$ zrUTXQPP9RNWmAZkc}hC3Kcd~pFmzs96fPq}=e0%s`!34iT}ACVHT;qd7FS)p(YKab8Io`cS#@VU~+6YXL8Ky_d=m^d5k>L;6Y zp11DHLFcLITSIi_1NnIh`sGksnMVVKy9NB5#PKOSliy4$={$urw4Z#^uK@k;A%0UQ z>Bi$jMIkpMi^qi+zy4wH>`%BI8-5<{`D_k;p3^xj2c5@r!u=G(VtjZY=hARp^2fq- zQ5#-DU*%-<7|W7-Jas3YIs&BTlP@FPP044qo;e4;sAc9cbZ_0k;t)H>ghgH8?c zMzk#>Cs*Dv4HHr6IMbRMlEE~L_1&max_>A>OEz<4mC>xt9Gu|M^en_&P?bf@LX6UJ zwm)<4Mdq&OG~W>I(dQ1byk{ZJO}L%2yRly!vQ9(e=)wlfMU}77pXEJsGC-eUl3US3 z2Wk9UowB@y;+I9wLPAW)Gwx4f;VP{k3S}n3?$Kms+o~JIB|qZh0OX~~ib`IZ$7y@O zOZ<3ocWIs=c8}(1+8*!{=YXAZX`Uf=kLDUgE*uBqe3hHLG-G1-Xg;s)fn4Hzdz-v8 ze<^m4=6BGz!*Yp#SJToi&HoX*NAo>oMwl1T8Zghc>9_}RAiiDG(k{*0#O~32Roeqz z;=9G&rTJ&Edo=&0?Ex?G_r=|%`GMFyn)7u!176|_G%fAYTqJgn=Ed3`@WT6mX)D)Z z1iZvYYFgT*$%f1NK$8tOoM*%j5qFp7pVt&tfr-1n!gacNAr`^GpSR7 zT;l&0SuV{F#qQChMrgQl{do+*K_8<<#d7O>B zH0O%lqj`e12fV~j6nB^AO0j!1>kaRv_0S@&OsgXf#x5@?$PAqhvEDsK3vn% zF3nQ0doHv(Sbvo$U4(wrl9kLJbN9`FJk zP%aly!f7LZkfxkLIMpY~GK`hZVZKgFGWH^*`;>JW0E!J({1< z_JEi8)#C2byhiLE&6a*;Oq>s7vYydATkIaq%6{KM;#HcKc4^j#-J|(NBs*=y|E6ha zm*$&d_h?SZ%jPA1u%@M5numzpqj|c{>mY5!*GT@mG|v>fNAnNb9`F+Xqqw^?cZuDj zd896vfS34DQdTa_xnlQdo~7*pFY$VDcWE|?-J|)awg%>10cb6uwJ4YFMG*9SP&xrFZJjyXlIM6((C_BEyCuyELy5yGQf$+8*!{|AM%?G;a~RN0SraaD0jL z!E&}CngwF_XwKAqW*`^d2mHRVsfOkHO;^iBv(XDMY(uCz>bw1TiGNSi(k{(=#qQDk zp|%HcApW4HrCpj2i`}ESQ`-Yx;*X2FOY;e_do+Km?Ex?G--)|R^Chu+G~dF;8|OPm*ovF_0Pqu4!~UDzZD z*9YP$O-s8pc|SAj15HU(}3-*3vS`~5>IIw@)u^e*gcwu>M{)E66fm(EH|3fV)tl1rR@PP@u$Vz zrTH_ldo=IX{#5K9&0lJJz)SpB;_lM?jo3Y!XL{LX zK|H2uX_scb*gcwWX?q}-_}k*{()_2`J(}zEI4R&IzFyPPE=?Jer9GNo*Ytq*qv}p0 z9K&^oc$223U7F2e_h{aw?SWk4cZ<7A^P6J#Xg;a!0Wa~V#NDO&jMzPzuV{O~OZ-)F zcWJ&Rc8{ji)qt1y52VhzH189;M>Emy8%x}utGG1%Iju)?jIPUpT;ls_TH2*KR_q?l zL$p2MB|c5uU79inN_#Y?>$)895}%=IX_w|Kv3oQZYkR;;{Ah7^X)Y1FNApc>4|s|1 z5qFp7+hX@HZeu?uEAd;n}pVRmI7<$XRI8` z8#^6usj z;c#>+3^(0F3DErb28Di(Dhgrb$LY5a#Z`a*kafOT)%jFQ@70bA;bY-)SO~B1Icd=U z6k1B^_!mD*u^qV~{7B$l2wwucD1@H`Tt(~n7e7l+DZ_Xp$<=lIi=U<1XoT=I(7d`j zQt`9&ty2?2_~oFsgzzoEH-+$bZb@
5eg>rEhA7S{PBOE2U9ErfH*`b-Ef1s>)f1$;`#oztGo z`7-~FeihUIX}BAGDB@fD`M(9Y(Sf4-SAZMcC*pi}*XTPDzYn<4b0YpIaHHQu{2Aaz zuZj4tfg61$;;#ZXdQ8Ok05|$e#F6EhAJfM@@$E>T`kSP$nE3Yjne=iP$vgc``X~4E z&*3639yRVq(0zNI-Ws>izb^!SRtR4X{J{{;JF|Ghsqxz!}xCo zZhnmaXMyu#J;Tq-*?F&?!EXT0EAPi&@q2+AeHG$A1kStojJ!vH@47~GQ|SIAaHGdU{5jx8e}wq&fSVuFw+pz@8y^Ap zzXCTpxWwNA{xa$>VhkM@OZ^M@gA41lh!Wr)5^i+3=spVg)JD-;C4K;KqpL`K3UH&Z zMV!NZqc=o+E^wopPJ9{gv;6ik9F=PoaH9)K_p^W-y;9=s!1-t;^Jh5nmlq2f9cj8> z0GyAVh`Xb%0d923>HbCFMvsp8*MReqSQuI!r|m`uobEe;H_Z?7gHv^*%S!iO0Ov8* zS@2K%_rRxw_&F^xI8G|2_x;CsSx0Qn~ZH#)4u zX9ACg_-lb1eP6mS0&aA_i7y9k^n{6@2;Asz5?=+}=#UdX3%JoyCEfwt=<*Za0Nm)j z62Abr(J3T;8E~V6Mx09$=Ij9RF90_>w#2ssH|IKte+{@fvq1cA;O2}0@$UgQx{Abq z2;Asr6X&vqIU7Ly7r;wG`Sm;Cd^^X~mp=plNyz=5z>OX&{actA8NFHJ1;EXCfbC@% z@RpNAAC~UpfuFZo^aY9Y(Nv?WN&Il&MmLyv9dM(IOne#e#s<+JCw?Mub5?+OEATa; z`qmEoH+6NWEgW~_dk);_?UMh~z>R(y@tc5~AIIsp0XMptbiW(8Ie$a^A>c+okoXh8 z&3PN*F9A1tmc;)IoUh56_PPgnk*d={GJfv?H~OjMcQ6Exg5LrM+xIXI$wTQW2X1u1 z$v+Ob(e)OXs@l$}Cvp~ep25xjNiF1jy4)Obw zAHUB6H)lQQ{zc&H5gvaf=zqTs-01Aly$|>rj6a&;PW)luMhBGmFMu1pVB)_8Zgjed zzY3g}JEI%X`NOSza|VU(1s*=1q53-lxH&gK_ffzrLisxZxH;!Q_sPJGE-&#K;Ln8Q z%>r)pZs}eN+>CEop7Vk80&9~$#{)O|ljL6m{OM46HUl^3rs#eSaC0_?_=UjhFBjcb z;@g3nGeE@oG#f9^;E&-y1l;JN(*0@R;qrJM_Ox<3Y- zm#Ulk^&D`cS4wxP3YfEE#9sk!&Lj~3U*JYZoH!qbH)kb?{~Nf`&n7+uQ)r`SO}rGi zIdevwdfVna9C34H3^hIz9o=!YHXiScwcsh;7Ny@E^lyV%7Vqkax2Y4lk}X&li{YyJ zjJ>mULrR^Rd159-;~n=g5Ea!}eV!QXS$DHEYD`|VYix}-uGLq`np;r#wl#hGTD>?2YOamu+ca2? zY(iEm{|1lD9UOfB4i{dd4EXvqF{l@J1(;kJlbe|FqE&e{R#~I3Vrf*t8|ZDxvx4Gh=T`auL*bsBgn_d-0|W?q>y^8#_0|(!M|1GyaH#{SgoO({Det zB$ZrRka_vqJf&?)4*3;4-Wt5a8hSM~c=9xOz0`N+)1#u;EboT;cKuqTZS9D)gclm)?@xN51AJmd`pdPFK8Ik^@B~p!x5n;ApF8JD%bK3i@{hy zct1I>ByaR@Ax9*5_kM84zPSWnnt{@Hj%V(s_b;;#?o0R2AE)9SO|f_~q2%skEM}uf zbVJ~odp;P0`|Yz{UhM2bt!qZxt50{Q8tVO~DlIJZdPh@&)hec+UzV1^>rC({rb7K- zIn!kQYFd}CXgyowEa%`G<2mYSGs^yTRk45X-Csms44vL zp9YYyYsKO%{arucdlexV2f@fq(}vYExMt?XLR z^wHbu640L$6^mhe%a5)P4Cx8@Jq#TcNl9hOWJ7aXcd9j( zZo_AA&h%M_OZ`FSH?Borqbr*F*e8?1@ieuQEu^cvLw`DT^+eSCOp3+zt{~H*Tc~dO zx;s%Zbb{<#O%IwY*JQ-wk8#-f#bXUK^<(NWsb^WGnDd>f&?8sv^>~}T1C5_U1AOg! z5-1@yt@@t&M4KM1n4YR;I{RAGN>*_5o)ZTTnHC#*bt7B}P(|^ch+^lF$#-2-GI!&5 zv?p|#q86YOAzwfJ3v)ei^FC_$Q8Dy%Gte`qGCiXn+z$R3%z?oi`2Teda2tCxVD^6) z%gT@OhuPvs{`d*wZU6@aO#E!eRBEA8*6R-nt7vOHdJ%Dclz6JO;;5&ft0=@_MAHcnU?*o1S;N24U0qzGp0Qe!` zLBK-*-ZSwdz$1Vk10DrD2KWhJC*X0wPXSK=o&-DvcpC5w;AeoJ1D*vu2jCqQ&jVfn zya@Ou;8%cO1AYVeE#P;6-veF(ybSmQ;E#Ym0d@gi0lW&>4R{UkXTa-#zX1Lh@K?Ya zfWHC$4tNu=2k;i)ZNNVO{{*}Pco*;<;9r3E0sjVk0QeBVEBx{SyceSoPy`qX7zQW? zlmLbUcuz(tpbStB7zyBA8KVJX0Q&*<2aE-b0~`Q25D*1a0LBA&m&QcEB)~xc-lZ`G za4=vh;1Iwxz@dOjKoy`Gz&kdk17-kb0(i&9Y`|fFIe^0fM*xll90lN=8*>5k0CfP~ zxv>DS5U>ca7;rS;7{LEw?_L0-DDS=TKfBq4WsUA4pj1&84HYVdMA3?XA~1*w8i)ZE zB8`xRq`6=+t8z-XI7!VgT@P=or?&68i1hUS+S=N%)l*CeCRi1MXiKZFjTCz(-90w7 zsieAP-|ugB!(~IDf7^e(eOG_8GtYfKGqc$+m&`?6kGKJGBVrz6K0=<$aWkS2u>i3U zQG~b!QH)rGSd6$8aU0@x#1e!&zoP`v|A^nuV!jk{Ct^8b1)>Zg&-GY|ScND@R3JWw zs6rP3Q&Lo6rcbFC_n)UP=Epypa2CZ@IDJ@BU8`EJmY;H2fL>L1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP+)L@ z$B^Y4JexTbpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)Ud1Y_k8DL?@VP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo z6gaVf{QbX4$jU!)Hd84;0SZun0u-PC1t>rP3Q&Lo6!-`Ttj6{K*;tP=KLYE*RiFR` zC_n)UP=Epypa2CZKmiI+;KTyY;QYV5a#L@dQh)*!pa2CZKmiI+fC3bt00k&O0SZun z0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP z3Q&Lo6rcbFDDXZAyfH$l0`xofedwEAQh)*!pa2CZKmiI+fC3bt00k)Uj}dqZ-HiUn zbj4mMKmiI+fC3bt00k&O0SZun0u*?k1m3{&|0ket@B7q0yQKgHC_n)UP=Epypa2CZ zKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+;M4;0 z{J)D(?3_~rP3Q&Lo6rcbFC_n)UP=Epypa2Cv zpaSc)d2?JY*OAe=RhE*a&ig#x$#~B{GnF-21(7pO1=Q(IzLUDa<5h_Jvz3y-{|W`1 z{710x$U`2l#8@Ot!d3he=U{CU{M6vnCf{pP!B*s+K+vxF{ zv-3P1o;(?$UF}w?V|Jc5nT0Biz3(QI>0D{oo`o`|)@#)FCc}BrKt|n5rEa5*I;gC= z_hW*RYTa2Ds@N`nb3?W?IL#OK7*)M4q_(G0RP>T`Q|T@}dG;A-tg$8RPc`-F{TqSl=gvh%QCqhm%P( zq5KU8Fc)2wQKnGJ>_U#^tmej@qIg?Lq%_f16h)r0mgae_d3m|kEqQ?#HY`CZR^tSz z0yMC!Y^Q;#vIh)ImF+$-RkrrPRCx~Nz|^59O!b{0)qeUf$z+A9P=)qL7;eTMWW)m< zS^{NN%xh>~m!T!FLB0NF)zA`t)6x>pwxN`z<@%cgNNb~vvrVy{FcNtJEkv}eRUv2*)d3J>icK|z0uP8PaCuj#hK9o@qnNas zP~lcNtWu3ZPPRN6wY0e7x7dj1c4)oQFb47yU?)wjCo0PctG?&0$IM-aI&rAte{>p~ zfNry7yP?-Ub4OOO^zJ06CU-SC3de=UWhK-%M%Szgmx@=0p%|%xS zRc%@6ieRX=rYiWkvNdnqXac`KsXZnyRYOYNX<|y0&Iz zZE00dFRQI8uP)WgRs`={6D+%TdD&{cyrz1vGNpG`*VI;(R#vWYN=Qq5QGfyzpa2CZ zKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+;N${> zUH`wiDRuq-_by7+@4xxIX|f0kgB~-|O}NMtrhd z<*(2H-sQS;g*yOdpk4b0EZN`11?sr^9v2Jmmy3kEzln?6qkBx;D}alN$Kxt<+y#IO zfaOwcsec+OqP~pFZbH!xttTi=B3s&yXg#T`xqGGhOSp6$R~>g~eaKR=@kdL=k16#q zO5w6)sW2677+RkT*Y0d?A|C`=FJ$n@3G?uhnk|N2PH#i)6T ze)5m@vkxnMTtCtj(u8KTdz`XmWlquD>)2lDVK-zpCqtZu+&*bn?iP?CK7mrFXftxO z&HSTn?!i`Aw_7#>TKOJ|U|XS0w7=ijIXQJxf^%*CtsR;@PS!$;OFp)ZytQk4^4qoD z`54qoe$o56A6Z?JCD*8<&6#L3bw`C-lM8|*vh0^ZAQ!45|3W9mJK=F=z2hL+WiXnRr{x=)(5pxv(Cq6UTOyw)f;4^*v73Ze%%Yx;LG*JKxZ{a6>{IH>YfM z+UUXDSC8HrAxGeh)3d$ybF!1*Hkc##EqJ#`I_^6-dfUT@{u>@Xi8Kt~ziopY{UIFm za`ypJvSnFrNEjjac5JLqI6K_l^j_3|M*(i#kj*L|O#N${-hJf8m-I~=Be2Ib$z2F& zudl!3GiCj7PXTUh(Be(*)D0wwsajy|Z`0K<5UJqY7m-Ncwh%j8_IRo0+<%b3jUH0h zxtmDpzV6)2@NC;=Yox4mQ?6TXFj=&?$U1Kn*2j2P=`%vf8@(ap^Io++-@h$uZ&&Eh zET2p1XKcDL%YFu*b|I@MCziYEMz_5!wd4tzMW|8db6HDrV^1wvc1KB@g|$xRHI7E3 z&QTUXACZ!tia;{#EwZPfBJP4P`c(Ml(8j5qL+a*+I;0o0?X*@AuyxspJ3T0)Us6~R zC@QpbQnha1B11K2=9(jA#=p(Iw`Bksnk zRJgG+k@~}n?LXnZqcr1K|2FM#p)Ei5(!&~F5h#?k?mSXRKOs(02%|r``F)`&S^7}f zkbfv>iMh@FOR%?W-u#iie=B*2_iy0?cCh=zPI3QMt-c(49bXin00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFDDbft80`H2u7=e4|D9*0h)#C?|3W;vO9CfZkDULXf#n$wd%O~3 zk(`gf>1!wdy*&TVIb(+tsgcG$dC(uuL;et_4jWtayr{bW_~!!Ngkr}$+fN=Ah)3~B zwP^+6>CsPQ6u&@<&(8CV#uE>5T2ju;+V`PtNxRH&(y)Zb4PqL-Jfre~RKfH!2%Vv! z8k&(+wYTBKBF+jr5BeJuotIJf8&dbkGYDhrx2%FyyOO7q;bDW)mWozp)Tu?CG(oB# zXShp|>Tk}jMEz;5@Yzv4qt-O!$3{l$Gm^(18Gwv-;Bx|(Vci>3Xl6?bQRZ3cS1ZD=^K{uZt~>KAuteaa4}o9(^Js`D>CqE4nQs*^uN3(I+#K zDi zy{M2r;X5jt$jJN!G94DV%)ntuI4p@YOTuAEoS5ZnsC)tzLy`xwR7&zdmSRaB$Z|E3 zKl}jD4+MZ+~Gs>+{fiL;mQ@k>KZ-hJo&M-c4fG#tXlV} z>#OT@Je#q+dS$S#d}VcMWpEXq_gGn0Tjx`A%O?cySyifETo+tZ6Rr(bmsXWs6I8QG zt1nKsBPqu}Msgyml~q>OOb9AGKyrCm9oms6ONML9Qk5bRC)E?rIqD)2xVa{+6!XbWwk-Q1`nsK*2}BIWfLc&*P`P_ zkJZ$}wbfWHpSrfPw6^M$9m>xJz9>Ke3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt z00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP~dMB$S=6`vdNcU@tG^9Tsw2tY;DeU zbFaVQ#(DE^y18({!lGM>7cIW^w%h;KK3Jau6rcbFC_n)UP=Epypa2CZKmiI+fC3bt z00k&O0SZvy!y~YC(ux1`1&_XJWVWV1<;YB`z|lpg7|J;XmmznOFSvH;q=`#|!KJ~a zlVs{7O%Dc_UG1cy%+j?eG-;_M1To`Ge4jq@nlE$CL}uhcNqkX&0u-PC1t>rP3Q&Lo z6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u=a=2=M;?56On&FeyL*3Q&Lo z6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZvy11-Sw?;q&R!@*I20u-PC1t>rP z3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&Ofsehw!bRJ&#@L^7-SKqan2_~p zqu!(Z4L?&G)+UvHb;vp|RM7H+^;0y@`YcQHjMqFNS9XUdpv>9skh#>`F*`@CE<_n~ zwkKrH&V6F$3&Z{Q{fBx=t&S}US=ph27ej|8H{IfMW^_-}EvKQ>)Y;y8-ST{Dw(t0c zH{Ei2%YmFt^L&R}y?ZxR=H9+=lYUwu+Ipa^;FTxbFAT4p^ToCYw47U8yRuzc&S%eW z?edtd1<8W9A9yA4$FEHE>N+<^J+?0lvl3|*6F1y%L*o5t|qF}ed@Zhnku!htaOD6YPGdB zwdyICdg6>10&_Nbrm65-Z6ESI$L)+i=>FYmxTq|5GMRKzJSu zSsT7{l0$Rp-(!{EDQJ0M{{x*5w5$x7pHAc{75Zt<1(=%gcULxz>_fr}!$Wo{x_Y|n zDy4q%UsIJD|L6Rc#2>$7Ka4@!Uqn`K_d6J$H9OC{RgG23YztxD6WZ#*0`>`4+mJJ!6sTzdf)L*@%BL&;A|wRcvA{H~ERFy{}pgp6G-|Aj4~-<^GtQeG8` z1{B8G@<7)E_5+=kCvU5aa!W79XYMqg*&<7(C$FHTE!~9KwN*0vOGcdnC>e?dk7?+4 zVYEIf)nC_Pr@#A=f?+u<>F(YQwH2FhEGn|JK*(%IR;!Jpt94UxZpbR}+MBTM=KcqM z`NHs~15zzyUy78b&Lwx0NWG%Pi%_xYnN8ZLmM(Xw)pj?vZVHb`)eded^KQ~chs+Lp z7AnbswLMFjeJ>2J3pD+vpyh?(HyMYO?#X{8_Pdb%tHWq_{~gPgq#E8-?6prvttYO1 z>N~|a8b@q=xA;5ZGn#($$gm3=TEat&*Ii+E{wpE-QKw$I)?%slbEG`sePMXR!SIl` zTdxVbpZILkZ$kDOBu6UqyiGkbtondCq@bl~SKc*N{RneNOLtDw^G!C=bDi}4&M1nk zrPz>7sJ7uCun-(O^UDr-& zyXSvyH+z=cvCP@v)_kwgJ=FN~+4l^O%KAJhlYL#^963ccfr&=t=U~@OVlk_XKZXDh*v;Oog;uIM%thLJ* z^KTKJ$b(p$o+J{cbk_MgvgM;-G&(P6F{aDBD)B$q(pFsXA`TO*eUTORS|z!$A)7qs zG{(i>#7BQ8Mhc*I--Rwyd#54^9bt>wM-fp@*Lwv0;|xjp*km z&0j{=j!ORJk6%xu`f+`tWsHWk^G3>g`&H1O*J*H({V6neyZP2_<}b0?hQ@L?X}Q-o z%}ma0e0F{B(FWQhWqpF0I*4SGm3WPJec{uMcy7h%_J5-hYILm%IRc=!j4z=G&(bR{85f4Pdxv|-iYh4@O8Ea}@{S2qdjzT+v8nJPk z7PunUx{&p^+yaa&%(tkLI^BS=z*N$Q!OYZ+x0=bH1qC05h7keYnG1Rvg? z%a+2UWH3!Xz+B_AdR7Utgw{E{M&n~?%OmK+|6jX|`Vq?6mHiL=06&Rh>GnrT`=2%E z+udQLVqck(y&p~KmlhSR+Kifo_N^FL>d=0{D)x3{e+#K_NjeRiBc(K&M+-)MuDbU$ z986QQ{}p9who#m4pA6XZyQiZ0Ee|7o(|p^yTn1(C*mq##J8B)~w1ap1I<$i_zpwrv zny}^{#3Aw3L-hy8?;XF-oF7N6eFvtVC!I$gM3+O9S={4qxEKeurHwFu^mKI;IV3k^pwOQz_6b>eQ)(yj9Z0ro;c)E4ELOVxStsh^8 z9=jIptshfZ=rph>8O}YXiQSHkG?6~cKY<#NucU_;%Q2k+8`EXj3I{!Q{v2Tn*KU}; z!!<+|>*sEm{-QH;=7#A9oSC5;roSaK;hRu8>!x+19q6LMY-tsvz|?;IUFWEaU6Nj} z3Ri{em|=b9M8mSe4&raeAD$W>u`bIBkJw_%PSc{_Zk;FFWBj{Q{^Pqf4_ap0)=~B}g=}b?T_NM&eo?jL%Mxo?h z?n`^pVd*513qQPSD>x!|fchW(PhT=6H=g$qtMkBbwt$&*XGCd#h94o4h-)N?}K= zP|5t{-6QOM32~I|S8vS;gf>PGV?V&Rf-);7sjM99rhtWm(Gy-?@ZzS8JCHXmTlY@$ z>z-+i;R)!&TI97<*2Z?^m~Ly4$GA#`hhQ9*ET((zz6A%%OrtemyyFS~By~)jg(1e$ zy9~A~j*pm*uYT5|Tz_+eOFEMJ()}HytNWq{4a1zCvXHeXVBIv@lJAQ~GRtak z|4iz*)}3R`$(12z>%)vbzn(k25v}XlSV7ly@M`_3_e}t*omNpuPnS6;UIcUy*)zspa7Bsc}mX>E~ot8Gv)Lyc*38vPy@hbVO)JIt^ ze{*N#z9m?~r`X+rjqiM0M&NCD#ox3WbH)@E&gpRdCuS|J2iwn;+I~C28g>ceO4r>5 zvZ*vX8SYANDof2MOok8IpLBL1*;orLt;_gXa^sbYwMF;o=}$6oj9nSI-DMSbnfv9J zt9JjkO`DJ!c`)#ZWS+jsjYFzRQ5w7mBNi;dM&Dj>_IWc!Z%Q0J|Xk$E2J~ZXW4z@@~_7n0cf>%fO z_tJA_V;sG2k)Keh&+U%v4e2a>%EHu#U7`Ii_)Wt31lNZZw4??vAN$?E#l)$5^pkI^ ze4KBQkMG7;wl?4`JZ$518Gvlvu)q5;>E7v75<0T`vtl#-&Ci&PHb!IaYPAE#bZ3ZW z<3Xh8V;f%ykFg$-u}=A!UL`+i1F4_1r}>-Pr#jX2MTLct#srGstuOV~n|kY!w^cHl zRkC)gr0G>o&p(zXlb6f-+gD=N*qLvgE;)@Y{>BPqrN6%Qf8j9VBk;lh2);=>-#_s6 z!2T^tVVAn3!}(!~)lN{91PU7E1J zc?e(C@MX14ew4`Y~pSNB5`>=Q{yPt(V+0QW-J; zd_?3Q`EqbZetJ7PUk^s%>j4g$qU7f9p=D=F`yXn-?%2QD&et(~$0^RmSINd_?;RGI zeNM8qZ>Ve6)NEm`J)?iW7$w8}6dE%-li?9#ljyniouNgA5sxp+*|iGO+F!*A;*-1R-L?XVMTJ4YQS~N9gV&m`Mq`h>HcjE>WqdQ)x8H@ zM{fP|#&^YG{WV)gBQbV{Hvr$>IIpk(%7>!g~&Cx8lB4N96p-}<@!ZTqL3*MqM03!V%% zIDdq+KwRy(@r9u@M`8E8{ku!WhXFQu@d*7TaZ~!bi+#Y=(};E_}91LPz64 z%wa~whT}WE^TFhlG@T;Wzez#=wvnC%-raFWiz zjGxNzve$bGUWo-#t9lMHyEmbyS@?Fk$uqp6MIVlxMSknB-~L1Y4tKyB=|RI0&+zGo zvtZ(U8^7D1Y69PuRQGjg0(;NM1@fy_q+w()Ix4j9eamUV`7$3V?sfet@^6yS-r!dF z>Yx@bEG)8rhk;|nM~{A4_daND_^FhgWcEPP-}od{y1#{q{GQ@Ec9=IG8Rn3=e&OFn*P9ba_@s-6ZB^C25!h>c9Gsq9SM zCDK5nBwG=gZW`L~Y*Xa-nA1l)a;=5-f8kJZ4%P6`4L_BvN#W-$rw)GO>S*ji3Yt=} zv#f~BTMxa8Y2+54+kD7bc1ldmmZ8<2x9K5iA=O!G9Qfv~nuc}n!<*$4ZSC{fpNHtt z{h_ht-ZPy2+rAO$_zm^EO^r@7&I+ZPk=?w>-7Wv9X8qXd_w-)uPT22d8%LZmZI``1 zWH@j5$KiR{)%@F+`rYlb{ceRHIbXOC`S^a}wSWJ6XPwO*TcnYur9<2y>kCe8*`UKw zvGGNJ<7s$LtqP9&)S5L7vwkec1%5y4ehGs;?x(o(i&(DwI|qIgXxOQtR$`s!{2sVp zR=WW;<)1a~z0v$tR6Z2(Yo`qVkK;S1w6AlUZCm8yar|qGUB50`xK+MlM?6Cd?Xmdh z2W%mi(~_&Crz2akzJ9pw z4Nd>&;o%G9_e)`vV@tm2%KZ75clKfVqJ!VOou3}zQ0m@@*!l;50&-4wgy zV*8qSx*PvP+Lt#b@r#{W@7qxSWo*qD<`-66RG}gzj~3bIIU6vyXz?o7jY_p^j}EtM zW9ho#yZp`C*QfM_%iq?v`oou?8z8F=96FfJ@t`xjd1c4!m=nOiq2etUn|gh$z~4Oo zNB-vGADX+2*RL7df)WwWeP#~Yd&0cQE2VK*nR7h;@8|fx-)hduEqJl}yC@|?)aMme z;5Q~`cb$TzsZ?XphcR_TJz15AZ?^Nk(B6H(S~d&Amfg@$JEHm3+tl{gQ7W z9)sE|kvZPN$Q)1MqQ&+d{i|l~2w#IQSU&3x4B>qL_wVqUcjU #izPV~UQzuPx3< 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 z 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 z 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 z158%0DKRgafb!^XE86^U`W8=E|67l;qtL%U|43K(H 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

oTlOL_P4C8}4UwU2iPk%|Jj?&RQyVk=hl83KD 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 z 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 K{=8o2k~>ZHR9DUJ>Dv%*@UeOC@@{4FeHA{ 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

DGB{I%N=@%6srdn(F8TX6yJjjj6%SrZ? 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%0A4;EhR*4^W$_`}}4{~p|wYv>~lIe$b_XE)v3 z9ICMDU?w5u4-caJsuFnGaeHNDC9XVc(jrcGS0r_8eBkpn!AIlv$>L7yM-zNtgO=KgNXQ24?s*Z@w@EK|R zcR4Tl8TNk0zQUVs&OE!o)rs00;$R`q2ee2DG_4voB)@7R?1W&@l_<63nNZ3+;5_d6 zjoI!zM+!7GhHzj*2X4S)M?4?PGIRD`5gg}xT4j%>o(al@pK}+@-Q-8PkN#v=fSO3} zHf#@yl)xP_XCHulyLvK(U+3u~o=7>t2Iqn52DM+9swX!;4L7c1FOIlyrX{@Y)2rV7 z#_O5=#PzP#N$+mZgMA>L+k2cs;)GS5bN)|eEB?fQ%{Frq_@3Rkh449t zUX%)_`?7D#tYdRhr~eXzT>(0oY(Fv#K&8y=yX63(8b6~DAMP%|=j=0juXv`rzMYI@ zGju{Yn|nlV2z?&6k4|Bd_;|*bWQbGXOL`4O;rNn}GILL5uLle#*{Lt5?n)F5Ig2mPioH*4mo#W zp)3y6-RtOr;dPzgcN}T*P^)f7-^$i=;9hpI;dK%KPZ&!UvWAPD@LduJWdgX02(L&) z(8h8|OUQ^oIeI15As|ox66FZU6R*T_1f(?+*CQZc5_1udCyt332*~9~Vlo1_$i^*3 z1cpf9A_Q=`q$SQp0A7rOGf1RtYRE*)yO-aS>j7v{qAW$pPg3RAgx?#Xfw9z z|Bt;l53H)V{=nxhFWfAUKoUR&c@a=l%)%z3fybsGs{$4j4Ow0m2uVy{0;nj8sMKl+ zYSmT+wc15d+iw?Z(5kgktXu2a9j$06ep@THQnm8?eCFJF_rCD3*nWTi{C<6KGjq&MTQMTiy8 zNb#?sb?zr@WqYyqq%G_IiE8m*$GtAyi-!0vWxTtepY#{jzni#j?KeNsbJmBULFn8! zzPRr`f8~>tLTxB3lfu)Yi6JnF&_Le9y&w?GS}{EkjKZ|zMZIPT^UGUU`FnoN*ZU$5 z!y#HygvLRQ`wkrN7xd11iS_#dEN~CBCnMg8h}WSq7JY#Edk$5LvGrV@ek^}(e+B*1 z{sW0DRG6;GL^5&>B6pt;P4C`{Khg!LfcJFrUIdBuN3PTv?jhTY?^A8{H2c@s#N`m^ zJ-n<=d9q`ykNyeJC&El*1{UX_OSBi!i;nvvPmv*&*B^CW30}th6rIya?6m%j|%8VDq9VD@j^v=ChUnElZc5CJNVLd!YC5qW>gFIi$P92lO5YE-O46LkZOW|(n&EAuHlF*h1 zwz7-%YkOVv@UHbF%h_)pP>2IB^=Q0WqU(|Se_tY{dxt|w#1)UvCDHnK7hgC1SvF^1 zkM4LescDPgg`nNPLobX~9gJIaGltH5fE8<_GrFv@IATO|>2>Lw`0G)zw^PPFIl98$ zMYlRXC7QcK&CqHUV&#eYrO@T1!9h($nciIwQ|^QKF8sgXYq!r!kpuEBOXaIKF7|J< zQ^-D3TH!&6IJHD|FQ0{I+_~`+r1tv9LvF zD@`8_d!%mPs#{j8`@?8?&F zW2g51pR`Ot$)nvF$s`l^Lo#l$`I&e^BJ6Dn=+^5k>HqT_$cyN#Q~}YqK@t`&KH!%CcV91;yp-{ZNDb zS`F^;tGnN&n@ws7ydwO8LRMm85`f)pS(@}j4nIbZgkZ^*FLZ#ir zB7waEYhurRTFGDurB2Jrz4G=XgrQ1g4+qvp_Jv7tPs>V7O#+a8+(Dw4a`%feeHOxH zbvFfbwO}&qrHI5Os}M6`%DeulJd8YLjy1x}gBvkn@n|#_4}RntQ`@;{Pkq&OMFPCAHEaF zD-t5#CePa*4f1R_B=>_hF_6ikA+eMx;!N~$f-BHC_Ci;%KzkDI#1u$(bm$W9{w-oB zXE%N`^vBS9iV&H@;>6H9naH(^-h-0Tr%NcRD^tG%ijfhFCb6lf>3FEFHx?K_IdGXe z{>6=#yWqoMBiDO;ABI4ai7R9rkS>G+NW@vcYu6Lq5$ zWyvvt;dSJ0Khtb6Yzex_`Ynbqe<{saYZcmEn9IwsUDc(NEdEduUwq^<%5^0Jdz9<3 zCdtn*@45jkJ($CK*P=7gD)j3gCGmL2VoG1Set)!mD1~Of#@DNe#;&e=5aed_S`5JF zHp1UGY9DC^3WN3eMvT>TWBG$_Ebet|LS`Mh<9Ct;({hmPw2fDIs7H-o@%ZfPHpL#0 z1{soq*5fb#)1pv{WT=B&0jhhyO)C_S_85k%M!vd$tlTr0~V5OspFw*6iP6JA* zM`s}=eV0|6s-*88tfYGSn5v}yI1h7oJx{P#VKKlcI;YIqmP( z7wGq1xGTCAYk$G(pGR;vy0`P?7$(9*jvdG2O#8uCgS3B+(hSpGyN-<%uhF2np-aR7 zK7Df={d+byy}oV@w; zY?WalPM!YAWv^-kX6@w9pLvn#M)vNyweKF=4pYkm?1Sgp$zUwB(ZGD&+D}evk90>q zOnHg>mgnoc`{<>%{Zn$U{to3_v>%h6{m_&HyPz`MRp@>n-KvpbKP1rk`4{=lN-ZzF zZAj^{SAou&dlcaQ0TuFStYGdvrF$(#kzB1R>3$b#wRc4KE1=n1q)(aeJyILVBX>W+ zirZdX%^>UK-v^|Ng3E@c`^)UU4-DANValw<=Ar>hm&Nla-kYcVr1dw~4raaivle=j zM1E)X7p(1|DN$y_d6?7-S4K^RVU9{uATWLoo!_Anogs-nzTS*KQ|0~mcZZJJ`*7v` z=yS?D_%r0a%4yh*!64kPT=q&Z(Muso!uxk zj(zFw9dh~Fyl#c?9xSxGHg7yg-||W6YSM>=RO3NPR}*0*gryiG{tM_w_LgdfsR1`LU;yN(;7(wk zTAhtZtn4SjHz)>eoK*E@vSbE^8w)7a-sJ8-n-8`8FDdioguVCoJ>wXqY`U z6k%cil-#TLz=tjbJG0lWE4Z6I!qd|~F2fe<$1H>2LTmT@5POS2jxxv{MBXLH(FXZl zBCiwV7=yf>$kl=zYmnCvSuMzM2H8gBTtS{}kQWeniXg`ub_%l9Anzpd z5IAHMGkhKQ6iO3a# ztTV`qi9AP;^#)l>AbdtMjhMFz=P*PfpUa&m?lVAV(PFSR!e4204#6$S9E?W26LRg+XQ$`L-ZWG|0cd4&*Nc zd6q%GLF9Hpe!(E0CGs1BoNkamByzJL&o;=rh+Hekg$8*Yk@bRHVvwteTp-9r23bwy zL_y9p$hkxwFUWZYc?yvQf}C%V!-zb9F&y%Ku|eh%`6ofHHOP-JP1(a^PoTWSAa@h_ zxF9DRFkoiRZ8Lw$%^B9Bt6w{(Q$b8QFcS@C z4lySJGs$31CFTfVl8ya%VmR$V3E&<7iIq4%JY*>6tN*fzhn&(}w~3=@48A{xb*nza zhN%Jv$g)48hxa)c*1LCOSbxUPI3AL-uCnu0z&o9>m%1qLxpkOxY&_rFI45T#4_547 zueVTW#lPV4cT2HrdS}0TVrt`t-+qXhM}O_z1uu@_9|@p#Pk`ds=Q_=ZgO)cQ0%;NtS>O6PWc?ae#jo8kXunVc`#!N7 zG&UMw6;kVNCiW&`F_Fo6u@}rzHVhM*6vK>Pe3$cV*}OdlD{8qvxH3XI4w)em63HdI zDA;ky4-D&pXoJsm z;erK#7Wm;{8Et8ew~-duL}m4gWL(4djCfPLwXzX(&53w*qM@1WS}N;;luvJLu1qvE z)tw}HGr6DK*ihG`#V|RWQ(0Z#&=gPRbivFy)1oK@9XnYv5GLLlUD@2;7FYUjbo$)M zQ)W+}rjkXova+tBI@;8}vMSy>AzHe6_|Vl^sahA3Cy<6(#U9A!$lNR=YOOYDuCMRn`%}YknvZptZb>E;0B2T zA*wOnREKmm8`6TnnW}~9WE{|R?RDlvefh@fKZ?))CvypSt$1QCMs35wxKcJwx%r+U#anJ_3_5W zDDuN!6c3bTWkVAb^xyr>oVRdtblw6#x*Fa_&gp+kM_f>G!P4U|J@jwsh>6Xo9ba;2 z0)~tz0h{AXSSzVNpZ`gzzlHU2bOvaIx;$7Gl`EqSZPEJ5#zed(l~zOlivPb`QYK!K z|LK!w&W<*X-gbEZSOS_)tIua{GdQ%Z(5t#4N#^Uod#nKuU6{lFUORJ=L?_n`R?_fKhEb(p%U5Fhd1`Y^{R+>Y@i;f&QYbtp;hBQx3wRpwT#n}}c<#ev;yn)kD|r5d z=K!998)NEtJQMLOz*CQBEuPJIzJbTY`vv@O>?7{OXp8Q*4Y6PBgJZIyn!*dCqPCWPGG4Wo6e>a|w z@Z{baQ^W9_f@dzCYCNm)T!-f_JSI*TXnzR!Sv+sx`8%F$$UhiQ37*M#7T}5FF>&aw z!qZf_GS1#(cv}=Na@~UyT1}{-sV2T!2Wk*aqqY^~WyOir3F^XsfB!9k|CYdiOW?mH z@ZS>nZwdUj1pZqB|1E+4Pn7^nO+M>aS~hC*n6cwd9)HT@DO0CSKmCjuGtZngd(PZ> z^Upea!NNu7d|~mDa~Z#R73L>+uEXFs zrnszlRCH8n>B*(zMvaS(I2&`-8CX%$_>;;;AOBzK|KFAgPaL2FBzK@QC zFNMz!&x@&rWdVVNKb#EbCBaW|qrv}4_#j{;e%@@%OC1wx_}_rNSqaaXA5&Kx6#ws7 zaF=ji3jMqYteFV^c#a8Qwh-|H_P+d!dzpCJShL)9BsmPT^>`99VFjhVkUg+buqOF zxiLTCfBAG1z8~{(o|-kkb@14V<-ZC7%!11$-sakdChP>L%K_KL6BQb&s9ICOsl56n zsp1JN3brN`uR6pwLk$+Sn-Z;Sl0+XKjMsC0bqR7O5h@dvT8w%v1M9dNk@f;=7(Z(4 zDM+;;p?V>)I9F@q6%DNys_OyPG_)n*-)UKzYAWK*4XOmuS5{)Jt+fKq3N;gOTVrKM zTtFsv4d`t}eQ8F1{|HQt-a)C*dkD%Rd+wnqZW3Y_MR5la`zNE-RCu_%!7UVZK7cB{ ziK5yyf!;u=Xl_xR0A+nYb^Ap9kO6uFMelP|)HbQtfT|8QQLxyqH&H75O%&xqet#RK z0^2C6i23npxHsc(q^Q%0=T?g0pyI&P$ut(3hKACrk{Y-?CqQ*khZQ3$GOW_6XRuB3mw;>|mPFJ)C|^J`nNZSDiq zg$HZSO%*fGKC4u{8iLA30Z{t(Qd_a9o`5L7#vYi~I32bMC21=*)2CrY$Q#aT8d}w{ zz_zzkv{kpp<4tNZAb6V_8`W|ad}F+_Rc(f^r4@RoTFru|A<>S(*QlGtvs!%@ zo~jjXEo!IlsYs|d;caiJsZ7Kxs@q$!X{Sy>8A5Lo?QK;kikkp2+wHCDIeJ+tZG_gM zNd44Ss~ZDgjV}7h_-iZnfa6hs&j8Z3*oyKiM&atFPGB~G`bunuHK`hSSG6`k5C-r^ z1+W#n$seI}djgU|QJ8D>d+~GUK@Emj!27H6YKMSKK}8`Jf;3lkkpPrK{aO6gjm_BH z;|2(*P*#<#b#3Yz0kMOMZ7KD0fl!?l_1Fw+jJK*|APnf+8tPi(iT2heH64hv7f!9< zA|_jV1qm8ju}g`r&mb=al6y!=#H~P>O`{}|*`BVm&ECHmW%n!~_IVY0uS)erDWSI6 z)u~GOYnoRz3A7DROM6?rKxA|kFt*}r;taHp9VoN5RSk*iday!2XrZ8jZd`Y(8-S`t zHdz#)*b16>Tk**!rz(Y;3MpzXQ6B{bzMEly7ySqPDpe)gs$p6_SJ+L5&Cz zsW=fW*hz%S);8-ntUifc-_TZpZ5MSjh$s^jOv4ZRa8rDhhD%W!ejZ5vMS!xYqC@`) zkg-v974ja+N1s4mMmjYb2&S4u+z$l$!aA%kGY+(`YK$%)laY7G!p~@H9Qt9SESZm{ zL`8EgCDmSCV8EZ>d1ijS?XmrWSmeD0Mn-i5KZHaa=I0oU+ylZ;p;!i>l3!nsdO%SI&RRdl}f-Y6Ske7JCcw9XK_H{;R#p zwAcSMjW*PntxnTvJcQE8!eEmFQf7JTVN8=O-Rk|ViL`h>ue4xDveNz+WYZ}|jL6dG(R)*##f*9;!0fizz4bYQ(dLMl)m}=wt~zO!eX!pPdNw=ow;!v;E;;LOI!c z5Sq!MqZJ-YT74|?V0n(j!(Wy#w|Z;lorv`;V+CE68F5-iSQmnx@y=&_#;w(ITSqX8 z-KnxM4q2nDBTv=fe3j!;$le^DTESqo#A5vAc&Mvc(sfwH$@Fg~xr|OzhqKmHEdgUT z&WWijLlR73BuLN)IAu+_OG9opj3zkXRn~OjUX$IRtkc(l#_p`ohSi3$&Jd_EyIxr{ z#NU$bTY4yKro>AiE4PDZF7uP)GJkm-TXb*|MsI@?t41 zmnp7gB)hXkWpYT~GuJX$x4x>gO}0 z?k7wk?ht=MWiCPE^M&BVzUJFR_=w*p@ zNHRDlJAwYJ5&bo$Hf_rKnXp-w?W-rpEX&j!b@>Qg*H0E=)ihj zQfkZ=JZfB7FA8l7v;7P4vj*wQ)`lfAYtrp0;;efph8Hh2MjeM7y4IEOUw;<%kdf!Z z?soKasrYa^9P}_wvWIc?sYeQkk47HZ)Z!do*K^NiUS^mw?UEQSH$yd`^g}>@mVOp)xq7 zw8C>tD`qk396S#rOyro9D#zp=a!fIDWE_baMGxdpQLVEq@?jOfmE<+w@X`il$~v2I z>`rvwjm@w}N|q&y-0hVep5j{BOvs8jML3g}9h&S~IetJC0cwQ{hKf0JEeEarf`u`~ zrIN!}v6|$l_}^8uYapn5JpZIB+F>geJHUe!E8_Y*Gf-!=g)}qye2W?62f^}Cnh4d? zdaKAHir)k~O`|!-hoTX|kAl(GI>SOik5*Q>Ma)}xZq(T1?B6=mB9|LKva$UfxwTS13!Um!OD9^z*mdZ+4q!^E9noy;#7+67BrOR%Zwap>{zdZJV5T&d#SX~x__z|)w z6f6U8Zf&_4UUIN@S`6n$$!2Ss(E5Y*Ym0b(oNToY3+KjPklAA~co&|pYm%NT6V`_o z1Nq^y7eUa=N?oR~B9_H4e#DIT8ur4NB<-Swm2X)j8iHp;1jCyvkYNjxKfR1$jj$|+ zEXA`Bp_y&fl}*)LBC}4gv|e^LXSPt0eoZCqY{{&xDJ?_yWUbb4LS=C!MEWD5$fyMm z&%9*&{n3S*ROLv2WFq$Rg&41_$(F@9Tk+hFc)fX>o*!DOtOXVWKF0Gp0{c7(PdA>- z1lAU;bFD`-_f;53@UTctJPvHFWs#n}fr}-FOjr|R_~pyoA~EZeF>|VEA;}kCuM5E} z;_ySLIqb9eI`ss14RGo&OiS^AglqjB`F;}#aOL&zyPMVvOFvgXGY%Hib zt`#goSpzLfeG{Hi6i*O@6)Ds^@yyv$gsEe5m}MR*ajjEPz?sX?bs+Gtvuq3t4|Cd( z@)mdV)-(UJ4=x1#Ue<4MH~$+5KFrS6?f)`~lW!g~Z{Q-RZx&4B+KPItyi2<7t|Q%gbaCaIwzWRla|=Z8EFzv+F~o`BqKq{8e2KVz8o38Iks|21e2Em!|67x zfk69}Q!2;;K}wd&1UE3l&w+AAv83#wgEB%E&&nAsbRz{TamNU*R5_^`W2VQ(!6ot_ zGp$XxpHdb(iq z{7L5-0v15Jq$HGZ#*ZoC-H>qg_;J{1XscG9JvgHU1;{+wM{|~()Hi#GfVSwH9Tl#w za!hRSw2Lai&U*$e)w7Swz{{_qv0-IJ+1QHGQe}@Y40Yaoz-@(CBm%V+gkNpD^Eu=qMV`=&^qY4 zISkTgF_f(}(6zFG%3`hBTK!xri!{wGy3yIAm}}R{Bo0enP3?`9SaDs0;jjdF2*}Vm z8C_N}Y77Rzl9OI4`;WR%hRb{CSd#btJ_<`kcmpj<%CCW8eOP=bcjXu?OZH^OkKEe} zt50ohK-Ak4GLX{_S!;vU{R(BDY6>_tpaNB@?9)s^$J<&^858~b%V=u@G)V%{d$g4b zc}y@_86YoHwy&=_AOJK~0`mw7`82`wBl#$0`zlxf0zhX-;6Oq`K0`1^W>mM1R`!`9 z%b<*SLyNL!3lzgjNaSoQzt8)(Ef|fP}^cac%~eQ0oL(3P3{Z1#v+} zBc>E)(AgGm#2PxbB<$r9yi5mcbyy*os!TnCuSm3_d$Lz*q?KzAt;uX?7S2r?mkW)o z$p9|dFDbiOSkx*4nYSU$rg?1 z(UEKwDt06$S7_essO}W;GgR)=$aN)T^z0j@iQmLXz5fRdR^>6kzMBQp*Y(E}{R*+z zj(It@IFvQm;-DsTDNfj7)RV7|MJa0#NiZqT*RM1Kx&{}>%m&F?REuQbO7Mhg(hxNKh)KN?5{^1wk zX?MEn$d`N`+_dl`zh^Pxrt>kY@+1GnkDOmugZ|rx5IGO~Ruq6u&X4>ZixI0Yz`!5+ z!jvCMN%^5<%JcllzVssak1a+WSAi+6AN{eE=#M3%f60%Iskq7Y3l<}CU|r)!em*7g z^Ct2j-L-J+X?IY!ElXoqJ$k>?)|Dt&W#cuiNmzr@1TPL@f=HLJUJ(g&%3jO&n`I5m zz_6bUO4s56HK>6lc<7wNF_BWdN_ho)!wW&l|7CZ2>J$I%6_bz<9d zWhGV{ZzUo6x!&1&rTKONmu2&{ZEgLI4y@@T)UcDN#BQqIhE>*&+Q2Wj9)F$z(`@Vs z;v5;yrWRn1F1oJ8%iLTi7HZL5BMy{g;@2q$8NW zAAcsPey@e$p{jsp6P7lhz;=x;Lzdr|TI`sh3=6SDFwpYLufH$-QJTzdzeEk7tp#IO zE9+RxVywCbR5@b;HQaguiQ1h@`y-#nS?F2;G^zp`W?0%p!-`v)J7fJB&r^))=cvYy zpbB-h)%aq#g{_q}4JgDK5u?-VkKJcYQty*AGQ9>rxP`%7oUxYs3={nuo10g(>y?zk zOpJORejiX3l(VP642%XN)V*k?@x6zeui3qrPycm_cPmh;yvQbAAqYpUBtT9k5zdpQCIGNl5VtXP<5 z=^d1BSQgi8$mExJX84Tm)mSiM9o*{|gIkD{@AXT-Qw6kj@fnHni}iwVBd0&(N%-8J z4|97y%D-Vk~;n0Xlz4vw5qZ82_rIDiibmh zLiF!w*zYHKwY4Iv?^}OGY2XFQtiB&`qqz>bY1#yZ!tY^`bJIjS+H=991F`b^tzk0R!oenKv}%?`NnO)p}y5SIu$vf7B}l7QXf zRCbFEI~L;Nu%zcEc@Kz@cTe*sYq@Qacb}Cp^-b`nJdHsdnme)khf$Y)vs#zf7D;E| zd70v%NndQs`l%{}$OdrL5!_q`=1N;Hax%seJSrP+a0VgfMhPN%Ii8USI?~d%RMt(l zMbr^Z*gj68F~haKYg#NLdO`-y$GuGS7UfJQs02xG8iy<}UOT?@v7V98>7*=N|&e|Z2T`qOwv zS+CgSz!!?@M{BPaz*zU@^V9&EeChrd24B{G+jJx|?G>s~tP4h?`~khJn@;i@5%H-U2@R z`$*0TECsE3Ix2(LabZ{eTAnF2UH2mMa} zSIGCEK|eR_Ip62>skNbnOFMb4n?V%pCiTq{%}rPl;@vdZQF0@Uz$IKUHBaI*t^|9o zX6Ts7UeWC(c+X$@cRhh~FwL-2(?$R6X1)zBk)Qf9857KkN`1KutTS>lw5_PydzUYT zwkdV{pr&-`G^kQSApFpl&Y>ea!R7C=j`{s7QZ-3P1^HfI!&Rz;b3}pg@DTBp5kD04#k1I8uONTn>yJCBO)-{zV1} zFfs$Xs1@8BiVPME7Cw1p5mt1thZ;FrkYlj6Ml)M|^^1xO5$t%bUq+$=U>Q`_S|de* zh-I`?Xkm{LcpBF;BSQt4p==s*qR1k{&O~|kp6kL0*@}$FXlbZXk>iC*iE>r8wpOlD zkrPM*jq7s{YAbSL9FQ~gN-INK3`a%^{FId;`*o7`Nn`{nJ42h$YI%wUca4pG3fhgT zNXc!Q*O%-JTuRi4^h*V?$KVmVZMr8QbgBc#NY`%IMBtxrmU_F?TbtTx@Lx-u{ zJ{XTD1sj6JV==RX*-iH2U{QEJ!fW*oY;6UW1M+kmV*khkZT0A)`+pg%tXwub3?~NY z*;=mdJg}lt_#;Nw_Io;dp^k3O!rhpRUXT*Kz>nVlyJRiRqthG6yIhnd>I^Hn!d`gS z*UHOCGe1)^=OH^DzI!~$d}a#snQYpaNeJ_qx*$3|Rd_nN>5S@^;ylgFoZ@>o$!u;4 zv$@HP-oWTOqdNLR9o-xN9N5Q{(}I-f3sN$=ASufmLC!R{rJ5U$67smd+h*JF*()FG&vVDID5U^4D$zI)WA#`e=eZK=UDwTs$9u&yhT$ zKmvVU!5*#&7MLgzW81qm}3iYTkmu6}| zYHIiqCgq2DlG2kVr6YNGgC!_+Wxt_0lk4~JeBE$QbojS-QfqF3B>>Wi=lCQ=hSa`o+FX_>$)!j7b-guRmGRi;l{^)M6YY z03BdbNAq|LGsiswb7aQ8Mfi}%v3S;LJ}^?p%iq4)WOIm5uHW>y*N#D^!4_$j$s;%R zH-#aYaj<+p7#0R!P= z@C|-&BZAcm_TwraIs_9+4W844ftM{WzI<9+{XEO4dmhBap-Sm&KIZ z7lT~=avn)CC{5<`2)0JHYOXFh6-x?O>v!)5wik~zq3+EoC+iEEBe{Kwr!>j&oD`1d zgg7oX93$H9KR6?0wOZuCI$N6Lb72af3k@IS7bl`5?~u~>x2Wua&;SaW^HcmewKxCb zZqy8}aL_0&hiOKftx%S1+Ln@sCdFJ)Xn2H3S-nRJ9j-_Q)nPWNq1(G?IGe97jV>tr_(sL~52m$mQ z%Q;d2J;!p65&89Lp&ZgqdSG#|W(F zSk6!Zf;pBm>?%}9<_(xz)LV|sv7FkC$U#WWGRRMHM+qASgPls3Kl*SXe+A7c>*M@s3J=Rp{=MQ7YLBFqKZ@qLR(QqDg{VdQAMf*p{=MQH3B59 zs3LJeXe+8nod8KIsz|*c4q-(VSuVkW6;)(~V5<6ttf(R@HBwtq_4Tc&B25~X#)>M^ zEG#h86qSs$L|k-{TQI-!B0a3AA~y?h4=bw3ErJePQAKWLR>CX$ekj7hU!N{1Q>H5=QsA@T6g3oM(X`7G+2eB1ZcZ=vtSA=%$ux~!`P$w8ozcu zET}LNDbx!v+{VJ3lIsm)$%aej{l_sThW&D24S#VP26mnq^Aqywz z=RzJ!dn z^8vHLx<czx##BK*W>(3--a5?gTs8!P z^|3^&6p9lE-M|Vm~=0 z@t6AX8=1NRT9}XlFo)$~d+gtE(_3GF2LY$zx69CnvD@P65}}d79^PKGM%h(Kr@zp_u8ru znS>!XZp+}w1gzd2i|~lUFNkJU!pq_{q}n77m!E6fzd>hd!lyu3C|eNHY6df-5$CsL za2H6PF%0IZLay;NtgI`AMasiEc62MY?Ki`l^;~*V?B;oWL=s6^O|GOP9m} zbsUY>BKMw0c2?FkaHv#%F&!6dnD$$(DGUaCrTKyx{+ZV*ScPn-5R~76&Eh2sgnjnI zQ!ZSv`oG2`K>EOBHT)1)FIWQ%5q4;YAG||bE zI{ayrf7`|9ol31m5vG|+-3YXsV;wY=I_#;_E9867)Co3re?~wrpEYORHE|de47Ml- zGwfUsn<%uK%+rv#Hi@eMk-~{JhRntD9zwG)`7LD>y=lwaE6i#m4xf=|C7wYAs6K6} z8>2L6-dUWs;q3d<8eFAv?mX?i@$70N@@XScYo-MJlJN$y55bYh#w@9_*%Q2N8 z<%&4;Y-y76Lr}snP>a6NB30%l)F>#k(1U$ZM8}c#BB&Ub5`^-0i&Q_t^Q=#KhoQ__ zOy$%I@#cl8tnXW-{W+ffl!3XE^Yh;$HD5j%?gjAmW`=WkV~6Z-2ONH8G4?Mz(R2&R z0e#U9F54ll*beUK){rY1^us)rW8wAaZ+QpY{%(=eZani1x4)%u``g<-w4p`~o^#ZceGgi~{yEpw)`ebKH2SO~_ zL+YQ>9XnGcNUdY3s?)K&<61Z4Z~1M|GL+5d=#knIpSL$+hn}W4+61(F1e( z^Iw=WAyHOeJtCv}9rHC9&!KtdVV42Jlst}m&{+}0P$ZA>(H9ULoecHRSQ{JlzP^c& z!`T*$sHkw9LG*LUD1Q-@UXs^YjF7|K^?|8?!6?#{3w zkC&PoT?nRR4W~mFz@!}J>ED%_C5MVhCw#9YGICswk;4n+D1^@Rvk;k?PieA(q7CXW zJGBmTQga=yI&9QPwfD(JW%NTok(*=~O7vglInYBlnU(AyEB`9`p(_s-7ACPh{dAwXsi2t~^YqG9aSTkCEgI*gu6%AkeiL1;gDbS_f4 z{X$h1%08OEQ8HFpL27jrW`nPkeScF4157g;Xd3Pjrr{o$te;Q{N2RLypdf`wIj7|u zLTAIJeuz%R*I6S?uVcX~td}7XGE*~|l}-xMmS1YzOUyMTlNXd$ zU*s~>*Yq<*m2ZlwAjBWa9PlsnW%b)of4{hVa6oD_(?SMHUv@+?V<{|;45Lkyqk7iE zps`w~28Z$gNuLsuG*lHC0edosQLX8HgCg)!t1B}pKKKMw>1#1H)qpxDNGQytx2c#u zreboX81e!+|1&lH?0!O&*egUSP%OOrBDxl`j9O>;U*CF)D+M=MGyPD-R>0*U{#w`NGHf1%;&a^6$RQ%gBe z08^zorb>I8`bzuiI*gw4uv9Xva+zV3%Q6CG8-a3Cbu4%}89hNCY4lkX6Ux>%P{H7h z*Dv)wmLGnPg?r3w(~A`bbxG~(pT0_Zs%)U=hR+eHY8dpG$&`A&#*(@fs`|lUWT4}R zR$pIwUtgoX5J~k#ui$GA6xfJ*OsdWgO{R%xhGv*Fqv1j6h^8Mao!fC?{Qvzs*zX_0 z{cLD78{{M_5QCN1b7YvlE_+MX`h-GLT6b=0@tA(xFVnusst=WDnzyr*Q=w^T<}Hlr z#ee=bFayD!^PqGM!b@!sp|PVLGxCj*9d0E0O~EOcydKiL-a_S;(nII@<%TS>GB|+o zr*#DTnf9BX8s8{f@D2&$`6V?OFEE@v!e3mth4&S@4-A?V9?M+33lM8ic8-eS3Pr1E zRLAP`W|iPKx@hRqA{!=$*0(`$C?@_5yFL>Y1CtZ2qLQMbp>-wYOP174fm2dmS5h|- zp1LLFbus=anN(grseH+#BK(}JDCvuU*D=bM5IYRG@^W#D;L|+H@ndu$8LFcJg=7R{ zV}h+uv)XDnBsw_DJ?`xFrCvB0Qjf4oN}S9y{Xg?dD3bh!YG+o_5{QF*73tC$I%~Cr zQpl2$a_3b03Ck)fFDY3PiaIQ9R3O`#GyU`9k6L1vK;Rd3QOD8>uPq2=5e2Jo_;G2b zt+<}vaF|B0N_pe0)7vWd>YU8t6<*zqolbUf`BhGCas4x^AGMDw*zCP`m$w!F+SfQM zi=89hUvc%FAX(*Y+uZ4$d!3W%E#B(%uC05f<5BO1PVcWb|+EnbAc{ah6n%Lg4^O*-8*!BRP2X{U*x}omMy4l`qn_b&kU0i=txoi2TuFa$C>*}_7 zg1Wjyb)kI1e`^oIghT1iNuf^-eaz=}D4Kr7^?SV= zw1D)m1YV|k|!wc^8 zFJkkSIcI=X|G>6w+sX0A+qON>)uoxVpp&rG8EMNcd1V|z&D~Z~dC9B9($*!faB&7% zH!j`ml`L)W=5%@8UEX3N7vHro9)p@{M~!I zv&=rD@25_lm)Ih|XY2*}Uj8*cv}I?#y`aD==b=cmre5WQ?YZL|GBKV{9w}jvb6EjA$6Jas1PpX zOPptnSiakv=p8fr0^pw6Hv5A0b+fz=yv_8F+Ba*|?zeZIUFH=!n=d=lc~8CCHM+jN z#4DfiT=}Tix9s!k_Ia~6dpo_KKG(VP>1X#j7ryTlEcOcadG+?G`SvOKUY&hk<4Y<0kuG7i9!YkiB%Nx|x;N^q4S5VUFm8_pN{fp(J>)K0Z{=9tjtac}A zFS5!f&vLT8s5t$~Coge^*=Jbg^OiV$y`PoOs|PE4sO5Bc?>oI8*}}+P$&BYZH5>T6 zc_p1Qt}Y+7d`qYIg`cBz;5<93Zr?tyXjFMuS-Eb3A9!_L-Uj^ryFDx)ggl+~$>T)17d=*EM^~X7r+G-1BJXK6?In_iIl3t4{8#=%Rn+mybO@ z-yWa)TqpX|>!pkebs06-Q_0tqQ7YNrkd~8^sB16vCZ7Jh)+W8trApIk6OP+RFL0=C zmq&4(e5>Js-LoIq+JznneGz+E=fdL2`~JR!Z<2lZQ}5;Pp0#cF176WqLiW8@VS6e5 zl^ygKxK-s^F5aSItA@04=@(gZi(Kp|eF$E8=GT-G)ul6QG;p~xxb=$owf3tkMT{hsc^R8U}g!c}rXzUT2y$N4O?{p`h z|8e@*Cs==b@WCxkUhSGI?Fs#FwkPB}eZ{|-{@mIoZ`kV_7_0HI4!;ANcxB+3=%FEb zQ#SMcz5cPy4A`Rm-mlT5wAUN9xr-i%*$01gY2S=Ov(@owOWT|bNG(^sb!n83;b8sd z&duJNJMMPYKtb<74KIJ)8|9U6w#Vf?i!6<@Pz?26$KQPv+I@C$hgaIU*`AxXn0E-#v=w=(WVD2rUlllAJ(oga9+z4Eu6%-XuQy<@g${gC(kxb&3}*q|J$B3Rbi%wv#MhaRoo+qZ=S ziOt>&Z!Sw=yN5PbyuJQhV7Gg3Z{LTPMMJ4~!PX^X+S^}y6k#2k&+)qLk@-+GuN$Hf z-eZr%==4o*kCRnff9|;~(qDD$DD{e-sq=?hW;JmqLV> zAKhK#l^?UDoMqp!(_0mOeTV$B?MeB`|0t#;bV5PWPjU=ry^c`4)Zsuf)+D^QlJRWe zaZ0{DE}zx6rolrq$oDops>@vOFCJoS#S?!2dVGJd!gDXx$+J3~9B&hJy7oKvw0y7K zTf%?#2$b&A-qn~*a{iZx$~=G{rc0N2Ij+lZlfm3X|2SzF1mEO7-UfS0?})+k6BuP_ z@cgU=j0p~+=Lah=A4}r7a?c+>7I6_=!++X(CzX2~%%uI)+?YB&#OqMm`V{ERes-p|i;j6C!|j;9w!{HLeE^Ai2ZA^f3anGJb4YrxKS3UA`?IRyTZ zL*RKEd^$dF9Rkn0;M39b9{6;4-u#{p&l}&<;d!}xIy~=nPlxAK?&XCP;_tYKMFYih(O+(LX($7nS=T+#O zk{KP$gFjvS-0CQOoB7xfEz>8ScY@Ce;nVS8yM7C_oQ4gD8Kz0^^!1Ue+^eM>GMslj zz7*ocG>F&tKBmF*X2x{%ymB!ep0_E6@#$n`nwwzL#Ebgop-hde2G4u>de#Z)c_-g* zddNt8TUAW$NQ38fdrx56)ssK3kUJ$r&$1&QUJy4LWnt*2uXnEksP%y1yaw*-P&^|q zZ(&=K2G1+hxL9TQv7aO#-iTHk!cRv1m@wXN7Ve|NVSh&0Q9a@r*?Irif>78LUF%Bo zVw${A?1VJoCJ($JY(*&C;QtEz9;-49J@2?G4AGl%%wT9zsC zyatJW!^7ZteNniM44&5)_3XRIhj$jOOv8t_51kas+o5FSot2zAVI4Xt3-yqA-fwYV z2yfoy4CD0_;W(6&c-}OT4$mtjNE6O4>3JDMSl107-s&(k4Lz@CI3f+6mo7xp;CYEc zI(c|^!uSxq$un<6;OAY9oYVYvNm+Rf!RAmLmWPSQiv)UxnY{2WfYqV8FnFHU@7aEs z&U)aNh0-zfJVJj;8a$80r^_QxwukYD(t&{>;)JlZ2XEqe?z$@to~Nhp4B=T0q~~eq zH$r)3867I!O`zvI?!FK`^Gf`+>r=;_g8~rszZ*-DjJVq1^g&AHvHpKX*P7VGE z;KS|M;CaaB`ZV-BuXA!5Jdf#w`za$U59VwL>ykefrmQ?c^OX=U6NhJC)*m7ckEx6f z#W_^D@=OQkY}FxJ=8bq7<6oKPYCf~ z9tQbgG%YyTx(Mav$@KzOUhC0x39iQl99j`jz%gu5l&rTZuGdvrh6{(zS7Clc<` z{Z#xO-N`zi0WIMv8kcbCP7}XJ_X_O~Xc7I8c`MXu1hj zO1Mk+B=LK6Cux7cmvBtu5-!~-;`it-)c$~$@FEF!>GDNR8R#}>e?UukxrA%8^+xe~ zbT8HZfR^xO67JHyT>Kv08?-;5C48fVyL9;h;crQ}OZPtUdvqVw{(zS7 zV-oJteO&w=-Ct^dKuh=~jZ3(6UlG4Y_w(qP=v2U$@IQr@OZR~IJ-W0E4c9SY+Ay=d z(Jc_aN0%od!nB0>NlenxJzo4C-BYzckby9dwUL(YMDcrc=WBmJOZY4acj+z=zehK& z{Q)iES_yaQ){Ebxdy)1Bw1h8~aF^~{@q2W?to;Ek;Y||m(%me6eO>*t+8@voeon$& zx-W>|qq|G{16sly)Uh1s{!#oMU48^HT)u?+YFxsln=gKk?h5S>_!4fEaF=eA_&vJM zYkxqCYCmNEFjnhEKudU>#wA?3qHzhAZkhN!x_^nJ=8f=s8kcbCzAt`{?ud+3TEfR`T*9S$qWC?! z=jpNz@6l)p>&0`Yrv-_-tqmhc}X+@-r){2tv?b-e_%gin*Ya_LSKzejhO_6M|t zD<#~eTP=Q%?$g>I&=TGu;V#{s;`ivjsr>;h;Xg{aOLw>UJ-R%&A8r?fKb3HoF0VaD z9eQ-<_s}!KJQL44rn^A=9^H$yKahd&#S-q)T`PW%?r!Z5XbHb9;VxZH5-0=RV{=mF zC48L5;T-_?c=3C5*J^*jm+++$?$TW+eowo-Q~BC}9gR!4bR**T=<*uqaG4Pbm+ofqdvw2!nOC?R2;ZY|3776S#P88Pr684-@C1!Z zxO7hwzel%O`vVz1t3Nvffnga4&(OGpOZQCidvs-f5b!0uRKi`l7l_}ZyFvQ{TEbUJ zxJ&mM@q2W?s{H{i;jc-!OZRs1dvrMg4$DiJA1-GbqMIdtkM0=VX9j!`{gCfBHq|g+ zzv*heXf}G|k8KF5qrTsRmhcZWF5%LBSo|K{A8UUg1L4OtF5%LBQv4p>o!TGJ5`IR) zUAoVT-=q6G?GI=P|6amfy1T^h(fx<^2egDg(zt|6SH_zOkM1B{egQ4v!BVC!-67)l z=#JI?fR^w$33us^7r#e$k@g3)gwK(1m+oTmdvs+!8PF15CgCpKD)D=CZ`S^RmhdeS z?$Z6L_&vJ2^m{R&CCrP&s5^B3D1MJ_D>ezj`arl%;}R}i-qTEdpzG>)Xuy|nMB@@J zU7Wzwv~(}QyEDv}@LG*axO6WQzeo2a?GN}8ep$j@y041gqdOX7sW4x{V>B+|(j6y$ zk8Y#(2Yd;ylyH}Bv-mx_9oiqz5?&?YF5NZa_vo(E{(u(hbjbGBim}+@^8R9k}G8+a_F3k1YefgflfR;nK|( zzeo34Jx&T}3G*9ytP8r=i{GRBnDz&>pQSt12n_2E;TnxgxO8j9@6mlg`vbm&ACz#H z?svrR(S1()16sn*OSnt-Me%!d-`4(smhd|g?$X^Oevhu`YCuc)5z$$f?soBebQ^lS zV+s3n6_>6*r}gL_p>;XnOZZ5QOSp6giQl7pqV@;0ghxuaOIPMV36Jh5t;+!|;n5nG zaOv_Y5$Xfo>DnLA5bQfV@5Uyhs<01Q!6LeVz zdWk~ z9R)(SC_ewzm54~D+{72zQrv`EEni>cWCs2((L^NaePz4b zrr-ZXeYXTIqmynO=vF@t`wOn8`M;>|j)6;l=0~~_6vF?RuyVl0&!DYO%F>ZfrqiN- zHl8rux~G)-D_)!CXTms~HhzX(h%sMerlAVL>U+?26k7WBe?w__bo8Kmd#I%f`WUK! z-xWRRJ}I+Q0;+9(&~*L#GX5IgM6^t@6iAalT znR=yRNrCz!uqho4f*$Xx(9iL;+@Ks4s(2usq?QPUqjO=X86L`jrpG%d^m9~B2qHaB z!G$oc`s)Gee6EW5SWEBK4i3SC5OQ(|F7heqF#ZU7@?!jppQYH2+z@;!U@rvE0Gtzo z&jzfbG5*ER(o@PXTupRojDPX7R3n`boB)^+ixG>TrEi}a7J{z^wk`y30=zB+-wJqR z2)+xj`7wWdtu{`M`6x?04&UP;_!ofRni9ib{w(!6{=PdUhQIt-`jskvDX;edY@HhO zQI=lDSJMKRQ`TLf@O;2w`T>B)hr&4>3x^j0rX8#N(6$JN_=nph^M_`t`#Wl?g&Lg+ z*x0G!0Hj{3_n9H|uLsUUxUm~$IHzLf$MBVauY4#5TH)6Y_?i&R_{MgS@h<^vYyb&g z4%qz2@0uQPCtzc9NBS**jZGclZGeppAK@nf8(TcWzXWV-`3Ua<{ONfyKS@h3--pxR zgK)k#BtMSY2RI6NIM5ba)B(V^ERXq7ER}6z*d2m-fBgd?nD2_mLh#9e2doI*Qp9IgI4p{wDv&^@z{mA}=5{;S&Hyx5o6=xP|_GD&Tb? zcsAf&A((e(@upJ~zZx(vE;ah!1o)QqVwXet*8?^`%6~mzUa)8Ac}Y9(*E8_VfO)l^ zfwurQ_ABJa_QqTFO!_Pj-jPRyg;@6jHg+wfe+aO#XCeGBU}LXB_{V^GC!gW>6kubU z!tmz+8#@-lF9SCABZPks*!-Bk-GGhVct3>y8L+XzCHw(kV?#;!W56#?jcFEnfIVc~ z*l;m?0N@GLVz)~8Xu!r+k?;t>#$Jmshx^8Ei10+f#x|YsEWpeB_R$y0wHUCm1!ed$ zz{akW@Jhh^cqPlHFUpq}3>q70hF=PpA3c$9M|~Nvu_b5t9e|A;9pP^Q=4G*PG`}Cf zV{E_~&MAG(ApD^LHc2UjSVZ|F@Q@$^yPq!y)VP30XDYZgl7XbcEW_u0&MIz2`>h0 zY{&^O18i(m2{!>Yw)}+G05&$Sgf9hbYzhfq1$g__F+Hv!yczIYXNkQi;jaNUHnxPf z0ygJ52!9K(IkQ0cLBQsW0pTA2Hnxg{e+<~zXA|BDxa#a6y;lH7L*?~*z%xSn@+ZKr zhr&MuZ0uOc&&mkwW(j8jHsb-dmp*{anFEF&1NhqYVlPOTA5S&5nuJdQY;1!G#{e5! zWWuumw^fP#IN`GZo3jFh>j5tf>Dx-czl{a@dO2WYw@dmj0yg$(gl`3GetGcR1=!eT zGWED8S!Fuy8m+Uq{RIVz@;WO;oA*x09%-oX$& z3VI6^Y~Ou2BoF1M5b#xa->v|f^n(E#TW`YL1~+GR2$ukE4ApN8u(8u;_!)qW9UtLE zfX!JT!pi}Fc$L^(66O+X4D!9@%Xd9sbJm05cK}|E^!Up||NCvgJRZd*1%`J4Hum*| zp9E}dKncGB*w_UV{vBXr(@pptz`W!c-H0w9ZsnUZC=Ac?FkT4hZ$H51+yKJ|04@rZ z?@++zoCCv;18i)036}xh72-D*u(7*kcsXD*zGZz*2F#1BP5I0PZ0sjVzZCEbq57-^ zY|c$F{6fIyY!2be02|v@!dn5GGeCs-i8fxM!5`D-N61!OC$^{ze*ti~K3)ZULMT6f z0Bp|okp54Azx3c_pWj~(`~|SFGiCTkfNu@S&t*zuug!3ND~or2&jttTZz*77%ggYy z02^Ci!rYoSXMzYX2W-wn5vECnIbTEgi-5!JXA@v!%ggZF0Nc}IzWnGv0UNthhJO$6 zx+y{U}qJ z!v6$p?6V2?!W7!rSrg6&Y|fk!rrowV4@cNs9Yc%HhNkwoS`m-8RMg>&nlDc-2&w>H;dU919E)+hZf^=sPHImu6LSIn=hi%)B4RmRnbg;j`*0J^*tzXJD8 zh^K?!=hmp|*3rf@#&}9qkBeTo)YsgU{8SuGZSiHocniOMTGbd=Rh2b3WzO$c=#%C? zHhIQ!f&LUuRdXWIyizsRBr1GwU5Zy#@UHs`AQjD6eVPjRQ?6&J){uPJuDU*6y+U6p zYc4|JH?A4mx9Y_~P;-4Wzfptb$Ql&2@-Oj7Ucbt0nF$vX5=b&69qaPs6B=MaEHfwINsg=Pj670lT)OcCF>)HM@xG?0T$oR!^N>`gC>`)9PVcf;1f19IhW)-FK@t zR`#*f?yPjzi!O{+ZsDfc1tjJy z1yOCh+K}sTJ(k)x>mW8yxlK*JqdFV8Dq(Z*&(5`9n+!j^3_LgY_{<#j)k*DV=S{CZ zfIQII+tJq9x6=#fK-T}6ttN37f<1O`3&&`l`_oone4t;wu1nWmdpa|)y}f#=hF92} zRXjR&TDNL*%P@ymhRtZA#W6kg4{K-pwEorc)xQ1?Z)O?l!F%k?sr^;8uQDTWNM?ZYKU)zp%O4b4w}PPgt8) z=+KhkZL2rds^n^OY^4hq167NMs54pL*%JQ5xwDwN#HIb%%`~^` z{B3rXI4gI#=ofFG^Ip4;($?FTmTjl{P1>rVlh+d4VQ*E@Zn;*ge_OiNq}GL8C-nw) zYVFt^eQKEkjC?P8eeop!DRGYfgnR%ZL|Huq~=T^7mY zTvp*c-+JC5JUqL6W3}_`_Uws<{<-FVax~$pVuKl#=($}x8YXSG? z#A|EQ?X7BkT`#QufVhd*!%ItX9IF-~+R>?>UAsM{Q?uBfyNU-?LTx!G_h;7r`shzl zeGA!NKx;-_2Rl4z=xjn1U8I(yu5?@FM%_q@XN125_V;kkqap)gXPRN?>dp+@*OuQ}zkX|6NAu3Qbkf{<)_SL1A^n+N_ovf!PgSjo)Yj?l3fj52E7V>3 z?&rj7(~qG2w$^?@7g7uVi>LbEIQHY$*|vSPTU5O*>}RL7;)3f<%~|ZKr(J8b_v+%e z|1{8F`>*U&3)!XB{+0Hf-R{3uYQIz~SJ`i^dZl&n+PY5m9}hEE?3~p%=5_*gQLQWD z*^kGJyXz@4bL98->~w9aUZ7S~{%#3ieSS^fYwM)WU0h7RbXVw?d0^(3QUB@53jqWW zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1pbKx9`-lf6fOo97TBP1-x}HF9epIK z#gH{#^!zY(U@&Z6l|M@m%8Jd zUrBe^Zv9KcC*4@LkqxP6aALCZV0laSmCgG~DGh)tdimH;G?rbTicUmRR>OkL{xq>Z z6{{@LV-!PEuU9J7qn2;sM#ahcQ^DX=C6mf0>e8;Vv_l1@QDX0;J*lLa-a{YEDM=v` zAKky$GF;o3i3UAW5rvM2AzuE|)vT&TMpK3NDYK!mOgzlcNOPGuZxnlD5W3qSd7rLxQ0m7KYLiQa(+{MG@P^EnI#@%m1>QdD|6;P(8BSv@PDLB&fo%3MzYXaKMc)wcBSQ9`A+dKGLz zjR}7;X<6#9EeBu&)ph(6?zkIu9?y1It5@UvKygmm((4oc3Ck}& z>c6Ux+D?1Ke=%(6Y0Kt6Dt7oxiI;hgYSpNES}dh{;q+85gsIAwYWL}>UQnvZ zYAThL(E|XMI=K-vEdFl7t$=bkrolZ&ZYI(od91KpnLoeu%JJVy;LoYN3{&78!P}0LG-*tIR zYVS{GAC0gpaNTqc=(jURQ>pqd+qA)(nW7i zA1Gw8eYXb^K48yw>>Dh*4tK2Di)v34=+O;pR{LS9oo%)I*n=$m=J=C~jvenh zb)y#VO~3E!w=F9CSN+;`|6Kg4~RYE-l5lnlTJG%B=d-U9aTe>E!6y@!5+m$G!tr3qz z6({}aO}i2;n+oTIsqX%cRW*A@ zNku;Zn+o5X4gYL*qAPckPUq&RKF`tTIr@z0Gp5f*eKy9QJonh~_~;#r;-hU1uie}j ziEntW(5@;hTz*h$(5dWd(8-JpzOl9N_j>NA%D5!{r2odIg8kX6R_kBvN^G*TJ~|UA zy&z6Ymuf%T{Eb~}7NyU#hWz!)v0_8^=l7_$960cfetxTRis!fV1AC_D#Ln{kmQBXY z3jqWWKmY**5I_I{1Q0*~0R#|0009ILKmY;nO!xnv*&p8jKk~s4>37}#|AeOQvQ0Nx zXYT*6)Ax1Xj>c?TqTpt2x_$k7&;RG{*y%><$k4P+^r!of|4FwFhsM&Wy!Yto^8((k zXmjTFv&jNA6`v(ryE60H{DwttMtAoeRHuj|AV^3KTzW0-T5EZ1^=l9 z-fQX;?Y?}ic`g)Q-q5~l@*{pq zx1HU0yFp&gCh{-WJS=F4>l|ECT*78_>ZSjvv2TxBUcmh!?Zf2za_uml!7 zpQYP^=d*0F;Q1`qDfpd#-*7_L3-dnyzV{8?rT&jG@1y0y&KzmFRkWdA*W9xxm?LQwZiJMq^AiaZGGED&t{g)^mp3yk1d_|x}`?z3QO8* zt(_gqTyUo6nxxm<=&fw@RyBH8G}hMbZPaq=$}g#UclIaKeVUvyT#$YFa+TV0TJ3e3 z=}dpGPOH(ozPr7@=d1^DVc2{MyP(e|lWo_z zFvV%zqev@SEg-2K_ttp%%xk0Vxi{OfiIR9BfB*srAb$?B|2q1s}0tg_000IagfB*srAb7SvZ+<1+VY~IOa}^NP zHnJfV4Ngo}9xQLkzOs2=X}`iI{E|hV@F(qK+<)!*asO1L8d_}1`K9soi@%u+{8A(s zENyz|)p7rSE85GA*PvL%tt!dw)R(mJp;vQTCgY?2Ys2d=_~wZJP0M8>nli(}alOwLaAHmY zPw8;rPpYny8z1_vO4<1Pm-4U9SW1hP(&I{rJpA3ggRkA4InU@$E~!*1s`Dw&f9>Rl zwSVA1OWtanYfZ&+8&XZVJ5!0D?!D)5OWsa;e(0hFL(Or1TUxvwaWB77skr=t zQnYwcEvL+RwHmCf<>(HnD3$76eJK62Flv1CXc!b99m^hDdN8}OT&tim3u-eu5RbIH7GSr z_*0g#D)N-DD_MUsZ{N$g!O7n|k$vXW(V!5~KNVVBreYUayQ$Ra?4dxyL3{weIU$z($Fxn!;C~nL7)8p$GztpJDU@W5CVk7=bb2H6aM#|?rs+ns|#c~@`O}RT$ ziJ$Jh=Wt8jDm*{b3Y#BlKJ!COetxKV&kr@_`Ju4|L(f|<)K*@s&!KSh841*K^5qFPSYYGDml)^c=*RFq2f zu0E9hSr|1wdNd4*kB()JEj^gsSguu283uz1FSERs)$O(1(~Ut-BH|97wVdbPL^GeH0W1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R-L+0w4PLyWuQ3M+6X9NZ>+U{~y-&5p5S~yI9*t zwS7$6$F(K3U83z1+CHf*rEQ6}PiebU+hy98YWpK?pVqca+vVDpYg?hMS=&l&tF&FA zZMC*5wOys{Gup1!wnp1E+OE~MR@-N_U8n7H+E#06%PX~ArR_7e%q1@b5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5SS5o*xztdBodkV-rz0r>{~2| z##ZZd)A`|{)m~CZF7p!Jd);vtx;Gm0wEbs|%dyQ3&q;Xh_?W(oJr<4GwnUL_JI4~~ z_~uvA9kyHlI#&TvZ6g~}(cr{n<-zin>?@o1l~M}KuN#WSvg=dPiD=5|SNO{Y&zo4E zid7aV!O+y}l}h!f}1Yd~_^3R8YaekL-PA z`lI2_s@hI-x}o^t34gj#X^IK$Bres?x!PHGL)@G2r!2?f9V3s~8Rz_|U@T$^7Cn1s zDw@>^JfPA~6LDT&(|i60brs!VC+1H@l+m^R^q#*8QLKoZ za>}))Vz~{erre#W#83C$bGRk1@)ig++WB#T@VO`rArnm$%E?RJfp0sT@$x3rg}YE3Q|J1%50N_+>%G;-lXFvCOMEzx?cB#mf0j z@zI3BhwaTBj6XIO#&3!!<}bEcw4ijMVp{V&uI$xSWA;`3S&1z4oBqu4Mhm zycJZ=4Nm^%iR?3{js}H@{;AO7G8MbX+D)ZSXAdpfVx_wPZ@3}c9aig4MS`Abwf^)P ze`?S3$~ZXE)VA%g=lQ+q&i-WjzRu*GodfCQ?U|nKo&DD&FKb?UO>$-PvgBne-A;3} z?XRlsH#b`!ys^Fa(sZ)Fv%SM*(CgAByZZZjlJ|G+-rm>V-?6;W+uGmPdvEf_`}%h7 z=)9!SvxK}5KmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1m3j*XBz+itw+M~|9|=Zkmh%d|362=w{5dg+%~@7Mu{i&C8@Ezwk^?j+y0R8 z{~F{TwTA;n!lC{e_xq5F85&Ec^8aoB=}!iH#ErhU;q`8G|CmaiO?9zSWi@PmaH^8o zoj*~R^p`q1;l}6NnD&!HdUKBuT#}!vi}_z>Vp<`^FWcy04eG8IH0L>m$1D#$h0qk{ z>tZ+Cko`Gl{Sv%AwB=<3V#c2vK+VfS6_I;0R@ z2q1s}0tg_000IagfB*srAnJTz|uj>;0Q-?m}n?RRY2 z{Dqb~w|sHym+rdz-R#4;BY*$`2q1s}0tmdl1kQB-e|7c#fAgET|Nnj6m$yx~{Acd} zkLml^w>1BswttNK|M~8^8}NT?H{f*}J)Hk(YMv^qcqV zbn||E|62a>z{GX2Tk_MXnqB~P0N&w}R7fOku0cX!`1MdXD50tg_000Iag zfB*srAb zKM@R`u-rG)<-Yv%-2a1y0p$D>5x+3um#hq}LZ;QmiqXKI)M{aq*ZPIQxIW{f`xjej zYa26KFmBG*^z|ypOJ5rdmb~u_K9}4X7#_8NPyLnva&>Aiwcu++Qjb&PGy|y`X88j<6 z|K&Q8i^A&6$!JcBH^iU+mvt#lDzF$X@Mh}{PR74+yP8TTuSMd*mE7bO|HfZyltH!W z9Ma;G*C?dgO#e&rHm$-X`R#SN=d8tNIzX{8+}Am4n1*$WeMhWk-Lvg*{W6p5t!-8J zaAJm+6xFmJRY7i=iA-HNpLFFsqi6!~PEP18|8Fgh5`9XEsYn{Ts_>(7 zrJ@>Z!iietikI6+nWT~{vNfnRysFuvklJh$`@-l7k&`9dcf>&66>C5KhWRGc>~Hya z7W-TA_8HIOW|ioBptCnwn?=HfoHnn-HCnFGh3@F?8_>X(>U0xln5v@DTkdu2?C;!> z?(5&3JT2?lU`=VEgQt~Z*DNmt5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_Kdf0)4k1EN$V AivR!s literal 0 HcmV?d00001 diff --git a/multiboot.h b/multiboot.h new file mode 100644 index 0000000..b07b87c --- /dev/null +++ b/multiboot.h @@ -0,0 +1,76 @@ +/* multiboot.h - Defines used in working with Multiboot-compliant + * bootloaders (such as GRUB) + * vim:ts=4 noexpandtab + */ + +#ifndef _MULTIBOOT_H +#define _MULTIBOOT_H + +#define MULTIBOOT_HEADER_FLAGS 0x00000003 +#define MULTIBOOT_HEADER_MAGIC 0x1BADB002 +#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002 + +#ifndef ASM + +/* Types */ +#include "types.h" + +/* The Multiboot header. */ +typedef struct multiboot_header +{ + uint32_t magic; + uint32_t flags; + uint32_t checksum; + uint32_t header_addr; + uint32_t load_addr; + uint32_t load_end_addr; + uint32_t bss_end_addr; + uint32_t entry_addr; +} multiboot_header_t; + +/* The section header table for ELF. */ +typedef struct elf_section_header_table +{ + uint32_t num; + uint32_t size; + uint32_t addr; + uint32_t shndx; +} elf_section_header_table_t; + +/* The Multiboot information. */ +typedef struct multiboot_info +{ + uint32_t flags; + uint32_t mem_lower; + uint32_t mem_upper; + uint32_t boot_device; + uint32_t cmdline; + uint32_t mods_count; + uint32_t mods_addr; + elf_section_header_table_t elf_sec; + uint32_t mmap_length; + uint32_t mmap_addr; +} multiboot_info_t; + +typedef struct module { + uint32_t mod_start; + uint32_t mod_end; + uint32_t string; + uint32_t reserved; +} module_t; + +/* The memory map. Be careful that the offset 0 is base_addr_low + but no size. */ +typedef struct memory_map +{ + uint32_t size; + uint32_t base_addr_low; + uint32_t base_addr_high; + uint32_t length_low; + uint32_t length_high; + uint32_t type; +} memory_map_t; + +#endif /* ASM */ + +#endif /* _MULTIBOOT_H */ diff --git a/page.S b/page.S new file mode 100644 index 0000000..02736ff --- /dev/null +++ b/page.S @@ -0,0 +1,196 @@ +.text +.global paging +.global user_space_alloc +.global flush_tlb +.global user_page_mapper_4K +.global user_page_mapper_4M +#|-----------------------------------Glabal Parameters-----------------------------------------| +Kernel: +.long 0x00400000 #virtual addr of kernel +Program_img: +.long 0x08000000 #virtual addr of program img +Program_phys: #physical addr of program img +.long 0x00800000 +Video_mem: +.long 0x000B8000 #virtual addr of video mem +#|--------------------------------Allocate local static physical memory -----------------------| + +.align 4096 +_PageDir: +PageDir: +.rept 1024 +.long 0 +.endr + +.align 4096 +_PageTbl: +PageTbl: +.rept 1024 +.long 0 +.endr + +#|--------------------------------End of allocation of memory --- -----------------------------| +# void paging:(void); +# Description: allocate page for the system +# Interface : Register-based arguments (not C-style) +# Inputs : Program_img +# Program_phys +# Video_mem +# PageDir +# PageTbl +# Outputs : dynamically allocated page in virtual memory +# Registers: gs,fs,es,ds,eax,esp,ebp,edi,esi,edx,ecx,ebx +paging: +pushl %ebp #construct a stack +movl %esp, %ebp +pushl %edi +pushl %ebx +pushl %eax + +init_ker: +movl Kernel,%ebx #fetch data +movl %ebx,%eax #prepare the entry +shrl $22,%ebx #get index of page dir(higher bits) +andl $0xFFC00000,%eax #get to-be-written physaddr bits 31-22,16-13 +orl $0x085, %eax #set U/S(bit 2),R/W(bit 1),P(bit 0) and PSE(bit 7) +leal PageDir,%edi #load page dir +movl %eax,(%edi,%ebx,4) #build the entry + + + +#|-------------------------------Initialize video mem------------------------------------------| +init_vmem: +movl Video_mem,%ebx #fetch data +movl %ebx,%eax #prepare the entry +shrl $22,%ebx #get index of page dir(higher bits) +xorl %eax, %eax #entry for dir +orl $0x07, %eax #set U/S(bit 2),R/W(bit 1),P(bit 0) +leal PageTbl,%edi #get the page table +orl %edi,%eax #load the table +leal PageDir,%edi #load page dir +movl %eax,(%edi,%ebx,4) #build the entry + +movl Video_mem,%ebx #fetch data +movl %ebx,%eax #prepare the entry +shrl $12,%ebx #get index of page dir(higher bits) +andl $0x000003FF,%ebx #get the lower bits as indes of page table +andl $0x003FF000,%eax #the page physical addr's higher bits +orl $0x07,%eax #set U/S(bit 2),R/W(bit 1),P(bit 0) +leal PageTbl,%edi #load page dir +movl %eax,(%edi,%ebx,4) #build the entry + +# -------------------------------------Load Regs------------------------------------------------ +init_cr3: +leal PageDir ,%eax +andl $0xfffff000,%eax +movl %cr3, %ebx +andl $0x00000fff,%ebx +orl %eax, %ebx +movl %ebx,%cr3 + +init_cr4: +movl %cr4, %eax +orl $0x00000010,%eax +movl %eax, %cr4 + +init_cr0: +movl %cr0, %eax +orl $0x80000001,%eax +movl %eax, %cr0 + +# -------------------------------------Load Regs------------------------------------------------ +popl %eax #tear down stacks +popl %ebx +popl %edi +leave +ret + +# -------------------------------------User spac------------------------------------------------ +# void user_space_alloc:(void); +# Description: allocate page for the system +# Interface : Register-based arguments (not C-style) +# Inputs : none +# Outputs : allocate spaces for user space +# Registers: gs,fs,es,ds,eax,esp,ebp,edi,esi,edx,ecx,ebx +user_space_alloc: +pushl %ebp #construct a stack +movl %esp, %ebp +pushl %edi +pushl %ebx +pushl %eax +movl Program_img,%ebx #fetch vitual +movl Program_phys,%eax #prepare the entry physical +movl 8(%ebp),%edi #get parameter +addl %edi,%eax #8MB+4MB*user_space_alloc +shrl $22,%ebx #get index of page dir(higher bits) +andl $0xFFC00000,%eax #get higher physaddr bits after masked +orl $0x087, %eax #set U/S(bit 2),R/W(bit 1),P(bit 0) and PSE(bit 7) +leal PageDir,%edi #load page dir +movl %eax,(%edi,%ebx,4) #build the entry +call flush_tlb +popl %eax #tear down stacks +popl %ebx +popl %edi +leave +ret + +#---------------------------------------flush tlb----------------------------------------------- +flush_tlb: +pushl %ebp #construct a stack +movl %esp, %ebp +pushl %eax +movl %cr3,%eax +movl %eax,%cr3 +popl %eax +leave +ret + +#---------------------------------------4kb page_mapper----------------------------------------- +user_page_mapper_4K: +pushl %ebp #construct a stack +movl %esp, %ebp +pushl %edi +pushl %ebx +pushl %eax +movl 8(%ebp),%ebx #fetch vitual +shrl $22,%ebx #get index of page dir(higher bits) +xorl %eax, %eax #entry for dir +orl $0x07, %eax #set U/S(bit 2),R/W(bit 1),P(bit 0) +leal PageTbl,%edi #get the page table +orl %edi,%eax #load the table +leal PageDir,%edi #load page dir +movl %eax,(%edi,%ebx,4) #build the entry +movl 8(%ebp),%ebx #fetch vitual +movl 12(%ebp),%eax #prepare the entry +shrl $12,%ebx #get index of page dir(higher bits) +andl $0x000003FF,%ebx #get the lower bits as indes of page table +andl $0x003FF000,%eax #the page physical addr's higher bits +orl $0x07,%eax #set U/S(bit 2),R/W(bit 1),P(bit 0) +leal PageTbl,%edi #load page dir +movl %eax,(%edi,%ebx,4) #build the entry +call flush_tlb #flush_tlb +popl %eax #tear down stacks +popl %ebx +popl %edi +leave +ret +#---------------------------------------4Mb page_mapper----------------------------------------- +user_page_mapper_4M: +pushl %ebp #construct a stack +movl %esp, %ebp +pushl %edi +pushl %ebx +pushl %eax +movl 8(%ebp),%ebx #fetch vitual +movl 12(%ebp),%eax #prepare the entry physical +shrl $22,%ebx #get index of page dir(higher bits) +andl $0xFFC00000,%eax #get higher physaddr bits after masked +orl $0x087, %eax #set U/S(bit 2),R/W(bit 1),P(bit 0) and PSE(bit 7) +leal PageDir,%edi #load page dir +movl %eax,(%edi,%ebx,4) #build the entry +call flush_tlb +popl %eax #tear down stacks +popl %ebx +popl %edi +leave +ret diff --git a/page.h b/page.h new file mode 100644 index 0000000..0d493b6 --- /dev/null +++ b/page.h @@ -0,0 +1,45 @@ +#ifndef _PAGE_H +#define _PAGE_H +#include "types.h" +#define fourmb 0x0400000 + +#define CreateNewPageTable(name) \ +ALIGN 4096;\ +name: \ +.rept 1024\ +.long 0\ +.endr\ + + +extern void paging(void); +extern __attribute__((regparm(0))) void user_space_alloc(uint32_t pid_4mb); +extern void flush_tlb(void); +//////////////////////////////////////////////////////////////MUST READ THE COMMENT!!!!!!////////////////////////////////////////////////// + +//Cannot map many 1 virtual page to many physical page at the same time, but can map many 1 physical page to virtual page at the same time +//UNSAFE function: +//would raise fatal fault when mapping to vir_addr(This can hardly be fixed): +//0x00400000~0x007FFFFF; +//0x08000000~0x083FFFFF; +// +//Essentially: +//IT ONLY WORKS FOR virtual address(This can be fixed by entroducing new Page Table): +//0x00000000~0x003FFFFF +extern __attribute__((regparm(0))) void user_page_mapper_4K(uint32_t vir_addr,uint32_t phys_addr); +//UNSAFE function: +//would raise fatal fault when mapping to vir_addr(This can hardly be fixed): +//0x00000000~0x003FFFFF; +// +//Essentially: +//IT ONLY WORKS FOR virtual address +//0x00400000~0x007FFFFF;0x08000000~0x083FFFFF +//which is already allocated (therefore useless)(This can be fixed by entroducing new Page Table) +//Therefore this function is completely useless and should never be used. +extern __attribute__((regparm(0))) void user_page_mapper_4M(uint32_t vir_addr,uint32_t phys_addr); + +#endif + + + + + diff --git a/page.o b/page.o new file mode 100644 index 0000000000000000000000000000000000000000..fd2aabfdd221941bde5403160a2f641c14c61979 GIT binary patch literal 18600 zcmeI4PiP!<6vyA}Ch4{&-J~s5sG+lIBf-+yq)p>Nwn>}DD5(-is#!E$XS0*Z(EaD^ zrX~k5T0}x9^jN(}K|FX6kDer@AQc3!fqDptAoQS~EGVqsH}m^VCeWbQ%6oKv@6Yf3 z-tWz4eml@Z=KYDwFByhGS`13kjz`ov9?lF0YJk$zsZ&J@0U;m+gn$qb0zyCt2mv7= z1cZPP5CTsOfidnhMYM*0Pth$AAs_^VfDjM@LO=)z0U;m+gn$qb0z%+_M}YtHFCqkl zfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnOh91g@9b)?8F#K800#G(Ml&nCQIwaIdy^ z6=qHFNxPM@ffGkU1IqsKU8BvZ#y{i(z4!9F}Zi%abq#dz09 ztj21kX&1@DCZS%^mhY6UrnAx{t7JEAvWkrcSsW}m#bvip_Nq?Y_o|CEqy}?#vFJP3 zF#H8ANa>K$Q2iJmLM*EUbBAkSn&3A13iiYvbFZS2dB zfcHIsOYhqQTeE{nw^8pMHk9bSSSNH4x->!bHG&6WAH~J>xIXV0uXhB`_XotZ=z7}M zIv#JMKUzA@diU2?*pKhPep_$`cGej9CQH~;7&C%%r`a&U0Zi?@>beWaO1B*ek7&`_7C-CPno{ae}d^hIT;jhK~Rru>MA8sVc;G{$@?l=Bq z`Tlp_A)J-O6aJ75Rj(WUt;78!=6?$R$C&>){GVd}H}D74yNB27SKpN5SDi9V`!(0M zD+RCOMs|H^wL!0YC8t)XI29^Pvg0JPdz5~Dy49r1`czt z($6V9qV##CCzXC%X;0}pN`ImBw@QBpop^@mH|77S^wZ$T`yGeo`Elh>DgSw}=6Qa1 W8i&JkY2e4-t>XM1h~^LN#Qy>F#7S5H literal 0 HcmV?d00001 diff --git a/rtc.c b/rtc.c new file mode 100644 index 0000000..e822969 --- /dev/null +++ b/rtc.c @@ -0,0 +1,156 @@ +#include "rtc.h" +#include "lib.h" +#define debug_read_rtc 0 +#include "task.h" +static int getrate(int f); +static volatile int itr_flag[NUM_TERMINAL]={0}; +extern volatile uint32_t cur_terminal; +extern volatile uint32_t alt_terminal; + +/* + * open_rtc + * Description: turn on the IRQ8 + * INPUTS: none + * OUTPUTS: reset register A + * RETURN VALUE: none + * SIDE EFFECTS: none + */ +void +open_rtc(void) +{ + +//setting up the +outb(0x0B, 0x70); +/* Read the current value of register*/ +char x = inb(0x71); +x |= 0x40; +/* Set the index again*/ +outb(0x0B, 0x70); +/* Write the previous value*/ +outb(x, 0x71); +/* Set the default frequency*/ +write_rtc(2); +} + +/* + * read_rtc + * Description: check if the rtc is currently working + * INPUTS: none + * OUTPUTS: reset the itr_flag to 0 + * RETURN VALUE: 0 for success and -1 for failure + * SIDE EFFECTS: none + */ +int read_rtc(void) +{ +#if debug_read_rtc +printf("rtc in\n"); +#endif + +while(itr_flag[cur_terminal]==0); +itr_flag[cur_terminal]=0; +#if debug_read_rtc +printf("rtc out\n"); +#endif +return 0; +} +/* + * happen + * Description: set the interrupt + * INPUTS: none + * OUTPUTS: none + * RETURN VALUE: none + * SIDE EFFECTS: none + */ +void +happen(void) +{ +itr_flag[cur_terminal]=1; +} +/* + * write_rtc + * Description: write the frequency into the register A + * INPUTS: freq -- the frequency + * OUTPUTS: none + * RETURN VALUE: 0 for success and -1 for failure + * SIDE EFFECTS: none + */ + +int write_rtc(int freq) +{ +int rate; +rate=getrate(freq*4); +if(rate==-1) return -1; +rate &= 0x0F; /* Ensure that rate must be above 2 and not over 15*/ +outb(0x0A, 0x70); /* Set index to register A*/ +char prev=inb(0x71); /* Get initial value of register A*/ +outb(0x0A, 0x70); /* Reset index to A*/ +/* Write only our rate to A. Note, rate is the lower 4 bits.*/ +outb((prev&0xF0)|rate, 0x71); +return 0; + +} +/* + * getrate + * Description: change the rate to the desired format + * INPUTS: f -- the frequency + * OUTPUTS: none + * RETURN VALUE: the modified frequency + * SIDE EFFECTS: none + */ + +int getrate(int f) +{ +int rate; +switch(f) +{ +case 2: + rate=0x000F; + break; +case 4: + rate=0x000E; + break; +case 8: + rate=0x000D; + break; + + case 16: + rate=0x000C; + break; +case 32: + rate=0x000B; + break; +case 64: + rate=0x000A; + break; + + case 128: + rate=0x0009; + break; +case 256: + rate=0x0008; + break; +case 512: + rate=0x0007; + break; + +case 1024: + rate=0x0006; + break; +case 2048: + rate=0x0005; + break; +case 4096: + rate=0x0004; + break; +case 8192: + rate=0x0003; + break; + +default: + rate=-1; + +} +return rate; +} + + diff --git a/rtc.h b/rtc.h new file mode 100644 index 0000000..05402bf --- /dev/null +++ b/rtc.h @@ -0,0 +1,17 @@ +/* lib.h - Defines for useful library functions + * vim:ts=4 noexpandtab + */ + +#ifndef _RTC_H +#define _RTC_H +#include "lib.h" + +extern void open_rtc(void); +extern void set_rtc(void); +extern int write_rtc(int fre); +extern int read_rtc(void); +extern void happen(void); + +#endif + + diff --git a/rtc.o b/rtc.o new file mode 100644 index 0000000000000000000000000000000000000000..c889afabc150a59ce4fa1b30c6af35de25da26bc GIT binary patch literal 4136 zcma)9U1%KF6+U-nRvKwn+O^h+9a89~*u-(-(T~+Mq*Wr@-PmqbrwuhY)QP++jihy? z-SzCO<+O3-RC2LU33W-Kv=kC3Z77M!OG-$gO-YOELLc%TiXUP~&=L|ti=l??_s!h9 zJ4*eKv)p^W^K;KV_kVV!IQ5uPN(?Enr7MYiw=cGgM{JMmknM7O{l;o*=Ua8C-b|zV z=&G~p4EP6oQC%vwFMO*#nXtY^TlNpdHvKI6-DFZ z{kAs`uKG8#aen=XkpbhmFpQoz1z*F zZTD`3vv!H?rqhq0Q~OT9htpq8AI*z6&=1D?l&4hw(M)W+H?vI*sY!I(Gv0BxkZCWy zOnc+wrndO>dD4w@G;h56lWL<(Z|$|~o#}RTZ>FmrzyZoL^TB)MXnq*u$$l9?B-hRJ z(ahI4%i~xt9s!J!J2sNZ4<9>TI8+$-M!m7Z*vQCNMjjk{u(0O|f3|R>6vp~}qx7G%~`)1?whSN!k|(Xt5OZcN!d;C{bSRi*trYn zhbtsbuhm$n1z~|cR!R%aYNIk=MURoT*P2-<1)_Sajy_hnIz;NgZq8K}Fp!QPxn>Z=gH198^L-Zu)rCl;&PoUI%yQ0{@Jt zW2W1n6#AmR9gFpzdf=ZGb=>5i`2@}8{V?{Li=r_S7xTR+nkav3sQFk7WkA7+!r(io zEa|C)!Svi>X&zI%1Ev&@ie%YCZl)PbhkmeBsbUsX?-5qDWj*3__KO0?%vzzxwv=SM$Z*px{aP|vk%3@hfDOPSrSI4j#Ccok~0@e zn!Md2qI?8}zU1GCu}jYUlD?Er#&(DN=@`4@%sJ^x`Ny%{A-@!3mz?8B`cnQ?Y%6Ug)0-#hWdK zCGpCQ2B2SV&QF)hWu8}$F0rOkovS6~#Y)vr%5yEnSS||XJP}&D4YrenvCrQ$jNv+5s&vY$HA{a6YphU(*{t!gLv%Ekg>fA zg~7Bv4L{E~C2VgbFwH;VAQEI^Y=h41J(}tFx7+y9Ke3IZg-u$A@=oZ7P&f{bi(^g3 zJBfWY1)U+&uaON;>K*x{ZS>?@{{>M__CT4vcgYrP(gfL^QynX9tSFX0BAzvc_RO8{ z4c|gMrV%%97v&_`(GKitY+;lx*;`hQ`EjMYWD94#OSa(qG(k3Ilvg{6ISrxz-Qebp zr92FoZ{A*Q=N)8-W8vPuh{AnFfBj|B`QqUxp!tmIygc34rStx5`3}+#(E-G?kn%LR zLI-o?Sc2#*LO!eIb#4EtmU*uzEKM}$SODh9PcqIq`SawMs=sRfp4MO2{C#pX=7$6Q zdCti*`Xc{ zo1{+`gD;9<@kyjY1;GjheNc>`P$f^k^g$m4eel7DLIm}#YGM7({A`Ay;Ln?fz4M*# zoO92)bMBqHFF*3cSs?_)A}C8cjA$zxdhQQkoC-8ROSDwn9>(gW9 z?#QbavctKky?`+Mj_oeITlipoD}Oy+*Z&p&SijltEiO^>BHrLXGzd*Zf8N5Dpg*^7 zQD+nF?Ov~U{!NcQLvV(U<0-_S`}X1)90Jr4!DoltZqR|EnHo7+?Nc~Ra?vVsgF6nt|GvYwtvzvJ>NB}^yriG#fRsL zlgh*y2Q7nJc$+hPq`(faoNN1P^;ls5TgXeQx9wRtC!03vgo5?;zaR9m(gX8}$ zj@Oe+!TG*`Etc3d8?*hYm(t;!SoO(B90`9iEQ+x=QB2S zD?qs>Yi(b$$(6dnxayjr!C96z8)}y01rZJD>u$qi+lpzl^kvpO>Gxigso8L)-*#HbAaa=_j?cEZljsuTT|}1|@qxU@c!=l< zcommand_word, (const int8_t*)command_word, cmd_index); + + //Build pcb by storing pcb->arg,probably bug + if(strlen((int8_t*)command) > (cmd_index + 1)) + strncpy((int8_t *)pcb->args, (const int8_t*)command + cmd_index + 1, strlen((int8_t*)command)-cmd_index-1); + +#if debug_exec + printf("enter do_execute done with read by name\n %d cmd: pcb->command_word \%s\ cmb %s\n", inode,pcb->command_word,command); +#endif + + //Check if file is excutable + for( fd = 0; fd<8; fd++) + { + pcb->file_array[fd].flags = 0; + } + + //Stdin,0 for terminal, set the appropriate parameter + pcb->file_array[0].file_operations_pointer = &terminal_type_op; + pcb->file_array[0].inode_pointer = 0; + pcb->file_array[0].file_position =0; + pcb->file_array[0].flags = 1; + + //Stdout, 1 for keyboard, set the appropriate parameter + pcb->file_array[1].file_operations_pointer = &terminal_type_op; + pcb->file_array[1].inode_pointer = 0; + pcb->file_array[1].file_position =0; + pcb->file_array[1].flags = 1; + + //Done kernel stuff. Allocate page for user_used space + __user_space_alloc(pcb); + +#if debug_exec + printf("enter do_execute done copy program to memory\n"); +#endif + + //Write the program to the memory + read_data(inode,0,(uint8_t *)0x08048000, sizeofinode(inode)); +#if debug_exec + printf("enter do_execute done copy program to memory\n"); +#endif + +#if debug_exec + printf("command_word : %s\n" , pcb->command_word); +#endif + +#if debug_exec + printf("first instruction of this program: %x\n" , *(uint32_t *)(pcb->regs.return_addr)); +#endif + + //Get the new eip which is 24-27 bytes as the program entry point + pcb->regs.return_addr=(uint32_t)*(uint32_t *)0x08048018; + + //initialization process + get_inode_init(inode); + + //Switch process, enter the program + switch_pcb(pcb); + + //This return should never happen +return 0; +} + + + + +////////////////////////////////////////////////sys_call 3///////////////////////////////////////////////// +/* do_read + * Description: read the file to the end of the file, or return the line has been terminated + * Input: --fd: index of file array + * --buf: pointer to where to read + * --nbutes: length need to read. + * Output: N/A + * Return value: return the number of bytes read or -1 if failed + * Side effect: N/A + */ +int32_t +do_read (int32_t fd, void* buf, int32_t nbytes){ +#if debug_read + //printf("entering read: %d",fd); +#endif + /* Obtain the current pcb. */ + pcb_t* pcb = get_cur_pcb(); + /* Check the condition of the file.*/ + if(fd >= 8 || buf == NULL || pcb->file_array[fd].flags == 0 || pcb->file_array[fd].file_operations_pointer == NULL||fd==1) +#if failure_msg_on + printf("FAIL read001:failed\n" ); +#endif + return -1; +#if debug_read + int32_t K; + K=((file_type_op_action_t *) (pcb->file_array[fd].file_operations_pointer))-> read((filedescriptor_t*)&pcb->file_array[fd],buf,(uint32_t)nbytes); + printf("read_buf %s\n",buf); +#endif + /* return the number of bytes read. */ + return ((file_type_op_action_t *) (pcb->file_array[fd].file_operations_pointer))-> read((filedescriptor_t*)&pcb->file_array[fd],buf,(uint32_t)nbytes); +} + + + + + +////////////////////////////////////////////////sys_call 4///////////////////////////////////////////////// +/* do_write + * Description: write the data to the terminal or to a device + * Input: --fd: index of file array + * --buf: pointer to where to write + * --nbutes: length need to write. + * Output: N/A + * Return value: return the number of bytes write or -1 if failed + * Side effect: N/A + */ +int32_t +do_write (int32_t fd, const void* buf, int32_t nbytes){ +#if debug_write + printf("entering write %d ",fd); +#endif + /* Obtain the current pcb. */ + pcb_t* pcb = get_cur_pcb(); + /* Check the condition of the file.*/ + if(fd >= 8 || buf == NULL || pcb->file_array[fd].flags == 0 || pcb->file_array[fd].file_operations_pointer == NULL||fd==0) +#if failure_msg_on + printf("FAIL writ001:failed\n" ); +#endif + return -1; + /* return the number of bytes write. */ + return ((file_type_op_action_t *) (pcb->file_array[fd].file_operations_pointer))-> write((filedescriptor_t*)&pcb->file_array[fd],buf,(uint32_t)nbytes); +} + + + + + +////////////////////////////////////////////////sys_call 5///////////////////////////////////////////////// +/* do_open + * Description: provides the access of the file. + * Input: --filename: the file that needs access to + * Output: N/A + * Return value: return the file descriptor index or -1 if failed + * Side effect: N/A + */ +int32_t +do_open (const uint8_t* filename){ + int32_t fd; + dentry_t dentry; + +#if debug_open + printf("filename : %s\n" , filename); +#endif + /* Obtain the dentry by the following func call*/ + read_dentry_by_name(filename,&dentry); +#if debug_open + printf("file read success : %s\n" , filename); +#endif + uint32_t inode = get_inode_by_name((uint8_t*)filename); + /* Obtain the current pcb*/ + pcb_t* pcb = get_cur_pcb(); + + /* Search for the file which is accessible */ + for( fd = 2; fd<8; fd++) + { + if(pcb->file_array[fd].flags == 0) + break; + } + + if(fd == 8) + + { +#if failure_msg_on + printf("FAIL open001:too many opened" ); +#endif + return -1; + + } + /* Set up the file according to dentry type. */ + if(dentry.type == 0) + { + pcb->file_array[fd].file_operations_pointer = &RTC_type_op;//file_type_op table address + pcb->file_array[fd].inode_pointer = 0; + pcb->file_array[fd].file_position = 0; + pcb->file_array[fd].flags = 1; + } + if(dentry.type == 1) + { + pcb->file_array[fd].file_operations_pointer = &directry_type_op;//file_type_op table address + pcb->file_array[fd].inode_pointer = 0; + pcb->file_array[fd].file_position = 0; + pcb->file_array[fd].flags = 1; + } + if(dentry.type == 2) + { + pcb->file_array[fd].file_operations_pointer = &file_type_op;//file_type_op table address + /* For a "file" type, set up the inode obtained from above. */ + pcb->file_array[fd].inode_pointer = inode; + pcb->file_array[fd].file_position = 0; + pcb->file_array[fd].flags = 1; + } +#if debug_open + printf("fd : %d\n" , fd); +#endif + /* Return fd which its file has been set to accesible*/ + return fd; + +} + + + + +////////////////////////////////////////////////sys_call 6///////////////////////////////////////////////// +/* do_close + * Description: set the specific file descriptor's flag and be ready to reopen + * Input: --fd: the specific file descriptor + * Output: N/A + * Return value: return 0 if succeed or -1 if failed + * Side effect: N/A + */ +int32_t +do_close (int32_t fd) +{ + /* Obtain the current pcb */ + pcb_t* pcb = get_cur_pcb(); + if(fd >= 8 || fd <2) { +#if failure_msg_on + printf("do_close invalid fd\n" ); +#endif + return -1;} + /*Set the position to 0 as well as the flag*/ + pcb->file_array[fd].file_position = 0; + pcb->file_array[fd].flags = 0; + return 0; +} + + + +////////////////////////////////////////////////sys_call 7///////////////////////////////////////////////// +/* do_getargs + * Description: get the args from the command line except the first word and store them into the buffer + * Input: --buf: the buffer which store the data from command line + * --nbytes: the length of the bytes that needs to store + * Output: N/A + * Return value: return 0 if succeed or -1 if failed + * Side effect: N/A + */ +int32_t +do_getargs (uint8_t* buf, int32_t nbytes) +{ + /* Obtain the current pcb */ + pcb_t* pcb = get_cur_pcb(); + if (strlen((const int8_t*)(pcb->args)) > nbytes || nbytes < 1) { +#if failure_msg_on + printf("FAIL getag001:try to get too more arg or too few bytes\n"); +#endif + return -1;} + /* Copy the arguments into the buffer. */ + strncpy((int8_t*)buf, (const int8_t*)(pcb->args), nbytes); + return 0; +} + + + + +////////////////////////////////////////////////sys_call 8///////////////////////////////////////////////// +/* do_vidmap + * Description: maps the text-mode video memory into user space + * Input: --screen_start: starting addr of the screen + * Output: the starting memory has been maps to the correct video memory + * Return value: return 0 if succeed or -1 if failed + * Side effect: N/A + */ +int32_t +do_vidmap (uint8_t** screen_start) +{ + /* Check if the addr is within the program image*/ + if(screen_start < (uint8_t**) 0x08000000 || screen_start > (uint8_t**) 0x08400000) +#if failure_msg_on + printf("FAIL dovid001:fail\n"); +#endif + return -1; + /* Maps the video memory*/ + *screen_start = (uint8_t*) get_vid_start(); + return 0; +} + + + +////////////////////////////////////////////////sys_call 9///////////////////////////////////////////////// +/* do_set_handler + * Description: N/A + * Input: --signum: N/A + * --handler_address: N/A + * Output: N/A + * Return value: N/A + * Side effect: N/A + */ +int32_t +do_set_handler (int32_t signum, void* handler_address) +{ +return -1; +} + + + +////////////////////////////////////////////////sys_call 10///////////////////////////////////////////////// +/* do_sigreturn + * Description: N/A + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: N/A + */ +int32_t +do_sigreturn (void) +{ +return -1; +} + + + + + + + diff --git a/sys_call.h b/sys_call.h new file mode 100644 index 0000000..9418bc1 --- /dev/null +++ b/sys_call.h @@ -0,0 +1,29 @@ +#ifndef _SYS_CALL_H +#define _SYS_CALL_H +#include "types.h" + +extern int32_t do_test (void); +extern int32_t do_halt (uint8_t status); +extern int32_t do_execute (const uint8_t* command); +extern int32_t do_read (int32_t fd, void* buf, int32_t nbytes); +extern int32_t do_write (int32_t fd, const void* buf, int32_t nbytes); +extern int32_t do_open (const uint8_t* filename); +extern int32_t do_close (int32_t fd); +extern int32_t do_getargs (uint8_t* buf, int32_t nbytes); +extern int32_t do_vidmap (uint8_t** screen_start); +extern int32_t do_set_handler (int32_t signum, void* handler_address); +extern int32_t do_sigreturn (void); + +#endif + + + + + + + + + + + + diff --git a/sys_call.o b/sys_call.o new file mode 100644 index 0000000000000000000000000000000000000000..d009cd67c4625431594be9226d46c253b97e88e5 GIT binary patch literal 11816 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 literal 0 HcmV?d00001 diff --git a/table.c b/table.c new file mode 100644 index 0000000..d1683bf --- /dev/null +++ b/table.c @@ -0,0 +1,149 @@ +#include "task.h" +#include "lib.h" +#include "table.h" + +#define maxhist 20 +/********************************************************* + * this table is a data structure we referenced from internet + * Description : It provides functions: push, pop and get elements + * in table. Table functioned as a container like + * queue. + */ +static char buffer[NUM_TERMINAL * maxhist ][1024]; +static int buffer_cur[NUM_TERMINAL]; +static int buffer_total[NUM_TERMINAL]; +/* init_table + * Description: initial the table + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: clear the buffer. + */ +void init_table(void) +{ + int i,j,k; + for(i = 0; i < NUM_TERMINAL;i++) + { + for(j = 0; j < maxhist;j++) + for(k = 0; k < 1024;k++) + { + buffer[i*maxhist + j ][k] = 0; + } + buffer_cur[i] = 0; + } +} +/* uptable + * Description: increase the table + * Input: -- buf: store the data from the terminal + * -- terminal: current terminal + * Output: N/A + * Return value: the length stored + * Side effect: N/A + */ + +int uptable(char * buf, uint32_t terminal) +{ + int k; + // if(buffer_cur[terminal] < buffer_total[terminal]) + // { + if((buffer_cur[terminal]) == 0) + { + return strlen(buf); + } + else + { + buffer_cur[terminal]--; + for(k = 0; k < 1024;k++) + { + buf[k]=buffer[terminal*maxhist + buffer_cur[terminal]][k]; + } + return strlen(buffer[terminal*maxhist + buffer_cur[terminal]]); + } + + // } + // else + // { + // for(k = 0; k < strlen(buf);k++) + // { + // if((buf[k] != '\n') && (buf[k] != '\0' )) + // buffer[terminal*maxhist + buffer_total[terminal]][k] = buf[k]; + // } + // buffer_total[terminal]++; + // buffer_cur[terminal] = buffer_total[terminal]; + // } +} + + +/* downtable + * Description: decrease the table + * Input: -- buf: store the data from the terminal + * -- terminal: current terminal + * Output: N/A + * Return value: the length stored + * Side effect: N/A + */ + +int downtable(char * buf, uint32_t terminal) +{ + int k; + if((buffer_cur[terminal] ) == buffer_total[terminal]) + { + return strlen(buf); + } + else + { + buffer_cur[terminal]++; + for(k = 0; k < 1024;k++) + { + buf[k] = buffer[terminal*maxhist + buffer_cur[terminal]][k] ; + } + return strlen(buf); + } + +} + +/* pushtable + * Description: push the table + * Input: -- buf: pop the data stored + * -- terminal: current terminal + * Output: N/A + * Return value: the length stored + * Side effect: if the content reaches maximum, clear the oldest one. + */ +void pushtable(char * buf, uint32_t terminal) +{ + int j,k; + if((buffer_total[terminal]) == maxhist) + { + for(j = 0; j <(maxhist - 1);j++) + for(k = 0; k < 1024;k++) + { + buffer[terminal*maxhist + j ][k] = buffer[terminal*maxhist + j + 1][k]; + } + for(k = 0; k < 1024;k++) + { + if((buf[k] != '\n') && (buf[k] != '\0' )) + buffer[terminal*maxhist + j][k] = buf[k]; + else + buffer[terminal*maxhist + j][k] = 0; + } + buffer_cur[terminal] = buffer_total[terminal]; + } + else + { + if((buf[0] == '\n') || (buf[0] == '\0' )) + return; + for(k = 0; k < 1024;k++) + { + if((buf[k] != '\n') && (buf[k] != '\0' )) + buffer[terminal*maxhist + buffer_total[terminal]][k] = buf[k]; + } + buffer_total[terminal]++; + buffer_cur[terminal] = buffer_total[terminal]; + + } + + +} + + diff --git a/table.h b/table.h new file mode 100644 index 0000000..b09f22d --- /dev/null +++ b/table.h @@ -0,0 +1,20 @@ +#ifndef _TABLE_H +#define _TABLE_H + +extern int uptable(char * buf, uint32_t terminal); +extern int downtable(char * buf, uint32_t terminal); +extern void pushtable(char * buf, uint32_t terminal); +extern void init_table(void); +#endif + + + + + + + + + + + + diff --git a/table.o b/table.o new file mode 100644 index 0000000000000000000000000000000000000000..fe61117f37333c691d1a2512cdafea8169b38d3d GIT binary patch literal 4576 zcmcInZ)jWB6~FgANq(_pTej2Gql2lCtWFm{J9g$#C(W98T5IUSNb9U4bgpD8kz!kN zrKdC*jn_`e79p}>k1$4QO9}Zfy0U#)DU^bfW_1SLno<~reaW^Cnk9@5ydjvu`~B{_ zS9(gb(Jwpj^gI9VIp^Mc?z>OlOFsH_DWxzZg)N$r5Kp!HmR$<^#oc1Fn5_P_ax1=? zT%+#h;nieaF=MOAb;WG0O|Dh1UAk^b{@BTSZF2q6^>%qJO!GTJRFdoR`BUo~wh)US zRFZXBIaTjnT&X43RzqjRC-kDz8uV+{;>*8%TV?F4C1W+;erBcITT43C(AJOFH#Rn^ z$y+ymj3IQ`tO8X2CaXSYiW;jW*Q=N8Z#cEdShKk56pmhRW%=Zj&I4_q$CTPJZdADF@A|H}+o7R?m+7`C%nSEatW>&zB3f!X1# z+2MnqT7b24F{}0@Hu$zRUBhBlR%C6m-rV@E*W=Zz6hBl8bvDkOfBsZmwZTQb-93xT zCYx7F*6pN&ZP?T9?QICBSG=8f$miFgN8Fa^=C(Tw;BE)1Q*GI-r^5A^L_3}5R_R{4 z@v3Svzof3yFE*spE9LNwA3-#=Ki()8wU0Lh)IR#DQrOf?qL=c{QwXlr1r`=kg<*}W zK1ZE8AFAHac^;$6mH6Q&-$q&gon*I+M|$wP&FPKW&OMG0)>dIV(dgc&5cU?ZW6|Bw ziC!T>(0BU!uq$QnS7W~IzF4>Hkq(TX=7@wR%nT8b2r8;I&7Tt4Sbsj7s$Tg|D+44_C($i7)H*3w+$Sc6}P%rj%U@`8>qAUS{$ z2B6;obkgM`LhhiOwInumKqYt3!CDG2lIv&iM0@BL(6+tCcr%4(@;c(TR76JmJ)S2T z5f8OQJQRrdgozlI*ebbDE@gGBqGSy2+37}{r(5DYZQ@|QB{O$asrdyF?L$l!8v6}? zc6aa>Z;}XRc_f3?jxlFgbwzX!SjJGUmhqXIF2k>5hwq2uqQ_2o=z=*RJADh!llUnf zOKiull>hGRz^}S9xkN(E37rJ;PA+6hZk8;PBQTGU%q}l2JAYoiV4wVhz3C-8>K^;h z8Fn6AwnpRc+MU+0v^(6abNpXg<=h3AvztB&OR%GLWGDT4Q{~=Dde+GEEGBm-Dc+2#HHNV>723lcZ7|ex;O8j=l;GD(D#8S zalihA$He(s#XoRRVPQOV2&n<@5Y_gHGF~S>Q7+-3FR|?N4v{&nfG=fN>AVne$mbm* z>j?T%e$Tgui0}KnLu7vieUmCDenbIV^DZ!O=6D9p=}CcacK&OSn!U^6pU0y%*MA96 zrIINIKaF$F^Y3Mf^SL}4N<2J1K9=am8*2M!ctHubbaEc81@wwOW(`-&%(-6XgeTmY zl$R22x>N$2NtcgKrPAqQ=D2X_;%jpGBZZ(mm&<2@@{wX{9tz)it}q?6EtJ!FSP{J$ zFI7zCk5c82KuyA(F3iv4l_}hO!OOUq;XuhtP4mcoR{8=QvCaawh$4P(ns+)C>QxE6 z2hS!dG_7=j!N9wGP=0K>ZCdubREUoZ13k&a`x1EiH_R~f@x*INXdD8vz6QbXjfT*) z?T0St_XhmfZHA0(FBC2Fz#(3Nj`QFeus+sx5RVxHR@~Pn#0z9J8QTHK!FbPg`{Nmp zaZJ24crym9xPo{m$Y`P;={tCW@y;UNL(nlE{}PyZ1@OUmdywo`&>1qeMJNnU+b#G_ z7^i^kyWoR)uLkD9E6e0v4vYaSzKlT$GMY>-ev}2{T|+!9wVDT8$HaRDycq*lOk&U$ zGMbEyH;&i|#v&w@n+Y$&JMd)kjznIRL87-%C=$6_o%$r^j`a2}i& z(=>V+d=`^D1T;(*7u9-c7tSDL1|n^!JGm>Jvn>{#QrfMl!b%-mr6-eBeR~UPfcc zBeDEEuS9jufaf4vxa?on`k!n3K;vIDcA_+n`<%vmfgJaMmd7<7)Oucx^qO>N@zHC8PeQ1?w2n@-A(EM9b_e+Mm+$jF#0p;K!g@hyMWV`3K4X literal 0 HcmV?d00001 diff --git a/task.c b/task.c new file mode 100644 index 0000000..09a8651 --- /dev/null +++ b/task.c @@ -0,0 +1,486 @@ +//memory wasteful algorithm + +#include "task.h" +#include "page.h" +#include "x86_desc.h" +#include "file_system.h" +#include "lib.h" +#include "i8259.h" +#include "irq0.h" + +#define debug_get_new_pcb 0 +#define debug_switch_pcb 0 +#define debug_remove_pcb 0 +#define debug_change_task 0 +#define debug_task_num_on 1 + + +extern int screen_x[NUM_TERMINAL]; +extern int screen_y[NUM_TERMINAL]; + +regs_t program_state_b4_task_switch; //save run-time state b4 irq0 happened in a particular terminal +regs_t context_regs[NUM_TERMINAL]; //save run-time state b4 syscall +regs_t parent_of_current_task[NUM_TERMINAL]; //when a execute happens, this is a backup of run-time state b4 execute runs + + + +static pcb_t* pcb_list_head[NUM_TERMINAL] ; //currently executing program in each terminal +static uint32_t task_bitmap[NUM_OF_TASK_TOTAL]={0}; //bitmap of the task in each terminal +static int32_t inode_init; //only for initialization of the pcbs for each terminal + +volatile uint32_t cur_terminal = 0; //currently running program in scheduleing time slice +volatile uint32_t alt_terminal = 0; //the terminal we are looking at +volatile uint32_t system_init_flag = 0; //system initialization flag.1 means +//volatile uint32_t irq0_flag =0; + + +//internal function +static void system_terminal_init(); +static const char haltimg0 []= "\\(^_^\\)~~~~~~~~~~~~~~~~~~~~~~~~~~~\\(>o<)/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(/^_^)/\n"; +static const char haltimg1 []= "\\(^_^\\)---------------The operating systam is halted-------------------(/^_^)/\n"; +static const char haltimg2 []= "\\(^_^\\) (/^_^)/\n"; +/* Swtich_task + * Description: It maps the data into video mmemory and increment the current task + * Input: -- cur_terminal: The identity of the current terminal, i.e: Terminal 1, Terminal 2, etc. + * Output: Increment the current terminal number + * Return value: N/A + * Side effect: allocate page for the user lvl, and switch the task. + */ +void +switch_task() +{ + + uint32_t stack_ptr_temp; + + /* Store the regs info before switching into pcb.*/ + pcb_list_head[cur_terminal]->regs=program_state_b4_task_switch; + + /* Temp variable for storing the esp*/ + stack_ptr_temp=pcb_list_head[cur_terminal]->regs.esp; + /* Map the video mem from vitrual to physical */ + user_page_mapper_4K((uint32_t)0xB8000,(uint32_t)0xB8000); + /* Map the video mem for the displaying terminal which going to switch. */ + user_page_mapper_4K((uint32_t)0xB8000+(alt_terminal+1)*size_of_vmem,(uint32_t)0xB8000+(alt_terminal+1)*size_of_vmem); + /* Map the video mem for the running terminal which going to switch. */ + user_page_mapper_4K((uint32_t)(uint32_t)0xB8000+(cur_terminal+1)*size_of_vmem,(uint32_t)0xB8000+(cur_terminal+1)*size_of_vmem); + if(alt_terminal==cur_terminal) + /* Memory copy from 0xB800 to the video mem of running terminal*/ + memcpy((void*)0xB8000+(cur_terminal+1)*size_of_vmem, (void*)0xB8000, size_of_vmem); + /* Else, increment the running terminal. */ + cur_terminal++; + /* If it reaches the max, then switch back to terminal 0*/ + if(cur_terminal==NUM_TERMINAL) + cur_terminal=0; + + if(alt_terminal==cur_terminal) + /* Memory copy from 0xB800 to the video mem of displaying terminal*/ + memcpy((void*)0xB8000+(alt_terminal+1)*size_of_vmem, (void*)0xB8000, size_of_vmem); + + + user_page_mapper_4K((uint32_t)0xB8000,(uint32_t)0xB8000+(cur_terminal+1)*size_of_vmem); + user_page_mapper_4K((uint32_t)0xB8000+(alt_terminal+1)*size_of_vmem,(uint32_t)0xB8000); + + //update_cursor(screen_y[alt_terminal],screen_x[alt_terminal]); + + __user_space_alloc((pcb_t*)pcb_list_head[cur_terminal]); + + +#if debug_change_task + printf("\n Going to p_esp:%x,return_addr:%x,cs:%x,ds:%x,es:%x,ss:%x\n",pcb_list_head[cur_terminal]->regs.p_esp,pcb_list_head[cur_terminal]->regs.return_addr,pcb_list_head[cur_terminal]->regs.cs,pcb_list_head[cur_terminal]->regs.ds,pcb_list_head[cur_terminal]->regs.es,pcb_list_head[cur_terminal]->regs.ss); +#endif + /* Obtain the esp info back to the pcb, for protection purpose. */ + pcb_list_head[cur_terminal]->regs.esp=stack_ptr_temp; + /* Call switch function to switch pcb. */ + switch_pcb ((pcb_t*)pcb_list_head[cur_terminal]); +} + +/* get_inode_init + * Description: obtain the inode + * Input: -- inode: index node from file + * Output: obtain the inode + * Return value: N/A + * Side effect: N/A + */ +void +get_inode_init(int32_t inode) +{ + inode_init=inode; +} + +/* system_terminal_init + * Description: initialize each terminals + * Input: -- inode: index node from file + * Output: allocate pages for each terminal video mem + * Return value: N/A + * Side effect: start the system timer and shwo the statusbar for each terminal + */ +static void +system_terminal_init() +{ + uint32_t i; + uint32_t k=0; + for (i=0;ikernel_esp = (uint32_t)((pcb_t*)0x007ffffc-i); //allocate kernel stack for each terminal task + pcb_list_head[i]->pid=i; + pcb_list_head[i]->parent=pcb_list_head[i]; + pcb_list_head[i]->child=pcb_list_head[i]; + k=(i-i%SCALE)/SCALE; + task_bitmap[k]|=(1<<(i%SCALE)); //map to each task_bitmap + user_space_alloc((uint32_t)(fourmb * i)); //write program image to each terminal + read_data(inode_init,0,(uint8_t *)0x08048000, sizeofinode(inode_init)); //user physical page + user_page_mapper_4K((uint32_t)0xB9000+i*size_of_vmem,(uint32_t)0xB9000+i*size_of_vmem); //allocate pages for each terminal video mem + } + + user_page_mapper_4K((uint32_t)0xB8000,(uint32_t)0xB8000+(cur_terminal+1)*size_of_vmem); //intialize to first terminal + user_page_mapper_4K((uint32_t)0xB8000+(alt_terminal+1)*size_of_vmem,(uint32_t)0xB8000); + __user_space_alloc(pcb_list_head[cur_terminal]); + /* Call the statusbar func to display message of current terminal. */ + statusbar(); + open_IRQ0(); + cli(); +#if debug_task_num_on + int task_count; + for(k=0;k>i) & 1)),++i); +#endif + + system_init_flag=1; +} + +/* changetask + * Description: initialize each terminals + * Input: -- inode: index node from file + * Output: allocate pages for each terminal video mem + * Return value: N/A + * Side effect: start the system timer and shwo the statusbar for each terminal + */ + +void +changetask() +{ + + user_page_mapper_4K((uint32_t)0xB8000,(uint32_t)0xB8000); + user_page_mapper_4K((uint32_t)0xB8000+(alt_terminal+1)*size_of_vmem,(uint32_t)0xB8000+(alt_terminal+1)*size_of_vmem); + memcpy((void *)0xB8000,(const void *)(0xB8000 + (alt_terminal+1)*size_of_vmem),(uint32_t)size_of_vmem); + /* Switch the displaying terminal */ + alt_terminal++; + /* If it reaches the end, go back to 0*/ + if(alt_terminal==NUM_TERMINAL) + alt_terminal=0; + /* Map the video mem from vitrual to physical */ + memcpy((void *)0xB8000,(const void *)(0xB8000 + (alt_terminal+1)*size_of_vmem),(uint32_t)size_of_vmem); + /* Map the video mem for the displaying terminal which going to switch. */ + user_page_mapper_4K((uint32_t)0xB8000,(uint32_t)0xB8000+(cur_terminal+1)*size_of_vmem); + /* Memory copy from 0xB800 to the video mem of running terminal*/ + user_page_mapper_4K((uint32_t)0xB8000+(alt_terminal+1)*size_of_vmem,(uint32_t)0xB8000); + /* Update the cursor when switch to a new terminal */ + __user_space_alloc(pcb_list_head[cur_terminal]); + update_cursor(screen_y[alt_terminal],screen_x[alt_terminal]); +} + + +/* __user_space_alloc + * Description: allocat the user space + * Input: -- context_reg_stack: context of the current terminal + * Output: N/A + * Return value: N/A + * Side effect: store the info + */ + +void +__user_space_alloc(pcb_t* pcb) +{ + user_space_alloc((uint32_t)(fourmb * pcb->pid)); +} + +/* save_context_for_terminal_switch + * Description: save the context before switching + * Input: -- context_reg_stack: context of the current terminal + * Output: N/A + * Return value: N/A + * Side effect: store the info + */ +void +save_context_for_terminal_switch(regs_t* context_reg_stack) +{ + + //spare the context info + if (context_reg_stack->irq_num==0x20) + { + /* Store the context reg info b4 task switch*/ + memcpy((void*)&program_state_b4_task_switch, (void*)context_reg_stack, sizeof(regs_t)); + program_state_b4_task_switch.esp = (uint32_t)context_reg_stack; + } + +} + +/* save_context + * Description: save the context + * Input: -- context_reg_stack: context of the current terminal + * Output: N/A + * Return value: N/A + * Side effect: store the info + */ + + +void +save_context(regs_t* context_reg_stack) +{ + uint32_t i; + if(!system_init_flag) { + for (i=0;iuser_esp=(uint32_t)context_reg_stack->p_esp; + //spare the context info + memcpy((void*)&context_regs[cur_terminal], (void*)context_reg_stack, sizeof(regs_t)); + //set current esp point to the stack head + context_regs[cur_terminal].esp = (uint32_t)context_reg_stack; +} + + +void +spare_info_for_halt_for_this_pcb(void) +{ + memcpy((void*)&parent_of_current_task[cur_terminal],(void*)&context_regs[cur_terminal],sizeof(regs_t)); +} + +/* Obtaining the current pcb*/ +pcb_t* +get_cur_pcb(void) +{ + return (pcb_t*)pcb_list_head[cur_terminal]; +} + +/* get_new_pcb + * Description: create the new pcb if it is available. + * Input: -- cur_terminal: current terminal numbers + * Output: N/A + * Return value: N/A + * Side effect: construct a new pcb + */ + +pcb_t* +get_new_pcb(void) +{ + pcb_t* new_pcb; + uint32_t i, alloc_pid; + uint32_t k=0; + +#if debug_task_num_on + int task_count; + for(k=0;k>i) & 1)),++i); +#endif + + + for(k=0;(kpid=alloc_pid; + new_pcb->parent=(pcb_t*)pcb_list_head[cur_terminal]; + new_pcb->parent->child=(pcb_t*)new_pcb; + //new_pcb->child=NULL; + new_pcb->kernel_esp=(uint32_t)((pcb_t*)0x7ffffc - alloc_pid); + new_pcb->user_esp=(uint32_t)0x83ffffc; + memcpy((void*)&(new_pcb->regs),(void*)&context_regs[cur_terminal], sizeof(regs_t)); + new_pcb->regs.cs = USER_CS; + new_pcb->regs.ss = USER_DS; + new_pcb->regs.ds = USER_DS; + new_pcb->regs.es = USER_DS; + new_pcb->regs.fs = USER_DS; + new_pcb->regs.gs = USER_DS; + new_pcb->regs.ebp=(uint32_t)new_pcb->user_esp; + new_pcb->regs.p_esp=(uint32_t)new_pcb->user_esp; + new_pcb->regs.eflags=0x200|new_pcb->regs.eflags; + pcb_list_head[cur_terminal] = new_pcb; + +#if debug_task_num_on + for(k=0;k>i) & 1)),++i); +#endif + + return new_pcb; +} + + + +/* switch_pcb + * Description: create the new pcb if it is available. + * Input: -- cur_terminal: current terminal numbers + * Output: N/A + * Return value: N/A + * Side effect: set the ss as kernel and copy the regs onto kernel stack + */ +void +switch_pcb (pcb_t* pcb) +{ + +#if debug_task_num_on + int task_count,i,k; + for(k=0;k>i) & 1)),++i); +#endif + + //if it's the system initializing execute + if(!system_init_flag) + system_terminal_init(); + /* Set the tss according to the appendix */ + tss.ss0 = KERNEL_DS; + tss.esp0 = (uint32_t)(pcb->kernel_esp); + +#if debug_switch_pcb + printf("\npid:%d,parent:%x,child:%x,command_word:%s,arg:%s,ebp:%x,ss:%x,cs:%x,p_esp:%x,return_addr:%x,eflags:%x,list_head:%x,kernel_esp=%x,user_esp:%x,eax:%x\n" + ,pcb->pid,(uint32_t)pcb->parent,(uint32_t)pcb->child,pcb->command_word,pcb->args,pcb->regs.ebp,pcb->regs.ss,pcb->regs.cs,pcb->regs.p_esp,pcb->regs.return_addr + ,pcb->regs.eflags,(uint32_t) pcb_list_head[cur_terminal],pcb->kernel_esp,pcb->user_esp,pcb->regs.eax); +#endif + + /* Copy the regs info onto kernel stack. */ + memcpy((void*)(pcb->regs.esp),(void*)&pcb->regs, sizeof(regs_t)); + +} + +/* remove_pcb + * Description: remove the pcb + * Input: -- cur_terminal: current terminal numbers + * -- status: the current status + * Output: N/A + * Return value: -- parent->regs.eax : the return addr of the parent. + * Side effect: remove from the taks bit map and pcb head points to the parent + */ + +int32_t +remove_pcb(uint8_t status) +{ + int32_t i; + int32_t task_count=0; + uint32_t k; + pcb_t* parent; + + //Get the number of task now + + for(k=0;k>i) & 1)),++i); + + + if (task_count==1) { + clear(); + printf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", + haltimg0,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2, + haltimg1,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2,haltimg2,haltimg0); + cli(); + while(1); + } + +#if debug_remove_pcb + //printf("task_count before exit:%d,bit_map:%d\n",task_count,task_bitmap[k]); +#endif + else if (task_count==0) { + printf("FAIL rpcb001:No task at all. You must execute a shell in kernel.c!!\n"); + return -1;} + + else { + //Remove current process from the bit-map + for(k=0; (kpid)%SCALE))); + +#if debug_remove_pcb + printf("task_count after exit:%d,bit_map:%d\n",task_count,task_bitmap[cur_terminal]); +#endif + //Killing no task will raise error + if (pcb_list_head[cur_terminal]==NULL) { + printf("FAIL rpcb002:Attemp to remove a non existed task!\n"); + return -1; + } + + //set the pcb list head to parent; + parent = (pcb_t*)pcb_list_head[cur_terminal]->parent; + // and copy the related info. + memcpy((void*)&parent->regs,(void*)&parent_of_current_task[cur_terminal],sizeof(regs_t)); + + //remap page for the parent + __user_space_alloc(parent); + +#if debug_remove_pcb + printf("Trying to remove task from list.."); + printf("\n:::current task info:::\n list_head:%x,tss.esp0:%x\n",(uint32_t)pcb_list_head[cur_terminal],(uint32_t)tss.esp0); + printf(":::parent pcb general info:::\n pid:%d,command_word:%s,arg:%s,kernel_esp=%x,user_esp:%x,parent:%x,child:%x\n" + ,parent->pid,parent->command_word,parent->args,parent->kernel_esp,parent->user_esp,(uint32_t)parent->parent,(uint32_t)parent->child); + printf(":::parent pcb reg info::: \nebx:%x,ecx:%x,edx:%x,esi:%x,edi:%x,ebp:%x,esp:%x,eax:%x,ds:%x,es:%x,fs:%x,gs:%x,irq_num:%x,error_code:%x,return_addr:%x,cs:%x,elags:%x,p_esp:%x,ss:%x\n", + parent->regs.ebx,parent->regs.ecx,parent->regs.edx,parent->regs.esi,parent->regs.edi,parent->regs.ebp,parent->regs.esp, + parent->regs.eax,parent->regs.ds,parent->regs.es,parent->regs.fs,parent->regs.gs,parent->regs.irq_num,parent->regs.error_code, + parent->regs.return_addr,parent->regs.cs,parent->regs.eflags,parent->regs.p_esp,parent->regs.ss); +#endif + + //A fake halter, since there is an unknown bug when the system going back to kernel + tss.ss0 = KERNEL_DS; + tss.esp0 = (uint32_t)(parent->kernel_esp); +#if debug_remove_pcb + printf(":::Tried to return to stack:::\nebx:%x,ecx:%x,edx:%x,esi:%x,edi:%x,ebp:%x,esp:%x,eax:%x,ds:%x,es:%x,fs:%x,gs:%x,irq_num:%x,error_code:%x,return_addr:%x,cs:%x,elags:%x,p_esp:%x,ss:%x\n", + parent->regs.ebx,parent->regs.ecx,parent->regs.edx,parent->regs.esi,parent->regs.edi,parent->regs.ebp,parent->regs.esp, + parent->regs.eax,parent->regs.ds,parent->regs.es,parent->regs.fs,parent->regs.gs,parent->regs.irq_num,parent->regs.error_code, + parent->regs.return_addr,parent->regs.cs,parent->regs.eflags,parent->regs.p_esp,parent->regs.ss); +#endif + + + //Kill children;Update linklist + parent->child = NULL; + parent->regs.eax = (uint32_t)status&0x0ff; + pcb_list_head[cur_terminal] = parent; + + pcb_list_head[cur_terminal]->regs.esp=context_regs[cur_terminal].esp; + switch_pcb ((pcb_t*)pcb_list_head[cur_terminal]); + return parent->regs.eax; + } +} +/* get_vid_start + * Description: Obtain the staring video mem. + * Input: N/A + * Output: N/A + * Return value: video mem + * Side effect: N/A + */ +uint8_t* get_vid_start() +{ +if(cur_terminal==alt_terminal) +/* If the displaying terminal is the running terminal,then update the video mem*/ +return (uint8_t*)0xB8000+ (alt_terminal + 1)*size_of_vmem; +else +return (uint8_t*)0xB8000; +} + + + + + + + diff --git a/task.h b/task.h new file mode 100644 index 0000000..eb1f305 --- /dev/null +++ b/task.h @@ -0,0 +1,80 @@ +#ifndef _TASK_H +#define _TASK_H + +#include "types.h" +#include "file_desc.h" +#define COMM_WORD_LENGTH 64 +#define ARG_LENGTH 64 +#define size_of_vmem 4096 + +#define NUM_TERMINAL 3 +#define NUM_OF_TASK 68 +#define SCALE 32 +#define NUM_OF_TASK_TOTAL (int)(NUM_OF_TASK/SCALE + NUM_TERMINAL/SCALE+1) + +//Register stack +typedef struct{ + uint32_t ebx; + uint32_t ecx; + uint32_t edx; + uint32_t esi; + uint32_t edi; + uint32_t ebp; + uint32_t esp; + uint32_t eax; + uint32_t ds; + uint32_t es; + uint32_t fs; + uint32_t gs; + uint32_t irq_num; + uint32_t error_code; + uint32_t return_addr; + uint32_t cs; + uint32_t eflags; + uint32_t p_esp; + uint32_t ss; +}regs_t; + +//Process Control Block Structure +union pcb__t{ +struct{ + uint32_t pid; + filedescriptor_t file_array[8]; + uint8_t command_word[COMM_WORD_LENGTH]; + uint8_t args[64]; + uint32_t kernel_esp; + uint32_t user_esp; + union pcb__t* parent; + union pcb__t* child; + union pcb__t* nxt_task; + union pcb__t* prv_task; + regs_t regs; //run-time state of the program +}; +uint32_t ker_stack[2048]; +}; +typedef union pcb__t pcb_t; + +extern void changetask(); +extern pcb_t* get_new_pcb(void); +extern pcb_t* get_cur_pcb(void); +extern void switch_pcb (pcb_t* pcb); +extern int32_t remove_pcb(uint8_t status); +extern void save_context(regs_t* context_reg_stack); +extern void spare_info_for_halt_for_this_pcb(void); +extern void __user_space_alloc(pcb_t* pcb); +extern void get_inode_init(int32_t inode); +extern volatile uint32_t cur_terminal; +extern volatile uint32_t alt_terminal; +extern void save_context_for_terminal_switch(regs_t* context_reg_stack); +extern void switch_task(); +extern uint8_t* get_vid_start(); +extern volatile uint32_t sys_init_flag; +#endif + + + + + + + + diff --git a/task.o b/task.o new file mode 100644 index 0000000000000000000000000000000000000000..f0d7e3f34df6c0c12481e36b1dbe12fc481bfc61 GIT binary patch literal 14200 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 z z!KVce2tF(Lyx_kGz9INq!FL7!D9C@KVmw8HWr9^ej^p{lFBEDmqEVHeN5!K0e(;L z7ev^QACONMtRX^vgYcULZxi`OBK+Pf@&^SU7QJ47@V8Io2Sq-P^9woO ze-S4U(M|;s{+5dTGQrD5f0gL-BL8#2dqlrm_>+Q9iCnKcwDY3K_4-45e6P*+nu*Y_ z7QC7WeN6PbM9%d=yC+2dGtujLhrF8e1Dr-g{i}(X{|$nChe!St5wW}`SX5&81w^cy zD~Xuz7l=6D-XqS%|E%M&f$Q%wBKGxKnQxdX2a5npQn%kIyh->f;Vr`B!aIe3PI$lY zdxbwJe7A6YUq}BA3jdMlUlo2t_(|cz!ujvLjIV--`t`!+3STLlIXm@wedEg_s%rWF E0u_KP(EtDd literal 0 HcmV?d00001 diff --git a/terminal.c b/terminal.c new file mode 100644 index 0000000..0bb4d3c --- /dev/null +++ b/terminal.c @@ -0,0 +1,394 @@ +#include "terminal.h" +#include "lib.h" +#include "task.h" +#include "table.h" + +static int ctrl=0; +static int alt=0; +static int capital=0; + +static int counter[NUM_TERMINAL]; +static volatile int lock[NUM_TERMINAL]; +static char buffer[NUM_TERMINAL][1024]; + +static void command(unsigned char cmd); +static void common(unsigned char key); +static void transform(unsigned key); +static void clear_buf(void); +static void up_buf(void); +static void down_buf(void); + +/* bufdel + * Description: delete the buffer + * Input: N/A + * Output: decrement the counter + * Return value: -1 if failed and 1 if succeed + * Side effect: N/A + */ +static int bufdel(void) +{ +if(counter[alt_terminal] == 0) + return -1; + // decrement the counter + counter[alt_terminal]--; + // set the buffer to 0 + buffer[alt_terminal][counter[alt_terminal]]=0; + return 1; +} +/* clear_buf + * Description: clear the buffer + * Input: N/A + * Output: clear the buffer + * Return value: N/A + * Side effect: N/A + */ + +void clear_buf(void) +{ + int j; + for(j=0;j< counter[alt_terminal];j++) + /*Clear every elements in this buffer */ + {buffer[alt_terminal][j]=0;} + /* Counter goes to 0*/ + counter[alt_terminal]=0; +} +/* command + * Description: check the command + * Input: --cmd: command input + * Output: clear N/A + * Return value: N/A + * Side effect: open the terminal + */ + + +void command(unsigned char cmd) +{ + uint8_t file; + if(cmd==0x26) open_terminal(&file); +} +/* altcommand + * Description: check the command + * Input: --cmd: command input + * Output: clear N/A + * Return value: N/A + * Side effect: change the task + */ +void altcommand(unsigned char cmd) +{ + + if(cmd==0x3c) + { + changetask(); + } +} + +/* common + * Description: deal with the common key input without capitals. + * Input: --key: key scanned from keyboard + * Output: clear N/A + * Return value: N/A + * Side effect: output the char or turn on capital. + */ +void common(unsigned char key) +{ +//printf("key : %x ::",key); +switch(key) +{ +case 0x1C: putcur('\n'); + // set the lock + lock[alt_terminal] = 1; + buffer[alt_terminal][counter[alt_terminal]]= '\n'; + // increment the counter + counter[alt_terminal]++; + //screen_ptr(getx(), gety()); + //printf("X: %d,Y: %d",getx(), gety()); + break; // ENTER!!!!!!!!!! +// "tab" +case 0x0F: printf("%c", 9); break; + + +// back space +case 0x0E: + + if(bufdel() == 1 ) + { + bksp_t(); + break; + } + else + break; + +//direction +case 0x50: down_buf();break;//down +case 0x48: up_buf();break;//up +case 0x4D: dir(key);break; +case 0x4B: dir(key);break; + +} +} +/* up_buf + * Description: increse the buffer + * Input: N/A + * Output: N/A + * Return value: N/A + * Side effect: modify the counter + */ +void up_buf(void) +{ + int i; + for (i = 0; i < strlen(buffer[alt_terminal]); i++) + { + bksp_t(); + } + counter[alt_terminal] = uptable((char * )buffer[alt_terminal],alt_terminal);//down + for (i = 0; i < strlen(buffer[alt_terminal]); i++) + { + putcur(buffer[alt_terminal][i]); + } +} +/* down_buf + * Description: decrease the buffer + * Input: N/A + * Output: clear N/A + * Return value: N/A + * Side effect: modify the counter + */ +void down_buf(void) +{ + int i; + for (i = 0; i < strlen(buffer[alt_terminal]); i++) + { + bksp_t(); + } + + counter[alt_terminal] = downtable((char * )buffer[alt_terminal],alt_terminal);//up + + for (i = 0; i < strlen(buffer[alt_terminal]); i++) + { + putcur(buffer[alt_terminal][i]); + } + +} +/* open_terminal + * Description: Turn on the terminal + * Input: --filename: file need to access + * Output: clear N/A + * Return value: N/A + * Side effect: clear + */ +void +open_terminal(const uint8_t* filename) +{ +//int8_t s[9]="[user@ ]$"; +clear(); + +clear_buf(); + +} + +/* read_terminal + * Description: read the keyboard input + * Input: --fd: file descriptor + * --buf: + * --key : scan code for keyboard + * Output: N/A + * Return value: N/A + * Side effect: transform the keys to Capital if needed + */ + +void read_terminal(int32_t fd, const void* buf, int32_t key) +{ + common(key); //common parts, don't need any Capital letter consideration:D + + //to judge the CAPITAL or NOT + if(key==0x2A ||key==0x36) + capital++; //shift + else if(key==0xAA || key==0xB6) + capital--; + + if(key==0x3A) + capital=(capital==0)?1:0; //Capslock[cur_terminal] + + + //to judge the ctrl + if(key==0x1D) + ctrl++; + else + if(key==0x9D) ctrl--; + //to judge the alt + if(key==0x38) + alt++; + else + if(key==0xB8) alt--; + + if(alt!=0) + altcommand(key); + else if(ctrl!=0) + command(key); + else if(key<0x60 && key>=0x00) + { + // change to capital letters + transform(key); + } + +} +/* write_terminal + * Description: write the keyboard input + * Input: --fd: file descriptor + * --buf: buf need to print + * --nbytes : number of bytes need to write + * Output: N/A + * Return value: N/A + * Side effect: print to the current buffer + */ + +void write_terminal(int32_t fd, void* buf, int32_t nbytes) +{ + printscur((char *) buf); +} + +/* r_terminal + * Description: read the terminal when switch terminals + * Input: --fd: file descriptor + * --buf: buf need to print + * --key : scan code for keyboard + * Output: N/A + * Return value: k: counter + * Side effect: print to the current buffer + */ + +int r_terminal(int32_t fd, uint8_t* buf, int32_t key) +{ + + int i,k; + //set the lock to 0 + lock[alt_terminal]=0; + while(1){ + // only return the keyboard input after press "Enter" + if((lock[alt_terminal] == 1 ) && (alt_terminal == cur_terminal)) + break;} + //set the lock to 0 + lock[alt_terminal]=0; + for(i =0; i < key; i++) + // store them into the buffer + buf[i] = (uint8_t) buffer[alt_terminal][i]; + k = counter[alt_terminal]; + cli(); + pushtable((char *) buf, alt_terminal); + sti(); + // clear the buffer + clear_buf(); + return k; +} + + +/* transform + * Description: transform the letter to capital + * Input: --key : scan code for keyboard + * Output: temp storing the char + * Return value: k: counter + * Side effect: print the temp + */ + + +void transform(unsigned key) +{ + char temp; + int cao=0; + //small case + if(capital==0){ +switch(key) +{ +//1-0 +case 0x02: temp='1'; putcur(temp);break; +case 0x03: temp='2'; putcur(temp);break; +case 0x04: temp='3'; putcur(temp);break; +case 0x05: temp='4'; putcur(temp);break; +case 0x06: temp='5'; putcur(temp);break; +case 0x07: temp='6'; putcur(temp);break; +case 0x08: temp='7'; putcur(temp);break; +case 0x09: temp='8'; putcur(temp);break; +case 0x0A: temp='9'; putcur(temp);break; +case 0x0B: temp='0'; putcur(temp); break; +case 0x0C: temp='-'; putcur(temp);break; +case 0x0D: temp='='; putcur(temp);break; +//q-? only chars +case 0x10: temp='q'; putcur(temp);break; case 0x11: temp='w'; putcur(temp);break; case 0x12: temp='e'; putcur(temp); break; +case 0x13: temp='r'; putcur(temp);break; case 0x14: temp='t'; putcur(temp); break; case 0x15: temp='y'; putcur(temp);break; +case 0x16: temp='u'; putcur(temp);break; case 0x17: temp='i'; putcur(temp); break; case 0x18: temp='o'; putcur(temp); break; +case 0x19: temp='p'; putcur(temp);break; case 0x1A: temp='['; putcur(temp); break; case 0x1B: temp=']'; putcur(temp); break; +case 0x2B: temp=92; putcur(temp);break; + +case 0x1E: temp='a'; putcur(temp);break; case 0x1F: temp='s'; putcur(temp); break; case 0x20: temp='d'; putcur(temp); break; +case 0x21: temp='f'; putcur(temp);break; case 0x22: temp='g'; putcur(temp);break; case 0x23: temp='h'; putcur(temp);break; +case 0x24: temp='j'; putcur(temp);break; case 0x25: temp='k'; putcur(temp);break; case 0x26: temp='l'; putcur(temp);break; +case 0x27: temp=';'; putcur(temp);break; case 0x28: temp=39; putcur(temp);break; + +case 0x2C: temp='z'; putcur(temp); break; case 0x2D: temp='x'; putcur(temp); break; case 0x2E: temp='c'; putcur(temp); break; +case 0x2F: temp='v'; putcur(temp); break; case 0x30: temp='b'; putcur(temp); break; case 0x31: temp='n'; putcur(temp); break; +case 0x32: temp='m'; putcur(temp); break; case 0x33: temp=','; putcur(temp);break; case 0x34: temp='.'; putcur(temp); break; +case 0x35: temp='/'; putcur(temp); break; +case 0x39: temp=' '; putcur(temp); break; + default: cao=1;break; + +} + +} + +//CAPITAL case +else +{ +switch(key){ + +case 0x02: temp='!'; putcur(temp);break; +case 0x03: temp='@'; putcur(temp);break; +case 0x04: temp='#'; putcur(temp);break; +case 0x05: temp='$'; putcur(temp);break; +case 0x06: temp='%'; putcur(temp);break; +case 0x07: temp='^'; putcur(temp);break; +case 0x08: temp='&'; putcur(temp);break; +case 0x09: temp='*'; putcur(temp);break; +case 0x0A: temp='('; putcur(temp);break; +case 0x0B: temp=')'; putcur(temp);break; +case 0x0C: temp='_'; putcur(temp);break; +case 0x0D: temp='+'; putcur(temp);break; +case 0x10: temp='Q'; putcur(temp);break; case 0x11: temp='W'; putcur(temp);break; case 0x12: temp='E'; putcur(temp);break; +case 0x13: temp='R'; putcur(temp);break; case 0x14: temp='T'; putcur(temp);break; case 0x15: temp='Y'; putcur(temp); break; +case 0x16: temp='U'; putcur(temp);break; case 0x17: temp='I'; putcur(temp);break; case 0x18: temp='O'; putcur(temp); break; +case 0x19: temp='P'; putcur(temp);break; case 0x1A: temp='{'; putcur(temp);break; case 0x1B: temp='}'; putcur(temp); break; +case 0x2B: temp='|'; putcur(temp);break; + +case 0x1E: temp='A'; putcur(temp);break; case 0x1F: temp='S'; putcur(temp); break; case 0x20: temp='D'; putcur(temp);break; +case 0x21: temp='F'; putcur(temp);break; case 0x22: temp='G'; putcur(temp); break; case 0x23: temp='H'; putcur(temp);break; +case 0x24: temp='J'; putcur(temp);break; case 0x25: temp='K'; putcur(temp); break; case 0x26: temp='L'; putcur(temp); break; +case 0x27: temp=':'; putcur(temp);break; case 0x28: temp=34; putcur(temp); break; + +case 0x2C: temp='Z'; putcur(temp);break; case 0x2D: temp='X'; putcur(temp); break; case 0x2E: temp='C'; putcur(temp);break; +case 0x2F: temp='V'; putcur(temp);break; case 0x30: temp='B'; putcur(temp);break; case 0x31: temp='N'; putcur(temp); break; +case 0x32: temp='M'; putcur(temp);break; case 0x33: temp='<'; putcur(temp); break; case 0x34: temp='>'; putcur(temp);break; +case 0x35: temp='?'; putcur(temp);break; +case 0x39: temp=' '; putcur(temp);break; +default: cao=1;break; +putcur(temp); +} +} + + if(cao!=1) + { + //check if it is out of range + if(counter[alt_terminal]<1024) + { + //restore the value from temp + buffer[alt_terminal][counter[alt_terminal]]=temp; + counter[alt_terminal]++; + } + else + printf("out of range"); + + } +} + + + + + diff --git a/terminal.h b/terminal.h new file mode 100644 index 0000000..80487d1 --- /dev/null +++ b/terminal.h @@ -0,0 +1,9 @@ +#ifndef _TERMINAL_H +#define _TERMINAL_H +#include "types.h" +extern void read_terminal(int32_t fd, const void * buf, int32_t key); +extern void open_terminal(const uint8_t* filename); +extern void write_terminal(int32_t fd, void * buf, int32_t key); +extern int r_terminal(int32_t fd, uint8_t* buf, int32_t key); + +#endif diff --git a/terminal.o b/terminal.o new file mode 100644 index 0000000000000000000000000000000000000000..2fa7e9d3ad1a82b6746b078b06a1d04863d0bd27 GIT binary patch literal 13096 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�C4F=LH235R>69`&NSQ*A~2l+Rnz`6 zki=758yJd4;p+t-*W7oOpi#9}cf-m_V0Ct;P;vdTw1{Fzg|Vcy6(eC?{G?%5f2g0% zT5anK{HKp*ziIu5@D^fRcln-)t-5*OjQr`yc4VjoZtgn z8Ypg#eT}rotb}Pkg?Zc%VRD)88?ZL@lgZfW4TJcm;Kuk(;40tQ4f9FVM>N1Vr2=t8 zF$UdY$$fNc<9L^iZN4g)%W_QW7E4~*DECg`!-Jkcs5UCbwLY*RcNN&(CQRo6i~7pL ziXjnPD0p-a96pz@&|+n<_vy^3Q+MY^akAd_e;lmj_-o5Su>=`-QZ6aYbL&pvVhx;1 zF({H#@_ndosl8YzmP($xLJm_TQfpM3QM+DixUieDYmX{*NT$Kq$SF6Mm-#4i8qL6UFw-$VD3%{lmHAM43mClCxbZ}r##7x$444ANK7kBB zp9HdwkC0Vphw;z-na7*rSZJ$#^cXuMO~vEA!u${8O@I>(!SRkq0HvP1j`uqD3-2=3 z6z^UD(Ru7)9xY%z53Yfl$Ai#SAEo4n3OpVr0H3WjF5&kv>rAw}_WxC2T6!Gq9uaoU|mD z5$I|jEP1Zccz2*^7l5gz@+w=&C~nd}_Z80a;IACEqZ!y%yGHgh2p^`AW^~_vkK!*9`G}6Sa9K^qL_m5VZ$;1~h|)uCue^-C>aLmqD!5jiJu>72CJ6Gi+Sf zdz1mm_Q~t)`>(UrHUB?1kN~>3kLMOExJ~%0tWa7jh|i9ehij%v(#5v{4&u7oAeuoA z4W+v;l;=bF#ZYcT>X`Z~q5T@$_%R~(Ec(3>+P?_>?}YYyEK#BxF?Wvt5lHSg#S%X$ zaYT@YCFNfi8r}<@zlP1oRb{!uGKn9Zq1@#-u#@ny{1!|6KO4#ySz^g;Y$L`~q0F)b d{@E}tzkeDwG+)omn-1;S&=%vuLrFER{{q1vU#I{8 literal 0 HcmV?d00001 diff --git a/types.h b/types.h new file mode 100644 index 0000000..05707e7 --- /dev/null +++ b/types.h @@ -0,0 +1,31 @@ +/* types.h - Defines to use the familiar explicitly-sized types in this + * OS (uint32_t, int8_t, etc.). This is necessary because we don't want + * to include when building this OS + * vim:ts=4 noexpandtab + */ + +#ifndef _TYPES_H +#define _TYPES_H + +#define NULL 0 + +#ifndef ASM + +/* Types defined here just like in */ +typedef int int32_t; +typedef unsigned int uint32_t; + +typedef short int16_t; +typedef unsigned short uint16_t; + +typedef char int8_t; +typedef unsigned char uint8_t; + + + + + + +#endif /* ASM */ + +#endif /* _TYPES_H */ diff --git a/x86_desc.S b/x86_desc.S new file mode 100644 index 0000000..c3e9a75 --- /dev/null +++ b/x86_desc.S @@ -0,0 +1,111 @@ +# x86_desc.S - Set up x86 segment descriptors, descriptor tables +# vim:ts=4 noexpandtab + +#define ASM 1 +#include "x86_desc.h" + +.text + +.globl ldt_size, tss_size +.globl gdt_desc, ldt_desc, tss_desc +.globl tss, tss_desc_ptr, ldt, ldt_desc_ptr +.globl gdt_ptr +.globl idt_desc_ptr, idt + +.align 4 + + +tss_size: + .long tss_bottom - tss - 1 + +ldt_size: + .long ldt_bottom - ldt - 1 + + .word 0 # Padding + +gdt_desc: + .word gdt_bottom - gdt - 1 + .long gdt + .align 16 + +ldt_desc: + .word KERNEL_LDT + .long ldt + + .align 4 +tss: +_tss: + .rept 104 + .byte 0 + .endr +tss_bottom: + + .align 16 +gdt: +_gdt: + + # First GDT entry cannot be used + .quad 0 + + # NULL entry + .quad 0 + + # Segmentation will not be used + # CS and DS both are 0-4GB r/w segments + # + # The layout is (from Intel IA-32 reference manual): + # 31 24 23 22 21 20 19 16 15 14 13 12 11 8 7 0 + # |----------------------------------------------------------------------| + # | | | D | | A | Seg | | D | | | | + # | Base 31:24 | G | / | 0 | V | Limit | P | P | S | Type | Base 23:16 | + # | | | B | | L | 19:16 | | L | | | | + # |----------------------------------------------------------------------| + # + # |----------------------------------------------------------------------| + # | | | + # | Base 15:0 | Segment Limit 15:0 | + # | | | + # |----------------------------------------------------------------------| + +gdt_ptr: + # Set up an entry for kernel CS + .quad 0x00CF9A000000FFFF + + # Set up an entry for kernel DS + .quad 0x00CF92000000FFFF + + # Set up an entry for user CS + .quad 0x00CFFA000000FFFF + + # Set up an entry for user DS + .quad 0x00CFF2000000FFFF + + # Set up an entry for TSS +tss_desc_ptr: + .quad 0 + + # Set up one LDT +ldt_desc_ptr: + .quad 0 + +gdt_bottom: + + .align 16 +ldt: + .rept 4 + .quad 0 + .endr +ldt_bottom: + +.align 4 + .word 0 # Padding +idt_desc_ptr: + .word idt_bottom - idt - 1 + .long idt + .align 16 +idt: +_idt: + .rept NUM_VEC + .quad 0 + .endr +idt_bottom: diff --git a/x86_desc.h b/x86_desc.h new file mode 100644 index 0000000..962f805 --- /dev/null +++ b/x86_desc.h @@ -0,0 +1,298 @@ +/* x86_desc.h - Defines for various x86 descriptors, descriptor tables, + * and selectors + * vim:ts=4 noexpandtab + */ + +#ifndef _X86_DESC_H +#define _X86_DESC_H + +#include "types.h" + +/* Segment selector values */ +#define KERNEL_CS 0x0010 +#define KERNEL_DS 0x0018 +#define USER_CS 0x0023 +#define USER_DS 0x002B +#define KERNEL_TSS 0x0030 +#define KERNEL_LDT 0x0038 + +/* Size of the task state segment (TSS) */ +#define TSS_SIZE 104 + +/* Number of vectors in the interrupt descriptor table (IDT) */ +#define NUM_VEC 256 + +#ifndef ASM + +/* This structure is used to load descriptor base registers + * like the GDTR and IDTR */ +typedef struct x86_desc { + uint16_t padding; + uint16_t size; + uint32_t addr; +} x86_desc_t; + +/* This is a segment descriptor. It goes in the GDT. */ +typedef struct seg_desc { + union { + uint32_t val; + struct { + uint16_t seg_lim_15_00; + uint16_t base_15_00; + uint8_t base_23_16; + uint32_t type : 4; + uint32_t sys : 1; + uint32_t dpl : 2; + uint32_t present : 1; + uint32_t seg_lim_19_16 : 4; + uint32_t avail : 1; + uint32_t reserved : 1; + uint32_t opsize : 1; + uint32_t granularity : 1; + uint8_t base_31_24; + } __attribute__((packed)); + }; +} seg_desc_t; + +/* TSS structure */ +typedef struct __attribute__((packed)) tss_t { + uint16_t prev_task_link; + uint16_t prev_task_link_pad; + + uint32_t esp0; + uint16_t ss0; + uint16_t ss0_pad; + + uint32_t esp1; + uint16_t ss1; + uint16_t ss1_pad; + + uint32_t esp2; + uint16_t ss2; + uint16_t ss2_pad; + + uint32_t cr3; + + uint32_t eip; + uint32_t eflags; + + uint32_t eax; + uint32_t ecx; + uint32_t edx; + uint32_t ebx; + uint32_t esp; + uint32_t ebp; + uint32_t esi; + uint32_t edi; + + uint16_t es; + uint16_t es_pad; + + uint16_t cs; + uint16_t cs_pad; + + uint16_t ss; + uint16_t ss_pad; + + uint16_t ds; + uint16_t ds_pad; + + uint16_t fs; + uint16_t fs_pad; + + uint16_t gs; + uint16_t gs_pad; + + uint16_t ldt_segment_selector; + uint16_t ldt_pad; + + uint16_t debug_trap : 1; + uint16_t io_pad : 15; + uint16_t io_base_addr; +} tss_t; + +/* Some external descriptors declared in .S files */ +extern x86_desc_t gdt_desc; + +extern uint16_t ldt_desc; +extern uint32_t ldt_size; +extern seg_desc_t ldt_desc_ptr; +extern seg_desc_t gdt_ptr; +extern uint32_t ldt; + +extern uint32_t tss_size; +extern seg_desc_t tss_desc_ptr; +extern tss_t tss; + +/* Sets runtime-settable parameters in the GDT entry for the LDT */ +#define SET_LDT_PARAMS(str, addr, lim) \ +do { \ + str.base_31_24 = ((uint32_t)(addr) & 0xFF000000) >> 24; \ + str.base_23_16 = ((uint32_t)(addr) & 0x00FF0000) >> 16; \ + str.base_15_00 = (uint32_t)(addr) & 0x0000FFFF; \ + str.seg_lim_19_16 = ((lim) & 0x000F0000) >> 16; \ + str.seg_lim_15_00 = (lim) & 0x0000FFFF; \ +} while(0) + +/* Sets runtime parameters for the TSS */ +#define SET_TSS_PARAMS(str, addr, lim) \ +do { \ + str.base_31_24 = ((uint32_t)(addr) & 0xFF000000) >> 24; \ + str.base_23_16 = ((uint32_t)(addr) & 0x00FF0000) >> 16; \ + str.base_15_00 = (uint32_t)(addr) & 0x0000FFFF; \ + str.seg_lim_19_16 = ((lim) & 0x000F0000) >> 16; \ + str.seg_lim_15_00 = (lim) & 0x0000FFFF; \ +} while(0) + +/* An interrupt descriptor entry (goes into the IDT) */ +typedef union idt_desc_t { + uint32_t val; + struct { + uint16_t offset_15_00; + uint16_t seg_selector; + uint8_t reserved4; + uint32_t reserved3 : 1; + uint32_t reserved2 : 1; + uint32_t reserved1 : 1; + uint32_t size : 1; + uint32_t reserved0 : 1; + uint32_t dpl : 2; + uint32_t present : 1; + uint16_t offset_31_16; + } __attribute__((packed)); +} idt_desc_t; + +/* The IDT itself (declared in x86_desc.S */ +extern idt_desc_t idt[NUM_VEC]; +/* The descriptor used to load the IDTR */ +extern x86_desc_t idt_desc_ptr; +/* Sets runtime parameters for an IDT entry */ +#define SET_IDT_ENTRY(str, handler) \ +do { \ + str.offset_31_16 = ((uint32_t)(handler) & 0xFFFF0000) >> 16; \ + str.offset_15_00 = ((uint32_t)(handler) & 0xFFFF); \ +} while(0) + +static inline void set_trap_gate (unsigned int n, void *handler) +{ + idt[n].seg_selector = KERNEL_CS; + idt[n].reserved4 = 0; + idt[n].reserved3 = 1; + idt[n].reserved2 = 1; + idt[n].reserved1 = 1; + idt[n].size = 1; + idt[n].reserved0 = 0; + idt[n].dpl = 0; //0 + idt[n].present = 1; + SET_IDT_ENTRY(idt[n], handler); +} + +static inline void set_system_gate (unsigned int n, void *handler) +{ + + idt[n].seg_selector = KERNEL_CS; + idt[n].reserved4 = 0; + idt[n].reserved3 = 1; + idt[n].reserved2 = 1; + idt[n].reserved1 = 1; + idt[n].size = 1; + idt[n].reserved0 = 0; + idt[n].dpl = 3; + idt[n].present = 1; + SET_IDT_ENTRY(idt[n], handler); + +} + +static inline void set_intr_gate (unsigned int n, void *handler) +{ + + idt[n].seg_selector = KERNEL_CS; + idt[n].reserved4 = 0; + idt[n].reserved3 = 0; + idt[n].reserved2 = 1; + idt[n].reserved1 = 1; + idt[n].size = 1; + idt[n].reserved0 = 0; + idt[n].dpl = 0;// 0 + idt[n].present = 1; + SET_IDT_ENTRY(idt[n], handler); + +} + + +static inline void set_system_intr_gate (unsigned int n, void *handler) +{ + + idt[n].seg_selector = KERNEL_CS; + idt[n].reserved4 = 0; + idt[n].reserved3 = 0; + idt[n].reserved2 = 1; + idt[n].reserved1 = 1; + idt[n].size = 1; + idt[n].reserved0 = 0; + idt[n].dpl = 3; + idt[n].present = 1; + SET_IDT_ENTRY(idt[n], handler); + +} + +static inline void set_task_gate (unsigned int n, unsigned int gdt) +{ + + + idt[n].seg_selector = gdt<<3; + idt[n].reserved4 = 0; + idt[n].reserved3 = 1; + idt[n].reserved2 = 0; + idt[n].reserved1 = 1; + idt[n].size = 0; + idt[n].reserved0 = 0; + idt[n].dpl = 3; + idt[n].present = 1; + + +} + + + + +/* Load task register. This macro takes a 16-bit index into the GDT, + * which points to the TSS entry. x86 then reads the GDT's TSS + * descriptor and loads the base address specified in that descriptor + * into the task register */ +#define ltr(desc) \ +do { \ + asm volatile("ltr %w0" \ + : \ + : "r" (desc) \ + : "memory", "cc" ); \ +} while(0) + +/* Load the interrupt descriptor table (IDT). This macro takes a 32-bit + * address which points to a 6-byte structure. The 6-byte structure + * (defined as "struct x86_desc" above) contains a 2-byte size field + * specifying the size of the IDT, and a 4-byte address field specifying + * the base address of the IDT. */ +#define lidt(desc) \ +do { \ + asm volatile("lidt (%0)" \ + : \ + : "g" (desc) \ + : "memory"); \ +} while(0) + +/* Load the local descriptor table (LDT) register. This macro takes a + * 16-bit index into the GDT, which points to the LDT entry. x86 then + * reads the GDT's LDT descriptor and loads the base address specified + * in that descriptor into the LDT register */ +#define lldt(desc) \ +do { \ + asm volatile("lldt %%ax" \ + : \ + : "a" (desc) \ + : "memory" ); \ +} while(0) + +#endif /* ASM */ + +#endif /* _x86_DESC_H */ diff --git a/x86_desc.o b/x86_desc.o new file mode 100644 index 0000000000000000000000000000000000000000..9c5924a5476e045de4456f961714256141c4914c GIT binary patch literal 3324 zcmeHJu}WM)6uqOXZbAf=K!g;5Kte!#tRNy-B#k!OC2e@w&Av4Y%F4beRtaQV3t_Re zlKg;yq_EsS*k1@?Kft6+vpMI!nYUx5*a+cWm^tUn+&lNpombp1n>$;^81ZIgQpQT; z!-H&RRpFJCWy-rM?qYtX?6q`(>&hEFg?pGrBP2Z=h~lZkzYhNl?(jvU83y%Ee!RRx za1l~epr}AmfuaIM1&Rv%4;6^g!+l$=NtD`lhMzoZCwq}iI#!~3)m9~{rRlA2%pQt; z*R+dx1H39b0hn|2DbTfKx-xtuvIxdF#+NV{_QL5&AgvMxLDP@6ghBtC{N@86P(80g z;>`Dq#0kF$Jb#GZ35#r^W-*wTcj4#woS;&{J-(AT^XGZ(Fq=6@bSAD*`f~ix4~Hh+8q4f zWi;3C!BDbXH^BVc)4%2R2wd-A`0wHVXXtMjH0onup8`gG0=!g}=`-+Npud9u3iJi| zRiLG_z82S$^kei^Y?{WkmbI;Y*{fSmcdt>2;UzH^r8(Y+!8Imr9wmB?5{B|@-BQ97 lo~R#1d|=yj$=!5;!Q5b)+>3ei%?*Ca1>D0t78w#zw12D=f)fA$ literal 0 HcmV?d00001