From d7049ac5042ededd5b26516371b174434c6d4c07 Mon Sep 17 00:00:00 2001 From: CodeitLina Date: Thu, 2 Oct 2025 11:37:12 -0400 Subject: [PATCH 1/4] testing --- interrupts.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interrupts.cpp b/interrupts.cpp index f868ce2..fa34294 100644 --- a/interrupts.cpp +++ b/interrupts.cpp @@ -20,7 +20,7 @@ int main(int argc, char** argv) { /******************ADD YOUR VARIABLES HERE*************************/ - + //test tes /******************************************************************/ From 80d757a2a4360c5329ad8916f89fa51c1ab2fc08 Mon Sep 17 00:00:00 2001 From: CodeitLina Date: Fri, 3 Oct 2025 20:45:58 -0400 Subject: [PATCH 2/4] my test simulations --- input_files/input1.txt | 9 ++++++++ input_files/input2.txt | 9 ++++++++ input_files/input3.txt | 9 ++++++++ input_files/input4.txt | 9 ++++++++ interrupts.cpp | 48 ++++++++++++++++++++++++++++++++++++------ interrupts.hpp | 2 +- 6 files changed, 78 insertions(+), 8 deletions(-) create mode 100644 input_files/input1.txt create mode 100644 input_files/input2.txt create mode 100644 input_files/input3.txt create mode 100644 input_files/input4.txt diff --git a/input_files/input1.txt b/input_files/input1.txt new file mode 100644 index 0000000..461d2e7 --- /dev/null +++ b/input_files/input1.txt @@ -0,0 +1,9 @@ +CPU, 50 +SYSCALL, 5 +CPU, 100 +END_IO, 5 +CPU, 40 +SYSCALL, 7 +CPU, 80 +END_IO, 7 +CPU, 60 \ No newline at end of file diff --git a/input_files/input2.txt b/input_files/input2.txt new file mode 100644 index 0000000..461d2e7 --- /dev/null +++ b/input_files/input2.txt @@ -0,0 +1,9 @@ +CPU, 50 +SYSCALL, 5 +CPU, 100 +END_IO, 5 +CPU, 40 +SYSCALL, 7 +CPU, 80 +END_IO, 7 +CPU, 60 \ No newline at end of file diff --git a/input_files/input3.txt b/input_files/input3.txt new file mode 100644 index 0000000..461d2e7 --- /dev/null +++ b/input_files/input3.txt @@ -0,0 +1,9 @@ +CPU, 50 +SYSCALL, 5 +CPU, 100 +END_IO, 5 +CPU, 40 +SYSCALL, 7 +CPU, 80 +END_IO, 7 +CPU, 60 \ No newline at end of file diff --git a/input_files/input4.txt b/input_files/input4.txt new file mode 100644 index 0000000..461d2e7 --- /dev/null +++ b/input_files/input4.txt @@ -0,0 +1,9 @@ +CPU, 50 +SYSCALL, 5 +CPU, 100 +END_IO, 5 +CPU, 40 +SYSCALL, 7 +CPU, 80 +END_IO, 7 +CPU, 60 \ No newline at end of file diff --git a/interrupts.cpp b/interrupts.cpp index fa34294..b8bdde5 100644 --- a/interrupts.cpp +++ b/interrupts.cpp @@ -5,7 +5,7 @@ * */ -#include +#include "interrupts.hpp" // terminal giving me a weird error, so I flipped <> to "" int main(int argc, char** argv) { @@ -19,21 +19,54 @@ int main(int argc, char** argv) { std::string execution; //!< string to accumulate the execution output /******************ADD YOUR VARIABLES HERE*************************/ + int current_time = 0; + const int context_save_time = 10; // time taken to save context + const int isr_activity_time = 40; // time taken for each chunk of ISR activity + //int IO_time = 0.1; // time taken for IO operation - //test tes - + /******************************************************************/ //parse each line of the input trace file while(std::getline(input_file, trace)) { auto [activity, duration_intr] = parse_trace(trace); + /******************ADD YOUR SIMULATION CODE HERE*************************/ - - - + if (activity == "CPU") { + execution += std::to_string(current_time) + ", " + std::to_string(duration_intr) + ", CPU burst\n"; + current_time += duration_intr; + } + else if(activity == "SYSCALL") { + auto [prev_execution, new_time] = intr_boilerplate(current_time, duration_intr, context_save_time, vectors); + execution += prev_execution; + current_time = new_time; + + } + else if( activity == "END_IO") { + // IO operation handling code here + auto [prev_execution, new_time] = intr_boilerplate(current_time, duration_intr, context_save_time, vectors); + execution += prev_execution; + current_time = new_time; + + //ISR body execution, assuming fixed time for IO operation + int device_delay = delays.at(duration_intr-1); // get the delay for the device + while (device_delay> 0){ + int chunk = std::min(isr_activity_time, device_delay); + execution += std::to_string(current_time) + ", " + std::to_string(chunk) + ", ISR END_IO 'execution' \n"; + current_time += chunk; + device_delay -= chunk; + + } + + execution += std::to_string(current_time) + ", " + std::to_string(1) + ", 1, IRET \n"; + current_time += 1; + } + + else { + std::cerr << "Error: Unknown activity type: " << activity << std::endl; + } /************************************************************************/ - } input_file.close(); @@ -41,4 +74,5 @@ int main(int argc, char** argv) { write_output(execution); return 0; + } diff --git a/interrupts.hpp b/interrupts.hpp index dacd319..e28d49d 100644 --- a/interrupts.hpp +++ b/interrupts.hpp @@ -112,7 +112,7 @@ std::pair intr_boilerplate(int current_time, int intr_num, int current_time += context_save_time; char vector_address_c[10]; - sprintf(vector_address_c, "0x%04X", (ADDR_BASE + (intr_num * VECTOR_SIZE))); + snprintf(vector_address_c, sizeof(vector_address_c), "0x%04X", (ADDR_BASE + (intr_num * VECTOR_SIZE))); //terminal gave me a werid error, I added the "sizeof" function std::string vector_address(vector_address_c); execution += std::to_string(current_time) + ", " + std::to_string(1) + ", find vector " + std::to_string(intr_num) From a68194cb5cc8d4d8cb77fbad878f947b31fe1015 Mon Sep 17 00:00:00 2001 From: Noor ElShanawany Date: Sat, 4 Oct 2025 13:09:59 -0400 Subject: [PATCH 3/4] worked on interrupt simulation and output verification --- build.sh | 4 +- device_table.txt | 20 ---------- interrupts.cpp | 76 +++++++++++++++++++++++--------------- interrupts.hpp | 85 ++++++++++++++++++------------------------- testcases/trace_1.txt | 21 ----------- vector_table.txt | 26 ------------- 6 files changed, 84 insertions(+), 148 deletions(-) delete mode 100644 device_table.txt delete mode 100644 testcases/trace_1.txt delete mode 100644 vector_table.txt diff --git a/build.sh b/build.sh index 1742687..845408e 100644 --- a/build.sh +++ b/build.sh @@ -1,6 +1,6 @@ if [ ! -d "bin" ]; then mkdir bin else - rm bin/* + rm bin/* fi -g++ -g -O0 -I . -o bin/interrupts interrupts.cpp \ No newline at end of file +g++ -g -O0 -I . -o bin/interrupts interrupts.cpp diff --git a/device_table.txt b/device_table.txt deleted file mode 100644 index 31357fe..0000000 --- a/device_table.txt +++ /dev/null @@ -1,20 +0,0 @@ -110 -100 -150 -300 -250 -211 -265 -152 -1000 -156 -564 -523 -145 -636 -456 -68 -956 -235 -123 -652 \ No newline at end of file diff --git a/interrupts.cpp b/interrupts.cpp index fa34294..4876098 100644 --- a/interrupts.cpp +++ b/interrupts.cpp @@ -1,44 +1,60 @@ -/** - * - * @file interrupts.cpp - * @author Sasisekhar Govind - * - */ - -#include +#include "interrupts.hpp" +#include int main(int argc, char** argv) { - - //vectors is a C++ std::vector of strings that contain the address of the ISR - //delays is a C++ std::vector of ints that contain the delays of each device - //the index of these elemens is the device number, starting from 0 auto [vectors, delays] = parse_args(argc, argv); std::ifstream input_file(argv[1]); - std::string trace; //!< string to store single line of trace file - std::string execution; //!< string to accumulate the execution output - - /******************ADD YOUR VARIABLES HERE*************************/ + std::string trace; + std::string execution = ""; - //test tes + int context_save_time = std::stoi(argv[4]); // e.g., 10 + int isr_time = std::stoi(argv[5]); // e.g., 40 + int current_time = 0; + bool in_interrupt = false; - /******************************************************************/ - - //parse each line of the input trace file - while(std::getline(input_file, trace)) { + while (std::getline(input_file, trace)) { auto [activity, duration_intr] = parse_trace(trace); - - /******************ADD YOUR SIMULATION CODE HERE*************************/ - - - - /************************************************************************/ - + activity.erase(std::remove_if(activity.begin(), activity.end(), ::isspace), activity.end()); + + if (activity == "CPU") { + execution += std::to_string(current_time) + ", " + std::to_string(duration_intr) + + ", CPU burst\n"; + current_time += duration_intr; + } + else if (activity == "SYSCALL") { + // system call (start of I/O) + auto [intr_exec, t] = intr_boilerplate(current_time, duration_intr, context_save_time, vectors); + execution += intr_exec; + current_time = t; + + execution += std::to_string(current_time) + ", " + std::to_string(isr_time) + + ", execute ISR for device " + std::to_string(duration_intr) + "\n"; + current_time += isr_time; + + execution += std::to_string(current_time) + ", " + std::to_string(1) + ", return to user mode\n"; + current_time++; + + // simulate I/O delay (non-blocking) + execution += std::to_string(current_time) + ", " + std::to_string(delays[duration_intr]) + + ", device " + std::to_string(duration_intr) + " performing I/O (async)\n"; + } + else if (activity == "END_IO") { + // I/O completion interrupt + auto [intr_exec, t] = intr_boilerplate(current_time, duration_intr, context_save_time, vectors); + execution += intr_exec; + current_time = t; + + execution += std::to_string(current_time) + ", " + std::to_string(isr_time) + + ", handle END_IO for device " + std::to_string(duration_intr) + "\n"; + current_time += isr_time; + + execution += std::to_string(current_time) + ", " + std::to_string(1) + ", return to user mode\n"; + current_time++; + } } input_file.close(); - write_output(execution); - return 0; } diff --git a/interrupts.hpp b/interrupts.hpp index dacd319..2b7a925 100644 --- a/interrupts.hpp +++ b/interrupts.hpp @@ -9,46 +9,31 @@ #include #include #include +#include #include #define ADDR_BASE 0 #define VECTOR_SIZE 2 -#define CPU_SPEED 100 -#define MEM_LIMIT 1 - -/** - * \brief parse the CLI arguments - * - * This helper function parses command line arguments and checks for errors - * - * @param argc number of command line arguments - * @param argv the command line arguments - * @return a vector of strings (the parsed vector table) - * - */ -std::tuple, std::vector> parse_args(int argc, char** argv) { - if(argc != 4) { - std::cout << "ERROR!\nExpected 3 argument, received " << argc - 1 << std::endl; - std::cout << "To run the program, do: ./interrutps " << std::endl; - exit(1); - } +// ---------------- Helper functions ---------------- - std::ifstream input_file; - input_file.open(argv[1]); - if (!input_file.is_open()) { - std::cerr << "Error: Unable to open file: " << argv[1] << std::endl; +// Parse CLI args: now expects 5 arguments +// ./interrupts +std::tuple, std::vector, int, int, std::string> parse_args(int argc, char** argv) { + if(argc != 6) { + std::cout << "ERROR!\nExpected 5 arguments, received " << argc - 1 << std::endl; + std::cout << "Usage: ./interrupts \n"; exit(1); } - std::ifstream input_vector_table; - input_vector_table.open(argv[2]); + std::string trace_file = argv[1]; + + std::ifstream input_vector_table(argv[2]); if (!input_vector_table.is_open()) { - std::cerr << "Error: Unable to open file: " << argv[2] << std::endl; + std::cerr << "Error: Unable to open vector table: " << argv[2] << std::endl; exit(1); } - std::string vector; std::vector vectors; while(std::getline(input_vector_table, vector)) { @@ -56,22 +41,25 @@ std::tuple, std::vector> parse_args(int argc, char } input_vector_table.close(); - std::string duration; - std::vector delays; - std::ifstream device_table; - device_table.open(argv[3]); + std::ifstream device_table(argv[3]); if (!device_table.is_open()) { - std::cerr << "Error: Unable to open file: " << argv[3] << std::endl; + std::cerr << "Error: Unable to open device table: " << argv[3] << std::endl; exit(1); } + std::string duration; + std::vector delays; while(std::getline(device_table, duration)) { - delays.push_back(std::stoi(duration)); + if (!duration.empty()) + delays.push_back(std::stoi(duration)); } - return {vectors, delays}; + int context_time = std::stoi(argv[4]); + int isr_step = std::stoi(argv[5]); + + return {vectors, delays, context_time, isr_step, trace_file}; } -// Following function was taken from stackoverflow; helper function for splitting strings +// String split by delimiter std::vector split_delim(std::string input, std::string delim) { std::vector tokens; std::size_t pos = 0; @@ -86,8 +74,8 @@ std::vector split_delim(std::string input, std::string delim) { return tokens; } +// Parse one line from trace file std::tuple parse_trace(std::string trace) { - //split line by ',' auto parts = split_delim(trace, ","); if (parts.size() < 2) { std::cerr << "Error: Malformed input line: " << trace << std::endl; @@ -95,48 +83,47 @@ std::tuple parse_trace(std::string trace) { } auto activity = parts[0]; + // remove spaces + activity.erase(remove_if(activity.begin(), activity.end(), ::isspace), activity.end()); auto duration_intr = std::stoi(parts[1]); return {activity, duration_intr}; } -//Default interrupt boilerplate +// Boilerplate interrupt sequence std::pair intr_boilerplate(int current_time, int intr_num, int context_save_time, std::vector vectors) { - std::string execution = ""; - execution += std::to_string(current_time) + ", " + std::to_string(1) + ", switch to kernel mode\n"; + execution += std::to_string(current_time) + ", 1, switch to kernel mode\n"; current_time++; execution += std::to_string(current_time) + ", " + std::to_string(context_save_time) + ", context saved\n"; current_time += context_save_time; - + char vector_address_c[10]; sprintf(vector_address_c, "0x%04X", (ADDR_BASE + (intr_num * VECTOR_SIZE))); std::string vector_address(vector_address_c); - execution += std::to_string(current_time) + ", " + std::to_string(1) + ", find vector " + std::to_string(intr_num) - + " in memory position " + vector_address + "\n"; + execution += std::to_string(current_time) + ", 1, find vector " + std::to_string(intr_num) + + " in memory position " + vector_address + "\n"; current_time++; - execution += std::to_string(current_time) + ", " + std::to_string(1) + ", load address " + vectors.at(intr_num) + " into the PC\n"; + execution += std::to_string(current_time) + ", 1, load address " + vectors.at(intr_num) + " into the PC\n"; current_time++; return std::make_pair(execution, current_time); } - +// Write output file void write_output(std::string execution) { std::ofstream output_file("execution.txt"); - if (output_file.is_open()) { output_file << execution; - output_file.close(); // Close the file when done - std::cout << "File content overwritten successfully." << std::endl; + output_file.close(); + std::cout << "Output generated in execution.txt" << std::endl; } else { std::cerr << "Error opening file!" << std::endl; } - - std::cout << "Output generated in execution.txt" << std::endl; } + #endif diff --git a/testcases/trace_1.txt b/testcases/trace_1.txt deleted file mode 100644 index e7c8940..0000000 --- a/testcases/trace_1.txt +++ /dev/null @@ -1,21 +0,0 @@ -CPU, 75 -SYSCALL, 5 -CPU, 84 -END_IO, 5 -CPU, 22 -SYSCALL, 10 -CPU, 80 -END_IO, 10 -CPU, 79 -SYSCALL, 6 -CPU, 68 -END_IO, 6 -CPU, 71 -SYSCALL, 4 -CPU, 97 -END_IO, 4 -CPU, 84 -SYSCALL, 7 -CPU, 38 -END_IO, 7 -CPU, 90 diff --git a/vector_table.txt b/vector_table.txt deleted file mode 100644 index c45d9fe..0000000 --- a/vector_table.txt +++ /dev/null @@ -1,26 +0,0 @@ -0X01E3 -0X029C -0X0695 -0X042B -0X0292 -0X048B -0X0639 -0X00BD -0X06EF -0X036C -0X07B0 -0X01F8 -0X03B9 -0X06C7 -0X0165 -0X0584 -0X02DF -0X05B3 -0X060A -0X0765 -0X07B7 -0X0523 -0X03B7 -0X028C -0X05E8 -0X05D3 From ac37a0b09b34349ded6571f8e400a5e580963828 Mon Sep 17 00:00:00 2001 From: Noor ElShanawany Date: Sun, 5 Oct 2025 19:07:15 -0400 Subject: [PATCH 4/4] Worked on creating script to run all inout files and have corresponding execution files created when ran --- .idea/vcs.xml | 6 + .idea/workspace.xml | 118 ++++ bin/interrupts | Bin 0 -> 316384 bytes bin/interrupts.exe | Bin 0 -> 309361 bytes execution.txt | 1119 ++++++++++++++++++++++++++++++++++ execution_trace_1.txt | 139 +++++ execution_trace_2.txt | 87 +++ execution_trace_3.txt | 1017 ++++++++++++++++++++++++++++++ execution_trace_4.txt | 997 ++++++++++++++++++++++++++++++ execution_trace_5.txt | 1119 ++++++++++++++++++++++++++++++++++ input_files/device_table.txt | 20 + input_files/trace_1.txt | 21 + input_files/vector_table.txt | 26 + run_all.ps1 | 45 ++ 14 files changed, 4714 insertions(+) create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 bin/interrupts create mode 100644 bin/interrupts.exe create mode 100644 execution.txt create mode 100644 execution_trace_1.txt create mode 100644 execution_trace_2.txt create mode 100644 execution_trace_3.txt create mode 100644 execution_trace_4.txt create mode 100644 execution_trace_5.txt create mode 100644 input_files/device_table.txt create mode 100644 input_files/trace_1.txt create mode 100644 input_files/vector_table.txt create mode 100644 run_all.ps1 diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..eda67ed --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1759521263644 + + + + + + + + + + \ No newline at end of file diff --git a/bin/interrupts b/bin/interrupts new file mode 100644 index 0000000000000000000000000000000000000000..b9d40a1a43c4c45587c9bdc6820b3a0c5501cc84 GIT binary patch literal 316384 zcmeFa3tUvy7C(LtFbpy(Xj*2bqoIkG@fOVrA5&wY;e)iY5CN4$AQ+6gJt(A{Mv5%W z%8JU$TUPYYsMPS0*qh4RrScket!Bbo+_K_!D}LX#_C9mY9A>Ee-~Z?T`+WXR4ePAO zUVH7e*IxT^&KYlTWS$$Qs*3grSI$-lt4|k{49T#+5h1S>B|}M9`rz-W$|xlgRN`bv zt{Jw535Euvq+B>4l^aACLEsQURy3$tNKmK>AhDFV@;5-V^jXQ9gkft%sQ%LQG7 z#&TR=y)0*fznm`U8Z?$8-;{nL_-43CHX_O@_*yw~7nQ4$<;*Zv`cs3NKS>>Z)1^Pn z(A;cuxuvq48BT*v`e=~qpwFByT=_>+UzRKv`-sqEhHpuKXi%$f7Rr%d{^&<`yE0qW zXZF8_*U1VrsKwbCMTLvfQqCyKKfS21xT5m(%Jj6;(^AHjmyAnd6R4OSUy7;oW@ans zmL{S}H!5LO0@w5rZ-C^J{MBQYzA-E1OZz(?w~je|_pG~@4B6B|GGsTEAsPCRKH24d zd;@eX2&hnAVdrwVSbJog%>w8aSMuLtd$YAZ7 zh>i?KKOCaoEeMie@)ZcgVDzf!;Piilpq~?>U#xwC>zNv&y}l6rbvhDHFgt5Q)H^?f ze_je<&(IKlej$WEM~CpkO(FDr7sCI2Ld4aw5O)4*3+{)=5O!|H7!BsP$PoUI3sLV0 zA>_M4*uN-*od-koOI!%~h7jZHt`L5{D@2@p8bW_rh<4U z5PF7&h|haM#9?WO{4*UhN%+3M68us*4PEr&f#FRz3<%M}Ug^SBwWd*s*r{{r|n71^yEXP%rTj(mEp675(O?1q@ z0K(&Qa`GxG6B84YL?IL@EM9^li8*s}Nzj49$vM+Y%5yF(Eht`Il8^eSmXHOz)g|;m z$()?LlG3Yl$dYnLR$kTxd2`02rI*aS;Loc|D=H{n;#%rhf%0=)NeMYQuBBxqSLFzD zPC;2&Nf|0QI$Ou*!1uYXTo`$D3KA2cAuqQyH?PojwPU$#;{@3+CFp@5U6QwA5jW>3 zoSRxumRnxnm^lGaR9wM5ivB4sDO;Xflv9ZK$#s>KO(%z^U2L0Texd}NA1XxdD4tLB+&6%4B zr=XAWi?UV-151j^9fe2N^%z(pCQ}NE^NWIZbZBeSjS%l8LDjw^S`(KRluu(-US%;i`<`vSP`=ybqA7s|p%Gw#bP7NM06 zb0qyWZF5{H zc}SsrHGWBf3wz&!V4>V?^kK5%DMufDp$!ile4*un&_zS>Xr`BRfAS^=Evc-`DJ>`~FDXWVxUSAwk#Ll1Q+QT6TBB0)uskT! zro8lkzAP)ty*j73K$`%Mwu+R+g$P`Zm_L)MQ}c>SF#jBFt*HgeOEFI#ZE^o}%?k9{ zrN^8wP2}mL2s>Uni3~Q!g;@y|npamrGJM`#%tom>{+#e<*H6imQK*5%SIM6Fvl=GQ z9D&j4DsarE^vUDCtbh{&#q*z^)uj)ONwlQGl~b}fr!2R4NkPuy<&;FPIXdN7FwV#+ zFL22v-O;W*N;5?`AEglqFe1OOyi^Ns%8Y2E(5B_}9+xq?ll+TRqm%pr@rRTl_D~?$ zOm;L`E~UKi8XmPA3J5U&1aK6=!2N|81uITH%l*N@XviNZfmN(r%$F>|KIZ?~T0U@T zREBd6I$uwW)EG@*YjJhEYSu*)3*FdQ}-O_N*F1`vGH)nQ1Io2E)li2^|EyEUR zS92BZ00w?jkB~%S%`f%MU_~N5N?oON~Xy+|iqprq@ zKyT$q(C9;w4@rI&@Wwmn6pVE0ZPDE_Vr;=96c(n43#IJtu8Q2r0{Ho#1w<^&w!sZX2S%#Ati*lmGUGZyh zk`kfBN&HHd4^t9=(?`3%0wMlXO%SkB-q+IT8Im5=Ciog%!<#-8bT|X8(?9zR^cgx? zX)(~r*V?DmKtE9<0=60GlMQsQf$lKSI}G%54fIX}J<~vsZ4(F`1D$Q4Yv(|4szUv( zeYEo=qR-TbfSdjy5FGoVZ}m@ufsPLLe;N&REe46%WS~b*Jhw2ApIY&fsP|Y|EI%1M*#Xiod!CNK=sc-aY?pdK=?mV20B96|A{rwWoR;Q zkb&OMFRdtc1KoJuKH5M(&LE#)pws<5?UQbx57dZ&83y|C2D;NgKfyrHGSCMZ=<^Nq z!3O$51N|feeW`)2-BTxaseyj7LB7&JA8Mdi8R)|d^i>AB-9WE1(1#o7>kV|{`D(p^ zeu_bUlYt&*pf?!kBMtOM1AUZ%-ejPkYM}2k&_^5SEe3kLf!=DMk1^2O4D_)Ey4OIb zvv2LwVW6L`5dk|5^l=8dBJ&Kz{}~2)l!2aLpvM~MJY7oOAOk(gAa6I&lMVFI26~Et zo?xJ-8tCZ;dYXZrVW5vU(47XloD!IuWuQ+q$j>*>&os~%8t9V@^rZ&+Sq6HkfqssG zUTL6b80b|7`V<3wm4QChK(8~x82704`eu060 z?DCigj(Omi2ab8*mcde^kL9Ch6vbK7W+WrsH&Qo^_A_@?MM9mM#Obes-gd?R$64qklyb({`dd|^6H z2Q9wue(|@T4p@Aj>o^^(_}A=KylaA9t ziLXq@>D?UPA|0m#6W?qdr-KsT6dk7n5?_*z)4_;ugpSjJh_AnnpG|m}j-NyLcmMUb zKZEekb$l}6@9Q`njQDo>@vf1VKdC5-V}{`Xgz`n#$Z>xS#7CL%p(gxz6W-T^N1E{8 zHU;Yc(S(0v!oM`(2Tk~gCj1=}zSo5BFyUKG_|qo*F%$lP314TzZ!_UHoAB#R_zDwV zY{D0t@XJm3MJ9Zv2|w3_pKZd^O!znxKFWj-HQ~pb@V+KI(uDu^xT*h5_%|l}OA~(3 zgnwwl-!b8PP52HIzSV?3ZNeWj;SZSbbte2a6MnM^zutteFyX}}e6b0?+=O3b!e^TB zb4~c!COplAk2B$;O!&|MJn>)C-S1uQbbs!wKGcyl*OAzi_`0+9tWB6!y9OQy(Ibn; z#SB}Cq=N-a?OBsSan@QU5}45G8i=LMkB^C^O|P!Dm|;~Uw_8HU_hb3gXae!SIo%!3 zo!^|}+}RoKRQEdH`^_}~3SN^6qPp5d9@ENGKC3!wB=V0^F*e&-eO4JH6{q_PS8u21 ztjB5Rw__s$%=tGjbg5+u~WBm%^rGkE7yh=+u?~5!_lYorwbk}r3UtOKkQ$r>>tDCTP zjB?hlWo~Uv77M*Ynm@+8>#UW? zE1O)iVC0ttS}Qk7Ba2vWmu?NzvLnz|HpMg0x6$9$>meQbh}6B{~Hw zp!O5dDCXDJ2s*pVgT;f+XyF3PnEfAU^u#)=zaHfD^mnQ)Wd2j&uWYK=VrbDsmeZUE zSvaqz4b3!q;Zb1^kx9+*Ky@!f`MvM}cVn}6G4+Jo;037Fyl_78JOlsvh~Ep9pa?G< zBwlSzoox0Q1oaNvh;?E6OauR2@P!%al1i`3C_C`wkb43PO?S-^R=QRI+57CFiCAaB zbzGZhvJAl!I>|(n>&l=8uB$>#tjb-Zpn7BA*+t;ViW;~P97DPBR8b940uAiN26l*6 zivrDFH`T6H((En5YON0VwT2#thQH9gZl^({x3|i@3SdMF6VVkH&2Z%~V zCC%QSuw<;ul%uD1yJ%9aFjS7LEwR)-8Sb6a-JLu>5RPPR0=K@|d#xCAbrOB* zCvKY-N8kL&C~JZd1;S6IQn*S8w@7rS5YCe5B5*N$9o~HBSdoQdR%RnT_%6U7%3es5NJrOlur`9Tq@BSrs6G4C-s`a| zbT&KI^Wdy?)DvwcRJT_+YaLDKmi0~#>3HvDZTM!9akbe^;6s{+?AuI&I11;YO<>oH z3YdNUsi?zKLspQ)Iczx;t4KwTDt}&Ba)eq`%VMC*3VGD@MvI+p$9iY=b?dug);6td zim6#Z>O9$1hKdHFB80hUMJv<=Mxx8nezre0gwXR`r*Oq}qhMzDP;8MVq}Zu`F_n2*XRL{hop0 zZ0bQ$b`e)qGhZkZpk^syqT({*dt?J@nZdf)`d9wVR#okwl@4h;gis5dH9o+3jayi! z_3Vr$r*wtz!C9z+dVw34E*e@z+QPWY1Cr*msK|%Krk*q%^(3mIm?8HGU58g)$M6T^~l-Lq~uE;adP@4J}Z z>O5^zV(>2motv*3Lj53{25WchbPG%?3xP7V@L1JtPmOukH|<=(-Bmo*L3! z-K4tt0tIO(d)88GMCs#Dn`S{x0+@pQ3l9Atoy9>|OLUm>+NB_hhAd}O957HOhgudD z%=-jWYr!3Qv9zEqSS*5;TkyuWdJA^&wJ-t=dPbmZ4A6RkmXd8i?*J+q;;EtLsV$<- zo*L@F+5zO#gXoO`erqTbD&C8~p$fGw+yq%e7tTP5nikMxvp*chZV~<6?2W)XR22S}3;V;p*T<>f&CZIz@N>I!+P^`Q{G~)sUw|4630gEU4Mg7^$c!f8p}~ZE1rq(E_uuUSnt9BS z5g&oBbs*3;fci!n>+(0}AtaAFUoRt17`-k~wJ`d|K%#%DDKycwo|WUuTmtTG3VAMOV$)shit>s>y;+8Tw>>mO`V4YVA1^#mFTBO2LG=jgCiY8>U=Dn4j^FruFxO-MwvrMK8cK3F)Il3y zv}oSndvT-cLGY|4>jk+H1D2Gig`*(#6c7_UbKSLL5!sZe}Uk0V`^)K z*uaz7FfRXZ-0*~Z1Yi1)-7}OrKyz5L_l7SSWd&$&sX#?V*#8QY%>#F~K-n6gQwf!g zR#fg9UnC+OH0h~(xItWR$x!lC#mPEzrOuqqOqaEh;-KBai!O5Ov*E0b-HQDPoqSer zr@u<&2~bppD+-Ow?g~zv(gl8?O_iUkFmuFX7L=1}ZIOD-> zZ$oF?Ax3ut7c!Y-1o@wWY-cjrBgk(Fat4`R zTT5KT{MrktOE_lF8qD6PV#eBqLX4#af2rWt3x*IIcx{%y{I7KUBgP&zMu@SrC_h@1 z7lWm?jrjxT>Gf~t@@oa(IA*>+#I4r`$p!yplocSDCJ9tj)a*T7pjD(E+@S)^kZ6oR z?GjZ4x=^D3{+u;8N%V7|9`?N$T^{bOu}l#?Cnz;dF}I(^%SBE+#ym5h)1=HJTAMG? z+x+?<@>!5J|0pce+B{EK)+Q};0>#d4X{a=V{ zIlE2I*}XnPyUnNJ`LKY_#*P(16|zLjV;rl~NQp*i_B!ZfPDj^)%a(!0 zWzjb`i4tuT+(64EDh+;tEAmghuOoU*lYh+0Oj=k^30PQb^UFwR^Sz9Lr7t8jRy0_K z1+?fL81NlxG}5&=_}E0Rm%Xq{SlA}f=YjeL1=PqR8k&py!_Hrk$#i41p1sbbT+>!y zqHC4TFwv`I?WrbuhNPctqT40i0y_F)p+tZDl+h-Meg(9Be0OW#CA#5^yG_c!XrgPb zrXSZb%4^Y>L-b*~eoel_q(_nZ=YbAuwNP=I#I)e7Iv8kPm5im;G%cE<2X_V%$p`2j zHv+;NM@Ybmo9DsH{D$;O5*cr1`ansRs2QJcg#jI&Eh*cj> zfKD%TwmIF|tvHZwRVt#nR^L4c7H@eMuhlDYsNPA_VEbiGPj(xr<@4?tUU9ik&P3M= zacd)BSNkQ9l>#tehAgJZ(#{3j06AZeb5=V#Rn~TtMxjN>V+TC%@{HLY~lf*#tU z>LXB22se8h@T45e3n9*g_kK$4*a`PT2`z8l_0B>OIu+>j-^xPxJqNE)v4EzKW2oEU zaC9?uHPwizu`Y<)HU6!Az<+%=KO0H+ZM1ID_ zpLDY$fFH!p|0%x(YdMo2bp6#$qsiAz@ReroUETer%R_cu?;iDKnDwpv9epqS4nOPT z9{fkoMM(QYw($?}4}TPNgljILF+L!kmrC3@8&NvA)37ckMtXw)^APyC< z!st-B*+4(*F#{Egza|ZiFK8;q{NvvX){3%NEOsxv)~Mo;zz z+&&~%paiY0CgUv#w}aMct*CEPg&kM=qc2!5-1Ik|nNUfyHw}&PCZZW0rMh#3i(Jq~ z^h9Xa*LB)aj;oulG=r`;#C4n7u^(&Ddd1bBZ5T_2(b~1%>5lbWwqI+&BZwgLT6#iz zl7BHTnt2_hf-Jdrz;3ehcyy@uSwaGq-0tfRxGP$lvG#)7;fR=Lny@0ng(tfs=9yh? z#}Otvj<}m>eFS8J<3PCu>#X*3J&prsIy%aufZ%Rwdm7_MBp%j23b^x3N2er&w+{s2 zWr`N(PZgbR$AN0c;fVI9E(=&iA=JCC#QetvqN@6M`#2u8i6uQpF#I(fmiRpHCnu*Qr#fFwPD>u2oSr-Z5(|Znr7V$>kdl~^ zlmbgrQc_Y=(o)FMQXx?(B+^qRq$Z@o($u8XmzJJ3VSK`PSVu9Ak=r;vX?*hdl<}}@eA@W&1pY(h#r~9-UnWK`h*E^ob%-gXz&CW1|Iqvsjg8H z$d(D?CqNE8<@gA^&pb8MRrI86%>Z2Z)=<#bQpaKMQ`j`DrhS%kr`NvIYgyKk@7@>R zqBgl}hJfvG(qad)D$K(bQq36Pnt+FO z>q6B}k%F-5?W8s@=9XLlf%IB&o-lz78U(V3|DsY&TWyvaSRYBnY`u%?mqM#z+Xo0W z)lCV0LsrFh+bFqP0P60g@LnZEK2ZF*y+iNg&eN&kT`Ni3my=+h=dGU6tl#h z{6}aJXtVb@w8Nw^fn6otGsH%+Gy~6u3Yva;AzvZ)WV2~tk(t1GCwnUn$jMl4;5_u8 zA?r=PXma-CxzraKs9+QNq8^f)U^dwXm=Wuouq$TeP~5X;@z>>E4^^{>uC6TdAQg(N;6>N4GEE$&B&V1Rke-d^NTiXndV5F`$O zsnl6`Pch@t$qOc5Hu>_@ z1sT{Jn&CK?F)U+)^w*b=pd)@RLu+3DS<&yb?<*W}7~1zWP`!N*(|Hj5YieIN+u44! zg9GIPj8SUJ*K}{hZ49AVuX92UcmUay>i0UnQt(yjL@#C~&I4&Yw2->FR2UD0dmM-~ z+QgxwWqLO;j(&3-huG|DCH6Y3w!6yh=%1{VGPEC%M zI()RURlHolp*D)TwSB;qq>w4i-ji^jo1|d`o(2Gd35!wBAWg>+h>HQq=G+4mIS*dR zbbm>u=--KgUC=Nkid11sF5jMT6}1;=`wCg#lQ`;t8U$lD$@%x&C$RgQy(RFwRzzBr zMK|`km-u2Yk(<3|p@g@Ukm^12Iqe$!+(TqOLS6`rOfN`=tVZi1IRlAA=20f>x-Jq; z>}Zd`U-RLi%&;+AV@X8Zf4K|yU-WSTjks+SfXf;>*%TZO1Z3n`J)Zb?3u35Ne($N- zI}%Mctd7vqg^)%hR3Iv{HyHzpc48t}S^yD1j#lcZ7F@IewgOVl@;b*l+R!;1O8fAT zeawn;aAH7#)hPC@BKd#9o~N9E+IW=TgL8B=fF&jAM+mj|5;C~O0d6B=4pnl2pJ}r$ zXVzb+FfV>Kfdu1uto=yTW=9LB!$8$A0TxuzC42>yYLL! zIS>^X`%kXI4Ry-ZeD|L8Vx5V#CN25cn{~X#rs@I@v39{xx+ApJ(T#`6so1=a#`@an z-a;ERr+Y2!myA_$7OG*H+JTpxfp_5Oh=fMmRH{zyz&%0&TL!myZ$cwrF)X*>l7fPL zF_(jyP8HUQ%{`tM;Oe;@69s=hQ8Yc`RT9z8g@V6O@EPFw7lD!aWE}k~S$J%Qb-3Si z?)=OGj78P=a3$I-o=92~*N<(zhu=QJaH>Nuu18V^lp6zjK*G2& zSWlJzfE#;qWAIoLZw&AR8w{gp(pm(uC_bv9SIO+s>S$`22k|3J)n2^7roGwwqHs62 z6VG6vgx#QP8)j4STAHS72S)?ct>q$~Em>R%>sn^e<@fMt;(KPtI>)Yc(&f&d;j>!4 z6tNmfb@;{EneJGfz|~;K14;&$Zxh=_alS$?N{JwGXT{dh2=R~An3X3ZrhLcYPmsNm z4L8Z=W^d&$ z)IQ;QH(m~to}+ys9jb`z(8 z$+5JWL;}XL2W9Y_TR5+jsA}4})0~bPuys$s71#g$A*~pP&V!gE#HtXewg~;0h%&aK zdF&Y%quLB^$m`vF@<(K}>@A+*X!TD#a0vFcjo8~F(D_t~4Sya(WxAU-vuyYpMrmaS zH#K{!8QlXE5#H=w1k}8feT-8frnB1l8IWU7kA@si&!2iz(a>&(Q^#Y(Qcy$X<2!I! zy(hsRxD@#QTOK?eho%JC6BzctcuY(h;T1MwI-HN>BlZc8={BmcvCgzU4>70Kim4PKqQ6^=6Di$_;S>^Zx;KZaqSK~Y?E7kI*}zj^G03=` zLJOx>-zqT@z(d5uxr+y*E+SG%^kS z_?^za5A5#!7|Zo(ry6M5T{v6AeXNd{JDcFaF;Lh^ExwM(Zd$E&P<6GI&7;Wk&HTub z_Xae>unG%hG5an@H)&rZwVrwncg8^G{ejn=WjEW|ZL9~W0S%|_6kYix$2325g-pf0 zdm`Fz9BZ7xCLW+>u>oiLyFy>#hKO@?BKjMSV8w%l-#bt}Euj6Iv0Gm<1~+2c4qv19 z^`GVtI|}FuSckqL#$z{q6NBkP=g5;LH{Fh+(}#c~rU#%b?U`ShVwAPE|4O^2{SO5#d)RC z(VRR)mQE+{>gP?5(%UKVyJ;Sxtd5iKH5B)DU^GzuyP@qbLQYNtleh9UYQirgPLVt9BpNE z@285~^!o#Xjj*D7q#8y$M%rZge{11NiYeNi)#8T|v>zbg#Px{a)N8^X?A1g{dslEa z!K0f{wgD1id(!MZ^%II7++nHhjTgnBn$FUAQz#n5Hwv0iXdepiqoDZ#PrpH`5i83U zK=3F{Q$W-BkSoiXbbFk~Q5%)ni869!+3aW#_4r%#!4V;=H3q*CLiW7mcwZ7DrfD08qpZ|mA7=lX<|zkkZ>}w_B5>wX!^gjy>?l;r%2jFHchy;z^2 z6TO273CzDe=RO$~?@%f--evM{Dn$D0L~9W~*Q)+^Ptz5?iXMg<(X<{J1iF`}K5^%fTR#K0`ekH>g@~}Apt@EbvYc5t!(yCK19__L0E9X6Nd`z_1X5TT=gQDCV|*uh7$>l9q&;ds zcZoY{#E*F_$;7ItY#5@zm3gp_CCN%-e&J!dgTtUR@j+=r_(C_K?gMc2=cEV zWVyMVZ15ujfp$@(h!#t4p#u<-yUK&!{0MeK7muXD1n#M`Fw6`$bjJZToWu-cly1VK z!*}wX-hXTI!H1fXg-qxJx$0be1n$hi1uGpc^lKFVQ%4!pZv}hE$l{ z*ezd*^}*NVZG8#-6P--_ffe~!ScvvEQW!t;1Ye^j9Q5+ZhX020CPurh$mj7Q*t{bD z3ke6T$Y+po0W0z|K?%MhzvoG^;(xdzcS4~avqAITUwH{O2#(<75@bb=(Hd})c62N9 zb7+Tl)GPASaXZ~OeuB+PH24we6)nav(bhMdUGON?=V8vDKGq)gstwqN=kf7+_iar$ zVk1c1oWK3C8glUQiUMN_XK|RP#Q@~-cr#G_iHaBK2ERCaiPQQb9}+Ure+#z$z=gk7 zQ;+JamlO1&ZCtclRK;r93$P)J3H~%lB3hN zg=2}GiY79DACkU2Nb~x#u&Ts*1R1(n{5l^k2J}tt2BU18L3Ws!IgGNUM%hlPSL*$q zZc_*9oo1AM%OKlKvenD+23+-Zol4B@8MKTEY+o;GUv+1=YY_d7x!q00@w;cPOYk?$ zHMadPrpo>fooFy+Xm9%>&8o|~TlKV2aDpb7(p|8|C`gB*>^~a|I@*kp88G*XUbSQG z8oXES{s3^(l8n9q2S2kAH+t?c&saMi<$2#Q_hwM0HV?f30AH8QOEMvu4ES;)i&~OM<@z9`YJm7S!2uI8T_9egoxCVy}dXqI=%MhYR=$!h?-uWV{-x8y^^FdemX_Cf7v<%}lT zT5tPAT=9sn@}VO@jOpHknYd(jP|>}j-2o| zN(Vg8!#^SLN1x|;5bF-8!8$kad7kqgAw!$J4EPh=$Kq7nD#TrXs;ON# znx!72YaS|rH*hWl9rsM0qgZP{Q#2iSnCr<#N_CWpIJ-QE1nF&g*zX?iGyiB!*R}n0xz6x^2M6WjM~_P7b`8s=UtpCXvdBhg%UMWdiOM z4@F=`WM%an@g4`k1{kvmuo1A4{QC8SRI2;%%Rmc4 zX7*vw&?5ZVLuMZqG_yY@*U+ZSz6RDCGJCgl3#TT)Bt%_^TtAGmdB|LUj?DEJpt;_Q z9w6UvuE!b%Z}yT8{#4~+i`9mQw!GRxh?f)B4};!LeP_gP?IWys1NtrpqLGcDS6lRo zO+!py+2!)hUCyNo`60gFU)c>okzm=9>KNV4k@`Kbbm&Liw4ojFHIJ5MAQ?~DK*z3^ z|lzxuI`KPo6$eIS75N63^p$_ctXJmseVswNCHP# zK)_O{18Y&;2vgUH>=()P`L|I&(drd@4xCVF2S8f#g#Dcy8DNX|6i|IEQMw-o@g74f zs6ToT3mtGbj#lYW1MN|$%z}>mAXh;5k0+u6nLYe7vK*_@TFUI4C14x;#`8b*Ir-3ds`LQTW6<*w zPQ5rK;x!LPWC5LO{ee>@+)DgkohspV)-IeZb~{!21Fz&#^mh8At^1-IQDlm=(G>57 zOxH%eI)-*3`bzR7MrkDp|Kf<4SCWH>*nRQ}h_hg;L%CS}89)DHSQ(}V)))^|91@W^ z^soF-#rjt6Qle;!L@j_33lzD?iFCNv?9C)0kDSWyV3hUS%^T%{|=Rk)ml3(L!L%3TGeXX8AQKaR4plCp{R z>|!czca_*nN(+kZLZ_XTOoSD%H>jMb%rAGECN?9tXmLr|a|SKd;pa9KfFaY2!Nc}YGVV>!)^|E10L@?7{JT1luJnUFGH6kA+a zoUd7@K)HQ+!Sa%_tL>#F<%O=ol483;I-tL(Bsbrlo1b4+P+o2)Nz~+8T42w@`-}yZ z1$h-DJVlODlg%vI`bV)&RL0K+!2y_R^u?N^ag~dzkdE7fJ zU{|JQWy2o)wJ)kDD|baJb1t4Ub#i8=;+Q!tXZnT8yxg*4sGDe)o>c6lW^qXcnh6Vx zoe7^UD=aOAG&OPhoY@d7^OxgBPoM3WD?4^kZh2uIy1I?LU zmUDG0a*GP{718GtC+5t^DJ#e=Dk{m#DJ(88C=(tsa&wE96y)SBEy!Co(Vml2Y#)8q z(n9nlw2i!`BHn)XS@3jW`RQku7hY2^I^M)qR28d3MLj9}%(rlZg$^%cYw<)i?&W3O z(bY8?a3LVQ2vN5dTNKD#y{@Zk0iF`OYXc4!0j*f3^~Mv0BOmJOnhR*()YWw@;Jm+f zbxp%BnXkdk?)fPH5MU+Xi-79^-vDd`{5N1L;FcGd0SEQMuX%1kIlu@!$#X5> zX@DC5GXb{&76BdrybJIbz!w0Az~B1;CjlM-TmU%WMU)3j0o(vM7jPS(3-AEoM!;VH z_W;tH$wvSu0S>@v-DbcPz_$SB10Dvf1WZBu?grclxE*j0;3t5G0DlFHz*|Exc&IE6 za5&&J!1Dm}0Sf?E0^S0+5%3#sR(uI1TVyzOk zqBH=W2Dt4t#0}s#fR%t5dr=PXUce^67Qi;ZQoLT)8_VSNfTsa|4VVSk7e^PRfae3& z0agMw0KNgZA8;U!LyiFc1~>?drt{zE>PiQ^8E`(}M}XG?&V941s~+%Lz$U;$c;)mk zp#5#si(B)VfTsbL0cHZ;1Xu)E54ale9l!>_ukb)a3*gUy9e}6d-bgIol%52b0C*c< z7GOPKDPRX+9pH`+5a)yg9spGKBhCS50}jE0JRfip;0nM6fQxYkR|QxJSPytBU=!d5 zz&60A0TuiP+=>rjH{dG3Ou%~qivW)R)&XAdci0V>)e3(BE&@CPxD9a7V2rDe;4i>@ zzy*LS0Ivl+0Jsrw^vCF5z)HYFfKLNPU{?|O3E~NG4B#}txq$hAivd>xt^(W$xcWd> z*FL~jKri6Xe;_{aQ^?BzM*}_#=mdNLa4FzHz*T_buzB1BctsoH60imEFyQq#u^5Ek zq}vLZ4)_h=e830rwoesc17JPiKLDEm>E~VB0A~U!__f_KKs(@bfEj=tfC~XF*bP?! z4g#zP%mQozTm{$$_zocb_U>pLHrfHF17-l;1h^1zD_|Ai5x{!D!8nI*0-O%m2G{@? zVONwd0OJ5V0jB{D{tA8rq+fwv1$YJECcp;3eSp6LdI3{>@Ea!8a{)&KHUK&S_W~{j zob)x~6p(%cd^6yKfNuewe;9rPtN`piLQx(AJPq(Qz)Zk%|Alw~d=_vu;BLUpfa!QB zy9Mxazz)E@fCEm!c=;B72h0SV5BNNuYgh^R1K>u$r?BaM3-AEoVZaCRGJI?t%6*UV z0hk1s1$aMTDd01Jb%4hoL7W241Z)Ak2CxIL4UqnYjnjTWy@1yO&If!JuoAEXa6RCF zA2ELc#sjtjJ_Z;u3h@LO2N?Gg{0(?LU_Ri3fGYu80XG7E4Y&vJq)x;+;1z&Tr=mW< z(STnAW&+y&1AhTd0$dG9|Ki?ezGx>n>te-*)iGw;!SWn}89`7}%N*!gl#}G@y>E&FFW? z`1v`y4K3iW0w2R#=U=4r=}@pIer%ZFhti(_eq9gxvwnwP`aAr(-{Cj>4!`Ah_#MB) zj|~^?JHzO|#k&6zz_0JA{gNN5JiR5~5TZQwKmD5-13g_`Cq+^WAnLRja8`$hM@O4DxUZ{gJhl5NliVo1-L0sv z9b<`em)5S!^mcWE|8MXy%Jg<;>-<3$tYg6+VdP(|^XZ?UrSe!->gA{Fe7X<%&mQ=d z;QtN$Q1-0{{}b>-+1Cg@<%&@DwaW6L?CS*o?H=qKgnoFn2m8{&f2{}m=7Ybx2m2~z z`B3()2mi$$>}v%7uRYk;3jQ-a*w+dEQ$5%>$STT*vM(L{hkB@gKKPIKP=6)(kM_V{ z5B?+IhpN93{IxysTfx5t{87gEG{!&pwLR272$QY{{7~_g4nCC+W#4@8Z|I@^O7LrX zsDC~9)jjYV!N0MG`dh&-@1g!q@UQNnJe?~n>!JR1@C$p;Pv;RO;0N;`<;_^sZ(HBh zbtcXeB7VYVOUqG|=f^~IBBA_T4?X8Y&vIiwhUNSD^iRXA2Y;-QzevwRZQyV0fsb=H z9w({B@U^!7AB&sNBN8)m2{{L3(sAU#W==jI0NQ%FyyNzc8yo=)hAe737A z5psTemkPceqz34r_X=j=I-Qc(gI|wpf17699)4Rytz~s&wKeQk;V06S0oeu52VYa$!KYu{ z$OnHmuKl{sTOD2<5jI6@_e#jn*&p?vU*=N1j*Z~21Amf{U#|1_fd3r$ryKcVh$wc@ z4uRkFJ2ph&Jnb9ETwv58Ok^FS!9Vc@{OYBVk1-JTiEc+GWDY_mm=5w)5%|$tg15sC z{%Y_?fj`GwhuA`}9rSxn*^v2*S;nvrpd%k+` z`+^^A9b|{j`DiQEKMvOs4`An~wWUC>gU&jShs=p+ub&?t%Z;QqM4^0o0!h&^|hI zew)_d4`N2vd@xhXG2vTjB~Ep9K-bT&glMPGIf9K zfy@HP%rnY_&13;PXotYR6MTy?{z(VVJmPF63LWO!5!_DFF&g~E;P+%lCS*21W%4C))BIbQIt^;%jt-=6ljJPxnbH z6eK`TrcqDWR2HCq=>&fP_yM-aF-81ANF}Sm4>m^K|?_KVOu$gVqZE0hA9n_xTTc9ltG0RKAhL&eR0@JqoD)elFc{!sh@Cm`>l zyu(=kwYq;&z~2jgKrWPPe)8X3@Rhw?UBSjC@m=7n;7>5>FV*$m1^!_0Q;hs&I{yXm z$AKT2q4xeqz@H8N8Ako`jMEO<0NlgN1%HW=FV^gwVW|!2kl6^CRHKaC zHxhq7_%DHv;iLDV;Vixq{LSD8^N}4z)`R~v_&w#XZIHPQ_hLikuLIz}41TEm^$Ym) zo4TR$*AU!`?6WU){+a}S9QdK)Z~^$ogI{R$LD)j>DDu&@;4cI}Se%m&Hh_N-_!Y+T zq91s5OFEh$vk5ZejWULu(*}MM_+yRyMS83#gK^IS{3nd_MEFDgwXq%ii{1!bJ_Gz* z@Dq*tEJiwIwIVli)?yAZ#yOY zk02K+7udn~g1_5TPuLb+$27>?@=oYJ%qJb-hZ-jK8AyoN2;GY0~ zK>vh^4KG;AA^f=<{7_>g0{7rofFG=1$d}vT>zlymHRlHwyu??MQ-t15 zeP6??1hO?98}fT08_K8i!G8|?P;+P{_^sdvj2FWkx*q)g?**S9sQyOqj{|=KuKnZ0 zFo(8+e;W9qVx|-Pq2LG0TXv`%goJel_!k=WQ-4p^<9-rkE(uWw=~w`MCiulh9U^~o za8f(yxr}v?2{sQBpPtva8~k8)5}%&q*aSY7G`b%Q_r&S>jt9UGFDfmrCEvEKI`htCk(Tlv~0q`)$hBu;gtvcezKBphRjB+U4vidk> zdxYh^SmhrPmX~6cUn49J#VYG87I&<2TjW1fufny#x=7D1#IOc(49{7L7166#WgL4H5 zwLRKOJmWwg4ZqWbKP2(qLJT*5#Rcx7@h9_s0dXA8pVChR#L*sqaNNuv9Gmi|Qu67H zgFYJnhu^wN2yeiSo<7<(vC1a!NC6bDw!Of7ALO>$YM&}KLn9( zUDC%X72_5me{iD9pA#h9bh5b6=<}uFn%!B_ad;e!KU)1b2IG$=_unqjK8Q2vH;FHm zj_Q)QW@m@Qo229LiV6Ei<4g7bGf*Y_#jG$v_IHMaSrRUkuvEe-3F{=Rm#{&?CJ9?4 zY?H7oclCVy~ zdI=jOY?81=!ZryzB;=QmU_vb49L2Ll5++EPAz_w;<~TW8JgP0QiePm(xJj`_2|gkNit z-)Q3RG2w?ycm$vMEBxtC<-1Jy$vJ`kIYZ)F`D_z^iNrO1H75Bd zC9c``j>MPC`X?=(Ef%#!@Y5|_hHX_7cS@=l+(mI|nq|4rgr`7C}u0=LqH znDT_gwf411yk7FFt`HYm{@Wz+*^>XW#Q8QTXhW9?#w5wVMB@B-6lkj?u9g2-;ulEy zkwxOdC-J_rqcr{{64&&vllUAd@00jnB%WU^E;RdBOPp@|)8|NufSSI9Qh}c)fU-d1 zBPD*5#I^Zjjl{M1YmoRjDSuGn{5UjdKV2yp+W3er6L^x8pCoZjf2PD|Oa22A?=SHN ziDyY%DHj*?crtz7Ss`GO0Qfx#aiQstmH2GQUnFr&zsrQ*Eb$I0zoJrHX!5H}_`N24 zvkBiJ@qJR?%~uENTW`Xjkhm7V5!VR$d9wVa66eQnL0c#TL9?$+;#&E)BtBo3kGob} zX#R9bTq}RG#0#YSVTor-JpH=B@~b4SjjtUN*Xld|dLgfkpNSG5BlYD=T&sVD#D`1% zdWrL+TcB;YK`=CXyb?cG%8#oO7c(UO7l~`@m**s|)wf6Dnmyl0T=UP_H!A$$$3Ag& zO|`&f8dKUN{N_ZLE#A^s35M2x7fXDClwTup zZAHCT;+lOCZXq~I%8!xw84|x(;!7mnBylbNevr7fzKyz72x|6>k+>F5<2-_|#nUws zKUdQ)aV?(utQHI{o~B7$^WQ}hFVxCQT=Vyb60eZ_%vy1w`Fo|r$4dS)66Z(iK)d92 z!O-|M64&O#tr8z5%l}Q{GK`gr>I7q%lnYH3VYfr*Dfot|pk+{~rr%e1; zC9c^&>TXe9^Z(@%*X+Ml;svt)4vA+J)*PKj&dRk=qnwDB4z@qto) zg2ZJSRkli8v+o;;YvV8FUQtl<|7{Z2;{6$kPmucg-a@pIWzZ1iY9RUVO~t#s zR3?A#2jVIsf6VuIzZj&b{4Y^}u40w62KY15cIWcvm;G8>P1dydM9j5?svel(AW2p(#8F9r7 zUx6~`+rHX{A99M>LI5v-t;bE{r-A+NxvDDFSC!%y=NH zVn&jJi~D>J1$8k)27+_x36sHDA9Gd(I15g^07!jI{Td*bu{oP!+Lr>kyce9VG{j6y z0Fo0;`J*xBo&`V_vTaQ<=OOivSQM271$z|RmFR|3tlTAOVb&x6#@jD6Cq=&*hN~Y@ zI{I(8x?e4K2q+iq+X9BK*sf)`&9;HzcH1_FJ8WMueAO2A z5XtYfjbXUkHiO|F+j54l*&blH*S4Esv+bV@_t}1C_`2<+hpGGS#43EyM*uB}7Dm`A95i*1~QGZ?;SE0WN|@O|48621$V9A{IHpYjr2^j42A z;EO)$@ptgWNorqeOLE*$wJ$k4Ic~Vxm%N-D7pL|m_a?`UR{M(L@oHaDe2m(cia(%! zF%rL}7)9A7?Bc#BQi@bl)WL*D&$J+2Y<&ilk!SaQ9f<9RQ}OWhX_()T2%~bQ$ep|<>$|n%)!q)Qu{zD4RM?#bYs;^%g+4Q+b|Vzy_I@J43$ zqU&mP^gImT=xR0LM0AjCVaGkHGU}{8nV4Ce-{CrHRIcq*ATgiy0wb?a4O*#`5oc6E z?6r^LrE^qxKUM04Nh-4k?TZF`N$+csuAc?#MUAZt%F4j2m`i&{B3rx(>U)09`On{g zGFS9DyGqP7K5)Jz?hI<_7_P9)dTPC@(1ZBB@Z}06$7LOPJK7KGXpN)J)(c)`%|a5I z1lD3F=`e-BGA|WH~ex4GY4;My`%8s22S~*wqr6ub(2yt^* zJ@``wliY%7BcNzj)QC&)Y8m8JA}S}YNXKQmdh&lUZn6d=?4z#&Gji1TgHr%c-Ss!H z!)K}G(TZ~R>N50Cj%v-rzv1*8saQ+~EyEw>#J9F%CZD4YM^Gry#H>*Zu2im2UtFPb zvpy$z5*6|_YLQDRR>N-rfy%=-25z6n(1`FAs`Z+wszOd2N&HeO&3|YND}7#pZQ*X! zy6kJb!c%egO%^ClQPE2xawZLCInz z{C!x1?K>-rAa8uATK_pg5DK*tO86$k9(9=#d1|U{J(NVAnr1ur3c>NV{{Wu2F&-V5 zst#F$bR6wLNn0Lf>yfj2QEGE87>#-@=h$ZUMxfUrmMrtFbKk}fd_u4V->?$2T5=Xx zKdV-iL!f@Ean!4ceK8G0Oa7o)(0DxvRvVV`_;O((GUj&Dz0~@_Wf)6fC2DLj#zvk0 zG1%u0rd6IA_nLy`^D^rYw4dbEdHA!43RFY6N>|FL_gYZEId~OOMvc511oB(d`JbT?J8ZVOL3)) zD#QN5GIbco#F%Mc0ohIO5xX9&V8;H#v7P+~9J!X}MKxhPecc6&N;)4GMBMLOS=qV+74hT1^ z->+7cftQ_dBbN5+z`W>RKs@s^{83JLr~&~ua7lDbACP=Z>V?2m2QG^qK_n7YPJMD3 zNYQ@_UjkB}&xc~FJs2J~Y`Ch-dJVY_#PIg7@%u_JAiM(?G_us?Z{cr(n4% za*&dLg>UvN`7u1~^2g9XNIvvOl&H!>>M2NKqm%lanvLbNdfYW?-@fRJwDGEPT&)_m z;Z^*i1T=AXkQGrm*`*3Ciq-31#~)f5D+#|~q;VchxN)+)3g3&}B>6x&!JP@(;7z?J zL2pUIA9VCdhp>~2zrwci1Q~Mi*Yy!0_seel!sbfrXLYJ_ z1yq&d8@7%5^I?@)tNQi20=`#o0b`BERCjVfu)u0-GWI2pf%UAPO@l@m!|XNId1F=O zHL(5`z*eUN6+sif#d;N{!@bb?FAzKZa$L)(x6wE8SNC}nY;_c^%i>*qD2CN&3ldeF z3z;zf73)XnAu6dRfS87FSPR*RUpUWK;+sBj3GNIq=J=U$&NI>E?Wdvna&>B zPgUaIuwL3O*&eX&@UurPIRmBt(#H*-s&PMIzK?&``uD*qi>NO`Zo6ML?i+-5{C?|G zcL)vYhhQDh**{Y0kF0+?EZIMR^Q@KEqQCJKZH(K3{d@cu)?ZUp zg}kaJgEc{C)0`Opwe@KvZD!8~Yrf8=gcAR)^}xfDeI-~|>FoM;7kCGCK`YM21hk$1V^ODIIYBQDJ5lpus$Se|7_iw{EJd%uuwj6wWr)#~*~ zoqdi&hQ`IuK3zjmWIR%5dqa!Bog=>G2FO2jNO7R$2xkv6#T-$3d&zofxfmi)VF z^&uy*ao?D$|xL=X^=B3M8vB3%(FQbdYUrHdjKno>TBiqcg?<^P^DyL0ai_Td( z?#!9F8&m^SM^;=PEc$%B%C8V(nfZ^9r{8dN4gu>$%?vS?nI2QVGSbnx5UdTFnb}yT zN18J0F-P$cP|rL{H>@=noTm6q`3&BqZ0tR-yvXiHjAdq=DXY$Lbmj%Cv}T4F%gh8* zPTJ=%8-UeGGcy~@^jxN#f_|P&7zygsN9l&uv=NLgWXiACJItkEeW;lsIm^sqri{l+ zn{^%q>#Sym7|YC3raV#IVg3e|jTfuRfXv1+y}T(GVi3fNlR>TcDBbWcqb{!PkGXcjW8C>=SS;U(68McTqs` zZZKBPkRJkd)ZU@`i%WHUwhk|`P#=m%GbX3MZWg4@AI|4ofBiwh~fk6 zYJ44Rx8>^)`+2?&v)|_HaQjofjm<82Unkq0 z_&UWN#Mi0z6uwTkKj7<3`(wVoVjst~NJR`@L|}~=jA=p+nnDIP3qQT1{WPZwTo5u{ z;A1p2%fTUjhK$&VJ0nNe4#3w5KTT$Q1m>X0U0|Q!p|%pgDda-T(MkMrn7E)v=s>*> zd?NfbIZUf_6%UpvYd6Ha0p_U4NLIz@r=eS*nkfq}5eC^%ibywMk>Ni(2gWoqWl; z+ArfF;oWg)AlBySs3c6jh@D6w)(&&qhv*9s)gBxseG*;}Ma>WuXP5cI82s)T_?2)@ zmi>q{umk2k$I3Oc@u5EeiwMjEje=F#2YW)UU1H96(QVDcWYwBkj{1uDCr~G>w`8MR z`0g@9j*}SO7(<#BhQjsoR0CmLLckpyWPSw zO#Oz{tsqw^A2Cu-U4+`^LOz>_&mh7OD-U`U9GrLuZX;wtysqj2E(j=vU`|-_u_@5k zLC9=aY)wOOouK3c6qwap$oRa1)7%kI_aOW$-fY&3LT2BMPhBBP#sZo_Fe&CF@krZ9 zw%dU?Q^*eG(G7yIC7eXEikVuzCYbYt{2TsZ3O)|z50A2q)NNmZ2+!-ptmt%5TJ)(A zPhK}}>Yj|W-Ra=GC*;GG!YBkx&7F93z%?T6INZ0^Mj`K^nPxnW@DXX)Ddh5N=nOQ0 z?d8HqGv5ONBl4pU@pT?e;5#}Qg@>00p--Kvs5L^dF)GjAN*J3poA2mku=B#|7dd*h zW}g!>`7M0qUbA`rM<+w6yC~$KKM+U0u=H^T@NmYuCS+Z|nh+Ht5?jydPo6de>Hkeg zi3(H&SREXy#WY3$@&vM^o{Vn02``ttwhbGlsfu%FV;gLTfZudsi403DBXzV zj?8Dur^dmSwP0*=Sw;q93FcPR`w(g*y%W2NI4d!<2idU@C&v@G(?QmZG*bWluC{(FL^8|3VElv!5w1ECzoz zxGOYY*S%2c3R8~igIc^Dw9hn^oRE&0drY}69)z<1uWJImW<%8+Fy$ZRz%mP<>%$R} z?vNxO#hQ9Wu!@3_s#z47qpK;sXbO5{eri}v!Fbwbskf;`o_4E*M-He1&j`s41!0^^ z5?m6BRM{i@z2uPI1YwybarIQB+8){MFNd@fgoB#IEliQxc;wmcLPd8GgkLm?vq_QO z^2jgK9ZeEdF)I$036xca)qgl@^Lmf`wy5B@t0)0NIU;dKXpw8s+U}9ZOFC`2F|d}d z5<}tpJaTq3r}g#+Hbl!eAm5>N%(JwT;I80hAhWf!Lcj6EEx>{=a`0UsYqf0Q0n|+l zD6^+B@)KW$f}!UE3oK%r3 z(YouAB`!G13IHogI4iRl|HmV%f1u(JPXMbQlqaXB6=}&6pDDvdH(XwW+u3l220I;GOkG)N=zebjvk93GMgf}IO$2J@t z*Fwd5+LG85Wr!YN3=Cr#u^)kFbwf710m5W}(_MmLt)+3v981N9eNtdiF;WaO-XSsVc8dDNi zEP3~3G)fZG}0?mhdHFLK{&5TsyDka5H`*B%Gc^R{oc#FCjr@CP#E%nNm zH#nN|f>0rh6fz#Ln7+;{r(%l6)-?sSlcwvp7ycO%#lF)k&mC}>Bf**&#&k%>z4CM$ z$HYY-e4t6e=B3n~_R4HNN8JIiPG}~lICeFaVvY#eY9XrHHGp?CLFF5*p<5{t@(hL+ zY`#AQQ%xMIE~zYGQrigG9%BS1l>?!MCaL!clLkh}trZ+nTM+td5@`y}H>Qt|kb~Ab z^p`-LtLY*6#>_bpvSO;kTo2avFs5NKX<3APE4xGb8idQ56q0Yu+#MnR=Y2M;OF9QJ{ATr(*Ghg2g{&grX07ve_*-wz`RX2$Ms zgyL=yDO<&%(+`xuPt|ZZ9o^CnP}MI|#^Q~`MwJFu$HjxW?{sNQe=$;a^*HoSpg#XE z^q{n1vEaf;Y2l^L@yvtJhQ|no6d=oNiIhKJgv&BVz(4;lGENl7Bjr!soc#S0)OZZt zLdsibvML~D*2PGff1x8&3jEqyhKrIaH5z4 z{>p!maZ*tzi@f-|6U8o2Pd|npQX$!_&ROKRw;h?g;76BoQyxr3aH^!yYPVve2(8xJMegNx+ zW`<-b>wL>67vf#S%q(T$p~j)I^airYiJew3tyMl*=A2_}d9Z40W=QPJJmQnP;r?Kq z9l;u+nL74R#ixC;-J6aHGeBMVC|#}NTGxH@G{&o}cnescX=aGAw1R0p@X7B`GR&k; zRnTWDRI);hWoABGN_6|o^p%7E1BYT}HkRq7ZJG3gleQ|LHh7e-)^V*mw)}Xl!|V>$ zP|XZ6mR2yW*0#J?)-howSc^0>#8_sIvgPzzj?Rz3I;xqOjb-{&TPDLl%4xd->Ti$I z4PM8!7TGe7$6>~lH;jBZ9;pVjf@!U><=J_T301*rsF@+gGV@F5Jm@fcfHg`pGaJkF z^R`^E#-YCk>as`ah@DKhW6M{TI>zn<>zHPSEbVFOm&7p&2m8DcE$NU`vr z#o{nvqTO@ib+DFeCJWQa;QbvI{vn0LNbCW%&`-cRq?wc~hxA31>@?RQT>{|`P15R| zF$-;AvGD&_9`<$USur^*i$kR-oX#!RX}&BN@0Y3Vo!ujiAoQdbq+)iAsqB|I-Tf|u zK$xsaLG2;*PJTJ$YsZ+ypnm)>bY(|klRg;7oRg(r$CgYmf5zdNjSV04R#0Ob{azQm zw=wY$x_wA|F%*su%#m{AU zTn((J!FX1)IH6qTOnr3myK%+3*gF@6Jo8Z<@Wbb5SWm=w%E0;78j~NI%n2%UV~RLR zub0Fa&-#*1&JRPui}&**R%RIWb3TQYtr8{eov2#uQZG?KZM6-2nFDXK)U2nWPOZ?D zD4)n%6$7+ZU!qFfT_BN(>+t3)Q9U+sxPc#U!Rv>^>_V~7ogj{KzL%(|^cG`*nz55m zn_7YLv@2ln_PG)na_V>RKT{%x02)bfPpYoG!LURFxe_6)dk${qX_z+{mS{3$iC}as zfK3{V?3|%?Qu}D6)4V+iZKSs{}ojN=-hB?FQlw zDd|fFU}J2Vp~5KDBq1?|*v)*6klhJ;FhdljT12JdVFbBwOSLFfumI&91P4-1@CIX} z8tD$KxJiUY0f2DUi9rK~7_BSXb{h07|$;3DmmC7PMd&)53QY{c;N<0fVt=Vk7i|Y)lg`cBM~P zKYU@e*gF`%PQ%|wqhsnl!?*~QMaN=wy39V2^eovGQMRQ$8HPucZDo(*Yisr6ud*HN zx%}MI-oV%1_EEm}u`lA|$t8Iwyh!3zUCWmLDyQo4Jtd0}wh=3*1AH@n}mhI(~2!#Rb}9Fnc3Lu@zp)Px@aL z#cml!dNNMLepw9fAdH%WaH2=MDB5bJI@xIde8Ms+^BgmyidRL;Uxm`lF(=E-g@SkT z=0ljLHP#DeZN`n>-%C$|Pqfq5C{qa2CH4s#t&dTkiZQ>>(wY)tPnG=y( z!G3|S747MKtz^&RYpQ*Wc~$IFe64C<=4&)>l5}ezSg!s;cFfH6kjv!8+@&6`!E!Vs8Y|)$Jb_d1=iQxu7u|V-n)_QL{w^Z z)S7C1L5YJ`^l zAw>E@i1fwc^hQzAmx|L58I1bpYNKM}#~j_s1NA#|h&OpnqIA{Kp*ZLw0}6(G1-p@kF5-=*DoE zOQBrQo>g&p+KCbMRzLNe`6W;A^Q4s_2H(04+^-`o|nR4s(CZv1Bin+NoQ44U}ah zKxr3r_g{X@kq75X@BDN6h{@7$~K4EM}Kr-Mm;S~O{NuHI+1vlLNvB@sP zQsm|s#E)%WXKJFab+>s@n)Nm>8>@@$Av+a^*o8>MeB1@Md660)fsfzj^;`}mel$#6 z(Br>s^BRM3>YtiTQL7mBHm@PQ41;XQ2Ajox$_Ks8s|{XNWJ?(h>1|$A1bSx|8J$KI zCy>oF|HhbiA_T%~%}|7>TBA}OtTky=YXZegvleFW?}iEnnZ^u3b>_emnbjU9wOmnx zWK~g&gpcq_Oq6Y+mefIiRks;@{IWyz>{_rg0?uFA$@d2Cu`}&FRCMNt$iUnTJaplQ zm_(A1-OZ(~kOQDr!eO4I3{prR^UqvpP6%z|BI0|7zwZsf!KMexk9`0Q)9@vNM|?I6 z@Mv>5240gibd4axcdaJ+N~$@sU6waKfZ_F)li`!2`y=huD5I+pC6R*VG_w*`k&i;h z3DWZmN6yHrW)B;C;ShSuMa1txc)mFYJM_Fz8H0lb#a}^qvAOJ3EO7xUtzkjK0Tu0X zGin*;0)SeD!AiyOx-gB_E4sL#(?sk`9bofQ**-(Ee3YEj8f6hsQpj&$V+8ciMc_h` zvMDkJmlN`SG0b9N-DW`B3C>0^?~Ifw*f>f}hQd?H0VOMAFC|Kh0;_C=of*l(Ku(miljYuJ)!J&1N&0rBp+&N zA0eyO7seG3e$ymMiBK_>rkudfDhgv&-L8ZGjE94BLKRilVp!#tBSicX6pWFY6I)c} zXd(Ytg5T&Nqz2gaT?zi3D}L2}6&kV0tLJ45oq^G|57sD1LXl#t-vMcckYj%bI1!9l zn#I|uJ9iIF3#nWUA9bY(8<4Fcd3w|#@avOK4VPtAtbncYpQi%G4;8i#S9F2=42eq9jh1)sgNeQWE9Rma zfRzh}Sqi2Y84Tqy+vG+6htO&+B2o!1N;?eYmm(*(KLV9N36s2ZUGY3v3(%b-MZ1^r zo3or$;64hEcR7YX$C@exf4KW)k(`9b;yAs4jp z6J(`IUw>0JJC3#hOw@DIC+ZQd6bv%u-nNK60bmhLAO)f^v69)wF{X^%h~XUwEi{R= zuyv~F6mz^OvsJ}jK(NLRm6{9qHfk!6nR~#_~#F<(%Z?cjrJTe|`ONvme!s!FTxj`y? zokw0m5-1LF0HeMt$e^Crr8I2dCO;`!Fy)T}@`vRfO z2niZkl;+6tpeVP5YAkJ)lD#Z>62oXBiV-+X$Ru%uBo2wnA83hDmYkJeFj2e<_C}JR z0(LTCI+fx?OAcO*@IwGkh7)Knm7H&VkD(#ON^S5rVg$`(#s}8;p~@V8W5Yg61Sn0Q*kM^DZDMymIIi z)PY|Se&3aKDhYX(Wmd0To&Z9i2{wV?P81s}Q((F{;$7Z%hhsaSXui5%>e?aDjMQD99AXL59kIngV#H+GoIz}gtj|dbDrfy=%Sha6N=8TZYNw&hh>!=XgU}n`vo67i9gJ2b-;IzP3k$=Xgz(p0jO(^j zH0#TNwJ}1zISZ`SU~CR!8L^A7i8CQucwbov!V!RHG=YW{j+*bOkYY{mH)yNoEifXQ zxryd{2b2Bb_Z*LAZ!XJse#k>Cz09sxy23(Hk|_FM;z=oq6f!s#JwGtGrI@$ z)Ph%>)YO7!6C3c`tmIehjhGww1O_kl&2@MoU=hj08{1t(;vU9bM9ND;9R9>g=0&6` zK=dNg3-24oGYEJNhdK5La-Hr3ar7b*>vb2A2K7b{2=r}NKrbTQen}W4CqBYyC&3e- zPcI_nt0_1Z@eQD}8g>?u?!KdJxC7w625AvVxzVUoX+Add%KnE zfPG3HLTQvkcBJAk`%>LeU*PE=Pnp7KjL^0&B8Cy{x@K#Z7RD$93$IQkO z1faKESPfX+@9gmRMqJnIsPTe%;!}_hlfYCc7j&mxv#(N!>zbu+o(R`9Tla6n_!d<0 zH%^gAo|2|J?V6oO(ynW^3ILA36ewvVKxr3r_g`GI`=1v^XHW)e0oFlM+BLhe0e(b9 zYNp~ei-?pE?V3HhPsO(q$Qq3ndpMR|v(qo)O^48HIM~Vd0HR#|DU`pK=vc}T(-&sc zQUmb}Uo28zpS}xCZqxCtF^-`S40N1t^t8sbE-!+UahMCqEZ1$?qX9OAl7Nedl?1zP z(;e_MypMnmfS(Dcu-o)D`io(1xZ@M@{SK3hj4MX(;5A}X8@P2`w<#H~-KM|)f)B+& z_EQ{UJrMCF?t*SpQsX1=@ov+VKPYhzA_$5Ldi)o+>6$UZD682NwTe-@P2;Y@0fXSi zMA}UGpxveqkx;Vb84YQ-DHVZso08Ep1eNO7^D`IaGRUf;RQ3jo(n!caUqz11(NCj$ zb{(62;M8&*o6q82J2vS-J2vS-J2o3*xSxf@aG3ij39e&vYg>%E5L(Jb#ODk){BZ}+TJl73Bh=Pvy zNzXZs+;MFBLH!h=hh0Qm4Z`!yKPnl<_ke!X@bw_P*nFv+Vf+m!60x#gaVrQfH)D{s zxd4?2g9WQ#$7Taew5zzFQ;A*2W;G<#?`5jdQr9#CZ3v6;NfFv$2> zfLykagxa7*c{OiBPseHJg*EwVV^cRHkX3$IyMPr$0qZdzKkI!IW{AEIZn&JktX(DlBs+{spK1~V|??Zd$STZ zbttM3$7Th*a%m7N+aUqrj?E?66-3`|%;ea7dl-Tsr5&4;e(l(NkOMJ8XdnsFO~@$+ zl~1^1lUj+7xZ1I~4OvHW>%(PP6)OmLZ2mk+(NF&iJ?Pk+o`Me>f^`pvnTP75>)2ca z=W&+y*cyR@5mA(2?bzh@N1*H2oc9I(BMY7zY5}@)q{1AV6s}x%aBQ|9-{cU4ObM4O zN%^9pbRC-ysAdpN3B$3umWD9v5VB1Rmm@2+V{_Fxv;|L7$Y=`)o90N zd%Q8UW3w}gfQVudPRm@0pktGE7n^P+*jyMeB7eua0QM-=K=p9PeH6XugRjy<6 zup=CS>39?lC955qanB$k*Rd&IQ5;bo#41GQHl!V!iJA<@W^^PbD&UANIQ1ejTcsVF zL*a*_2*r4uULu^8X~(AAqT&$m09#48l6M`O4K_Kc-UaNlAnrOgk9n}=0m&8Tfn5pW zu48juKgT|!vtdNwaP+&5&0CcnJRh*aLELq0j%_Kp@r#IQMwvDrRCbq=BnuwEM1 zj?FL848>T4Pa%xbE~wfB9h-$`AZQW555fpS)hpMr*~vh|+6%@Zmlbque&lgXxCHD+ z!c`W!j?Jc{5yLhdo-XM9a46h$Y`*m^+yDqIN=VQ^?bystHP&@(-i=d4(G2W%nIv4t zW&te$$L11D-H9kB;536I$T}wzT*v0&IJ`xd0{kGH;5arv$0VQ3+lS*gF@k0~j?IgO zR4iA3-XcaY67ASLg57zfMc7@D|2Ukg=sGrAFL5j_4y-KUDj(T#3CHGg%t%@(GwTuuizCn)baHk)C7!PD3Gfo;(8+Oc^Ri?ZSX!cVxe zP9*mxhpCPDAk1pH!ZG;+Oc^8 zjxT1m1gl#(lcUp)&D%daI>&-FBb>>-qIPVi4{&s@1Z#UZGuX>&$7cK8j^eLDJs(Cl z6bX*a)OQ`ypCI_UI|)`PqGSafo3k)T75Ts@u37YA2|6}w!uu#{0j%c|f{x93nEaa^ z5kA1hxNbW|<2p9$&IfBE7_-7yLC0pfy)bY&z)hOKj!o4KxQ@-msG{a!Fn-W1E{b3t zX~$;4=}>qNG^2-`bnbYxV>1Ds8g^{v1R| zq+G}5(NCcBXN3Po%DJ1M@uYTa-dyM;D$o=De;kTKnW!C`V!4x?^1y3{aRd{!V{?54 zVLSywZ%yJMRJdbv&q4e&5`>xIBsFmA(-2bvI5w}tlWTqm#vUB(*`Wu=v%|^Ya%Rs? zp-yWdG*Di1`?H@wz30l&L#SN1Gl+emYBs_X5XTof1M>=>ALE_+^0xAYM&l*#`a-!= za($u2!Fs$eGy{nCh4x%$7()>-5r_HG5fl{N3F2s9DC>27q1CWnvK;7YS3vth3*X0h zoP_t{bco>T(5HQ&^)R7g-SnRluW8uvh29yUY=&@`XNt4txy>;mupaIoG@l zd^iaO-xWr_$Q@Cgdc!fXWHu7?No;x@xb7fYhs4`abyLXh*piVbe}r~-5w#Jm3JdOw zt>c527SM|t?m^ND-XGf_2X=)3TB6}TLFGr~r2<$60kmJkCozZQ4132PYl2*tsa_+BiRPBfVmk^FNuoO=H$Qyq40VkHfiL@Pz>lF>R57Jr+hv(t5 z>KBciNWs4#tosh~AbS<;J_n&84#w0#yiCzk>TB1Qr*kFsiyp(58}Sv{GafxkLvt5^{WO6SmL7+t(nw*N4d!DB5ZLQDg1Jn| zaB}%JlKDE8bXI_{-c^!0m+Rf#fu_yHhxZv$lrZHD49!qmZ}xTTwjL&5o+YU#&E&QSMBM@m0fu!3w; z)iOrNNgpZW>JYS=pd3Gyg*{nBY0~7QaDS!os9|wJb{dZV-2%?wpdN;@qvqRqy91h` z^{5(_C}KZAO&C19mAzL(5Ub^L1~r(%R=)&bZ|6F8UBe?jjU zSx}gtmBF4LU^8&&vdK2n?vgTv&gwc5PH{DoT=V>RK2IdbSwY8zNq|* zVpZk;1wFjmRZppk84&c`AYBJ30dD1g1tsPIlm2}yBjJ^Q&d>P$7od_FK0(rMSA7HH zu3CT^Yxvus@}u%Tnr;_BgEahTB6v9t^BzT^ zEC1S8@vBG#f9^u6@{>WCTEGqX{4Rm@t7fvXP7Cq~5gj z4mg(|Umyc{6Ard9Q(G`Y+Cpf9xQ#lIum!ziBHjk{pLW~^aU{(!{)94P5ENQRaN{QQRv3<2A-}U*cjqKT%!NlV(0@D*+9*w>1?snVyGF%+s=Oh~h#PQ;w}hr>Qq+LjW8K4TKs{FoqZ+D0EgWV|N}k(* z#>@~#8-#Xo5w)k*Z9seRi<4o1UeItul6D)=T=c-N0eV}*&4S90%KfMD{bN9TH2i1- zs`(cFBMmy0v*3ujqSI6lPxFoDJ%!G#&}VP^%1n)!iG=?^=&;Kp*}I zhcpIhS#g*HC<@(x7Tdxog5bI?#3lOQTT$OChS47UURs9Dc3P1Q{|lw?d7x9n8M+nS z{s!Y8VDD=DIkHN(qU{)Xo1XwYqzRm9=~c?8R^3tqJ+DtY<%M%4wmpHRIfVoH84YCqJd_0G|e^AWpyzc}Q+ z_|af^nUMS5A@>7tZ#1nn4Kwe^pG@ya)Gvz15G|jNK;cjJ#3q)*FaWXLC&On`LMc8& z;Zr=Zt&)Th{T!+m4uz8q1}_IiHnC(Uw4UW8Rvv^jP4XcshxC*s4dmQ zH}M`@fHTEdWX9KUI{r>E!zfOuDnabA^l@p_nurn4OZHeQ8Rvc~?h|sA!be5W4-P~F zbNj)oci;Hz1&u8r~CB zepCifR@(p_*6^eK;NMvCptr<-z!3*X+U*A?!#_u3#eWFlXx)C0r-tsd@?J@dkCE2$ zIJg0kHclkJXpF>?Wx2nMd>w8gaN4^((xQ0mWz*A7HK^b?d<779k%#?huJWV!&uCOv z3JGzD{MJJazL!C(I7;TL?hp=<2ECO1pAhsVL8=>rL*%Ea_zW_FPvJ1XAxL#&aEM$B z2;)}--*+KZAgaTGL!|#zOoL!Z4je41RCAY=#q>d%tSAGtS~x>R4u{AJZ1imoti8t1 zlLe~Ff&G8yew;~{9!g%DcW zMZ$e~E03f818S<_8zk*kKC?G4?(<;yy{c z)%dd#$}hH`5RTTZ#$mp^x_2@01?5j1oT)Ug;6$p~c49&!&_Ur0 z{hps!Ul@~t&DMA>GDE-T%QwS&ekH&Sn!ve~Ub`_83=hlb53tV-*snNr`SN?7LirW1 zlE%gDG^7&^mGCD8gpq`zDUL%IItx>%vtU5^BB%}sZd`R~O1kPLjQ>EXhl4XNb45@M zk7|O_V))u3`fJ;P1o1jNlvm8KlyEYrh`y z27d?lMedhCWXX*pBFCdC@vmnaNBFBE9lR}#Vlj%0g{Oo#B|L55(cAiI5T;*L?7281Z+zN-;kn*O=4np4bjyr{Ia0ngZBFb7N_?|cJGIoFfn&ZNv z8A-n{$P@2dowW&u->ng{8u;dL4(GG74f#y@W%$VMgeS2`Qq;FS%6bvK4uu5T?*g{l z=AJ3=^eY(a?6FB8UzOD`+_yhAsvA0!3F!E7n4J)xpy8#V;Ll=r48;eb09Dp7k2n+Q zTZ_KW1_^4I{2I=KrAIa#gDAM{$C#T#9j|sELreILzlLz1FGhz-D=5XShCjb4eFqy)^!c z=<)};Lywp(jQj{4hhvtD@)wlE&=`Sry{@2D&Fz_*g#Q!@e8;04^_9qzsfhJ4-$^Pm z4r3%yO^7(OZm#OpOyQ?VNrBEy2dRI?TJQH(`2F0!PgIKhgF+RNwxOTT^(fA5IktBM2Jg|6j^mADs2*qpSp!=cm32hv{B~& zG^#Ikf5@u-P@%Ib5)axaGsLLl8$f%#A_GzQ8hZ|)mqloP+ z02KKa>z-uAZC5X4&7x2%JV7fGI->U!)ow%;p6n+3Ca;3(WIJUM8bhx|Du&jO(dm2` z8iN&#p-A4YDxD);Hl*eYuj8X67VR#2b{-95MCrX{O(jxM^1DDSAa|Ed~jl=C$bBIVYdt5yC&m z6{l$^hY;pW<=kHT4>&m&MvVn$XtWSU&Ueh8JkI}*=1>0U6Ut^PJT)SDVANu=lgA~4 z;>b2uNH<2pf3|{>ZAsMUMB$H=y<4#jW^Jk{S66)fJ-i3%6vkWQU7~NUiTunlF)G(I z%$M?FB__v|EazYu#Y$gQ;Sb)?2LkwmcWeti2|m$d@Pl{IR-ak}N~b9#RfOTCLpxU7 z(jmu!QDp6ONW`rX>mlKvjQt>S8-%&2hWg^(s|e(zAwzJ3f6h%coBuDjI&qR8^B=lJ z@IQ2SXw(1$@RptjCccIQef&CXWpvn*hTvwNxu>ye}iehM@7x`HyMVM-4fnE z(E!Ql5rBerM|N(|fVVD2c5c={{eX^gDkP2m!Z8@2v=rVo=s6_5YX zxZ!V~6*0w|-qAi4)A|43n4W5el5gVmVobm``7t8nn8+m02=v0#B>9VnhQCZ@n3dD? z=IW!&Y6^0ubkQd4V7lljs^Q%QOc z9L}=;sye5qw>#t6l`rq*M3qZr(e*vS{VfHjMTmN@>ZRKcZdGDgj zB4vwRLr6T>4!G!pC)VTt0ZlNjy6}4Ps}k8u#!!3LL?dkvDr%0BmiLPn@ljA$HzksF z(~V~(st^6{@ zK++w-``>+uzw`=NHr(c_6S zO2`o1k3BAl!F2kkq$8ck$6}u-nJL1cxtJ7@H9AY7)4itOdYX0@gsdv(ui-g3RUigw|+lN>QN=8k?2gc zNG3NwOO#C*v1ae#y(Gy{EOxrugI_V`JJ#pFj2?fNi7#Ej0}*65t)+8loz^Zn*?l|y zTM-%Yx02CfyLuPFo^ChL2q49UPw#!fFaP*0R64JFE0<8E(~K08$>F7AH1U^$bz8h~ z1MvPQj{dH!uGL2Ty={oDu6JoZ<>s5~Mn~O`xc)mTLz4>qSxwIb{Ork9qid?FkMZTH zR9^Q^TCYmwBJs$i@KQ12ee>|k#v9(YlQ8Q;fq3VDM+L&BcclXHU&h3Qy1YaTXepY8 z#CfDdf(;^k%pkZc@s~#~#yu73wa~9qy`DfyDE;*C@0tH1_HH6KW}|e;6SEvr91%Nz zwxMe?;`@(AhL!i8!k$>N?tn|-#>s=$_(Q{4OY8H>tNN2mAyjNZYK?gMNeUu5Q(LW% z_+ND*q7k6D!IYCc@Ma*C!F*LNOVYF$lYMte@5Xekq~(ruG_P& z2xUjGSb{Y~b?zU`XG5yj#Sb{($b0A-!kMD-?Z8TIRIkTjyD=I~f!7>;G;UOtCo@C7KNe;rr9Tn?B0&G&dq1%z>IJhnMN1B%Rbl)?$c^@7WUD~JELhVUp=jP}ODnM76mb4dKRjHGYR zs^u9aT07eN(q^>-Im;XW2T}fZtrG1W?Y)EIqgdev3_g)Y!+6 z=<`QIT0TvsLf(w@X!sAK7FfFi-ktCx(TByi{Ery<p19J>}&yjk{B5o+9zLLY1U0 z_Y|g2Cz6G62tsANm*InjO5yqWCsjV4o4DaN$R64F56i08BX)2vKuf$1Def7_u^`yH z;P293Y0ioL!^fbx;Jgsc#=mLye~}DT4K| z^c!;hOSI>w!W6MVEfMs;42oYYTy{iaMp2+Ee&6;;kOYV*<50*s#iNh zqY7@@Wt%^uI7!wq`~u#{hHH2uGCW@wWq6OVnCfA{Cw6{F4w!7XjiCQ&IPJ+pnb%%} z28T#0K!y$HY4RW_HvDx?D#KU)t;PvsLZb?9p=85{Q=Dvgi1ieQwtfqS3;r*jQPzLA z8{5T7V#Og$C0l=pH2sfy5Wl4bTR$>Q81z-C+mK=FNlt8mV#9x{qpB)ZTB{9nX$wL! zN;NBDv-PRK9=n}M?NoCMARi@R-?J(S4VK_H%GfjWYM5S5!VFUPKayZS^9OQ$RRLNj z>3tJzMC39(bw;bVxREsC5?0|WiojIl-~p&p|9>KB9Y#fIt2`Y1Jq6Rrh(;%8Bn47| z?eoN13-P|eA^7wFxWmeVz)F^PTxoQVbe~iM6YR9jN?Tcypio6lI)D*v+7V9_$v2^3 zKB?$pNccPS?;EB3{D`nOxV(Ic|Wh7m{1;STK^F0Eo#yDkIgNor-r9S)H zPOy@uM8W>O)t^np^m9TMF>HX5nl2;hA&`!_LV6bUt`EEczel={ zAFRO8Bs|#s5E&SA0S{695EZzNw@134A7TPkmg6CsAL0YUR^TDP4~c?egZx1 zdCr)z6v|bD^OTZlr2Mu8_+-x0g|3v!bA^xH0sI-3-|-mvq^$XY4^oAGkqBJ!e8>5y zN}eK2Io}u5@7O>SR)v&o(l3|-rM)Twc@R#A!jf@kREo4t7}y?4h9`AH14^4GqU!>o zBa~-ZXC?|GCHVpS#IC}X@{*3A8r4TuiuC@m44VrG^9L{r zN&8*ojKH-r4BGn`fs|c?p>;8*?GoX^SUDS$nj`?PqPnp^i9kJpk@QU+1ShHBq@}JQ z!Qx4ZYy?7H!O5vkgv^SsV8E7END(?dj?lIe%*S>q5*()q+$xo6>C_QjQcZrYYXe>d zqlO|puP15{uGHK=3}W$ByCK$Xx#>d2e(6Hotr`m6nm{l`dowIrBmQqVO47d1O&5|5 zEDKGz1D{PGn50V)tdniTkLV8ReYxpE(oM89rOAQ!BoItO{k61$cML|Ve#}i5lAf-m z>B)#^_-X=ONP4xFX4pRnW16(AA~#(rYBkLYA<5BA|RBudwIfCgCm?u7sy`R62SLyDd(hC-YJ*)bmRGzc9S3g=b(? zu9Zj=ef8V(yu8p08-KtSFW}uECgEh*M|VPOa24)_2^-yWu;H01$582jFqi1WRP@pP zhZ&w3GO2|c^=t}9<5&IzW!tn2(39El*>^R5_8A{TS)J8{w&vkf&b5bO~^G9Og!vb~B!O zqzmvG!d#!AY?};xHV*BXR%G&=80;ryu_(nkhG;JPb^x=wJex1DQTPE7Kj!9)DrUoq$Enw$O^6S?*}lS2N7hfQW% z!pPdQu;0Xo?!WhtDFDUeMKO25A_v1C^seMg+J#fI^ z&eLJYjd~4DjhHrlI4o<$iuBLCe7g_>e_}CfrHaE~mz_Khu~)A6BtV-!PnI>c;zkOm zuasx4R`K3G+|y@zvR1G7C+-t=pxYB!pN}qsl-qCMos)H3t?m%!DHOF`_5C_ZqtW!E zSOBpJ*6`JEBz8m{pto;qp9?sZv2wnKL8IseJ^gW*Z4W{sgRu%$PB=%#BXqip2=>DB zCx&8Eta8PxqXW#J7kV05a@z}niQ+@Bw~|D!gV4nvp^GhMmCH-y8R+F=n_KeoD~cn2 z0P(UWTSI$cKHSEVGe=@WF2uz{VBYs!!xY}plKG!gK0A>YSTPq@?`3Nl`l{IOmOOzr z$V%#f(9k6r3h!r0YSdJ9L=RvCUEEPZUrvf0Y{@@Srz!nn8VIzBfs-ZZ&L~RTRAP%- zsk9De9l-c1c7!DhVX(x}ZU^TxlAugg5>|1_tudAyff~qhp9kS*B2jKRqzRNu3tLra zy@gvjRSjNjXSWNttfqJBs`_(cjZ=SUK&k7`iF#1G5-Qh_+Tn;q*PqJJx(lI4Ttx7) znyx>6DBIln^D!DZ5yfqs{ve4-q)XSIjzo6r&y1fGN927U%hxy*S=XN&J@C$;^ri#L zAe;@;^=BMj{G%zd&cOP*c&7UEV3wm~5(qE5q+tE23Y?WJ2e!_|Gu5B@6`f=q0^uZ) zC|QE;g7t?MD|P*8iw>V{e*jJd@|9%%s5)8?@7H?Y|=7giDLvCNa`vv^=7@?J2L`)}Gw>9sSkhXSws$im^PZISYiP=o1 zFFI3SegCD9wsv8G;)v-W&e3Gu);6QQ&WE^oAJ_)M*)ZMK-bGrebj1;1-?(_Dwl)PW zbXIZ`gx_3Ju&o`(l$n*ptiy~52S<{rt+klxB _HHk#Y5_A`AYrjz1+`hU~NhjK8 zz!^dkWV@2kZSCVaPTVs=c)??b1`&|XAcWiHKuk_>2RM4EO&udXuD z`!E7RXkQl*2ME?xW?5*JsV@~#%mI5INgQReTV>`E+3lV`-J>|-6A<@lvaT`>Ez|^v zi|>K`hj2DbSDEiTSmsBt_y?yf8yq}Sl}Sr+loSLZ#U%x+%*djSlG?zUx_G84bIa!> zt2YQkiA2c~bQi2L(On(Lgs+C~X2z8=_RF zTRa2L)Xnn1xiAJC!A`eKqJwd#`;m)rryGNXY+|~dE`6ijcONmhoi2Uq-R*R@AyT)~ z{S@~J1M)yKI^7mXq1)*Wg9h$&AE0nUKJeUhQYY1drfqgw5bc4{Ey$=3L#9B_OdRGJ zWV3ET+a$jKgU~fD!aE{^E$Dt|3%b@^5ye+vpCXB$NS7Yqkb6tFpk~+xK^$RhLQ&vQ zWZi;>qJ`b163+*$FyU;NZb5Hj`b4EGY65HI;+a}diz|+jo*?vdNx>HM>t#pDWMH#h zJW~t$2t5ZZ!r-*%!s3(i%NAlsFMZb5HH;{T^o0t5;r3P*@q z-GXZ55Gof6gHV=8A)4G4)c8M6DjI?CWF}2+3yQppc?elC2!s(XNwpx}1L$r*HMr3< zJ-tBioN5OK5&WK}xu~u(wb>s6ExSn5edyIy=7~JQIEm07Tts+|QBKiJkLFahrlA(N zW8!U?N)S;*;3f)(8Oda~)2&Ekx6}OtE^Ok6@;Ft|WL;%09>z2g;-VF>rwM1nbd`CC zO3zzFhXNbt;+d*UgI^paZ-Vf)OA1z*XyB}5E3myTo~g=wjAqTrItRivB2lsg-36;m z3Z>2MbhqAjq75LwbK+pzm4vP`N3aE%yz5p$203sCBK%Sh>!HPg zuL0A^@E6A@G`5o0``&oLQ_tkBjzrijP0#?FPli7ly)a4md#kqC)|CjW!=gMIKA#N# z37AG!9dx?sX|BY-#?kdOBo0~LiuqJJw*OCwc5RhaiDLv0%YJbs!iFmMIGYuARDnIFA1O*GW$eR|~n-bkuK z?)SGud?&E!2s-qQN-@?k^tJv|Suu6^OJx57S8_D5vx$7TB6$f;tO$PpJIlb`lMP&9 z=KUDgE#T4-ROxc%#hSucC-TMQeow?~mxgg2v^ioNtX?hrq(2gm9r5_S2#{4VF~)ka z6U5w`gl8uOY!G=5V2MMR69RYzQq_q*{16$KHxonhG=7K)yjTnm zb@(AM;A@SC41UNL$VLk4@bc#{=h>+eyAUq z{VE%E~Lt}nu5%6BcLsNce8Q7hShvxjyDi9lwhnD=%I#3;XU9&Ymv&_4D0;!~}CqJ|gEF^9H`JqGL zP0}`iA37Q-)(-GSM^nb#M@Dk(;Tml8GvSh~`FwUS7}0N{@a-Q0_^MrUHd=bNle1%I zN8yA7x_<^9xLQSWmf-NVxG$P(9~y$a6rR3XDg5g!UsY(aw|s(tV%bL_kL;A1xG#}| z7P0I&yr^oGOsY)bCl=$rLRKH~Ul<8x72~qgeJS`sYgLLXz~S(j)~Xy|itfw)2!3iD z>;JVc?yJN%qVT61;=XEJTe`nG4E$>G-Ra(d2eVfFtQ>Cy)<9}CQ1RB95B{6Vo=-^j ztt95OPQ(2|b^lf+@ZZVF;YZsce1CqvUx4r@d|B2?`f#+8Iw`R)AwtP^|eSwG-ZLoB6ay5 z>FNhcMm?_|EQmDqoJDs)j&v1EvpDL0lt^>FhsZflGFo_Rf@NPoMXQ^r>OdbU#jFg=u*o&8c6DgE>c_XC_y5EdGyf$4b7}}0P`^QqA z)X||ywDgm)%M(2rf&(eIH!@S5iX%wyX&ITbSaG^fs z+sAN{?EK&?P`i|VbqPk&@95VuDyl3A>_+_5Gpe_%%93`ZyQInzT2oR4UcOB_MdfhC zlZUE0tuuwJ8Ks<}_y!lEnomnlsuIOdJ%Z3*v%i1~A+#73OtF)iPbrV@mrkcZM~Y~AYD)w?J~Wb^e+Ae@lQ(5N zPgthrqcq$)1Xe(4csopk%9W%q@iwn-DwlAe( z2>O)zu^#TSes>8*(k4n=O_eF+uv77kn$#V^b)D8*_FX(Y>nTaF>J;Byg^;&7gKGyv zR}X~^?{H`*H&h99j(iCM**$}F44sQzLP%3F#SP(HHIlZsg^pHgGs*{H7&jBuqxJi) zFNF7ShNrAahQwD~I>$+XO2K#SBWh6+IOI(C(VXHVLFZ`twY86CS5YkiN1e)z(-k@qkc-$+bc()1 z!p9I6y%Vh_n!fQA9Y_V*1t+^_ZG1khuo|5#9*=)3Qzqve(q0!WG^ItlFd8i8EZu-W zwRdk6?u?Ws7qRMCnKybK)zD;ynh{hXD?MB!NEKQu(zPI#r1=*F92%9g3JjT!lYIlr z7mbz$>Mp^(F%E8>o*Q(#nC>hMCL|7>1|pn55uo0}9M8g6_0&q8h;! zK|tdiYSgwBJ!IpYYNVF!DDIQg==Mb5I1rlbG8pkS$(dsc-IxCn;Ym3b(|vo4 z&YI-P@e$omzzDHP-W+529;3o0`EtHS_w`Ba6nwE`wm6DZ)iFea->VC|32rsYhOA^0&A`f%FB7T}Gj~c{JSNEfdUsK)BEROKT zN_Ga_H&fvz-n32IWjjtbL?XAEw$FYB_g&sAgD+$U?6K%ew~GCp@DOWH6(h~|l{zeW8R8b+oJIE(vc{9;@Nx}bq3pNteAy3iJ_0u=HwL3A>rdEec$eE>CP=p;dO zGNOr@asy@4ViUKI8wBxw!jxMSx|Kt{2N6mqBf2yRe7+vgc>Z(G{R9niipbv_Kv83)*Eg?GfS8qovcR(@=qgOIH079& zoG8&0=A(ZC%Z)zDBM?R|aUcB$)+qWntx@zCMgLbc>L{JaX&vR=2p;|4OyB=w?oHsU zEUy0XXSs88lU#1X%?2Tagk21QK*Aaj#2}l10vbR~B7{ZRgs_N65D=GIC1@*ZRMc8+ zMa84$@4rjbIzGFXU?2C zvpnvW!u5n> zLUj2YByiJz8b3G^EuM?Z<-BkzpnwU{&Ulh97seQuHXd*V=M!WDarvc(G=3mMKA%y* zU{o&i7U78>gNX4d?Hr=(j=;~DSKzb-`_gHgHgsO2cnI*;;j^5|4tVsiX4kKHcdQ;bJCr|~#!IV`(?!Khq# z%4{@e6)rrhIeIoOF*$jbXAc+fDaO-m(|8iFoD*EYU{o$VhBV4kZ=*b>HhMoUF~+6w zu+;)S#rWmrm`6R}cSmCU$V!Zd3Z?Ow(kKrzEnrX%OO4TBr~M2GF`gKi#zQydNX`NV zqjKTtcu^iI8IyDJcrIcApJF_FFOBCL%ISv%3`XU`lh~rCZN!C#>P7FuCC0e4_*1~; zQ;bKwq!l9=<=Jfo3`Ti5>F>~89{43LVaSPesflrgI*kjVQ6?-Q71{E|2PbwNF}N2jjr+@DTy;w0I$3lW zak*5P#uc$B6Jng_Pvgvebj#xiav3I#iwIFB#5j4H#;NM)vmSz+aZlsKZj=e<95E7? zLA;E_rAzS`xD`vay&DH0?F+Ieo#7m@b34waYY9Gd;(9XRK2WB%F4;yp~nUd3eD!FZp0!xwn_*L0$!j?fMkFvJQ|ac`D(tCQ}StZU8qM za5BM8nxnY7L-E}J25_QDsm=)EyAH@*+7##^Ab)#-vb~lC%Jy0oDBBAPl*JQKzPMU* zR~#_;m1UBGkab#G?93Pci7E5r)OhN+h@How@U0~NU>W7-HZOd(4VT1dCH8zTPt!5g zo$vM3VN>1t-au2`PRUf{v)<&B5P3855m6FPn8V>I1)2zSf~Th(X^^G`%zXi*w&$g2 zO<3VcyY`w4ODnuCEm&IN^|36)`7!&*?;wXfTvA!_%Tb~F`}O6_TyF*;?-#fTPuGK|K{YjXPWa~T^0oDHX7o0uuphzwxA@N`LhentIB|Y+{#88r zZ{Z^NKLoxL?>HKU?K#Ak;1V2*B8R{*TEA2%@RuEs{8l*XfsP#QEL9J5b@}oq&H>^+ zfyn@W#}q!!Sp3}PYQ#$0`JHYKP8LtKxx>IgUh;FBe+Rg)6Vi=+v{b6KkZwFm2d8Tx z{iKVjxWWhF@OQpF9@$G3URHSN0EqA&6I|}ZxiL<&h z)5ym_3|Kn<9_xyR%S7Yphgc;vnii>dNUN#V>CX>8Pecmeh~#gMzM=FB5G$p3o*?X^ zZZ$Q_oRo{*A{uhy#&10l)(ueJMYsr4f423SvZL4AtfPEV`OOm7xefOZuGGYV2jRJekhM)o5LHCg9mjP!a7 zV-=IeKz(0mt<-M-P%E_t&+!WOL$MK9;bi1^M^m%MWaN5LquOz9-Od3SzZ))+>&<|7 zvUtqWa8rbHf+8%J4AG@>oG-2D1jOj0l#XN``Ac({h1WD;Y5vmUQG971^@S$1b`KN| zussdUoPg%lh;7k?D!IdHFJc`7+cSXWIl*-D`aXrjltUD!lLM-Uj2ffOg7G#YX-*#U%$ zOb+!y4$}~;gdnu`a}sWvt`s6s*-phq)I&W2VzT3Pqr_y#?>-%Kqy*W4i?kk|bRlZi zge-0Ak>fA&iT=|{$9WLpD|8-1gRDj%HfZWfsG`V!0}d-JYaaCDS3lO!7`e#L zZT=;Y0&QsNAL0zK&ZgSMPea)B#@b=%JU5hXjC|&o+hEmC4jrl0V@z4?WiZyKhC2Qr zjk&`&yAHYEW^#`Qx&M_c+vCB+p}?V61)At0r+*G?OY{%eG-eRb2oUEZR&X*eOD{)-_75G=AL{8hUC@}> z<5#Hh{-LotVpF45fznVWw_E#7pKqK?>)*>1=Qxv5=Za8%4zg0t3nByc0e~nR#V){a z+S53cu27XhD=}yp`CdoW>p3Z;%8~nYMNf#0*cm$WQ;ft6O3daoB-BZ*LW1A4vr#RO zhwY6+2fUL2#qdjh8Kqu^nuY|w>6S({ULJNeA}RjyC>R2;>usAU}vBg!T^)CIxQ5bUXgwN3@MvmZj5?)A_~K6(IHS$%#82^q@2 z)Pzw*+~Cvplq>DAp4qE2dLKwbJ7Z^#(!nv>8C%(zy&J_`_}LYx$A(V2x2txdoaxKr z9;8Pu(-|EdsheXwC)cSJ+fQDi6Rh=!_RIt-8C%DLD8&cp+_h|qeV1)zxQ zoRryK0Y9=JTBI|kpT`vpe8>skc<5XwSuw9Kq>4sSV>xN}a@iN5^qYjEAMr9CB%z_&3oP;Mf zMm#afmD$Ygf_;dG40~3$$lkBOUhWY{bcPb-1S9FeNhQ$9PW;ZL*!K=_FZw5x<|_>G zf}ZDT$gO41Ln-}svg-^3EYJSpFVXW%Os1fOD0-f+NW2Ly?zAPS0DyQ+$#C*b0Y>X@ z-AU~|h>Ued)WgjqJ7e%YgFgCvAt#^N?C6KX{c(S>Ni#7=-=MR9X+xZFnz+*0SF3f1 zg3%VT>LLkDfL8L*#$|?LqQg4vH3)_d4SR{ep$X1p)DF$+P;rZ%YjtS24x659O(;i) zCup;^Cg{1G3hsX1hD>yue8Vl;gNzVZ=48C#4)`5XF}A3|Tnk_(81~ReBjH}Z8;3~8A>c1|Ab!I!!i<3c@jL!F>I;BldmIy^=uN;)4C$`dRo zpf1NTq5j(Z?rAKOmOd>MH1(3V!N@~~k$Aw!3Npf0PD()+tg}HEyndA9TndmA4Pv4T zejBk;QVv0ry5Jju(V`1}6o4(eV0JcZ48b%<|JVi7)Jhke^(N*IUbs}JoNFN5<}2Sw z>Q?Jn|0wylcB{0=`6johp(WkwOOoC6p(!sU09tgb9AU6qCBK$Jz%RO0&2KGfX7Pm1 zdkx3kOfGKo)8JU#D|V|z6W|u)@5r*k&HC>PFiU7~$^x9ee>SQ?8!j471a0Tf@2w5{ zB5mi-AFYFCX5xZ;O&T*3>1Sa~0Ycs^QfpyIe)(i;L&6;Ixds~^aGzuNNf?qH$rO|j zg&~=MSQ?V7ekk}IP%Zv`?&`bS9C;JjwmEH7&-!FWdU08aorlajW=4+D;pv$x#$%qb zVru5Pfk7wJa#2^!Qj5t6d_UWi;^iQA&PR3K`hH%!9!8^5`?8>7ddYBe%Sf>z2%t& z%bj1vXIBmyjX%7?aehbSw=G>B(G@ehwt4mSlgBUFt&W38)!m9Q}tdxzw zN{GVKe}%+3BtL#RRxSbJt+8;l+G5%no%AhJ$^8ouX~(`3#~OKN_;(Kqj{A#nd-zM( zvOl)ThHy#QDB%VyRwF*J^ruT;f?6*3F>t)^yUTI@iO_zNMUG^|39HmY#@PG~6-Nc= z&wc)V5qqM6T^ztxwS=7@(>r)awpdM5p}2&FKt*v!eR{s~WC2DDD4&CVX5# zpIfuVxaujYYCT1@-p$ujRMUsD8~lqwL)(yF$~kVaT89KMqt1|fEe23rNXg=+@%09N zyn%O{w;`Kg{FRt?mbnJFc;q74#nWLhzU373e@HAf6sH6fe}PzGoIW3Lo&F8;9p`t5 z?RSv|;z9&}Zga=C4J;=LXv%dd7o`+Vn#+hij9BHQEJ_)`r5ieAW&6=wQx+OmNV{j? zZ5IUmJw&p{zsu|qqf=;CbcP&*!ZVXOSh^K52P+oFDd`e(oKG**S!D$|9wJ?P*6t|n ziYzjBOkGY!)}eQx7Y4B+K;-a6#H+`>98na$P&vLKuTB z*9}Hn{g+OHlMa-SA=En{vZ%K- zd*u9GLv;|fxCeMo0AYtAQy!4{)Mlq$r=S)Ms;x!sNmV-)J<%ukdJkE%t6@{HU5z}O zu7=OLtEu3L*P{sE@*wN@vuRimK)g2x7g2(S2Y_@IE>1ZSwq;jtDZ_R*e6usWcF!Rmm~hHqOP;OnaYLN;FZUkt~bLWQR2)-7+U zP9q=TzoFj;%rL`cqIFL|tP&b%-C+dSy8ACZ2790p_|y5iI56SzbDOs!R&*g#>w-2) z7bmR_JU14VN(aVenrk0%%vc& zV0A#|7vj&IjX^h}y_L9#BN5CxzW1b*Bx!Yk_?0K(H80$2O|}VFN9{TUO10kN9$_9dDoeIW>c@+d5hz$1cYPoa`4EX+uVp)QH3*5r-bd#vvO`m z?8DnM%qV>W?5`0kT`65zLHgxWM5>lC70%PiGd`}9#n-Vm8v?X${JG8X4-5hNjIE|y z{tz0|V!8$M{&u>h@(}VX1MaDYVoyyF6h|XgI62v{pT*a@y0yvq;%~_L@m4uMk;plV zN811OJe}R3AlFp1#6S>o1`wTj?fH+3bk=>dH+hPCj|*jl(I9$9=!yw12=U56@RZ z1FfbA0a}KFtP9{X5xs=R@!xK+63WDb-bI;s(!NzDK2t%WBY+s^H$3lW%yYPi$`VPK zOm1I{bnYZE7AtsisOeYfR$tT#-8dv#IuPyBW?!R@rFbPlQBrFCW(8H<_sW2gMk>3fY7N< zoZo@H70}+pxJYs78%c3nG;%%YVu_lL$C@ebkD2l&?8#TjB$QA^BflH5WOnAm-7wV! z`-UE1g%kRt+m(%_xDWbM1o}y!L2g*Lk@hj+3tQ@(K-Fnh!ew z(7;%J_-jyzUsH+Wj}Yx$ii;GAy|%j(7pI)?XJ70%yKui1|G9+Br6qRaego_Tp1hZF z5wY;leW6g5WMvuYI)q!Qn<5@sGC-kBDT149|` zF}n5l!-a(*f%(O(9>Mjjo{ajEhknd@JJjM{++W`UR`I)C-(X_iX_F!0T4$()IdpYX zk%+EN&-B$2m&#l(514j6T^?>}M1v@+1DTI8W-(bV2(rvZtXMTY!kFOn|6x6rh!8va zTn$ud8UiffClJF6Q+2ZT*aK9*>79+4=T*UqJm_{`a|(HRedFcs3J@AaP4$~z-ss49 zBkwUckK+xlYLxB&GcXRg864F4O`96aRw+b0ZX+&eEUSecNyb6EA@H+l*Lbv{MuyKFUal_kO>Ar+L6Aun;8em)K>nzX2upXEj)*!*Qa)X z5c0YwatwI`cmM==!Du1mjh5-zc;N|HJqLm}3K!9K4wsyA5;>fS{o%NC%_x^ZPQ{in znEJv~Fh0^n>*wVsHX-!$#?WPTDtTVZE&%^x6GHgK^$jAt4Y4A^A3=NA8DzZ#?K*pt z21v{ur2ai=?qCi;02|C5=x}20K!+1^2S=bFZ1eql9s?f*W1UoRJUX^<-`ay2*%;Kxv@1RlgXSLI9ei+#V6UXAOa4U7NJVY+& z{m4EAEDz~082|YM9D0MqWP4Qg~Z&!)zdKf@)zyZ(VPX`Xw0~;~HO+}Wa6X)nRcJr+O|}VL z>-D*DLI|pzknzKqndse*fiuG3B--2};ItaN-rG%&!_46IUNdM%o8y67R{}vd1+=+D zQ$U;JNmoIelM#A+3%bdhf#BVVOHeeYoJ9Kk)O8-l{Q&-R3FORtvm0J<#uKQZBmZ-9 zNB(DbAjh)B(vkn!J%$0NVlT?n^B*Vyry^wBJ9|Hzs-E2K?s|A$JBYPGv={<6O<45p7RI@`qg% zh)uGdW=GkAPyr{hWW0HCE#7g_THcT1?q;%4y^NEaBqiU4ok z7e*KySqJqREH>yBB<$?b18;3%xU)xxwT0o%9<2e@qx5_X8feZ$3{OCOn8|W_kmaR_ z4H_LgiT*F4G2f2Z_cv&uL}T998a96HIJ^anSnsd6i1=xsM2*_)?CFLSC!aK)dmcvR zOH56e9O?sZjzFvug7Af&BVlxUugM)dds1)10tg`N&YpV@0I{<9XbhAP+hC|ATGSbc zm9pg{Yqp~JwQwhXfLQMiT+oQ^CvaxzPvA%i=4pGej$eJ2O*$yfSqya7BU)0u5(E$8 z-qYlnkmtYJC9EV8WDg;}KsM~+^4k)C&Q@0Z9P>Ybt~FE>iqL>q5v3jU zXH7!;o4a0Tt6Y6|o8M&aZN3+#$GO#!?s{B1L9cLCM=EuAj2`FCj>uaP?6=BftNp2w zP8t9kwRmK2$Ygg?P}olYMs^clM{|S3gbL2uEnt8RG5*0h@P7f~)e?^DUL0MD#2KA5 zTirt91kw`M?pi*xc{m0;hx^aZ(zz!j&hMMGBu+R@TuJtj__2rzBtBaLka+Z?M)YR< z$l6XrHX-tl0VIZt?AYFnd9fXq-UpkP`W5^T2S*@p$1(gIu89g$SI2EdboQT$WNerF zEDkCA(_lWk??$og{K(aactc+N%v%E0jAXx`8V1661{ThT9|Xdy@b8_9OKc=A?jl^G zOL0kK(D{)|*uRY(Rf9o!;;qo&8mwh<2@CwJ-gTw>LkZGi! zy5?2Lj~bK_!GW^bpTq^RoD94Vp5Ma#BmCzwqufhzaUO7)Vaf^k92(0 zB>YuW-HZl;GFeL}9a(8wA$CL}b`1U#?LGd%Xt=+K^5)z4J7E|F6+70&NR|^Njy`ZT z?wjzRON3lbLpmk=-rcq~6?iw&f}RHzxDxM(=CULod-*wIg$p_a_dZ-zFg9+iM_F865 zxOTHv!Yc-`selLuv0X@jgV-W@zyPh6JYXYPKY8FrvS`jGh>qU@+-*2W=sv&XC!(Xc ztnQO7iZ0rXF5r7Wys8Z%zwalAEV4x;H9=fRM1C{yf;NbC7Lfw8h@>Wn~#)0fd~G5t~mWGt(XL##aUB#eK6 zdRm(-KR~SXJm$Rwr+@KmjDPSVb*6zm!IaBwUW(WxST1s}a8fqAU6-9m7RTsSi_Pv4 zTrj4B4&{*hSVO0ip_8)B%~E+7x1vxgP42boUjSsE;>6b@zq65%cL^@i^f-=ASg~p3 z;{4s1C&1k?v@-%8_aasaK13G(bQbgjG2U~y2(iaO%$Y_guL!H8xc_#IMjjN<_%~ve zppi!UOf)8R!Co#dLWA$yIOT*oc@+j4i0+U7Tmm`$?}n>2mrqFI?`dD(-R8H$MkSf7 zhhrj5jy$o6FflQ74fMos+K!2#3jrx_24GKO(!>x4lNfF$CWbg-hrl-m6GJ*;|Hfcq zNTVFs7)%Ulh-Wtj6GJ-U<&6)zSvXs=M}ua20dAZXIuXpP8A$M(KHR9r%ELPwRk=L8 zzHuYRq!SGe8?m&4Lx_~!lrPA`rbZMw|?Z7}?wU%lpzT_yu!ne-o_*w=>3H zw~2P>9I!RU(9YHcaq|8Ry}J|%Y|5L3Z#3oA@~{U6v;SuhdlVixQhshT1rk&h z)wJT4F&LmDw&ggR($EzPPZe*VeElmWdbC}^@0$JyNNtBwL6c^09W-eM^s&;F=U`NE zH&CxN+{OcLA405ftLI{1CMRH$6NN&jf<*EDI4=sEYxUyCOF z10=9XZOL5 znuB=2$myWbs_U)Gv|da9zf@qA7Z871p%J)$mp`|8Q#!PSjwpvdQe$L-+f#~+Gs*26pF2{X`5d~aJ`MJ$E zAyzSKYTJ==uXV0)$;hr@j`Jw)dkj)(fTYL)yHTgmII=7ZOu-1w2<4c1$~W-YZwx;b z0#|wepy(#3bh(ci!3_}>)>Ms?yR*0iu(?B#<_zFAi{6G>#8AtKz5Eba+=%}`{~&6Ne*fK#>gU9dfq3pjvcE4G z#wlG|fEIzMKP5+xy9Kfc{h^DXmVOM7zaZH~egXAy>!v`v|It;0Oa({`$z(ME0Rxyt zdp<8J3>*Ol$gy9U4C9oRf%l1snqi}53LyS4BwdFnZ;Oo&L7m5)iiR25FC=An5Zd1- z74c3v(XYY_t(W7@k1*#FIrns4*5HD}HMU`bk6&*-fS@!mentgEWZhl9(p>r%@bUtZ zU&DV;45#!gM8A)yzqg2vUkesPT(Inoi-0Fsyg!M>`%CmJ9?`p@vl$BTWAUF$vJ5-v~$N2HZCr#ZFj9uC*$`r)9f0 z4F|v=#(M-8$%Mq5azgFH`%%y1{tEtc3FMSs43^%;(?|FhXsMl&bw9yg4UK{{CLlytugYo!LWglPETMIT@W&MKUEc|YX}xIG|& zpuC@=gSAfo+iIchK=@?2U^|ui1~NZKte8H%3TGyqt_o$_S&;r0-%THbd;YgP&2(sfwUIXDWuLU*SC2hGG zBU^50$4O)E-Y)PhjlisTMD`v7d$|XY=nN&uW&<)<=j;$fCp(qBYcREmk3P>grR-y1 zuuBB7B6l-e>}2r+=kG4n0A~kq{0ez+I&Sa{=iqDRvP^@opPN@*^)gLpdn}JV6((<- z7{BeDMk+DBOLy8O2$ruyux2veCB=OQ{wGhK?3DJ~>^RpU@H6~NHE(zdT$GMS^u37M z-y-_71&A(Z+-X0+z&Gz^t0+N$M?oe`DO&=8`DwL*v`qC z&yr)*gQ?i7{2bkjPe&NDu~+#;dfHN(FlO(E&_+cHS0Pn~0tgIaU>;9w92@DZC&2k}oCiti1zdu4C?T^R z?k%h!mKaCsy;V*=vuHwlaIv&C$1vVMU_6f4fP@mNaJGI!>TpT2_~H9PgOt$b6+}7* z0^_uDV&0hSXD;xI^klPM6he4}4%f=Oa^^xm%g!s8uIzy`bwKNU{0CBSN(UkOaztI* zBD(VA$(XT3)EB2~?t2D>cm=U-TNhTyZ0m|IhX#BBD6bI5REh?0HW&|s60dNy&;TX} z8X(ix`OGB~=i|))iCYX02@P1%E@35^LIZpxQv)*PKEauJHY9s10^iWOi|an5my|K^ zbE>1Xl!r2gNK2_aZW8wY0)3NVBw@r~LaYeGZa0qqz6dXZGT(pV63AH-?BVqlg5^Zp z1fm^svBwSnxx~o*02k~6fC~0P+(i5*@TrrboJbyBN9Y`!)SO6(_9Ndx-JA&ET8p69 zgAR1Z{&hs%YNHb-V3uD*<1%kQICW4~1bf5$7(LH{ko@{ptcU>)+hK2`9!I zJ}Lq}h9OoID&dX6%ZjVQ=}$oFV!92buyO!5aq3~@uZM&c=HLr z`whpr4EO0K-#J0PzeTJP{H6&*Ib(Xh0m(KXDX-zx>idzv@!=hEuT?k5owE_o;PNVH zcz?r1*y7Y@QufSX-*bS(==bz7$*l4#L5Zo zViw^z+-KllzjPaKIuYX^1idqG5j-CD;^Y%#dv|y{xIbm`E(`Mh17ek+;RQj?KfZ53 zJOh$)NtTki%BI=@+<0Wu(OTulO_;Jti34G$^nN&4Z-M5A_!lOY!2xpmzl|y~;t)!wCk~->dg5?b zqf8tQH1H5gV&ahFZq6HW)U2ls#n+8}2n(4;MoNE$rYa@K|6&7|*8Xlre|GOq{5Qwqg)pFd8L&A*md;tCO7ls3**FX?k-or)D50K9 z5vv3r>d7g>YYa#W_0;o_i)0=WJ*rGY>iO@#gYwy+;ay_0=QLhY_RL^gPuIB<_iRHu zp`P^emEco72Oi}(^!~m7#zo4)iLL~(a)S4t2SvjDF#h#mApXm-kVFCS(r^(xzHQ*- z6C^ejDuU=gFF*`_3H4luSS4ssPtK)zhP`C;sbfaGm)l>HKhouw%fG0Kr#=%;fnUvyj|Y`J~$({F>MAa~5LeDFEC|z|R}-(ZvY+8MK1IKlVzQj$UdN17qo| zI`OVUupt(}-Xk_=N@B%MW@SS|-^p7#F^A_$SOvT*- z%KW*_Wre6Xp^r9qCG$a>`zh}1Hh$&ag{Mq_?04_Mlk<>7tTR-O(L|hwB~f&^^Z@$# z(Lk7hf02_m{5KV&`$v?w)W#<|`kTBSa)MYnah73}uo3qQ@t;eK+!|cqc8%mW*y@cHu0f$iB|l@r7KD$KKgFo-#Eu`S!ylgWhH}6ALGpWI3G6lp4hPfo`Zj3f>US-=JQGD z6AW9|6dnz`*}#?|v6+TwtfNmLkOd1AT)qixI1s9aZlN zmznxo@o5-DFRIm031G#XMMn#VybN}Z$sqf%v3b`($Zm)6v4??|{jY(@enM!%Y{bF) z--bASjDKYq6d!dZeR62z8Hh*vWhS2rogJ7G+ty*Soa2w|MqQIe$s)P1=f}wQgsdx3 z^PFfaeSZKJz(D_9{EM)}Kxe&-p~`P-G(9ut1hPHgY+#mlh2tOSdLc4KWkH1(JN^?{ zR5wltJmx-)X@F=%QFaTbXbK~dJ%5BPbd6Ke|p8w^BKv+t1bhieM6ZeY0JZV7+BrmzkqqN)Avlklds zh1;%RdijGAzF=+PmN$@|p0y18kejFn9*BJ zZFeU+er|J4Z%F+w?>TaAq5mNsm_z0*Bj9!a-7i}D6l)ys8SH>G&okJ)1((>T0DGW1 zgz07yYlqHGXna~`s34#-09-6IbP5AHSAPQ+e@bvsuoeX=c^s_FG9=;wiRVE=Eb>aQ ztalF8W%60re;+sl+OS{HCyD*`#L$}kk|)+-IkrvS$AXS5Y((Dc@*C*AWO)I)gRh`! z{3S}d3ZNK8H8_!v+=8bpY>z9jVW$o3e*v~To1T_#%@AEVr@wfsyowGQUxq6zjRKx7 zopl;6`wXE(HHG^o6UzDIek}Zgwj774?Z0LzFQwZ+Be9aEv+=D#Ln$HUGElN5{fFg# z#Rk0CYCsd3bqYW=*$!^Ozb)+5U~qAplHQukpyRWoa*ifTdKJ==nM9c_wSt#f=7YG5 zYg6VgT9A}7ze`G_n@ldL%+WeDo06_OG016C@WDqI^&-Ajukpi}2kW}z(S@jyHaMpO z#|mrN6Gko8E<#IbBY=wl8mPr83p)m^ym?A%75Xh;1GNYR!fL4&mPWxU(8y}Uw)8mIROHrB?=yQwP;9Q1eE4x>%Jkqg9 z_Z8;R_)Ey{R{#xU_lAW%8?3xxU<)-0EOopjsi0m<*||t-Q_B#bC0XzQ1^75F`wZQL z4y|ZGR|Hr?a{svwMGv9_E9rO@%#ER*P^6!Mln9X8Xj>h#6ak*Q0w4cwgY!I+tpGb2 zJhM|iaXO$gBGpCrJp7M77I~Hl}w-rdy(k(a}bhFOK zrOXgdNb%kl#6^lXk>+=h;#5lU8Bp)mMk0R$DUl+{St&A0k>bOv;4HSm$uCVvai*2b zSq<1bGFR(VLW<)78mQrH3ws!>JZ)eTQoIqcffTi&CsQKD9Z35Ivjb6D;sv9xhA1cD zaYDIR;o=XRtcyDoV-Nn^=JCj&h(2WMnr`$d zLrn+H4i|oTJY4IwSv$ZJolfV>u~=z1wd**nHP8{PKq2}2GOX`-tr_lr5na#JQ@Ni2 zSf6Yt@}Z`wryirjA8shBTg>nYI{f~IBD%_{r*33fLQSu42#YV9T4Q|KUFQ`3H)iWn z7p9T8*EF^8K?htdHp%wHv@?xGS&nTL4pHnWp3Z5jex=n0NVq zVrXP0XpAKdd6!>usT!}7f?O64Jg-GA7NBh|J8drW4UHg|#RG3n-Gg0RPe?fjI z%i{rr%pp8uAPOwR;(?k={bjGu0WI@0sm`ny&V{eKFB&Oxoi6y7ff8T7N(>qE3H}Tw zMMoq3g1MSxH$&NNJ{GZx=xkSKHe=W^wJ;x!Cr1)_V>MWzukUX2pg~Xoj!jah4$*qF zXJfeV;Pr@@mc|<9)>|2Tq|QoX&&K^CGWbZXPSYCk`bLrU35Iqc>uG&I0vCxIwE(VR z)gI2k_tQ;{-fL(CvYysA3k+&mi6nnMPGbkMp4Qh$^2D1P@#bMD{b(S}!oNt4>!?YR zV`=Y3vs#DyqBfE{7qN=yl-!9&f+^pPHX-~I{0q6fmgI=g|7h3w4erMna%fBPbDN(< ztRgze&Fa1ZlREcDUq|?3{0ljrk&(n55iZBtPVQjLuC?K=8)6mFrCw7nbDg8|AKi~P z4N*xyIZ9``%E;Dj-U;ZU+a3n}qXy}E{cvNrC<9ojM^)*FcTmxplMykdP&ehzH-=ZN zSiZ_h9ovy(Z0>VjdbDY~Se!favy-4k(biEbm`i$X7*Edzo|$M#bXv7B+Dd z!J5J=E0JE37+l{CR#M9hJO<+&yr&MzW!H##BRzOe9cBjCudkNDd+Kl#KDb)+cjyRR zlt6zAd)`@|tiKkZ9sONx^taZ~2=uqG=kG})VUhNLbN+%{h85>kB$-u1dfF0^}-M{5RxwpiHn zp_UL=8i>vbPTve5q&+{;8e(`?+nx`tb)5IS^f(l%7yhNia49>f#ZcK6-HqdEaSyd= zF~=iT5nbAIPv{8Ra~;AB_!n|~!77Oy5jx%jcMkXG=V+cWX(d0mc^6_8(WN~f2`>cg zc@M&m;9tn`w38%qM0k2C)<1B++mK7x>AxXX5nZ@@ex-2t6~b}!@dPJHOx#0l$gM}LBD%<~6k}u5>_rG)gMT5% zZ;2$4BLa_w*pK@`7#aQ&HTyVX712p9{tB{tiGeq85n|kV;N%mk0_Hb_Ma5sYq0s@c zO3+B-Q5fAWi1B*iA~d*tz{w}n#bwZc+<(%B#_@<%g2oQ01T<34i`5~r0slgU>;Fl` zBEpk7(0|-F7;>25mY>`F5MmY4xiZ2n2A3NUOs2^X)RpW@Kz2^th2QiHq5pu3@6T)-3T6De1%i8+Tq|Ba+kz2y?vJkC}Jtxtfp|s?W85*`GNyC`o zte>MiUqW~IgI_N{xA_H@NBHTKncMKFOekLcMG0_cB2C|!YoEEXbVBs~zE<_ZKVKY!puesEer0%N^Zj(?%s zjaY1GSq@-b1N-X$_Iki(N_K19A`M%eDLJljhw3nQ&n|QPHSRHbX<wCL(K(xAM;5dw}D|7!xXWkLv8lMx>8a!_$``YEXJ*=lNMK zl9Y1Fvb;{H%ZP*Y^x^595SubUC`CXZLISBuD3NGdZ%IneMT|xuKs3`yFBZ@at@Fap zCIG}TEC5cHPGAm8$JzjiYu+XbD;-;sNH7~Ob&t)OpH-AjidhVFbmJ*wI&F|FvI8`f zf~C|s=bXRUb^RDoa#>jTyjcjRr)%yR->D_0l}%?;MhJ~%#0*AR*0R|A7MXSlPz6e7 zS#Y#1Y*#Bdiny>mspO34hSW%M$%~9APyj88;$+!is&1fENCBkQBN-P5bp(8v!Y8EG zD@c;sx25ZyT!Vu^u}>ftHM}@Vx%5pIz#v!x=ZJuou&9gMFFA5q41hL|BMp;5c}fzM zwq7c&zpm2cdMwpZWMDv7h@5HF>9f;M0*?bB0Msl6P-dhla;G#0C1-}&Q&DK7QlZOj z-H~bqGbk$d`8=ejlb$|0-H*Y1CS|6W*|4BoA~-6PZZyM#1QB*+=O4Jmu1*?}L#!Bu-2Q*DB5%s9nk@E}(V=jPFYt6w9?$%HVc8)G}q~#aK z(X@-Z=vIN%4Wm|4FE~?NI83J!R3*_WPBE2fbH&6QsV$3@cebK9R<|zrEncfeHBo@I zdXo~YPC_vz1=)xM6QZ5WzG8|tT!k<<$F&613O6;#3z{l2o@VP;E0UJ&bPvi>2_nb$ z#RGNbgn*g|Sr|$PYX+*pnaMh$>}T;o+X$GPVvlhrN?dV-b~K1Q$#o|RMs+djasaZK z9b{ul*D9kqCS3>>XX{$I$Tf94H%Wz{hs^inmITjtA%Di7LP6-qQ^l+ncN|%KRb+T^ zN71-J#qcC*0$d2Ig9ff04!nf@t1~7Ur2-xba9XLu76R;f(#ncMEHRDXe4S0fNS2kL z^;xbprFcyX5DSv+JLak+d#V8xu(cX2GU^$0OsuWNRyrxj)S_^MEQp^DbwgcZF(<$j z9VQ;O%IkVqY8nSp9A{aw(ZzO;KpIjtK_#vLm}b&g-ZL#1sq7S4Maed5WlJ)Zooy3Y z)j9#^G+0XEk;T7sr9`GB@Oud@S`<#OXpKJ~rCzHmAvUsj;PB#XHkN{7cL|ETPMgC* zhVe;=KqgXIl*xJ_X9}kEjAA?+brcy<{HVjS>3ZCdWg5#l<*0k?pQ9F@;Lgf}=@o0( znC?;n+{sXmx-aict97oM4iM}_bn^l=ULf&_X$Np|DqxIhulA=%VNsy3*<~n{^QwCNmWz5GTS> zXg@e8D?tbe%2K-6Mi*y{EdEhwc(J!ktjG^dJk4K{DZ9j_PGZCnpp7s^m{RO^O*VSl zU2Bai$%(%#CJh-!%euN%bp;}-;{rFGEo(waL;d4EV^v?Y32;%J8+Nvh6?Sxdw={Th&jBb`Uv)PT0;>%sP8 zEz(-r`QNliTNcw;8$>_{T9k!cJl-y}c1E6Pm1gtNsZT<5b~HntoDD-UHgh7*M`(+# z>wX#Qz#Hw1j_8Iu!4bju#{`_S3IA8(|4#hBf`1=CUGa}S46=jMbGvyNvj!u@SwMVD z`8(bkT)64b@v)TP_zgZTH}Yu@F5bPkKx_y;%ZuQ?gs0H^41UH-82*9ZkrxI-MSL2- z%NSnf@Y29bBQM)|`3Wy~^YR!j&hKzhuiz4Xlb1uhe8kHaynM_{1YCI;ymTRdNAhVf zE-54VbSy8^csY@mg}f}s#oxrs#k^d>xa;_I7oTqBv?&Bmp|g-E8j`=>;T_y4!Nr20_C6VdC-B7r!e#7*(n46cGp#DhgHTT zn>r4ub|S*R3#nCyJ)elaNO8|)qQ}<+pS`|RfMs-Rr+MrXSFKWt+IBj4mv7rvI^tLTcNsX z%nmoI&TG{Xkp(KHI5|H%Gvr_3yQ=%AHly;%YS>=Yd7$dLH$Vu9cqhr*R=;HZ#NW&WkL zk?og_-26oo=6PEh~mZbhmSpC+lEyj26DkN*KdL#oujtlI%q%=k#Pihiv8VlSV9 zPf;-l-p)p%$+?0yIMTo*|F{FXeo~}<>>Q}S*K-eh85*AzXD3+w9ic=532&Iqb`7=p zX2Nz-xeZ}EW1U1eqM{&t&=TI~+8lL)op$%%@mnU?>3x55z`VvdW{%;pb;5j`&^nK; zHh~zFY54G7EhkOUuEO}O5$$S^@X!h|9i_61Oa8mcGM}o>M1oxa^>baXXI!a6Dz`~Z zlIq;8X5#Kae{v(mszYRpsK_W(pw*C6tq}f~8;hiJuX4RUZYWii`0s2ytorX(JtIvj zmBbEW$_=+lHGVSh;mB?^oy5bD&7fSYI_^@1hnRalnpfmp4YQdLkx8m+_&C-3E!AhY zD*O)ga)n;O0NpANYCbAeA2J~Mc9n+($Zu1N{8-Ge-z&m0>6VbH`VzwbQDc!-_1&7r zZgm76LM#MZKxlzTVUv4MB(v>pG)Ai<2?fJ84#g3*S=SI$9*ag4vE@vw5e z;aNloAH>z;#pfl&i{b?aU`+T;L; z@^?ZAxy)m)R-y(qJW!%zHHjkC8A{aUT2dpfaRJ%8SF}Kd{f5ZyaAcBY5>Khh^>3u8)%mVB zE5{ocmr}29QECyOe}AKHDt~Yytl}d7XDHnO$*oeA;qFDYOBfPS6c9??ai1FhmJXl` zA+U!#&AAsjsOI1vitJS<;~oYw!x12hx!m<>K@~rQsya%TT;UC(hFC=( z2msd~ubF(tK?zdTEdMSrDa<70Uj<0!ACDYTM-mIq>{fj6G8%UUUKmaRFOt4j`V()j zs(MqG_@L1A4ysv1JE%IorB2Z0^dbi|2=Wt_LHiT{v8C1E9szBJ(?FZ)5R!-`C}+n* zYS3G#x{sNN1~MqoKpxc%gz!G3&sx((n z0)#!>`{C~6PE_hx-^d)vr=^)5F`4Kz)5j4n4AwJgrmsJwQejtjsgbjFJeyAlwUQz5 z2UTZAgKQ4S3Q43*-Ky;;Ds8AFFAxQx@|-H@2URWZVH1u3g$e}oBH#xF8~QPoz_2;! zCAO=A+r{|00Iop1KS|qSY0oM=Nz4g6A0$P>)vDtb)%lPbjF7iocyz^(hBp%~R4RQ$ z7;uG?)kws+5o4Z9Rc$zOC(*Q}2zjM(ZB(FCT^NtD=0|3uYP!E|EaA1xt;0UmbGBqi z4##d)Cq(LvRaqceunDs&DTOX*LTvkNLbPZ;?h|oWCY%Bil5X-msE&S9^LbEcq6wWq zw1a9aZYhUo!E^ViPLVFEub=v&h|xuU!;#ATC{|XQ7-G~JDs>II;cTVWAjO3o^1}Y? zh$yZuH+4EE>>sgNbv#5OMj8iI6h_viF0|;M4hnaE*q@1p%sNhq++d7CgXB(Km)vom z3gu$``+hn?EPogs#+}~YWv&(sTQfRhYZQ-0m)P}VuhyEQNY)t zS*`WXrdO%mD7!hWjT?20*@L59Ih{Z8@!BDzTw)>a;M;%x7+^71ORGqKgJN=E!+1=aiGiUdKx6hp2P~JXsc8hxZ z%-QYn-^iTZo8LZjc9(zq%-Pok+GozbfY3g3_T`6fWX`^H(LQtb^^NwKv+selW=>a} zef{Jcv$rq1w4c3wZN~o)gHCEy3!Ss?-?YwNYn6SYr+wMj*N485Is4jD`^?!FpxT$s z&rUT1s#YqmWn8Z{IX)UpDrYwbrspQ*6uj#W?@ch^xv!wheyNX5DDD z0PP!h{_AL#llH0OOtVbG*gw^?uk`tU#OWZtK2}{Pss09C=V9L+{F*#875jRk|EZy} zS(O?pzHn;aR`nl)%~Dx!tCTG&b%5%4lFFH+IBK1p?%q9T#ERLUBay;`MW_6L#~rDFFfHNeA> z`)(*EdD|D@T41pXDuRjFn; zgF#VF7%pA0nMGO<+3tlCWw9ql_|H17*FCOs-&2|1cE6LNcQHq0z{yP8qIyPdQ_=0J z;{w(7T9tLJiVsjZyH)YED(^*=hC!mg9#d@3s*D|~=q1$wp4V=bajoh+KxMqB)a5Fx zzv{4CsU|Ov8Ea19Y<;KSh&MJsMQTHK4vVc`nKxTjRe9 z&I&$N8TW-UP{bEp_$n$g06e7lw{0v+MzMzh`J2*Ql^xlo25eT|W>t8Z>a`ij9sSGK zM=HT-nt#(d@XJCn@gn-|!Lg|f?*@?PzvdNzc&`7RD&h=e%CCSSn(F^z?E+EO%}9rP z_B6(QBCmrgB^(*x#S)^i=OTSK(b$umzD+dtz^U&b8hbXD-vrTgi;Pk-Za=8{9Mp9a zks7rpdHJ7*;pBMzIbTV2z^(OE$X+!9^9Nq0E;Icnd!C#B8Vq6Ied_4VYEXkZ?po_b z(d630=luO(H>RxbTZ!T7sTEEYCj#3*Y%u)xAOWL3NDM^fJW;*aQCjLtwZN zer$uO5EYIL)PNnOWcK(#e=mp?!u74xL$9juXBy?o7qh7x7p= z7@h+%l=U$R4sS;cdIg1EN35mh${zpPzNTpydup!#GRAqE)u^}Bh)IyZvHrOmykU9@ z<|)j&XQ)j7Cw@^VuEzO4-oS=WxqJRUd_5eaLBr(OA2(nwA_aBMz&PyS3_P z!@i|@d+-tffBr{E%|5I$&0LC^+iFlFHd}BucYFT3|Ei1WmQaow>t{t?4CSh>{>_+m z>m*R{i|a&7o|J+#oOiai>Uin4-K%s>32JKn&f(hu9JM|Kija*zk7%H7BBV_#oP_ z%GfFz*PWu&PMtllzO_@QJ0*LrzW-+wKeSI}VlH)W&;@A`+4K8bh)AoA{rrG`F5Gnw zY?Q3#4{8Hx_A0XdL@_1AjMqG)x3^GhU`nwV!J6{~3n+*XNMR+^nR0 z2i4$7+TY8QinCwi@Nq7ncVrx^HffwSfudcjGQz7PS!x6v2u`YS?I#a+4~ku~TEk#Y zD2#=%KdEd?WWAtzTq_;kV_X{49iG=4^7#55FAv@00}y_nU%)PR(`M(Oig-P8RNwQ| zphQ%*-`(p0)mzOKg6vzdNYEV}N|vesbA90RsoRjD?l12;M`oM-@a7PU$g=qNc`vHa zR+YWWaH&)W|H*SOpWSh<^uF(-_svsB`%_90%=Yi~y(3)d@5$g38{kdAElcs&!6QU z7&Vo0zc!?ry*2AhlW#R`p;PTAlKgg4?U$F@PqiO(YMrY64Ew<;{|2;}-rkYz`xzV= zsEADaqPq@-Z}a*mtiZOj4C{k1cH5`=nl`67x1UmLKX?26Hl2H9s|bms9FK!B-{h6T zygDg%^!BTB{v%i?RJ{&iBmm*V10oJQ$5EyoYeQ~7iRZtR$)2a%+bSz^omPMJ%CPC3 znlJ?1r#f)HTRYqGP>CgPdDts1w}%Q0GlNPA`g;|IB*pjIwV7CC33~=v{Ou_A!+x^Q zzmR?PK2=~uqD5{$6Zjt#TH7uAF-3nf$mL=7JB`fkg*Sy;gDTL@hq%5sXltma=cw~RwkoYE#wWURAmzzeVZ`FFNwMD15D{il$c3ZnV&M2f{R zb;H3}N>j4m-1HCA;P!{Xog{PCa5RRQiqe4gL!SP&6a%%3NbJrL=6z565eZE z&q;a(6#5-UqF{J3^uK34$rpOpTR-MkK76G8)C!uFYTD)OKo9 z)BnIie4D#4`dmkT;x6=R?Ji7yNsZ7eFx-)%orP*uVnz(ra26)3f{VmixDVrR>0;n4 zl>VoEjByq&XyGhGE>nHyw(=FQ3T0e{b5-G6s@qGd;t>1<`1H4VU3AY)Z_<9x-hUP| z{wnsiC?KA=sKwQglzrM&GUL=OrtG@^=+&nG5cP^s7tw)8*Ks8CieOSA)w^V?!Tt@J zR46i8^$ILh>27V4bT*G!z)jd5)jOhvhdviQkytKG?%x&)NiAI^E25m-JT)^>C&up89QPLdo%oJO71P5$wq#tHJE;x@|KV9)RIbYFe^@6f~_P zSddCpvOqU2t^B82)aPMrLia1LL8W2Z$P8d~%iU~YUj7c`JINsaVT*b{3Y&?F>(pRp zrwYl=wW_!}nH}eRQ<5jZ4wm)1Ht2F{yP0ECTTKq@y6eHdF6>wD5jghzuR`Q>`xZ$2e39J=!Ci8%NE^lwaRZ$gSM!V4XXQY_!GLibu|pT zz?8d{&DXuzY@2!m)IZKuz~fcM)I^`A$4EOY)YX8>_cP(yr$m~x{PLwX9r(Bv2+5_o&Xy__+W)DAxD}-uZniaQu|_Ux zU#!}2_p_=0Kj}(Ke_*)%wyt!&1^n(^>3)m)y}Hs47aI=0rYk+hrnl-!b#0tzQ@5tN zu<_jwsR0eD|0I?9qIOWwNGbxCK}@AZXk`s_dw z)W(0x4^0`q-T-L8t;vAB5{4RUMY3~N>-`-T>e5Wid16UjyloUEWvhzK(Z(I24wF@= zNyYB}&Jij8ioLqUVfxU=9$FcdgJLZ5WD8;oRqTOpi%5S^sVTbc=rYc^G)Wlkl(93q z^HlFV3$+a`tO(nFM`0dWX1KJEbgxZ^sZ_b2DRqCc$NGXz{W1pkAmd#$>_PrJD>=JS z;7{eON3MT9CiGJD9vT19v?7%?*=$~c97kzCLYspVaVP+Pn18}tng18;64TQ0uW7ti z+hk5CdssSRMR-^k3Qtu>e5?v)tAT!cwHkLg*fOju@F7ca9}E{NDBBFew7vShO??>l zs*@kZBnB1(^R?X+j~e4C$q4f;C44|N;f7VS*!3LlB~5}(XfnLFZ%1{8%Pi2h8%Wa( zEP`$ZTba3DA!#!<)^*NLBJ=070kl)++BlwUq5i*~jnzKLBbOPbzun|<`T;{s>{qPR z($|7jmm3NnLUTGr&QqcD)Ico95n3t|L!-j*ty=H&?nhK&dSsDqal2H>CQ`pBE}h9-QCtBU9S{S)!&YGoFxcwqaluS8UB1~K-()hQy?ZT*ukWF?i~fNH{BABfPu`RQ zd?y$E5{uQYi++bq{Tdfti}xK1)yhB8-Ru`Obvq1m7j(13Y&Waz%#k?YL-_t12Dd4G zs@a-tdLdc5lisF_%(tw!(0>ASY+ul?X<8TC)GLwN%`EF`N~{$#8b{T^d;ULR0B~jVZ&$ppph2^{QOWoT-y%G?WcJt!~xgc{QsVRxVz)ux8ET`n411A-Zhd zqPmqe4J+#wH>{dCud1qi!Qy4}t7Z(US?T~002MffrhaWr-I68C=hZbVUpaAc)i4vN zuUa~N@)~Dl{nF)Y>T6c5Ua(;CI$!|_Uz=T6-%zute#wgZl@q5d9asfYL-Cc3b?eH? z$_6E~(jFHx>c~pfq{UTLC(ImJa{~FSnYnt!lKPs(OIIwJSUt0*YSN4$HOH)&Syoe3 zMNUz~A#3XAk-_hi6>^+W0aE2F>rwnQPQ!8|DI-{UoG@b`WmeO$Xyx*? zHK*0huc=$PvhFMq-je!d3mX<0QmrIjK5zMov#O@gn?8A-5xFhLVq^gcj4Q7?VKRt2 zH8amzQE$rnpH^qZJX0WDnFDJk)Ppm~zaF(xR<(G_X#gFwOI14I@5)MZ*TeezS74l!UeC5)*B{hp1>OlwXVEW|mQ`AH|LIY#77=mU|wPHop z;{Wp;rHl!FzE^2XyDl4Aa~!lxlm+r#Rll-f;v@*3ZN6&Fw+RwpGll|^6>jRgtzDc~ zRX4-7)SBf>=GVZIE?%|Bn#Yy(3+mAp=hbVq)wW7M|8F*^R&C;cxxp5VE*jl?w6pZI zRVbS@)+D=Y?A5TPb?a(YEnZ&_9o^VKqm6cp6I{#K!WW^P&tcR2uI&X~%5gRGmM?>C zT0O4;x{VHE&CD7!$QccT1}<2>a&6tp`GM}&G}JAunmVNB*wu)I0iBK(W?IyD&A3AP zOx@ll|KByZ`4nGS8D&|wWbwjf_$)@U0K|e8i9Gtz*rA6USW`29@v4S8sMy5m^Vs2* zRajeKJ1z8^Wfk)mFEFZD(|{g@ojv~=1`SzRw`~6Mr8RZ)=GCuS)k2u)e1h(`vdq|X zqr)&)Z45l^y0PzKFL zC|oNOt`&Jv{k$^>PY-Gy0a;r$HTCP})vu5~U`4~qvcWBa<*U}#t*D}#@jW$JyLR+5 zjHB^go5GN~6)Wf-f!85y|BIoS>+4t6EP>j=VRM$l*<;UBG{1gHeFI$;K$fG<;o;PX zk62eWksinN$&05iu7dA|?h`F@#$Xg_taUI&8g<{xi=(e3oyPxRLtVVCYKf`9K{Y3e z2de$6@1us+4TX{zQuKGV2MEoqo7b>-4SIi*Un}osFua@ZlWA2IJI98)#Y@oClBYCimjlmv25VGWXRCmuyjD$v`8o5U!O}l$6%ktx@y1KfjJXKw-s_LE@ zVH82IvBAVV5-?yE$B@Ob33#0>kk}69x!%~$CJ@;D0RaI^0^#LNASAG{_y4`lJ@?eD zuDYkHwGQ$8Y}M^kx9;Pd?|hH{_qxXz3pkqFoBj#ac`|sNF#Z(6JkK z>pZx-NwoY-O+#zY-#vzyuGI&17NjH-`7a2@6DiF0%T1QM^v=V;1?GCELaHfgQ!!eo zaAH_%AbJv7G1oX&@Ask5VegPm>g@4TbE+t<*W3Lj*u)TYNwssTEHio{#xwOnbEDgX>`PnyZewmfz0&9px^3H9`5iOwLmOndf*`7dGq4)c zT3;Mz@-7imLn^_pvoOZRlowxDCyYA{*O(*GDZxF4^Q60Sxs zu`*yNXzY{S*BX)(wHm2YM^aq;bh>g<3DbDIiIc0)Ofl=}X4>e}V>Oy<1iQr0F!mnn zYw4xdTC<03wbbx-#KKm+6$it$$cDZ^ItW(#DlAN>lK`SvJr1-T@c(QcViwD=4XoIr zO;L-{jx!4oJ|`eRF`E#gXCXuZg5*R6o~uOir^-I1%&vRA1Y9^IPW4wnLUAlr*?rzmLFqbJ{CE}Hp zPHXd2ySuq@V0)9eP;<>7xNSVg3E_*Ll^cMS)oSxmf~UlAT)wYET#%nT-RZX0VCK`? zFnEPmD|}E83vtg_+|0OVr%}P)fsEa(5Mm9mrPm*%AeMR`N^+-JVeSB+f~ElqtDtSg zq%;jINIDSPj4PPEdzyeJy4Mz$V(5|KjN`m_vjy0Nmo(b2kx~f8P*A}7kGem&)2e7& z+5O3UW8J|J1nim?tmQe-?l5&3#g{cKtH)q~g!)qyV-nc|qKuS1q@VLf*{ZL?+i;~d zxRkCn$u?3>3AXM;HX!t=R9qvS2QaCI9@6^fNC{$ta4s+moCO{azHq;|7KlM8)|LU!mhAvy#AB4lA#e&lW@-XbTNQ&{_*e!AKO3P(o2ypCzi zxMY6Hs=yC|XDX+u#t1A^+?-Z^kd@pbdzIc`{06{Ftr$~JGZ8fYpL8i>I-*xdRxEyp0>%o#y61tgo0o!Uh!!^B9O7GW|5M-Bn0q z+FM|xF%NOfCy|UQRm*YGfB8O9>NA-ev#_fdYu-nY=Hhb7RakGpFA@N@z>bbe|5|_0?2u{*KR4@!DK<}jF-@O74kprI zn4Z8;!RkG|)z&^!>Y>%P3QmZ5n>=wqCwz3fE9{IE1tA$Sk(~8gR^jrz&ly^iM}*+= zY;9hKIVK?;Z)Ht|sICDO@mpJk9-SA9!Rg@MKQ~ zp$ZQ;dI*~%NK>RD9yh-(UeL(}vI6gY;57%%+;&^__<`#Dq4`5c4jk+Zwl|x1Y&18U zy;cK%)_aXhcU(Pj?BKD50|z$_9K3*Y*6aOin+=58Y<9Q%2e&t`K!jD#>enhv6hNavi@Df9HVN;ntPh$3R(bPNWT-?*`b;M*uvC1l zFmXH=|1?KmzDrrA$o8wC2s}z>rw}ETzdc*@k$-BjLlwe zvkN)<6h~RX-qM(-KwFC;B~v1@OEEI2FO^N>G}q3Il@t+^#0`OGH#bk^!9@^jO0qKT zU+b(IWSWoYJl~nZ-@u`Hg>iYb$!93`h@B8jb#W`_=~HepE&{UqET<5RjiG{Uclt~Yf>Vu^vLZLzrwUOs`lTlN40lLo&64dOEZ0cj5BnEd zJlk+WG^Q6sO`S!2f|aK(6cL+=QF?l+U^6YmMT|+*jK*Z)+TsQ2HFui5KEl*ZU%DdJ zPX&+CyNs_OGR6N(x~jZw_&~GV-LfF&5gZp{h6ST2*>)2q1WBTFtG;%WbkJV9+HJL) zJ%lWCT-Wg8PO%s9jN(H{xB3GRIO!|v_3icmo+b-2E1sz-WCmP(EjajwV!0i-uNc-a z!zX2kSCyVA({Se3T06C?l>dOqF#W4oBJkGXiNB z*vMsF4Oc8XU)Y9-WwsDdWQIV+b}&rYiy<)qx@@i1$vp6E+6-9;1^&AIw90w?(n7dehFJAc+8`Q5nkV9{x<6k}UQLdjUW`alz zgD{O+aE@(Ty@JwGuep)-$#kv5tw{67Ouz?gM(6xh=W`(x3U0)2KH_DYh*v=jyQD2N z5t0JvDy?r{tvnuJ26$EyL}h6Q3mcmcl5v+nL7f6J_PpJ}R@>7!rJQgLVs(xaRMiAl z#lAAbfPBT@C@Et43xj|OQ5z+8WJ?DVK9@!5iMH9Y&>_U?k%u8ZlD;$u;)gtQG>;> z0@pzsJ`jpj;XGpqS}{W)9?G&@4-bZnMD);Q;_l?{k=2_CJ7MypC^!voKpY3~_7s_E z8)h!&wYia~f&)5Bzo+Df*2Z#+26Rj))JnT<8~K_Bh~1(cHNc*}9p^Z`lLDSs6eyr0 zT03N2!fQ>=m>79E%EyDWt^O8D0t^slOOc(&7DQyXTOCU9#GN+MrWy`;c& z2NCcywy)H$_0#5~+u}$sp>`Z^bURy6S2F9zqiHN!pk~EIRc3~5jyrQYvw*n3h-OE> znPw08os&BtgBJTM#9EntBlcZ&E^|LYocqixPjgdAfl=5t1SnN^5YTFN6LpmR)Z_OU z`MxRjS~uCTERjWPR$!iE-n&*inT0yxCRs8#IoS~wiZ@JX!S2ni55!c!F0!E(&&a^05YE%#m>SSmT3_sz-cF~bkA}qYjMp7X) zw8O0iBUYA^TbAL<+fg=*D189fP90%zdYlN2S@~>vavWhIvC5&(Bvx~Q^=vO{RuAd1 zjjMGplUJOulmX9twDM@b+XI~-QUhV@5N&W$_Ua_uvX`&oj9;?}_Ty(ZZC!Tx7|jf-m@wI|wU>5Q zC?+d?bh`!3h_hGHhc~ZuBtL;@5JL!9_X;+epZiK7iRnL-!F?h!EH1*39* zNAL)$A)(wnugOi}Lde{C*wcJ*;+mdOUMM$UQ_LUt7356>`XlN{03atGp!|@XO&Kc% zN@=>@5w1^n6x&9gU?x(adJ@bAhCCM)av}S>8roq1sLBwD z(iudbPO$A(Yl!F=Ae2M_N{kfc)hQZk98GaLhm_~?X~Yt6cjFn;H^440p-cnuRg2c{ z8^f?IX2f80vRx<$!7KhTrlQQ9H}m6j9*q?%syt3uP9;^}Gr@pnOO$%Yf;cQvhOsS& z*gfU>&zj^d_jZSa3dh-SWl3&`6vs?-+3OSAb&Pk0c7wZ=qDN4GW~Bl%fKd>GO)UO& zZ=+w4l}I&WCM}LC#8rk%KT$x~*s@P8U?r~TQ<#2ER7YNZhA3&@juL}3>*ZwXo-pjc z3Dj%!Yb;J#>s);x%x|2zP>?yDxxxb@?}(SC7RyS>CoZ{d6ykzBgwf?J5cC0>gfmxx zPKyL!E-)F#aT`1{6N=I|V_rtWQj76KNmVBz5~x&^ znZ)W8RGm*mlw)(#qMVk?rJHnY$ zj{f5WQBIV=2tsF8XRZD_tYnC8W*JK*6e_V)-n@lwH$yd{n!u?&iM1BB*3P`}Q4Gm` zOaa}RV4A{lZQOQ4JBb6TXg-!_LdkkFl!44K6^PMiwDKi{cQG6R;jCknWvBU;MP867hgzXK@KJzXegAP(b^%HmlOGGQUzd@{ zMIW{HuC_cX$pHUDp17uR#CU$(E3h}*4?AQ3&DIv)j2@!b408Oi{Nn;f6_(%YC_>@9 z6h#Qp)knFUcG{;RCWf~U(N~7?#?r7;-LegGpR24>mWmM7LltModppFVhotK~nOURII^0FC2oixn65okv0_3jIHQ?8nqDqw@%ka=68s025Jik?UjO7mm zw`F0g##JLXs;3m^#jj=HW}J<&ZJLuX8fJ=ErHoHV?6pa1S$O={oB)LyjsWT8e1sW6 zN*7854O|Z7Ew9+!DM3Fl>Kg6m5jATFE+3;xl*ipj%;wTrHR2$KEzwrCnsE}x?PpYkI<$b(t(YEQW3~!Che1h<+kD?UbU4bY$MiBa~!ESZdEJG8xkN9tLPS zy#+FZXp)(iw_ru)$?Rs0N)5R{=vi=hyiTENLRmC;wHW0TOP34d)vE45nkJ~~4sJ=- z_>gRw@eVdlG8qb2mOng2xWCKDosLL{}-KApBaQ^_T396H@b(U4#8a7~J=2(NcsS=G6e`jl)_YAf*+4D2ZMAz!YhoJ4Q^@BKE9rA9b|C`>g1ZLAN(YjD zk=23;jM7nYs-6~x6c|#+vjqZ>8#1?jCaoi1B-N!5uB;sXE*! zEJWydyS!mCTbCPU6_a}4#V%O2oUp{ER@i)scb`S_XB;?&MH=9GVylZHK}enxvjAjJ z03x+&UV!qDwHKci=rJ*fXQ{AGwP*I)xPrmmr=~SzVsRa9Y)Wa6RapmJ0%oeDuaN{r zgT=Tm@V3@bcnWO+Z;Bu)5z%F3l4l|8T|TmvI|3;?s0zzEJ&6^kcgI3i<78aaMsSKu z&U7S&6zXCx-P|VV6akq_P>C)sBXyNSwp*L)UExNvSO@^-E7VsZE3d0oXIVu=Vj4iK zEYv~(!ApX|yX7lEY5DNR&MI?)l|j3|2xbuI#i&_}(z37+(G#*OK8D2xWD9ILD59lX zz)Tdf65|FNFIXs728iZHC5M>0CRKY^s8Ic*9QVmJGr0p49>)3;IQ$*VcoxLv;#|td zQ-*f-`1WbCC(4p7O4Jkz9;nXEO)jb3TIbk5RtIS5NDr{dF~GWL6G6SRULW)$l5Z0l zS|;+eHX=aVte{+hjN}5FVvJE;02mo+To6Y^`Fup^EZ>KU+}t%yo<9^L(+SeRyJC|Q z#S<;ZlZxTE@ZlwFax&SZpk#%c6>3I_i$o>QvD2O>o#~@J%2diSlxUHLs$w-fa~{kw zb4{StlnHNZg^B59{#DSa7J3iBq5>`^g=M)h(da1y%#KNL-DAhtC2=S*Aj&#by@U|4-I~_Z>csISyVzfbV!9nZ_M#jw95joh1@xquGVILt zXR)~5^$9K?P(z@h%v0?GIPMyKApUWb2Wcd9i=LM|%+0Vba(yx(2f-wYt?c1One$ZT zANaOF2$sxtPR#osh~Z@Xd4K@;DhrIO&`)(5Rau*)Tf^dikFM635|MB zm9_3RwK54(Q%%)c0QZyVl(e@~Z;uaAk)Zes+zq7-_2p!OCN4aikEhlW5>)C&dtgm$p#&sx77c(1~2YpwBLz2Oj(Y8pMztsg;<= znk(hESHLClxLEK zz^g-vbP7^;_03e`B(4qsnL=tLQ8SPwyv{Pr0#`&`64|mM7{*7Z49FX2a_W5qyQn-deBQS zZ9=GTN5wmxbU57NL;W6%8Jq@!S#1rjv@+b9pt{A2=}zq^(GO%F6=;?M zA_SfA|6D^lcB!bt-OwuC8s?a=bnKVhFapEmVB|tQwULI>odBIy>9`P z4R%o3O_}C2fy`jOu!D@Sf+=uG1zbULdlP=GwK?5oP+4{}2=HF_C}=Yy?M5m>(31*N zf2z=pv6~>mqU)d>-$t*yz17;}kgW1TlTl0YcvIw4NW;@?3~$w07UclHX)c^a@o^^^ zxKcDp4UsL}*J#+BN$a}@dP8^JCGB2(Og`o_MBrXOO3}l|5H&W7buK2l-tBDGKoF1y zLC&7Zae!!9IMTJQx3;U>_5@8LP*=D#}@#C<>24+|d{V>rPwEQnz$9 zWyX3{X4q;;M3&S@;#Ol?B3nQBMJXny+ezz<20Gbf5p#q3hO{(W$Bsvp^^Mj50Xi16 z*>3d}q@1mQh4dm6i(Hp-HirdEV^StW6cF{1c9f7N-1XGQ})|p0L?T`BT1(D1({R zs-%gt1Rgz~qn$PM@OXw1>oD?n&aKR){~6E3-Ay{jJcz0FoMu{Q+vO-7~TSw?w{McNa3d3@038DNl7!Xm<% zrpEBf8OpOPWu+_?LkXAC%+mP|JDpG*ZrZjoK-1)rWyF$ zEi0=*QVBIR(4Y~v1x{WWY_&(4Y?3v=wiQCJ`diHg-I@ua+wRxc5j#%zk9oL^AN#7s zma_-S?iLTpAA$D9y9vSdrTeyZOf*rVFyslqv6B^?7WX#qpsccTHWg753AmoZr)h_d zD$jh{&{eE8DkP2D?l}ke#0tO>W>;2ooik=QXlfkwM0Od=@*B#Mifd0kPGtsszkr!V zo(Fg@E7?!25QZVUgePEfA)b)o?U7D-l!Z~}j`&qk{uQPRIV266z3mQ=2yhQb1tdV8 zFuq)Nim_wJ#)a6Ith0~>o$u^%#2a}y2z#WwL1xFcWn;G($rAWVc29tbxpY2;$ca{53>mj1oY9qWL2ML2iibHWwE*xCW%@`F!E2cjlXF9E*}R0TLWcU zSWk}&tfRT+qwIeJ{TXc^JgAH>Ck@YcrgU%w0oB;3vjVcROKFV(a_W=jR7uYuE0n8A zXK!~$c8I`t7df;SiZ+K-(Z2HLA1q=ha;PZu(6U0Q+jkR13jot?B0S40DOf>a31UG~ z+WtW_pJ!*~n0v(mkiasa;`%mQA~^rHwn|Fv`8st zAY39Ya>g&Oj+k0**9FCtU9Qx^Uiya6NX+xHK|}Rlv`!CVj8H!nt3&Y%2z8(q3M@7z z)qeagdRUXm;Fc_DPvm3G`#XzEVT`{7j(CSGY36Us_^lXh(p zEgHN~c0gI>gyMr5K>G;Jw?1~Q*o(!`rm1KPTyo8}uEuF}wLU?S z^NAtq$;2N^qwee>c>&;^Ymn5jC)VKne1 zaLL3bG&`&%bJYCqouY9BsAPvT*vGqQ%A;K-gu!lRR}O zr+6&SEmvq(#jXxv|07ms0eVp(;I~VLoN#CIAPlWaqjp@2>erSXSd$N*)ASr`?Mj9h z>qK!J-^%px>TP4g5BRn*G%?)FHY-HfOUcPNYfro@lsvr4xh2ffeJx{L69w~;kO1$< zr*)rN?RML*JfJ=JN~u21+rqJqXS=;CsKDVYHs+{hrR$`MfZ#KriIu?#>#7ZvrhL{_ zWgUeZub}x^$71-1a3^(r4OjETRM?sX#^x+bhI^@fQa8LjS30J#XX2pgAdHv$@%5VP zsC2a1XzHdbEVwg9Ih~|QN=zW;cwe(6Bkq!~Xq&1mW#+j!*;c6hupmm_Zp{=SF7~(h~>Asz9ishERm`tS+d@#(#E>C$5h3#;%3cU`V!)8#0zgK4L zsZcYgkjh74Q6M?p)b(K3?;)b6&paEK9NF#$mr*eFq?JyKSI^T_#+W2=hzb&LSxGIy zs~5OWF%qPN@W(t>5q`BsMK2i(?Vz@~LynNOCOdM-_E#?|`;hdMA&n@8VQ4!zvw}l# zC*IxV!xD0JZ<=Nqf;~qeak*ZXUNczRN~JmU5wJL|`JLx+i?Q~mfRMZ4{7O2*ae4DhjJ~k&WZf_x(<46iR?QZo!(WK6C^SMRK zBdk#d`C0lOTuEb+))Cg?r#bC4SO7co9Q8w5hR<%fg(sw*yXcfu<^Q{uTXFC;H}kNf z+>_NM;(!9r#ND-%E~3velh)gJ*ak!JdJNadL@enS<~x?~ck8uu0ucdCa%)s^q*b2# zDae4_5Q}d{Z?mPwn-LF!*31rqhEc@q#`@91*UN({%&FLG=UVwChdj@TW`i>5`J;jjkDo}_RGxW?&I z9NCNM3ZP|CA&c+^_Aa6@dTN*|*YTXE3ZAC!oH|uVy|`MwvQuqIixZ3!CzAZaeOS9tX-nwnRQR&IBW zU8CoeLI!CUUV_$rfbT4UnUx+&Jm7FsnY6I}+k&gqw9K8l1W?F(MpeZ}vi1EO?POgx z>gZU_LU+B@L&$ck--Ab{30*5+`p#}#l#fRmj3UOCPZ2OB!SAbNX7L%-YJaQU8i4P$ zTb(GriZ~5q$s#cwx*SQ_@xN;qW&CIyR*Unm4zB}v1xghCuXzowqRM=6~S#y zw0sCcXPC`+&sLy$H)=>UoA_4-N$e^>FjLQD~L!B@jZ+HdO&8C4~UZH`q3U zcY8>cGI0*9UTZem6vuMQ=61UcjNla{##WJ=2&zdpk!1^dLB~u~6&9ND_Ir`WAF0P? zLFh)2CVVNm&FMud3_;4BdhfDT5H4$g8>FlvEMhK;G6-yk`l^0Zmpm$BXdz^l<&bR` zn-{9E;DZs=DQF}bOLef~Bz^!#l}AwvnwDb~5tl#@WYH}#JOHjGao2{X3G(TnGH+Ip zE8e(FcNs^r#lpB%aaHCOQ^^=xShzLj`3+8o7S2^n$}t8H-j0989oM{ztv88@vdAtJ zK#lc5=4uOA>X6h#YFBXG5g2q%jdN;P%-q72&!Tq@>T_%59#WzyCUFHx^V^$vD>kl< zEm-jIut1HvX}($(T-BiQvjj{DsfUtgiqsKMOy<3wP?UK5znnIb&zmDQr|&Za5_9Qb zTijX3s9^mpvth5XIo^&E#Z#WyIhWB`p5p@dAHYfi!;v_C+!wO$6!rEz;5rtG`sTB- z@?wQnEJDutB@0rgH)g^pW}6t_Q#WFT+a@YS&6sAeM~2+R#KgI%nMBgUhNPO-9VqHR zEq1AC4dz46S2diJrKNzFAa2=@YJJ;L8qNtUL zkI5k`i|y3U*(_suXk%efEHSa{#jznS zP#Tdon}&QQ6qFLQ5Hs^;NNhkNTd9_4HNtS;IoIa|W!NduO+1*?JcTkw)$(XMnoQ~oQf0AG20=H0*y8_*EVyp0M>CX7Np{mdj-A~fIp_$t!t;{V{I!l z9V2U8l$M2Ca65^O!6oj0YUPfIecw4!Z3O}Pkk2Vam~Hb-Gf519S+rk$`|9{g!BAPe zl6J)IXQXF(>Ae&WiT}gdK;X9vSEYMBbpakM$w_5Oso{_;07?mSaK

W8qD?tb=c!Mi)?c2=E#?v8TdNWKRdeIp^>QV#WJRLWQ@8_lj;SEwFmYDFxu zkc&fVC@fIVjH6D$ll~_dBL8V0EhYJzBY6VRJ!8Skh1A_*m|Q6(8nuzmaxCLNg1Iij#)jFQx%H@!3A^^#41j8y zl^j5c-=!!{FuLdfnM%}9NUW`;UURKQiH~?Q-@1#r>23xf>L9BD__*ekipMT((DrX& zitne`x>ld-WJIkXuE6d%7N_t^aS3Av%gcjaE{Haa|Kf5ylm^URZ9FnDz1MK!R<8*c z)0zksyc6Uqhq|z78ZZHwd$cUm_Gu2Z%}c{koRfKo)p#ho3n}s=*DiyCCqS8-s(u8I zihGTafrjc3kq^P9t%8C*o;J_@$t2~sKj^k-Rv$ym3sC`CrEbgEewz>v&LUud=cX+v ze~6OP#?hpxPI#FjZU6zWN;5@Ige&DORpsqaETGJJ-6fDCMC#Q>uikd$+coJ&%Vx>d zhNdrS`(ddH!UHBSS;h&X0%wvrH_OcGh!B91Yn(NvTHGAKA%wP&Ld!m?C)Zy=YJ3ljVgI%KrAr>_Cp!P;bFe!B|uTE0@v0VThp3^fGA| zmq~#mit#(hd&*A4bM9LB3kIlx-Hq)Y_IG=`LkOh5jmx{cY7bzBvnYzp;S$KAn745( z%84}!IyXF?$e%FEtk1?VV5UGZt;xqY`4JgFBY}Gtx3Gp6x3GpRc!xJ)W{0a7j;*F* z?^{BqEj0Z6v%K~;SM!pP!~qtAA$uKy0}fS^abg*Zl9{nLG^u442{!D@g4wpYjjW!l zx8KgWEckG_EF;3E1v@P<^T!)5L~p!&EJ`VpB1Hb4M0;b3Y3ZqN_=r5`& zb%6a8*E3z9{xoH!fWUVdgd^(M3Ig}q)D;Y!7AT>RUT}=kGQ%ih@LR}w?%s(v8V3Nd zk+rr4w>Fjy;q6p63eoYG5VU)lJWuN_UUFP0&od}TVA>_~@J|$%K!qi;%l#_AV;szP zawq}39{Kq#5WcM%f^;boI=?V9QG{^8&J-e?-0o6^6WA2KSLjSJhb_|7z_?xdXjuZ~m&P)BQP^Z97n+x-?2Wr^?+}(GP(S{3&PUDf zIu%65WSzY$TsZ@FXa7>SH^@cMKnn&;i%M;eAy1HtV1Spf3uw%?C}3%p)r+@qIzY4$ zW$FYN2O-L2OL1K}Sma3HY7MRlgzBvPafs?Dhucsv1$$B{?t;WgIzX;4GUa;f?JinC zqW3v0MNp*Gp~C8Qd-V-MzObXG-E|Ik&j+w#cZ@10paHD-en9gEQnhSbzV!XU@8HCE1nU$u>;w^?~nf5XT1}RWvg`#;%ao00c z>4SP8N5LHDuq}yV^B#7OlnS_g%<5%LztBD9QV;u(wue(?^0YUFt{|$rmmgyN7{*A7 z@|;B_+U%GlHzkwGc*c>eCR$ms6oCW4#@=jh)H81%$)?KVVEwHI+_wT+$UB#P8sJ@i zkv?gfK}nQDs1z?!CJmU2lM=E5bzG>%JR(BJs^amv9YF6;+l2g;0UlleW8f%8*wrtR}>ps@3MBjNlRB!n|l9s#&*p*=Nk-2E-owBCPV8PV1fv;Ap zx8E*8N^CI3)$NQ-l#CJoVkxi#hE%EPpCDGBC`-k|vULm;0&Ndc5p5L+!Ej>LdZD@* zXt^LBvxiI?&gZ}j(%@3?P(;{Sk(v>}UWLI$t|~ycg-)S$s#C2-S>eo(weGgNb)Zuh z>=+C0f)-1R06teHu(9jMIc~Bk{elohLib`ienz2cP!gi0LyZybap62H$jFb>ZOqN5 z=w04#)Hl~LX^lF-FbcyO3)4`-I_7kRfHN)708auGq#W8pnuQdp6CPZeB+38d8t^Lo zSZXOPqM?W*V;Zp7nngnWt%aTWL5AsiXMjM%$07woHJ=kk8DW0((ViL<5JSO!%gJE~ z5s!sR5f~7gQhi*65Ntmr2U!Kn5i0O;ze4~ku}Y2{2F&iX>M_!(9Bow|&q)d)rD(vxkFqH#3Wh$H3kaaSYuq>}0ve3r}m$KLYyvY|L@XRx%VNry!j4@Dv zfr1lztw>}cYzz>hv;m5^X@o)SAb#7B5x1?`yHO-?iX!w} zmiD|Vu(Jvl3~vUEcnYXR9)|EQHNsi&vj&mnAdK?}7rdmlmU4JuHOg~@GH+P0;!du@ zhNyNGbzl=0{RO41m94oMEuF-6Y(DS8Ak0DBIbnHv)3E8n|Hl_20Y zx1IsT%ph_M=C67?ie6@K!4BM*`yr$FBDC38QFQdZk?J8?N0g?kk=4LKu{d z`LG^|$~CX$q*m+V&70{f+^mT5+GRVc$#Bx8Z!GT8WO{U4Pk3{@!Y*@|O~M_vvc&cD zN{_0#_sAV{6a|Rt*U+p*g-i|6UW{Bl0EHVToJJ!TS8~*S3C@2vnj_syk`+3aYXi7T z>|slqs}h1{Dq7j~vkYp4T~pugUE>pnG+_0&g3`Qjy5-YHQ*;A>?`u?NOs|8;4(APJ zdC)N%J`C5^txus@v>yn*=O;vEt&9+@+0*Ww3yxb@Ef9K?HB+AW=(zpE!JQw6-`4aFYb{vPDPE3vUJe^i&UqPuq>(tS|NXt`H3(yArp#D%*)J&n4N-O<5`A1dJWx{ zR1vVz1^eA$PeLaCLXU#wcUqM3@Ecl)cjm~q{31;#8GUgk1Mznn4(6PR98{yS3~w{; zd&A}f3uDUZXVs9VaexXO>?GT2gTJ*{X8Ky3<*8E#1RExSl`Fddtb;kipvRmbkr>n`DfZIQayFCcX*?Hz ziI6SDuAFvv13r3d>^GZM6cBDM#E}?-7X(n){O)+G54EznIm!}_rc;qc(6le1M;z24 zR0$pxV(P_NPqs?FT3i_O>+J&FskJQYwK$7a(KqvrIxFsb@ocG`BZtG1s15;Qj=;s**0gTE7-eUoZO^TvG*Mn8Q$TlBF#s) zkrT*{O3huG1|(M)5HC9HZf>31wII+D&ru9Im?d@3ANS*ewRN(9hMB{$yXk`_v!Htk z9FEa03>`y)8D;B~SL8AMUd^mh#;`Cvy6Ld{tKo%BXrg!-vmo$n*;e!P7g!1tMIwpv z=3*}<-Knk&64wDirIB&cmb}ZXHp40%>(tFq=ZFQP;H-Q+6-3$J2v-uSP_Tn)Y>26r ztKez0AB~Q&DC^ZyTp}{qRxlh=dXPOKCC?2}2IN58&iCUZ1TD=%Q_w-fYhVp^5)#5u zRaDfhMD)7;)liiP#vx*!k;u+iS7>id0fif9nb9)}k7KnAOW`$5z!wh=7xl|V35W5r z76XeWK0KVDeukU?`sIQCoT66{(M=eWqjU#gB3+0WoAEu5T%^5M5Nsqz&bc^O#ZEVhe43Y(725I)Lga zc6FE?2hAap$4X|KCNvOoB?DPcLM;MTmh_hH%l1+In-YP>HAbRkuyTQNe`KcNODGj*Za*Tm+Fbwd5s-t0)+@U zQtuovkxw<5roB8W^oxf>(tBuXZ32~*KuzAMAi0n#r+K-(e!MDoZYhLRGDdQx)9jd2 z5U&^r%qe(>sPW<-#)KD7-mrVYvX@q>`^HrBb#B;*}x={=YT6>Vy&^xY&N*KG)wXN8(~aLYD?^? zP69?2dQ({Y$~ERuW*6?3y^Ow~mK`TjbiedFUxu1!rm-wg#Vddw6jwjz^MoRHAg-j^ zQb$>Ju%9xND|1t1*(@MIaAcQ4n3DpN-a00PuGm9E+l#r)D7fEM&5IBMndKDlV#KEg ziT6$<4B?=yEM~x|{n{sG#tJqCH&BPe9x3${n4!F9c0AtWu*B$LJ#&%2EKWjjmB~V7 zktbouz~=#+Kwbf@>u2F`nFx+j;zqX0gKarkS6fKYyoOpk zug6Zx!9?3xppZD1VKD4L_EYYSg~ZYlWmcCCa~9top;`z<)ZCaZ8ck<{W6~Ff`GMG* ztc2aDT)YzaJS%B^giE$5-E^}97rU-yp6X2=W!y)THingC4su|SR||ga+U<+m+@whiE+W((w@Cu1d8(y144yGQeaF(VSRzQI18F$g0G<+==Z+y-c&*z>>y1XU-*>zc{S!87$kLbK z+r|4@c*Z3lQ_$o{zb0(^49Bh^jYhiAKxA>tM=H6BUQ!wd#>Kg-|)J{*+L z0A&aVd|+^i!>nBkw%LVVuzqWr?aba*cw7cDvL=+FLQ;8=Hc{TtP@NU=mKr2LngOSj z<3u2ISL$0*B}tRfV%V2CC<-M{^d{Dp%v#Nj)rdgs`SDE_U6pai%qc_`E*pNBo#UfW zP;7zCCh8Tosl)>!@yEqKm37OSk{RGt(`5uls-M=i9FqcYh@}i_Hi8`3fiBI9azPK6 zGy@`Mw@)NQsSKvT*>D@MJ_4b0O2BM?m5rN+?M~ zvE{4?OLMSUmoVp=9%mu0RyZz8xO-I%*p?QbEAooehT_ii8u2v5Ox_#<@VIs(t=%lt z4hx*Y91ja+x}CoJ7^%T|9nd94&+IrIXX8>w)C>>I%Xq#UiNWJ6G2D<4Qt1Xo(WA#z`UGZ9{% z9m_+dWnlw{WQ}cWuKq=WMfr7cv^QY=T-$dlCyqQRUEWb*JuIt>)FvrejH!Z5TWf8! z28vPHjxwEK0Sv&)dPFTjNKyQcZcLAlE97e$T7D2q3{(OibT2ole^I8DP@+$fUpTlm zBPXHFQ-TixNFzt?=q00;4U`N>2}A+dX0_t=c6kow+(%$X5_XC?gyXm_jnpwC>f5Ck z^%XsP!QCEeXfxR}!VebZyTHqhVrv;L>MHfjPICJ%KBb7IC{n!qGI}-uEgGpft?22jJHYMgF|=uym6qz^Le) z1)pW<z(x!Ma4U$X_J9O9@rRlf$eRVfVH?ZxfkCy(y%MalqfH}ImaF$uk00= zXYZ8}w~HhmA@oXD(u6$(WeWlwI9mtRnFg1-+kIfVeRRRl#HO;004s8uw6gRP8YJ{U z6-x~(4gkq){$l9Y7YY5P#+E<^h|){gtQI>DQ61(8&WhQdgSxh;Ivp~}3EkbLLhao_ z;$Z+#O%dLjp{@>GLyxu{#FwbP=O zr(uIpxM7+rpcdyAiYuU&Dc+c7ho=P7A~AYYeT(%PWOetOy}>DFMWR=YW`JcCD0&8V zj{xl8trElRIZVU(_$R?7MmpBjFT)KgC>K@-VxBD5t8E0l1}bEHjc zeRrQcoor_9=(S+|6zhymlEaN8-Ig<5`3nk-BrfjiSRG{tfWeS*h~l%%xxO%$)6J!b z%(CLyhxdg+7vm-ooEw&A0JR)T$sws=i!socD?7B8Ocg8iO(n|U^Tg#>C~iYjYIj=A zEBs=tY!FQ73{NWoM6I;A&920CRMZJv7=I6}XMG)RX>edITg|PwQH1NkEI)MCZjGTG zG;>jJ!hTwyK>+3uXkfuV94v@F?Gjf9Hh_qlHY&_H9Az?Ykf8~Bex?YyRo0XpRg$t3 zM$3S*@|Y%1eG9EkG$CnG8-k5(s^DBnoy@SDnaSR)>@z$SB%=5D|9PrOW_&^Z7IcUx zOEMr^XDN^4SP0tRGga0~k5L~X;?$lt8$cY@D)>5fu(?H$rj4ppP`TGA+J$XL4&;GI znWYpvZoyRyAn#E0IYO7{QDa;(nSYhpVrhZhYoeZ60|ga3(nA`uFh+!Gd2P(!*~RlU zn!BDvLHYAv2pz@sdf3{sjNGzs%;6-GU*VC)Y#(igz*qS=PLxJf)hoaWB%mmS!0WcMGSKQx&X~-fg#e^4fYYOg1lNneYEt^7;$9&urv1<8AZUcUgx(j=vqt zvkOuixT_r)4&2b%)-DE~<2VLOew&3!=jsJ3OPoBa9Uu|#ECP`GTU?%j5aeOkZOe=K zWX9ww_lpt~8V>RtWrfz!$wK)JZR4KWpXi>gi>M+&nE%mqse|&}wFeM5x2zSPFCT*)jbzkX8`D@E zrof47tOeQ1D@g1$qU$wRTbpa+^vkmB6S}K}^iu{L$5*Qg3lUi5u0jQJ`E)7${3;aP1ew|Js}Da$pk>8a+0#1l<*=dkC7+ z*p3dP#pBZl0;jSo1D@8$(T3AdcGEY?%2U>3WRYyLrXdrsLFxvM7z;+K$wvKx{xB<< z=kYWo)|yJ$t0U%Wk$s4*8o;Hj{xWS>OB$Of;u5RZT3WhqhgjiIC=+;Ky~Xkb-{k|D zyc)_`%1^ju_OLpKx2Ir22oR|~UuHqn6SED_Jr#tiaWgAC#?|#+r_ye&vvUfwHf+{p z?jdDSQ)G}{piXZj0TC?6z1!B2;xj+TuCeM7^u|TnCh)la-AB2%CRVz*yqi9W_?(Cz zquq#?c0nK9hX%iPA2!|{gVZ_NsKJvA&Hmz^dBh-U?^zQ>&wW-l2{PTdzJog(nvgHT+| zb$(aIYzNa3v7Qz{8~~Pc%||&V3zW#AP%hZgoSt5Q)E97usr;X?2!H{%clAVjjv5y& zPHbM(SRmo1zktNI^v!C=}90Ye?QrEL%k-zn~?u%9;mu8&uXtkbAi_fXMI+6rEkz?fp7;^27KqKj z`w#e`rF^n183#dxs9<10gd(;x2Qn9)ZJley@bg_m`i}V_ec3{UsXNE14>(HNfbDlG z>;2|{TS3MkYq^BaDT$TRJh`rCkO45Mh}JzeM6M&s)mlBjA*Bf+s#aJaQyL}XlBvE9UOrmCT z0HI%|aaZv%AvUPIN#wKGgGhogc=29=b=D4le~w0*t^8( zTO{cVh&C%&)q;kKs)?JN&hLY*#E|1&E`s^qor3=g^DR3CF-39E+sgG)-$PSAQ_}C_ z`+=yo>%BFq4(Ry|C$J{OYzkCy%Tl$bXjp0!zA>D|bbnu*XS5F*qK2f@cemF>p&&G# zTeQ-=Snne#Oq)dv^4HWguSWJXo_ib$5JzGNPNpuA5%1~rM~HmEgfVYrX-=B)LjPo5 zFAp-j%}|@2^KBUk_qSG*AA@oecbZa#R8u>!x3NObUbUu|lq7gc0wVyXb`Q15^;(nG zgZ8cg48%;D5Z8;(I75hs0OzuG3yV6&%rHtLIh~x+KhNR+@Pt_i4=L8>cnMzyfdUza z(6xyNDUp9Uhbqb~l;oy*%0s<8Nbq2@WyRSQ8VuD<{NUXD0wsX1x#rw zOsNv?p*@L#r2QBpnpqL$on;C8a>O89iLT>sh8V)K<4t7$wZ#*EnX0+>^9ZBF`TG>A%~bGWE*+;ocRCikYRXy^%hn1M zb5$&^L57*k7azi&y}(Wd^wyQG@s!+;NXP9C8aSmJok4e9OE6Em8%1AZH5fAys!s7i zBH|e%W@vtUYeiOADG8gF{q}hU#uVvtEtxfz33o0405a}Sb|>bM%j`On&NRjG10}S4a1tGM|JMRfvmQze}Wo~M)WqZ6cS}PHPpvR!;0X;n5buJ zel@4rY1zxi$k!~88wQVs2p>TGI(a~>?1Nd#SCp=9YIAle4hW;V=5SN?x7yI0(K9X@ zH78k}SHIcu+~{soW>UH$&u^m6==wJo{n{s<8E06{1k?u3V2htT}8G9Gl zL9N2|=`EmWmWz$$$y7oEs~De$!N7(H`p|)WH&rs&B2B|Ev$o>^4dCt5N-QLg^Heg; zO|nZlZpSs(8{7IO*$EslHO;-4jIDkEDZ=IPv!lH%V++%rZsmIb4o!`}foO+hx}GE` zkK&RsuUQLH(=;t@h;Po+h{-HK=N2fd711Rq-4A|TP&PtID~n6U>1|S~6o-1r_z7yC~?doYq`|8B!Fp=A<-`*B)L3izU>8G^|}} zuHx9p3ilqNgw38#r;ROFuRK!OwK)o1ad3?_kH8;D_@82u3K%G0h4CS0BgVX-?XnLM z;rDVbk8DO_*NaeRR-L@&xmjOVTorwG3StV8+XJ%%Rh-HxH3d*4CHtsyg1(Rl7G{vp zg`-)4wl6@3SF6>Tgst25Dodx3eO{qcQiVrAWXRm9q|4%U$2r5A$MjTN%w>poTSa&f zQU+j%(*pc_6Tm{8tX*KCuv5_>no6g&$>kfk7};90(dxj9z*zX+o`bp zrt>rFW0v61)_HNRj=6di>nH^Ikx6Z;d!eHYHSbQ4mCwz=z{JGE1z;&g_tl(Du66OAm-$V{2Q%rmUnj1XwMgXUF438DX%E_^`mv-H*xfou6o zP0K5i40yqwV(%D5>B7TsAWe7b97;gh8Tr2||NU|dzZSY_uCv@DoX~V< z<#1mrCxWVSMNY4**LuNx|K5r7LFXL9zM+}VpQwtKo!am;F#X_ z)}Vi=v9(n>yxs2|Zf!Q&+iT6kS5F*Ek1ZT*w>G!09^Ba6KHRwNw!_u=!>d#}K6j>k zQ8YI47RN*^VE<)P=I2Rcj?RQOnj*P5%_8@Ws5{usXTs24oE z)gQDgcv*<|_14CrOBKS_DW)`)kQI#hv8i%`B)U=a82pV3q(aB|gE^+Z1edS`bOv=L z#`m<#_%{GSHz+TFIyxeWsgFUrD~;fgw`=wUbb)$%qsza{(w+2A`i4L%{F!^yL8HO9 zc0OG?iG%0qZgkE3H|yJ*4f;l3hJH?wgH1qBh#y2Oq5dkDccx=_Zs70RjRF1!)k#eQ zH-o2Ew_EMO!PX{a%&*~!IO_`NG^NwilrpanimiW9DImToU5*O_(KWBo>{N&%bXqDo zotsYK_?~8kX+thRbIi5(8n`WpvO=G&?y$W;<9Mt}mc{56mlkUM${H@%LIW+GXFLu) zN~J4KheI@1_!{TY2lx4_An2Y6m>#WDAK<@qbLbYxTBD3bJ#Bl?f{W!E&Z7B;irHvx z(X_}?;%YdSsZ9qR9LrncKpMe%-{PwMt!4uwG!@X3`8#@VIl#TK1cOcdm8Q}TOurz) zk~ccY^X&e_0X@2&hToH~n=T-)a*$&_+@CmTUTrq;Mkw2i>EuVh)*m!G6a(4C^5GHb zBx=i!Ph==|d)J_n^t;==27U8a&!|*xs64$w|8Dpf_w#4v`pQ3f=JoG-)-T>vx#1@+ z*w9ZT*Z)-aY_dKm~!=f9RyZ*`R{_}N}-z_D9^DB{%kVcl4urbaV1) zJ$g~{M|$+q+Mfo?2f8>baV1rJ$g~Htw%3SzSo`i58cs6^yuc~cl78*$>;Rw zrO8X)X!n?RM>RdVIk~JyFG}8_M=wo2=+66?JMZ`0dHdcZ*LzX&Vm;cQRNc`TJ-Rt* zx%0k7k6xPmLwDXs+=3ZRpX9lDE2VKd479P5z}Gb&^w$ z$W?AjF1e%c)}y1zC-msk*Co$gl@s5&FL|FH-je(aJ$hnaa;_oY|Je=6?dx**{(Z^s z>R~l`&V~%WI$77Fhm()%(YIZfd`h=eHTkR_y*gQH$xj|mKA=ZOlPC4)z59|U-Yj2# zP4a#{T2B5-k6xa<=(2o!DtTCs4kmBcqvhn+_2|CjtJ`wkAMQ)Ov?GW2B@gS-spNa~ zXeIeWJ^K1&ZPRZ2PCfef*Cl`6wfh~}lA~89Z_uN!PQFQxZcM&Qk6x5~NRJLBzokdt zcU|(AkIIktCtuu?qq*di9^IIn*Q4d+f6}A<$%pi4DXH}37oSd&f4O5nu3V9$8^`xhg-|pS;~2eZM>UF?aOO_2?7(lDA#6pS;^0eL#;MPOg7U zzI|=-dOdpUb;%=NZ$Ihj(Zk87^ys1F(Tz?7xd`Xn|%9q$(!`(<;gd>v7ghUJCe$`$a&9Ao~uXulUwxY zc=Culdbb|clHby!hm#X;m*2i5d7U1eOukEx7Ls4mqdSu8-y!GSoZPBMhm+Uo(MIxd zJvy5Fg&uub^7L=DE8nU|nDs;7CWGgb$MooI@^L-7KY7+W<=bP)J$kf1c~Fm9$;b8R zxyi5T(ROnF+vOL>lW*3e+mfHqqYpeSdH7xO^=-*p^{ATsq#nIE`Bgpo#(l|y-ytVn zPJUL8_9wrhN88D(zEi%vIoZ^sjpWz#=;7qZciBzephsX6KmXk_cz1Hc-<6}E-j{q# z4-Y4QtVch;FZqeTC*R{Kj(m?C?oaO4qsz%Za$`TEM;pn_-z(=GPu`?Qw(DDS4+J9Zh~#kG?Lce4l*#^5o@u^xWj69(_adlX`SK`BOcrB@5p#zj!$L zJ9_kzCsD)7rsZ%t0w35=y}Pi z9)WwgZ~uWFy?tMD@CW55FP4wO|L()+^_BnUbK#fIz`#Cy^UkNqHwW~DFT-ci`7grw zb(Nbc|LTOEs2>M(ymB%>KCk0<1>=ht-&c8IW$Sn4e0o0m_Zs|vU**dySAT>5bpLq^ zj_AHm1lOT$xv%oP%2sgxk7B&&`G1nn-(UISAI1S6%jX~R@&3v)gYmD#gYB#AuY5@` zK5Bk0@cGZFocg3(*Z*(P^SqH?{L3mg>GkdWExyk4D^CRPb&bbgQ2CC3YiG*myDIq@_rq6EK0|JWyEzpqvyK~rRO)ER(#(p z7^nMQdPGjVP0#+$e@n-mg`nft61k4k19bdT7%zIBXFgrd zcTz~tza8U6=YL4gcWR=Z|5+V(R*a6{3&ug~<*Y9qe~*qk$*<#I`NeX+6IeR_Ef_C) zo?q4ToldCd-|laiCCs+-dYW{z)BoYN(F?Hyw96ijKeTOXd2`BGd6t>$ua~b^I%D zl=GeapyQhlR4NBBKb0qSKtJx(^POg> zb2{G9ac8gV_`kw<(YpMFp6@I?J^%8v<@#ngya0TS{{4!MI}KijEBE8#^gK?v((w=I z_=lg60eglQgQ458p2{DmFizKTID&rph7sp~K+kvBfu8>xI_}h99bbHoT;B zjq@__wb;+}@27ZNj{X0BRp1L2$3KkmqILOAJ>S{>dj9{bX^6RT# zDED>9j-LNRI_~TZ9seaA59Qs#uaxVA{O5fbFPgVM88LqHtK>T2eIL9q{Jj`|3D*6lCuIQQoBw_EfLte}+plcY(s74n>iB=t zafeRm_yaF3p0^*tIL(hkoAmtGysY^A_hFpQcV?cR|G$qo|3B*aryh|LZ`1S7zFe;3 zAUPfXyBObp-Los_e^3YX-e8OAp=V~e%)8geVr+%(%jZPkX?#y?+&OgI= z(R|)?t6V3ftK&NE&>p?cx9hlr|8)E}b=;w~I=%tIqxW@yj*fqijyvc<$DjVn;^%w_ z<8+TK)dVb@OT*qL~ z8tvmh(e>=|?bLbl)#OBIk#8!QaC8e$0pL`1$G=m@zy1jsIHu!&spAd;*YRh~$#vehDgz*6{`VRkcg_JF|A3B% z{N(@8ap&RD^Pe#<*LUcej=w|49SE-DKdR#n64Z5hXhE*yP%wnwa@6d^E2uB zJ=hmC|L;8^17I)wZ{et1-~0xqzr9Vz9iFS_{~pHo>#_gwHJI?C@sk**ec?bl{n6jk z@o;@Vs^j-OEGI(j^1o*vm+LsEhK}Ec@uK_QrRRrq^#eNYkbAw(U+B0)sC9e=^Hp^H zAI3Pnm-ET#`F8^UDmwr5BgTIk<8+;n4lB3IxI?)0`l*gP2a}F}M8_SjuH%2ADfI=6sc=f`#2f$ci} zD?0A{!8(5Ubn*PW731{24)E9W|EZ2UU|h$adAFSJ0C*igrQ?U5kb(Pk{5?AEyyiOo z(lc@$=MmTOCv@C-7M~_xJoldB=f4@_^!zTSK(F)Ii1UAm$AKqczUg0I>FrrHxlV{L zZDG7H5w=q}TsJ9S`k=-_!9BCv3b*t`p)U|60dG9Nx6j1&*``eCDHSL zQ^!NT^ulv;9p~ZK^Xoe9f&_H@?K^_t|()25!{x z|DfYiI4*OUHj1<3;m%{cGj=p`LcDj)%VGZ^St1`CktCO#fb_@{z*z=zU#OhJ0O_ zd#L!nZ^Ag8Z($>+lx}}o$6p@kXpkAN!LK;8yhz!82=6{zkUi7{n(eqs} zfu8?=>Ud}uyb{kr?|T$-oBsXv7s=3Lj4g?@R<>t);p9qIT(I_`ok zbe#Nube(Wt{IQO^=pH@)_#5Q>&~E)lIv(OG``%bQKRXzw`?}~xz5XBRc<8@-@J+?n zdGmsr02g!$6W-Oj{k{{yVxonfAEpw_x&Ws zi|FSCbvgeMzNddiZygL9uFLtMeR^5PU38OP=PNek{E%$r>8((~Vl@dJA7 ze_Ye^U4*KB`JXUeG(TT_N$wlQUG#L^#hvMO{x2POv1~g2P)n{8%KiTt<3;!VuX?_V zuGQ;2_-46IsL#Ab$6dgpp8qpC9^zEbxh&Ul;a__G-8vrP9`DidP#^e99d{wEdY#3# zT;Ij|>UdwrUAU``|18Ff=HbSUT*pOh>iO@}aTlVcZ3CP0#;j9d}{s zI{u$@{1cDJ!2SE=bG|Frcd^cT{&!&ffFAoFKcwe>v&zB4`sEE?+E#2>z2$6b)Vp8wlA{@strz)>Av>50Ah$nVI2 z*_$nl7d_8MFivtI^xswcG9KdXAJuUe)vovbjE=k5bshh3e7yGN{-@9FW z{&!%U&UaDDdj5YIasIg-Ip4*->iOS<@uGS7K|S9^V(a<;OvhcUwvJa;8ofdFP#1|R z_0<-)b;3Y@u)V&1sDTWhUULJriBX~$l~$1KvWYY?uDi9-MkZ7{T|;ITx{;x(aHES} zCQUS4Idr7>43rnzY@sz?88iP>B*XZrc3kh} z1RkVGwF%}?PJ>R^pvUY|2R}R$n!#9^yTv!xwEFhsKk1bJ$u;^(dUpBr{WbJfy(gt| zsrNqcnzZ&R9emY2%jkvkx(80*zj&sS-h2MS-KWo|7tWqtsiF1C>ATNcmH(h3k``vk zMu+=|78HbtNsUF-kTcaq=^cV@G&{8#TG3=>vm+8_Pc-UV^#-!8YCCt`dw%imGY>tK z&L3JhG*{Kk{(PaS!dJCoG^1)S;pNf0uTAM%=rV%*W2pnrRj4UJN^YFa9hy6Ili01R&EPTo0u{5Wd5;GVJJigz2iB8}tL6n=@1kB+dI?dL8`MO* zNbMp}Jeq@WUmmZbdem)3RzA8w?>V2VX|wnc>i4eBB!`nR3H_lqEHNEndU}Q8YS@&tqo{4(6e)S^g5v51F9%s4QsXH zjT%-D7=0<~sv6W-mq)8fZK+Z79dku0kHzJd@{3e;4F()N?qOrrSb79Mokf|1qpOh7 zn~sRJQkj)EE25N|RVwqB+A-ujRih-8Pt_0+M56P$p~{vnDBURCe?pNOD}$|e(Mt)9 zjV2=A1x(-I+~&}9V7Wi%=L_(&t#iq4{P60qp;mORnS)U`tb-~ zk8X?s-J*4lWCiWnP`fB!cE>fk8YU9VeWou_D*1F3dyiZ3UlIXa%TN~x53OC*7N_6L z+?@{^7qRIoY8>V(|13hzsz9rxO)8zGJ9d%{Pekg^lKwPU+gaCDy40+%K_GEmC3>aL z$BMm9a7<4n?ozBMjNHNT1=BNDV{$_kX8i))n2Bbv%W5o>hG_^|lIcXQp8L!sJF^p# z#-L#k7;iyp6_;LWwztp|>wE_-)X&AR#mRd$PQMH31?K7lYw{b+wAb@Sy0kuJh2X$( zP~MGeAz@}uBrnsV7|H(p^9>PT#$lRu9e76ETl_&}$5!4B7Oz2*~6p_kYNX>kKc+ zGwUjBURz$hbFO|b9xwlc*;aic^%3pOa{M0szW~Es>D9Ne`~bGVv(V#?N@LS(1rM8< zEa|Uyd3m|?bKV;&=1$94(LUekdFa$^BBOf z+>9s%?;(kd)L72Uku)>12&fcl0+X>B|@(6geW6S0xg;1+Ro^P2r<|5C8?(`Mj0@e`SK{C>5ReNa&2)4PVu*3 zp3-Ap+4xtm%FL_LqX=9q)9(taYDeAFX$8IpCIZ4rzm}zSsbuYQ1E)fjy%bc53y}4N z*BZ4lP>kHl5a%y@&+=M-?SW(Iz0^S4wLhMN0wX-KwYdYeY7M^EjcqDjI?N}*5TXpq zh*$G8)*&9~GeBWNWhajGjpCKcZw?g$pkYd9?jX#7m8!g+7bh7-t--Dpfu#lw%|kKSxKSb-dmo$)wS>yglCTEabp+i! zFv11|jl}F0VIvpJl7P7d0j?5y8soy8>fR#6Je~;*>l_fZZRV*2KVU-98^8r~yB=ImCO;!4C|>sI`TXs9IQ`O;$oF@%2$OpQvA>mhb}K)PP*G zC;0(j**M{J%H6<%FCixGPA{z7%ey$j@Yhz}!*7o#3IvTANQAgLL4&g(omDOFZnPSs zv|?Y1PaS#y=A#aAGlHj~BOyzQ6be{j;831xKFVPYW`Gy)E6fWF6*oJ0DtkcXHW|&1 zjR+}Vx(*>Ck~bG(c8}OeDDJ`{(}LRWs{{_AQ84;;wlWxFegU%u6&1zG7dx02IB4hS ze>@5nmNy>IZ{u7m=J_VJ9-_EFX`s`oJRm_6o-<-+qJNPHBBoU9Kx0yA<2XNq*Cw}! zgRM1P4APSI@C>%?LX_DSLLs3dj%bjj8OAKtR+n+Lv`D>|K$6Bst8c<<;mSGtltgK)*`?P6&qwf|=M~^MM3kUcsgrxSLvttP`D|au z>=tkycW=r_tKyL#gt9cRgyZYM7&Cn3DM=+$+`$8FP+M@MUNP%PmH3z{9DP8@F?-(Q4_V z1k{c~ zR236!e00;ev`nd{@q6#SJ9HOwM30#*|-nXfQ2|UK*HK7=*+Y1^9$gb z(B)*@7&_f$Zbw_98IQ=pogCdkossFiXTnAD;stLHDaC?{MWdPvt-QG~npj4@5UAud z1>dKaT1Xf1z>wKd&uG06xD?rWb2&S2!oB6WmBft9R-0lMqM6Vxs&n<|T5H_^2Sya2 z*WI12xXh2C`1Dq$MB?#a7_X(D9}E<7^%$VKwQeV^HyY5^hJ#R4#zfH6B$CDUO2DPe zBr8C6B_hv*NVAQmzuFBU^<7mn+M=TSh>s&9z9P#jk{VUDWAQ;k*lV{nLU1$ydVy68 zy9hR~GTvqUSINS{0lB}S7Xfrg z&BX8-;>8qRE)Y|*$Fx;<(=$$4nu`s=Q@-tiQbq<)zlik(rnh&ijhc z*=*0o@D(x+iXpc0?paML>bCo}rL)T`-IX+#IwL!ztX7?ursNiCV9n->-H+2<+>@$9 zVkc&9;q34+Fwn8~0-X{?A=bctnII5~W1z&0X-r^=NW8PhW&>_`Ox+I|))#OV)ip{f zhy}ngwjowDe41VC7W}{kngzlxW|_=B&Mw7HEC=IH1nLoC-bX6oe7cBceHVc5b-HVs z<0v_vME?m3eJQE2-DgmKM(aA)}If7l70o zmoBI4$lI3h5#|Z^1vQq(Ogc`Vb2!J$-X3uJAzdRLm8K9nO!_%^@A7$2>BalcSoS!f zp`r5z!9VAA^}`&QB#J9z{nPl6Rc8wWRK;?ijYv7+d@At4WQn&$5!a&KI3RIWe8RI5 z4N@+>KXR_ES|=B!s9-5LWyX+mzNM1@St*I;;+7@3cYEw|73z?9YyJhIlQZqeESihy z814izq>zH$qyA_X8oegkhI>HgkU$qz=uU#yAhrbkl8X@OT4QIm=n*lE0e_onVnc^J z=$DKQxHB5i*m-{_9(@`Kogo?_M3K|4 z^wzPs2`e*mq|Cs>!5Kk$orc9ko_WkPKY;I_zi|3WH3RWe1mKRagrct4L|MPjCy_ zey;8kO};D91cRGOGrjp@O3#WZkIuy?cnvtzk*US?X*jdhOQ^tV2dgrLEK^P1^DI$v z%5X{v^2bn01NO3hH(koEz8QRqmfm9^OGf;7&9bXk8*MdttR%1TWqXX!MfI$b-O}Mq zK-NshsUJm(E4ynM?sgy@6yLG@eiv;}i+mRG_U0^>$3VEnhh-X9wrOOfWJ)`4jwqSxXf*fX= z=8^FX8r%Kg^4{{y@%j|!&O)0Cgmo5{TSV+JOwC-V_^sV5<}wDH(n<@BWMYkC3$5}X zh?)>p5^Xz64M;aSIU~;IqtU+Q@sXMLXaK=PAnxcYP&1h(#fg>K`5E$u18n9zv`h1gI2iCCo%Fp+pD-fgJRN{KI(Ln5Pvz)Wz@VPnL| z+fy*ls&A zxXCna7GM{*QK(%^l=Gb_c!H={98nx1V10WV~h;B$8ny!?rV)7ry#}+*P}=T0LNSsIZ_&MrqNa#%vzuAEwn- zZ76~R1Q>c?mSRX+B?Rplf%yx|&{v~UZsY4a&d!4MU^UY}imVU9On0?D08NR-vUndn zB1n!r0>guZIBa89x+s9P<=aFUWiF9V8=sZu>Kw(gDGfq-q-fk-;xO*^<1ixdnog_M zR@E|KNAbo20ZJpVg-qg53P}`MJB-p-fk4G&(@JWo=4ofov|ErV=*WsG%m8mIj@QL} zjC77sv6QmTu_@;l3hkf=R0Ck~BGm=39y$o^ zqYgS3$%)K+Oj~6DYKVCgZ07Po>y(fAn$0VeN3`7Rqa4&-_ntX}mMkMska*>qv_qzX zf<`j4)j^0+7R9DbME8w0a?A_2RxF58tF49!-!ZFecCn&`5tks{Oy;GwT$ELTONP=a zez}XJRX*gyxupD}EJJGqd~K`OM3Nh-$Szv;EV$p16mFG8DlJQ2Q)wPbQ&P^JcX~!l z75lwOlW>kU!tAmr5vpX2im!D_GZY?ykmot;c|#L9yGMYTnWgDurDbB?3QtSh5EE78 z{K&Xl%(aa^wQ7;BMDdb)#9{Hdri@N=>#WS~M6eMimLTfgZ1ZAG0lQ-Qxhl>&;^jGk z(5YPYh|ps(PVbo^*0P(!Hx9Sw@-^AM!j5>%*Be~(hE}&*?X`ogH622Skb~5Ug-^d!?_a7MTD!K1 zTgd02C*SO#o-G=b=Ke_W9TcQG{Xmbl+Jnj=PLMo=!$TWg{7DD>W}|Xw(7cL2xnky_ zUYFZ~9co_EZn~G&a5ei2w`rgz=+#DZYk)?-1VZptr6;dk!;W$DdZ&fU%LNh8Q8|P- z52_xGvF7Ub2F@h0fN}Y=wYlE4eCgdhqu#{O$k#lK$R4 zUml!)eem~U@cVb_@9pzIaDMpv*W&yC{JGC{?fE~Xzqii?{rwl|XZZYej6W0qx8MJP z{@y;{O)rOk^g(lHzkfar;vd?}SLi49`zPpP_-CJAccc7m{|)CKZNV#_^Pd0XUm<7O z=lk@B_WX7q`+OYVf7bi`B_as?v(L}SpZxsvoc8=WT={k!(45-!9#Vp_&n10eyTAS3 z-v4{`_jl_B-~Ux|V4ttjAJWGQ@c;1le;;FX3%h>B2u?rsb#R9K3)lZW81{dEK!0bS zcLhJVNv~s{KN|f05hWP=wDa_5=x8qg?DIpx@3-{#_IYH?{r_q3`}dxZ>)Yp#t;yf^ zU%RjU{WCc5-~ap%$~X4;EIUy@gU6}-qW<32zw%x^Q9qxh`$0$D`q|%~#sS^met**s z%QyD~H&g8g5Qo+~D*5b*(fcW=c|I>i%!K0oX?0ROv zOJ}TgM_xK(&VpMOd1@E_;Clyb3$SHVT<#w4QiqGx( zkWc6DNw@0>=lwX(z=>|xnB%0E-t2bulF(oCH#T~6eH3}aP5eWI*mv|J_pjRJsvbN4 zJJIhT5oqBL|FGNp_@4a>xLm2R3uVD=f^H}`6#1WI%kV9L|HjtJa-xp}$~OB6;4C8k z0xVZA%cY8t6hJ=4$yI!ua^GFFh?Qyw;h(C$`Ap|u1M#~>!V|Ox&0VJ=rB^Gp$c0hWv2F4`4i*=&~^cN};N7cHEJT4HQhA)o!7a7?+t*o8OW z{sR;gWBsHJ?}B5>O+9~tK*7~eh-b=%chPammHS1(y{96t8~=~M|5J}sZhW~Y_oxq# zedz2sJa1&Dvws29Jb%JOkoK zG|KV#uVc%x%>VrT@25apP0d(kR9pa7Mg?42?87mdQ8;>#+g0Ax;Ua_L^V|5$e3a#W zEFb80)ihRAUR$SV^Qtb=+}({8)alV0RC@)PddZ`gxLt-Tk%~@RN4_(MtieCg)dW23 zKLN`)K`%A0m*3xazJpbw;d=+TU9k#xw5mL%#Wsv-YhFi;%$HHR=Q-l5tf?Aa(|CB0 zI~w96udXS!mc1FQEc;P9oi>_#@loED*sA=j#kvJ4%BTjUpzRVBZJF0!jcf^985MN7 zV)ao}4WMAqXrL}G?+PVStb8ugYMMcx3iNCk>PC`l^3*;}d1`#!2bwXl8`aCxM!#6ETZvzbGDbh3 z9w*5<3QqB@WwS17T>4(fmkQp&X{}maUzA>>w zS#c>_jD1{GzJuczHi}1>lb=CSvevEX`^`nD5Z3pBTqBV=bcCk2XtA~;^E9Mu{(siJ zthqndI{E`Y06gyoz%_d-@op5V=tIOPoQfo)B*F#_S41bmlUZuvdSF;G9ItxeN%%L> zrNrAwkYO%HzWFpb!YE9@WaKuVkx9S|OPJ&E=n$6K z>_8oBJi#<;dWW?aZ+eTlMe>%A-z)n&0&D&UhN+o6HwHY1MnwKZkq^{d<~_&cn=_sQ zLBU0*q(rsmoIi~F0MxQx6QUGwwdLgTRq!%2h+8uPre-|j-iOkfzFA8gh*mZ%sc=O{ zD(kPBrs>u$8J!x!-b3oKxU(eGKh7-(-hxx)zfG=FEb1NrH0Wqo(g z-^|M|g)B+o@kR7DO@CR_-_Xil)%5GVW3<>8%3V`6V*p;drql1MSc8j)6p&-$HAe-j4_yL4eVxmxlFints@91Q&cA=w|h5 z^(ysBTgn?htOq;jZ>aj;wPf7;B>Jbn+Vb%z_264n4-0~Ndr;B#g!ET5eYrQqvWGN1 z?p=j~0cCYs>xg?F$22{4d@lm?>fNDa#9I(n{*uyK%<~!#|7MvRS?3`uq`#=Q#tzTBtBpn6#Iylm zrza;2AOcNn0)G+x6D|3Km%bK>0{km9{RvSNxG~vf_6w6V4~oR_vp%1%+&9iQKKz_- zf^VX4l5cW*-g%n)a72I5y9(t|qQd7d_m!7N^oPBVGv&GRapmL7CzMZQnI}b=@=4{B z%PY$LEVEXW8Rr{UK5pE&@hp=PWyVbyH*wsgag$l5QqD+OaqP${U zg}}K&l&P3dF|lG&g}^x=%T!eO{U9~_rHL|rkjIaXFlDYtLEC3}{w0c|T{IbrVZiV!XA$_Mi6-;XG z>B{Qm#T@eKO~rZ2>UaU)L&=~wt;Rmgo7z;6*LaA$de@VUhXnuL9|UwYw$T@CI$JX& zLq_yx1T#);FYvjvwNOa>yF@!j@+cJ8smiiD07Ww*-U@XsAV8dljXDU%ykR=upBF5p zCACsbe_pVlW|V6FO-lS{5El&{CtjLSg?!0=crVgA0-OXPzlh1?)Am3qOb>*U#rt4F zais(hP{g02Fs%}GgI-O!?;qbLm=^P8cubnHTsG%F6dl4olHIjrmD}{#xeZM4TQaxV z$<0Grj=|8$$Xn3T8l!^+HLU<)xBHsq0bIwNB`W2~(tc zxDwN^DN;LZ!mHjIN?uiiqsAJkrC2g*SllA^X}?E0r!lgcZil;?yUyE zAljK5(RW9n6KaW@9`RO1pb(fzy|I9;;t$G!`7YCfyG30Z2;!f)S@l42vC>g$qLqxe zis}EOCjNh_CVHVJes!|2^C7(jtXO$Vm(&v$^hB4?6D=XVGoQNns~}l6H@?PjisO_@+d-NBURrP(H{})2TkF@_djeYfvs)Jk&

_7xh|{2!tDKh3sMX!;>~gDC?P=Kn`>^XQ3ve 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
f|S=^&$h?NkFQ3)}AF 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 PlU^w3#4}EKXYKz3!%bas literal 0 HcmV?d00001 diff --git a/execution.txt b/execution.txt new file mode 100644 index 0000000..0caaa33 --- /dev/null +++ b/execution.txt @@ -0,0 +1,1119 @@ +0, 14, CPU burst +14, 1, switch to kernel mode +15, 10, context saved +25, 1, find vector 5 in memory position 0x000A +26, 1, load address 0X048B into the PC +27, 40, ISR for device 5 +67, 40, ISR for device 5 +107, 40, ISR for device 5 +147, 40, ISR for device 5 +187, 40, ISR for device 5 +227, 11, ISR for device 5 +238, 1, IRET +239, 78, CPU burst +317, 1, switch to kernel mode +318, 10, context saved +328, 1, find vector 5 in memory position 0x000A +329, 1, load address 0X048B into the PC +330, 40, ISR for device 5 +370, 40, ISR for device 5 +410, 40, ISR for device 5 +450, 40, ISR for device 5 +490, 40, ISR for device 5 +530, 11, ISR for device 5 +541, 1, IRET +542, 84, CPU burst +626, 1, switch to kernel mode +627, 10, context saved +637, 1, find vector 16 in memory position 0x0020 +638, 1, load address 0X02DF into the PC +639, 40, ISR for device 16 +679, 40, ISR for device 16 +719, 40, ISR for device 16 +759, 40, ISR for device 16 +799, 40, ISR for device 16 +839, 40, ISR for device 16 +879, 40, ISR for device 16 +919, 40, ISR for device 16 +959, 40, ISR for device 16 +999, 40, ISR for device 16 +1039, 40, ISR for device 16 +1079, 40, ISR for device 16 +1119, 40, ISR for device 16 +1159, 40, ISR for device 16 +1199, 40, ISR for device 16 +1239, 40, ISR for device 16 +1279, 40, ISR for device 16 +1319, 40, ISR for device 16 +1359, 40, ISR for device 16 +1399, 40, ISR for device 16 +1439, 40, ISR for device 16 +1479, 40, ISR for device 16 +1519, 40, ISR for device 16 +1559, 36, ISR for device 16 +1595, 1, IRET +1596, 70, CPU burst +1666, 1, switch to kernel mode +1667, 10, context saved +1677, 1, find vector 16 in memory position 0x0020 +1678, 1, load address 0X02DF into the PC +1679, 40, ISR for device 16 +1719, 40, ISR for device 16 +1759, 40, ISR for device 16 +1799, 40, ISR for device 16 +1839, 40, ISR for device 16 +1879, 40, ISR for device 16 +1919, 40, ISR for device 16 +1959, 40, ISR for device 16 +1999, 40, ISR for device 16 +2039, 40, ISR for device 16 +2079, 40, ISR for device 16 +2119, 40, ISR for device 16 +2159, 40, ISR for device 16 +2199, 40, ISR for device 16 +2239, 40, ISR for device 16 +2279, 40, ISR for device 16 +2319, 40, ISR for device 16 +2359, 40, ISR for device 16 +2399, 40, ISR for device 16 +2439, 40, ISR for device 16 +2479, 40, ISR for device 16 +2519, 40, ISR for device 16 +2559, 40, ISR for device 16 +2599, 36, ISR for device 16 +2635, 1, IRET +2636, 35, CPU burst +2671, 1, switch to kernel mode +2672, 10, context saved +2682, 1, find vector 9 in memory position 0x0012 +2683, 1, load address 0X036C into the PC +2684, 40, ISR for device 9 +2724, 40, ISR for device 9 +2764, 40, ISR for device 9 +2804, 36, ISR for device 9 +2840, 1, IRET +2841, 51, CPU burst +2892, 1, switch to kernel mode +2893, 10, context saved +2903, 1, find vector 9 in memory position 0x0012 +2904, 1, load address 0X036C into the PC +2905, 40, ISR for device 9 +2945, 40, ISR for device 9 +2985, 40, ISR for device 9 +3025, 36, ISR for device 9 +3061, 1, IRET +3062, 72, CPU burst +3134, 1, switch to kernel mode +3135, 10, context saved +3145, 1, find vector 2 in memory position 0x0004 +3146, 1, load address 0X0695 into the PC +3147, 40, ISR for device 2 +3187, 40, ISR for device 2 +3227, 40, ISR for device 2 +3267, 30, ISR for device 2 +3297, 1, IRET +3298, 99, CPU burst +3397, 1, switch to kernel mode +3398, 10, context saved +3408, 1, find vector 2 in memory position 0x0004 +3409, 1, load address 0X0695 into the PC +3410, 40, ISR for device 2 +3450, 40, ISR for device 2 +3490, 40, ISR for device 2 +3530, 30, ISR for device 2 +3560, 1, IRET +3561, 69, CPU burst +3630, 1, switch to kernel mode +3631, 10, context saved +3641, 1, find vector 11 in memory position 0x0016 +3642, 1, load address 0X01F8 into the PC +3643, 40, ISR for device 11 +3683, 40, ISR for device 11 +3723, 40, ISR for device 11 +3763, 40, ISR for device 11 +3803, 40, ISR for device 11 +3843, 40, ISR for device 11 +3883, 40, ISR for device 11 +3923, 40, ISR for device 11 +3963, 40, ISR for device 11 +4003, 40, ISR for device 11 +4043, 40, ISR for device 11 +4083, 40, ISR for device 11 +4123, 40, ISR for device 11 +4163, 3, ISR for device 11 +4166, 1, IRET +4167, 70, CPU burst +4237, 1, switch to kernel mode +4238, 10, context saved +4248, 1, find vector 11 in memory position 0x0016 +4249, 1, load address 0X01F8 into the PC +4250, 40, ISR for device 11 +4290, 40, ISR for device 11 +4330, 40, ISR for device 11 +4370, 40, ISR for device 11 +4410, 40, ISR for device 11 +4450, 40, ISR for device 11 +4490, 40, ISR for device 11 +4530, 40, ISR for device 11 +4570, 40, ISR for device 11 +4610, 40, ISR for device 11 +4650, 40, ISR for device 11 +4690, 40, ISR for device 11 +4730, 40, ISR for device 11 +4770, 3, ISR for device 11 +4773, 1, IRET +4774, 62, CPU burst +4836, 1, switch to kernel mode +4837, 10, context saved +4847, 1, find vector 19 in memory position 0x0026 +4848, 1, load address 0X0765 into the PC +4849, 40, ISR for device 19 +4889, 40, ISR for device 19 +4929, 40, ISR for device 19 +4969, 40, ISR for device 19 +5009, 40, ISR for device 19 +5049, 40, ISR for device 19 +5089, 40, ISR for device 19 +5129, 40, ISR for device 19 +5169, 40, ISR for device 19 +5209, 40, ISR for device 19 +5249, 40, ISR for device 19 +5289, 40, ISR for device 19 +5329, 40, ISR for device 19 +5369, 40, ISR for device 19 +5409, 40, ISR for device 19 +5449, 40, ISR for device 19 +5489, 12, ISR for device 19 +5501, 1, IRET +5502, 34, CPU burst +5536, 1, switch to kernel mode +5537, 10, context saved +5547, 1, find vector 19 in memory position 0x0026 +5548, 1, load address 0X0765 into the PC +5549, 40, ISR for device 19 +5589, 40, ISR for device 19 +5629, 40, ISR for device 19 +5669, 40, ISR for device 19 +5709, 40, ISR for device 19 +5749, 40, ISR for device 19 +5789, 40, ISR for device 19 +5829, 40, ISR for device 19 +5869, 40, ISR for device 19 +5909, 40, ISR for device 19 +5949, 40, ISR for device 19 +5989, 40, ISR for device 19 +6029, 40, ISR for device 19 +6069, 40, ISR for device 19 +6109, 40, ISR for device 19 +6149, 40, ISR for device 19 +6189, 12, ISR for device 19 +6201, 1, IRET +6202, 85, CPU burst +6287, 1, switch to kernel mode +6288, 10, context saved +6298, 1, find vector 15 in memory position 0x001E +6299, 1, load address 0X0584 into the PC +6300, 40, ISR for device 15 +6340, 28, ISR for device 15 +6368, 1, IRET +6369, 73, CPU burst +6442, 1, switch to kernel mode +6443, 10, context saved +6453, 1, find vector 15 in memory position 0x001E +6454, 1, load address 0X0584 into the PC +6455, 40, ISR for device 15 +6495, 28, ISR for device 15 +6523, 1, IRET +6524, 26, CPU burst +6550, 1, switch to kernel mode +6551, 10, context saved +6561, 1, find vector 10 in memory position 0x0014 +6562, 1, load address 0X07B0 into the PC +6563, 40, ISR for device 10 +6603, 40, ISR for device 10 +6643, 40, ISR for device 10 +6683, 40, ISR for device 10 +6723, 40, ISR for device 10 +6763, 40, ISR for device 10 +6803, 40, ISR for device 10 +6843, 40, ISR for device 10 +6883, 40, ISR for device 10 +6923, 40, ISR for device 10 +6963, 40, ISR for device 10 +7003, 40, ISR for device 10 +7043, 40, ISR for device 10 +7083, 40, ISR for device 10 +7123, 4, ISR for device 10 +7127, 1, IRET +7128, 89, CPU burst +7217, 1, switch to kernel mode +7218, 10, context saved +7228, 1, find vector 10 in memory position 0x0014 +7229, 1, load address 0X07B0 into the PC +7230, 40, ISR for device 10 +7270, 40, ISR for device 10 +7310, 40, ISR for device 10 +7350, 40, ISR for device 10 +7390, 40, ISR for device 10 +7430, 40, ISR for device 10 +7470, 40, ISR for device 10 +7510, 40, ISR for device 10 +7550, 40, ISR for device 10 +7590, 40, ISR for device 10 +7630, 40, ISR for device 10 +7670, 40, ISR for device 10 +7710, 40, ISR for device 10 +7750, 40, ISR for device 10 +7790, 4, ISR for device 10 +7794, 1, IRET +7795, 15, CPU burst +7810, 1, switch to kernel mode +7811, 10, context saved +7821, 1, find vector 7 in memory position 0x000E +7822, 1, load address 0X00BD into the PC +7823, 40, ISR for device 7 +7863, 40, ISR for device 7 +7903, 40, ISR for device 7 +7943, 32, ISR for device 7 +7975, 1, IRET +7976, 24, CPU burst +8000, 1, switch to kernel mode +8001, 10, context saved +8011, 1, find vector 7 in memory position 0x000E +8012, 1, load address 0X00BD into the PC +8013, 40, ISR for device 7 +8053, 40, ISR for device 7 +8093, 40, ISR for device 7 +8133, 32, ISR for device 7 +8165, 1, IRET +8166, 23, CPU burst +8189, 1, switch to kernel mode +8190, 10, context saved +8200, 1, find vector 10 in memory position 0x0014 +8201, 1, load address 0X07B0 into the PC +8202, 40, ISR for device 10 +8242, 40, ISR for device 10 +8282, 40, ISR for device 10 +8322, 40, ISR for device 10 +8362, 40, ISR for device 10 +8402, 40, ISR for device 10 +8442, 40, ISR for device 10 +8482, 40, ISR for device 10 +8522, 40, ISR for device 10 +8562, 40, ISR for device 10 +8602, 40, ISR for device 10 +8642, 40, ISR for device 10 +8682, 40, ISR for device 10 +8722, 40, ISR for device 10 +8762, 4, ISR for device 10 +8766, 1, IRET +8767, 57, CPU burst +8824, 1, switch to kernel mode +8825, 10, context saved +8835, 1, find vector 10 in memory position 0x0014 +8836, 1, load address 0X07B0 into the PC +8837, 40, ISR for device 10 +8877, 40, ISR for device 10 +8917, 40, ISR for device 10 +8957, 40, ISR for device 10 +8997, 40, ISR for device 10 +9037, 40, ISR for device 10 +9077, 40, ISR for device 10 +9117, 40, ISR for device 10 +9157, 40, ISR for device 10 +9197, 40, ISR for device 10 +9237, 40, ISR for device 10 +9277, 40, ISR for device 10 +9317, 40, ISR for device 10 +9357, 40, ISR for device 10 +9397, 4, ISR for device 10 +9401, 1, IRET +9402, 11, CPU burst +9413, 1, switch to kernel mode +9414, 10, context saved +9424, 1, find vector 4 in memory position 0x0008 +9425, 1, load address 0X0292 into the PC +9426, 40, ISR for device 4 +9466, 40, ISR for device 4 +9506, 40, ISR for device 4 +9546, 40, ISR for device 4 +9586, 40, ISR for device 4 +9626, 40, ISR for device 4 +9666, 10, ISR for device 4 +9676, 1, IRET +9677, 100, CPU burst +9777, 1, switch to kernel mode +9778, 10, context saved +9788, 1, find vector 4 in memory position 0x0008 +9789, 1, load address 0X0292 into the PC +9790, 40, ISR for device 4 +9830, 40, ISR for device 4 +9870, 40, ISR for device 4 +9910, 40, ISR for device 4 +9950, 40, ISR for device 4 +9990, 40, ISR for device 4 +10030, 10, ISR for device 4 +10040, 1, IRET +10041, 73, CPU burst +10114, 1, switch to kernel mode +10115, 10, context saved +10125, 1, find vector 11 in memory position 0x0016 +10126, 1, load address 0X01F8 into the PC +10127, 40, ISR for device 11 +10167, 40, ISR for device 11 +10207, 40, ISR for device 11 +10247, 40, ISR for device 11 +10287, 40, ISR for device 11 +10327, 40, ISR for device 11 +10367, 40, ISR for device 11 +10407, 40, ISR for device 11 +10447, 40, ISR for device 11 +10487, 40, ISR for device 11 +10527, 40, ISR for device 11 +10567, 40, ISR for device 11 +10607, 40, ISR for device 11 +10647, 3, ISR for device 11 +10650, 1, IRET +10651, 18, CPU burst +10669, 1, switch to kernel mode +10670, 10, context saved +10680, 1, find vector 11 in memory position 0x0016 +10681, 1, load address 0X01F8 into the PC +10682, 40, ISR for device 11 +10722, 40, ISR for device 11 +10762, 40, ISR for device 11 +10802, 40, ISR for device 11 +10842, 40, ISR for device 11 +10882, 40, ISR for device 11 +10922, 40, ISR for device 11 +10962, 40, ISR for device 11 +11002, 40, ISR for device 11 +11042, 40, ISR for device 11 +11082, 40, ISR for device 11 +11122, 40, ISR for device 11 +11162, 40, ISR for device 11 +11202, 3, ISR for device 11 +11205, 1, IRET +11206, 34, CPU burst +11240, 1, switch to kernel mode +11241, 10, context saved +11251, 1, find vector 4 in memory position 0x0008 +11252, 1, load address 0X0292 into the PC +11253, 40, ISR for device 4 +11293, 40, ISR for device 4 +11333, 40, ISR for device 4 +11373, 40, ISR for device 4 +11413, 40, ISR for device 4 +11453, 40, ISR for device 4 +11493, 10, ISR for device 4 +11503, 1, IRET +11504, 65, CPU burst +11569, 1, switch to kernel mode +11570, 10, context saved +11580, 1, find vector 4 in memory position 0x0008 +11581, 1, load address 0X0292 into the PC +11582, 40, ISR for device 4 +11622, 40, ISR for device 4 +11662, 40, ISR for device 4 +11702, 40, ISR for device 4 +11742, 40, ISR for device 4 +11782, 40, ISR for device 4 +11822, 10, ISR for device 4 +11832, 1, IRET +11833, 77, CPU burst +11910, 1, switch to kernel mode +11911, 10, context saved +11921, 1, find vector 15 in memory position 0x001E +11922, 1, load address 0X0584 into the PC +11923, 40, ISR for device 15 +11963, 28, ISR for device 15 +11991, 1, IRET +11992, 31, CPU burst +12023, 1, switch to kernel mode +12024, 10, context saved +12034, 1, find vector 15 in memory position 0x001E +12035, 1, load address 0X0584 into the PC +12036, 40, ISR for device 15 +12076, 28, ISR for device 15 +12104, 1, IRET +12105, 18, CPU burst +12123, 1, switch to kernel mode +12124, 10, context saved +12134, 1, find vector 6 in memory position 0x000C +12135, 1, load address 0X0639 into the PC +12136, 40, ISR for device 6 +12176, 40, ISR for device 6 +12216, 40, ISR for device 6 +12256, 40, ISR for device 6 +12296, 40, ISR for device 6 +12336, 40, ISR for device 6 +12376, 25, ISR for device 6 +12401, 1, IRET +12402, 84, CPU burst +12486, 1, switch to kernel mode +12487, 10, context saved +12497, 1, find vector 6 in memory position 0x000C +12498, 1, load address 0X0639 into the PC +12499, 40, ISR for device 6 +12539, 40, ISR for device 6 +12579, 40, ISR for device 6 +12619, 40, ISR for device 6 +12659, 40, ISR for device 6 +12699, 40, ISR for device 6 +12739, 25, ISR for device 6 +12764, 1, IRET +12765, 39, CPU burst +12804, 1, switch to kernel mode +12805, 10, context saved +12815, 1, find vector 6 in memory position 0x000C +12816, 1, load address 0X0639 into the PC +12817, 40, ISR for device 6 +12857, 40, ISR for device 6 +12897, 40, ISR for device 6 +12937, 40, ISR for device 6 +12977, 40, ISR for device 6 +13017, 40, ISR for device 6 +13057, 25, ISR for device 6 +13082, 1, IRET +13083, 41, CPU burst +13124, 1, switch to kernel mode +13125, 10, context saved +13135, 1, find vector 6 in memory position 0x000C +13136, 1, load address 0X0639 into the PC +13137, 40, ISR for device 6 +13177, 40, ISR for device 6 +13217, 40, ISR for device 6 +13257, 40, ISR for device 6 +13297, 40, ISR for device 6 +13337, 40, ISR for device 6 +13377, 25, ISR for device 6 +13402, 1, IRET +13403, 95, CPU burst +13498, 1, switch to kernel mode +13499, 10, context saved +13509, 1, find vector 14 in memory position 0x001C +13510, 1, load address 0X0165 into the PC +13511, 40, ISR for device 14 +13551, 40, ISR for device 14 +13591, 40, ISR for device 14 +13631, 40, ISR for device 14 +13671, 40, ISR for device 14 +13711, 40, ISR for device 14 +13751, 40, ISR for device 14 +13791, 40, ISR for device 14 +13831, 40, ISR for device 14 +13871, 40, ISR for device 14 +13911, 40, ISR for device 14 +13951, 16, ISR for device 14 +13967, 1, IRET +13968, 16, CPU burst +13984, 1, switch to kernel mode +13985, 10, context saved +13995, 1, find vector 14 in memory position 0x001C +13996, 1, load address 0X0165 into the PC +13997, 40, ISR for device 14 +14037, 40, ISR for device 14 +14077, 40, ISR for device 14 +14117, 40, ISR for device 14 +14157, 40, ISR for device 14 +14197, 40, ISR for device 14 +14237, 40, ISR for device 14 +14277, 40, ISR for device 14 +14317, 40, ISR for device 14 +14357, 40, ISR for device 14 +14397, 40, ISR for device 14 +14437, 16, ISR for device 14 +14453, 1, IRET +14454, 24, CPU burst +14478, 1, switch to kernel mode +14479, 10, context saved +14489, 1, find vector 2 in memory position 0x0004 +14490, 1, load address 0X0695 into the PC +14491, 40, ISR for device 2 +14531, 40, ISR for device 2 +14571, 40, ISR for device 2 +14611, 30, ISR for device 2 +14641, 1, IRET +14642, 26, CPU burst +14668, 1, switch to kernel mode +14669, 10, context saved +14679, 1, find vector 2 in memory position 0x0004 +14680, 1, load address 0X0695 into the PC +14681, 40, ISR for device 2 +14721, 40, ISR for device 2 +14761, 40, ISR for device 2 +14801, 30, ISR for device 2 +14831, 1, IRET +14832, 90, CPU burst +14922, 1, switch to kernel mode +14923, 10, context saved +14933, 1, find vector 15 in memory position 0x001E +14934, 1, load address 0X0584 into the PC +14935, 40, ISR for device 15 +14975, 28, ISR for device 15 +15003, 1, IRET +15004, 76, CPU burst +15080, 1, switch to kernel mode +15081, 10, context saved +15091, 1, find vector 15 in memory position 0x001E +15092, 1, load address 0X0584 into the PC +15093, 40, ISR for device 15 +15133, 28, ISR for device 15 +15161, 1, IRET +15162, 37, CPU burst +15199, 1, switch to kernel mode +15200, 10, context saved +15210, 1, find vector 14 in memory position 0x001C +15211, 1, load address 0X0165 into the PC +15212, 40, ISR for device 14 +15252, 40, ISR for device 14 +15292, 40, ISR for device 14 +15332, 40, ISR for device 14 +15372, 40, ISR for device 14 +15412, 40, ISR for device 14 +15452, 40, ISR for device 14 +15492, 40, ISR for device 14 +15532, 40, ISR for device 14 +15572, 40, ISR for device 14 +15612, 40, ISR for device 14 +15652, 16, ISR for device 14 +15668, 1, IRET +15669, 28, CPU burst +15697, 1, switch to kernel mode +15698, 10, context saved +15708, 1, find vector 14 in memory position 0x001C +15709, 1, load address 0X0165 into the PC +15710, 40, ISR for device 14 +15750, 40, ISR for device 14 +15790, 40, ISR for device 14 +15830, 40, ISR for device 14 +15870, 40, ISR for device 14 +15910, 40, ISR for device 14 +15950, 40, ISR for device 14 +15990, 40, ISR for device 14 +16030, 40, ISR for device 14 +16070, 40, ISR for device 14 +16110, 40, ISR for device 14 +16150, 16, ISR for device 14 +16166, 1, IRET +16167, 92, CPU burst +16259, 1, switch to kernel mode +16260, 10, context saved +16270, 1, find vector 19 in memory position 0x0026 +16271, 1, load address 0X0765 into the PC +16272, 40, ISR for device 19 +16312, 40, ISR for device 19 +16352, 40, ISR for device 19 +16392, 40, ISR for device 19 +16432, 40, ISR for device 19 +16472, 40, ISR for device 19 +16512, 40, ISR for device 19 +16552, 40, ISR for device 19 +16592, 40, ISR for device 19 +16632, 40, ISR for device 19 +16672, 40, ISR for device 19 +16712, 40, ISR for device 19 +16752, 40, ISR for device 19 +16792, 40, ISR for device 19 +16832, 40, ISR for device 19 +16872, 40, ISR for device 19 +16912, 12, ISR for device 19 +16924, 1, IRET +16925, 24, CPU burst +16949, 1, switch to kernel mode +16950, 10, context saved +16960, 1, find vector 19 in memory position 0x0026 +16961, 1, load address 0X0765 into the PC +16962, 40, ISR for device 19 +17002, 40, ISR for device 19 +17042, 40, ISR for device 19 +17082, 40, ISR for device 19 +17122, 40, ISR for device 19 +17162, 40, ISR for device 19 +17202, 40, ISR for device 19 +17242, 40, ISR for device 19 +17282, 40, ISR for device 19 +17322, 40, ISR for device 19 +17362, 40, ISR for device 19 +17402, 40, ISR for device 19 +17442, 40, ISR for device 19 +17482, 40, ISR for device 19 +17522, 40, ISR for device 19 +17562, 40, ISR for device 19 +17602, 12, ISR for device 19 +17614, 1, IRET +17615, 74, CPU burst +17689, 1, switch to kernel mode +17690, 10, context saved +17700, 1, find vector 16 in memory position 0x0020 +17701, 1, load address 0X02DF into the PC +17702, 40, ISR for device 16 +17742, 40, ISR for device 16 +17782, 40, ISR for device 16 +17822, 40, ISR for device 16 +17862, 40, ISR for device 16 +17902, 40, ISR for device 16 +17942, 40, ISR for device 16 +17982, 40, ISR for device 16 +18022, 40, ISR for device 16 +18062, 40, ISR for device 16 +18102, 40, ISR for device 16 +18142, 40, ISR for device 16 +18182, 40, ISR for device 16 +18222, 40, ISR for device 16 +18262, 40, ISR for device 16 +18302, 40, ISR for device 16 +18342, 40, ISR for device 16 +18382, 40, ISR for device 16 +18422, 40, ISR for device 16 +18462, 40, ISR for device 16 +18502, 40, ISR for device 16 +18542, 40, ISR for device 16 +18582, 40, ISR for device 16 +18622, 36, ISR for device 16 +18658, 1, IRET +18659, 11, CPU burst +18670, 1, switch to kernel mode +18671, 10, context saved +18681, 1, find vector 16 in memory position 0x0020 +18682, 1, load address 0X02DF into the PC +18683, 40, ISR for device 16 +18723, 40, ISR for device 16 +18763, 40, ISR for device 16 +18803, 40, ISR for device 16 +18843, 40, ISR for device 16 +18883, 40, ISR for device 16 +18923, 40, ISR for device 16 +18963, 40, ISR for device 16 +19003, 40, ISR for device 16 +19043, 40, ISR for device 16 +19083, 40, ISR for device 16 +19123, 40, ISR for device 16 +19163, 40, ISR for device 16 +19203, 40, ISR for device 16 +19243, 40, ISR for device 16 +19283, 40, ISR for device 16 +19323, 40, ISR for device 16 +19363, 40, ISR for device 16 +19403, 40, ISR for device 16 +19443, 40, ISR for device 16 +19483, 40, ISR for device 16 +19523, 40, ISR for device 16 +19563, 40, ISR for device 16 +19603, 36, ISR for device 16 +19639, 1, IRET +19640, 26, CPU burst +19666, 1, switch to kernel mode +19667, 10, context saved +19677, 1, find vector 1 in memory position 0x0002 +19678, 1, load address 0X029C into the PC +19679, 40, ISR for device 1 +19719, 40, ISR for device 1 +19759, 20, ISR for device 1 +19779, 1, IRET +19780, 55, CPU burst +19835, 1, switch to kernel mode +19836, 10, context saved +19846, 1, find vector 1 in memory position 0x0002 +19847, 1, load address 0X029C into the PC +19848, 40, ISR for device 1 +19888, 40, ISR for device 1 +19928, 20, ISR for device 1 +19948, 1, IRET +19949, 43, CPU burst +19992, 1, switch to kernel mode +19993, 10, context saved +20003, 1, find vector 19 in memory position 0x0026 +20004, 1, load address 0X0765 into the PC +20005, 40, ISR for device 19 +20045, 40, ISR for device 19 +20085, 40, ISR for device 19 +20125, 40, ISR for device 19 +20165, 40, ISR for device 19 +20205, 40, ISR for device 19 +20245, 40, ISR for device 19 +20285, 40, ISR for device 19 +20325, 40, ISR for device 19 +20365, 40, ISR for device 19 +20405, 40, ISR for device 19 +20445, 40, ISR for device 19 +20485, 40, ISR for device 19 +20525, 40, ISR for device 19 +20565, 40, ISR for device 19 +20605, 40, ISR for device 19 +20645, 12, ISR for device 19 +20657, 1, IRET +20658, 80, CPU burst +20738, 1, switch to kernel mode +20739, 10, context saved +20749, 1, find vector 19 in memory position 0x0026 +20750, 1, load address 0X0765 into the PC +20751, 40, ISR for device 19 +20791, 40, ISR for device 19 +20831, 40, ISR for device 19 +20871, 40, ISR for device 19 +20911, 40, ISR for device 19 +20951, 40, ISR for device 19 +20991, 40, ISR for device 19 +21031, 40, ISR for device 19 +21071, 40, ISR for device 19 +21111, 40, ISR for device 19 +21151, 40, ISR for device 19 +21191, 40, ISR for device 19 +21231, 40, ISR for device 19 +21271, 40, ISR for device 19 +21311, 40, ISR for device 19 +21351, 40, ISR for device 19 +21391, 12, ISR for device 19 +21403, 1, IRET +21404, 95, CPU burst +21499, 1, switch to kernel mode +21500, 10, context saved +21510, 1, find vector 1 in memory position 0x0002 +21511, 1, load address 0X029C into the PC +21512, 40, ISR for device 1 +21552, 40, ISR for device 1 +21592, 20, ISR for device 1 +21612, 1, IRET +21613, 98, CPU burst +21711, 1, switch to kernel mode +21712, 10, context saved +21722, 1, find vector 1 in memory position 0x0002 +21723, 1, load address 0X029C into the PC +21724, 40, ISR for device 1 +21764, 40, ISR for device 1 +21804, 20, ISR for device 1 +21824, 1, IRET +21825, 47, CPU burst +21872, 1, switch to kernel mode +21873, 10, context saved +21883, 1, find vector 8 in memory position 0x0010 +21884, 1, load address 0X06EF into the PC +21885, 40, ISR for device 8 +21925, 40, ISR for device 8 +21965, 40, ISR for device 8 +22005, 40, ISR for device 8 +22045, 40, ISR for device 8 +22085, 40, ISR for device 8 +22125, 40, ISR for device 8 +22165, 40, ISR for device 8 +22205, 40, ISR for device 8 +22245, 40, ISR for device 8 +22285, 40, ISR for device 8 +22325, 40, ISR for device 8 +22365, 40, ISR for device 8 +22405, 40, ISR for device 8 +22445, 40, ISR for device 8 +22485, 40, ISR for device 8 +22525, 40, ISR for device 8 +22565, 40, ISR for device 8 +22605, 40, ISR for device 8 +22645, 40, ISR for device 8 +22685, 40, ISR for device 8 +22725, 40, ISR for device 8 +22765, 40, ISR for device 8 +22805, 40, ISR for device 8 +22845, 40, ISR for device 8 +22885, 1, IRET +22886, 20, CPU burst +22906, 1, switch to kernel mode +22907, 10, context saved +22917, 1, find vector 8 in memory position 0x0010 +22918, 1, load address 0X06EF into the PC +22919, 40, ISR for device 8 +22959, 40, ISR for device 8 +22999, 40, ISR for device 8 +23039, 40, ISR for device 8 +23079, 40, ISR for device 8 +23119, 40, ISR for device 8 +23159, 40, ISR for device 8 +23199, 40, ISR for device 8 +23239, 40, ISR for device 8 +23279, 40, ISR for device 8 +23319, 40, ISR for device 8 +23359, 40, ISR for device 8 +23399, 40, ISR for device 8 +23439, 40, ISR for device 8 +23479, 40, ISR for device 8 +23519, 40, ISR for device 8 +23559, 40, ISR for device 8 +23599, 40, ISR for device 8 +23639, 40, ISR for device 8 +23679, 40, ISR for device 8 +23719, 40, ISR for device 8 +23759, 40, ISR for device 8 +23799, 40, ISR for device 8 +23839, 40, ISR for device 8 +23879, 40, ISR for device 8 +23919, 1, IRET +23920, 29, CPU burst +23949, 99, CPU burst +24048, 38, CPU burst +24086, 1, switch to kernel mode +24087, 10, context saved +24097, 1, find vector 19 in memory position 0x0026 +24098, 1, load address 0X0765 into the PC +24099, 40, ISR for device 19 +24139, 40, ISR for device 19 +24179, 40, ISR for device 19 +24219, 40, ISR for device 19 +24259, 40, ISR for device 19 +24299, 40, ISR for device 19 +24339, 40, ISR for device 19 +24379, 40, ISR for device 19 +24419, 40, ISR for device 19 +24459, 40, ISR for device 19 +24499, 40, ISR for device 19 +24539, 40, ISR for device 19 +24579, 40, ISR for device 19 +24619, 40, ISR for device 19 +24659, 40, ISR for device 19 +24699, 40, ISR for device 19 +24739, 12, ISR for device 19 +24751, 1, IRET +24752, 75, CPU burst +24827, 1, switch to kernel mode +24828, 10, context saved +24838, 1, find vector 19 in memory position 0x0026 +24839, 1, load address 0X0765 into the PC +24840, 40, ISR for device 19 +24880, 40, ISR for device 19 +24920, 40, ISR for device 19 +24960, 40, ISR for device 19 +25000, 40, ISR for device 19 +25040, 40, ISR for device 19 +25080, 40, ISR for device 19 +25120, 40, ISR for device 19 +25160, 40, ISR for device 19 +25200, 40, ISR for device 19 +25240, 40, ISR for device 19 +25280, 40, ISR for device 19 +25320, 40, ISR for device 19 +25360, 40, ISR for device 19 +25400, 40, ISR for device 19 +25440, 40, ISR for device 19 +25480, 12, ISR for device 19 +25492, 1, IRET +25493, 16, CPU burst +25509, 1, switch to kernel mode +25510, 10, context saved +25520, 1, find vector 4 in memory position 0x0008 +25521, 1, load address 0X0292 into the PC +25522, 40, ISR for device 4 +25562, 40, ISR for device 4 +25602, 40, ISR for device 4 +25642, 40, ISR for device 4 +25682, 40, ISR for device 4 +25722, 40, ISR for device 4 +25762, 10, ISR for device 4 +25772, 1, IRET +25773, 23, CPU burst +25796, 1, switch to kernel mode +25797, 10, context saved +25807, 1, find vector 4 in memory position 0x0008 +25808, 1, load address 0X0292 into the PC +25809, 40, ISR for device 4 +25849, 40, ISR for device 4 +25889, 40, ISR for device 4 +25929, 40, ISR for device 4 +25969, 40, ISR for device 4 +26009, 40, ISR for device 4 +26049, 10, ISR for device 4 +26059, 1, IRET +26060, 47, CPU burst +26107, 1, switch to kernel mode +26108, 10, context saved +26118, 1, find vector 11 in memory position 0x0016 +26119, 1, load address 0X01F8 into the PC +26120, 40, ISR for device 11 +26160, 40, ISR for device 11 +26200, 40, ISR for device 11 +26240, 40, ISR for device 11 +26280, 40, ISR for device 11 +26320, 40, ISR for device 11 +26360, 40, ISR for device 11 +26400, 40, ISR for device 11 +26440, 40, ISR for device 11 +26480, 40, ISR for device 11 +26520, 40, ISR for device 11 +26560, 40, ISR for device 11 +26600, 40, ISR for device 11 +26640, 3, ISR for device 11 +26643, 1, IRET +26644, 17, CPU burst +26661, 1, switch to kernel mode +26662, 10, context saved +26672, 1, find vector 11 in memory position 0x0016 +26673, 1, load address 0X01F8 into the PC +26674, 40, ISR for device 11 +26714, 40, ISR for device 11 +26754, 40, ISR for device 11 +26794, 40, ISR for device 11 +26834, 40, ISR for device 11 +26874, 40, ISR for device 11 +26914, 40, ISR for device 11 +26954, 40, ISR for device 11 +26994, 40, ISR for device 11 +27034, 40, ISR for device 11 +27074, 40, ISR for device 11 +27114, 40, ISR for device 11 +27154, 40, ISR for device 11 +27194, 3, ISR for device 11 +27197, 1, IRET +27198, 39, CPU burst +27237, 1, switch to kernel mode +27238, 10, context saved +27248, 1, find vector 19 in memory position 0x0026 +27249, 1, load address 0X0765 into the PC +27250, 40, ISR for device 19 +27290, 40, ISR for device 19 +27330, 40, ISR for device 19 +27370, 40, ISR for device 19 +27410, 40, ISR for device 19 +27450, 40, ISR for device 19 +27490, 40, ISR for device 19 +27530, 40, ISR for device 19 +27570, 40, ISR for device 19 +27610, 40, ISR for device 19 +27650, 40, ISR for device 19 +27690, 40, ISR for device 19 +27730, 40, ISR for device 19 +27770, 40, ISR for device 19 +27810, 40, ISR for device 19 +27850, 40, ISR for device 19 +27890, 12, ISR for device 19 +27902, 1, IRET +27903, 48, CPU burst +27951, 1, switch to kernel mode +27952, 10, context saved +27962, 1, find vector 19 in memory position 0x0026 +27963, 1, load address 0X0765 into the PC +27964, 40, ISR for device 19 +28004, 40, ISR for device 19 +28044, 40, ISR for device 19 +28084, 40, ISR for device 19 +28124, 40, ISR for device 19 +28164, 40, ISR for device 19 +28204, 40, ISR for device 19 +28244, 40, ISR for device 19 +28284, 40, ISR for device 19 +28324, 40, ISR for device 19 +28364, 40, ISR for device 19 +28404, 40, ISR for device 19 +28444, 40, ISR for device 19 +28484, 40, ISR for device 19 +28524, 40, ISR for device 19 +28564, 40, ISR for device 19 +28604, 12, ISR for device 19 +28616, 1, IRET +28617, 45, CPU burst +28662, 1, switch to kernel mode +28663, 10, context saved +28673, 1, find vector 12 in memory position 0x0018 +28674, 1, load address 0X03B9 into the PC +28675, 40, ISR for device 12 +28715, 40, ISR for device 12 +28755, 40, ISR for device 12 +28795, 25, ISR for device 12 +28820, 1, IRET +28821, 83, CPU burst +28904, 1, switch to kernel mode +28905, 10, context saved +28915, 1, find vector 12 in memory position 0x0018 +28916, 1, load address 0X03B9 into the PC +28917, 40, ISR for device 12 +28957, 40, ISR for device 12 +28997, 40, ISR for device 12 +29037, 25, ISR for device 12 +29062, 1, IRET +29063, 68, CPU burst +29131, 100, CPU burst +29231, 61, CPU burst +29292, 1, switch to kernel mode +29293, 10, context saved +29303, 1, find vector 11 in memory position 0x0016 +29304, 1, load address 0X01F8 into the PC +29305, 40, ISR for device 11 +29345, 40, ISR for device 11 +29385, 40, ISR for device 11 +29425, 40, ISR for device 11 +29465, 40, ISR for device 11 +29505, 40, ISR for device 11 +29545, 40, ISR for device 11 +29585, 40, ISR for device 11 +29625, 40, ISR for device 11 +29665, 40, ISR for device 11 +29705, 40, ISR for device 11 +29745, 40, ISR for device 11 +29785, 40, ISR for device 11 +29825, 3, ISR for device 11 +29828, 1, IRET +29829, 96, CPU burst +29925, 1, switch to kernel mode +29926, 10, context saved +29936, 1, find vector 11 in memory position 0x0016 +29937, 1, load address 0X01F8 into the PC +29938, 40, ISR for device 11 +29978, 40, ISR for device 11 +30018, 40, ISR for device 11 +30058, 40, ISR for device 11 +30098, 40, ISR for device 11 +30138, 40, ISR for device 11 +30178, 40, ISR for device 11 +30218, 40, ISR for device 11 +30258, 40, ISR for device 11 +30298, 40, ISR for device 11 +30338, 40, ISR for device 11 +30378, 40, ISR for device 11 +30418, 40, ISR for device 11 +30458, 3, ISR for device 11 +30461, 1, IRET +30462, 88, CPU burst +30550, 1, switch to kernel mode +30551, 10, context saved +30561, 1, find vector 2 in memory position 0x0004 +30562, 1, load address 0X0695 into the PC +30563, 40, ISR for device 2 +30603, 40, ISR for device 2 +30643, 40, ISR for device 2 +30683, 30, ISR for device 2 +30713, 1, IRET +30714, 42, CPU burst +30756, 1, switch to kernel mode +30757, 10, context saved +30767, 1, find vector 2 in memory position 0x0004 +30768, 1, load address 0X0695 into the PC +30769, 40, ISR for device 2 +30809, 40, ISR for device 2 +30849, 40, ISR for device 2 +30889, 30, ISR for device 2 +30919, 1, IRET +30920, 41, CPU burst +30961, 1, switch to kernel mode +30962, 10, context saved +30972, 1, find vector 3 in memory position 0x0006 +30973, 1, load address 0X042B into the PC +30974, 40, ISR for device 3 +31014, 40, ISR for device 3 +31054, 40, ISR for device 3 +31094, 40, ISR for device 3 +31134, 40, ISR for device 3 +31174, 40, ISR for device 3 +31214, 40, ISR for device 3 +31254, 20, ISR for device 3 +31274, 1, IRET +31275, 73, CPU burst +31348, 1, switch to kernel mode +31349, 10, context saved +31359, 1, find vector 3 in memory position 0x0006 +31360, 1, load address 0X042B into the PC +31361, 40, ISR for device 3 +31401, 40, ISR for device 3 +31441, 40, ISR for device 3 +31481, 40, ISR for device 3 +31521, 40, ISR for device 3 +31561, 40, ISR for device 3 +31601, 40, ISR for device 3 +31641, 20, ISR for device 3 +31661, 1, IRET +31662, 52, CPU burst diff --git a/execution_trace_1.txt b/execution_trace_1.txt new file mode 100644 index 0000000..2c55708 --- /dev/null +++ b/execution_trace_1.txt @@ -0,0 +1,139 @@ +0, 75, CPU burst +75, 1, switch to kernel mode +76, 10, context saved +86, 1, find vector 5 in memory position 0x000A +87, 1, load address 0X048B into the PC +88, 40, ISR for device 5 +128, 40, ISR for device 5 +168, 40, ISR for device 5 +208, 40, ISR for device 5 +248, 40, ISR for device 5 +288, 11, ISR for device 5 +299, 1, IRET +300, 84, CPU burst +384, 1, switch to kernel mode +385, 10, context saved +395, 1, find vector 5 in memory position 0x000A +396, 1, load address 0X048B into the PC +397, 40, ISR for device 5 +437, 40, ISR for device 5 +477, 40, ISR for device 5 +517, 40, ISR for device 5 +557, 40, ISR for device 5 +597, 11, ISR for device 5 +608, 1, IRET +609, 22, CPU burst +631, 1, switch to kernel mode +632, 10, context saved +642, 1, find vector 10 in memory position 0x0014 +643, 1, load address 0X07B0 into the PC +644, 40, ISR for device 10 +684, 40, ISR for device 10 +724, 40, ISR for device 10 +764, 40, ISR for device 10 +804, 40, ISR for device 10 +844, 40, ISR for device 10 +884, 40, ISR for device 10 +924, 40, ISR for device 10 +964, 40, ISR for device 10 +1004, 40, ISR for device 10 +1044, 40, ISR for device 10 +1084, 40, ISR for device 10 +1124, 40, ISR for device 10 +1164, 40, ISR for device 10 +1204, 4, ISR for device 10 +1208, 1, IRET +1209, 80, CPU burst +1289, 1, switch to kernel mode +1290, 10, context saved +1300, 1, find vector 10 in memory position 0x0014 +1301, 1, load address 0X07B0 into the PC +1302, 40, ISR for device 10 +1342, 40, ISR for device 10 +1382, 40, ISR for device 10 +1422, 40, ISR for device 10 +1462, 40, ISR for device 10 +1502, 40, ISR for device 10 +1542, 40, ISR for device 10 +1582, 40, ISR for device 10 +1622, 40, ISR for device 10 +1662, 40, ISR for device 10 +1702, 40, ISR for device 10 +1742, 40, ISR for device 10 +1782, 40, ISR for device 10 +1822, 40, ISR for device 10 +1862, 4, ISR for device 10 +1866, 1, IRET +1867, 79, CPU burst +1946, 1, switch to kernel mode +1947, 10, context saved +1957, 1, find vector 6 in memory position 0x000C +1958, 1, load address 0X0639 into the PC +1959, 40, ISR for device 6 +1999, 40, ISR for device 6 +2039, 40, ISR for device 6 +2079, 40, ISR for device 6 +2119, 40, ISR for device 6 +2159, 40, ISR for device 6 +2199, 25, ISR for device 6 +2224, 1, IRET +2225, 68, CPU burst +2293, 1, switch to kernel mode +2294, 10, context saved +2304, 1, find vector 6 in memory position 0x000C +2305, 1, load address 0X0639 into the PC +2306, 40, ISR for device 6 +2346, 40, ISR for device 6 +2386, 40, ISR for device 6 +2426, 40, ISR for device 6 +2466, 40, ISR for device 6 +2506, 40, ISR for device 6 +2546, 25, ISR for device 6 +2571, 1, IRET +2572, 71, CPU burst +2643, 1, switch to kernel mode +2644, 10, context saved +2654, 1, find vector 4 in memory position 0x0008 +2655, 1, load address 0X0292 into the PC +2656, 40, ISR for device 4 +2696, 40, ISR for device 4 +2736, 40, ISR for device 4 +2776, 40, ISR for device 4 +2816, 40, ISR for device 4 +2856, 40, ISR for device 4 +2896, 10, ISR for device 4 +2906, 1, IRET +2907, 97, CPU burst +3004, 1, switch to kernel mode +3005, 10, context saved +3015, 1, find vector 4 in memory position 0x0008 +3016, 1, load address 0X0292 into the PC +3017, 40, ISR for device 4 +3057, 40, ISR for device 4 +3097, 40, ISR for device 4 +3137, 40, ISR for device 4 +3177, 40, ISR for device 4 +3217, 40, ISR for device 4 +3257, 10, ISR for device 4 +3267, 1, IRET +3268, 84, CPU burst +3352, 1, switch to kernel mode +3353, 10, context saved +3363, 1, find vector 7 in memory position 0x000E +3364, 1, load address 0X00BD into the PC +3365, 40, ISR for device 7 +3405, 40, ISR for device 7 +3445, 40, ISR for device 7 +3485, 32, ISR for device 7 +3517, 1, IRET +3518, 38, CPU burst +3556, 1, switch to kernel mode +3557, 10, context saved +3567, 1, find vector 7 in memory position 0x000E +3568, 1, load address 0X00BD into the PC +3569, 40, ISR for device 7 +3609, 40, ISR for device 7 +3649, 40, ISR for device 7 +3689, 32, ISR for device 7 +3721, 1, IRET +3722, 90, CPU burst diff --git a/execution_trace_2.txt b/execution_trace_2.txt new file mode 100644 index 0000000..598dec7 --- /dev/null +++ b/execution_trace_2.txt @@ -0,0 +1,87 @@ +0, 95, CPU burst +95, 1, switch to kernel mode +96, 10, context saved +106, 1, find vector 6 in memory position 0x000C +107, 1, load address 0X0639 into the PC +108, 40, ISR for device 6 +148, 40, ISR for device 6 +188, 40, ISR for device 6 +228, 40, ISR for device 6 +268, 40, ISR for device 6 +308, 40, ISR for device 6 +348, 25, ISR for device 6 +373, 1, IRET +374, 26, CPU burst +400, 1, switch to kernel mode +401, 10, context saved +411, 1, find vector 6 in memory position 0x000C +412, 1, load address 0X0639 into the PC +413, 40, ISR for device 6 +453, 40, ISR for device 6 +493, 40, ISR for device 6 +533, 40, ISR for device 6 +573, 40, ISR for device 6 +613, 40, ISR for device 6 +653, 25, ISR for device 6 +678, 1, IRET +679, 72, CPU burst +751, 1, switch to kernel mode +752, 10, context saved +762, 1, find vector 17 in memory position 0x0022 +763, 1, load address 0X05B3 into the PC +764, 40, ISR for device 17 +804, 40, ISR for device 17 +844, 40, ISR for device 17 +884, 40, ISR for device 17 +924, 40, ISR for device 17 +964, 35, ISR for device 17 +999, 1, IRET +1000, 50, CPU burst +1050, 1, switch to kernel mode +1051, 10, context saved +1061, 1, find vector 17 in memory position 0x0022 +1062, 1, load address 0X05B3 into the PC +1063, 40, ISR for device 17 +1103, 40, ISR for device 17 +1143, 40, ISR for device 17 +1183, 40, ISR for device 17 +1223, 40, ISR for device 17 +1263, 35, ISR for device 17 +1298, 1, IRET +1299, 88, CPU burst +1387, 1, switch to kernel mode +1388, 10, context saved +1398, 1, find vector 14 in memory position 0x001C +1399, 1, load address 0X0165 into the PC +1400, 40, ISR for device 14 +1440, 40, ISR for device 14 +1480, 40, ISR for device 14 +1520, 40, ISR for device 14 +1560, 40, ISR for device 14 +1600, 40, ISR for device 14 +1640, 40, ISR for device 14 +1680, 40, ISR for device 14 +1720, 40, ISR for device 14 +1760, 40, ISR for device 14 +1800, 40, ISR for device 14 +1840, 16, ISR for device 14 +1856, 1, IRET +1857, 31, CPU burst +1888, 1, switch to kernel mode +1889, 10, context saved +1899, 1, find vector 14 in memory position 0x001C +1900, 1, load address 0X0165 into the PC +1901, 40, ISR for device 14 +1941, 40, ISR for device 14 +1981, 40, ISR for device 14 +2021, 40, ISR for device 14 +2061, 40, ISR for device 14 +2101, 40, ISR for device 14 +2141, 40, ISR for device 14 +2181, 40, ISR for device 14 +2221, 40, ISR for device 14 +2261, 40, ISR for device 14 +2301, 40, ISR for device 14 +2341, 16, ISR for device 14 +2357, 1, IRET +2358, 52, CPU burst diff --git a/execution_trace_3.txt b/execution_trace_3.txt new file mode 100644 index 0000000..40b7d22 --- /dev/null +++ b/execution_trace_3.txt @@ -0,0 +1,1017 @@ +0, 49, CPU burst +49, 1, switch to kernel mode +50, 10, context saved +60, 1, find vector 6 in memory position 0x000C +61, 1, load address 0X0639 into the PC +62, 40, ISR for device 6 +102, 40, ISR for device 6 +142, 40, ISR for device 6 +182, 40, ISR for device 6 +222, 40, ISR for device 6 +262, 40, ISR for device 6 +302, 25, ISR for device 6 +327, 1, IRET +328, 99, CPU burst +427, 1, switch to kernel mode +428, 10, context saved +438, 1, find vector 6 in memory position 0x000C +439, 1, load address 0X0639 into the PC +440, 40, ISR for device 6 +480, 40, ISR for device 6 +520, 40, ISR for device 6 +560, 40, ISR for device 6 +600, 40, ISR for device 6 +640, 40, ISR for device 6 +680, 25, ISR for device 6 +705, 1, IRET +706, 72, CPU burst +778, 1, switch to kernel mode +779, 10, context saved +789, 1, find vector 13 in memory position 0x001A +790, 1, load address 0X06C7 into the PC +791, 40, ISR for device 13 +831, 40, ISR for device 13 +871, 40, ISR for device 13 +911, 40, ISR for device 13 +951, 40, ISR for device 13 +991, 40, ISR for device 13 +1031, 40, ISR for device 13 +1071, 40, ISR for device 13 +1111, 40, ISR for device 13 +1151, 40, ISR for device 13 +1191, 40, ISR for device 13 +1231, 40, ISR for device 13 +1271, 40, ISR for device 13 +1311, 40, ISR for device 13 +1351, 40, ISR for device 13 +1391, 36, ISR for device 13 +1427, 1, IRET +1428, 29, CPU burst +1457, 1, switch to kernel mode +1458, 10, context saved +1468, 1, find vector 13 in memory position 0x001A +1469, 1, load address 0X06C7 into the PC +1470, 40, ISR for device 13 +1510, 40, ISR for device 13 +1550, 40, ISR for device 13 +1590, 40, ISR for device 13 +1630, 40, ISR for device 13 +1670, 40, ISR for device 13 +1710, 40, ISR for device 13 +1750, 40, ISR for device 13 +1790, 40, ISR for device 13 +1830, 40, ISR for device 13 +1870, 40, ISR for device 13 +1910, 40, ISR for device 13 +1950, 40, ISR for device 13 +1990, 40, ISR for device 13 +2030, 40, ISR for device 13 +2070, 36, ISR for device 13 +2106, 1, IRET +2107, 19, CPU burst +2126, 1, switch to kernel mode +2127, 10, context saved +2137, 1, find vector 8 in memory position 0x0010 +2138, 1, load address 0X06EF into the PC +2139, 40, ISR for device 8 +2179, 40, ISR for device 8 +2219, 40, ISR for device 8 +2259, 40, ISR for device 8 +2299, 40, ISR for device 8 +2339, 40, ISR for device 8 +2379, 40, ISR for device 8 +2419, 40, ISR for device 8 +2459, 40, ISR for device 8 +2499, 40, ISR for device 8 +2539, 40, ISR for device 8 +2579, 40, ISR for device 8 +2619, 40, ISR for device 8 +2659, 40, ISR for device 8 +2699, 40, ISR for device 8 +2739, 40, ISR for device 8 +2779, 40, ISR for device 8 +2819, 40, ISR for device 8 +2859, 40, ISR for device 8 +2899, 40, ISR for device 8 +2939, 40, ISR for device 8 +2979, 40, ISR for device 8 +3019, 40, ISR for device 8 +3059, 40, ISR for device 8 +3099, 40, ISR for device 8 +3139, 1, IRET +3140, 66, CPU burst +3206, 1, switch to kernel mode +3207, 10, context saved +3217, 1, find vector 8 in memory position 0x0010 +3218, 1, load address 0X06EF into the PC +3219, 40, ISR for device 8 +3259, 40, ISR for device 8 +3299, 40, ISR for device 8 +3339, 40, ISR for device 8 +3379, 40, ISR for device 8 +3419, 40, ISR for device 8 +3459, 40, ISR for device 8 +3499, 40, ISR for device 8 +3539, 40, ISR for device 8 +3579, 40, ISR for device 8 +3619, 40, ISR for device 8 +3659, 40, ISR for device 8 +3699, 40, ISR for device 8 +3739, 40, ISR for device 8 +3779, 40, ISR for device 8 +3819, 40, ISR for device 8 +3859, 40, ISR for device 8 +3899, 40, ISR for device 8 +3939, 40, ISR for device 8 +3979, 40, ISR for device 8 +4019, 40, ISR for device 8 +4059, 40, ISR for device 8 +4099, 40, ISR for device 8 +4139, 40, ISR for device 8 +4179, 40, ISR for device 8 +4219, 1, IRET +4220, 11, CPU burst +4231, 1, switch to kernel mode +4232, 10, context saved +4242, 1, find vector 4 in memory position 0x0008 +4243, 1, load address 0X0292 into the PC +4244, 40, ISR for device 4 +4284, 40, ISR for device 4 +4324, 40, ISR for device 4 +4364, 40, ISR for device 4 +4404, 40, ISR for device 4 +4444, 40, ISR for device 4 +4484, 10, ISR for device 4 +4494, 1, IRET +4495, 21, CPU burst +4516, 1, switch to kernel mode +4517, 10, context saved +4527, 1, find vector 4 in memory position 0x0008 +4528, 1, load address 0X0292 into the PC +4529, 40, ISR for device 4 +4569, 40, ISR for device 4 +4609, 40, ISR for device 4 +4649, 40, ISR for device 4 +4689, 40, ISR for device 4 +4729, 40, ISR for device 4 +4769, 10, ISR for device 4 +4779, 1, IRET +4780, 100, CPU burst +4880, 1, switch to kernel mode +4881, 10, context saved +4891, 1, find vector 18 in memory position 0x0024 +4892, 1, load address 0X060A into the PC +4893, 40, ISR for device 18 +4933, 40, ISR for device 18 +4973, 40, ISR for device 18 +5013, 3, ISR for device 18 +5016, 1, IRET +5017, 41, CPU burst +5058, 1, switch to kernel mode +5059, 10, context saved +5069, 1, find vector 18 in memory position 0x0024 +5070, 1, load address 0X060A into the PC +5071, 40, ISR for device 18 +5111, 40, ISR for device 18 +5151, 40, ISR for device 18 +5191, 3, ISR for device 18 +5194, 1, IRET +5195, 10, CPU burst +5205, 1, switch to kernel mode +5206, 10, context saved +5216, 1, find vector 12 in memory position 0x0018 +5217, 1, load address 0X03B9 into the PC +5218, 40, ISR for device 12 +5258, 40, ISR for device 12 +5298, 40, ISR for device 12 +5338, 25, ISR for device 12 +5363, 1, IRET +5364, 76, CPU burst +5440, 1, switch to kernel mode +5441, 10, context saved +5451, 1, find vector 12 in memory position 0x0018 +5452, 1, load address 0X03B9 into the PC +5453, 40, ISR for device 12 +5493, 40, ISR for device 12 +5533, 40, ISR for device 12 +5573, 25, ISR for device 12 +5598, 1, IRET +5599, 12, CPU burst +5611, 1, switch to kernel mode +5612, 10, context saved +5622, 1, find vector 15 in memory position 0x001E +5623, 1, load address 0X0584 into the PC +5624, 40, ISR for device 15 +5664, 28, ISR for device 15 +5692, 1, IRET +5693, 57, CPU burst +5750, 1, switch to kernel mode +5751, 10, context saved +5761, 1, find vector 15 in memory position 0x001E +5762, 1, load address 0X0584 into the PC +5763, 40, ISR for device 15 +5803, 28, ISR for device 15 +5831, 1, IRET +5832, 93, CPU burst +5925, 1, switch to kernel mode +5926, 10, context saved +5936, 1, find vector 11 in memory position 0x0016 +5937, 1, load address 0X01F8 into the PC +5938, 40, ISR for device 11 +5978, 40, ISR for device 11 +6018, 40, ISR for device 11 +6058, 40, ISR for device 11 +6098, 40, ISR for device 11 +6138, 40, ISR for device 11 +6178, 40, ISR for device 11 +6218, 40, ISR for device 11 +6258, 40, ISR for device 11 +6298, 40, ISR for device 11 +6338, 40, ISR for device 11 +6378, 40, ISR for device 11 +6418, 40, ISR for device 11 +6458, 3, ISR for device 11 +6461, 1, IRET +6462, 56, CPU burst +6518, 1, switch to kernel mode +6519, 10, context saved +6529, 1, find vector 11 in memory position 0x0016 +6530, 1, load address 0X01F8 into the PC +6531, 40, ISR for device 11 +6571, 40, ISR for device 11 +6611, 40, ISR for device 11 +6651, 40, ISR for device 11 +6691, 40, ISR for device 11 +6731, 40, ISR for device 11 +6771, 40, ISR for device 11 +6811, 40, ISR for device 11 +6851, 40, ISR for device 11 +6891, 40, ISR for device 11 +6931, 40, ISR for device 11 +6971, 40, ISR for device 11 +7011, 40, ISR for device 11 +7051, 3, ISR for device 11 +7054, 1, IRET +7055, 38, CPU burst +7093, 1, switch to kernel mode +7094, 10, context saved +7104, 1, find vector 8 in memory position 0x0010 +7105, 1, load address 0X06EF into the PC +7106, 40, ISR for device 8 +7146, 40, ISR for device 8 +7186, 40, ISR for device 8 +7226, 40, ISR for device 8 +7266, 40, ISR for device 8 +7306, 40, ISR for device 8 +7346, 40, ISR for device 8 +7386, 40, ISR for device 8 +7426, 40, ISR for device 8 +7466, 40, ISR for device 8 +7506, 40, ISR for device 8 +7546, 40, ISR for device 8 +7586, 40, ISR for device 8 +7626, 40, ISR for device 8 +7666, 40, ISR for device 8 +7706, 40, ISR for device 8 +7746, 40, ISR for device 8 +7786, 40, ISR for device 8 +7826, 40, ISR for device 8 +7866, 40, ISR for device 8 +7906, 40, ISR for device 8 +7946, 40, ISR for device 8 +7986, 40, ISR for device 8 +8026, 40, ISR for device 8 +8066, 40, ISR for device 8 +8106, 1, IRET +8107, 12, CPU burst +8119, 1, switch to kernel mode +8120, 10, context saved +8130, 1, find vector 8 in memory position 0x0010 +8131, 1, load address 0X06EF into the PC +8132, 40, ISR for device 8 +8172, 40, ISR for device 8 +8212, 40, ISR for device 8 +8252, 40, ISR for device 8 +8292, 40, ISR for device 8 +8332, 40, ISR for device 8 +8372, 40, ISR for device 8 +8412, 40, ISR for device 8 +8452, 40, ISR for device 8 +8492, 40, ISR for device 8 +8532, 40, ISR for device 8 +8572, 40, ISR for device 8 +8612, 40, ISR for device 8 +8652, 40, ISR for device 8 +8692, 40, ISR for device 8 +8732, 40, ISR for device 8 +8772, 40, ISR for device 8 +8812, 40, ISR for device 8 +8852, 40, ISR for device 8 +8892, 40, ISR for device 8 +8932, 40, ISR for device 8 +8972, 40, ISR for device 8 +9012, 40, ISR for device 8 +9052, 40, ISR for device 8 +9092, 40, ISR for device 8 +9132, 1, IRET +9133, 53, CPU burst +9186, 1, switch to kernel mode +9187, 10, context saved +9197, 1, find vector 13 in memory position 0x001A +9198, 1, load address 0X06C7 into the PC +9199, 40, ISR for device 13 +9239, 40, ISR for device 13 +9279, 40, ISR for device 13 +9319, 40, ISR for device 13 +9359, 40, ISR for device 13 +9399, 40, ISR for device 13 +9439, 40, ISR for device 13 +9479, 40, ISR for device 13 +9519, 40, ISR for device 13 +9559, 40, ISR for device 13 +9599, 40, ISR for device 13 +9639, 40, ISR for device 13 +9679, 40, ISR for device 13 +9719, 40, ISR for device 13 +9759, 40, ISR for device 13 +9799, 36, ISR for device 13 +9835, 1, IRET +9836, 10, CPU burst +9846, 1, switch to kernel mode +9847, 10, context saved +9857, 1, find vector 13 in memory position 0x001A +9858, 1, load address 0X06C7 into the PC +9859, 40, ISR for device 13 +9899, 40, ISR for device 13 +9939, 40, ISR for device 13 +9979, 40, ISR for device 13 +10019, 40, ISR for device 13 +10059, 40, ISR for device 13 +10099, 40, ISR for device 13 +10139, 40, ISR for device 13 +10179, 40, ISR for device 13 +10219, 40, ISR for device 13 +10259, 40, ISR for device 13 +10299, 40, ISR for device 13 +10339, 40, ISR for device 13 +10379, 40, ISR for device 13 +10419, 40, ISR for device 13 +10459, 36, ISR for device 13 +10495, 1, IRET +10496, 85, CPU burst +10581, 1, switch to kernel mode +10582, 10, context saved +10592, 1, find vector 19 in memory position 0x0026 +10593, 1, load address 0X0765 into the PC +10594, 40, ISR for device 19 +10634, 40, ISR for device 19 +10674, 40, ISR for device 19 +10714, 40, ISR for device 19 +10754, 40, ISR for device 19 +10794, 40, ISR for device 19 +10834, 40, ISR for device 19 +10874, 40, ISR for device 19 +10914, 40, ISR for device 19 +10954, 40, ISR for device 19 +10994, 40, ISR for device 19 +11034, 40, ISR for device 19 +11074, 40, ISR for device 19 +11114, 40, ISR for device 19 +11154, 40, ISR for device 19 +11194, 40, ISR for device 19 +11234, 12, ISR for device 19 +11246, 1, IRET +11247, 81, CPU burst +11328, 1, switch to kernel mode +11329, 10, context saved +11339, 1, find vector 19 in memory position 0x0026 +11340, 1, load address 0X0765 into the PC +11341, 40, ISR for device 19 +11381, 40, ISR for device 19 +11421, 40, ISR for device 19 +11461, 40, ISR for device 19 +11501, 40, ISR for device 19 +11541, 40, ISR for device 19 +11581, 40, ISR for device 19 +11621, 40, ISR for device 19 +11661, 40, ISR for device 19 +11701, 40, ISR for device 19 +11741, 40, ISR for device 19 +11781, 40, ISR for device 19 +11821, 40, ISR for device 19 +11861, 40, ISR for device 19 +11901, 40, ISR for device 19 +11941, 40, ISR for device 19 +11981, 12, ISR for device 19 +11993, 1, IRET +11994, 19, CPU burst +12013, 1, switch to kernel mode +12014, 10, context saved +12024, 1, find vector 9 in memory position 0x0012 +12025, 1, load address 0X036C into the PC +12026, 40, ISR for device 9 +12066, 40, ISR for device 9 +12106, 40, ISR for device 9 +12146, 36, ISR for device 9 +12182, 1, IRET +12183, 30, CPU burst +12213, 1, switch to kernel mode +12214, 10, context saved +12224, 1, find vector 9 in memory position 0x0012 +12225, 1, load address 0X036C into the PC +12226, 40, ISR for device 9 +12266, 40, ISR for device 9 +12306, 40, ISR for device 9 +12346, 36, ISR for device 9 +12382, 1, IRET +12383, 48, CPU burst +12431, 1, switch to kernel mode +12432, 10, context saved +12442, 1, find vector 3 in memory position 0x0006 +12443, 1, load address 0X042B into the PC +12444, 40, ISR for device 3 +12484, 40, ISR for device 3 +12524, 40, ISR for device 3 +12564, 40, ISR for device 3 +12604, 40, ISR for device 3 +12644, 40, ISR for device 3 +12684, 40, ISR for device 3 +12724, 20, ISR for device 3 +12744, 1, IRET +12745, 35, CPU burst +12780, 1, switch to kernel mode +12781, 10, context saved +12791, 1, find vector 3 in memory position 0x0006 +12792, 1, load address 0X042B into the PC +12793, 40, ISR for device 3 +12833, 40, ISR for device 3 +12873, 40, ISR for device 3 +12913, 40, ISR for device 3 +12953, 40, ISR for device 3 +12993, 40, ISR for device 3 +13033, 40, ISR for device 3 +13073, 20, ISR for device 3 +13093, 1, IRET +13094, 88, CPU burst +13182, 1, switch to kernel mode +13183, 10, context saved +13193, 1, find vector 11 in memory position 0x0016 +13194, 1, load address 0X01F8 into the PC +13195, 40, ISR for device 11 +13235, 40, ISR for device 11 +13275, 40, ISR for device 11 +13315, 40, ISR for device 11 +13355, 40, ISR for device 11 +13395, 40, ISR for device 11 +13435, 40, ISR for device 11 +13475, 40, ISR for device 11 +13515, 40, ISR for device 11 +13555, 40, ISR for device 11 +13595, 40, ISR for device 11 +13635, 40, ISR for device 11 +13675, 40, ISR for device 11 +13715, 3, ISR for device 11 +13718, 1, IRET +13719, 20, CPU burst +13739, 1, switch to kernel mode +13740, 10, context saved +13750, 1, find vector 11 in memory position 0x0016 +13751, 1, load address 0X01F8 into the PC +13752, 40, ISR for device 11 +13792, 40, ISR for device 11 +13832, 40, ISR for device 11 +13872, 40, ISR for device 11 +13912, 40, ISR for device 11 +13952, 40, ISR for device 11 +13992, 40, ISR for device 11 +14032, 40, ISR for device 11 +14072, 40, ISR for device 11 +14112, 40, ISR for device 11 +14152, 40, ISR for device 11 +14192, 40, ISR for device 11 +14232, 40, ISR for device 11 +14272, 3, ISR for device 11 +14275, 1, IRET +14276, 61, CPU burst +14337, 1, switch to kernel mode +14338, 10, context saved +14348, 1, find vector 1 in memory position 0x0002 +14349, 1, load address 0X029C into the PC +14350, 40, ISR for device 1 +14390, 40, ISR for device 1 +14430, 20, ISR for device 1 +14450, 1, IRET +14451, 20, CPU burst +14471, 1, switch to kernel mode +14472, 10, context saved +14482, 1, find vector 1 in memory position 0x0002 +14483, 1, load address 0X029C into the PC +14484, 40, ISR for device 1 +14524, 40, ISR for device 1 +14564, 20, ISR for device 1 +14584, 1, IRET +14585, 48, CPU burst +14633, 1, switch to kernel mode +14634, 10, context saved +14644, 1, find vector 1 in memory position 0x0002 +14645, 1, load address 0X029C into the PC +14646, 40, ISR for device 1 +14686, 40, ISR for device 1 +14726, 20, ISR for device 1 +14746, 1, IRET +14747, 33, CPU burst +14780, 1, switch to kernel mode +14781, 10, context saved +14791, 1, find vector 1 in memory position 0x0002 +14792, 1, load address 0X029C into the PC +14793, 40, ISR for device 1 +14833, 40, ISR for device 1 +14873, 20, ISR for device 1 +14893, 1, IRET +14894, 91, CPU burst +14985, 1, switch to kernel mode +14986, 10, context saved +14996, 1, find vector 14 in memory position 0x001C +14997, 1, load address 0X0165 into the PC +14998, 40, ISR for device 14 +15038, 40, ISR for device 14 +15078, 40, ISR for device 14 +15118, 40, ISR for device 14 +15158, 40, ISR for device 14 +15198, 40, ISR for device 14 +15238, 40, ISR for device 14 +15278, 40, ISR for device 14 +15318, 40, ISR for device 14 +15358, 40, ISR for device 14 +15398, 40, ISR for device 14 +15438, 16, ISR for device 14 +15454, 1, IRET +15455, 41, CPU burst +15496, 1, switch to kernel mode +15497, 10, context saved +15507, 1, find vector 14 in memory position 0x001C +15508, 1, load address 0X0165 into the PC +15509, 40, ISR for device 14 +15549, 40, ISR for device 14 +15589, 40, ISR for device 14 +15629, 40, ISR for device 14 +15669, 40, ISR for device 14 +15709, 40, ISR for device 14 +15749, 40, ISR for device 14 +15789, 40, ISR for device 14 +15829, 40, ISR for device 14 +15869, 40, ISR for device 14 +15909, 40, ISR for device 14 +15949, 16, ISR for device 14 +15965, 1, IRET +15966, 99, CPU burst +16065, 1, switch to kernel mode +16066, 10, context saved +16076, 1, find vector 3 in memory position 0x0006 +16077, 1, load address 0X042B into the PC +16078, 40, ISR for device 3 +16118, 40, ISR for device 3 +16158, 40, ISR for device 3 +16198, 40, ISR for device 3 +16238, 40, ISR for device 3 +16278, 40, ISR for device 3 +16318, 40, ISR for device 3 +16358, 20, ISR for device 3 +16378, 1, IRET +16379, 50, CPU burst +16429, 1, switch to kernel mode +16430, 10, context saved +16440, 1, find vector 3 in memory position 0x0006 +16441, 1, load address 0X042B into the PC +16442, 40, ISR for device 3 +16482, 40, ISR for device 3 +16522, 40, ISR for device 3 +16562, 40, ISR for device 3 +16602, 40, ISR for device 3 +16642, 40, ISR for device 3 +16682, 40, ISR for device 3 +16722, 20, ISR for device 3 +16742, 1, IRET +16743, 22, CPU burst +16765, 1, switch to kernel mode +16766, 10, context saved +16776, 1, find vector 17 in memory position 0x0022 +16777, 1, load address 0X05B3 into the PC +16778, 40, ISR for device 17 +16818, 40, ISR for device 17 +16858, 40, ISR for device 17 +16898, 40, ISR for device 17 +16938, 40, ISR for device 17 +16978, 35, ISR for device 17 +17013, 1, IRET +17014, 66, CPU burst +17080, 1, switch to kernel mode +17081, 10, context saved +17091, 1, find vector 17 in memory position 0x0022 +17092, 1, load address 0X05B3 into the PC +17093, 40, ISR for device 17 +17133, 40, ISR for device 17 +17173, 40, ISR for device 17 +17213, 40, ISR for device 17 +17253, 40, ISR for device 17 +17293, 35, ISR for device 17 +17328, 1, IRET +17329, 55, CPU burst +17384, 1, switch to kernel mode +17385, 10, context saved +17395, 1, find vector 14 in memory position 0x001C +17396, 1, load address 0X0165 into the PC +17397, 40, ISR for device 14 +17437, 40, ISR for device 14 +17477, 40, ISR for device 14 +17517, 40, ISR for device 14 +17557, 40, ISR for device 14 +17597, 40, ISR for device 14 +17637, 40, ISR for device 14 +17677, 40, ISR for device 14 +17717, 40, ISR for device 14 +17757, 40, ISR for device 14 +17797, 40, ISR for device 14 +17837, 16, ISR for device 14 +17853, 1, IRET +17854, 80, CPU burst +17934, 1, switch to kernel mode +17935, 10, context saved +17945, 1, find vector 14 in memory position 0x001C +17946, 1, load address 0X0165 into the PC +17947, 40, ISR for device 14 +17987, 40, ISR for device 14 +18027, 40, ISR for device 14 +18067, 40, ISR for device 14 +18107, 40, ISR for device 14 +18147, 40, ISR for device 14 +18187, 40, ISR for device 14 +18227, 40, ISR for device 14 +18267, 40, ISR for device 14 +18307, 40, ISR for device 14 +18347, 40, ISR for device 14 +18387, 16, ISR for device 14 +18403, 1, IRET +18404, 51, CPU burst +18455, 1, switch to kernel mode +18456, 10, context saved +18466, 1, find vector 15 in memory position 0x001E +18467, 1, load address 0X0584 into the PC +18468, 40, ISR for device 15 +18508, 28, ISR for device 15 +18536, 1, IRET +18537, 61, CPU burst +18598, 1, switch to kernel mode +18599, 10, context saved +18609, 1, find vector 15 in memory position 0x001E +18610, 1, load address 0X0584 into the PC +18611, 40, ISR for device 15 +18651, 28, ISR for device 15 +18679, 1, IRET +18680, 39, CPU burst +18719, 1, switch to kernel mode +18720, 10, context saved +18730, 1, find vector 17 in memory position 0x0022 +18731, 1, load address 0X05B3 into the PC +18732, 40, ISR for device 17 +18772, 40, ISR for device 17 +18812, 40, ISR for device 17 +18852, 40, ISR for device 17 +18892, 40, ISR for device 17 +18932, 35, ISR for device 17 +18967, 1, IRET +18968, 80, CPU burst +19048, 1, switch to kernel mode +19049, 10, context saved +19059, 1, find vector 17 in memory position 0x0022 +19060, 1, load address 0X05B3 into the PC +19061, 40, ISR for device 17 +19101, 40, ISR for device 17 +19141, 40, ISR for device 17 +19181, 40, ISR for device 17 +19221, 40, ISR for device 17 +19261, 35, ISR for device 17 +19296, 1, IRET +19297, 96, CPU burst +19393, 1, switch to kernel mode +19394, 10, context saved +19404, 1, find vector 19 in memory position 0x0026 +19405, 1, load address 0X0765 into the PC +19406, 40, ISR for device 19 +19446, 40, ISR for device 19 +19486, 40, ISR for device 19 +19526, 40, ISR for device 19 +19566, 40, ISR for device 19 +19606, 40, ISR for device 19 +19646, 40, ISR for device 19 +19686, 40, ISR for device 19 +19726, 40, ISR for device 19 +19766, 40, ISR for device 19 +19806, 40, ISR for device 19 +19846, 40, ISR for device 19 +19886, 40, ISR for device 19 +19926, 40, ISR for device 19 +19966, 40, ISR for device 19 +20006, 40, ISR for device 19 +20046, 12, ISR for device 19 +20058, 1, IRET +20059, 88, CPU burst +20147, 1, switch to kernel mode +20148, 10, context saved +20158, 1, find vector 19 in memory position 0x0026 +20159, 1, load address 0X0765 into the PC +20160, 40, ISR for device 19 +20200, 40, ISR for device 19 +20240, 40, ISR for device 19 +20280, 40, ISR for device 19 +20320, 40, ISR for device 19 +20360, 40, ISR for device 19 +20400, 40, ISR for device 19 +20440, 40, ISR for device 19 +20480, 40, ISR for device 19 +20520, 40, ISR for device 19 +20560, 40, ISR for device 19 +20600, 40, ISR for device 19 +20640, 40, ISR for device 19 +20680, 40, ISR for device 19 +20720, 40, ISR for device 19 +20760, 40, ISR for device 19 +20800, 12, ISR for device 19 +20812, 1, IRET +20813, 97, CPU burst +20910, 1, switch to kernel mode +20911, 10, context saved +20921, 1, find vector 8 in memory position 0x0010 +20922, 1, load address 0X06EF into the PC +20923, 40, ISR for device 8 +20963, 40, ISR for device 8 +21003, 40, ISR for device 8 +21043, 40, ISR for device 8 +21083, 40, ISR for device 8 +21123, 40, ISR for device 8 +21163, 40, ISR for device 8 +21203, 40, ISR for device 8 +21243, 40, ISR for device 8 +21283, 40, ISR for device 8 +21323, 40, ISR for device 8 +21363, 40, ISR for device 8 +21403, 40, ISR for device 8 +21443, 40, ISR for device 8 +21483, 40, ISR for device 8 +21523, 40, ISR for device 8 +21563, 40, ISR for device 8 +21603, 40, ISR for device 8 +21643, 40, ISR for device 8 +21683, 40, ISR for device 8 +21723, 40, ISR for device 8 +21763, 40, ISR for device 8 +21803, 40, ISR for device 8 +21843, 40, ISR for device 8 +21883, 40, ISR for device 8 +21923, 1, IRET +21924, 39, CPU burst +21963, 1, switch to kernel mode +21964, 10, context saved +21974, 1, find vector 8 in memory position 0x0010 +21975, 1, load address 0X06EF into the PC +21976, 40, ISR for device 8 +22016, 40, ISR for device 8 +22056, 40, ISR for device 8 +22096, 40, ISR for device 8 +22136, 40, ISR for device 8 +22176, 40, ISR for device 8 +22216, 40, ISR for device 8 +22256, 40, ISR for device 8 +22296, 40, ISR for device 8 +22336, 40, ISR for device 8 +22376, 40, ISR for device 8 +22416, 40, ISR for device 8 +22456, 40, ISR for device 8 +22496, 40, ISR for device 8 +22536, 40, ISR for device 8 +22576, 40, ISR for device 8 +22616, 40, ISR for device 8 +22656, 40, ISR for device 8 +22696, 40, ISR for device 8 +22736, 40, ISR for device 8 +22776, 40, ISR for device 8 +22816, 40, ISR for device 8 +22856, 40, ISR for device 8 +22896, 40, ISR for device 8 +22936, 40, ISR for device 8 +22976, 1, IRET +22977, 30, CPU burst +23007, 1, switch to kernel mode +23008, 10, context saved +23018, 1, find vector 4 in memory position 0x0008 +23019, 1, load address 0X0292 into the PC +23020, 40, ISR for device 4 +23060, 40, ISR for device 4 +23100, 40, ISR for device 4 +23140, 40, ISR for device 4 +23180, 40, ISR for device 4 +23220, 40, ISR for device 4 +23260, 10, ISR for device 4 +23270, 1, IRET +23271, 77, CPU burst +23348, 1, switch to kernel mode +23349, 10, context saved +23359, 1, find vector 4 in memory position 0x0008 +23360, 1, load address 0X0292 into the PC +23361, 40, ISR for device 4 +23401, 40, ISR for device 4 +23441, 40, ISR for device 4 +23481, 40, ISR for device 4 +23521, 40, ISR for device 4 +23561, 40, ISR for device 4 +23601, 10, ISR for device 4 +23611, 1, IRET +23612, 85, CPU burst +23697, 1, switch to kernel mode +23698, 10, context saved +23708, 1, find vector 13 in memory position 0x001A +23709, 1, load address 0X06C7 into the PC +23710, 40, ISR for device 13 +23750, 40, ISR for device 13 +23790, 40, ISR for device 13 +23830, 40, ISR for device 13 +23870, 40, ISR for device 13 +23910, 40, ISR for device 13 +23950, 40, ISR for device 13 +23990, 40, ISR for device 13 +24030, 40, ISR for device 13 +24070, 40, ISR for device 13 +24110, 40, ISR for device 13 +24150, 40, ISR for device 13 +24190, 40, ISR for device 13 +24230, 40, ISR for device 13 +24270, 40, ISR for device 13 +24310, 36, ISR for device 13 +24346, 1, IRET +24347, 47, CPU burst +24394, 1, switch to kernel mode +24395, 10, context saved +24405, 1, find vector 13 in memory position 0x001A +24406, 1, load address 0X06C7 into the PC +24407, 40, ISR for device 13 +24447, 40, ISR for device 13 +24487, 40, ISR for device 13 +24527, 40, ISR for device 13 +24567, 40, ISR for device 13 +24607, 40, ISR for device 13 +24647, 40, ISR for device 13 +24687, 40, ISR for device 13 +24727, 40, ISR for device 13 +24767, 40, ISR for device 13 +24807, 40, ISR for device 13 +24847, 40, ISR for device 13 +24887, 40, ISR for device 13 +24927, 40, ISR for device 13 +24967, 40, ISR for device 13 +25007, 36, ISR for device 13 +25043, 1, IRET +25044, 18, CPU burst +25062, 44, CPU burst +25106, 53, CPU burst +25159, 1, switch to kernel mode +25160, 10, context saved +25170, 1, find vector 6 in memory position 0x000C +25171, 1, load address 0X0639 into the PC +25172, 40, ISR for device 6 +25212, 40, ISR for device 6 +25252, 40, ISR for device 6 +25292, 40, ISR for device 6 +25332, 40, ISR for device 6 +25372, 40, ISR for device 6 +25412, 25, ISR for device 6 +25437, 1, IRET +25438, 69, CPU burst +25507, 1, switch to kernel mode +25508, 10, context saved +25518, 1, find vector 6 in memory position 0x000C +25519, 1, load address 0X0639 into the PC +25520, 40, ISR for device 6 +25560, 40, ISR for device 6 +25600, 40, ISR for device 6 +25640, 40, ISR for device 6 +25680, 40, ISR for device 6 +25720, 40, ISR for device 6 +25760, 25, ISR for device 6 +25785, 1, IRET +25786, 72, CPU burst +25858, 1, switch to kernel mode +25859, 10, context saved +25869, 1, find vector 4 in memory position 0x0008 +25870, 1, load address 0X0292 into the PC +25871, 40, ISR for device 4 +25911, 40, ISR for device 4 +25951, 40, ISR for device 4 +25991, 40, ISR for device 4 +26031, 40, ISR for device 4 +26071, 40, ISR for device 4 +26111, 10, ISR for device 4 +26121, 1, IRET +26122, 25, CPU burst +26147, 1, switch to kernel mode +26148, 10, context saved +26158, 1, find vector 4 in memory position 0x0008 +26159, 1, load address 0X0292 into the PC +26160, 40, ISR for device 4 +26200, 40, ISR for device 4 +26240, 40, ISR for device 4 +26280, 40, ISR for device 4 +26320, 40, ISR for device 4 +26360, 40, ISR for device 4 +26400, 10, ISR for device 4 +26410, 1, IRET +26411, 87, CPU burst +26498, 1, switch to kernel mode +26499, 10, context saved +26509, 1, find vector 5 in memory position 0x000A +26510, 1, load address 0X048B into the PC +26511, 40, ISR for device 5 +26551, 40, ISR for device 5 +26591, 40, ISR for device 5 +26631, 40, ISR for device 5 +26671, 40, ISR for device 5 +26711, 11, ISR for device 5 +26722, 1, IRET +26723, 63, CPU burst +26786, 1, switch to kernel mode +26787, 10, context saved +26797, 1, find vector 5 in memory position 0x000A +26798, 1, load address 0X048B into the PC +26799, 40, ISR for device 5 +26839, 40, ISR for device 5 +26879, 40, ISR for device 5 +26919, 40, ISR for device 5 +26959, 40, ISR for device 5 +26999, 11, ISR for device 5 +27010, 1, IRET +27011, 11, CPU burst +27022, 1, switch to kernel mode +27023, 10, context saved +27033, 1, find vector 15 in memory position 0x001E +27034, 1, load address 0X0584 into the PC +27035, 40, ISR for device 15 +27075, 28, ISR for device 15 +27103, 1, IRET +27104, 74, CPU burst +27178, 1, switch to kernel mode +27179, 10, context saved +27189, 1, find vector 15 in memory position 0x001E +27190, 1, load address 0X0584 into the PC +27191, 40, ISR for device 15 +27231, 28, ISR for device 15 +27259, 1, IRET +27260, 19, CPU burst +27279, 1, switch to kernel mode +27280, 10, context saved +27290, 1, find vector 4 in memory position 0x0008 +27291, 1, load address 0X0292 into the PC +27292, 40, ISR for device 4 +27332, 40, ISR for device 4 +27372, 40, ISR for device 4 +27412, 40, ISR for device 4 +27452, 40, ISR for device 4 +27492, 40, ISR for device 4 +27532, 10, ISR for device 4 +27542, 1, IRET +27543, 69, CPU burst +27612, 1, switch to kernel mode +27613, 10, context saved +27623, 1, find vector 4 in memory position 0x0008 +27624, 1, load address 0X0292 into the PC +27625, 40, ISR for device 4 +27665, 40, ISR for device 4 +27705, 40, ISR for device 4 +27745, 40, ISR for device 4 +27785, 40, ISR for device 4 +27825, 40, ISR for device 4 +27865, 10, ISR for device 4 +27875, 1, IRET +27876, 50, CPU burst +27926, 1, switch to kernel mode +27927, 10, context saved +27937, 1, find vector 5 in memory position 0x000A +27938, 1, load address 0X048B into the PC +27939, 40, ISR for device 5 +27979, 40, ISR for device 5 +28019, 40, ISR for device 5 +28059, 40, ISR for device 5 +28099, 40, ISR for device 5 +28139, 11, ISR for device 5 +28150, 1, IRET +28151, 28, CPU burst +28179, 1, switch to kernel mode +28180, 10, context saved +28190, 1, find vector 5 in memory position 0x000A +28191, 1, load address 0X048B into the PC +28192, 40, ISR for device 5 +28232, 40, ISR for device 5 +28272, 40, ISR for device 5 +28312, 40, ISR for device 5 +28352, 40, ISR for device 5 +28392, 11, ISR for device 5 +28403, 1, IRET +28404, 23, CPU burst diff --git a/execution_trace_4.txt b/execution_trace_4.txt new file mode 100644 index 0000000..dc082a0 --- /dev/null +++ b/execution_trace_4.txt @@ -0,0 +1,997 @@ +0, 86, CPU burst +86, 1, switch to kernel mode +87, 10, context saved +97, 1, find vector 9 in memory position 0x0012 +98, 1, load address 0X036C into the PC +99, 40, ISR for device 9 +139, 40, ISR for device 9 +179, 40, ISR for device 9 +219, 36, ISR for device 9 +255, 1, IRET +256, 61, CPU burst +317, 1, switch to kernel mode +318, 10, context saved +328, 1, find vector 9 in memory position 0x0012 +329, 1, load address 0X036C into the PC +330, 40, ISR for device 9 +370, 40, ISR for device 9 +410, 40, ISR for device 9 +450, 36, ISR for device 9 +486, 1, IRET +487, 27, CPU burst +514, 1, switch to kernel mode +515, 10, context saved +525, 1, find vector 17 in memory position 0x0022 +526, 1, load address 0X05B3 into the PC +527, 40, ISR for device 17 +567, 40, ISR for device 17 +607, 40, ISR for device 17 +647, 40, ISR for device 17 +687, 40, ISR for device 17 +727, 35, ISR for device 17 +762, 1, IRET +763, 19, CPU burst +782, 1, switch to kernel mode +783, 10, context saved +793, 1, find vector 17 in memory position 0x0022 +794, 1, load address 0X05B3 into the PC +795, 40, ISR for device 17 +835, 40, ISR for device 17 +875, 40, ISR for device 17 +915, 40, ISR for device 17 +955, 40, ISR for device 17 +995, 35, ISR for device 17 +1030, 1, IRET +1031, 92, CPU burst +1123, 1, switch to kernel mode +1124, 10, context saved +1134, 1, find vector 8 in memory position 0x0010 +1135, 1, load address 0X06EF into the PC +1136, 40, ISR for device 8 +1176, 40, ISR for device 8 +1216, 40, ISR for device 8 +1256, 40, ISR for device 8 +1296, 40, ISR for device 8 +1336, 40, ISR for device 8 +1376, 40, ISR for device 8 +1416, 40, ISR for device 8 +1456, 40, ISR for device 8 +1496, 40, ISR for device 8 +1536, 40, ISR for device 8 +1576, 40, ISR for device 8 +1616, 40, ISR for device 8 +1656, 40, ISR for device 8 +1696, 40, ISR for device 8 +1736, 40, ISR for device 8 +1776, 40, ISR for device 8 +1816, 40, ISR for device 8 +1856, 40, ISR for device 8 +1896, 40, ISR for device 8 +1936, 40, ISR for device 8 +1976, 40, ISR for device 8 +2016, 40, ISR for device 8 +2056, 40, ISR for device 8 +2096, 40, ISR for device 8 +2136, 1, IRET +2137, 36, CPU burst +2173, 1, switch to kernel mode +2174, 10, context saved +2184, 1, find vector 8 in memory position 0x0010 +2185, 1, load address 0X06EF into the PC +2186, 40, ISR for device 8 +2226, 40, ISR for device 8 +2266, 40, ISR for device 8 +2306, 40, ISR for device 8 +2346, 40, ISR for device 8 +2386, 40, ISR for device 8 +2426, 40, ISR for device 8 +2466, 40, ISR for device 8 +2506, 40, ISR for device 8 +2546, 40, ISR for device 8 +2586, 40, ISR for device 8 +2626, 40, ISR for device 8 +2666, 40, ISR for device 8 +2706, 40, ISR for device 8 +2746, 40, ISR for device 8 +2786, 40, ISR for device 8 +2826, 40, ISR for device 8 +2866, 40, ISR for device 8 +2906, 40, ISR for device 8 +2946, 40, ISR for device 8 +2986, 40, ISR for device 8 +3026, 40, ISR for device 8 +3066, 40, ISR for device 8 +3106, 40, ISR for device 8 +3146, 40, ISR for device 8 +3186, 1, IRET +3187, 19, CPU burst +3206, 1, switch to kernel mode +3207, 10, context saved +3217, 1, find vector 1 in memory position 0x0002 +3218, 1, load address 0X029C into the PC +3219, 40, ISR for device 1 +3259, 40, ISR for device 1 +3299, 20, ISR for device 1 +3319, 1, IRET +3320, 33, CPU burst +3353, 1, switch to kernel mode +3354, 10, context saved +3364, 1, find vector 1 in memory position 0x0002 +3365, 1, load address 0X029C into the PC +3366, 40, ISR for device 1 +3406, 40, ISR for device 1 +3446, 20, ISR for device 1 +3466, 1, IRET +3467, 90, CPU burst +3557, 13, CPU burst +3570, 12, CPU burst +3582, 1, switch to kernel mode +3583, 10, context saved +3593, 1, find vector 13 in memory position 0x001A +3594, 1, load address 0X06C7 into the PC +3595, 40, ISR for device 13 +3635, 40, ISR for device 13 +3675, 40, ISR for device 13 +3715, 40, ISR for device 13 +3755, 40, ISR for device 13 +3795, 40, ISR for device 13 +3835, 40, ISR for device 13 +3875, 40, ISR for device 13 +3915, 40, ISR for device 13 +3955, 40, ISR for device 13 +3995, 40, ISR for device 13 +4035, 40, ISR for device 13 +4075, 40, ISR for device 13 +4115, 40, ISR for device 13 +4155, 40, ISR for device 13 +4195, 36, ISR for device 13 +4231, 1, IRET +4232, 23, CPU burst +4255, 1, switch to kernel mode +4256, 10, context saved +4266, 1, find vector 13 in memory position 0x001A +4267, 1, load address 0X06C7 into the PC +4268, 40, ISR for device 13 +4308, 40, ISR for device 13 +4348, 40, ISR for device 13 +4388, 40, ISR for device 13 +4428, 40, ISR for device 13 +4468, 40, ISR for device 13 +4508, 40, ISR for device 13 +4548, 40, ISR for device 13 +4588, 40, ISR for device 13 +4628, 40, ISR for device 13 +4668, 40, ISR for device 13 +4708, 40, ISR for device 13 +4748, 40, ISR for device 13 +4788, 40, ISR for device 13 +4828, 40, ISR for device 13 +4868, 36, ISR for device 13 +4904, 1, IRET +4905, 51, CPU burst +4956, 1, switch to kernel mode +4957, 10, context saved +4967, 1, find vector 10 in memory position 0x0014 +4968, 1, load address 0X07B0 into the PC +4969, 40, ISR for device 10 +5009, 40, ISR for device 10 +5049, 40, ISR for device 10 +5089, 40, ISR for device 10 +5129, 40, ISR for device 10 +5169, 40, ISR for device 10 +5209, 40, ISR for device 10 +5249, 40, ISR for device 10 +5289, 40, ISR for device 10 +5329, 40, ISR for device 10 +5369, 40, ISR for device 10 +5409, 40, ISR for device 10 +5449, 40, ISR for device 10 +5489, 40, ISR for device 10 +5529, 4, ISR for device 10 +5533, 1, IRET +5534, 49, CPU burst +5583, 1, switch to kernel mode +5584, 10, context saved +5594, 1, find vector 10 in memory position 0x0014 +5595, 1, load address 0X07B0 into the PC +5596, 40, ISR for device 10 +5636, 40, ISR for device 10 +5676, 40, ISR for device 10 +5716, 40, ISR for device 10 +5756, 40, ISR for device 10 +5796, 40, ISR for device 10 +5836, 40, ISR for device 10 +5876, 40, ISR for device 10 +5916, 40, ISR for device 10 +5956, 40, ISR for device 10 +5996, 40, ISR for device 10 +6036, 40, ISR for device 10 +6076, 40, ISR for device 10 +6116, 40, ISR for device 10 +6156, 4, ISR for device 10 +6160, 1, IRET +6161, 87, CPU burst +6248, 1, switch to kernel mode +6249, 10, context saved +6259, 1, find vector 5 in memory position 0x000A +6260, 1, load address 0X048B into the PC +6261, 40, ISR for device 5 +6301, 40, ISR for device 5 +6341, 40, ISR for device 5 +6381, 40, ISR for device 5 +6421, 40, ISR for device 5 +6461, 11, ISR for device 5 +6472, 1, IRET +6473, 55, CPU burst +6528, 1, switch to kernel mode +6529, 10, context saved +6539, 1, find vector 5 in memory position 0x000A +6540, 1, load address 0X048B into the PC +6541, 40, ISR for device 5 +6581, 40, ISR for device 5 +6621, 40, ISR for device 5 +6661, 40, ISR for device 5 +6701, 40, ISR for device 5 +6741, 11, ISR for device 5 +6752, 1, IRET +6753, 17, CPU burst +6770, 1, switch to kernel mode +6771, 10, context saved +6781, 1, find vector 3 in memory position 0x0006 +6782, 1, load address 0X042B into the PC +6783, 40, ISR for device 3 +6823, 40, ISR for device 3 +6863, 40, ISR for device 3 +6903, 40, ISR for device 3 +6943, 40, ISR for device 3 +6983, 40, ISR for device 3 +7023, 40, ISR for device 3 +7063, 20, ISR for device 3 +7083, 1, IRET +7084, 66, CPU burst +7150, 1, switch to kernel mode +7151, 10, context saved +7161, 1, find vector 3 in memory position 0x0006 +7162, 1, load address 0X042B into the PC +7163, 40, ISR for device 3 +7203, 40, ISR for device 3 +7243, 40, ISR for device 3 +7283, 40, ISR for device 3 +7323, 40, ISR for device 3 +7363, 40, ISR for device 3 +7403, 40, ISR for device 3 +7443, 20, ISR for device 3 +7463, 1, IRET +7464, 93, CPU burst +7557, 12, CPU burst +7569, 88, CPU burst +7657, 1, switch to kernel mode +7658, 10, context saved +7668, 1, find vector 14 in memory position 0x001C +7669, 1, load address 0X0165 into the PC +7670, 40, ISR for device 14 +7710, 40, ISR for device 14 +7750, 40, ISR for device 14 +7790, 40, ISR for device 14 +7830, 40, ISR for device 14 +7870, 40, ISR for device 14 +7910, 40, ISR for device 14 +7950, 40, ISR for device 14 +7990, 40, ISR for device 14 +8030, 40, ISR for device 14 +8070, 40, ISR for device 14 +8110, 16, ISR for device 14 +8126, 1, IRET +8127, 79, CPU burst +8206, 1, switch to kernel mode +8207, 10, context saved +8217, 1, find vector 14 in memory position 0x001C +8218, 1, load address 0X0165 into the PC +8219, 40, ISR for device 14 +8259, 40, ISR for device 14 +8299, 40, ISR for device 14 +8339, 40, ISR for device 14 +8379, 40, ISR for device 14 +8419, 40, ISR for device 14 +8459, 40, ISR for device 14 +8499, 40, ISR for device 14 +8539, 40, ISR for device 14 +8579, 40, ISR for device 14 +8619, 40, ISR for device 14 +8659, 16, ISR for device 14 +8675, 1, IRET +8676, 93, CPU burst +8769, 1, switch to kernel mode +8770, 10, context saved +8780, 1, find vector 1 in memory position 0x0002 +8781, 1, load address 0X029C into the PC +8782, 40, ISR for device 1 +8822, 40, ISR for device 1 +8862, 20, ISR for device 1 +8882, 1, IRET +8883, 94, CPU burst +8977, 1, switch to kernel mode +8978, 10, context saved +8988, 1, find vector 1 in memory position 0x0002 +8989, 1, load address 0X029C into the PC +8990, 40, ISR for device 1 +9030, 40, ISR for device 1 +9070, 20, ISR for device 1 +9090, 1, IRET +9091, 68, CPU burst +9159, 1, switch to kernel mode +9160, 10, context saved +9170, 1, find vector 3 in memory position 0x0006 +9171, 1, load address 0X042B into the PC +9172, 40, ISR for device 3 +9212, 40, ISR for device 3 +9252, 40, ISR for device 3 +9292, 40, ISR for device 3 +9332, 40, ISR for device 3 +9372, 40, ISR for device 3 +9412, 40, ISR for device 3 +9452, 20, ISR for device 3 +9472, 1, IRET +9473, 58, CPU burst +9531, 1, switch to kernel mode +9532, 10, context saved +9542, 1, find vector 3 in memory position 0x0006 +9543, 1, load address 0X042B into the PC +9544, 40, ISR for device 3 +9584, 40, ISR for device 3 +9624, 40, ISR for device 3 +9664, 40, ISR for device 3 +9704, 40, ISR for device 3 +9744, 40, ISR for device 3 +9784, 40, ISR for device 3 +9824, 20, ISR for device 3 +9844, 1, IRET +9845, 48, CPU burst +9893, 1, switch to kernel mode +9894, 10, context saved +9904, 1, find vector 14 in memory position 0x001C +9905, 1, load address 0X0165 into the PC +9906, 40, ISR for device 14 +9946, 40, ISR for device 14 +9986, 40, ISR for device 14 +10026, 40, ISR for device 14 +10066, 40, ISR for device 14 +10106, 40, ISR for device 14 +10146, 40, ISR for device 14 +10186, 40, ISR for device 14 +10226, 40, ISR for device 14 +10266, 40, ISR for device 14 +10306, 40, ISR for device 14 +10346, 16, ISR for device 14 +10362, 1, IRET +10363, 87, CPU burst +10450, 1, switch to kernel mode +10451, 10, context saved +10461, 1, find vector 14 in memory position 0x001C +10462, 1, load address 0X0165 into the PC +10463, 40, ISR for device 14 +10503, 40, ISR for device 14 +10543, 40, ISR for device 14 +10583, 40, ISR for device 14 +10623, 40, ISR for device 14 +10663, 40, ISR for device 14 +10703, 40, ISR for device 14 +10743, 40, ISR for device 14 +10783, 40, ISR for device 14 +10823, 40, ISR for device 14 +10863, 40, ISR for device 14 +10903, 16, ISR for device 14 +10919, 1, IRET +10920, 72, CPU burst +10992, 1, switch to kernel mode +10993, 10, context saved +11003, 1, find vector 8 in memory position 0x0010 +11004, 1, load address 0X06EF into the PC +11005, 40, ISR for device 8 +11045, 40, ISR for device 8 +11085, 40, ISR for device 8 +11125, 40, ISR for device 8 +11165, 40, ISR for device 8 +11205, 40, ISR for device 8 +11245, 40, ISR for device 8 +11285, 40, ISR for device 8 +11325, 40, ISR for device 8 +11365, 40, ISR for device 8 +11405, 40, ISR for device 8 +11445, 40, ISR for device 8 +11485, 40, ISR for device 8 +11525, 40, ISR for device 8 +11565, 40, ISR for device 8 +11605, 40, ISR for device 8 +11645, 40, ISR for device 8 +11685, 40, ISR for device 8 +11725, 40, ISR for device 8 +11765, 40, ISR for device 8 +11805, 40, ISR for device 8 +11845, 40, ISR for device 8 +11885, 40, ISR for device 8 +11925, 40, ISR for device 8 +11965, 40, ISR for device 8 +12005, 1, IRET +12006, 82, CPU burst +12088, 1, switch to kernel mode +12089, 10, context saved +12099, 1, find vector 8 in memory position 0x0010 +12100, 1, load address 0X06EF into the PC +12101, 40, ISR for device 8 +12141, 40, ISR for device 8 +12181, 40, ISR for device 8 +12221, 40, ISR for device 8 +12261, 40, ISR for device 8 +12301, 40, ISR for device 8 +12341, 40, ISR for device 8 +12381, 40, ISR for device 8 +12421, 40, ISR for device 8 +12461, 40, ISR for device 8 +12501, 40, ISR for device 8 +12541, 40, ISR for device 8 +12581, 40, ISR for device 8 +12621, 40, ISR for device 8 +12661, 40, ISR for device 8 +12701, 40, ISR for device 8 +12741, 40, ISR for device 8 +12781, 40, ISR for device 8 +12821, 40, ISR for device 8 +12861, 40, ISR for device 8 +12901, 40, ISR for device 8 +12941, 40, ISR for device 8 +12981, 40, ISR for device 8 +13021, 40, ISR for device 8 +13061, 40, ISR for device 8 +13101, 1, IRET +13102, 99, CPU burst +13201, 1, switch to kernel mode +13202, 10, context saved +13212, 1, find vector 18 in memory position 0x0024 +13213, 1, load address 0X060A into the PC +13214, 40, ISR for device 18 +13254, 40, ISR for device 18 +13294, 40, ISR for device 18 +13334, 3, ISR for device 18 +13337, 1, IRET +13338, 65, CPU burst +13403, 1, switch to kernel mode +13404, 10, context saved +13414, 1, find vector 18 in memory position 0x0024 +13415, 1, load address 0X060A into the PC +13416, 40, ISR for device 18 +13456, 40, ISR for device 18 +13496, 40, ISR for device 18 +13536, 3, ISR for device 18 +13539, 1, IRET +13540, 24, CPU burst +13564, 1, switch to kernel mode +13565, 10, context saved +13575, 1, find vector 12 in memory position 0x0018 +13576, 1, load address 0X03B9 into the PC +13577, 40, ISR for device 12 +13617, 40, ISR for device 12 +13657, 40, ISR for device 12 +13697, 25, ISR for device 12 +13722, 1, IRET +13723, 26, CPU burst +13749, 1, switch to kernel mode +13750, 10, context saved +13760, 1, find vector 12 in memory position 0x0018 +13761, 1, load address 0X03B9 into the PC +13762, 40, ISR for device 12 +13802, 40, ISR for device 12 +13842, 40, ISR for device 12 +13882, 25, ISR for device 12 +13907, 1, IRET +13908, 54, CPU burst +13962, 1, switch to kernel mode +13963, 10, context saved +13973, 1, find vector 11 in memory position 0x0016 +13974, 1, load address 0X01F8 into the PC +13975, 40, ISR for device 11 +14015, 40, ISR for device 11 +14055, 40, ISR for device 11 +14095, 40, ISR for device 11 +14135, 40, ISR for device 11 +14175, 40, ISR for device 11 +14215, 40, ISR for device 11 +14255, 40, ISR for device 11 +14295, 40, ISR for device 11 +14335, 40, ISR for device 11 +14375, 40, ISR for device 11 +14415, 40, ISR for device 11 +14455, 40, ISR for device 11 +14495, 3, ISR for device 11 +14498, 1, IRET +14499, 78, CPU burst +14577, 1, switch to kernel mode +14578, 10, context saved +14588, 1, find vector 11 in memory position 0x0016 +14589, 1, load address 0X01F8 into the PC +14590, 40, ISR for device 11 +14630, 40, ISR for device 11 +14670, 40, ISR for device 11 +14710, 40, ISR for device 11 +14750, 40, ISR for device 11 +14790, 40, ISR for device 11 +14830, 40, ISR for device 11 +14870, 40, ISR for device 11 +14910, 40, ISR for device 11 +14950, 40, ISR for device 11 +14990, 40, ISR for device 11 +15030, 40, ISR for device 11 +15070, 40, ISR for device 11 +15110, 3, ISR for device 11 +15113, 1, IRET +15114, 66, CPU burst +15180, 1, switch to kernel mode +15181, 10, context saved +15191, 1, find vector 15 in memory position 0x001E +15192, 1, load address 0X0584 into the PC +15193, 40, ISR for device 15 +15233, 28, ISR for device 15 +15261, 1, IRET +15262, 79, CPU burst +15341, 1, switch to kernel mode +15342, 10, context saved +15352, 1, find vector 15 in memory position 0x001E +15353, 1, load address 0X0584 into the PC +15354, 40, ISR for device 15 +15394, 28, ISR for device 15 +15422, 1, IRET +15423, 82, CPU burst +15505, 1, switch to kernel mode +15506, 10, context saved +15516, 1, find vector 4 in memory position 0x0008 +15517, 1, load address 0X0292 into the PC +15518, 40, ISR for device 4 +15558, 40, ISR for device 4 +15598, 40, ISR for device 4 +15638, 40, ISR for device 4 +15678, 40, ISR for device 4 +15718, 40, ISR for device 4 +15758, 10, ISR for device 4 +15768, 1, IRET +15769, 88, CPU burst +15857, 1, switch to kernel mode +15858, 10, context saved +15868, 1, find vector 4 in memory position 0x0008 +15869, 1, load address 0X0292 into the PC +15870, 40, ISR for device 4 +15910, 40, ISR for device 4 +15950, 40, ISR for device 4 +15990, 40, ISR for device 4 +16030, 40, ISR for device 4 +16070, 40, ISR for device 4 +16110, 10, ISR for device 4 +16120, 1, IRET +16121, 16, CPU burst +16137, 1, switch to kernel mode +16138, 10, context saved +16148, 1, find vector 8 in memory position 0x0010 +16149, 1, load address 0X06EF into the PC +16150, 40, ISR for device 8 +16190, 40, ISR for device 8 +16230, 40, ISR for device 8 +16270, 40, ISR for device 8 +16310, 40, ISR for device 8 +16350, 40, ISR for device 8 +16390, 40, ISR for device 8 +16430, 40, ISR for device 8 +16470, 40, ISR for device 8 +16510, 40, ISR for device 8 +16550, 40, ISR for device 8 +16590, 40, ISR for device 8 +16630, 40, ISR for device 8 +16670, 40, ISR for device 8 +16710, 40, ISR for device 8 +16750, 40, ISR for device 8 +16790, 40, ISR for device 8 +16830, 40, ISR for device 8 +16870, 40, ISR for device 8 +16910, 40, ISR for device 8 +16950, 40, ISR for device 8 +16990, 40, ISR for device 8 +17030, 40, ISR for device 8 +17070, 40, ISR for device 8 +17110, 40, ISR for device 8 +17150, 1, IRET +17151, 26, CPU burst +17177, 1, switch to kernel mode +17178, 10, context saved +17188, 1, find vector 8 in memory position 0x0010 +17189, 1, load address 0X06EF into the PC +17190, 40, ISR for device 8 +17230, 40, ISR for device 8 +17270, 40, ISR for device 8 +17310, 40, ISR for device 8 +17350, 40, ISR for device 8 +17390, 40, ISR for device 8 +17430, 40, ISR for device 8 +17470, 40, ISR for device 8 +17510, 40, ISR for device 8 +17550, 40, ISR for device 8 +17590, 40, ISR for device 8 +17630, 40, ISR for device 8 +17670, 40, ISR for device 8 +17710, 40, ISR for device 8 +17750, 40, ISR for device 8 +17790, 40, ISR for device 8 +17830, 40, ISR for device 8 +17870, 40, ISR for device 8 +17910, 40, ISR for device 8 +17950, 40, ISR for device 8 +17990, 40, ISR for device 8 +18030, 40, ISR for device 8 +18070, 40, ISR for device 8 +18110, 40, ISR for device 8 +18150, 40, ISR for device 8 +18190, 1, IRET +18191, 22, CPU burst +18213, 1, switch to kernel mode +18214, 10, context saved +18224, 1, find vector 18 in memory position 0x0024 +18225, 1, load address 0X060A into the PC +18226, 40, ISR for device 18 +18266, 40, ISR for device 18 +18306, 40, ISR for device 18 +18346, 3, ISR for device 18 +18349, 1, IRET +18350, 95, CPU burst +18445, 1, switch to kernel mode +18446, 10, context saved +18456, 1, find vector 18 in memory position 0x0024 +18457, 1, load address 0X060A into the PC +18458, 40, ISR for device 18 +18498, 40, ISR for device 18 +18538, 40, ISR for device 18 +18578, 3, ISR for device 18 +18581, 1, IRET +18582, 63, CPU burst +18645, 1, switch to kernel mode +18646, 10, context saved +18656, 1, find vector 18 in memory position 0x0024 +18657, 1, load address 0X060A into the PC +18658, 40, ISR for device 18 +18698, 40, ISR for device 18 +18738, 40, ISR for device 18 +18778, 3, ISR for device 18 +18781, 1, IRET +18782, 18, CPU burst +18800, 1, switch to kernel mode +18801, 10, context saved +18811, 1, find vector 18 in memory position 0x0024 +18812, 1, load address 0X060A into the PC +18813, 40, ISR for device 18 +18853, 40, ISR for device 18 +18893, 40, ISR for device 18 +18933, 3, ISR for device 18 +18936, 1, IRET +18937, 50, CPU burst +18987, 1, switch to kernel mode +18988, 10, context saved +18998, 1, find vector 14 in memory position 0x001C +18999, 1, load address 0X0165 into the PC +19000, 40, ISR for device 14 +19040, 40, ISR for device 14 +19080, 40, ISR for device 14 +19120, 40, ISR for device 14 +19160, 40, ISR for device 14 +19200, 40, ISR for device 14 +19240, 40, ISR for device 14 +19280, 40, ISR for device 14 +19320, 40, ISR for device 14 +19360, 40, ISR for device 14 +19400, 40, ISR for device 14 +19440, 16, ISR for device 14 +19456, 1, IRET +19457, 56, CPU burst +19513, 1, switch to kernel mode +19514, 10, context saved +19524, 1, find vector 14 in memory position 0x001C +19525, 1, load address 0X0165 into the PC +19526, 40, ISR for device 14 +19566, 40, ISR for device 14 +19606, 40, ISR for device 14 +19646, 40, ISR for device 14 +19686, 40, ISR for device 14 +19726, 40, ISR for device 14 +19766, 40, ISR for device 14 +19806, 40, ISR for device 14 +19846, 40, ISR for device 14 +19886, 40, ISR for device 14 +19926, 40, ISR for device 14 +19966, 16, ISR for device 14 +19982, 1, IRET +19983, 83, CPU burst +20066, 1, switch to kernel mode +20067, 10, context saved +20077, 1, find vector 16 in memory position 0x0020 +20078, 1, load address 0X02DF into the PC +20079, 40, ISR for device 16 +20119, 40, ISR for device 16 +20159, 40, ISR for device 16 +20199, 40, ISR for device 16 +20239, 40, ISR for device 16 +20279, 40, ISR for device 16 +20319, 40, ISR for device 16 +20359, 40, ISR for device 16 +20399, 40, ISR for device 16 +20439, 40, ISR for device 16 +20479, 40, ISR for device 16 +20519, 40, ISR for device 16 +20559, 40, ISR for device 16 +20599, 40, ISR for device 16 +20639, 40, ISR for device 16 +20679, 40, ISR for device 16 +20719, 40, ISR for device 16 +20759, 40, ISR for device 16 +20799, 40, ISR for device 16 +20839, 40, ISR for device 16 +20879, 40, ISR for device 16 +20919, 40, ISR for device 16 +20959, 40, ISR for device 16 +20999, 36, ISR for device 16 +21035, 1, IRET +21036, 23, CPU burst +21059, 1, switch to kernel mode +21060, 10, context saved +21070, 1, find vector 16 in memory position 0x0020 +21071, 1, load address 0X02DF into the PC +21072, 40, ISR for device 16 +21112, 40, ISR for device 16 +21152, 40, ISR for device 16 +21192, 40, ISR for device 16 +21232, 40, ISR for device 16 +21272, 40, ISR for device 16 +21312, 40, ISR for device 16 +21352, 40, ISR for device 16 +21392, 40, ISR for device 16 +21432, 40, ISR for device 16 +21472, 40, ISR for device 16 +21512, 40, ISR for device 16 +21552, 40, ISR for device 16 +21592, 40, ISR for device 16 +21632, 40, ISR for device 16 +21672, 40, ISR for device 16 +21712, 40, ISR for device 16 +21752, 40, ISR for device 16 +21792, 40, ISR for device 16 +21832, 40, ISR for device 16 +21872, 40, ISR for device 16 +21912, 40, ISR for device 16 +21952, 40, ISR for device 16 +21992, 36, ISR for device 16 +22028, 1, IRET +22029, 80, CPU burst +22109, 1, switch to kernel mode +22110, 10, context saved +22120, 1, find vector 15 in memory position 0x001E +22121, 1, load address 0X0584 into the PC +22122, 40, ISR for device 15 +22162, 28, ISR for device 15 +22190, 1, IRET +22191, 98, CPU burst +22289, 1, switch to kernel mode +22290, 10, context saved +22300, 1, find vector 15 in memory position 0x001E +22301, 1, load address 0X0584 into the PC +22302, 40, ISR for device 15 +22342, 28, ISR for device 15 +22370, 1, IRET +22371, 77, CPU burst +22448, 1, switch to kernel mode +22449, 10, context saved +22459, 1, find vector 14 in memory position 0x001C +22460, 1, load address 0X0165 into the PC +22461, 40, ISR for device 14 +22501, 40, ISR for device 14 +22541, 40, ISR for device 14 +22581, 40, ISR for device 14 +22621, 40, ISR for device 14 +22661, 40, ISR for device 14 +22701, 40, ISR for device 14 +22741, 40, ISR for device 14 +22781, 40, ISR for device 14 +22821, 40, ISR for device 14 +22861, 40, ISR for device 14 +22901, 16, ISR for device 14 +22917, 1, IRET +22918, 11, CPU burst +22929, 1, switch to kernel mode +22930, 10, context saved +22940, 1, find vector 14 in memory position 0x001C +22941, 1, load address 0X0165 into the PC +22942, 40, ISR for device 14 +22982, 40, ISR for device 14 +23022, 40, ISR for device 14 +23062, 40, ISR for device 14 +23102, 40, ISR for device 14 +23142, 40, ISR for device 14 +23182, 40, ISR for device 14 +23222, 40, ISR for device 14 +23262, 40, ISR for device 14 +23302, 40, ISR for device 14 +23342, 40, ISR for device 14 +23382, 16, ISR for device 14 +23398, 1, IRET +23399, 61, CPU burst +23460, 1, switch to kernel mode +23461, 10, context saved +23471, 1, find vector 14 in memory position 0x001C +23472, 1, load address 0X0165 into the PC +23473, 40, ISR for device 14 +23513, 40, ISR for device 14 +23553, 40, ISR for device 14 +23593, 40, ISR for device 14 +23633, 40, ISR for device 14 +23673, 40, ISR for device 14 +23713, 40, ISR for device 14 +23753, 40, ISR for device 14 +23793, 40, ISR for device 14 +23833, 40, ISR for device 14 +23873, 40, ISR for device 14 +23913, 16, ISR for device 14 +23929, 1, IRET +23930, 34, CPU burst +23964, 1, switch to kernel mode +23965, 10, context saved +23975, 1, find vector 14 in memory position 0x001C +23976, 1, load address 0X0165 into the PC +23977, 40, ISR for device 14 +24017, 40, ISR for device 14 +24057, 40, ISR for device 14 +24097, 40, ISR for device 14 +24137, 40, ISR for device 14 +24177, 40, ISR for device 14 +24217, 40, ISR for device 14 +24257, 40, ISR for device 14 +24297, 40, ISR for device 14 +24337, 40, ISR for device 14 +24377, 40, ISR for device 14 +24417, 16, ISR for device 14 +24433, 1, IRET +24434, 32, CPU burst +24466, 1, switch to kernel mode +24467, 10, context saved +24477, 1, find vector 7 in memory position 0x000E +24478, 1, load address 0X00BD into the PC +24479, 40, ISR for device 7 +24519, 40, ISR for device 7 +24559, 40, ISR for device 7 +24599, 32, ISR for device 7 +24631, 1, IRET +24632, 69, CPU burst +24701, 1, switch to kernel mode +24702, 10, context saved +24712, 1, find vector 7 in memory position 0x000E +24713, 1, load address 0X00BD into the PC +24714, 40, ISR for device 7 +24754, 40, ISR for device 7 +24794, 40, ISR for device 7 +24834, 32, ISR for device 7 +24866, 1, IRET +24867, 79, CPU burst +24946, 41, CPU burst +24987, 63, CPU burst +25050, 1, switch to kernel mode +25051, 10, context saved +25061, 1, find vector 7 in memory position 0x000E +25062, 1, load address 0X00BD into the PC +25063, 40, ISR for device 7 +25103, 40, ISR for device 7 +25143, 40, ISR for device 7 +25183, 32, ISR for device 7 +25215, 1, IRET +25216, 27, CPU burst +25243, 1, switch to kernel mode +25244, 10, context saved +25254, 1, find vector 7 in memory position 0x000E +25255, 1, load address 0X00BD into the PC +25256, 40, ISR for device 7 +25296, 40, ISR for device 7 +25336, 40, ISR for device 7 +25376, 32, ISR for device 7 +25408, 1, IRET +25409, 85, CPU burst +25494, 1, switch to kernel mode +25495, 10, context saved +25505, 1, find vector 11 in memory position 0x0016 +25506, 1, load address 0X01F8 into the PC +25507, 40, ISR for device 11 +25547, 40, ISR for device 11 +25587, 40, ISR for device 11 +25627, 40, ISR for device 11 +25667, 40, ISR for device 11 +25707, 40, ISR for device 11 +25747, 40, ISR for device 11 +25787, 40, ISR for device 11 +25827, 40, ISR for device 11 +25867, 40, ISR for device 11 +25907, 40, ISR for device 11 +25947, 40, ISR for device 11 +25987, 40, ISR for device 11 +26027, 3, ISR for device 11 +26030, 1, IRET +26031, 68, CPU burst +26099, 1, switch to kernel mode +26100, 10, context saved +26110, 1, find vector 11 in memory position 0x0016 +26111, 1, load address 0X01F8 into the PC +26112, 40, ISR for device 11 +26152, 40, ISR for device 11 +26192, 40, ISR for device 11 +26232, 40, ISR for device 11 +26272, 40, ISR for device 11 +26312, 40, ISR for device 11 +26352, 40, ISR for device 11 +26392, 40, ISR for device 11 +26432, 40, ISR for device 11 +26472, 40, ISR for device 11 +26512, 40, ISR for device 11 +26552, 40, ISR for device 11 +26592, 40, ISR for device 11 +26632, 3, ISR for device 11 +26635, 1, IRET +26636, 23, CPU burst +26659, 1, switch to kernel mode +26660, 10, context saved +26670, 1, find vector 14 in memory position 0x001C +26671, 1, load address 0X0165 into the PC +26672, 40, ISR for device 14 +26712, 40, ISR for device 14 +26752, 40, ISR for device 14 +26792, 40, ISR for device 14 +26832, 40, ISR for device 14 +26872, 40, ISR for device 14 +26912, 40, ISR for device 14 +26952, 40, ISR for device 14 +26992, 40, ISR for device 14 +27032, 40, ISR for device 14 +27072, 40, ISR for device 14 +27112, 16, ISR for device 14 +27128, 1, IRET +27129, 22, CPU burst +27151, 1, switch to kernel mode +27152, 10, context saved +27162, 1, find vector 14 in memory position 0x001C +27163, 1, load address 0X0165 into the PC +27164, 40, ISR for device 14 +27204, 40, ISR for device 14 +27244, 40, ISR for device 14 +27284, 40, ISR for device 14 +27324, 40, ISR for device 14 +27364, 40, ISR for device 14 +27404, 40, ISR for device 14 +27444, 40, ISR for device 14 +27484, 40, ISR for device 14 +27524, 40, ISR for device 14 +27564, 40, ISR for device 14 +27604, 16, ISR for device 14 +27620, 1, IRET +27621, 29, CPU burst +27650, 1, switch to kernel mode +27651, 10, context saved +27661, 1, find vector 17 in memory position 0x0022 +27662, 1, load address 0X05B3 into the PC +27663, 40, ISR for device 17 +27703, 40, ISR for device 17 +27743, 40, ISR for device 17 +27783, 40, ISR for device 17 +27823, 40, ISR for device 17 +27863, 35, ISR for device 17 +27898, 1, IRET +27899, 99, CPU burst +27998, 1, switch to kernel mode +27999, 10, context saved +28009, 1, find vector 17 in memory position 0x0022 +28010, 1, load address 0X05B3 into the PC +28011, 40, ISR for device 17 +28051, 40, ISR for device 17 +28091, 40, ISR for device 17 +28131, 40, ISR for device 17 +28171, 40, ISR for device 17 +28211, 35, ISR for device 17 +28246, 1, IRET +28247, 46, CPU burst diff --git a/execution_trace_5.txt b/execution_trace_5.txt new file mode 100644 index 0000000..0caaa33 --- /dev/null +++ b/execution_trace_5.txt @@ -0,0 +1,1119 @@ +0, 14, CPU burst +14, 1, switch to kernel mode +15, 10, context saved +25, 1, find vector 5 in memory position 0x000A +26, 1, load address 0X048B into the PC +27, 40, ISR for device 5 +67, 40, ISR for device 5 +107, 40, ISR for device 5 +147, 40, ISR for device 5 +187, 40, ISR for device 5 +227, 11, ISR for device 5 +238, 1, IRET +239, 78, CPU burst +317, 1, switch to kernel mode +318, 10, context saved +328, 1, find vector 5 in memory position 0x000A +329, 1, load address 0X048B into the PC +330, 40, ISR for device 5 +370, 40, ISR for device 5 +410, 40, ISR for device 5 +450, 40, ISR for device 5 +490, 40, ISR for device 5 +530, 11, ISR for device 5 +541, 1, IRET +542, 84, CPU burst +626, 1, switch to kernel mode +627, 10, context saved +637, 1, find vector 16 in memory position 0x0020 +638, 1, load address 0X02DF into the PC +639, 40, ISR for device 16 +679, 40, ISR for device 16 +719, 40, ISR for device 16 +759, 40, ISR for device 16 +799, 40, ISR for device 16 +839, 40, ISR for device 16 +879, 40, ISR for device 16 +919, 40, ISR for device 16 +959, 40, ISR for device 16 +999, 40, ISR for device 16 +1039, 40, ISR for device 16 +1079, 40, ISR for device 16 +1119, 40, ISR for device 16 +1159, 40, ISR for device 16 +1199, 40, ISR for device 16 +1239, 40, ISR for device 16 +1279, 40, ISR for device 16 +1319, 40, ISR for device 16 +1359, 40, ISR for device 16 +1399, 40, ISR for device 16 +1439, 40, ISR for device 16 +1479, 40, ISR for device 16 +1519, 40, ISR for device 16 +1559, 36, ISR for device 16 +1595, 1, IRET +1596, 70, CPU burst +1666, 1, switch to kernel mode +1667, 10, context saved +1677, 1, find vector 16 in memory position 0x0020 +1678, 1, load address 0X02DF into the PC +1679, 40, ISR for device 16 +1719, 40, ISR for device 16 +1759, 40, ISR for device 16 +1799, 40, ISR for device 16 +1839, 40, ISR for device 16 +1879, 40, ISR for device 16 +1919, 40, ISR for device 16 +1959, 40, ISR for device 16 +1999, 40, ISR for device 16 +2039, 40, ISR for device 16 +2079, 40, ISR for device 16 +2119, 40, ISR for device 16 +2159, 40, ISR for device 16 +2199, 40, ISR for device 16 +2239, 40, ISR for device 16 +2279, 40, ISR for device 16 +2319, 40, ISR for device 16 +2359, 40, ISR for device 16 +2399, 40, ISR for device 16 +2439, 40, ISR for device 16 +2479, 40, ISR for device 16 +2519, 40, ISR for device 16 +2559, 40, ISR for device 16 +2599, 36, ISR for device 16 +2635, 1, IRET +2636, 35, CPU burst +2671, 1, switch to kernel mode +2672, 10, context saved +2682, 1, find vector 9 in memory position 0x0012 +2683, 1, load address 0X036C into the PC +2684, 40, ISR for device 9 +2724, 40, ISR for device 9 +2764, 40, ISR for device 9 +2804, 36, ISR for device 9 +2840, 1, IRET +2841, 51, CPU burst +2892, 1, switch to kernel mode +2893, 10, context saved +2903, 1, find vector 9 in memory position 0x0012 +2904, 1, load address 0X036C into the PC +2905, 40, ISR for device 9 +2945, 40, ISR for device 9 +2985, 40, ISR for device 9 +3025, 36, ISR for device 9 +3061, 1, IRET +3062, 72, CPU burst +3134, 1, switch to kernel mode +3135, 10, context saved +3145, 1, find vector 2 in memory position 0x0004 +3146, 1, load address 0X0695 into the PC +3147, 40, ISR for device 2 +3187, 40, ISR for device 2 +3227, 40, ISR for device 2 +3267, 30, ISR for device 2 +3297, 1, IRET +3298, 99, CPU burst +3397, 1, switch to kernel mode +3398, 10, context saved +3408, 1, find vector 2 in memory position 0x0004 +3409, 1, load address 0X0695 into the PC +3410, 40, ISR for device 2 +3450, 40, ISR for device 2 +3490, 40, ISR for device 2 +3530, 30, ISR for device 2 +3560, 1, IRET +3561, 69, CPU burst +3630, 1, switch to kernel mode +3631, 10, context saved +3641, 1, find vector 11 in memory position 0x0016 +3642, 1, load address 0X01F8 into the PC +3643, 40, ISR for device 11 +3683, 40, ISR for device 11 +3723, 40, ISR for device 11 +3763, 40, ISR for device 11 +3803, 40, ISR for device 11 +3843, 40, ISR for device 11 +3883, 40, ISR for device 11 +3923, 40, ISR for device 11 +3963, 40, ISR for device 11 +4003, 40, ISR for device 11 +4043, 40, ISR for device 11 +4083, 40, ISR for device 11 +4123, 40, ISR for device 11 +4163, 3, ISR for device 11 +4166, 1, IRET +4167, 70, CPU burst +4237, 1, switch to kernel mode +4238, 10, context saved +4248, 1, find vector 11 in memory position 0x0016 +4249, 1, load address 0X01F8 into the PC +4250, 40, ISR for device 11 +4290, 40, ISR for device 11 +4330, 40, ISR for device 11 +4370, 40, ISR for device 11 +4410, 40, ISR for device 11 +4450, 40, ISR for device 11 +4490, 40, ISR for device 11 +4530, 40, ISR for device 11 +4570, 40, ISR for device 11 +4610, 40, ISR for device 11 +4650, 40, ISR for device 11 +4690, 40, ISR for device 11 +4730, 40, ISR for device 11 +4770, 3, ISR for device 11 +4773, 1, IRET +4774, 62, CPU burst +4836, 1, switch to kernel mode +4837, 10, context saved +4847, 1, find vector 19 in memory position 0x0026 +4848, 1, load address 0X0765 into the PC +4849, 40, ISR for device 19 +4889, 40, ISR for device 19 +4929, 40, ISR for device 19 +4969, 40, ISR for device 19 +5009, 40, ISR for device 19 +5049, 40, ISR for device 19 +5089, 40, ISR for device 19 +5129, 40, ISR for device 19 +5169, 40, ISR for device 19 +5209, 40, ISR for device 19 +5249, 40, ISR for device 19 +5289, 40, ISR for device 19 +5329, 40, ISR for device 19 +5369, 40, ISR for device 19 +5409, 40, ISR for device 19 +5449, 40, ISR for device 19 +5489, 12, ISR for device 19 +5501, 1, IRET +5502, 34, CPU burst +5536, 1, switch to kernel mode +5537, 10, context saved +5547, 1, find vector 19 in memory position 0x0026 +5548, 1, load address 0X0765 into the PC +5549, 40, ISR for device 19 +5589, 40, ISR for device 19 +5629, 40, ISR for device 19 +5669, 40, ISR for device 19 +5709, 40, ISR for device 19 +5749, 40, ISR for device 19 +5789, 40, ISR for device 19 +5829, 40, ISR for device 19 +5869, 40, ISR for device 19 +5909, 40, ISR for device 19 +5949, 40, ISR for device 19 +5989, 40, ISR for device 19 +6029, 40, ISR for device 19 +6069, 40, ISR for device 19 +6109, 40, ISR for device 19 +6149, 40, ISR for device 19 +6189, 12, ISR for device 19 +6201, 1, IRET +6202, 85, CPU burst +6287, 1, switch to kernel mode +6288, 10, context saved +6298, 1, find vector 15 in memory position 0x001E +6299, 1, load address 0X0584 into the PC +6300, 40, ISR for device 15 +6340, 28, ISR for device 15 +6368, 1, IRET +6369, 73, CPU burst +6442, 1, switch to kernel mode +6443, 10, context saved +6453, 1, find vector 15 in memory position 0x001E +6454, 1, load address 0X0584 into the PC +6455, 40, ISR for device 15 +6495, 28, ISR for device 15 +6523, 1, IRET +6524, 26, CPU burst +6550, 1, switch to kernel mode +6551, 10, context saved +6561, 1, find vector 10 in memory position 0x0014 +6562, 1, load address 0X07B0 into the PC +6563, 40, ISR for device 10 +6603, 40, ISR for device 10 +6643, 40, ISR for device 10 +6683, 40, ISR for device 10 +6723, 40, ISR for device 10 +6763, 40, ISR for device 10 +6803, 40, ISR for device 10 +6843, 40, ISR for device 10 +6883, 40, ISR for device 10 +6923, 40, ISR for device 10 +6963, 40, ISR for device 10 +7003, 40, ISR for device 10 +7043, 40, ISR for device 10 +7083, 40, ISR for device 10 +7123, 4, ISR for device 10 +7127, 1, IRET +7128, 89, CPU burst +7217, 1, switch to kernel mode +7218, 10, context saved +7228, 1, find vector 10 in memory position 0x0014 +7229, 1, load address 0X07B0 into the PC +7230, 40, ISR for device 10 +7270, 40, ISR for device 10 +7310, 40, ISR for device 10 +7350, 40, ISR for device 10 +7390, 40, ISR for device 10 +7430, 40, ISR for device 10 +7470, 40, ISR for device 10 +7510, 40, ISR for device 10 +7550, 40, ISR for device 10 +7590, 40, ISR for device 10 +7630, 40, ISR for device 10 +7670, 40, ISR for device 10 +7710, 40, ISR for device 10 +7750, 40, ISR for device 10 +7790, 4, ISR for device 10 +7794, 1, IRET +7795, 15, CPU burst +7810, 1, switch to kernel mode +7811, 10, context saved +7821, 1, find vector 7 in memory position 0x000E +7822, 1, load address 0X00BD into the PC +7823, 40, ISR for device 7 +7863, 40, ISR for device 7 +7903, 40, ISR for device 7 +7943, 32, ISR for device 7 +7975, 1, IRET +7976, 24, CPU burst +8000, 1, switch to kernel mode +8001, 10, context saved +8011, 1, find vector 7 in memory position 0x000E +8012, 1, load address 0X00BD into the PC +8013, 40, ISR for device 7 +8053, 40, ISR for device 7 +8093, 40, ISR for device 7 +8133, 32, ISR for device 7 +8165, 1, IRET +8166, 23, CPU burst +8189, 1, switch to kernel mode +8190, 10, context saved +8200, 1, find vector 10 in memory position 0x0014 +8201, 1, load address 0X07B0 into the PC +8202, 40, ISR for device 10 +8242, 40, ISR for device 10 +8282, 40, ISR for device 10 +8322, 40, ISR for device 10 +8362, 40, ISR for device 10 +8402, 40, ISR for device 10 +8442, 40, ISR for device 10 +8482, 40, ISR for device 10 +8522, 40, ISR for device 10 +8562, 40, ISR for device 10 +8602, 40, ISR for device 10 +8642, 40, ISR for device 10 +8682, 40, ISR for device 10 +8722, 40, ISR for device 10 +8762, 4, ISR for device 10 +8766, 1, IRET +8767, 57, CPU burst +8824, 1, switch to kernel mode +8825, 10, context saved +8835, 1, find vector 10 in memory position 0x0014 +8836, 1, load address 0X07B0 into the PC +8837, 40, ISR for device 10 +8877, 40, ISR for device 10 +8917, 40, ISR for device 10 +8957, 40, ISR for device 10 +8997, 40, ISR for device 10 +9037, 40, ISR for device 10 +9077, 40, ISR for device 10 +9117, 40, ISR for device 10 +9157, 40, ISR for device 10 +9197, 40, ISR for device 10 +9237, 40, ISR for device 10 +9277, 40, ISR for device 10 +9317, 40, ISR for device 10 +9357, 40, ISR for device 10 +9397, 4, ISR for device 10 +9401, 1, IRET +9402, 11, CPU burst +9413, 1, switch to kernel mode +9414, 10, context saved +9424, 1, find vector 4 in memory position 0x0008 +9425, 1, load address 0X0292 into the PC +9426, 40, ISR for device 4 +9466, 40, ISR for device 4 +9506, 40, ISR for device 4 +9546, 40, ISR for device 4 +9586, 40, ISR for device 4 +9626, 40, ISR for device 4 +9666, 10, ISR for device 4 +9676, 1, IRET +9677, 100, CPU burst +9777, 1, switch to kernel mode +9778, 10, context saved +9788, 1, find vector 4 in memory position 0x0008 +9789, 1, load address 0X0292 into the PC +9790, 40, ISR for device 4 +9830, 40, ISR for device 4 +9870, 40, ISR for device 4 +9910, 40, ISR for device 4 +9950, 40, ISR for device 4 +9990, 40, ISR for device 4 +10030, 10, ISR for device 4 +10040, 1, IRET +10041, 73, CPU burst +10114, 1, switch to kernel mode +10115, 10, context saved +10125, 1, find vector 11 in memory position 0x0016 +10126, 1, load address 0X01F8 into the PC +10127, 40, ISR for device 11 +10167, 40, ISR for device 11 +10207, 40, ISR for device 11 +10247, 40, ISR for device 11 +10287, 40, ISR for device 11 +10327, 40, ISR for device 11 +10367, 40, ISR for device 11 +10407, 40, ISR for device 11 +10447, 40, ISR for device 11 +10487, 40, ISR for device 11 +10527, 40, ISR for device 11 +10567, 40, ISR for device 11 +10607, 40, ISR for device 11 +10647, 3, ISR for device 11 +10650, 1, IRET +10651, 18, CPU burst +10669, 1, switch to kernel mode +10670, 10, context saved +10680, 1, find vector 11 in memory position 0x0016 +10681, 1, load address 0X01F8 into the PC +10682, 40, ISR for device 11 +10722, 40, ISR for device 11 +10762, 40, ISR for device 11 +10802, 40, ISR for device 11 +10842, 40, ISR for device 11 +10882, 40, ISR for device 11 +10922, 40, ISR for device 11 +10962, 40, ISR for device 11 +11002, 40, ISR for device 11 +11042, 40, ISR for device 11 +11082, 40, ISR for device 11 +11122, 40, ISR for device 11 +11162, 40, ISR for device 11 +11202, 3, ISR for device 11 +11205, 1, IRET +11206, 34, CPU burst +11240, 1, switch to kernel mode +11241, 10, context saved +11251, 1, find vector 4 in memory position 0x0008 +11252, 1, load address 0X0292 into the PC +11253, 40, ISR for device 4 +11293, 40, ISR for device 4 +11333, 40, ISR for device 4 +11373, 40, ISR for device 4 +11413, 40, ISR for device 4 +11453, 40, ISR for device 4 +11493, 10, ISR for device 4 +11503, 1, IRET +11504, 65, CPU burst +11569, 1, switch to kernel mode +11570, 10, context saved +11580, 1, find vector 4 in memory position 0x0008 +11581, 1, load address 0X0292 into the PC +11582, 40, ISR for device 4 +11622, 40, ISR for device 4 +11662, 40, ISR for device 4 +11702, 40, ISR for device 4 +11742, 40, ISR for device 4 +11782, 40, ISR for device 4 +11822, 10, ISR for device 4 +11832, 1, IRET +11833, 77, CPU burst +11910, 1, switch to kernel mode +11911, 10, context saved +11921, 1, find vector 15 in memory position 0x001E +11922, 1, load address 0X0584 into the PC +11923, 40, ISR for device 15 +11963, 28, ISR for device 15 +11991, 1, IRET +11992, 31, CPU burst +12023, 1, switch to kernel mode +12024, 10, context saved +12034, 1, find vector 15 in memory position 0x001E +12035, 1, load address 0X0584 into the PC +12036, 40, ISR for device 15 +12076, 28, ISR for device 15 +12104, 1, IRET +12105, 18, CPU burst +12123, 1, switch to kernel mode +12124, 10, context saved +12134, 1, find vector 6 in memory position 0x000C +12135, 1, load address 0X0639 into the PC +12136, 40, ISR for device 6 +12176, 40, ISR for device 6 +12216, 40, ISR for device 6 +12256, 40, ISR for device 6 +12296, 40, ISR for device 6 +12336, 40, ISR for device 6 +12376, 25, ISR for device 6 +12401, 1, IRET +12402, 84, CPU burst +12486, 1, switch to kernel mode +12487, 10, context saved +12497, 1, find vector 6 in memory position 0x000C +12498, 1, load address 0X0639 into the PC +12499, 40, ISR for device 6 +12539, 40, ISR for device 6 +12579, 40, ISR for device 6 +12619, 40, ISR for device 6 +12659, 40, ISR for device 6 +12699, 40, ISR for device 6 +12739, 25, ISR for device 6 +12764, 1, IRET +12765, 39, CPU burst +12804, 1, switch to kernel mode +12805, 10, context saved +12815, 1, find vector 6 in memory position 0x000C +12816, 1, load address 0X0639 into the PC +12817, 40, ISR for device 6 +12857, 40, ISR for device 6 +12897, 40, ISR for device 6 +12937, 40, ISR for device 6 +12977, 40, ISR for device 6 +13017, 40, ISR for device 6 +13057, 25, ISR for device 6 +13082, 1, IRET +13083, 41, CPU burst +13124, 1, switch to kernel mode +13125, 10, context saved +13135, 1, find vector 6 in memory position 0x000C +13136, 1, load address 0X0639 into the PC +13137, 40, ISR for device 6 +13177, 40, ISR for device 6 +13217, 40, ISR for device 6 +13257, 40, ISR for device 6 +13297, 40, ISR for device 6 +13337, 40, ISR for device 6 +13377, 25, ISR for device 6 +13402, 1, IRET +13403, 95, CPU burst +13498, 1, switch to kernel mode +13499, 10, context saved +13509, 1, find vector 14 in memory position 0x001C +13510, 1, load address 0X0165 into the PC +13511, 40, ISR for device 14 +13551, 40, ISR for device 14 +13591, 40, ISR for device 14 +13631, 40, ISR for device 14 +13671, 40, ISR for device 14 +13711, 40, ISR for device 14 +13751, 40, ISR for device 14 +13791, 40, ISR for device 14 +13831, 40, ISR for device 14 +13871, 40, ISR for device 14 +13911, 40, ISR for device 14 +13951, 16, ISR for device 14 +13967, 1, IRET +13968, 16, CPU burst +13984, 1, switch to kernel mode +13985, 10, context saved +13995, 1, find vector 14 in memory position 0x001C +13996, 1, load address 0X0165 into the PC +13997, 40, ISR for device 14 +14037, 40, ISR for device 14 +14077, 40, ISR for device 14 +14117, 40, ISR for device 14 +14157, 40, ISR for device 14 +14197, 40, ISR for device 14 +14237, 40, ISR for device 14 +14277, 40, ISR for device 14 +14317, 40, ISR for device 14 +14357, 40, ISR for device 14 +14397, 40, ISR for device 14 +14437, 16, ISR for device 14 +14453, 1, IRET +14454, 24, CPU burst +14478, 1, switch to kernel mode +14479, 10, context saved +14489, 1, find vector 2 in memory position 0x0004 +14490, 1, load address 0X0695 into the PC +14491, 40, ISR for device 2 +14531, 40, ISR for device 2 +14571, 40, ISR for device 2 +14611, 30, ISR for device 2 +14641, 1, IRET +14642, 26, CPU burst +14668, 1, switch to kernel mode +14669, 10, context saved +14679, 1, find vector 2 in memory position 0x0004 +14680, 1, load address 0X0695 into the PC +14681, 40, ISR for device 2 +14721, 40, ISR for device 2 +14761, 40, ISR for device 2 +14801, 30, ISR for device 2 +14831, 1, IRET +14832, 90, CPU burst +14922, 1, switch to kernel mode +14923, 10, context saved +14933, 1, find vector 15 in memory position 0x001E +14934, 1, load address 0X0584 into the PC +14935, 40, ISR for device 15 +14975, 28, ISR for device 15 +15003, 1, IRET +15004, 76, CPU burst +15080, 1, switch to kernel mode +15081, 10, context saved +15091, 1, find vector 15 in memory position 0x001E +15092, 1, load address 0X0584 into the PC +15093, 40, ISR for device 15 +15133, 28, ISR for device 15 +15161, 1, IRET +15162, 37, CPU burst +15199, 1, switch to kernel mode +15200, 10, context saved +15210, 1, find vector 14 in memory position 0x001C +15211, 1, load address 0X0165 into the PC +15212, 40, ISR for device 14 +15252, 40, ISR for device 14 +15292, 40, ISR for device 14 +15332, 40, ISR for device 14 +15372, 40, ISR for device 14 +15412, 40, ISR for device 14 +15452, 40, ISR for device 14 +15492, 40, ISR for device 14 +15532, 40, ISR for device 14 +15572, 40, ISR for device 14 +15612, 40, ISR for device 14 +15652, 16, ISR for device 14 +15668, 1, IRET +15669, 28, CPU burst +15697, 1, switch to kernel mode +15698, 10, context saved +15708, 1, find vector 14 in memory position 0x001C +15709, 1, load address 0X0165 into the PC +15710, 40, ISR for device 14 +15750, 40, ISR for device 14 +15790, 40, ISR for device 14 +15830, 40, ISR for device 14 +15870, 40, ISR for device 14 +15910, 40, ISR for device 14 +15950, 40, ISR for device 14 +15990, 40, ISR for device 14 +16030, 40, ISR for device 14 +16070, 40, ISR for device 14 +16110, 40, ISR for device 14 +16150, 16, ISR for device 14 +16166, 1, IRET +16167, 92, CPU burst +16259, 1, switch to kernel mode +16260, 10, context saved +16270, 1, find vector 19 in memory position 0x0026 +16271, 1, load address 0X0765 into the PC +16272, 40, ISR for device 19 +16312, 40, ISR for device 19 +16352, 40, ISR for device 19 +16392, 40, ISR for device 19 +16432, 40, ISR for device 19 +16472, 40, ISR for device 19 +16512, 40, ISR for device 19 +16552, 40, ISR for device 19 +16592, 40, ISR for device 19 +16632, 40, ISR for device 19 +16672, 40, ISR for device 19 +16712, 40, ISR for device 19 +16752, 40, ISR for device 19 +16792, 40, ISR for device 19 +16832, 40, ISR for device 19 +16872, 40, ISR for device 19 +16912, 12, ISR for device 19 +16924, 1, IRET +16925, 24, CPU burst +16949, 1, switch to kernel mode +16950, 10, context saved +16960, 1, find vector 19 in memory position 0x0026 +16961, 1, load address 0X0765 into the PC +16962, 40, ISR for device 19 +17002, 40, ISR for device 19 +17042, 40, ISR for device 19 +17082, 40, ISR for device 19 +17122, 40, ISR for device 19 +17162, 40, ISR for device 19 +17202, 40, ISR for device 19 +17242, 40, ISR for device 19 +17282, 40, ISR for device 19 +17322, 40, ISR for device 19 +17362, 40, ISR for device 19 +17402, 40, ISR for device 19 +17442, 40, ISR for device 19 +17482, 40, ISR for device 19 +17522, 40, ISR for device 19 +17562, 40, ISR for device 19 +17602, 12, ISR for device 19 +17614, 1, IRET +17615, 74, CPU burst +17689, 1, switch to kernel mode +17690, 10, context saved +17700, 1, find vector 16 in memory position 0x0020 +17701, 1, load address 0X02DF into the PC +17702, 40, ISR for device 16 +17742, 40, ISR for device 16 +17782, 40, ISR for device 16 +17822, 40, ISR for device 16 +17862, 40, ISR for device 16 +17902, 40, ISR for device 16 +17942, 40, ISR for device 16 +17982, 40, ISR for device 16 +18022, 40, ISR for device 16 +18062, 40, ISR for device 16 +18102, 40, ISR for device 16 +18142, 40, ISR for device 16 +18182, 40, ISR for device 16 +18222, 40, ISR for device 16 +18262, 40, ISR for device 16 +18302, 40, ISR for device 16 +18342, 40, ISR for device 16 +18382, 40, ISR for device 16 +18422, 40, ISR for device 16 +18462, 40, ISR for device 16 +18502, 40, ISR for device 16 +18542, 40, ISR for device 16 +18582, 40, ISR for device 16 +18622, 36, ISR for device 16 +18658, 1, IRET +18659, 11, CPU burst +18670, 1, switch to kernel mode +18671, 10, context saved +18681, 1, find vector 16 in memory position 0x0020 +18682, 1, load address 0X02DF into the PC +18683, 40, ISR for device 16 +18723, 40, ISR for device 16 +18763, 40, ISR for device 16 +18803, 40, ISR for device 16 +18843, 40, ISR for device 16 +18883, 40, ISR for device 16 +18923, 40, ISR for device 16 +18963, 40, ISR for device 16 +19003, 40, ISR for device 16 +19043, 40, ISR for device 16 +19083, 40, ISR for device 16 +19123, 40, ISR for device 16 +19163, 40, ISR for device 16 +19203, 40, ISR for device 16 +19243, 40, ISR for device 16 +19283, 40, ISR for device 16 +19323, 40, ISR for device 16 +19363, 40, ISR for device 16 +19403, 40, ISR for device 16 +19443, 40, ISR for device 16 +19483, 40, ISR for device 16 +19523, 40, ISR for device 16 +19563, 40, ISR for device 16 +19603, 36, ISR for device 16 +19639, 1, IRET +19640, 26, CPU burst +19666, 1, switch to kernel mode +19667, 10, context saved +19677, 1, find vector 1 in memory position 0x0002 +19678, 1, load address 0X029C into the PC +19679, 40, ISR for device 1 +19719, 40, ISR for device 1 +19759, 20, ISR for device 1 +19779, 1, IRET +19780, 55, CPU burst +19835, 1, switch to kernel mode +19836, 10, context saved +19846, 1, find vector 1 in memory position 0x0002 +19847, 1, load address 0X029C into the PC +19848, 40, ISR for device 1 +19888, 40, ISR for device 1 +19928, 20, ISR for device 1 +19948, 1, IRET +19949, 43, CPU burst +19992, 1, switch to kernel mode +19993, 10, context saved +20003, 1, find vector 19 in memory position 0x0026 +20004, 1, load address 0X0765 into the PC +20005, 40, ISR for device 19 +20045, 40, ISR for device 19 +20085, 40, ISR for device 19 +20125, 40, ISR for device 19 +20165, 40, ISR for device 19 +20205, 40, ISR for device 19 +20245, 40, ISR for device 19 +20285, 40, ISR for device 19 +20325, 40, ISR for device 19 +20365, 40, ISR for device 19 +20405, 40, ISR for device 19 +20445, 40, ISR for device 19 +20485, 40, ISR for device 19 +20525, 40, ISR for device 19 +20565, 40, ISR for device 19 +20605, 40, ISR for device 19 +20645, 12, ISR for device 19 +20657, 1, IRET +20658, 80, CPU burst +20738, 1, switch to kernel mode +20739, 10, context saved +20749, 1, find vector 19 in memory position 0x0026 +20750, 1, load address 0X0765 into the PC +20751, 40, ISR for device 19 +20791, 40, ISR for device 19 +20831, 40, ISR for device 19 +20871, 40, ISR for device 19 +20911, 40, ISR for device 19 +20951, 40, ISR for device 19 +20991, 40, ISR for device 19 +21031, 40, ISR for device 19 +21071, 40, ISR for device 19 +21111, 40, ISR for device 19 +21151, 40, ISR for device 19 +21191, 40, ISR for device 19 +21231, 40, ISR for device 19 +21271, 40, ISR for device 19 +21311, 40, ISR for device 19 +21351, 40, ISR for device 19 +21391, 12, ISR for device 19 +21403, 1, IRET +21404, 95, CPU burst +21499, 1, switch to kernel mode +21500, 10, context saved +21510, 1, find vector 1 in memory position 0x0002 +21511, 1, load address 0X029C into the PC +21512, 40, ISR for device 1 +21552, 40, ISR for device 1 +21592, 20, ISR for device 1 +21612, 1, IRET +21613, 98, CPU burst +21711, 1, switch to kernel mode +21712, 10, context saved +21722, 1, find vector 1 in memory position 0x0002 +21723, 1, load address 0X029C into the PC +21724, 40, ISR for device 1 +21764, 40, ISR for device 1 +21804, 20, ISR for device 1 +21824, 1, IRET +21825, 47, CPU burst +21872, 1, switch to kernel mode +21873, 10, context saved +21883, 1, find vector 8 in memory position 0x0010 +21884, 1, load address 0X06EF into the PC +21885, 40, ISR for device 8 +21925, 40, ISR for device 8 +21965, 40, ISR for device 8 +22005, 40, ISR for device 8 +22045, 40, ISR for device 8 +22085, 40, ISR for device 8 +22125, 40, ISR for device 8 +22165, 40, ISR for device 8 +22205, 40, ISR for device 8 +22245, 40, ISR for device 8 +22285, 40, ISR for device 8 +22325, 40, ISR for device 8 +22365, 40, ISR for device 8 +22405, 40, ISR for device 8 +22445, 40, ISR for device 8 +22485, 40, ISR for device 8 +22525, 40, ISR for device 8 +22565, 40, ISR for device 8 +22605, 40, ISR for device 8 +22645, 40, ISR for device 8 +22685, 40, ISR for device 8 +22725, 40, ISR for device 8 +22765, 40, ISR for device 8 +22805, 40, ISR for device 8 +22845, 40, ISR for device 8 +22885, 1, IRET +22886, 20, CPU burst +22906, 1, switch to kernel mode +22907, 10, context saved +22917, 1, find vector 8 in memory position 0x0010 +22918, 1, load address 0X06EF into the PC +22919, 40, ISR for device 8 +22959, 40, ISR for device 8 +22999, 40, ISR for device 8 +23039, 40, ISR for device 8 +23079, 40, ISR for device 8 +23119, 40, ISR for device 8 +23159, 40, ISR for device 8 +23199, 40, ISR for device 8 +23239, 40, ISR for device 8 +23279, 40, ISR for device 8 +23319, 40, ISR for device 8 +23359, 40, ISR for device 8 +23399, 40, ISR for device 8 +23439, 40, ISR for device 8 +23479, 40, ISR for device 8 +23519, 40, ISR for device 8 +23559, 40, ISR for device 8 +23599, 40, ISR for device 8 +23639, 40, ISR for device 8 +23679, 40, ISR for device 8 +23719, 40, ISR for device 8 +23759, 40, ISR for device 8 +23799, 40, ISR for device 8 +23839, 40, ISR for device 8 +23879, 40, ISR for device 8 +23919, 1, IRET +23920, 29, CPU burst +23949, 99, CPU burst +24048, 38, CPU burst +24086, 1, switch to kernel mode +24087, 10, context saved +24097, 1, find vector 19 in memory position 0x0026 +24098, 1, load address 0X0765 into the PC +24099, 40, ISR for device 19 +24139, 40, ISR for device 19 +24179, 40, ISR for device 19 +24219, 40, ISR for device 19 +24259, 40, ISR for device 19 +24299, 40, ISR for device 19 +24339, 40, ISR for device 19 +24379, 40, ISR for device 19 +24419, 40, ISR for device 19 +24459, 40, ISR for device 19 +24499, 40, ISR for device 19 +24539, 40, ISR for device 19 +24579, 40, ISR for device 19 +24619, 40, ISR for device 19 +24659, 40, ISR for device 19 +24699, 40, ISR for device 19 +24739, 12, ISR for device 19 +24751, 1, IRET +24752, 75, CPU burst +24827, 1, switch to kernel mode +24828, 10, context saved +24838, 1, find vector 19 in memory position 0x0026 +24839, 1, load address 0X0765 into the PC +24840, 40, ISR for device 19 +24880, 40, ISR for device 19 +24920, 40, ISR for device 19 +24960, 40, ISR for device 19 +25000, 40, ISR for device 19 +25040, 40, ISR for device 19 +25080, 40, ISR for device 19 +25120, 40, ISR for device 19 +25160, 40, ISR for device 19 +25200, 40, ISR for device 19 +25240, 40, ISR for device 19 +25280, 40, ISR for device 19 +25320, 40, ISR for device 19 +25360, 40, ISR for device 19 +25400, 40, ISR for device 19 +25440, 40, ISR for device 19 +25480, 12, ISR for device 19 +25492, 1, IRET +25493, 16, CPU burst +25509, 1, switch to kernel mode +25510, 10, context saved +25520, 1, find vector 4 in memory position 0x0008 +25521, 1, load address 0X0292 into the PC +25522, 40, ISR for device 4 +25562, 40, ISR for device 4 +25602, 40, ISR for device 4 +25642, 40, ISR for device 4 +25682, 40, ISR for device 4 +25722, 40, ISR for device 4 +25762, 10, ISR for device 4 +25772, 1, IRET +25773, 23, CPU burst +25796, 1, switch to kernel mode +25797, 10, context saved +25807, 1, find vector 4 in memory position 0x0008 +25808, 1, load address 0X0292 into the PC +25809, 40, ISR for device 4 +25849, 40, ISR for device 4 +25889, 40, ISR for device 4 +25929, 40, ISR for device 4 +25969, 40, ISR for device 4 +26009, 40, ISR for device 4 +26049, 10, ISR for device 4 +26059, 1, IRET +26060, 47, CPU burst +26107, 1, switch to kernel mode +26108, 10, context saved +26118, 1, find vector 11 in memory position 0x0016 +26119, 1, load address 0X01F8 into the PC +26120, 40, ISR for device 11 +26160, 40, ISR for device 11 +26200, 40, ISR for device 11 +26240, 40, ISR for device 11 +26280, 40, ISR for device 11 +26320, 40, ISR for device 11 +26360, 40, ISR for device 11 +26400, 40, ISR for device 11 +26440, 40, ISR for device 11 +26480, 40, ISR for device 11 +26520, 40, ISR for device 11 +26560, 40, ISR for device 11 +26600, 40, ISR for device 11 +26640, 3, ISR for device 11 +26643, 1, IRET +26644, 17, CPU burst +26661, 1, switch to kernel mode +26662, 10, context saved +26672, 1, find vector 11 in memory position 0x0016 +26673, 1, load address 0X01F8 into the PC +26674, 40, ISR for device 11 +26714, 40, ISR for device 11 +26754, 40, ISR for device 11 +26794, 40, ISR for device 11 +26834, 40, ISR for device 11 +26874, 40, ISR for device 11 +26914, 40, ISR for device 11 +26954, 40, ISR for device 11 +26994, 40, ISR for device 11 +27034, 40, ISR for device 11 +27074, 40, ISR for device 11 +27114, 40, ISR for device 11 +27154, 40, ISR for device 11 +27194, 3, ISR for device 11 +27197, 1, IRET +27198, 39, CPU burst +27237, 1, switch to kernel mode +27238, 10, context saved +27248, 1, find vector 19 in memory position 0x0026 +27249, 1, load address 0X0765 into the PC +27250, 40, ISR for device 19 +27290, 40, ISR for device 19 +27330, 40, ISR for device 19 +27370, 40, ISR for device 19 +27410, 40, ISR for device 19 +27450, 40, ISR for device 19 +27490, 40, ISR for device 19 +27530, 40, ISR for device 19 +27570, 40, ISR for device 19 +27610, 40, ISR for device 19 +27650, 40, ISR for device 19 +27690, 40, ISR for device 19 +27730, 40, ISR for device 19 +27770, 40, ISR for device 19 +27810, 40, ISR for device 19 +27850, 40, ISR for device 19 +27890, 12, ISR for device 19 +27902, 1, IRET +27903, 48, CPU burst +27951, 1, switch to kernel mode +27952, 10, context saved +27962, 1, find vector 19 in memory position 0x0026 +27963, 1, load address 0X0765 into the PC +27964, 40, ISR for device 19 +28004, 40, ISR for device 19 +28044, 40, ISR for device 19 +28084, 40, ISR for device 19 +28124, 40, ISR for device 19 +28164, 40, ISR for device 19 +28204, 40, ISR for device 19 +28244, 40, ISR for device 19 +28284, 40, ISR for device 19 +28324, 40, ISR for device 19 +28364, 40, ISR for device 19 +28404, 40, ISR for device 19 +28444, 40, ISR for device 19 +28484, 40, ISR for device 19 +28524, 40, ISR for device 19 +28564, 40, ISR for device 19 +28604, 12, ISR for device 19 +28616, 1, IRET +28617, 45, CPU burst +28662, 1, switch to kernel mode +28663, 10, context saved +28673, 1, find vector 12 in memory position 0x0018 +28674, 1, load address 0X03B9 into the PC +28675, 40, ISR for device 12 +28715, 40, ISR for device 12 +28755, 40, ISR for device 12 +28795, 25, ISR for device 12 +28820, 1, IRET +28821, 83, CPU burst +28904, 1, switch to kernel mode +28905, 10, context saved +28915, 1, find vector 12 in memory position 0x0018 +28916, 1, load address 0X03B9 into the PC +28917, 40, ISR for device 12 +28957, 40, ISR for device 12 +28997, 40, ISR for device 12 +29037, 25, ISR for device 12 +29062, 1, IRET +29063, 68, CPU burst +29131, 100, CPU burst +29231, 61, CPU burst +29292, 1, switch to kernel mode +29293, 10, context saved +29303, 1, find vector 11 in memory position 0x0016 +29304, 1, load address 0X01F8 into the PC +29305, 40, ISR for device 11 +29345, 40, ISR for device 11 +29385, 40, ISR for device 11 +29425, 40, ISR for device 11 +29465, 40, ISR for device 11 +29505, 40, ISR for device 11 +29545, 40, ISR for device 11 +29585, 40, ISR for device 11 +29625, 40, ISR for device 11 +29665, 40, ISR for device 11 +29705, 40, ISR for device 11 +29745, 40, ISR for device 11 +29785, 40, ISR for device 11 +29825, 3, ISR for device 11 +29828, 1, IRET +29829, 96, CPU burst +29925, 1, switch to kernel mode +29926, 10, context saved +29936, 1, find vector 11 in memory position 0x0016 +29937, 1, load address 0X01F8 into the PC +29938, 40, ISR for device 11 +29978, 40, ISR for device 11 +30018, 40, ISR for device 11 +30058, 40, ISR for device 11 +30098, 40, ISR for device 11 +30138, 40, ISR for device 11 +30178, 40, ISR for device 11 +30218, 40, ISR for device 11 +30258, 40, ISR for device 11 +30298, 40, ISR for device 11 +30338, 40, ISR for device 11 +30378, 40, ISR for device 11 +30418, 40, ISR for device 11 +30458, 3, ISR for device 11 +30461, 1, IRET +30462, 88, CPU burst +30550, 1, switch to kernel mode +30551, 10, context saved +30561, 1, find vector 2 in memory position 0x0004 +30562, 1, load address 0X0695 into the PC +30563, 40, ISR for device 2 +30603, 40, ISR for device 2 +30643, 40, ISR for device 2 +30683, 30, ISR for device 2 +30713, 1, IRET +30714, 42, CPU burst +30756, 1, switch to kernel mode +30757, 10, context saved +30767, 1, find vector 2 in memory position 0x0004 +30768, 1, load address 0X0695 into the PC +30769, 40, ISR for device 2 +30809, 40, ISR for device 2 +30849, 40, ISR for device 2 +30889, 30, ISR for device 2 +30919, 1, IRET +30920, 41, CPU burst +30961, 1, switch to kernel mode +30962, 10, context saved +30972, 1, find vector 3 in memory position 0x0006 +30973, 1, load address 0X042B into the PC +30974, 40, ISR for device 3 +31014, 40, ISR for device 3 +31054, 40, ISR for device 3 +31094, 40, ISR for device 3 +31134, 40, ISR for device 3 +31174, 40, ISR for device 3 +31214, 40, ISR for device 3 +31254, 20, ISR for device 3 +31274, 1, IRET +31275, 73, CPU burst +31348, 1, switch to kernel mode +31349, 10, context saved +31359, 1, find vector 3 in memory position 0x0006 +31360, 1, load address 0X042B into the PC +31361, 40, ISR for device 3 +31401, 40, ISR for device 3 +31441, 40, ISR for device 3 +31481, 40, ISR for device 3 +31521, 40, ISR for device 3 +31561, 40, ISR for device 3 +31601, 40, ISR for device 3 +31641, 20, ISR for device 3 +31661, 1, IRET +31662, 52, CPU burst diff --git a/input_files/device_table.txt b/input_files/device_table.txt new file mode 100644 index 0000000..31357fe --- /dev/null +++ b/input_files/device_table.txt @@ -0,0 +1,20 @@ +110 +100 +150 +300 +250 +211 +265 +152 +1000 +156 +564 +523 +145 +636 +456 +68 +956 +235 +123 +652 \ No newline at end of file diff --git a/input_files/trace_1.txt b/input_files/trace_1.txt new file mode 100644 index 0000000..e7c8940 --- /dev/null +++ b/input_files/trace_1.txt @@ -0,0 +1,21 @@ +CPU, 75 +SYSCALL, 5 +CPU, 84 +END_IO, 5 +CPU, 22 +SYSCALL, 10 +CPU, 80 +END_IO, 10 +CPU, 79 +SYSCALL, 6 +CPU, 68 +END_IO, 6 +CPU, 71 +SYSCALL, 4 +CPU, 97 +END_IO, 4 +CPU, 84 +SYSCALL, 7 +CPU, 38 +END_IO, 7 +CPU, 90 diff --git a/input_files/vector_table.txt b/input_files/vector_table.txt new file mode 100644 index 0000000..c45d9fe --- /dev/null +++ b/input_files/vector_table.txt @@ -0,0 +1,26 @@ +0X01E3 +0X029C +0X0695 +0X042B +0X0292 +0X048B +0X0639 +0X00BD +0X06EF +0X036C +0X07B0 +0X01F8 +0X03B9 +0X06C7 +0X0165 +0X0584 +0X02DF +0X05B3 +0X060A +0X0765 +0X07B7 +0X0523 +0X03B7 +0X028C +0X05E8 +0X05D3 diff --git a/run_all.ps1 b/run_all.ps1 new file mode 100644 index 0000000..bef911f --- /dev/null +++ b/run_all.ps1 @@ -0,0 +1,45 @@ +# ----------------------------- +# run_all.ps1 +# ----------------------------- +# This script runs all available trace files (trace_1 to trace_5) +# and generates separate execution outputs for each trace. + +# Folder where the input files and traces live +$traceDir1 = ".\input_files" +$traceDir2 = ".\testcases" + +# Paths to vector and device tables +$vectorTable = "$traceDir1\vector_table.txt" +$deviceTable = "$traceDir1\device_table.txt" + +# Make sure the executable exists +$exePath = ".\bin\interrupts.exe" +if (!(Test-Path $exePath)) { + Write-Host "Error: interrupts.exe not found. Please build first using build.sh or g++" + exit 1 +} + +# Loop through all trace files (1–5) +for ($i = 1; $i -le 5; $i++) { + $traceFile1 = "$traceDir1\trace_$i.txt" + $traceFile2 = "$traceDir2\trace_$i.txt" + $outputFile = ".\execution_trace_$i.txt" + + if (Test-Path $traceFile1) { + Write-Host "Running trace_$i from input_files..." + & $exePath $traceFile1 $vectorTable $deviceTable 10 40 + Copy-Item -Path ".\execution.txt" -Destination $outputFile -Force + Write-Host "→ Output saved to $outputFile" + } + elseif (Test-Path $traceFile2) { + Write-Host "Running trace_$i from testcases..." + & $exePath $traceFile2 $vectorTable $deviceTable 10 40 + Copy-Item -Path ".\execution.txt" -Destination $outputFile -Force + Write-Host "→ Output saved to $outputFile" + } + else { + Write-Host "Trace file trace_$i.txt not found. Skipping." + } +} + +Write-Host "`nāœ… All traces executed successfully!"