From a2486bfaae3e0bafd3d95811d72fe7865c55d524 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 25 Jun 2022 01:05:50 +0300 Subject: [PATCH 01/66] refactor fjm_run (breakpoints, statistics) --- src/fj.py | 5 +- src/fji.py | 5 +- src/fjm.py | 3 +- src/fjm_run.py | 309 +++++++++++++++++++++++++++++++---------------- tests/test_fj.py | 12 +- 5 files changed, 215 insertions(+), 119 deletions(-) diff --git a/src/fj.py b/src/fj.py index ceaa780..46ca716 100644 --- a/src/fj.py +++ b/src/fj.py @@ -89,15 +89,14 @@ def main(): breakpoint_any_set = set(args.any_breakpoint) try: - run_time, ops_executed, flips_executed, output, termination_cause = \ + termination_statistics = \ debug_and_run(args.outfile, debugging_file=args.debug, defined_input=None, verbose=verbose_set, breakpoint_labels=breakpoint_set, breakpoint_any_labels=breakpoint_any_set) if not args.silent: - print(f'finished by {termination_cause} after {run_time:.3f}s ({ops_executed:,} ops executed, {flips_executed / ops_executed * 100:.2f}% flips)') - print() + print(termination_statistics) except FJReadFjmException as e: print() print(e) diff --git a/src/fji.py b/src/fji.py index 6b2dde7..d3bffba 100644 --- a/src/fji.py +++ b/src/fji.py @@ -41,7 +41,7 @@ def main(): breakpoint_any_set = set(args.any_breakpoint) try: - run_time, ops_executed, flips_executed, output, termination_cause = \ + termination_statistics = \ debug_and_run(file, debugging_file=args.debug, defined_input=None, verbose=verbose_set, @@ -49,8 +49,7 @@ def main(): breakpoint_any_labels=breakpoint_any_set) if not args.silent: - print(f'finished by {termination_cause} after {run_time:.3f}s ({ops_executed:,} ops executed, {flips_executed/ops_executed*100:.2f}% flips)') - print() + print(termination_statistics) except FJReadFjmException as e: print() print(e) diff --git a/src/fjm.py b/src/fjm.py index be32c82..07e4e7a 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -1,4 +1,5 @@ import struct +from pathlib import Path from struct import pack, unpack from random import randint from time import sleep @@ -45,7 +46,7 @@ class Reader: - def __init__(self, input_file, *, slow_garbage_read=True, stop_after_garbage=True): + def __init__(self, input_file: Path, *, slow_garbage_read: bool = True, stop_after_garbage: bool = True): self.slow_garbage_read = slow_garbage_read self.stop_after_garbage = stop_after_garbage diff --git a/src/fjm_run.py b/src/fjm_run.py index e7f2624..af45a8c 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -1,8 +1,10 @@ import pickle from os import path +from pathlib import Path from time import time from sys import stdin, stdout -from typing import Optional, List +from dataclasses import dataclass +from typing import Optional, List, Dict, Set import easygui @@ -10,33 +12,135 @@ from defs import Verbose, TerminationCause +class BreakpointHandlerUnnecessary(Exception): + pass + + def display_message_box_and_get_answer(msg: str, title: str, choices: List[str]) -> str: # TODO deprecated warning. use another gui (tkinter? seems not so simple) return easygui.buttonbox(msg, title, choices) -def get_address_str(address, breakpoints, labels_dict): - if address in breakpoints: - return f'{hex(address)[2:]} ({breakpoints[address]})' - else: - if address in labels_dict: - return f'{hex(address)[2:]} ({labels_dict[address]})' +class BreakpointHandler: + def __init__(self, breakpoints: Set[int], address_to_label: Dict[int, str]): + self.breakpoints = breakpoints + self.address_to_label = address_to_label + + if 0 not in self.address_to_label: + self.address_to_label[0] = 'memory_start_0x0000' + + self.next_break = None + + def should_break(self, ip: int, op_counter: int) -> bool: + return self.next_break == op_counter or ip in self.breakpoints + + def get_address_str(self, address: int): + if address in self.address_to_label: + return f'{hex(address)[2:]} ({self.address_to_label[address]})' + elif address in self.breakpoints: + return hex(address) else: - address_before = max([a for a in labels_dict if a <= address]) - return f'{hex(address)[2:]} ({labels_dict[address_before]} + {hex(address - address_before)})' + address_before = max([a for a in self.address_to_label if a <= address]) + return f'{hex(address)[2:]} ({self.address_to_label[address_before]} + {hex(address - address_before)})' + + def get_message_box_body(self, ip: int, mem: fjm.Reader, op_counter: int): + address = self.get_address_str(ip) + flip = self.get_address_str(mem.get_word(ip)) + jump = self.get_address_str(mem.get_word(ip + mem.w)) + return f'Address {address} ({op_counter} ops executed):\n flip: {flip}.\n jump: {jump}.' + + def query_user_for_debug_action(self, ip: int, mem: fjm.Reader, op_counter: int): + title = "Breakpoint" if ip in self.breakpoints else "Debug Step" + body = self.get_message_box_body(ip, mem, op_counter) + actions = ['Single Step', 'Skip 10', 'Skip 100', 'Skip 1000', 'Continue', 'Continue All'] + + action = display_message_box_and_get_answer(body, title, actions) + if action is None: + action = 'Continue All' + return action + + def apply_debug_action(self, action: str, op_counter: int): + if action == 'Single Step': + self.next_break = op_counter + 1 + elif action == 'Skip 10': + self.next_break = op_counter + 10 + elif action == 'Skip 100': + self.next_break = op_counter + 100 + elif action == 'Skip 1000': + self.next_break = op_counter + 1000 + elif action == 'Continue': + self.next_break = None + elif action == 'Continue All': + self.next_break = None + raise BreakpointHandlerUnnecessary() + + +class RunStatistics: + class PauseTimer: + def __init__(self): + self.paused_time = 0 + + def __enter__(self): + self.pause_start_time = time() + def __exit__(self, exc_type, exc_val, exc_tb): + self.paused_time += time() - self.pause_start_time -def run(input_file, breakpoints=None, defined_input: Optional[bytes] = None, verbose=False, time_verbose=False, output_verbose=False, - next_break=None, labels_dict=None): - if labels_dict is None: - labels_dict = {} - if breakpoints is None: - breakpoints = {} + def __init__(self, w: int): + self._op_size = 2 * w + self._after_null_flip = 2 * w + + self.op_counter = 0 + self.flip_counter = 0 + self.jump_counter = 0 + + self._start_time = time() + self.pause_timer = self.PauseTimer() + + def get_run_time(self) -> float: + return time() - self._start_time - self.pause_timer.paused_time + + def register_op(self, ip: int, flip_address: int, jump_address: int) -> None: + self.op_counter += 1 + if flip_address >= self._after_null_flip: + self.flip_counter += 1 + if jump_address != ip + self._op_size: + self.jump_counter += 1 + + +class TerminationStatistics: + def __init__(self, run_statistics: RunStatistics, standard_output: bytes, termination_cause: TerminationCause): + self.run_time = run_statistics.get_run_time() + + self.op_counter = run_statistics.op_counter + self.flip_counter = run_statistics.flip_counter + self.jump_counter = run_statistics.jump_counter + + self.standard_output = standard_output + self.termination_cause = termination_cause + + def __str__(self): + flips_percentage = self.flip_counter / self.op_counter * 100 + jumps_percentage = self.jump_counter / self.op_counter * 100 + return f'Finished by {self.termination_cause} after {self.run_time:.3f}s ' \ + f'(' \ + f'{self.op_counter:,} ops executed; ' \ + f'{flips_percentage:.2f}% flips, ' \ + f'{jumps_percentage:.2f}% jumps' \ + f').' + + +def run(fjm_path: Path, *, + breakpoint_handler: Optional[BreakpointHandler] = None, + defined_input: Optional[bytes] = None, + verbose: bool = False, + time_verbose: bool = False, + output_verbose: bool = False): if time_verbose: print(f' loading memory: ', end='', flush=True) start_time = time() - mem = fjm.Reader(input_file) + mem = fjm.Reader(fjm_path) if time_verbose: print(f'{time() - start_time:.3f}s') @@ -49,57 +153,21 @@ def run(input_file, breakpoints=None, defined_input: Optional[bytes] = None, ver output_char, output_size = 0, 0 output = bytes() - if 0 not in labels_dict: - labels_dict[0] = 'memory_start_0x0000' - output_anything_yet = False - ops_executed = 0 - flips_executed = 0 - start_time = time() - pause_time = 0 + statistics = RunStatistics(w) while True: - if next_break == ops_executed or ip in breakpoints: - pause_time_start = time() - title = "Breakpoint" if ip in breakpoints else "Single Step" - address = get_address_str(ip, breakpoints, labels_dict) - flip = f'flip: {get_address_str(mem.get_word(ip), breakpoints, labels_dict)}' - jump = f'jump: {get_address_str(mem.get_word(ip + w), breakpoints, labels_dict)}' - body = f'Address {address} ({ops_executed} ops executed):\n {flip}.\n {jump}.' - actions = ['Single Step', 'Skip 10', 'Skip 100', 'Skip 1000', 'Continue', 'Continue All'] - print(' program break', end="", flush=True) - action = display_message_box_and_get_answer(body, title, actions) - - if action is None: - action = 'Continue All' - print(f': {action}') - if action == 'Single Step': - next_break = ops_executed + 1 - elif action == 'Skip 10': - next_break = ops_executed + 10 - elif action == 'Skip 100': - next_break = ops_executed + 100 - elif action == 'Skip 1000': - next_break = ops_executed + 1000 - elif action == 'Continue': - next_break = None - elif action == 'Continue All': - next_break = None - breakpoints.clear() - pause_time += time() - pause_time_start - - f = mem.get_word(ip) - if verbose: - print(f'{hex(ip)[2:].rjust(7)}: {hex(f)[2:]}', end='; ', flush=True) + if breakpoint_handler and breakpoint_handler.should_break(ip, statistics.op_counter): + breakpoint_handler = handle_breakpoint(breakpoint_handler, ip, mem, statistics) - ops_executed += 1 - if f >= 2*w: - flips_executed += 1 + flip_address = mem.get_word(ip) + if verbose: + print(f'{hex(ip)[2:].rjust(7)}: {hex(flip_address)[2:]}', end='; ', flush=True) # handle output - if out_addr <= f <= out_addr+1: - output_char |= (f-out_addr) << output_size + if out_addr <= flip_address <= out_addr+1: + output_char |= (flip_address-out_addr) << output_size output_byte = bytes([output_char]) output_size += 1 if output_size == 8: @@ -123,81 +191,110 @@ def run(input_file, breakpoints=None, defined_input: Optional[bytes] = None, ver if ip <= in_addr < ip+2*w: if input_size == 0: if defined_input is None: - pause_time_start = time() - input_char = stdin.buffer.read(1)[0] - pause_time += time() - pause_time_start + with statistics.pause_timer: + input_char = stdin.buffer.read(1)[0] elif len(defined_input) > 0: input_char = defined_input[0] defined_input = defined_input[1:] else: if output_verbose and output_anything_yet: print() - run_time = time() - start_time - pause_time - return run_time, ops_executed, flips_executed, output, TerminationCause.Input # no more input + return TerminationStatistics(statistics, output, TerminationCause.Input) # Reading a null input byte input_size = 8 mem.write_bit(in_addr, input_char & 1) input_char = input_char >> 1 input_size -= 1 - mem.write_bit(f, 1-mem.read_bit(f)) # Flip! - new_ip = mem.get_word(ip+w) + mem.write_bit(flip_address, 1-mem.read_bit(flip_address)) # Flip! + + jump_address = mem.get_word(ip+w) + + statistics.register_op(ip, flip_address, jump_address) + if verbose: - print(hex(new_ip)[2:]) + print(hex(jump_address)[2:]) - if new_ip == ip and not ip <= f < ip+2*w: - if output_verbose and output_anything_yet and breakpoints: + if jump_address == ip and not ip <= flip_address < ip+2*w: + if output_verbose and output_anything_yet and breakpoint_handler: print() - run_time = time()-start_time-pause_time - return run_time, ops_executed, flips_executed, output, TerminationCause.Looping # infinite simple loop - if new_ip < 2*w: - if output_verbose and output_anything_yet and breakpoints: + return TerminationStatistics(statistics, output, TerminationCause.Looping) # infinite simple loop + if jump_address < 2*w: + if output_verbose and output_anything_yet and breakpoint_handler: print() - run_time = time() - start_time - pause_time - return run_time, ops_executed, flips_executed, output, TerminationCause.NullIP # null ip - ip = new_ip # Jump! + return TerminationStatistics(statistics, output, TerminationCause.NullIP) # null ip + ip = jump_address # Jump! + + +def handle_breakpoint(breakpoint_handler, ip, mem, statistics): + print(' program break', end="", flush=True) + with statistics.pause_timer: + action = breakpoint_handler.query_user_for_debug_action(ip, mem, statistics.op_counter) + print(f': {action}') + + try: + breakpoint_handler.apply_debug_action(action, statistics.op_counter) + except BreakpointHandlerUnnecessary: + breakpoint_handler = None + + return breakpoint_handler -def debug_and_run(input_file, debugging_file=None, - defined_input: Optional[bytes] = None, verbose=None, - breakpoint_addresses=None, breakpoint_labels=None, breakpoint_any_labels=None): - if breakpoint_any_labels is None: - breakpoint_any_labels = set() - if breakpoint_labels is None: - breakpoint_labels = set() - if breakpoint_addresses is None: - breakpoint_addresses = set() - if verbose is None: - verbose = set() - labels = [] +def get_breakpoints(breakpoint_addresses: Optional[Set[int]], + breakpoint_labels: Optional[Set[str]], + breakpoint_any_labels: Optional[Set[str]], + label_to_address: Dict[str, int]): + breakpoints = set(breakpoint_addresses) if breakpoint_labels else set() + + if breakpoint_labels is not None: + for bl in breakpoint_labels: + if bl not in label_to_address: + print(f"Warning: Breakpoint label {bl} can't be found!") + else: + breakpoints.add(label_to_address[bl]) + + # TODO improve the speed of this part with suffix trees + if breakpoint_any_labels is not None: + for bal in breakpoint_any_labels: + for label in label_to_address: + if bal in label: + breakpoints.add(label_to_address[label]) + + return breakpoints + + +def load_labels_dictionary(debugging_file, labels_file_needed): + label_to_address = [] if debugging_file is not None: if path.isfile(debugging_file): with open(debugging_file, 'rb') as f: - labels = pickle.load(f) + label_to_address = pickle.load(f) else: print(f"Warning: debugging file {debugging_file} can't be found!") - elif breakpoint_labels or breakpoint_addresses or breakpoint_any_labels: + elif labels_file_needed: print(f"Warning: debugging labels can't be found! no debugging file specified.") + return label_to_address - # Handle breakpoints - breakpoint_map = {ba: hex(ba) for ba in breakpoint_addresses} - for bl in breakpoint_labels: - if bl not in labels: - print(f"Warning: Breakpoint label {bl} can't be found!") - else: - breakpoint_map[labels[bl]] = bl - for bal in breakpoint_any_labels: - for label in labels: - if bal in label: - breakpoint_map[labels[label]] = f'{bal}@{label}' - opposite_labels = {labels[label]: label for label in labels} +def debug_and_run(input_file, debugging_file=None, + defined_input: Optional[bytes] = None, verbose=None, + breakpoint_addresses=None, breakpoint_labels=None, breakpoint_any_labels=None) -> TerminationStatistics: + if verbose is None: + verbose = set() + + labels_file_needed = breakpoint_addresses or breakpoint_any_labels + label_to_address = load_labels_dictionary(debugging_file, labels_file_needed) + + address_to_label = {label_to_address[label]: label for label in label_to_address} + breakpoints = get_breakpoints(breakpoint_addresses, breakpoint_labels, breakpoint_any_labels, label_to_address) + + breakpoint_handler = BreakpointHandler(breakpoints, address_to_label) if breakpoints else None - run_time, ops_executed, flips_executed, output, termination_cause = run( + termination_statistics = run( input_file, defined_input=defined_input, verbose=Verbose.Run in verbose, time_verbose=Verbose.Time in verbose, output_verbose=Verbose.PrintOutput in verbose, - breakpoints=breakpoint_map, labels_dict=opposite_labels) + breakpoint_handler=breakpoint_handler) - return run_time, ops_executed, flips_executed, output, termination_cause + return termination_statistics diff --git a/tests/test_fj.py b/tests/test_fj.py index dc0e152..6d519a2 100644 --- a/tests/test_fj.py +++ b/tests/test_fj.py @@ -149,15 +149,15 @@ def test_run(run_args: RunTestArgs) -> None: """ print(f'Running test {run_args.test_name}:') - run_time, ops_executed, flips_executed, output, termination_cause =\ - fjm_run.run(run_args.fjm_path, defined_input=run_args.get_defined_input(), time_verbose=True) + termination_statistics = fjm_run.run(run_args.fjm_path, + defined_input=run_args.get_defined_input(), + time_verbose=True) - print(f'finished by {termination_cause} after {run_time:.3f}s ' - f'({ops_executed:,} ops executed, {flips_executed / ops_executed * 100:.2f}% flips)') + print(termination_statistics) expected_termination_cause = TerminationCause.Looping - assert termination_cause == expected_termination_cause + assert termination_statistics.termination_cause == expected_termination_cause - output = output.decode('raw_unicode_escape') + output = termination_statistics.standard_output.decode('raw_unicode_escape') expected_output = run_args.get_expected_output() assert output == expected_output From 2e42a049e50bb42011265eb6182b0c3d2d771d33 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 25 Jun 2022 10:08:36 +0300 Subject: [PATCH 02/66] add PrintTimer --- src/assembler.py | 46 ++++++++++++++++------------------------------ src/defs.py | 17 ++++++++++++++++- src/fjm_run.py | 11 +++-------- 3 files changed, 35 insertions(+), 39 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index c0dc773..d51d42a 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -6,7 +6,7 @@ import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from defs import eval_all, Verbose, SegmentEntry, FJAssemblerException, OpType +from defs import eval_all, Verbose, SegmentEntry, FJAssemblerException, OpType, PrintTimer def lsb_first_bin_array(int_value, bit_size): @@ -148,35 +148,21 @@ def assemble(input_files, output_file, w, temp_fd, preprocessed_file = mkstemp() temp_preprocessed_file = True - if Verbose.Time in verbose: - print(' parsing: ', end='', flush=True) - start_time = time() - macros = parse_macro_tree(input_files, w, warning_as_errors, verbose=Verbose.Parse in verbose) - if Verbose.Time in verbose: - print(f'{time() - start_time:.3f}s') - - if Verbose.Time in verbose: - print(' macro resolve: ', end='', flush=True) - start_time = time() - ops, labels, boundary_addresses = resolve_macros(w, macros, output_file=preprocessed_file, - show_statistics=show_statistics, - verbose=Verbose.MacroSolve in verbose) - if Verbose.Time in verbose: - print(f'{time() - start_time:.3f}s') - - if Verbose.Time in verbose: - print(' labels resolve: ', end='', flush=True) - start_time = time() - labels_resolve(ops, labels, boundary_addresses, w, writer, verbose=Verbose.LabelSolve in verbose) - if Verbose.Time in verbose: - print(f'{time() - start_time:.3f}s') - - if Verbose.Time in verbose: - print(' create binary: ', end='', flush=True) - start_time = time() - writer.write_to_file() - if Verbose.Time in verbose: - print(f'{time() - start_time:.3f}s') + time_verbose = Verbose.Time in verbose + + with PrintTimer(' parsing: ', print_time=time_verbose): + macros = parse_macro_tree(input_files, w, warning_as_errors, verbose=Verbose.Parse in verbose) + + with PrintTimer(' macro resolve: ', print_time=time_verbose): + ops, labels, boundary_addresses = resolve_macros(w, macros, output_file=preprocessed_file, + show_statistics=show_statistics, + verbose=Verbose.MacroSolve in verbose) + + with PrintTimer(' labels resolve: ', print_time=time_verbose): + labels_resolve(ops, labels, boundary_addresses, w, writer, verbose=Verbose.LabelSolve in verbose) + + with PrintTimer(' create binary: ', print_time=time_verbose): + writer.write_to_file() if temp_preprocessed_file: os.close(temp_fd) diff --git a/src/defs.py b/src/defs.py index 5d4f21a..37c096e 100644 --- a/src/defs.py +++ b/src/defs.py @@ -2,7 +2,7 @@ from enum import IntEnum # IntEnum equality works between files. from pathlib import Path from operator import mul, add, sub, floordiv, lshift, rshift, mod, xor, or_, and_ - +from time import time main_macro = ('', 0) @@ -114,6 +114,21 @@ class SegmentEntry(IntEnum): WflipAddress = 2 +class PrintTimer: + def __init__(self, init_message: str, *, print_time: bool = True): + self.init_message = init_message + self.print_time = print_time + + def __enter__(self): + if self.print_time: + self.start_time = time() + print(self.init_message, end='', flush=True) + + def __exit__(self, exc_type, exc_val, exc_tb): + if self.print_time: + print(f'{time() - self.start_time:.3f}s') + + class OpType(IntEnum): # op.data array content: FlipJump = 1 # expr, expr # Survives until (2) label resolve diff --git a/src/fjm_run.py b/src/fjm_run.py index af45a8c..ae04bd6 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -3,13 +3,12 @@ from pathlib import Path from time import time from sys import stdin, stdout -from dataclasses import dataclass from typing import Optional, List, Dict, Set import easygui import fjm -from defs import Verbose, TerminationCause +from defs import Verbose, TerminationCause, PrintTimer class BreakpointHandlerUnnecessary(Exception): @@ -137,12 +136,8 @@ def run(fjm_path: Path, *, time_verbose: bool = False, output_verbose: bool = False): - if time_verbose: - print(f' loading memory: ', end='', flush=True) - start_time = time() - mem = fjm.Reader(fjm_path) - if time_verbose: - print(f'{time() - start_time:.3f}s') + with PrintTimer(' loading memory: ', print_time=time_verbose): + mem = fjm.Reader(fjm_path) ip = 0 w = mem.w From 54f62c9c2a1df433caa21ba4497cc3d520965ecd Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 25 Jun 2022 11:23:34 +0300 Subject: [PATCH 03/66] add abstract device --- src/io_devices/IODevice.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/io_devices/IODevice.py diff --git a/src/io_devices/IODevice.py b/src/io_devices/IODevice.py new file mode 100644 index 0000000..cd310de --- /dev/null +++ b/src/io_devices/IODevice.py @@ -0,0 +1,25 @@ +from abc import ABC, abstractmethod + + +class IODevice(ABC): + @abstractmethod + def read_bit(self) -> bool: + return False + + @abstractmethod + def write_bit(self, bit: bool) -> None: + pass + + @abstractmethod + def is_available_read(self) -> bool: + return False + + @abstractmethod + def is_available_write(self) -> bool: + return False + + @abstractmethod + def is_eof(self) -> bool: + return False + + # Also, each class should implement a "__del__" to flush last changes before it gets deleted. From 35b39b907f5cd25fa843822170319b1786431050 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 25 Jun 2022 12:26:30 +0300 Subject: [PATCH 04/66] BrokenIO, IO exceptions --- src/io_devices/BrokenIO.py | 21 +++++++++++++++++++++ src/io_devices/IODevice.py | 2 +- src/io_devices/io_exceptions.py | 6 ++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/io_devices/BrokenIO.py create mode 100644 src/io_devices/io_exceptions.py diff --git a/src/io_devices/BrokenIO.py b/src/io_devices/BrokenIO.py new file mode 100644 index 0000000..7a58cae --- /dev/null +++ b/src/io_devices/BrokenIO.py @@ -0,0 +1,21 @@ +from IODevice import IODevice +from io_exceptions import BrokenIOUsed + + +class BrokenIO(IODevice): + def read_bit(self) -> bool: + raise BrokenIOUsed("program tried to read a bit from the BrokenIO device") + + def write_bit(self, bit: bool) -> None: + raise BrokenIOUsed(f"program tried to write a bit ({int(bit)}) to the BrokenIO device") + + def is_available_read(self) -> bool: + return False + + def is_available_write(self) -> bool: + return False + + def is_eof(self) -> bool: + return True + + # default __del__ diff --git a/src/io_devices/IODevice.py b/src/io_devices/IODevice.py index cd310de..5b3b4e4 100644 --- a/src/io_devices/IODevice.py +++ b/src/io_devices/IODevice.py @@ -20,6 +20,6 @@ def is_available_write(self) -> bool: @abstractmethod def is_eof(self) -> bool: - return False + return True # Also, each class should implement a "__del__" to flush last changes before it gets deleted. diff --git a/src/io_devices/io_exceptions.py b/src/io_devices/io_exceptions.py new file mode 100644 index 0000000..f29a306 --- /dev/null +++ b/src/io_devices/io_exceptions.py @@ -0,0 +1,6 @@ +class IODeviceException(IOError): + pass + + +class BrokenIOUsed(IODeviceException): + pass From d4a4a539643d70c18d080730cbb914abe099a230 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 25 Jun 2022 12:40:37 +0300 Subject: [PATCH 05/66] StandardIO skeleton --- src/io_devices/StandardIO.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/io_devices/StandardIO.py diff --git a/src/io_devices/StandardIO.py b/src/io_devices/StandardIO.py new file mode 100644 index 0000000..aaa1f19 --- /dev/null +++ b/src/io_devices/StandardIO.py @@ -0,0 +1,31 @@ +from typing import IO + +from IODevice import IODevice + + +class BrokenIO(IODevice): + def __init__(self, input_file: IO, output_file: IO): + self.input_file = input_file + self.output_file = output_file + raise NotImplemented + + def read_bit(self) -> bool: + raise NotImplemented + + def write_bit(self, bit: bool) -> None: + raise NotImplemented + + def is_available_read(self) -> bool: + raise NotImplemented + + def is_available_write(self) -> bool: + raise NotImplemented + + def is_eof(self) -> bool: + raise NotImplemented + + def flush(self) -> None: + self.output_file.flush() + + def __del__(self): + self.flush() From 3dac99ac9f8e632cb717e92136f1399d3f9b57a2 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Wed, 29 Jun 2022 00:50:24 +0300 Subject: [PATCH 06/66] implement the none-eof FixedStandardIO --- src/io_devices/BrokenIO.py | 3 -- src/io_devices/IODevice.py | 4 --- src/io_devices/StandardIO.py | 55 ++++++++++++++++++++++----------- src/io_devices/io_exceptions.py | 8 +++++ 4 files changed, 45 insertions(+), 25 deletions(-) diff --git a/src/io_devices/BrokenIO.py b/src/io_devices/BrokenIO.py index 7a58cae..8640e08 100644 --- a/src/io_devices/BrokenIO.py +++ b/src/io_devices/BrokenIO.py @@ -15,7 +15,4 @@ def is_available_read(self) -> bool: def is_available_write(self) -> bool: return False - def is_eof(self) -> bool: - return True - # default __del__ diff --git a/src/io_devices/IODevice.py b/src/io_devices/IODevice.py index 5b3b4e4..6738c57 100644 --- a/src/io_devices/IODevice.py +++ b/src/io_devices/IODevice.py @@ -18,8 +18,4 @@ def is_available_read(self) -> bool: def is_available_write(self) -> bool: return False - @abstractmethod - def is_eof(self) -> bool: - return True - # Also, each class should implement a "__del__" to flush last changes before it gets deleted. diff --git a/src/io_devices/StandardIO.py b/src/io_devices/StandardIO.py index aaa1f19..73955eb 100644 --- a/src/io_devices/StandardIO.py +++ b/src/io_devices/StandardIO.py @@ -1,31 +1,50 @@ -from typing import IO - from IODevice import IODevice +from io_exceptions import IOReadOnEOF, IncompleteOutput + +class FixedStandardIO(IODevice): + def __init__(self, _input: bytes): + self.remaining_input = _input + self._output = b'' -class BrokenIO(IODevice): - def __init__(self, input_file: IO, output_file: IO): - self.input_file = input_file - self.output_file = output_file - raise NotImplemented + self.current_input_byte = 0 + self.bits_to_read_in_input_byte = 0 + + self.current_output_byte = 0 + self.bits_to_write_in_output_byte = 0 def read_bit(self) -> bool: - raise NotImplemented + if 0 == self.bits_to_read_in_input_byte: + if not self.remaining_input: + raise IOReadOnEOF("Read an empty input on fixed standard IO (EOF)") + + self.current_input_byte = self.remaining_input[0] + self.remaining_input = self.remaining_input[1:] + self.bits_to_read_in_input_byte = 8 + + bit = (self.current_input_byte & 1) == 1 + self.current_input_byte >>= 1 + self.bits_to_read_in_input_byte -= 1 + return bit def write_bit(self, bit: bool) -> None: - raise NotImplemented + self.current_output_byte = (self.current_output_byte << 1) | bit + self.bits_to_write_in_output_byte += 1 + + if 8 == self.bits_to_write_in_output_byte: + self._output += self.current_output_byte.to_bytes(1, 'little') + self.current_output_byte = 0 + self.bits_to_write_in_output_byte = 0 def is_available_read(self) -> bool: - raise NotImplemented + return self.remaining_input or 0 < self.bits_to_read_in_input_byte def is_available_write(self) -> bool: - raise NotImplemented - - def is_eof(self) -> bool: - raise NotImplemented + return True - def flush(self) -> None: - self.output_file.flush() + def get_output(self) -> bytes: + if 0 != self.bits_to_write_in_output_byte: + raise IncompleteOutput("tries to get output when an unaligned number of bits was outputted " + "(doesn't divide 8)") - def __del__(self): - self.flush() + return self._output diff --git a/src/io_devices/io_exceptions.py b/src/io_devices/io_exceptions.py index f29a306..0ab1601 100644 --- a/src/io_devices/io_exceptions.py +++ b/src/io_devices/io_exceptions.py @@ -4,3 +4,11 @@ class IODeviceException(IOError): class BrokenIOUsed(IODeviceException): pass + + +class IOReadOnEOF(IODeviceException): + pass + + +class IncompleteOutput(IODeviceException): + pass From f423af82a62f9b83b20a2e2f5ae4a861a169802e Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 2 Jul 2022 20:50:47 +0300 Subject: [PATCH 07/66] initial assembly refactor tested, statistics prints don't work --- src/defs.py | 123 ++++++++++++++++++++++++----------- src/fj_parser.py | 130 +++++++++++++++++++------------------ src/preprocessor.py | 152 +++++++++++++++++++++++--------------------- 3 files changed, 228 insertions(+), 177 deletions(-) diff --git a/src/defs.py b/src/defs.py index 37c096e..659153a 100644 --- a/src/defs.py +++ b/src/defs.py @@ -1,11 +1,13 @@ +from __future__ import annotations + +import itertools +from dataclasses import dataclass import json from enum import IntEnum # IntEnum equality works between files. from pathlib import Path from operator import mul, add, sub, floordiv, lshift, rshift, mod, xor, or_, and_ from time import time - -main_macro = ('', 0) - +from typing import List, Tuple, Dict, Union, Set # TODO use the op-strings (instead of the function) up-to the last point possible (to make deepcopy simpler) parsing_op2func = {'+': add, '-': sub, '*': mul, '/': floordiv, '%': mod, @@ -49,7 +51,7 @@ class FJWriteFjmException(FJException): pass -def smart_int16(num): +def smart_int16(num: str) -> int: try: return int(num, 16) except ValueError as ve: @@ -61,7 +63,7 @@ def smart_int16(num): STL_OPTIONS = json.load(stl_json) -def get_stl_paths(): +def get_stl_paths() -> List[Path]: return [STL_PATH / f'{lib}.fj' for lib in STL_OPTIONS['all']] @@ -81,7 +83,7 @@ def get_stl_paths(): string_re = fr'"({char})*"' -def get_char_value_and_length(s): +def get_char_value_and_length(s: str) -> Tuple[int, int]: if s[0] != '\\': return ord(s[0]), 1 if s[1] in char_escape_dict: @@ -104,7 +106,7 @@ class TerminationCause(IntEnum): Input = 1 NullIP = 2 - def __str__(self): + def __str__(self) -> str: return ['looping', 'input', 'ip<2w'][self.value] @@ -114,17 +116,20 @@ class SegmentEntry(IntEnum): WflipAddress = 2 +BoundaryAddressesList = List[Tuple[SegmentEntry, int]] + + class PrintTimer: def __init__(self, init_message: str, *, print_time: bool = True): self.init_message = init_message self.print_time = print_time - def __enter__(self): + def __enter__(self) -> None: if self.print_time: self.start_time = time() print(self.init_message, end='', flush=True) - def __exit__(self, exc_type, exc_val, exc_tb): + def __exit__(self, exc_type, exc_val, exc_tb) -> None: if self.print_time: print(f'{time() - self.start_time:.3f}s') @@ -136,44 +141,86 @@ class OpType(IntEnum): # op.data array content: Segment = 3 # expr # Survives until (2) label resolve Reserve = 4 # expr # Survives until (2) label resolve Label = 5 # ID # Survives until (1) macro resolve - Macro = 6 # ID, expr [expr..] # Survives until (1) macro resolve + Macro = 6 # ID, [expr..] # Survives until (1) macro resolve Rep = 7 # expr, ID, macro_call # Survives until (1) macro resolve +@dataclass +class MacroName: + name: str + parameter_num: int + + def __str__(self) -> str: + if 0 == self.parameter_num: + return self.name + return f"{self.name}({self.parameter_num})" + + def __hash__(self): + return hash((self.name, self.parameter_num)) + + +main_macro = MacroName('', 0) + + +@dataclass +class CodePosition: + file: str + line: int + + def __str__(self) -> str: + return f"file {self.file} (line {self.line})" + + class Op: - def __init__(self, op_type, data, file, line): + def __init__(self, op_type: OpType, data: Tuple[Union[Expr, str, MacroCall], ...], code_position: CodePosition): self.type = op_type self.data = data - self.file = file - self.line = line + self.code_position = code_position - def __str__(self): + def __str__(self) -> str: return f'{f"{self.type}:"[7:]:10} Data: {", ".join([str(d) for d in self.data])} ' \ - f'File: {self.file} (line {self.line})' + f'{self.code_position}' - def macro_trace_str(self): + def macro_trace_str(self) -> str: assert self.type == OpType.Macro - macro_name, param_len = self.data[0] - return f'macro {macro_name}({param_len}) (File {self.file}, line {self.line})' + return f'macro {self.macro_name} ({self.code_position})' - def rep_trace_str(self, iter_value, iter_times): + def rep_trace_str(self, iter_value: int, iter_times: int) -> str: assert self.type == OpType.Rep _, iter_name, macro = self.data - macro_name, param_len = macro.data[0] return f'rep({iter_name}={iter_value}, out of 0..{iter_times-1}) ' \ - f'macro {macro_name}({param_len}) (File {self.file}, line {self.line})' + f'macro {macro.macro_name} ({macro.code_position})' + + +class MacroCall(Op): + def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): + super(MacroCall, self).__init__(OpType.Macro, tuple(arguments), code_position) + self.macro_name = MacroName(macro_name, len(arguments)) + + +class Macro: + # [(params, quiet_params), statements, (curr_file, p.lineno, ns_name)] + + def __init__(self, params: List[str], local_params: List[str], + ops: List[Op], namespace: str, + code_position: CodePosition): + self.params = params + self.local_params = local_params + self.ops = ops + self.namespace = namespace + self.code_position = code_position class Expr: - def __init__(self, expr): + def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr]]]): self.val = expr # replaces every string it can with its dictionary value, and evaluates anything it can. # returns the list of unknown id's - def eval(self, id_dict, file, line): + def eval(self, id_dict: Dict[str, Expr], code_position: CodePosition) -> List[str]: if self.is_tuple(): op, exps = self.val - res = [e.eval(id_dict, file, line) for e in exps] + res = [e.eval(id_dict, code_position) for e in exps] if any(res): return sum(res, start=[]) else: @@ -181,25 +228,25 @@ def eval(self, id_dict, file, line): self.val = parsing_op2func[op](*[e.val for e in exps]) return [] except BaseException as e: - raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)} in file {file} (line {line})') + raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)} in {code_position}') elif self.is_str(): if self.val in id_dict: self.val = id_dict[self.val].val - return self.eval({}, file, line) + return self.eval({}, code_position) else: return [self.val] return [] - def is_int(self): + def is_int(self) -> bool: return type(self.val) is int - def is_str(self): + def is_str(self) -> bool: return type(self.val) is str - def is_tuple(self): + def is_tuple(self) -> bool: return type(self.val) is tuple - def __str__(self): + def __str__(self) -> str: if self.is_tuple(): op, exps = self.val if len(exps) == 1: @@ -218,39 +265,39 @@ def __str__(self): raise FJExprException(f'bad expression: {self.val} (of type {type(self.val)})') -def eval_all(op, id_dict=None): +def eval_all(op: Op, id_dict: Dict[str, Expr] = None) -> List[str]: if id_dict is None: id_dict = {} ids = [] for expr in op.data: if type(expr) is Expr: - ids += expr.eval(id_dict, op.file, op.line) + ids += expr.eval(id_dict, op.code_position) if op.type == OpType.Rep: macro_op = op.data[2] ids += eval_all(macro_op, id_dict) return ids -def get_all_used_labels(ops): +def get_all_used_labels(ops: List[Op]) -> Tuple[Set[str], Set[str]]: used_labels, declared_labels = set(), set() for op in ops: if op.type == OpType.Rep: n, i, macro_call = op.data - used_labels.update(n.eval({}, op.file, op.line)) + used_labels.update(n.eval({}, op.code_position)) new_labels = set() - new_labels.update(*[e.eval({}, op.file, op.line) for e in macro_call.data[1:]]) + new_labels.update(*[e.eval({}, op.code_position) for e in macro_call.data]) used_labels.update(new_labels - {i}) elif op.type == OpType.Label: declared_labels.add(op.data[0]) else: for expr in op.data: if type(expr) is Expr: - used_labels.update(expr.eval({}, op.file, op.line)) + used_labels.update(expr.eval({}, op.code_position)) return used_labels, declared_labels -def id_swap(op, id_dict): +def id_swap(op: Op, id_dict: Dict[str, Expr]) -> None: new_data = [] for datum in op.data: if type(datum) is str and datum in id_dict: @@ -263,7 +310,7 @@ def id_swap(op, id_dict): op.data = tuple(new_data) -def new_label(counter, name): +def new_label(counter: itertools.count, name: str) -> Expr: if name == '': return Expr(f'_.label{next(counter)}') else: diff --git a/src/fj_parser.py b/src/fj_parser.py index 9c5411d..c648806 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -1,25 +1,31 @@ from os import path +from typing import Set from sly import Lexer, Parser from defs import get_char_value_and_length, get_all_used_labels, \ main_macro, next_address, \ OpType, Op, Expr, FJParsingException, \ - number_re, dot_id_re, id_re, string_re - + number_re, dot_id_re, id_re, string_re, \ + CodePosition, Macro, MacroCall, MacroName global curr_file, curr_text, error_occurred, curr_namespace, reserved_names -def syntax_error(line, msg=''): +def get_position(lineno: int): + return CodePosition(curr_file, lineno) + + +def syntax_error(lineno: int, msg=''): global error_occurred error_occurred = True + curr_position = get_position(lineno) print() if msg: - print(f"Syntax Error in file {curr_file} line {line}:") + print(f"Syntax Error in {curr_position}:") print(f" {msg}") else: - print(f"Syntax Error in file {curr_file} line {line}") + print(f"Syntax Error in {curr_position}") def syntax_warning(line, is_error, msg=''): @@ -125,7 +131,7 @@ def error(self, t): global error_occurred error_occurred = True print() - print(f"Lexing Error in file {curr_file} line {self.lineno}: {t.value[0]}") + print(f"Lexing Error in {get_position(self.lineno)}: {t.value[0]}") self.index += 1 @@ -150,63 +156,56 @@ def __init__(self, w, warning_as_errors, verbose=False): self.verbose = verbose self.defs = {'w': Expr(w)} self.warning_as_errors = warning_as_errors + self.macros = {main_macro: Macro([], [], [], '', None)} - # [(params, quiet_params), statements, (curr_file, p.lineno, ns_name)] - self.macros = {main_macro: [([], []), [], (None, None, '')]} - - def check_macro_name(self, name, line): + def check_macro_name(self, name: MacroName, lineno: int): global reserved_names - base_name = self.ns_to_base_name(name[0]) + base_name = self.ns_to_base_name(name.name) if base_name in reserved_names: - syntax_error(line, f'macro name can\'t be {name[0]} ({base_name} is a reserved name)!') + syntax_error(lineno, f'macro name can\'t be {name.name} ({base_name} is a reserved name)!') if name in self.macros: - _, _, (other_file, other_line, _) = self.macros[name] - syntax_error(line, f'macro {name} is declared twice! ' - f'also declared in file {other_file} (line {other_line}).') + syntax_error(lineno, f'macro {name} is declared twice! ' + f'also declared in {self.macros[name].code_position}.') - def check_params(self, ids, macro_name, line): + def check_params(self, ids, macro_name: MacroName, lineno: int): for param_id in ids: if param_id in self.defs: - syntax_error(line, f'parameter {param_id} in macro {macro_name[0]}({macro_name[1]}) ' - f'is also defined as a constant variable (with value {self.defs[param_id]})') + syntax_error(lineno, f'parameter {param_id} in macro {macro_name}) ' + f'is also defined as a constant variable (with value {self.defs[param_id]})') for i1 in range(len(ids)): for i2 in range(i1): if ids[i1] == ids[i2]: - syntax_error(line, f'parameter {ids[i1]} in macro {macro_name[0]}({macro_name[1]}) ' - f'is declared twice!') + syntax_error(lineno, f'parameter {ids[i1]} in macro {macro_name}) ' + f'is declared twice!') - def check_label_usage(self, labels_used, labels_declared, params, externs, global_labels, line, macro_name): + def check_label_usage(self, labels_used: Set[str], labels_declared: Set[str], params: Set[str], externs: Set[str], + global_labels: Set[str], lineno: int, macro_name: MacroName): if global_labels & externs: - syntax_error(line, f"In macro {macro_name[0]}({macro_name[1]}): " - f"extern labels can't be global labels: " + ', '.join(global_labels & externs)) + syntax_error(lineno, f"In macro {macro_name}: " + f"extern labels can't be global labels: " + ', '.join(global_labels & externs)) if global_labels & params: - syntax_error(line, f"In macro {macro_name[0]}({macro_name[1]}): " - f"extern labels can't be regular labels: " + ', '.join(global_labels & params)) + syntax_error(lineno, f"In macro {macro_name}: " + f"extern labels can't be regular labels: " + ', '.join(global_labels & params)) if externs & params: - syntax_error(line, f"In macro {macro_name[0]}({macro_name[1]}): " - f"global labels can't be regular labels: " + ', '.join(externs & params)) - - # params.update([self.ns_full_name(p) for p in params]) - # externs = set([self.ns_full_name(p) for p in externs]) - # globals.update([self.ns_full_name(p) for p in globals]) + syntax_error(lineno, f"In macro {macro_name}: " + f"global labels can't be regular labels: " + ', '.join(externs & params)) unused_labels = params - labels_used.union(self.ns_to_base_name(label) for label in labels_declared) if unused_labels: - syntax_warning(line, self.warning_as_errors, - f"In macro {macro_name[0]}({macro_name[1]}): " + syntax_warning(lineno, self.warning_as_errors, + f"In macro {macro_name}: " f"unused labels: {', '.join(unused_labels)}.") bad_declarations = labels_declared - set(self.ns_full_name(label) for label in externs.union(params)) if bad_declarations: - syntax_warning(line, self.warning_as_errors, - f"In macro {macro_name[0]}({macro_name[1]}): " + syntax_warning(lineno, self.warning_as_errors, + f"In macro {macro_name}: " f"Declared a not extern/parameter label: {', '.join(bad_declarations)}.") bad_uses = labels_used - global_labels - params - set(labels_declared) - {'$'} if bad_uses: - # print('\nused:', labels_used, 'globals:', globals, 'params:', params) - syntax_warning(line, self.warning_as_errors, - f"In macro {macro_name[0]}({macro_name[1]}): " + syntax_warning(lineno, self.warning_as_errors, + f"In macro {macro_name}: " f"Used a not global/parameter/declared-extern label: {', '.join(bad_uses)}.") @staticmethod @@ -237,19 +236,12 @@ def error(self, token): global error_occurred error_occurred = True print() - print(f'Syntax Error in file {curr_file} line {token.lineno}, token=("{token.type}", {token.value})') + print(f'Syntax Error in {get_position(token.lineno)}, token=("{token.type}", {token.value})') @_('definable_line_statements') def program(self, p): ops = p.definable_line_statements - self.macros[main_macro][1].extend(ops) - - # labels_used, labels_declared = all_used_labels(ops) - # bad_uses = labels_used - set(labels_declared) - {'$'} - # if bad_uses: - # syntax_warning(None, self.warning_as_errors, - # f"Outside of macros: " - # f"Used a not declared label: {', '.join(bad_uses)}.") + self.macros[main_macro].ops.extend(ops) @_('definable_line_statements NL definable_line_statement') def definable_line_statements(self, p): @@ -287,13 +279,15 @@ def definable_line_statement(self, p): @_('DEF ID macro_params "{" NL line_statements NL "}"') def macro_def(self, p): params, local_params, global_params, extern_params = p.macro_params - name = (self.ns_full_name(p.ID), len(params)) + name = MacroName(self.ns_full_name(p.ID), len(params)) self.check_macro_name(name, p.lineno) self.check_params(params + local_params, name, p.lineno) ops = p.line_statements - self.check_label_usage(*get_all_used_labels(ops), set(params + local_params), set(extern_params), + + used_labels, declared_labels = get_all_used_labels(ops) + self.check_label_usage(used_labels, declared_labels, set(params + local_params), set(extern_params), set(global_params), p.lineno, name) - self.macros[name] = [(params, local_params), ops, (curr_file, p.lineno, self.ns_name())] + self.macros[name] = Macro(params, local_params, ops, self.ns_name(), get_position(p.lineno)) return None @_('empty') @@ -374,23 +368,23 @@ def line_statement(self, p): @_('ID ":"') def label(self, p): - return Op(OpType.Label, (self.ns_full_name(p.ID),), curr_file, p.lineno) + return Op(OpType.Label, (self.ns_full_name(p.ID),), CodePosition(curr_file, p.lineno)) @_('expr SC') def statement(self, p): - return Op(OpType.FlipJump, (p.expr, next_address()), curr_file, p.lineno) + return Op(OpType.FlipJump, (p.expr, next_address()), CodePosition(curr_file, p.lineno)) @_('expr SC expr') def statement(self, p): - return Op(OpType.FlipJump, (p.expr0, p.expr1), curr_file, p.lineno) + return Op(OpType.FlipJump, (p.expr0, p.expr1), CodePosition(curr_file, p.lineno)) @_('SC expr') def statement(self, p): - return Op(OpType.FlipJump, (Expr(0), p.expr), curr_file, p.lineno) + return Op(OpType.FlipJump, (Expr(0), p.expr), CodePosition(curr_file, p.lineno)) @_('SC') def statement(self, p): - return Op(OpType.FlipJump, (Expr(0), next_address()), curr_file, p.lineno) + return Op(OpType.FlipJump, (Expr(0), next_address()), CodePosition(curr_file, p.lineno)) @_('ID') def id(self, p): @@ -411,27 +405,27 @@ def ids(self, p): @_('id') def statement(self, p): macro_name, lineno = p.id - return Op(OpType.Macro, ((macro_name, 0),), curr_file, lineno) + return MacroCall(macro_name, [], CodePosition(curr_file, lineno)) @_('id expressions') def statement(self, p): macro_name, lineno = p.id - return Op(OpType.Macro, ((macro_name, len(p.expressions)), *p.expressions), curr_file, lineno) + return MacroCall(macro_name, p.expressions, CodePosition(curr_file, lineno)) @_('WFLIP expr "," expr') def statement(self, p): - return Op(OpType.WordFlip, (p.expr0, p.expr1, next_address()), curr_file, p.lineno) + return Op(OpType.WordFlip, (p.expr0, p.expr1, next_address()), CodePosition(curr_file, p.lineno)) @_('WFLIP expr "," expr "," expr') def statement(self, p): - return Op(OpType.WordFlip, (p.expr0, p.expr1, p.expr2), curr_file, p.lineno) + return Op(OpType.WordFlip, (p.expr0, p.expr1, p.expr2), CodePosition(curr_file, p.lineno)) @_('ID "=" expr') def statement(self, p): name = self.ns_full_name(p.ID) if name in self.defs: syntax_error(p.lineno, f'Can\'t redeclare the variable "{name}".') - if not p.expr.eval(self.defs, curr_file, p.lineno): + if not p.expr.eval(self.defs, CodePosition(curr_file, p.lineno)): self.defs[name] = p.expr return None syntax_error(p.lineno, f'Can\'t evaluate expression: {str(p.expr)}.') @@ -439,25 +433,29 @@ def statement(self, p): @_('REP "(" expr "," ID ")" id') def statement(self, p): macro_name, lineno = p.id + code_position = CodePosition(curr_file, lineno) + macro_call = MacroCall(macro_name, [], code_position) return Op(OpType.Rep, - (p.expr, p.ID, Op(OpType.Macro, ((macro_name, 0),), curr_file, lineno)), - curr_file, p.lineno) + (p.expr, p.ID, macro_call), + code_position) @_('REP "(" expr "," ID ")" id expressions') def statement(self, p): exps = p.expressions macro_name, lineno = p.id + code_position = CodePosition(curr_file, lineno) + macro_call = MacroCall(macro_name, exps, code_position) return Op(OpType.Rep, - (p.expr, p.ID, Op(OpType.Macro, ((macro_name, len(exps)), *exps), curr_file, lineno)), - curr_file, p.lineno) + (p.expr, p.ID, macro_call), + code_position) @_('SEGMENT expr') def statement(self, p): - return Op(OpType.Segment, (p.expr,), curr_file, p.lineno) + return Op(OpType.Segment, (p.expr,), CodePosition(curr_file, p.lineno)) @_('RESERVE expr') def statement(self, p): - return Op(OpType.Reserve, (p.expr,), curr_file, p.lineno) + return Op(OpType.Reserve, (p.expr,), CodePosition(curr_file, p.lineno)) @_('expressions "," expr') def expressions(self, p): diff --git a/src/preprocessor.py b/src/preprocessor.py index 97e5b35..3e6d903 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -1,22 +1,24 @@ import collections from copy import deepcopy from itertools import count +from pathlib import Path +from typing import Dict, List, Tuple, Iterable import plotly.graph_objects as go from defs import main_macro, wflip_start_label, new_label, \ Op, OpType, SegmentEntry, Expr, FJPreprocessorException, \ - eval_all, id_swap + eval_all, id_swap, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall -def macro_resolve_error(curr_tree, msg=''): +def macro_resolve_error(curr_tree: List[str], msg='') -> None: error_str = f"Macro Resolve Error" + (f':\n {msg}' if msg else '.') + f'\nmacro call trace:\n' for i, trace_str in enumerate(curr_tree): error_str += f' {i}) {trace_str}\n' raise FJPreprocessorException(error_str) -def output_ops(ops, output_file): +def output_ops(ops: List[Op], output_file: Path) -> None: with open(output_file, 'w') as f: for op in ops: eval_all(op) @@ -28,25 +30,28 @@ def output_ops(ops, output_file): f.write(f'{op.data[0]}:\n') -def clean_name_for_pie_graph(macro_name: str): +def clean_name_for_pie_graph(macro_name: str) -> str: if '_rep_' not in macro_name: return macro_name try: + # TODO macro_name might have some legitimate underscores rep_count = macro_name.split('_')[3] inner_macro = macro_name.split("'")[1] arg_count = macro_name.split(', ')[1].split(')')[0] return f"{inner_macro}({arg_count})*{rep_count}" except IndexError: + print(f'Graph creation Warning: can\'t unpack rep_macro_name: {macro_name}') return macro_name -def dict_pie_graph(d, total, min_main_thresh=0.05, min_secondary_thresh=0.02): - main_thresh = min_main_thresh * total - secondary_thresh = min_secondary_thresh * total +def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: int, + min_main_thresh: float = 0.05, min_secondary_thresh: float = 0.02) -> None: + main_thresh = min_main_thresh * total_code_size + secondary_thresh = min_secondary_thresh * total_code_size first_level = {} second_level = collections.defaultdict(lambda: dict()) - for k, v in d.items(): + for k, v in macro_code_size.items(): if ' => ' not in k: if v < main_thresh: continue @@ -73,7 +78,7 @@ def dict_pie_graph(d, total, min_main_thresh=0.05, min_secondary_thresh=0.02): if v >= secondary_thresh: chosen.append((f"{k_name} others", v)) - others = total - sum([value for label, value in chosen]) + others = total_code_size - sum([value for label, value in chosen]) chosen.append(('all others', others)) fig = go.Figure(data=[go.Pie(labels=[label for label, value in chosen], @@ -83,98 +88,94 @@ def dict_pie_graph(d, total, min_main_thresh=0.05, min_secondary_thresh=0.02): fig.show() -def resolve_macros(w, macros, output_file=None, show_statistics=False, verbose=False): +def resolve_macros(w: int, macros: Dict[MacroName, Macro], + output_file: Path = None, show_statistics: bool = False, verbose: bool = False)\ + -> Tuple[List[Op], Dict[str, int], BoundaryAddressesList]: curr_address = [0] - rem_ops = [] - labels = {} + result_ops: List[Op] = [] + labels: Dict[str, int] = {} last_address_index = [0] label_places = {} - boundary_addresses = [(SegmentEntry.StartAddress, 0)] # SegEntries + boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries stat_dict = collections.defaultdict(lambda: 0) - ops = resolve_macro_aux(w, '', [], macros, main_macro, [], {}, count(), stat_dict, - labels, rem_ops, boundary_addresses, curr_address, last_address_index, label_places, - verbose) + resolve_macro_aux(w, '', [], macros, main_macro, [], {}, count(), stat_dict, + labels, result_ops, boundary_addresses, curr_address, last_address_index, label_places, + verbose) if output_file: - output_ops(ops, output_file) + output_ops(result_ops, output_file) if show_statistics: - dict_pie_graph(dict(stat_dict), curr_address[0]) + show_macro_usage_pie_graph(dict(stat_dict), curr_address[0]) boundary_addresses.append((SegmentEntry.WflipAddress, curr_address[0])) - return rem_ops, labels, boundary_addresses + return result_ops, labels, boundary_addresses -def try_int(op, expr): +def try_int(op: Op, expr: Expr) -> int: if expr.is_int(): return expr.val - raise FJPreprocessorException(f"Can't resolve the following name: {expr.eval({}, op.file, op.line)} (in op={op}).") + raise FJPreprocessorException(f"Can't resolve the following name: {expr.eval({}, op.code_position)} (in op={op}).") -def resolve_macro_aux(w, parent_name, curr_tree, macros, macro_name, args, rep_dict, dollar_count, stat_dict, - labels, rem_ops, boundary_addresses, curr_address, last_address_index, label_places, - verbose=False, file=None, line=None): - commands = [] +def resolve_macro_aux(w: int, parent_name: str, curr_tree: List[str], macros: Dict[MacroName, Macro], + macro_name: MacroName, args: Iterable[Expr], rep_dict: Dict[str, Expr], dollar_count: count, macro_code_size: Dict[str, int], + labels: Dict[str, int], result_ops: List[Op], boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], + verbose: bool = False, code_position: CodePosition = None)\ + -> None: init_curr_address = curr_address[0] - this_curr_address = 0 + if macro_name not in macros: - macro_name = f'{macro_name[0]}({macro_name[1]})' - if None in (file, line): + if not code_position or None in (code_position.file, code_position.line): macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined.") else: - macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined. Used in file {file} (line {line}).") - full_name = (f"{parent_name} => " if parent_name else "") + macro_name[0] + (f"({macro_name[1]})" if macro_name[0] - else "") - (params, dollar_params), ops, (_, _, ns_name) = macros[macro_name] - id_dict = dict(zip(params, args)) - for dp in dollar_params: - id_dict[dp] = new_label(dollar_count, dp) - for k in rep_dict: - id_dict[k] = rep_dict[k] - if ns_name: - for k in list(id_dict.keys()): - id_dict[f'{ns_name}.{k}'] = id_dict[k] + macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined. Used in {code_position}.") + + full_name = (f"{parent_name} => " if parent_name else "") + str(macro_name) + current_macro = macros[macro_name] + + id_dict = get_id_dictionary(current_macro, args, dollar_count, rep_dict, current_macro.namespace) - for op in ops: + for op in current_macro.ops: # macro-resolve - if type(op) is not Op: + if not isinstance(op, Op): macro_resolve_error(curr_tree, f"bad op (not of Op type)! type {type(op)}, str {str(op)}.") if verbose: print(op) op = deepcopy(op) eval_all(op, id_dict) id_swap(op, id_dict) - if op.type == OpType.Macro: - commands += resolve_macro_aux(w, full_name, curr_tree+[op.macro_trace_str()], macros, op.data[0], - list(op.data[1:]), {}, dollar_count, stat_dict, - labels, rem_ops, boundary_addresses, curr_address, last_address_index, - label_places, verbose, file=op.file, line=op.line) + if isinstance(op, MacroCall): + resolve_macro_aux(w, full_name, curr_tree + [op.macro_trace_str()], macros, op.macro_name, + op.data, {}, dollar_count, macro_code_size, + labels, result_ops, boundary_addresses, curr_address, last_address_index, + labels_code_positions, verbose, code_position=op.code_position) elif op.type == OpType.Rep: eval_all(op, labels) n, i_name, macro_call = op.data if not n.is_int(): macro_resolve_error(curr_tree, f'Rep used without a number "{str(n)}" ' - f'in file {op.file} line {op.line}.') + f'in {op.code_position}.') times = n.val if times == 0: continue if i_name in rep_dict: macro_resolve_error(curr_tree, f'Rep index {i_name} is declared twice; maybe an inner rep. ' - f'in file {op.file} line {op.line}.') - macro_name = macro_call.data[0] - pseudo_macro_name = (new_label(dollar_count, f'rep_{times}_{macro_name}').val, 1) # just moved outside (before) the for loop + f'in {op.code_position}.') + macro_name = macro_call.macro_name + pseudo_macro_name = MacroName(new_label(dollar_count, f'rep_{times}_{macro_name}').val, 1) # just moved outside (before) the for loop for i in range(times): rep_dict[i_name] = Expr(i) # TODO - call the macro_name directly, and do deepcopy(op) beforehand. - macros[pseudo_macro_name] = (([], []), [macro_call], (op.file, op.line, ns_name)) - commands += resolve_macro_aux(w, full_name, curr_tree+[op.rep_trace_str(i, times)], macros, - pseudo_macro_name, [], rep_dict, dollar_count, stat_dict, - labels, rem_ops, boundary_addresses, curr_address, last_address_index, - label_places, verbose, file=op.file, line=op.line) + macros[pseudo_macro_name] = Macro([], [], [macro_call], current_macro.namespace, op.code_position) + resolve_macro_aux(w, full_name, curr_tree + [op.rep_trace_str(i, times)], macros, + pseudo_macro_name, [], rep_dict, dollar_count, macro_code_size, + labels, result_ops, boundary_addresses, curr_address, last_address_index, + labels_code_positions, verbose, code_position=op.code_position) if i_name in rep_dict: del rep_dict[i_name] else: macro_resolve_error(curr_tree, f'Rep is used but {i_name} index is gone; maybe also declared elsewhere.' - f' in file {op.file} line {op.line}.') + f' in {op.code_position}.') # labels_resolve elif op.type == OpType.Segment: @@ -187,46 +188,51 @@ def resolve_macro_aux(w, parent_name, curr_tree, macros, macro_name, args, rep_d labels[f'{wflip_start_label}{last_address_index[0]}'] = Expr(curr_address[0]) last_address_index[0] += 1 - this_curr_address += value - curr_address[0] curr_address[0] = value boundary_addresses.append((SegmentEntry.StartAddress, curr_address[0])) - rem_ops.append(op) + result_ops.append(op) elif op.type == OpType.Reserve: eval_all(op, labels) value = try_int(op, op.data[0]) if value % w != 0: macro_resolve_error(curr_tree, f'reserve ops must have a w-aligned value. In {op}.') - this_curr_address += value curr_address[0] += value boundary_addresses.append((SegmentEntry.ReserveAddress, curr_address[0])) labels[f'{wflip_start_label}{last_address_index[0]}'] = Expr(curr_address[0]) last_address_index[0] += 1 - rem_ops.append(op) + result_ops.append(op) elif op.type in {OpType.FlipJump, OpType.WordFlip}: - this_curr_address += 2*w curr_address[0] += 2*w eval_all(op, {'$': Expr(curr_address[0])}) if verbose: print(f'op added: {str(op)}') - rem_ops.append(op) + result_ops.append(op) elif op.type == OpType.Label: label = op.data[0] if label in labels: - other_file, other_line = label_places[label] - macro_resolve_error(curr_tree, f'label declared twice - "{label}" on file {op.file} (line {op.line}) ' - f'and file {other_file} (line {other_line})') + other_position = labels_code_positions[label] + macro_resolve_error(curr_tree, f'label declared twice - "{label}" on {op.code_position} ' + f'and {other_position}') if verbose: - print(f'label added: "{label}" in {op.file} line {op.line}') + print(f'label added: "{label}" in {op.code_position}') labels[label] = Expr(curr_address[0]) - label_places[label] = (op.file, op.line) + labels_code_positions[label] = op.code_position else: macro_resolve_error(curr_tree, f"Can't assemble this opcode - {str(op)}") - # if len(curr_tree) == 1: - # stat_dict[macro_name[0]] += curr_address[0] - init_curr_address - # stat_dict[macro_name[0]] += this_curr_address if 1 <= len(curr_tree) <= 2: - stat_dict[full_name] += curr_address[0] - init_curr_address - return commands + macro_code_size[full_name] += curr_address[0] - init_curr_address + + +def get_id_dictionary(current_macro: Macro, args: Iterable[Op], dollar_count: count, rep_dict: Dict[str, Expr], namespace: str): + id_dict: Dict[str, Expr] = dict(zip(current_macro.params, args)) + for local_param in current_macro.local_params: + id_dict[local_param] = new_label(dollar_count, local_param) + for k in rep_dict: + id_dict[k] = rep_dict[k] + if namespace: + for k in list(id_dict.keys()): + id_dict[f'{namespace}.{k}'] = id_dict[k] + return id_dict From f5ef04f43704b168bac78805236af75e388639d9 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 8 Jul 2022 12:26:56 +0300 Subject: [PATCH 08/66] fix (1) in rep-labels --- src/preprocessor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/preprocessor.py b/src/preprocessor.py index 3e6d903..af48da5 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -163,7 +163,7 @@ def resolve_macro_aux(w: int, parent_name: str, curr_tree: List[str], macros: Di macro_resolve_error(curr_tree, f'Rep index {i_name} is declared twice; maybe an inner rep. ' f'in {op.code_position}.') macro_name = macro_call.macro_name - pseudo_macro_name = MacroName(new_label(dollar_count, f'rep_{times}_{macro_name}').val, 1) # just moved outside (before) the for loop + pseudo_macro_name = MacroName(new_label(dollar_count, f'rep_{times}_{macro_name}').val, 0) # just moved outside (before) the for loop for i in range(times): rep_dict[i_name] = Expr(i) # TODO - call the macro_name directly, and do deepcopy(op) beforehand. macros[pseudo_macro_name] = Macro([], [], [macro_call], current_macro.namespace, op.code_position) From 5be4176f2e2b19c84f4548855e8f1ec3ebca2ce1 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 8 Jul 2022 18:46:29 +0300 Subject: [PATCH 09/66] fixed label/rep_macro names --- src/assembler.py | 1 - src/defs.py | 12 +++--- src/fj_parser.py | 36 ++++++++--------- src/preprocessor.py | 97 ++++++++++++++++++++++----------------------- 4 files changed, 71 insertions(+), 75 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index d51d42a..4abd731 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,6 +1,5 @@ import os import pickle -from time import time from tempfile import mkstemp import fjm diff --git a/src/defs.py b/src/defs.py index 659153a..e4b3da3 100644 --- a/src/defs.py +++ b/src/defs.py @@ -1,6 +1,5 @@ from __future__ import annotations -import itertools from dataclasses import dataclass import json from enum import IntEnum # IntEnum equality works between files. @@ -165,11 +164,15 @@ def __hash__(self): @dataclass class CodePosition: file: str + file_number: int line: int def __str__(self) -> str: return f"file {self.file} (line {self.line})" + def short_str(self) -> str: + return f"f{self.file_number}:l{self.line}" + class Op: def __init__(self, op_type: OpType, data: Tuple[Union[Expr, str, MacroCall], ...], code_position: CodePosition): @@ -310,11 +313,8 @@ def id_swap(op: Op, id_dict: Dict[str, Expr]) -> None: op.data = tuple(new_data) -def new_label(counter: itertools.count, name: str) -> Expr: - if name == '': - return Expr(f'_.label{next(counter)}') - else: - return Expr(f'_.label{next(counter)}_{name}') +def new_label(macro_path: str, label_name: str) -> Expr: + return Expr(f'{macro_path}---{label_name}') wflip_start_label = '_.wflip_area_start_' diff --git a/src/fj_parser.py b/src/fj_parser.py index c648806..588a3fb 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -9,11 +9,11 @@ number_re, dot_id_re, id_re, string_re, \ CodePosition, Macro, MacroCall, MacroName -global curr_file, curr_text, error_occurred, curr_namespace, reserved_names +global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace, reserved_names def get_position(lineno: int): - return CodePosition(curr_file, lineno) + return CodePosition(curr_file, curr_file_number, lineno) def syntax_error(lineno: int, msg=''): @@ -368,23 +368,23 @@ def line_statement(self, p): @_('ID ":"') def label(self, p): - return Op(OpType.Label, (self.ns_full_name(p.ID),), CodePosition(curr_file, p.lineno)) + return Op(OpType.Label, (self.ns_full_name(p.ID),), get_position(p.lineno)) @_('expr SC') def statement(self, p): - return Op(OpType.FlipJump, (p.expr, next_address()), CodePosition(curr_file, p.lineno)) + return Op(OpType.FlipJump, (p.expr, next_address()), get_position(p.lineno)) @_('expr SC expr') def statement(self, p): - return Op(OpType.FlipJump, (p.expr0, p.expr1), CodePosition(curr_file, p.lineno)) + return Op(OpType.FlipJump, (p.expr0, p.expr1), get_position(p.lineno)) @_('SC expr') def statement(self, p): - return Op(OpType.FlipJump, (Expr(0), p.expr), CodePosition(curr_file, p.lineno)) + return Op(OpType.FlipJump, (Expr(0), p.expr), get_position(p.lineno)) @_('SC') def statement(self, p): - return Op(OpType.FlipJump, (Expr(0), next_address()), CodePosition(curr_file, p.lineno)) + return Op(OpType.FlipJump, (Expr(0), next_address()), get_position(p.lineno)) @_('ID') def id(self, p): @@ -405,27 +405,27 @@ def ids(self, p): @_('id') def statement(self, p): macro_name, lineno = p.id - return MacroCall(macro_name, [], CodePosition(curr_file, lineno)) + return MacroCall(macro_name, [], get_position(lineno)) @_('id expressions') def statement(self, p): macro_name, lineno = p.id - return MacroCall(macro_name, p.expressions, CodePosition(curr_file, lineno)) + return MacroCall(macro_name, p.expressions, get_position(lineno)) @_('WFLIP expr "," expr') def statement(self, p): - return Op(OpType.WordFlip, (p.expr0, p.expr1, next_address()), CodePosition(curr_file, p.lineno)) + return Op(OpType.WordFlip, (p.expr0, p.expr1, next_address()), get_position(p.lineno)) @_('WFLIP expr "," expr "," expr') def statement(self, p): - return Op(OpType.WordFlip, (p.expr0, p.expr1, p.expr2), CodePosition(curr_file, p.lineno)) + return Op(OpType.WordFlip, (p.expr0, p.expr1, p.expr2), get_position(p.lineno)) @_('ID "=" expr') def statement(self, p): name = self.ns_full_name(p.ID) if name in self.defs: syntax_error(p.lineno, f'Can\'t redeclare the variable "{name}".') - if not p.expr.eval(self.defs, CodePosition(curr_file, p.lineno)): + if not p.expr.eval(self.defs, get_position(p.lineno)): self.defs[name] = p.expr return None syntax_error(p.lineno, f'Can\'t evaluate expression: {str(p.expr)}.') @@ -433,7 +433,7 @@ def statement(self, p): @_('REP "(" expr "," ID ")" id') def statement(self, p): macro_name, lineno = p.id - code_position = CodePosition(curr_file, lineno) + code_position = get_position(lineno) macro_call = MacroCall(macro_name, [], code_position) return Op(OpType.Rep, (p.expr, p.ID, macro_call), @@ -443,7 +443,7 @@ def statement(self, p): def statement(self, p): exps = p.expressions macro_name, lineno = p.id - code_position = CodePosition(curr_file, lineno) + code_position = get_position(lineno) macro_call = MacroCall(macro_name, exps, code_position) return Op(OpType.Rep, (p.expr, p.ID, macro_call), @@ -451,11 +451,11 @@ def statement(self, p): @_('SEGMENT expr') def statement(self, p): - return Op(OpType.Segment, (p.expr,), CodePosition(curr_file, p.lineno)) + return Op(OpType.Segment, (p.expr,), get_position(p.lineno)) @_('RESERVE expr') def statement(self, p): - return Op(OpType.Reserve, (p.expr,), CodePosition(curr_file, p.lineno)) + return Op(OpType.Reserve, (p.expr,), get_position(p.lineno)) @_('expressions "," expr') def expressions(self, p): @@ -625,12 +625,12 @@ def exit_if_errors(): def parse_macro_tree(input_files, w, warning_as_errors, verbose=False): - global curr_file, curr_text, error_occurred, curr_namespace + global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace error_occurred = False lexer = FJLexer() parser = FJParser(w, warning_as_errors, verbose=verbose) - for curr_file in input_files: + for curr_file_number, curr_file in enumerate(input_files, start=1): if not path.isfile(curr_file): raise FJParsingException(f"No such file {curr_file}.") curr_text = open(curr_file, 'r').read() diff --git a/src/preprocessor.py b/src/preprocessor.py index af48da5..6801870 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -1,6 +1,5 @@ import collections from copy import deepcopy -from itertools import count from pathlib import Path from typing import Dict, List, Tuple, Iterable @@ -10,6 +9,8 @@ Op, OpType, SegmentEntry, Expr, FJPreprocessorException, \ eval_all, id_swap, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall +macro_separator_string = "---" + def macro_resolve_error(curr_tree: List[str], msg='') -> None: error_str = f"Macro Resolve Error" + (f':\n {msg}' if msg else '.') + f'\nmacro call trace:\n' @@ -31,38 +32,30 @@ def output_ops(ops: List[Op], output_file: Path) -> None: def clean_name_for_pie_graph(macro_name: str) -> str: - if '_rep_' not in macro_name: - return macro_name - - try: - # TODO macro_name might have some legitimate underscores - rep_count = macro_name.split('_')[3] - inner_macro = macro_name.split("'")[1] - arg_count = macro_name.split(', ')[1].split(')')[0] - return f"{inner_macro}({arg_count})*{rep_count}" - except IndexError: - print(f'Graph creation Warning: can\'t unpack rep_macro_name: {macro_name}') - return macro_name - - -def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: int, - min_main_thresh: float = 0.05, min_secondary_thresh: float = 0.02) -> None: + return macro_name + + +def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: int, *, + min_main_thresh: float = 0.05, min_secondary_thresh: float = 0.01, + child_significance_min_thresh: float = 0.1) -> None: main_thresh = min_main_thresh * total_code_size secondary_thresh = min_secondary_thresh * total_code_size first_level = {} second_level = collections.defaultdict(lambda: dict()) for k, v in macro_code_size.items(): - if ' => ' not in k: + if macro_separator_string not in k: if v < main_thresh: continue first_level[k] = v else: if v < secondary_thresh: continue - k_split = k.split(' => ') + k_split = k.split(macro_separator_string) if len(k_split) != 2: continue parent, name = k_split + if float(v) / macro_code_size[parent] < child_significance_min_thresh: + continue second_level[parent][name] = v chosen = [] @@ -73,7 +66,7 @@ def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: else: for k2, v2 in sorted(second_level[k].items(), key=lambda x: x[1], reverse=True): k2_name = clean_name_for_pie_graph(k2) - chosen.append((f"{k_name} => {k2_name}", v2)) + chosen.append((f"{k_name} => {k2_name}", v2)) v -= v2 if v >= secondary_thresh: chosen.append((f"{k_name} others", v)) @@ -99,7 +92,7 @@ def resolve_macros(w: int, macros: Dict[MacroName, Macro], boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries stat_dict = collections.defaultdict(lambda: 0) - resolve_macro_aux(w, '', [], macros, main_macro, [], {}, count(), stat_dict, + resolve_macro_aux(w, '', [], macros, main_macro, [], stat_dict, labels, result_ops, boundary_addresses, curr_address, last_address_index, label_places, verbose) if output_file: @@ -118,23 +111,22 @@ def try_int(op: Op, expr: Expr) -> int: raise FJPreprocessorException(f"Can't resolve the following name: {expr.eval({}, op.code_position)} (in op={op}).") -def resolve_macro_aux(w: int, parent_name: str, curr_tree: List[str], macros: Dict[MacroName, Macro], - macro_name: MacroName, args: Iterable[Expr], rep_dict: Dict[str, Expr], dollar_count: count, macro_code_size: Dict[str, int], +def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dict[MacroName, Macro], + macro_name: MacroName, args: Iterable[Expr], macro_code_size: Dict[str, int], labels: Dict[str, int], result_ops: List[Op], boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], verbose: bool = False, code_position: CodePosition = None)\ -> None: init_curr_address = curr_address[0] if macro_name not in macros: - if not code_position or None in (code_position.file, code_position.line): + if not code_position: macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined.") else: macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined. Used in {code_position}.") - full_name = (f"{parent_name} => " if parent_name else "") + str(macro_name) current_macro = macros[macro_name] - id_dict = get_id_dictionary(current_macro, args, dollar_count, rep_dict, current_macro.namespace) + id_dict = get_id_dictionary(current_macro, args, current_macro.namespace, macro_path) for op in current_macro.ops: # macro-resolve @@ -142,40 +134,47 @@ def resolve_macro_aux(w: int, parent_name: str, curr_tree: List[str], macros: Di macro_resolve_error(curr_tree, f"bad op (not of Op type)! type {type(op)}, str {str(op)}.") if verbose: print(op) - op = deepcopy(op) - eval_all(op, id_dict) - id_swap(op, id_dict) + if op.type != OpType.Rep: + op = deepcopy(op) + eval_all(op, id_dict) + id_swap(op, id_dict) if isinstance(op, MacroCall): - resolve_macro_aux(w, full_name, curr_tree + [op.macro_trace_str()], macros, op.macro_name, - op.data, {}, dollar_count, macro_code_size, + next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ + f"{op.code_position.short_str()}:{op.macro_name}" + + resolve_macro_aux(w, next_macro_path, curr_tree + [op.macro_trace_str()], macros, + op.macro_name, op.data, macro_code_size, labels, result_ops, boundary_addresses, curr_address, last_address_index, labels_code_positions, verbose, code_position=op.code_position) elif op.type == OpType.Rep: - eval_all(op, labels) n, i_name, macro_call = op.data + n = deepcopy(n) + n.eval(id_dict, code_position) + temp_op = Op(None, (n,), op.code_position) + id_swap(temp_op, id_dict) + n = temp_op.data[0] + n.eval(labels, op.code_position) if not n.is_int(): macro_resolve_error(curr_tree, f'Rep used without a number "{str(n)}" ' f'in {op.code_position}.') times = n.val if times == 0: continue - if i_name in rep_dict: - macro_resolve_error(curr_tree, f'Rep index {i_name} is declared twice; maybe an inner rep. ' - f'in {op.code_position}.') macro_name = macro_call.macro_name - pseudo_macro_name = MacroName(new_label(dollar_count, f'rep_{times}_{macro_name}').val, 0) # just moved outside (before) the for loop + for i in range(times): - rep_dict[i_name] = Expr(i) # TODO - call the macro_name directly, and do deepcopy(op) beforehand. - macros[pseudo_macro_name] = Macro([], [], [macro_call], current_macro.namespace, op.code_position) - resolve_macro_aux(w, full_name, curr_tree + [op.rep_trace_str(i, times)], macros, - pseudo_macro_name, [], rep_dict, dollar_count, macro_code_size, + next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ + f"{op.code_position.short_str()}:rep{i}:{macro_name}" + + this_macro_call = deepcopy(macro_call) + eval_all(this_macro_call, id_dict) + eval_all(this_macro_call, labels) + eval_all(this_macro_call, {i_name: Expr(i)}) + + resolve_macro_aux(w, next_macro_path, curr_tree + [op.rep_trace_str(i, times)], macros, + macro_name, this_macro_call.data, macro_code_size, labels, result_ops, boundary_addresses, curr_address, last_address_index, labels_code_positions, verbose, code_position=op.code_position) - if i_name in rep_dict: - del rep_dict[i_name] - else: - macro_resolve_error(curr_tree, f'Rep is used but {i_name} index is gone; maybe also declared elsewhere.' - f' in {op.code_position}.') # labels_resolve elif op.type == OpType.Segment: @@ -223,15 +222,13 @@ def resolve_macro_aux(w: int, parent_name: str, curr_tree: List[str], macros: Di macro_resolve_error(curr_tree, f"Can't assemble this opcode - {str(op)}") if 1 <= len(curr_tree) <= 2: - macro_code_size[full_name] += curr_address[0] - init_curr_address + macro_code_size[macro_path] += curr_address[0] - init_curr_address -def get_id_dictionary(current_macro: Macro, args: Iterable[Op], dollar_count: count, rep_dict: Dict[str, Expr], namespace: str): +def get_id_dictionary(current_macro: Macro, args: Iterable[Expr], namespace: str, macro_path: str): id_dict: Dict[str, Expr] = dict(zip(current_macro.params, args)) for local_param in current_macro.local_params: - id_dict[local_param] = new_label(dollar_count, local_param) - for k in rep_dict: - id_dict[k] = rep_dict[k] + id_dict[local_param] = new_label(macro_path, local_param) if namespace: for k in list(id_dict.keys()): id_dict[f'{namespace}.{k}'] = id_dict[k] From a3cf5ec8b24611ae0b55a4307c396b6eb52dacb1 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 9 Jul 2022 02:32:09 +0300 Subject: [PATCH 10/66] faster rep without deepcopy --- src/defs.py | 92 ++++++++++++++++++++++++++++++++++++--------- src/fj.py | 15 +++----- src/fj_parser.py | 31 ++++++--------- src/preprocessor.py | 54 ++++++++++++-------------- 4 files changed, 115 insertions(+), 77 deletions(-) diff --git a/src/defs.py b/src/defs.py index e4b3da3..b6c13d2 100644 --- a/src/defs.py +++ b/src/defs.py @@ -1,5 +1,6 @@ from __future__ import annotations +from copy import copy from dataclasses import dataclass import json from enum import IntEnum # IntEnum equality works between files. @@ -8,8 +9,8 @@ from time import time from typing import List, Tuple, Dict, Union, Set -# TODO use the op-strings (instead of the function) up-to the last point possible (to make deepcopy simpler) -parsing_op2func = {'+': add, '-': sub, '*': mul, '/': floordiv, '%': mod, + +parsing_op2func = {'+': add, '-': sub, '*': mul, '/': floordiv, '%': mod, '<<': lshift, '>>': rshift, '^': xor, '|': or_, '&': and_, '#': lambda x: x.bit_length(), '?:': lambda a, b, c: b if a else c, @@ -175,7 +176,7 @@ def short_str(self) -> str: class Op: - def __init__(self, op_type: OpType, data: Tuple[Union[Expr, str, MacroCall], ...], code_position: CodePosition): + def __init__(self, op_type: OpType, data: List[Union[Expr, str, MacroCall], ...], code_position: CodePosition): self.type = op_type self.data = data self.code_position = code_position @@ -184,22 +185,48 @@ def __str__(self) -> str: return f'{f"{self.type}:"[7:]:10} Data: {", ".join([str(d) for d in self.data])} ' \ f'{self.code_position}' - def macro_trace_str(self) -> str: - assert self.type == OpType.Macro - return f'macro {self.macro_name} ({self.code_position})' - - def rep_trace_str(self, iter_value: int, iter_times: int) -> str: - assert self.type == OpType.Rep - _, iter_name, macro = self.data - return f'rep({iter_name}={iter_value}, out of 0..{iter_times-1}) ' \ - f'macro {macro.macro_name} ({macro.code_position})' + def eval_new(self, id_dict: Dict[str, Expr]) -> Op: + op = copy(self) + op.data = [expr.eval_new(id_dict) for expr in self.data] + return op class MacroCall(Op): def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): - super(MacroCall, self).__init__(OpType.Macro, tuple(arguments), code_position) + super(MacroCall, self).__init__(OpType.Macro, arguments, code_position) + self.macro_name = MacroName(macro_name, len(arguments)) + + def macro_trace_str(self) -> str: + return f'macro {self.macro_name} ({self.code_position})' + + +class RepCall(Op): + def __init__(self, times: Expr, iterator_name: str, macro_name: str, arguments: List[Expr], code_position: CodePosition): + super(RepCall, self).__init__(OpType.Rep, [times, *arguments], code_position) + self.iterator_name = iterator_name self.macro_name = MacroName(macro_name, len(arguments)) + def get_times(self) -> int: + try: + return int(self.data[0]) + except FJExprException as e: + raise FJExprException(f"Can't calculate rep time on {self.code_position}") from e + + def calculate_times(self, labels: Dict[str, Expr]) -> int: + self.data[0] = self.data[0].eval_new(labels) + return self.get_times() + + def calculate_arguments(self, iterator_value: int) -> Tuple[Expr, ...]: + iterator_dict = {self.iterator_name: Expr(iterator_value)} + try: + return tuple(expr.eval_new(iterator_dict) for expr in self.data[1:]) + except FJExprException as e: + raise FJExprException(f"Can't calculate rep arguments on {self.code_position}") from e + + def rep_trace_str(self, iter_value: int) -> str: + return f'rep({self.iterator_name}={iter_value}, out of 0..{self.get_times()-1}) ' \ + f'macro {self.macro_name} ({self.code_position})' + class Macro: # [(params, quiet_params), statements, (curr_file, p.lineno, ns_name)] @@ -218,6 +245,36 @@ class Expr: def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr]]]): self.val = expr + def __int__(self): + if isinstance(self.val, int): + return self.val + raise FJExprException(f"Can't resolve labels: {', '.join(self.all_unknown_labels())}") + + def all_unknown_labels(self) -> Set[str]: + if isinstance(self.val, int): + return set() + if isinstance(self.val, str): + return {self.val} + return set(label for expr in self.val[1] for label in expr.all_unknown_labels()) + + def eval_new(self, id_dict: Dict[str, Expr], i=0) -> Expr: + if isinstance(self.val, int): + return Expr(self.val) + + if isinstance(self.val, str): + if self.val in id_dict: + return id_dict[self.val].eval_new({}, i+1) + return Expr(self.val) + + op, args = self.val + evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(id_dict, i+1) for e in args) + if all(isinstance(e.val, int) for e in evaluated_args): + try: + return Expr(parsing_op2func[op](*(arg.val for arg in evaluated_args))) + except Exception as e: + raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)}.') + return Expr((op, evaluated_args)) + # replaces every string it can with its dictionary value, and evaluates anything it can. # returns the list of unknown id's def eval(self, id_dict: Dict[str, Expr], code_position: CodePosition) -> List[str]: @@ -285,11 +342,12 @@ def eval_all(op: Op, id_dict: Dict[str, Expr] = None) -> List[str]: def get_all_used_labels(ops: List[Op]) -> Tuple[Set[str], Set[str]]: used_labels, declared_labels = set(), set() for op in ops: - if op.type == OpType.Rep: - n, i, macro_call = op.data + if isinstance(op, RepCall): + n, *macro_call_data = op.data + i = op.iterator_name used_labels.update(n.eval({}, op.code_position)) new_labels = set() - new_labels.update(*[e.eval({}, op.code_position) for e in macro_call.data]) + new_labels.update(*[e.eval({}, op.code_position) for e in macro_call_data]) used_labels.update(new_labels - {i}) elif op.type == OpType.Label: declared_labels.add(op.data[0]) @@ -310,7 +368,7 @@ def id_swap(op: Op, id_dict: Dict[str, Expr]) -> None: new_data.append(swapped_label.val) else: new_data.append(datum) - op.data = tuple(new_data) + op.data = new_data def new_label(macro_path: str, label_name: str) -> Expr: diff --git a/src/fj.py b/src/fj.py index 46ca716..52356d9 100644 --- a/src/fj.py +++ b/src/fj.py @@ -63,16 +63,11 @@ def main(): temp_debug_fd, args.debug = mkstemp() temp_debug_file = True - try: - assemble(args.file, args.outfile, args.width, - version=args.version, flags=args.flags, - warning_as_errors=args.Werror, - show_statistics=args.stats, verbose=verbose_set, - preprocessed_file=args.no_macros, debugging_file=args.debug) - except FJException as e: - print() - print(e) - exit(1) + assemble(args.file, args.outfile, args.width, + version=args.version, flags=args.flags, + warning_as_errors=args.Werror, + show_statistics=args.stats, verbose=verbose_set, + preprocessed_file=args.no_macros, debugging_file=args.debug) if temp_assembled_file: os.close(temp_assembled_fd) diff --git a/src/fj_parser.py b/src/fj_parser.py index 588a3fb..fc33333 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -7,7 +7,7 @@ main_macro, next_address, \ OpType, Op, Expr, FJParsingException, \ number_re, dot_id_re, id_re, string_re, \ - CodePosition, Macro, MacroCall, MacroName + CodePosition, Macro, MacroCall, MacroName, RepCall global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace, reserved_names @@ -368,23 +368,23 @@ def line_statement(self, p): @_('ID ":"') def label(self, p): - return Op(OpType.Label, (self.ns_full_name(p.ID),), get_position(p.lineno)) + return Op(OpType.Label, [self.ns_full_name(p.ID)], get_position(p.lineno)) @_('expr SC') def statement(self, p): - return Op(OpType.FlipJump, (p.expr, next_address()), get_position(p.lineno)) + return Op(OpType.FlipJump, [p.expr, next_address()], get_position(p.lineno)) @_('expr SC expr') def statement(self, p): - return Op(OpType.FlipJump, (p.expr0, p.expr1), get_position(p.lineno)) + return Op(OpType.FlipJump, [p.expr0, p.expr1], get_position(p.lineno)) @_('SC expr') def statement(self, p): - return Op(OpType.FlipJump, (Expr(0), p.expr), get_position(p.lineno)) + return Op(OpType.FlipJump, [Expr(0), p.expr], get_position(p.lineno)) @_('SC') def statement(self, p): - return Op(OpType.FlipJump, (Expr(0), next_address()), get_position(p.lineno)) + return Op(OpType.FlipJump, [Expr(0), next_address()], get_position(p.lineno)) @_('ID') def id(self, p): @@ -414,11 +414,11 @@ def statement(self, p): @_('WFLIP expr "," expr') def statement(self, p): - return Op(OpType.WordFlip, (p.expr0, p.expr1, next_address()), get_position(p.lineno)) + return Op(OpType.WordFlip, [p.expr0, p.expr1, next_address()], get_position(p.lineno)) @_('WFLIP expr "," expr "," expr') def statement(self, p): - return Op(OpType.WordFlip, (p.expr0, p.expr1, p.expr2), get_position(p.lineno)) + return Op(OpType.WordFlip, [p.expr0, p.expr1, p.expr2], get_position(p.lineno)) @_('ID "=" expr') def statement(self, p): @@ -434,28 +434,21 @@ def statement(self, p): def statement(self, p): macro_name, lineno = p.id code_position = get_position(lineno) - macro_call = MacroCall(macro_name, [], code_position) - return Op(OpType.Rep, - (p.expr, p.ID, macro_call), - code_position) + return RepCall(p.expr, p.ID, macro_name, [], code_position) @_('REP "(" expr "," ID ")" id expressions') def statement(self, p): - exps = p.expressions macro_name, lineno = p.id code_position = get_position(lineno) - macro_call = MacroCall(macro_name, exps, code_position) - return Op(OpType.Rep, - (p.expr, p.ID, macro_call), - code_position) + return RepCall(p.expr, p.ID, macro_name, p.expressions, code_position) @_('SEGMENT expr') def statement(self, p): - return Op(OpType.Segment, (p.expr,), get_position(p.lineno)) + return Op(OpType.Segment, [p.expr], get_position(p.lineno)) @_('RESERVE expr') def statement(self, p): - return Op(OpType.Reserve, (p.expr,), get_position(p.lineno)) + return Op(OpType.Reserve, [p.expr], get_position(p.lineno)) @_('expressions "," expr') def expressions(self, p): diff --git a/src/preprocessor.py b/src/preprocessor.py index 6801870..b7f97f5 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -7,16 +7,16 @@ from defs import main_macro, wflip_start_label, new_label, \ Op, OpType, SegmentEntry, Expr, FJPreprocessorException, \ - eval_all, id_swap, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall + eval_all, id_swap, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException macro_separator_string = "---" -def macro_resolve_error(curr_tree: List[str], msg='') -> None: +def macro_resolve_error(curr_tree: List[str], msg='', *, orig_exception: BaseException = None) -> None: error_str = f"Macro Resolve Error" + (f':\n {msg}' if msg else '.') + f'\nmacro call trace:\n' for i, trace_str in enumerate(curr_tree): error_str += f' {i}) {trace_str}\n' - raise FJPreprocessorException(error_str) + raise FJPreprocessorException(error_str) from orig_exception def output_ops(ops: List[Op], output_file: Path) -> None: @@ -83,10 +83,10 @@ def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: def resolve_macros(w: int, macros: Dict[MacroName, Macro], output_file: Path = None, show_statistics: bool = False, verbose: bool = False)\ - -> Tuple[List[Op], Dict[str, int], BoundaryAddressesList]: + -> Tuple[List[Op], Dict[str, Expr], BoundaryAddressesList]: curr_address = [0] result_ops: List[Op] = [] - labels: Dict[str, int] = {} + labels: Dict[str, Expr] = {} last_address_index = [0] label_places = {} boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries @@ -113,7 +113,7 @@ def try_int(op: Op, expr: Expr) -> int: def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dict[MacroName, Macro], macro_name: MacroName, args: Iterable[Expr], macro_code_size: Dict[str, int], - labels: Dict[str, int], result_ops: List[Op], boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], + labels: Dict[str, Expr], result_ops: List[Op], boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], verbose: bool = False, code_position: CodePosition = None)\ -> None: init_curr_address = curr_address[0] @@ -135,6 +135,7 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic if verbose: print(op) if op.type != OpType.Rep: + # op = op.eval_new(id_dict) op = deepcopy(op) eval_all(op, id_dict) id_swap(op, id_dict) @@ -146,35 +147,26 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic op.macro_name, op.data, macro_code_size, labels, result_ops, boundary_addresses, curr_address, last_address_index, labels_code_positions, verbose, code_position=op.code_position) - elif op.type == OpType.Rep: - n, i_name, macro_call = op.data - n = deepcopy(n) - n.eval(id_dict, code_position) - temp_op = Op(None, (n,), op.code_position) - id_swap(temp_op, id_dict) - n = temp_op.data[0] - n.eval(labels, op.code_position) - if not n.is_int(): - macro_resolve_error(curr_tree, f'Rep used without a number "{str(n)}" ' - f'in {op.code_position}.') - times = n.val - if times == 0: - continue - macro_name = macro_call.macro_name + elif isinstance(op, RepCall): + op = op.eval_new(id_dict) + + try: + times = op.calculate_times(labels) + if times == 0: + continue - for i in range(times): next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ - f"{op.code_position.short_str()}:rep{i}:{macro_name}" + f"{op.code_position.short_str()}:rep{{}}:{op.macro_name}" + + for i in range(times): + resolve_macro_aux(w, next_macro_path.format(i), curr_tree + [op.rep_trace_str(i)], macros, + op.macro_name, op.calculate_arguments(i), macro_code_size, + labels, result_ops, boundary_addresses, curr_address, last_address_index, + labels_code_positions, verbose, code_position=op.code_position) + except FJExprException as e: + macro_resolve_error(curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) - this_macro_call = deepcopy(macro_call) - eval_all(this_macro_call, id_dict) - eval_all(this_macro_call, labels) - eval_all(this_macro_call, {i_name: Expr(i)}) - resolve_macro_aux(w, next_macro_path, curr_tree + [op.rep_trace_str(i, times)], macros, - macro_name, this_macro_call.data, macro_code_size, - labels, result_ops, boundary_addresses, curr_address, last_address_index, - labels_code_positions, verbose, code_position=op.code_position) # labels_resolve elif op.type == OpType.Segment: From 259a3b161bd3b44798cc8230fb2868e7d7d87207 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 9 Jul 2022 02:48:08 +0300 Subject: [PATCH 11/66] support --regular test flag --- tests/conf.json | 7 ++++++- tests/conftest.py | 15 +++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/conf.json b/tests/conf.json index 58fb33a..e2bea44 100644 --- a/tests/conf.json +++ b/tests/conf.json @@ -1,6 +1,11 @@ { "default_type": "fast", - "ordered_speed_list": [ + "regular_speed_ordered": [ + "fast", + "medium", + "slow" + ], + "all_speed_ordered": [ "fast", "medium", "slow", diff --git a/tests/conftest.py b/tests/conftest.py index 10fffa0..d701976 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -23,8 +23,10 @@ with open(TESTS_PATH / 'conf.json', 'r') as tests_json: TESTS_OPTIONS = json.load(tests_json) -TEST_TYPES = TESTS_OPTIONS['ordered_speed_list'] +TEST_TYPES = TESTS_OPTIONS['all_speed_ordered'] assert TEST_TYPES +REGULAR_TYPES = TESTS_OPTIONS['regular_speed_ordered'] +assert REGULAR_TYPES DEFAULT_TYPE = TESTS_OPTIONS['default_type'] assert DEFAULT_TYPE in TEST_TYPES @@ -34,6 +36,7 @@ ALL_FLAG = 'all' +REGULAR_FLAG = 'regular' COMPILE_FLAG = 'compile' RUN_FLAG = 'run' NAME_EXACT_FLAG = 'name' @@ -109,6 +112,7 @@ def pytest_addoption(parser) -> None: for test_type in TEST_TYPES: parser.addoption(f"--{test_type}", action="store_true", help=f"run {test_type} tests") + parser.addoption(f"--{REGULAR_FLAG}", action="store_true", help=f"run all regular tests ({', '.join(REGULAR_TYPES)})") parser.addoption(f"--{ALL_FLAG}", action="store_true", help=f"run all tests") parser.addoption(f"--{COMPILE_FLAG}", action='store_true', help='only test compiling .fj files') @@ -151,12 +155,15 @@ def get_test_types_to_run__heavy_first(get_option: Callable[[str], bool]) -> Lis @param get_option: function that returns the flags values @return: list of the test types to run """ - test_types_heavy_first = TEST_TYPES[::-1] + all_test_types_heavy_first = TEST_TYPES[::-1] + regular_test_types_heavy_first = REGULAR_TYPES[::-1] if get_option(ALL_FLAG): - types_to_run = list(test_types_heavy_first) + types_to_run = list(all_test_types_heavy_first) + elif get_option(REGULAR_FLAG): + types_to_run = list(regular_test_types_heavy_first) else: - types_to_run = list(filter(get_option, test_types_heavy_first)) + types_to_run = list(filter(get_option, all_test_types_heavy_first)) if not types_to_run: types_to_run = [DEFAULT_TYPE] return types_to_run From 429c07dd97680c5e927ccf14d8db86b1468406dd Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 9 Jul 2022 14:37:57 +0300 Subject: [PATCH 12/66] flipjump without deepcopy --- src/assembler.py | 7 +++---- src/defs.py | 26 ++++++++++++++++++++------ src/fj_parser.py | 10 +++++----- src/preprocessor.py | 29 ++++++++++++++--------------- 4 files changed, 42 insertions(+), 30 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 4abd731..8cce85d 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -5,7 +5,7 @@ import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from defs import eval_all, Verbose, SegmentEntry, FJAssemblerException, OpType, PrintTimer +from defs import eval_all, Verbose, SegmentEntry, FJAssemblerException, OpType, PrintTimer, FlipJump def lsb_first_bin_array(int_value, bit_size): @@ -91,7 +91,7 @@ def labels_resolve(ops, labels, boundary_addresses, w, writer, raise FJAssemblerException(f"Can't resolve the following names: {', '.join(ids)} (in op {op}).") vals = [datum.val for datum in op.data] - if op.type == OpType.FlipJump: + if isinstance(op, FlipJump): f, j = vals bits += [f, j] elif op.type == OpType.Segment: @@ -154,8 +154,7 @@ def assemble(input_files, output_file, w, with PrintTimer(' macro resolve: ', print_time=time_verbose): ops, labels, boundary_addresses = resolve_macros(w, macros, output_file=preprocessed_file, - show_statistics=show_statistics, - verbose=Verbose.MacroSolve in verbose) + show_statistics=show_statistics) with PrintTimer(' labels resolve: ', print_time=time_verbose): labels_resolve(ops, labels, boundary_addresses, w, writer, verbose=Verbose.LabelSolve in verbose) diff --git a/src/defs.py b/src/defs.py index b6c13d2..2e46b30 100644 --- a/src/defs.py +++ b/src/defs.py @@ -93,12 +93,11 @@ def get_char_value_and_length(s: str) -> Tuple[int, int]: class Verbose(IntEnum): Parse = 1 - MacroSolve = 2 - LabelDict = 3 - LabelSolve = 4 - Run = 5 - Time = 6 - PrintOutput = 7 + LabelDict = 2 + LabelSolve = 3 + Run = 4 + Time = 5 + PrintOutput = 6 class TerminationCause(IntEnum): @@ -185,12 +184,26 @@ def __str__(self) -> str: return f'{f"{self.type}:"[7:]:10} Data: {", ".join([str(d) for d in self.data])} ' \ f'{self.code_position}' + def eval_int_data(self, id_dict: Dict[str, Expr]) -> Tuple[int]: + return tuple(int(expr.eval_new(id_dict)) for expr in self.data) + def eval_new(self, id_dict: Dict[str, Expr]) -> Op: op = copy(self) op.data = [expr.eval_new(id_dict) for expr in self.data] return op +class FlipJump(Op): + def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): + super(FlipJump, self).__init__(OpType.FlipJump, [flip, jump], code_position) + + def get_flip(self, label: Dict[str, Expr]) -> int: + return int(self.data[0].eval_new(label)) + + def get_jump(self, label: Dict[str, Expr]) -> int: + return int(self.data[1].eval_new(label)) + + class MacroCall(Op): def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): super(MacroCall, self).__init__(OpType.Macro, arguments, code_position) @@ -258,6 +271,7 @@ def all_unknown_labels(self) -> Set[str]: return set(label for expr in self.val[1] for label in expr.all_unknown_labels()) def eval_new(self, id_dict: Dict[str, Expr], i=0) -> Expr: + # TODO remove i if isinstance(self.val, int): return Expr(self.val) diff --git a/src/fj_parser.py b/src/fj_parser.py index fc33333..68f0343 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -7,7 +7,7 @@ main_macro, next_address, \ OpType, Op, Expr, FJParsingException, \ number_re, dot_id_re, id_re, string_re, \ - CodePosition, Macro, MacroCall, MacroName, RepCall + CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace, reserved_names @@ -372,19 +372,19 @@ def label(self, p): @_('expr SC') def statement(self, p): - return Op(OpType.FlipJump, [p.expr, next_address()], get_position(p.lineno)) + return FlipJump(p.expr, next_address(), get_position(p.lineno)) @_('expr SC expr') def statement(self, p): - return Op(OpType.FlipJump, [p.expr0, p.expr1], get_position(p.lineno)) + return FlipJump(p.expr0, p.expr1, get_position(p.lineno)) @_('SC expr') def statement(self, p): - return Op(OpType.FlipJump, [Expr(0), p.expr], get_position(p.lineno)) + return FlipJump(Expr(0), p.expr, get_position(p.lineno)) @_('SC') def statement(self, p): - return Op(OpType.FlipJump, [Expr(0), next_address()], get_position(p.lineno)) + return FlipJump(Expr(0), next_address(), get_position(p.lineno)) @_('ID') def id(self, p): diff --git a/src/preprocessor.py b/src/preprocessor.py index b7f97f5..1afc55b 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -7,7 +7,8 @@ from defs import main_macro, wflip_start_label, new_label, \ Op, OpType, SegmentEntry, Expr, FJPreprocessorException, \ - eval_all, id_swap, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException + eval_all, id_swap, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ + FlipJump macro_separator_string = "---" @@ -82,7 +83,7 @@ def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: def resolve_macros(w: int, macros: Dict[MacroName, Macro], - output_file: Path = None, show_statistics: bool = False, verbose: bool = False)\ + output_file: Path = None, show_statistics: bool = False)\ -> Tuple[List[Op], Dict[str, Expr], BoundaryAddressesList]: curr_address = [0] result_ops: List[Op] = [] @@ -93,8 +94,7 @@ def resolve_macros(w: int, macros: Dict[MacroName, Macro], stat_dict = collections.defaultdict(lambda: 0) resolve_macro_aux(w, '', [], macros, main_macro, [], stat_dict, - labels, result_ops, boundary_addresses, curr_address, last_address_index, label_places, - verbose) + labels, result_ops, boundary_addresses, curr_address, last_address_index, label_places) if output_file: output_ops(result_ops, output_file) @@ -114,7 +114,7 @@ def try_int(op: Op, expr: Expr) -> int: def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dict[MacroName, Macro], macro_name: MacroName, args: Iterable[Expr], macro_code_size: Dict[str, int], labels: Dict[str, Expr], result_ops: List[Op], boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], - verbose: bool = False, code_position: CodePosition = None)\ + code_position: CodePosition = None)\ -> None: init_curr_address = curr_address[0] @@ -132,9 +132,7 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic # macro-resolve if not isinstance(op, Op): macro_resolve_error(curr_tree, f"bad op (not of Op type)! type {type(op)}, str {str(op)}.") - if verbose: - print(op) - if op.type != OpType.Rep: + if op.type not in (OpType.Rep, OpType.FlipJump): # op = op.eval_new(id_dict) op = deepcopy(op) eval_all(op, id_dict) @@ -146,7 +144,7 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic resolve_macro_aux(w, next_macro_path, curr_tree + [op.macro_trace_str()], macros, op.macro_name, op.data, macro_code_size, labels, result_ops, boundary_addresses, curr_address, last_address_index, - labels_code_positions, verbose, code_position=op.code_position) + labels_code_positions, code_position=op.code_position) elif isinstance(op, RepCall): op = op.eval_new(id_dict) @@ -162,7 +160,7 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic resolve_macro_aux(w, next_macro_path.format(i), curr_tree + [op.rep_trace_str(i)], macros, op.macro_name, op.calculate_arguments(i), macro_code_size, labels, result_ops, boundary_addresses, curr_address, last_address_index, - labels_code_positions, verbose, code_position=op.code_position) + labels_code_positions, code_position=op.code_position) except FJExprException as e: macro_resolve_error(curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) @@ -194,11 +192,14 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic last_address_index[0] += 1 result_ops.append(op) - elif op.type in {OpType.FlipJump, OpType.WordFlip}: + elif isinstance(op, FlipJump): + curr_address[0] += 2 * w + id_dict['$'] = Expr(curr_address[0]) + result_ops.append(op.eval_new(id_dict)) + del id_dict['$'] + elif op.type == OpType.WordFlip: curr_address[0] += 2*w eval_all(op, {'$': Expr(curr_address[0])}) - if verbose: - print(f'op added: {str(op)}') result_ops.append(op) elif op.type == OpType.Label: label = op.data[0] @@ -206,8 +207,6 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic other_position = labels_code_positions[label] macro_resolve_error(curr_tree, f'label declared twice - "{label}" on {op.code_position} ' f'and {other_position}') - if verbose: - print(f'label added: "{label}" in {op.code_position}') labels[label] = Expr(curr_address[0]) labels_code_positions[label] = op.code_position else: From a835c53c49fad2e496bb29f86975994077d91d24 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 9 Jul 2022 14:40:32 +0300 Subject: [PATCH 13/66] deepcopy-less macro --- src/preprocessor.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/preprocessor.py b/src/preprocessor.py index 1afc55b..5723032 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -132,12 +132,13 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic # macro-resolve if not isinstance(op, Op): macro_resolve_error(curr_tree, f"bad op (not of Op type)! type {type(op)}, str {str(op)}.") - if op.type not in (OpType.Rep, OpType.FlipJump): - # op = op.eval_new(id_dict) + if op.type not in (OpType.Rep, OpType.FlipJump, OpType.Macro): op = deepcopy(op) eval_all(op, id_dict) id_swap(op, id_dict) if isinstance(op, MacroCall): + op = op.eval_new(id_dict) + next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ f"{op.code_position.short_str()}:{op.macro_name}" From 0c0a2ef63d52a232a0145fcede9b59faf9463312 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 9 Jul 2022 15:00:42 +0300 Subject: [PATCH 14/66] depcopy-less wflip, eval_int_data --- src/assembler.py | 25 +++++++++++++++---------- src/defs.py | 14 ++++++++------ src/fj_parser.py | 13 ++++++------- src/preprocessor.py | 8 ++------ 4 files changed, 31 insertions(+), 29 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 8cce85d..47d2607 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -5,7 +5,8 @@ import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from defs import eval_all, Verbose, SegmentEntry, FJAssemblerException, OpType, PrintTimer, FlipJump +from defs import eval_all, Verbose, SegmentEntry, FJAssemblerException, OpType, PrintTimer, FlipJump, WordFlip, \ + FJException def lsb_first_bin_array(int_value, bit_size): @@ -73,8 +74,7 @@ def get_next_wflip_entry_index(boundary_addresses, index): return index -def labels_resolve(ops, labels, boundary_addresses, w, writer, - *, verbose=False): # TODO handle verbose? +def labels_resolve(ops, labels, boundary_addresses, w, writer): if max(e[1] for e in boundary_addresses) >= (1 << w): raise FJAssemblerException(f"Not enough space with the {w}-width.") @@ -86,10 +86,15 @@ def labels_resolve(ops, labels, boundary_addresses, w, writer, wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, 0)][1] for op in ops: - ids = eval_all(op, labels) - if ids: - raise FJAssemblerException(f"Can't resolve the following names: {', '.join(ids)} (in op {op}).") - vals = [datum.val for datum in op.data] + # ids = eval_all(op, labels) + # if ids: + # raise FJAssemblerException(f"Can't resolve the following names: {', '.join(ids)} (in op {op}).") + # vals = [datum.val for datum in op.data] + + try: + vals = op.eval_int_data(labels) + except FJException as e: + raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e if isinstance(op, FlipJump): f, j = vals @@ -106,7 +111,7 @@ def labels_resolve(ops, labels, boundary_addresses, w, writer, last_address = boundary_addresses[segment_index][1] close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, last_address, bits, []) first_address = last_address - elif op.type == OpType.WordFlip: + elif isinstance(op, WordFlip): to_address, by_address, return_address = vals flip_bits = [i for i in range(w) if by_address & (1 << i)] @@ -150,14 +155,14 @@ def assemble(input_files, output_file, w, time_verbose = Verbose.Time in verbose with PrintTimer(' parsing: ', print_time=time_verbose): - macros = parse_macro_tree(input_files, w, warning_as_errors, verbose=Verbose.Parse in verbose) + macros = parse_macro_tree(input_files, w, warning_as_errors) with PrintTimer(' macro resolve: ', print_time=time_verbose): ops, labels, boundary_addresses = resolve_macros(w, macros, output_file=preprocessed_file, show_statistics=show_statistics) with PrintTimer(' labels resolve: ', print_time=time_verbose): - labels_resolve(ops, labels, boundary_addresses, w, writer, verbose=Verbose.LabelSolve in verbose) + labels_resolve(ops, labels, boundary_addresses, w, writer) with PrintTimer(' create binary: ', print_time=time_verbose): writer.write_to_file() diff --git a/src/defs.py b/src/defs.py index 2e46b30..b27ad9f 100644 --- a/src/defs.py +++ b/src/defs.py @@ -92,12 +92,9 @@ def get_char_value_and_length(s: str) -> Tuple[int, int]: class Verbose(IntEnum): - Parse = 1 - LabelDict = 2 - LabelSolve = 3 - Run = 4 - Time = 5 - PrintOutput = 6 + Run = 1 + Time = 2 + PrintOutput = 3 class TerminationCause(IntEnum): @@ -204,6 +201,11 @@ def get_jump(self, label: Dict[str, Expr]) -> int: return int(self.data[1].eval_new(label)) +class WordFlip(Op): + def __init__(self, address: Expr, value: Expr, return_address: Expr, code_position: CodePosition): + super(WordFlip, self).__init__(OpType.FlipJump, [address, value, return_address], code_position) + + class MacroCall(Op): def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): super(MacroCall, self).__init__(OpType.Macro, arguments, code_position) diff --git a/src/fj_parser.py b/src/fj_parser.py index 68f0343..f4cefb9 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -7,7 +7,7 @@ main_macro, next_address, \ OpType, Op, Expr, FJParsingException, \ number_re, dot_id_re, id_re, string_re, \ - CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump + CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump, WordFlip global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace, reserved_names @@ -152,8 +152,7 @@ class FJParser(Parser): ) # debugfile = 'src/parser.out' - def __init__(self, w, warning_as_errors, verbose=False): - self.verbose = verbose + def __init__(self, w, warning_as_errors): self.defs = {'w': Expr(w)} self.warning_as_errors = warning_as_errors self.macros = {main_macro: Macro([], [], [], '', None)} @@ -414,11 +413,11 @@ def statement(self, p): @_('WFLIP expr "," expr') def statement(self, p): - return Op(OpType.WordFlip, [p.expr0, p.expr1, next_address()], get_position(p.lineno)) + return WordFlip(p.expr0, p.expr1, next_address(), get_position(p.lineno)) @_('WFLIP expr "," expr "," expr') def statement(self, p): - return Op(OpType.WordFlip, [p.expr0, p.expr1, p.expr2], get_position(p.lineno)) + return WordFlip(p.expr0, p.expr1, p.expr2, get_position(p.lineno)) @_('ID "=" expr') def statement(self, p): @@ -617,12 +616,12 @@ def exit_if_errors(): raise FJParsingException(f'Errors found in file {curr_file}. Assembly stopped.') -def parse_macro_tree(input_files, w, warning_as_errors, verbose=False): +def parse_macro_tree(input_files, w, warning_as_errors): global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace error_occurred = False lexer = FJLexer() - parser = FJParser(w, warning_as_errors, verbose=verbose) + parser = FJParser(w, warning_as_errors) for curr_file_number, curr_file in enumerate(input_files, start=1): if not path.isfile(curr_file): raise FJParsingException(f"No such file {curr_file}.") diff --git a/src/preprocessor.py b/src/preprocessor.py index 5723032..af0dbc5 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -8,7 +8,7 @@ from defs import main_macro, wflip_start_label, new_label, \ Op, OpType, SegmentEntry, Expr, FJPreprocessorException, \ eval_all, id_swap, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ - FlipJump + FlipJump, WordFlip macro_separator_string = "---" @@ -193,15 +193,11 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic last_address_index[0] += 1 result_ops.append(op) - elif isinstance(op, FlipJump): + elif isinstance(op, FlipJump) or isinstance(op, WordFlip): curr_address[0] += 2 * w id_dict['$'] = Expr(curr_address[0]) result_ops.append(op.eval_new(id_dict)) del id_dict['$'] - elif op.type == OpType.WordFlip: - curr_address[0] += 2*w - eval_all(op, {'$': Expr(curr_address[0])}) - result_ops.append(op) elif op.type == OpType.Label: label = op.data[0] if label in labels: From 073259d7acf71f97707cec29436e268dfa52023c Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 9 Jul 2022 15:23:20 +0300 Subject: [PATCH 15/66] deepcopy-less label, removed id_swap --- src/assembler.py | 5 ----- src/defs.py | 33 ++++++++++++++++---------------- src/fj_parser.py | 4 ++-- src/preprocessor.py | 46 +++++++++++++++++++++------------------------ 4 files changed, 40 insertions(+), 48 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 47d2607..d2fb720 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -86,11 +86,6 @@ def labels_resolve(ops, labels, boundary_addresses, w, writer): wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, 0)][1] for op in ops: - # ids = eval_all(op, labels) - # if ids: - # raise FJAssemblerException(f"Can't resolve the following names: {', '.join(ids)} (in op {op}).") - # vals = [datum.val for datum in op.data] - try: vals = op.eval_int_data(labels) except FJException as e: diff --git a/src/defs.py b/src/defs.py index b27ad9f..6b4e787 100644 --- a/src/defs.py +++ b/src/defs.py @@ -190,6 +190,20 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Op: return op +class Label: + def __init__(self, name: str, code_position: CodePosition): + self.name = name + self.code_position = code_position + + def eval_name(self, id_dict: Dict[str, Expr]) -> str: + if self.name in id_dict: + new_name = id_dict[self.name].val + if isinstance(new_name, str): + return new_name + raise FJExprException(f'Bad label swap (from {self.name} to {id_dict[self.name]}) in {self.code_position}.') + return self.name + + class FlipJump(Op): def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): super(FlipJump, self).__init__(OpType.FlipJump, [flip, jump], code_position) @@ -358,15 +372,15 @@ def eval_all(op: Op, id_dict: Dict[str, Expr] = None) -> List[str]: def get_all_used_labels(ops: List[Op]) -> Tuple[Set[str], Set[str]]: used_labels, declared_labels = set(), set() for op in ops: - if isinstance(op, RepCall): + if isinstance(op, Label): + declared_labels.add(op.name) + elif isinstance(op, RepCall): n, *macro_call_data = op.data i = op.iterator_name used_labels.update(n.eval({}, op.code_position)) new_labels = set() new_labels.update(*[e.eval({}, op.code_position) for e in macro_call_data]) used_labels.update(new_labels - {i}) - elif op.type == OpType.Label: - declared_labels.add(op.data[0]) else: for expr in op.data: if type(expr) is Expr: @@ -374,19 +388,6 @@ def get_all_used_labels(ops: List[Op]) -> Tuple[Set[str], Set[str]]: return used_labels, declared_labels -def id_swap(op: Op, id_dict: Dict[str, Expr]) -> None: - new_data = [] - for datum in op.data: - if type(datum) is str and datum in id_dict: - swapped_label = id_dict[datum] - if not swapped_label.is_str(): - raise FJExprException(f'Bad label swap (from {datum} to {swapped_label}) in {op}.') - new_data.append(swapped_label.val) - else: - new_data.append(datum) - op.data = new_data - - def new_label(macro_path: str, label_name: str) -> Expr: return Expr(f'{macro_path}---{label_name}') diff --git a/src/fj_parser.py b/src/fj_parser.py index f4cefb9..7fb7bfc 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -7,7 +7,7 @@ main_macro, next_address, \ OpType, Op, Expr, FJParsingException, \ number_re, dot_id_re, id_re, string_re, \ - CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump, WordFlip + CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump, WordFlip, Label global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace, reserved_names @@ -367,7 +367,7 @@ def line_statement(self, p): @_('ID ":"') def label(self, p): - return Op(OpType.Label, [self.ns_full_name(p.ID)], get_position(p.lineno)) + return Label(self.ns_full_name(p.ID), get_position(p.lineno)) @_('expr SC') def statement(self, p): diff --git a/src/preprocessor.py b/src/preprocessor.py index af0dbc5..7f2286e 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -7,8 +7,8 @@ from defs import main_macro, wflip_start_label, new_label, \ Op, OpType, SegmentEntry, Expr, FJPreprocessorException, \ - eval_all, id_swap, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ - FlipJump, WordFlip + eval_all, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ + FlipJump, WordFlip, Label macro_separator_string = "---" @@ -89,12 +89,11 @@ def resolve_macros(w: int, macros: Dict[MacroName, Macro], result_ops: List[Op] = [] labels: Dict[str, Expr] = {} last_address_index = [0] - label_places = {} boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries stat_dict = collections.defaultdict(lambda: 0) resolve_macro_aux(w, '', [], macros, main_macro, [], stat_dict, - labels, result_ops, boundary_addresses, curr_address, last_address_index, label_places) + labels, result_ops, boundary_addresses, curr_address, last_address_index, {}) if output_file: output_ops(result_ops, output_file) @@ -130,13 +129,24 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic for op in current_macro.ops: # macro-resolve - if not isinstance(op, Op): - macro_resolve_error(curr_tree, f"bad op (not of Op type)! type {type(op)}, str {str(op)}.") - if op.type not in (OpType.Rep, OpType.FlipJump, OpType.Macro): + if not isinstance(op, Label) and op.type not in (OpType.Rep, OpType.FlipJump, OpType.Macro): op = deepcopy(op) eval_all(op, id_dict) - id_swap(op, id_dict) - if isinstance(op, MacroCall): + + if isinstance(op, Label): + label = op.eval_name(id_dict) + if label in labels: + other_position = labels_code_positions[label] + macro_resolve_error(curr_tree, f'label declared twice - "{label}" on {op.code_position} ' + f'and {other_position}') + labels[label] = Expr(curr_address[0]) + labels_code_positions[label] = op.code_position + elif isinstance(op, FlipJump) or isinstance(op, WordFlip): + curr_address[0] += 2 * w + id_dict['$'] = Expr(curr_address[0]) + result_ops.append(op.eval_new(id_dict)) + del id_dict['$'] + elif isinstance(op, MacroCall): op = op.eval_new(id_dict) next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ @@ -164,9 +174,6 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic labels_code_positions, code_position=op.code_position) except FJExprException as e: macro_resolve_error(curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) - - - # labels_resolve elif op.type == OpType.Segment: eval_all(op, labels) @@ -193,21 +200,10 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic last_address_index[0] += 1 result_ops.append(op) - elif isinstance(op, FlipJump) or isinstance(op, WordFlip): - curr_address[0] += 2 * w - id_dict['$'] = Expr(curr_address[0]) - result_ops.append(op.eval_new(id_dict)) - del id_dict['$'] - elif op.type == OpType.Label: - label = op.data[0] - if label in labels: - other_position = labels_code_positions[label] - macro_resolve_error(curr_tree, f'label declared twice - "{label}" on {op.code_position} ' - f'and {other_position}') - labels[label] = Expr(curr_address[0]) - labels_code_positions[label] = op.code_position else: macro_resolve_error(curr_tree, f"Can't assemble this opcode - {str(op)}") + if not isinstance(op, Op): + macro_resolve_error(curr_tree, f"bad op (not of Op type)! type {type(op)}, str {str(op)}.") if 1 <= len(curr_tree) <= 2: macro_code_size[macro_path] += curr_address[0] - init_curr_address From 633a950c685df0901bec19adb64b38a880778d1e Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 9 Jul 2022 20:09:52 +0300 Subject: [PATCH 16/66] specific __str__ for Ops --- src/defs.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/defs.py b/src/defs.py index 6b4e787..351b47b 100644 --- a/src/defs.py +++ b/src/defs.py @@ -177,10 +177,6 @@ def __init__(self, op_type: OpType, data: List[Union[Expr, str, MacroCall], ...] self.data = data self.code_position = code_position - def __str__(self) -> str: - return f'{f"{self.type}:"[7:]:10} Data: {", ".join([str(d) for d in self.data])} ' \ - f'{self.code_position}' - def eval_int_data(self, id_dict: Dict[str, Expr]) -> Tuple[int]: return tuple(int(expr.eval_new(id_dict)) for expr in self.data) @@ -195,6 +191,9 @@ def __init__(self, name: str, code_position: CodePosition): self.name = name self.code_position = code_position + def __str__(self): + return f'Label "{self.name}:", at {self.code_position}' + def eval_name(self, id_dict: Dict[str, Expr]) -> str: if self.name in id_dict: new_name = id_dict[self.name].val @@ -208,6 +207,9 @@ class FlipJump(Op): def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): super(FlipJump, self).__init__(OpType.FlipJump, [flip, jump], code_position) + def __str__(self): + return f"Flip: {self.data[0]}, Jump: {self.data[1]}, at {self.code_position}" + def get_flip(self, label: Dict[str, Expr]) -> int: return int(self.data[0].eval_new(label)) @@ -219,12 +221,18 @@ class WordFlip(Op): def __init__(self, address: Expr, value: Expr, return_address: Expr, code_position: CodePosition): super(WordFlip, self).__init__(OpType.FlipJump, [address, value, return_address], code_position) + def __str__(self): + return f"Flip Word {self.data[0]} by {self.data[1]}, and return to {self.data[2]}. at {self.code_position}" + class MacroCall(Op): def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): super(MacroCall, self).__init__(OpType.Macro, arguments, code_position) self.macro_name = MacroName(macro_name, len(arguments)) + def __str__(self): + return f"macro call. {self.macro_name} {', '.join(self.data)}. at {self.code_position}" + def macro_trace_str(self) -> str: return f'macro {self.macro_name} ({self.code_position})' @@ -235,6 +243,9 @@ def __init__(self, times: Expr, iterator_name: str, macro_name: str, arguments: self.iterator_name = iterator_name self.macro_name = MacroName(macro_name, len(arguments)) + def __str__(self): + return f"rep call. rep({self.data[0]}, {self.iterator_name}) {self.macro_name} {', '.join(self.data[1:])}. at {self.code_position}" + def get_times(self) -> int: try: return int(self.data[0]) From 9bb32baab73556137976235864b7aeb762872402 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sun, 10 Jul 2022 00:30:25 +0300 Subject: [PATCH 17/66] deepcopy-less assembler, unnecessary removed --- src/assembler.py | 22 ++--- src/defs.py | 214 +++++++++++++++++++++++--------------------- src/fj.py | 5 +- src/fj_parser.py | 23 ++--- src/preprocessor.py | 76 +++++++--------- 5 files changed, 162 insertions(+), 178 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index d2fb720..21ad94c 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,12 +1,10 @@ -import os import pickle -from tempfile import mkstemp import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from defs import eval_all, Verbose, SegmentEntry, FJAssemblerException, OpType, PrintTimer, FlipJump, WordFlip, \ - FJException +from defs import Verbose, SegmentEntry, FJAssemblerException, PrintTimer, FlipJump, WordFlip, \ + FJException, Segment, Reserve def lsb_first_bin_array(int_value, bit_size): @@ -94,14 +92,14 @@ def labels_resolve(ops, labels, boundary_addresses, w, writer): if isinstance(op, FlipJump): f, j = vals bits += [f, j] - elif op.type == OpType.Segment: + elif isinstance(op, Segment): segment_index += 2 close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, bits, wflips) last_start_seg_index = segment_index first_address = boundary_addresses[last_start_seg_index][1] wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, segment_index)][1] - elif op.type == OpType.Reserve: + elif isinstance(op, Reserve): segment_index += 1 last_address = boundary_addresses[segment_index][1] close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, last_address, bits, []) @@ -136,24 +134,19 @@ def labels_resolve(ops, labels, boundary_addresses, w, writer): def assemble(input_files, output_file, w, *, version=0, flags=0, warning_as_errors=True, - show_statistics=False, preprocessed_file=None, debugging_file=None, verbose=None): + show_statistics=False, debugging_file=None, verbose=None): if verbose is None: verbose = set() writer = fjm.Writer(output_file, w, version=version, flags=flags) - temp_preprocessed_file, temp_fd = False, 0 - if preprocessed_file is None: - temp_fd, preprocessed_file = mkstemp() - temp_preprocessed_file = True - time_verbose = Verbose.Time in verbose with PrintTimer(' parsing: ', print_time=time_verbose): macros = parse_macro_tree(input_files, w, warning_as_errors) with PrintTimer(' macro resolve: ', print_time=time_verbose): - ops, labels, boundary_addresses = resolve_macros(w, macros, output_file=preprocessed_file, + ops, labels, boundary_addresses = resolve_macros(w, macros, show_statistics=show_statistics) with PrintTimer(' labels resolve: ', print_time=time_verbose): @@ -162,9 +155,6 @@ def assemble(input_files, output_file, w, with PrintTimer(' create binary: ', print_time=time_verbose): writer.write_to_file() - if temp_preprocessed_file: - os.close(temp_fd) - labels = {label: labels[label].val for label in labels} if debugging_file: diff --git a/src/defs.py b/src/defs.py index 351b47b..fdf2c4a 100644 --- a/src/defs.py +++ b/src/defs.py @@ -130,32 +130,40 @@ def __exit__(self, exc_type, exc_val, exc_tb) -> None: print(f'{time() - self.start_time:.3f}s') -class OpType(IntEnum): # op.data array content: - - FlipJump = 1 # expr, expr # Survives until (2) label resolve - WordFlip = 2 # expr, expr, expr # Survives until (2) label resolve - Segment = 3 # expr # Survives until (2) label resolve - Reserve = 4 # expr # Survives until (2) label resolve - Label = 5 # ID # Survives until (1) macro resolve - Macro = 6 # ID, [expr..] # Survives until (1) macro resolve - Rep = 7 # expr, ID, macro_call # Survives until (1) macro resolve - - -@dataclass class MacroName: - name: str - parameter_num: int + def __init__(self, name: str, parameter_num: int = 0): + self.name = name + self.parameter_num = parameter_num def __str__(self) -> str: if 0 == self.parameter_num: return self.name return f"{self.name}({self.parameter_num})" + def to_tuple(self): + return self.name, self.parameter_num + def __hash__(self): - return hash((self.name, self.parameter_num)) + return hash(self.to_tuple()) + + def __eq__(self, other): + return type(other) == MacroName and self.to_tuple() == other.to_tuple() + + +class Macro: + # [(params, quiet_params), statements, (curr_file, p.lineno, ns_name)] + + def __init__(self, params: List[str], local_params: List[str], + ops: List[Op], namespace: str, + code_position: CodePosition): + self.params = params + self.local_params = local_params + self.ops = ops + self.namespace = namespace + self.code_position = code_position -main_macro = MacroName('', 0) +main_macro = MacroName('') @dataclass @@ -172,8 +180,7 @@ def short_str(self) -> str: class Op: - def __init__(self, op_type: OpType, data: List[Union[Expr, str, MacroCall], ...], code_position: CodePosition): - self.type = op_type + def __init__(self, data: List[Union[Expr, str, MacroCall], ...], code_position: CodePosition): self.data = data self.code_position = code_position @@ -204,8 +211,11 @@ def eval_name(self, id_dict: Dict[str, Expr]) -> str: class FlipJump(Op): + """ + data = [flip_address, jump_address] + """ def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): - super(FlipJump, self).__init__(OpType.FlipJump, [flip, jump], code_position) + super(FlipJump, self).__init__([flip, jump], code_position) def __str__(self): return f"Flip: {self.data[0]}, Jump: {self.data[1]}, at {self.code_position}" @@ -218,16 +228,64 @@ def get_jump(self, label: Dict[str, Expr]) -> int: class WordFlip(Op): - def __init__(self, address: Expr, value: Expr, return_address: Expr, code_position: CodePosition): - super(WordFlip, self).__init__(OpType.FlipJump, [address, value, return_address], code_position) + """ + data = [word_address, value, return_address] + """ + def __init__(self, word_address: Expr, value: Expr, return_address: Expr, code_position: CodePosition): + super(WordFlip, self).__init__([word_address, value, return_address], code_position) def __str__(self): return f"Flip Word {self.data[0]} by {self.data[1]}, and return to {self.data[2]}. at {self.code_position}" +class Segment(Op): + """ + data = [start_address] + """ + def __init__(self, start_address: Expr, code_position: CodePosition): + super(Segment, self).__init__([start_address], code_position) + + def __str__(self): + return f"Segment {self.data[0]}, at {self.code_position}" + + def get_address(self) -> int: + try: + return int(self.data[0]) + except FJExprException as e: + raise FJExprException(f"Can't calculate segment address on {self.code_position}") from e + + def calculate_address(self, labels: Dict[str, Expr]) -> int: + self.data[0] = self.data[0].eval_new(labels) + return self.get_address() + + +class Reserve(Op): + """ + data = [reserved_bit_size] + """ + def __init__(self, reserved_bit_size: Expr, code_position: CodePosition): + super(Reserve, self).__init__([reserved_bit_size], code_position) + + def __str__(self): + return f"Reserve {self.data[0]}, at {self.code_position}" + + def get_reserved_bit_size(self) -> int: + try: + return int(self.data[0]) + except FJExprException as e: + raise FJExprException(f"Can't calculate reserved bits size on {self.code_position}") from e + + def calculate_reserved_bit_size(self, labels: Dict[str, Expr]) -> int: + self.data[0] = self.data[0].eval_new(labels) + return self.get_reserved_bit_size() + + class MacroCall(Op): + """ + data = ordered list of macro arguments + """ def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): - super(MacroCall, self).__init__(OpType.Macro, arguments, code_position) + super(MacroCall, self).__init__(arguments, code_position) self.macro_name = MacroName(macro_name, len(arguments)) def __str__(self): @@ -238,8 +296,12 @@ def macro_trace_str(self) -> str: class RepCall(Op): - def __init__(self, times: Expr, iterator_name: str, macro_name: str, arguments: List[Expr], code_position: CodePosition): - super(RepCall, self).__init__(OpType.Rep, [times, *arguments], code_position) + """ + data[0] = repeat_times + data[1:] = ordered list of macro arguments + """ + def __init__(self, repeat_times: Expr, iterator_name: str, macro_name: str, arguments: List[Expr], code_position: CodePosition): + super(RepCall, self).__init__([repeat_times, *arguments], code_position) self.iterator_name = iterator_name self.macro_name = MacroName(macro_name, len(arguments)) @@ -250,7 +312,7 @@ def get_times(self) -> int: try: return int(self.data[0]) except FJExprException as e: - raise FJExprException(f"Can't calculate rep time on {self.code_position}") from e + raise FJExprException(f"Can't calculate rep times on {self.code_position}") from e def calculate_times(self, labels: Dict[str, Expr]) -> int: self.data[0] = self.data[0].eval_new(labels) @@ -268,19 +330,6 @@ def rep_trace_str(self, iter_value: int) -> str: f'macro {self.macro_name} ({self.code_position})' -class Macro: - # [(params, quiet_params), statements, (curr_file, p.lineno, ns_name)] - - def __init__(self, params: List[str], local_params: List[str], - ops: List[Op], namespace: str, - code_position: CodePosition): - self.params = params - self.local_params = local_params - self.ops = ops - self.namespace = namespace - self.code_position = code_position - - class Expr: def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr]]]): self.val = expr @@ -297,18 +346,18 @@ def all_unknown_labels(self) -> Set[str]: return {self.val} return set(label for expr in self.val[1] for label in expr.all_unknown_labels()) - def eval_new(self, id_dict: Dict[str, Expr], i=0) -> Expr: - # TODO remove i + # replaces every string it can with its dictionary value, and evaluates anything it can. + def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: if isinstance(self.val, int): return Expr(self.val) if isinstance(self.val, str): if self.val in id_dict: - return id_dict[self.val].eval_new({}, i+1) + return id_dict[self.val].eval_new({}) return Expr(self.val) op, args = self.val - evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(id_dict, i+1) for e in args) + evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(id_dict) for e in args) if all(isinstance(e.val, int) for e in evaluated_args): try: return Expr(parsing_op2func[op](*(arg.val for arg in evaluated_args))) @@ -316,39 +365,8 @@ def eval_new(self, id_dict: Dict[str, Expr], i=0) -> Expr: raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)}.') return Expr((op, evaluated_args)) - # replaces every string it can with its dictionary value, and evaluates anything it can. - # returns the list of unknown id's - def eval(self, id_dict: Dict[str, Expr], code_position: CodePosition) -> List[str]: - if self.is_tuple(): - op, exps = self.val - res = [e.eval(id_dict, code_position) for e in exps] - if any(res): - return sum(res, start=[]) - else: - try: - self.val = parsing_op2func[op](*[e.val for e in exps]) - return [] - except BaseException as e: - raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)} in {code_position}') - elif self.is_str(): - if self.val in id_dict: - self.val = id_dict[self.val].val - return self.eval({}, code_position) - else: - return [self.val] - return [] - - def is_int(self) -> bool: - return type(self.val) is int - - def is_str(self) -> bool: - return type(self.val) is str - - def is_tuple(self) -> bool: - return type(self.val) is tuple - def __str__(self) -> str: - if self.is_tuple(): + if isinstance(self.val, tuple): op, exps = self.val if len(exps) == 1: e1 = exps[0] @@ -359,44 +377,32 @@ def __str__(self) -> str: else: e1, e2, e3 = exps return f'({str(e1)} ? {str(e2)} : {str(e3)})' - if self.is_str(): + if isinstance(self.val, str): return self.val - if self.is_int(): + if isinstance(self.val, int): return hex(self.val)[2:] raise FJExprException(f'bad expression: {self.val} (of type {type(self.val)})') -def eval_all(op: Op, id_dict: Dict[str, Expr] = None) -> List[str]: - if id_dict is None: - id_dict = {} +def get_used_labels(ops: List[Op]) -> Set[str]: + """ - ids = [] - for expr in op.data: - if type(expr) is Expr: - ids += expr.eval(id_dict, op.code_position) - if op.type == OpType.Rep: - macro_op = op.data[2] - ids += eval_all(macro_op, id_dict) - return ids + @param ops[in]:d + @return: + """ + used_labels = set() + for op in ops: + if isinstance(op, RepCall): + times, *macro_call_data = op.data + arguments_labels = set(label for e in macro_call_data for label in e.all_unknown_labels()) + used_labels.update(times.all_unknown_labels() | (arguments_labels - {op.iterator_name})) + elif isinstance(op, Op): + used_labels.update(label for expr in op.data for label in expr.all_unknown_labels()) + return used_labels -def get_all_used_labels(ops: List[Op]) -> Tuple[Set[str], Set[str]]: - used_labels, declared_labels = set(), set() - for op in ops: - if isinstance(op, Label): - declared_labels.add(op.name) - elif isinstance(op, RepCall): - n, *macro_call_data = op.data - i = op.iterator_name - used_labels.update(n.eval({}, op.code_position)) - new_labels = set() - new_labels.update(*[e.eval({}, op.code_position) for e in macro_call_data]) - used_labels.update(new_labels - {i}) - else: - for expr in op.data: - if type(expr) is Expr: - used_labels.update(expr.eval({}, op.code_position)) - return used_labels, declared_labels +def get_declared_labels(ops: List[Op]) -> Set[str]: + return set(op.name for op in ops if isinstance(op, Label)) def new_label(macro_path: str, label_name: str) -> Expr: diff --git a/src/fj.py b/src/fj.py index 52356d9..59a62b7 100644 --- a/src/fj.py +++ b/src/fj.py @@ -5,7 +5,7 @@ from assembler import assemble from fjm_run import debug_and_run -from defs import Verbose, FJReadFjmException, FJException, get_stl_paths +from defs import Verbose, FJReadFjmException, get_stl_paths def main(): @@ -13,7 +13,6 @@ def main(): parser.add_argument('file', help="the FlipJump files.", nargs='+') parser.add_argument('-s', '--silent', help="don't show assemble & run times", action='store_true') parser.add_argument('-o', '--outfile', help="output assembled file.") - parser.add_argument('--no-macros', help="output no-macros file.") parser.add_argument('-d', '--debug', help="debug file (used for breakpoints).", nargs='?', const=True) parser.add_argument('-v', '--version', help="fjm version", type=int, default=0) parser.add_argument('-f', '--flags', help="default running flags", type=int, default=0) @@ -67,7 +66,7 @@ def main(): version=args.version, flags=args.flags, warning_as_errors=args.Werror, show_statistics=args.stats, verbose=verbose_set, - preprocessed_file=args.no_macros, debugging_file=args.debug) + debugging_file=args.debug) if temp_assembled_file: os.close(temp_assembled_fd) diff --git a/src/fj_parser.py b/src/fj_parser.py index 7fb7bfc..9bd5675 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -3,11 +3,11 @@ from sly import Lexer, Parser -from defs import get_char_value_and_length, get_all_used_labels, \ +from defs import get_char_value_and_length, get_used_labels, get_declared_labels, \ main_macro, next_address, \ - OpType, Op, Expr, FJParsingException, \ + Expr, FJParsingException, \ number_re, dot_id_re, id_re, string_re, \ - CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump, WordFlip, Label + CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, FJExprException global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace, reserved_names @@ -283,7 +283,8 @@ def macro_def(self, p): self.check_params(params + local_params, name, p.lineno) ops = p.line_statements - used_labels, declared_labels = get_all_used_labels(ops) + used_labels = get_used_labels(ops) + declared_labels = get_declared_labels(ops) self.check_label_usage(used_labels, declared_labels, set(params + local_params), set(extern_params), set(global_params), p.lineno, name) self.macros[name] = Macro(params, local_params, ops, self.ns_name(), get_position(p.lineno)) @@ -424,10 +425,12 @@ def statement(self, p): name = self.ns_full_name(p.ID) if name in self.defs: syntax_error(p.lineno, f'Can\'t redeclare the variable "{name}".') - if not p.expr.eval(self.defs, get_position(p.lineno)): - self.defs[name] = p.expr - return None - syntax_error(p.lineno, f'Can\'t evaluate expression: {str(p.expr)}.') + + evaluated = p.expr.eval_new(self.defs) + try: + self.defs[name] = Expr(int(evaluated)) + except FJExprException: + syntax_error(p.lineno, f'Can\'t evaluate expression: {str(evaluated)}.') @_('REP "(" expr "," ID ")" id') def statement(self, p): @@ -443,11 +446,11 @@ def statement(self, p): @_('SEGMENT expr') def statement(self, p): - return Op(OpType.Segment, [p.expr], get_position(p.lineno)) + return Segment(p.expr, get_position(p.lineno)) @_('RESERVE expr') def statement(self, p): - return Op(OpType.Reserve, [p.expr], get_position(p.lineno)) + return Reserve(p.expr, get_position(p.lineno)) @_('expressions "," expr') def expressions(self, p): diff --git a/src/preprocessor.py b/src/preprocessor.py index 7f2286e..6d45f08 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -1,14 +1,12 @@ import collections -from copy import deepcopy -from pathlib import Path from typing import Dict, List, Tuple, Iterable import plotly.graph_objects as go from defs import main_macro, wflip_start_label, new_label, \ - Op, OpType, SegmentEntry, Expr, FJPreprocessorException, \ - eval_all, CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ - FlipJump, WordFlip, Label + Op, SegmentEntry, Expr, FJPreprocessorException, \ + CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ + FlipJump, WordFlip, Label, Segment, Reserve macro_separator_string = "---" @@ -20,18 +18,6 @@ def macro_resolve_error(curr_tree: List[str], msg='', *, orig_exception: BaseExc raise FJPreprocessorException(error_str) from orig_exception -def output_ops(ops: List[Op], output_file: Path) -> None: - with open(output_file, 'w') as f: - for op in ops: - eval_all(op) - if op.type == OpType.FlipJump: - f.write(f' {op.data[0]};{op.data[1]}\n') - elif op.type == OpType.WordFlip: - f.write(f' wflip {op.data[0]}, {op.data[1]}, {op.data[2]}\n') - elif op.type == OpType.Label: - f.write(f'{op.data[0]}:\n') - - def clean_name_for_pie_graph(macro_name: str) -> str: return macro_name @@ -82,8 +68,7 @@ def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: fig.show() -def resolve_macros(w: int, macros: Dict[MacroName, Macro], - output_file: Path = None, show_statistics: bool = False)\ +def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool = False)\ -> Tuple[List[Op], Dict[str, Expr], BoundaryAddressesList]: curr_address = [0] result_ops: List[Op] = [] @@ -94,8 +79,6 @@ def resolve_macros(w: int, macros: Dict[MacroName, Macro], resolve_macro_aux(w, '', [], macros, main_macro, [], stat_dict, labels, result_ops, boundary_addresses, curr_address, last_address_index, {}) - if output_file: - output_ops(result_ops, output_file) if show_statistics: show_macro_usage_pie_graph(dict(stat_dict), curr_address[0]) @@ -104,12 +87,6 @@ def resolve_macros(w: int, macros: Dict[MacroName, Macro], return result_ops, labels, boundary_addresses -def try_int(op: Op, expr: Expr) -> int: - if expr.is_int(): - return expr.val - raise FJPreprocessorException(f"Can't resolve the following name: {expr.eval({}, op.code_position)} (in op={op}).") - - def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dict[MacroName, Macro], macro_name: MacroName, args: Iterable[Expr], macro_code_size: Dict[str, int], labels: Dict[str, Expr], result_ops: List[Op], boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], @@ -118,10 +95,7 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic init_curr_address = curr_address[0] if macro_name not in macros: - if not code_position: - macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined.") - else: - macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined. Used in {code_position}.") + macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined. Used in {code_position}.") current_macro = macros[macro_name] @@ -129,10 +103,6 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic for op in current_macro.ops: # macro-resolve - if not isinstance(op, Label) and op.type not in (OpType.Rep, OpType.FlipJump, OpType.Macro): - op = deepcopy(op) - eval_all(op, id_dict) - if isinstance(op, Label): label = op.eval_name(id_dict) if label in labels: @@ -175,11 +145,19 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic except FJExprException as e: macro_resolve_error(curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) # labels_resolve - elif op.type == OpType.Segment: - eval_all(op, labels) - value = try_int(op, op.data[0]) - if value % w != 0: - macro_resolve_error(curr_tree, f'segment ops must have a w-aligned address. In {op}.') + elif isinstance(op, Segment): + op = op.eval_new(id_dict) + op = op.eval_new(labels) + + try: + value = op.calculate_address(labels) + if value % w != 0: + macro_resolve_error(curr_tree, f'segment ops must have a w-aligned address. In {op}.') + except FJExprException as e: + macro_resolve_error(curr_tree, f'segment failed.', orig_exception=e) + + # eval_all(op, labels) + # value = try_int(op, op.data[0]) boundary_addresses.append((SegmentEntry.WflipAddress, curr_address[0])) labels[f'{wflip_start_label}{last_address_index[0]}'] = Expr(curr_address[0]) @@ -188,11 +166,19 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic curr_address[0] = value boundary_addresses.append((SegmentEntry.StartAddress, curr_address[0])) result_ops.append(op) - elif op.type == OpType.Reserve: - eval_all(op, labels) - value = try_int(op, op.data[0]) - if value % w != 0: - macro_resolve_error(curr_tree, f'reserve ops must have a w-aligned value. In {op}.') + elif isinstance(op, Reserve): + op = op.eval_new(id_dict) + op = op.eval_new(labels) + + try: + value = op.calculate_reserved_bit_size(labels) + if value % w != 0: + macro_resolve_error(curr_tree, f'reserve ops must have a w-aligned value. In {op}.') + except FJExprException as e: + macro_resolve_error(curr_tree, f'reserve failed.', orig_exception=e) + + # eval_all(op, labels) + # value = try_int(op, op.data[0]) curr_address[0] += value boundary_addresses.append((SegmentEntry.ReserveAddress, curr_address[0])) From 179edc7b5c4a69e75e6ab553224a504e8cefa2a5 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sun, 10 Jul 2022 02:06:06 +0300 Subject: [PATCH 18/66] deque speed improvements --- src/assembler.py | 29 +++++++++++++------------- src/defs.py | 7 +++++-- src/preprocessor.py | 51 +++++++++++++++++++-------------------------- 3 files changed, 42 insertions(+), 45 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 21ad94c..66134a9 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,10 +1,11 @@ import pickle +from typing import Deque import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros from defs import Verbose, SegmentEntry, FJAssemblerException, PrintTimer, FlipJump, WordFlip, \ - FJException, Segment, Reserve + FJException, Segment, Reserve, Op def lsb_first_bin_array(int_value, bit_size): @@ -72,7 +73,7 @@ def get_next_wflip_entry_index(boundary_addresses, index): return index -def labels_resolve(ops, labels, boundary_addresses, w, writer): +def labels_resolve(ops: Deque[Op], labels, boundary_addresses, w, writer): if max(e[1] for e in boundary_addresses) >= (1 << w): raise FJAssemblerException(f"Not enough space with the {w}-width.") @@ -92,18 +93,6 @@ def labels_resolve(ops, labels, boundary_addresses, w, writer): if isinstance(op, FlipJump): f, j = vals bits += [f, j] - elif isinstance(op, Segment): - segment_index += 2 - close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, bits, - wflips) - last_start_seg_index = segment_index - first_address = boundary_addresses[last_start_seg_index][1] - wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, segment_index)][1] - elif isinstance(op, Reserve): - segment_index += 1 - last_address = boundary_addresses[segment_index][1] - close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, last_address, bits, []) - first_address = last_address elif isinstance(op, WordFlip): to_address, by_address, return_address = vals flip_bits = [i for i in range(w) if by_address & (1 << i)] @@ -125,6 +114,18 @@ def labels_resolve(ops, labels, boundary_addresses, w, writer): if wflip_address >= (1 << w): raise FJAssemblerException(f"Not enough space with the {w}-width.") + elif isinstance(op, Segment): + segment_index += 2 + close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, bits, + wflips) + last_start_seg_index = segment_index + first_address = boundary_addresses[last_start_seg_index][1] + wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, segment_index)][1] + elif isinstance(op, Reserve): + segment_index += 1 + last_address = boundary_addresses[segment_index][1] + close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, last_address, bits, []) + first_address = last_address else: raise FJAssemblerException(f"Can't resolve/assemble the next opcode - {str(op)}") diff --git a/src/defs.py b/src/defs.py index fdf2c4a..5969c47 100644 --- a/src/defs.py +++ b/src/defs.py @@ -291,7 +291,7 @@ def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePo def __str__(self): return f"macro call. {self.macro_name} {', '.join(self.data)}. at {self.code_position}" - def macro_trace_str(self) -> str: + def trace_str(self) -> str: return f'macro {self.macro_name} ({self.code_position})' @@ -325,7 +325,10 @@ def calculate_arguments(self, iterator_value: int) -> Tuple[Expr, ...]: except FJExprException as e: raise FJExprException(f"Can't calculate rep arguments on {self.code_position}") from e - def rep_trace_str(self, iter_value: int) -> str: + def trace_str(self, iter_value: int) -> str: + """ + assumes calculate_times successfully called before + """ return f'rep({self.iterator_name}={iter_value}, out of 0..{self.get_times()-1}) ' \ f'macro {self.macro_name} ({self.code_position})' diff --git a/src/preprocessor.py b/src/preprocessor.py index 6d45f08..03dcac0 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -1,5 +1,5 @@ import collections -from typing import Dict, List, Tuple, Iterable +from typing import Dict, List, Tuple, Iterable, Union, Deque import plotly.graph_objects as go @@ -11,10 +11,13 @@ macro_separator_string = "---" -def macro_resolve_error(curr_tree: List[str], msg='', *, orig_exception: BaseException = None) -> None: +CurrTree = Deque[Union[MacroCall, RepCall]] + + +def macro_resolve_error(curr_tree: CurrTree, msg='', *, orig_exception: BaseException = None) -> None: error_str = f"Macro Resolve Error" + (f':\n {msg}' if msg else '.') + f'\nmacro call trace:\n' - for i, trace_str in enumerate(curr_tree): - error_str += f' {i}) {trace_str}\n' + for i, op in enumerate(curr_tree): + error_str += f' {i}) {op.trace_str()}\n' raise FJPreprocessorException(error_str) from orig_exception @@ -69,15 +72,15 @@ def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool = False)\ - -> Tuple[List[Op], Dict[str, Expr], BoundaryAddressesList]: + -> Tuple[Deque[Op], Dict[str, Expr], BoundaryAddressesList]: curr_address = [0] - result_ops: List[Op] = [] + result_ops: Deque[Op] = collections.deque() labels: Dict[str, Expr] = {} last_address_index = [0] boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries stat_dict = collections.defaultdict(lambda: 0) - resolve_macro_aux(w, '', [], macros, main_macro, [], stat_dict, + resolve_macro_aux(w, '', collections.deque(), macros, main_macro, [], stat_dict, labels, result_ops, boundary_addresses, curr_address, last_address_index, {}) if show_statistics: @@ -87,9 +90,10 @@ def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool return result_ops, labels, boundary_addresses -def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dict[MacroName, Macro], +def resolve_macro_aux(w: int, macro_path: str, curr_tree: CurrTree, macros: Dict[MacroName, Macro], macro_name: MacroName, args: Iterable[Expr], macro_code_size: Dict[str, int], - labels: Dict[str, Expr], result_ops: List[Op], boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], + labels: Dict[str, Expr], result_ops: Deque[Op], boundary_addresses: BoundaryAddressesList, + curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], code_position: CodePosition = None)\ -> None: init_curr_address = curr_address[0] @@ -102,7 +106,6 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic id_dict = get_id_dictionary(current_macro, args, current_macro.namespace, macro_path) for op in current_macro.ops: - # macro-resolve if isinstance(op, Label): label = op.eval_name(id_dict) if label in labels: @@ -118,37 +121,33 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic del id_dict['$'] elif isinstance(op, MacroCall): op = op.eval_new(id_dict) - next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ f"{op.code_position.short_str()}:{op.macro_name}" - - resolve_macro_aux(w, next_macro_path, curr_tree + [op.macro_trace_str()], macros, + curr_tree.append(op) + resolve_macro_aux(w, next_macro_path, curr_tree, macros, op.macro_name, op.data, macro_code_size, labels, result_ops, boundary_addresses, curr_address, last_address_index, labels_code_positions, code_position=op.code_position) + curr_tree.pop() elif isinstance(op, RepCall): op = op.eval_new(id_dict) - try: times = op.calculate_times(labels) if times == 0: continue - next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ f"{op.code_position.short_str()}:rep{{}}:{op.macro_name}" - for i in range(times): - resolve_macro_aux(w, next_macro_path.format(i), curr_tree + [op.rep_trace_str(i)], macros, + curr_tree.append(op) + resolve_macro_aux(w, next_macro_path.format(i), curr_tree, macros, op.macro_name, op.calculate_arguments(i), macro_code_size, labels, result_ops, boundary_addresses, curr_address, last_address_index, labels_code_positions, code_position=op.code_position) + curr_tree.pop() except FJExprException as e: macro_resolve_error(curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) - # labels_resolve elif isinstance(op, Segment): op = op.eval_new(id_dict) - op = op.eval_new(labels) - try: value = op.calculate_address(labels) if value % w != 0: @@ -156,20 +155,16 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic except FJExprException as e: macro_resolve_error(curr_tree, f'segment failed.', orig_exception=e) - # eval_all(op, labels) - # value = try_int(op, op.data[0]) - boundary_addresses.append((SegmentEntry.WflipAddress, curr_address[0])) labels[f'{wflip_start_label}{last_address_index[0]}'] = Expr(curr_address[0]) last_address_index[0] += 1 curr_address[0] = value boundary_addresses.append((SegmentEntry.StartAddress, curr_address[0])) + result_ops.append(op) elif isinstance(op, Reserve): op = op.eval_new(id_dict) - op = op.eval_new(labels) - try: value = op.calculate_reserved_bit_size(labels) if value % w != 0: @@ -177,14 +172,12 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: List[str], macros: Dic except FJExprException as e: macro_resolve_error(curr_tree, f'reserve failed.', orig_exception=e) - # eval_all(op, labels) - # value = try_int(op, op.data[0]) - curr_address[0] += value + boundary_addresses.append((SegmentEntry.ReserveAddress, curr_address[0])) labels[f'{wflip_start_label}{last_address_index[0]}'] = Expr(curr_address[0]) - last_address_index[0] += 1 + result_ops.append(op) else: macro_resolve_error(curr_tree, f"Can't assemble this opcode - {str(op)}") From 24692c545c1965caf4d86abf2a878a27c5a3f6da Mon Sep 17 00:00:00 2001 From: Tomhe Date: Mon, 11 Jul 2022 00:14:52 +0300 Subject: [PATCH 19/66] specific op.eval_new --- src/defs.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/defs.py b/src/defs.py index 5969c47..d08b529 100644 --- a/src/defs.py +++ b/src/defs.py @@ -187,11 +187,6 @@ def __init__(self, data: List[Union[Expr, str, MacroCall], ...], code_position: def eval_int_data(self, id_dict: Dict[str, Expr]) -> Tuple[int]: return tuple(int(expr.eval_new(id_dict)) for expr in self.data) - def eval_new(self, id_dict: Dict[str, Expr]) -> Op: - op = copy(self) - op.data = [expr.eval_new(id_dict) for expr in self.data] - return op - class Label: def __init__(self, name: str, code_position: CodePosition): @@ -220,6 +215,9 @@ def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): def __str__(self): return f"Flip: {self.data[0]}, Jump: {self.data[1]}, at {self.code_position}" + def eval_new(self, id_dict: Dict[str, Expr]) -> FlipJump: + return FlipJump(self.data[0].eval_new(id_dict), self.data[1].eval_new(id_dict), self.code_position) + def get_flip(self, label: Dict[str, Expr]) -> int: return int(self.data[0].eval_new(label)) @@ -237,6 +235,9 @@ def __init__(self, word_address: Expr, value: Expr, return_address: Expr, code_p def __str__(self): return f"Flip Word {self.data[0]} by {self.data[1]}, and return to {self.data[2]}. at {self.code_position}" + def eval_new(self, id_dict: Dict[str, Expr]) -> WordFlip: + return WordFlip(self.data[0].eval_new(id_dict), self.data[1].eval_new(id_dict), self.data[2].eval_new(id_dict), self.code_position) + class Segment(Op): """ @@ -248,6 +249,9 @@ def __init__(self, start_address: Expr, code_position: CodePosition): def __str__(self): return f"Segment {self.data[0]}, at {self.code_position}" + def eval_new(self, id_dict: Dict[str, Expr]) -> Segment: + return Segment(self.data[0].eval_new(id_dict), self.code_position) + def get_address(self) -> int: try: return int(self.data[0]) @@ -269,6 +273,9 @@ def __init__(self, reserved_bit_size: Expr, code_position: CodePosition): def __str__(self): return f"Reserve {self.data[0]}, at {self.code_position}" + def eval_new(self, id_dict: Dict[str, Expr]) -> Reserve: + return Reserve(self.data[0].eval_new(id_dict), self.code_position) + def get_reserved_bit_size(self) -> int: try: return int(self.data[0]) @@ -291,6 +298,9 @@ def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePo def __str__(self): return f"macro call. {self.macro_name} {', '.join(self.data)}. at {self.code_position}" + def eval_new(self, id_dict: Dict[str, Expr]) -> MacroCall: + return MacroCall(self.macro_name.name, [expr.eval_new(id_dict) for expr in self.data], self.code_position) + def trace_str(self) -> str: return f'macro {self.macro_name} ({self.code_position})' @@ -308,6 +318,10 @@ def __init__(self, repeat_times: Expr, iterator_name: str, macro_name: str, argu def __str__(self): return f"rep call. rep({self.data[0]}, {self.iterator_name}) {self.macro_name} {', '.join(self.data[1:])}. at {self.code_position}" + def eval_new(self, id_dict: Dict[str, Expr]) -> RepCall: + return RepCall(self.data[0].eval_new(id_dict), self.iterator_name, self.macro_name.name, + [expr.eval_new(id_dict) for expr in self.data[1:]], self.code_position) + def get_times(self) -> int: try: return int(self.data[0]) From 40a4e3488d0e0425d46ad6df4c5c4939fa651694 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Mon, 11 Jul 2022 00:55:16 +0300 Subject: [PATCH 20/66] assembler type hints, simplify Op class --- src/assembler.py | 86 +++++++++++++++++++++++------------------------- src/defs.py | 24 +++++++++----- 2 files changed, 57 insertions(+), 53 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 66134a9..36e2c3e 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,38 +1,33 @@ import pickle -from typing import Deque +from typing import Deque, List, Dict import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros from defs import Verbose, SegmentEntry, FJAssemblerException, PrintTimer, FlipJump, WordFlip, \ - FJException, Segment, Reserve, Op + FJException, Segment, Reserve, Op, BoundaryAddressesList, Expr -def lsb_first_bin_array(int_value, bit_size): - return [int(c) for c in bin(int_value & ((1 << bit_size) - 1))[2:].zfill(bit_size)[-bit_size:]][::-1][:bit_size] - - -def write_flip_jump(bits, f, j, w): - bits += lsb_first_bin_array(f, w) - bits += lsb_first_bin_array(j, w) - - -def close_segment(w, segment_index, boundary_addresses, writer, first_address, last_address, bits, wflips): +def close_segment(w: int, + segment_index: int, boundary_addresses: BoundaryAddressesList, + writer: fjm.Writer, + first_address: int, last_address: int, + fj_words: List[int], wflip_words: List[int]) -> None: if first_address == last_address: return assert_none_crossing_segments(segment_index, first_address, last_address, boundary_addresses) - data_start, data_length = writer.add_data(bits + wflips) + data_start, data_length = writer.add_data(fj_words + wflip_words) segment_length = (last_address - first_address) // w if segment_length < data_length: raise FJAssemblerException(f'segment-length is smaller than data-length: {segment_length} < {data_length}') writer.add_segment(first_address // w, segment_length, data_start, data_length) - bits.clear() - wflips.clear() + fj_words.clear() + wflip_words.clear() -def clean_segment_index(index, boundary_addresses): +def get_clean_segment_index(index: int, boundary_addresses: BoundaryAddressesList) -> int: clean_index = 0 for entry in boundary_addresses[:index]: if entry[0] == SegmentEntry.WflipAddress: @@ -40,7 +35,9 @@ def clean_segment_index(index, boundary_addresses): return clean_index -def assert_none_crossing_segments(curr_segment_index, old_address, new_address, boundary_addresses): +def assert_none_crossing_segments(curr_segment_index: int, + old_address: int, new_address: int, + boundary_addresses: BoundaryAddressesList) -> None: min_i = None min_seg_start = None @@ -59,12 +56,12 @@ def assert_none_crossing_segments(curr_segment_index, old_address, new_address, if min_i is not None: raise FJAssemblerException(f"Overlapping segments (address {hex(new_address)}): " - f"seg[{clean_segment_index(curr_segment_index, boundary_addresses)}]" + f"seg[{get_clean_segment_index(curr_segment_index, boundary_addresses)}]" f"=({hex(boundary_addresses[curr_segment_index][1])}..) and " - f"seg[{clean_segment_index(min_i, boundary_addresses)}]=({hex(min_seg_start)}..)") + f"seg[{get_clean_segment_index(min_i, boundary_addresses)}]=({hex(min_seg_start)}..)") -def get_next_wflip_entry_index(boundary_addresses, index): +def get_next_wflip_entry_index(boundary_addresses: BoundaryAddressesList, index: int) -> int: length = len(boundary_addresses) while boundary_addresses[index][0] != SegmentEntry.WflipAddress: index += 1 @@ -73,63 +70,64 @@ def get_next_wflip_entry_index(boundary_addresses, index): return index -def labels_resolve(ops: Deque[Op], labels, boundary_addresses, w, writer): +def labels_resolve(ops: Deque[Op], labels: Dict[str, Expr], + boundary_addresses: BoundaryAddressesList, + w: int, writer: fjm.Writer) -> None: if max(e[1] for e in boundary_addresses) >= (1 << w): raise FJAssemblerException(f"Not enough space with the {w}-width.") - bits = [] - wflips = [] + fj_words = [] + wflip_words = [] segment_index = 0 last_start_seg_index = segment_index first_address = boundary_addresses[last_start_seg_index][1] wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, 0)][1] for op in ops: - try: - vals = op.eval_int_data(labels) - except FJException as e: - raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e - if isinstance(op, FlipJump): - f, j = vals - bits += [f, j] + try: + fj_words += (op.get_flip(labels), op.get_jump(labels)) + except FJException as e: + raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e elif isinstance(op, WordFlip): - to_address, by_address, return_address = vals - flip_bits = [i for i in range(w) if by_address & (1 << i)] + try: + word_address = op.get_word_address(labels) + flip_value = op.get_flip_value(labels) + return_address = op.get_return_address(labels) + except FJException as e: + raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e + + flip_bits = [i for i in range(w) if flip_value & (1 << i)] if len(flip_bits) <= 1: - bits += [to_address + flip_bits[0] if flip_bits else 0, - return_address] + fj_words += (word_address + flip_bits[0] if flip_bits else 0, return_address) else: - bits += [to_address + flip_bits[0], - wflip_address] + fj_words += (word_address + flip_bits[0], wflip_address) next_op = wflip_address for bit in flip_bits[1:-1]: next_op += 2*w - wflips += [to_address+bit, - next_op] - wflips += [to_address + flip_bits[-1], - return_address] + wflip_words += (word_address+bit, next_op) + wflip_words += (word_address + flip_bits[-1], return_address) wflip_address = next_op + 2 * w if wflip_address >= (1 << w): raise FJAssemblerException(f"Not enough space with the {w}-width.") elif isinstance(op, Segment): segment_index += 2 - close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, bits, - wflips) + close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, fj_words, + wflip_words) last_start_seg_index = segment_index first_address = boundary_addresses[last_start_seg_index][1] wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, segment_index)][1] elif isinstance(op, Reserve): segment_index += 1 last_address = boundary_addresses[segment_index][1] - close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, last_address, bits, []) + close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, last_address, fj_words, []) first_address = last_address else: raise FJAssemblerException(f"Can't resolve/assemble the next opcode - {str(op)}") - close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, bits, wflips) + close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, fj_words, wflip_words) def assemble(input_files, output_file, w, diff --git a/src/defs.py b/src/defs.py index d08b529..fec550d 100644 --- a/src/defs.py +++ b/src/defs.py @@ -184,9 +184,6 @@ def __init__(self, data: List[Union[Expr, str, MacroCall], ...], code_position: self.data = data self.code_position = code_position - def eval_int_data(self, id_dict: Dict[str, Expr]) -> Tuple[int]: - return tuple(int(expr.eval_new(id_dict)) for expr in self.data) - class Label: def __init__(self, name: str, code_position: CodePosition): @@ -218,19 +215,19 @@ def __str__(self): def eval_new(self, id_dict: Dict[str, Expr]) -> FlipJump: return FlipJump(self.data[0].eval_new(id_dict), self.data[1].eval_new(id_dict), self.code_position) - def get_flip(self, label: Dict[str, Expr]) -> int: - return int(self.data[0].eval_new(label)) + def get_flip(self, labels: Dict[str, Expr]) -> int: + return int(self.data[0].eval_new(labels)) - def get_jump(self, label: Dict[str, Expr]) -> int: - return int(self.data[1].eval_new(label)) + def get_jump(self, labels: Dict[str, Expr]) -> int: + return int(self.data[1].eval_new(labels)) class WordFlip(Op): """ data = [word_address, value, return_address] """ - def __init__(self, word_address: Expr, value: Expr, return_address: Expr, code_position: CodePosition): - super(WordFlip, self).__init__([word_address, value, return_address], code_position) + def __init__(self, word_address: Expr, flip_value: Expr, return_address: Expr, code_position: CodePosition): + super(WordFlip, self).__init__([word_address, flip_value, return_address], code_position) def __str__(self): return f"Flip Word {self.data[0]} by {self.data[1]}, and return to {self.data[2]}. at {self.code_position}" @@ -238,6 +235,15 @@ def __str__(self): def eval_new(self, id_dict: Dict[str, Expr]) -> WordFlip: return WordFlip(self.data[0].eval_new(id_dict), self.data[1].eval_new(id_dict), self.data[2].eval_new(id_dict), self.code_position) + def get_word_address(self, labels: Dict[str, Expr]) -> int: + return int(self.data[0].eval_new(labels)) + + def get_flip_value(self, labels: Dict[str, Expr]) -> int: + return int(self.data[1].eval_new(labels)) + + def get_return_address(self, labels: Dict[str, Expr]) -> int: + return int(self.data[2].eval_new(labels)) + class Segment(Op): """ From 58982f556f65605c195ed51180f149de52bc2d14 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Mon, 11 Jul 2022 01:44:59 +0300 Subject: [PATCH 21/66] remove shallow-copy, Op entirely --- src/assembler.py | 4 +- src/defs.py | 139 ++++++++++++++++++++++++++------------------ src/fji.py | 1 - src/preprocessor.py | 14 ++--- 4 files changed, 91 insertions(+), 67 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 36e2c3e..fa40578 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -5,7 +5,7 @@ from fj_parser import parse_macro_tree from preprocessor import resolve_macros from defs import Verbose, SegmentEntry, FJAssemblerException, PrintTimer, FlipJump, WordFlip, \ - FJException, Segment, Reserve, Op, BoundaryAddressesList, Expr + FJException, Segment, Reserve, Op, BoundaryAddressesList, Expr, LastPhaseOp def close_segment(w: int, @@ -70,7 +70,7 @@ def get_next_wflip_entry_index(boundary_addresses: BoundaryAddressesList, index: return index -def labels_resolve(ops: Deque[Op], labels: Dict[str, Expr], +def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], boundary_addresses: BoundaryAddressesList, w: int, writer: fjm.Writer) -> None: if max(e[1] for e in boundary_addresses) >= (1 << w): diff --git a/src/defs.py b/src/defs.py index fec550d..7f6dd7d 100644 --- a/src/defs.py +++ b/src/defs.py @@ -1,6 +1,5 @@ from __future__ import annotations -from copy import copy from dataclasses import dataclass import json from enum import IntEnum # IntEnum equality works between files. @@ -179,12 +178,6 @@ def short_str(self) -> str: return f"f{self.file_number}:l{self.line}" -class Op: - def __init__(self, data: List[Union[Expr, str, MacroCall], ...], code_position: CodePosition): - self.data = data - self.code_position = code_position - - class Label: def __init__(self, name: str, code_position: CodePosition): self.name = name @@ -202,146 +195,185 @@ def eval_name(self, id_dict: Dict[str, Expr]) -> str: return self.name -class FlipJump(Op): +class FlipJump: """ data = [flip_address, jump_address] """ def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): - super(FlipJump, self).__init__([flip, jump], code_position) + self.flip = flip + self.jump = jump + self.code_position = code_position def __str__(self): - return f"Flip: {self.data[0]}, Jump: {self.data[1]}, at {self.code_position}" + return f"Flip: {self.flip}, Jump: {self.jump}, at {self.code_position}" def eval_new(self, id_dict: Dict[str, Expr]) -> FlipJump: - return FlipJump(self.data[0].eval_new(id_dict), self.data[1].eval_new(id_dict), self.code_position) + return FlipJump(self.flip.eval_new(id_dict), self.jump.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label + for expr in (self.flip, self.jump) + for label in expr.all_unknown_labels()} def get_flip(self, labels: Dict[str, Expr]) -> int: - return int(self.data[0].eval_new(labels)) + return int(self.flip.eval_new(labels)) def get_jump(self, labels: Dict[str, Expr]) -> int: - return int(self.data[1].eval_new(labels)) + return int(self.jump.eval_new(labels)) -class WordFlip(Op): +class WordFlip: """ data = [word_address, value, return_address] """ def __init__(self, word_address: Expr, flip_value: Expr, return_address: Expr, code_position: CodePosition): - super(WordFlip, self).__init__([word_address, flip_value, return_address], code_position) + self.word_address = word_address + self.flip_value = flip_value + self.return_address = return_address + self.code_position = code_position def __str__(self): - return f"Flip Word {self.data[0]} by {self.data[1]}, and return to {self.data[2]}. at {self.code_position}" + return f"Flip Word {self.word_address} by {self.flip_value}, and return to {self.return_address}. " \ + f"at {self.code_position}" def eval_new(self, id_dict: Dict[str, Expr]) -> WordFlip: - return WordFlip(self.data[0].eval_new(id_dict), self.data[1].eval_new(id_dict), self.data[2].eval_new(id_dict), self.code_position) + return WordFlip(self.word_address.eval_new(id_dict), self.flip_value.eval_new(id_dict), + self.return_address.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label + for expr in (self.word_address, self.flip_value, self.return_address) + for label in expr.all_unknown_labels()} def get_word_address(self, labels: Dict[str, Expr]) -> int: - return int(self.data[0].eval_new(labels)) + return int(self.word_address.eval_new(labels)) def get_flip_value(self, labels: Dict[str, Expr]) -> int: - return int(self.data[1].eval_new(labels)) + return int(self.flip_value.eval_new(labels)) def get_return_address(self, labels: Dict[str, Expr]) -> int: - return int(self.data[2].eval_new(labels)) + return int(self.return_address.eval_new(labels)) -class Segment(Op): +class Segment: """ data = [start_address] """ def __init__(self, start_address: Expr, code_position: CodePosition): - super(Segment, self).__init__([start_address], code_position) + self.start_address = start_address + self.code_position = code_position def __str__(self): - return f"Segment {self.data[0]}, at {self.code_position}" + return f"Segment {self.start_address}, at {self.code_position}" def eval_new(self, id_dict: Dict[str, Expr]) -> Segment: - return Segment(self.data[0].eval_new(id_dict), self.code_position) + return Segment(self.start_address.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label for label in self.start_address.all_unknown_labels()} def get_address(self) -> int: try: - return int(self.data[0]) + return int(self.start_address) except FJExprException as e: raise FJExprException(f"Can't calculate segment address on {self.code_position}") from e def calculate_address(self, labels: Dict[str, Expr]) -> int: - self.data[0] = self.data[0].eval_new(labels) + self.start_address = self.start_address.eval_new(labels) return self.get_address() -class Reserve(Op): +class Reserve: """ data = [reserved_bit_size] """ def __init__(self, reserved_bit_size: Expr, code_position: CodePosition): - super(Reserve, self).__init__([reserved_bit_size], code_position) + self.reserved_bit_size = reserved_bit_size + self.code_position = code_position def __str__(self): - return f"Reserve {self.data[0]}, at {self.code_position}" + return f"Reserve {self.reserved_bit_size}, at {self.code_position}" def eval_new(self, id_dict: Dict[str, Expr]) -> Reserve: - return Reserve(self.data[0].eval_new(id_dict), self.code_position) + return Reserve(self.reserved_bit_size.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label for label in self.reserved_bit_size.all_unknown_labels()} def get_reserved_bit_size(self) -> int: try: - return int(self.data[0]) + return int(self.reserved_bit_size) except FJExprException as e: raise FJExprException(f"Can't calculate reserved bits size on {self.code_position}") from e def calculate_reserved_bit_size(self, labels: Dict[str, Expr]) -> int: - self.data[0] = self.data[0].eval_new(labels) + self.reserved_bit_size = self.reserved_bit_size.eval_new(labels) return self.get_reserved_bit_size() -class MacroCall(Op): +class MacroCall: """ data = ordered list of macro arguments """ def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): - super(MacroCall, self).__init__(arguments, code_position) self.macro_name = MacroName(macro_name, len(arguments)) + self.arguments = arguments + self.code_position = code_position def __str__(self): - return f"macro call. {self.macro_name} {', '.join(self.data)}. at {self.code_position}" + return f"macro call. {self.macro_name.name} {', '.join(map(str, self.arguments))}. at {self.code_position}" def eval_new(self, id_dict: Dict[str, Expr]) -> MacroCall: - return MacroCall(self.macro_name.name, [expr.eval_new(id_dict) for expr in self.data], self.code_position) + return MacroCall(self.macro_name.name, [arg.eval_new(id_dict) for arg in self.arguments], self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label for expr in self.arguments for label in expr.all_unknown_labels()} def trace_str(self) -> str: return f'macro {self.macro_name} ({self.code_position})' -class RepCall(Op): +class RepCall: """ data[0] = repeat_times data[1:] = ordered list of macro arguments """ - def __init__(self, repeat_times: Expr, iterator_name: str, macro_name: str, arguments: List[Expr], code_position: CodePosition): - super(RepCall, self).__init__([repeat_times, *arguments], code_position) + def __init__(self, repeat_times: Expr, iterator_name: str, macro_name: str, arguments: List[Expr], + code_position: CodePosition): + self.repeat_times = repeat_times self.iterator_name = iterator_name self.macro_name = MacroName(macro_name, len(arguments)) + self.arguments = arguments + self.code_position = code_position def __str__(self): - return f"rep call. rep({self.data[0]}, {self.iterator_name}) {self.macro_name} {', '.join(self.data[1:])}. at {self.code_position}" + return f"rep call. rep({self.repeat_times}, {self.iterator_name}) {self.macro_name.name} " \ + f"{', '.join(map(str, self.arguments))}. at {self.code_position}" def eval_new(self, id_dict: Dict[str, Expr]) -> RepCall: - return RepCall(self.data[0].eval_new(id_dict), self.iterator_name, self.macro_name.name, - [expr.eval_new(id_dict) for expr in self.data[1:]], self.code_position) + return RepCall(self.repeat_times.eval_new(id_dict), self.iterator_name, self.macro_name.name, + [expr.eval_new(id_dict) for expr in self.arguments], self.code_position) + + def all_unknown_labels(self) -> Set[str]: + times = self.repeat_times + arguments = self.arguments + arguments_labels = set(label for e in arguments for label in e.all_unknown_labels()) + return times.all_unknown_labels() | (arguments_labels - {self.iterator_name}) def get_times(self) -> int: try: - return int(self.data[0]) + return int(self.repeat_times) except FJExprException as e: raise FJExprException(f"Can't calculate rep times on {self.code_position}") from e def calculate_times(self, labels: Dict[str, Expr]) -> int: - self.data[0] = self.data[0].eval_new(labels) + self.repeat_times = self.repeat_times.eval_new(labels) return self.get_times() def calculate_arguments(self, iterator_value: int) -> Tuple[Expr, ...]: iterator_dict = {self.iterator_name: Expr(iterator_value)} try: - return tuple(expr.eval_new(iterator_dict) for expr in self.data[1:]) + return tuple(expr.eval_new(iterator_dict) for expr in self.arguments) except FJExprException as e: raise FJExprException(f"Can't calculate rep arguments on {self.code_position}") from e @@ -353,6 +385,10 @@ def trace_str(self, iter_value: int) -> str: f'macro {self.macro_name} ({self.code_position})' +Op = Union[FlipJump, WordFlip, Label, MacroCall, RepCall, Segment, Reserve] +LastPhaseOp = Union[FlipJump, WordFlip, Segment, Reserve] + + class Expr: def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr]]]): self.val = expr @@ -408,19 +444,10 @@ def __str__(self) -> str: def get_used_labels(ops: List[Op]) -> Set[str]: - """ - - @param ops[in]:d - @return: - """ used_labels = set() for op in ops: - if isinstance(op, RepCall): - times, *macro_call_data = op.data - arguments_labels = set(label for e in macro_call_data for label in e.all_unknown_labels()) - used_labels.update(times.all_unknown_labels() | (arguments_labels - {op.iterator_name})) - elif isinstance(op, Op): - used_labels.update(label for expr in op.data for label in expr.all_unknown_labels()) + if not isinstance(op, Label): + used_labels.update(op.all_unknown_labels()) return used_labels diff --git a/src/fji.py b/src/fji.py index d3bffba..329d9ca 100644 --- a/src/fji.py +++ b/src/fji.py @@ -1,7 +1,6 @@ import argparse from os.path import isfile, abspath - from fjm_run import debug_and_run from defs import Verbose, FJReadFjmException diff --git a/src/preprocessor.py b/src/preprocessor.py index 03dcac0..b67a2e6 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -4,9 +4,9 @@ import plotly.graph_objects as go from defs import main_macro, wflip_start_label, new_label, \ - Op, SegmentEntry, Expr, FJPreprocessorException, \ + SegmentEntry, Expr, FJPreprocessorException, \ CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ - FlipJump, WordFlip, Label, Segment, Reserve + FlipJump, WordFlip, Label, Segment, Reserve, LastPhaseOp macro_separator_string = "---" @@ -72,9 +72,9 @@ def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool = False)\ - -> Tuple[Deque[Op], Dict[str, Expr], BoundaryAddressesList]: + -> Tuple[Deque[LastPhaseOp], Dict[str, Expr], BoundaryAddressesList]: curr_address = [0] - result_ops: Deque[Op] = collections.deque() + result_ops: Deque[LastPhaseOp] = collections.deque() labels: Dict[str, Expr] = {} last_address_index = [0] boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries @@ -92,7 +92,7 @@ def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool def resolve_macro_aux(w: int, macro_path: str, curr_tree: CurrTree, macros: Dict[MacroName, Macro], macro_name: MacroName, args: Iterable[Expr], macro_code_size: Dict[str, int], - labels: Dict[str, Expr], result_ops: Deque[Op], boundary_addresses: BoundaryAddressesList, + labels: Dict[str, Expr], result_ops: Deque[LastPhaseOp], boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], code_position: CodePosition = None)\ -> None: @@ -125,7 +125,7 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: CurrTree, macros: Dict f"{op.code_position.short_str()}:{op.macro_name}" curr_tree.append(op) resolve_macro_aux(w, next_macro_path, curr_tree, macros, - op.macro_name, op.data, macro_code_size, + op.macro_name, op.arguments, macro_code_size, labels, result_ops, boundary_addresses, curr_address, last_address_index, labels_code_positions, code_position=op.code_position) curr_tree.pop() @@ -181,8 +181,6 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: CurrTree, macros: Dict result_ops.append(op) else: macro_resolve_error(curr_tree, f"Can't assemble this opcode - {str(op)}") - if not isinstance(op, Op): - macro_resolve_error(curr_tree, f"bad op (not of Op type)! type {type(op)}, str {str(op)}.") if 1 <= len(curr_tree) <= 2: macro_code_size[macro_path] += curr_address[0] - init_curr_address From 4fa2d41d26dcccf2e768179cfee237cc8a402fb9 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 16 Jul 2022 01:53:57 +0300 Subject: [PATCH 22/66] remove fja.py, fji.py, move to fj.py --- src/assembler.py | 22 ++- src/defs.py | 12 +- src/fj.py | 324 ++++++++++++++++++++++++++++++++++---------- src/fj_parser.py | 13 +- src/fja.py | 49 ------- src/fji.py | 59 -------- src/fjm_run.py | 74 ++++++---- src/preprocessor.py | 5 +- tests/test_fj.py | 8 +- 9 files changed, 325 insertions(+), 241 deletions(-) delete mode 100644 src/fja.py delete mode 100644 src/fji.py diff --git a/src/assembler.py b/src/assembler.py index fa40578..c2685b2 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,11 +1,12 @@ import pickle -from typing import Deque, List, Dict +from pathlib import Path +from typing import Deque, List, Dict, Tuple import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros from defs import Verbose, SegmentEntry, FJAssemblerException, PrintTimer, FlipJump, WordFlip, \ - FJException, Segment, Reserve, Op, BoundaryAddressesList, Expr, LastPhaseOp + FJException, Segment, Reserve, BoundaryAddressesList, Expr, LastPhaseOp def close_segment(w: int, @@ -130,28 +131,23 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, fj_words, wflip_words) -def assemble(input_files, output_file, w, +def assemble(input_files: List[Tuple[str, Path]], output_file, w, *, version=0, flags=0, warning_as_errors=True, - show_statistics=False, debugging_file=None, verbose=None): - if verbose is None: - verbose = set() - + show_statistics=False, debugging_file=None, print_time=True): writer = fjm.Writer(output_file, w, version=version, flags=flags) - time_verbose = Verbose.Time in verbose - - with PrintTimer(' parsing: ', print_time=time_verbose): + with PrintTimer(' parsing: ', print_time=print_time): macros = parse_macro_tree(input_files, w, warning_as_errors) - with PrintTimer(' macro resolve: ', print_time=time_verbose): + with PrintTimer(' macro resolve: ', print_time=print_time): ops, labels, boundary_addresses = resolve_macros(w, macros, show_statistics=show_statistics) - with PrintTimer(' labels resolve: ', print_time=time_verbose): + with PrintTimer(' labels resolve: ', print_time=print_time): labels_resolve(ops, labels, boundary_addresses, w, writer) - with PrintTimer(' create binary: ', print_time=time_verbose): + with PrintTimer(' create binary: ', print_time=print_time): writer.write_to_file() labels = {label: labels[label].val for label in labels} diff --git a/src/defs.py b/src/defs.py index 7f6dd7d..bc4fca6 100644 --- a/src/defs.py +++ b/src/defs.py @@ -114,6 +114,14 @@ class SegmentEntry(IntEnum): BoundaryAddressesList = List[Tuple[SegmentEntry, int]] +macro_separator_string = "---" + + +def get_nice_label_repr(label: str, pad: int = 0) -> str: + parts = label.split(macro_separator_string) + return ' ->\n'.join(f"{' '*(pad+i)}{part}" for i, part in enumerate(parts)) + + class PrintTimer: def __init__(self, init_message: str, *, print_time: bool = True): self.init_message = init_message @@ -168,14 +176,14 @@ def __init__(self, params: List[str], local_params: List[str], @dataclass class CodePosition: file: str - file_number: int + file_short_name: str line: int def __str__(self) -> str: return f"file {self.file} (line {self.line})" def short_str(self) -> str: - return f"f{self.file_number}:l{self.line}" + return f"{self.file_short_name}:l{self.line}" class Label: diff --git a/src/fj.py b/src/fj.py index 59a62b7..dfc5809 100644 --- a/src/fj.py +++ b/src/fj.py @@ -1,94 +1,223 @@ import os import argparse -from os.path import isfile, abspath -from tempfile import mkstemp +from pathlib import Path +from tempfile import mkstemp, TemporaryDirectory +from typing import Tuple, List, Set -from assembler import assemble -from fjm_run import debug_and_run +import assembler +import fjm_run from defs import Verbose, FJReadFjmException, get_stl_paths +def get_run_verbose_set(args: argparse.Namespace) -> Set[Verbose]: + """ + extract the running verbose-options into a verbose-set. + @param args: the parsed arguments + @return: the verbose-set + """ + verbose_set = set() + + if not args.silent: + verbose_set.add(Verbose.Time) + if not args.no_output: + verbose_set.add(Verbose.PrintOutput) + if args.trace: + verbose_set.add(Verbose.Run) + + return verbose_set + + +def get_temp_directory_suffix(args: argparse.Namespace) -> str: + """ + create a suffix for the temp directory name, using args. + @param args: the parsed arguments + @return: the suffix + """ + return f'__{"_".join(map(os.path.basename, args.files))}__temp_directory' + + +def get_file_tuples(args: argparse.Namespace) -> List[Tuple[str, Path]]: + """ + get the list of .fj files to be assembled (stl + files). + @param args: the parsed arguments + @return: a list of file-tuples - (file_short_name, file_path) + """ + file_tuples = [] + + if not args.no_stl: + for i, stl_path in enumerate(get_stl_paths(), start=1): + file_tuples.append((f"s{i}", stl_path)) + + for i, file in enumerate(args.files, start=1): + file_tuples.append((f"f{i}", Path(file))) + + return file_tuples + + +def verify_file_exists(parser: argparse.ArgumentParser, path: Path) -> None: + """ + verify that the file exists. + @param parser: the parser + @param path: the file's path + """ + if not path.is_file(): + parser.error(f'file {path} does not exist.') + + +def verify_fj_files(parser: argparse.ArgumentParser, file_tuples: List[Tuple[str, Path]]) -> None: + """ + verify that all files exist and with the right suffix. + @param parser: the parser + @param file_tuples: a list of file-tuples - (file_short_name, file_path) + """ + for _, path in file_tuples: + verify_file_exists(parser, path) + if '.fj' != path.suffix: + parser.error(f'file {path} is not a .fj file.') + + +def verify_fjm_file(parser: argparse.ArgumentParser, path: Path) -> None: + """ + verify that this file exists and with the right suffix. + @param parser: the parser + @param path: the file's path + """ + verify_file_exists(parser, path) + if '.fjm' != path.suffix: + parser.error(f'file {path} is not a .fjm file.') + + +def add_run_only_arguments(parser: argparse.ArgumentParser) -> None: + """ + add the arguments that are usable in run time. + @param parser: the parser + """ + run_arguments = parser.add_argument_group('run arguments', 'Ignored when using the --assemble option') + + run_arguments.add_argument('-t', '--trace', help="output every running opcode", action='store_true') + run_arguments.add_argument('--no_output', help="don't print the program's output", action='store_true') + + run_arguments.add_argument('-b', '--breakpoint', metavar='NAME', default=[], nargs="+", + help="pause when reaching this label") + run_arguments.add_argument('-B', '--breakpoint_contains', metavar='NAME', default=[], nargs="+", + help="pause when reaching any label containing this") + + +def add_assemble_only_arguments(parser: argparse.ArgumentParser) -> None: + """ + add the arguments that are usable in assemble time. + @param parser: the parser + """ + asm_arguments = parser.add_argument_group('assemble arguments', 'Ignored when using the --run option') + + asm_arguments.add_argument('-o', '--outfile', metavar='PATH', help="output assembled file") + + asm_arguments.add_argument('-w', '--width', type=int, default=64, choices=[8, 16, 32, 64], metavar='WIDTH', + help="specify memory-width. 64 by default") + asm_arguments.add_argument('-v', '--version', metavar='VERSION', help="fjm version", type=int, default=0) + asm_arguments.add_argument('-f', '--flags', help="the default .fjm unpacking & running flags", type=int, default=0) + + asm_arguments.add_argument('--werror', help="treat all assemble warnings as errors", action='store_true') + asm_arguments.add_argument('--no_stl', help="don't assemble/link the standard library files", action='store_true') + asm_arguments.add_argument('--stats', help="show macro code-size statistics", action='store_true') + + +def add_universal_arguments(parser: argparse.ArgumentParser) -> None: + """ + add the arguments that are usable in both --asm and --run options. + @param parser: the parser + """ + parser.add_argument('files', help="the .fj files to assemble (if run-only, the .fjm file to run)", nargs='+') + parser.add_argument('-s', '--silent', action='store_true', + help="don't show assemble & run times, and run statistics") + parser.add_argument('-d', '--debug', nargs='?', const=True, metavar='PATH', + help="debug-file path (used for breakpoints). If you both assemble & run, " + "you may use this option without specifying a path, and a temporary file will be used") + + +def add_command_arguments(parser: argparse.ArgumentParser) -> None: + """ + add the mutually exclusive --asm and --run options. + @param parser: the parser + """ + action = parser.add_mutually_exclusive_group() + action.add_argument('-a', '--asm', action='store_true', help="assemble only. Ignores any run-arguments") + action.add_argument('-r', '--run', action='store_true', help="run only. Ignores any assemble-arguments") + + +def add_arguments(parser: argparse.ArgumentParser) -> None: + """ + add the parser's arguments. + @param parser: the parser + """ + add_command_arguments(parser) + add_universal_arguments(parser) + add_assemble_only_arguments(parser) + add_run_only_arguments(parser) + + +def get_argument_parser() -> argparse.ArgumentParser: + """ + create the argument parser (with specific description and usage). + @return: the argument parser + """ + return argparse.ArgumentParser( + description='Assemble and Run FlipJump programs.', + usage=f'fj.py [--asm | --run] [arguments] files [files ...]\n' + f'example usage:\n' + f' fj.py a.fj b.fj // assemble and run\n' + f' fj.py a.fj b.fj -o out.fjm // assemble save and run\n' + f' fj.py code.fj -d -B swap_start exit_label // assemble and debug\n\n' + f' fj.py --asm -o o.fjm a.fj -d dir/debug.fjd // assemble and save debug info\n' + f' fj.py --asm -o output.fjm a.fj b.fj --no_stl -w 32 ' + f'// assemble without the standard library, 32 bit memory\n\n' + f' fj.py --run prog.fjm // just run\n' + f' fj.py --run o.fjm -d dir/debug.fjd -B label // run and debug' + ) + + def main(): - parser = argparse.ArgumentParser(description='Assemble and Run FlipJump programs.') - parser.add_argument('file', help="the FlipJump files.", nargs='+') - parser.add_argument('-s', '--silent', help="don't show assemble & run times", action='store_true') - parser.add_argument('-o', '--outfile', help="output assembled file.") - parser.add_argument('-d', '--debug', help="debug file (used for breakpoints).", nargs='?', const=True) - parser.add_argument('-v', '--version', help="fjm version", type=int, default=0) - parser.add_argument('-f', '--flags', help="default running flags", type=int, default=0) - parser.add_argument('-w', '--width', help="specify memory-width. 64 by default.", - type=int, default=64, choices=[8, 16, 32, 64]) - parser.add_argument('--Werror', help="make all warnings into errors.", action='store_true') - parser.add_argument('--no-stl', help="don't assemble/link the standard library files.", action='store_true') - parser.add_argument('--stats', help="show macro usage statistics.", action='store_true') - parser.add_argument('-b', '--breakpoint', help="pause when reaching this label", - default=[], action='append') - parser.add_argument('-B', '--any_breakpoint', help="pause when reaching any label containing this", - default=[], action='append') + # TODO document and move up fj.py + # TODO remove mkstemp from all directories + parser = get_argument_parser() + add_arguments(parser) args = parser.parse_args() + execute_assemble_run(args, parser) - ##### - ASSEMBLE +def execute_assemble_run(args: argparse.Namespace, parser: argparse.ArgumentParser) -> None: + with TemporaryDirectory(suffix=get_temp_directory_suffix(args)) as temp_dir_name: + out_fjm_file = get_fjm_file_path(args, parser, temp_dir_name) + debug_file = get_debug_file_path(args, temp_dir_name) + fjm_file_to_run = args.files[0] if args.run else out_fjm_file - verbose_set = set() - if not args.silent: - verbose_set.add(Verbose.Time) + if not args.run: + assemble(out_fjm_file, debug_file, args, parser) + + if not args.asm: + run(fjm_file_to_run, debug_file, args, parser) - if not args.no_stl: - args.file = get_stl_paths() + args.file - for file in args.file: - file = abspath(file) - if not file.endswith('.fj'): - parser.error(f'file {file} is not a .fj file.') - if not isfile(abspath(file)): - parser.error(f'file {file} does not exist.') - - temp_assembled_file, temp_assembled_fd = False, 0 - if args.outfile is None: - temp_assembled_fd, args.outfile = mkstemp() - temp_assembled_file = True - else: - if not args.outfile.endswith('.fjm'): - parser.error(f'output file {args.outfile} is not a .fjm file.') - - temp_debug_file, temp_debug_fd = False, 0 - if args.debug is None and (len(args.breakpoint) > 0 or len(args.any_breakpoint) > 0): - print(f"Warning - breakpoints are used but the debugging flag (-d) is not specified. " - f"Debugging data will be saved.") - args.debug = True - if args.debug is True: - temp_debug_fd, args.debug = mkstemp() - temp_debug_file = True - - assemble(args.file, args.outfile, args.width, - version=args.version, flags=args.flags, - warning_as_errors=args.Werror, - show_statistics=args.stats, verbose=verbose_set, - debugging_file=args.debug) - - if temp_assembled_file: - os.close(temp_assembled_fd) - - - - ##### - RUN - - verbose_set = {Verbose.PrintOutput} - if not args.silent: - verbose_set.add(Verbose.Time) + +def run(fjm_file_to_run: Path, debug_file: Path, args: argparse.Namespace, parser: argparse.ArgumentParser) -> None: + verify_fjm_file(parser, fjm_file_to_run) + if debug_file: + verify_file_exists(parser, debug_file) + + verbose_set = get_run_verbose_set(args) breakpoint_set = set(args.breakpoint) - breakpoint_any_set = set(args.any_breakpoint) + breakpoint_contains_set = set(args.breakpoint_contains) try: termination_statistics = \ - debug_and_run(args.outfile, debugging_file=args.debug, - defined_input=None, - verbose=verbose_set, - breakpoint_labels=breakpoint_set, - breakpoint_any_labels=breakpoint_any_set) + fjm_run.debug_and_run(fjm_file_to_run, + debugging_file=debug_file, + defined_input=None, + verbose=verbose_set, + breakpoint_labels=breakpoint_set, + breakpoint_contains_labels=breakpoint_contains_set) if not args.silent: print(termination_statistics) except FJReadFjmException as e: @@ -96,8 +225,55 @@ def main(): print(e) exit(1) - if temp_debug_file: - os.close(temp_debug_fd) + +def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, parser: argparse.ArgumentParser) -> None: + file_tuples = get_file_tuples(args) + verify_fj_files(parser, file_tuples) + + assembler.assemble(file_tuples, out_fjm_file, args.width, + version=args.version, flags=args.flags, + warning_as_errors=args.werror, + show_statistics=args.stats, print_time=not args.silent, + debugging_file=debug_file) + + +def get_fjm_file_path(args: argparse.Namespace, parser: argparse.ArgumentParser, temp_dir_name: str) -> Path: + """ + get the output-fjm path from args. If unspecified, create a temporary file under temp_dir_name. + @param args: the parsed arguments + @param parser: the parser + @param temp_dir_name: a temporary directory that files can safely be created in + @return: the output-fjm path + """ + out_fjm_file = args.outfile + + if out_fjm_file is None: + if args.asm: + parser.error(f'assemble-only is used, but no outfile is specified.') + out_fjm_file = os.path.join(temp_dir_name, 'out.fjm') + elif not out_fjm_file.endswith('.fjm'): + parser.error(f'output file {out_fjm_file} is not a .fjm file.') + + return Path(out_fjm_file) + + +def get_debug_file_path(args, temp_dir_name): + debug_file = args.debug + debug_file_needed = not args.asm and any((args.breakpoint, args.breakpoint_contains)) + + if debug_file is None and debug_file_needed: + if not args.silent: + print(f"Parser Warning - breakpoints are used but the debugging flag (-d) is not specified. " + f"Debugging data will be saved.") + debug_file = True + + if debug_file is True: + debug_file = os.path.join(temp_dir_name, 'debug.fjd') + + if isinstance(debug_file, str): + debug_file = Path(debug_file) + + return debug_file if __name__ == '__main__': diff --git a/src/fj_parser.py b/src/fj_parser.py index 9bd5675..80e8b24 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -1,5 +1,6 @@ from os import path -from typing import Set +from pathlib import Path +from typing import Set, List, Tuple from sly import Lexer, Parser @@ -9,11 +10,11 @@ number_re, dot_id_re, id_re, string_re, \ CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, FJExprException -global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace, reserved_names +global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace, reserved_names def get_position(lineno: int): - return CodePosition(curr_file, curr_file_number, lineno) + return CodePosition(curr_file, curr_file_short_name, lineno) def syntax_error(lineno: int, msg=''): @@ -619,13 +620,13 @@ def exit_if_errors(): raise FJParsingException(f'Errors found in file {curr_file}. Assembly stopped.') -def parse_macro_tree(input_files, w, warning_as_errors): - global curr_file, curr_file_number, curr_text, error_occurred, curr_namespace +def parse_macro_tree(input_files: List[Tuple[str, Path]], w: int, warning_as_errors: bool): + global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace error_occurred = False lexer = FJLexer() parser = FJParser(w, warning_as_errors) - for curr_file_number, curr_file in enumerate(input_files, start=1): + for curr_file_short_name, curr_file in input_files: if not path.isfile(curr_file): raise FJParsingException(f"No such file {curr_file}.") curr_text = open(curr_file, 'r').read() diff --git a/src/fja.py b/src/fja.py deleted file mode 100644 index a66bc0e..0000000 --- a/src/fja.py +++ /dev/null @@ -1,49 +0,0 @@ -import argparse -from os.path import isfile, abspath - -from assembler import assemble -from defs import Verbose, FJException, get_stl_paths - - -def main(): - parser = argparse.ArgumentParser(description='Assemble FlipJump programs.') - parser.add_argument('file', help="the FlipJump files.", nargs='+') - parser.add_argument('-s', '--silent', help="don't show assemble times", action='store_true') - parser.add_argument('-o', '--outfile', help="output assembled file.", default="a.fjm") - parser.add_argument('--no-macros', help="output no-macros file.") - parser.add_argument('-d', '--debug', help="output debug file (used for breakpoints).") - parser.add_argument('-v', '--version', help="fjm version", type=int, default=0) - parser.add_argument('-f', '--flags', help="default running flags", type=int, default=0) - parser.add_argument('-w', '--width', help="specify memory-width. 64 by default.", - type=int, default=64, choices=[8, 16, 32, 64]) - parser.add_argument('--Werror', help="make all warnings into errors.", action='store_true') - parser.add_argument('--no-stl', help="don't assemble/link the standard library files.", action='store_true') - parser.add_argument('--stats', help="show macro usage statistics.", action='store_true') - args = parser.parse_args() - - verbose_set = set() - if not args.silent: - verbose_set.add(Verbose.Time) - - if not args.no_stl: - args.file = get_stl_paths() + args.file - for file in args.file: - file = abspath(file) - if not file.endswith('.fj'): - parser.error(f'file {file} is not a .fj file.') - if not isfile(abspath(file)): - parser.error(f'file {file} does not exist.') - try: - assemble(args.file, args.outfile, args.width, - version=args.version, flags=args.flags, - warning_as_errors=args.Werror, - show_statistics=args.stats, verbose=verbose_set, - preprocessed_file=args.no_macros, debugging_file=args.debug) - except FJException as e: - print() - print(e) - exit(1) - - -if __name__ == '__main__': - main() diff --git a/src/fji.py b/src/fji.py deleted file mode 100644 index 329d9ca..0000000 --- a/src/fji.py +++ /dev/null @@ -1,59 +0,0 @@ -import argparse -from os.path import isfile, abspath - -from fjm_run import debug_and_run -from defs import Verbose, FJReadFjmException - - -def main(): - parser = argparse.ArgumentParser(description='Run FlipJump programs.') - parser.add_argument('file', help="the FlipJump file.") - parser.add_argument('-s', '--silent', help="don't show run times", action='store_true') - parser.add_argument('-t', '--trace', help="trace the running opcodes.", action='store_true') - parser.add_argument('-f', '--flags', help="running flags", type=int, default=0) - parser.add_argument('-d', '--debug', help='debugging file') - parser.add_argument('-b', '--breakpoint', help="pause when reaching this label", - default=[], action='append') - parser.add_argument('-B', '--any_breakpoint', help="pause when reaching any label containing this", - default=[], action='append') - - args = parser.parse_args() - - verbose_set = {Verbose.PrintOutput} - if not args.silent: - verbose_set.add(Verbose.Time) - if args.trace: - verbose_set.add(Verbose.Run) - - file = abspath(args.file) - if not isfile(file): - parser.error(f'file {file} does not exist.') - if not file.endswith('.fjm'): - parser.error(f'file {file} is not a .fjm file.') - - if args.debug: - debug_file = abspath(args.debug) - if not isfile(debug_file): - parser.error(f'debug-file {debug_file} does not exist.') - - breakpoint_set = set(args.breakpoint) - breakpoint_any_set = set(args.any_breakpoint) - - try: - termination_statistics = \ - debug_and_run(file, debugging_file=args.debug, - defined_input=None, - verbose=verbose_set, - breakpoint_labels=breakpoint_set, - breakpoint_any_labels=breakpoint_any_set) - - if not args.silent: - print(termination_statistics) - except FJReadFjmException as e: - print() - print(e) - exit(1) - - -if __name__ == '__main__': - main() diff --git a/src/fjm_run.py b/src/fjm_run.py index ae04bd6..453650d 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -3,12 +3,12 @@ from pathlib import Path from time import time from sys import stdin, stdout -from typing import Optional, List, Dict, Set +from typing import Optional, List, Dict, Set, Tuple import easygui import fjm -from defs import Verbose, TerminationCause, PrintTimer +from defs import Verbose, TerminationCause, PrintTimer, get_nice_label_repr class BreakpointHandlerUnnecessary(Exception): @@ -21,7 +21,7 @@ def display_message_box_and_get_answer(msg: str, title: str, choices: List[str]) class BreakpointHandler: - def __init__(self, breakpoints: Set[int], address_to_label: Dict[int, str]): + def __init__(self, breakpoints: Dict[int, str], address_to_label: Dict[int, str]): self.breakpoints = breakpoints self.address_to_label = address_to_label @@ -33,20 +33,23 @@ def __init__(self, breakpoints: Set[int], address_to_label: Dict[int, str]): def should_break(self, ip: int, op_counter: int) -> bool: return self.next_break == op_counter or ip in self.breakpoints - def get_address_str(self, address: int): - if address in self.address_to_label: - return f'{hex(address)[2:]} ({self.address_to_label[address]})' - elif address in self.breakpoints: - return hex(address) + def get_address_str(self, address: int) -> str: + if address in self.breakpoints and self.breakpoints[address] is not None: + label_repr = get_nice_label_repr(self.breakpoints[address], pad=4) + return f'{hex(address)[2:]}:\n{label_repr}' + elif address in self.address_to_label: + label_repr = get_nice_label_repr(self.address_to_label[address], pad=4) + return f'{hex(address)[2:]}:\n{label_repr}' else: address_before = max([a for a in self.address_to_label if a <= address]) - return f'{hex(address)[2:]} ({self.address_to_label[address_before]} + {hex(address - address_before)})' + label_repr = get_nice_label_repr(self.address_to_label[address_before], pad=4) + return f'{hex(address)[2:]} ({hex(address - address_before)} after:)\n{label_repr}' def get_message_box_body(self, ip: int, mem: fjm.Reader, op_counter: int): address = self.get_address_str(ip) flip = self.get_address_str(mem.get_word(ip)) jump = self.get_address_str(mem.get_word(ip + mem.w)) - return f'Address {address} ({op_counter} ops executed):\n flip: {flip}.\n jump: {jump}.' + return f'Address {address}.\n\n{op_counter} ops executed.\n\nflip {flip}.\n\njump {jump}.' def query_user_for_debug_action(self, ip: int, mem: fjm.Reader, op_counter: int): title = "Breakpoint" if ip in self.breakpoints else "Debug Step" @@ -237,23 +240,30 @@ def handle_breakpoint(breakpoint_handler, ip, mem, statistics): def get_breakpoints(breakpoint_addresses: Optional[Set[int]], breakpoint_labels: Optional[Set[str]], - breakpoint_any_labels: Optional[Set[str]], - label_to_address: Dict[str, int]): - breakpoints = set(breakpoint_addresses) if breakpoint_labels else set() + breakpoint_contains_labels: Optional[Set[str]], + label_to_address: Dict[str, int])\ + -> Dict[int, str]: + breakpoints = {} - if breakpoint_labels is not None: + if breakpoint_addresses: + for address in breakpoint_addresses: + breakpoints[address] = None + + # TODO improve the speed of this part with suffix trees + if breakpoint_contains_labels: + for bcl in breakpoint_contains_labels: + for label in label_to_address: + if bcl in label: + address = label_to_address[label] + breakpoints[address] = label + + if breakpoint_labels: for bl in breakpoint_labels: if bl not in label_to_address: print(f"Warning: Breakpoint label {bl} can't be found!") else: - breakpoints.add(label_to_address[bl]) - - # TODO improve the speed of this part with suffix trees - if breakpoint_any_labels is not None: - for bal in breakpoint_any_labels: - for label in label_to_address: - if bal in label: - breakpoints.add(label_to_address[label]) + address = label_to_address[bl] + breakpoints[address] = bl return breakpoints @@ -273,17 +283,11 @@ def load_labels_dictionary(debugging_file, labels_file_needed): def debug_and_run(input_file, debugging_file=None, defined_input: Optional[bytes] = None, verbose=None, - breakpoint_addresses=None, breakpoint_labels=None, breakpoint_any_labels=None) -> TerminationStatistics: + breakpoint_addresses=None, breakpoint_labels=None, breakpoint_contains_labels=None) -> TerminationStatistics: if verbose is None: verbose = set() - labels_file_needed = breakpoint_addresses or breakpoint_any_labels - label_to_address = load_labels_dictionary(debugging_file, labels_file_needed) - - address_to_label = {label_to_address[label]: label for label in label_to_address} - breakpoints = get_breakpoints(breakpoint_addresses, breakpoint_labels, breakpoint_any_labels, label_to_address) - - breakpoint_handler = BreakpointHandler(breakpoints, address_to_label) if breakpoints else None + breakpoint_handler = get_breakpoint_handler(debugging_file, breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels) termination_statistics = run( input_file, defined_input=defined_input, @@ -293,3 +297,13 @@ def debug_and_run(input_file, debugging_file=None, breakpoint_handler=breakpoint_handler) return termination_statistics + + +def get_breakpoint_handler(debugging_file, breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels): + labels_file_needed = breakpoint_addresses or breakpoint_contains_labels + label_to_address = load_labels_dictionary(debugging_file, labels_file_needed) + + address_to_label = {label_to_address[label]: label for label in label_to_address} + breakpoints = get_breakpoints(breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels, label_to_address) + + return BreakpointHandler(breakpoints, address_to_label) if breakpoints else None diff --git a/src/preprocessor.py b/src/preprocessor.py index b67a2e6..9907c61 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -6,10 +6,7 @@ from defs import main_macro, wflip_start_label, new_label, \ SegmentEntry, Expr, FJPreprocessorException, \ CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ - FlipJump, WordFlip, Label, Segment, Reserve, LastPhaseOp - -macro_separator_string = "---" - + FlipJump, WordFlip, Label, Segment, Reserve, LastPhaseOp, macro_separator_string CurrTree = Deque[Union[MacroCall, RepCall]] diff --git a/tests/test_fj.py b/tests/test_fj.py index 6d519a2..da3b3f2 100644 --- a/tests/test_fj.py +++ b/tests/test_fj.py @@ -42,7 +42,8 @@ def __init__(self, test_name: str, fj_paths: str, fjm_out_path: str, included_files = get_stl_paths() if self.use_stl else [] fj_paths_list = map(str.strip, fj_paths.split('|')) fj_absolute_paths_list = [ROOT_PATH / fj_path for fj_path in fj_paths_list] - self.fj_files = included_files + fj_absolute_paths_list + fj_files = included_files + fj_absolute_paths_list + self.fj_files_tuples = [('', path) for path in fj_files] self.fjm_out_path = ROOT_PATH / fjm_out_path @@ -71,10 +72,9 @@ def test_compile(compile_args: CompileTestArgs) -> None: create_parent_directories(compile_args.fjm_out_path) - assembler.assemble(compile_args.fj_files, compile_args.fjm_out_path, compile_args.word_size, + assembler.assemble(compile_args.fj_files_tuples, compile_args.fjm_out_path, compile_args.word_size, version=compile_args.version, flags=compile_args.flags, - warning_as_errors=compile_args.warning_as_errors, - verbose={Verbose.Time}) + warning_as_errors=compile_args.warning_as_errors) class RunTestArgs: From 2f588f3163619571ee7061e7a16700f55244b08c Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 16 Jul 2022 11:32:25 +0300 Subject: [PATCH 23/66] functionalize and document fj.py --- src/assembler.py | 2 +- src/fj.py | 250 ++++++++++++++++++++++++++++------------------- src/fjm_run.py | 2 +- 3 files changed, 154 insertions(+), 100 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index c2685b2..83330c1 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -5,7 +5,7 @@ import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from defs import Verbose, SegmentEntry, FJAssemblerException, PrintTimer, FlipJump, WordFlip, \ +from defs import SegmentEntry, FJAssemblerException, PrintTimer, FlipJump, WordFlip, \ FJException, Segment, Reserve, BoundaryAddressesList, Expr, LastPhaseOp diff --git a/src/fj.py b/src/fj.py index dfc5809..7726979 100644 --- a/src/fj.py +++ b/src/fj.py @@ -1,14 +1,17 @@ import os import argparse from pathlib import Path -from tempfile import mkstemp, TemporaryDirectory -from typing import Tuple, List, Set +from tempfile import TemporaryDirectory +from typing import Tuple, List, Set, Callable import assembler import fjm_run from defs import Verbose, FJReadFjmException, get_stl_paths +ErrorFunc = Callable[[str], None] + + def get_run_verbose_set(args: argparse.Namespace) -> Set[Verbose]: """ extract the running verbose-options into a verbose-set. @@ -54,37 +57,155 @@ def get_file_tuples(args: argparse.Namespace) -> List[Tuple[str, Path]]: return file_tuples -def verify_file_exists(parser: argparse.ArgumentParser, path: Path) -> None: +def verify_file_exists(error_func: ErrorFunc, path: Path) -> None: """ verify that the file exists. - @param parser: the parser + @param error_func: the parser's error function @param path: the file's path """ if not path.is_file(): - parser.error(f'file {path} does not exist.') + error_func(f'file {path} does not exist.') -def verify_fj_files(parser: argparse.ArgumentParser, file_tuples: List[Tuple[str, Path]]) -> None: +def verify_fj_files(error_func: ErrorFunc, file_tuples: List[Tuple[str, Path]]) -> None: """ verify that all files exist and with the right suffix. - @param parser: the parser + @param error_func: the parser's error function @param file_tuples: a list of file-tuples - (file_short_name, file_path) """ for _, path in file_tuples: - verify_file_exists(parser, path) + verify_file_exists(error_func, path) if '.fj' != path.suffix: - parser.error(f'file {path} is not a .fj file.') + error_func(f'file {path} is not a .fj file.') -def verify_fjm_file(parser: argparse.ArgumentParser, path: Path) -> None: +def verify_fjm_file(error_func: ErrorFunc, path: Path) -> None: """ verify that this file exists and with the right suffix. - @param parser: the parser + @param error_func: the parser's error function @param path: the file's path """ - verify_file_exists(parser, path) + verify_file_exists(error_func, path) if '.fjm' != path.suffix: - parser.error(f'file {path} is not a .fjm file.') + error_func(f'file {path} is not a .fjm file.') + + +def get_files_paths(args: argparse.Namespace, error_func: ErrorFunc, temp_dir_name: str) -> Tuple[Path, Path, Path]: + """ + generate the files paths from args, and create temp paths under temp_dir_name if necessary. + @param args: the parsed arguments + @param error_func: parser's error function + @param temp_dir_name: the temp directory's name + @return: the path of the debug-file, the (to-be-compiled) fjm, and the input fjm + """ + out_fjm_path = get_fjm_file_path(args, error_func, temp_dir_name) + debug_path = get_debug_file_path(args, error_func, temp_dir_name) + in_fjm_path = args.files[0] if args.run else out_fjm_path + + return debug_path, in_fjm_path, out_fjm_path + + +def run(in_fjm_path: Path, debug_file: Path, args: argparse.Namespace, error_func: ErrorFunc) -> None: + """ + prepare and verify arguments, and run the .fjm program. + @param in_fjm_path: the input .fjm-file path + @param debug_file: the debug-file path + @param args: the parsed arguments + @param error_func: the parser's error function + """ + verify_fjm_file(error_func, in_fjm_path) + if debug_file: + verify_file_exists(error_func, debug_file) + + verbose_set = get_run_verbose_set(args) + + breakpoint_set = set(args.breakpoint) + breakpoint_contains_set = set(args.breakpoint_contains) + + try: + termination_statistics = \ + fjm_run.debug_and_run(in_fjm_path, + debugging_file=debug_file, + defined_input=None, + verbose=verbose_set, + breakpoint_labels=breakpoint_set, + breakpoint_contains_labels=breakpoint_contains_set) + if not args.silent: + print(termination_statistics) + except FJReadFjmException as e: + print() + print(e) + exit(1) + + +def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, error_func: ErrorFunc) -> None: + """ + prepare and verify arguments, and assemble the .fj files. + @param out_fjm_file: the to-be-compiled .fjm-file path + @param debug_file: the debug-file path + @param args: the parsed arguments + @param error_func: the parser's error function + """ + file_tuples = get_file_tuples(args) + verify_fj_files(error_func, file_tuples) + + assembler.assemble(file_tuples, out_fjm_file, args.width, + version=args.version, flags=args.flags, + warning_as_errors=args.werror, + show_statistics=args.stats, print_time=not args.silent, + debugging_file=debug_file) + + +def get_fjm_file_path(args: argparse.Namespace, error_func: ErrorFunc, temp_dir_name: str) -> Path: + """ + get the output-fjm path from args. If unspecified, create a temporary file under temp_dir_name. + @param args: the parsed arguments + @param error_func: the parser's error function + @param temp_dir_name: a temporary directory that files can safely be created in + @return: the output-fjm path + """ + out_fjm_file = args.outfile + + if out_fjm_file is None: + if args.asm: + error_func(f'assemble-only is used, but no outfile is specified.') + out_fjm_file = os.path.join(temp_dir_name, 'out.fjm') + elif not args.run and not out_fjm_file.endswith('.fjm'): + error_func(f'output file {out_fjm_file} is not a .fjm file.') + + return Path(out_fjm_file) + + +def get_debug_file_path(args: argparse.Namespace, error_func: ErrorFunc, temp_dir_name: str) -> Path: + """ + get the debug-file path from args. If unspecified, create a temporary file under temp_dir_name. + @param args: the parsed arguments + @param error_func: the parser's error function + @param temp_dir_name: a temporary directory that files can safely be created in + @return: the debug-file path + """ + debug_file = args.debug + debug_file_needed = not args.asm and any((args.breakpoint, args.breakpoint_contains)) + + if debug_file is None and debug_file_needed: + if not args.silent: + parser_warning = 'Parser Warning - breakpoints are used but the debugging flag (-d) is not specified.' + if args.werror: + error_func(parser_warning) + print(f"{parser_warning} Debugging data will be saved.") + debug_file = True + + if debug_file is True: + if args.asm: + error_func('assemble-only is used with the debug flag, but no debug file is specified.') + if args.run: + error_func('run-only is used with the debug flag, but no debug file is specified.') + debug_file = os.path.join(temp_dir_name, 'debug.fjd') + + if isinstance(debug_file, str): + debug_file = Path(debug_file) + + return debug_file def add_run_only_arguments(parser: argparse.ArgumentParser) -> None: @@ -176,104 +297,37 @@ def get_argument_parser() -> argparse.ArgumentParser: ) -def main(): - # TODO document and move up fj.py - # TODO remove mkstemp from all directories - +def parse_arguments() -> Tuple[argparse.Namespace, ErrorFunc]: + """ + parse the command line arguments. + @return: the parsed arguments, and the parser's error function + """ parser = get_argument_parser() add_arguments(parser) args = parser.parse_args() - execute_assemble_run(args, parser) - - -def execute_assemble_run(args: argparse.Namespace, parser: argparse.ArgumentParser) -> None: - with TemporaryDirectory(suffix=get_temp_directory_suffix(args)) as temp_dir_name: - out_fjm_file = get_fjm_file_path(args, parser, temp_dir_name) - debug_file = get_debug_file_path(args, temp_dir_name) - fjm_file_to_run = args.files[0] if args.run else out_fjm_file - - if not args.run: - assemble(out_fjm_file, debug_file, args, parser) - - if not args.asm: - run(fjm_file_to_run, debug_file, args, parser) - + return args, parser.error -def run(fjm_file_to_run: Path, debug_file: Path, args: argparse.Namespace, parser: argparse.ArgumentParser) -> None: - verify_fjm_file(parser, fjm_file_to_run) - if debug_file: - verify_file_exists(parser, debug_file) - - verbose_set = get_run_verbose_set(args) - - breakpoint_set = set(args.breakpoint) - breakpoint_contains_set = set(args.breakpoint_contains) - try: - termination_statistics = \ - fjm_run.debug_and_run(fjm_file_to_run, - debugging_file=debug_file, - defined_input=None, - verbose=verbose_set, - breakpoint_labels=breakpoint_set, - breakpoint_contains_labels=breakpoint_contains_set) - if not args.silent: - print(termination_statistics) - except FJReadFjmException as e: - print() - print(e) - exit(1) - - -def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, parser: argparse.ArgumentParser) -> None: - file_tuples = get_file_tuples(args) - verify_fj_files(parser, file_tuples) - - assembler.assemble(file_tuples, out_fjm_file, args.width, - version=args.version, flags=args.flags, - warning_as_errors=args.werror, - show_statistics=args.stats, print_time=not args.silent, - debugging_file=debug_file) - - -def get_fjm_file_path(args: argparse.Namespace, parser: argparse.ArgumentParser, temp_dir_name: str) -> Path: +def execute_assemble_run(args: argparse.Namespace, error_func: ErrorFunc) -> None: """ - get the output-fjm path from args. If unspecified, create a temporary file under temp_dir_name. + prepare temp files, and execute the run and assemble functions. @param args: the parsed arguments - @param parser: the parser - @param temp_dir_name: a temporary directory that files can safely be created in - @return: the output-fjm path + @param error_func: parser's error function """ - out_fjm_file = args.outfile - - if out_fjm_file is None: - if args.asm: - parser.error(f'assemble-only is used, but no outfile is specified.') - out_fjm_file = os.path.join(temp_dir_name, 'out.fjm') - elif not out_fjm_file.endswith('.fjm'): - parser.error(f'output file {out_fjm_file} is not a .fjm file.') - - return Path(out_fjm_file) - - -def get_debug_file_path(args, temp_dir_name): - debug_file = args.debug - debug_file_needed = not args.asm and any((args.breakpoint, args.breakpoint_contains)) + with TemporaryDirectory(suffix=get_temp_directory_suffix(args)) as temp_dir_name: + debug_path, in_fjm_path, out_fjm_path = get_files_paths(args, error_func, temp_dir_name) - if debug_file is None and debug_file_needed: - if not args.silent: - print(f"Parser Warning - breakpoints are used but the debugging flag (-d) is not specified. " - f"Debugging data will be saved.") - debug_file = True + if not args.run: + assemble(out_fjm_path, debug_path, args, error_func) - if debug_file is True: - debug_file = os.path.join(temp_dir_name, 'debug.fjd') + if not args.asm: + run(in_fjm_path, debug_path, args, error_func) - if isinstance(debug_file, str): - debug_file = Path(debug_file) - return debug_file +def main() -> None: + args, error_func = parse_arguments() + execute_assemble_run(args, error_func) if __name__ == '__main__': diff --git a/src/fjm_run.py b/src/fjm_run.py index 453650d..cde5bc0 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -3,7 +3,7 @@ from pathlib import Path from time import time from sys import stdin, stdout -from typing import Optional, List, Dict, Set, Tuple +from typing import Optional, List, Dict, Set import easygui From a6d5c68b06ac4b6821bc14a24603584a78ebcf55 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 16 Jul 2022 13:58:57 +0300 Subject: [PATCH 24/66] split fjm_run into breakpoints, refactored and documented --- src/breakpoints.py | 199 +++++++++++++++++++++++++++++++++++++++ src/fjm_run.py | 220 +++++++++++++------------------------------- src/preprocessor.py | 5 +- 3 files changed, 265 insertions(+), 159 deletions(-) create mode 100644 src/breakpoints.py diff --git a/src/breakpoints.py b/src/breakpoints.py new file mode 100644 index 0000000..74cb2fe --- /dev/null +++ b/src/breakpoints.py @@ -0,0 +1,199 @@ +import pickle +from os import path +from pathlib import Path +from typing import Optional, List, Dict, Set + +import easygui + +import fjm +from defs import get_nice_label_repr + + +class BreakpointHandlerUnnecessary(Exception): + pass + + +def display_message_box_and_get_answer(msg: str, title: str, choices: List[str]) -> str: + # TODO deprecated warning. use another gui (tkinter? seems not so simple) + return easygui.buttonbox(msg, title, choices) + + +class BreakpointHandler: + """ + Handle breakpoints (know when breakpoints happen, query user for action). + """ + def __init__(self, breakpoints: Dict[int, str], address_to_label: Dict[int, str]): + self.breakpoints = breakpoints + self.address_to_label = address_to_label + + if 0 not in self.address_to_label: + self.address_to_label[0] = 'memory_start_0x0000' + + self.next_break = None + + def should_break(self, ip: int, op_counter: int) -> bool: + return self.next_break == op_counter or ip in self.breakpoints + + def get_address_str(self, address: int) -> str: + if address in self.breakpoints and self.breakpoints[address] is not None: + label_repr = get_nice_label_repr(self.breakpoints[address], pad=4) + return f'{hex(address)[2:]}:\n{label_repr}' + elif address in self.address_to_label: + label_repr = get_nice_label_repr(self.address_to_label[address], pad=4) + return f'{hex(address)[2:]}:\n{label_repr}' + else: + address_before = max([a for a in self.address_to_label if a <= address]) + label_repr = get_nice_label_repr(self.address_to_label[address_before], pad=4) + return f'{hex(address)[2:]} ({hex(address - address_before)} after:)\n{label_repr}' + + def get_message_box_body(self, ip: int, mem: fjm.Reader, op_counter: int) -> str: + address = self.get_address_str(ip) + flip = self.get_address_str(mem.get_word(ip)) + jump = self.get_address_str(mem.get_word(ip + mem.w)) + return f'Address {address}.\n\n{op_counter} ops executed.\n\nflip {flip}.\n\njump {jump}.' + + def query_user_for_debug_action(self, ip: int, mem: fjm.Reader, op_counter: int) -> str: + title = "Breakpoint" if ip in self.breakpoints else "Debug Step" + body = self.get_message_box_body(ip, mem, op_counter) + actions = ['Single Step', 'Skip 10', 'Skip 100', 'Skip 1000', 'Continue', 'Continue All'] + + action = display_message_box_and_get_answer(body, title, actions) + if action is None: + action = 'Continue All' + return action + + def apply_debug_action(self, action: str, op_counter: int) -> None: + """ + @raise BreakpointHandlerUnnecessary for the "Continue All" action + """ + if action == 'Single Step': + self.next_break = op_counter + 1 + elif action == 'Skip 10': + self.next_break = op_counter + 10 + elif action == 'Skip 100': + self.next_break = op_counter + 100 + elif action == 'Skip 1000': + self.next_break = op_counter + 1000 + elif action == 'Continue': + self.next_break = None + elif action == 'Continue All': + self.next_break = None + raise BreakpointHandlerUnnecessary() + + +def handle_breakpoint(breakpoint_handler: BreakpointHandler, ip: int, mem: fjm.Reader, statistics: 'RunStatistics') \ + -> BreakpointHandler: + """ + show debug message, query user for action, apply its action. + @param breakpoint_handler: the breakpoint handler + @param ip: current ip + @param mem: the memory + @param statistics: the statistics of the current run + @return: the breakpoint handler (or None if it is not necessary anymore) + """ + print(' program break', end="", flush=True) + with statistics.pause_timer: + action = breakpoint_handler.query_user_for_debug_action(ip, mem, statistics.op_counter) + print(f': {action}') + + try: + breakpoint_handler.apply_debug_action(action, statistics.op_counter) + except BreakpointHandlerUnnecessary: + breakpoint_handler = None + + return breakpoint_handler + + +def get_breakpoints(breakpoint_addresses: Optional[Set[int]], + breakpoint_labels: Optional[Set[str]], + breakpoint_contains_labels: Optional[Set[str]], + label_to_address: Dict[str, int])\ + -> Dict[int, str]: + """ + generate the breakpoints' dictionary + """ + breakpoints = {} + + update_breakpoints_from_addresses_set(breakpoint_addresses, breakpoints) + update_breakpoints_from_breakpoint_contains_set(breakpoint_contains_labels, breakpoints, label_to_address) + update_breakpoints_from_breakpoint_set(breakpoint_labels, breakpoints, label_to_address) + + return breakpoints + + +def update_breakpoints_from_breakpoint_set(breakpoint_labels: Optional[Set[str]], + breakpoints: Dict[int, Optional[str]], + label_to_address: Dict[str, int]) -> None: + """ + add breakpoints from breakpoint_labels. + @param breakpoints[in,out] - adds breakpoints to it + """ + if breakpoint_labels: + for bl in breakpoint_labels: + if bl not in label_to_address: + print(f"Warning: Breakpoint label {bl} can't be found!") + else: + address = label_to_address[bl] + breakpoints[address] = bl + + +def update_breakpoints_from_breakpoint_contains_set(breakpoint_contains_labels: Optional[Set[str]], + breakpoints: Dict[int, Optional[str]], + label_to_address: Dict[str, int]) -> None: + """ + add breakpoints generated with breakpoint_contains_labels. + @param breakpoints[in,out] - adds breakpoints to it + """ + # TODO improve the speed of this part with suffix trees + if breakpoint_contains_labels: + for bcl in breakpoint_contains_labels: + for label in label_to_address: + if bcl in label: + address = label_to_address[label] + breakpoints[address] = label + + +def update_breakpoints_from_addresses_set(breakpoint_addresses: Optional[Set[int]], + breakpoints: Dict[int, Optional[str]]) -> None: + """ + add breakpoints of addresses breakpoint_addresses. + @param breakpoints[in,out] - adds breakpoints to it + """ + if breakpoint_addresses: + for address in breakpoint_addresses: + breakpoints[address] = None + + +def load_labels_dictionary(debugging_file: Path, labels_file_needed: bool) -> Dict[str, int]: + """ + load the labels_dictionary from debugging_file, if possible. + """ + label_to_address = [] + if debugging_file is not None: + if path.isfile(debugging_file): + with open(debugging_file, 'rb') as f: + label_to_address = pickle.load(f) + else: + print(f"Warning: debugging file {debugging_file} can't be found!") + elif labels_file_needed: + print(f"Warning: debugging labels can't be found! no debugging file specified.") + return label_to_address + + +def get_breakpoint_handler(debugging_file: Path, breakpoint_addresses: Set[int], breakpoint_labels: Set[str], + breakpoint_contains_labels: Set[str]) -> Optional[BreakpointHandler]: + """ + generate the breakpoint handler from the debugging file and the breakpoint sets. + @param debugging_file: the debug file path (created at assemble time) + @param breakpoint_addresses: set of addresses to break at + @param breakpoint_labels: set of labels to break at + @param breakpoint_contains_labels: set of strings, to break at every label that contains one of them + @return: the breakpoint handler + """ + labels_file_needed = any((breakpoint_addresses, breakpoint_contains_labels)) + label_to_address = load_labels_dictionary(debugging_file, labels_file_needed) + + address_to_label = {label_to_address[label]: label for label in label_to_address} + breakpoints = get_breakpoints(breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels, label_to_address) + + return BreakpointHandler(breakpoints, address_to_label) if breakpoints else None diff --git a/src/fjm_run.py b/src/fjm_run.py index cde5bc0..959742a 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -1,83 +1,17 @@ -import pickle -from os import path from pathlib import Path from time import time from sys import stdin, stdout -from typing import Optional, List, Dict, Set - -import easygui +from typing import Optional, Set import fjm -from defs import Verbose, TerminationCause, PrintTimer, get_nice_label_repr - - -class BreakpointHandlerUnnecessary(Exception): - pass - - -def display_message_box_and_get_answer(msg: str, title: str, choices: List[str]) -> str: - # TODO deprecated warning. use another gui (tkinter? seems not so simple) - return easygui.buttonbox(msg, title, choices) - - -class BreakpointHandler: - def __init__(self, breakpoints: Dict[int, str], address_to_label: Dict[int, str]): - self.breakpoints = breakpoints - self.address_to_label = address_to_label - - if 0 not in self.address_to_label: - self.address_to_label[0] = 'memory_start_0x0000' - - self.next_break = None - - def should_break(self, ip: int, op_counter: int) -> bool: - return self.next_break == op_counter or ip in self.breakpoints - - def get_address_str(self, address: int) -> str: - if address in self.breakpoints and self.breakpoints[address] is not None: - label_repr = get_nice_label_repr(self.breakpoints[address], pad=4) - return f'{hex(address)[2:]}:\n{label_repr}' - elif address in self.address_to_label: - label_repr = get_nice_label_repr(self.address_to_label[address], pad=4) - return f'{hex(address)[2:]}:\n{label_repr}' - else: - address_before = max([a for a in self.address_to_label if a <= address]) - label_repr = get_nice_label_repr(self.address_to_label[address_before], pad=4) - return f'{hex(address)[2:]} ({hex(address - address_before)} after:)\n{label_repr}' - - def get_message_box_body(self, ip: int, mem: fjm.Reader, op_counter: int): - address = self.get_address_str(ip) - flip = self.get_address_str(mem.get_word(ip)) - jump = self.get_address_str(mem.get_word(ip + mem.w)) - return f'Address {address}.\n\n{op_counter} ops executed.\n\nflip {flip}.\n\njump {jump}.' - - def query_user_for_debug_action(self, ip: int, mem: fjm.Reader, op_counter: int): - title = "Breakpoint" if ip in self.breakpoints else "Debug Step" - body = self.get_message_box_body(ip, mem, op_counter) - actions = ['Single Step', 'Skip 10', 'Skip 100', 'Skip 1000', 'Continue', 'Continue All'] - - action = display_message_box_and_get_answer(body, title, actions) - if action is None: - action = 'Continue All' - return action - - def apply_debug_action(self, action: str, op_counter: int): - if action == 'Single Step': - self.next_break = op_counter + 1 - elif action == 'Skip 10': - self.next_break = op_counter + 10 - elif action == 'Skip 100': - self.next_break = op_counter + 100 - elif action == 'Skip 1000': - self.next_break = op_counter + 1000 - elif action == 'Continue': - self.next_break = None - elif action == 'Continue All': - self.next_break = None - raise BreakpointHandlerUnnecessary() +from defs import Verbose, TerminationCause, PrintTimer +from breakpoints import BreakpointHandler, handle_breakpoint, get_breakpoint_handler class RunStatistics: + """ + maintains times and counters of the current run. + """ class PauseTimer: def __init__(self): self.paused_time = 0 @@ -111,6 +45,10 @@ def register_op(self, ip: int, flip_address: int, jump_address: int) -> None: class TerminationStatistics: + """ + saves the run-statistics and data of the fj program-termination, to be presented nicely. + also saves the program's output. + """ def __init__(self, run_statistics: RunStatistics, standard_output: bytes, termination_cause: TerminationCause): self.run_time = run_statistics.get_run_time() @@ -135,10 +73,20 @@ def __str__(self): def run(fjm_path: Path, *, breakpoint_handler: Optional[BreakpointHandler] = None, defined_input: Optional[bytes] = None, - verbose: bool = False, + show_trace: bool = False, time_verbose: bool = False, - output_verbose: bool = False): - + output_verbose: bool = True) \ + -> TerminationStatistics: + """ + run a .fjm file (a FlipJump interpreter) + @param fjm_path: the path to the .fjm file + @param breakpoint_handler: the breakpoint handler + @param defined_input: fixed-input, or None for stdin + @param show_trace: if true print every opcode executed + @param time_verbose: if true print running times + @param output_verbose: if true print program's output + @return: the run's termination-statistics + """ with PrintTimer(' loading memory: ', print_time=time_verbose): mem = fjm.Reader(fjm_path) @@ -160,8 +108,8 @@ def run(fjm_path: Path, *, breakpoint_handler = handle_breakpoint(breakpoint_handler, ip, mem, statistics) flip_address = mem.get_word(ip) - if verbose: - print(f'{hex(ip)[2:].rjust(7)}: {hex(flip_address)[2:]}', end='; ', flush=True) + + trace_flip(ip, flip_address, show_trace) # handle output if out_addr <= flip_address <= out_addr+1: @@ -171,7 +119,7 @@ def run(fjm_path: Path, *, if output_size == 8: output += output_byte if output_verbose: - if verbose: + if show_trace: for _ in range(3): print() print(f'Outputted Char: ', end='') @@ -197,7 +145,8 @@ def run(fjm_path: Path, *, else: if output_verbose and output_anything_yet: print() - return TerminationStatistics(statistics, output, TerminationCause.Input) # Reading a null input byte + # Reading a null input byte + return TerminationStatistics(statistics, output, TerminationCause.Input) input_size = 8 mem.write_bit(in_addr, input_char & 1) input_char = input_char >> 1 @@ -209,8 +158,7 @@ def run(fjm_path: Path, *, statistics.register_op(ip, flip_address, jump_address) - if verbose: - print(hex(jump_address)[2:]) + trace_jump(jump_address, show_trace) if jump_address == ip and not ip <= flip_address < ip+2*w: if output_verbose and output_anything_yet and breakpoint_handler: @@ -224,86 +172,44 @@ def run(fjm_path: Path, *, ip = jump_address # Jump! -def handle_breakpoint(breakpoint_handler, ip, mem, statistics): - print(' program break', end="", flush=True) - with statistics.pause_timer: - action = breakpoint_handler.query_user_for_debug_action(ip, mem, statistics.op_counter) - print(f': {action}') - - try: - breakpoint_handler.apply_debug_action(action, statistics.op_counter) - except BreakpointHandlerUnnecessary: - breakpoint_handler = None - - return breakpoint_handler - - -def get_breakpoints(breakpoint_addresses: Optional[Set[int]], - breakpoint_labels: Optional[Set[str]], - breakpoint_contains_labels: Optional[Set[str]], - label_to_address: Dict[str, int])\ - -> Dict[int, str]: - breakpoints = {} - - if breakpoint_addresses: - for address in breakpoint_addresses: - breakpoints[address] = None - - # TODO improve the speed of this part with suffix trees - if breakpoint_contains_labels: - for bcl in breakpoint_contains_labels: - for label in label_to_address: - if bcl in label: - address = label_to_address[label] - breakpoints[address] = label - - if breakpoint_labels: - for bl in breakpoint_labels: - if bl not in label_to_address: - print(f"Warning: Breakpoint label {bl} can't be found!") - else: - address = label_to_address[bl] - breakpoints[address] = bl - - return breakpoints - - -def load_labels_dictionary(debugging_file, labels_file_needed): - label_to_address = [] - if debugging_file is not None: - if path.isfile(debugging_file): - with open(debugging_file, 'rb') as f: - label_to_address = pickle.load(f) - else: - print(f"Warning: debugging file {debugging_file} can't be found!") - elif labels_file_needed: - print(f"Warning: debugging labels can't be found! no debugging file specified.") - return label_to_address - - -def debug_and_run(input_file, debugging_file=None, - defined_input: Optional[bytes] = None, verbose=None, - breakpoint_addresses=None, breakpoint_labels=None, breakpoint_contains_labels=None) -> TerminationStatistics: - if verbose is None: - verbose = set() - - breakpoint_handler = get_breakpoint_handler(debugging_file, breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels) +def trace_jump(jump_address: int, show_trace: bool) -> None: + if show_trace: + print(hex(jump_address)[2:]) + + +def trace_flip(ip: int, flip_address: int, show_trace: bool) -> None: + if show_trace: + print(hex(ip)[2:].rjust(7), end=': ') + print(hex(flip_address)[2:], end='; ', flush=True) + + +def debug_and_run(fjm_path: Path, + verbose: Set[Verbose], + debugging_file: Path = None, + defined_input: Optional[bytes] = None, + breakpoint_addresses: Optional[Set[int]] = None, + breakpoint_labels: Optional[Set[str]] = None, + breakpoint_contains_labels: Optional[Set[str]] = None) \ + -> TerminationStatistics: + """ + run a .fjm file with a breakpoint_handler (a FlipJump interpreter & debugger) + @param fjm_path: the path to the .fjm file + @param verbose: the verbose option set (out of Run,Time,PrintOutput) + @param debugging_file: the debug file path (created at assemble time) + @param defined_input: fixed-input, or None for stdin + @param breakpoint_addresses: set of addresses to break at + @param breakpoint_labels: set of labels to break at + @param breakpoint_contains_labels: set of strings, to break at every label that contains one of them + @return: the run's termination-statistics + """ + breakpoint_handler = get_breakpoint_handler( + debugging_file, breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels) termination_statistics = run( - input_file, defined_input=defined_input, - verbose=Verbose.Run in verbose, + fjm_path, defined_input=defined_input, + show_trace=Verbose.Run in verbose, time_verbose=Verbose.Time in verbose, output_verbose=Verbose.PrintOutput in verbose, breakpoint_handler=breakpoint_handler) return termination_statistics - - -def get_breakpoint_handler(debugging_file, breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels): - labels_file_needed = breakpoint_addresses or breakpoint_contains_labels - label_to_address = load_labels_dictionary(debugging_file, labels_file_needed) - - address_to_label = {label_to_address[label]: label for label in label_to_address} - breakpoints = get_breakpoints(breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels, label_to_address) - - return BreakpointHandler(breakpoints, address_to_label) if breakpoints else None diff --git a/src/preprocessor.py b/src/preprocessor.py index 9907c61..f0fb5cc 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -89,7 +89,8 @@ def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool def resolve_macro_aux(w: int, macro_path: str, curr_tree: CurrTree, macros: Dict[MacroName, Macro], macro_name: MacroName, args: Iterable[Expr], macro_code_size: Dict[str, int], - labels: Dict[str, Expr], result_ops: Deque[LastPhaseOp], boundary_addresses: BoundaryAddressesList, + labels: Dict[str, Expr], result_ops: Deque[LastPhaseOp], + boundary_addresses: BoundaryAddressesList, curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], code_position: CodePosition = None)\ -> None: @@ -133,7 +134,7 @@ def resolve_macro_aux(w: int, macro_path: str, curr_tree: CurrTree, macros: Dict if times == 0: continue next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ - f"{op.code_position.short_str()}:rep{{}}:{op.macro_name}" + f"{op.code_position.short_str()}:rep{{}}:{op.macro_name}" for i in range(times): curr_tree.append(op) resolve_macro_aux(w, next_macro_path.format(i), curr_tree, macros, From 4262239b201643070775af4fa3bc8cfb9c46802a Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 16 Jul 2022 19:25:08 +0300 Subject: [PATCH 25/66] added standard/fixed, run works with DeviceIO passes tests --- src/defs.py | 13 ++-- src/fj.py | 33 ++------- src/fjm_run.py | 139 +++++++++++++++-------------------- src/io_devices/BrokenIO.py | 13 ++-- src/io_devices/FixedIO.py | 51 +++++++++++++ src/io_devices/IODevice.py | 11 +-- src/io_devices/StandardIO.py | 43 ++++++----- tests/test_fj.py | 11 +-- 8 files changed, 163 insertions(+), 151 deletions(-) create mode 100644 src/io_devices/FixedIO.py diff --git a/src/defs.py b/src/defs.py index bc4fca6..84e0032 100644 --- a/src/defs.py +++ b/src/defs.py @@ -90,19 +90,13 @@ def get_char_value_and_length(s: str) -> Tuple[int, int]: return int(s[2:4], 16), 4 -class Verbose(IntEnum): - Run = 1 - Time = 2 - PrintOutput = 3 - - class TerminationCause(IntEnum): Looping = 0 - Input = 1 + EOF = 1 NullIP = 2 def __str__(self) -> str: - return ['looping', 'input', 'ip<2w'][self.value] + return ['looping', 'EOF', 'ip<2w'][self.value] class SegmentEntry(IntEnum): @@ -472,3 +466,6 @@ def new_label(macro_path: str, label_name: str) -> Expr: def next_address() -> Expr: return Expr('$') + + +bytes_encoding = 'raw_unicode_escape' diff --git a/src/fj.py b/src/fj.py index 7726979..bea64e1 100644 --- a/src/fj.py +++ b/src/fj.py @@ -6,30 +6,12 @@ import assembler import fjm_run -from defs import Verbose, FJReadFjmException, get_stl_paths - +from defs import FJReadFjmException, get_stl_paths +from src.io_devices.StandardIO import StandardIO ErrorFunc = Callable[[str], None] -def get_run_verbose_set(args: argparse.Namespace) -> Set[Verbose]: - """ - extract the running verbose-options into a verbose-set. - @param args: the parsed arguments - @return: the verbose-set - """ - verbose_set = set() - - if not args.silent: - verbose_set.add(Verbose.Time) - if not args.no_output: - verbose_set.add(Verbose.PrintOutput) - if args.trace: - verbose_set.add(Verbose.Run) - - return verbose_set - - def get_temp_directory_suffix(args: argparse.Namespace) -> str: """ create a suffix for the temp directory name, using args. @@ -107,7 +89,7 @@ def get_files_paths(args: argparse.Namespace, error_func: ErrorFunc, temp_dir_na def run(in_fjm_path: Path, debug_file: Path, args: argparse.Namespace, error_func: ErrorFunc) -> None: """ - prepare and verify arguments, and run the .fjm program. + prepare and verify arguments and io_device, and run the .fjm program. @param in_fjm_path: the input .fjm-file path @param debug_file: the debug-file path @param args: the parsed arguments @@ -117,17 +99,18 @@ def run(in_fjm_path: Path, debug_file: Path, args: argparse.Namespace, error_fun if debug_file: verify_file_exists(error_func, debug_file) - verbose_set = get_run_verbose_set(args) - breakpoint_set = set(args.breakpoint) breakpoint_contains_set = set(args.breakpoint_contains) + io_device = StandardIO(not args.no_output) + try: termination_statistics = \ fjm_run.debug_and_run(in_fjm_path, debugging_file=debug_file, - defined_input=None, - verbose=verbose_set, + io_device=io_device, + show_trace=args.trace, + time_verbose=not args.silent, breakpoint_labels=breakpoint_set, breakpoint_contains_labels=breakpoint_contains_set) if not args.silent: diff --git a/src/fjm_run.py b/src/fjm_run.py index 959742a..58f77be 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -1,12 +1,15 @@ from pathlib import Path from time import time -from sys import stdin, stdout from typing import Optional, Set import fjm -from defs import Verbose, TerminationCause, PrintTimer +from defs import TerminationCause, PrintTimer from breakpoints import BreakpointHandler, handle_breakpoint, get_breakpoint_handler +from io_devices.IODevice import IODevice +from io_devices.BrokenIO import BrokenIO +from io_devices.io_exceptions import IOReadOnEOF + class RunStatistics: """ @@ -49,14 +52,13 @@ class TerminationStatistics: saves the run-statistics and data of the fj program-termination, to be presented nicely. also saves the program's output. """ - def __init__(self, run_statistics: RunStatistics, standard_output: bytes, termination_cause: TerminationCause): + def __init__(self, run_statistics: RunStatistics, termination_cause: TerminationCause): self.run_time = run_statistics.get_run_time() self.op_counter = run_statistics.op_counter self.flip_counter = run_statistics.flip_counter self.jump_counter = run_statistics.jump_counter - self.standard_output = standard_output self.termination_cause = termination_cause def __str__(self): @@ -72,104 +74,78 @@ def __str__(self): def run(fjm_path: Path, *, breakpoint_handler: Optional[BreakpointHandler] = None, - defined_input: Optional[bytes] = None, + io_device: Optional[IODevice] = None, show_trace: bool = False, - time_verbose: bool = False, - output_verbose: bool = True) \ + time_verbose: bool = False) \ -> TerminationStatistics: """ run a .fjm file (a FlipJump interpreter) @param fjm_path: the path to the .fjm file @param breakpoint_handler: the breakpoint handler - @param defined_input: fixed-input, or None for stdin + @param io_device: the device handling input/output @param show_trace: if true print every opcode executed @param time_verbose: if true print running times - @param output_verbose: if true print program's output @return: the run's termination-statistics """ with PrintTimer(' loading memory: ', print_time=time_verbose): mem = fjm.Reader(fjm_path) + if io_device is None: + io_device = BrokenIO() + ip = 0 w = mem.w - out_addr = 2*w - in_addr = 3*w + w.bit_length() # 3w + dww - - input_char, input_size = 0, 0 - output_char, output_size = 0, 0 - output = bytes() - - output_anything_yet = False statistics = RunStatistics(w) while True: + # handle breakpoints if breakpoint_handler and breakpoint_handler.should_break(ip, statistics.op_counter): breakpoint_handler = handle_breakpoint(breakpoint_handler, ip, mem, statistics) + # read flip word flip_address = mem.get_word(ip) - trace_flip(ip, flip_address, show_trace) - # handle output - if out_addr <= flip_address <= out_addr+1: - output_char |= (flip_address-out_addr) << output_size - output_byte = bytes([output_char]) - output_size += 1 - if output_size == 8: - output += output_byte - if output_verbose: - if show_trace: - for _ in range(3): - print() - print(f'Outputted Char: ', end='') - stdout.buffer.write(bytes([output_char])) - stdout.flush() - for _ in range(3): - print() - else: - stdout.buffer.write(bytes([output_char])) - stdout.flush() - output_anything_yet = True - output_char, output_size = 0, 0 - - # handle input - if ip <= in_addr < ip+2*w: - if input_size == 0: - if defined_input is None: - with statistics.pause_timer: - input_char = stdin.buffer.read(1)[0] - elif len(defined_input) > 0: - input_char = defined_input[0] - defined_input = defined_input[1:] - else: - if output_verbose and output_anything_yet: - print() - # Reading a null input byte - return TerminationStatistics(statistics, output, TerminationCause.Input) - input_size = 8 - mem.write_bit(in_addr, input_char & 1) - input_char = input_char >> 1 - input_size -= 1 - - mem.write_bit(flip_address, 1-mem.read_bit(flip_address)) # Flip! + # handle IO + handle_output(flip_address, io_device, w) + try: + handle_input(io_device, ip, mem, statistics) + except IOReadOnEOF: + return TerminationStatistics(statistics, TerminationCause.EOF) - jump_address = mem.get_word(ip+w) - - statistics.register_op(ip, flip_address, jump_address) + # FLIP! + mem.write_bit(flip_address, 1-mem.read_bit(flip_address)) + # read jump word + jump_address = mem.get_word(ip+w) trace_jump(jump_address, show_trace) + statistics.register_op(ip, flip_address, jump_address) + # check finish? if jump_address == ip and not ip <= flip_address < ip+2*w: - if output_verbose and output_anything_yet and breakpoint_handler: - print() - return TerminationStatistics(statistics, output, TerminationCause.Looping) # infinite simple loop + return TerminationStatistics(statistics, TerminationCause.Looping) if jump_address < 2*w: - if output_verbose and output_anything_yet and breakpoint_handler: - print() - return TerminationStatistics(statistics, output, TerminationCause.NullIP) # null ip + return TerminationStatistics(statistics, TerminationCause.NullIP) + + # JUMP! + ip = jump_address + + +def handle_input(io_device: IODevice, ip: int, mem: fjm.Reader, statistics: RunStatistics) -> None: + w = mem.w + in_addr = 3 * w + w.bit_length() # 3w + dww - ip = jump_address # Jump! + if ip <= in_addr < ip + 2 * w: + with statistics.pause_timer: + input_bit = io_device.read_bit() + mem.write_bit(in_addr, input_bit) + + +def handle_output(flip_address: int, io_device: IODevice, w: int): + out_addr = 2 * w + if out_addr <= flip_address <= out_addr + 1: + io_device.write_bit(out_addr + 1 == flip_address) def trace_jump(jump_address: int, show_trace: bool) -> None: @@ -183,10 +159,11 @@ def trace_flip(ip: int, flip_address: int, show_trace: bool) -> None: print(hex(flip_address)[2:], end='; ', flush=True) -def debug_and_run(fjm_path: Path, - verbose: Set[Verbose], +def debug_and_run(fjm_path: Path, *, + show_trace: bool = False, + time_verbose: bool = False, debugging_file: Path = None, - defined_input: Optional[bytes] = None, + io_device: Optional[IODevice] = None, breakpoint_addresses: Optional[Set[int]] = None, breakpoint_labels: Optional[Set[str]] = None, breakpoint_contains_labels: Optional[Set[str]] = None) \ @@ -194,9 +171,10 @@ def debug_and_run(fjm_path: Path, """ run a .fjm file with a breakpoint_handler (a FlipJump interpreter & debugger) @param fjm_path: the path to the .fjm file - @param verbose: the verbose option set (out of Run,Time,PrintOutput) + @param show_trace: if true print every opcode executed + @param time_verbose: if true print running times @param debugging_file: the debug file path (created at assemble time) - @param defined_input: fixed-input, or None for stdin + @param io_device: the device handling input/output @param breakpoint_addresses: set of addresses to break at @param breakpoint_labels: set of labels to break at @param breakpoint_contains_labels: set of strings, to break at every label that contains one of them @@ -206,10 +184,11 @@ def debug_and_run(fjm_path: Path, debugging_file, breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels) termination_statistics = run( - fjm_path, defined_input=defined_input, - show_trace=Verbose.Run in verbose, - time_verbose=Verbose.Time in verbose, - output_verbose=Verbose.PrintOutput in verbose, - breakpoint_handler=breakpoint_handler) + fjm_path, + io_device=io_device, + show_trace=show_trace, + time_verbose=time_verbose, + breakpoint_handler=breakpoint_handler + ) return termination_statistics diff --git a/src/io_devices/BrokenIO.py b/src/io_devices/BrokenIO.py index 8640e08..1d64a8e 100644 --- a/src/io_devices/BrokenIO.py +++ b/src/io_devices/BrokenIO.py @@ -1,18 +1,15 @@ -from IODevice import IODevice -from io_exceptions import BrokenIOUsed +from src.io_devices.IODevice import IODevice +from src.io_devices.io_exceptions import BrokenIOUsed class BrokenIO(IODevice): + """ + IO device that raises error on any IO action + """ def read_bit(self) -> bool: raise BrokenIOUsed("program tried to read a bit from the BrokenIO device") def write_bit(self, bit: bool) -> None: raise BrokenIOUsed(f"program tried to write a bit ({int(bit)}) to the BrokenIO device") - def is_available_read(self) -> bool: - return False - - def is_available_write(self) -> bool: - return False - # default __del__ diff --git a/src/io_devices/FixedIO.py b/src/io_devices/FixedIO.py new file mode 100644 index 0000000..da90c92 --- /dev/null +++ b/src/io_devices/FixedIO.py @@ -0,0 +1,51 @@ +from src.io_devices.IODevice import IODevice +from src.io_devices.io_exceptions import IOReadOnEOF, IncompleteOutput + + +class FixedIO(IODevice): + """ + read from fixed input, don't output (with get_output functionality) + """ + def __init__(self, _input: bytes): + self.remaining_input = _input + self._output = b'' + + self.current_input_byte = 0 + self.bits_to_read_in_input_byte = 0 + + self.current_output_byte = 0 + self.bits_to_write_in_output_byte = 0 + + def read_bit(self) -> bool: + if 0 == self.bits_to_read_in_input_byte: + if not self.remaining_input: + raise IOReadOnEOF("Read an empty input on fixed IO (EOF)") + + self.current_input_byte = self.remaining_input[0] + self.remaining_input = self.remaining_input[1:] + self.bits_to_read_in_input_byte = 8 + + bit = (self.current_input_byte & 1) == 1 + self.current_input_byte >>= 1 + self.bits_to_read_in_input_byte -= 1 + return bit + + def write_bit(self, bit: bool) -> None: + self.current_output_byte |= bit << self.bits_to_write_in_output_byte + self.bits_to_write_in_output_byte += 1 + + if 8 == self.bits_to_write_in_output_byte: + self._output += self.current_output_byte.to_bytes(1, 'little') + self.current_output_byte = 0 + self.bits_to_write_in_output_byte = 0 + + def get_output(self) -> bytes: + """ + @raise IncompleteOutput when the number of outputted bits can't be divided by 8 + @return: full output until now + """ + if 0 != self.bits_to_write_in_output_byte: + raise IncompleteOutput("tries to get output when an unaligned number of bits was outputted " + "(doesn't divide 8)") + + return self._output diff --git a/src/io_devices/IODevice.py b/src/io_devices/IODevice.py index 6738c57..eaff5f8 100644 --- a/src/io_devices/IODevice.py +++ b/src/io_devices/IODevice.py @@ -2,6 +2,9 @@ class IODevice(ABC): + """ + abstract IO device + """ @abstractmethod def read_bit(self) -> bool: return False @@ -10,12 +13,4 @@ def read_bit(self) -> bool: def write_bit(self, bit: bool) -> None: pass - @abstractmethod - def is_available_read(self) -> bool: - return False - - @abstractmethod - def is_available_write(self) -> bool: - return False - # Also, each class should implement a "__del__" to flush last changes before it gets deleted. diff --git a/src/io_devices/StandardIO.py b/src/io_devices/StandardIO.py index 73955eb..826627e 100644 --- a/src/io_devices/StandardIO.py +++ b/src/io_devices/StandardIO.py @@ -1,10 +1,21 @@ -from IODevice import IODevice -from io_exceptions import IOReadOnEOF, IncompleteOutput +from src.io_devices.IODevice import IODevice +from src.io_devices.io_exceptions import IOReadOnEOF, IncompleteOutput +from sys import stdin, stdout -class FixedStandardIO(IODevice): - def __init__(self, _input: bytes): - self.remaining_input = _input +# TODO use this and FixedIO in fj.py / test_fj.py / fjm_run.py +from src.defs import bytes_encoding + + +class StandardIO(IODevice): + """ + read from stdin, write to stdout + """ + def __init__(self, output_verbose: bool): + """ + @param output_verbose: if true print program's output + """ + self.output_verbose = output_verbose self._output = b'' self.current_input_byte = 0 @@ -15,11 +26,11 @@ def __init__(self, _input: bytes): def read_bit(self) -> bool: if 0 == self.bits_to_read_in_input_byte: - if not self.remaining_input: - raise IOReadOnEOF("Read an empty input on fixed standard IO (EOF)") + read_bytes = stdin.read(1).encode(encoding=bytes_encoding) + if 0 == len(read_bytes): + raise IOReadOnEOF("Read an empty input on standard IO (EOF)") - self.current_input_byte = self.remaining_input[0] - self.remaining_input = self.remaining_input[1:] + self.current_input_byte = read_bytes[0] self.bits_to_read_in_input_byte = 8 bit = (self.current_input_byte & 1) == 1 @@ -28,20 +39,18 @@ def read_bit(self) -> bool: return bit def write_bit(self, bit: bool) -> None: - self.current_output_byte = (self.current_output_byte << 1) | bit + self.current_output_byte |= bit << self.bits_to_write_in_output_byte self.bits_to_write_in_output_byte += 1 if 8 == self.bits_to_write_in_output_byte: - self._output += self.current_output_byte.to_bytes(1, 'little') + curr_output: bytes = self.current_output_byte.to_bytes(1, 'little') + if self.output_verbose: + stdout.write(curr_output.decode(encoding=bytes_encoding)) + stdout.flush() + self._output += curr_output self.current_output_byte = 0 self.bits_to_write_in_output_byte = 0 - def is_available_read(self) -> bool: - return self.remaining_input or 0 < self.bits_to_read_in_input_byte - - def is_available_write(self) -> bool: - return True - def get_output(self) -> bytes: if 0 != self.bits_to_write_in_output_byte: raise IncompleteOutput("tries to get output when an unaligned number of bits was outputted " diff --git a/tests/test_fj.py b/tests/test_fj.py index da3b3f2..6d5f420 100644 --- a/tests/test_fj.py +++ b/tests/test_fj.py @@ -4,8 +4,8 @@ from src import assembler from src import fjm_run -from src.defs import TerminationCause, Verbose, get_stl_paths - +from src.defs import TerminationCause, get_stl_paths, bytes_encoding +from src.io_devices.FixedIO import FixedIO CSV_TRUE = 'True' CSV_FALSE = 'False' @@ -133,7 +133,7 @@ def get_expected_output(self) -> str: if self.read_out_as_binary: with open(self.out_file_path, 'rb') as out_f: - return out_f.read().decode('raw_unicode_escape') + return out_f.read().decode(bytes_encoding) else: with open(self.out_file_path, 'r') as out_f: return out_f.read() @@ -149,8 +149,9 @@ def test_run(run_args: RunTestArgs) -> None: """ print(f'Running test {run_args.test_name}:') + io_device = FixedIO(run_args.get_defined_input()) termination_statistics = fjm_run.run(run_args.fjm_path, - defined_input=run_args.get_defined_input(), + io_device=io_device, time_verbose=True) print(termination_statistics) @@ -158,6 +159,6 @@ def test_run(run_args: RunTestArgs) -> None: expected_termination_cause = TerminationCause.Looping assert termination_statistics.termination_cause == expected_termination_cause - output = termination_statistics.standard_output.decode('raw_unicode_escape') + output = io_device.get_output().decode(bytes_encoding) expected_output = run_args.get_expected_output() assert output == expected_output From 1eb86515a4a50f4b3a0f36e04e71c4b38b6b5d92 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sun, 17 Jul 2022 02:26:24 +0300 Subject: [PATCH 26/66] defs refiled into defs,exceptions,expr,ops --- src/assembler.py | 7 +- src/defs.py | 402 ++------------------------------------------ src/exceptions.py | 26 +++ src/expr.py | 74 ++++++++ src/fj.py | 8 +- src/fj_parser.py | 9 +- src/fjm.py | 2 +- src/ops.py | 267 +++++++++++++++++++++++++++++ src/preprocessor.py | 11 +- 9 files changed, 409 insertions(+), 397 deletions(-) create mode 100644 src/exceptions.py create mode 100644 src/expr.py create mode 100644 src/ops.py diff --git a/src/assembler.py b/src/assembler.py index 83330c1..21e04d7 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -5,8 +5,11 @@ import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from defs import SegmentEntry, FJAssemblerException, PrintTimer, FlipJump, WordFlip, \ - FJException, Segment, Reserve, BoundaryAddressesList, Expr, LastPhaseOp + +from defs import SegmentEntry, PrintTimer, BoundaryAddressesList +from exceptions import FJAssemblerException, FJException +from expr import Expr +from ops import FlipJump, WordFlip, Segment, Reserve, LastPhaseOp def close_segment(w: int, diff --git a/src/defs.py b/src/defs.py index 84e0032..96b5507 100644 --- a/src/defs.py +++ b/src/defs.py @@ -1,70 +1,13 @@ from __future__ import annotations -from dataclasses import dataclass import json from enum import IntEnum # IntEnum equality works between files. from pathlib import Path -from operator import mul, add, sub, floordiv, lshift, rshift, mod, xor, or_, and_ from time import time -from typing import List, Tuple, Dict, Union, Set - - -parsing_op2func = {'+': add, '-': sub, '*': mul, '/': floordiv, '%': mod, - '<<': lshift, '>>': rshift, '^': xor, '|': or_, '&': and_, - '#': lambda x: x.bit_length(), - '?:': lambda a, b, c: b if a else c, - '<': lambda a, b: 1 if a < b else 0, - '>': lambda a, b: 1 if a > b else 0, - '<=': lambda a, b: 1 if a <= b else 0, - '>=': lambda a, b: 1 if a >= b else 0, - '==': lambda a, b: 1 if a == b else 0, - '!=': lambda a, b: 1 if a != b else 0, - } - - -class FJException(Exception): - pass - - -class FJParsingException(FJException): - pass - - -class FJPreprocessorException(FJException): - pass - - -class FJExprException(FJException): - pass - - -class FJAssemblerException(FJException): - pass - - -class FJReadFjmException(FJException): - pass - - -class FJWriteFjmException(FJException): - pass - - -def smart_int16(num: str) -> int: - try: - return int(num, 16) - except ValueError as ve: - raise FJException(f'{num} is not a number!') from ve - - -STL_PATH = Path(__file__).parent.parent / 'stl' -with open(STL_PATH / 'conf.json', 'r') as stl_json: - STL_OPTIONS = json.load(stl_json) - - -def get_stl_paths() -> List[Path]: - return [STL_PATH / f'{lib}.fj' for lib in STL_OPTIONS['all']] +from typing import List, Tuple +from ops import CodePosition, Op, MacroName +from expr import Expr id_re = r'[a-zA-Z_][a-zA-Z_0-9]*' dot_id_re = fr'(({id_re})|\.*)?(\.({id_re}))+' @@ -81,6 +24,12 @@ def get_stl_paths() -> List[Path]: number_re = fr"({bin_num})|({hex_num})|('({char})')|({dec_num})" string_re = fr'"({char})*"' +wflip_start_label = '_.wflip_area_start_' + + +def next_address() -> Expr: + return Expr('$') + def get_char_value_and_length(s: str) -> Tuple[int, int]: if s[0] != '\\': @@ -90,6 +39,13 @@ def get_char_value_and_length(s: str) -> Tuple[int, int]: return int(s[2:4], 16), 4 +def get_stl_paths() -> List[Path]: + stl_path = Path(__file__).parent.parent / 'stl' + with open(stl_path / 'conf.json', 'r') as stl_json: + stl_options = json.load(stl_json) + return [stl_path / f'{lib}.fj' for lib in stl_options['all']] + + class TerminationCause(IntEnum): Looping = 0 EOF = 1 @@ -110,6 +66,8 @@ class SegmentEntry(IntEnum): macro_separator_string = "---" +bytes_encoding = 'raw_unicode_escape' + def get_nice_label_repr(label: str, pad: int = 0) -> str: parts = label.split(macro_separator_string) @@ -131,26 +89,6 @@ def __exit__(self, exc_type, exc_val, exc_tb) -> None: print(f'{time() - self.start_time:.3f}s') -class MacroName: - def __init__(self, name: str, parameter_num: int = 0): - self.name = name - self.parameter_num = parameter_num - - def __str__(self) -> str: - if 0 == self.parameter_num: - return self.name - return f"{self.name}({self.parameter_num})" - - def to_tuple(self): - return self.name, self.parameter_num - - def __hash__(self): - return hash(self.to_tuple()) - - def __eq__(self, other): - return type(other) == MacroName and self.to_tuple() == other.to_tuple() - - class Macro: # [(params, quiet_params), statements, (curr_file, p.lineno, ns_name)] @@ -165,307 +103,3 @@ def __init__(self, params: List[str], local_params: List[str], main_macro = MacroName('') - - -@dataclass -class CodePosition: - file: str - file_short_name: str - line: int - - def __str__(self) -> str: - return f"file {self.file} (line {self.line})" - - def short_str(self) -> str: - return f"{self.file_short_name}:l{self.line}" - - -class Label: - def __init__(self, name: str, code_position: CodePosition): - self.name = name - self.code_position = code_position - - def __str__(self): - return f'Label "{self.name}:", at {self.code_position}' - - def eval_name(self, id_dict: Dict[str, Expr]) -> str: - if self.name in id_dict: - new_name = id_dict[self.name].val - if isinstance(new_name, str): - return new_name - raise FJExprException(f'Bad label swap (from {self.name} to {id_dict[self.name]}) in {self.code_position}.') - return self.name - - -class FlipJump: - """ - data = [flip_address, jump_address] - """ - def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): - self.flip = flip - self.jump = jump - self.code_position = code_position - - def __str__(self): - return f"Flip: {self.flip}, Jump: {self.jump}, at {self.code_position}" - - def eval_new(self, id_dict: Dict[str, Expr]) -> FlipJump: - return FlipJump(self.flip.eval_new(id_dict), self.jump.eval_new(id_dict), self.code_position) - - def all_unknown_labels(self) -> Set[str]: - return {label - for expr in (self.flip, self.jump) - for label in expr.all_unknown_labels()} - - def get_flip(self, labels: Dict[str, Expr]) -> int: - return int(self.flip.eval_new(labels)) - - def get_jump(self, labels: Dict[str, Expr]) -> int: - return int(self.jump.eval_new(labels)) - - -class WordFlip: - """ - data = [word_address, value, return_address] - """ - def __init__(self, word_address: Expr, flip_value: Expr, return_address: Expr, code_position: CodePosition): - self.word_address = word_address - self.flip_value = flip_value - self.return_address = return_address - self.code_position = code_position - - def __str__(self): - return f"Flip Word {self.word_address} by {self.flip_value}, and return to {self.return_address}. " \ - f"at {self.code_position}" - - def eval_new(self, id_dict: Dict[str, Expr]) -> WordFlip: - return WordFlip(self.word_address.eval_new(id_dict), self.flip_value.eval_new(id_dict), - self.return_address.eval_new(id_dict), self.code_position) - - def all_unknown_labels(self) -> Set[str]: - return {label - for expr in (self.word_address, self.flip_value, self.return_address) - for label in expr.all_unknown_labels()} - - def get_word_address(self, labels: Dict[str, Expr]) -> int: - return int(self.word_address.eval_new(labels)) - - def get_flip_value(self, labels: Dict[str, Expr]) -> int: - return int(self.flip_value.eval_new(labels)) - - def get_return_address(self, labels: Dict[str, Expr]) -> int: - return int(self.return_address.eval_new(labels)) - - -class Segment: - """ - data = [start_address] - """ - def __init__(self, start_address: Expr, code_position: CodePosition): - self.start_address = start_address - self.code_position = code_position - - def __str__(self): - return f"Segment {self.start_address}, at {self.code_position}" - - def eval_new(self, id_dict: Dict[str, Expr]) -> Segment: - return Segment(self.start_address.eval_new(id_dict), self.code_position) - - def all_unknown_labels(self) -> Set[str]: - return {label for label in self.start_address.all_unknown_labels()} - - def get_address(self) -> int: - try: - return int(self.start_address) - except FJExprException as e: - raise FJExprException(f"Can't calculate segment address on {self.code_position}") from e - - def calculate_address(self, labels: Dict[str, Expr]) -> int: - self.start_address = self.start_address.eval_new(labels) - return self.get_address() - - -class Reserve: - """ - data = [reserved_bit_size] - """ - def __init__(self, reserved_bit_size: Expr, code_position: CodePosition): - self.reserved_bit_size = reserved_bit_size - self.code_position = code_position - - def __str__(self): - return f"Reserve {self.reserved_bit_size}, at {self.code_position}" - - def eval_new(self, id_dict: Dict[str, Expr]) -> Reserve: - return Reserve(self.reserved_bit_size.eval_new(id_dict), self.code_position) - - def all_unknown_labels(self) -> Set[str]: - return {label for label in self.reserved_bit_size.all_unknown_labels()} - - def get_reserved_bit_size(self) -> int: - try: - return int(self.reserved_bit_size) - except FJExprException as e: - raise FJExprException(f"Can't calculate reserved bits size on {self.code_position}") from e - - def calculate_reserved_bit_size(self, labels: Dict[str, Expr]) -> int: - self.reserved_bit_size = self.reserved_bit_size.eval_new(labels) - return self.get_reserved_bit_size() - - -class MacroCall: - """ - data = ordered list of macro arguments - """ - def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): - self.macro_name = MacroName(macro_name, len(arguments)) - self.arguments = arguments - self.code_position = code_position - - def __str__(self): - return f"macro call. {self.macro_name.name} {', '.join(map(str, self.arguments))}. at {self.code_position}" - - def eval_new(self, id_dict: Dict[str, Expr]) -> MacroCall: - return MacroCall(self.macro_name.name, [arg.eval_new(id_dict) for arg in self.arguments], self.code_position) - - def all_unknown_labels(self) -> Set[str]: - return {label for expr in self.arguments for label in expr.all_unknown_labels()} - - def trace_str(self) -> str: - return f'macro {self.macro_name} ({self.code_position})' - - -class RepCall: - """ - data[0] = repeat_times - data[1:] = ordered list of macro arguments - """ - def __init__(self, repeat_times: Expr, iterator_name: str, macro_name: str, arguments: List[Expr], - code_position: CodePosition): - self.repeat_times = repeat_times - self.iterator_name = iterator_name - self.macro_name = MacroName(macro_name, len(arguments)) - self.arguments = arguments - self.code_position = code_position - - def __str__(self): - return f"rep call. rep({self.repeat_times}, {self.iterator_name}) {self.macro_name.name} " \ - f"{', '.join(map(str, self.arguments))}. at {self.code_position}" - - def eval_new(self, id_dict: Dict[str, Expr]) -> RepCall: - return RepCall(self.repeat_times.eval_new(id_dict), self.iterator_name, self.macro_name.name, - [expr.eval_new(id_dict) for expr in self.arguments], self.code_position) - - def all_unknown_labels(self) -> Set[str]: - times = self.repeat_times - arguments = self.arguments - arguments_labels = set(label for e in arguments for label in e.all_unknown_labels()) - return times.all_unknown_labels() | (arguments_labels - {self.iterator_name}) - - def get_times(self) -> int: - try: - return int(self.repeat_times) - except FJExprException as e: - raise FJExprException(f"Can't calculate rep times on {self.code_position}") from e - - def calculate_times(self, labels: Dict[str, Expr]) -> int: - self.repeat_times = self.repeat_times.eval_new(labels) - return self.get_times() - - def calculate_arguments(self, iterator_value: int) -> Tuple[Expr, ...]: - iterator_dict = {self.iterator_name: Expr(iterator_value)} - try: - return tuple(expr.eval_new(iterator_dict) for expr in self.arguments) - except FJExprException as e: - raise FJExprException(f"Can't calculate rep arguments on {self.code_position}") from e - - def trace_str(self, iter_value: int) -> str: - """ - assumes calculate_times successfully called before - """ - return f'rep({self.iterator_name}={iter_value}, out of 0..{self.get_times()-1}) ' \ - f'macro {self.macro_name} ({self.code_position})' - - -Op = Union[FlipJump, WordFlip, Label, MacroCall, RepCall, Segment, Reserve] -LastPhaseOp = Union[FlipJump, WordFlip, Segment, Reserve] - - -class Expr: - def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr]]]): - self.val = expr - - def __int__(self): - if isinstance(self.val, int): - return self.val - raise FJExprException(f"Can't resolve labels: {', '.join(self.all_unknown_labels())}") - - def all_unknown_labels(self) -> Set[str]: - if isinstance(self.val, int): - return set() - if isinstance(self.val, str): - return {self.val} - return set(label for expr in self.val[1] for label in expr.all_unknown_labels()) - - # replaces every string it can with its dictionary value, and evaluates anything it can. - def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: - if isinstance(self.val, int): - return Expr(self.val) - - if isinstance(self.val, str): - if self.val in id_dict: - return id_dict[self.val].eval_new({}) - return Expr(self.val) - - op, args = self.val - evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(id_dict) for e in args) - if all(isinstance(e.val, int) for e in evaluated_args): - try: - return Expr(parsing_op2func[op](*(arg.val for arg in evaluated_args))) - except Exception as e: - raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)}.') - return Expr((op, evaluated_args)) - - def __str__(self) -> str: - if isinstance(self.val, tuple): - op, exps = self.val - if len(exps) == 1: - e1 = exps[0] - return f'(#{str(e1)})' - elif len(exps) == 2: - e1, e2 = exps - return f'({str(e1)} {op} {str(e2)})' - else: - e1, e2, e3 = exps - return f'({str(e1)} ? {str(e2)} : {str(e3)})' - if isinstance(self.val, str): - return self.val - if isinstance(self.val, int): - return hex(self.val)[2:] - raise FJExprException(f'bad expression: {self.val} (of type {type(self.val)})') - - -def get_used_labels(ops: List[Op]) -> Set[str]: - used_labels = set() - for op in ops: - if not isinstance(op, Label): - used_labels.update(op.all_unknown_labels()) - return used_labels - - -def get_declared_labels(ops: List[Op]) -> Set[str]: - return set(op.name for op in ops if isinstance(op, Label)) - - -def new_label(macro_path: str, label_name: str) -> Expr: - return Expr(f'{macro_path}---{label_name}') - - -wflip_start_label = '_.wflip_area_start_' - - -def next_address() -> Expr: - return Expr('$') - - -bytes_encoding = 'raw_unicode_escape' diff --git a/src/exceptions.py b/src/exceptions.py new file mode 100644 index 0000000..8a098d5 --- /dev/null +++ b/src/exceptions.py @@ -0,0 +1,26 @@ +class FJException(Exception): + pass + + +class FJParsingException(FJException): + pass + + +class FJPreprocessorException(FJException): + pass + + +class FJExprException(FJException): + pass + + +class FJAssemblerException(FJException): + pass + + +class FJReadFjmException(FJException): + pass + + +class FJWriteFjmException(FJException): + pass diff --git a/src/expr.py b/src/expr.py new file mode 100644 index 0000000..a39b129 --- /dev/null +++ b/src/expr.py @@ -0,0 +1,74 @@ +from __future__ import annotations + +from typing import Union, Tuple, Set, Dict +from operator import mul, add, sub, floordiv, lshift, rshift, mod, xor, or_, and_ + +from exceptions import FJExprException + + +parsing_op2func = { + '+': add, '-': sub, '*': mul, '/': floordiv, '%': mod, + '<<': lshift, '>>': rshift, '^': xor, '|': or_, '&': and_, + '#': lambda x: x.bit_length(), + '?:': lambda a, b, c: b if a else c, + '<': lambda a, b: 1 if a < b else 0, + '>': lambda a, b: 1 if a > b else 0, + '<=': lambda a, b: 1 if a <= b else 0, + '>=': lambda a, b: 1 if a >= b else 0, + '==': lambda a, b: 1 if a == b else 0, + '!=': lambda a, b: 1 if a != b else 0, +} + + +class Expr: + def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr]]]): + self.val = expr + + def __int__(self): + if isinstance(self.val, int): + return self.val + raise FJExprException(f"Can't resolve labels: {', '.join(self.all_unknown_labels())}") + + def all_unknown_labels(self) -> Set[str]: + if isinstance(self.val, int): + return set() + if isinstance(self.val, str): + return {self.val} + return set(label for expr in self.val[1] for label in expr.all_unknown_labels()) + + # replaces every string it can with its dictionary value, and evaluates anything it can. + def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: + if isinstance(self.val, int): + return Expr(self.val) + + if isinstance(self.val, str): + if self.val in id_dict: + return id_dict[self.val].eval_new({}) + return Expr(self.val) + + op, args = self.val + evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(id_dict) for e in args) + if all(isinstance(e.val, int) for e in evaluated_args): + try: + return Expr(parsing_op2func[op](*(arg.val for arg in evaluated_args))) + except Exception as e: + raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)}.') + return Expr((op, evaluated_args)) + + def __str__(self) -> str: + if isinstance(self.val, tuple): + op, exps = self.val + if len(exps) == 1: + e1 = exps[0] + return f'(#{str(e1)})' + elif len(exps) == 2: + e1, e2 = exps + return f'({str(e1)} {op} {str(e2)})' + else: + e1, e2, e3 = exps + return f'({str(e1)} ? {str(e2)} : {str(e3)})' + if isinstance(self.val, str): + return self.val + if isinstance(self.val, int): + return hex(self.val)[2:] + raise FJExprException(f'bad expression: {self.val} (of type {type(self.val)})') diff --git a/src/fj.py b/src/fj.py index bea64e1..9af7c86 100644 --- a/src/fj.py +++ b/src/fj.py @@ -2,12 +2,14 @@ import argparse from pathlib import Path from tempfile import TemporaryDirectory -from typing import Tuple, List, Set, Callable +from typing import Tuple, List, Callable import assembler import fjm_run -from defs import FJReadFjmException, get_stl_paths -from src.io_devices.StandardIO import StandardIO +from io_devices.StandardIO import StandardIO + +from defs import get_stl_paths +from exceptions import FJReadFjmException ErrorFunc = Callable[[str], None] diff --git a/src/fj_parser.py b/src/fj_parser.py index 80e8b24..5c45f58 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -4,11 +4,14 @@ from sly import Lexer, Parser -from defs import get_char_value_and_length, get_used_labels, get_declared_labels, \ +from defs import get_char_value_and_length, \ main_macro, next_address, \ - Expr, FJParsingException, \ number_re, dot_id_re, id_re, string_re, \ - CodePosition, Macro, MacroCall, MacroName, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, FJExprException + CodePosition, Macro, MacroName +from exceptions import FJExprException, FJParsingException +from expr import Expr +from ops import get_used_labels, get_declared_labels, MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve + global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace, reserved_names diff --git a/src/fjm.py b/src/fjm.py index 07e4e7a..2cd7f6f 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -5,7 +5,7 @@ from time import sleep from typing import BinaryIO, List, Tuple -from defs import FJReadFjmException, FJWriteFjmException +from exceptions import FJReadFjmException, FJWriteFjmException """ diff --git a/src/ops.py b/src/ops.py new file mode 100644 index 0000000..a3fb200 --- /dev/null +++ b/src/ops.py @@ -0,0 +1,267 @@ +from __future__ import annotations + +from dataclasses import dataclass +from typing import Union, Dict, Set, List, Tuple + +from expr import Expr +from exceptions import FJExprException + + +@dataclass +class CodePosition: + file: str + file_short_name: str + line: int + + def __str__(self) -> str: + return f"file {self.file} (line {self.line})" + + def short_str(self) -> str: + return f"{self.file_short_name}:l{self.line}" + + +class MacroName: + def __init__(self, name: str, parameter_num: int = 0): + self.name = name + self.parameter_num = parameter_num + + def __str__(self) -> str: + if 0 == self.parameter_num: + return self.name + return f"{self.name}({self.parameter_num})" + + def to_tuple(self): + return self.name, self.parameter_num + + def __hash__(self): + return hash(self.to_tuple()) + + def __eq__(self, other): + return type(other) == MacroName and self.to_tuple() == other.to_tuple() + + +class FlipJump: + """ + data = [flip_address, jump_address] + """ + def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): + self.flip = flip + self.jump = jump + self.code_position = code_position + + def __str__(self): + return f"Flip: {self.flip}, Jump: {self.jump}, at {self.code_position}" + + def eval_new(self, id_dict: Dict[str, Expr]) -> FlipJump: + return FlipJump(self.flip.eval_new(id_dict), self.jump.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label + for expr in (self.flip, self.jump) + for label in expr.all_unknown_labels()} + + def get_flip(self, labels: Dict[str, Expr]) -> int: + return int(self.flip.eval_new(labels)) + + def get_jump(self, labels: Dict[str, Expr]) -> int: + return int(self.jump.eval_new(labels)) + + +class WordFlip: + """ + data = [word_address, value, return_address] + """ + def __init__(self, word_address: Expr, flip_value: Expr, return_address: Expr, code_position: CodePosition): + self.word_address = word_address + self.flip_value = flip_value + self.return_address = return_address + self.code_position = code_position + + def __str__(self): + return f"Flip Word {self.word_address} by {self.flip_value}, and return to {self.return_address}. " \ + f"at {self.code_position}" + + def eval_new(self, id_dict: Dict[str, Expr]) -> WordFlip: + return WordFlip(self.word_address.eval_new(id_dict), self.flip_value.eval_new(id_dict), + self.return_address.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label + for expr in (self.word_address, self.flip_value, self.return_address) + for label in expr.all_unknown_labels()} + + def get_word_address(self, labels: Dict[str, Expr]) -> int: + return int(self.word_address.eval_new(labels)) + + def get_flip_value(self, labels: Dict[str, Expr]) -> int: + return int(self.flip_value.eval_new(labels)) + + def get_return_address(self, labels: Dict[str, Expr]) -> int: + return int(self.return_address.eval_new(labels)) + + +class Segment: + """ + data = [start_address] + """ + def __init__(self, start_address: Expr, code_position: CodePosition): + self.start_address = start_address + self.code_position = code_position + + def __str__(self): + return f"Segment {self.start_address}, at {self.code_position}" + + def eval_new(self, id_dict: Dict[str, Expr]) -> Segment: + return Segment(self.start_address.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label for label in self.start_address.all_unknown_labels()} + + def get_address(self) -> int: + try: + return int(self.start_address) + except FJExprException as e: + raise FJExprException(f"Can't calculate segment address on {self.code_position}") from e + + def calculate_address(self, labels: Dict[str, Expr]) -> int: + self.start_address = self.start_address.eval_new(labels) + return self.get_address() + + +class Reserve: + """ + data = [reserved_bit_size] + """ + def __init__(self, reserved_bit_size: Expr, code_position: CodePosition): + self.reserved_bit_size = reserved_bit_size + self.code_position = code_position + + def __str__(self): + return f"Reserve {self.reserved_bit_size}, at {self.code_position}" + + def eval_new(self, id_dict: Dict[str, Expr]) -> Reserve: + return Reserve(self.reserved_bit_size.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label for label in self.reserved_bit_size.all_unknown_labels()} + + def get_reserved_bit_size(self) -> int: + try: + return int(self.reserved_bit_size) + except FJExprException as e: + raise FJExprException(f"Can't calculate reserved bits size on {self.code_position}") from e + + def calculate_reserved_bit_size(self, labels: Dict[str, Expr]) -> int: + self.reserved_bit_size = self.reserved_bit_size.eval_new(labels) + return self.get_reserved_bit_size() + + +class MacroCall: + """ + data = ordered list of macro arguments + """ + def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): + self.macro_name = MacroName(macro_name, len(arguments)) + self.arguments = arguments + self.code_position = code_position + + def __str__(self): + return f"macro call. {self.macro_name.name} {', '.join(map(str, self.arguments))}. at {self.code_position}" + + def eval_new(self, id_dict: Dict[str, Expr]) -> MacroCall: + return MacroCall(self.macro_name.name, [arg.eval_new(id_dict) for arg in self.arguments], self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return {label for expr in self.arguments for label in expr.all_unknown_labels()} + + def trace_str(self) -> str: + return f'macro {self.macro_name} ({self.code_position})' + + +class RepCall: + """ + data[0] = repeat_times + data[1:] = ordered list of macro arguments + """ + def __init__(self, repeat_times: Expr, iterator_name: str, macro_name: str, arguments: List[Expr], + code_position: CodePosition): + self.repeat_times = repeat_times + self.iterator_name = iterator_name + self.macro_name = MacroName(macro_name, len(arguments)) + self.arguments = arguments + self.code_position = code_position + + def __str__(self): + return f"rep call. rep({self.repeat_times}, {self.iterator_name}) {self.macro_name.name} " \ + f"{', '.join(map(str, self.arguments))}. at {self.code_position}" + + def eval_new(self, id_dict: Dict[str, Expr]) -> RepCall: + return RepCall(self.repeat_times.eval_new(id_dict), self.iterator_name, self.macro_name.name, + [expr.eval_new(id_dict) for expr in self.arguments], self.code_position) + + def all_unknown_labels(self) -> Set[str]: + times = self.repeat_times + arguments = self.arguments + arguments_labels = set(label for e in arguments for label in e.all_unknown_labels()) + return times.all_unknown_labels() | (arguments_labels - {self.iterator_name}) + + def get_times(self) -> int: + try: + return int(self.repeat_times) + except FJExprException as e: + raise FJExprException(f"Can't calculate rep times on {self.code_position}") from e + + def calculate_times(self, labels: Dict[str, Expr]) -> int: + self.repeat_times = self.repeat_times.eval_new(labels) + return self.get_times() + + def calculate_arguments(self, iterator_value: int) -> Tuple[Expr, ...]: + iterator_dict = {self.iterator_name: Expr(iterator_value)} + try: + return tuple(expr.eval_new(iterator_dict) for expr in self.arguments) + except FJExprException as e: + raise FJExprException(f"Can't calculate rep arguments on {self.code_position}") from e + + def trace_str(self, iter_value: int) -> str: + """ + assumes calculate_times successfully called before + """ + return f'rep({self.iterator_name}={iter_value}, out of 0..{self.get_times()-1}) ' \ + f'macro {self.macro_name} ({self.code_position})' + + +class Label: + def __init__(self, name: str, code_position: CodePosition): + self.name = name + self.code_position = code_position + + def __str__(self): + return f'Label "{self.name}:", at {self.code_position}' + + def eval_name(self, id_dict: Dict[str, Expr]) -> str: + if self.name in id_dict: + new_name = id_dict[self.name].val + if isinstance(new_name, str): + return new_name + raise FJExprException(f'Bad label swap (from {self.name} to {id_dict[self.name]}) in {self.code_position}.') + return self.name + + +def get_used_labels(ops: List[Op]) -> Set[str]: + used_labels = set() + for op in ops: + if not isinstance(op, Label): + used_labels.update(op.all_unknown_labels()) + return used_labels + + +def get_declared_labels(ops: List[Op]) -> Set[str]: + return set(op.name for op in ops if isinstance(op, Label)) + + +def new_label(macro_path: str, label_name: str) -> Expr: + return Expr(f'{macro_path}---{label_name}') + + +Op = Union[FlipJump, WordFlip, Label, MacroCall, RepCall, Segment, Reserve] +LastPhaseOp = Union[FlipJump, WordFlip, Segment, Reserve] diff --git a/src/preprocessor.py b/src/preprocessor.py index f0fb5cc..cc01f38 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -3,10 +3,13 @@ import plotly.graph_objects as go -from defs import main_macro, wflip_start_label, new_label, \ - SegmentEntry, Expr, FJPreprocessorException, \ - CodePosition, Macro, MacroName, BoundaryAddressesList, MacroCall, RepCall, FJExprException, \ - FlipJump, WordFlip, Label, Segment, Reserve, LastPhaseOp, macro_separator_string +from defs import main_macro, wflip_start_label, \ + BoundaryAddressesList, SegmentEntry, \ + CodePosition, Macro, MacroName, \ + macro_separator_string +from exceptions import FJPreprocessorException, FJExprException +from expr import Expr +from ops import FlipJump, WordFlip, Label, Segment, Reserve, MacroCall, RepCall, LastPhaseOp, new_label CurrTree = Deque[Union[MacroCall, RepCall]] From 8f48c5b0a2034ed566a4a367384882837ab53659 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 22 Jul 2022 12:28:29 +0300 Subject: [PATCH 27/66] add PreprocessorData --- src/assembler.py | 5 +- src/preprocessor.py | 161 +++++++++++++++++++++++++------------------- 2 files changed, 94 insertions(+), 72 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 21e04d7..36b20b7 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -137,7 +137,8 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], def assemble(input_files: List[Tuple[str, Path]], output_file, w, *, version=0, flags=0, warning_as_errors=True, - show_statistics=False, debugging_file=None, print_time=True): + show_statistics=False, debugging_file=None, print_time=True)\ + -> None: writer = fjm.Writer(output_file, w, version=version, flags=flags) with PrintTimer(' parsing: ', print_time=print_time): @@ -158,5 +159,3 @@ def assemble(input_files: List[Tuple[str, Path]], output_file, w, if debugging_file: with open(debugging_file, 'wb') as f: pickle.dump(labels, f, pickle.HIGHEST_PROTOCOL) - - return labels diff --git a/src/preprocessor.py b/src/preprocessor.py index cc01f38..ab843bc 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -1,3 +1,4 @@ +from __future__ import annotations import collections from typing import Dict, List, Tuple, Iterable, Union, Deque @@ -12,6 +13,7 @@ from ops import FlipJump, WordFlip, Label, Segment, Reserve, MacroCall, RepCall, LastPhaseOp, new_label CurrTree = Deque[Union[MacroCall, RepCall]] +PreprocessorResults = Tuple[Deque[LastPhaseOp], Dict[str, Expr], BoundaryAddressesList] def macro_resolve_error(curr_tree: CurrTree, msg='', *, orig_exception: BaseException = None) -> None: @@ -71,120 +73,141 @@ def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: fig.show() -def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool = False)\ - -> Tuple[Deque[LastPhaseOp], Dict[str, Expr], BoundaryAddressesList]: - curr_address = [0] - result_ops: Deque[LastPhaseOp] = collections.deque() - labels: Dict[str, Expr] = {} - last_address_index = [0] - boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries - stat_dict = collections.defaultdict(lambda: 0) +class PreprocessorData: + class _PrepareMacroCall: + def __init__(self, curr_tree: CurrTree, + calling_op: Union[MacroCall, RepCall], macros: Dict[MacroName, Macro]): + self.curr_tree = curr_tree + self.calling_op = calling_op + self.macros = macros - resolve_macro_aux(w, '', collections.deque(), macros, main_macro, [], stat_dict, - labels, result_ops, boundary_addresses, curr_address, last_address_index, {}) + def __enter__(self): + macro_name = self.calling_op.macro_name + if macro_name not in self.macros: + macro_resolve_error(self.curr_tree, f"macro {macro_name} is used but isn't defined.") + self.curr_tree.append(self.calling_op) - if show_statistics: - show_macro_usage_pie_graph(dict(stat_dict), curr_address[0]) + def __exit__(self, exc_type, exc_val, exc_tb): + self.curr_tree.pop() - boundary_addresses.append((SegmentEntry.WflipAddress, curr_address[0])) - return result_ops, labels, boundary_addresses + def __init__(self, ): + self.curr_address: int = 0 + self.boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries + self.macro_code_size = collections.defaultdict(lambda: 0) + self.curr_tree: CurrTree = collections.deque() + self.curr_segment_index: int = 0 + self.labels_code_positions: Dict[str, CodePosition] = {} + self.result_ops: Deque[LastPhaseOp] = collections.deque() + self.labels: Dict[str, Expr] = {} -def resolve_macro_aux(w: int, macro_path: str, curr_tree: CurrTree, macros: Dict[MacroName, Macro], - macro_name: MacroName, args: Iterable[Expr], macro_code_size: Dict[str, int], - labels: Dict[str, Expr], result_ops: Deque[LastPhaseOp], - boundary_addresses: BoundaryAddressesList, - curr_address: List[int], last_address_index, labels_code_positions: Dict[str, CodePosition], - code_position: CodePosition = None)\ - -> None: - init_curr_address = curr_address[0] + def finish(self, show_statistics: bool): + self.boundary_addresses.append((SegmentEntry.WflipAddress, self.curr_address)) + if show_statistics: + show_macro_usage_pie_graph(dict(self.macro_code_size), self.curr_address) - if macro_name not in macros: - macro_resolve_error(curr_tree, f"macro {macro_name} isn't defined. Used in {code_position}.") + def prepare_macro_call(self, calling_op: Union[MacroCall, RepCall], macros: Dict[MacroName, Macro])\ + -> PreprocessorData._PrepareMacroCall: + return PreprocessorData._PrepareMacroCall(self.curr_tree, calling_op, macros) - current_macro = macros[macro_name] + def get_results(self) -> PreprocessorResults: + return self.result_ops, self.labels, self.boundary_addresses + + +def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool = False)\ + -> PreprocessorResults: + preprocessor_data = PreprocessorData() + resolve_macro_aux(preprocessor_data, + w, macros, + main_macro, [], '') + preprocessor_data.finish(show_statistics) + return preprocessor_data.get_results() + + +def resolve_macro_aux(preprocessor_data: PreprocessorData, + w: int, macros: Dict[MacroName, Macro], + macro_name: MacroName, args: Iterable[Expr], macro_path: str) -> None: + + init_curr_address = preprocessor_data.curr_address + current_macro = macros[macro_name] id_dict = get_id_dictionary(current_macro, args, current_macro.namespace, macro_path) for op in current_macro.ops: if isinstance(op, Label): label = op.eval_name(id_dict) - if label in labels: - other_position = labels_code_positions[label] - macro_resolve_error(curr_tree, f'label declared twice - "{label}" on {op.code_position} ' - f'and {other_position}') - labels[label] = Expr(curr_address[0]) - labels_code_positions[label] = op.code_position + if label in preprocessor_data.labels: + other_position = preprocessor_data.labels_code_positions[label] + macro_resolve_error(preprocessor_data.curr_tree, f'label declared twice - "{label}" on ' + f'{op.code_position} and {other_position}') + preprocessor_data.labels[label] = Expr(preprocessor_data.curr_address) + preprocessor_data.labels_code_positions[label] = op.code_position elif isinstance(op, FlipJump) or isinstance(op, WordFlip): - curr_address[0] += 2 * w - id_dict['$'] = Expr(curr_address[0]) - result_ops.append(op.eval_new(id_dict)) + preprocessor_data.curr_address += 2 * w + id_dict['$'] = Expr(preprocessor_data.curr_address) + preprocessor_data.result_ops.append(op.eval_new(id_dict)) del id_dict['$'] elif isinstance(op, MacroCall): op = op.eval_new(id_dict) next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ f"{op.code_position.short_str()}:{op.macro_name}" - curr_tree.append(op) - resolve_macro_aux(w, next_macro_path, curr_tree, macros, - op.macro_name, op.arguments, macro_code_size, - labels, result_ops, boundary_addresses, curr_address, last_address_index, - labels_code_positions, code_position=op.code_position) - curr_tree.pop() + with preprocessor_data.prepare_macro_call(op, macros): + resolve_macro_aux(preprocessor_data, + w, macros, + op.macro_name, op.arguments, next_macro_path) elif isinstance(op, RepCall): op = op.eval_new(id_dict) try: - times = op.calculate_times(labels) + times = op.calculate_times(preprocessor_data.labels) if times == 0: continue next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ f"{op.code_position.short_str()}:rep{{}}:{op.macro_name}" - for i in range(times): - curr_tree.append(op) - resolve_macro_aux(w, next_macro_path.format(i), curr_tree, macros, - op.macro_name, op.calculate_arguments(i), macro_code_size, - labels, result_ops, boundary_addresses, curr_address, last_address_index, - labels_code_positions, code_position=op.code_position) - curr_tree.pop() + with preprocessor_data.prepare_macro_call(op, macros): + for i in range(times): + resolve_macro_aux(preprocessor_data, + w, macros, + op.macro_name, op.calculate_arguments(i), next_macro_path.format(i)) except FJExprException as e: - macro_resolve_error(curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) + macro_resolve_error(preprocessor_data.curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) elif isinstance(op, Segment): op = op.eval_new(id_dict) try: - value = op.calculate_address(labels) + value = op.calculate_address(preprocessor_data.labels) if value % w != 0: - macro_resolve_error(curr_tree, f'segment ops must have a w-aligned address. In {op}.') + macro_resolve_error(preprocessor_data.curr_tree, f'segment ops must have a w-aligned address. In {op}.') except FJExprException as e: - macro_resolve_error(curr_tree, f'segment failed.', orig_exception=e) + macro_resolve_error(preprocessor_data.curr_tree, f'segment failed.', orig_exception=e) - boundary_addresses.append((SegmentEntry.WflipAddress, curr_address[0])) - labels[f'{wflip_start_label}{last_address_index[0]}'] = Expr(curr_address[0]) - last_address_index[0] += 1 + preprocessor_data.boundary_addresses.append((SegmentEntry.WflipAddress, preprocessor_data.curr_address)) + preprocessor_data.labels[f'{wflip_start_label}{preprocessor_data.curr_segment_index}'] = Expr(preprocessor_data.curr_address) + preprocessor_data.curr_segment_index += 1 - curr_address[0] = value - boundary_addresses.append((SegmentEntry.StartAddress, curr_address[0])) + preprocessor_data.curr_address = value + preprocessor_data.boundary_addresses.append((SegmentEntry.StartAddress, preprocessor_data.curr_address)) - result_ops.append(op) + preprocessor_data.result_ops.append(op) elif isinstance(op, Reserve): op = op.eval_new(id_dict) try: - value = op.calculate_reserved_bit_size(labels) + value = op.calculate_reserved_bit_size(preprocessor_data.labels) if value % w != 0: - macro_resolve_error(curr_tree, f'reserve ops must have a w-aligned value. In {op}.') + macro_resolve_error(preprocessor_data.curr_tree, f'reserve ops must have a w-aligned value. In {op}.') except FJExprException as e: - macro_resolve_error(curr_tree, f'reserve failed.', orig_exception=e) + macro_resolve_error(preprocessor_data.curr_tree, f'reserve failed.', orig_exception=e) - curr_address[0] += value + preprocessor_data.curr_address += value - boundary_addresses.append((SegmentEntry.ReserveAddress, curr_address[0])) - labels[f'{wflip_start_label}{last_address_index[0]}'] = Expr(curr_address[0]) - last_address_index[0] += 1 + preprocessor_data.boundary_addresses.append((SegmentEntry.ReserveAddress, preprocessor_data.curr_address)) + preprocessor_data.labels[f'{wflip_start_label}{preprocessor_data.curr_segment_index}'] = Expr(preprocessor_data.curr_address) + preprocessor_data.curr_segment_index += 1 - result_ops.append(op) + preprocessor_data.result_ops.append(op) else: - macro_resolve_error(curr_tree, f"Can't assemble this opcode - {str(op)}") + macro_resolve_error(preprocessor_data.curr_tree, f"Can't assemble this opcode - {str(op)}") - if 1 <= len(curr_tree) <= 2: - macro_code_size[macro_path] += curr_address[0] - init_curr_address + if 1 <= len(preprocessor_data.curr_tree) <= 2: + preprocessor_data.macro_code_size[macro_path] += preprocessor_data.curr_address - init_curr_address def get_id_dictionary(current_macro: Macro, args: Iterable[Expr], namespace: str, macro_path: str): From f7d873378be2a4f698b976fe45f815717093d636 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 23 Jul 2022 01:01:13 +0300 Subject: [PATCH 28/66] remove boundry-address, simplify macro_resolve, src/* refactors --- src/assembler.py | 128 +++++++++++++--------------------- src/breakpoints.py | 6 +- src/defs.py | 9 --- src/expr.py | 14 ++-- src/fj.py | 14 ++-- src/fj_parser.py | 163 +++++++++++++++++++++++--------------------- src/fjm.py | 62 ++++++++++++----- src/ops.py | 18 ++++- src/preprocessor.py | 160 +++++++++++++++++++++++++++---------------- 9 files changed, 315 insertions(+), 259 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 36b20b7..04762ad 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,98 +1,71 @@ import pickle from pathlib import Path -from typing import Deque, List, Dict, Tuple +from typing import Deque, List, Dict, Tuple, Optional import fjm from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from defs import SegmentEntry, PrintTimer, BoundaryAddressesList -from exceptions import FJAssemblerException, FJException +from defs import PrintTimer +from exceptions import FJAssemblerException, FJException, FJWriteFjmException from expr import Expr -from ops import FlipJump, WordFlip, Segment, Reserve, LastPhaseOp +from ops import FlipJump, WordFlip, LastPhaseOp, NewSegment, ReserveBits def close_segment(w: int, - segment_index: int, boundary_addresses: BoundaryAddressesList, writer: fjm.Writer, first_address: int, last_address: int, - fj_words: List[int], wflip_words: List[int]) -> None: + fj_words: List[int], wflip_words: Optional[List[int]]) -> None: if first_address == last_address: return - assert_none_crossing_segments(segment_index, first_address, last_address, boundary_addresses) - data_start, data_length = writer.add_data(fj_words + wflip_words) - segment_length = (last_address - first_address) // w - if segment_length < data_length: - raise FJAssemblerException(f'segment-length is smaller than data-length: {segment_length} < {data_length}') - writer.add_segment(first_address // w, segment_length, data_start, data_length) + if first_address % w != 0 or last_address % w != 0: + raise FJAssemblerException(f'segment boundaries are unaligned: [{hex(first_address)}, {hex(last_address-1)}].') + + assert_address_in_memory(w, first_address) + assert_address_in_memory(w, last_address) + + words_to_write = fj_words if wflip_words is None else fj_words + wflip_words + data_start, data_length = writer.add_data(words_to_write) + + first_word_address = first_address // w + segment_word_length = (last_address - first_address) // w + + try: + writer.add_segment(first_word_address, segment_word_length, data_start, data_length) + except FJWriteFjmException as e: + raise FJAssemblerException(f"failed to add the segment: " + f"[{hex(first_address)}, {hex(last_address-1)}].") from e fj_words.clear() - wflip_words.clear() - - -def get_clean_segment_index(index: int, boundary_addresses: BoundaryAddressesList) -> int: - clean_index = 0 - for entry in boundary_addresses[:index]: - if entry[0] == SegmentEntry.WflipAddress: - clean_index += 1 - return clean_index - - -def assert_none_crossing_segments(curr_segment_index: int, - old_address: int, new_address: int, - boundary_addresses: BoundaryAddressesList) -> None: - min_i = None - min_seg_start = None - - last_start = None - last_start_i = None - for i, entry in enumerate(boundary_addresses): - if entry[0] == SegmentEntry.StartAddress: - last_start = entry[1] - last_start_i = i - if entry[0] == SegmentEntry.WflipAddress: - if entry[1] != last_start: - if old_address < last_start < new_address: - if min_i is None or min_seg_start > last_start: - min_i = last_start_i - min_seg_start = last_start - - if min_i is not None: - raise FJAssemblerException(f"Overlapping segments (address {hex(new_address)}): " - f"seg[{get_clean_segment_index(curr_segment_index, boundary_addresses)}]" - f"=({hex(boundary_addresses[curr_segment_index][1])}..) and " - f"seg[{get_clean_segment_index(min_i, boundary_addresses)}]=({hex(min_seg_start)}..)") - - -def get_next_wflip_entry_index(boundary_addresses: BoundaryAddressesList, index: int) -> int: - length = len(boundary_addresses) - while boundary_addresses[index][0] != SegmentEntry.WflipAddress: - index += 1 - if index >= length: - raise FJAssemblerException(f'No WflipAddress entry found in boundary_addresses.') - return index + if wflip_words is not None: + wflip_words.clear() + + +def assert_address_in_memory(w: int, address: int): + if address < 0 or address >= (1 << w): + raise FJAssemblerException(f"Not enough space with the {w}-width.") def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], - boundary_addresses: BoundaryAddressesList, w: int, writer: fjm.Writer) -> None: - if max(e[1] for e in boundary_addresses) >= (1 << w): - raise FJAssemblerException(f"Not enough space with the {w}-width.") + # TODO check that there are no collisions (including after the wflip area) (in the fjm.py / Writer.add_segment() fj_words = [] wflip_words = [] - segment_index = 0 - last_start_seg_index = segment_index - first_address = boundary_addresses[last_start_seg_index][1] - wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, 0)][1] + + first_segment: NewSegment = ops.popleft() + first_address = first_segment.start_address + wflip_address = first_segment.wflip_start_address for op in ops: + if isinstance(op, FlipJump): try: fj_words += (op.get_flip(labels), op.get_jump(labels)) except FJException as e: raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e + elif isinstance(op, WordFlip): try: word_address = op.get_word_address(labels) @@ -116,22 +89,20 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], if wflip_address >= (1 << w): raise FJAssemblerException(f"Not enough space with the {w}-width.") - elif isinstance(op, Segment): - segment_index += 2 - close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, fj_words, - wflip_words) - last_start_seg_index = segment_index - first_address = boundary_addresses[last_start_seg_index][1] - wflip_address = boundary_addresses[get_next_wflip_entry_index(boundary_addresses, segment_index)][1] - elif isinstance(op, Reserve): - segment_index += 1 - last_address = boundary_addresses[segment_index][1] - close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, last_address, fj_words, []) - first_address = last_address + + elif isinstance(op, NewSegment): + close_segment(w, writer, first_address, wflip_address, fj_words, wflip_words) + first_address = op.start_address + wflip_address = op.wflip_start_address + + elif isinstance(op, ReserveBits): + close_segment(w, writer, first_address, op.first_address_after_reserved, fj_words, None) + first_address = op.first_address_after_reserved + else: raise FJAssemblerException(f"Can't resolve/assemble the next opcode - {str(op)}") - close_segment(w, last_start_seg_index, boundary_addresses, writer, first_address, wflip_address, fj_words, wflip_words) + close_segment(w, writer, first_address, wflip_address, fj_words, wflip_words) def assemble(input_files: List[Tuple[str, Path]], output_file, w, @@ -145,11 +116,10 @@ def assemble(input_files: List[Tuple[str, Path]], output_file, w, macros = parse_macro_tree(input_files, w, warning_as_errors) with PrintTimer(' macro resolve: ', print_time=print_time): - ops, labels, boundary_addresses = resolve_macros(w, macros, - show_statistics=show_statistics) + ops, labels = resolve_macros(w, macros, show_statistics=show_statistics) with PrintTimer(' labels resolve: ', print_time=print_time): - labels_resolve(ops, labels, boundary_addresses, w, writer) + labels_resolve(ops, labels, w, writer) with PrintTimer(' create binary: ', print_time=print_time): writer.write_to_file() diff --git a/src/breakpoints.py b/src/breakpoints.py index 74cb2fe..0312de0 100644 --- a/src/breakpoints.py +++ b/src/breakpoints.py @@ -126,7 +126,7 @@ def update_breakpoints_from_breakpoint_set(breakpoint_labels: Optional[Set[str]] label_to_address: Dict[str, int]) -> None: """ add breakpoints from breakpoint_labels. - @param breakpoints[in,out] - adds breakpoints to it + param breakpoints[in,out] - adds breakpoints to it """ if breakpoint_labels: for bl in breakpoint_labels: @@ -142,7 +142,7 @@ def update_breakpoints_from_breakpoint_contains_set(breakpoint_contains_labels: label_to_address: Dict[str, int]) -> None: """ add breakpoints generated with breakpoint_contains_labels. - @param breakpoints[in,out] - adds breakpoints to it + param breakpoints[in,out] - adds breakpoints to it """ # TODO improve the speed of this part with suffix trees if breakpoint_contains_labels: @@ -157,7 +157,7 @@ def update_breakpoints_from_addresses_set(breakpoint_addresses: Optional[Set[int breakpoints: Dict[int, Optional[str]]) -> None: """ add breakpoints of addresses breakpoint_addresses. - @param breakpoints[in,out] - adds breakpoints to it + param breakpoints[in,out] - adds breakpoints to it """ if breakpoint_addresses: for address in breakpoint_addresses: diff --git a/src/defs.py b/src/defs.py index 96b5507..e8b65d6 100644 --- a/src/defs.py +++ b/src/defs.py @@ -55,15 +55,6 @@ def __str__(self) -> str: return ['looping', 'EOF', 'ip<2w'][self.value] -class SegmentEntry(IntEnum): - StartAddress = 0 - ReserveAddress = 1 - WflipAddress = 2 - - -BoundaryAddressesList = List[Tuple[SegmentEntry, int]] - - macro_separator_string = "---" bytes_encoding = 'raw_unicode_escape' diff --git a/src/expr.py b/src/expr.py index a39b129..1dac0d2 100644 --- a/src/expr.py +++ b/src/expr.py @@ -21,7 +21,7 @@ class Expr: - def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr]]]): + def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr, ...]]]): self.val = expr def __int__(self): @@ -57,15 +57,15 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: def __str__(self) -> str: if isinstance(self.val, tuple): - op, exps = self.val - if len(exps) == 1: - e1 = exps[0] + op, expressions = self.val + if len(expressions) == 1: + e1 = expressions[0] return f'(#{str(e1)})' - elif len(exps) == 2: - e1, e2 = exps + elif len(expressions) == 2: + e1, e2 = expressions return f'({str(e1)} {op} {str(e2)})' else: - e1, e2, e3 = exps + e1, e2, e3 = expressions return f'({str(e1)} ? {str(e2)} : {str(e3)})' if isinstance(self.val, str): return self.val diff --git a/src/fj.py b/src/fj.py index 9af7c86..8515d3e 100644 --- a/src/fj.py +++ b/src/fj.py @@ -271,14 +271,14 @@ def get_argument_parser() -> argparse.ArgumentParser: description='Assemble and Run FlipJump programs.', usage=f'fj.py [--asm | --run] [arguments] files [files ...]\n' f'example usage:\n' - f' fj.py a.fj b.fj // assemble and run\n' - f' fj.py a.fj b.fj -o out.fjm // assemble save and run\n' - f' fj.py code.fj -d -B swap_start exit_label // assemble and debug\n\n' - f' fj.py --asm -o o.fjm a.fj -d dir/debug.fjd // assemble and save debug info\n' - f' fj.py --asm -o output.fjm a.fj b.fj --no_stl -w 32 ' + f' fj.py a.fj b.fj // assemble and run\n' + f' fj.py a.fj b.fj -o out.fjm // assemble save and run\n' + f' fj.py code.fj -d -B swap_start exit_label // assemble and debug\n\n' + f' fj.py --asm -o o.fjm a.fj -d dir/debug.fjd // assemble and save debug info\n' + f' fj.py --asm -o out.fjm a.fj b.fj --no_stl -w 32 ' f'// assemble without the standard library, 32 bit memory\n\n' - f' fj.py --run prog.fjm // just run\n' - f' fj.py --run o.fjm -d dir/debug.fjd -B label // run and debug' + f' fj.py --run prog.fjm // just run\n' + f' fj.py --run o.fjm -d dir/debug.fjd -B label // run and debug\n ' ) diff --git a/src/fj_parser.py b/src/fj_parser.py index 5c45f58..2fb66be 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -1,6 +1,6 @@ from os import path from pathlib import Path -from typing import Set, List, Tuple +from typing import Set, List, Tuple, Dict from sly import Lexer, Parser @@ -10,8 +10,8 @@ CodePosition, Macro, MacroName from exceptions import FJExprException, FJParsingException from expr import Expr -from ops import get_used_labels, get_declared_labels, MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve - +from ops import get_used_labels, get_declared_labels, MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, \ + Op global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace, reserved_names @@ -156,10 +156,10 @@ class FJParser(Parser): ) # debugfile = 'src/parser.out' - def __init__(self, w, warning_as_errors): - self.defs = {'w': Expr(w)} - self.warning_as_errors = warning_as_errors - self.macros = {main_macro: Macro([], [], [], '', None)} + def __init__(self, w: int, warning_as_errors: bool): + self.consts: Dict[str, Expr] = {'w': Expr(w)} + self.warning_as_errors: bool = warning_as_errors + self.macros: Dict[MacroName, Macro] = {main_macro: Macro([], [], [], '', None)} def check_macro_name(self, name: MacroName, lineno: int): global reserved_names @@ -172,9 +172,9 @@ def check_macro_name(self, name: MacroName, lineno: int): def check_params(self, ids, macro_name: MacroName, lineno: int): for param_id in ids: - if param_id in self.defs: + if param_id in self.consts: syntax_error(lineno, f'parameter {param_id} in macro {macro_name}) ' - f'is also defined as a constant variable (with value {self.defs[param_id]})') + f'is also defined as a constant variable (with value {self.consts[param_id]})') for i1 in range(len(ids)): for i2 in range(i1): if ids[i1] == ids[i2]: @@ -211,6 +211,14 @@ def check_label_usage(self, labels_used: Set[str], labels_declared: Set[str], pa f"In macro {macro_name}: " f"Used a not global/parameter/declared-extern label: {', '.join(bad_uses)}.") + @staticmethod + def validate_no_segment_or_reserve(ops: List[Op], macro_name: str): + for op in ops: + if isinstance(op, Segment): + syntax_error(op.code_position.line, f"segment can't be declared inside a macro ({macro_name}).") + if isinstance(op, Reserve): + syntax_error(op.code_position.line, f"reserve can't be declared inside a macro ({macro_name}).") + @staticmethod def ns_name(): return '.'.join(curr_namespace) @@ -291,6 +299,7 @@ def macro_def(self, p): declared_labels = get_declared_labels(ops) self.check_label_usage(used_labels, declared_labels, set(params + local_params), set(extern_params), set(global_params), p.lineno, name) + self.validate_no_segment_or_reserve(ops, name) self.macros[name] = Macro(params, local_params, ops, self.ns_name(), get_position(p.lineno)) return None @@ -427,12 +436,12 @@ def statement(self, p): @_('ID "=" expr') def statement(self, p): name = self.ns_full_name(p.ID) - if name in self.defs: + if name in self.consts: syntax_error(p.lineno, f'Can\'t redeclare the variable "{name}".') - evaluated = p.expr.eval_new(self.defs) + evaluated = p.expr.eval_new(self.consts) try: - self.defs[name] = Expr(int(evaluated)) + self.consts[name] = Expr(int(evaluated)) except FJExprException: syntax_error(p.lineno, f'Can\'t evaluate expression: {str(evaluated)}.') @@ -464,157 +473,157 @@ def expressions(self, p): def expressions(self, p): return [p.expr] - @_('_expr') + @_('expr_') def expr(self, p): - return p._expr[0] + return p.expr_[0] - @_('_expr "+" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "+" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a + b), p.lineno return Expr(('+', (a, b))), p.lineno - @_('_expr "-" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "-" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a - b), p.lineno return Expr(('-', (a, b))), p.lineno - @_('_expr "*" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "*" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a * b), p.lineno return Expr(('*', (a, b))), p.lineno - @_('"#" _expr') - def _expr(self, p): - a = p._expr[0] + @_('"#" expr_') + def expr_(self, p): + a = p.expr_[0] if a is int: return Expr(a.bit_length()), p.lineno return Expr(('#', (a,))), p.lineno - @_('_expr "/" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "/" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a // b), p.lineno return Expr(('/', (a, b))), p.lineno - @_('_expr "%" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "%" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a % b), p.lineno return Expr(('%', (a, b))), p.lineno - @_('_expr SHL _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ SHL expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a << b), p.lineno return Expr(('<<', (a, b))), p.lineno - @_('_expr SHR _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ SHR expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a >> b), p.lineno return Expr(('>>', (a, b))), p.lineno - @_('_expr "^" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "^" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a ^ b), p.lineno return Expr(('^', (a, b))), p.lineno - @_('_expr "|" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "|" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a | b), p.lineno return Expr(('|', (a, b))), p.lineno - @_('_expr "&" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "&" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(a & b), p.lineno return Expr(('&', (a, b))), p.lineno - @_('_expr "?" _expr ":" _expr') - def _expr(self, p): - a, b, c = p._expr0[0], p._expr1[0], p._expr2[0] + @_('expr_ "?" expr_ ":" expr_') + def expr_(self, p): + a, b, c = p.expr_0[0], p.expr_1[0], p.expr_2[0] if a is int and b is int and c is int: return Expr(b if a else c), p.lineno return Expr(('?:', (a, b, c))), p.lineno - @_('_expr "<" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ "<" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(1 if a < b else 0), p.lineno return Expr(('<', (a, b))), p.lineno - @_('_expr ">" _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ ">" expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(1 if a > b else 0), p.lineno return Expr(('>', (a, b))), p.lineno - @_('_expr LE _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ LE expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(1 if a <= b else 0), p.lineno return Expr(('<=', (a, b))), p.lineno - @_('_expr GE _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ GE expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(1 if a >= b else 0), p.lineno return Expr(('>=', (a, b))), p.lineno - @_('_expr EQ _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ EQ expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(1 if a == b else 0), p.lineno return Expr(('==', (a, b))), p.lineno - @_('_expr NEQ _expr') - def _expr(self, p): - a, b = p._expr0[0], p._expr1[0] + @_('expr_ NEQ expr_') + def expr_(self, p): + a, b = p.expr_0[0], p.expr_1[0] if a is int and b is int: return Expr(1 if a != b else 0), p.lineno return Expr(('!=', (a, b))), p.lineno - @_('"(" _expr ")"') - def _expr(self, p): - return p._expr + @_('"(" expr_ ")"') + def expr_(self, p): + return p.expr_ @_('NUMBER') - def _expr(self, p): + def expr_(self, p): return Expr(p.NUMBER), p.lineno @_('STRING') - def _expr(self, p): + def expr_(self, p): return Expr(p.STRING), p.lineno @_('"$"') - def _expr(self, p): + def expr_(self, p): return next_address(), p.lineno @_('id') - def _expr(self, p): + def expr_(self, p): id_str, lineno = p.id - if id_str in self.defs: - return self.defs[id_str], lineno + if id_str in self.consts: + return self.consts[id_str], lineno return Expr(id_str), lineno diff --git a/src/fjm.py b/src/fjm.py index 2cd7f6f..7acc45d 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -71,7 +71,7 @@ def _init_header_fields(self, fjm_file: BinaryIO) -> None: def _init_segments(self, fjm_file: BinaryIO) -> List[Tuple]: return [unpack(segment_format, fjm_file.read(segment_size)) for _ in range(self.segment_num)] - def _validate_header(self): + def _validate_header(self) -> None: if self.magic != fj_magic: raise FJReadFjmException(f'Error: bad magic code ({hex(self.magic)}, should be {hex(fj_magic)}).') if self.version not in SUPPORTED_VERSIONS: @@ -97,7 +97,7 @@ def _read_data(self, fjm_file: BinaryIO) -> List[int]: for i in range(0, len(file_data), word_bytes_size)] return data - def _init_memory(self, segments: List[Tuple], data: List[int]): + def _init_memory(self, segments: List[Tuple], data: List[int]) -> None: self.memory = {} self.zeros_boundaries = [] @@ -111,7 +111,7 @@ def _init_memory(self, segments: List[Tuple], data: List[int]): else: self.zeros_boundaries.append((segment_start + data_length, segment_start + segment_length)) - def __getitem__(self, address): + def __getitem__(self, address: int) -> int: address &= ((1 << self.w) - 1) if address not in self.memory: for start, end in self.zeros_boundaries: @@ -128,35 +128,35 @@ def __getitem__(self, address): self.memory[address] = garbage_val return self.memory[address] - def __setitem__(self, address, value): + def __setitem__(self, address: int, value: int) -> None: address &= ((1 << self.w) - 1) value &= ((1 << self.w) - 1) self.memory[address] = value - def bit_address_decompose(self, bit_address): + def bit_address_decompose(self, bit_address: int) -> Tuple[int, int]: address = (bit_address >> (self.w.bit_length() - 1)) & ((1 << self.w) - 1) bit = bit_address & (self.w - 1) return address, bit - def read_bit(self, bit_address): + def read_bit(self, bit_address) -> int: address, bit = self.bit_address_decompose(bit_address) return (self[address] >> bit) & 1 - def write_bit(self, bit_address, value): + def write_bit(self, bit_address, value) -> None: address, bit = self.bit_address_decompose(bit_address) if value: self[address] = self[address] | (1 << bit) else: self[address] = self[address] & ((1 << self.w) - 1 - (1 << bit)) - def get_word(self, bit_address): + def get_word(self, bit_address) -> int: address, bit = self.bit_address_decompose(bit_address) if bit == 0: return self[address] if address == ((1 << self.w) - 1): raise FJReadFjmException(f'Accessed outside of memory (beyond the last bit).') - l, m = self[address], self[address+1] - return ((l >> bit) | (m << (self.w - bit))) & ((1 << self.w) - 1) + lsw, msw = self[address], self[address+1] + return ((lsw >> bit) | (msw << (self.w - bit))) & ((1 << self.w) - 1) class Writer: @@ -179,7 +179,7 @@ def __init__(self, output_file, w, *, version=0, flags=0): self.segments = [] self.data = [] # words array - def write_to_file(self): + def write_to_file(self) -> None: write_tag = '<' + {8: 'B', 16: 'H', 32: 'L', 64: 'Q'}[self.word_size] with open(self.output_file, 'wb') as f: @@ -193,16 +193,46 @@ def write_to_file(self): for word in self.data: f.write(pack(write_tag, word)) - def add_segment(self, segment_start, segment_length, data_start, data_length): + @staticmethod + def _is_segment_collision(start1: int, end1: int, start2: int, end2: int) -> bool: + if any(start2 <= address <= end2 for address in (start1, end1)): + return True + if any(start1 <= address <= end1 for address in (start2, end2)): + return True + return False + + def _validate_segment_not_overlapping(self, new_start: int, new_length: int) -> None: + new_end = new_start + new_length - 1 + for i, (start, length, _, _) in enumerate(self.segments): + + if self._is_segment_collision(start, start + length - 1, new_start, new_end): + w = self.word_size + + bit_start = start * w + bit_end = (start + length) * w - 1 + + new_bit_start = new_start * w + new_bit_end = (new_start + new_length) * w - 1 + + raise FJWriteFjmException(f"Overlapping segments: " + f"seg[{i}]=[{hex(bit_start)}, {hex(bit_end)}]" + f" and " + f"seg[{len(self.segments)}]=[{hex(new_bit_start)}, {hex(new_bit_end)}]") + + def add_segment(self, segment_start: int, segment_length: int, data_start: int, data_length: int) -> None: if segment_length < data_length: - raise FJWriteFjmException(f"segment-length must be at-least data-length") + raise FJWriteFjmException(f"segment-length must be at-least data-length (in )") + + self._validate_segment_not_overlapping(segment_start, segment_length) + self.segments.append((segment_start, segment_length, data_start, data_length)) - def add_data(self, data): + def add_data(self, data: List[int]) -> Tuple[int, int]: start = len(self.data) + length = len(data) self.data += data - return start, len(data) + return start, length - def add_simple_segment_with_data(self, segment_start, data): + def add_simple_segment_with_data(self, segment_start, data) -> None: data_start, data_length = self.add_data(data) self.add_segment(segment_start, data_length, data_start, data_length) diff --git a/src/ops.py b/src/ops.py index a3fb200..1fd58f6 100644 --- a/src/ops.py +++ b/src/ops.py @@ -264,4 +264,20 @@ def new_label(macro_path: str, label_name: str) -> Expr: Op = Union[FlipJump, WordFlip, Label, MacroCall, RepCall, Segment, Reserve] -LastPhaseOp = Union[FlipJump, WordFlip, Segment, Reserve] + + +WFLIP_NOT_INSERTED_YET = -1 + + +class NewSegment: + def __init__(self, start_address: int): + self.start_address = start_address + self.wflip_start_address = WFLIP_NOT_INSERTED_YET + + +class ReserveBits: + def __init__(self, first_address_after_reserved: int): + self.first_address_after_reserved = first_address_after_reserved + + +LastPhaseOp = Union[FlipJump, WordFlip, NewSegment, ReserveBits] diff --git a/src/preprocessor.py b/src/preprocessor.py index ab843bc..0add6b0 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -1,25 +1,27 @@ from __future__ import annotations import collections -from typing import Dict, List, Tuple, Iterable, Union, Deque +from typing import Dict, Tuple, Iterable, Union, Deque import plotly.graph_objects as go from defs import main_macro, wflip_start_label, \ - BoundaryAddressesList, SegmentEntry, \ CodePosition, Macro, MacroName, \ macro_separator_string from exceptions import FJPreprocessorException, FJExprException from expr import Expr -from ops import FlipJump, WordFlip, Label, Segment, Reserve, MacroCall, RepCall, LastPhaseOp, new_label +from ops import FlipJump, WordFlip, Label, Segment, Reserve, MacroCall, RepCall, LastPhaseOp, new_label, NewSegment, \ + ReserveBits CurrTree = Deque[Union[MacroCall, RepCall]] -PreprocessorResults = Tuple[Deque[LastPhaseOp], Dict[str, Expr], BoundaryAddressesList] +PreprocessorResults = Tuple[Deque[LastPhaseOp], Dict[str, Expr]] def macro_resolve_error(curr_tree: CurrTree, msg='', *, orig_exception: BaseException = None) -> None: - error_str = f"Macro Resolve Error" + (f':\n {msg}' if msg else '.') + f'\nmacro call trace:\n' - for i, op in enumerate(curr_tree): - error_str += f' {i}) {op.trace_str()}\n' + error_str = f"Macro Resolve Error" + (f':\n {msg}\n' if msg else '.\n') + if curr_tree: + error_str += 'Macro call trace:\n' + for i, op in enumerate(curr_tree): + error_str += f' {i}) {op.trace_str()}\n' raise FJPreprocessorException(error_str) from orig_exception @@ -90,19 +92,28 @@ def __enter__(self): def __exit__(self, exc_type, exc_val, exc_tb): self.curr_tree.pop() - def __init__(self, ): + def __init__(self): self.curr_address: int = 0 - self.boundary_addresses: BoundaryAddressesList = [(SegmentEntry.StartAddress, 0)] # SegEntries + self.macro_code_size = collections.defaultdict(lambda: 0) + self.curr_tree: CurrTree = collections.deque() + self.curr_segment_index: int = 0 self.labels_code_positions: Dict[str, CodePosition] = {} self.result_ops: Deque[LastPhaseOp] = collections.deque() self.labels: Dict[str, Expr] = {} + first_segment: NewSegment = NewSegment(0) + self.last_new_segment: NewSegment = first_segment + self.result_ops.append(first_segment) + + def patch_last_wflip_address(self): + self.last_new_segment.wflip_start_address = self.curr_address + def finish(self, show_statistics: bool): - self.boundary_addresses.append((SegmentEntry.WflipAddress, self.curr_address)) + self.patch_last_wflip_address() if show_statistics: show_macro_usage_pie_graph(dict(self.macro_code_size), self.curr_address) @@ -111,7 +122,35 @@ def prepare_macro_call(self, calling_op: Union[MacroCall, RepCall], macros: Dict return PreprocessorData._PrepareMacroCall(self.curr_tree, calling_op, macros) def get_results(self) -> PreprocessorResults: - return self.result_ops, self.labels, self.boundary_addresses + return self.result_ops, self.labels + + def insert_segment(self, next_segment_start: int) -> None: + self.labels[f'{wflip_start_label}{self.curr_segment_index}'] = Expr(self.curr_address) + self.curr_segment_index += 1 + + self.patch_last_wflip_address() + + new_segment = NewSegment(next_segment_start) + self.last_new_segment = new_segment + self.result_ops.append(new_segment) + + self.curr_address = next_segment_start + + def insert_reserve(self, reserved_bits_size: int) -> None: + self.curr_address += reserved_bits_size + self.result_ops.append(ReserveBits(self.curr_address)) + + def insert_label(self, label: str, code_position: CodePosition): + if label in self.labels: + other_position = self.labels_code_positions[label] + macro_resolve_error(self.curr_tree, f'label declared twice - "{label}" on ' + f'{code_position} and {other_position}') + self.labels_code_positions[label] = code_position + self.labels[label] = Expr(self.curr_address) + + def register_macro_code_size(self, macro_path: str, init_curr_address: int): + if 1 <= len(self.curr_tree) <= 2: + self.macro_code_size[macro_path] += self.curr_address - init_curr_address def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool = False)\ @@ -134,19 +173,16 @@ def resolve_macro_aux(preprocessor_data: PreprocessorData, id_dict = get_id_dictionary(current_macro, args, current_macro.namespace, macro_path) for op in current_macro.ops: + if isinstance(op, Label): - label = op.eval_name(id_dict) - if label in preprocessor_data.labels: - other_position = preprocessor_data.labels_code_positions[label] - macro_resolve_error(preprocessor_data.curr_tree, f'label declared twice - "{label}" on ' - f'{op.code_position} and {other_position}') - preprocessor_data.labels[label] = Expr(preprocessor_data.curr_address) - preprocessor_data.labels_code_positions[label] = op.code_position + preprocessor_data.insert_label(op.eval_name(id_dict), op.code_position) + elif isinstance(op, FlipJump) or isinstance(op, WordFlip): preprocessor_data.curr_address += 2 * w id_dict['$'] = Expr(preprocessor_data.curr_address) preprocessor_data.result_ops.append(op.eval_new(id_dict)) del id_dict['$'] + elif isinstance(op, MacroCall): op = op.eval_new(id_dict) next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ @@ -155,59 +191,63 @@ def resolve_macro_aux(preprocessor_data: PreprocessorData, resolve_macro_aux(preprocessor_data, w, macros, op.macro_name, op.arguments, next_macro_path) + elif isinstance(op, RepCall): op = op.eval_new(id_dict) - try: - times = op.calculate_times(preprocessor_data.labels) - if times == 0: - continue - next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ - f"{op.code_position.short_str()}:rep{{}}:{op.macro_name}" - with preprocessor_data.prepare_macro_call(op, macros): - for i in range(times): - resolve_macro_aux(preprocessor_data, - w, macros, - op.macro_name, op.calculate_arguments(i), next_macro_path.format(i)) - except FJExprException as e: - macro_resolve_error(preprocessor_data.curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) + rep_times = get_rep_times(op, preprocessor_data) + if rep_times == 0: + continue + next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ + f"{op.code_position.short_str()}:rep{{}}:{op.macro_name}" + with preprocessor_data.prepare_macro_call(op, macros): + for i in range(rep_times): + resolve_macro_aux(preprocessor_data, + w, macros, + op.macro_name, op.calculate_arguments(i), next_macro_path.format(i)) + elif isinstance(op, Segment): op = op.eval_new(id_dict) - try: - value = op.calculate_address(preprocessor_data.labels) - if value % w != 0: - macro_resolve_error(preprocessor_data.curr_tree, f'segment ops must have a w-aligned address. In {op}.') - except FJExprException as e: - macro_resolve_error(preprocessor_data.curr_tree, f'segment failed.', orig_exception=e) - - preprocessor_data.boundary_addresses.append((SegmentEntry.WflipAddress, preprocessor_data.curr_address)) - preprocessor_data.labels[f'{wflip_start_label}{preprocessor_data.curr_segment_index}'] = Expr(preprocessor_data.curr_address) - preprocessor_data.curr_segment_index += 1 + next_segment_start = get_next_segment_start(op, preprocessor_data, w) + preprocessor_data.insert_segment(next_segment_start) - preprocessor_data.curr_address = value - preprocessor_data.boundary_addresses.append((SegmentEntry.StartAddress, preprocessor_data.curr_address)) - - preprocessor_data.result_ops.append(op) elif isinstance(op, Reserve): op = op.eval_new(id_dict) - try: - value = op.calculate_reserved_bit_size(preprocessor_data.labels) - if value % w != 0: - macro_resolve_error(preprocessor_data.curr_tree, f'reserve ops must have a w-aligned value. In {op}.') - except FJExprException as e: - macro_resolve_error(preprocessor_data.curr_tree, f'reserve failed.', orig_exception=e) - - preprocessor_data.curr_address += value + reserved_bits_size = get_reserved_bits_size(op, preprocessor_data, w) + preprocessor_data.insert_reserve(reserved_bits_size) - preprocessor_data.boundary_addresses.append((SegmentEntry.ReserveAddress, preprocessor_data.curr_address)) - preprocessor_data.labels[f'{wflip_start_label}{preprocessor_data.curr_segment_index}'] = Expr(preprocessor_data.curr_address) - preprocessor_data.curr_segment_index += 1 - - preprocessor_data.result_ops.append(op) else: macro_resolve_error(preprocessor_data.curr_tree, f"Can't assemble this opcode - {str(op)}") - if 1 <= len(preprocessor_data.curr_tree) <= 2: - preprocessor_data.macro_code_size[macro_path] += preprocessor_data.curr_address - init_curr_address + preprocessor_data.register_macro_code_size(macro_path, init_curr_address) + + +def get_rep_times(op: RepCall, preprocessor_data: PreprocessorData): + try: + return op.calculate_times(preprocessor_data.labels) + except FJExprException as e: + macro_resolve_error(preprocessor_data.curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) + + +def get_next_segment_start(op: Segment, preprocessor_data: PreprocessorData, w: int): + try: + next_segment_start = op.calculate_address(preprocessor_data.labels) + if next_segment_start % w != 0: + macro_resolve_error(preprocessor_data.curr_tree, f'segment ops must have a w-aligned address: ' + f'{hex(next_segment_start)}. In {op.code_position}.') + return next_segment_start + except FJExprException as e: + macro_resolve_error(preprocessor_data.curr_tree, f'segment failed.', orig_exception=e) + + +def get_reserved_bits_size(op: Reserve, preprocessor_data: PreprocessorData, w: int): + try: + reserved_bits_size = op.calculate_reserved_bit_size(preprocessor_data.labels) + if reserved_bits_size % w != 0: + macro_resolve_error(preprocessor_data.curr_tree, f'reserve ops must have a w-aligned value: ' + f'{hex(reserved_bits_size)}. In {op.code_position}.') + return reserved_bits_size + except FJExprException as e: + macro_resolve_error(preprocessor_data.curr_tree, f'reserve failed.', orig_exception=e) def get_id_dictionary(current_macro: Macro, args: Iterable[Expr], namespace: str, macro_path: str): From 98e3761a39174a65b2564ce520f26617c36a654e Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 23 Jul 2022 01:15:22 +0300 Subject: [PATCH 29/66] remove handled TODO --- src/assembler.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 04762ad..68246c5 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -49,8 +49,6 @@ def assert_address_in_memory(w: int, address: int): def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], w: int, writer: fjm.Writer) -> None: - # TODO check that there are no collisions (including after the wflip area) (in the fjm.py / Writer.add_segment() - fj_words = [] wflip_words = [] From 5587b2936bb6c34ab47b3a27de29620e55c96246 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 23 Jul 2022 11:00:59 +0300 Subject: [PATCH 30/66] src/README.md init with TODOs --- README.md | 6 ++---- src/README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 src/README.md diff --git a/README.md b/README.md index 500fd26..434ff41 100644 --- a/README.md +++ b/README.md @@ -90,8 +90,8 @@ You can also **[Test the project](tests/README.md)** with the project's tests, a You can also assemble and run separately: ```bash ->>> fja.py hello.fj -o hello_world.fjm ->>> fji.py hello.fjm +>>> fj.py --asm hello.fj -o hello_world.fjm +>>> fj.py --run hello_world.fjm Hello, World! ``` @@ -115,8 +115,6 @@ Hello, World! - fjm_run.py - interpreter assembled fj files. - defs.py - classes/functions/constants used throughout the project. - fjm.py - read/write .fjm (flip-jump-memory) files. - - fja.py - the FlipJump Assembler script. - - fji.py - the FlipJump Interpreter script. - fj.py - the FlipJump Assembler & Interpreter script. other branches: - [cpp_fji/](https://github.com/tomhea/flip-jump/tree/cpp-interpreter/src/cpp_fji) - the cpp interpreter (much faster, about 2Mfj/s). diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..bc4b11f --- /dev/null +++ b/src/README.md @@ -0,0 +1,43 @@ +# FlipJump Source Code + +## The FlipJump Macro-Assembler + +// TODO - explain in one/two sentences about each file. +// explain the assembler pipeline +// explain how to call the assembler + +## The FlipJump Interpreter + +// TODO - explain in one/two sentences about each file +// explain how the interpreter works (dictionary) and what is supports (unaligned-access?) +// explain how to call the interpreter +// explain about the debugger and its capabilities + +// explain about generated label names + + + + +An example fj [hello-world](programs/print_tests/hello_no-stl.fj) program, not using the standard library. + + +# Project Structure + +**[src](src)** (assembler + interpreter source files): + - fj_parser.py - pythonic lex/yacc parser. + - preprocessor.py - unwind all macros and reps. + - assembler.py - assembles the macroless fj file. + - fjm_run.py - interpreter assembled fj files. + - defs.py - classes/functions/constants used throughout the project. + - fjm.py - read/write .fjm (flip-jump-memory) files. + - fj.py - the FlipJump Assembler & Interpreter script. +other branches: + - [cpp_fji/](https://github.com/tomhea/flip-jump/tree/cpp-interpreter/src/cpp_fji) - the cpp interpreter (much faster, about 2Mfj/s). + - [riscv2fj/](https://github.com/tomhea/flip-jump/tree/riscv2fj/src/riscv2fj) - translates a riscv-executable to an equivalent fj code. + + +# Read More + +A very extensive explanation can be found on the [GitHub wiki page](https://github.com/tomhea/flip-jump/wiki/Learn-FlipJump). + +More detailed explanation and the **specifications of the FlipJump assembly** can be found on the [FlipJump esolangs page](https://esolangs.org/wiki/FlipJump). From 298da37b8745efb4055150dadc28fbdedc1f495d Mon Sep 17 00:00:00 2001 From: Tomhe Date: Mon, 25 Jul 2022 01:56:56 +0300 Subject: [PATCH 31/66] src/README, remove debug_and_Run --- README.md | 7 +++--- src/README.md | 57 ++++++++++++++++++++++++++++-------------------- src/fj.py | 17 ++++++++------- src/fj_parser.py | 44 +++++++++++++++++++++++++++---------- src/fjm_run.py | 41 +++------------------------------- tests/test_fj.py | 6 +++-- 6 files changed, 86 insertions(+), 86 deletions(-) diff --git a/README.md b/README.md index 434ff41..f348118 100644 --- a/README.md +++ b/README.md @@ -111,11 +111,12 @@ Hello, World! **[src](src)** (assembler + interpreter source files): - fj_parser.py - pythonic lex/yacc parser. - preprocessor.py - unwind all macros and reps. - - assembler.py - assembles the macroless fj file. - - fjm_run.py - interpreter assembled fj files. - - defs.py - classes/functions/constants used throughout the project. + - assembler.py - assembles the macro-less fj file. + - fjm_run.py - interpret / debug assembled fj files. - fjm.py - read/write .fjm (flip-jump-memory) files. - fj.py - the FlipJump Assembler & Interpreter script. + - ops/expr/defs/breakpoints.py - classes/functions/consts used throughout the project. + other branches: - [cpp_fji/](https://github.com/tomhea/flip-jump/tree/cpp-interpreter/src/cpp_fji) - the cpp interpreter (much faster, about 2Mfj/s). - [riscv2fj/](https://github.com/tomhea/flip-jump/tree/riscv2fj/src/riscv2fj) - translates a riscv-executable to an equivalent fj code. diff --git a/src/README.md b/src/README.md index bc4b11f..7d24d80 100644 --- a/src/README.md +++ b/src/README.md @@ -2,42 +2,51 @@ ## The FlipJump Macro-Assembler -// TODO - explain in one/two sentences about each file. -// explain the assembler pipeline -// explain how to call the assembler +The assembler has 4 steps: +- parsing the .fj text files into a dictionary of macros and their ops ([fj_parser.py](fj_parser.py)). +- resolving the macros (and reps) to get a straight stream of ops ([preprocessor.py](preprocessor.py)). +- resolving the labels values and getting the ops binary data ([assembler.py](assembler.py)). +- writing the binary data into the executable ([fjm.py](fjm.py)). + +The whole process is executed within the [assemble()](assembler.py) function. + +- The [ops.py](ops.py) file contains the classes of the different ops. +- The [expr.py](expr.py) file contains the expression class (Expr), used to maintain a mathematical expression based on numbers and labels. ## The FlipJump Interpreter -// TODO - explain in one/two sentences about each file -// explain how the interpreter works (dictionary) and what is supports (unaligned-access?) -// explain how to call the interpreter -// explain about the debugger and its capabilities +The Interpreter ([fjm_run.py](fjm_run.py)) stores the entire memory in a dictionary {address: value}, and supports unaligned-word access. -// explain about generated label names +The Interpreter has a built-in debugger, and it's activated by specifying breakpoints when called (via a [BreakpointHandler](breakpoints.py)). +The debugger can stop on the next breakpoint, or on a fixed number of executed ops after the current breakpoint. +In order to call the debugger with the right labels, get familiar with the [generating label names](README.md#Generated-Label-Names). +The whole interpretation is done within [run()](fjm_run.py) function. +### Generated Label Names -An example fj [hello-world](programs/print_tests/hello_no-stl.fj) program, not using the standard library. +The generated label string is a concatenation of the macro call tree, each separated by '---', and finish with the label local-name. +Each macro call string is as follows:\ +short_file_name : line : macro_called -# Project Structure +So if a->bit.b->hex.c->my_label (a,bit.b called from file f2 lines 3,5; hex.c from file s1, line 72), the label's name will be:\ +f2:3:a---f2:5:bit.b---s1:72:hex.c---my_label -**[src](src)** (assembler + interpreter source files): - - fj_parser.py - pythonic lex/yacc parser. - - preprocessor.py - unwind all macros and reps. - - assembler.py - assembles the macroless fj file. - - fjm_run.py - interpreter assembled fj files. - - defs.py - classes/functions/constants used throughout the project. - - fjm.py - read/write .fjm (flip-jump-memory) files. - - fj.py - the FlipJump Assembler & Interpreter script. -other branches: - - [cpp_fji/](https://github.com/tomhea/flip-jump/tree/cpp-interpreter/src/cpp_fji) - the cpp interpreter (much faster, about 2Mfj/s). - - [riscv2fj/](https://github.com/tomhea/flip-jump/tree/riscv2fj/src/riscv2fj) - translates a riscv-executable to an equivalent fj code. +On a rep-call (on index==i), the macro call string is:\ +short_file_name : line : rep{i} : macro_called\ +for example: f1:32:rep6:hex.print---print_label -# Read More +## More Files + +- The [fj.py](fj.py) file is the main FlipJump script. run with --help to see its capabilities. +- The [fjm.py](fjm.py) file helps to read and write a .fjm file. +- The [defs.py](defs.py) file contains functionality used across source, and project's definitions. +- The [exceptions.py](exceptions.py) file contains exceptions definitions. -A very extensive explanation can be found on the [GitHub wiki page](https://github.com/tomhea/flip-jump/wiki/Learn-FlipJump). -More detailed explanation and the **specifications of the FlipJump assembly** can be found on the [FlipJump esolangs page](https://esolangs.org/wiki/FlipJump). + + +# Read More diff --git a/src/fj.py b/src/fj.py index 8515d3e..39aa561 100644 --- a/src/fj.py +++ b/src/fj.py @@ -10,6 +10,7 @@ from defs import get_stl_paths from exceptions import FJReadFjmException +from src.breakpoints import get_breakpoint_handler ErrorFunc = Callable[[str], None] @@ -107,14 +108,14 @@ def run(in_fjm_path: Path, debug_file: Path, args: argparse.Namespace, error_fun io_device = StandardIO(not args.no_output) try: - termination_statistics = \ - fjm_run.debug_and_run(in_fjm_path, - debugging_file=debug_file, - io_device=io_device, - show_trace=args.trace, - time_verbose=not args.silent, - breakpoint_labels=breakpoint_set, - breakpoint_contains_labels=breakpoint_contains_set) + breakpoint_handler = get_breakpoint_handler(debug_file, set(), breakpoint_set, breakpoint_contains_set) + termination_statistics = fjm_run.run( + in_fjm_path, + io_device=io_device, + show_trace=args.trace, + time_verbose=not args.silent, + breakpoint_handler=breakpoint_handler + ) if not args.silent: print(termination_statistics) except FJReadFjmException as e: diff --git a/src/fj_parser.py b/src/fj_parser.py index 2fb66be..0ee5082 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -1,6 +1,6 @@ from os import path from pathlib import Path -from typing import Set, List, Tuple, Dict +from typing import Set, List, Tuple, Dict, Union from sly import Lexer, Parser @@ -632,22 +632,44 @@ def exit_if_errors(): raise FJParsingException(f'Errors found in file {curr_file}. Assembly stopped.') +def validate_current_file(files_seen: Set[Union[str, Path]]): + if not path.isfile(curr_file): + raise FJParsingException(f"No such file {curr_file}.") + + if curr_file_short_name in files_seen: + raise FJParsingException(f"Short file name is repeated: '{curr_file_short_name}'.") + + abs_path = curr_file.absolute() + if abs_path in files_seen: + raise FJParsingException(f".fj file path is repeated: '{abs_path}'.") + + files_seen.add(curr_file_short_name) + files_seen.add(abs_path) + + +def lex_parse_curr_file(lexer: FJLexer, parser: FJParser): + global curr_text, curr_namespace + curr_text = curr_file.open('r').read() + curr_namespace = [] + + lex_res = lexer.tokenize(curr_text) + exit_if_errors() + + parser.parse(lex_res) + exit_if_errors() + + def parse_macro_tree(input_files: List[Tuple[str, Path]], w: int, warning_as_errors: bool): global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace error_occurred = False + files_seen: Set[Union[str, Path]] = set() + lexer = FJLexer() parser = FJParser(w, warning_as_errors) - for curr_file_short_name, curr_file in input_files: - if not path.isfile(curr_file): - raise FJParsingException(f"No such file {curr_file}.") - curr_text = open(curr_file, 'r').read() - curr_namespace = [] - - lex_res = lexer.tokenize(curr_text) - exit_if_errors() - parser.parse(lex_res) - exit_if_errors() + for curr_file_short_name, curr_file in input_files: + validate_current_file(files_seen) + lex_parse_curr_file(lexer, parser) return parser.macros diff --git a/src/fjm_run.py b/src/fjm_run.py index 58f77be..99a0b39 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -79,10 +79,10 @@ def run(fjm_path: Path, *, time_verbose: bool = False) \ -> TerminationStatistics: """ - run a .fjm file (a FlipJump interpreter) + run / debug a .fjm file (a FlipJump interpreter) @param fjm_path: the path to the .fjm file - @param breakpoint_handler: the breakpoint handler - @param io_device: the device handling input/output + @param breakpoint_handler:[in]: the breakpoint handler (if not None - debug, and break on its breakpoints) + @param io_device:[in,out]: the device handling input/output @param show_trace: if true print every opcode executed @param time_verbose: if true print running times @return: the run's termination-statistics @@ -157,38 +157,3 @@ def trace_flip(ip: int, flip_address: int, show_trace: bool) -> None: if show_trace: print(hex(ip)[2:].rjust(7), end=': ') print(hex(flip_address)[2:], end='; ', flush=True) - - -def debug_and_run(fjm_path: Path, *, - show_trace: bool = False, - time_verbose: bool = False, - debugging_file: Path = None, - io_device: Optional[IODevice] = None, - breakpoint_addresses: Optional[Set[int]] = None, - breakpoint_labels: Optional[Set[str]] = None, - breakpoint_contains_labels: Optional[Set[str]] = None) \ - -> TerminationStatistics: - """ - run a .fjm file with a breakpoint_handler (a FlipJump interpreter & debugger) - @param fjm_path: the path to the .fjm file - @param show_trace: if true print every opcode executed - @param time_verbose: if true print running times - @param debugging_file: the debug file path (created at assemble time) - @param io_device: the device handling input/output - @param breakpoint_addresses: set of addresses to break at - @param breakpoint_labels: set of labels to break at - @param breakpoint_contains_labels: set of strings, to break at every label that contains one of them - @return: the run's termination-statistics - """ - breakpoint_handler = get_breakpoint_handler( - debugging_file, breakpoint_addresses, breakpoint_labels, breakpoint_contains_labels) - - termination_statistics = run( - fjm_path, - io_device=io_device, - show_trace=show_trace, - time_verbose=time_verbose, - breakpoint_handler=breakpoint_handler - ) - - return termination_statistics diff --git a/tests/test_fj.py b/tests/test_fj.py index 6d5f420..707ba26 100644 --- a/tests/test_fj.py +++ b/tests/test_fj.py @@ -42,8 +42,10 @@ def __init__(self, test_name: str, fj_paths: str, fjm_out_path: str, included_files = get_stl_paths() if self.use_stl else [] fj_paths_list = map(str.strip, fj_paths.split('|')) fj_absolute_paths_list = [ROOT_PATH / fj_path for fj_path in fj_paths_list] - fj_files = included_files + fj_absolute_paths_list - self.fj_files_tuples = [('', path) for path in fj_files] + + included_files_tuples = [(f's{i}', path) for i, path in enumerate(included_files, start=1)] + fj_paths_tuples = [(f'f{i}', path) for i, path in enumerate(fj_absolute_paths_list, start=1)] + self.fj_files_tuples = included_files_tuples + fj_paths_tuples self.fjm_out_path = ROOT_PATH / fjm_out_path From 3c5c7501127ba65d8fa09718b4fc0306d551c256 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Tue, 26 Jul 2022 23:20:58 +0300 Subject: [PATCH 32/66] finish src/readme --- README.md | 10 +++++----- src/README.md | 13 ++++++++----- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f348118..664978b 100644 --- a/README.md +++ b/README.md @@ -108,13 +108,13 @@ Hello, World! # Project Structure -**[src](src)** (assembler + interpreter source files): +**[src](src/README.md)** (assembler + interpreter source files): + - fj.py - the FlipJump Assembler & Interpreter script. + - fjm.py - read/write .fjm (flip-jump-memory) files. + - fjm_run.py - interpret / debug assembled fj files. - fj_parser.py - pythonic lex/yacc parser. - preprocessor.py - unwind all macros and reps. - assembler.py - assembles the macro-less fj file. - - fjm_run.py - interpret / debug assembled fj files. - - fjm.py - read/write .fjm (flip-jump-memory) files. - - fj.py - the FlipJump Assembler & Interpreter script. - ops/expr/defs/breakpoints.py - classes/functions/consts used throughout the project. other branches: @@ -141,7 +141,7 @@ other branches: - [print_dec.fj](programs/print_tests/print_dec.fj) - prints binary variables as decimals. - [multi_comp/](programs/multi_comp) - simulates a big project (compilation of multiple files). -**[tests](tests)** (FlipJump programs), for example: +**[tests](tests/README.md)** (FlipJump programs), for example: - compiled/ - the designated directory for the assembled tests files. - inout/ - .in and .out files for each test in the folder above. - conftest.py - pytest configuration file. diff --git a/src/README.md b/src/README.md index 7d24d80..600c4bf 100644 --- a/src/README.md +++ b/src/README.md @@ -5,7 +5,7 @@ The assembler has 4 steps: - parsing the .fj text files into a dictionary of macros and their ops ([fj_parser.py](fj_parser.py)). - resolving the macros (and reps) to get a straight stream of ops ([preprocessor.py](preprocessor.py)). -- resolving the labels values and getting the ops binary data ([assembler.py](assembler.py)). +- resolving the label values and getting the ops binary data ([assembler.py](assembler.py)). - writing the binary data into the executable ([fjm.py](fjm.py)). The whole process is executed within the [assemble()](assembler.py) function. @@ -29,21 +29,24 @@ The whole interpretation is done within [run()](fjm_run.py) function. The generated label string is a concatenation of the macro call tree, each separated by '---', and finish with the label local-name. Each macro call string is as follows:\ -short_file_name : line : macro_called +short_file_name **:** line **:** macro_called -So if a->bit.b->hex.c->my_label (a,bit.b called from file f2 lines 3,5; hex.c from file s1, line 72), the label's name will be:\ +So if a->bit.b->hex.c->my_label: (a, bit.b called from file f2 lines 3,5; hex.c from file s1, line 72), the label's name will be:\ f2:3:a---f2:5:bit.b---s1:72:hex.c---my_label On a rep-call (on index==i), the macro call string is:\ short_file_name : line : rep{i} : macro_called\ -for example: f1:32:rep6:hex.print---print_label +for example: f1:32:rep6:hex.print---f2:17:print_bit---print_label + +the short_file_name is (by default) s1,s2,s3,.. for the standard library files (in the order of [stl/conf.json - all](../stl/conf.json)), +and f1,f2,f3,.. for the compiled .fj files, in the order they are mentioned to the compiler (or appear in the test-line). ## More Files - The [fj.py](fj.py) file is the main FlipJump script. run with --help to see its capabilities. - The [fjm.py](fjm.py) file helps to read and write a .fjm file. -- The [defs.py](defs.py) file contains functionality used across source, and project's definitions. +- The [defs.py](defs.py) file contains functionality used across source, and the project definitions. - The [exceptions.py](exceptions.py) file contains exceptions definitions. From b7e5976994f0379d9452be73c2285793142cd1c7 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Wed, 27 Jul 2022 00:07:07 +0300 Subject: [PATCH 33/66] add stl TODOs --- stl/declib.fj | 5 +++++ stl/ptrlib.fj | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/stl/declib.fj b/stl/declib.fj index d3c2e8f..ab53f37 100644 --- a/stl/declib.fj +++ b/stl/declib.fj @@ -12,6 +12,11 @@ +// TODO implement dec.vec, maths (inc_by, add, sub, mul, div), if/cmp, input/output. +// no need for logics, pointers. + + + // ---------- Memory Variables: // Size Complexity: 1 diff --git a/stl/ptrlib.fj b/stl/ptrlib.fj index 3879a4a..414e647 100644 --- a/stl/ptrlib.fj +++ b/stl/ptrlib.fj @@ -14,6 +14,11 @@ +// TODO read 4-bit values (good for bit/hex/dec) values from pointers. +// it might be cool to implement hex pointers if it can improve speed easily, but it's not needed. + + + // ---------- Init From 98531ba7f81128882db625c6173de3b26999b4f6 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Thu, 28 Jul 2022 05:54:42 +0300 Subject: [PATCH 34/66] parser functionalized, minimized_expr fixed --- src/expr.py | 16 +- src/fj_parser.py | 377 ++++++++++++++++++++++------------------------- 2 files changed, 192 insertions(+), 201 deletions(-) diff --git a/src/expr.py b/src/expr.py index 1dac0d2..26452ea 100644 --- a/src/expr.py +++ b/src/expr.py @@ -6,7 +6,7 @@ from exceptions import FJExprException -parsing_op2func = { +op_string_to_function = { '+': add, '-': sub, '*': mul, '/': floordiv, '%': mod, '<<': lshift, '>>': rshift, '^': xor, '|': or_, '&': and_, '#': lambda x: x.bit_length(), @@ -24,8 +24,11 @@ class Expr: def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr, ...]]]): self.val = expr + def is_int(self) -> bool: + return isinstance(self.val, int) + def __int__(self): - if isinstance(self.val, int): + if self.is_int(): return self.val raise FJExprException(f"Can't resolve labels: {', '.join(self.all_unknown_labels())}") @@ -50,7 +53,7 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(id_dict) for e in args) if all(isinstance(e.val, int) for e in evaluated_args): try: - return Expr(parsing_op2func[op](*(arg.val for arg in evaluated_args))) + return Expr(op_string_to_function[op](*(arg.val for arg in evaluated_args))) except Exception as e: raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)}.') return Expr((op, evaluated_args)) @@ -72,3 +75,10 @@ def __str__(self) -> str: if isinstance(self.val, int): return hex(self.val)[2:] raise FJExprException(f'bad expression: {self.val} (of type {type(self.val)})') + + +def get_minimized_expr(op: str, params: Tuple[Expr, ...]): + if all(param.is_int() for param in params): + return Expr(op_string_to_function[op](*map(int, params))) + else: + return Expr((op, params)) diff --git a/src/fj_parser.py b/src/fj_parser.py index 0ee5082..59a75e1 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -2,25 +2,27 @@ from pathlib import Path from typing import Set, List, Tuple, Dict, Union -from sly import Lexer, Parser +import sly +from sly.yacc import YaccProduction as ParsedRule +from sly.lex import Token from defs import get_char_value_and_length, \ main_macro, next_address, \ number_re, dot_id_re, id_re, string_re, \ CodePosition, Macro, MacroName from exceptions import FJExprException, FJParsingException -from expr import Expr -from ops import get_used_labels, get_declared_labels, MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, \ - Op +from expr import Expr, get_minimized_expr +from ops import get_used_labels, get_declared_labels, \ + MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, Op global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace, reserved_names -def get_position(lineno: int): +def get_position(lineno: int) -> CodePosition: return CodePosition(curr_file, curr_file_short_name, lineno) -def syntax_error(lineno: int, msg=''): +def syntax_error(lineno: int, msg='') -> None: global error_occurred error_occurred = True curr_position = get_position(lineno) @@ -32,7 +34,7 @@ def syntax_error(lineno: int, msg=''): print(f"Syntax Error in {curr_position}") -def syntax_warning(line, is_error, msg=''): +def syntax_warning(line: int, is_error: bool, msg: str = '') -> None: if is_error: global error_occurred error_occurred = True @@ -47,7 +49,7 @@ def syntax_warning(line, is_error, msg=''): print() -class FJLexer(Lexer): +class FJLexer(sly.Lexer): tokens = {NS, DEF, REP, WFLIP, SEGMENT, RESERVE, ID, DOT_ID, NUMBER, STRING, @@ -101,7 +103,7 @@ class FJLexer(Lexer): ignore = ' \t' - def NUMBER(self, t): + def NUMBER(self, t: Token) -> Token: n = t.value if len(n) >= 2: if n[0] == "'": @@ -116,7 +118,7 @@ def NUMBER(self, t): t.value = int(t.value) return t - def STRING(self, t): + def STRING(self, t: Token) -> Token: chars = [] s = t.value[1:-1] i = 0 @@ -127,11 +129,11 @@ def STRING(self, t): t.value = sum(val << (i*8) for i, val in enumerate(chars)) return t - def NL(self, t): + def NL(self, t: Token) -> Token: self.lineno += 1 return t - def error(self, t): + def error(self, t: Token) -> None: global error_occurred error_occurred = True print() @@ -139,7 +141,7 @@ def error(self, t): self.index += 1 -class FJParser(Parser): +class FJParser(sly.Parser): tokens = FJLexer.tokens # TODO add Unary Minus (-), Unary Not (~). Maybe add logical or (||) and logical and (&&). Maybe handle power (**). precedence = ( @@ -161,280 +163,313 @@ def __init__(self, w: int, warning_as_errors: bool): self.warning_as_errors: bool = warning_as_errors self.macros: Dict[MacroName, Macro] = {main_macro: Macro([], [], [], '', None)} - def check_macro_name(self, name: MacroName, lineno: int): + def validate_free_macro_name(self, name: MacroName, lineno: int) -> None: global reserved_names - base_name = self.ns_to_base_name(name.name) + base_name = self.to_base_name(name.name) if base_name in reserved_names: syntax_error(lineno, f'macro name can\'t be {name.name} ({base_name} is a reserved name)!') if name in self.macros: syntax_error(lineno, f'macro {name} is declared twice! ' f'also declared in {self.macros[name].code_position}.') - def check_params(self, ids, macro_name: MacroName, lineno: int): + def validate_params(self, ids: List[str], macro_name: MacroName, lineno: int) -> None: for param_id in ids: if param_id in self.consts: syntax_error(lineno, f'parameter {param_id} in macro {macro_name}) ' f'is also defined as a constant variable (with value {self.consts[param_id]})') - for i1 in range(len(ids)): - for i2 in range(i1): - if ids[i1] == ids[i2]: - syntax_error(lineno, f'parameter {ids[i1]} in macro {macro_name}) ' - f'is declared twice!') - - def check_label_usage(self, labels_used: Set[str], labels_declared: Set[str], params: Set[str], externs: Set[str], - global_labels: Set[str], lineno: int, macro_name: MacroName): - if global_labels & externs: + seen_ids = set() + for _id in ids: + if _id in seen_ids: + syntax_error(lineno, f'parameter {_id} in macro {macro_name}) is declared twice!') + else: + seen_ids.add(_id) + + def validate_label_usage(self, labels_used: Set[str], labels_declared: Set[str], + regular_labels: Set[str], extern_labels: Set[str], global_labels: Set[str], + lineno: int, macro_name: MacroName) -> None: + self.validate_labels_groups(extern_labels, global_labels, regular_labels, lineno, macro_name) + + self.validate_no_unused_labels(regular_labels, labels_declared, labels_used, lineno, macro_name) + self.validate_no_bad_label_declarations(regular_labels, extern_labels, labels_declared, lineno, macro_name) + self.validate_no_unknown_label_uses(regular_labels, global_labels, labels_declared, labels_used, + lineno, macro_name) + + @staticmethod + def validate_labels_groups(extern_labels: Set[str], global_labels: Set[str], regular_labels: Set[str], + lineno: int, macro_name: MacroName) -> None: + if global_labels & extern_labels: syntax_error(lineno, f"In macro {macro_name}: " - f"extern labels can't be global labels: " + ', '.join(global_labels & externs)) - if global_labels & params: + f"extern labels can't be global labels: " + ', '.join(global_labels & extern_labels)) + if global_labels & regular_labels: syntax_error(lineno, f"In macro {macro_name}: " - f"extern labels can't be regular labels: " + ', '.join(global_labels & params)) - if externs & params: + f"extern labels can't be regular labels: " + ', '.join(global_labels & regular_labels)) + if extern_labels & regular_labels: syntax_error(lineno, f"In macro {macro_name}: " - f"global labels can't be regular labels: " + ', '.join(externs & params)) + f"global labels can't be regular labels: " + ', '.join(extern_labels & regular_labels)) - unused_labels = params - labels_used.union(self.ns_to_base_name(label) for label in labels_declared) + def validate_no_unused_labels(self, regular_labels: Set[str], + labels_declared: Set[str], labels_used: Set[str], + lineno: int, macro_name: MacroName) -> None: + unused_labels = regular_labels - labels_used.union(self.to_base_name(label) for label in labels_declared) if unused_labels: syntax_warning(lineno, self.warning_as_errors, f"In macro {macro_name}: " f"unused labels: {', '.join(unused_labels)}.") - bad_declarations = labels_declared - set(self.ns_full_name(label) for label in externs.union(params)) + def validate_no_bad_label_declarations(self, regular_labels: Set[str], extern_labels: Set[str], + labels_declared: Set[str], + lineno: int, macro_name: MacroName) -> None: + bad_declarations = labels_declared - set( + self.ns_full_name(label) for label in extern_labels.union(regular_labels)) if bad_declarations: syntax_warning(lineno, self.warning_as_errors, f"In macro {macro_name}: " f"Declared a not extern/parameter label: {', '.join(bad_declarations)}.") - bad_uses = labels_used - global_labels - params - set(labels_declared) - {'$'} + def validate_no_unknown_label_uses(self, regular_labels: Set[str], global_labels: Set[str], + labels_declared: Set[str], labels_used: Set[str], + lineno: int, macro_name: MacroName) -> None: + bad_uses = labels_used - global_labels - regular_labels - set(labels_declared) - {'$'} if bad_uses: syntax_warning(lineno, self.warning_as_errors, f"In macro {macro_name}: " f"Used a not global/parameter/declared-extern label: {', '.join(bad_uses)}.") @staticmethod - def validate_no_segment_or_reserve(ops: List[Op], macro_name: str): + def validate_no_segment_or_reserve(ops: List[Op], macro_name: MacroName) -> None: for op in ops: if isinstance(op, Segment): syntax_error(op.code_position.line, f"segment can't be declared inside a macro ({macro_name}).") if isinstance(op, Reserve): syntax_error(op.code_position.line, f"reserve can't be declared inside a macro ({macro_name}).") + def validate_macro_declaration(self, name: MacroName, ops: List[Op], lineno: int, + params: List[str], local_params: List[str], + global_params: Set[str], extern_params: Set[str]) -> None: + self.validate_free_macro_name(name, lineno) + + regular_params = params + local_params + self.validate_params(regular_params, name, lineno) + self.validate_label_usage(get_used_labels(ops), get_declared_labels(ops), + set(regular_params), set(extern_params), set(global_params), + lineno, name) + + self.validate_no_segment_or_reserve(ops, name) + @staticmethod - def ns_name(): + def ns_name() -> str: return '.'.join(curr_namespace) @staticmethod - def ns_full_name(base_name): + def ns_full_name(base_name: str) -> str: return '.'.join(curr_namespace + [base_name]) @staticmethod - def dot_id_to_ns_full_name(p): - base_name = p.DOT_ID + def base_name_to_ns_full_name(base_name: str, lineno: int) -> str: without_dots = base_name.lstrip('.') if len(without_dots) == len(base_name): return base_name + num_of_dots = len(base_name) - len(without_dots) if num_of_dots - 1 > len(curr_namespace): - syntax_error(p.lineno, f'Used more leading dots than current namespace depth ' + syntax_error(lineno, f'Used more leading dots than current namespace depth ' f'({num_of_dots}-1 > {len(curr_namespace)})') + return '.'.join(curr_namespace[:len(curr_namespace)-(num_of_dots-1)] + [without_dots]) @staticmethod - def ns_to_base_name(name): + def to_base_name(name: str) -> str: return name.split('.')[-1] - def error(self, token): + def error(self, token: Token) -> None: global error_occurred error_occurred = True print() print(f'Syntax Error in {get_position(token.lineno)}, token=("{token.type}", {token.value})') @_('definable_line_statements') - def program(self, p): + def program(self, p: ParsedRule) -> None: ops = p.definable_line_statements self.macros[main_macro].ops.extend(ops) @_('definable_line_statements NL definable_line_statement') - def definable_line_statements(self, p): + def definable_line_statements(self, p: ParsedRule) -> List[Op]: if p.definable_line_statement: return p.definable_line_statements + p.definable_line_statement return p.definable_line_statements @_('definable_line_statement') - def definable_line_statements(self, p): + def definable_line_statements(self, p: ParsedRule) -> List[Op]: if p.definable_line_statement: return p.definable_line_statement return [] @_('') - def empty(self, p): + def empty(self, p: ParsedRule) -> None: return None @_('line_statement') - def definable_line_statement(self, p): + def definable_line_statement(self, p: ParsedRule) -> List[Op]: return p.line_statement @_('macro_def') - def definable_line_statement(self, p): + def definable_line_statement(self, p: ParsedRule) -> List[Op]: return [] @_('NS ID') - def namespace(self, p): + def namespace(self, p: ParsedRule) -> None: curr_namespace.append(p.ID) @_('namespace "{" NL definable_line_statements NL "}"') - def definable_line_statement(self, p): + def definable_line_statement(self, p: ParsedRule) -> List[Op]: curr_namespace.pop() return p.definable_line_statements @_('DEF ID macro_params "{" NL line_statements NL "}"') - def macro_def(self, p): + def macro_def(self, p: ParsedRule) -> None: params, local_params, global_params, extern_params = p.macro_params name = MacroName(self.ns_full_name(p.ID), len(params)) - self.check_macro_name(name, p.lineno) - self.check_params(params + local_params, name, p.lineno) ops = p.line_statements - used_labels = get_used_labels(ops) - declared_labels = get_declared_labels(ops) - self.check_label_usage(used_labels, declared_labels, set(params + local_params), set(extern_params), - set(global_params), p.lineno, name) - self.validate_no_segment_or_reserve(ops, name) + self.validate_macro_declaration(name, ops, p.lineno, params, local_params, global_params, extern_params) + self.macros[name] = Macro(params, local_params, ops, self.ns_name(), get_position(p.lineno)) return None @_('empty') - def maybe_ids(self, p): + def maybe_ids(self, p: ParsedRule) -> List[str]: return [] @_('IDs') - def maybe_ids(self, p): + def maybe_ids(self, p: ParsedRule) -> List[str]: return p.IDs @_('empty') - def maybe_local_ids(self, p): + def maybe_local_ids(self, p: ParsedRule) -> List[str]: return [] @_('"@" IDs') - def maybe_local_ids(self, p): + def maybe_local_ids(self, p: ParsedRule) -> List[str]: return p.IDs @_('empty') - def maybe_extern_ids(self, p): - return [] - - @_('empty') - def maybe_global_ids(self, p): + def maybe_global_ids(self, p: ParsedRule) -> List[str]: return [] @_('"<" ids') - def maybe_global_ids(self, p): + def maybe_global_ids(self, p: ParsedRule) -> List[str]: return p.ids + @_('empty') + def maybe_extern_ids(self, p: ParsedRule) -> List[str]: + return [] + @_('">" IDs') - def maybe_extern_ids(self, p): + def maybe_extern_ids(self, p: ParsedRule) -> List[str]: return p.IDs @_('maybe_ids maybe_local_ids maybe_global_ids maybe_extern_ids') - def macro_params(self, p): + def macro_params(self, p: ParsedRule) -> Tuple[List[str], List[str], List[str], List[str]]: return p.maybe_ids, p.maybe_local_ids, p.maybe_global_ids, p.maybe_extern_ids @_('IDs "," ID') - def IDs(self, p): + def IDs(self, p: ParsedRule) -> List[str]: return p.IDs + [p.ID] @_('ID') - def IDs(self, p): + def IDs(self, p: ParsedRule) -> List[str]: return [p.ID] @_('line_statements NL line_statement') - def line_statements(self, p): + def line_statements(self, p: ParsedRule) -> List[Op]: + # TODO extend statements instead of list + list, and return the extended + # (ctrl+f "statement" and change all to it) return p.line_statements + p.line_statement @_('line_statement') - def line_statements(self, p): + def line_statements(self, p: ParsedRule) -> List[Op]: return p.line_statement # @_('empty') - # def line_statements(self, p): + # def line_statements(self, p: ParsedRule) -> List[Op]: # return [] @_('empty') - def line_statement(self, p): + def line_statement(self, p: ParsedRule) -> List[Op]: return [] @_('statement') - def line_statement(self, p): + def line_statement(self, p: ParsedRule) -> List[Op]: if p.statement: return [p.statement] return [] @_('label statement') - def line_statement(self, p): + def line_statement(self, p: ParsedRule) -> List[Op]: if p.statement: return [p.label, p.statement] return [p.label] @_('label') - def line_statement(self, p): + def line_statement(self, p: ParsedRule) -> List[Op]: return [p.label] @_('ID ":"') - def label(self, p): + def label(self, p: ParsedRule) -> Label: return Label(self.ns_full_name(p.ID), get_position(p.lineno)) @_('expr SC') - def statement(self, p): + def statement(self, p: ParsedRule) -> FlipJump: return FlipJump(p.expr, next_address(), get_position(p.lineno)) @_('expr SC expr') - def statement(self, p): + def statement(self, p: ParsedRule) -> FlipJump: return FlipJump(p.expr0, p.expr1, get_position(p.lineno)) @_('SC expr') - def statement(self, p): + def statement(self, p: ParsedRule) -> FlipJump: return FlipJump(Expr(0), p.expr, get_position(p.lineno)) @_('SC') - def statement(self, p): + def statement(self, p: ParsedRule) -> FlipJump: return FlipJump(Expr(0), next_address(), get_position(p.lineno)) @_('ID') - def id(self, p): + def id(self, p: ParsedRule) -> Tuple[str, int]: return p.ID, p.lineno @_('DOT_ID') - def id(self, p): - return self.dot_id_to_ns_full_name(p), p.lineno + def id(self, p: ParsedRule) -> Tuple[str, int]: + return self.base_name_to_ns_full_name(p.DOT_ID, p.lineno), p.lineno @_('ids "," id') - def ids(self, p): + def ids(self, p: ParsedRule) -> List[str]: return p.ids + [p.id[0]] @_('id') - def ids(self, p): + def ids(self, p: ParsedRule) -> List[str]: return [p.id[0]] @_('id') - def statement(self, p): + def statement(self, p: ParsedRule) -> MacroCall: macro_name, lineno = p.id return MacroCall(macro_name, [], get_position(lineno)) @_('id expressions') - def statement(self, p): + def statement(self, p: ParsedRule) -> MacroCall: macro_name, lineno = p.id return MacroCall(macro_name, p.expressions, get_position(lineno)) @_('WFLIP expr "," expr') - def statement(self, p): + def statement(self, p: ParsedRule) -> WordFlip: return WordFlip(p.expr0, p.expr1, next_address(), get_position(p.lineno)) @_('WFLIP expr "," expr "," expr') - def statement(self, p): + def statement(self, p: ParsedRule) -> WordFlip: return WordFlip(p.expr0, p.expr1, p.expr2, get_position(p.lineno)) @_('ID "=" expr') - def statement(self, p): + def statement(self, p: ParsedRule) -> None: name = self.ns_full_name(p.ID) if name in self.consts: syntax_error(p.lineno, f'Can\'t redeclare the variable "{name}".') @@ -446,193 +481,139 @@ def statement(self, p): syntax_error(p.lineno, f'Can\'t evaluate expression: {str(evaluated)}.') @_('REP "(" expr "," ID ")" id') - def statement(self, p): + def statement(self, p: ParsedRule) -> RepCall: macro_name, lineno = p.id code_position = get_position(lineno) return RepCall(p.expr, p.ID, macro_name, [], code_position) @_('REP "(" expr "," ID ")" id expressions') - def statement(self, p): + def statement(self, p: ParsedRule) -> RepCall: macro_name, lineno = p.id code_position = get_position(lineno) return RepCall(p.expr, p.ID, macro_name, p.expressions, code_position) @_('SEGMENT expr') - def statement(self, p): + def statement(self, p: ParsedRule) -> Segment: return Segment(p.expr, get_position(p.lineno)) @_('RESERVE expr') - def statement(self, p): + def statement(self, p: ParsedRule) -> Reserve: return Reserve(p.expr, get_position(p.lineno)) @_('expressions "," expr') - def expressions(self, p): + def expressions(self, p: ParsedRule) -> List[Expr]: return p.expressions + [p.expr] @_('expr') - def expressions(self, p): + def expressions(self, p: ParsedRule) -> List[Expr]: return [p.expr] @_('expr_') - def expr(self, p): + def expr(self, p: ParsedRule) -> Expr: return p.expr_[0] @_('expr_ "+" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a + b), p.lineno - return Expr(('+', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('+', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ "-" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a - b), p.lineno - return Expr(('-', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('-', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ "*" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a * b), p.lineno - return Expr(('*', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('*', (p.expr_0[0], p.expr_1[0])), p.lineno @_('"#" expr_') - def expr_(self, p): - a = p.expr_[0] - if a is int: - return Expr(a.bit_length()), p.lineno - return Expr(('#', (a,))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('#', (p.expr_[0],)), p.lineno @_('expr_ "/" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a // b), p.lineno - return Expr(('/', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('/', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ "%" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a % b), p.lineno - return Expr(('%', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('%', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ SHL expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a << b), p.lineno - return Expr(('<<', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('<<', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ SHR expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a >> b), p.lineno - return Expr(('>>', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('>>', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ "^" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a ^ b), p.lineno - return Expr(('^', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('^', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ "|" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a | b), p.lineno - return Expr(('|', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('|', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ "&" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(a & b), p.lineno - return Expr(('&', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('&', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ "?" expr_ ":" expr_') - def expr_(self, p): - a, b, c = p.expr_0[0], p.expr_1[0], p.expr_2[0] - if a is int and b is int and c is int: - return Expr(b if a else c), p.lineno - return Expr(('?:', (a, b, c))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('?:', (p.expr_0[0], p.expr_1[0], p.expr_2[0])), p.lineno @_('expr_ "<" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(1 if a < b else 0), p.lineno - return Expr(('<', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('<', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ ">" expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(1 if a > b else 0), p.lineno - return Expr(('>', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('>', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ LE expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(1 if a <= b else 0), p.lineno - return Expr(('<=', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('<=', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ GE expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(1 if a >= b else 0), p.lineno - return Expr(('>=', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('>=', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ EQ expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(1 if a == b else 0), p.lineno - return Expr(('==', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('==', (p.expr_0[0], p.expr_1[0])), p.lineno @_('expr_ NEQ expr_') - def expr_(self, p): - a, b = p.expr_0[0], p.expr_1[0] - if a is int and b is int: - return Expr(1 if a != b else 0), p.lineno - return Expr(('!=', (a, b))), p.lineno + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: + return get_minimized_expr('!=', (p.expr_0[0], p.expr_1[0])), p.lineno @_('"(" expr_ ")"') - def expr_(self, p): + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: return p.expr_ @_('NUMBER') - def expr_(self, p): + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: return Expr(p.NUMBER), p.lineno @_('STRING') - def expr_(self, p): + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: return Expr(p.STRING), p.lineno @_('"$"') - def expr_(self, p): + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: return next_address(), p.lineno @_('id') - def expr_(self, p): + def expr_(self, p: ParsedRule) -> Tuple[Expr, int]: id_str, lineno = p.id if id_str in self.consts: return self.consts[id_str], lineno return Expr(id_str), lineno -def exit_if_errors(): +def exit_if_errors() -> None: if error_occurred: raise FJParsingException(f'Errors found in file {curr_file}. Assembly stopped.') -def validate_current_file(files_seen: Set[Union[str, Path]]): +def validate_current_file(files_seen: Set[Union[str, Path]]) -> None: if not path.isfile(curr_file): raise FJParsingException(f"No such file {curr_file}.") @@ -647,7 +628,7 @@ def validate_current_file(files_seen: Set[Union[str, Path]]): files_seen.add(abs_path) -def lex_parse_curr_file(lexer: FJLexer, parser: FJParser): +def lex_parse_curr_file(lexer: FJLexer, parser: FJParser) -> None: global curr_text, curr_namespace curr_text = curr_file.open('r').read() curr_namespace = [] From 385a4bd90b2f2f7f2f3ee9a318bd312805e94831 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 29 Jul 2022 00:33:03 +0300 Subject: [PATCH 35/66] fj_parser .extend() and documented --- src/fj_parser.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/fj_parser.py b/src/fj_parser.py index 59a75e1..186b3cc 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -290,12 +290,12 @@ def error(self, token: Token) -> None: @_('definable_line_statements') def program(self, p: ParsedRule) -> None: ops = p.definable_line_statements - self.macros[main_macro].ops.extend(ops) + self.macros[main_macro].ops += ops @_('definable_line_statements NL definable_line_statement') def definable_line_statements(self, p: ParsedRule) -> List[Op]: if p.definable_line_statement: - return p.definable_line_statements + p.definable_line_statement + p.definable_line_statements.extend(p.definable_line_statement) return p.definable_line_statements @_('definable_line_statement') @@ -382,9 +382,8 @@ def IDs(self, p: ParsedRule) -> List[str]: @_('line_statements NL line_statement') def line_statements(self, p: ParsedRule) -> List[Op]: - # TODO extend statements instead of list + list, and return the extended - # (ctrl+f "statement" and change all to it) - return p.line_statements + p.line_statement + p.line_statements.extend(p.line_statement) + return p.line_statements @_('line_statement') def line_statements(self, p: ParsedRule) -> List[Op]: @@ -640,8 +639,17 @@ def lex_parse_curr_file(lexer: FJLexer, parser: FJParser) -> None: exit_if_errors() -def parse_macro_tree(input_files: List[Tuple[str, Path]], w: int, warning_as_errors: bool): - global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace +def parse_macro_tree(input_files: List[Tuple[str, Path]], w: int, warning_as_errors: bool) \ + -> Dict[MacroName, Macro]: + """ + parse the .fj files and create a macro-dictionary. + The files will be parsed as if they were concatenated. + @param input_files:[in]: a list of (short_file_name, fj_file_path). The files will to be parsed in that given order. + @param w:[in]: the memory-width + @param warning_as_errors:[in]: stop also on warnings + @return: the macro-dictionary. + """ + global curr_file, curr_file_short_name, error_occurred error_occurred = False files_seen: Set[Union[str, Path]] = set() From 967e1c96f03b40c59ead14a5ffd527d50ad74ced Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 29 Jul 2022 13:48:09 +0300 Subject: [PATCH 36/66] reorganize defs.py, renames --- programs/quine16.fj | 6 +-- src/assembler.py | 91 +++++++++++++++++++++++++++------------------ src/breakpoints.py | 8 +++- src/defs.py | 68 +++++++++------------------------ src/expr.py | 70 +++++++++++++++++++++------------- src/fj.py | 2 +- src/fj_parser.py | 40 +++++++++++++++++--- src/fjm.py | 35 ++++++++++++----- src/fjm_run.py | 5 ++- src/ops.py | 5 ++- src/preprocessor.py | 14 ++++--- 11 files changed, 203 insertions(+), 141 deletions(-) diff --git a/programs/quine16.fj b/programs/quine16.fj index 39bf637..ad7733f 100644 --- a/programs/quine16.fj +++ b/programs/quine16.fj @@ -1,4 +1,4 @@ -// $ python3 src/fja.py -w 16 quine16.fj -o quine16.fjm && python3 src/fji.py -s quine16.fjm >/tmp/output && diff quine16.fjm /tmp/output && echo "quine!" +// $ python3 src/fj.py --asm -w 16 quine16.fj -o quine16.fjm && python3 src/fj.py --run -s quine16.fjm >/tmp/output && diff quine16.fjm /tmp/output && echo "quine!" // // Author: Luis Fernando Estrozi ( https://github.com/lestrozi ) // @@ -16,10 +16,10 @@ // I took the liberty to define a Quine for FlipJump as a binary (fjm) that prints itself (including the header struct). // // First, create quine16.fjm from the source: -// `$ python3 src/fja.py -w 16 quine16.fj -o quine16.fjm` +// `$ python3 src/fj.py --asm -w 16 quine16.fj -o quine16.fjm` // // Then the quine can be checked using: -// `$ python3 fji.py -s quine16.fjm >output` +// `$ python3 fj.py --run -s quine16.fjm >output` // `$ diff quine16.fjm output` // // diff --git a/src/assembler.py b/src/assembler.py index 68246c5..22d51bb 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -6,16 +6,16 @@ from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from defs import PrintTimer -from exceptions import FJAssemblerException, FJException, FJWriteFjmException from expr import Expr +from defs import PrintTimer from ops import FlipJump, WordFlip, LastPhaseOp, NewSegment, ReserveBits +from exceptions import FJAssemblerException, FJException, FJWriteFjmException -def close_segment(w: int, - writer: fjm.Writer, - first_address: int, last_address: int, - fj_words: List[int], wflip_words: Optional[List[int]]) -> None: +def add_segment_to_fjm(w: int, + fjm_writer: fjm.Writer, + first_address: int, last_address: int, + fj_words: List[int], wflip_words: Optional[List[int]]) -> None: if first_address == last_address: return @@ -26,13 +26,13 @@ def close_segment(w: int, assert_address_in_memory(w, last_address) words_to_write = fj_words if wflip_words is None else fj_words + wflip_words - data_start, data_length = writer.add_data(words_to_write) + data_start, data_length = fjm_writer.add_data(words_to_write) first_word_address = first_address // w segment_word_length = (last_address - first_address) // w try: - writer.add_segment(first_word_address, segment_word_length, data_start, data_length) + fjm_writer.add_segment(first_word_address, segment_word_length, data_start, data_length) except FJWriteFjmException as e: raise FJAssemblerException(f"failed to add the segment: " f"[{hex(first_address)}, {hex(last_address-1)}].") from e @@ -47,14 +47,32 @@ def assert_address_in_memory(w: int, address: int): raise FJAssemblerException(f"Not enough space with the {w}-width.") +def insert_wflip_ops(wflip_address: int, flip_value: int, return_address: int, + fj_words: List[int], wflip_words: List[int], w: int, word_address: int): + flip_bits = [i for i in range(w) if flip_value & (1 << i)] + + if len(flip_bits) <= 1: + fj_words += (word_address + flip_bits[0] if flip_bits else 0, return_address) + else: + fj_words += (word_address + flip_bits[0], wflip_address) + next_op = wflip_address + for bit in flip_bits[1:-1]: + next_op += 2 * w + wflip_words += (word_address + bit, next_op) + wflip_words += (word_address + flip_bits[-1], return_address) + wflip_address = next_op + 2 * w + + return wflip_address + + def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], - w: int, writer: fjm.Writer) -> None: + w: int, fjm_writer: fjm.Writer) -> None: fj_words = [] wflip_words = [] first_segment: NewSegment = ops.popleft() - first_address = first_segment.start_address - wflip_address = first_segment.wflip_start_address + first_address: int = first_segment.start_address + wflip_address: int = first_segment.wflip_start_address for op in ops: @@ -72,43 +90,42 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], except FJException as e: raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e - flip_bits = [i for i in range(w) if flip_value & (1 << i)] - - if len(flip_bits) <= 1: - fj_words += (word_address + flip_bits[0] if flip_bits else 0, return_address) - else: - fj_words += (word_address + flip_bits[0], wflip_address) - next_op = wflip_address - for bit in flip_bits[1:-1]: - next_op += 2*w - wflip_words += (word_address+bit, next_op) - wflip_words += (word_address + flip_bits[-1], return_address) - wflip_address = next_op + 2 * w - - if wflip_address >= (1 << w): - raise FJAssemblerException(f"Not enough space with the {w}-width.") + wflip_address = insert_wflip_ops(wflip_address, flip_value, return_address, + fj_words, wflip_words, w, word_address) elif isinstance(op, NewSegment): - close_segment(w, writer, first_address, wflip_address, fj_words, wflip_words) + add_segment_to_fjm(w, fjm_writer, first_address, wflip_address, fj_words, wflip_words) first_address = op.start_address wflip_address = op.wflip_start_address elif isinstance(op, ReserveBits): - close_segment(w, writer, first_address, op.first_address_after_reserved, fj_words, None) + add_segment_to_fjm(w, fjm_writer, first_address, op.first_address_after_reserved, fj_words, None) first_address = op.first_address_after_reserved else: raise FJAssemblerException(f"Can't resolve/assemble the next opcode - {str(op)}") - close_segment(w, writer, first_address, wflip_address, fj_words, wflip_words) + add_segment_to_fjm(w, fjm_writer, first_address, wflip_address, fj_words, wflip_words) -def assemble(input_files: List[Tuple[str, Path]], output_file, w, - *, version=0, flags=0, - warning_as_errors=True, - show_statistics=False, debugging_file=None, print_time=True)\ +def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, + *, version: int = 0, flags: int = 0, + warning_as_errors: bool = True, + show_statistics: bool = False, debugging_file: Optional[Path] = None, print_time: bool = True)\ -> None: - writer = fjm.Writer(output_file, w, version=version, flags=flags) + """ + runs the assembly pipeline. assembles the input files to a .fjm. + @param input_files:[in]: a list of (short_file_name, fj_file_path). The files will to be parsed in that given order. + @param output_file:[in]: the path to the .fjm file + @param w:[in]: the memory-width + @param version: the .fjm version + @param flags: the .fjm flags + @param warning_as_errors: treat warnings as errors (stop execution on warnings) + @param show_statistics: if true shows macro-usage statistics + @param debugging_file:[in]: is specified, save debug information in this file + @param print_time: if true prints the times of each assemble-stage + """ + fjm_writer = fjm.Writer(output_file, w, version=version, flags=flags) with PrintTimer(' parsing: ', print_time=print_time): macros = parse_macro_tree(input_files, w, warning_as_errors) @@ -117,12 +134,12 @@ def assemble(input_files: List[Tuple[str, Path]], output_file, w, ops, labels = resolve_macros(w, macros, show_statistics=show_statistics) with PrintTimer(' labels resolve: ', print_time=print_time): - labels_resolve(ops, labels, w, writer) + labels_resolve(ops, labels, w, fjm_writer) with PrintTimer(' create binary: ', print_time=print_time): - writer.write_to_file() + fjm_writer.write_to_file() - labels = {label: labels[label].val for label in labels} + labels = {label: labels[label].value for label in labels} if debugging_file: with open(debugging_file, 'wb') as f: diff --git a/src/breakpoints.py b/src/breakpoints.py index 0312de0..f1821cd 100644 --- a/src/breakpoints.py +++ b/src/breakpoints.py @@ -6,7 +6,8 @@ import easygui import fjm -from defs import get_nice_label_repr + +from defs import macro_separator_string class BreakpointHandlerUnnecessary(Exception): @@ -18,6 +19,11 @@ def display_message_box_and_get_answer(msg: str, title: str, choices: List[str]) return easygui.buttonbox(msg, title, choices) +def get_nice_label_repr(label: str, pad: int = 0) -> str: + parts = label.split(macro_separator_string) + return ' ->\n'.join(f"{' '*(pad+i)}{part}" for i, part in enumerate(parts)) + + class BreakpointHandler: """ Handle breakpoints (know when breakpoints happen, query user for action). diff --git a/src/defs.py b/src/defs.py index e8b65d6..9f513fa 100644 --- a/src/defs.py +++ b/src/defs.py @@ -1,42 +1,13 @@ from __future__ import annotations +import dataclasses import json from enum import IntEnum # IntEnum equality works between files. from pathlib import Path from time import time -from typing import List, Tuple +from typing import List -from ops import CodePosition, Op, MacroName -from expr import Expr - -id_re = r'[a-zA-Z_][a-zA-Z_0-9]*' -dot_id_re = fr'(({id_re})|\.*)?(\.({id_re}))+' - -bin_num = r'0[bB][01]+' -hex_num = r'0[xX][0-9a-fA-F]+' -dec_num = r'[0-9]+' - -char_escape_dict = {'0': 0x0, 'a': 0x7, 'b': 0x8, 'e': 0x1b, 'f': 0xc, 'n': 0xa, 'r': 0xd, 't': 0x9, 'v': 0xb, - '\\': 0x5c, "'": 0x27, '"': 0x22, '?': 0x3f} -escape_chars = ''.join(k for k in char_escape_dict) -char = fr'[ -~]|\\[{escape_chars}]|\\[xX][0-9a-fA-F]{{2}}' - -number_re = fr"({bin_num})|({hex_num})|('({char})')|({dec_num})" -string_re = fr'"({char})*"' - -wflip_start_label = '_.wflip_area_start_' - - -def next_address() -> Expr: - return Expr('$') - - -def get_char_value_and_length(s: str) -> Tuple[int, int]: - if s[0] != '\\': - return ord(s[0]), 1 - if s[1] in char_escape_dict: - return char_escape_dict[s[1]], 2 - return int(s[2:4], 16), 4 +from ops import CodePosition, Op def get_stl_paths() -> List[Path]: @@ -60,12 +31,13 @@ def __str__(self) -> str: bytes_encoding = 'raw_unicode_escape' -def get_nice_label_repr(label: str, pad: int = 0) -> str: - parts = label.split(macro_separator_string) - return ' ->\n'.join(f"{' '*(pad+i)}{part}" for i, part in enumerate(parts)) - - class PrintTimer: + """ + prints the time a code segment took. + usage: + with PrintTimer('long_function time: '): + long_function() + """ def __init__(self, init_message: str, *, print_time: bool = True): self.init_message = init_message self.print_time = print_time @@ -80,17 +52,13 @@ def __exit__(self, exc_type, exc_val, exc_tb) -> None: print(f'{time() - self.start_time:.3f}s') +@dataclasses.dataclass class Macro: - # [(params, quiet_params), statements, (curr_file, p.lineno, ns_name)] - - def __init__(self, params: List[str], local_params: List[str], - ops: List[Op], namespace: str, - code_position: CodePosition): - self.params = params - self.local_params = local_params - self.ops = ops - self.namespace = namespace - self.code_position = code_position - - -main_macro = MacroName('') + """ + The python representation of a .fj macro. + """ + params: List[str] + local_params: List[str] + ops: List[Op] + namespace: str + code_position: CodePosition diff --git a/src/expr.py b/src/expr.py index 26452ea..e72437e 100644 --- a/src/expr.py +++ b/src/expr.py @@ -6,6 +6,8 @@ from exceptions import FJExprException +# dictionary from a math-op string, to its pythonic function. +# @note: if changed, update Expr.__str__(). op_string_to_function = { '+': add, '-': sub, '*': mul, '/': floordiv, '%': mod, '<<': lshift, '>>': rshift, '^': xor, '|': or_, '&': and_, @@ -21,46 +23,58 @@ class Expr: + """ + The python representation of a .fj expression (from labels, consts and math-ops) + """ def __init__(self, expr: Union[int, str, Tuple[str, Tuple[Expr, ...]]]): - self.val = expr + self.value = expr def is_int(self) -> bool: - return isinstance(self.val, int) + return isinstance(self.value, int) def __int__(self): if self.is_int(): - return self.val + return self.value raise FJExprException(f"Can't resolve labels: {', '.join(self.all_unknown_labels())}") def all_unknown_labels(self) -> Set[str]: - if isinstance(self.val, int): + """ + @return: all labels used (recursively) in this expression. + """ + if isinstance(self.value, int): return set() - if isinstance(self.val, str): - return {self.val} - return set(label for expr in self.val[1] for label in expr.all_unknown_labels()) + if isinstance(self.value, str): + return {self.value} + return set(label for expr in self.value[1] for label in expr.all_unknown_labels()) - # replaces every string it can with its dictionary value, and evaluates anything it can. + # def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: - if isinstance(self.val, int): - return Expr(self.val) + """ + creates a new Expr, as minimal as possible. + replaces every string it can with its dictionary value, and evaluates any op it can. + @param id_dict: the str->Expr dictionary to be used + @return: the new Expr + """ + if isinstance(self.value, int): + return Expr(self.value) - if isinstance(self.val, str): - if self.val in id_dict: - return id_dict[self.val].eval_new({}) - return Expr(self.val) + if isinstance(self.value, str): + if self.value in id_dict: + return id_dict[self.value].eval_new({}) + return Expr(self.value) - op, args = self.val + op, args = self.value evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(id_dict) for e in args) - if all(isinstance(e.val, int) for e in evaluated_args): + if all(isinstance(e.value, int) for e in evaluated_args): try: - return Expr(op_string_to_function[op](*(arg.val for arg in evaluated_args))) + return Expr(op_string_to_function[op](*(arg.value for arg in evaluated_args))) except Exception as e: raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)}.') return Expr((op, evaluated_args)) def __str__(self) -> str: - if isinstance(self.val, tuple): - op, expressions = self.val + if isinstance(self.value, tuple): + op, expressions = self.value if len(expressions) == 1: e1 = expressions[0] return f'(#{str(e1)})' @@ -70,14 +84,20 @@ def __str__(self) -> str: else: e1, e2, e3 = expressions return f'({str(e1)} ? {str(e2)} : {str(e3)})' - if isinstance(self.val, str): - return self.val - if isinstance(self.val, int): - return hex(self.val)[2:] - raise FJExprException(f'bad expression: {self.val} (of type {type(self.val)})') + if isinstance(self.value, str): + return self.value + if isinstance(self.value, int): + return hex(self.value)[2:] + raise FJExprException(f'bad expression: {self.value} (of type {type(self.value)})') -def get_minimized_expr(op: str, params: Tuple[Expr, ...]): +def get_minimized_expr(op: str, params: Tuple[Expr, ...]) -> Expr: + """ + tries to calculate the op on the params, if possible. returns the resulting Expr. + @param op: the math-op string + @param params: the op parameters + @return: the expression + """ if all(param.is_int() for param in params): return Expr(op_string_to_function[op](*map(int, params))) else: diff --git a/src/fj.py b/src/fj.py index 39aa561..73e2cc2 100644 --- a/src/fj.py +++ b/src/fj.py @@ -10,7 +10,7 @@ from defs import get_stl_paths from exceptions import FJReadFjmException -from src.breakpoints import get_breakpoint_handler +from breakpoints import get_breakpoint_handler ErrorFunc = Callable[[str], None] diff --git a/src/fj_parser.py b/src/fj_parser.py index 186b3cc..efbf169 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -6,14 +6,12 @@ from sly.yacc import YaccProduction as ParsedRule from sly.lex import Token -from defs import get_char_value_and_length, \ - main_macro, next_address, \ - number_re, dot_id_re, id_re, string_re, \ - CodePosition, Macro, MacroName +from defs import Macro from exceptions import FJExprException, FJParsingException from expr import Expr, get_minimized_expr from ops import get_used_labels, get_declared_labels, \ - MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, Op + CodePosition, MacroName, Op, main_macro, \ + MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace, reserved_names @@ -49,6 +47,32 @@ def syntax_warning(line: int, is_error: bool, msg: str = '') -> None: print() +# Regex for the parser + +id_re = r'[a-zA-Z_][a-zA-Z_0-9]*' +dot_id_re = fr'(({id_re})|\.*)?(\.({id_re}))+' + +bin_num = r'0[bB][01]+' +hex_num = r'0[xX][0-9a-fA-F]+' +dec_num = r'[0-9]+' + +char_escape_dict = {'0': 0x0, 'a': 0x7, 'b': 0x8, 'e': 0x1b, 'f': 0xc, 'n': 0xa, 'r': 0xd, 't': 0x9, 'v': 0xb, + '\\': 0x5c, "'": 0x27, '"': 0x22, '?': 0x3f} +escape_chars = ''.join(k for k in char_escape_dict) +char = fr'[ -~]|\\[{escape_chars}]|\\[xX][0-9a-fA-F]{{2}}' + +number_re = fr"({bin_num})|({hex_num})|('({char})')|({dec_num})" +string_re = fr'"({char})*"' + + +def get_char_value_and_length(s: str) -> Tuple[int, int]: + if s[0] != '\\': + return ord(s[0]), 1 + if s[1] in char_escape_dict: + return char_escape_dict[s[1]], 2 + return int(s[2:4], 16), 4 + + class FJLexer(sly.Lexer): tokens = {NS, DEF, REP, WFLIP, SEGMENT, RESERVE, @@ -141,6 +165,10 @@ def error(self, t: Token) -> None: self.index += 1 +def next_address() -> Expr: + return Expr('$') + + class FJParser(sly.Parser): tokens = FJLexer.tokens # TODO add Unary Minus (-), Unary Not (~). Maybe add logical or (||) and logical and (&&). Maybe handle power (**). @@ -646,7 +674,7 @@ def parse_macro_tree(input_files: List[Tuple[str, Path]], w: int, warning_as_err The files will be parsed as if they were concatenated. @param input_files:[in]: a list of (short_file_name, fj_file_path). The files will to be parsed in that given order. @param w:[in]: the memory-width - @param warning_as_errors:[in]: stop also on warnings + @param warning_as_errors:[in]: treat warnings as errors (stop execution on warnings) @return: the macro-dictionary. """ global curr_file, curr_file_short_name, error_occurred diff --git a/src/fjm.py b/src/fjm.py index 7acc45d..8a22f91 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -1,7 +1,7 @@ import struct +from enum import IntEnum from pathlib import Path from struct import pack, unpack -from random import randint from time import sleep from typing import BinaryIO, List, Tuple @@ -41,14 +41,25 @@ segment_format = ' int: if start <= address < end: self.memory[address] = 0 return 0 - garbage_val = randint(0, (1 << self.w) - 1) + + garbage_val = 0 garbage_message = f'Reading garbage word at mem[{hex(address << self.w)[2:]}] = {hex(garbage_val)[2:]}' - if self.stop_after_garbage: + + if GarbageHandling.Stop == self.garbage_handling: raise FJReadFjmException(garbage_message) - print(f'\nWarning: {garbage_message}') - if self.slow_garbage_read: + elif GarbageHandling.OnlyWarning == self.garbage_handling: + print(f'\nWarning: {garbage_message}') + elif GarbageHandling.SlowRead == self.garbage_handling: + print(f'\nWarning: {garbage_message}') sleep(0.1) + self.memory[address] = garbage_val + return self.memory[address] def __setitem__(self, address: int, value: int) -> None: diff --git a/src/fjm_run.py b/src/fjm_run.py index 99a0b39..0a07e6b 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -1,10 +1,11 @@ from pathlib import Path from time import time -from typing import Optional, Set +from typing import Optional import fjm + from defs import TerminationCause, PrintTimer -from breakpoints import BreakpointHandler, handle_breakpoint, get_breakpoint_handler +from breakpoints import BreakpointHandler, handle_breakpoint from io_devices.IODevice import IODevice from io_devices.BrokenIO import BrokenIO diff --git a/src/ops.py b/src/ops.py index 1fd58f6..47f636d 100644 --- a/src/ops.py +++ b/src/ops.py @@ -40,6 +40,9 @@ def __eq__(self, other): return type(other) == MacroName and self.to_tuple() == other.to_tuple() +main_macro = MacroName('') + + class FlipJump: """ data = [flip_address, jump_address] @@ -240,7 +243,7 @@ def __str__(self): def eval_name(self, id_dict: Dict[str, Expr]) -> str: if self.name in id_dict: - new_name = id_dict[self.name].val + new_name = id_dict[self.name].value if isinstance(new_name, str): return new_name raise FJExprException(f'Bad label swap (from {self.name} to {id_dict[self.name]}) in {self.code_position}.') diff --git a/src/preprocessor.py b/src/preprocessor.py index 0add6b0..460a605 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -1,20 +1,22 @@ from __future__ import annotations + import collections from typing import Dict, Tuple, Iterable, Union, Deque import plotly.graph_objects as go -from defs import main_macro, wflip_start_label, \ - CodePosition, Macro, MacroName, \ - macro_separator_string -from exceptions import FJPreprocessorException, FJExprException from expr import Expr -from ops import FlipJump, WordFlip, Label, Segment, Reserve, MacroCall, RepCall, LastPhaseOp, new_label, NewSegment, \ - ReserveBits +from defs import CodePosition, Macro, macro_separator_string +from exceptions import FJPreprocessorException, FJExprException +from ops import FlipJump, WordFlip, Label, Segment, Reserve, MacroCall, RepCall, \ + LastPhaseOp, new_label, MacroName, main_macro, NewSegment, ReserveBits + CurrTree = Deque[Union[MacroCall, RepCall]] PreprocessorResults = Tuple[Deque[LastPhaseOp], Dict[str, Expr]] +wflip_start_label = '_.wflip_area_start_' + def macro_resolve_error(curr_tree: CurrTree, msg='', *, orig_exception: BaseException = None) -> None: error_str = f"Macro Resolve Error" + (f':\n {msg}\n' if msg else '.\n') From 60b6aa8e26635aad892079f6faf5c3c0d4c632f6 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 30 Jul 2022 00:00:28 +0300 Subject: [PATCH 37/66] hide instead of skip tests --- tests/conftest.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index d701976..197f2d1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -18,6 +18,11 @@ COMPILE_ARGUMENTS_FIXTURE = "compile_args" RUN_ARGUMENTS_FIXTURE = "run_args" +fixtures_name_to_type = { + COMPILE_ARGUMENTS_FIXTURE: CompileTestArgs, + RUN_ARGUMENTS_FIXTURE: RunTestArgs, +} + TESTS_PATH = Path(__file__).parent with open(TESTS_PATH / 'conf.json', 'r') as tests_json: @@ -240,6 +245,27 @@ def get_option(opt): metafunc.parametrize(RUN_ARGUMENTS_FIXTURE, run_tests__heavy_first, ids=repr) +def is_not_skipped(test) -> bool: + if hasattr(test, 'callspec') and hasattr(test.callspec, 'params'): + for fixture_name, fixture_type in fixtures_name_to_type.items(): + params = test.callspec.params + if fixture_name in params: + return isinstance(params[fixture_name], fixture_type) + return True + + +@pytest.hookimpl(hookwrapper=True) +def pytest_collectreport(report): + report.result = filter(is_not_skipped, report.result) + yield + + +@pytest.hookimpl(hookwrapper=True) +def pytest_collection_modifyitems(config, items): + yield + items[:] = filter(is_not_skipped, items) + + def get_tests_from_csvs__heavy_first__execute_once(get_option: Callable[[str], Any]) -> Tuple[List, List]: """ get the tests from the csv. heavy first. From 51ee6a4788e5fae718879e9ea9cf14184328d68f Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 30 Jul 2022 00:18:39 +0300 Subject: [PATCH 38/66] improve is_not_skipped() --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 197f2d1..bca8656 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -247,8 +247,8 @@ def get_option(opt): def is_not_skipped(test) -> bool: if hasattr(test, 'callspec') and hasattr(test.callspec, 'params'): + params = test.callspec.params for fixture_name, fixture_type in fixtures_name_to_type.items(): - params = test.callspec.params if fixture_name in params: return isinstance(params[fixture_name], fixture_type) return True From 9e940285c9d0c45fb9c83f41be1f5512063161c6 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 30 Jul 2022 17:32:30 +0300 Subject: [PATCH 39/66] connected wflips, new pad --- src/assembler.py | 85 ++++++++++++++++++++++++++++++++++++++++++--- src/fj_parser.py | 18 +++++----- src/ops.py | 34 ++++++++++++++++-- src/preprocessor.py | 22 ++++++++++-- stl/runlib.fj | 9 ++--- 5 files changed, 144 insertions(+), 24 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 22d51bb..f0f3ba0 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,4 +1,5 @@ import pickle +from collections import defaultdict from pathlib import Path from typing import Deque, List, Dict, Tuple, Optional @@ -8,7 +9,7 @@ from expr import Expr from defs import PrintTimer -from ops import FlipJump, WordFlip, LastPhaseOp, NewSegment, ReserveBits +from ops import FlipJump, WordFlip, LastPhaseOp, NewSegment, ReserveBits, Padding from exceptions import FJAssemblerException, FJException, FJWriteFjmException @@ -25,6 +26,9 @@ def add_segment_to_fjm(w: int, assert_address_in_memory(w, first_address) assert_address_in_memory(w, last_address) + if wflip_words and len(fj_words) > 1000 and len(wflip_words) > 1000: + print(f'wflips={len(wflip_words) / len(fj_words + wflip_words) * 100:.3f}%') + words_to_write = fj_words if wflip_words is None else fj_words + wflip_words data_start, data_length = fjm_writer.add_data(words_to_write) @@ -67,18 +71,33 @@ def insert_wflip_ops(wflip_address: int, flip_value: int, return_address: int, def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], w: int, fjm_writer: fjm.Writer) -> None: + op_size = 2*w + fj_words = [] wflip_words = [] + padding_ops_indices = [] + + return_addresses = [] + wflip_sizes = [] + same_bits = 4 + + # return_address -> { (i3, i2, i1, i0) -> address } + wflips_dict: Dict[int, Dict[Tuple[int, ...], ]] = defaultdict(lambda: {}) first_segment: NewSegment = ops.popleft() first_address: int = first_segment.start_address wflip_address: int = first_segment.wflip_start_address + current_address = first_address + + saved_ops = 0 + for op in ops: if isinstance(op, FlipJump): try: fj_words += (op.get_flip(labels), op.get_jump(labels)) + current_address += op_size except FJException as e: raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e @@ -90,22 +109,78 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], except FJException as e: raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e - wflip_address = insert_wflip_ops(wflip_address, flip_value, return_address, - fj_words, wflip_words, w, word_address) + return_dict = wflips_dict[return_address] + + # this is the order of flip_addresses (tested with many other orders) that produces the best found-statistic + # for searching flip_bit[:i] with different i's in return_dict. + flip_addresses = [word_address + i for i in range(w) if flip_value & (1 << i)][::-1] + + if len(flip_addresses) >= same_bits: + return_addresses.append((*flip_addresses[:same_bits], return_address)) + wflip_sizes.append(len(flip_addresses)) + + if len(flip_addresses) <= 1: + if flip_addresses: + return_dict[(flip_addresses[0], )] = current_address + fj_words += (flip_addresses[0], return_address) + else: + fj_words += (0, return_address) + else: + first_bit = flip_addresses.pop() + fj_words += (first_bit, 0) # TODO 0 return address + last_return_address_index = fj_words, len(fj_words) - 1 # record this address as the return address needs to change + + while flip_addresses: + flips_key = tuple(flip_addresses) + ops_list, index = last_return_address_index + if flips_key in return_dict: + ops_list[index] = return_dict[flips_key] + last_return_address_index = None + saved_ops += len(flips_key) + break + else: + ops_list[index] = wflip_address + return_dict[flips_key] = wflip_address + wflip_address += 2 * w + wflip_words += (flip_addresses.pop(), 0) + last_return_address_index = wflip_words, len(wflip_words) - 1 + + if last_return_address_index is not None: + ops_list, index = last_return_address_index + ops_list[index] = return_address + + # next_op = wflip_address + # for bit in flip_addresses[:-1]: + # next_op += 2 * w + # wflip_words += (bit, next_op) + # wflip_words += (flip_addresses[-1], return_address) + # wflip_address = next_op + 2 * w + + current_address += op_size + + elif isinstance(op, Padding): + for i in range(len(fj_words), len(fj_words) + op.ops_count): + padding_ops_indices.append(i) + fj_words += (0, 0) + current_address += op.ops_count * op_size elif isinstance(op, NewSegment): add_segment_to_fjm(w, fjm_writer, first_address, wflip_address, fj_words, wflip_words) - first_address = op.start_address + current_address = first_address = op.start_address wflip_address = op.wflip_start_address elif isinstance(op, ReserveBits): add_segment_to_fjm(w, fjm_writer, first_address, op.first_address_after_reserved, fj_words, None) - first_address = op.first_address_after_reserved + current_address = first_address = op.first_address_after_reserved else: raise FJAssemblerException(f"Can't resolve/assemble the next opcode - {str(op)}") add_segment_to_fjm(w, fjm_writer, first_address, wflip_address, fj_words, wflip_words) + if return_addresses and wflip_sizes: + print(f'repeated-returns({same_bits})={(len(return_addresses) - len(set(return_addresses))) / len(return_addresses) * 100:.3f}% ' + f'(each {sum(wflip_sizes) / len(wflip_sizes):.2f} ops) ' + f'(total fj ops = {len(fjm_writer.data) // 2})') def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, diff --git a/src/fj_parser.py b/src/fj_parser.py index efbf169..f4a1419 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -11,9 +11,9 @@ from expr import Expr, get_minimized_expr from ops import get_used_labels, get_declared_labels, \ CodePosition, MacroName, Op, main_macro, \ - MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve + MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, Pad -global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace, reserved_names +global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace def get_position(lineno: int) -> CodePosition: @@ -75,7 +75,7 @@ def get_char_value_and_length(s: str) -> Tuple[int, int]: class FJLexer(sly.Lexer): tokens = {NS, DEF, REP, - WFLIP, SEGMENT, RESERVE, + WFLIP, PAD, SEGMENT, RESERVE, ID, DOT_ID, NUMBER, STRING, LE, GE, EQ, NEQ, SHL, SHR, @@ -105,13 +105,11 @@ class FJLexer(sly.Lexer): ID[r'ns'] = NS ID[r'wflip'] = WFLIP + ID[r'pad'] = PAD ID[r'segment'] = SEGMENT ID[r'reserve'] = RESERVE - global reserved_names - reserved_names = {DEF, REP, NS, WFLIP, SEGMENT, RESERVE} - LE = "<=" GE = ">=" @@ -192,10 +190,6 @@ def __init__(self, w: int, warning_as_errors: bool): self.macros: Dict[MacroName, Macro] = {main_macro: Macro([], [], [], '', None)} def validate_free_macro_name(self, name: MacroName, lineno: int) -> None: - global reserved_names - base_name = self.to_base_name(name.name) - if base_name in reserved_names: - syntax_error(lineno, f'macro name can\'t be {name.name} ({base_name} is a reserved name)!') if name in self.macros: syntax_error(lineno, f'macro {name} is declared twice! ' f'also declared in {self.macros[name].code_position}.') @@ -495,6 +489,10 @@ def statement(self, p: ParsedRule) -> WordFlip: def statement(self, p: ParsedRule) -> WordFlip: return WordFlip(p.expr0, p.expr1, p.expr2, get_position(p.lineno)) + @_('PAD expr') + def statement(self, p: ParsedRule) -> Pad: + return Pad(p.expr, get_position(p.lineno)) + @_('ID "=" expr') def statement(self, p: ParsedRule) -> None: name = self.ns_full_name(p.ID) diff --git a/src/ops.py b/src/ops.py index 47f636d..fb98574 100644 --- a/src/ops.py +++ b/src/ops.py @@ -103,6 +103,31 @@ def get_return_address(self, labels: Dict[str, Expr]) -> int: return int(self.return_address.eval_new(labels)) +class Pad: + def __init__(self, ops_alignment: Expr, code_position: CodePosition): + self.ops_alignment = ops_alignment + self.code_position = code_position + + def __str__(self): + return f"Pad {self.ops_alignment} ops, at {self.code_position}" + + def eval_new(self, id_dict: Dict[str, Expr]) -> Pad: + return Pad(self.ops_alignment.eval_new(id_dict), self.code_position) + + def all_unknown_labels(self) -> Set[str]: + return self.ops_alignment.all_unknown_labels() + + def get_ops_alignment(self) -> int: + try: + return int(self.ops_alignment) + except FJExprException as e: + raise FJExprException(f"Can't calculate pad ops_alignment on {self.code_position}") from e + + def calculate_ops_alignment(self, labels: Dict[str, Expr]) -> int: + self.ops_alignment = self.ops_alignment.eval_new(labels) + return self.get_ops_alignment() + + class Segment: """ data = [start_address] @@ -266,7 +291,7 @@ def new_label(macro_path: str, label_name: str) -> Expr: return Expr(f'{macro_path}---{label_name}') -Op = Union[FlipJump, WordFlip, Label, MacroCall, RepCall, Segment, Reserve] +Op = Union[FlipJump, WordFlip, Pad, Label, MacroCall, RepCall, Segment, Reserve] WFLIP_NOT_INSERTED_YET = -1 @@ -283,4 +308,9 @@ def __init__(self, first_address_after_reserved: int): self.first_address_after_reserved = first_address_after_reserved -LastPhaseOp = Union[FlipJump, WordFlip, NewSegment, ReserveBits] +class Padding: + def __init__(self, ops_count: int): + self.ops_count = ops_count + + +LastPhaseOp = Union[FlipJump, WordFlip, Padding, NewSegment, ReserveBits] diff --git a/src/preprocessor.py b/src/preprocessor.py index 460a605..54d70cb 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -9,8 +9,7 @@ from defs import CodePosition, Macro, macro_separator_string from exceptions import FJPreprocessorException, FJExprException from ops import FlipJump, WordFlip, Label, Segment, Reserve, MacroCall, RepCall, \ - LastPhaseOp, new_label, MacroName, main_macro, NewSegment, ReserveBits - + LastPhaseOp, new_label, MacroName, main_macro, NewSegment, ReserveBits, Pad, Padding CurrTree = Deque[Union[MacroCall, RepCall]] PreprocessorResults = Tuple[Deque[LastPhaseOp], Dict[str, Expr]] @@ -154,6 +153,11 @@ def register_macro_code_size(self, macro_path: str, init_curr_address: int): if 1 <= len(self.curr_tree) <= 2: self.macro_code_size[macro_path] += self.curr_address - init_curr_address + def align_current_address(self, op_size: int, ops_alignment: int) -> None: + ops_to_pad = (-self.curr_address // op_size) % ops_alignment + self.curr_address += ops_to_pad * op_size + self.result_ops.append(Padding(ops_to_pad)) + def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool = False)\ -> PreprocessorResults: @@ -185,6 +189,11 @@ def resolve_macro_aux(preprocessor_data: PreprocessorData, preprocessor_data.result_ops.append(op.eval_new(id_dict)) del id_dict['$'] + elif isinstance(op, Pad): + op = op.eval_new(id_dict) + ops_alignment = get_pad_ops_alignment(op, preprocessor_data) + preprocessor_data.align_current_address(2*w, ops_alignment) + elif isinstance(op, MacroCall): op = op.eval_new(id_dict) next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ @@ -223,13 +232,20 @@ def resolve_macro_aux(preprocessor_data: PreprocessorData, preprocessor_data.register_macro_code_size(macro_path, init_curr_address) -def get_rep_times(op: RepCall, preprocessor_data: PreprocessorData): +def get_rep_times(op: RepCall, preprocessor_data: PreprocessorData) -> int: try: return op.calculate_times(preprocessor_data.labels) except FJExprException as e: macro_resolve_error(preprocessor_data.curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) +def get_pad_ops_alignment(op: Pad, preprocessor_data: PreprocessorData) -> int: + try: + return op.calculate_ops_alignment(preprocessor_data.labels) + except FJExprException as e: + macro_resolve_error(preprocessor_data.curr_tree, f'pad {op.ops_alignment} failed.', orig_exception=e) + + def get_next_segment_start(op: Segment, preprocessor_data: PreprocessorData, w: int): try: next_segment_start = op.calculate_address(preprocessor_data.labels) diff --git a/stl/runlib.fj b/stl/runlib.fj index e69ef4c..e21ddbb 100644 --- a/stl/runlib.fj +++ b/stl/runlib.fj @@ -59,10 +59,11 @@ def wflip_macro dst, val, jmp_addr { wflip dst, val, jmp_addr } -def pad x @ pad_start { - pad_start: - rep((0-pad_start/(2*w))%x, i) zero_op -} +//// @note - padding can also be implemented in fj itself! (but the saved-word pad is more compile-time efficient) +//def pad x @ pad_start { +// pad_start: +// rep((0-pad_start/(2*w))%x, i) zero_op +//} // ---------- Compilation Time: From dfaf22dbbfe5c6d914827324dc3d0036a387e3a8 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 30 Jul 2022 19:04:15 +0300 Subject: [PATCH 40/66] wflips in pad spots --- src/assembler.py | 118 +++++++++++++++++++++++++++++++---------------- 1 file changed, 79 insertions(+), 39 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index f0f3ba0..4c2f5c0 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -69,35 +69,74 @@ def insert_wflip_ops(wflip_address: int, flip_value: int, return_address: int, return wflip_address +class BinaryData: + def __init__(self, w: int, first_segment: NewSegment): + self.w = w + + self.fj_words: List[int] = [] + self.wflip_words: List[int] = [] + + self.padding_ops_indices: List[int] = [] # indices in self.fj_words + + # return_address -> { (i3, i2, i1, i0) -> address } + self.wflips_dict: Dict[int, Dict[Tuple[int, ...],]] = defaultdict(lambda: {}) + + self.first_address = first_segment.start_address + self.wflip_address = first_segment.wflip_start_address + + self.current_address = self.first_address + + self.saved_ops = 0 + + def get_wflip_spot(self): + if self.padding_ops_indices: + self.saved_ops += 1 + index = self.padding_ops_indices.pop() + return self.fj_words, index, self.first_address + self.w * index + + index = len(self.wflip_words) + address = self.wflip_address + + self.wflip_words += (0, 0) + self.wflip_address += 2*self.w + + return self.wflip_words, index, address + + def close_and_add_segment(self, fjm_writer: fjm.Writer): + add_segment_to_fjm(self.w, fjm_writer, self.first_address, self.wflip_address, self.fj_words, self.wflip_words) + + def new_segment(self, fjm_writer: fjm.Writer, new_segment_op: NewSegment): + self.close_and_add_segment(fjm_writer) + self.first_address = new_segment_op.start_address + self.wflip_address = new_segment_op.wflip_start_address + self.current_address = self.first_address + self.padding_ops_indices.clear() + + def reserve_bits(self, fjm_writer: fjm.Writer, reserve_bits_op: ReserveBits): + new_first_address = reserve_bits_op.first_address_after_reserved + add_segment_to_fjm(self.w, fjm_writer, self.first_address, new_first_address, self.fj_words, None) + self.first_address = new_first_address + self.current_address = self.first_address + self.padding_ops_indices.clear() + + def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], w: int, fjm_writer: fjm.Writer) -> None: op_size = 2*w - fj_words = [] - wflip_words = [] - padding_ops_indices = [] - return_addresses = [] wflip_sizes = [] same_bits = 4 - # return_address -> { (i3, i2, i1, i0) -> address } - wflips_dict: Dict[int, Dict[Tuple[int, ...], ]] = defaultdict(lambda: {}) - first_segment: NewSegment = ops.popleft() - first_address: int = first_segment.start_address - wflip_address: int = first_segment.wflip_start_address - - current_address = first_address - - saved_ops = 0 + binary_data = BinaryData(w, first_segment) for op in ops: if isinstance(op, FlipJump): try: - fj_words += (op.get_flip(labels), op.get_jump(labels)) - current_address += op_size + binary_data.fj_words += (op.get_flip(labels), op.get_jump(labels)) + binary_data.current_address += op_size except FJException as e: raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e @@ -109,7 +148,7 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], except FJException as e: raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e - return_dict = wflips_dict[return_address] + return_dict = binary_data.wflips_dict[return_address] # this is the order of flip_addresses (tested with many other orders) that produces the best found-statistic # for searching flip_bit[:i] with different i's in return_dict. @@ -121,14 +160,14 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], if len(flip_addresses) <= 1: if flip_addresses: - return_dict[(flip_addresses[0], )] = current_address - fj_words += (flip_addresses[0], return_address) + return_dict[(flip_addresses[0], )] = binary_data.current_address + binary_data.fj_words += (flip_addresses[0], return_address) else: - fj_words += (0, return_address) + binary_data.fj_words += (0, return_address) else: first_bit = flip_addresses.pop() - fj_words += (first_bit, 0) # TODO 0 return address - last_return_address_index = fj_words, len(fj_words) - 1 # record this address as the return address needs to change + binary_data.fj_words += (first_bit, 0) + last_return_address_index = binary_data.fj_words, len(binary_data.fj_words) - 1 while flip_addresses: flips_key = tuple(flip_addresses) @@ -136,14 +175,16 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], if flips_key in return_dict: ops_list[index] = return_dict[flips_key] last_return_address_index = None - saved_ops += len(flips_key) + binary_data.saved_ops += len(flips_key) break else: - ops_list[index] = wflip_address - return_dict[flips_key] = wflip_address - wflip_address += 2 * w - wflip_words += (flip_addresses.pop(), 0) - last_return_address_index = wflip_words, len(wflip_words) - 1 + wflip_spot_list, wflip_spot_index, wflip_spot_address = binary_data.get_wflip_spot() + + ops_list[index] = wflip_spot_address + return_dict[flips_key] = wflip_spot_address + + wflip_spot_list[wflip_spot_index] = flip_addresses.pop() + last_return_address_index = wflip_spot_list, wflip_spot_index + 1 if last_return_address_index is not None: ops_list, index = last_return_address_index @@ -156,31 +197,30 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], # wflip_words += (flip_addresses[-1], return_address) # wflip_address = next_op + 2 * w - current_address += op_size + binary_data.current_address += op_size elif isinstance(op, Padding): - for i in range(len(fj_words), len(fj_words) + op.ops_count): - padding_ops_indices.append(i) - fj_words += (0, 0) - current_address += op.ops_count * op_size + for i in range(len(binary_data.fj_words), len(binary_data.fj_words) + 2*op.ops_count, 2): + binary_data.padding_ops_indices.append(i) + binary_data.fj_words += (0, 0) + binary_data.current_address += op.ops_count * op_size elif isinstance(op, NewSegment): - add_segment_to_fjm(w, fjm_writer, first_address, wflip_address, fj_words, wflip_words) - current_address = first_address = op.start_address - wflip_address = op.wflip_start_address + binary_data.new_segment(fjm_writer, op) elif isinstance(op, ReserveBits): - add_segment_to_fjm(w, fjm_writer, first_address, op.first_address_after_reserved, fj_words, None) - current_address = first_address = op.first_address_after_reserved + binary_data.reserve_bits(fjm_writer, op) else: raise FJAssemblerException(f"Can't resolve/assemble the next opcode - {str(op)}") - add_segment_to_fjm(w, fjm_writer, first_address, wflip_address, fj_words, wflip_words) + binary_data.close_and_add_segment(fjm_writer) + if return_addresses and wflip_sizes: print(f'repeated-returns({same_bits})={(len(return_addresses) - len(set(return_addresses))) / len(return_addresses) * 100:.3f}% ' f'(each {sum(wflip_sizes) / len(wflip_sizes):.2f} ops) ' - f'(total fj ops = {len(fjm_writer.data) // 2})') + f'(total fj ops = {len(fjm_writer.data) // 2}) ' + f'(saved {binary_data.saved_ops / (len(fjm_writer.data) // 2 + binary_data.saved_ops) * 100:.3f}%)') def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, From cc7d59d4b0ea3fe65525845ea14e9ba3fb7cc18c Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 30 Jul 2022 20:55:30 +0300 Subject: [PATCH 41/66] refactor assembler.py (add BinaryData) --- src/assembler.py | 232 ++++++++++++++++++++--------------------------- 1 file changed, 97 insertions(+), 135 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 4c2f5c0..4ab76d1 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,3 +1,4 @@ +import dataclasses import pickle from collections import defaultdict from pathlib import Path @@ -13,215 +14,176 @@ from exceptions import FJAssemblerException, FJException, FJWriteFjmException -def add_segment_to_fjm(w: int, - fjm_writer: fjm.Writer, - first_address: int, last_address: int, - fj_words: List[int], wflip_words: Optional[List[int]]) -> None: - if first_address == last_address: - return +def assert_address_in_memory(w: int, address: int): + if address < 0 or address >= (1 << w): + raise FJAssemblerException(f"Not enough space with the {w}-width.") + +def validate_addresses(w, first_address, last_address): if first_address % w != 0 or last_address % w != 0: - raise FJAssemblerException(f'segment boundaries are unaligned: [{hex(first_address)}, {hex(last_address-1)}].') + raise FJAssemblerException(f'segment boundaries are unaligned: ' + f'[{hex(first_address)}, {hex(last_address - 1)}].') assert_address_in_memory(w, first_address) assert_address_in_memory(w, last_address) - if wflip_words and len(fj_words) > 1000 and len(wflip_words) > 1000: - print(f'wflips={len(wflip_words) / len(fj_words + wflip_words) * 100:.3f}%') - words_to_write = fj_words if wflip_words is None else fj_words + wflip_words - data_start, data_length = fjm_writer.add_data(words_to_write) +def add_segment_to_fjm(w: int, + fjm_writer: fjm.Writer, + first_address: int, last_address: int, + fj_words: List[int], wflip_words: List[int]) -> None: + validate_addresses(w, first_address, last_address) + if first_address == last_address: + return - first_word_address = first_address // w - segment_word_length = (last_address - first_address) // w + data_start, data_length = fjm_writer.add_data(fj_words + wflip_words) try: - fjm_writer.add_segment(first_word_address, segment_word_length, data_start, data_length) + fjm_writer.add_segment(first_address // w, (last_address - first_address) // w, data_start, data_length) except FJWriteFjmException as e: raise FJAssemblerException(f"failed to add the segment: " f"[{hex(first_address)}, {hex(last_address-1)}].") from e fj_words.clear() - if wflip_words is not None: - wflip_words.clear() - - -def assert_address_in_memory(w: int, address: int): - if address < 0 or address >= (1 << w): - raise FJAssemblerException(f"Not enough space with the {w}-width.") + wflip_words.clear() -def insert_wflip_ops(wflip_address: int, flip_value: int, return_address: int, - fj_words: List[int], wflip_words: List[int], w: int, word_address: int): - flip_bits = [i for i in range(w) if flip_value & (1 << i)] - - if len(flip_bits) <= 1: - fj_words += (word_address + flip_bits[0] if flip_bits else 0, return_address) - else: - fj_words += (word_address + flip_bits[0], wflip_address) - next_op = wflip_address - for bit in flip_bits[1:-1]: - next_op += 2 * w - wflip_words += (word_address + bit, next_op) - wflip_words += (word_address + flip_bits[-1], return_address) - wflip_address = next_op + 2 * w - - return wflip_address +@dataclasses.dataclass +class WFlipSpot: + list: List[int] + index: int + address: int class BinaryData: def __init__(self, w: int, first_segment: NewSegment): self.w = w + self.first_address = first_segment.start_address + self.wflip_address = first_segment.wflip_start_address + + self.current_address = self.first_address + self.fj_words: List[int] = [] self.wflip_words: List[int] = [] self.padding_ops_indices: List[int] = [] # indices in self.fj_words - # return_address -> { (i3, i2, i1, i0) -> address } + # return_address -> { (f3, f2, f1, f0) -> start_flip_address } self.wflips_dict: Dict[int, Dict[Tuple[int, ...],]] = defaultdict(lambda: {}) - self.first_address = first_segment.start_address - self.wflip_address = first_segment.wflip_start_address - - self.current_address = self.first_address - - self.saved_ops = 0 - - def get_wflip_spot(self): + def get_wflip_spot(self) -> WFlipSpot: if self.padding_ops_indices: - self.saved_ops += 1 index = self.padding_ops_indices.pop() - return self.fj_words, index, self.first_address + self.w * index - - index = len(self.wflip_words) - address = self.wflip_address + return WFlipSpot(self.fj_words, index, self.first_address + self.w * index) + wflip_spot = WFlipSpot(self.wflip_words, len(self.wflip_words), self.wflip_address) self.wflip_words += (0, 0) self.wflip_address += 2*self.w + return wflip_spot - return self.wflip_words, index, address - - def close_and_add_segment(self, fjm_writer: fjm.Writer): + def close_and_add_segment(self, fjm_writer: fjm.Writer) -> None: add_segment_to_fjm(self.w, fjm_writer, self.first_address, self.wflip_address, self.fj_words, self.wflip_words) - def new_segment(self, fjm_writer: fjm.Writer, new_segment_op: NewSegment): + def insert_fj_op(self, flip: int, jump: int) -> None: + self.fj_words += (flip, jump) + self.current_address += 2*self.w + + def insert_wflip_ops(self, word_address: int, flip_value: int, return_address: int) -> None: + if 0 == flip_value: + self.insert_fj_op(0, return_address) + else: + return_dict = self.wflips_dict[return_address] + + # this is the order of flip_addresses (tested with many other orders) that produces the best + # found-statistic for searching flip_bit[:i] with different i's in return_dict. + flip_addresses = [word_address + i for i in range(self.w) if flip_value & (1 << i)][::-1] + + # insert the first op + self.insert_fj_op(flip_addresses.pop(), 0) + last_return_address_index = self.fj_words, len(self.fj_words) - 1 + + while flip_addresses: + flips_key = tuple(flip_addresses) + ops_list, last_address_index = last_return_address_index + + if flips_key in return_dict: + # connect the last op to the already created wflip-chain + ops_list[last_address_index] = return_dict[flips_key] + return + else: + # insert a new wflip op, and connect the last one to it + wflip_spot = self.get_wflip_spot() + + ops_list[last_address_index] = wflip_spot.address + return_dict[flips_key] = wflip_spot.address + + wflip_spot.list[wflip_spot.index] = flip_addresses.pop() + last_return_address_index = wflip_spot.list, wflip_spot.index + 1 + + ops_list, last_address_index = last_return_address_index + ops_list[last_address_index] = return_address + + def insert_padding(self, ops_count: int) -> None: + for i in range(len(self.fj_words), len(self.fj_words) + 2 * ops_count, 2): + self.padding_ops_indices.append(i) + self.fj_words += (0, 0) + self.current_address += ops_count * (2*self.w) + + def insert_new_segment(self, fjm_writer: fjm.Writer, first_address: int, wflip_first_address: int) -> None: self.close_and_add_segment(fjm_writer) - self.first_address = new_segment_op.start_address - self.wflip_address = new_segment_op.wflip_start_address + + self.first_address = first_address + self.wflip_address = wflip_first_address self.current_address = self.first_address + self.padding_ops_indices.clear() - def reserve_bits(self, fjm_writer: fjm.Writer, reserve_bits_op: ReserveBits): - new_first_address = reserve_bits_op.first_address_after_reserved - add_segment_to_fjm(self.w, fjm_writer, self.first_address, new_first_address, self.fj_words, None) + def insert_reserve_bits(self, fjm_writer: fjm.Writer, new_first_address: int) -> None: + add_segment_to_fjm(self.w, fjm_writer, self.first_address, new_first_address, self.fj_words, []) + self.first_address = new_first_address self.current_address = self.first_address + self.padding_ops_indices.clear() def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], w: int, fjm_writer: fjm.Writer) -> None: - op_size = 2*w - - return_addresses = [] - wflip_sizes = [] - same_bits = 4 - first_segment: NewSegment = ops.popleft() + if not isinstance(first_segment, NewSegment): + raise FJAssemblerException(f"The first op must be of type NewSegment (and not {first_segment}).") + binary_data = BinaryData(w, first_segment) for op in ops: - if isinstance(op, FlipJump): try: - binary_data.fj_words += (op.get_flip(labels), op.get_jump(labels)) - binary_data.current_address += op_size + binary_data.insert_fj_op(op.get_flip(labels), op.get_jump(labels)) except FJException as e: raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e elif isinstance(op, WordFlip): try: - word_address = op.get_word_address(labels) - flip_value = op.get_flip_value(labels) - return_address = op.get_return_address(labels) + binary_data.insert_wflip_ops(op.get_word_address(labels), op.get_flip_value(labels), + op.get_return_address(labels)) except FJException as e: raise FJAssemblerException(f"Can't resolve labels in op {op}.") from e - return_dict = binary_data.wflips_dict[return_address] - - # this is the order of flip_addresses (tested with many other orders) that produces the best found-statistic - # for searching flip_bit[:i] with different i's in return_dict. - flip_addresses = [word_address + i for i in range(w) if flip_value & (1 << i)][::-1] - - if len(flip_addresses) >= same_bits: - return_addresses.append((*flip_addresses[:same_bits], return_address)) - wflip_sizes.append(len(flip_addresses)) - - if len(flip_addresses) <= 1: - if flip_addresses: - return_dict[(flip_addresses[0], )] = binary_data.current_address - binary_data.fj_words += (flip_addresses[0], return_address) - else: - binary_data.fj_words += (0, return_address) - else: - first_bit = flip_addresses.pop() - binary_data.fj_words += (first_bit, 0) - last_return_address_index = binary_data.fj_words, len(binary_data.fj_words) - 1 - - while flip_addresses: - flips_key = tuple(flip_addresses) - ops_list, index = last_return_address_index - if flips_key in return_dict: - ops_list[index] = return_dict[flips_key] - last_return_address_index = None - binary_data.saved_ops += len(flips_key) - break - else: - wflip_spot_list, wflip_spot_index, wflip_spot_address = binary_data.get_wflip_spot() - - ops_list[index] = wflip_spot_address - return_dict[flips_key] = wflip_spot_address - - wflip_spot_list[wflip_spot_index] = flip_addresses.pop() - last_return_address_index = wflip_spot_list, wflip_spot_index + 1 - - if last_return_address_index is not None: - ops_list, index = last_return_address_index - ops_list[index] = return_address - - # next_op = wflip_address - # for bit in flip_addresses[:-1]: - # next_op += 2 * w - # wflip_words += (bit, next_op) - # wflip_words += (flip_addresses[-1], return_address) - # wflip_address = next_op + 2 * w - - binary_data.current_address += op_size - elif isinstance(op, Padding): - for i in range(len(binary_data.fj_words), len(binary_data.fj_words) + 2*op.ops_count, 2): - binary_data.padding_ops_indices.append(i) - binary_data.fj_words += (0, 0) - binary_data.current_address += op.ops_count * op_size + binary_data.insert_padding(op.ops_count) elif isinstance(op, NewSegment): - binary_data.new_segment(fjm_writer, op) + binary_data.insert_new_segment(fjm_writer, op.start_address, op.wflip_start_address) elif isinstance(op, ReserveBits): - binary_data.reserve_bits(fjm_writer, op) + binary_data.insert_reserve_bits(fjm_writer, op.first_address_after_reserved) else: raise FJAssemblerException(f"Can't resolve/assemble the next opcode - {str(op)}") binary_data.close_and_add_segment(fjm_writer) - if return_addresses and wflip_sizes: - print(f'repeated-returns({same_bits})={(len(return_addresses) - len(set(return_addresses))) / len(return_addresses) * 100:.3f}% ' - f'(each {sum(wflip_sizes) / len(wflip_sizes):.2f} ops) ' - f'(total fj ops = {len(fjm_writer.data) // 2}) ' - f'(saved {binary_data.saved_ops / (len(fjm_writer.data) // 2 + binary_data.saved_ops) * 100:.3f}%)') - def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, *, version: int = 0, flags: int = 0, From cd73c43593eb50b6949a229ebf72b2693e7f879d Mon Sep 17 00:00:00 2001 From: Tomhe Date: Mon, 1 Aug 2022 04:30:56 +0300 Subject: [PATCH 42/66] fjm-ver2: relative-jumps --- src/assembler.py | 6 +-- src/fj.py | 7 ++-- src/fjm.py | 52 ++++++++++++++--------- tests/test_compile_fast.csv | 38 ++++++++--------- tests/test_compile_hexlib.csv | 78 +++++++++++++++++------------------ tests/test_compile_medium.csv | 14 +++---- tests/test_compile_slow.csv | 18 ++++---- tests/test_fj.py | 2 +- 8 files changed, 115 insertions(+), 100 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 4ab76d1..3376d7e 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -185,8 +185,8 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], binary_data.close_and_add_segment(fjm_writer) -def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, - *, version: int = 0, flags: int = 0, +def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, version, + *, flags: int = 0, warning_as_errors: bool = True, show_statistics: bool = False, debugging_file: Optional[Path] = None, print_time: bool = True)\ -> None: @@ -202,7 +202,7 @@ def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, @param debugging_file:[in]: is specified, save debug information in this file @param print_time: if true prints the times of each assemble-stage """ - fjm_writer = fjm.Writer(output_file, w, version=version, flags=flags) + fjm_writer = fjm.Writer(output_file, w, version, flags=flags) with PrintTimer(' parsing: ', print_time=print_time): macros = parse_macro_tree(input_files, w, warning_as_errors) diff --git a/src/fj.py b/src/fj.py index 73e2cc2..f984087 100644 --- a/src/fj.py +++ b/src/fj.py @@ -135,8 +135,8 @@ def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, err file_tuples = get_file_tuples(args) verify_fj_files(error_func, file_tuples) - assembler.assemble(file_tuples, out_fjm_file, args.width, - version=args.version, flags=args.flags, + assembler.assemble(file_tuples, out_fjm_file, args.width, args.version, + flags=args.flags, warning_as_errors=args.werror, show_statistics=args.stats, print_time=not args.silent, debugging_file=debug_file) @@ -221,7 +221,8 @@ def add_assemble_only_arguments(parser: argparse.ArgumentParser) -> None: asm_arguments.add_argument('-w', '--width', type=int, default=64, choices=[8, 16, 32, 64], metavar='WIDTH', help="specify memory-width. 64 by default") - asm_arguments.add_argument('-v', '--version', metavar='VERSION', help="fjm version", type=int, default=0) + asm_arguments.add_argument('-v', '--version', metavar='VERSION', type=int, default=2, + help="fjm version (2 by default)") asm_arguments.add_argument('-f', '--flags', help="the default .fjm unpacking & running flags", type=int, default=0) asm_arguments.add_argument('--werror', help="treat all assemble warnings as errors", action='store_true') diff --git a/src/fjm.py b/src/fjm.py index 8a22f91..b0ae060 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -41,8 +41,14 @@ segment_format = ' None: self.magic, self.w, self.version, self.segment_num = \ unpack(header_base_format, fjm_file.read(header_base_size)) - if self.version == 0: + if BaseVersion == self.version: self.flags, self.reserved = 0, 0 else: self.flags, self.reserved = unpack(header_extension_format, fjm_file.read(header_extension_size)) @@ -95,14 +101,6 @@ def _read_data(self, fjm_file: BinaryIO) -> List[int]: read_tag = '<' + {8: 'B', 16: 'H', 32: 'L', 64: 'Q'}[self.w] word_bytes_size = self.w // 8 - # TODO read file once: - # data = [] - # while True: - # word = fjm_file.read(word_bytes_size) - # if word == '': - # break - # data.append(unpack(read_tag, word)[0]) - file_data = fjm_file.read() data = [unpack(read_tag, file_data[i:i + word_bytes_size])[0] for i in range(0, len(file_data), word_bytes_size)] @@ -113,8 +111,14 @@ def _init_memory(self, segments: List[Tuple], data: List[int]) -> None: self.zeros_boundaries = [] for segment_start, segment_length, data_start, data_length in segments: - for i in range(data_length): - self.memory[segment_start + i] = data[data_start + i] + if RelativeJumpVersion == self.version: + word = ((1 << self.w) - 1) + for i in range(0, data_length, 2): + self.memory[segment_start + i] = data[data_start + i] + self.memory[segment_start + i+1] = (data[data_start + i+1] + (segment_start + i+1) * self.w) & word + else: + for i in range(data_length): + self.memory[segment_start + i] = data[data_start + i] if segment_length > data_length: if segment_length - data_length < reserved_dict_threshold: for i in range(data_length, segment_length): @@ -177,14 +181,15 @@ def get_word(self, bit_address) -> int: class Writer: - def __init__(self, output_file, w, *, version=0, flags=0): + def __init__(self, output_file, w, version, *, flags=0): if w not in (8, 16, 32, 64): raise FJWriteFjmException(f"Word size {w} is not in {{8, 16, 32, 64}}.") - if version < 0 or version >= 1 << 64: - raise FJWriteFjmException(f"version must be a 64bit positive number, not {version}") - if flags < 0 or flags >= 1 << 64: + if version not in SUPPORTED_VERSIONS: + raise FJWriteFjmException( + f'Error: unsupported version ({version}, this program supports {str(SUPPORTED_VERSIONS)}).') + if flags < 0 or flags >= (1 << 64): raise FJWriteFjmException(f"flags must be a 64bit positive number, not {flags}") - if version == 0 and flags != 0: + if BaseVersion == version and flags != 0: raise FJWriteFjmException(f"version 0 does not support the flags option") self.output_file = output_file @@ -201,7 +206,7 @@ def write_to_file(self) -> None: with open(self.output_file, 'wb') as f: f.write(pack(header_base_format, fj_magic, self.word_size, self.version, len(self.segments))) - if self.version > 0: + if BaseVersion != self.version: f.write(pack(header_extension_format, self.flags, self.reserved)) for segment in self.segments: @@ -240,7 +245,16 @@ def add_segment(self, segment_start: int, segment_length: int, data_start: int, if segment_length < data_length: raise FJWriteFjmException(f"segment-length must be at-least data-length (in )") + if segment_start % 2 == 1 or segment_length % 2 == 1: + raise FJWriteFjmException(f"segment-start and segment-length must be 2*w aligned.") + self._validate_segment_not_overlapping(segment_start, segment_length) + # TODO add validate_segment_data_not_overloading (if RelativeJumpVersion == self.version) - maybe inside the above function + + if RelativeJumpVersion == self.version: + word = ((1 << self.word_size) - 1) + for i in range(1, data_length, 2): + self.data[data_start + i] = (self.data[data_start + i] - (segment_start + i) * self.word_size) & word self.segments.append((segment_start, segment_length, data_start, data_length)) diff --git a/tests/test_compile_fast.csv b/tests/test_compile_fast.csv index d45215f..c901bb2 100644 --- a/tests/test_compile_fast.csv +++ b/tests/test_compile_fast.csv @@ -1,21 +1,21 @@ -cat, programs/print_tests/cat.fj,tests/compiled/print_tests/cat.fjm, 64,1,0, True,True -hello_no-stl, programs/print_tests/hello_no-stl.fj,tests/compiled/print_tests/hello_no-stl.fjm, 64,1,0, False,True -hello_world, programs/print_tests/hello_world.fj,tests/compiled/print_tests/hello_world.fjm, 64,1,0, True,True -hexprint, programs/print_tests/hexprint.fj,tests/compiled/print_tests/hexprint.fjm, 64,1,0, True,True -mathbit, programs/sanity_checks/mathbit.fj,tests/compiled/sanity_checks/mathbit.fjm, 64,1,0, True,True -mathvec, programs/sanity_checks/mathvec.fj,tests/compiled/sanity_checks/mathvec.fjm, 64,1,0, True,True -nadd, programs/simple_math_checks/nadd.fj,tests/compiled/simple_math_checks/nadd.fjm, 64,1,0, True,True -ncat, programs/print_tests/ncat.fj,tests/compiled/print_tests/ncat.fjm, 64,1,0, True,True -ncmp, programs/simple_math_checks/ncmp.fj,tests/compiled/simple_math_checks/ncmp.fjm, 64,1,0, True,True -not, programs/sanity_checks/not.fj,tests/compiled/sanity_checks/not.fjm, 64,1,0, True,True -print_as_digit, programs/print_tests/print_as_digit.fj,tests/compiled/print_tests/print_as_digit.fjm, 64,1,0, True,True +cat, programs/print_tests/cat.fj,tests/compiled/print_tests/cat.fjm, 64,2,0, True,True +hello_no-stl, programs/print_tests/hello_no-stl.fj,tests/compiled/print_tests/hello_no-stl.fjm, 64,2,0, False,True +hello_world, programs/print_tests/hello_world.fj,tests/compiled/print_tests/hello_world.fjm, 64,2,0, True,True +hexprint, programs/print_tests/hexprint.fj,tests/compiled/print_tests/hexprint.fjm, 64,2,0, True,True +mathbit, programs/sanity_checks/mathbit.fj,tests/compiled/sanity_checks/mathbit.fjm, 64,2,0, True,True +mathvec, programs/sanity_checks/mathvec.fj,tests/compiled/sanity_checks/mathvec.fjm, 64,2,0, True,True +nadd, programs/simple_math_checks/nadd.fj,tests/compiled/simple_math_checks/nadd.fjm, 64,2,0, True,True +ncat, programs/print_tests/ncat.fj,tests/compiled/print_tests/ncat.fjm, 64,2,0, True,True +ncmp, programs/simple_math_checks/ncmp.fj,tests/compiled/simple_math_checks/ncmp.fjm, 64,2,0, True,True +not, programs/sanity_checks/not.fj,tests/compiled/sanity_checks/not.fjm, 64,2,0, True,True +print_as_digit, programs/print_tests/print_as_digit.fj,tests/compiled/print_tests/print_as_digit.fjm, 64,2,0, True,True quine16, programs/quine16.fj,tests/compiled/quine16.fjm, 16,0,0, True,True -rep, programs/sanity_checks/rep.fj,tests/compiled/sanity_checks/rep.fjm, 64,1,0, True,True -simple, programs/sanity_checks/simple.fj,tests/compiled/sanity_checks/simple.fjm, 64,1,0, True,True -testbit, programs/sanity_checks/testbit.fj,tests/compiled/sanity_checks/testbit.fjm, 64,1,0, True,True -testbit_with_nops, programs/sanity_checks/testbit_with_nops.fj,tests/compiled/sanity_checks/testbit_with_nops.fjm, 64,1,0, True,True +rep, programs/sanity_checks/rep.fj,tests/compiled/sanity_checks/rep.fjm, 64,2,0, True,True +simple, programs/sanity_checks/simple.fj,tests/compiled/sanity_checks/simple.fjm, 64,2,0, True,True +testbit, programs/sanity_checks/testbit.fj,tests/compiled/sanity_checks/testbit.fjm, 64,2,0, True,True +testbit_with_nops, programs/sanity_checks/testbit_with_nops.fj,tests/compiled/sanity_checks/testbit_with_nops.fjm, 64,2,0, True,True -multi_comp_stl_bc, programs/multi_comp/defs.fj | programs/multi_comp/a.fj | programs/multi_comp/b.fj | programs/multi_comp/c.fj, tests/compiled/multi_comp/multi_comp_stl_bc.fjm, 64,1,0, True,True -multi_comp_no_stl_bc, programs/multi_comp/defs.fj | programs/multi_comp/a_no_stl.fj | programs/multi_comp/b.fj | programs/multi_comp/c.fj, tests/compiled/multi_comp/multi_comp_no_stl_bc.fjm, 64,1,0, False,True -multi_comp_stl_cb, programs/multi_comp/defs.fj | programs/multi_comp/a.fj | programs/multi_comp/c.fj | programs/multi_comp/b.fj, tests/compiled/multi_comp/multi_comp_stl_cb.fjm, 64,1,0, True,True -multi_comp_no_stl_cb, programs/multi_comp/defs.fj | programs/multi_comp/a_no_stl.fj | programs/multi_comp/c.fj | programs/multi_comp/b.fj, tests/compiled/multi_comp/multi_comp_no_stl_cb.fjm, 64,1,0, False,True +multi_comp_stl_bc, programs/multi_comp/defs.fj | programs/multi_comp/a.fj | programs/multi_comp/b.fj | programs/multi_comp/c.fj, tests/compiled/multi_comp/multi_comp_stl_bc.fjm, 64,2,0, True,True +multi_comp_no_stl_bc, programs/multi_comp/defs.fj | programs/multi_comp/a_no_stl.fj | programs/multi_comp/b.fj | programs/multi_comp/c.fj, tests/compiled/multi_comp/multi_comp_no_stl_bc.fjm, 64,2,0, False,True +multi_comp_stl_cb, programs/multi_comp/defs.fj | programs/multi_comp/a.fj | programs/multi_comp/c.fj | programs/multi_comp/b.fj, tests/compiled/multi_comp/multi_comp_stl_cb.fjm, 64,2,0, True,True +multi_comp_no_stl_cb, programs/multi_comp/defs.fj | programs/multi_comp/a_no_stl.fj | programs/multi_comp/c.fj | programs/multi_comp/b.fj, tests/compiled/multi_comp/multi_comp_no_stl_cb.fjm, 64,2,0, False,True diff --git a/tests/test_compile_hexlib.csv b/tests/test_compile_hexlib.csv index 9641c27..77a8dcd 100644 --- a/tests/test_compile_hexlib.csv +++ b/tests/test_compile_hexlib.csv @@ -1,44 +1,44 @@ -hexlib-print_as_digit, programs/hexlib_tests/basics1/print_as_digit.fj,tests/compiled/hexlib_tests/basics1/print_as_digit.fjm, 64,1,0, True,True -hexlib-input, programs/hexlib_tests/basics1/input.fj,tests/compiled/hexlib_tests/basics1/input.fjm, 64,1,0, True,True -hexlib-basic_memory, programs/hexlib_tests/basics1/basic_memory.fj,tests/compiled/hexlib_tests/basics1/basic_memory.fjm, 64,1,0, True,True -hexlib-basic_math, programs/hexlib_tests/basics1/basic_math.fj,tests/compiled/hexlib_tests/basics1/basic_math.fjm, 64,1,0, True,True -hexlib-if, programs/hexlib_tests/basics1/if.fj,tests/compiled/hexlib_tests/basics1/if.fjm, 64,1,0, True,True -hexlib-print_int, programs/hexlib_tests/basics1/print_int.fj,tests/compiled/hexlib_tests/basics1/print_int.fjm, 64,1,0, True,True +hexlib-print_as_digit, programs/hexlib_tests/basics1/print_as_digit.fj,tests/compiled/hexlib_tests/basics1/print_as_digit.fjm, 64,2,0, True,True +hexlib-input, programs/hexlib_tests/basics1/input.fj,tests/compiled/hexlib_tests/basics1/input.fjm, 64,2,0, True,True +hexlib-basic_memory, programs/hexlib_tests/basics1/basic_memory.fj,tests/compiled/hexlib_tests/basics1/basic_memory.fjm, 64,2,0, True,True +hexlib-basic_math, programs/hexlib_tests/basics1/basic_math.fj,tests/compiled/hexlib_tests/basics1/basic_math.fjm, 64,2,0, True,True +hexlib-if, programs/hexlib_tests/basics1/if.fj,tests/compiled/hexlib_tests/basics1/if.fjm, 64,2,0, True,True +hexlib-print_int, programs/hexlib_tests/basics1/print_int.fj,tests/compiled/hexlib_tests/basics1/print_int.fjm, 64,2,0, True,True -hexlib-add_count_bits, programs/hexlib_tests/basics2/add_count_bits.fj, tests/compiled/hexlib_tests/basics2/add_count_bits.fjm, 64,1,0, True,True -hexlib-count_bits, programs/hexlib_tests/basics2/count_bits.fj, tests/compiled/hexlib_tests/basics2/count_bits.fjm, 64,1,0, True,True -hexlib-shl_bit, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_bit.fj, tests/compiled/hexlib_tests/basics2/shl_bit.fjm, 64,1,0, True,True -hexlib-shl_bit_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_bit_n.fj, tests/compiled/hexlib_tests/basics2/shl_bit_n.fjm, 64,1,0, True,True -hexlib-shr_bit, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_bit.fj, tests/compiled/hexlib_tests/basics2/shr_bit.fjm, 64,1,0, True,True -hexlib-shr_bit_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_bit_n.fj, tests/compiled/hexlib_tests/basics2/shr_bit_n.fjm, 64,1,0, True,True -hexlib-shl_hex, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_hex.fj, tests/compiled/hexlib_tests/basics2/shl_hex.fjm, 64,1,0, True,True -hexlib-shl_hex_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_hex_n.fj, tests/compiled/hexlib_tests/basics2/shl_hex_n.fjm, 64,1,0, True,True -hexlib-shr_hex, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_hex.fj, tests/compiled/hexlib_tests/basics2/shr_hex.fjm, 64,1,0, True,True -hexlib-shr_hex_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_hex_n.fj, tests/compiled/hexlib_tests/basics2/shr_hex_n.fjm, 64,1,0, True,True +hexlib-add_count_bits, programs/hexlib_tests/basics2/add_count_bits.fj, tests/compiled/hexlib_tests/basics2/add_count_bits.fjm, 64,2,0, True,True +hexlib-count_bits, programs/hexlib_tests/basics2/count_bits.fj, tests/compiled/hexlib_tests/basics2/count_bits.fjm, 64,2,0, True,True +hexlib-shl_bit, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_bit.fj, tests/compiled/hexlib_tests/basics2/shl_bit.fjm, 64,2,0, True,True +hexlib-shl_bit_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_bit_n.fj, tests/compiled/hexlib_tests/basics2/shl_bit_n.fjm, 64,2,0, True,True +hexlib-shr_bit, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_bit.fj, tests/compiled/hexlib_tests/basics2/shr_bit.fjm, 64,2,0, True,True +hexlib-shr_bit_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_bit_n.fj, tests/compiled/hexlib_tests/basics2/shr_bit_n.fjm, 64,2,0, True,True +hexlib-shl_hex, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_hex.fj, tests/compiled/hexlib_tests/basics2/shl_hex.fjm, 64,2,0, True,True +hexlib-shl_hex_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_hex_n.fj, tests/compiled/hexlib_tests/basics2/shl_hex_n.fjm, 64,2,0, True,True +hexlib-shr_hex, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_hex.fj, tests/compiled/hexlib_tests/basics2/shr_hex.fjm, 64,2,0, True,True +hexlib-shr_hex_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_hex_n.fj, tests/compiled/hexlib_tests/basics2/shr_hex_n.fjm, 64,2,0, True,True -hexlib-cmp, programs/hexlib_tests/2params/cmp.fj,tests/compiled/hexlib_tests/2params/cmp.fjm, 64,1,0, True,True -hexlib-cmp_n, programs/hexlib_tests/2params/cmp_n.fj,tests/compiled/hexlib_tests/2params/cmp_n.fjm, 64,1,0, True,True -hexlib-add, programs/hexlib_tests/2params/add.fj,tests/compiled/hexlib_tests/2params/add.fjm, 64,1,0, True,True -hexlib-add_n, programs/hexlib_tests/2params/add_n.fj,tests/compiled/hexlib_tests/2params/add_n.fjm, 64,1,0, True,True -hexlib-sub, programs/hexlib_tests/2params/sub.fj,tests/compiled/hexlib_tests/2params/sub.fjm, 64,1,0, True,True -hexlib-sub_n, programs/hexlib_tests/2params/sub_n.fj,tests/compiled/hexlib_tests/2params/sub_n.fjm, 64,1,0, True,True -hexlib-or, programs/hexlib_tests/2params/or.fj,tests/compiled/hexlib_tests/2params/or.fjm, 64,1,0, True,True -hexlib-or_n, programs/hexlib_tests/2params/or_n.fj,tests/compiled/hexlib_tests/2params/or_n.fjm, 64,1,0, True,True -hexlib-and, programs/hexlib_tests/2params/and.fj,tests/compiled/hexlib_tests/2params/and.fjm, 64,1,0, True,True -hexlib-and_n, programs/hexlib_tests/2params/and_n.fj,tests/compiled/hexlib_tests/2params/and_n.fjm, 64,1,0, True,True +hexlib-cmp, programs/hexlib_tests/2params/cmp.fj,tests/compiled/hexlib_tests/2params/cmp.fjm, 64,2,0, True,True +hexlib-cmp_n, programs/hexlib_tests/2params/cmp_n.fj,tests/compiled/hexlib_tests/2params/cmp_n.fjm, 64,2,0, True,True +hexlib-add, programs/hexlib_tests/2params/add.fj,tests/compiled/hexlib_tests/2params/add.fjm, 64,2,0, True,True +hexlib-add_n, programs/hexlib_tests/2params/add_n.fj,tests/compiled/hexlib_tests/2params/add_n.fjm, 64,2,0, True,True +hexlib-sub, programs/hexlib_tests/2params/sub.fj,tests/compiled/hexlib_tests/2params/sub.fjm, 64,2,0, True,True +hexlib-sub_n, programs/hexlib_tests/2params/sub_n.fj,tests/compiled/hexlib_tests/2params/sub_n.fjm, 64,2,0, True,True +hexlib-or, programs/hexlib_tests/2params/or.fj,tests/compiled/hexlib_tests/2params/or.fjm, 64,2,0, True,True +hexlib-or_n, programs/hexlib_tests/2params/or_n.fj,tests/compiled/hexlib_tests/2params/or_n.fjm, 64,2,0, True,True +hexlib-and, programs/hexlib_tests/2params/and.fj,tests/compiled/hexlib_tests/2params/and.fjm, 64,2,0, True,True +hexlib-and_n, programs/hexlib_tests/2params/and_n.fj,tests/compiled/hexlib_tests/2params/and_n.fjm, 64,2,0, True,True -hexlib-add-mul-4, programs/hexlib_tests/mul/add_mul4.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul4.fjm, 64,1,0, True,True -hexlib-add-mul-8, programs/hexlib_tests/mul/add_mul8.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul8.fjm, 64,1,0, True,True -hexlib-add-mul-32, programs/hexlib_tests/mul/add_mul32.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul32.fjm, 64,1,0, True,True -hexlib-add-mul-64, programs/hexlib_tests/mul/add_mul64.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul64.fjm, 64,1,0, True,True -hexlib-mul-16, programs/hexlib_tests/mul/mul16.fj | programs/hexlib_tests/mul/mul_test.fj,tests/compiled/hexlib_tests/mul/mul16.fjm, 64,1,0, True,True -hexlib-mul-32, programs/hexlib_tests/mul/mul32.fj | programs/hexlib_tests/mul/mul_test.fj,tests/compiled/hexlib_tests/mul/mul32.fjm, 64,1,0, True,True +hexlib-add-mul-4, programs/hexlib_tests/mul/add_mul4.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul4.fjm, 64,2,0, True,True +hexlib-add-mul-8, programs/hexlib_tests/mul/add_mul8.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul8.fjm, 64,2,0, True,True +hexlib-add-mul-32, programs/hexlib_tests/mul/add_mul32.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul32.fjm, 64,2,0, True,True +hexlib-add-mul-64, programs/hexlib_tests/mul/add_mul64.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul64.fjm, 64,2,0, True,True +hexlib-mul-16, programs/hexlib_tests/mul/mul16.fj | programs/hexlib_tests/mul/mul_test.fj,tests/compiled/hexlib_tests/mul/mul16.fjm, 64,2,0, True,True +hexlib-mul-32, programs/hexlib_tests/mul/mul32.fj | programs/hexlib_tests/mul/mul_test.fj,tests/compiled/hexlib_tests/mul/mul32.fjm, 64,2,0, True,True -hexlib-div-4_1, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_1.fj, tests/compiled/hexlib_tests/div/test4_1.fjm, 64,1,0, True,True -hexlib-div-4_2, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_2.fj, tests/compiled/hexlib_tests/div/test4_2.fjm, 64,1,0, True,True -hexlib-div-4_4, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_4.fj, tests/compiled/hexlib_tests/div/test4_4.fjm, 64,1,0, True,True -hexlib-div-8_1, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_1.fj, tests/compiled/hexlib_tests/div/test8_1.fjm, 64,1,0, True,True -hexlib-div-8_2, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_2.fj, tests/compiled/hexlib_tests/div/test8_2.fjm, 64,1,0, True,True -hexlib-div-8_4, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_4.fj, tests/compiled/hexlib_tests/div/test8_4.fjm, 64,1,0, True,True -hexlib-div-8_8, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_8.fj, tests/compiled/hexlib_tests/div/test8_8.fjm, 64,1,0, True,True +hexlib-div-4_1, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_1.fj, tests/compiled/hexlib_tests/div/test4_1.fjm, 64,2,0, True,True +hexlib-div-4_2, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_2.fj, tests/compiled/hexlib_tests/div/test4_2.fjm, 64,2,0, True,True +hexlib-div-4_4, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_4.fj, tests/compiled/hexlib_tests/div/test4_4.fjm, 64,2,0, True,True +hexlib-div-8_1, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_1.fj, tests/compiled/hexlib_tests/div/test8_1.fjm, 64,2,0, True,True +hexlib-div-8_2, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_2.fj, tests/compiled/hexlib_tests/div/test8_2.fjm, 64,2,0, True,True +hexlib-div-8_4, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_4.fj, tests/compiled/hexlib_tests/div/test8_4.fjm, 64,2,0, True,True +hexlib-div-8_8, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_8.fj, tests/compiled/hexlib_tests/div/test8_8.fjm, 64,2,0, True,True diff --git a/tests/test_compile_medium.csv b/tests/test_compile_medium.csv index dd4c5b7..7109cdb 100644 --- a/tests/test_compile_medium.csv +++ b/tests/test_compile_medium.csv @@ -1,7 +1,7 @@ -casting, programs/concept_checks/casting.fj,tests/compiled/concept_checks/casting.fjm, 64,1,0, True,True -div10, programs/simple_math_checks/div10.fj,tests/compiled/simple_math_checks/div10.fjm, 64,1,0, True,True -hello_world_with_str, programs/print_tests/hello_world_with_str.fj,tests/compiled/print_tests/hello_world_with_str.fjm, 64,1,0, True,True -print_dec, programs/print_tests/print_dec.fj,tests/compiled/print_tests/print_dec.fjm, 64,1,0, True,True -print_hex_int, programs/print_tests/print_hex_int.fj,tests/compiled/print_tests/print_hex_int.fjm, 64,1,0, True,True -ptr, programs/concept_checks/ptr.fj,tests/compiled/concept_checks/ptr.fjm, 64,1,0, True,True -segments, programs/concept_checks/segments.fj,tests/compiled/concept_checks/segments.fjm, 64,1,0, True,True +casting, programs/concept_checks/casting.fj,tests/compiled/concept_checks/casting.fjm, 64,2,0, True,True +div10, programs/simple_math_checks/div10.fj,tests/compiled/simple_math_checks/div10.fjm, 64,2,0, True,True +hello_world_with_str, programs/print_tests/hello_world_with_str.fj,tests/compiled/print_tests/hello_world_with_str.fjm, 64,2,0, True,True +print_dec, programs/print_tests/print_dec.fj,tests/compiled/print_tests/print_dec.fjm, 64,2,0, True,True +print_hex_int, programs/print_tests/print_hex_int.fj,tests/compiled/print_tests/print_hex_int.fjm, 64,2,0, True,True +ptr, programs/concept_checks/ptr.fj,tests/compiled/concept_checks/ptr.fjm, 64,2,0, True,True +segments, programs/concept_checks/segments.fj,tests/compiled/concept_checks/segments.fjm, 64,2,0, True,True diff --git a/tests/test_compile_slow.csv b/tests/test_compile_slow.csv index 5a54e11..2a62504 100644 --- a/tests/test_compile_slow.csv +++ b/tests/test_compile_slow.csv @@ -1,11 +1,11 @@ -calc, programs/calc.fj,tests/compiled/calc.fjm, 64,1,0, True,True +calc, programs/calc.fj,tests/compiled/calc.fjm, 64,2,0, True,True -func1, programs/func_tests/func1.fj,tests/compiled/func_tests/func1.fjm, 64,1,0, True,True -func2, programs/func_tests/func2.fj,tests/compiled/func_tests/func2.fjm, 64,1,0, True,True -func3, programs/func_tests/func3.fj,tests/compiled/func_tests/func3.fjm, 64,1,0, True,True -func4, programs/func_tests/func4.fj,tests/compiled/func_tests/func4.fjm, 64,1,0, True,True -func5, programs/func_tests/func5.fj,tests/compiled/func_tests/func5.fjm, 64,1,0, True,True +func1, programs/func_tests/func1.fj,tests/compiled/func_tests/func1.fjm, 64,2,0, True,True +func2, programs/func_tests/func2.fj,tests/compiled/func_tests/func2.fjm, 64,2,0, True,True +func3, programs/func_tests/func3.fj,tests/compiled/func_tests/func3.fjm, 64,2,0, True,True +func4, programs/func_tests/func4.fj,tests/compiled/func_tests/func4.fjm, 64,2,0, True,True +func5, programs/func_tests/func5.fj,tests/compiled/func_tests/func5.fjm, 64,2,0, True,True -pair_ns1, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test1.fj,tests/compiled/pair_ns_tests/test1.fjm, 64,1,0, True,True -pair_ns2, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test2.fj,tests/compiled/pair_ns_tests/test2.fjm, 64,1,0, True,True -pair_ns3, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test3.fj,tests/compiled/pair_ns_tests/test3.fjm, 64,1,0, True,True +pair_ns1, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test1.fj,tests/compiled/pair_ns_tests/test1.fjm, 64,2,0, True,True +pair_ns2, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test2.fj,tests/compiled/pair_ns_tests/test2.fjm, 64,2,0, True,True +pair_ns3, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test3.fj,tests/compiled/pair_ns_tests/test3.fjm, 64,2,0, True,True diff --git a/tests/test_fj.py b/tests/test_fj.py index 707ba26..6043a3c 100644 --- a/tests/test_fj.py +++ b/tests/test_fj.py @@ -75,7 +75,7 @@ def test_compile(compile_args: CompileTestArgs) -> None: create_parent_directories(compile_args.fjm_out_path) assembler.assemble(compile_args.fj_files_tuples, compile_args.fjm_out_path, compile_args.word_size, - version=compile_args.version, flags=compile_args.flags, + compile_args.version, flags=compile_args.flags, warning_as_errors=compile_args.warning_as_errors) From 56cfdb9059b0e98d679ed460df80f561da7f9667 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Wed, 3 Aug 2022 01:17:45 +0300 Subject: [PATCH 43/66] fix io_devices imports --- src/io_devices/BrokenIO.py | 4 ++-- src/io_devices/FixedIO.py | 4 ++-- src/io_devices/StandardIO.py | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/io_devices/BrokenIO.py b/src/io_devices/BrokenIO.py index 1d64a8e..b9ca083 100644 --- a/src/io_devices/BrokenIO.py +++ b/src/io_devices/BrokenIO.py @@ -1,5 +1,5 @@ -from src.io_devices.IODevice import IODevice -from src.io_devices.io_exceptions import BrokenIOUsed +from .IODevice import IODevice +from .io_exceptions import BrokenIOUsed class BrokenIO(IODevice): diff --git a/src/io_devices/FixedIO.py b/src/io_devices/FixedIO.py index da90c92..e53e072 100644 --- a/src/io_devices/FixedIO.py +++ b/src/io_devices/FixedIO.py @@ -1,5 +1,5 @@ -from src.io_devices.IODevice import IODevice -from src.io_devices.io_exceptions import IOReadOnEOF, IncompleteOutput +from .IODevice import IODevice +from .io_exceptions import IOReadOnEOF, IncompleteOutput class FixedIO(IODevice): diff --git a/src/io_devices/StandardIO.py b/src/io_devices/StandardIO.py index 826627e..9e9e736 100644 --- a/src/io_devices/StandardIO.py +++ b/src/io_devices/StandardIO.py @@ -1,10 +1,10 @@ -from src.io_devices.IODevice import IODevice -from src.io_devices.io_exceptions import IOReadOnEOF, IncompleteOutput - from sys import stdin, stdout -# TODO use this and FixedIO in fj.py / test_fj.py / fjm_run.py -from src.defs import bytes_encoding +from .IODevice import IODevice +from .io_exceptions import IOReadOnEOF, IncompleteOutput + + +bytes_encoding = 'raw_unicode_escape' class StandardIO(IODevice): From 70e30422496109fd4874d46fcbd3692188cfe136 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 6 Aug 2022 00:42:11 +0300 Subject: [PATCH 44/66] fjm CompressedVersion --- src/assembler.py | 5 ++- src/breakpoints.py | 2 +- src/fj.py | 16 +++++-- src/fjm.py | 65 ++++++++++++++++++++++------- tests/test_compile_fast.csv | 38 ++++++++--------- tests/test_compile_hexlib.csv | 78 +++++++++++++++++------------------ tests/test_compile_medium.csv | 14 +++---- tests/test_compile_slow.csv | 18 ++++---- tests/test_fj.py | 3 +- 9 files changed, 144 insertions(+), 95 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 3376d7e..9c17651 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -186,7 +186,7 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, version, - *, flags: int = 0, + *, flags: int = 0, lzma_preset: Optional[int] = None, warning_as_errors: bool = True, show_statistics: bool = False, debugging_file: Optional[Path] = None, print_time: bool = True)\ -> None: @@ -197,12 +197,13 @@ def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, ver @param w:[in]: the memory-width @param version: the .fjm version @param flags: the .fjm flags + @param lzma_preset: the preset to be used when compressing the .fjm data @param warning_as_errors: treat warnings as errors (stop execution on warnings) @param show_statistics: if true shows macro-usage statistics @param debugging_file:[in]: is specified, save debug information in this file @param print_time: if true prints the times of each assemble-stage """ - fjm_writer = fjm.Writer(output_file, w, version, flags=flags) + fjm_writer = fjm.Writer(output_file, w, version, flags=flags, lzma_preset=lzma_preset) with PrintTimer(' parsing: ', print_time=print_time): macros = parse_macro_tree(input_files, w, warning_as_errors) diff --git a/src/breakpoints.py b/src/breakpoints.py index f1821cd..92ab8a1 100644 --- a/src/breakpoints.py +++ b/src/breakpoints.py @@ -15,7 +15,7 @@ class BreakpointHandlerUnnecessary(Exception): def display_message_box_and_get_answer(msg: str, title: str, choices: List[str]) -> str: - # TODO deprecated warning. use another gui (tkinter? seems not so simple) + # might generate an 'import from collections is deprecated' warning if using easygui-version <= 0.98.3. return easygui.buttonbox(msg, title, choices) diff --git a/src/fj.py b/src/fj.py index f984087..7783447 100644 --- a/src/fj.py +++ b/src/fj.py @@ -1,11 +1,13 @@ import os import argparse +import lzma from pathlib import Path from tempfile import TemporaryDirectory from typing import Tuple, List, Callable import assembler import fjm_run +import fjm from io_devices.StandardIO import StandardIO from defs import get_stl_paths @@ -136,7 +138,7 @@ def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, err verify_fj_files(error_func, file_tuples) assembler.assemble(file_tuples, out_fjm_file, args.width, args.version, - flags=args.flags, + flags=args.flags, lzma_preset=args.lzma_preset, warning_as_errors=args.werror, show_statistics=args.stats, print_time=not args.silent, debugging_file=debug_file) @@ -221,10 +223,18 @@ def add_assemble_only_arguments(parser: argparse.ArgumentParser) -> None: asm_arguments.add_argument('-w', '--width', type=int, default=64, choices=[8, 16, 32, 64], metavar='WIDTH', help="specify memory-width. 64 by default") - asm_arguments.add_argument('-v', '--version', metavar='VERSION', type=int, default=2, - help="fjm version (2 by default)") + + supported_versions = '\n'.join(f"{version}: {name}" for version, name in fjm.SUPPORTED_VERSIONS.items()) + asm_arguments.add_argument('-v', '--version', metavar='VERSION', type=int, default=3, + help=f"fjm version ({fjm.CompressedVersion}-compressed by default).\n" + f"supported versions:\n" + supported_versions) asm_arguments.add_argument('-f', '--flags', help="the default .fjm unpacking & running flags", type=int, default=0) + asm_arguments.add_argument('--lzma_preset', type=int, default=lzma.PRESET_DEFAULT, choices=list(range(10)), + help=f"The preset used for the LZMA2 algorithm compression (" + f"{lzma.PRESET_DEFAULT} by default; " + f"used when version={fjm.CompressedVersion}).") + asm_arguments.add_argument('--werror', help="treat all assemble warnings as errors", action='store_true') asm_arguments.add_argument('--no_stl', help="don't assemble/link the standard library files", action='store_true') asm_arguments.add_argument('--stats', help="show macro code-size statistics", action='store_true') diff --git a/src/fjm.py b/src/fjm.py index b0ae060..8948267 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -3,7 +3,9 @@ from pathlib import Path from struct import pack, unpack from time import sleep -from typing import BinaryIO, List, Tuple +from typing import BinaryIO, List, Tuple, Dict + +import lzma from exceptions import FJReadFjmException, FJWriteFjmException @@ -23,8 +25,8 @@ u64 segment_length; // in memory words (w-bits) u64 data_start; // in the outer-struct.data words (w-bits) u64 data_length; // in the outer-struct.data words (w-bits) - } *segments; // segments[segment_num] - u8* data; // the data + } *segments; // segments[segment_num] + u8* data; // the data (might be compressed in some versions) } fjm_file; // Flip-Jump Memory file """ @@ -43,12 +45,21 @@ BaseVersion = 0 NormalVersion = 1 -RelativeJumpVersion = 2 # Compress-friendly -SUPPORTED_VERSIONS = {BaseVersion: 'Base', NormalVersion: 'Normal', RelativeJumpVersion: 'RelativeJump'} +RelativeJumpVersion = 2 # compress-friendly +CompressedVersion = 3 # version 2 but data is lzma2-compressed +SUPPORTED_VERSIONS = { + BaseVersion: 'Base', + NormalVersion: 'Normal', + RelativeJumpVersion: 'RelativeJump', + CompressedVersion: 'Compressed', +} + +_LZMA_FORMAT = lzma.FORMAT_RAW +_LZMA_DECOMPRESSION_FILTERS: List[Dict[str, int]] = [{"id": lzma.FILTER_LZMA2}] + -# TODO decide if needed UPCOMING_VERSIONS = {3: 'Zipped'} -# maybe just support 7z compress if asked to -o path.fjm.7z, and 7z-decompress if asked to run path.fjm.7z -# anyway, version 2 by default. +def _LZMA_COMPRESSION_FILTERS(dw: int, preset: int) -> List[Dict[str, int]]: + return [{"id": lzma.FILTER_LZMA2, "preset": preset, "nice_len": dw}] class GarbageHandling(IntEnum): @@ -97,11 +108,21 @@ def _validate_header(self) -> None: if self.reserved != 0: raise FJReadFjmException(f'Error: bad reserved value ({self.reserved}, should be 0).') + @staticmethod + def _decompress_data(compressed_data: bytes) -> bytes: + try: + return lzma.decompress(compressed_data, format=_LZMA_FORMAT, filters=_LZMA_DECOMPRESSION_FILTERS) + except lzma.LZMAError as e: + raise FJReadFjmException(f'Error: The compressed data is damaged; Unable to decompress.') from e + def _read_data(self, fjm_file: BinaryIO) -> List[int]: read_tag = '<' + {8: 'B', 16: 'H', 32: 'L', 64: 'Q'}[self.w] word_bytes_size = self.w // 8 file_data = fjm_file.read() + if CompressedVersion == self.version: + file_data = self._decompress_data(file_data) + data = [unpack(read_tag, file_data[i:i + word_bytes_size])[0] for i in range(0, len(file_data), word_bytes_size)] return data @@ -111,7 +132,7 @@ def _init_memory(self, segments: List[Tuple], data: List[int]) -> None: self.zeros_boundaries = [] for segment_start, segment_length, data_start, data_length in segments: - if RelativeJumpVersion == self.version: + if self.version in (RelativeJumpVersion, CompressedVersion): word = ((1 << self.w) - 1) for i in range(0, data_length, 2): self.memory[segment_start + i] = data[data_start + i] @@ -181,7 +202,7 @@ def get_word(self, bit_address) -> int: class Writer: - def __init__(self, output_file, w, version, *, flags=0): + def __init__(self, output_file, w, version, *, flags=0, lzma_preset=None): if w not in (8, 16, 32, 64): raise FJWriteFjmException(f"Word size {w} is not in {{8, 16, 32, 64}}.") if version not in SUPPORTED_VERSIONS: @@ -191,6 +212,11 @@ def __init__(self, output_file, w, version, *, flags=0): raise FJWriteFjmException(f"flags must be a 64bit positive number, not {flags}") if BaseVersion == version and flags != 0: raise FJWriteFjmException(f"version 0 does not support the flags option") + if CompressedVersion == version: + if lzma_preset is None or lzma_preset not in range(10): + raise FJWriteFjmException("version 3 requires an LZMA preset (0-9, faster->smaller).") + else: + self.lzma_preset = lzma_preset self.output_file = output_file self.word_size = w @@ -201,6 +227,13 @@ def __init__(self, output_file, w, version, *, flags=0): self.segments = [] self.data = [] # words array + def _compress_data(self, data: bytes) -> bytes: + try: + return lzma.compress(data, format=_LZMA_FORMAT, + filters=_LZMA_COMPRESSION_FILTERS(2*self.word_size, self.lzma_preset)) + except lzma.LZMAError as e: + raise FJWriteFjmException(f'Error: Unable to compress the data.') from e + def write_to_file(self) -> None: write_tag = '<' + {8: 'B', 16: 'H', 32: 'L', 64: 'Q'}[self.word_size] @@ -212,8 +245,11 @@ def write_to_file(self) -> None: for segment in self.segments: f.write(pack(segment_format, *segment)) - for word in self.data: - f.write(pack(write_tag, word)) + fjm_data = b''.join(pack(write_tag, word) for word in self.data) + if CompressedVersion == self.version: + fjm_data = self._compress_data(fjm_data) + + f.write(fjm_data) @staticmethod def _is_segment_collision(start1: int, end1: int, start2: int, end2: int) -> bool: @@ -249,9 +285,10 @@ def add_segment(self, segment_start: int, segment_length: int, data_start: int, raise FJWriteFjmException(f"segment-start and segment-length must be 2*w aligned.") self._validate_segment_not_overlapping(segment_start, segment_length) - # TODO add validate_segment_data_not_overloading (if RelativeJumpVersion == self.version) - maybe inside the above function + # TODO add validate_segment_data_not_overloading + # (if self.version in (RelativeJumpVersion, RelativeCompressedVersion)) - maybe inside the above function - if RelativeJumpVersion == self.version: + if self.version in (RelativeJumpVersion, CompressedVersion): word = ((1 << self.word_size) - 1) for i in range(1, data_length, 2): self.data[data_start + i] = (self.data[data_start + i] - (segment_start + i) * self.word_size) & word diff --git a/tests/test_compile_fast.csv b/tests/test_compile_fast.csv index c901bb2..af5ce13 100644 --- a/tests/test_compile_fast.csv +++ b/tests/test_compile_fast.csv @@ -1,21 +1,21 @@ -cat, programs/print_tests/cat.fj,tests/compiled/print_tests/cat.fjm, 64,2,0, True,True -hello_no-stl, programs/print_tests/hello_no-stl.fj,tests/compiled/print_tests/hello_no-stl.fjm, 64,2,0, False,True -hello_world, programs/print_tests/hello_world.fj,tests/compiled/print_tests/hello_world.fjm, 64,2,0, True,True -hexprint, programs/print_tests/hexprint.fj,tests/compiled/print_tests/hexprint.fjm, 64,2,0, True,True -mathbit, programs/sanity_checks/mathbit.fj,tests/compiled/sanity_checks/mathbit.fjm, 64,2,0, True,True -mathvec, programs/sanity_checks/mathvec.fj,tests/compiled/sanity_checks/mathvec.fjm, 64,2,0, True,True -nadd, programs/simple_math_checks/nadd.fj,tests/compiled/simple_math_checks/nadd.fjm, 64,2,0, True,True -ncat, programs/print_tests/ncat.fj,tests/compiled/print_tests/ncat.fjm, 64,2,0, True,True -ncmp, programs/simple_math_checks/ncmp.fj,tests/compiled/simple_math_checks/ncmp.fjm, 64,2,0, True,True -not, programs/sanity_checks/not.fj,tests/compiled/sanity_checks/not.fjm, 64,2,0, True,True -print_as_digit, programs/print_tests/print_as_digit.fj,tests/compiled/print_tests/print_as_digit.fjm, 64,2,0, True,True +cat, programs/print_tests/cat.fj,tests/compiled/print_tests/cat.fjm, 64,3,0, True,True +hello_no-stl, programs/print_tests/hello_no-stl.fj,tests/compiled/print_tests/hello_no-stl.fjm, 64,3,0, False,True +hello_world, programs/print_tests/hello_world.fj,tests/compiled/print_tests/hello_world.fjm, 64,3,0, True,True +hexprint, programs/print_tests/hexprint.fj,tests/compiled/print_tests/hexprint.fjm, 64,3,0, True,True +mathbit, programs/sanity_checks/mathbit.fj,tests/compiled/sanity_checks/mathbit.fjm, 64,3,0, True,True +mathvec, programs/sanity_checks/mathvec.fj,tests/compiled/sanity_checks/mathvec.fjm, 64,3,0, True,True +nadd, programs/simple_math_checks/nadd.fj,tests/compiled/simple_math_checks/nadd.fjm, 64,3,0, True,True +ncat, programs/print_tests/ncat.fj,tests/compiled/print_tests/ncat.fjm, 64,3,0, True,True +ncmp, programs/simple_math_checks/ncmp.fj,tests/compiled/simple_math_checks/ncmp.fjm, 64,3,0, True,True +not, programs/sanity_checks/not.fj,tests/compiled/sanity_checks/not.fjm, 64,3,0, True,True +print_as_digit, programs/print_tests/print_as_digit.fj,tests/compiled/print_tests/print_as_digit.fjm, 64,3,0, True,True quine16, programs/quine16.fj,tests/compiled/quine16.fjm, 16,0,0, True,True -rep, programs/sanity_checks/rep.fj,tests/compiled/sanity_checks/rep.fjm, 64,2,0, True,True -simple, programs/sanity_checks/simple.fj,tests/compiled/sanity_checks/simple.fjm, 64,2,0, True,True -testbit, programs/sanity_checks/testbit.fj,tests/compiled/sanity_checks/testbit.fjm, 64,2,0, True,True -testbit_with_nops, programs/sanity_checks/testbit_with_nops.fj,tests/compiled/sanity_checks/testbit_with_nops.fjm, 64,2,0, True,True +rep, programs/sanity_checks/rep.fj,tests/compiled/sanity_checks/rep.fjm, 64,3,0, True,True +simple, programs/sanity_checks/simple.fj,tests/compiled/sanity_checks/simple.fjm, 64,3,0, True,True +testbit, programs/sanity_checks/testbit.fj,tests/compiled/sanity_checks/testbit.fjm, 64,3,0, True,True +testbit_with_nops, programs/sanity_checks/testbit_with_nops.fj,tests/compiled/sanity_checks/testbit_with_nops.fjm, 64,3,0, True,True -multi_comp_stl_bc, programs/multi_comp/defs.fj | programs/multi_comp/a.fj | programs/multi_comp/b.fj | programs/multi_comp/c.fj, tests/compiled/multi_comp/multi_comp_stl_bc.fjm, 64,2,0, True,True -multi_comp_no_stl_bc, programs/multi_comp/defs.fj | programs/multi_comp/a_no_stl.fj | programs/multi_comp/b.fj | programs/multi_comp/c.fj, tests/compiled/multi_comp/multi_comp_no_stl_bc.fjm, 64,2,0, False,True -multi_comp_stl_cb, programs/multi_comp/defs.fj | programs/multi_comp/a.fj | programs/multi_comp/c.fj | programs/multi_comp/b.fj, tests/compiled/multi_comp/multi_comp_stl_cb.fjm, 64,2,0, True,True -multi_comp_no_stl_cb, programs/multi_comp/defs.fj | programs/multi_comp/a_no_stl.fj | programs/multi_comp/c.fj | programs/multi_comp/b.fj, tests/compiled/multi_comp/multi_comp_no_stl_cb.fjm, 64,2,0, False,True +multi_comp_stl_bc, programs/multi_comp/defs.fj | programs/multi_comp/a.fj | programs/multi_comp/b.fj | programs/multi_comp/c.fj, tests/compiled/multi_comp/multi_comp_stl_bc.fjm, 64,3,0, True,True +multi_comp_no_stl_bc, programs/multi_comp/defs.fj | programs/multi_comp/a_no_stl.fj | programs/multi_comp/b.fj | programs/multi_comp/c.fj, tests/compiled/multi_comp/multi_comp_no_stl_bc.fjm, 64,3,0, False,True +multi_comp_stl_cb, programs/multi_comp/defs.fj | programs/multi_comp/a.fj | programs/multi_comp/c.fj | programs/multi_comp/b.fj, tests/compiled/multi_comp/multi_comp_stl_cb.fjm, 64,3,0, True,True +multi_comp_no_stl_cb, programs/multi_comp/defs.fj | programs/multi_comp/a_no_stl.fj | programs/multi_comp/c.fj | programs/multi_comp/b.fj, tests/compiled/multi_comp/multi_comp_no_stl_cb.fjm, 64,3,0, False,True diff --git a/tests/test_compile_hexlib.csv b/tests/test_compile_hexlib.csv index 77a8dcd..00320bf 100644 --- a/tests/test_compile_hexlib.csv +++ b/tests/test_compile_hexlib.csv @@ -1,44 +1,44 @@ -hexlib-print_as_digit, programs/hexlib_tests/basics1/print_as_digit.fj,tests/compiled/hexlib_tests/basics1/print_as_digit.fjm, 64,2,0, True,True -hexlib-input, programs/hexlib_tests/basics1/input.fj,tests/compiled/hexlib_tests/basics1/input.fjm, 64,2,0, True,True -hexlib-basic_memory, programs/hexlib_tests/basics1/basic_memory.fj,tests/compiled/hexlib_tests/basics1/basic_memory.fjm, 64,2,0, True,True -hexlib-basic_math, programs/hexlib_tests/basics1/basic_math.fj,tests/compiled/hexlib_tests/basics1/basic_math.fjm, 64,2,0, True,True -hexlib-if, programs/hexlib_tests/basics1/if.fj,tests/compiled/hexlib_tests/basics1/if.fjm, 64,2,0, True,True -hexlib-print_int, programs/hexlib_tests/basics1/print_int.fj,tests/compiled/hexlib_tests/basics1/print_int.fjm, 64,2,0, True,True +hexlib-print_as_digit, programs/hexlib_tests/basics1/print_as_digit.fj,tests/compiled/hexlib_tests/basics1/print_as_digit.fjm, 64,3,0, True,True +hexlib-input, programs/hexlib_tests/basics1/input.fj,tests/compiled/hexlib_tests/basics1/input.fjm, 64,3,0, True,True +hexlib-basic_memory, programs/hexlib_tests/basics1/basic_memory.fj,tests/compiled/hexlib_tests/basics1/basic_memory.fjm, 64,3,0, True,True +hexlib-basic_math, programs/hexlib_tests/basics1/basic_math.fj,tests/compiled/hexlib_tests/basics1/basic_math.fjm, 64,3,0, True,True +hexlib-if, programs/hexlib_tests/basics1/if.fj,tests/compiled/hexlib_tests/basics1/if.fjm, 64,3,0, True,True +hexlib-print_int, programs/hexlib_tests/basics1/print_int.fj,tests/compiled/hexlib_tests/basics1/print_int.fjm, 64,3,0, True,True -hexlib-add_count_bits, programs/hexlib_tests/basics2/add_count_bits.fj, tests/compiled/hexlib_tests/basics2/add_count_bits.fjm, 64,2,0, True,True -hexlib-count_bits, programs/hexlib_tests/basics2/count_bits.fj, tests/compiled/hexlib_tests/basics2/count_bits.fjm, 64,2,0, True,True -hexlib-shl_bit, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_bit.fj, tests/compiled/hexlib_tests/basics2/shl_bit.fjm, 64,2,0, True,True -hexlib-shl_bit_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_bit_n.fj, tests/compiled/hexlib_tests/basics2/shl_bit_n.fjm, 64,2,0, True,True -hexlib-shr_bit, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_bit.fj, tests/compiled/hexlib_tests/basics2/shr_bit.fjm, 64,2,0, True,True -hexlib-shr_bit_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_bit_n.fj, tests/compiled/hexlib_tests/basics2/shr_bit_n.fjm, 64,2,0, True,True -hexlib-shl_hex, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_hex.fj, tests/compiled/hexlib_tests/basics2/shl_hex.fjm, 64,2,0, True,True -hexlib-shl_hex_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_hex_n.fj, tests/compiled/hexlib_tests/basics2/shl_hex_n.fjm, 64,2,0, True,True -hexlib-shr_hex, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_hex.fj, tests/compiled/hexlib_tests/basics2/shr_hex.fjm, 64,2,0, True,True -hexlib-shr_hex_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_hex_n.fj, tests/compiled/hexlib_tests/basics2/shr_hex_n.fjm, 64,2,0, True,True +hexlib-add_count_bits, programs/hexlib_tests/basics2/add_count_bits.fj, tests/compiled/hexlib_tests/basics2/add_count_bits.fjm, 64,3,0, True,True +hexlib-count_bits, programs/hexlib_tests/basics2/count_bits.fj, tests/compiled/hexlib_tests/basics2/count_bits.fjm, 64,3,0, True,True +hexlib-shl_bit, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_bit.fj, tests/compiled/hexlib_tests/basics2/shl_bit.fjm, 64,3,0, True,True +hexlib-shl_bit_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_bit_n.fj, tests/compiled/hexlib_tests/basics2/shl_bit_n.fjm, 64,3,0, True,True +hexlib-shr_bit, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_bit.fj, tests/compiled/hexlib_tests/basics2/shr_bit.fjm, 64,3,0, True,True +hexlib-shr_bit_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_bit_n.fj, tests/compiled/hexlib_tests/basics2/shr_bit_n.fjm, 64,3,0, True,True +hexlib-shl_hex, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_hex.fj, tests/compiled/hexlib_tests/basics2/shl_hex.fjm, 64,3,0, True,True +hexlib-shl_hex_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shl_hex_n.fj, tests/compiled/hexlib_tests/basics2/shl_hex_n.fjm, 64,3,0, True,True +hexlib-shr_hex, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_hex.fj, tests/compiled/hexlib_tests/basics2/shr_hex.fjm, 64,3,0, True,True +hexlib-shr_hex_n, programs/hexlib_tests/basics2/shift_utils.fj | programs/hexlib_tests/basics2/shr_hex_n.fj, tests/compiled/hexlib_tests/basics2/shr_hex_n.fjm, 64,3,0, True,True -hexlib-cmp, programs/hexlib_tests/2params/cmp.fj,tests/compiled/hexlib_tests/2params/cmp.fjm, 64,2,0, True,True -hexlib-cmp_n, programs/hexlib_tests/2params/cmp_n.fj,tests/compiled/hexlib_tests/2params/cmp_n.fjm, 64,2,0, True,True -hexlib-add, programs/hexlib_tests/2params/add.fj,tests/compiled/hexlib_tests/2params/add.fjm, 64,2,0, True,True -hexlib-add_n, programs/hexlib_tests/2params/add_n.fj,tests/compiled/hexlib_tests/2params/add_n.fjm, 64,2,0, True,True -hexlib-sub, programs/hexlib_tests/2params/sub.fj,tests/compiled/hexlib_tests/2params/sub.fjm, 64,2,0, True,True -hexlib-sub_n, programs/hexlib_tests/2params/sub_n.fj,tests/compiled/hexlib_tests/2params/sub_n.fjm, 64,2,0, True,True -hexlib-or, programs/hexlib_tests/2params/or.fj,tests/compiled/hexlib_tests/2params/or.fjm, 64,2,0, True,True -hexlib-or_n, programs/hexlib_tests/2params/or_n.fj,tests/compiled/hexlib_tests/2params/or_n.fjm, 64,2,0, True,True -hexlib-and, programs/hexlib_tests/2params/and.fj,tests/compiled/hexlib_tests/2params/and.fjm, 64,2,0, True,True -hexlib-and_n, programs/hexlib_tests/2params/and_n.fj,tests/compiled/hexlib_tests/2params/and_n.fjm, 64,2,0, True,True +hexlib-cmp, programs/hexlib_tests/2params/cmp.fj,tests/compiled/hexlib_tests/2params/cmp.fjm, 64,3,0, True,True +hexlib-cmp_n, programs/hexlib_tests/2params/cmp_n.fj,tests/compiled/hexlib_tests/2params/cmp_n.fjm, 64,3,0, True,True +hexlib-add, programs/hexlib_tests/2params/add.fj,tests/compiled/hexlib_tests/2params/add.fjm, 64,3,0, True,True +hexlib-add_n, programs/hexlib_tests/2params/add_n.fj,tests/compiled/hexlib_tests/2params/add_n.fjm, 64,3,0, True,True +hexlib-sub, programs/hexlib_tests/2params/sub.fj,tests/compiled/hexlib_tests/2params/sub.fjm, 64,3,0, True,True +hexlib-sub_n, programs/hexlib_tests/2params/sub_n.fj,tests/compiled/hexlib_tests/2params/sub_n.fjm, 64,3,0, True,True +hexlib-or, programs/hexlib_tests/2params/or.fj,tests/compiled/hexlib_tests/2params/or.fjm, 64,3,0, True,True +hexlib-or_n, programs/hexlib_tests/2params/or_n.fj,tests/compiled/hexlib_tests/2params/or_n.fjm, 64,3,0, True,True +hexlib-and, programs/hexlib_tests/2params/and.fj,tests/compiled/hexlib_tests/2params/and.fjm, 64,3,0, True,True +hexlib-and_n, programs/hexlib_tests/2params/and_n.fj,tests/compiled/hexlib_tests/2params/and_n.fjm, 64,3,0, True,True -hexlib-add-mul-4, programs/hexlib_tests/mul/add_mul4.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul4.fjm, 64,2,0, True,True -hexlib-add-mul-8, programs/hexlib_tests/mul/add_mul8.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul8.fjm, 64,2,0, True,True -hexlib-add-mul-32, programs/hexlib_tests/mul/add_mul32.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul32.fjm, 64,2,0, True,True -hexlib-add-mul-64, programs/hexlib_tests/mul/add_mul64.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul64.fjm, 64,2,0, True,True -hexlib-mul-16, programs/hexlib_tests/mul/mul16.fj | programs/hexlib_tests/mul/mul_test.fj,tests/compiled/hexlib_tests/mul/mul16.fjm, 64,2,0, True,True -hexlib-mul-32, programs/hexlib_tests/mul/mul32.fj | programs/hexlib_tests/mul/mul_test.fj,tests/compiled/hexlib_tests/mul/mul32.fjm, 64,2,0, True,True +hexlib-add-mul-4, programs/hexlib_tests/mul/add_mul4.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul4.fjm, 64,3,0, True,True +hexlib-add-mul-8, programs/hexlib_tests/mul/add_mul8.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul8.fjm, 64,3,0, True,True +hexlib-add-mul-32, programs/hexlib_tests/mul/add_mul32.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul32.fjm, 64,3,0, True,True +hexlib-add-mul-64, programs/hexlib_tests/mul/add_mul64.fj | programs/hexlib_tests/mul/add_mul_test.fj,tests/compiled/hexlib_tests/mul/add_mul64.fjm, 64,3,0, True,True +hexlib-mul-16, programs/hexlib_tests/mul/mul16.fj | programs/hexlib_tests/mul/mul_test.fj,tests/compiled/hexlib_tests/mul/mul16.fjm, 64,3,0, True,True +hexlib-mul-32, programs/hexlib_tests/mul/mul32.fj | programs/hexlib_tests/mul/mul_test.fj,tests/compiled/hexlib_tests/mul/mul32.fjm, 64,3,0, True,True -hexlib-div-4_1, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_1.fj, tests/compiled/hexlib_tests/div/test4_1.fjm, 64,2,0, True,True -hexlib-div-4_2, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_2.fj, tests/compiled/hexlib_tests/div/test4_2.fjm, 64,2,0, True,True -hexlib-div-4_4, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_4.fj, tests/compiled/hexlib_tests/div/test4_4.fjm, 64,2,0, True,True -hexlib-div-8_1, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_1.fj, tests/compiled/hexlib_tests/div/test8_1.fjm, 64,2,0, True,True -hexlib-div-8_2, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_2.fj, tests/compiled/hexlib_tests/div/test8_2.fjm, 64,2,0, True,True -hexlib-div-8_4, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_4.fj, tests/compiled/hexlib_tests/div/test8_4.fjm, 64,2,0, True,True -hexlib-div-8_8, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_8.fj, tests/compiled/hexlib_tests/div/test8_8.fjm, 64,2,0, True,True +hexlib-div-4_1, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_1.fj, tests/compiled/hexlib_tests/div/test4_1.fjm, 64,3,0, True,True +hexlib-div-4_2, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_2.fj, tests/compiled/hexlib_tests/div/test4_2.fjm, 64,3,0, True,True +hexlib-div-4_4, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test4_4.fj, tests/compiled/hexlib_tests/div/test4_4.fjm, 64,3,0, True,True +hexlib-div-8_1, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_1.fj, tests/compiled/hexlib_tests/div/test8_1.fjm, 64,3,0, True,True +hexlib-div-8_2, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_2.fj, tests/compiled/hexlib_tests/div/test8_2.fjm, 64,3,0, True,True +hexlib-div-8_4, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_4.fj, tests/compiled/hexlib_tests/div/test8_4.fjm, 64,3,0, True,True +hexlib-div-8_8, programs/hexlib_tests/div/hexlib_div.fj | programs/hexlib_tests/div/test8_8.fj, tests/compiled/hexlib_tests/div/test8_8.fjm, 64,3,0, True,True diff --git a/tests/test_compile_medium.csv b/tests/test_compile_medium.csv index 7109cdb..0a6b132 100644 --- a/tests/test_compile_medium.csv +++ b/tests/test_compile_medium.csv @@ -1,7 +1,7 @@ -casting, programs/concept_checks/casting.fj,tests/compiled/concept_checks/casting.fjm, 64,2,0, True,True -div10, programs/simple_math_checks/div10.fj,tests/compiled/simple_math_checks/div10.fjm, 64,2,0, True,True -hello_world_with_str, programs/print_tests/hello_world_with_str.fj,tests/compiled/print_tests/hello_world_with_str.fjm, 64,2,0, True,True -print_dec, programs/print_tests/print_dec.fj,tests/compiled/print_tests/print_dec.fjm, 64,2,0, True,True -print_hex_int, programs/print_tests/print_hex_int.fj,tests/compiled/print_tests/print_hex_int.fjm, 64,2,0, True,True -ptr, programs/concept_checks/ptr.fj,tests/compiled/concept_checks/ptr.fjm, 64,2,0, True,True -segments, programs/concept_checks/segments.fj,tests/compiled/concept_checks/segments.fjm, 64,2,0, True,True +casting, programs/concept_checks/casting.fj,tests/compiled/concept_checks/casting.fjm, 64,3,0, True,True +div10, programs/simple_math_checks/div10.fj,tests/compiled/simple_math_checks/div10.fjm, 64,3,0, True,True +hello_world_with_str, programs/print_tests/hello_world_with_str.fj,tests/compiled/print_tests/hello_world_with_str.fjm, 64,3,0, True,True +print_dec, programs/print_tests/print_dec.fj,tests/compiled/print_tests/print_dec.fjm, 64,3,0, True,True +print_hex_int, programs/print_tests/print_hex_int.fj,tests/compiled/print_tests/print_hex_int.fjm, 64,3,0, True,True +ptr, programs/concept_checks/ptr.fj,tests/compiled/concept_checks/ptr.fjm, 64,3,0, True,True +segments, programs/concept_checks/segments.fj,tests/compiled/concept_checks/segments.fjm, 64,3,0, True,True diff --git a/tests/test_compile_slow.csv b/tests/test_compile_slow.csv index 2a62504..e0d752f 100644 --- a/tests/test_compile_slow.csv +++ b/tests/test_compile_slow.csv @@ -1,11 +1,11 @@ -calc, programs/calc.fj,tests/compiled/calc.fjm, 64,2,0, True,True +calc, programs/calc.fj,tests/compiled/calc.fjm, 64,3,0, True,True -func1, programs/func_tests/func1.fj,tests/compiled/func_tests/func1.fjm, 64,2,0, True,True -func2, programs/func_tests/func2.fj,tests/compiled/func_tests/func2.fjm, 64,2,0, True,True -func3, programs/func_tests/func3.fj,tests/compiled/func_tests/func3.fjm, 64,2,0, True,True -func4, programs/func_tests/func4.fj,tests/compiled/func_tests/func4.fjm, 64,2,0, True,True -func5, programs/func_tests/func5.fj,tests/compiled/func_tests/func5.fjm, 64,2,0, True,True +func1, programs/func_tests/func1.fj,tests/compiled/func_tests/func1.fjm, 64,3,0, True,True +func2, programs/func_tests/func2.fj,tests/compiled/func_tests/func2.fjm, 64,3,0, True,True +func3, programs/func_tests/func3.fj,tests/compiled/func_tests/func3.fjm, 64,3,0, True,True +func4, programs/func_tests/func4.fj,tests/compiled/func_tests/func4.fjm, 64,3,0, True,True +func5, programs/func_tests/func5.fj,tests/compiled/func_tests/func5.fjm, 64,3,0, True,True -pair_ns1, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test1.fj,tests/compiled/pair_ns_tests/test1.fjm, 64,2,0, True,True -pair_ns2, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test2.fj,tests/compiled/pair_ns_tests/test2.fjm, 64,2,0, True,True -pair_ns3, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test3.fj,tests/compiled/pair_ns_tests/test3.fjm, 64,2,0, True,True +pair_ns1, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test1.fj,tests/compiled/pair_ns_tests/test1.fjm, 64,3,0, True,True +pair_ns2, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test2.fj,tests/compiled/pair_ns_tests/test2.fjm, 64,3,0, True,True +pair_ns3, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test3.fj,tests/compiled/pair_ns_tests/test3.fjm, 64,3,0, True,True diff --git a/tests/test_fj.py b/tests/test_fj.py index 6043a3c..0bf0bfc 100644 --- a/tests/test_fj.py +++ b/tests/test_fj.py @@ -1,3 +1,4 @@ +import lzma from queue import Queue from threading import Lock from pathlib import Path @@ -75,7 +76,7 @@ def test_compile(compile_args: CompileTestArgs) -> None: create_parent_directories(compile_args.fjm_out_path) assembler.assemble(compile_args.fj_files_tuples, compile_args.fjm_out_path, compile_args.word_size, - compile_args.version, flags=compile_args.flags, + compile_args.version, flags=compile_args.flags, lzma_preset=lzma.PRESET_DEFAULT, warning_as_errors=compile_args.warning_as_errors) From 157b67ab37241da59df198a166a524a936be339c Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 6 Aug 2022 10:50:15 +0300 Subject: [PATCH 45/66] src/ refactors and moves --- src/assembler.py | 5 ++- src/breakpoints.py | 4 +- src/defs.py | 49 +++++++++++++++++++++-- src/expr.py | 1 - src/fjm.py | 65 ++++++++++++++++++++----------- src/fjm_run.py | 97 ++++++++++++++-------------------------------- 6 files changed, 122 insertions(+), 99 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 9c17651..5580b3a 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -36,10 +36,11 @@ def add_segment_to_fjm(w: int, if first_address == last_address: return - data_start, data_length = fjm_writer.add_data(fj_words + wflip_words) + data_words = fj_words + wflip_words + data_start = fjm_writer.add_data(data_words) try: - fjm_writer.add_segment(first_address // w, (last_address - first_address) // w, data_start, data_length) + fjm_writer.add_segment(first_address // w, (last_address - first_address) // w, data_start, len(data_words)) except FJWriteFjmException as e: raise FJAssemblerException(f"failed to add the segment: " f"[{hex(first_address)}, {hex(last_address-1)}].") from e diff --git a/src/breakpoints.py b/src/breakpoints.py index 92ab8a1..95d44b6 100644 --- a/src/breakpoints.py +++ b/src/breakpoints.py @@ -7,7 +7,7 @@ import fjm -from defs import macro_separator_string +from defs import macro_separator_string, RunStatistics class BreakpointHandlerUnnecessary(Exception): @@ -87,7 +87,7 @@ def apply_debug_action(self, action: str, op_counter: int) -> None: raise BreakpointHandlerUnnecessary() -def handle_breakpoint(breakpoint_handler: BreakpointHandler, ip: int, mem: fjm.Reader, statistics: 'RunStatistics') \ +def handle_breakpoint(breakpoint_handler: BreakpointHandler, ip: int, mem: fjm.Reader, statistics: RunStatistics) \ -> BreakpointHandler: """ show debug message, query user for action, apply its action. diff --git a/src/defs.py b/src/defs.py index 9f513fa..7ae2860 100644 --- a/src/defs.py +++ b/src/defs.py @@ -11,6 +11,9 @@ def get_stl_paths() -> List[Path]: + """ + @return: list of the ordered standard-library paths + """ stl_path = Path(__file__).parent.parent / 'stl' with open(stl_path / 'conf.json', 'r') as stl_json: stl_options = json.load(stl_json) @@ -18,12 +21,14 @@ def get_stl_paths() -> List[Path]: class TerminationCause(IntEnum): - Looping = 0 - EOF = 1 - NullIP = 2 + Looping = 0 # Finished by jumping to the last op, without flipping it (the "regular" finish/exit) + EOF = 1 # Finished by reading input when there is no more input + NullIP = 2 # Finished by jumping back to the initial op 0 (bad finish) + UnalignedWord = 3 # FOR FUTURE SUPPORT - tried to access an unaligned word (bad finish) + UnalignedOp = 4 # FOR FUTURE SUPPORT - tried to access a dword-unaligned op (bad finish) def __str__(self) -> str: - return ['looping', 'EOF', 'ip<2w'][self.value] + return ['looping', 'EOF', 'ip<2w', 'unaligned-word', 'unaligned-op'][self.value] macro_separator_string = "---" @@ -62,3 +67,39 @@ class Macro: ops: List[Op] namespace: str code_position: CodePosition + + +class RunStatistics: + """ + maintains times and counters of the current run. + """ + class PauseTimer: + def __init__(self): + self.paused_time = 0 + + def __enter__(self): + self.pause_start_time = time() + + def __exit__(self, exc_type, exc_val, exc_tb): + self.paused_time += time() - self.pause_start_time + + def __init__(self, w: int): + self._op_size = 2 * w + self._after_null_flip = 2 * w + + self.op_counter = 0 + self.flip_counter = 0 + self.jump_counter = 0 + + self._start_time = time() + self.pause_timer = self.PauseTimer() + + def get_run_time(self) -> float: + return time() - self._start_time - self.pause_timer.paused_time + + def register_op(self, ip: int, flip_address: int, jump_address: int) -> None: + self.op_counter += 1 + if flip_address >= self._after_null_flip: + self.flip_counter += 1 + if jump_address != ip + self._op_size: + self.jump_counter += 1 diff --git a/src/expr.py b/src/expr.py index e72437e..f767b1e 100644 --- a/src/expr.py +++ b/src/expr.py @@ -47,7 +47,6 @@ def all_unknown_labels(self) -> Set[str]: return {self.value} return set(label for expr in self.value[1] for label in expr.all_unknown_labels()) - # def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: """ creates a new Expr, as minimal as possible. diff --git a/src/fjm.py b/src/fjm.py index 8948267..1aae915 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -3,7 +3,7 @@ from pathlib import Path from struct import pack, unpack from time import sleep -from typing import BinaryIO, List, Tuple, Dict +from typing import BinaryIO, List, Tuple, Dict, Optional import lzma @@ -58,7 +58,7 @@ _LZMA_DECOMPRESSION_FILTERS: List[Dict[str, int]] = [{"id": lzma.FILTER_LZMA2}] -def _LZMA_COMPRESSION_FILTERS(dw: int, preset: int) -> List[Dict[str, int]]: +def _lzma_compression_filters(dw: int, preset: int) -> List[Dict[str, int]]: return [{"id": lzma.FILTER_LZMA2, "preset": preset, "nice_len": dw}] @@ -116,6 +116,9 @@ def _decompress_data(compressed_data: bytes) -> bytes: raise FJReadFjmException(f'Error: The compressed data is damaged; Unable to decompress.') from e def _read_data(self, fjm_file: BinaryIO) -> List[int]: + """ + @return: list of the uncompressed words. + """ read_tag = '<' + {8: 'B', 16: 'H', 32: 'L', 64: 'Q'}[self.w] word_bytes_size = self.w // 8 @@ -176,33 +179,45 @@ def __setitem__(self, address: int, value: int) -> None: self.memory[address] = value def bit_address_decompose(self, bit_address: int) -> Tuple[int, int]: + """ + @param bit_address: the address + @return: tuple of the word address and the bit offset + """ address = (bit_address >> (self.w.bit_length() - 1)) & ((1 << self.w) - 1) - bit = bit_address & (self.w - 1) - return address, bit + bit_offset = bit_address & (self.w - 1) + return address, bit_offset - def read_bit(self, bit_address) -> int: - address, bit = self.bit_address_decompose(bit_address) - return (self[address] >> bit) & 1 + def read_bit(self, bit_address: int) -> bool: + address, bit_offset = self.bit_address_decompose(bit_address) + return (self[address] >> bit_offset) & 1 == 1 - def write_bit(self, bit_address, value) -> None: - address, bit = self.bit_address_decompose(bit_address) + def write_bit(self, bit_address: int, value: bool) -> None: + address, bit_offset = self.bit_address_decompose(bit_address) if value: - self[address] = self[address] | (1 << bit) + self[address] = self[address] | (1 << bit_offset) else: - self[address] = self[address] & ((1 << self.w) - 1 - (1 << bit)) + self[address] = self[address] & ((1 << self.w) - 1 - (1 << bit_offset)) - def get_word(self, bit_address) -> int: - address, bit = self.bit_address_decompose(bit_address) - if bit == 0: + def get_word(self, bit_address: int) -> int: + address, bit_offset = self.bit_address_decompose(bit_address) + if bit_offset == 0: return self[address] if address == ((1 << self.w) - 1): raise FJReadFjmException(f'Accessed outside of memory (beyond the last bit).') lsw, msw = self[address], self[address+1] - return ((lsw >> bit) | (msw << (self.w - bit))) & ((1 << self.w) - 1) + return ((lsw >> bit_offset) | (msw << (self.w - bit_offset))) & ((1 << self.w) - 1) class Writer: - def __init__(self, output_file, w, version, *, flags=0, lzma_preset=None): + def __init__(self, output_file: Path, w: int, version: int, *, flags: int = 0, lzma_preset: Optional[int] = None): + """ + the .fjm-file writer + @param output_file: the path to the .fjm file + @param w: the memory-width + @param version: the file's version + @param flags: the file's flags + @param lzma_preset: the preset to be used when compressing the .fjm data + """ if w not in (8, 16, 32, 64): raise FJWriteFjmException(f"Word size {w} is not in {{8, 16, 32, 64}}.") if version not in SUPPORTED_VERSIONS: @@ -230,7 +245,7 @@ def __init__(self, output_file, w, version, *, flags=0, lzma_preset=None): def _compress_data(self, data: bytes) -> bytes: try: return lzma.compress(data, format=_LZMA_FORMAT, - filters=_LZMA_COMPRESSION_FILTERS(2*self.word_size, self.lzma_preset)) + filters=_lzma_compression_filters(2 * self.word_size, self.lzma_preset)) except lzma.LZMAError as e: raise FJWriteFjmException(f'Error: Unable to compress the data.') from e @@ -295,12 +310,16 @@ def add_segment(self, segment_start: int, segment_length: int, data_start: int, self.segments.append((segment_start, segment_length, data_start, data_length)) - def add_data(self, data: List[int]) -> Tuple[int, int]: + def add_data(self, data: List[int]) -> int: + """ + append the data to the current data + @param data: the word-list + @return: the data start index + """ start = len(self.data) - length = len(data) self.data += data - return start, length + return start - def add_simple_segment_with_data(self, segment_start, data) -> None: - data_start, data_length = self.add_data(data) - self.add_segment(segment_start, data_length, data_start, data_length) + def add_simple_segment_with_data(self, segment_start: int, data: List[int]) -> None: + data_start = self.add_data(data) + self.add_segment(segment_start, len(data), data_start, len(data)) diff --git a/src/fjm_run.py b/src/fjm_run.py index 0a07e6b..f81d725 100644 --- a/src/fjm_run.py +++ b/src/fjm_run.py @@ -1,10 +1,9 @@ from pathlib import Path -from time import time from typing import Optional import fjm -from defs import TerminationCause, PrintTimer +from defs import TerminationCause, PrintTimer, RunStatistics from breakpoints import BreakpointHandler, handle_breakpoint from io_devices.IODevice import IODevice @@ -12,42 +11,6 @@ from io_devices.io_exceptions import IOReadOnEOF -class RunStatistics: - """ - maintains times and counters of the current run. - """ - class PauseTimer: - def __init__(self): - self.paused_time = 0 - - def __enter__(self): - self.pause_start_time = time() - - def __exit__(self, exc_type, exc_val, exc_tb): - self.paused_time += time() - self.pause_start_time - - def __init__(self, w: int): - self._op_size = 2 * w - self._after_null_flip = 2 * w - - self.op_counter = 0 - self.flip_counter = 0 - self.jump_counter = 0 - - self._start_time = time() - self.pause_timer = self.PauseTimer() - - def get_run_time(self) -> float: - return time() - self._start_time - self.pause_timer.paused_time - - def register_op(self, ip: int, flip_address: int, jump_address: int) -> None: - self.op_counter += 1 - if flip_address >= self._after_null_flip: - self.flip_counter += 1 - if jump_address != ip + self._op_size: - self.jump_counter += 1 - - class TerminationStatistics: """ saves the run-statistics and data of the fj program-termination, to be presented nicely. @@ -65,7 +28,7 @@ def __init__(self, run_statistics: RunStatistics, termination_cause: Termination def __str__(self): flips_percentage = self.flip_counter / self.op_counter * 100 jumps_percentage = self.jump_counter / self.op_counter * 100 - return f'Finished by {self.termination_cause} after {self.run_time:.3f}s ' \ + return f'Finished by {str(self.termination_cause)} after {self.run_time:.3f}s ' \ f'(' \ f'{self.op_counter:,} ops executed; ' \ f'{flips_percentage:.2f}% flips, ' \ @@ -73,6 +36,33 @@ def __str__(self): f').' +def handle_input(io_device: IODevice, ip: int, mem: fjm.Reader, statistics: RunStatistics) -> None: + w = mem.w + in_addr = 3 * w + w.bit_length() # 3w + dww + + if ip <= in_addr < ip + 2 * w: + with statistics.pause_timer: + input_bit = io_device.read_bit() + mem.write_bit(in_addr, input_bit) + + +def handle_output(flip_address: int, io_device: IODevice, w: int): + out_addr = 2 * w + if out_addr <= flip_address <= out_addr + 1: + io_device.write_bit(out_addr + 1 == flip_address) + + +def trace_jump(jump_address: int, show_trace: bool) -> None: + if show_trace: + print(hex(jump_address)[2:]) + + +def trace_flip(ip: int, flip_address: int, show_trace: bool) -> None: + if show_trace: + print(hex(ip)[2:].rjust(7), end=': ') + print(hex(flip_address)[2:], end='; ', flush=True) + + def run(fjm_path: Path, *, breakpoint_handler: Optional[BreakpointHandler] = None, io_device: Optional[IODevice] = None, @@ -116,7 +106,7 @@ def run(fjm_path: Path, *, return TerminationStatistics(statistics, TerminationCause.EOF) # FLIP! - mem.write_bit(flip_address, 1-mem.read_bit(flip_address)) + mem.write_bit(flip_address, not mem.read_bit(flip_address)) # read jump word jump_address = mem.get_word(ip+w) @@ -131,30 +121,3 @@ def run(fjm_path: Path, *, # JUMP! ip = jump_address - - -def handle_input(io_device: IODevice, ip: int, mem: fjm.Reader, statistics: RunStatistics) -> None: - w = mem.w - in_addr = 3 * w + w.bit_length() # 3w + dww - - if ip <= in_addr < ip + 2 * w: - with statistics.pause_timer: - input_bit = io_device.read_bit() - mem.write_bit(in_addr, input_bit) - - -def handle_output(flip_address: int, io_device: IODevice, w: int): - out_addr = 2 * w - if out_addr <= flip_address <= out_addr + 1: - io_device.write_bit(out_addr + 1 == flip_address) - - -def trace_jump(jump_address: int, show_trace: bool) -> None: - if show_trace: - print(hex(jump_address)[2:]) - - -def trace_flip(ip: int, flip_address: int, show_trace: bool) -> None: - if show_trace: - print(hex(ip)[2:].rjust(7), end=': ') - print(hex(flip_address)[2:], end='; ', flush=True) From 2fb5df9e170111f54fef31b00dbcbc513accc55a Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 6 Aug 2022 12:04:40 +0300 Subject: [PATCH 46/66] document src/ops --- src/ops.py | 63 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 10 deletions(-) diff --git a/src/ops.py b/src/ops.py index fb98574..e6d8cdc 100644 --- a/src/ops.py +++ b/src/ops.py @@ -9,8 +9,11 @@ @dataclass class CodePosition: + """ + A position in the .fj files. + """ file: str - file_short_name: str + file_short_name: str # shortened file name. usually s1,s2,.. for stl, and f1,f2,.. for the rest. line: int def __str__(self) -> str: @@ -21,6 +24,9 @@ def short_str(self) -> str: class MacroName: + """ + Unique for every macro definition. + """ def __init__(self, name: str, parameter_num: int = 0): self.name = name self.parameter_num = parameter_num @@ -40,12 +46,13 @@ def __eq__(self, other): return type(other) == MacroName and self.to_tuple() == other.to_tuple() +# The name of the macro that holds the ops that are outside any macro. main_macro = MacroName('') class FlipJump: """ - data = [flip_address, jump_address] + The python representation of the "flip; jump" fj-assembly op. """ def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): self.flip = flip @@ -72,7 +79,7 @@ def get_jump(self, labels: Dict[str, Expr]) -> int: class WordFlip: """ - data = [word_address, value, return_address] + The python representation of the "wflip address, value [, return_address]" fj-assembly op. """ def __init__(self, word_address: Expr, flip_value: Expr, return_address: Expr, code_position: CodePosition): self.word_address = word_address @@ -104,6 +111,9 @@ def get_return_address(self, labels: Dict[str, Expr]) -> int: class Pad: + """ + The python representation of the "pad ops_alignment" fj-assembly op. + """ def __init__(self, ops_alignment: Expr, code_position: CodePosition): self.ops_alignment = ops_alignment self.code_position = code_position @@ -130,7 +140,7 @@ def calculate_ops_alignment(self, labels: Dict[str, Expr]) -> int: class Segment: """ - data = [start_address] + The python representation of the "segment start_address" fj-assembly op. """ def __init__(self, start_address: Expr, code_position: CodePosition): self.start_address = start_address @@ -158,7 +168,7 @@ def calculate_address(self, labels: Dict[str, Expr]) -> int: class Reserve: """ - data = [reserved_bit_size] + The python representation of the "reserve bit_size" fj-assembly op. """ def __init__(self, reserved_bit_size: Expr, code_position: CodePosition): self.reserved_bit_size = reserved_bit_size @@ -186,7 +196,7 @@ def calculate_reserved_bit_size(self, labels: Dict[str, Expr]) -> int: class MacroCall: """ - data = ordered list of macro arguments + The python representation of the "macro-call [args..]" fj-assembly op. """ def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePosition): self.macro_name = MacroName(macro_name, len(arguments)) @@ -208,8 +218,7 @@ def trace_str(self) -> str: class RepCall: """ - data[0] = repeat_times - data[1:] = ordered list of macro arguments + The python representation of the "rep(n, i) macro_call [args..]" fj-assembly op. """ def __init__(self, repeat_times: Expr, iterator_name: str, macro_name: str, arguments: List[Expr], code_position: CodePosition): @@ -259,6 +268,9 @@ def trace_str(self, iter_value: int) -> str: class Label: + """ + The python representation of the "label:" fj-assembly op. + """ def __init__(self, name: str, code_position: CodePosition): self.name = name self.code_position = code_position @@ -287,10 +299,17 @@ def get_declared_labels(ops: List[Op]) -> Set[str]: return set(op.name for op in ops if isinstance(op, Label)) -def new_label(macro_path: str, label_name: str) -> Expr: - return Expr(f'{macro_path}---{label_name}') +def new_label(macro_path: str, label_basename: str) -> Expr: + """ + creates a new label expression (with a new name) + @param macro_path: the path to the currently-preprocessed macro + @param label_basename: the label basename + @return: the new expression + """ + return Expr(f'{macro_path}---{label_basename}') +# The input for the preprocessor Op = Union[FlipJump, WordFlip, Pad, Label, MacroCall, RepCall, Segment, Reserve] @@ -298,19 +317,43 @@ def new_label(macro_path: str, label_name: str) -> Expr: class NewSegment: + """ + The python expressions-resolved (all compilation data is known) representation + of the "segment start_address" fj-assembly op. + """ def __init__(self, start_address: int): + """ + @param start_address: the first address of the new segment + """ self.start_address = start_address + + # a stub, to be resolved later with the start of the wflip area address self.wflip_start_address = WFLIP_NOT_INSERTED_YET class ReserveBits: + """ + The python expressions-resolved (all compilation data is known) representation + of the "reserve bit_size" fj-assembly op. + """ def __init__(self, first_address_after_reserved: int): + """ + @param first_address_after_reserved: the address right after the reserved "segment". + """ self.first_address_after_reserved = first_address_after_reserved class Padding: + """ + The python expressions-resolved (all compilation data is known) representation + of the "pad ops_alignment" fj-assembly op. + """ def __init__(self, ops_count: int): + """ + @param ops_count: the number of fj-ops to pad. + """ self.ops_count = ops_count +# The input to the labels-resolve LastPhaseOp = Union[FlipJump, WordFlip, Padding, NewSegment, ReserveBits] From 196807d6999ae3a887efa3309bebbdc3c4a73b75 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 6 Aug 2022 13:13:20 +0300 Subject: [PATCH 47/66] validate .fjm data overlapping when needed --- src/assembler.py | 7 +++- src/fjm.py | 107 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 85 insertions(+), 29 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 5580b3a..4aeed9e 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -39,11 +39,14 @@ def add_segment_to_fjm(w: int, data_words = fj_words + wflip_words data_start = fjm_writer.add_data(data_words) + segment_start_address = first_address // w + segment_length = (last_address - first_address) // w + try: - fjm_writer.add_segment(first_address // w, (last_address - first_address) // w, data_start, len(data_words)) + fjm_writer.add_segment(segment_start_address, segment_length, data_start, len(data_words)) except FJWriteFjmException as e: raise FJAssemblerException(f"failed to add the segment: " - f"[{hex(first_address)}, {hex(last_address-1)}].") from e + f"{fjm_writer.segment_addresses_repr(segment_start_address, segment_length)}.") from e fj_words.clear() wflip_words.clear() diff --git a/src/fjm.py b/src/fjm.py index 1aae915..53ce888 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -250,6 +250,10 @@ def _compress_data(self, data: bytes) -> bytes: raise FJWriteFjmException(f'Error: Unable to compress the data.') from e def write_to_file(self) -> None: + """ + writes the .fjm headers, segments and (might be compressed) data into the output_file. + @note call this after finished adding data and segments and editing the Writer. + """ write_tag = '<' + {8: 'B', 16: 'H', 32: 'L', 64: 'Q'}[self.word_size] with open(self.output_file, 'wb') as f: @@ -266,60 +270,109 @@ def write_to_file(self) -> None: f.write(fjm_data) + def segment_addresses_repr(self, word_start_address: int, word_length: int) -> str: + """ + @param word_start_address: the start address of the segment in memory (in words) + @param word_length: the number of words the segment takes in memory + @return: a nice looking segment-representation string by its addresses + """ + return f'[{hex(self.word_size * word_start_address)}, ' \ + f'{hex(self.word_size * (word_start_address + word_length))})' + @staticmethod - def _is_segment_collision(start1: int, end1: int, start2: int, end2: int) -> bool: + def _is_collision(start1: int, end1: int, start2: int, end2: int) -> bool: if any(start2 <= address <= end2 for address in (start1, end1)): return True if any(start1 <= address <= end1 for address in (start2, end2)): return True return False - def _validate_segment_not_overlapping(self, new_start: int, new_length: int) -> None: - new_end = new_start + new_length - 1 - for i, (start, length, _, _) in enumerate(self.segments): - - if self._is_segment_collision(start, start + length - 1, new_start, new_end): - w = self.word_size - - bit_start = start * w - bit_end = (start + length) * w - 1 + def _validate_segment_addresses_not_overlapping(self, new_segment_start: int, new_segment_length: int) -> None: + new_segment_end = new_segment_start + new_segment_length - 1 + for i, (segment_start, segment_length, _, _) in enumerate(self.segments): + segment_end = segment_start + segment_length - 1 + + if self._is_collision(segment_start, segment_end, new_segment_start, new_segment_end): + raise FJWriteFjmException( + f"Overlapping segments addresses: " + f"seg[{i}]={self.segment_addresses_repr(segment_start, segment_length)}" + f" and " + f"seg[{len(self.segments)}]={self.segment_addresses_repr(new_segment_start, new_segment_length)}" + ) + + def _validate_segment_data_not_overlapping(self, new_data_start: int, new_data_length: int) -> None: + if new_data_length == 0: + return + new_data_end = new_data_start + new_data_length - 1 + + for i, (_, _, data_start, data_length) in enumerate(self.segments): + if data_length == 0: + continue + data_end = data_start + data_length - 1 + + if self._is_collision(data_start, data_end, new_data_start, new_data_end): + raise FJWriteFjmException( + f"Overlapping segments data: " + f"seg[{i}]=data[{hex(data_start)}, {hex(data_end + 1)})" + f" and " + f"seg[{len(self.segments)}]=data[{hex(new_data_start)}, {hex(new_data_end + 1)})" + ) + + def _validate_segment_not_overlapping(self, segment_start: int, segment_length: int, + data_start: int, data_length: int) -> None: + self._validate_segment_addresses_not_overlapping(segment_start, segment_length) - new_bit_start = new_start * w - new_bit_end = (new_start + new_length) * w - 1 + if self.version in (RelativeJumpVersion, CompressedVersion): + self._validate_segment_data_not_overlapping(data_start, data_length) - raise FJWriteFjmException(f"Overlapping segments: " - f"seg[{i}]=[{hex(bit_start)}, {hex(bit_end)}]" - f" and " - f"seg[{len(self.segments)}]=[{hex(new_bit_start)}, {hex(new_bit_end)}]") + def _update_to_relative_jumps(self, segment_start: int, data_start: int, data_length: int) -> None: + word = ((1 << self.word_size) - 1) + for i in range(1, data_length, 2): + self.data[data_start + i] = (self.data[data_start + i] - (segment_start + i) * self.word_size) & word def add_segment(self, segment_start: int, segment_length: int, data_start: int, data_length: int) -> None: + """ + inserts a new segment to the fjm file. checks that it doesn't overlap with any previously inserted segments. + @param segment_start: the start address of the segment in memory (in words) + @param segment_length: the number of words the segment takes in memory (if bigger that the data_length, + the segment is padded with zeros after the end of the data). + @param data_start: the index of the data's start in the inner data array + @param data_length: the number of words in the segment's data + """ + segment_addresses_str = f'seg[{self.segments}]={self.segment_addresses_repr(segment_start, segment_length)}' + if segment_length < data_length: - raise FJWriteFjmException(f"segment-length must be at-least data-length (in )") + raise FJWriteFjmException(f"segment-length must be at-least data-length (in {segment_addresses_str}).") if segment_start % 2 == 1 or segment_length % 2 == 1: - raise FJWriteFjmException(f"segment-start and segment-length must be 2*w aligned.") + raise FJWriteFjmException(f"segment-start and segment-length must be 2*w aligned " + f"(in {segment_addresses_str}).") - self._validate_segment_not_overlapping(segment_start, segment_length) - # TODO add validate_segment_data_not_overloading - # (if self.version in (RelativeJumpVersion, RelativeCompressedVersion)) - maybe inside the above function + if segment_length <= 0: + raise FJWriteFjmException(f"segment-length must be positive (in {segment_addresses_str}).") + + self._validate_segment_not_overlapping(segment_start, segment_length, data_start, data_length) if self.version in (RelativeJumpVersion, CompressedVersion): - word = ((1 << self.word_size) - 1) - for i in range(1, data_length, 2): - self.data[data_start + i] = (self.data[data_start + i] - (segment_start + i) * self.word_size) & word + self._update_to_relative_jumps(segment_start, data_start, data_length) self.segments.append((segment_start, segment_length, data_start, data_length)) def add_data(self, data: List[int]) -> int: """ append the data to the current data - @param data: the word-list + @param data: a list of words @return: the data start index """ - start = len(self.data) + data_start = len(self.data) self.data += data - return start + return data_start def add_simple_segment_with_data(self, segment_start: int, data: List[int]) -> None: + """ + adds the data and a segment that contains exactly the data, to the fjm + @param segment_start: the start address of the segment in memory (in words) + @param data: a list of words + """ data_start = self.add_data(data) self.add_segment(segment_start, len(data), data_start, len(data)) From 56ca6af9341ff5e132b7055a5419290a19ebb817 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 6 Aug 2022 16:46:29 +0300 Subject: [PATCH 48/66] new expr evaluation, debug-format updated, add documentation --- src/assembler.py | 37 ++++---- src/breakpoints.py | 24 +++--- src/defs.py | 37 +++++++- src/expr.py | 25 +++++- src/fj.py | 6 +- src/fjm.py | 159 ++++++++++++++++++++++------------- src/io_devices/StandardIO.py | 6 +- src/ops.py | 58 ++++++------- src/preprocessor.py | 10 +-- tests/test_fj.py | 13 +-- 10 files changed, 229 insertions(+), 146 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 4aeed9e..41d91ce 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -1,5 +1,4 @@ import dataclasses -import pickle from collections import defaultdict from pathlib import Path from typing import Deque, List, Dict, Tuple, Optional @@ -8,8 +7,7 @@ from fj_parser import parse_macro_tree from preprocessor import resolve_macros -from expr import Expr -from defs import PrintTimer +from defs import PrintTimer, save_debugging_labels from ops import FlipJump, WordFlip, LastPhaseOp, NewSegment, ReserveBits, Padding from exceptions import FJAssemblerException, FJException, FJWriteFjmException @@ -46,7 +44,7 @@ def add_segment_to_fjm(w: int, fjm_writer.add_segment(segment_start_address, segment_length, data_start, len(data_words)) except FJWriteFjmException as e: raise FJAssemblerException(f"failed to add the segment: " - f"{fjm_writer.segment_addresses_repr(segment_start_address, segment_length)}.") from e + f"{fjm_writer.get_segment_addresses_repr(segment_start_address, segment_length)}.") from e fj_words.clear() wflip_words.clear() @@ -152,8 +150,15 @@ def insert_reserve_bits(self, fjm_writer: fjm.Writer, new_first_address: int) -> self.padding_ops_indices.clear() -def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], +def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, int], w: int, fjm_writer: fjm.Writer) -> None: + """ + resolve the labels and expressions to get the list of fj ops, and add all the data and segments into the fjm_writer. + @param ops:[in]: the list ops returned from the preprocessor stage + @param labels:[in]: dictionary from label to its resolved value + @param w: the memory-width + @param fjm_writer: [out]: the .fjm file writer + """ first_segment: NewSegment = ops.popleft() if not isinstance(first_segment, NewSegment): raise FJAssemblerException(f"The first op must be of type NewSegment (and not {first_segment}).") @@ -189,26 +194,20 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, Expr], binary_data.close_and_add_segment(fjm_writer) -def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, version, - *, flags: int = 0, lzma_preset: Optional[int] = None, +def assemble(input_files: List[Tuple[str, Path]], w: int, fjm_writer: fjm.Writer, warning_as_errors: bool = True, - show_statistics: bool = False, debugging_file: Optional[Path] = None, print_time: bool = True)\ + show_statistics: bool = False, debugging_file_path: Optional[Path] = None, print_time: bool = True)\ -> None: """ runs the assembly pipeline. assembles the input files to a .fjm. @param input_files:[in]: a list of (short_file_name, fj_file_path). The files will to be parsed in that given order. - @param output_file:[in]: the path to the .fjm file - @param w:[in]: the memory-width - @param version: the .fjm version - @param flags: the .fjm flags - @param lzma_preset: the preset to be used when compressing the .fjm data + @param w: the memory-width + @param fjm_writer:[out]: the .fjm file writer @param warning_as_errors: treat warnings as errors (stop execution on warnings) @param show_statistics: if true shows macro-usage statistics - @param debugging_file:[in]: is specified, save debug information in this file + @param debugging_file_path:[out]: is specified, save debug information in this file @param print_time: if true prints the times of each assemble-stage """ - fjm_writer = fjm.Writer(output_file, w, version, flags=flags, lzma_preset=lzma_preset) - with PrintTimer(' parsing: ', print_time=print_time): macros = parse_macro_tree(input_files, w, warning_as_errors) @@ -221,8 +220,4 @@ def assemble(input_files: List[Tuple[str, Path]], output_file: Path, w: int, ver with PrintTimer(' create binary: ', print_time=print_time): fjm_writer.write_to_file() - labels = {label: labels[label].value for label in labels} - - if debugging_file: - with open(debugging_file, 'wb') as f: - pickle.dump(labels, f, pickle.HIGHEST_PROTOCOL) + save_debugging_labels(debugging_file_path, labels) diff --git a/src/breakpoints.py b/src/breakpoints.py index 95d44b6..4b38a6f 100644 --- a/src/breakpoints.py +++ b/src/breakpoints.py @@ -7,7 +7,7 @@ import fjm -from defs import macro_separator_string, RunStatistics +from defs import macro_separator_string, RunStatistics, load_debugging_labels class BreakpointHandlerUnnecessary(Exception): @@ -170,20 +170,20 @@ def update_breakpoints_from_addresses_set(breakpoint_addresses: Optional[Set[int breakpoints[address] = None -def load_labels_dictionary(debugging_file: Path, labels_file_needed: bool) -> Dict[str, int]: +def load_labels_dictionary(debugging_file: Optional[Path], labels_file_needed: bool) -> Dict[str, int]: """ load the labels_dictionary from debugging_file, if possible. """ - label_to_address = [] - if debugging_file is not None: - if path.isfile(debugging_file): - with open(debugging_file, 'rb') as f: - label_to_address = pickle.load(f) - else: - print(f"Warning: debugging file {debugging_file} can't be found!") - elif labels_file_needed: - print(f"Warning: debugging labels can't be found! no debugging file specified.") - return label_to_address + if debugging_file is None: + if labels_file_needed: + print(f"Warning: debugging labels can't be found! no debugging file specified.") + return {} + + if not debugging_file.is_file(): + print(f"Warning: debugging file {debugging_file} can't be found!") + return {} + + return load_debugging_labels(debugging_file) def get_breakpoint_handler(debugging_file: Path, breakpoint_addresses: Set[int], breakpoint_labels: Set[str], diff --git a/src/defs.py b/src/defs.py index 7ae2860..69f60d5 100644 --- a/src/defs.py +++ b/src/defs.py @@ -2,10 +2,11 @@ import dataclasses import json +import lzma from enum import IntEnum # IntEnum equality works between files. from pathlib import Path from time import time -from typing import List +from typing import List, Dict from ops import CodePosition, Op @@ -33,7 +34,39 @@ def __str__(self) -> str: macro_separator_string = "---" -bytes_encoding = 'raw_unicode_escape' +io_bytes_encoding = 'raw_unicode_escape' + + +_debug_json_encoding = 'utf-8' +_debug_json_lzma_format = lzma.FORMAT_RAW +_debug_json_lzma_filters: List[Dict[str, int]] = [{"id": lzma.FILTER_LZMA2}] + + +def save_debugging_labels(debugging_file_path: Path, labels: Dict[str, int]) -> None: + """ + save the labels' dictionary to the debugging-file as lzma2-compressed json + @param debugging_file_path: the file's path + @param labels: the labels' dictionary + """ + if debugging_file_path: + with open(debugging_file_path, 'wb') as f: + data = json.dumps(labels).encode(_debug_json_encoding) + compressed_data = lzma.compress(data, format=_debug_json_lzma_format, filters=_debug_json_lzma_filters) + print(f'debugging file size: {len(data)} -> {len(compressed_data)}.') + f.write(compressed_data) + + +def load_debugging_labels(debugging_file_path: Path) -> Dict[str, int]: + """ + loads and decompresses the labels' dictionary from the lzma2-compressed debugging-file + @param debugging_file_path: the file's path + @return: the labels' dictionary + """ + if debugging_file_path: + with open(debugging_file_path, 'rb') as f: + compressed_data = f.read() + data = lzma.decompress(compressed_data, format=_debug_json_lzma_format, filters=_debug_json_lzma_filters) + return json.loads(data.decode(_debug_json_encoding)) class PrintTimer: diff --git a/src/expr.py b/src/expr.py index f767b1e..b710445 100644 --- a/src/expr.py +++ b/src/expr.py @@ -51,7 +51,8 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: """ creates a new Expr, as minimal as possible. replaces every string it can with its dictionary value, and evaluates any op it can. - @param id_dict: the str->Expr dictionary to be used + @param id_dict: the label->ExprValue dictionary to be used + @raise FJExprException if math op failed @return: the new Expr """ if isinstance(self.value, int): @@ -71,6 +72,28 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)}.') return Expr((op, evaluated_args)) + def exact_eval(self, labels: Dict[str, int]) -> int: + """ + evaluates the expression's value with the labels + @param labels: the label->value dictionary to be used + @raise FJExprException if it can't evaluate + @return: the integer-value of the expression + """ + if isinstance(self.value, int): + return self.value + + if isinstance(self.value, str): + if self.value in labels: + return labels[self.value] + raise FJExprException(f"Can't evaluate label {self.value} in expression {self}") + + op, args = self.value + evaluated_args: Tuple[int, ...] = tuple(e.exact_eval(labels) for e in args) + try: + return op_string_to_function[op](*evaluated_args) + except Exception as e: + raise FJExprException(f'{repr(e)}. bad math operation ({op}): {str(self)}.') + def __str__(self) -> str: if isinstance(self.value, tuple): op, expressions = self.value diff --git a/src/fj.py b/src/fj.py index 7783447..7ebe090 100644 --- a/src/fj.py +++ b/src/fj.py @@ -137,11 +137,11 @@ def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, err file_tuples = get_file_tuples(args) verify_fj_files(error_func, file_tuples) - assembler.assemble(file_tuples, out_fjm_file, args.width, args.version, - flags=args.flags, lzma_preset=args.lzma_preset, + fjm_writer = fjm.Writer(out_fjm_file, args.width, args.version, flags=args.flags, lzma_preset=args.lzma_preset) + assembler.assemble(file_tuples, args.width, fjm_writer, warning_as_errors=args.werror, show_statistics=args.stats, print_time=not args.silent, - debugging_file=debug_file) + debugging_file_path=debug_file) def get_fjm_file_path(args: argparse.Namespace, error_func: ErrorFunc, temp_dir_name: str) -> Path: diff --git a/src/fjm.py b/src/fjm.py index 53ce888..ca34627 100644 --- a/src/fjm.py +++ b/src/fjm.py @@ -31,17 +31,18 @@ """ -fj_magic = ord('F') + (ord('J') << 8) -reserved_dict_threshold = 1000 +FJ_MAGIC = ord('F') + (ord('J') << 8) -header_base_format = ' List[Dict[str, int]]: return [{"id": lzma.FILTER_LZMA2, "preset": preset, "nice_len": dw}] +def _new_garbage_val() -> int: + return 0 # The value read when reading a word outside any segment. + + class GarbageHandling(IntEnum): - Stop = 0 - SlowRead = 1 - OnlyWarning = 2 - Continue = 3 + """ + What to do when reading garbage memory (memory outside any segment). + """ + Stop = 0 # Stop and finish + SlowRead = 1 # Continue after a small waiting time, very slow and print a warning + OnlyWarning = 2 # Continue and print a warning + Continue = 3 # Continue normally class Reader: + """ + Used for reading a .fjm file from memory. + """ def __init__(self, input_file: Path, *, garbage_handling: GarbageHandling = GarbageHandling.Stop): """ The .fjm-file reader @@ -83,25 +94,25 @@ def __init__(self, input_file: Path, *, garbage_handling: GarbageHandling = Garb self._init_header_fields(fjm_file) self._validate_header() segments = self._init_segments(fjm_file) - data = self._read_data(fjm_file) + data = self._read_decompressed_data(fjm_file) self._init_memory(segments, data) except struct.error as se: raise FJReadFjmException(f"Bad file {input_file}, can't unpack. Maybe it's not a .fjm file?") from se def _init_header_fields(self, fjm_file: BinaryIO) -> None: self.magic, self.w, self.version, self.segment_num = \ - unpack(header_base_format, fjm_file.read(header_base_size)) + unpack(_header_base_format, fjm_file.read(_header_base_size)) if BaseVersion == self.version: self.flags, self.reserved = 0, 0 else: - self.flags, self.reserved = unpack(header_extension_format, fjm_file.read(header_extension_size)) + self.flags, self.reserved = unpack(_header_extension_format, fjm_file.read(_header_extension_size)) def _init_segments(self, fjm_file: BinaryIO) -> List[Tuple]: - return [unpack(segment_format, fjm_file.read(segment_size)) for _ in range(self.segment_num)] + return [unpack(_segment_format, fjm_file.read(_segment_size)) for _ in range(self.segment_num)] def _validate_header(self) -> None: - if self.magic != fj_magic: - raise FJReadFjmException(f'Error: bad magic code ({hex(self.magic)}, should be {hex(fj_magic)}).') + if self.magic != FJ_MAGIC: + raise FJReadFjmException(f'Error: bad magic code ({hex(self.magic)}, should be {hex(FJ_MAGIC)}).') if self.version not in SUPPORTED_VERSIONS: raise FJReadFjmException( f'Error: unsupported version ({self.version}, this program supports {str(SUPPORTED_VERSIONS)}).') @@ -115,9 +126,10 @@ def _decompress_data(compressed_data: bytes) -> bytes: except lzma.LZMAError as e: raise FJReadFjmException(f'Error: The compressed data is damaged; Unable to decompress.') from e - def _read_data(self, fjm_file: BinaryIO) -> List[int]: + def _read_decompressed_data(self, fjm_file: BinaryIO) -> List[int]: """ - @return: list of the uncompressed words. + @param fjm_file: [in]: read from this file the data words. + @return: list of the data words (decompressed if it was compressed). """ read_tag = '<' + {8: 'B', 16: 'H', 32: 'L', 64: 'Q'}[self.w] word_bytes_size = self.w // 8 @@ -144,22 +156,22 @@ def _init_memory(self, segments: List[Tuple], data: List[int]) -> None: for i in range(data_length): self.memory[segment_start + i] = data[data_start + i] if segment_length > data_length: - if segment_length - data_length < reserved_dict_threshold: + if segment_length - data_length < _reserved_dict_threshold: for i in range(data_length, segment_length): self.memory[segment_start + i] = 0 else: self.zeros_boundaries.append((segment_start + data_length, segment_start + segment_length)) - def __getitem__(self, address: int) -> int: - address &= ((1 << self.w) - 1) - if address not in self.memory: + def _get_memory_word(self, word_address: int) -> int: + word_address &= ((1 << self.w) - 1) + if word_address not in self.memory: for start, end in self.zeros_boundaries: - if start <= address < end: - self.memory[address] = 0 + if start <= word_address < end: + self.memory[word_address] = 0 return 0 - garbage_val = 0 - garbage_message = f'Reading garbage word at mem[{hex(address << self.w)[2:]}] = {hex(garbage_val)[2:]}' + garbage_val = _new_garbage_val() + garbage_message = f'Reading garbage word at mem[{hex(word_address << self.w)[2:]}] = {hex(garbage_val)[2:]}' if GarbageHandling.Stop == self.garbage_handling: raise FJReadFjmException(garbage_message) @@ -169,50 +181,77 @@ def __getitem__(self, address: int) -> int: print(f'\nWarning: {garbage_message}') sleep(0.1) - self.memory[address] = garbage_val + self.memory[word_address] = garbage_val - return self.memory[address] + return self.memory[word_address] - def __setitem__(self, address: int, value: int) -> None: - address &= ((1 << self.w) - 1) + def _set_memory_word(self, word_address: int, value: int) -> None: + word_address &= ((1 << self.w) - 1) value &= ((1 << self.w) - 1) - self.memory[address] = value + self.memory[word_address] = value - def bit_address_decompose(self, bit_address: int) -> Tuple[int, int]: + def _bit_address_decompose(self, bit_address: int) -> Tuple[int, int]: """ @param bit_address: the address @return: tuple of the word address and the bit offset """ - address = (bit_address >> (self.w.bit_length() - 1)) & ((1 << self.w) - 1) + word_address = (bit_address >> (self.w.bit_length() - 1)) & ((1 << self.w) - 1) bit_offset = bit_address & (self.w - 1) - return address, bit_offset + return word_address, bit_offset def read_bit(self, bit_address: int) -> bool: - address, bit_offset = self.bit_address_decompose(bit_address) - return (self[address] >> bit_offset) & 1 == 1 + """ + read a bit from memory. + @param bit_address: the address + @return: True/False for 1/0 + """ + word_address, bit_offset = self._bit_address_decompose(bit_address) + return (self._get_memory_word(word_address) >> bit_offset) & 1 == 1 - def write_bit(self, bit_address: int, value: bool) -> None: - address, bit_offset = self.bit_address_decompose(bit_address) - if value: - self[address] = self[address] | (1 << bit_offset) + def write_bit(self, bit_address: int, bit_value: bool) -> None: + """ + write a bit to memory. + @param bit_address: the address + @param bit_value: True/False for 1/0 + """ + word_address, bit_offset = self._bit_address_decompose(bit_address) + word_value = self._get_memory_word(word_address) + if bit_value: + word_value |= (1 << bit_offset) else: - self[address] = self[address] & ((1 << self.w) - 1 - (1 << bit_offset)) + word_value &= ((1 << self.w) - 1 - (1 << bit_offset)) + self._set_memory_word(word_address, word_value) def get_word(self, bit_address: int) -> int: - address, bit_offset = self.bit_address_decompose(bit_address) + """ + read a word from memory (can be unaligned). + @param bit_address: the address + @return: the word value + """ + word_address, bit_offset = self._bit_address_decompose(bit_address) if bit_offset == 0: - return self[address] - if address == ((1 << self.w) - 1): + return self._get_memory_word(word_address) + if word_address == ((1 << self.w) - 1): raise FJReadFjmException(f'Accessed outside of memory (beyond the last bit).') - lsw, msw = self[address], self[address+1] + + lsw = self._get_memory_word(word_address) + msw = self._get_memory_word(word_address + 1) return ((lsw >> bit_offset) | (msw << (self.w - bit_offset))) & ((1 << self.w) - 1) class Writer: + """ + Used for creating a .fjm file in memory. + The process is: + 1. add_data(..) + 2. add_segment(..) + repeat steps 1-2 until you finished updating the fjm + 3. write_to_file() + """ def __init__(self, output_file: Path, w: int, version: int, *, flags: int = 0, lzma_preset: Optional[int] = None): """ the .fjm-file writer - @param output_file: the path to the .fjm file + @param output_file: [in,out]: the path to the .fjm file @param w: the memory-width @param version: the file's version @param flags: the file's flags @@ -257,12 +296,12 @@ def write_to_file(self) -> None: write_tag = '<' + {8: 'B', 16: 'H', 32: 'L', 64: 'Q'}[self.word_size] with open(self.output_file, 'wb') as f: - f.write(pack(header_base_format, fj_magic, self.word_size, self.version, len(self.segments))) + f.write(pack(_header_base_format, FJ_MAGIC, self.word_size, self.version, len(self.segments))) if BaseVersion != self.version: - f.write(pack(header_extension_format, self.flags, self.reserved)) + f.write(pack(_header_extension_format, self.flags, self.reserved)) for segment in self.segments: - f.write(pack(segment_format, *segment)) + f.write(pack(_segment_format, *segment)) fjm_data = b''.join(pack(write_tag, word) for word in self.data) if CompressedVersion == self.version: @@ -270,7 +309,7 @@ def write_to_file(self) -> None: f.write(fjm_data) - def segment_addresses_repr(self, word_start_address: int, word_length: int) -> str: + def get_segment_addresses_repr(self, word_start_address: int, word_length: int) -> str: """ @param word_start_address: the start address of the segment in memory (in words) @param word_length: the number of words the segment takes in memory @@ -295,9 +334,9 @@ def _validate_segment_addresses_not_overlapping(self, new_segment_start: int, ne if self._is_collision(segment_start, segment_end, new_segment_start, new_segment_end): raise FJWriteFjmException( f"Overlapping segments addresses: " - f"seg[{i}]={self.segment_addresses_repr(segment_start, segment_length)}" + f"seg[{i}]={self.get_segment_addresses_repr(segment_start, segment_length)}" f" and " - f"seg[{len(self.segments)}]={self.segment_addresses_repr(new_segment_start, new_segment_length)}" + f"seg[{len(self.segments)}]={self.get_segment_addresses_repr(new_segment_start, new_segment_length)}" ) def _validate_segment_data_not_overlapping(self, new_data_start: int, new_data_length: int) -> None: @@ -339,7 +378,10 @@ def add_segment(self, segment_start: int, segment_length: int, data_start: int, @param data_start: the index of the data's start in the inner data array @param data_length: the number of words in the segment's data """ - segment_addresses_str = f'seg[{self.segments}]={self.segment_addresses_repr(segment_start, segment_length)}' + segment_addresses_str = f'seg[{self.segments}]={self.get_segment_addresses_repr(segment_start, segment_length)}' + + if segment_length <= 0: + raise FJWriteFjmException(f"segment-length must be positive (in {segment_addresses_str}).") if segment_length < data_length: raise FJWriteFjmException(f"segment-length must be at-least data-length (in {segment_addresses_str}).") @@ -348,9 +390,6 @@ def add_segment(self, segment_start: int, segment_length: int, data_start: int, raise FJWriteFjmException(f"segment-start and segment-length must be 2*w aligned " f"(in {segment_addresses_str}).") - if segment_length <= 0: - raise FJWriteFjmException(f"segment-length must be positive (in {segment_addresses_str}).") - self._validate_segment_not_overlapping(segment_start, segment_length, data_start, data_length) if self.version in (RelativeJumpVersion, CompressedVersion): @@ -361,7 +400,7 @@ def add_segment(self, segment_start: int, segment_length: int, data_start: int, def add_data(self, data: List[int]) -> int: """ append the data to the current data - @param data: a list of words + @param data: [in]: a list of words @return: the data start index """ data_start = len(self.data) @@ -372,7 +411,7 @@ def add_simple_segment_with_data(self, segment_start: int, data: List[int]) -> N """ adds the data and a segment that contains exactly the data, to the fjm @param segment_start: the start address of the segment in memory (in words) - @param data: a list of words + @param data: [in]: a list of words """ data_start = self.add_data(data) self.add_segment(segment_start, len(data), data_start, len(data)) diff --git a/src/io_devices/StandardIO.py b/src/io_devices/StandardIO.py index 9e9e736..278086d 100644 --- a/src/io_devices/StandardIO.py +++ b/src/io_devices/StandardIO.py @@ -4,7 +4,7 @@ from .io_exceptions import IOReadOnEOF, IncompleteOutput -bytes_encoding = 'raw_unicode_escape' +io_bytes_encoding = 'raw_unicode_escape' class StandardIO(IODevice): @@ -26,7 +26,7 @@ def __init__(self, output_verbose: bool): def read_bit(self) -> bool: if 0 == self.bits_to_read_in_input_byte: - read_bytes = stdin.read(1).encode(encoding=bytes_encoding) + read_bytes = stdin.read(1).encode(encoding=io_bytes_encoding) if 0 == len(read_bytes): raise IOReadOnEOF("Read an empty input on standard IO (EOF)") @@ -45,7 +45,7 @@ def write_bit(self, bit: bool) -> None: if 8 == self.bits_to_write_in_output_byte: curr_output: bytes = self.current_output_byte.to_bytes(1, 'little') if self.output_verbose: - stdout.write(curr_output.decode(encoding=bytes_encoding)) + stdout.write(curr_output.decode(encoding=io_bytes_encoding)) stdout.flush() self._output += curr_output self.current_output_byte = 0 diff --git a/src/ops.py b/src/ops.py index e6d8cdc..c7e22d0 100644 --- a/src/ops.py +++ b/src/ops.py @@ -70,11 +70,11 @@ def all_unknown_labels(self) -> Set[str]: for expr in (self.flip, self.jump) for label in expr.all_unknown_labels()} - def get_flip(self, labels: Dict[str, Expr]) -> int: - return int(self.flip.eval_new(labels)) + def get_flip(self, labels: Dict[str, int]) -> int: + return self.flip.exact_eval(labels) - def get_jump(self, labels: Dict[str, Expr]) -> int: - return int(self.jump.eval_new(labels)) + def get_jump(self, labels: Dict[str, int]) -> int: + return self.jump.exact_eval(labels) class WordFlip: @@ -100,14 +100,14 @@ def all_unknown_labels(self) -> Set[str]: for expr in (self.word_address, self.flip_value, self.return_address) for label in expr.all_unknown_labels()} - def get_word_address(self, labels: Dict[str, Expr]) -> int: - return int(self.word_address.eval_new(labels)) + def get_word_address(self, labels: Dict[str, int]) -> int: + return self.word_address.exact_eval(labels) - def get_flip_value(self, labels: Dict[str, Expr]) -> int: - return int(self.flip_value.eval_new(labels)) + def get_flip_value(self, labels: Dict[str, int]) -> int: + return self.flip_value.exact_eval(labels) - def get_return_address(self, labels: Dict[str, Expr]) -> int: - return int(self.return_address.eval_new(labels)) + def get_return_address(self, labels: Dict[str, int]) -> int: + return self.return_address.exact_eval(labels) class Pad: @@ -127,16 +127,12 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Pad: def all_unknown_labels(self) -> Set[str]: return self.ops_alignment.all_unknown_labels() - def get_ops_alignment(self) -> int: + def calculate_ops_alignment(self, labels: Dict[str, int]) -> int: try: - return int(self.ops_alignment) + return self.ops_alignment.exact_eval(labels) except FJExprException as e: raise FJExprException(f"Can't calculate pad ops_alignment on {self.code_position}") from e - def calculate_ops_alignment(self, labels: Dict[str, Expr]) -> int: - self.ops_alignment = self.ops_alignment.eval_new(labels) - return self.get_ops_alignment() - class Segment: """ @@ -155,16 +151,12 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Segment: def all_unknown_labels(self) -> Set[str]: return {label for label in self.start_address.all_unknown_labels()} - def get_address(self) -> int: + def calculate_address(self, labels: Dict[str, int]) -> int: try: - return int(self.start_address) + return self.start_address.exact_eval(labels) except FJExprException as e: raise FJExprException(f"Can't calculate segment address on {self.code_position}") from e - def calculate_address(self, labels: Dict[str, Expr]) -> int: - self.start_address = self.start_address.eval_new(labels) - return self.get_address() - class Reserve: """ @@ -183,16 +175,12 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Reserve: def all_unknown_labels(self) -> Set[str]: return {label for label in self.reserved_bit_size.all_unknown_labels()} - def get_reserved_bit_size(self) -> int: + def calculate_reserved_bit_size(self, labels: Dict[str, int]) -> int: try: - return int(self.reserved_bit_size) + return self.reserved_bit_size.exact_eval(labels) except FJExprException as e: raise FJExprException(f"Can't calculate reserved bits size on {self.code_position}") from e - def calculate_reserved_bit_size(self, labels: Dict[str, Expr]) -> int: - self.reserved_bit_size = self.reserved_bit_size.eval_new(labels) - return self.get_reserved_bit_size() - class MacroCall: """ @@ -248,9 +236,13 @@ def get_times(self) -> int: except FJExprException as e: raise FJExprException(f"Can't calculate rep times on {self.code_position}") from e - def calculate_times(self, labels: Dict[str, Expr]) -> int: - self.repeat_times = self.repeat_times.eval_new(labels) - return self.get_times() + def calculate_times(self, labels: Dict[str, int]) -> int: + try: + times = self.repeat_times.exact_eval(labels) + self.repeat_times = Expr(times) + return times + except FJExprException as e: + raise FJExprException(f"Can't calculate rep times on {self.code_position}") from e def calculate_arguments(self, iterator_value: int) -> Tuple[Expr, ...]: iterator_dict = {self.iterator_name: Expr(iterator_value)} @@ -261,9 +253,9 @@ def calculate_arguments(self, iterator_value: int) -> Tuple[Expr, ...]: def trace_str(self, iter_value: int) -> str: """ - assumes calculate_times successfully called before + @note assumes calculate_times successfully called before """ - return f'rep({self.iterator_name}={iter_value}, out of 0..{self.get_times()-1}) ' \ + return f'rep({self.iterator_name}={iter_value}, out of 0..{int(self.repeat_times)-1}) ' \ f'macro {self.macro_name} ({self.code_position})' diff --git a/src/preprocessor.py b/src/preprocessor.py index 54d70cb..cbe5976 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -12,7 +12,7 @@ LastPhaseOp, new_label, MacroName, main_macro, NewSegment, ReserveBits, Pad, Padding CurrTree = Deque[Union[MacroCall, RepCall]] -PreprocessorResults = Tuple[Deque[LastPhaseOp], Dict[str, Expr]] +PreprocessorResults = Tuple[Deque[LastPhaseOp], Dict[str, int]] wflip_start_label = '_.wflip_area_start_' @@ -104,7 +104,7 @@ def __init__(self): self.labels_code_positions: Dict[str, CodePosition] = {} self.result_ops: Deque[LastPhaseOp] = collections.deque() - self.labels: Dict[str, Expr] = {} + self.labels: Dict[str, int] = {} first_segment: NewSegment = NewSegment(0) self.last_new_segment: NewSegment = first_segment @@ -126,7 +126,7 @@ def get_results(self) -> PreprocessorResults: return self.result_ops, self.labels def insert_segment(self, next_segment_start: int) -> None: - self.labels[f'{wflip_start_label}{self.curr_segment_index}'] = Expr(self.curr_address) + self.labels[f'{wflip_start_label}{self.curr_segment_index}'] = self.curr_address self.curr_segment_index += 1 self.patch_last_wflip_address() @@ -147,7 +147,7 @@ def insert_label(self, label: str, code_position: CodePosition): macro_resolve_error(self.curr_tree, f'label declared twice - "{label}" on ' f'{code_position} and {other_position}') self.labels_code_positions[label] = code_position - self.labels[label] = Expr(self.curr_address) + self.labels[label] = self.curr_address def register_macro_code_size(self, macro_path: str, init_curr_address: int): if 1 <= len(self.curr_tree) <= 2: @@ -159,7 +159,7 @@ def align_current_address(self, op_size: int, ops_alignment: int) -> None: self.result_ops.append(Padding(ops_to_pad)) -def resolve_macros(w: int, macros: Dict[MacroName, Macro], show_statistics: bool = False)\ +def resolve_macros(w: int, macros: Dict[MacroName, Macro], *, show_statistics: bool = False)\ -> PreprocessorResults: preprocessor_data = PreprocessorData() resolve_macro_aux(preprocessor_data, diff --git a/tests/test_fj.py b/tests/test_fj.py index 0bf0bfc..8005a25 100644 --- a/tests/test_fj.py +++ b/tests/test_fj.py @@ -3,9 +3,9 @@ from threading import Lock from pathlib import Path -from src import assembler +from src import assembler, fjm from src import fjm_run -from src.defs import TerminationCause, get_stl_paths, bytes_encoding +from src.defs import TerminationCause, get_stl_paths, io_bytes_encoding from src.io_devices.FixedIO import FixedIO CSV_TRUE = 'True' @@ -75,8 +75,9 @@ def test_compile(compile_args: CompileTestArgs) -> None: create_parent_directories(compile_args.fjm_out_path) - assembler.assemble(compile_args.fj_files_tuples, compile_args.fjm_out_path, compile_args.word_size, - compile_args.version, flags=compile_args.flags, lzma_preset=lzma.PRESET_DEFAULT, + fjm_writer = fjm.Writer(compile_args.fjm_out_path, compile_args.word_size, compile_args.version, + flags=compile_args.flags, lzma_preset=lzma.PRESET_DEFAULT) + assembler.assemble(compile_args.fj_files_tuples, compile_args.word_size, fjm_writer, warning_as_errors=compile_args.warning_as_errors) @@ -136,7 +137,7 @@ def get_expected_output(self) -> str: if self.read_out_as_binary: with open(self.out_file_path, 'rb') as out_f: - return out_f.read().decode(bytes_encoding) + return out_f.read().decode(io_bytes_encoding) else: with open(self.out_file_path, 'r') as out_f: return out_f.read() @@ -162,6 +163,6 @@ def test_run(run_args: RunTestArgs) -> None: expected_termination_cause = TerminationCause.Looping assert termination_statistics.termination_cause == expected_termination_cause - output = io_device.get_output().decode(bytes_encoding) + output = io_device.get_output().decode(io_bytes_encoding) expected_output = run_args.get_expected_output() assert output == expected_output From fa674c37e52451267ac8baf3eb55f5810ca7ae7c Mon Sep 17 00:00:00 2001 From: Tomhe Date: Wed, 10 Aug 2022 19:57:12 +0300 Subject: [PATCH 49/66] split and document preprocessor --- src/assembler.py | 8 +- src/defs.py | 3 +- src/expr.py | 10 +- src/fj.py | 5 +- src/fj_parser.py | 6 +- src/macro_usage_graph.py | 85 +++++++++++++ src/ops.py | 56 ++++---- src/preprocessor.py | 267 +++++++++++++++++++-------------------- 8 files changed, 251 insertions(+), 189 deletions(-) create mode 100644 src/macro_usage_graph.py diff --git a/src/assembler.py b/src/assembler.py index 41d91ce..2e2c310 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -194,9 +194,9 @@ def labels_resolve(ops: Deque[LastPhaseOp], labels: Dict[str, int], binary_data.close_and_add_segment(fjm_writer) -def assemble(input_files: List[Tuple[str, Path]], w: int, fjm_writer: fjm.Writer, - warning_as_errors: bool = True, - show_statistics: bool = False, debugging_file_path: Optional[Path] = None, print_time: bool = True)\ +def assemble(input_files: List[Tuple[str, Path]], w: int, fjm_writer: fjm.Writer, *, + warning_as_errors: bool = True, debugging_file_path: Optional[Path] = None, + show_statistics: bool = False, print_time: bool = True)\ -> None: """ runs the assembly pipeline. assembles the input files to a .fjm. @@ -204,8 +204,8 @@ def assemble(input_files: List[Tuple[str, Path]], w: int, fjm_writer: fjm.Writer @param w: the memory-width @param fjm_writer:[out]: the .fjm file writer @param warning_as_errors: treat warnings as errors (stop execution on warnings) - @param show_statistics: if true shows macro-usage statistics @param debugging_file_path:[out]: is specified, save debug information in this file + @param show_statistics: if true shows macro-usage statistics @param print_time: if true prints the times of each assemble-stage """ with PrintTimer(' parsing: ', print_time=print_time): diff --git a/src/defs.py b/src/defs.py index 69f60d5..b02fd69 100644 --- a/src/defs.py +++ b/src/defs.py @@ -52,7 +52,6 @@ def save_debugging_labels(debugging_file_path: Path, labels: Dict[str, int]) -> with open(debugging_file_path, 'wb') as f: data = json.dumps(labels).encode(_debug_json_encoding) compressed_data = lzma.compress(data, format=_debug_json_lzma_format, filters=_debug_json_lzma_filters) - print(f'debugging file size: {len(data)} -> {len(compressed_data)}.') f.write(compressed_data) @@ -93,7 +92,7 @@ def __exit__(self, exc_type, exc_val, exc_tb) -> None: @dataclasses.dataclass class Macro: """ - The python representation of a .fj macro. + The python representation of a .fj macro (macro declaration). """ params: List[str] local_params: List[str] diff --git a/src/expr.py b/src/expr.py index b710445..56cff74 100644 --- a/src/expr.py +++ b/src/expr.py @@ -47,11 +47,11 @@ def all_unknown_labels(self) -> Set[str]: return {self.value} return set(label for expr in self.value[1] for label in expr.all_unknown_labels()) - def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: + def eval_new(self, params_dict: Dict[str, Expr]) -> Expr: """ creates a new Expr, as minimal as possible. replaces every string it can with its dictionary value, and evaluates any op it can. - @param id_dict: the label->ExprValue dictionary to be used + @param params_dict: the label->ExprValue dictionary to be used @raise FJExprException if math op failed @return: the new Expr """ @@ -59,12 +59,12 @@ def eval_new(self, id_dict: Dict[str, Expr]) -> Expr: return Expr(self.value) if isinstance(self.value, str): - if self.value in id_dict: - return id_dict[self.value].eval_new({}) + if self.value in params_dict: + return params_dict[self.value].eval_new({}) return Expr(self.value) op, args = self.value - evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(id_dict) for e in args) + evaluated_args: Tuple[Expr, ...] = tuple(e.eval_new(params_dict) for e in args) if all(isinstance(e.value, int) for e in evaluated_args): try: return Expr(op_string_to_function[op](*(arg.value for arg in evaluated_args))) diff --git a/src/fj.py b/src/fj.py index 7ebe090..6a4ebdc 100644 --- a/src/fj.py +++ b/src/fj.py @@ -139,9 +139,8 @@ def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, err fjm_writer = fjm.Writer(out_fjm_file, args.width, args.version, flags=args.flags, lzma_preset=args.lzma_preset) assembler.assemble(file_tuples, args.width, fjm_writer, - warning_as_errors=args.werror, - show_statistics=args.stats, print_time=not args.silent, - debugging_file_path=debug_file) + warning_as_errors=args.werror, debugging_file_path=debug_file, + show_statistics=args.stats, print_time=not args.silent) def get_fjm_file_path(args: argparse.Namespace, error_func: ErrorFunc, temp_dir_name: str) -> Path: diff --git a/src/fj_parser.py b/src/fj_parser.py index f4a1419..8d48155 100644 --- a/src/fj_parser.py +++ b/src/fj_parser.py @@ -10,7 +10,7 @@ from exceptions import FJExprException, FJParsingException from expr import Expr, get_minimized_expr from ops import get_used_labels, get_declared_labels, \ - CodePosition, MacroName, Op, main_macro, \ + CodePosition, MacroName, Op, initial_macro_name, \ MacroCall, RepCall, FlipJump, WordFlip, Label, Segment, Reserve, Pad global curr_file, curr_file_short_name, curr_text, error_occurred, curr_namespace @@ -187,7 +187,7 @@ class FJParser(sly.Parser): def __init__(self, w: int, warning_as_errors: bool): self.consts: Dict[str, Expr] = {'w': Expr(w)} self.warning_as_errors: bool = warning_as_errors - self.macros: Dict[MacroName, Macro] = {main_macro: Macro([], [], [], '', None)} + self.macros: Dict[MacroName, Macro] = {initial_macro_name: Macro([], [], [], '', None)} def validate_free_macro_name(self, name: MacroName, lineno: int) -> None: if name in self.macros: @@ -312,7 +312,7 @@ def error(self, token: Token) -> None: @_('definable_line_statements') def program(self, p: ParsedRule) -> None: ops = p.definable_line_statements - self.macros[main_macro].ops += ops + self.macros[initial_macro_name].ops += ops @_('definable_line_statements NL definable_line_statement') def definable_line_statements(self, p: ParsedRule) -> List[Op]: diff --git a/src/macro_usage_graph.py b/src/macro_usage_graph.py new file mode 100644 index 0000000..8a6d579 --- /dev/null +++ b/src/macro_usage_graph.py @@ -0,0 +1,85 @@ +import collections +from typing import Dict, Tuple, List + +import plotly.graph_objects as go + +from defs import macro_separator_string + + +def _prepare_first_and_second_level_significant_macros( + child_significance_min_thresh: float, macro_code_size: Dict[str, int], + main_thresh: float, secondary_thresh: float)\ + -> Tuple[Dict[str, int], Dict[str, Dict[str, int]]]: + first_level = {} + second_level = collections.defaultdict(lambda: dict()) + for k, v in macro_code_size.items(): + if macro_separator_string not in k: + if v < main_thresh: + continue + first_level[k] = v + else: + if v < secondary_thresh: + continue + k_split = k.split(macro_separator_string) + if len(k_split) != 2: + continue + parent, name = k_split + if float(v) / macro_code_size[parent] < child_significance_min_thresh: + continue + second_level[parent][name] = v + return first_level, second_level + + +def _clean_name_for_pie_graph(macro_name: str) -> str: + return macro_name + + +def _choose_most_significant_macros(first_level: Dict[str, int], second_level: Dict[str, Dict[str, int]], + secondary_thresh: float, total_code_size: int) -> List[Tuple[str, int]]: + chosen = [] + for k, v in sorted(first_level.items(), key=lambda x: x[1], reverse=True): + k_name = _clean_name_for_pie_graph(k) + if len(second_level[k]) == 0: + chosen.append((k_name, v)) + else: + for k2, v2 in sorted(second_level[k].items(), key=lambda x: x[1], reverse=True): + k2_name = _clean_name_for_pie_graph(k2) + chosen.append((f"{k_name} => {k2_name}", v2)) + v -= v2 + if v >= secondary_thresh: + chosen.append((f"{k_name} others", v)) + others = total_code_size - sum([value for label, value in chosen]) + chosen.append(('all others', others)) + return chosen + + +def _show_macro_usage_graph(chosen_macros: List[Tuple[str, int]]) -> None: + fig = go.Figure(data=[go.Pie(labels=[label for label, value in chosen_macros], + values=[value for label, value in chosen_macros], + textinfo='label+percent' + )]) + fig.show() + + +def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: int, *, + min_main_thresh: float = 0.05, min_secondary_thresh: float = 0.01, + child_significance_min_thresh: float = 0.1) -> None: + """ + choose and present in a pie graph the macros with the most code-usage + @param macro_code_size: dictionary between macro-paths and their code-size. + @param total_code_size: total number of FlipJump ops in the program. + @param min_main_thresh: the fraction of the program's code-usage needed for a 1st-level macro to be chosen. + @param min_secondary_thresh: the fraction of the program's code-usage needed for a 2nd-level macro to be chosen. + @param child_significance_min_thresh: the fraction of the 1st-level macro code-usage needed + for its 2nd-level macro (son) needs to be chosen + """ + main_thresh = min_main_thresh * total_code_size + secondary_thresh = min_secondary_thresh * total_code_size + + first_level, second_level = _prepare_first_and_second_level_significant_macros( + child_significance_min_thresh, macro_code_size, main_thresh, secondary_thresh + ) + + chosen_macros = _choose_most_significant_macros(first_level, second_level, secondary_thresh, total_code_size) + + _show_macro_usage_graph(chosen_macros) diff --git a/src/ops.py b/src/ops.py index c7e22d0..89b31c7 100644 --- a/src/ops.py +++ b/src/ops.py @@ -46,8 +46,10 @@ def __eq__(self, other): return type(other) == MacroName and self.to_tuple() == other.to_tuple() -# The name of the macro that holds the ops that are outside any macro. -main_macro = MacroName('') +# The macro that holds the ops that are outside any macro. +initial_macro_name = MacroName('') +initial_args = [] +initial_labels_prefix = '' class FlipJump: @@ -62,8 +64,8 @@ def __init__(self, flip: Expr, jump: Expr, code_position: CodePosition): def __str__(self): return f"Flip: {self.flip}, Jump: {self.jump}, at {self.code_position}" - def eval_new(self, id_dict: Dict[str, Expr]) -> FlipJump: - return FlipJump(self.flip.eval_new(id_dict), self.jump.eval_new(id_dict), self.code_position) + def eval_new(self, labels_dict: Dict[str, Expr]) -> FlipJump: + return FlipJump(self.flip.eval_new(labels_dict), self.jump.eval_new(labels_dict), self.code_position) def all_unknown_labels(self) -> Set[str]: return {label @@ -91,9 +93,9 @@ def __str__(self): return f"Flip Word {self.word_address} by {self.flip_value}, and return to {self.return_address}. " \ f"at {self.code_position}" - def eval_new(self, id_dict: Dict[str, Expr]) -> WordFlip: - return WordFlip(self.word_address.eval_new(id_dict), self.flip_value.eval_new(id_dict), - self.return_address.eval_new(id_dict), self.code_position) + def eval_new(self, labels_dict: Dict[str, Expr]) -> WordFlip: + return WordFlip(self.word_address.eval_new(labels_dict), self.flip_value.eval_new(labels_dict), + self.return_address.eval_new(labels_dict), self.code_position) def all_unknown_labels(self) -> Set[str]: return {label @@ -121,8 +123,8 @@ def __init__(self, ops_alignment: Expr, code_position: CodePosition): def __str__(self): return f"Pad {self.ops_alignment} ops, at {self.code_position}" - def eval_new(self, id_dict: Dict[str, Expr]) -> Pad: - return Pad(self.ops_alignment.eval_new(id_dict), self.code_position) + def eval_new(self, labels_dict: Dict[str, Expr]) -> Pad: + return Pad(self.ops_alignment.eval_new(labels_dict), self.code_position) def all_unknown_labels(self) -> Set[str]: return self.ops_alignment.all_unknown_labels() @@ -145,8 +147,8 @@ def __init__(self, start_address: Expr, code_position: CodePosition): def __str__(self): return f"Segment {self.start_address}, at {self.code_position}" - def eval_new(self, id_dict: Dict[str, Expr]) -> Segment: - return Segment(self.start_address.eval_new(id_dict), self.code_position) + def eval_new(self, labels_dict: Dict[str, Expr]) -> Segment: + return Segment(self.start_address.eval_new(labels_dict), self.code_position) def all_unknown_labels(self) -> Set[str]: return {label for label in self.start_address.all_unknown_labels()} @@ -169,8 +171,8 @@ def __init__(self, reserved_bit_size: Expr, code_position: CodePosition): def __str__(self): return f"Reserve {self.reserved_bit_size}, at {self.code_position}" - def eval_new(self, id_dict: Dict[str, Expr]) -> Reserve: - return Reserve(self.reserved_bit_size.eval_new(id_dict), self.code_position) + def eval_new(self, labels_dict: Dict[str, Expr]) -> Reserve: + return Reserve(self.reserved_bit_size.eval_new(labels_dict), self.code_position) def all_unknown_labels(self) -> Set[str]: return {label for label in self.reserved_bit_size.all_unknown_labels()} @@ -194,8 +196,8 @@ def __init__(self, macro_name: str, arguments: List[Expr], code_position: CodePo def __str__(self): return f"macro call. {self.macro_name.name} {', '.join(map(str, self.arguments))}. at {self.code_position}" - def eval_new(self, id_dict: Dict[str, Expr]) -> MacroCall: - return MacroCall(self.macro_name.name, [arg.eval_new(id_dict) for arg in self.arguments], self.code_position) + def eval_new(self, labels_dict: Dict[str, Expr]) -> MacroCall: + return MacroCall(self.macro_name.name, [arg.eval_new(labels_dict) for arg in self.arguments], self.code_position) def all_unknown_labels(self) -> Set[str]: return {label for expr in self.arguments for label in expr.all_unknown_labels()} @@ -220,9 +222,9 @@ def __str__(self): return f"rep call. rep({self.repeat_times}, {self.iterator_name}) {self.macro_name.name} " \ f"{', '.join(map(str, self.arguments))}. at {self.code_position}" - def eval_new(self, id_dict: Dict[str, Expr]) -> RepCall: - return RepCall(self.repeat_times.eval_new(id_dict), self.iterator_name, self.macro_name.name, - [expr.eval_new(id_dict) for expr in self.arguments], self.code_position) + def eval_new(self, labels_dict: Dict[str, Expr]) -> RepCall: + return RepCall(self.repeat_times.eval_new(labels_dict), self.iterator_name, self.macro_name.name, + [expr.eval_new(labels_dict) for expr in self.arguments], self.code_position) def all_unknown_labels(self) -> Set[str]: times = self.repeat_times @@ -270,12 +272,12 @@ def __init__(self, name: str, code_position: CodePosition): def __str__(self): return f'Label "{self.name}:", at {self.code_position}' - def eval_name(self, id_dict: Dict[str, Expr]) -> str: - if self.name in id_dict: - new_name = id_dict[self.name].value + def eval_name(self, labels_dict: Dict[str, Expr]) -> str: + if self.name in labels_dict: + new_name = labels_dict[self.name].value if isinstance(new_name, str): return new_name - raise FJExprException(f'Bad label swap (from {self.name} to {id_dict[self.name]}) in {self.code_position}.') + raise FJExprException(f'Bad label swap (from {self.name} to {labels_dict[self.name]}) in {self.code_position}.') return self.name @@ -291,16 +293,6 @@ def get_declared_labels(ops: List[Op]) -> Set[str]: return set(op.name for op in ops if isinstance(op, Label)) -def new_label(macro_path: str, label_basename: str) -> Expr: - """ - creates a new label expression (with a new name) - @param macro_path: the path to the currently-preprocessed macro - @param label_basename: the label basename - @return: the new expression - """ - return Expr(f'{macro_path}---{label_basename}') - - # The input for the preprocessor Op = Union[FlipJump, WordFlip, Pad, Label, MacroCall, RepCall, Segment, Reserve] diff --git a/src/preprocessor.py b/src/preprocessor.py index cbe5976..385022b 100644 --- a/src/preprocessor.py +++ b/src/preprocessor.py @@ -3,21 +3,26 @@ import collections from typing import Dict, Tuple, Iterable, Union, Deque -import plotly.graph_objects as go - from expr import Expr from defs import CodePosition, Macro, macro_separator_string from exceptions import FJPreprocessorException, FJExprException from ops import FlipJump, WordFlip, Label, Segment, Reserve, MacroCall, RepCall, \ - LastPhaseOp, new_label, MacroName, main_macro, NewSegment, ReserveBits, Pad, Padding + LastPhaseOp, MacroName, NewSegment, ReserveBits, Pad, Padding, \ + initial_macro_name, initial_args, initial_labels_prefix +from macro_usage_graph import show_macro_usage_pie_graph CurrTree = Deque[Union[MacroCall, RepCall]] -PreprocessorResults = Tuple[Deque[LastPhaseOp], Dict[str, int]] wflip_start_label = '_.wflip_area_start_' def macro_resolve_error(curr_tree: CurrTree, msg='', *, orig_exception: BaseException = None) -> None: + """ + raise a descriptive error (with the macro-expansion trace). + @param curr_tree: the ops in the macro-calling path to arrive in this macro + @param msg: the message to show on error + @param orig_exception: if not None, raise from this base error. + """ error_str = f"Macro Resolve Error" + (f':\n {msg}\n' if msg else '.\n') if curr_tree: error_str += 'Macro call trace:\n' @@ -26,57 +31,13 @@ def macro_resolve_error(curr_tree: CurrTree, msg='', *, orig_exception: BaseExce raise FJPreprocessorException(error_str) from orig_exception -def clean_name_for_pie_graph(macro_name: str) -> str: - return macro_name - - -def show_macro_usage_pie_graph(macro_code_size: Dict[str, int], total_code_size: int, *, - min_main_thresh: float = 0.05, min_secondary_thresh: float = 0.01, - child_significance_min_thresh: float = 0.1) -> None: - main_thresh = min_main_thresh * total_code_size - secondary_thresh = min_secondary_thresh * total_code_size - first_level = {} - second_level = collections.defaultdict(lambda: dict()) - for k, v in macro_code_size.items(): - if macro_separator_string not in k: - if v < main_thresh: - continue - first_level[k] = v - else: - if v < secondary_thresh: - continue - k_split = k.split(macro_separator_string) - if len(k_split) != 2: - continue - parent, name = k_split - if float(v) / macro_code_size[parent] < child_significance_min_thresh: - continue - second_level[parent][name] = v - - chosen = [] - for k, v in sorted(first_level.items(), key=lambda x: x[1], reverse=True): - k_name = clean_name_for_pie_graph(k) - if len(second_level[k]) == 0: - chosen.append((k_name, v)) - else: - for k2, v2 in sorted(second_level[k].items(), key=lambda x: x[1], reverse=True): - k2_name = clean_name_for_pie_graph(k2) - chosen.append((f"{k_name} => {k2_name}", v2)) - v -= v2 - if v >= secondary_thresh: - chosen.append((f"{k_name} others", v)) - - others = total_code_size - sum([value for label, value in chosen]) - chosen.append(('all others', others)) - - fig = go.Figure(data=[go.Pie(labels=[label for label, value in chosen], - values=[value for label, value in chosen], - textinfo='label+percent' - )]) - fig.show() - - class PreprocessorData: + """ + maintains the preprocessor "global" data structures, throughout its recursion. + e.g. current address, resulting ops, labels' dictionary, macros' dictionary... + also offer many functions to manipulate its data. + @note should call finish before get_result..(). + """ class _PrepareMacroCall: def __init__(self, curr_tree: CurrTree, calling_op: Union[MacroCall, RepCall], macros: Dict[MacroName, Macro]): @@ -93,7 +54,10 @@ def __enter__(self): def __exit__(self, exc_type, exc_val, exc_tb): self.curr_tree.pop() - def __init__(self): + def __init__(self, w: int, macros: Dict[MacroName, Macro]): + self.w = w + self.macros = macros + self.curr_address: int = 0 self.macro_code_size = collections.defaultdict(lambda: 0) @@ -110,19 +74,18 @@ def __init__(self): self.last_new_segment: NewSegment = first_segment self.result_ops.append(first_segment) - def patch_last_wflip_address(self): + def patch_last_wflip_address(self) -> None: self.last_new_segment.wflip_start_address = self.curr_address - def finish(self, show_statistics: bool): + def finish(self, show_statistics: bool) -> None: self.patch_last_wflip_address() if show_statistics: show_macro_usage_pie_graph(dict(self.macro_code_size), self.curr_address) - def prepare_macro_call(self, calling_op: Union[MacroCall, RepCall], macros: Dict[MacroName, Macro])\ - -> PreprocessorData._PrepareMacroCall: - return PreprocessorData._PrepareMacroCall(self.curr_tree, calling_op, macros) + def prepare_macro_call(self, calling_op: Union[MacroCall, RepCall]) -> PreprocessorData._PrepareMacroCall: + return PreprocessorData._PrepareMacroCall(self.curr_tree, calling_op, self.macros) - def get_results(self) -> PreprocessorResults: + def get_result_ops_and_labels(self) -> Tuple[Deque[LastPhaseOp], Dict[str, int]]: return self.result_ops, self.labels def insert_segment(self, next_segment_start: int) -> None: @@ -141,7 +104,7 @@ def insert_reserve(self, reserved_bits_size: int) -> None: self.curr_address += reserved_bits_size self.result_ops.append(ReserveBits(self.curr_address)) - def insert_label(self, label: str, code_position: CodePosition): + def insert_label(self, label: str, code_position: CodePosition) -> None: if label in self.labels: other_position = self.labels_code_positions[label] macro_resolve_error(self.curr_tree, f'label declared twice - "{label}" on ' @@ -149,130 +112,154 @@ def insert_label(self, label: str, code_position: CodePosition): self.labels_code_positions[label] = code_position self.labels[label] = self.curr_address - def register_macro_code_size(self, macro_path: str, init_curr_address: int): + def register_macro_code_size(self, macro_path: str, init_curr_address: int) -> None: if 1 <= len(self.curr_tree) <= 2: self.macro_code_size[macro_path] += self.curr_address - init_curr_address - def align_current_address(self, op_size: int, ops_alignment: int) -> None: + def align_current_address(self, ops_alignment: int) -> None: + op_size = 2 * self.w ops_to_pad = (-self.curr_address // op_size) % ops_alignment self.curr_address += ops_to_pad * op_size self.result_ops.append(Padding(ops_to_pad)) -def resolve_macros(w: int, macros: Dict[MacroName, Macro], *, show_statistics: bool = False)\ - -> PreprocessorResults: - preprocessor_data = PreprocessorData() - resolve_macro_aux(preprocessor_data, - w, macros, - main_macro, [], '') +def get_rep_times(op: RepCall, preprocessor_data: PreprocessorData) -> int: + try: + return op.calculate_times(preprocessor_data.labels) + except FJExprException as e: + macro_resolve_error(preprocessor_data.curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) - preprocessor_data.finish(show_statistics) - return preprocessor_data.get_results() +def get_pad_ops_alignment(op: Pad, preprocessor_data: PreprocessorData) -> int: + try: + return op.calculate_ops_alignment(preprocessor_data.labels) + except FJExprException as e: + macro_resolve_error(preprocessor_data.curr_tree, f'pad {op.ops_alignment} failed.', orig_exception=e) -def resolve_macro_aux(preprocessor_data: PreprocessorData, - w: int, macros: Dict[MacroName, Macro], - macro_name: MacroName, args: Iterable[Expr], macro_path: str) -> None: +def get_next_segment_start(op: Segment, preprocessor_data: PreprocessorData) -> int: + try: + next_segment_start = op.calculate_address(preprocessor_data.labels) + if next_segment_start % preprocessor_data.w != 0: + macro_resolve_error(preprocessor_data.curr_tree, f'segment ops must have a w-aligned address: ' + f'{hex(next_segment_start)}. In {op.code_position}.') + return next_segment_start + except FJExprException as e: + macro_resolve_error(preprocessor_data.curr_tree, f'segment failed.', orig_exception=e) + + +def get_reserved_bits_size(op: Reserve, preprocessor_data: PreprocessorData) -> int: + try: + reserved_bits_size = op.calculate_reserved_bit_size(preprocessor_data.labels) + if reserved_bits_size % preprocessor_data.w != 0: + macro_resolve_error(preprocessor_data.curr_tree, f'reserve ops must have a w-aligned value: ' + f'{hex(reserved_bits_size)}. In {op.code_position}.') + return reserved_bits_size + except FJExprException as e: + macro_resolve_error(preprocessor_data.curr_tree, f'reserve failed.', orig_exception=e) + + +def get_params_dictionary(current_macro: Macro, args: Iterable[Expr], namespace: str, labels_prefix: str) \ + -> Dict[str, Expr]: + """ + generates the dictionary between the labels (params and local-params) defined by the macro, and their Expr-values. + @param current_macro: the current macro + @param args: the macro's arguments (Expressions) + @param namespace: the current namespace + @param labels_prefix: the path to the currently-preprocessed macro + @return: the parameters' dictionary + """ + params_dict: Dict[str, Expr] = dict(zip(current_macro.params, args)) + + for local_param in current_macro.local_params: + params_dict[local_param] = Expr(f'{labels_prefix}---{local_param}') + + if namespace: + for k, v in tuple(params_dict.items()): + params_dict[f'{namespace}.{k}'] = v + + return params_dict + + +def resolve_macro_aux(preprocessor_data: PreprocessorData, + macro_name: MacroName, args: Iterable[Expr], labels_prefix: str) -> None: + """ + recursively unwind the current macro into a serialized stream of ops and add them to the result_ops-queue. + also add every label's value to the labels-dictionary. both saved in preprocessor_data. + @param preprocessor_data: maintains the preprocessor "global" data structures + @param macro_name: the name of the macro to unwind + @param args: the arguments for the macro to unwind + @param labels_prefix: The prefix for all labels defined in this macro + """ init_curr_address = preprocessor_data.curr_address - current_macro = macros[macro_name] - id_dict = get_id_dictionary(current_macro, args, current_macro.namespace, macro_path) + current_macro = preprocessor_data.macros[macro_name] + params_dict = get_params_dictionary(current_macro, args, current_macro.namespace, labels_prefix) for op in current_macro.ops: if isinstance(op, Label): - preprocessor_data.insert_label(op.eval_name(id_dict), op.code_position) + preprocessor_data.insert_label(op.eval_name(params_dict), op.code_position) elif isinstance(op, FlipJump) or isinstance(op, WordFlip): - preprocessor_data.curr_address += 2 * w - id_dict['$'] = Expr(preprocessor_data.curr_address) - preprocessor_data.result_ops.append(op.eval_new(id_dict)) - del id_dict['$'] + preprocessor_data.curr_address += 2 * preprocessor_data.w + params_dict['$'] = Expr(preprocessor_data.curr_address) + preprocessor_data.result_ops.append(op.eval_new(params_dict)) + del params_dict['$'] elif isinstance(op, Pad): - op = op.eval_new(id_dict) + op = op.eval_new(params_dict) ops_alignment = get_pad_ops_alignment(op, preprocessor_data) - preprocessor_data.align_current_address(2*w, ops_alignment) + preprocessor_data.align_current_address(ops_alignment) elif isinstance(op, MacroCall): - op = op.eval_new(id_dict) - next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ + op = op.eval_new(params_dict) + next_macro_path = (f"{labels_prefix}{macro_separator_string}" if labels_prefix else "") + \ f"{op.code_position.short_str()}:{op.macro_name}" - with preprocessor_data.prepare_macro_call(op, macros): + with preprocessor_data.prepare_macro_call(op): resolve_macro_aux(preprocessor_data, - w, macros, op.macro_name, op.arguments, next_macro_path) elif isinstance(op, RepCall): - op = op.eval_new(id_dict) + op = op.eval_new(params_dict) rep_times = get_rep_times(op, preprocessor_data) if rep_times == 0: continue - next_macro_path = (f"{macro_path}{macro_separator_string}" if macro_path else "") + \ + next_macro_path = (f"{labels_prefix}{macro_separator_string}" if labels_prefix else "") + \ f"{op.code_position.short_str()}:rep{{}}:{op.macro_name}" - with preprocessor_data.prepare_macro_call(op, macros): + with preprocessor_data.prepare_macro_call(op): for i in range(rep_times): resolve_macro_aux(preprocessor_data, - w, macros, op.macro_name, op.calculate_arguments(i), next_macro_path.format(i)) elif isinstance(op, Segment): - op = op.eval_new(id_dict) - next_segment_start = get_next_segment_start(op, preprocessor_data, w) + op = op.eval_new(params_dict) + next_segment_start = get_next_segment_start(op, preprocessor_data) preprocessor_data.insert_segment(next_segment_start) elif isinstance(op, Reserve): - op = op.eval_new(id_dict) - reserved_bits_size = get_reserved_bits_size(op, preprocessor_data, w) + op = op.eval_new(params_dict) + reserved_bits_size = get_reserved_bits_size(op, preprocessor_data) preprocessor_data.insert_reserve(reserved_bits_size) else: macro_resolve_error(preprocessor_data.curr_tree, f"Can't assemble this opcode - {str(op)}") - preprocessor_data.register_macro_code_size(macro_path, init_curr_address) - - -def get_rep_times(op: RepCall, preprocessor_data: PreprocessorData) -> int: - try: - return op.calculate_times(preprocessor_data.labels) - except FJExprException as e: - macro_resolve_error(preprocessor_data.curr_tree, f'rep {op.macro_name} failed.', orig_exception=e) - - -def get_pad_ops_alignment(op: Pad, preprocessor_data: PreprocessorData) -> int: - try: - return op.calculate_ops_alignment(preprocessor_data.labels) - except FJExprException as e: - macro_resolve_error(preprocessor_data.curr_tree, f'pad {op.ops_alignment} failed.', orig_exception=e) - - -def get_next_segment_start(op: Segment, preprocessor_data: PreprocessorData, w: int): - try: - next_segment_start = op.calculate_address(preprocessor_data.labels) - if next_segment_start % w != 0: - macro_resolve_error(preprocessor_data.curr_tree, f'segment ops must have a w-aligned address: ' - f'{hex(next_segment_start)}. In {op.code_position}.') - return next_segment_start - except FJExprException as e: - macro_resolve_error(preprocessor_data.curr_tree, f'segment failed.', orig_exception=e) - + preprocessor_data.register_macro_code_size(labels_prefix, init_curr_address) -def get_reserved_bits_size(op: Reserve, preprocessor_data: PreprocessorData, w: int): - try: - reserved_bits_size = op.calculate_reserved_bit_size(preprocessor_data.labels) - if reserved_bits_size % w != 0: - macro_resolve_error(preprocessor_data.curr_tree, f'reserve ops must have a w-aligned value: ' - f'{hex(reserved_bits_size)}. In {op.code_position}.') - return reserved_bits_size - except FJExprException as e: - macro_resolve_error(preprocessor_data.curr_tree, f'reserve failed.', orig_exception=e) +def resolve_macros(w: int, macros: Dict[MacroName, Macro], *, show_statistics: bool = False) \ + -> Tuple[Deque[LastPhaseOp], Dict[str, int]]: + """ + unwind the macro tree to a serialized-queue of ops, + and creates a dictionary from label's name to its address. + @param w: the memory-width + @param macros: parser's result; the dictionary from the macro names to the macro declaration + @param show_statistics: if True then prints the macro-usage statistics + @return: tuple of the queue of ops, and the labels' dictionary + """ + preprocessor_data = PreprocessorData(w, macros) + resolve_macro_aux(preprocessor_data, + initial_macro_name, initial_args, initial_labels_prefix) -def get_id_dictionary(current_macro: Macro, args: Iterable[Expr], namespace: str, macro_path: str): - id_dict: Dict[str, Expr] = dict(zip(current_macro.params, args)) - for local_param in current_macro.local_params: - id_dict[local_param] = new_label(macro_path, local_param) - if namespace: - for k in list(id_dict.keys()): - id_dict[f'{namespace}.{k}'] = id_dict[k] - return id_dict + preprocessor_data.finish(show_statistics) + return preprocessor_data.get_result_ops_and_labels() From 32332d57cd057e0cb8993db0072cdd01c575024c Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 09:40:36 +0300 Subject: [PATCH 50/66] add code of conduct --- CODE_OF_CONDUCT.md | 133 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..c75c7af --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[flipjumpproject@gmail.com](mailto:flipjumpproject@gmail.com). +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations + From fb5329367078c12de715670d2107b8ab66ba2996 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 18:09:11 +0300 Subject: [PATCH 51/66] add contributing file --- CONTRIBUTING.md | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..962f6b3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,85 @@ +# Introduction +First off, thank you for considering contributing to FlipJump. It's people like you that make the esoteric language community such a great, active and evolving community. + +Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. + +FlipJump is an open source project, and we love to receive contributions from our community — you!
+There are many ways to contribute, from writing tutorials or blog posts, writing new fj-programs, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into the FlipJump source / standard-library itself. + +Also, please take 2 minutes to show this project to the people you know that would **see the magic in this language.** + +Please, don't use the issue tracker for support-questions. Instead, use the [Questions thread](https://github.com/tomhea/flip-jump/discussions/176), or the [Discussions](https://github.com/tomhea/flip-jump/discussions) in general. + +## Responsibilities + * Ensure cross-platform compatibility for every change that's accepted. Windows & Ubuntu Linux. + * Ensure that code that goes into core passes the --regular [tests](tests/README.md). + * Create issues (+Discussions) for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback. + * Don't change the stl-api, only offer new options. feel free to discuss it first. + * Keep each PR as small as possible, preferably one new change/feature per PR. + * Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. See the [Python Community Code of Conduct](https://www.python.org/psf/codeofconduct/). + +## Your First Contribution +Unsure where to begin contributing to FlipJump? You can start by creating and running your own FlipJump programs, on your own repos, and spread the rumor :)
+Also, please take a look at the [Contribution thread](https://github.com/tomhea/flip-jump/discussions/148). + +Working on your first Pull Request? You can learn how from this free series, [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github). + +At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first 😸 + +If a maintainer asks you to "rebase" your PR, they're saying that a lot of code has changed, and that you need to update your branch, so it's easier to merge. + +# Getting started +1. Create your own fork of the code +2. Do the changes in your fork (keep them minimal). +3. If you like the change and think the project could use it: + * Be sure you have followed the [code style](CONTRIBUTING.md#clean-code) for the project. + * be sure your project passes the --regular [tests](tests/README.md). + * Send a pull request. + +If you have **small or "obvious" fixes**, include SMALLFIX in the PR/issue name. +such fixes can be: +* Spelling / grammar fixes +* Typo correction, white space and formatting changes +* Comment clean up +* Functions/Classes rearrangements in the same file +It should still pass the --regular tests. + +# How to report a bug +When filing an issue, make sure to answer these five questions: + + 1. What version of FlipJump are you using (if no version, make sure you fetched the last changes, and specify the branch name)? + 2. What operating system are you using? + 3. What did you do? + 4. What did you expect to see? + 5. What did you see instead? +General questions should go to the [Questions thread](https://github.com/tomhea/flip-jump/discussions/176), or the [Discussions](https://github.com/tomhea/flip-jump/discussions) in general. + +# How to suggest a feature or enhancement +The FlipJump philosophy is to be the simplest langauge of all, that can do any modern computation. + +FlipJump should be below the OS, as it's a cpu-architecture after all. + +The FlipJump stl should be minimalistic, efficient in both space and time, and to offer macros similar to x86 ops.
+The generic stl macro should look like `macro_name n dst src` for an n-bit/hex variable, with dst being the destination-variable, and src being source-variable. (e.g. `hex.add n, dst, src`). + +If you find yourself wishing for a feature that doesn't exist, you are probably not alone. Some features that FlipJump has today have been added because our users saw the need. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work. + +## Code review process +After feedback has been given to the Pull Request, we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity. + +# Community +You can chat with the core team and the community on [GitHub Discussions](https://github.com/tomhea/flip-jump/discussions). + +# Clean Code +Get familiar with [Clean Code](https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29) (mainly the functions/names sections). + +In short: +- use **clear names** (full words, **descriptive**, not-too-long), for variables, functions/macros (verb-name), and classes (nouns). +- **functions should do exactly one thing**. no side effects. They should be **very short** (and call other descriptive functions). IT IS POSSIBLE for a function to be 4-5 lines (and we should aim to that). + +Keep in mind that the developers of this community invested much of their time in making this project as clean, simple, and documented as they can. + +If you find a piece of code that isn't compliant with this standard, it probably has an open issue and is known, and if not, please open a new issue. + +Follow this rule but don't try to be perfect, and use the [80/20](https://en.wikipedia.org/wiki/Pareto_principle) principle. Yet, make an effort to make the code as simple, as much as you'd expect from others in this project's community. + From c0790ade7149ee69fdf595eab0328696a4565938 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 18:10:44 +0300 Subject: [PATCH 52/66] add new files to src/readme --- src/README.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/README.md b/src/README.md index 600c4bf..bd9250d 100644 --- a/src/README.md +++ b/src/README.md @@ -4,7 +4,7 @@ The assembler has 4 steps: - parsing the .fj text files into a dictionary of macros and their ops ([fj_parser.py](fj_parser.py)). -- resolving the macros (and reps) to get a straight stream of ops ([preprocessor.py](preprocessor.py)). +- resolving (unwinding) the macros (and reps) to get a straight stream of ops ([preprocessor.py](preprocessor.py)). - resolving the label values and getting the ops binary data ([assembler.py](assembler.py)). - writing the binary data into the executable ([fjm.py](fjm.py)). @@ -17,12 +17,13 @@ The whole process is executed within the [assemble()](assembler.py) function. The Interpreter ([fjm_run.py](fjm_run.py)) stores the entire memory in a dictionary {address: value}, and supports unaligned-word access. -The Interpreter has a built-in debugger, and it's activated by specifying breakpoints when called (via a [BreakpointHandler](breakpoints.py)). +The Interpreter has a built-in debugger, and it's activated by specifying breakpoints when called (via the [BreakpointHandler](breakpoints.py)). The debugger can stop on the next breakpoint, or on a fixed number of executed ops after the current breakpoint. In order to call the debugger with the right labels, get familiar with the [generating label names](README.md#Generated-Label-Names). -The whole interpretation is done within [run()](fjm_run.py) function. +The whole interpretation is done within the [run()](fjm_run.py) function (also uses [fjm.py](fjm.py) to read the fjm file). +- The [macro_usage_graph.py](macro_usage_graph.py) file allows presenting the macro-usage in a graph. ### Generated Label Names @@ -44,12 +45,18 @@ and f1,f2,f3,.. for the compiled .fj files, in the order they are mentioned to t ## More Files -- The [fj.py](fj.py) file is the main FlipJump script. run with --help to see its capabilities. +- The [fj.py](fj.py) file is the main FlipJump cli-script. run with --help to see its capabilities. - The [fjm.py](fjm.py) file helps to read and write a .fjm file. -- The [defs.py](defs.py) file contains functionality used across source, and the project definitions. +- The [defs.py](defs.py) file contains functionality used across the source files, and the project's definitions. - The [exceptions.py](exceptions.py) file contains exceptions definitions. +- The [io_devices/](io_devices) folder contains modules for different Input/Output-handling classes. The standard one is [StandardIO.py](io_devices/StandardIO.py), and the tests uses the [FixedIO.py](io_devices/FixedIO.py). +# Read More +The FlipJump source is built in a way that allows simple addition of new features. + +Every addition should be supported from the parsing level to the phase that is disappears, in the progression found in assemble() in [assembler](assembler.py). + +For example, if you want to add a new operation a@b that calculates a*a+b*b or a! for factorial(a), it is simple as adding a parsing rule in [fj_parser.py](fj_parser.py), then adding the function to the op_string_to_function() in [expr.py](expr.py). -# Read More From b3bc51b0fac87b42f228d159619f42e8903f5e49 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 18:11:40 +0300 Subject: [PATCH 53/66] add --regular to tests/readme and refactor the tables' markdown representation --- tests/README.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/tests/README.md b/tests/README.md index a7f3b7a..a936e53 100644 --- a/tests/README.md +++ b/tests/README.md @@ -7,7 +7,9 @@ run `pytest` to run the fast tests. Run with `--compile` / `--run` for testing only the compilation / the run. Add a combination of `--fast`, `--medium`, `--slow`, `--hexlib` to run tests of different types.
-Use `--all` to run all the tests. The default (no type flags) means `--fast`. +Use `--regulr` to run all the tests of stable parts.
+Use `--all` to run all the tests.
+The default (no type flags) means `--fast`. You can run the tests parallel with `-n auto` (using [xdist](https://github.com/pytest-dev/pytest-xdist)).
note that this option is only allowed while using exactly one of `--compile` / `--run`.
@@ -32,24 +34,24 @@ The python test itself can be found on [test_fj.py](test_fj.py) (and [conftest.p To add a new test, first choose the relevant csv file.
The rule of thumb (for the sum of compile+run times, in seconds): -fast | medium | slow ----|---|--- -0 → 0.5 | 0.5 → 5 | else +| fast | medium | slow | +|--------------|--------------|------| +| 0 → 0.5 | 0.5 → 5 | else | Then add a new line to the relevant compile-csv and run-csv files, according to the next formats. ### Compile CSVs format: -test name | .fj paths | out .fjm path | memory width | version | flags | use stl | treat warnings as errors ----|---|---|---|---|---|---|--- -example_test | path/to/example_1.fj | ... | path/to/example_n.fj | path/to/compiled/example.fjm | 64 | 1 | 0 | True | True +| test name | .fj paths | out .fjm path | memory width | version | flags | use stl | treat warnings as errors | +|--------------|-------------------------------------------------------------|------------------------------|--------------|---------|-------|---------|--------------------------| +| example_test | path/to/example_1.fj | ... | path/to/example_n.fj | path/to/compiled/example.fjm | 64 | 1 | 0 | True | True | Note that you can specify a single file, or a '|' separated list of files in the .fj paths cell. In case of a list, they will be compiled in the inserted order. ### Run CSVs format: -test name | .fjm path | input file path | output file path | is input a binary file | is output a binary file ----|---|---|---|---|--- -example_test | path/to/compiled/example.fjm | path/to/inputs/example.in | path/to/outputs/example.out | False | False +| test name | .fjm path | input file path | output file path | is input a binary file | is output a binary file | +|--------------|------------------------------|---------------------------|-----------------------------|------------------------|-------------------------| +| example_test | path/to/compiled/example.fjm | path/to/inputs/example.in | path/to/outputs/example.out | False | False | Note that you can also emit specifying a file in the input/output cell, and leave it empty. In that case an empty input/output will be used. From b2702746c9830136693a6efb2e119be2a3b697a0 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 19:00:31 +0300 Subject: [PATCH 54/66] update readme with contributing file --- README.md | 22 ++++++++++++---------- programs/quine16.fj | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 664978b..1188a1e 100644 --- a/README.md +++ b/README.md @@ -78,12 +78,11 @@ Cloning into 'flip-jump'... ```bash >>> python src/fj.py programs/hello_world.fj Hello, World! ->>> python src/fj.py programs/hello_no-stl.fj --no-stl -Hello, World! ``` - - The --no-stl flag tells the assembler not to include the standard library. The flag is needed as we implemented the macros ourselves. + - The --no-stl flag tells the assembler not to include the standard library (`python src/fj.py programs/hello_no-stl.fj --no-stl`). The flag is needed here as we implemented the macros ourselves. + - the -w [WIDTH] flag allows compiling the .fj files to a WIDTH-bits memory width. WIDTH is 64 by default. - You can use the -o flag to save the assembled file for later use too. - - you can find all the different flags with `python src/fj.py -h` + - you can find all the different flags with `python src/fj.py -h`. You can also **[Test the project](tests/README.md)** with the project's tests, and with your tests. @@ -115,11 +114,11 @@ Hello, World! - fj_parser.py - pythonic lex/yacc parser. - preprocessor.py - unwind all macros and reps. - assembler.py - assembles the macro-less fj file. - - ops/expr/defs/breakpoints.py - classes/functions/consts used throughout the project. + - [more...](src/README.md) other branches: - [cpp_fji/](https://github.com/tomhea/flip-jump/tree/cpp-interpreter/src/cpp_fji) - the cpp interpreter (much faster, about 2Mfj/s). - - [riscv2fj/](https://github.com/tomhea/flip-jump/tree/riscv2fj/src/riscv2fj) - translates a riscv-executable to an equivalent fj code. + - [riscv2fj/](https://github.com/tomhea/flip-jump/tree/riscv2fj/src/riscv2fj) - translates a riscv-executable to an equivalent fj code. **[stl](stl)** (standard library files - macros. [list of all macros](https://esolangs.org/wiki/FlipJump#The_Standard_Library)): - runlib.fj - constants and initialization macros. @@ -136,7 +135,7 @@ other branches: - [calc.fj](programs/calc.fj) - command line calculator for 2 hex/dec numbers: ```a [+-*/%] b```. - [func_tests/](programs/func_tests) - performs function calls and operations on stack. - [hexlib_tests/](programs/hexlib_tests) - tests for the macros in stl/hexlib.fj. - - [quine16.fj](programs/quine16.fj) - a 16-bits quine by [lestrozi](https://github.com/lestrozi); prints itself. + - [quine16.fj](programs/quine16.fj) - a 16-bits quine by [lestrozi](https://github.com/lestrozi); when assembled with `-w16 -v0` - prints itself. - [pair_ns.fj](programs/concept_checks/pair_ns.fj) - simulating the concept of a Class using a namespace. - [print_dec.fj](programs/print_tests/print_dec.fj) - prints binary variables as decimals. - [multi_comp/](programs/multi_comp) - simulates a big project (compilation of multiple files). @@ -157,8 +156,11 @@ A very extensive explanation can be found on the [GitHub wiki page](https://gith More detailed explanation and the **specifications of the FlipJump assembly** can be found on the [FlipJump esolangs page](https://esolangs.org/wiki/FlipJump). -Start by reading the [bitlib.fj](stl/bitlib.fj) standard library file. That's where the FlipJump magic begins. +Read more about the [flip-jump source files](src/README.md) and [how to run the tests](tests/README.md). + +If you want to contribute to this project, read the [CONTRIBUTING.md](CONTRIBUTING.md) file, and take a look at the [Discussions](https://github.com/tomhea/flip-jump/discussions/148). + +If you are new to FlipJump and you want to learn how modern computation can be executed using FlipJump, Start by reading the [bitlib.fj](stl/bitlib.fj) standard library file (start with `xor`, `if`). That's where the FlipJump magic begins. -If you want to contribute to this project, open a pull request, and start [Discussing](https://github.com/tomhea/flip-jump/discussions/148). +You can also write and run programs for yourself! It is just [that](README.md#how-to-run) easy :) -You can also write and run programs for yourself! It is just [that](#how-to-run) easy :) diff --git a/programs/quine16.fj b/programs/quine16.fj index ad7733f..8c9a7ad 100644 --- a/programs/quine16.fj +++ b/programs/quine16.fj @@ -1,4 +1,4 @@ -// $ python3 src/fj.py --asm -w 16 quine16.fj -o quine16.fjm && python3 src/fj.py --run -s quine16.fjm >/tmp/output && diff quine16.fjm /tmp/output && echo "quine!" +// $ python3 src/fj.py --asm -w 16 -v 0 quine16.fj -o quine16.fjm && python3 src/fj.py --run -s quine16.fjm >/tmp/output && diff quine16.fjm /tmp/output && echo "quine!" // // Author: Luis Fernando Estrozi ( https://github.com/lestrozi ) // From 15e7f0214a7cbbf9f6c23a98e42f0a47ce13ef5d Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 19:02:12 +0300 Subject: [PATCH 55/66] fix --run not creating a path --- src/fj.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fj.py b/src/fj.py index 6a4ebdc..7868cac 100644 --- a/src/fj.py +++ b/src/fj.py @@ -87,7 +87,7 @@ def get_files_paths(args: argparse.Namespace, error_func: ErrorFunc, temp_dir_na """ out_fjm_path = get_fjm_file_path(args, error_func, temp_dir_name) debug_path = get_debug_file_path(args, error_func, temp_dir_name) - in_fjm_path = args.files[0] if args.run else out_fjm_path + in_fjm_path = Path(args.files[0]) if args.run else out_fjm_path return debug_path, in_fjm_path, out_fjm_path From 861950146a03e15e08c4a2257a67bebd0bdd6388 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 19:26:58 +0300 Subject: [PATCH 56/66] remove input echoing from calc --- programs/calc.fj | 10 ++------- tests/inout/calc_tests/calc1.out | 4 ++-- tests/inout/calc_tests/calc10.out | 4 ++-- tests/inout/calc_tests/calc2.out | 4 ++-- tests/inout/calc_tests/calc3.out | 4 ++-- tests/inout/calc_tests/calc4.out | 4 ++-- tests/inout/calc_tests/calc5.out | 4 ++-- tests/inout/calc_tests/calc6.out | 4 ++-- tests/inout/calc_tests/calc7.out | 4 ++-- tests/inout/calc_tests/calc8.out | 4 ++-- tests/inout/calc_tests/calc9.out | 4 ++-- tests/inout/calc_tests/calc_empty.out | 2 +- tests/inout/calc_tests/calc_many.out | 30 +++++++++++++-------------- 13 files changed, 38 insertions(+), 44 deletions(-) diff --git a/programs/calc.fj b/programs/calc.fj index a2f81f2..0e41307 100644 --- a/programs/calc.fj +++ b/programs/calc.fj @@ -191,15 +191,9 @@ def check_quit true, false @ try_quit1 < ascii, quit1, quit2 { -// does not print new-line -def getch @ check_n, do_print, end < end_line_r, end_line_n, ascii { +// does not echo input characters +def getch < ascii { bit.input ascii - bit.cmp 8, ascii, end_line_r, check_n, end, check_n - check_n: - bit.cmp 8, ascii, end_line_n, do_print, end, do_print - do_print: - bit.print ascii - end: } diff --git a/tests/inout/calc_tests/calc1.out b/tests/inout/calc_tests/calc1.out index c727f3e..57e39fa 100644 --- a/tests/inout/calc_tests/calc1.out +++ b/tests/inout/calc_tests/calc1.out @@ -1,3 +1,3 @@ -> 111111111*111111111 +> 12345678987654321 -> q +> diff --git a/tests/inout/calc_tests/calc10.out b/tests/inout/calc_tests/calc10.out index 4f1cd80..9f590b3 100644 --- a/tests/inout/calc_tests/calc10.out +++ b/tests/inout/calc_tests/calc10.out @@ -1,3 +1,3 @@ -> -15%4 +> -3 -> q +> diff --git a/tests/inout/calc_tests/calc2.out b/tests/inout/calc_tests/calc2.out index bf46e43..96dfc19 100644 --- a/tests/inout/calc_tests/calc2.out +++ b/tests/inout/calc_tests/calc2.out @@ -1,3 +1,3 @@ -> xd0a0c0d0 + x0e0d000e +> 0xDEADC0DE -> q +> diff --git a/tests/inout/calc_tests/calc3.out b/tests/inout/calc_tests/calc3.out index c30064c..5566985 100644 --- a/tests/inout/calc_tests/calc3.out +++ b/tests/inout/calc_tests/calc3.out @@ -1,3 +1,3 @@ -> 23456-765 +> 22691 -> q +> diff --git a/tests/inout/calc_tests/calc4.out b/tests/inout/calc_tests/calc4.out index 97c3243..cc12072 100644 --- a/tests/inout/calc_tests/calc4.out +++ b/tests/inout/calc_tests/calc4.out @@ -1,3 +1,3 @@ -> X777+x34 +> 0x7AB -> q +> diff --git a/tests/inout/calc_tests/calc5.out b/tests/inout/calc_tests/calc5.out index 8500d8f..ddd5f93 100644 --- a/tests/inout/calc_tests/calc5.out +++ b/tests/inout/calc_tests/calc5.out @@ -1,3 +1,3 @@ -> x1000+128 +> 0x1080 -> q +> diff --git a/tests/inout/calc_tests/calc6.out b/tests/inout/calc_tests/calc6.out index 9140c73..d935f90 100644 --- a/tests/inout/calc_tests/calc6.out +++ b/tests/inout/calc_tests/calc6.out @@ -1,3 +1,3 @@ -> 2073600/1080 +> 1920 -> q +> diff --git a/tests/inout/calc_tests/calc7.out b/tests/inout/calc_tests/calc7.out index 8ff3cf7..b791b36 100644 --- a/tests/inout/calc_tests/calc7.out +++ b/tests/inout/calc_tests/calc7.out @@ -1,3 +1,3 @@ -> 23-100 +> -77 -> q +> diff --git a/tests/inout/calc_tests/calc8.out b/tests/inout/calc_tests/calc8.out index 173b74c..1541889 100644 --- a/tests/inout/calc_tests/calc8.out +++ b/tests/inout/calc_tests/calc8.out @@ -1,3 +1,3 @@ -> 34%7 +> 6 -> q +> diff --git a/tests/inout/calc_tests/calc9.out b/tests/inout/calc_tests/calc9.out index a9e21c0..9f590b3 100644 --- a/tests/inout/calc_tests/calc9.out +++ b/tests/inout/calc_tests/calc9.out @@ -1,3 +1,3 @@ -> -15/4 +> -3 -> q +> diff --git a/tests/inout/calc_tests/calc_empty.out b/tests/inout/calc_tests/calc_empty.out index ec322d9..ca0b515 100644 --- a/tests/inout/calc_tests/calc_empty.out +++ b/tests/inout/calc_tests/calc_empty.out @@ -1 +1 @@ -> q +> diff --git a/tests/inout/calc_tests/calc_many.out b/tests/inout/calc_tests/calc_many.out index 3cf6ea1..9817656 100644 --- a/tests/inout/calc_tests/calc_many.out +++ b/tests/inout/calc_tests/calc_many.out @@ -1,32 +1,32 @@ -> 1 +> 1 -> 2 +> 2 -> -6 +> -6 -> 5 + 7 +> 12 -> 1 - 2 +> -1 -> 13+2 +> 15 > -> 7 +> 7 -> 0 +> 0 -> -2+2 +> 0 -> -2-2 +> -4 > > -> g +> Error! -> 0x +> Error! -> x9 +> 0x9 -> xbabe +> 0xBABE -> q +> From 53b769dde50a1777e2fa23d6e1a9fc6aaf9eaf45 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 21:55:38 +0300 Subject: [PATCH 57/66] calc: remove newlines --- programs/calc.fj | 18 +++------- tests/inout/calc_tests/calc1.out | 5 ++- tests/inout/calc_tests/calc10.out | 5 ++- tests/inout/calc_tests/calc2.out | 5 ++- tests/inout/calc_tests/calc3.out | 5 ++- tests/inout/calc_tests/calc4.out | 5 ++- tests/inout/calc_tests/calc5.out | 5 ++- tests/inout/calc_tests/calc6.out | 5 ++- tests/inout/calc_tests/calc7.out | 5 ++- tests/inout/calc_tests/calc8.out | 5 ++- tests/inout/calc_tests/calc9.out | 5 ++- tests/inout/calc_tests/calc_empty.out | 2 +- tests/inout/calc_tests/calc_many.in | 5 +++ tests/inout/calc_tests/calc_many.out | 50 ++++++++++----------------- 14 files changed, 49 insertions(+), 76 deletions(-) diff --git a/programs/calc.fj b/programs/calc.fj index 0e41307..ebb7839 100644 --- a/programs/calc.fj +++ b/programs/calc.fj @@ -10,12 +10,9 @@ loop: should_quit: getch remove_spaces - line_ended finish, finish, before_start + line_ended finish, finish, err_loop before_start: - line_ended loop_new_line, finish, start - loop_new_line: - output '\n' - ;loop + line_ended loop, finish, start start: insert_number a @@ -41,7 +38,6 @@ loop: do_print: - output '\n' print_int a output '\n' @@ -52,16 +48,15 @@ loop: err_loop: line_ended print_err, print_err, err_getch print_err: - bit.print 8, err_string + bit.print 7, err_string line_ended loop, finish, finish finish: - output '\n' loop -def remove_spaces @ main_loop, try2, next_ascii, end < space1, ascii, space2 { +def remove_spaces @ main_loop, try2, next_ascii, end < space1, space2, ascii { main_loop: bit.cmp 8, ascii, space1, try2, next_ascii, try2 try2: @@ -241,8 +236,5 @@ quit1: bit.vec 8, 'Q' quit2: bit.vec 8, 'q' -err_string: bit.str "\nError!\n" +err_string: bit.str "Error!\n" prompt_string: bit.str "> " - -// bit.ptr_init -// bit.stack 20 diff --git a/tests/inout/calc_tests/calc1.out b/tests/inout/calc_tests/calc1.out index 57e39fa..4f674a5 100644 --- a/tests/inout/calc_tests/calc1.out +++ b/tests/inout/calc_tests/calc1.out @@ -1,3 +1,2 @@ -> -12345678987654321 -> +> 12345678987654321 +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc10.out b/tests/inout/calc_tests/calc10.out index 9f590b3..69cd653 100644 --- a/tests/inout/calc_tests/calc10.out +++ b/tests/inout/calc_tests/calc10.out @@ -1,3 +1,2 @@ -> --3 -> +> -3 +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc2.out b/tests/inout/calc_tests/calc2.out index 96dfc19..1c613be 100644 --- a/tests/inout/calc_tests/calc2.out +++ b/tests/inout/calc_tests/calc2.out @@ -1,3 +1,2 @@ -> -0xDEADC0DE -> +> 0xDEADC0DE +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc3.out b/tests/inout/calc_tests/calc3.out index 5566985..6198a1d 100644 --- a/tests/inout/calc_tests/calc3.out +++ b/tests/inout/calc_tests/calc3.out @@ -1,3 +1,2 @@ -> -22691 -> +> 22691 +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc4.out b/tests/inout/calc_tests/calc4.out index cc12072..789255b 100644 --- a/tests/inout/calc_tests/calc4.out +++ b/tests/inout/calc_tests/calc4.out @@ -1,3 +1,2 @@ -> -0x7AB -> +> 0x7AB +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc5.out b/tests/inout/calc_tests/calc5.out index ddd5f93..ea6015a 100644 --- a/tests/inout/calc_tests/calc5.out +++ b/tests/inout/calc_tests/calc5.out @@ -1,3 +1,2 @@ -> -0x1080 -> +> 0x1080 +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc6.out b/tests/inout/calc_tests/calc6.out index d935f90..d794c42 100644 --- a/tests/inout/calc_tests/calc6.out +++ b/tests/inout/calc_tests/calc6.out @@ -1,3 +1,2 @@ -> -1920 -> +> 1920 +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc7.out b/tests/inout/calc_tests/calc7.out index b791b36..5a8ac2b 100644 --- a/tests/inout/calc_tests/calc7.out +++ b/tests/inout/calc_tests/calc7.out @@ -1,3 +1,2 @@ -> --77 -> +> -77 +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc8.out b/tests/inout/calc_tests/calc8.out index 1541889..a786dc8 100644 --- a/tests/inout/calc_tests/calc8.out +++ b/tests/inout/calc_tests/calc8.out @@ -1,3 +1,2 @@ -> -6 -> +> 6 +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc9.out b/tests/inout/calc_tests/calc9.out index 9f590b3..69cd653 100644 --- a/tests/inout/calc_tests/calc9.out +++ b/tests/inout/calc_tests/calc9.out @@ -1,3 +1,2 @@ -> --3 -> +> -3 +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc_empty.out b/tests/inout/calc_tests/calc_empty.out index ca0b515..1ad4d1a 100644 --- a/tests/inout/calc_tests/calc_empty.out +++ b/tests/inout/calc_tests/calc_empty.out @@ -1 +1 @@ -> +> \ No newline at end of file diff --git a/tests/inout/calc_tests/calc_many.in b/tests/inout/calc_tests/calc_many.in index ccead9c..a3077c1 100644 --- a/tests/inout/calc_tests/calc_many.in +++ b/tests/inout/calc_tests/calc_many.in @@ -3,8 +3,10 @@ -6 5 + 7 1 - 2 + 13+2 + 7 0 -2+2 @@ -13,6 +15,9 @@ g 0x +q 8 +q q +q klewfkew x9 xbabe q diff --git a/tests/inout/calc_tests/calc_many.out b/tests/inout/calc_tests/calc_many.out index 9817656..15cd963 100644 --- a/tests/inout/calc_tests/calc_many.out +++ b/tests/inout/calc_tests/calc_many.out @@ -1,32 +1,18 @@ -> -1 -> -2 -> --6 -> -12 -> --1 -> -15 -> -> -7 -> -0 -> -0 -> --4 -> -> -> -Error! -> -Error! -> -0x9 -> -0xBABE -> +> 1 +> 2 +> -6 +> 12 +> -1 +> > 15 +> > > 7 +> 0 +> 0 +> -4 +> > > Error! +> Error! +> Error! +> Error! +> Error! +> 0x9 +> 0xBABE +> \ No newline at end of file From ea716e877093a3a92b20c7aa885ed10c3fedd2ae Mon Sep 17 00:00:00 2001 From: Tomhe Date: Fri, 12 Aug 2022 22:16:38 +0300 Subject: [PATCH 58/66] default version depends on -o if specified, ver3; otherwise, ver1. --- src/fj.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/fj.py b/src/fj.py index 7868cac..8d68228 100644 --- a/src/fj.py +++ b/src/fj.py @@ -126,6 +126,19 @@ def run(in_fjm_path: Path, debug_file: Path, args: argparse.Namespace, error_fun exit(1) +def get_version(args: argparse.Namespace) -> int: + """ + @param args: the parsed arguments + @return: the chosen version, or default if not specified + """ + if args.version is not None: + return args.version + + if args.outfile is not None: + return fjm.CompressedVersion + return fjm.NormalVersion + + def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, error_func: ErrorFunc) -> None: """ prepare and verify arguments, and assemble the .fj files. @@ -137,7 +150,7 @@ def assemble(out_fjm_file: Path, debug_file: Path, args: argparse.Namespace, err file_tuples = get_file_tuples(args) verify_fj_files(error_func, file_tuples) - fjm_writer = fjm.Writer(out_fjm_file, args.width, args.version, flags=args.flags, lzma_preset=args.lzma_preset) + fjm_writer = fjm.Writer(out_fjm_file, args.width, get_version(args), flags=args.flags, lzma_preset=args.lzma_preset) assembler.assemble(file_tuples, args.width, fjm_writer, warning_as_errors=args.werror, debugging_file_path=debug_file, show_statistics=args.stats, print_time=not args.silent) @@ -223,10 +236,11 @@ def add_assemble_only_arguments(parser: argparse.ArgumentParser) -> None: asm_arguments.add_argument('-w', '--width', type=int, default=64, choices=[8, 16, 32, 64], metavar='WIDTH', help="specify memory-width. 64 by default") - supported_versions = '\n'.join(f"{version}: {name}" for version, name in fjm.SUPPORTED_VERSIONS.items()) - asm_arguments.add_argument('-v', '--version', metavar='VERSION', type=int, default=3, - help=f"fjm version ({fjm.CompressedVersion}-compressed by default).\n" - f"supported versions:\n" + supported_versions) + supported_versions = ', '.join(f"{version}: {name}" for version, name in fjm.SUPPORTED_VERSIONS.items()) + asm_arguments.add_argument('-v', '--version', metavar='VERSION', type=int, default=None, + help=f"fjm version (default of {fjm.CompressedVersion}-compressed " + f"if --outfile specified; version {fjm.NormalVersion} otherwise). " + f"supported versions: {supported_versions}.") # as in get_version() asm_arguments.add_argument('-f', '--flags', help="the default .fjm unpacking & running flags", type=int, default=0) asm_arguments.add_argument('--lzma_preset', type=int, default=lzma.PRESET_DEFAULT, choices=list(range(10)), From 153e7891bbbc86fa3d3f07807ab68e6cecddcf88 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 13 Aug 2022 01:59:29 +0300 Subject: [PATCH 59/66] bugfix hex2bit didn't zero --- stl/iolib.fj | 1 + 1 file changed, 1 insertion(+) diff --git a/stl/iolib.fj b/stl/iolib.fj index d357916..67fd3f0 100644 --- a/stl/iolib.fj +++ b/stl/iolib.fj @@ -278,6 +278,7 @@ def bit2hex n, hex, bit { def hex2bit bit, hex { + bit.zero 4, bit hex.exact_xor bit+3*dw+dbit, bit+2*dw+dbit, bit+dw+dbit, bit+dbit, hex } From e5cbbe98658220c7e7a7043771548ba16b2a929d Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 13 Aug 2022 02:01:03 +0300 Subject: [PATCH 60/66] add a new series-sum test --- programs/simple_math_checks/series_sum.fj | 58 +++++++++++++++++++ tests/inout/simple_math_checks/series_sum.out | 4 ++ tests/test_compile_slow.csv | 3 + tests/test_run_slow.csv | 3 + 4 files changed, 68 insertions(+) create mode 100644 programs/simple_math_checks/series_sum.fj create mode 100644 tests/inout/simple_math_checks/series_sum.out diff --git a/programs/simple_math_checks/series_sum.fj b/programs/simple_math_checks/series_sum.fj new file mode 100644 index 0000000..7dbd785 --- /dev/null +++ b/programs/simple_math_checks/series_sum.fj @@ -0,0 +1,58 @@ +N = 8 // 32bits + +startup + +// starting printings: +output "params: a1 = " +print_hex_as_decimal a1 +output ", d = " +print_hex_as_decimal d +output ", n = " +print_hex_as_decimal n +output ".\n\n" + + +hex.mov N, n_1, n +hex.dec N, n_1 // n_1 = n-1 +hex.mul N, an, n_1, d // an = d(n-1) +hex.add N, an, a1 // an = a1 + d(n-1) + +// print an +output "an = " +print_hex_as_decimal an +output ".\n" + +hex.add N, an, a1 // a1 + an +hex.mul N, s, an, n // s = (a1+an) * n +hex.shr_bit N, s // s = (a1+an) * n/2 + +// print sum +output "Sum(a1, a2, ..., an) = " +print_hex_as_decimal s +output ".\n" + +loop +hex.init // inits the hex.mul + + +def print_hex_as_decimal hexxx < num, ret, print_num { + hex2bit N, num, hexxx + fcall print_num, ret +} + +print_num: + bit.print_dec_int N*4, num + ;ret +num: bit.vec N*4 +ret: bit + + +// inputs and variables: +a1: hex.vec 8, 1 +d: hex.vec 8, 3 +n: hex.vec 8, 12 + +an: hex.vec 8 +s: hex.vec 8 + +n_1: hex.vec N diff --git a/tests/inout/simple_math_checks/series_sum.out b/tests/inout/simple_math_checks/series_sum.out new file mode 100644 index 0000000..b1e449e --- /dev/null +++ b/tests/inout/simple_math_checks/series_sum.out @@ -0,0 +1,4 @@ +params: a1 = 1, d = 3, n = 12. + +an = 34. +Sum(a1, a2, ..., an) = 210. diff --git a/tests/test_compile_slow.csv b/tests/test_compile_slow.csv index e0d752f..f7fe493 100644 --- a/tests/test_compile_slow.csv +++ b/tests/test_compile_slow.csv @@ -9,3 +9,6 @@ func5, programs/func_tests/func5.fj,tests/compiled/func_tests/func5.fjm, 64,3,0, pair_ns1, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test1.fj,tests/compiled/pair_ns_tests/test1.fjm, 64,3,0, True,True pair_ns2, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test2.fj,tests/compiled/pair_ns_tests/test2.fjm, 64,3,0, True,True pair_ns3, programs/concept_checks/pair_ns.fj | programs/pair_ns_tests/test3.fj,tests/compiled/pair_ns_tests/test3.fjm, 64,3,0, True,True + +series_sum, programs/simple_math_checks/series_sum.fj,tests/compiled/simple_math_checks/series_sum.fjm, 64,3,0, True,True + diff --git a/tests/test_run_slow.csv b/tests/test_run_slow.csv index 4089f4d..5a50157 100644 --- a/tests/test_run_slow.csv +++ b/tests/test_run_slow.csv @@ -20,3 +20,6 @@ func5, tests/compiled/func_tests/func5.fjm, ,tests/inout/func_tests/func5.out, F pair_ns1, tests/compiled/pair_ns_tests/test1.fjm, ,tests/inout/pair_ns_tests/pair_ns1.out, False,False pair_ns2, tests/compiled/pair_ns_tests/test2.fjm, ,tests/inout/pair_ns_tests/pair_ns2.out, False,False pair_ns3, tests/compiled/pair_ns_tests/test3.fjm, ,tests/inout/pair_ns_tests/pair_ns3.out, False,False + +series_sum, tests/compiled/simple_math_checks/series_sum.fjm, ,tests/inout/simple_math_checks/series_sum.out, False,False + From a05b42b908f0c3ff01b36176af56591defaca27c Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 13 Aug 2022 11:41:21 +0300 Subject: [PATCH 61/66] add gifs and images to readmes --- README.md | 16 ++++++++++++---- calc.fjm | Bin 0 -> 219306 bytes res/breakpoint.jpg | Bin 0 -> 129978 bytes res/calc.gif | Bin 0 -> 1254809 bytes res/calc__asm.jpg | Bin 0 -> 40672 bytes res/calc__run.jpg | Bin 0 -> 49240 bytes res/calc_stats.png | Bin 0 -> 139833 bytes res/hello.gif | Bin 0 -> 323778 bytes res/pytest.gif | Bin 0 -> 722686 bytes res/sum.gif | Bin 0 -> 2100104 bytes res/test_parallel.gif | Bin 0 -> 972992 bytes src/README.md | 24 ++++++++++++++++++++---- tests/README.md | 4 ++++ 13 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 calc.fjm create mode 100644 res/breakpoint.jpg create mode 100644 res/calc.gif create mode 100644 res/calc__asm.jpg create mode 100644 res/calc__run.jpg create mode 100644 res/calc_stats.png create mode 100644 res/hello.gif create mode 100644 res/pytest.gif create mode 100644 res/sum.gif create mode 100644 res/test_parallel.gif diff --git a/README.md b/README.md index 1188a1e..a5a07ca 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # FlipJump FlipJump is the simplest programing language.
+Yet, it can do **any modern computation**. + It's an Esoteric language ([FlipJump esolangs page](https://esolangs.org/wiki/FlipJump)), with just 1 operation `a;b`: - `not *a; jump b` @@ -10,6 +12,9 @@ The operation takes 2 memory addresses - it flips (inverts) the bit the first ad This project is a **Macro Assembler**, an **Interpreter** and a **Tested Standard Library** to the language. +This calculator was built with only FlipJump ([source](programs/calc.fj)): + + ## Hello, World! A simple fj [hello-world](programs/print_tests/hello_no-stl.fj) program, not using the standard library: @@ -18,13 +23,13 @@ A simple fj [hello-world](programs/print_tests/hello_no-stl.fj) program, not usi def startup @ code_start > IO { ;code_start IO: - ;0 + ;0 // the second op is reserved for Input/Output. code_start: } def output_bit bit < IO { - IO + bit; + IO + bit; // flipping IO+0 outputs 0; flipping IO+1 outputs 1. } def output_char ascii { rep(8, i) output_bit ((ascii>>i)&1) @@ -32,7 +37,7 @@ def output_char ascii { def end_loop @ loop_label { loop_label: - ;loop_label + ;loop_label // fj finishes on a self loop } startup @@ -44,6 +49,7 @@ def end_loop @ loop_label { output_char 'o' output_char ',' output_char ' ' + output_char 'W' output_char 'o' output_char 'r' @@ -79,7 +85,9 @@ Cloning into 'flip-jump'... >>> python src/fj.py programs/hello_world.fj Hello, World! ``` - - The --no-stl flag tells the assembler not to include the standard library (`python src/fj.py programs/hello_no-stl.fj --no-stl`). The flag is needed here as we implemented the macros ourselves. + + + - The --no-stl flag tells the assembler not to include the standard library. for example: `python src/fj.py programs/hello_no-stl.fj --no-stl`. - the -w [WIDTH] flag allows compiling the .fj files to a WIDTH-bits memory width. WIDTH is 64 by default. - You can use the -o flag to save the assembled file for later use too. - you can find all the different flags with `python src/fj.py -h`. diff --git a/calc.fjm b/calc.fjm new file mode 100644 index 0000000000000000000000000000000000000000..44bfb2ee51be3d66e7e6a53ff1768769b077a529 GIT binary patch literal 219306 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�Q@2~|P- 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 literal 0 HcmV?d00001 diff --git a/res/breakpoint.jpg b/res/breakpoint.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1344b69849ebed3fe9e001afc4998cd8f2a7d65e GIT binary patch literal 129978 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 $GZr+2G&QE1^=rs&XE0_e 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°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%0Dyd9@YtPD;r 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
    hDoV!y~dxF`+QHG!=cN!cZEZU7{WK>uhI=TW9k
    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
    
    literal 0
    HcmV?d00001
    
    diff --git a/res/calc__asm.jpg b/res/calc__asm.jpg
    new file mode 100644
    index 0000000000000000000000000000000000000000..29e7481979aa1f674dfc6ac735218300af172e2b
    GIT binary patch
    literal 40672
    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
    
    literal 0
    HcmV?d00001
    
    diff --git a/res/calc_stats.png b/res/calc_stats.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..690437754b70bf731c9b9ade47a7a96de9bf7221
    GIT binary patch
    literal 139833
    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

    `w4??PlKF@s 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 eC2IQR6b_7ko@Slg6#&f5!7VI` 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

    botCBAnl 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Ζj7iZeK`ya{LQ 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%0Dj_(H-ASJ1 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

    TEOF}nGwu1EEa^A zPtA{;4MY2c0z(-?0nk%7HEN$wk2H)E^_+zzyiHr++Ilft&M2&!SnPAkn08iFI)x~r zxCPp^>(26QSzbc1E(5O^z~+%emnaM&#TA1#$5P!FYP~8*x}`msi#enVyTw)&@R&s8 zC_RyAe9niK?SyTK=!a6q3mGeZ&;oNX)WS_>)_A1!bVPrUTTj46J%lLJ-o%=ak0;1n z*h*wNjOe9$!T)ZCExx?vq9WB;_Uz&^Zbj~*r-FiPxGXnC*FBC&ZH<^*e8Wuy0I^5{ zJ_KdWC0%D;?&Q>B5ol7ug4l4%W_5MRiOMUOa-HSo3+w6}EKESjq>IZ6-|R{*20`WL z2GsB((Gy6O&W;~J$tgvQgLHr>%Qnl~*zT|vr_)xS6*UQc*={~etTTvZD3z!Zm?z{w&bV;u zN)T=X2+Y|g>!mH$YFYhQ|Q49hSo4nUJJlO<5@yzZ&&-RqFXuS2!!IP~v0Wl4Vk<7S@4{p{m^ zK;v0hrY$}LBucQpchVsq^0`t{bxHml_P zmr1OJ%KGTfu7&%cto(8&bA1D8Srawj4OZl=;Lh+M6LKL!4YBQt)p{+`Zo#R-Z%Afm zRt`{Cs>AF^?G^BGtq#xW>FNU%0Dh4u;-wW%IYF(cnCYp-jU`yawInS0hKT6rgHawu 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

    iDGSfVA(WmZ;tLJ>k0RCY;KsR}8!NA4BP?fonv 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%0D=Nlb(7iIBwu)lYC;zDTK7R|0V=V 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ഏz-vV$^c!v)A__CffV6kU=v5Q#Ezi7===q;)G}ieaKmyubI-e4@yG|~ zrVNevSR*i$0y`E6T7Zd=#h{D|8?cebNv$dwQeZ~Cu~|TgtU;1Ty6H&9fy=D_jTk@n z3fK-BKYjcVw2MH)B%q*Y;}errMd+AVJ9~c&i%ZQdt!?QU(V_4+*Y-Cs*ekY&SArNc z3_K0o6-m4(VFrmuV_Y$J*lIDMfEA~vD zk$oh=|B9KdN@6TkyvVOD4e0*L+Y1Sq)dfiE>6P25oLM5i{-6xe#U`Lolp9TLL_#4J zbLV2ytJe8_Ls@tbw#u%K2Foo5S;U6|vCnXmDqxv||Dn*ZN&PY(;$r%dKrs->X+UW< zsvOS(9~c1IWyMj+W$T=4m8<2w4JXsR(5cp~GaHR*nc&vcPY^F6w#{g;zZ;6+9@v}0 z4cApgg@Ilx06H$r=5b>P6;8uw4WshL=#yyCuKUsvU70%N;Een`Sr*lI^ro5*v??BZ z^ci`~J{En*H(#3fyJSmjlC(%9@tLkUDvZR5>vw5#2$;B%pVvc&qPCkBxAo>Sc@hc; z46Fpdd!EeZNkmeaK6_uR*1aFk?^U^TX%PRxPZU4^Z&?`Y6{X!#3I&)0qH69uecv;K zcZ8)RB{qYamKEjb_TT_0*JqMHOWHP=u0cka0?EHZZ}=X_q~}OL=ooJKXqEo962e4L zF!8t-?HbCIAyHWWUlN&#%up(}Apo)+9~_)yYlU9MaA3IyyuOne$E2mV)Es%aAPI%j z!OlRPMJ=H`$}EVA(kA6MUq*OT*xOsIDgNu~vg8$8$Gwm5o$^Lfe zfn+iTt{;9tn}2v~2g4JOcr>KY7+N%BaOC(j<%ro^;6GAJkYKZynfPQb4~e#8n1tZM zRP50i6-w@*OAwL5?>Ca#WPfYDDD`(GIc1Rd6ZsO192g#>^;rNuc}8vw+ADgb3~dHh zpXCG$Z8B{1HtGhPk5nzV>Oz2#_1jUcvS*k`#%?$p6W`*q8QM*}=H&!UeZJbXZ*h0L zflTUujBm)$KRLE)My6PuE_f?OaA@{sVBK%mfrZ&X%{&q#bTfeO5SOXk#)Zk zjN8d?%X`YTx+_7)Z*7t99UfTeLZ&Gz|Bw^7x&xtJ2kbg z___CW$IQHaYbI*cA2nT3d`^a>NN0)s*O;P~@ZJHAl3CKx^;PeO>wYwek3PT2(0o?^ zCiGdjA{@45!6s&oik|_Wl|JDFfC-TK!4UWHzByng<(FsqK0wSo98K07L@1Ot!=Iq< zl_mW*+pb#38mMmFDZNBQ7gYx`NR%CkJ6bxMn6es%7hJLdYAS>w$b9 zi98d^9AmXkZqU@v1K$4>n7DSNH$K9GI`mN{%!=YzNTDHo3WK(X?ml0Vh+1xea2(07 zD#VV8zZ1kqf1WY$z&xA^wU9!&Sdh?@C0BdlU{aA_G7yFntEq9hJ=h)@0)>qaCq@TkNiENdVMIQUxn zcok0hZ&H37c7$3$!1b97BlMsDV!YAdWd=@5x$Wke4Djuo<*e$m5Wd2U;M!8&b(ozP zsSOoqT>*@YYXfR& zo0BwjwxQJaa)DX;TtZ^H{{;Tc0zhEWjV3#vL8zmhnFYVA4Q8u* z(Cng!&>Iv%gcMBM4;1rLT^6#acS&W4cxyxL?q(pHXL)O{iz_vM zc|{cmO0^iKzJ{kn;L*azQBthXmCAM(U{MVYX_1by-)jV#A?)In6cW4)`cG-no4jS5 z@vrERt$j1?b)H*9i6=HBvZI%d!#(<2`##>K?-+ld2aN##)_*?R(gc7tKhn$&P1H7o^>gE<`K;n>15XN@E%x9ZDpY%NDybmV_7y1U)cVKCvs@wd|n(S|OQu5C)< z)*{&2U?CE@NYv?_M%j%fiMr zBBZ6mA}zxy!4b%b5;)S8N8IR0?)5Lwn0iaX=o?(FsNOMi%%{Yp#t>8tM_DHtoKxlY zUk0H7FkD_1Gy4vt?%gtF)q|{oXG7aANzSL2!fd(@k|rCOzDMD0Xz1>c{D2z+;F9aZ z5HQ&)nXIYOc#zXTmd{;6EijTYYV0ZP9JbaOvw7XHS?D*dNj*QL{wvDCVN!Bf4DdcI zKrsh^&N?v<^X67DL2dbDuG{dA`8YB%kOPJ+l zh15==GxOfFU&GWc3g0Reh8K*4&ahQ<-!?8wDQ|5}ts~Fv5zL7g(SEyRP}6|SpqK7j z&z*Ry-#IDn-S(W8&Rw*qCppaa8OF>^sux_&9dplpCz!vbf0y%HjbG%Q>_peM+_^jN z`JZ9)w!$S+k_E@5BxXu8QhQpHiR+X8oZplRt#S)U~B?IwHvz8hX5G&K_VSb!^)$~|* zd`qXsd9iRmeS?5UxK8ukYzCi;hK-91SDqR#KmT6NvRT=hW7#lKDyP!L0@JD(-nN#j zt{_!F2;HNG+vpb>gw3@2!Wg1O0 z&GJLs*ARY#1tcy^D(GGH9zSpL%LDDL1mp3>T-BWFD7uFQ;?1m+`(YH~rTk(K{KpKT%w_ zQ6je)??m^p^{X-Y8X3Fdw=BH?mkrWDy|9+n($&qnUOwhPgD=N&QG~_~Wt^rchW`sX zK*hg7;6-vG+i{K3wRBh!O;@g!+qoSrG%UzytJ;)3NMUV9O|aCwT^$IG)O?*_ zO&SF<9i>sJSkFu?T;;Xi>jk2m)k(``C0iLAJ2+lTz}ay1mGH&h^F`mJnqKKW&h&NP z_YJ*-Gs`I&mf;zu z;TpE#8^+-r*5Muh=HVXp;U5O#AQs{wCgLJC;v+`lBv#@jX5uDx;wOgUD3;repG)W5K!O zI@aUsTSzCr?n@zk_=EykSwf?k6>$y)Mr2|xi#VhED z63OG9%%eX4s6S*<1xIMFXl7@nt%9BrhIC9vCX#33^<@31XL;Ed4&k50m}eZSXBX^a zN!jOlz15Bo3X+4Lo#-2Q?Bjpt98*XITv!BozUM`5=ZxOAFR3RBp=FIgA~tw{p34Fc z!p4$t9UXI`nR^FN;0IdnXigD=rF^xnil!@=h5`9qj%8(>aG&3ZphJ+1pzvry?xb{H z1f`U}Wg2IVcIu-dx)ga6q<#W!I0)}pcY0Gd4FX}lj zY=AibX%XS5gA)M~ZffcCfQkCsleU04z)0))oE`?)g48kxMA#E#h^@fdgU z5H2Z@?7^mO(#nnfA&ba{26KZ3KO39K4!b$FAd<+Dt$-fCDCVs=1G3=1Rm_y<0^by( zz}nErLinQ=VUPlBYAl#&WR?TaK&UQ6Iq$CR@?M~oQ4hXWk8;?eu!17wnzQ@agJ6OJ zAs~s|P>8rQ1^M=ZJzL7!)3u5jwuZ2c7E;RXKFbd50<+j|)@B4B2>_a=Z=*Kv3WpYBCV8O0QPUIp=>qui0|!s)gkU!TF`*=^01e;&BI@M^ zklOnQHkg2&&NFV90F`o)EF**%H=SJW10lzv{v`4S6p(6k_J0qeCD-s&*9f|32$!H` z`#^%$F!bUXh;Gq>Z~q_?!w)G?hRu#1gjTgZK*fS`K-cN&lBP30ICZ|B9XhB#2ta_8 zKmdJkHHI$_KA=onUv>ls_?!P6c!7nPmuOiTujh`v0<1*9EA1{I^pY_2Mj{Kcc9DhW zsUS%+q9QRpd%ql4bv8J1%YCv-e}zoXgAi$Y*l>D8gAD}z?m*Y2H7HG-XZ!G38E63w zFB1a8@Spvj2ho5DiAe0A)^ItmZvw9(fWW^Lp=m@^t2tlgUY9##D10pcSQ2)BgJEBD z1;>Lu@r=4??Yu9`J4kk!tNFGEeWdbZ9gk6)S7)f39@CeD7Afo2U%dvRCe{l5*&kVo zA5Go3{JY-+_GWh4_x-NbGh)8uR{b}i1yE4_8u*C2HL9l6hikhmr z%G&Ds3L7iSRVZ0Ii%UCj(4eq15CL#7_eW8@d7G=e%-rn!3>_`qI#9iE0N@aqJl!3& z(EG4--2g$yjf(EQ&ff0+4j(UnSy(V|9RM+qK%_3@Kko{_cn^euQi7n@u{Hx3IN+77 z+MR*FhAcpEK*5270Xus92r{I|kshnv!={a-$}|KNG(g~wL9bzO2qfgCAm1qmy&4=a zaA3j8p+t)sJ&H8x8j}kY7!b;YpVFy$5-K1d6-mJc3<_jbli*$h06tNEtrV64wwVSc zQhf_IuH3nFofTq=vI;kfb*Ckm$%GdIFMNwQK=28lIa3(_7ZiXHAZXvolq*}ljQLGi zlbi`02r$9q6R(^_$0c2D^TKux$U;p5VQk7M_DuiFGg^q+Y-gX8E^Xzv?S4&2CukjX zc;@BIn>&AQ*tz6YUtSq5&stX?L4Kze)f1P88O1!IH(52|bA zIHj6rol%(jEXzxE)oBL>bqm-e-fTtO#m9m|H~`dZ&`n5Tg%(~Yk4Xh2G(k^s1K2cHP=}4R z;E4x7fRO$$leJJn=FQxXH*WW|naA%M|LoK2w^6%9GCK$?_ZTB!r26o}JH z4_M{nUBW3h2xQ51IcBP=uF7hwU_cdWHEKDf4|$6{P~u{KoUV&vr6gV5Itz&81kboN5N9eP+4S`&ruD%Oz zyzVFBF^^=HEBt%K+i5x9h(6nS!4&BUk@v7dr) z+!z2%Chez>5C9|@z{pCT9NBOXN=9$XF24-_GlsDRAjEe!f+&@}zc~=VCngHBz>AMg zRU&6aU+hX+;rLU4OCG=YL|9hgJEL?|1c|JqS2)|INkM9fX4sa79dv2OwS{!dYOl?9 z+aB%62VM~g(Gx~?(}chu2t*b%l^QCgaKhdoKvu-t_2MoRgvMPT02D*|8F&3%gHd&r z3wVIWOf(g%HG8j!>L5Iy>UQa-pN={_9R8zaPC*O7W64Px5I_UEl?(JfLT@WgJ;9OI z4{9Oy-taW6?zHRbrkiotdfK{21y$>i{fdjh#@H9Lrkhmd4DS%I?TzTqa0P<7;WK!@NrYw~y z2S9*;N4Qbv-n6%;QDJ2iT%QL&2*MEBVGwbmSOTyCBK!~xI1fS*0fYmOtVL~ix^s~? z;&i;)xP*CBm>OrQ<|f~GEnAY>hp(=L#3Rm-Yn=HSzF^p$YLqW+BCMhnuZYD4s)uku zTfjA3!lwRF000*8Vx*K-G+Y2g`*8-AIHdLCXq@W8IDd@SO&& zOMF7e)B@_$u{3=G4$5jkn=JAf4L%`)dpp1bD%HU(YI2jD?4&W?#3KO#AOasMn|?+_ z0dyVUg+nAG?0R9Zb_h>~Nf=iD4QF{QX%vr#gX|YA32~ER48VEN8^Xb2qY;-RQ#N`T zpKl5&nT%GIFs) zj#JnlJ)Z#%OO69aSy+qqgiw$GP;68~qd-7WhO&TB5euye?(+>PlAxMXat z%g?rKgN>4@6`=wpXhGfoK&rA5VpLD9t6lH4!S|)%1Xfhla22m-o zDOQ41s*xZkah|>6b+VML>{}YkI>}bk9rvt4WJz*W;zW^(1f9cP^g>t5s&=)kC0f*8 z`;Hh{A*R!y-csBu*F=Q2wY=@EZ+{C0I6h~$!Feokfs5SaD%WM2^+P=VslL+!;+nnMX5wP%eFSY+g|GLP0etd3uYK=}-?@M{ z4eh0j)$qWXOervqzj$jNDP_w3=6AsiPVRe!nc8J2I19e3E*d5r1`KN^RBVG58emb_?#UkqdKc9sb?VH8eHiJtt8(7z*CW<~+Ga1fa zsuAM6!%Zpw0h!ubwYksz)Fn%SV~4JF5xSgcH0wev2%r=;0=5R5Q2N-1pkk)yyP!?y z@h6g$l%NTDLQ67$a9lC<5CVkmh)dj?MLUMk#xdeg%fZ!(7A>2Nrg8ClHpK)daTlnH zt!H)I6u3=k(F&YWfLNK?{qT&=jyg0|_CyY=%-uz?qr$!OdX=Z6R{u)k0tWF=h zy>Hq7EL>3aeAI+|?lI}4Fa6qPMw4glZDe^GBfd0RZ^MS6Om)LX>kjVI93N zf<=ToBp3!wF-~{VD4%nHm2fCHg%bd9FF*7j!eA9G_-_1T1f4Jnh&KvJ7#;()KTI+I zPM%^Fl7~CS7FDwHgCUqAv(a**B1MI>ZGfSGVJL>G;w0meFD?-@R?#;fauqHD8J;H= z`{HsMxMzD-Dau485D^pv;1GC71Zt*aTLD0JxEAEmVH#3$&QRT- zK@$lkhzmf7UT6d-mIq1XiAO|3YPK6w(iLB%GY@rhZ}u@L;&j<&JnG>Ih#`xQhZvG$ zfnahMWJK`VUF64!QX^!GGd1d|;}i%D3EqhK44(U5*{CGK&MTgjD_p&(xrG!$4a zx8o*anT+ffiEGyrogz7eQW`sAJL7YLbCrVd=qy9mAG-mA^X4r0rXLw}gOspzJG7RN zW)cnK9{_-tb7XRrl7xij36O~ZOvrc^=uoW$Ew}?|e}a!tqILa3R6b?@FkLa4NKhn( z<#}M(m8;2`RFNG)V?hi_fD~XA5IIbG(l;)`J&RxsMshCLw6lIR89xC! z>JcEeSsISmo*OcbA153~gNuuXm^T$O=;Cb5sONA zgiH8ym8pyv7>Cf3oVk;X_^5KNbZI@B1Od4@I`W@KiliZd4Y0}o3$pn_LV%ke!y^es zkt^hOZ{RC9Q5rMSH66*HLNFu6cbrX75F0@R7KEC01ZQrRivr;p3Xz^d!i;jjaHUZs zBv_^@*^{*(Z8W4*e`+PSW-QLqohCVd?nf}dBLwoPb4ac~n3U{VeWG_^rEs{}qXB5wAS3=A?z z!BT>RR7o3QFw&=^Cjk^y=%blQdBMYYd4x#}H$h(HAcZ9V7|*Jy`Kqsn;3P}hcgazk zR!9UuI1|s88g`;g5IJ2lVjWRZDEdU3*70WHp#aV{776rbqd_0qq$Rvyh&A(x0qC8C za!o2iV&+GaQZQB?5)LW{iM&}PP=XOaNGPqRCNlv#S^u(C@Lr*Lw6b{Wwr#Sp=&J2uGHG z*B}IuK{sT(U0-xtgnDbT6P~a zk$&W{Hx-+$wDTI=>T%xsZpMVUtn(1>H-aK+RV!=%uwJ8OE95;>@gPrg~FUtsnl~}RLE)!r6P=RxAay!j7ZO|25 zi6yPU`x?4wBmq+;X;Oih^t0WzSlR0sLlC`sXtuJ8zzIwVT6dhdmAN>0R`6J(Z?(R> zkgFAnU87Yot4p3*riH=U4=02+q*YM(dXZb`H|lDmb19wWL8*|0GB|ox+hR|9+j+D( zeQlw@JIuq8NFwA%B13Q`@aS!B;VYJ48bCb%M@H1XOw5H`!-=#p#6>W*QZ$QKEM`7= zL|a@M(3!4*NmNMW9aB6DM@&@kJ4>MW8?HtMB8x;kD=UZbFq;RmS|`S8269HT#Yyys z^$~U-+rxn@$hswfaM+_XjKPQ?UCF4zM76PevUPjGB6avvKLy7(OndSukWgS7COi>x z#mL}O3pGpzq#}6uq8pfKxgO`p2PeVI#sHYe%7aYHwahA7Wff;kU?uju#^6{=a7UAI zT@`k@Vz6J4M!p-`9}{8A&FswZARdp9n0UlVp8U+$jLl>iib-Hbf)HU!HXX8D7j?!y z<0S{yoXzR1&gXEY8raTQl+0VuTI)LWU6l!?0%w2h!u zX>}_I8to-@`x{QJ%(X<(e2_5ydjuCzQJ2;QnA}2Z)ulyE)_-=);J{`3j2cbRF}7gN zzWfj7D?#E1*CR>OXwY-H6b-|C25K76W2|-Oi*s4fYJgoMhqQWaO--S8&>0ve2NzO@K{D71iR$ogc|b?8 z!Anv2IAK7$X=QyHY(X@l*}sinD3`ILg%9T$pAePO(Et!=og{g|(k^$`ZLG8FkleTR zX5Q1>&vM&94XIRIR8;)4&6y=;vlT^HLPBiFU~P@!m?CmkBcErmz%AbmMiGOg(S2Ak zCp2I3hGQg=;Q1nXdY`Xu1myAKFRqGGg|g-rh>N>tJD?9M6@3f=7|M26!4^i1a~zOr72k_lP*p3^%*fkU3;@Jy+uTT+bt3Xg7 zFos3qk&;vn77c)7sgw?=h{jGl^F*jS0-@}O(` zmKe9-V6~X4`hZiZx*@vjK~c-0l~jvrD?7St(dw1N!2ttG@&%w(iHR$X4?E>+fZ$`!O9)O%BXA%91b|#R z73C$TC?|MQk{X@)RL%l%9djZ;M2|wH0uTa-)T-1eg{EA78bDC1OVU`E8cZo*<(-r! z2ObpMVg!J27;53mBJyywg41Qm_jMMl!|Eo z+W<&szdg1yzzP6@F%iY0QW=W0X)ue?3C)i7FVl>-O>pw^wKz$+saej=jrQ%?mER@D z?VMBU$-$e!Oi-X%UN7Rb*lSQa3Yeb_ID^sjYIl0|>)E$={~msP`CsHYNa`I+rEwGn za%!T$C14ORK!LhCk?ODc-mq#Oa4r#ymm{PKY5^ja0t>@VbkWd^p40-UsihR0sSxsd zl1G8ql8_LAt|}zpx(sFPNs6BWXzrg7L;R;i1QsZu00!(KP$3Ey*{4Vf;L;*8OwKrh zfb)=$O^Hha7%s^XwcL`+F1`E`%rFbn1{7r< zF~x{12?!iOAdx_EawH`LA^;Q-Ko5AyoN~O`;v8;h1mmRHx|vNIJt3k*lLK%%6OmRB z=tveo5%u%{x*TZ~w_yBXz)V{FVb#)X{Az|SP_5dJmnItlW(jKU0f-QN&=Mo12LKfn zRji~a@c<4rotD~at-Ti8Z09RrF8~4vV5QCu31Aa$wHUQU;08$3333lOGXMj%xJuV*ro>&;?oORxr=bn8w1EvN4lzo>L0?@q% zEp$)HuSP>hWnioPC;_ipV1ypk&jE~9_5n7BMwe@xf_<(WevqRY3`c9tGfX&WQ^DIR_PQ;EyEOb*pLqAan;KGN%a-d-DTilVhr?WIuLRW%|_-g-PZ z=7m<|*jJwIzR4$8i>N~ac8*|nk1-qn@szCES3mhdI=t z=FrADMLLL#E{5TV zfe7Ok$yi1+o>4(xTu)EN__Hpu5e?_ilp3i;M>n)l7Z1r181RTjKmHMrffQsJOE^fK z*|8LeG~^-~*+@s?!HI>5q!K3ivr77+kBxC+*&aEF+9czWofPFLNm)ua@(o*s>|CX+ zrAUmhQV&;TpDRsSOIzL&m)XM~>Oxtt@bH6=xy-}fR!GeMK&EeF@vB|_DA*`rJ`+iHT$NqSc+3D8ItBY+1bwOAqSkoCO6w)S4d_5aI0e#>|hDI5PWjdlWQZJEzp2i za*z$OiXG!&7kdZCVs&kNxNP`pg)?sOQ8#Mn>SL!7#LBkpe4muYVFkKbGZ;g)St;!o zSW8=5M0SaZJzHUU+gslTRa)p|>t5Z`I&yySLtoshI#C!`x-u87!ga$)H-$*FLx4S5{ z1AB*i-fWdMz7+m~kB6KMT2fiPNp`M8rR+N{JC~0dEv|fdtYy4@nNrZz@tWD(W_~nr zp$e6=b6PgfgxdLUdB$U{?rg+6PY};7hQpjUMq_H(8G^HoA)M!I9iRm|w_|8@k{lgF zc>YbTdcL%x`}SuEPrB2gT;9=|xy${rMej@PV4oV>*>34jrSW2Kr}n7y z{h)}U=j{l8aKb*lLxN!(Y1uZls?Fs8DO2Q~>=BjE97?<@(7^rS2NNr*uT8L|3D#3% z;yd7K6>*)pEoy*+Hb)*VF~Gz4VQpU=<1mGCS>Fp~RtI+4ZIyMFpE~3vC#<{F#)FZw zo8M`9yySsJHkGv;L#hIe$r)9j$;S}aU;nz~Np3F6W1eO(XB_ECzvWH!hFhlhd&IYu ztluoPTBqYi43y36Jxx1xt;>(G^mDq@IsBg5CR5Ov{`%S}kU=TGzl< z?r)B)Ze4qJsHa`&ffu|ee;(Xvo0;T@=Q&`B4OClWuz!o!tIXG1=9ZV;J!qaX&~Z-e z;~pKqjc4}aXFlCmPg!?GZ|(~Joh)S3Z(hAY9{lWSZ%6>kMi>Gn`&X+gb#r4K+`l(? z&k<|m7m6Ebya&;Mm1^JHQ=X;<|F>HX4p3YaGpg~FBa5Z4knJ0o-Qj-VyTgCs@2^4m zl4ce4k9B^7Op3wuu66!yKLze{yY~6lzZpILdCtcizA8$kJWpdf&fZp!)go{5ypM#+ ztL!%J|6mTFTrTC@|^ z(qOQGVld8VFrdKb1r3cj&`r}0N;b5I)Nqi`dawpDZ#QlO;>ykjZIIt!NZ=-I2>DET zk^_^XFb8!og&0bStS|`w@6OOz5Ddc*fw&CWW{v=LF8Vgk)kcm0J1`BM?V@CF^g^xy z(W?a2iVcx0Og_-o@~RDM&J@~^<<=ktA1}zb>jJY#@|3I)#n2HS(X;Z+#Y#i?8ZQ01 zf&TvM-@4D=x)0ryDyK3r?^3!1wrD<&lNwY z4G>K4!fkzKtfy>B6%7LaAki3)F?!wz1eHpF z=1cJ!F+GAU@eU>fsZstGB4g_C^fa(_mXU;_Q4!Co*pQJP>+xq|Y!J+b#Po3r4ZI}ui3svbqK*~;?+x&gf^^9>UT7iLjhBFL-Reyt{LUUj zQY3LE8=1}Ve##u_;L5NI8{x4-{%;S!F+H*jCXu3mwyFbVGW150Cwo%=jISYn(I>q` zCx_A~kCGnc(AX#tDVx$MpAstNqYIOvprX<$uM#V>GIS=QD7DfnzY;9NQY^=kEX&d? z&k`-uQZ3h#BCdu23QcS3#97#qF6+`R?=lSlr2$&35+dVb@DeZsQ!oV+ad<)(J_7+x z=Ey*+M6g5}g9@VtQ!*!$GNWh!B0~Y@vOCnFhLWLpj;At1Q#41Dx0qv9(n1}gg&`{A zCcbErKEpu&GLkfBlQwJ9hS)_jm!Ml*$O6?W)WSg|*r0jNLLyPiHjfiIlXI0sB@7T^ zk2>=8v~ka1^8nXtresVxvr{{_Gd|{mH@Bc>zSB5mOM9{~)Y8tq%mXNh^9vigkCTM3qC;{`hz48 zp&44C6)03*c8Y~4^d>qYywqVJ5alLDqCQL1L{Ic0Qi42s?>vf=3*;d+Q~?nxp(P9f zCrai<44^Y#<`8~^ALc?YEp$b*VgYhgNC5;u*i%DC!AP%wJZPf;R>4yiG&|lBMXwY~ zv$Pcd_7j~tK_2qc3^4Nwa^gZ?f&ms_LX?F(3da>-p@oE|6|kfd7Jx(1MHPl)D+)(A zasmRZbkE*`Yt*3`$|DJclrCaaJG4|$7nM=t;6D-0W}CjR734QcrzwaWC<$cR9Rv@b#)9D;7m+q5r88~6(CWopc%FmU;`FQc@+Tv zH1kB7AvY5eGs|aP3_%j&0byax*BUc78nZ@Jf>131bKa2*gycf0bXtKyRB{9^WK&>I z7G>-53Yy~!@S+X8BO$1uNz|o9umIxLRW`iyUC{&|Qk7o807dFXQ5pa^5+GILH3=9b zWtWy|Yg05377S*#4N?P3yfk7f;aAU-MxmBoDAp4&)>#V_TFWUw(`PF}mJ>!+E8e7O z+tzI-^B``bIh$eMC^b9eB4y;XW)qfz+Er9ZB2;%4bF=_KE+$<0=vMl502WkVS3z+R zU|8N(awj(}1E^QavoL=)Y8TW;K%z}YVF=iwPk&?!B*Y^IHA*VPSRXbCKA~CvrGNn< zU``&uPoAcaEc7D?;7k+&b4Zs0m{SVamU4%ec*$}R_(*tPRuSGLRTdN*9^eWB^d<`S zSPEegN@is@Atn|@aN~7Ur8hvulRhf6dHMBCh*lQp;#?xPc-z-~qmlpy6%20WaZqew zeIsVNMhSRyP8uLUXoP=dbX=B|PMi36FMw7bjxP;hmJ^y!8-T=rUBG>ZlSNL~m$E?9$eSceBM zNEm@qvSV!Xh(A`Lo`^9wv^HFY=LePRa3fQ;jMznYSc<231wBH4zW`SM9KceQms1;v zioY0)x7B;HE{eqsXKXSYU&g3 zbyztN<9L^snVC~3_P|Sp{6KiBGZvI3F{4Io8beR*13104nZFsF7v_FuMYSU5SL`Ai z({qKk06-Tn+#ijVjV5M&_c0yO^_q(fRhw4#`8$CN|EON~Vm;jQX$ z3RFzu`dmZPqJu#8Wl$r{e}0Ih3*vUrB3xr6r~QYTKc-FNw>3o?sgoK$Od59DkD>Zf zGBo<0(<%Fs^`ISE$x!AhnBYd(RjNVi3)yRV>Y1HEGznILqLo^$*P1cv#8gOB35+HJ z27-c|MhWiqdcUR-GC>T4L{)^fP*|cs1a&{?B0t7Q6(t2OiY5RI_!oe)Zs?jkM?qOC zWsfi3XHJC?ODBc*I+bLjUyZXewBH8bv160zz|!wp!{lO0W>Is zJ1{G^auNBCT+P>fCNSeBgq1aj6IKtv91dd4H^T``954pNM>fL%m`1Q0I!B-=t@Y1;T;=-Kf^3e>FCEkA0JH<5HPO4%f1zYV2WHbCTuc)tuzVY4 zHh4TO3M+b=`*IQbmuo2iUST3Zd4&i$!L98^ax&f5e_ar|dw4*6M%$G=uNx6Wr^G|Z z42%X5RGe6QR?xpf1kvlz<-|r&B{gAsJcc_uZbZ_D>mRVYwq>TaRT45>~-kT0%2^oP**}+HyN6k_KIs zqT2_0Kybw6nTnEj{^EPy=ieAbs=|4z#0eq*O+h78WA<{W!Xxw?vx43uVpOt8f-M&1 z=*`vZLWt^Y1sa0HQw1VOMxj8-9Nhc%>&E)Re_rj^UJbVd za9ixjmrk5iJC-406aW#N)Nrev@wBLBwf!biWq=ISv6tf5(=ja6Ihree?Jpn0DLc5W z0V@z46dIc+0672@0N=c$wy(gCImJr5Wv6te+jHx^^-}sNeshObZRo86ZbR^L9Bb9Jl-bhHk>J{x(sdf`xBSw8AVC=p6N4ji zAS5!I&L=b~ol>jTD>kd$a=YFyI4mBM%jPpWtzNU+?l(LxpVRC1J3g=9^VbEW(*V&Q z;gz7+VN=1|VxQw9WTfOIWu@gMW~SyQXQ$^UXsBqWQ4(O2lBsGU5i9FescGyhMZpr3 z?P={TRB7%}D{WF^(Gf94EH9D&@@TX3Gjz1{GNJ#c3JK zKy>KwBgl{ylQL)0tZDNm&YV;d*gEsl3D0;_gi5m&@ys73 zN6Q2?%2OxQs8Xj=t!njJQea?o;To_MCBC09+pM~3_AJ`8YS&t&_qF1b0Sg=~_#>sG z6Qf?^P9Xrn0Rwsv-NhR8tIbH$6CV>JH)`j-@gb5>}BiuGw9HwM~5uH zpg{lw3&aMR-1R7u1pxs6Jf=d(D{jP|ZWDrF005gK1P;uuoyI|cnZU-4FtOhl(md9)f@Y2P`1tMc@f};UJvh$J~z+B{3ic zQBHUzmRV}KWjH}uR$fo7G2!K99HQ3*GxXrc-T>qQWsG?)X1CpHfjw2xd#0TSXPC5b z2$pS4nNk@NrcucM3Sy0TCFq)N=5?nciaYP~hrUB`L|al#UpoB|sX0b+99F`!@oLm*HQ0|qEJTLbt? zvE634jlJF2b36Sj;ITCzEQkQmy_zWoqDFUsTA_Ua)5#g2s;@CJLBQM#uRKV02(WFq z;Rwu!;BvI>2wW=+c&;1(M$)oCf~7ZLFcAxYE;#_3520NE2rTZv1E52W1Ol=j;GLSp zHJ5D_vMIN4)oxY-YrlPTwmeX_+usjS_Yn&mc);u$dTu!41sr%_*#{6z zgtbGU?{-oU9I$=^?;A*Ao+2if)}c=U2;$C$lAs;`AYgp~kY5r`hrG3I2VaaC*)Q6( zzXWmrhdUxG#R3VKpaU3?L4gXMe+;Cc?~(5a6ilJ-=tQ9y`iFyjO9}%Fq{6ZVh6%7+ z4+L0fK=c8CGk?Gj2^GYh2%O1>-1(apEYm+5`bT6g93kJ7sDRaQuZv#%A{ce@HX;x} zXG7>tML2^%VKKlj46H~23P6AaAfSS)>dw^qqW}O{N_F)5D29~5DDw)P7(}P&ItPFX*&wQYO;bK)sPGsBTEHt7N||( z{6};~_+t_%cz`Alz>#>H48{_Q&xIyVhD1=}$F|uT37+DUb}B#tb96c*7891Hm`kQ8 zv_MD6GI#1>lkc{;3S;y$M@DFx38SbA4INXU_&QDNa0AYr^0cQu6^HvkNg*W`s+jAc zTz39a)IYG$Ze0N;JWZji1!YAbnygIIQnx}P)Ny!`Gg1>mSfr$I&T@g1OCIN<%0UpR zZ2D?r7e0xS7}oBI&Qjh(iv+6Hd}wf|gz9Qw=ejzwNh@iEUF)3sOXWS&LWc$a(e;?hv;n;&1lHFR>8uR!wy+EPI{{1h21DuDT zj`21m3_u)lQ^P?KasZxd;YI*!3V>R!tY;l&WUE9$W>SEJhMU`R4$xZH{-y!*t8kTg zgHr>^iiUDLTk>!L2IG^Y^N@Eq}uE# zD4zNBah>pqErk}fwn-RHZoQJy2mDMk(-quya=HouE|dWg$Zj4{xI9(V%K`i&X%%8v z)d8?@2?gz+$uMIek=axUO!&%3rCR5ct|q1QT92?6Q0bJy_oa4a))fRgFIg98JI2{? zK*y_7GZVYm#wK-qMH?mp3aeaNT{Cc5 zn@n+Tra9rY?wNQj7Eu*gcuf28hzK=oGx1WmQXy5#ml76itC>9iRofN-fr@?7q^-;{ z#(sHl#u<*6ht#{v9=qZezj!wXT8p*e&nq0VuTzdigk1);ei1360#P&KR2op$I*Vv& z@64XdO}RON!RhP-*+!J<$CwVjb<9;^Q_}#C0ihY%nl0~OM>iZ}cr6@P#;9d%Z~{8vXC@X)eF3*Ejlq_?+P zyDazb0l?GW#k2!}#$j}h`cB5urFVin7sKBFZK18DFJ4MR*}((R9^2wg z^c2^ZHA@p(amNc{$mmQ@fOEQRbsE0m@E+;S9lh1>G>r zNucr5#3k1!DaVP>R%#HJE^r_O{uvP^NB`iKk3r6g`4|fB4}5)~G3;Id%#J1Tg8L{4 zkG0sJK)jRQupA{hDh>F}i(do#|-&9HtZpQ;k6cT(|+JG7g zPTbz@SJ(_&{B@xheqn>uo?H-`;%&}{kRkLj9*K1S4g?@T5DfwCloRtImApimwqVBW z?T!o4MKt9RAIh2w5tNGHOf zB`P8rsUo2b45{=*8m4jx(aKs}x zhf5klULK}oP9|l7p{ZpB~Sre~feYNn<-6y#w12wr4C zhkT|)fPt9=$7ABcW;D$IifN*wd`M(Wp@9}^VkQJ97bqueE~aljCv-+9 zHiX=5rbJU*8AD+NoM1ug5tmNx#8Yy_GX|w|jVDLmlXRx1dah?EkcezbOK}Pbj+|Rx zz!e3&92YDQxrhONQosV(CnBI0S>PH{G#GQTCxRwuf{x}_@T4w`CO*aH&T$HyxJG3# z0ddeq0z^P^jO0B^fk2Hx0r*CDbc~NFKxhVJg!-iwpbBFICS6u2e7J#bDyWU#s29SB zMBb&lMU{XyCvZ+d@RS{cRTzQ3(qN^Ka6+Wky_v_SJz5q`^u)k-R;wYM?|EV+%0~WXg5?q&lgh>^=$BG_|c{O1xyoXA< z588#@>|BdV4g=l{1#W8Hwap3pedoa-RAw%Xb#g_T6h=w{YFW1BP07Ur!5e`V61Xv0pq5250g-784u@%hS^cQC z(dVfND~41KU{WNDbZN4dX%!eNMHK6&Mys?6o-sHIhfG8Uk=zjUBnwRdQF1CW5Z#L^ zLS0BuPZ~;|%IIa9OHjR-?aW>_s;i`W7h0}eWGL2%>RSOElotdL)XZqDAXgw zY*11X6pu-L$a0)h=|IV|UDcxaoNT<9qR=d^d7m%A&9&jwY=G5~d6~ZXs(~Vkfd+ym z1*@}Kn9d&UvUaJ_`pUD6sl{F`)@GJ3gqC|*(Wf;|D%ej_$e4SL5c*)6jnNMdX~@Nl zS4C*YCy7wmjEX)o)Oqmf{oQPH(CKxo)bxO*(wc4SFqdr&)BWvhb2V(r5DUaSW#c~X z;zn-YLTS-PWZnd5VW{v^|6~xXS=WD9P!-@*0y$b@%?b+5 z+b`{kw$Q0@HJTvtgv%wY!ODoJct>8?*D)1{0%6i1EX*(j zA2#M=6x^{w8M2$j>mEC*G90oZC$b|uvKAn6qeilufiWg$@`S7j?MRWL>5=H%1_Is6 zMolqaoesTpmF>prk*(^3Dywrg7^+h7mhKk*(R zgYORma~C5^_zJTYYce!P^K=yOJFbZ~Ex;MaLi-lg_e{=tNZW|ruUzyUQr&M@?FtuO zuxN=~1s~T24@x}b>w76e{Y0oJEoy`|5iGbyK1*<&x-*kL%rBf81^071|8v;dlX-^l zqWJT;N;5=9|8!`e&kZJ<$FZ<2=f?{du0Xi*5p-2N5sB*=oaS2>yI=ud&cGOh)+i%`o071n!tB#Vt?iDU&c z74`=GhO}UJ=X0kn5$w+?6g9 zbQ=*3UsWxaEu9hhl)|SW-yC!BE?h`KCqrj{kOY_9FEj!<3YvdFat50aL*KW4ueZF) zXeRM@Lmza01Gt<@B!TmHb0@fhe*_LSQ0}#lisUY+aoPyY^nNu^bW?zLc$SGN(g2$!MiT=QMb92bZSkxcuZmz4&c?E@q|&4n@$u9Mf$)N=JU_DD#qmu_ z|3Mow@FUyDB3C(Kh`F0va+@Erm!CO!!g)4!Ih5zQp8vz;Qh5}h5HQxtaT~W{URAKL zVu1GcZ13ovH@c($m!{%^!s3Wdo{q7kNuA&Km;35>uF7no)x|uDs0*h-_p_t~^r>Az zf%D~e)|jg|EJ2TYs-ya&*Sf8T1D3kMb(!a}&bnycL6hIQun&7TW#?=z#?L+A7}O|B zlEq$n1G7g_WD+~ISNka3v>Y5zpj$h)cYAXOyPvP+GhFDTvIV$%JG!U4y01ICx4S36 zI%ZC}w4(u?ySu&L`cuq23zl7x?!sbRi$9KHDU@;qjysC3AZ##Um3c1Ipyvl#Zvq$Aae`w2BYFRF< zQzH8WN72hK`d*MM)2qdP=;=;;aJ=@bB6mT( za{-(;z1DC2Nci|fvN-qB?2r@pG847Q?Lce{t}ak6eJrlkU;JN(KCf#&>$m-~N+>0m3g-!n2hC-kJxJ7uVIovt%Zi@WbnKlMWc(ra<<8@=Thd5fQY98i91 zCwcXcKlwL64`KP2l}j21s1P_mepKmFJLZvrdHSH4dpcM}5vMJOx`ipOD6 zxnwq*1?Tc;q)ws4YE--BcD-M4SUe_|&1ZC4y=J%FZ+Kijr`PRwd|toj_x*psK*2#m zw1fe~LnFlj#R5i0$RS9?N2Nu?A;-VxgW1~@JB&_7A=VmHtXjeFEXC-K6?dM_e|8Vhf@^bTY^mO%g z_ICGoAx1>b`FVN!di;FT{d@X+fBXRMgA*`8l!5*B@q^dU;X{ZKB~GMR(c(pn8A~N& zGR;aiV<0(h^SBIIGi)KdWHU+Oqehr9WzM8o)8G%cM9b>~&AS+#EE+STh2j%1?>xNP^=sI%WzSxnnf7hmxpnX6-P`w`dUFo`CSKh5|8eBWmDlvP-1&3p(WOtP zey6pZ>v^(+A+?>N_gUV-vl(CA{CV{0)tCD$to-*|4&)DavfzP(r|b3a=ilG|m-lul zFF=i7G{Zp=yIcSlJB{@7 zPe22OWq=b&6z53;c(iIBHy;QCfdBxAvYs3pV8G0D{|HcXPDvrqD;5WIRP?X`7BD~o zN8xz#fCePJ5lBH}m33BH%Skezy~?=f5Co$rvmY%Gd2-TU_aOjE2vqSR$0WlX^8f_s=gGjUR@^lG$T3Tkwf%}Ot|qgp*27?FWtJ$+@K1+-1IJ_wU7I1M!+D8K=2 z_eA4F1=@gEUzS^TnZrjO=rV~PFQJz(sA>k|=6x})P|BPUIo1G+zo@k1As{$4+EVt} zjORI^R)T>7E^U;mKe}UpS#(=N8O%FpOoHkG|3W<=MKok?V979w4YLWUUzU4ry3-?+ zOo>BgS_uL~3|Y}3OdOHsRnHCZfddjh0D=o)L?q1-&mDGDAqq!;fP=wsfKCL=MVIT9 znTQ+#1RyY3i3bq4F!d21a5#=l6OZ>}p&^x*kOg#1Rwyi6-B^so)l~iUODb>RfZM69 z=R^Q#79;k>0Z$^$D z5y(;#GFJ#A1n^7LU_zx%7X}7I3VpiU|5vC`LK7F zf>^3kMd$&~s?hI(C4^@=AcZ7yA@b{ z17#;S#tRiu!U?|S*gN-*JqQNShx|9n|YtGG#+gP_ziNd-sojVhd9s9HU5X*edB?Sueg zobaqT!A*_RVD&U7^STATv(=MT007f5RQXVdM${{JYn~>+Hv|Th@+cD1;wH=1DpEo# zY}c3*iLhm^d`K~f3s8WSJjzHna)FvW%F*gP7l(bg@Pt;(hZV7t50<)=3C9Y6#jJUT zVVTrsSV|Ha@&N&JCC`b+lPVV~6sZ6-KwDUqlo*WF(xPFprDtU2Sj8q$w5C<9FzMVO z!w4aC<&vybj1sS8nJtC_%L{#5;~JBME-nc$a6c1PtAJL72MM+d31C)=Oy$aF?ad8n zVq8BB`>o?Cp_X#sYh^3M|3M~vkPtJ~Lhg`x1~ECHvXu(!By=if ztyV;yGes@yA)){@bgjcBZgCyLuLybcqJSY;mxL$D9np-g=-e0Y7(mJfN>DE(((ehN=bn6 zDl3`iM+m)Y36|U^88q46N%}E~NoZIYq0}|wW>~`;7DvoxHa)mL4u1g%fB{IHRq_HQ zqdK}$VLWrqqeVcHye(V!PFO0!o)l<8%VB>z>CUnR;68MctW%9QzSbF36#YuVa^Y46 zH)$)$zC+M>DF=um|G3b{Nr0)DTxc%UsfmR~sqxu3$(ORO?NfXaLX?A-Ix1g-nq{gS zl$dr@4(D0VdoBf&hrnHoR?wV-&SnQUdCc(b4k7uRQ_(0Ez{?f3yVIK!c)<$PJ%T}L zEkZ;J6L(YcAPGXyG|k2hdZT1TmUQ`KIx%IA`u7sb3uvzwoA%5HZ zZ3U&<={CM|{|{a6Hx>xMVi?Z5aq}pby%%CyvKDxT4Y*+!d^-<>Hd$Nj?q7w3t8JLa zT;^{;q7s};0rO380Slm*Y*7aQ09Y(r)|PLlmY_BS@OrdvPrM>L8|KI; z0oH?U)LP0IN`Cd&4nO%C;^W2v+4=@2n zA(+mA|3hDp5c)|kCN5P5Pnfod518{2eGAuMq~atf`s+<|_fp=LJa_riQem8&zr-!r zkEXalB5`qzNOj`6bbm85$w1~TL-#*9!7d5EIpZ>yBO%Z`Km-ImB(V{jGcoBhkyhcV z15kvEixje|kz6yS95ExXn>P|Wo}I(0C~32+O0@9u7-3subBkNm)XyQY!6$qg)$2z%vuZf)Wy& zpcRXh0c$BH?83p@KBOu_GEo={oS^`)pA9^t1YAQlj5z{mHhGA(U=s)PFp1-xn&FwaF^ubQ#%63rW_-r&TNG@ZLXn%sqYxX;GoLN< z5ywHKYdNz!&_;iAfE5h2awM~bxRa6M#u%B$WUNPfl)0mLu_s`~Q4l9z3=?1MN4=1t zv3Q$-Y(H^I$RU`eqgs${P{<{i0K2*^HY1Tk5o<+}tl**op?DuE=h|BBQQ zgv_(rY$t6$|1E9e% zkj9>TM_sU{oAgP7Xb^eyx8iY0tGvpXyR~01f+S*yK|q;bxubK?N~|nPvpmb&=p6-^ z#Xv|koFGfIj7zzkOUP@8lVp-eycj~$gC=Q^m1LWSFh{x^Ou{V8TDU~N6U_dAOT%nT z$7I9M;YYvli@PKZ$yA43;R#86OwR1gtPBsnJim*fNvEYJks<`*L+R> zkP44d2*n&ptO$kLv8Ho*gEurEP&2ag98dxcivURmc=4+_k*CU(iPlgCn?Q*)V3511ALXnM zHNmQI1k9+R66P7b0u50StqTghmPo*d{S!a_IR#t572?}X*~Fym*bbuLhfpYk!thQ( zcu?ZA(f6!InFNd&^|$ULo^j&71}L%et4h6yHJ*c!?${1%EXf4hqA}=88D+{5-BK6oODW zy9(d zg>X?VWyU8+u*wuhWwH?B#DYIfkzT=6_?(cx`o$y_xJ1oWT}6jCbRCm#ISHld}*5`xw;ZyafAzrmbO|{Djsw9fQ8%kzrFU*D=&Wy}Q-I zJB!55z>$ypU|0EwqHY-pZ|Jgg5d~yv4wSpBh1eQ+MOTl!k7v7&`(U?!5wJZaAYVek zF|ZG+ku7cARfvt)J{S`#nV;0rAy+bjmQnz+f|MnI)M5(D|5@k`5n+`QTfztsg`ud= zok`LU>=G252Piok_sObo5sD%G0;S;=6*Lzst%WW5G!rASv)eUBb=eX-v7sd~z|@D` zEE}Y;7E@3syIO=PxYMcCg#9tGY{}SPQAcFTqOAH7Ce5-j1B0zGnR2<1kvUkBOaR~E zF7(M*a+O%S)m4enma^-TB|?#TO~cQw1;=LkdY)IK9UmJ)*GAD9R)03^UTH1_@=ZR_V`qp|zq)hVp6MW+a(S z5g(yyw}qPA&DFJ~G8I&zQ{71uWFlTUeH8c#Ky8_{|GRBo=T(C)V=2F#rGr}&Y}zEj@C5To14g(Sd~jIWVzJqRfQB-~H-r}}irFu7oj0tlQG~{ei!W*^0Ok>& zB*~u*4Xvj;M1-o_=RM&N4KK$^93JVl6rqqdnGA^a7T6iJNm%DyW!b*q;*{pDi|{aty_;VI(9z zDHlw>6a$0*JTNfxS1_L*bWfb%1*3S+7w#x~-e z1+Wnp^a7~*wCEaxA(XS@G2vzIXvcI#|4e4*3QZ9XUb){o6)Z3XMlwGgW#UHQtA#oh zmZr_VVA*ZhUB$5?x`k#QN@4>Lms0(LL*Op(ot$JA1V@l9G4tU5ghfR_TB1F%6BCRx z)3VCk2Lt|xJhib4e&3usYbIF@q_FyV96MuwGuWLG78`M^jDjn$ zv#JQ`i)Z0zxgKu1tdJF+UXw2A|7Yg0%25|G-c)uf$74Djt=8W9~OgT-jZbA zZd9lFi!Pw1cCNLfF3s88hbjf{l|_bf@?SI+@3gSJO?GH>5(Rk(tZ@_TaO2~xzM@?0 zF(;7bRz1@(Iimvyka&1#3eyqdesH^O=8WMq7k(V{;<>&7I%N8lB9LAzygO5Z1t(R4 zyv-|V;5&5%38p|IIjWi`0=2s)pE3a-urUk7lC41`5V01PWNm3ZC>xWh<-Q%G zmI4DTA+rk7C>RdRAv?WOx@Yslk7C|D^`>k>qASudO=v+T{Zn8@p}rtb!fT`?Xe;4{ za5d+iG~WW_MpiS^VqcT1G>7#0Db5tni0E`^`i2zS1fca76R`5zq5F@_= zvs4qAvg&DMjist36cdvta5ib530XeZ43qft-9_R6hQ)T=mmdYiYzd;f%;{9SKVdQ! z9KVFs>nkQowMd)n+OfA@aS*V!Y_m`U7P$}#>yk}hb7F5p!u8^e(F-WiqC8Ck6bY3R zvmXy6F?t(zH&22{IUd(>s3`!x6qkl3keMw;ks>sJ__2{$-W)GZhGVjyFi69_QONb3LQcH4qyN3cqk# zzNsv{E0w--^x0Zpy#{(tfZSO=Z^BV6@cqad$KkMI`7L71(UQ2R~pc(+GONi4@c8H{2X1{&t!SX=CGxA7TW z)WWt%v*;ajxoT|OcptvpZ|+Sl=vk5rl0d!0QQk=yAu1AEOC|@7MSgqDXU-TB1woFA zNg#}r3>ZAa$O6F!pwKcV-(G)A$ruu3LAHk|t%qFNX$%>QoCVs+jQI4{YCCY{#ED|f zczxRx>d{}2|JRQp$}C`7KcP>R1LB{A(cgUPZ_dw{`@+8b@Yvy&ID#SG`yw{-dA$2A zpg5y1PK)1#=9uD#agfx+QK?_5q4X%CTs-12{N9Gf>fe9n1cCx(NTdjhNXj6IJTjlq zsB}7Y7OliW;-P3v6N4pnOdU8BhDBIRZoA*`I5tj)I@$HSK3iND@Oyi6MuCNfhlq)a zi;RtqkC2g)la!T~mzbHFo1C4VpP-2d4F^>Ne}jl?5Df|op|GH9v4()Ox45~wyS%-= zzrex5!^FkLjJC&A4iK+WVF{6I1P~4k%GlZ3g~{9A-{9fmrA@PH-O9DASBEPXd{lz!6j3)~5-eCi;A}}IYazKLGV7~diU&vmntQje z-@kwZ10FjGf&l;y*bM}l_RXIK0Sq9(v$$mf2LJ+07D;G`PdWwGiY>xmEn&1=ccRY5 zMl~?kNmwBsLiH3|(WeFL-p#wW@7+-wsNsCYY}vPC)+{h^;DPbybMkg!nS?;xJdiUZ z|0sevfV1D=y&dR6w}69DnE^CFKp?#P_weJ(uZNY1?BOo+>#sZJae(#vRh1uR>-~{m z0cZe_UqC=5v48^Oc|pVi<2evVPxXxiMTU7`*x-EQa5%{V>OnvR0}rSNp;Rgw2pfnn z#wg>AG$yo67x>WykP*NC`+)3U&SskrL-A+Ik(;?B(3}U-6^3+u4&j6r zVGueHfn-kDq#9caDk24S+L;JeTC6Ek0Sq+x01^)%;Nk$80x*@Oq?T&xsk}{7|C*Rd z1g8cAVVQN}0;`4*7IkHW0ht2M-Rfc%w9>i~6JkcVs<0kG$HoG!AdnYJX9(w*vU5y> z1g!}j(IcuDIoklP5rr{|0^F8s?z!l01Wj;GrYD?$%tC2c0096HL2W-a5Lp0IO&OV| zk}~nwgiih!XGjn1Tkm>AfWZL03ui`edTlb69~hUFcmM#-QAAoXouEFDS9*ti zn+VAlr|S@c3`em>1nPn7^36EstTQ-&Y<$>~c^$y084z|URg(vpML?J9aX|_xngy)W z!%~si3IK>Ldvws7BB5j}>nSN!AIELWY;$Kznb&tzl<15|+l=Xzn0SHwyQk0&%W8w)LUaRi7e>TON~ z;3%dm5kMw?sY{1CTe!AqsO)O3zP87HQ{mxa$qZiP0#Pcm=kA0ej?NKri)sg5%yRs< z@z6&v{q%9H;Xsp#?Wgzwk~tAo01&ve>$j@}0A;Q}KG}dv1crZLvpNmX`SYIrA?T2b z@;U$)Nk^M|f7F7DoU|k>9=VNr2ljO=1j0p#T(z zKzSN~>K?E_lKe(~KB8AXgq&OUfq=VVBp7}Ot7TElVUtLq$ z0W<@{96GO!@>5Ss$fm4ok)mU3bCr+oR>rt>0fh(<3vmiUt!+`!81d>_QHDSvQXKM; zkc{M+1ah7wsRuDV(cl+1c0a|H$YNId!;w5Apio7ijD8TDP6`01fX!}rR(ueE%wVtP zF{%x)tRe3}Rmnd-NevpR6ljR&AxR3OD#juST@pY5>9plD#*C&kr}>w%@Dc(?%i8wd zrJOZ}F$@lP5*ZCd2IZK~Ib|VH1Kj750<=PrFq~f*%9g*b|0RGF{%Zpt`N+$tkgE~< z#2+lbC4`$%k20f#p*0f|-=oH~WS;z!UwPXzuf`CzlS)M{3;cRJ)7LJHDtYpmzZ-OE~ zQjCh!G6kVg#w3M((XlwRYXjI`2?_WjJ441R9=%y-RfHR64rZCy$&NPnVJQo)?4Fn z5*D#~fzKx-72god3ns`F>WqikF3SEB8|N-8eDy12YL|Kn*#IDS@^fTF0?L_oEeuD4 zIN-DbI^FBO!AnC}9h(w_wI<0|LJrQbhBy2U#j#dwtQ}%x4}jSpabY+Va+b5IM#e%R z^~IQqF|2A+00cxpNsKG8!&b{<75Dh7j|1^2eP}TX9Uy!HS=wqx$x@^(<%qj0g4kAT z4Jh*DLq0O14>=48I5GDLN?P%h0oGtHoB7OW|IPwQ6a1X_y6IEdVJ~|Pz_0kdcMt(W zsH7D9)jM1HS}%OUKJ6?}Z5<~M2~P7PPOL#j8NMA%s?>Iq9JE z89Zs26$?cMJcruOBJ!9bU&4-=hO2mT_?tl{eF)j2w$!xFwXP%GLWKzI*Q5;8gv2Bo zVzZ^sP$epQ`GV{{3p8AJrk~oRB?Y1)houNH;k9E;>0Rq##>sJ$x5rKH4I`JP9s08) zShk@IHfh_4h*Y`fP49Z!TO)^_L;<4^p-Axg-T)7{zz5z5Q%8ibxNNi{WH*J%-nz_V zAl@z@P7H%*L!$)GxW+e54tQ4yeUbWb&T-{O5(R(zy{`BZ?!O7Dm@a(t*zOro(9IRX{Y(7mg8`3)fKF5Cd-= zBkN3Pt4-UOoz9`|^s<}%nCkKoB;ZZ@&iB51V`RZ- zSweKFaG@;d2~#IDWj@D{nmQiKtid2106&GHC;VdS{)Lq>UwFTJ{`0>uwB_v{_e9)X zX8B$?Tst{>b)>#Hug3;GI|GN=lm7G^sk;H61Nz?kKJa_Obsc8yh6GETs(GWdYG~J= z;~PG+d0-3-U%vKXe7(1naz3{K|Ht)izkzp|K6+zaWT6pndMQTcL!A0`dlw=qPhY5}U|_ z!RHx)_=t-biXaF|rG|;$XNjq1iZTOzaTtrTNOyb$dkNTobGL?f(|~-&U}ha| zjw`4iFU5H_wT=>zj(?_(oPmyqS9yf@c=b3)_6T<2mXE?CkBk=!lm~?W2uJStA|q2$ z-!~M5R*(qkXa{+Z5c!Y+*=Gt_P7zs=2a%5%GLVomkLLK1A1QioV~e<05_<(ez35iF zc#_))jKsK-SfGF9{}hd;S7^kLhSnC2rtlV+rU}O=g(E4Bwt$VqSd?s6h6?zSXn`C! z$%fhpl28ef3D`dTckz?&ZiKVh<#Z0iG3i6_0yGE`FvzGdE_U3`A3HZC=IU^ z5n@?fJBVC~hJ1qvi#n%-{0Dw~n3hRMhaKscSD=SV5SPUVmcW*T%d{6`IgpJQm5@1$ z_P2Ttcz`mQlx|p(M%e_VR(jYdlv+p>x2Ot1nS0lmg@`tqKG~94$a~eOS47ERya<{) z33FuOn%;<4$-tVz7@58qhcS49!dZU9sg+AOoW~i1Hu!^pn4E*8oIb*WOn8bYxP!3( zonJ+mx|5vl|0kVxd5%GNmBmS&-GH6dd7j7#2-ta-M!1|oD1y3FdD{7#^f`f1xNk){ zfMJ*%y=au4*_qb}fdRUoGbx&xsd`A+ez!S|2}*^R368b6icJ}z1E`JH7MlVZjv}ds z3#yv@S$CD`lqy-DB-(_4$x`umaGYp}l?H`a`J$|dgQEzFR%C*%SWct3OX8;omMCqX z(4*gZqB2^Rtmc=Qs87YTO4P@fD>{|rnWJ|ArHiSdi0O%6$&mxbmVhawWW%K;`lY=G zfO+?mbhMxP*Pj^LVE-1PUWl93!;@}mHx1fXo;jxoNT!l-jH#!mB8sLNN{wb}rzTV! zlQ)j7|7mTgC!%1wsGld140)0M$c`m7sjVTYklKP28L1knscN~8@yKjpnR(#Jj=a#R z3yFh{*9jOIY?SJ#j|P97da0HQZC(n6Xt}9^CxflZsJvQsqNkg>nWi?`p)OgPyC{ZOY~;FkO4+OE3Up3N zN@qzHWO)|M*QK_gicJcocF38^C#6>zqfc6+7MX*=Mx2I;q@7r;%}J$JSqJy(2|!wy zq-d`RD-l&Gn0+~z5gT&NIem+FqxJf*)0wUy8?w@PuGxU69apCWszljZ49|!QDJ!xt z|J!$o7Z4-3hlMb8(z%`=YZCg14ma4ZJ4vpwSR#IpVy!jf*3Xq2Cv|byBJ(+$%M|9q&qUN_e{ULmy0c^L$9}w4;p-_NuiwMM5 zm-u?O+oygsc(nzmwozBMUmLiB+Ym21xQ2VUXScN4nwS1SGKl-QkQ=#@JGqowxuIu$ zmYcbnySbd(xt{yE79m;?z+_B74J5>{Nud#n3%ab^xkrNQC|D;1z zD+!@eAay_?9HXd=Kq=OHzUZrHPE$fka6J~ae1Ef>j2mps5=dnL1!oX7zL#8os~|a@<&RtX%mbVz0_%8bOuM}6Gc-fKCEP(G66<> z!)Tnw2oxN*HWJN~G{_ZG*px-%3r-=d9p@2WH6sRVx}>Bu@fQYTU`5tTQ~!W-;YJV=y`L5>x*b2BIaw zqhMO25C9KA5Y*sVUL-!Eb4Mq`O-WTrqjOqEvJ)k9NsJX;6m(=rfI^n6Daj)o>I7Jy z{LIkIEt&FHQqV}w>;^GKyHcV6qEccIpc&lMOr$`%`Eow=s~*lP8=M>!k}-PC#2iL7 ziA3NQF}r( z?K}-=kV2`IRo3Z)-wRoKfi2d5?n@aiXMWc01@zIIFtnqt<|t0CLrU9oV{|BsaANU7`mv{U+EG5(vOA?8{Q|($hQLSwQ_pM8M82tagyH0N8ZL zpGE!9#gK&``BpW9_^SNlUoxNelhXNS4v$ zYYHwF8l3|zC2~0;U1KA)#4Lo;t^M54O%nk|)eN-9d5|KK|8Y6oGrZ#B*clnwB@Eu4 zkvyC%z9a_Ip329hFdUQ&$9hf8`fNF;Wq$6U(5o z5^^I}qk#l7wi4|V8Y=-#WX%SuV*qU(T5=;Vq?N#Y8xfR6T1Db4%0mRgTn!+;-gULt zDN@?bjo&QZ;{FgJAHg@R@YrLJBC9pkxm+726Cr}rRF^$vI9?%>-P7b9-dE#kl-&lh z)dgSkNrtT=M`L6Pwc}nrOa1KPSf1tf5IX)%ESiEbN~^p{WnuP09gUqu{~^M4cjgzC z9_MvJ6dn?)6E#aQCUo{QG%jk>d>AQ%HZHNmDI-?C{}evx5zNg!H(H+PicSuz&?Hlk z*!%kgiM`;QkvcOLEDN>Zt77SwV>4|vV7Kz=ZE)$E-e}-P0k?7@M>1o!LduK&>afnT zD^zV@(zUArCj|{{9y!A)jBR(2ZMqKZ44h}du5QF0>&Tw$!~i^yBL$R|=QTbZjH&F@ zUhU_Sx>b-A(}^A>ChWbAZO1-CKKku03d6a*>t<{1>b~x^TTX?L*z6wf@-9hd-WCO@ z8pTU>=a5&^YY+K8?=|u7ht==>An^MDw_(8z^hxk#$M8Ah@Eiv5ez&SEnzlt-gCQf& znox5z3kr(MvDIWutD9K4JMuX<2}fY^zEK}4|8Efr(Y+h~4#W!%M12erKM^%gk2Qbu zFp=}}zlW$!5cEu+-*Q5n`!RJvPX*NQ;28<8LrG9; z;p*7{Jc3k~GFb3=-~bcwOgoxhNzwKOuXwU>3lhKt0zevb&kJu4GOPR%NTs31gDKZx z6pnyY*v>OBKem`~6pN4+oUQhDClh^7eD{O&{!YGJq}jK6JxMOM!&kfVQ_1_NZ|@%A zPEYv&>GVu+*xZ2bb`}@|83uRXxSvnmysmJjA08_feW;&hSDy<&zxy-={L%LaXOPOm zUkk@i59WThS;6*h#(8unY-KR#0Hbcb{|2G}>#)f1uVcQvUtsVa=3X|JAIt*FwXyY3 z_48F>bPfLcZgL*Oti#pJIJSPP8=VjBs%9n=0e=7l3CfUIG#-&j<&xQSJ_k_;paC&P zqmTz;`(Pv;2*;CLHlNXH^_s055U7ZCK|5|IvEeS_@V)=h5(<_Wwj2fu1^}7p9;}KK z7l*JCyZj_64;mB*A|=xb5jsCfOV^?n!Xmg9uw37`E=^}?+ae(l_;Ohj2a5>8akYq+(rrYtu9loZX7ODFzS%IN2f*8UV2I2DWk!aveIw z%k{~y?hX_hxI!{uK|OlA47NfC{~!RB0PqG5VQ?TofJdh$>N3cn-@YUHJT~b#kYWG= zAyM8zcL1Le0__;aY*}Q1f`)cd=G3`!NxK6O(JXM+K-MBG3mZ0g$a5VzBya+Rb6U!i zy8|8v*i=9jmAeN_Jsn^uhiO?e4mMT1nXSme0|L#)UFXg~00RK-HV{J$(Hl*616VyI zIn@`tWczzNWF z0yI&;ng=p7;K$Uu!b<@$9`J9!Ui#uDn=A}app|ZnKmdTB`tnRqJ}I#>9ziF0MZ+rL zdU2CC7c^%8u?%wXHR1r-{{}sdOO5z|ND!FLoK>DZ;jy$;RIw;Xmj*Q9=v7(g9EsLymAu1M zabmT00Hq?`b~#OBmEhJ@jinIHT&rD{H+JLE6VxLX*z>vt7$Cs4S%MZ}TD&Kq;=rCuP9AKb;e9=N6NF*GqLf^Fs5L4P$1mR55daD>fGRZ`} zjvEB(Bo`4u{|H;cv&Ao6{IenujRbMvqG*RoNjn>M6URME!to;*XWVbk20XTp(FIY0 z^CXVbO!ZxJ8+!^5L;L)Q#3@)E^3-?ld5jc=p zZ~=IFLgsoQKM5kQe*@y+34LcfB3N*Rhk79hC-_3gxln%@jGUo<*FF?kkP!yjAOyQd zy0IZ4|8JtxVct;pLsv*|hIredx^PGsA+j)u7zEuL3^V|auuw|ek>MI>$PI8rF&--1 z*7LaWs6E|Hf~tGo43Pj6!*Sz|x0~Saco@Dj=8tTQX{j zTD455Ni9{@NoF@cR7L>}1SU%}SnEK>OPwhbXt;FQwG{TusBH=Y0U*&m!g+>meG^x6 z|Jqf!9=59n7;Zipo0h?p#t)~_lVclm84~)Lnju-;1 z+vaq+zRn;*3wQe)Ts6~|DCuZ>1F~E$-%vI#w8*UHNCkD$=1S@~A`!|M!UFb65M?;R z5bQ~Sj{Zsn&H^Mxlf_u>CVMp_h$wB!umc2?fvDC@hkmo1L;^%)h+N7x8lKyd|KU2c z%4T%|wkkq|VjU4#&Mbfx*{IP2Afkm5!nPHUg%S}MuvyrmQW>q-tQcf5+C`<-mqVcK zX_6buxxz1+9okoF+GM7W2qLvxFd;!Gn_cQORtY}2Q`v}FghE^`3fV;fzPkGc=}tx& z1W3Sl@#TrxHOT?e0G$&ga2^L_xC;P{!b=|D00Cg3J``|(edU1w7BrwP5qQ8VSnz;E zj2M9h=zxk-AmjOh;Kc`E!Djjb0xlHbCFpqox$I{QRA|=_V{Akn{Ptb`>X*2qNJ1IE zawIIrDz%$Mhozo~+jD~PZW&4UFmE~8v5ND6gZQ|D3i)z(Y78 z9)gqwi~z_6m}7gULxnYajX))uvvwZHXXgmF?{d~fd8Q7%w(HsWl`6T4{C90jO`SYqNM@4aBJAquy^|1C)0^cL)9k!XSkHqd zc&cKhz&D0YPi`VJs$ddU;{8JJM*s_CsLuf_uMBD;Do&0Iat`Z; z4(Lt?0)g)2Oi$c2K?`V54VbI?>SP5SMX4MkDNZX4c256Vr4S4dS`I)mwgeK)&YvX1 z`v6b$UWx)%;v=38@C@Mb=8ZWjLQKkz0f}P!{0SnKj_=5?P{<_x^n$-M(E76M464Hb zIq=W$VmQ#xpNQZDi%ta#uW8PqmPU#K9-#36pb~44{}iI^#BhN+5I_wFPN1T|Du`he zn+X8$p^Wsx0h&jmjzw_(%2gl@uOcHEs9=>KfdL`_Sq5hlPEjm~fDcGyD>$Zg^kNId zMyHJN07e4=4r9Fl3kx-(U5Er)@Fohnz)cnl#RjBENMt)U!)Tx-2}|qpOh-((z(24q zaFkKxSf=$7v8;5-uy~P`z@bWru^W$3+J=G;iexaRVB@sI8szaY-mVJTIf9m{u#-_$LX7 z!B@OOYwWnlVP!4ZAjBHhuCAkzpE}#Q!?X?=8b*3qHj~?n*O#GM55pPw;V1 zZswX;W0>;N9WpW)O{j%h2gnMnJ25gC(I+OMQ#t?eG?!5|mkPP~(dKBeGDq@q1`--w zlNFy)JUjHV{^1WpDMt8WIK|O8y_2U3Xl)29Fx7@8C~}w(#Y1VTz_hEvT#LXM?h`jk zFJ3`PkSQ;_4ry4?Corz%1j|?)u20xYjC7;`s^l^V$Cma}^j7A;GKm53CBh0!Y*O+u zg30Xkq7PhD?5IY2(gt6!CgX}G8j49G&NP7*#}{s)JOl0^Q3kLMAu$2St;~TkOGrAv z4kChU>UM>WK8zxkFB`5-Q6Vil2x1c&;Qt=7Ya(MtY_P^g;9=;1i~$P(y9dp&eN7!JY~y*R(($g8v=rq}#Mr>-^61P^KWEWNiMe8)qYMN;Mo#Ra7Z8 z6}VJs7jF|j4wo9XO_Rqnbfi__Nz~FKD**KoUDY#Y5H%9-9Tw&|V&oEtCEXZxQgfpf zbE!*H0VV`bZ5H+oB;prH3jqkDLvG{=EQevav~6&LMD|chw}w<}lWPcr`UFo;*A!Nf z=BYfTAs_+)YU3KVv`bN?BgH`g53Fjj22lzmWH${tj9?N;B+Dii-AoKGgiGA~5+eSt zX{YvbxfU5bMSHfEOCisQ=FXV{HLem` zqzgu+bS8XsLI{fh9?Lp}R{tV=kpjXoc^E;CuFA8hz-h{NI2!1$Y2!?7pCm~GOBWCQa2y#(yiUuT&gG3VHIHO^T@M2$< zha66K1EQUf36CPCx1F7<|MPJjgU{q|CU(gQUWTUCDB0h;*;? z2*Tt;+T(-4l>!tvAIwInx^X~7%}lzbbxqM&TE|p8GncBxV{FNCX2R_1R*Z6SKd7%| z^y5GoQZ#|ogsrhi(8?$WNWh+h2;75;`$8;n4~0XiE^2gE?ik2Yz%Dugfa(GST!CG) zOdcx00JK;h>|!t^ME@T<3YG$O3Gc>JwL=!01(nE{KgTZb96~MFcD|Z(iI3ovDWQp* zsqG?|lhp-(U4e+L(flxvPjph~h_)a=xfNR`lk*~z$?j4(1X*emYN5f52@qQ~6o|sg zy&xx)objTL0(pzzAl1fKI+#E2j~iIIFXF3Ma?$H*Lg6CnF$1e61jlU+bZ~0vhwjP{ z1x#k9PCp0qHPlH_GpXWWB68YEeF4=`Za4}^3$e_%biTHlA0u(lMy)c~BCI5fOX`Mk zmt{f@lXZ&hR;wiwZ;aJ=N0=Cv`2$D<0qhodKnjFJ*_Ty^;2`OXgW>nf20|#*f>Il= zGo2w1XtXf)p#P^AOBzCswayBh0jD<|0WRp8;=9KGG>VazS%!D%K=3+(@8e@&z4r{Z(9a@@1 zh+zwpSMVnFiYcIs+WBVFg=6#SQ4NLaYQ&i9S@dqWuEJ{GYUxwc!Bij(W!mAFgZ8oz z@ua2=;ed4O1TU26S_#~?93Oro zsIx=qW8HcQ!ifHw1iB(?9F*z^d}Xh*@KKPrnY5`bpj%Oe^)Y|;6>!E*oxo=f!Tb7D zi8t0)J5HzqnqGEAxL^Ufv1oRT8)|C&ngODCB|H=lPDo2TtaO}f3~VUgYYOm_x>93+ z&m=a)B)@?|T7Ra!{3*@|HEp!UE6({TCOy-2bYJQqdu5ua&tND3qw7Mm8jq_(Op(3D;e_S)kT7Q!qi6BP zIeEaiS^nZKRQnRHuGn@|g`I9uXsTlWBLYsXacudJgg6P(7>5m{vNTwmW4e~T&S=sQ z6%53+@>}GhBah%w;$RaCipp)SZntXPixCTN2KvMP+hdTqhb^fPYH>%Effs}Kky}wx zV1lMR1~2Rqy50!1Ajg;GotQ2qocY+mVUjUg$8e~f$``KO59_acY!zS0`)BLA0S zW837G-^c5fhynIII!H(3-0_2jVRBox>={Da43rAr*K3 z<_T+quMga({NVR{>@P(Niex)5nB93;nSnHfgmM#zeUE0FC<~!B{=*uUl??SlIG-I_ zwz=tA;}wp>B%BnR;ifX>eY1O%my^6i;L4-JpgX;Um1-j#_-D%|W1Op+5!m_FpR{g$|dy*)R0J-Mu7*Hq(VW8rHqCGadikKJsccp9W)%|EhWwY0uUta zDHuF84dK1j9RxUFT@@Sv92|Kr2w@@^94vSagf_4yAQZ8-VkJQYjCnHXK758A3=k~& z?HxSe@>N>GmL2-NK_Jq>t<7bYF*raFLP2C>O#>`s4us`-nqQ6AW>e5P6p_ZS)nb_f z{Bl3gW4+dz1uGt{E5rgAQ}c^T11rN0ImE&sSdsz{!Vnol;L5v>Z~q!JAi*)u0RsTu zJTPE@35-jMp$tVJy zb&7Nv`38ZmtaG&Hk;KR&fg;hGmYFsNt;b?{o|PP#FY6KoY&$+!<8MH_Ib2u4gf~$X zy(E8GeF<={OQ>XTP7cflLrn@3!Y`9?y5F8RC z`YjwnTKV!3q(GP}M2dW88Wdn}-)wf6FymYe?Sf6Ln(um0aDY6Mm%~KHw>oeV0uVhN z^dmW38R-qO+M=U|HHEx4+pigtJgccb>S)6|q<~0(HS9+d@c$Y{$^|#wa#AdC5fh@I z(HwG>F!-2(@6h33ME|Uj91-QDQyNC7-Svh+0-nYa1;>FiT5p)(W>@N#v08d`6p)&Bgz-4c8VW?2S^}SJc}16R z6p%nT2^7GU0vlnG07YQhh{a3+I3RhN5ky;NL!=3j z)nLNRRDgfVnndgZq%3JhNe$4{l2LCYKnV#+7*)u9B?VA!5)up$K>%!^RGCi5+EncV z8l&-mQHz04Stnxh=yHH+7;qLY`l8q8Q;=D)Wut*XMk{$cDO#~d?x{N?Ue{z2#u;Sl zrRDS z&7qrkQrhz4`Do?6v6-~ zXbHo0pWy>0dSROzKErR)phhO*U_=qwqAt7Yqh4AO2G~hP90j`%(h8}SFZ3)msW{&k zK-daN{VzM9PyjjF*t2mdgfvxH1TA4808ZHi1Op)1FPE~U^r$a#SIN#-NTaVPr11^=>0mbc<}YD?YHtJ=@riIPa2|_0c34u=~rYQZ}$~1t3Mu(M4*;F`E-jC{mk8?{lK|338D+7DgsY}2cK>sq(>d_~TY|=K;3<(;5NDC;nIw8zk)+qK4LY5e z6~R3E53!BQNhTHDJv}KN^mW8PC6&y2fhWEjF*>k@_4)zQcM!N?{uq&b|UeU#*IEWkB5m zcDB4o6t=TL3d2|wrl`&ymH`iwNC94^kJLVeCZr0Gp5nv9QcNck<2V2Wf)t>cn1{2k zNotp>gDE~Vsf*_EhdhQ8TmMHi#IT6{?c9RcvxJodb*fEJ5#Xr>Tb-5w-5BNfion^{ z-DwMbJMTD%b%wbf^cUWg>uOMo*wvO-81{4%nMfPH-dm;M@xVd%}cvIAdHzD8exE4^2t;%8B%OUZ;Dsip+ zL{LKF00I;M1j78q8_J@J2&lwMRilIf9sq&`fZ)bkFqr|g&?T9rE4HaH$^!_X0VoH+ zUFVvagjVvvb&#;P0}k9L{lym|Jb+A66__Z*+$`Pp%OhLjNwn^gfM2b-ldsTxl4v5JHbE5urBVYw|zZsaDb-9MWpVGia4gr}*G$F|n6 zV15#5HbJ`Yn6DF*lCH11Yb5N}SHM|P-=aXNi?%Vl8o>=MoUW(G!3H9eqnd7KD|O1Xf^I6z>5O3IEV9;C7c-Lbz^#i$Dn2#D;AF209psRPBX-!ph7|I^Owlodp2l8%>cXOccdj{C_kiKB zsGkTjL^-e+3DM}Bl>C>GcY00u&HJcXb=2C0`2~3~$8&G7wfa`~`2pM(cqA zE38Ln49qd8SW;bGD3}C8xx(yyndSjs94Mg@oFLYL!3q9>-VH)q0S9jQSMI5c9=P4& zom+cU#%>HrH*gbkq{4F$!b)kZoU z0>-?;)e#AZ-~wgn%O8f!Kj@Lpq0Z~oA#AW7tB9du#GDukAl5a^9L9$ZnqgSbpnoJ_ zHUCXS6GFpf9N*MU;YF;1L=a)x{mGIr;bnZ{9;Ko_z#d{);T`Q>q+nha*+?tx4lDIl zR6GFkc!2{Ho+aYkGe%5uH2@45kYT7n6Ho#l^aJxW1-OihdvHuf+*_SAK?r#Q40Q=8 zT-Q0ehfxHZmsnF}RL04WArBElC^!Lm5r9#+BgY7jRv^nwxFfNRBceRl(H)5E$RnD) zLA5Q&D~3zvoP))!4K{%k9Y_ZzHp&D!yqC&B)}J}O~aU@ zM6@H3Z4EvcVHNn8Q8<9Yl-j`z166>@cu_(V5Q`Kf00ch6$(#@nE~Gv@!#tV<(f`$x z8B|?E%mhB3T;Yh0Q#zi>V52+|nF`ehH$0@g(WFPZq%Ck&OOk_Y5#U68Tl4wB0-)LV zC;;&w$IfZP&8cGp5Ww2-V`K=x9B9B-DpO!~6Ucle8>og+XhC_*43tb6ku?C17OU4lh($OpWoVNnRBd?3WQfQOuXLs>WhhE0Mn z2wG1@QW6wFXFk|fcE@LBLzZO7Q(9d=a7j?Qqe-}@!(QN#g|W?XbOKj+)L_Wu__U-7c?nBuWdSzLM}6CEU6nTEk5>}L8BBr#&_pVn zL_@M#SB`}^IAJyhUJ_I!c~Srs5TN2LBs~&OAA#f+WWu4HBt1p|`BZ~K<|8(RQFJ=N zXsS_XzNZr~g1@w5SC(Dhh$lfx6|?zHdNwCAkV}6}9bp*Zx1r0H(B}ZS9gC*QCQxPX zxWdVZX;LmwnL=YE6dnQ?UXd7Bo6;#;I15_9NvQ#tT*@ND@q{n~)ILm{z5{1Dqfa^8c{tA0SVWIO8_3 zgr0Q4_~ZfTh-g%00sNE-pTZ`two{rB0paDxl7B>K@h!g<) zkZNlL$@?rTskRpJ%qp{rSMof>z%;4}X{PsqX-Et}k|iSuG-hf{fl9nYQxFO>GNbh* zs)&rh15{b0CgZ`PWin2T>sH9p1Tw43c@4371h|ss zP{I|;sz|fxUBrN6i;k)#ZY!d_o*u}%Itz0;hOd;0vHzy5GHNQaQU~%ZE7Cb@ z9VE!fN-J2*!haY?qsl3o{HeK?3bamv7qqJNECOPkD>-?DxOzdU)+@=Xs>%j!Z@C70 zs_I58BR$lu+cv5tj)B%}Y3*?3cyu!~_;+qLM z>Q(BAuA=QF6%2D|>-!|q+{$TKyid?h&^MB8+oGkpGFPJR>Mq@F&{A#Gj%wJBN8oPm z_^|D&hAy=h>ztCtjKXZ9%w(Nz*Tb+5*VJkB{-0o(3-w}5mBiM?rOAcLnYTrNGv;hW z*}|5<(8bA^0g>;;F&Kp$YW5~<_l|GjJcW`}OZm3K`u}DES0RLjdIB1xul53P00+uB z!Y`j*Z#LjB|5|T|;3&dnlcCw!1M3z-8Zd=m?~|18Pt4hbF0fvPAIWrMm-tu+7-mu) zQw86J0{d_Fa)}7xZvkVRe}>!nqRLkNiH&*$4Py+VfK=k>@Os$qIck=mMU0nP+y&2X zUFk495Dg1sTowdz04uN)i%_JTLckhhUSV$rhfS}c@UjVTt}z2Y@`q|N-S!6X|9&xB z@Pv^*K{mF{6kps0FEIhDX)DMvF-=Ymhg$**FtbH52FtG+o9{f1u_aJ378lSU%bA@u za-lj{rqwAANpB_7FAjGEq4LTihlnQQ9D;xW$p5Br^y;wC6wWE~6}DKg^x~9ee!80Ln?=k1s#XdWN|Hr-t{?9n>K(6Y)m$ka8ejWEdg^gJ99e32?C@k z1-;zj%yI^vp~ALkQV|f6sM9sya`)vdDFMwhdtV)-pg9*#-&IKkHCyQw9Xwye*U|FQ z)G0g{U-8kP70~G{gR=$Qqb}RBJ+tyJx3eGsU-8Lv(LED1svtGzVQkE)I#cvBq9a-a zGX17QM$0f1rwK;?(5BHt6sO}-39$h)QVq**dXzNXwXnZ9n)nvlc=T@;*R+(#SO;&< z2&J?JO>ZWqbPN|zbyYD=Q&dj(^f)sT`u}8snEtZ_OICWcgHSgZqzrXZ6E!S4-WppF zQrSdOw`h`?j1S;np$QF*+;q+&H9!W2DL)ffN2&JIRmB|E3#)XLhHB@S2ZA|8NATG& zrwW|Bn;8$Z)nsB^6LbfoR_lNqgF!VQRW%A%gHG=RVx4C-j`K=~TVkg{7s0hjw2G%VIHkG$C2Y5fTLl{E0kGS_- z_v(Nrc!N854L|gQPcIhjN8>Eq>j0RTX$dei6_f=n)gmP z!#QRf^qiwOm{XAaT)1>6u9vr|16aU(mjTIS>_pqSbkEJ28%Md~74e3{rXDtrEF)L< z)i*-y)<$}XE4qyL`7=j2p8wbKryu%qkGchkx}S5ol0rJAmwK!B4u{9GIBR-1S67^q z_^oSqf`ht*?|PM+X{J-OZbP?O|9A<%fdtgDv6q3e^ZL#GxU+ZpS$ld>_juxfxuQ?@ zF1z}JZ+e4wJDYR)DtEUJA9bB?`?=HUw~x7#f4914a%iVGx;wMG^D(=3BfQIdGb1~= z=eu9oJ0zEKGxs{8+xfpU3BEt0o1;6uQ;@-vaxF7_y7xONBmBg3H>`uWMOP3t_B(Qi z`fj`P_9ky4w>icGvmHA)^}g^)-!Dsp^?=Sb#+!W3S$t0qJe(uT z$g{Hj<~y*<_|LmGmjAQ*uz$G4=N!ieclJ7cb}M?sXL8PT>YQt)!=Gox$2(haJ=QC{ zwi7(Aw`s(WkX~ketUG+IPrdYpeb~Q!QjR^qqlMMaeXFxw!+X8IuRWE={WHrwG~zwj z|9wRde%{}Gbys}iD?XcF^p_cAOUt@czC+|Q3Dmo_86@z`|5XYfHX2*^a#%fBBMLVv z3FQ~?WgU;@eDeKx{LOudJI_8ydo(=WzWc)ZZFS$Xr=#azy@})c)|)$Ej|ToiN$p#H z4R3zo<6PC7`{Zj@M^8SmI)B+OKlVG&^@}^UsD6rv3BPyCOS>*YohWnXtAbN|DC4%2_a-+y2IK2V=O5Kx3eV$pa+CY4KO)A=k83R3DcS*=2cQ!bXP z?S79`V_17;4ulH_J5kOu#b~0M!e~1f#ITgU6^cvhn{qe^fEZBxV=Q7=V1u-3Y?}M? zQu5Ly^g~jFY+JA^Fp3Oaqv%K~F1rEN=)x!Ga>=pJ+ z-ojKCVm>woHhX^Rg0|Lv-kc4r-VPTRN>DUcEJrs_A7FP!b6+<?d0`4gD(lYbLAF5q&O*@xdIOd1~35NfT)A~ z_GMCNasOc*d@}QCtfQy^n*$O9AP_mkLBNv@6i_r`v*w#|6lOMM@-E8KdsU%^TY6Dx z!kp=zF})i07g#z}FR_D#F)K!>WS>YKqf{79YjSVVy=u0JTd{eydL^Q_@8CwRNLGx4 z7@N~`2pdCFEQoC&Ku){l(?#XnE()A^$?_z50D^%4j2>X%DzoZLs49VG?4Wdm0}U3; zS)5G?IE1{LO{r*TVoTqF5M$QujmSp;rV$*dt)Rgkr@vwI`F#W#?8(~6v_9U_nd1Qq z1O`w5@c~9f4@w_+E**da@7sIbuiRO?b=LZ^Gg8erX71|-GTfFZ&cDux0i(bLal4K` z1pghhPZqMsw6MPMkVvpaO+NGNL1G--EkY+qgw4eg zXQA;A9ajXA#SpFIMMVtz=upN187wi!7h~a&#~9COalZ|Fr1D7=cMK*#!i2FXfdbMQ z^P(}&Of4VQQWG2*kOuqVL=cD`rVUz;CRDE*@Hly^!Je458bAf;q zSPxJ~qwt32yzcr2samPUHFpU3kV-RaZ}Utyk1P>D8B6 zRPBI^9<{9Em!VX}#kUS}LhG&wibJ&%+=Z9ur(;h)4)_XDiGx>(hDqKy)9*jxGdszSffex*r}62Zh9()qn5+vsx7Yb zV#idQIjNJMVtHhG*iA0%FKYo#Gc`wv4D81kW2^1D-M*VRyyv!TZybO0l25*iXu}}c zrZdq-@?K+x4TCgfPJCrU|^k7?%|O!!3bKzI7~(AFoMcfgB?m>XlUd zMh$!Z4|)Lw0UXL9rI(V)=#6BsH|LMPzIgm7haJ}Kvvl9d1DF5%dirxw-pCOxoW_RA zH@VB@4|(eYV1K4GKq%>tanWnt?~;dx1>!Gzwy5CRSV4dV7-T0LBme^{0trZPP)_Dx z00$)@g${O*BPwhmw}_BJY^@N4ZlM+lb$FR7KthE2;D}Z_f|#7?(1lweNv5`?k0B-j zgd{9QuY$n5g^0}0RZE)m(<}AXKdjL?bbzak)$WKOT|{qGaT31k&2IOqa!0pCpt2uj^yc1 z9U+OuJ@#soh#@4+Ksib-lJX{|%p_OhxJ5cl(v_SX9LDT8$4ADoleC0oDRp_uU25`` z;7R2aarrb}7Sor)gjp}2a7+3e;uk>)UD z(#=<{LFK=^$w`N4Q=EO&;42Dnhyx5I0QXE!n#@ref;0e8MQ{&6eo~Tqq6Y!zIK*sl zr#ff-qyhJIfNTg7y7tuOBm!lL>IUEdf*inYl2ZjIP$-0cUjOQctTD&oZZo`SD4?JN zF+u>MkiSpV#sO`!p!7moI!iPJA_9egJt@LQk$&Q(_Z&h&4^Y66YC;jt+TCIL*Ei2J zl{NG<#1L>bncNiN5Cy&GMF;Xj)xA$M3{VeAno-t`x^$>_>mB^8I#-n1=Ndds%>A$j z(zx#RJ0MMxLioDVoGNZ|6e27=wxhoIc@Khv9Z?hlqzhy|OK~ z@nl5;9*`dA96&y(IY$Jb!(2@*2R`Zv$aEh%M)yDmBL8nJm2>^MT%$a|q8>~@1Wcon z={onVGWjk5G72?%6-!~?NDp;YBEn)RaZ&M-n$nB_M+zVy0*DlXfxk93NriVl_Wf3U ze|0WZB1Be3k#2d1sYA@ywfRnA#PyvTLiyXOk8psz zS6XoOUH0KbXuuGty;KHnNa86R0s#upZ2ZMScD1u#N4|S*e8;vLe=X2)S1UglsRDil zWGZAI%kJH3wzovLIsfKr*;cxC==+Oo(Epz#^rO?3>PVm70ohlarSCj}O7H89u)f)c zb6m`2=WJ79JBhA-_IU;zd-I$=)wrkcfBCyo$9)ckuIrtES3vv6f!&DjzL(`Bhvr5{ zR}mYp5~ ztTQ-9WS+X)1ywA?`dJ{kTmQwW1G`83xB0m{(jvN^@x;6P9aIz`;JT0qBF5Xwk6E0$ z%&?%f(?nN1tq1xZEW|l5%q_925T*;P2AVrETtQZ-v3MW~YqJ&S60ZbHg_#qNbSOt{ z5wAQPfC+#IQGguGGYZwyodBSX1AqY4+rTYKwFXnPBoZ%e`L;qTiF=Ht0E3Mua>y7$ zn4G}A%Hxz)n=~S`G?lW6%Bupn5EV0eND!iq=d&Y#011-7vi-}mI;j{Q3CDAQDzZXI zBlw~ivPlDUw3!mNB-;!X>xudJs8CADShL80476fsNiSoMKbxtbDaxlDNS;%(8LKre zLqW2cmtK<>t!xyGssGBWQMF=7HKoJ|qg*sSBgs>nG(M`dOKU==sh%&ZO0h{xJhLwy zv$ZrZ%Zud8eK{30i?sRzz<2?gsJu%V6U;|TOtOqK4pSJlY(B2kwLXH%C{wJW%o$(f zv|39hS&Phk5iGfc2E6#j!U%{Y>jLKrfEtVlYoU#OG(Fn*jDRwY+K3Jx+$bRY2n7%Y zDTGN&At^#!jkkfUIqZUuFaRO2&DRu#HL5oNyF{-ND1PE6nUWFUs;S7SMmt!-(dt7b z%s8Mt&O=B;RWOGIn9lT6D&sUyDX`7W@EbZzLQ_l;k*hY%$T$V~P5}CW#I^Gs7-dj3WWrF)x?9ZA zuiL~NCDK%^y0Vl{xVc8Y`#aB~h8rzSEg-od8prBG6gCJd>EKCo=s~i|2iXuK5*jzk zo5!}=om&wFyTJnpATLHz2WzsXY0`;Xc>q(mmDsb0)Z4W=3Jmk|u0k!;S^L8vqDXP7 z7d%ZR>T?zYXfcc6NZvaR0x(oVEiq`yrACz<0t+~E`n`N1BDzrmbL0pDTNP0)2Oi5* zLsbAJ4F4tVkiIxt00l^i2e=|v>ODtwCr7oUU!A2t{HApRr(%siPeN8-t+Eq4)>Xx% zTS6NVWY#u{iE6!5VSOf1T~=-F)^K`MR~j^I9UN{VR%_xrZ_QRY%0hN>z^Hkrbw$>t z0ata+7-OZTc74`;#aE<+BsDr$aN3$^1tnmDOTK%QXT4G%vB7+JLEVehb1;weh|L3# zp+eb1ZfOX4ODWxi4vHX+s5*{@3ezyilkJQ;kdhsaJqO+K)2AZBg`~t8Qn($Iwwh(E z7yBdW$TZB6Y zrP1mkMW9=kD_lfx#KsHtS_y?xBNbY>z0hoAMsC!SgR`xaZCj4B(hogSv-?Gm3B=F2 z+rGWrp|e~r3EE@aPzfU47Tr6kbVlF`-N}W~)YV)}6OvDyEyrEhKTxj86O$+e(dVS3fZ(M#$$O)U zOF1RdgJZG3#$?E?=)T{>URikn>>ZmA;xEITjKdTHO_>w!rBhpTKD6XZ**O+AS^qeW ziQ33aihR1!7CJXq}^$`}?%7uK{@i^#03OuGa% z$Fx5edtbNgj3s6;6NF(BR>@XFO98%OyKG9sY)XkF&9>A^BTnKXma?yO%f3ViBo1OF zz6h3-Oce76GNxhxV_%$vP7^$aENL|HcY@c$k3u7K>&!V+84#E!$}VZAg^I|I9}{dq-`q6Lu6%6sNEqC z1`vn_C}s{F+X)SW{QOW9+2igQ((AevbLK9U0A+KAk2fWWVMb*D+guc#+~O%w$c3F; zp3%UoEnU>yxa;P&#nHf}D#D#miqz9Zm z=5T5XSc#@q2_eAMAu#Leoyuq;)`~E}tq``O&Ss>Jy(v(~41D67$j6R)i2p6W&e^4` zz~+cZ>eFC}4RMYz`HL%~OLkSxRE>xU)?>k5$eN%60^>s>7>I)^hhe7cA;4-;aEGpj zM=}Cy55!6Y)V?~7{h|hU~cX1?&>~2+pg^mgzf|+!IgQ12F&S5 zqX6r(l@cRfXfPEDVC12=t^oitc76_-l<(_e4AAQvu;7QBj<@_z2QoQh}~>GF?bw`SDa6OGUY zHEBj{^B`qU)Q!a1-ROY6+q|RDXng2AAKi|&bBShMkJepDtVGEb(6mU|_2#=8bBxD^ zPs_#{O^4UR5Nu3?6@wYvDW0)Pit_SKv1pS@M zFUNI6lLHjC;aK;|(M(u^zQX&OGNDoRB(~wY>`a6t7XTHhI6Cl-9iV^Q~nq2zbgyR*MEw1=1Y?>*vn&*Npm z_kHgkG)9nv|Mz5-Cr_hvF+0tsa9wGNbTEL#u;}t_z*GSE@nG~GYPgDwtEbW=^Kh8b zn7@T7HLd{(k(-AFqi^}>jPhvo+$w7x0O22Dfd6othKj0>r=dT3HUCB@e0m|i&avOd zG8cOvSsN$Udb5WL?Opa|uaUSfWtl+^lCO1{G;4=PrSnyqI0)aHM@jm!kXZw_H$p~Ujl}kSbWI-6km|n#HUwiZF~om zrCMkvdN}=pP1lYn{K+t;Ed18okNwqOeAE~CM@eDEzx+UXS9~>meii*jIM#8krnjhl z%cuR;rTJf)W^WWV}ra8BFdRE9T8AkuY zQ0Q?ex}1$toI8Ji^t$5 z`J5eg(QNkm-HyxK>$&|-uB-9}@&447l2@>Wh zneN!By5}+yyDK{(Kr5Ky5+W!QNa&!zWa6N_EYw9$r)Tw-uri4m0tJbYty+G^= zHmumO2+5i~i#Dy=wQSqQjQaHvCTtOD78+s~Qe1v<+s^&jH!EEz*Q~l7IJl7EJc|_{ zehfLXD*i8!OII9|@_ zzq7`F9}6vgCZegh+rN)LzyAIF(YXl+ARll{R1ZdU>_Oco550HS6c25JAO)Efv!HVY z9++T4VHlWUg(dX|Vu&J+NdIDqR1H&95qZ6);!n5;gGDZQNrGD(FcHO!YGGi~Pj9Z} zSR)}h{a7Q5Pq0`DknOein-VFK@#8JB;Yj6@L^5e&mRfGfWtU!#6rnc<5t!i;9|kC4 zgs6;}hF)yG;bDRshWX5b^pK>XS9Hqxg@+b(qXwIEmdWQt(@7{OqIjP9WuuNh3TdSG zSy`Wxt|cZ7rOp&V9}%@k$&3_4iHhVRuAxF-kW!kri*C4(S14-kMH5jmsg_!Xr@NG+ zX>!fL6h z*5xp)z@2&y!BO&rFvFjo0kAmv3rL~4f2jDaq7?=z zGqyM%Hz5||W)ZHp&w^`V&%o&X#m~ubq)l`)qr2`HPQ&ZqaxY(vb=F$5Tv)G5jEdK+ zVz+wfuw9oe%y~v!)F~7)HgbpBypH|rGZ-4NjuJ-O*vw0P>#6tMt8R)E*$i%tc;bpL zejn2~s~K~<-O?<1)C|dc?cRep-VNqeC#tU1%mr=4a1bhiV>2wxa7TIUVN{Lpu0A*PnFc;*<_L?+I{#1T0`y z-j*iW(ajpSliLE#_CQU+s3pL`#H&U#2KX>l$R8l(gwRpdgIC5yGBMJRfCkUC1u927o z28AfsG%QBZe^g7PDNl(?#GTE8w}@cbD(K2p#!_vCp`Z&(c*|1yj1Fc~!wdxxLA$wO zSo5KjT+XyBz%3yT5X2=5FZj1qN^_djyxJB&$4DnVGG~{ZA|58`!_Haqhq|l?7DETg zbO|DVrt5?zv3bAwRdb&7tY@U0cfH+VPlmy3;66F^Po(H1phKV%YzUgECo#gH=ir^C zbhJ>nF(rBmEhs`cWzURibfaCeA|i*_8E^9h_r;=)8vy7VQL zQvc3{kjM?2-U&@Loaru43e=zq)iWMFq&zRfv!N<=sZ1TIzWQ*u@RaCZp{Y$&qT1A~ zYIUomi4HZ@xfzjib*yA9t65JO)7@b8tZZ$oTi*)TxXN{|bd}0lmHIr(}b+z2k$6kMuu&yV;>7yW~D}|k*%y{FN@i$bYuY!I6x&1fB*tufdLOl z!~!yl+SICcwU;3P0vezI*j56z4k*F`JUb5|ARqt-I4x^`3*6uemxkbA&;VWwfCeDI z0h~>)0s=A%N&vtCvnXwEhl}0pYInQ$xa|QLKm-INHy}fBz<8gq+v{?7z3go-T>lZ) zPJ}&781i)kc!{upNdH~NRc)3vM>;Vek-~ivXh^@wFe+z$_I#Tf?0$B&l0(_FD6_>7{J^x zFF?!=s4W{fs{jBXK**JNKzMlzWGKsd&UAjAAqv2N0w8z4$8Gb7^XyqmlyecJtuddG zVBQ8mU>2k`ZJi$t=}2ddUr5fa5ULD-5m#3M0njv)$8dlE03ZOdwX|;G{QqVXOM2C; zZgsN2i~uQ1xy|9du#r^}4?#nzzROHn0tk?6#jur?8{P!R z#sLQ~z=$b401Ib1!QAdPfT1*m&i+^x1PC<(7Qg^>J0QIexUZ9z4exl%TR8bmZmjR! z=4rfE0kFP~|H3nBl(I*t{=}@r+MK;_jvZ zwV^$Ph}WUBo%Z8H!93=ahq=sVX2X%qO@M3%pc0}MH2|E;+nBFW<2>)V&(G3l1*B%* zZoY+#y_4&9vecIY%GE81Al-eyBF|LEvv^fK1X#yhu|My+*S{W;1pg~q-IS2A1MZ86 z1`v+q*Ve|mnX7IYe^|cgMYR&ln{%-1eeZnl?rb5x<%bu0-~CSdpalT||6W+)$u;$D ztkGz!OQ^rGjdR~GkNM0qLgAto_HIY52nwVf8Z<8Xe36KTkB=Jk2xz;=>ds*$EMU}* z*Szg-kNY-MJ!}mj%BlOI+w{ zfBVqCGt(2$1@OxdvBUH}V<#ehQE`9$?9V)p&i|5-RSf>^ufP58j|%uWy|3iQzyJRa zfB`6g1K2Ek)iN4GfC;F83&?;C=zx*ZQ!^n*pB8@(F;zZQ9{=FhClAPh9e4(l9WW@YAO^|=q}^puTm9SU`xOWff@^VYDO%hs!QClN3$(aXoR;G5?gV#tx0XWC zB1KDsyStUmeeeI?^PDrY_dI9LOkQL%Su0t2k;(eyv##$G5oT-ZC!cpogOg^1(r0~e z$4&T?jlwrDo3$LilLojY8%d~sH1Fjzyz(XOw=8orHf^R>i2+tj0qZ0&_k2%&ZI8mE zAYUe{2M%+6OtZkQfzZKbA8_>tyrU2SGim2bzuHS(Mgg{yM56PJ_aQJx91R}pV&d0~ zhKThD%ggr}H8gV)VEPN=ogD9Xun&)IhFt-DYHhs&h~wve3(F>hfxtlgf(VfA*R8jh z95TQ)8c3u`hh+_`py~aro2B?s5U4tgtRBBI#8W-a0<|AlDX^Ff(ZnA#!*avL>ehE+ z1}DIQ)?)n=F0*QWqZFiZ(uPCM^BBRa zcz6!hk7^17NU~ct3Y0Z`b{e!#8lfQ_Ub`A=dX1)QmIjwH)oo1OhOnZ>xOPZ@Mx-Oe zxf0nh6KnX>9ZS-i1+grfES!HlE(Lw8s`iv7b$Q+BkYi@wv=Q1X{kDiH9DmdDWl2I- zp$Z8JBaZf`(PtiQvgw-F0oKP*#GJ>3E;zKw;XW_}Cng=bX8%{p@JkPXjt`vcW}kUv zxAR*#YXe%+WR!y}p^a%W($;O3@KM3UtOkRSIfv>%z(>`TqQuDl%A|=z{~^oF7{JHh z(RhcINF5wWNh&Dk8w33VCW z%DaK%;T{2NBvDPO>Fn3eHNxTYFw8H^erAPm4Az1c!KhH95OyA~-U|V!>N~VlTLuB( zr4Uw@g{`1Cped7sCG#b+F`<7gYqQs-P3JQg;=nQk6tZmH)i%@q}t zVm|OVT0+(S_?qS+Pw@_EED25g@k{==8Mxmra1|*?P4jSPavfaH&pt8{*h&-CHO>(* zA$0|~lU>P5-?M{Qlas>5^Ha)XsZUIDiQElbG18eZ9kYAz)}><~Bw@Coqx1s#a*>^STYTDy%R6`TMU$028@VgRl8t4=A{?~5|m+u7{Q{bFu+tG zx&{4%_hc-Vc_soip@@JIjmvERrg$LPHOGVU+{nksp=v)3FGSU*iq4So#tGz53?vr! zpGT?p`ODVil^hq}>pF1HnEpc47|JAcXgdS&Pq>$GC8KI-Xtn&*vPHCa_ zk!}N5d69fw-c59ud39PL8VeR^>!Rr1#ctW5E}k#=yKImJqJ`rUeEutHsYKkhrvs7Z zIqhm^G5?(M*vD#M<}KH=MjLAdb83N)i;LdMwcQWtDR*;* zHijix#nWsWEQdk31uLCz-{1KdxMHzQp!I05m^|3!C0vFvqUU}7;q%@$iQ@jIY~Xuq za*G!8^T#n-Am-qdNKtgch?Z#~@QasNn`Om!CIKx%^q)%mI+LG1E>%sqf80%{u(9;F zA;7 z4*J=6tb&bxPg%E&`y&j#Q-MJA6;ON-Wxs6|7S;gy+hO@Qb)>@x6m59EEUOJY1Rr2l zl$Z^-?=LsSZt~vy|uRsub z#DTsMEP&0&toNlkl$b`#;f7@HSZprKHTJ_I@az zse=FTrADv|g4D<}O!*fEq@1{$Q=-um23Uwi)a${d#q6dsAt^yvpD zw=L~TiwMnKi_Bqq(+ubj>Ou{lBwD z6ojTC?POaLF$rgN`|aT--VbG}pNVnF5HjiCy<|96G_2dBl-&ID0k~wn^TY%rVXFP( z2_g0Y4uz5(mO%a?I<9qlz)P_A_7CJid7_gZ@>Qkb;yn|9?SFV#I+tu0kRNo+;k6+h zEQ_095%Q;WK>y>u6S?j$ZDi=N;yM%W7nK*Q&pqFx;{Fk9nPa>2)H+zTtaMx-K@W;; z34VeZi?MljWN$LMo>sBpk+tdSU1{mgCwPiDRv3*-CR)rZ7x=h)4-FA=6^=_oN17XQV~f3Z_R<73nytWrwMfsDy7Fs{JF6L|quj%xEg2VG*KfJ;&Y;zcF$yU@jf!LE+w!Md|VsK9NjkL5{{Tm?}**DT+ho|~oZ;=`p zp>fa23HSuNP91JuKL~G~%sZEvEgw=a9DE#mEp|3`Lc|L}xsdvP?xCVSSt2-+puj$* zpy9x#^*-UdQZpgXNut^b=DFevsl9U0)i~~TmWdh)D8!%f*t6;yR+e3RY%5X<4 zRdw-NoLJy+5dWO`>tO@l{WB63w}U;c`6(O2e zQmw}>vba+(B*srK_y71^9P*CTV;*x}r9NEB*e5)`N+=&wmWtftK1F#${lw*Jt@tXg zo+miVF#T2VrOK(RxO|kxk;~(;R7rFKXWA=*&4;&NLvB0m?;aq* zx9xaJKq|J3Jq!KefilmXi|=ixikijIZGq1%EcA9t%=Bme9p z^LJm;5&)a~_BK*0v~)@)L-s1ns4uf zzD->A(i{&i|E;YTOMI_DGx_lKJ^S-N4CIg7;z@HoDC-YOzrS&*l5|j)Ovu|> z2NT#2=E#Ge=Mr7Gp5We%9y;ukg2#^zEi;r8Of=@|7&mAV5gKMn_NR0_T;yEmI{ucArw5IL& zad5NlB=q=T1oX1ug$Nq$>&nNs^vvF4zlbN(F6HTgEk`nv;^fV^r~jdU5EBP zyO7oHiZ9Z~w(31c{%Hv|e^#zqNRMdq9y`2!@bUHY5BR^e1aorp@(T)!ic3n%$}1|X zs%vWN>KhvW-z~u(1A{*xh>_8;@t+fuW$07if6dGf9{^M+m25S<#~(t(YA{fpBLTvpk^kQ*!Nq}^ydTkY5@A$wwfTeb%o?QzgS7=i z$^R=Qm@YI83=Gy4jXh+;{GrtH^~FE)WaC*45%ndLMXGu7neq*#(`7pUX$cw;bcInX zG?vfRSxlB14mDORG&!syG8LLCf48}x?))D5pDjTw8pY=7<-QOiws*tLHLE{j7!|S< zTWZ&bQh2SGhFj`3#}v_hXp~y(w(@Vzt!=)HYGc=mb2a2I_p299c#djOScBWpN{tH)2+#}_hX$M|E2`H zW)_Kf8P_&<|BQ7#u1)mlT)x!-NG*`Q5T=lK-tt_@+UziGuSHjpEw-^+eJO613{<8S+2Aj%ZHR|QX)@n4YSJDU&Beh(M zm1Qbfi&GQ`MGtZd*jh`_)UsSpq?Zd_Pg*BAqE0pnnhQxXk72=0FexnANV93g90{@O zXW7hf{-ukNww_|Snf3W%dox?-BkC4Bz+3X;<7vSTdPbPQ&Q@Mb<+Trur?i!&2{y9i zyK=!d_w6EdEvwL|w;@)6CGf)1ozn8got?7ke%9Uck1vbROY1jU)n2t;>=dDPK8|36 zfgdy7x)C&Gd$q#?yX8cKui5tNr?lFrEA5S}_Zt^ocPlvNz1b>*mZPj+w0uhRdN^p^ zYqUN{4sT^UbW9ty=FDC$^*Zdd+!;FTvX$HBe2R){bJPQA(|72_7QDj*;mTm=vf(S( z)HF1{D?je1a@#xpvFHIk8F-p(b0UR>C&ntlkiB=JN#4a?$IGIvb~r4wsr6~}dBxd;qM*|7s5)%_Y>Kl%@qD^YF7o`Bf!qGMu;5pYi`kD|r7m+8 zMHP+N#=(sj3l2XxE*G6=Y%hPiZ&q9`@px|vwqr;QT_Qg;C|xawJdb)(6eif2w;Uz& z;(G0!lKl0$wUF%>IVZNnxdPgPiDS`!FvY?xXq35bOoyG6lGUHIK)GpP-Hr#14F85;+c4{U;?TE0x1u6Q(n4 zLR2Lb`O@Mz+<}XZO!UWhrUb``N>N6N8D|rMz>n8A z1khrNG-B|z%WBh%bGaeC`IDsP;er=#gG28|H)B))GaUczArp$a_n}w$ zfP3@HR|SeGKb#5pzHpCNT!aL0l$iOK502P*o~EmD(+j-~k+X|&%GgskDH$JpV`|lx z>29=HJ-Xc(psJn~6848?OHNVMfgo-E+jF-q=5eAVBIW zIAuCxd1|aN&gE~*ne}E6zZzSoJ?zi3Ua!i}w9cPbx{s8-yF|=%-ZZcq-Ip0*D9rxT z5)4r)H+eEN+b?oa6BAkf@wvhrLhqtBWu)9paAR z?WMwXbe3XWA=JO>SpY*rl!i?R@|wSMMb$)@E3V3xH}?xQE`*z^X$dY0{UE>Lj(JkM znimobmmrmkjkigDrty7HG3vx5huxHdpc!!u=Sg~&GR@&7-1h0-Nth0vt{SB|Y?0-Z zHq+iDQ>!bbSLv7fCxc)5Tk5F$XdTx9)w5T(){wmTjG>A;~`n-Xl)r=muJn7 zDZw+VYwY)O`g(~z`n`$|uG`996sFmoQYjA-70eNh!QWKL_)D~LUNUw{4iIT|gA_-0 zo_v?>N^l*_!vpO;Eo=Q{oyl8W6t`wsYQ`qLv{LAJ>O=H{L!xXRMJFU7~SuKHRS99J&9R@BOc`n3xjTV3yXf#1yow0w3< zhQckfqXV5XfBWO=?$*^hMt&G8pQbI`Z3vCEjJl1U{*w}f;kAwjE1%_3-fzjOv`!>H zrUXUrw^gHCr;3!%OZD$}bjDhLHH|);S9;y=8sW9gDmWe2q~GrebBfN-j9xUhQNygh z-pan*3;H!;a8RuyOom-l*|z$M%kiNNiJ@}U+qJe7gcr8dguMJ#^uZO|sbw|Cuc%)o z>*+80f_2U@k8hdnr#6^(M5K5(6X~xznmp>alIgA|+d5s#zIN=HtK7~n{Jm%%>o^GQ zxLs=Fy6Aiu+wlJyI)a*gh3hDEl00^|A^LD#Lm_X_NBOD&2RFhx$-5vFqy#c1ONQ$3iv)v z@$>xY+XgdZ4Z$M6^84%S#{6 z6lVhgU{B@8B&f;)BwFnloh~Z)g<7`B%xJ*Zg+gJ)F z0usq4=I>Z-{n9N`swYyXD021+XGsVD{gub6EO@{jYd0mTj}L2qE9z7*GMX-;MKvl_ zHu{7N@7NuJbOffGqfyAQm4l*D$;r??VxTQC*mE%}8!`B)N^axP`9!g#9?um-Gt?1 zBEvb44=jW$%oq=9m|>QoR7P`2cGpQJn8{9-G^WB~E*_z7!pWY4xE`S|ysndd$W#1; zQ#5K5^~RHP+!F)Hv8-EC>QxhUeNs}20dq^R+;&O|3keSiPFzb|=3I!LpSuD}3NKo4 z>L4DUM;eBhMrny<-f?OLd3qm^4wFf*^+<0{O>b>UZ=Xx=yiV^X&*&A-_@oYKww<&im?nmON+xj2`(XPnNu<+HSnlbp)2?hzX)oMo*V zhb+lDxXwBv&!(l9jbX|5JxaW=#4JqB&T+^Z?#Tuy;3)D>@ET)LJ>ifvI21vCD~Ge+ z0>`Jwc{psQ+{R?XW6jxp5?rL7KoXYoArAN5M2=#MG74SR*X8UThaA70Tob0;_}B#Y zowQcz+@uYFdxtA*jv{f8wt&c}bt~5pZu>qEjYtP`QW`~xj*gHEtWc`@#SC4`JtdWn zt^zeb$$?U99#a=ep|3|$B5W^^XU>%N>=`|ZgeriEe5T+43Nk9V49rDy$}6lxNpFOT zda}H?dhP@jz&%1S1-wZ$^*@#l`trcE+P!8=mvrV00|V3o}WOC9=HrjZP=(KjdI=PNjWyh&Ig46=hEJ`6*rZUxr{wK%RVqQ1jZcjVQ2DmI#;V%$fE5Gd77e;t zlfqTq#0M~1GiI^kynvBY+!C>2k(oYKtQ{*qeMd;-`XMTyL>>ZcATM4%BaN|$Dbq1mQ4PKGu@XKNwHjR9u4^!iXIeI^GibgzZn4>7d*>11EoJ~-bJ1TGkMxHrci zef?Hik=or{t0x)gTKT2VjQIA6S6XxK+v-o~t?cG4twyb{eOp`B zTayP`2`NAeJCtfe0nrLr4ZG1f3vB?Xty47k+dyIlY5QYKa3H-M(bhh^&^~(GK2F&& zA=>fS68z=WF`M2o-`26X(6Myefu!tQ5$#;l@7#Dy38r`Mv~_kL#qZsA9zHJDiFTdo zcYU<#8VUh-r^mhz@A`Y&br0@NeA->a)_JSY4Pj4iOYg>B?8Y5-e~3Xob7{@NGw6|9 zAi=Qd;YWW?Ufz?!+%^%@Y&goVDN2{t}j#iTXIa>@1k$g?C5dU?WG&vuw=eB&2_17qxIc> z!_l=pcg)h-gA8&v&*1kvest?F>c4>Z%O=nsD711d5PbaHVY4T}>Lu?^<&b8?B>TCQ ze#J_D{D+Dv0C~)h78E|utIfM@4N`=DVu$j4_cm3m1ua79DF8PcM}ua|xN_C+UTD1h zXsF!)E?w^$NC}Is*FzBvTn+FWfODv@v11U*-GkYS(nRf$hd(s~tp&9fH$#?)ipQ^x z9&E&p5U}n)jEV#R2Y_z?h-3%oTf;CMB`vQ^W8PGxr3e z#juFSunc4rQng#Uix+rn7YAF2d0MvFz|sF?ubTg?0IZJ$a09c0l-574Eun%C>RWY1j0D(_aHYm`mDFq zPpK!F_Yr;V0Q0NKkiFioL_Y;1VVN0V$WiIfDDlLF{n=dIUJj zJPuC+fso^z`--fTAROEBf#FFWC155ZV2ots zr{1eEYo!UoMMcJdVU92Q1K5Bg$1Khl01p^hOk*Uu|Am7CTJoI0pqq{O4P5U4P@|s@ zHeiwpVAp?`43|@B_#4 z&HmVZh2@dqf(T2UTJ?dka9QKeol>H1dL|D2sqZ*;umm`vuNW8Jk=4rdulNLTy+`@ zbsVvf@y9HGv9bbuxH>Eu1H|IYb5?#o!I4FUjfSJgp`B#+pJrmi9#2rYl1k)Mr z$k<6^8vU+27koVbsgnD$MA*LMg)@oA0g%-%F{~oK5)GaX4+fO4cl{N7_3n=x$C}b# z>Vel9!U2UD2K!T$e{eb{tJ30jM?4<`?ATv`55M`xaugNV*j(Djrru6%-}YXG#Xi|reYKA>wok-)II^^l zsd@mR`vuJcC$}H<1rDP;EG65rDMYO}Urrfvd!-$yc28 z$YzN;@WJvyg6OPml$qKh4Bo}-!^(J8|F-e)k>R@Tc(`@cQFY{MYF|+kq7vurF*CNd}3L^Xv6trivfv^_3+v z$bP``0TH^WqN2n4JR)Dvgh{)9uEr&d=34W77C<1kA!a9J@g0|J2OWa{D_{VcOGW`O zkWzi8XpIX%=_d}reo+%ciaP}efWUcR1`w4pCT%~uN-P|lHGxfPvJ92xq^`)?q5DRK zFU0+jYldcq_ka$?=W>jv;)+Bk!$rZ(RbUJx_MrsP&{0LR70}r%P?7q?lYUS^-Pk`o zK0Uv@zP*0{p%V+m7>W5~5HM*r#~4cl1BHN zP$_+AQ11qzTA`=Lx}f>-d;N@&65}!hCD?i6s^&QDhYbMGW@@tOV+1NVCyWpF;Aw%~ z!2NhlI1ZxJX9`uYg@8W(Y@4N^z)!?#yslUWVoC7w8N<+GPKi1ym(+x9xx!nylw&>? zHvN(m7wA_h1}DPA0$z-K=-O-{fFY?x;C&6pUBnRYW8De~lPf98BYrOYQLus{Q6)Vx zFq2}s1+LqKvLu>3O;Q?Tic*+*k~NvHiK{WG$BHto@9%;o3$GVb)E+Gt;Hsr85$0E! zwy~E(ulOVqz|eKBU(_?|&@dZAFnQy zk5!XtKqnuka$36n$!!Dy1yVs|>UWbx;Fc?)&!{|%zVkM<=T@^`Y9dmFz-6nrJk^j| zpKTfzaGzvZ!i4W3vO7qGTswaUCOVbCilE4YzmR(R#DNZ^Rj(K~3S#~o{9Sv_#uO{j zB=#|Nmy4Xlq~MRVlprLzDj-ACH0-8$gQi3$Ch7L{hf2dDJa+8q@<*Q()sukAL31S5 z_=0^8j`pJCAjiz&r=LoKi)evXRUK>!m}3+?>+Wm?{W2v~u-o9IM#jd(YfP%wXf2kNK*Y&rgLpr$@`KgTd z&@9o!AvBMs9MIu^580cAMHpUKHA?JBm8^N0rPjAXo}59dZA?`7Q(-Gmr#ZwoI(WicJ3eC{bCP_?pT68u8 zW}bqqB$k@2mDp3=^2K9ra>_27(_+CGvP}yigt590*@N1dnnV&9KE9-}Cm*z3S0f9v z3&4o+!avtJ_wS4(Ub0abANTGh5it`yO>Z+no)taV!aF3-= zf41KbxYaOI5b+MNp-k{c_B6^;we5?9%n5BC?S32)p4rImxK81`?F0+h%uc|FSnGM50US? zemvI9=d>8MDX%oIimfo^-*$V_3RD&Z(YtS{Bp+=(%Ps)KrH$2WSi41(i9+6{jcF)_ zWxa9^p?R6OoVK+6jU30*W;<{|i~P$OlKfa^B9i1;FtB5;8Gi0!9ZXkvBH z{upkwh?THmPwGo_2W*%U7+5k=Mi0XAjEZ43Aq8mUAabRnj4WkFy?EM-CbSBzbh6>S zU=b>oucU!iHSe4vdo2=^l8CqWO@h(*sbqC6@B=l^zyqJzA)y?1o2K09x+8W;b(#D# zB+P*V&Chy_Jk+*G)PMRQhc!qE<^ABFgW@v@uwP{}tE)n_du`!cAYA5P4H_=G3BAO` z34Mb00TH~G&>!ry{@ZTKJp)CVd$DYkWcGLcl)4$i?!Dm~_J3-5GgC;pG=z-Ecu~0~ z?*~PehrhpT1o3`2rdLx#HDbJ~en?6FM%3PA+HEZ?(8v&kXmL1=N9{zCnP!<#g`O+% z?=K4+n<*;1u8XiHPU6sBw2>qZM76D(?6*kZCEl#x>GyFD1e0wMnFv9{qy_pxvy*lF zjmMFW86T(*uPV?9vu7uoWM$}(U8HHcjfh|Qw8yA{oG9_G5bnvlF9ScM=CrLR zBucr}L(y;qjpEcz5v+x}ed1>$Y3S>P`}}D9E1qi(8Pk3!Lza}5%df?cSeW$WYqI4i zA;E;bK3^DUg8GA|`v~#9LKKea!!g@v3fbSeyd!!n+mBzaj1Zi_Cr;@G;F~cu0q!`f zvS`vd9r7Xwd0W%L3_S^(hed}ZefdD6F&pM`om5KR`7c_A zezHeDMURK^zQukR{BEPdtFj^YIf9Hw58fN*ElHx8m;36q)tGtXvV;r(pdi?M4syd2 zrFza}+HD9%4tfSKhXS9T3s74#Uy+xLeG}I^F(gefxtpjUa8l%T9Hxb zF^emAf=MpHzmm6_@r6_@Aw4-nSl;C`A7>j&Ot3oJrkYQ20#iN4>h$Xq3nbe{heN(koQ8qxn;d>GnEC#$e9I=P)NdtO9hWp?Wco=ZvjZP;Ih+ zipO-HW3Nfb8D?C4(!>4({J3VB#;s*6^T5TP*%$lcoWYq&K662o3w>nt9)Ad28AO%Q zE^Pi;a%%j+-yBS%&(!DCC!{UMo*fpG>!Qh(RUW#bpX}nZK}N$S_Z(T6Tb5K3U}ECV zgX8is^HqvN=txeVC51zp_Im+NqIG6#$9%o{z03M&UF{cPFHsxFs^8C=9lo>;A> zGVJWql0^jk7Lhde$>3B0su8LR=MH11NeJD1vno2ad~gBawON6pLd!gKz{Q2i?|>>? z-Jb>G2alzUJ}gJZ9Mo^?!j=jKu3!kWcn5)fhj%9Uo7C}<177YB6W#|g_qveh>D zXu&=tHrpwxN1{yZ(8Vy4#c$tZ4zZb6(LoYqszH|<(nN#@Zon!J428>P4O8RDBUgbk zC711EwIlw1H$yQ4fpEozFVq9HRdKYbtJX?XzS9&16$VTerfkuxMm=MUHFr?et5Z#w}@hLUn~N0di|Z@#$2^_RcM-zIXBV*Hcls@ zgBEo&Ol?kI!2nG0L{akQ@5dQ?%MS>lhrQpx!@-9Of36Tz4x`K@h<=>NmIG?eFQDRL z&H7tJWn%oKjR3krm!<4W)*ngwji7lxk|N&{ekc2Pg&s;8uEZBdc1~aMGLD&#hr-v| z(FDERW{rc6M|>w1zQ!U11?Z>=DKc}VLwX?4+9XdLU8`aW3@0Z1m5`Vk(i|Sv0w>lI zb$U3Q#P`D-I)gDbHk+IRc8@IEn7nx0@F;?3vi^joH3vKr7ct>PZV-}QKfp0|LL2-r z9JoWsF?hm}lgFve_F^H5E#5bPq5K8fCt86Bt#%%E`u*~?^@SxKwl?)r8jQ)S;?J!3 z^hhL0SuO9YQ(m!nRvAfMS;Ab|cqQBwK83ochk>daj>Yl_xX~$}=_#?iJU^Qhzx^i~ z=gAzc$+_0ma*Ij6oTz-+Nuqq1?usv;dAy)~osjKh2|n^m)~9h~w@{9Th)Iq}pPI;y zjZpL{d4kl-wok%tlP_)Kh12r|%Ql5EIcSG5j}f1W$3F;-)Cq;I;ULMJdqG|7G%g)Hrm9&hPR`47>}1dU@HmvT z?t{;ZZAmtEOrnn=mQv5^XuZF2Uph(F)uP-x*=zDiJTrgsoL7dEkKMzP3(e$(u`@Rm zjr!>xP6dLKNj=ZfMJfDEB zByVRotO8CXu%I&1P4!u%4eA`{>fF<>>DFjl&z`;{p%Wot=p|N?YcTjl4Bz^odCI7H zO-u(f7I~k~&`wAZ8u#{A?1qP5+r>rOqe1%%$wAh{Ya17~uMIkp=Q^=(`B2~aDGT%K zV)*Iq_9<TOQxR-EhA@as3Y=!4|d^UfK967|2k7z{QTu&oGQgA6gm4M)ytW*ZEb z`QNR(yxVSgw}1ZbnE(B`%X?}+y&~DS4SWXIE=HJ*MmPd*{D6PS5h_3ouwy=wqnZDZ zqp<&Pvy#h#@N?7g>OlIqz$#tK>E;|UEL*vw_56_>Wm8vnv|Sz|`@(5eI@_-&g~lGq z5f92gFIzQvX~GVJ;LR0pn#9uY_|6B+w8+xVS$=2q89CnD~E9e29Xf&&m3a zW5;v@kK`ynjsUuyAA`kr^dEAhbK&$M$-p&LMcaRTb3Nr_lI2F~7GLN;%-64s= z?2#NwJ0wk!c_#bjq|I2E(VkgxztWvHzY`5z6+UmQL(MBv* zekn>ByBQ6%Znbt?`jH$N#>wwD%!>4u(c?qZVYO-y1yJ)`5?hM%)Jy9}a`eh&;ak97 zKO0-Qw(MYVYbc+7NXN;=?qL^z!G6>Yl(5=SU=Wob{X>o{bJvn;EBc7FZH~Y1JdHT+ zH&Y%y{y|qn{x3OlVx}rw6sM|5%LpQ97>ZJE9}WemWYtGJHCwTkx4>T=I$S z+0W6dy|@WkLF%GTWtobQ@$GH}v{rc?j`Lp+RwL&#gklK3*^gC%u5%WvrsXx&u*`qS zQ4@{%k6za&SEG;Q=<{XSDVOFYM>7nA&&P$qh1YR;L>p`M1Q{b!>%Nxo17m|ORKbLU z&R6@Og_6qkFSKJhfwZ%^#+j+=*~ z?oNgU5AROLWjMd=S2E__o;{MIj=2T5Y>tqn;4Zl(LwAn9*IPwZe{c4h4qscnf#%=c zp3T^ISw#P->XKVKJnS-@zRd<63zaAoM?MfmB;N(!8#Iwea-{h4JcJR-h{okdmLQ4B zJJ5scdE`%rodc1P?Im1V_hVAbfoc!*lC~ZNa$yIIs5V0=`j3KyhUqy~E&ANgRD-$h z=<$OG!1TQ){*sC&L^m>Mr*Hj2i+sol@+~Bvx!OBv4Kq;2%%ZW>GJMs;W~4q_mu#I| zu`^N3qnMG!;S0(Mvqv&e-jj6sSw4uld>YOw-MPXP+8_w=VqKN%zWR}QtVW#A+aCwk z9gx-%kBZ7*{K9mFCM$gsS366^l)Wh>ry57#z4(!kqeVi^EIL8+>f>`&%YVty7(T_f zQMkO$KjbJM%=YP#9NnBGcVicF{iqo-rZ`O*P%Pw09vq(GJ54o(7;)#wjacc`;kmB` zP*$Z1%)x4~lk3pvTjZ2gZ0a()hM6eILY3o`G#vLMo)avwjCnFFr(e7@V|El9`%F<4 zKT1~g=F9VOUy1~j;Q0R6c!*)b>A0K$1!l?T@;}4$oOAEnx452^K9ZxeJUW~bSsD3> zxLo=?CZ!Vj%ixK`f5_2qYZj7^p6E5(n1wX1rNq#1o z_(yVdft#&tnZ!GHYU#`G0(LdojO_oABfSxo zil5EaqpXkQXacit5U4PJBu7z+kK~9yYg{sYo^q$5f#d_-%Epo2>?1ikH?E+RWYcA+ zmTzi)BuBfSw4X8*t8{m4JCw~WtUr>YnY8!Od{~A)pbMSpz$~V^wyupOzsf~J9os%i z@oZr&?A2!vhXXgIOD_wXI#9rzpEni$K-8N$iBDg6%X$8}huXC@jF*1JP(-3oUj0js zo(v<=MX&xPM_zM({x>-qUdHvh>Z8N036W7;Axyve#;jZurainu+IIE7$PvZDRlm?^ zO_ba4D$VWH4;XH3Ot9h_1LgIAta5E!^6(my==Gp#RBb|$;ySDTH9}{!HmPZN{qZ0F zAtT(nlpl&4Jn7fN7Rq&LGs7DKZPz0XQFR%cikl(}*Z+{Ctjl5ZxV@8(FOTF%ICfDC z4|_a_X4wBibNLm#_Gf66b2QeyEM(yAgo+<)p@JviYB$eCF?m?@ppevzMu!Q{Q*J1g z`1xKb80BYKR73efwWj8n9(QOv|Mw_Su+Hwh|K`0*z7xlu$;{kL1gx>fvS82j>w43{ z<27DInd^q)Y4fwAjg3tswju^?3rO6iW^Sf^M{SJIRgO#HDcb|rPw5i}xccq)eFq0q zUQ1VvDWAJe_BFdj|Ku4TGJ&xj(C*uikUytAL@zi1UMh-?j)T7E%E$GKZ7XDB&HbkC zSbp}4B3M7vyWS|D+`nsIE0DaN5wAQ+YNLAk{AHXlB^Q1+NbEDKVLmfi*ZGiC9KSfdfG;w$uy)R76F$=m zBvjlZj~Ela?2YP*F2;_tXLYUaE7r8Z7hYd>-csYdZ5lPcr?HVk-XDe(ZT%`jxe(%e zeH??K_4~|@qC?~L$&&Z*Dz|;i_fPNivM#?ZzfpN4N1dEGZ#s7Pd2fJs|eONs8eeZ_RmUeC16pDic@~{uS&S+;^Q${<&GOi%CsiY-M;% zZRw@-{hrtR=3j>rS6$J$>%mxZ;bwK9sIff;=Qkq*&)yW9y{BIpdZYaX-lg$7KKA#Y z?4FCuuX6Pj&p5-2IqS{8*d)*k}D-T={X4`SS?*^Xd2txcdvG_=`0Aznt}dedP}$3lJ9y zkkko~4*9U)XF=s2pvcUxFdLvMBq^|tZhs!27J{ec9;nwGXfPY-!tMReozlq-a`+^O z8T3VyD+u20Z6-u~6y##dOhTLjdHf&Nh%A`K(Zl_U&ucb#m^U~Y9^~y#P?#I+?;diU zudf^O|0G9b96>t&AxBI2zJ3Ft@Q~NZWMTP2>ft(J#VKJru3@FKVZkWDJ3vUKPJl=7b=-%uy@jQNy#5)8huFTTvIxoXM`y zd-Sf}s!=yr(O>+7fJc=q6f+_2gFg5iQZIfi)>2W2~El`M*Io9eH2EV;3FdUp^R z3lAU``x+8Wol1yS0$~u2W4`8ood3u^7x#k2hweI#M>w9((qcwOE~z?>za{<$LA(+^ zOk^;gj37Z=H(_kq@Gd1@+JoeEOTt&WFEy(PKUCvB!9V%J64X-@;l42zutYs%q8@pY zNsG8@3B*7+>A@m3sWCBuswC-;Pof=pvXgMKvu?7hN3wfrvS&;3=ecC>|3!`hbW?&n zQbJNw!dg-y=2D`rQ)0+d(^^s;P?IvQQ=teBmbJ`Lzy&+Ubp(Q;$CRz_j?$L$1rDXJt zTl5cR?E7S7#-y(jVpj;G7YX~rTr$7H)5fneMd_LE1k;fv#NRM6Z_p@@88b6rnF1*Z z-LNdT?o4}RCZR_xrEXRvJhpckJL;KCcS{ON@Ru78{5@Tau}}zx9voW_ElY-XZVvvS zK?r{iNhkEoX{mwBQe`-<9=%QFj;DSe{R8Ynei5TuQ75LWocu`t}j)|4U{QCCQ!mM1L-7a=He zMihRYFY-oUQ#BWT6)DD1i&62+@k11SU9oUP$^`EagvuAo&wVmp2b7YZW|50)=qBQk9yF!n9K6+NY&fJUX6vvM7=H^3S71%o`Bsj(RC+^Q8~`Vu^N$ zvIK{$Pt|4JdgUC)9I;`^gPs^eA{w;x<&%x7#a88wF=e>M6)7HNQ>_(?^A$@s6-bK8 z6_Ls{y~+*G%B{4@oz}{|`O1Tv$|H)Z6OpPjy{Ze(s;jiBo7Sqk`Nv;~RRCpmzo)B) z4;`PR#0YCOw5=MOk~Eaa<^Js}%!O*=@OToh8Zs~PuC$s$u0j=f#okRR)lfd8el3$% zE%WYc1~&BEQZPq)txR{e?NO~BR}Gg}olqOjlxbZ_ScULy-M8*KZMvEtKy3k>RlJSQ zVVy({t6nuH@3lUf+Ac&xR7N@+TYIV$mh_-Zma$-9^!hmv46w7_sVR|U*3UWq03Pc6OZh@CMVC?Vu9Ff9@d zC8pH@*491VnrPJap1VxSnUyRCmQIP?tdH}}3d$_f>V)6=;qh8s)q+-^_KM}KB!GAH zHt8e0pv#COT)Vv*zg^bB5mTOH5<#?l%Um4;&@5oDdqHq~nnVdutdCG^kR7B87-vH& zwrDKVyBG-nj!L8l1JI}ppj1>h>BA(3!@&~@fyzLIyI}jn7i6a_SEp92aD(UP?Ql$x zW~ zhKtDE_AUB+Ywh`Ho68CAh7+(K%oL)^e}5qxp~@t$THqMLd<(uVur({BDO=g-^!u6r z1gcZIB(FzrQ(x=dOZ)^Z2FCteD0aS;+)1ueq(E0)syTi$2k8$p@(t-Syd5Y!Q>3B~cw| zO(utp_k6bTCW>%YZzcPjUk#@yAl@NfdVHuj$2U8|w)7H1K@Ziz4I!m2>7^x;M%*E{ zIE&Wtk~?!4WE`wUJYz#RG8C2!mK`wrO!K*n>%`+PZE1n&<)#A9E?M2%YYB^)DUl$j z=$R>3w0d@PyD9qm{>|y@E>X%=-kx=m6@PJvobFyq<--$ITGy+z4XSiMROzKuJ*}@Y zoUJn2UTt!s`o;BXXb8sqL$w9;Le^JX&sN)R|6+IIi~R}Z*YaPSPB@zjl)tb4;x_xG zv!t>uvBJI2N7B90MrTcb#@!-5hv;^Y-?*(N~dQ&pJ%8$e8gdkc)iN5I+e-# zCUNpo1LKXGt18Ji=3i^bz1E;-C7lxTz9r~`XZsU#yen~h=3XG$7`j6T{s=DWZ*-bLJY z^x0rwo$-JH`Le0)v0~FD0siZ5eyHWYs?bO1D^cZU%W8UYY@j4SYTSoC zX13HDua!dN$k?(wY>*kWcPlyKru(5`!xMhVyMtY|Me7I-^;o69NpP!Ca??;mtiKX((}DZ9Ij1smL;^U@_~^ z73XJWzv-YL0kfDRqqN#u)Si-)!t19gh?0xUJ0wVvG{bz>3ReV%G|p!y&85g%x9r&I zrR3fcx*hRUpvCZYiRJV5gEkf$Z@f9KSM!SVQ~=v&;b$YeLoGQPN2G30weA=-n;hAT z&s`E?a+m92`(Rw_GQN|$WZulMa_(|qBKe!#<+(MMHnwl<-rB!&aCCa_?Be>t?W6mu zbC*jXXhmh!FM*({Kg?Y=Z!s5+@-1@VUL^#rFNpae1nqgXVOj2yQbh5NQ4^HA+{5UO z&s{3m%A*H2&&>niyKT#pzsj%JuNhSv=*1U^lvgD z<3d8Y%k$Nw1e;{IT{WQG<*w}nOvdPDQwCG!7IQ|C$aLZHcevao1VMA4+@+L{P^%Sp zhyQ%;l8B|v_Uw|}Wmnrh$23>v2rvA7#2etkLq;C*5ciGdQG?>FSkUUbUHjpyW5j2oGvj9PrVOw+K^BBY+ z2%09^EkJpUeJBfppbtbTu3>VQdxmcEzSCyMJmbBn;`4RaIB^g(gq4iCSm;=vmY2xM{iEfVWHm-BT8;yuLCYoN*XhONmXIeTfmdE-hT5U18OM6+($#y5@ z(D~e@B=rNNw<9ihIn^DUv_Z9J{dw}~-gE43=v=~RD0g`#azJzc%hVgw2T!CBV<6}n zv{hf;v4N*YGY?#vL6ytma+kAXbvjV)a^oS&xrsK%dy5csZhA2Hz)4pWR5EqFpfL=S zyM)?S=1ARP8(ZVnU?HeG0Zm>y5d=YFHtk%yPw3MI`9Tv}xI59Yn=ncJA zB=e%p70Nl}JY=bYfuMOgT!~Qb($Z^Nr%*0W4SL907mm+e4%rxyc{6PHgXxOhvo#m< z-u+?MsheA*Vd_`C8TSe2i^vb#IlMd1PUgcb7!YvAZrHw3jS-W(yyGAF zE?m7Hc?*}joYUKj&0XRlsF^VQ)&c|-i-FnxCsEz^h#v-mqMWPYzFayg1sZxNm8cnC z?p$HSLuZsLQf#08eLsYDBI?6nxg=w&aIs!Z)H9!ieGfYViVc|}T;|C91x~InF_vMu zLnQ8hnx>${l*e9XUHjQ1J24P+#FMs&dGkI9f+n)L@~sIF6r8d*FMZ*~D9&kN(JI`mw}i3M4;T| zXrNqCpiEprMX26rkRp`3%oVAObRG>>5f8%UE=NP|TLoR~oX=hMOgRNYxyyI=UQR8` zU9R7nk`3i9FJ6T0+Xdw=6T6NG#RMxUkCqi-a+l|>DW7@$_Osnrxl4^djxLKo^57dDJZ z=cEi;g<&8lDM4K7L{S(fcNrBLmjL~!_zBqAtxiHD%AXE|T&OQv3b5tqAk zp{^z$xJ__AJlqTeLBo7wBdH=@{Snzhz2{CO2b8-ExL8j2UqVne^K=CWf_@=Y3bKC! zmp*YA3qc1&iZmM{En0C9G{X3>+j!kOdemgG(URPyM6@SO5%N6m6qLKvYNB;lMjVkT zRe>G!JyvvgO>sh*y9A*Hnr*mCN{#!YuS1Xj(Fr9ab}E5e;87)tZzZL%`c$%HcL)U~gJ_)0iVo`%zXdU&)h zZuchI4EV>3kGMHQIs;&O?Amh=!XC zEQ~fWA(`bOhNT}qdZFjzC4=}I+marpHoR2p+?|qnn)y1%b}#ZapKfIu^V&{h)ibRQ zyy||^4UJ_Fb|}qu-=gR1A}HSVbmY2$p{8}qbM8s@OA7z-W8rOiS1@t(hTCK3#-|^6 z59pnFn>x}t!?*F0&D05+)KQo*Pw(a@Q(tOR5z@zkYVJwCsX@(+ryr~De=a%GGCehr zBbkcJUGCIQeU>`nC%G(lsgIs+qD-5}g>siJ=ozGB+Ei8X+*lHNcJ|hZnNCUcRPBxH z9_Z1*MylD9<)-(U_$ZpRpVwi9ASl#ex=ZJv+&wZmECi)xa^@o1 zBt(2N{y79euWo(;$$`6cUu;o%A(D4e47pX3WP@<^^_@<_jMXnFXZ6HvI9;YE!Xr9rccv+%bpDI!&LhHIsetNZaX;KdLXWtA^B79Xnle$xo{+aF#xF+DT; zZPUoIZ~t#EUi3FrBlwed6-^`G{q~onF#oz~M6@DKB@}b<{;+8T`|ZzT-CT;lc?CVqS9bqM?&l zS9A@h_=UTx;vVd)DOuOpvPZ)D20^d%QB8gueut48|b znoQaHvj9YiTe|Bm1!5{+4%>C7&?-Ht1hyjzaj;4j`Lvjg9| zc+oS^w?BGzq7!@Z4xrI6GWW%A|AmW}%F_MsxOf|hQ}*i}d{Q&*N&5krh(7p(lNWdK z232LBn8IDW#KL)}>4&iwFHL^ldFx%4)|Lwwudfj!)HJeq@d_8v=>|hhBkhG#{tHbb z%^vwzYKHH`B;%S!Ogk>5Lf`(_i#N*L@6N4u>-CH>9DiuRE%6ucX1VlaU#>V@(?}DU z-~7c(BgVv2HR+MxX7^#x(vPnbx_BwrT*m4|=ur8^hEu4IFmitZ(g}ny{fN6BGc)$$ z@Kme6a7Ga!s77Z0_fWxz4-6%JmSp^{rlsqMmVjOT)Y7iIt68JP}2zJ z;x!W~_k@~8gv0}-9SbhCN<~9WBlwH=op4gZ!o{nT&x*Nt@17W4tGxf)i}&$fl6ZX6 z$Y_`md9b4K%g>*nrV;sC=09l~IeJ$945n$s;no^%Ow)+`EvwiV#S857O(SRFY?}9m zYU;mk8sV_k3tDIzNmKFave4dyCS?$yy`xs&pYbB0VQJL}rfH;MEOC7P;+?7)pTBtL zrpBR*H{9rZ-~RW7(%G6fT&3Mrm<%ow{+1GA-JF$m}AM@>h>%DnQHYd}m z*SFv=NJ z5z;Ay10otad7-M2sWNwp7=JESa zjrV2gIp$1k_v$HCkv+faWrA`YdblCjIy{46H1JnT4JIrQTD zvTdx?=`V}U#G_oQ#@qPA)QX==jKD*akW#cfrD&*X#Ck$kCW*g@wc~r$rgl)N^*uv3jMIwdV5sHQta%5w}h|h6a0u z9h~Ee{di5A-E$&Z78s_#j)aB*-(Od;!Fs;GZqD~R zGAYzw$GJHjdsSj&(uUPsl@wRGa55>SE9dh5x{s2OOp3iKPY%JLC%wPaU|#MMC{`1t08i{dMQ( zuSz^e#mc1LxhfZA()bP>N9}>GN|!BO87pwqWk)5!A?0NpwPi|RIY+&BlY)J)BMo;| z-hP`7Biz?Jm^t7^3USnnb>Vb-WH206r*~h(E#cmwJjTZL5A&HZS0#HKj-!5aRk~NK z|G`!HV~)CbRciF*KU{KE_Ki38myl01($Tb}H<|C_w{5b3IBKZnNjyhQGdro(-ag-7 zH-$SYbN*uuanv|We;xj)T-IOr)m1q!lj5&RNGAOUU6nSi=DRQ))$(<>-4c#Eaf<)K zcQ`7;n>Rz22CujMDMxKnoVFceJmi?beiM=Pe*UTqRen?nan$*%(o&%# zgKmq89fqU&@l@p_wB>KU>c?M|H7K_UxF7%c;#Em3QepyKl_c{V73#0E^2f=f7>??H z{up#sj-7qK122;932qdOa$*#%kS`|DUE z!yT~wbyt+v#VqTu+ux&n5!YXr?a8X%7*X>D+h4ceRy7FMUsu0zt;v7cU-#zKmr>}d z6xKK(-$vS~O%aQ^Dy@-0P=8$G5vM>#GtDZ-(QElDs?jd@L$6Z zan#&h=}Zz4Tcj+hsDpGPgPun4Uk@gkE5KZpLwkq>TF+L?tt6B3HBC!nWYR&KPm0-? zt8$exX(#{mk2z|z_dfA1k*iasPMD)||JpAPaYrTEv8wfgOHG~+!sMN#LC5~XM=F9F zDip47S97*{XkS~t|=T~602@80-N9sSv3JIed|w8!7p_hUF}%H9WMiyU>@MWA3V z?n&Q%h@)Op%HWUBpwX-|I*jM25_1C3c3-!YF*PZF+s*JOKaNXt6Y|o*( z*tanh&{etp>ghe>U#xluV-8$W(X^Q!bKOCdSh#pqo+<5TCrG}L?{+rqc1E2cbX9tB zjb`&ItXKVb$8o3Rm(iRT-l;@y7;3=&DSimOPolFn@(@!u)10 zGC#&e=BEsp-@-Tdf6e@;zh!=x8UCbQ7-D`D$8_-R!XNIyu#N6!nRhkyFF`a$~MD=$G3* zPw2b9+}|?4mcvM9LdI~lgx=Vdez~#N*_%`gOwohRqR{&HK@d&*#cxi<&hU-rwrc%99+3-5hqg^Bt=*O^h7j}HEq zdmo1R72j2#|K+w0UHZ#y#*v7=_{w_Wn|tYb_7(Hvvwwb%Z)OO~{NTsZE({?SnBPC^ zI{VHq_obb=oi(n>)&7H}0GJn_q4ZSjwpd<|ib5E#i&sBJ+cOxyjr7 zA?6o(+jYj9SrC7niTM!j48SqJJLHx4U+#E#JK33l%-k+%!DK!W3&Z(e?v9YN-f$%z z)ccZo=7;;`M$^DG^d1SkT>Rx0zr(~6XJYgi^UIC9&ZZ+Gq3dkl?hNRc8)AONEq+_p z($ks{jJWr9Go9A=EP2WE-Rtb<}@5cPTJ3NgP$f?s1K=e!2?*7Bio*igK39Vl_U<^eh$V*eGcmq zNhuwdjY4QcQJ-vg#0ls+dmwknoj66AZ!^>`y!4kFz5G1;4)Z&@mONxR^OH9=NyYqf ztCcgoFJbDB!ToaUGhKwoC_qUVrB34t1oX@8cin{lViL952gayf~C0^4Ir^|zV~Zd`6eki@113G|0n*S;bs zmP{jdD__T~9MuS$NQ%7v%0v|2BL9Xv^LG~5Q?E^L_dF%8H3-fB3cQl<`?Nj{Byp^(a`GZVHxWu}F9XYj7Y zU+(AT{9}Ue^)H()`_#qjipxKB@52cm{@kbT^$p?p`H0{Dsrw7E+<)~`H`a64lKF_L zu-luQXknQ72qcL+em>&e;(@nLTQRIL&4}>p`3S1~(_hU;e3j+K%||Taw^_MESdDS# z+?Qi3X^ihkQePL7-GmOj%Vhq{Hn{l+<)fG^_xz{sv-cyj`@Z_r#d?g`PhFKo{?=@U z(-WZ7OEOck$aDrj6SI?r5p*?_%7)rh8B2TkL!U-w~s4@Y^Txg)H|s z2OjoQcLBczVl_tmfrtInUBqv!6(rw&>V6l$v8mHupje_Y276QRVdo>%`sNQjhnRGN z&)T?8T}=)`GOB*efu|nPpTl+_sb|NUfn==4c-exdJY|N6J=|`NV)0XV@xX(!+}Kau zZ93bk33lKPJoVu}!EfIlcq3&of$NuRjQhnuDVUKD(onvDK6P7-te{Wbdx6^c`3Rdr zH{N?y*eo~Zz{7p&_J651#U6M+)ELb;rj~x{F5_=s9eDUGH~zrGWx4+*{ANXP8p?7z zOR<{sF3}j9XQLUv)fiizNHb^cmJnAx|7RNG(;iYrbCR582c81QJVZrd}jF?usOa_5WBYmDzt9fCB*kEcBaFTI-o)P2muvSdC& zwA47*aks|;euJ{y6k-A2JMiZ5+v2D0Jbqg|@bs|wZQnU3+<}Mr)cp>A+irKqe-mC~ z^gmz00Jr+ifftru{7%V7fdl`ki?H$JDiRibwD_qz6kg`B@Tm*ow|6w>46vWN-sdWa zWJ55Yx|cgR(^;n2&gWB|F z2Eo|*2n*&&9De&k@zQS@ep~f?gpR$|31~hd=yTg#Rsy_zua*~XJ_21$zDX%+em~-# z7e5<*KjOOwUVGizVQ4ff7bq9r}uI@aTFn^Db6QmYb7qLweImZaLh1 z1pdJLI?G*08U4^Q*{ZaxQcu8-) z?^4Qssf4oJ`zpIMAdT^Z_)+YqE;Jvpvc@<)-3X(^Ym75Zw!648Xb@P9G3XQ5)4dd5 z<2REaP7Ho4U`fW|H@BUF(18~{djzg*c;?fh0L~j3oDbftnGo z6IqFx_2Z~n&>s$1YNmv|wS<~E@(HYxn)Rc)nbxh6n%TR(UQW%}O}*>yr3HQV{8)NI!xHA`Af&C(XBnZ$-%hsA6N_NWp%CypKE`s!2jo1;pa z!i}&a3uDS*|1`JIQT|Ow6|NxXuVq6%nP`Z^o3?5M(qLt486nW1pVH`I(+ zScv5gw8;f!LvTmcX0xXYrkoRIlj{kAjy^|7NQW$~!`-X_;HQK&R#lS@65 zz#Y5El^n^wK+VK8sHy|y`=h_1X8Mea)GX;N-Nrboly{i~BvhstYPSCuQ8PFxmYQ*p za4t}@K`b>xL)2_+k(wC_TbvGlL1Mc|&C>AHZ02if*1^Vvqh?S1PxD(DW2l)9hMGO( z8Dw2X%_P?p=t9)&I7H2Q9%U&>pllYX8A_*gud=ap0#uNL+Fl(1{b|xsh|Wd1S6u5j zh1ul#DQecB=y7qmDJRQW5{t=()PG?d|B{uA&xTapv5%*Ajc_!0#d~-fb5v2vvGrY* zO0vu68VRIpRS%C$s5vJ$Xq?pdUWdYNO$SjNt&?c91`1xU5&$EM?AsW8oUoz0fiwlB zaq+3LSKv&nN&L}>f!74rPOhVz5V_#64Pp4aj*ORkucgaDi)Y!58*)!)97YVi(@bua zj(~CS_n)$RK9fv!^7s{Ts33=JtcK$rLE&v^lPm2=J=gpum+R%Rxr7p^=*9!T$(3)# zJ?QhjQLZ0QvpqMHai*L?f_>TIpJr}Ol_AEIgEqNrR69(eKg}i7>=XS+{@d~d@wns; zo!7dfsj~&#jme9qTuOK6)yayaIXpGf->#F2-Q?0ad6XZM4S}dx_V5$f)oa5>RgaKn z#ZMy|QYTAnaM=+3=E=(3J!6OI2=FzBOU<;ekr~m?A~S-2H!>q~V#Xme>IGzGVKtwF znDzMqGTSWhbI6SR3LcqJIJ2*W%p8azWM-*|L1y%e$ZT}~Qe@`*v&gLaD`d8ZYAyV` z$gGX2d3yjO4w>alW~Sqi*$GByarLVlM4E^BeEs2HKxQlf>sO1+*uO$%K9t`ev-WfX zaXd2P;8>4CX0=#k7M9#Yzp)92%&u9mZb^oa+5LBahRn#S?f(igi>4-9j?DTj%N2AC z?$J>!A~WR$WTtaNvrpqsk=cWb zl;0pTLyA{lA+y>%w`IsoddnWZ`RneD?X_jd?Cla{_5_Q}0=gN`Eg-YKkA|6+AhW`% z`VhxmH&=}o3GBcb?5h zx&L>_%n^sou9mj#&Q5@fcgQXvv)LucEX>n$?@Gw5uTB{SAu~e^GP_R>bEP04rG=1L z_)+p?A|wu(Z6iuoJi0P6>#gsKgpirrz{}?XnZE~_@hu>;i?YqopJ=8*rSWUD81g2B z%-$z8DWMgOb0?jJ4Er$&j%&S;w#+ zXRLLW1YJZt{IVgbozqb;}rT2E5k;wnD|nce%0 zBsH0mQ8UbNr0S_(9?Us~}e4gfQTk0mp1%unTPhs?3(p7l10W@68v0Dl<@JHU+B8u!CI-^97*F>~~k0 z0mlp*$^?$t*$;sk=rIF5X1}k; z3@m=;+Wb~z1{|~1wEqLg3^-;4%QxJ7M!8gbZ zIA*{xTe|H89J7fw$9r>=NWZW-;Fy6PGic8}(s?vkMI7{)wQO?1x730jv!AH`|No%J z3^-=L8JK|{v(*4IFqgR^FavX$zc7>uddxtN8R#(sJ!UAk>HqZ}vz0@cpvUazLYZJI za}k($7iZeD&tA-o7tT=KcJth}PKs`^Xu zp_=-J#-`?$*0%PJPGnbiPj6rUz~Im@YGib599}o^`^9~c4?^TgZs;NSZ#U>d<%01g#(I_#V7<9isf^-db$fEON>vP{K&7!6GMEjZGr}XQbJj#!n z!ww8&4?lrjy*6xA^$2NJ{4}B=b+W`Jb;M6{wp+h>vNCti*kL*X{D&w3jD0-}Xl6h& z1DcsyA3CO52{Rw%(4I~puFcjT-{zpk!Lgouz2Ud+WIoJ-Pfi`O8@2~+X`n4leWU|3;Xoan!#nA@ZiQlx39!gH{*EN|burn^NudoK zGqA`B9J6IdRs5Fpg|dt4od(oOw7X36x&52XxHb}D$}UuP>k+v^;yzk8ujO^xepsvJ zkxG?TEA9^eR%^a74rrp)< zsA$U4;dIC0ZpZsH5AzOZ_1LZsm-{&^ovvDycRN4mb_8^~Jss=n{AfhPigbTLt%~$8 zX9`4mT5@$Gy=>33c6r;&sCM}{DFt@tpW2e19q1GFb#}w2X3Fqnw_Mzls>x(Xz0gf3O>FuaF z)#dLOI@KK<*FV)0p35=a8(pP2-51{(I^CZ<-akE%4jeP!n3cIrjra+W2TBn}lzGrE zL1reJNG29DWkej$Nl z_RYKiaLiT%%z$IIA}|Av*)IfUz%c`k8F0*iWA-m_%)lb&U-%A<_1v{=JnA-BhAx2=bQqH4X02a zVdVY-#3Cgo^ds&h;{K;;3QA0QMm(st+uiZs^w~mw#FMtj|9k}l+)58U;>AE7AS5VK zYUe!S%`6@u5|&>4PRU1s!zw^bS)|MvVdKeFBrN)mfdhTOO6q03~gN~{?T)!lws5LHl>IyD+*L>{b2EL!c=9}{ja z9(;>NKalC5Hocia@ST04UkWVdyZ^sXy!4B5Cl65(6s;+B9*g!D4^fpZtf@>KiwU<1 zQCAkNt*IG{jV}t()G4fOm>P>qCl9@ECR*1*uVb%uBJ`nS(C4qha{e`0nEOG+JY#lfB#P!3?rvy@Q!l zg6um4rS%wr&>36brEPKVVR;0aNk#qMWb?+{On?ke-Y7^F~? z7}HY~e!I|3JSn!XHvUmh1NoIh1C8m=Nq15>vk$fAy=A+BNKQa?mUxMNlt@V&?WvAZ zYeb|ZjXMxSu}n)vOe~XrF_t;He`ze!`DbI9U@jB%m;uKOIA#mT3^-UlBGO^$h4Oguxcq@eFmKcQ?^`5_BAxF>a7UN(o`(Ceo?q>SbyIp{;qLzXIH zUi4LYIa~@H_cSfNwsi{S^3)7j>%zTuw93Vvm>RM%BEti-hg&qc7mNSzEGzzZTvGi1 z9$Wkm9J7T`CUDFai~r$uq)`*uoQTlZ8k`xlwG%nqhzM&PcEIH1aOtUhX8$m*PH;FRAubC+MZQj+n|9#a<5E zRbI(`RQzrqzXEW~fMa%8wJtBh>o+4au$8$QWCnW7fMZ5LKWIcE=1xG9mrlepXiR14 zzILC`rw#IhCbV$(Ux>_rV+I^E;Ftl&3_@oA>yFuySY{?6Y#rL2!TQc!H&!bj8

      9Z_X&@s42NAW^q>`SYW)mV+Xa-eqY{oMWIby_-C$9RuchKx5n9q$`& zG$Q7hXnH}TSyOGgFLa{C@>u^wtF0i%WShOL=488*a_D4-t4{x9r@I-)6zDNqg3Jsl zUVVkkYV+KdAv3U*33|*L=YV7OZgfs7Wt~FiR8`H$(Qq^I-dnBal{pfzk&Z>ZO1#rw zN^&Tkc}JSih4@2jy#!^5fz6%-9wuXP7D^y@!CbKJ^hH0Dep{k&?l~^dntx2uFka37RTotLkwB#&$OBZapnn13>UB@w=qj56v(>m6pWf_ zkDfgOS2jHJK5attNO1x} zUvZ2YY`ajLSV?C#8lpejqez)lJvkI2XEWQYBAHZEg&2z!jqP#rj<4;M7~fj(L1z~Z znSu39V6B1m&64w9?K5fj^u;xqVveeQR5#N)#&ETS-q@c0q`@4vf#i`&wSg4ur1{KP z4`@ciPMU9_qnsTnm%TSTTCE&5J65MNFgxC4_B-lkJxByGQGmf0%wkKT03Kw@Lf=LK zJgLltvUbxCnF}qC0(>@0W|2RrTbi^G1yCgOqRkar9tB7ovbt~C+7-yW5Cs^|%jI8) z0tm6(iLf;nn~wr)Hhb#LxKB7=M1I)L3GU5w>(9_4>!zHavJ8OcpU50dLXGdtS(E8^;A4>_^~$shVo-K;olD$=FtjxAfJ zFyf&z$`vWLZ_|eWi4dpI4}+F|e4WC@dNnA+)?`2a@%Ls=hp~0DRXI(PDO)bNlgw5g z+YGEVV66db?O$N6tsL|O)*7(Zz6yGRW;D=@_J0}ldo<3uDUK zt=XsXr$NsL7b(99dID<=8WRYB#sr)f#{>$XF@cI@V*;QV4Onac6V{rLWMU~l2ASRa zj3hOgl2J3vaO9osmaE#9AB7kV#UQhB5<+TNWVp)$GRv2reJ6b{sjf3MBfgMhEq+P> zIA#oIEVcMoUTWMGiEGe5sqhUnM%Ya!zd`{DIs`JdvFSf|!?KGfPV!o+U%(t}0R?8!mDy>%B9saG>d}GKZL4Y?xOaX0nVqB|< zc>>1_IA(uW%o8|fz%c`k8F0-01&-O0m}kbfF;CEpw&HaM);DvQZ&NWNzI)w)^-Zw8 z`8&QtK{HyBrXI?riOi2Xcm6xnkEbdhp`D0Y@*V0n0SD`wV0{xbqx~N^W?+32IA+U` zS^Spt1!Pu@L1whOO!G0wjB6ti4w>l@VUQUbgUr&v`X+G9fMb@Qcb;b$IA*pFy~=%g zMgyd*0x#8Pln2O<1{Q1z+z@S15vn&Dq(~klw@^3BCPd|qpEM7;)+thz7^&)^T@U%COB(LgiW+(et>y}3!GU)bDK zZ`{D#^kD7*^vp=rJ@o8EXBc{JW_$qplP7bB5eucS?n4wfW~+{6DhrAQ6dO)q69fXp zA|)pDBkm;P{-)5a~|<# z29DX@hGFONWTbeQUR7bkSmJofpjFt@PSM7xn(@?$zB*-8A!tS`KMWkRC5{fnx?7v#&y#@uk<8e4+19_E==g zYfj*pm8Z-Qv4`8uQK%1oBH0%_m_c@|cQBJmkbNi%IA*{xd+Sc-!z>8aH`7_J^aU<{ zhl2G@u)bOQLHuZZu6X}Lm+3mBL|kH3QNMQ5bp4=pTym%QfL`r%!vrEOb-ZZ6aC*8C zMj4+@EHP-Zb*9O77gq)i;-B1O1{|~BjLg9L=4y}`Sl?VRmMKWgw;!|5WObcT2D{I+ zGw6PmqS^kj>N}3mK9h=H2(-@>*EfdWXR6W|uiy2|YJQ(7$wvpX&ot3&j@@TUyQ@CG z&m^%S*Ws&uCZTiUQ(gXkp;O(#as5+0;kg{sz0uz(hn1#qBkai97dA5t95djUjrt3T zcLT?)YtuwJ2?q)1W_S}3@5Co6>%oVvY|R_cMj6y&B&LVq%@q0*nGA-)7N>(>kl0RS zF-t^P$iiEw)9z++SVveY&rr~oEt@p&U}M5fnm_SB&2MFF15KLiK*LAY4|xVzmra^W zt|`!kML8bd({ZrpQI?Vf%I0%0e$pJJQ@U5#SULfkG)HZ(4(Q~crlSy@1CH6hz%g4n zmI->yeh!&|_01)v8^AFGju~*wu*mGmsY7y0Nhk%xJD0>{iq>eh>``+Xw2*6*cF(pFFmXnd=RJg!$t zCqLTAs$nW6+X@^r&|~H*6ycfun)a}2U0#IOZw6+-F4KnNV|1ZqPWX@4XI% z-I@-fI9eysXblv+UL^oV7TLEk_&8xhcLQk(O5@^FWv{@QSd;jp5d*IYuAN**IU#bv zVH?8mc^w%q_g+hvgBH)S8#m;h&Nz%1dZ(G(Djfmi;O{?W_k1Rq>g4e&;-SM1Y-2SX z_XrAaOQ4+7j?{BO1LQi0e}QARax4=#X23D~DwYYhGQn0R*vj-~AQsL$O)tG=58wO} z`WxG8Yq#xLTta`#oiDBjEumv#nZPlNVqO-@?4f%Qh;ON7qt9fmN~{?T)&1kLAgZ7$ zb)ltJ&Z9pD*HSCW>U3y~&ddO6sTKWFV8|TlP!z0mtndo?DfcLM@{q-r+7MOQ!kWs& zZ(3?~3TqqYTWUq?TIhjeX8am0hP+9XSn@ux+j8THh#PK?N-V9>(cYquk;O+~FoR&Y zXFdIz^Vfl62DUO$Bco&E@VbfVnb|osjBvv?p>X$4&q+43Uds#j$TXwcBLW<==?PR% zV{uv<*vf=+_4G!SoM-EcE|*d3L&sDr1@*<&Y4`NSHJP&Y$G5c{MlusJhN~s?#`g3l z4d$>7B#%_84WvwT1P!FljP)!n{(qBdvApTRvO1AkxsDL@n1LQM=V5z)F(1O60XS{{ z4teD*VZ65APIe|BGq+1xFqu!p!f-*`4>{}oJ#8O2X7W(+e~8nXLxoWBzk}?R+2Dnf zD(1AN^wrk|k>8wDN81*Q|F@napaPB=aLm5vn4w>pqkMR0yQFLq%l#xq1Fu5!KW4pL(1ePV#$dN7u60^ z$>bKA;)xvIxglGd+OCsS=iIhW9vG=Q zxIRsAi1Kak#m4bY9sTu+&sZ`Z8<>R~5^*cdIjXF!Rw5KKNX~usjOZD6H# zf^@{FokVuQuuJPJhdx11+Rp*GO-{7HVFL~u=t-;78JHb!G6N19aM*yuc9L5zgBAfC zHt)NXvR^6@v9bFqyEOEt|A`LU8Ars3FL8gH1av(ny&1V9TiMS3VyYav9<%SJ^eE!4 zM}wzqm48Sk)l?zIVv}b3>}IF-vQUgC*3O!0bzUdI-Bq9}4QOm&j&lVn*N^IETDM9n zXYclUIhA9V3!zrtmX%1a(>s*QV8%Y2$LQF*j*!VOc({N)u6MYQGnX9&KT@TRDgqkY z>IR$s`nmwn*i`Lr0*&omCIJbRY3h#gg#E%CT7L6o8bzVnaSLS{y1Ak&4K@{p8ID7P zO;h7(FbbftePJB`k_9w243*2xshX#9Hs4UWPY{)RTb_WSayqYdM^k4DxEq&Ixz4MT z6-jfW;WjC~%98rqbyCOTi&Oe_P9Eh)&5fs1rVeHgKY?AnHVm;kq*?LPh=$b35}VW! zKgro{{pQKa+&yE5=?JjY3}|eB;kt|U+!Yg85hNF-T3-+oR26m`RHcEcwC}GAkX767 zz+HFh!}-iVdEJeaMN^Yuif}bXE99_6xH^57KO0Q%8>aYTw;z1Oc8EPwJEj;_gMeLd=akZWV_Q>MY!IMnyV_p&7!$CGnBVbgj*tb zV0NTj_TKDhwQ|_(*zcoeV2%^aaRQAk(%w&OSrM-OWT7HOlvA!)$03(VxQaxSa}^w4 zgd64B$w!b|ItdlwM!8*-Z9XwQnQ2f7G`5@fQ8S$alzR91Io5iT&LV{*6HECq)a>48 zB&o@ijGAGFBQNylTJ@6}8<^w#3n!Jx2a#nbm13sFcG1}2FHtIGf!7OTLu%vhOM7wVe{)E=uefoQ^fcSig!!9OqKgL zD0*Bh>Xu2GstC7^304;Gk(cExiABVO>eK_rY$5siPjSpvPG*9tw4Xy}z%c`k8F0*i zW99_+W&%}d=SGQTLjs{>W<@tAs7m`GGV87Hik!&ibQ^g2Tp*LScG=jv07WEjY<)6M zNFvhC5gJ?Poy?cA29DWaznp#w<-PcSA%;@VCATtAPS!E(AGULu zX=Cmz3A%`Q_+>*$a#9vD!L_VxKSi7)KFRdwD zSB%4@7#Xcsq?yz>82?lvtae}`*|2zE8f|23^8Ce1Q#12d7OyR>tZi)H*uAxX=iun{ z-r2?VgWE@U4^J;|A74NJfWV;OkkGL3h{&kunAo`Zgv6xel+?8JPZ^n6**Up+`2~gW zB1Cb?=hCwBipr|$FU5yy>KhuHnp;}i+B-UtUEMvsef^O6ZzQNn3!Ut6)#;z?bT{KjL|=Sm zy&7$w&;I#6z6EVR?ZOb^@6z`FdMFb(X23B6ju~*wfMW*cI3IP_Ef>=GvJs3#|$`TQSKGMF>}2< zHkVK`+cfC071wl;Z^b?MGwT9-ZsOMk6cX&0tPA{895c{k_7|?ZZ;%;q%odSZ8&mW4 z07fm<{auXvb0#y>-(Hfr+y3qZO`fh)32i5KXf8W6Fz~I>K?x64-)}G+#O4Xi__>RDy(B!f1p0IQxHg?(z z6l#kfqQO3td|z!xIkcw}h-+iEqa4&YIM$O<^+VfHwdxW5Ic#BIjuXsrf;mp?*t!6D zpcG+5nFn@kJy6=Qpxl=yhW4C6;3Yqi%Ync#v*z4Jl&*Mm<@SHzm`&FqCE^mRiu$#a zrt1f-=@p(rVCpfUY9=}w8{_@UOkw`?~M$qA^=5--t@5-EwJJ=MT5 zgHEckFDjUmN=?ZafjOyUJm8qM*~?moF0Y0Kj@i|?Nw4rL) zY^CSP$uXx`?*jiaLg8g8F0*iV+I^E;Ftl&3^->0GRF+`nEi!c z$kkN;gB~-`V+OV|{ley^dgBJ>rU!Empl3#^?xANVI>XR&GvfnjG>pt0Ml6&Lwlb6J zJ~KPo`76?+obtqc4>_^~$saGq9EU zi>^Dcl?k>o!B!^dG5hB_W?(DxFPv1X0cKz;b2Y#WY-O%k{13J=e_`=I=rIF5W}wFm zIA-5-%+UXYtxT5E$@4P&93KZB^t^WE;3;m%T}PYV_w1TJPwtM~gvMFhlN8F$YODn%8Z`)ThRVwS)Pf0#^N)kPOjN{~<&uP@X z<5F#3KF=L}wte$}j{O|xg|x}+1JCGtb|&>JlXS`&Y;TQIS>vR%PFH1Y+~9SNAy4JA zn8!vz%3@U2!po&=c%$ zt{TGaJLeQoY&eDeVih13DKViRaVHV?KTT6mV#+h(LABlPj{m057V;yWv_<~sD;VHb zdgu`^2J!$QL6K5B=Misa@c@yq^x}6)J_;OG0bM^7J`yexFvS+OPWQ94z3 zFE^K@?h3yuZ$)1gw#gMc)@4ny!+ypruB^b8-7reD4 zrTw1blbsBo&&%4x!-$nX5|qHJcMc=5$W4w0>Cl*YrqV2qkRo}f^M|4K~M62cnTMm&3c+Z z{mll3_>|2?mi*<-CXPCmt>&wJ`dcmEy6(2Sa+A<@x*y6L?DQyTr|$GBo3ct)sJdXS z6X7@-><&!XdhHJC8zz|y8P&1w4Zrqj3gq4)i7a)sNPzi41>RS6@5YYX4tbSNDRyEn0~mEW_l= z8-*@kUrAWB?!@6aahyX_MLM|d%-tM?ZCYPNaj@cBxL^OV2eKj4= zhMUakb7;J14U^)AyFzm`VSarLoB4)^cy_$lV}mz6rX~KsOrbM*EjJW?+BwAC7tg z$LxEM8F0+LbyU3uj@b`HX23B6ju~*wfMfPAaLm4q%z$I|*N_?5-~5WqKsVZ1WCps? zKsQ?ABF&wLZjEw9n;$YfX^l7OniK~&0}7fyv6(hB^^K$kQfbg~xQI1t{?vRsizS=T z{EX)hnr~ZPm~VxQW5#pW{n~sR&(qh?YErayrujA;+N>=i@y%G~C%=~mUt^hle;mt9 zJdI@re~o1}p2jkJeizFG`@EF8tZhRSBSS85wz%i4``z@CFZ*t5) zH`+f8%z$I|J-`e&X5R#6z%l!QzzjHMz%c`k8F0*iWA@5m>@ST8p#Qta1b}1q6_^3X z>?|+?j@b_aW}wFm^qBoRCNO~Q6rUZ5m8v5mKG+$&o0A}!swdwx*ju!lo8gtJuPr__ zIJlcv(31MXv}tJcU^l-UE6vD7e0Y-7^!@9bX|Dp4JEl*n3!7(XU&n}#EGq65!TPcA zpJg|VteWo?k7F6e@H3BY2Je;3OQxImHI42T?R{SNO1GR7A3GS_D}~MsBW^a0o!EZ? zW*pcGg*Xt5{!?JK&V`2Qy6`hFBS9}82aegl%rOJ|oBuE}1CH7EAT!{YeG{1h$Lt3p zGvJs3#|$`Tz%lz5IA);7>~CCmpvMgKn1LR%=Ij5Pu}rYP`Q6A2IA(u}%mRN#W=fsY z)HQ|8lC$!^A+zH%$SgfNn)X}BY-Lz`>lB#*$Lzz-$?MNZs#OPlgWFsgE|SZdQ?9+W z|5C>c0fG-e?1;a*NcM~tXHlgckGwf_OkfMW(6vp+8W2aXwV%pz__ zi~JVK{Pc#0@k}UFywffvkUHv2C^HUQBJuBqGQn2np8_-Bn1QWKTIIFjs_Emxb{DDF z6RyJ;BJ4$-0)egDalFS1GO#C|{wj|Hv)8BZw-xo0xa_1_951Qk6!-6Mq$>CvFY8Db z5B9b0=85Mm1;rK&%}MQ%HHMk~GC&S`%>KqJ<1w;;Ftl&?AKW4V=TeQ|5+>( zIA(SpFo}5$9JA8Of+jY^U)Gd>V@4_DPA--e+u+ae z0G6cOkoBo4kmE^Xs91Jf3vkSyF=&{!aVJc;a9w~*y3z#bP+J^?CQP~?nbl8vl-__$ zd0y?+neyVEO_=iL+nqmiQoR$UOPuzTxb{833^-=r1ZKc7`+>j=IA*{x1CAMR%>D(A z*_lvg)lUfm%C89mqh_#``PYj7fn)adx&u9CXMq`T%zh9s13hNn4a|UJ1{|{%Bk%0c zIeqxL&iz)i*6eU4?eUw3h1FKbz%lzH$1GIL^3^)sg(}It7jX6`6L2&FeHYluA?Ub} zWEXA~g^MFylHGF|@jWx2IEv?@OQ}+gt*X`OIs3Y5OqLW?Ru+?a4Tnc}GB0wk($pS0 zBe83gR#`zD>(+<6a_bCh%vnu|ILAI?YnJn8&}EzE!qUddRi? zbiD+dv6Q$)2)gJuX6`jH`nWf+Vt4({=ce0`v*YGpBcEpuHhK{G{QEc#_-o&T-|r=fuS)}6FpLIHJB zyICQ>g#s>Vl&l!}6c5j-7QXK~UNvhg9^Gr*E3K>Tv&JbIN0EkB`smF%OP5R%wLxon zPd0pgN~SAFw;TMs3nlYQW=%cJc1n*MxyMT8MWhcpLr%66q(3jtDedr-{U9O-6t?dsa-b&dPl+5* z*nq;OVYGELCxBya#LtEpjd46LDqYmc|0VTl*fEb`e<1hVx-yXW^uX&QZ^-`Tz}rJb zAcSOPd_C|Q6pug18lE0_XB0Lt#rZc<0pFAP1T|^j!_0uf_DyC66t*A8%z(lM6gHr+ z0fp^fps;;A^9dBTzXr^J!uA!I0fp@>FarwP4+3UDVf$`i1{AhG1!kZo4Jd4Xq_F*% znlv!Q`41yApqYISG6R~~H<208%zhv;1DYAo%z$PFG_ya_%o_gBXl5rn89rY$Gm8tR zrMm@fr<&O0 zlw$^_IR9Z_1{|~R0cOB4`zA00j@b_cX23B6ju~*wfMW(6Gcd&orZ^{@$xY@bTqvCx zzLek=bSl%uotEIT3i4Wm0cm(N3z7*Aht;Q(w{GPMX<;M9$xY>L}v5VOoF=3$Rw-Ka;scHDzwQbQU^~VC&vpfXV+I_vf6g%jQ=I=WG6Rm;_aHOin0*tO z0mtkIA~WEa0mlqDX23D~7dU3$j%9)#v%eP01U+V7W0|1G>?|?^J!U@$nSma&?~Y{x z#|$`TKQ9aL{kAOdKz`!p;eM4>FL2C&W7gQz+|t_C-qG3B-P7CGKhSo0aAb6Bd}4BH zdS-TReqnKGd1ZBNePeTLduMmAc^G2cHFH|%$ zy2gX}ir#R2X3Ref%z$I|J-`e&X5R#6z%l!QzzjHMz%c`k8F0-01&-ObLz$q*?5_bc z&|~%$m;uM^EHDE-W`#FiaLj;X_Rl$HpvUYVMrOb<`yONl9J6mC zGvJv0Kx76SGvJs3#|$`Tz%l!)u}t`kvGoE=sq~>WXo+>(+9Ax=&fdY%$=Su#&E3P( z%iG8IouB{v4*`KeAA>_e!@?sXqoQMCKgGo-Bqk-Nq^6~3WM*aO0jKB9N>CO&{d}@+heq+xfM>fObl_Z7VVwp=Mzr`|{Nq>!HKK(DTOogalW0~Si zL6>()evM^X{~F7Dj3pTPKZ|989y8#W{Zoz^*vkBeff;bjz6Y2A$LyQH3^-;#5SRhS z3^-=MF$0d-zrZm&6UwYYfFQvlDZRCH!*!C<^p{GFnt@{m9J2(_V}^iXE&0&Oq)^N0@c^Gh15)VOZxmz>6O`E4E4xx1d z*jc_V64TUV`}LwyS$=`d({#N14Km(Y@8czAn3VP#6^JL3We4{)&t5Cu|2dSY|63?iNqhX}VPUluGH}fP$T9O1lh}ZUlb1-^tU>U7(-M;N zAqW`<=JDZaubqgO6mf2NAB1ja7L^ca>VKLZ(VY**b)Q1BaBV{=Qx#+4X6RnAlIaHJu7x9#a_B{{|SZm*eaKKvofe;Q@ zYrt9q)*7(Z{sq?Bw}YOb8SSq@IM9stHRuVN(au6R(2Vwjf}Wrm?Yo1Xpc(B?gPy=z z1J>F}%c46VF=; ziY*wLliDL|3^S#IK&bW+k-+-qKa9+PWA;7B3^-=rL}tJ-`+>*|IA*{x1CAMR%>D(A z*_oi{A0RW}nEf?m1{|}m$P74UXOS6j%zh9u1CH5uBQxNb{V6g7ju~*wfMfPw%Vxp) z=0&NJf{m$qe`dATlESUI_89R9sn10_Oa0l;(?6&e@2!njd0aHMDB0hd?@Cr{EB$=9 zw?0M0#9mfA|-jkzg4c?l^gc*%<5{h!yJ z#rd?)zg&0HrC+W)?N`!2Uw0EJKGMIt?h>0(e!1@QP+d>2JIrhI;|@~{s9&x-oe3x6 zXJ4ApN^6u{D4iL8y6z_3SVUbX-5HYR(cncb>nA<=-^9TqUY!+du9k&AvtOGv8g9i?BsznvZlOG$)C0rYm~q<$mq-m-yagT8Mowr?>Da=vmSN z6Q2I!f^n7=Q__X}8yd71;(25j6C#+}Au+xTl(&;odV`e^@@A8k(hgG_m(t6TnU^!F z37@kVmr^7zXEk42TF!32%e<1)E%)32_Ao~^c_nYSGeAFo+?hEoz}5TtYTM1e9C5{g=F()6Gt7(R`b=qqmZU+b1axIdG?mK+5}Kox7&q@E_CMK zrBAJ{VPnaFwA~Y7-RXWPAJzmx5HQ&3RiZk>a72jd~^5*PFjg2}om>bjlkZ@AM04n(hvejS0gc$g~|pr=@eO_UGeq*7q0l*G>-C z)4ARr^-ZAS9B$90!%mL&)=ocQU`9evM9bOVrrV-QM8Xr*mm~A6+u?dfBGQXipcgIJ zGL=UlU9YdeHeYw3#EeqnV5r0oUUy`Wh(edIuOuv5cjEAj!qgV6A{|_J=5CI{Hm$Fs zI9PWPz>LOq5v`^s-Eb9^h{g}BucqVKaFaQG4viPBVN%?1S7?qV%&)IuGvDw~$BZGa z6Rm|^4&Lz8k%%GftFOIQwBcps8ACoNTE{cE;ceC&L$Oz1$A7TlV~ZI}i6T~in{?CH zRU(#}=$9!0&sZ9Iv4(q!n|?vfv2@oP8l=oOe{Mz-Ym^P{6wGS0LzZs1N9>pJVfQU9 zi?&#k;^1aLLGvdz)3>NC8=HaUm~k8~V$GVQTS4^_ahC%>#ypY|3TXDEI}V_4(No+C z?r)B}mj4?tq!gmoLHOr;8r-ad9Gu-p$&SY%MZ33 zFMx8d-JWzi5>;}Zw;{1T!Zke#*DFC->0P6n;&wD~OTt~+EFZ5`m``xHWr9cxflPF{ zUMz#8F1mP9XFyT6`+2KG3GI7b!JST@uC*jenKpKXA8f}zQ)iHI3Fh>*&$%Q*nB;k<`#VrH?T@p zX2z4h(EW(jG%Q*5PC)nPdrm3VSSji#;{BDRyBV&MDVju0{k1&1nZ8~rTJ+)rjf%Tj zK`klIt~U*|n(zK@N+4BG^+D5MZ_#dUhF7Y-c1TlC=Wbp>OX>^LrlHaBCjC;ZG^4t_ zV1Mkrf_g7%Bmbu1Stg7O1)U^=F!7N^#l0d}e@mK4e$&XR`CjpOYRhXSNX)wV)52NF zbo0KZ(cRJBf>qikv#BMQ($2k7=m(0|TTNppyU$Bcurh2>B*x*%pyjAiMjs(520Y93XNKA9637SJk6x(6ac5~s~*3OX0~GwH^YCkcyBo6)>8Jq=_= z@nX$tJqkE~YDPoRFXKPcj5ccL?cb~w2`T)!8O^ddgNf?lL%Axy>(#kX)_w3M^M+#&1m9#_Ic?pR zH1D1B>Nn98n@I8UN^{dpTb5K0&94gLdxoM7CaRGg_SZ}0Wd*kA*Ul6Tw0q~}7;i4? zDjg2?x8~*Lw;0@(iX0l3L-MF%9oO?e9NxLb`?3o744uW??roQQeLU5!Jw?51=yDVe}sd%bnT+u~@7 zBJ;ZF5!S1AN>ZxN^C$*au^0Q+`Ccc$he7s_$ zom1?kx?C_c(yv-tJi2%CDL*%i$!4y2d{1Drg6w3y7;=aPUpB9CNtMKVjsC{@bfdK7*WuOg;CBURhBls8KFotZqzM z3)rL5v|JKU!)gtL-$YVBP!7E%Ic$muP3Ag@`#^jAHmOW6EdjQEc#GvYkQWYW0~6DL zE8wt|bF@Vi)p5$Vy&PwYO>8Gf_!eIj8CSuMILL1KJX~eG-Axx83SxWeggY0w?QsJw z=z{F6ac#uct(lrE= zufS2F-%$$cC`0Td%kA_~!AS~(&owHL7+L4jL1)GadMnh66^46%EhnLE}~*MtK1lzw-)G*`w? zuGAkCv^@JI{h{s#CLRUzDn$hzrBIL3omb`Do)yzqw?sVa6CPwkb?SmVFSR@0F?DO@ z_R{V3$baU=mh0JF;59t2GT85R;^Z|xFF8pp`HOi7-lqSCc?ed!z-kv*?Eznt3GnXV#VPVHYx zh?hqevQAI!@HHm~fvSI|gqZKQ65h>vt;T1 zFZA+#z36ggJ>7q$mn*Q`{%2q4rODFD7kar`FgrEoKl$hSPr%03-*|<*7j`c< zsV7+>TW_Q>H@Poey~_Q9cwWjtwoX@)N>g6yP`;5g=s)?MI0xuI`6e<0{U<*VnSuTj z(0>B@PeA|4DKZOvw0lz6emuS&^^5S=;KjZE=}W2He+qxUl**kE{!UBfE@_mk82Jb&JYdaPGTK7upYWu8lO2$#7p_M**v(C~blSFOMTHcclU!Ric3exQc|L#J` z{E}Hy53`-p<3{eWl6ev7gU*nX?F8x1i*ri*J;f(G89twvwWTdCn3nDqw0&MRy~V}9 zb+T8EQ@UQW`4*z2ylLBKJnzzGnK@dz-|kbo9WQ;nXfd(hTX$*q3d!#lRR08-f&P=f zhRi_!$ya0s`cKXxGthtXgOC~MKlyHC2KrC_6q$kk6X2NrQ;r!T1RuhJ1|fmiA$9+> z!a(D#r5mo3l%~H_stsv-Z7^n*wr05oD~~i1Wg+#ckA2mk&lAy}@cLe=VtRjyNz;mX z*?5MT1Y1bke2#g`i{i2M0!yj%p*3iUb=%q@%+}7{!O_Xt#nsK-!_&*#$M>C||N9RC zfk7XGLqfyCBO;@sV`4wW#U~^tC8wmOrDtSjW#{DP{O2~r# z6X2Ku#|$`T{{qMC+o4S0nEf?i1{|}mzzjHMXMq`T%zo5$=LLWJ%XKHi_S<|PaXVV%pCWFr36w((Vpo) z!InsDe#W!)vE4K7YP{GV^q&C74BILGcl{@lse1Bf`cK6F6qo_W3^-=MG5h~4G6Rko zaLkI%#xj?Y5dLy36F6qTG5a-^ncpA@Imikb*Yahq`Z<<4FF}tVmME1Pl=f>Z^Hkio zo+^pw-}~rdxw#bq!Aj_>9hd%0@GuhfxcB-w;Ftl&3^-2J8ENXV`Iz_>F=y&anw3GiAtkVedd=DY>wyRr{|9GPcA9)@$Ez~j6aq= z@p0y-8wu1|5V2xmuC*S$W2-)HJ#_sUT#(Mbymn!q_2=u>4$ii$*K8g=vrGJBm%JxR z&Mo%)kyfCwWyLo5Gd%d4%lANI`%2}2#&(v<0gdekQ8}Qo0ga6zE8wSA;>TEmk^eI) z2Q)UIvHg+8CYb(g`%6e+TBpc9HmxT(Vtq#Dw3V1kWb@bM`@OioSD%+Ad(EG{jdUGmyLI6ON3 zhnKwmV_pE5Y+sofFxk#BGhnj)AZ7;I(!QISfwnYYvb7j_XNS(||28k6q&bf0GYsA4zYlr(pNBgidp6|h4wqZt zkYD)ikmr}<>6w!E_~oa4{ zw4xCrMJqRCeQFBic+waumL1m;!hMspz9Bol4Hh8+fBXuPlh6?(>MwV0PcpG9UMA)q zEA{K2ThUYspZ~5Et&BtR=T@}S8PxxZ#=gv;8l~jk#wGiC2DO_M^Bv|dGpN6zv7cs8 ze?ns|MY+GAvEsayp#tMS9TG6QPWnzY7P9?ikKNN@uGRV>3zfMB7)tX@sNn0 zXHai8T?{Dy?00NV<2z=H$TK}=6Z`NHvIPdg=?dx~LocGOBzeIoE`g$`qd6&)D-6l$ zArwWEyjxen$xYQ0b;6w`D^}Bkqn6v>R=>U9(aR;W-rbx#DJsTO0C|7NN34Wl`kiQ8 zj4XlhY=^p^%-sbA`PaCSC?8}`XHc2sC^V+2;8@Vyg2edNCm=eFg0lhod5@dmF>M9k zpI2bwoTHO;-}n?_x%(K!;;kGU+&PqcP;nm{MADjI>uZY%WE4^_<1Zp(x+BBC;ZItK z+b4EMj+Tlnpg;e-c3+hM)#!9cpwTnQEm;gwu0w98xL6mf%h0%(w)eqx0>6lfllex4 zb5I-^uZAxqxCR}LDZL$;ks#%baIjOZvN{=c%;2^2&TcAl+;_4&0x&2n+g9Jf*oflz z1y{(|s58qUk%NkN5oc$U(zr_vaZ@eXo{ZW>7a&1Zjp0DN82^x-01S3Or$hd4baXlF%<9 z&$o@%F;QkjktWtI^Uqi?n4=>M)6BIcn=~~SGs{a4mJL4Yz^DqZ;y*6WBqk7lMUXZ3 z5=!fH?%v^sKoZKvkj}M>xifCvixB2pG>T_xxnn8f+wS$p5H(oWBaI9Vdoo97gCG08iS6T~OpZ zkyc(R2X(h2e(en(K#z3Dsf$W2>wwTA13|Jz#cFSgL?6&B<&1fG?IcaH$ntdzB7rp;nG``X+;VZ%%Xaamy7;i-@S!@}cjoJxM{M0LV zSvEY9sWeH0=aD%zZ9UabS5S#M?$GAE^fDsAAPm!}rJIIj;J)#Up{SEB!MW%A^sOj0 zUJ*n6!gSJei=SptMKfjQy|e_B36ddVY}l1=gY!z27 z{avT{u4uX^2|JdEvR>nvyrk69q>4%Rtsp3ldjolXeu)^q z2`L_XH*-;DAz?VX;$tP7ilJ5C+yPIUs1adSEGMvepH`*` zkh|QJn6x11_AnyOBpJn+#Q!pb%AfB3L}H3`D5$nBG;@wY8~ef-w2owh)7OO$?ObJA zjj&XfUtqHq7v#+|RIX`!Zcpm{PpgHJty%QT?pmxC1I*i%u|Xjsy=?Kf>(!*P>6n80 z(6O28Tm=LWGLDe0B=5Jnxw2F6nW+mYpKG&?Ls1NDFSCxk(e4^v)mLfJB+Pqov9ks- z?4qRZdru}Ii}o#U=9UHR48!)O4C8p12rK4-@JrKH=Bv&V<@1+wg1a+nh2MtBD=ACx z^cJw)wJ>g3%G)MFlNi_`e)#IStZPwUJt3l=NanH@FBvs!_jYE4q=7?ww&R0&HvTT7 zc|D86q48DEvCi`k=~)i2BK=0}iY~00xY&=pev@CKjdz=IZ?()~BWL8Npwc)-OG~xQ8<|*r!8B|NAA_NY{JEJZ4i!eVtMV+NA zL>u9S98E1x8_Qy18fytj_kT3YJumcV%SR}*LWaVv)k12UtAr0flFeMFM)CO*y4yXj zxVs%6(x&qp$uW0}4`|)PU>xiMVT-Z7yY{#w6{3cZ(8X{Z;xe&Kw5E=*$zuz##Z|S1 zBX?H}E@nC91e;i@-CnY3EACWt?ASSejE%@`@Uehnd-tm9x;ef5y)-)Xa*W&Zc(2QK zna!Zw+ZQ%>t@@@oN044-7_30CkQW6n_Ia-1J}KiU#x0OSYRVoRiYT*RuIY8IBZ?ki zR5UvO%Em&g@dAFHVbw-k#v#pen^1MS)Q0iR?H-H@xhD1%Tw)pVej=&^3EV@5;9JL= z;$v9aA=%4i)`&}GEl1*UxT7@~XyaQa_yy<>cRyp;wBIY~s9(1^ju%GgW^>H3TCI5^ z_yBqNI;!h!wiRk?N=G`_;1iynt8WlQxrw1DEreIQ^Dw5jn^aRzRlS&|x!$BL>T!_|AcwO7&%9D9G z>nFI*2E>v%rbx!I+9p9RwmK;8mu;-~%pa>ei)Xlu5x9Ei+1$;bVV|LNC- zvI2*D2h?kv*t^2kb+Xhs!$L3u`$ZXDj+%qau4A8zu@p^cjI%1qCP*J8{R|Y&+#|J z^}IpC-KLF*g^IkZEpjvW6%`c8BItca292@Y`{Z+c^LE6ti6{~i{*LRHRdqkyekj;& z&&8mN3Pa(5o2@}&m_a7mmqg%Tq+tvQIv3z%>+grl5)XZQO)L=O_4Bk>FPvo5H0C|! zI0CH`8I7(8-M;ofH{R`CHLCB&px&qQ{`*Kbso$dw@CS)~46S|_80{gZ9vH?IeElP` z^GC#k`H$UI8qZL#D-9sVx}iii1e?cv)Lst=Q9y1tLk!dnQQHl%P-ivle$9D@hukr+ z{P9hPykK39kfsLR&HEv8SHv;uUOBmjoO25s)v;q8NtgiXgKs^#7w*~6`H8aTO_802zZ`Iy;<(jZbOedk?2K{J%l`O zGs30j!eE#@Q3SzHvE>b|g>6{+LbQz_Te49%_GyI&5R1^FnLn_hzt(-K6OHT=B~n}?nsmW=^jz6bY!Sk$L&3ezSn-6 zhX+j)Jsx3})3E0**I<|#lOJj%vCKhy0n)8OA#1bz_g?LBj*1U2H=?ya`Q&A;Mudv~ zo?dA8nX8ygy#GB-EAz0h#TO%e7TBWVcy%#R!Qv5%pAt!RND4pV-#}E!;aa{X{-HV{ zH8{DbNEp^;pJZB)Tuz$8^E7hbETYmpr9L>Nu_&c^Fs1b%rJXdjlP9%XF}2q`wLds@ zuqbtSFm?1Gb(}P9k|%9iF>Tg7Z9X_{u_$eMFm3f9ZJjiIlP7&!F@4uO9U7c|P?UZ& zcv=IJ4k62c=gmM=%0RZrKn=-2FV4Um%D_I%z$MGX=glNg$|SVNBo4_WEzTq#%A`2V zq$JCt=FOr}%A&K#VhG7%D$ZgV%3?dr;vmbu%$t2xDf^m5_HlmFr)m_|xNPnw(b9u# z+n9tz`kbf!!l^w^b=;j))dK~e=S1XWlN9+03B<`@+#TvMSTxSXy!zIE3QfEz7vWBh z3T__kK{>(djRZ~Jiz3=g=FZ8_Ev{%qa=ao%@-asWCC%@-6mfxx-CQYF?=ZhyFi)9- zokJ1PF@ynWLGLAF!OV2FxA?^;SD2-TP+0wiU!fGfD<%mpF6@j|ovfy4dsCoM{+Ocj zMgEni;X~A6$(VM?qGM$s`5DaIPTl8InNi+^6laRRvlfw3yMdaHP?8~6 zSYJ$D;884Y`|vKjYE!X<(Y4PduY5n38=lPIQ0jcH>nI)-k7^_jQfjSO zsv}gitVGtzj8j3K$k=x=jH7fdq>PJ@Pfi?pyEx{2lp4d{!vm%A_im;>j!4fAuRs}) zSD%-|Ms3TaUK(V|yW%#Z`X-lBMODPVu7C?gJ|4nP$52Btf+#Lluzx^${xbeCUYR9F z^d;BIw(?5f4)&{_Dwmb9mo8WGcc|)b72m)-fBon@>^UX}d9@pEjzEeLy<;_@No4?T zW$8k7)i^{~DJaKQ+o%lfX!CK*JBkWZb4^v#jmItyRRV zi_s{4%b5FGpX2$S$#Qo2+fa$;DUxPyylwO`?Ud_D96!GmOc^k$cV#K*b`&E&s$bi$ zEg7$WAKIYk++ZP4kqx2T3o?`lNvut3h+BTS5I_(*ESJI~muT7eBC|2$h|qr-n_sRe zQs5HIny;zM1;Q74;aPLjwrx`)WgXr9>dIv_As*~%OZ+U%iU9H`FIx(@jHb0YjAWfU zbK9#8mW1}Nt0^_8>xWxjohO@-n~BDD8IVkYC>M8v5_!8K{KCxrz~YxePr8R${NxYEDFu854bHv zo-Ww79{!M41$TSVV`QOaR9Y5-af|BbfnryWJ4q%wG5V3wk8!*cK0i=F5;s5+GUzF5 zSA=#X1$?m@j&HfMX8=4N})I*aB?uXTBgXM2Z>Z%^hTx_}qr^G6{U zu`;;BuqK4@c&t#>y!v)I9$L0^Dzpc{D0|Zs`n^|h7DERJD`ebLiVy|aKLkAtBgZ9N zW(sN<;3IpAN~h*wg-DS-z_|PV^&H}bgh6$@h+sW@OYufCqo{(<#EHkf6`$`{sSMYr ziX<3gQMqVlHrv0Z9BNp(+IgYS^L*pb(vV`*hOS3__3^wDqK3y%NhNZw7%=dvRvc%#Uc!;bC!Ix8d63mId%<~hbhG>5~9N{T!y+Qrq+=fg42y+Exr#X;ui!yPW} zmB4f{FvwExmRE0k-8{j--(|8fD7QW-EHf#XLM^b0d31po1^zSUD0X-%nHC~7Cw2+s zve2EA3qonZPj--Xo-*-;Pq%VR>gPV)cvfN6-XU~u(q|ZgYCH8fdPqlPsB38^gyHkm zjoLu68AI#+Lk+&C#1?{!{p?rPPr-1Sn6od=EJnE(n$+sxI-o znS|*$EamZY>y<8*o-CD9ELZX`hj%YkTQA$4`&?hT+&sG6da~S3vC_%E(ye;>_ps6* zzA{+4GCaC6da^Q3u{z1WI<2}oYrQ%jzPebtx;(nNda`O1JF(8cMwGI&O+g!Ky_Ovl zy;N*)aI!YYq?Lue?o=^*N8DdqY`y5dy#7jPZQ42)XUHY{ri8oQxMie}(jg*44$=}e zkJ63eDEtT5o81p)Xne>J*!$_n$SPiWC^5^5aBRA$SMHZ?HaAH!8g7YY4$w&>UQXY# z-`EiF;Ztfwy7qBPNDZ$=5|z#BooK}N(Lu36uL z8rdKk4DQ;L?>YLMyIBT}>llsEpBe6^dH!)-g0|75w9DJ(hF97CXsB`C^sGANb~udC zUG3nW#`U+`Tg2rDags<^y$`G^I2s4bJ{%uJ zJN_fXOge;h2nlSccYmg_jFt^O>;I?~Oe16JyZaKIG(nr+LSNi1S%@J&NXSv60AuOG4^T#Qf>+$2~0c zdwS7YR<-w#npynvW%Pv_0$puw@rYY?$me<9&j$yIN^oAafAGlRs>l#W55jq^`^oZ| z&w7eJJg0pp6M_pD?>y_Dq%!dSX3Q?CLXP1??FZh#7b7Xyq}$aod!DjfQY*-Wd_hJN zOaAamd^4_q$W)DzUpbi0x70bz9Ok>H=<( zDcEM)VIp$Kph1Xq^S$~d5K0ov zIhoih+fyO?(UWF&Eypde4I=oRw<)ggWz?eR~*~HnVyw!4JZFs9q5JzRZLyUc7 zyX(HR%1+N?!;zgn4Ih==0p0YG-JzFlDtjYu*GBfn>~K_}6K?FI(5ZLQs{1n^4M+Fq zqI^^j7827(50*09R1a4Q*G3Q5Dsa?}HpB-*j+Iy9;n&#XNY13`Je2^Oz+s&X6{7T{ zz2t#|`>y^I++v%n$^1uhbDa-#{P5gN5|ig2->znSh$(cvdXh-{(p3TB4I*VD8LJW~ zY6#c7V~DLcVFj^B&dnD5NySI3aS2FH)Azltghkxu1?u#C-w~kilTc8Yp;)_i_;`5^ z5RF&ez1q*I@8haTic)z;0F3yqfiM3Tmj-8)<-1G0zsDoq_}C=$GK6cOYsrxuR7BEXEX^DbfLF5BhWg1 zY!SQ$2L~zmKpeF1XsCJVqh9+{jcrXygS0Em38D|~=$o{{O8hZb2d2lqtk5&NZz8%A%x262vRX!cOIpR#LHz+8ALg+Q0;g>z+C*sLigIrS4~#qNB80R1;hA)b;LAykgZQ|4GZ;VA=o*TP(^)wF0Tb?JJN@KN!?8RR*v^E z7$1IO`;aK9Qgau}q5C$6Uc6N9B2O$SZnWx$& z0mt8Qh7l>dz1F2iOg}VXQR8AUpN+jZaSWHEuHgHA1;=Y{NnQxHMO3ic-1ldF6BcjN zQ*uChP&w5|N*dT7lPOP$tSKJeHC90}< zftMD>o?6Ml3Ye1N_8%_3R#y_Btu`y4<;`H3Dahl#b>XRyfHuo4Kg^i~UB8xv+B*e< zu;W3?8*i780lT@_!NOPyD|_v2OeC_WwIvF~euj9gsLY2S8!Sz>W2mg?nM8s+KjdwH zBDt!=%Tgp}OK>$#@Pgib7w-;)yxXA&4tiV?X5AqV-y~~b(LM^CZ8IuRAE>P%J=&O1 z4iCVgQoZn83i*KP-mGv28q0F^#6VcJR2BA1&x=|yPdXdfMsi+uQRyc)500e0iY-wv zFwAcsP`S5N@J=6lAbO%fEn|bkI`73G-no%WG?ytMPnPrb57AJco3<}{-Jx>CKiArm zZhF<^#iMoJ@i)b$WQ{kO;I1nVbi@f|*MyN+Js3_Rbg6dcJDKg{3x!STPW4rX`ECgB z-(^^nGHK`#d3K#65{^xqjfddGAc#mIkEtx^3U#S*)ZRnPxo!50J%P!#w)9-!1|2EHc6C-6pDNwU`P%5t=wqveSw7oNvQ!~v@)BD9 z^qRn}6qD8!uhnZkhhvB5D73gbIHmXe6tONMhg>9GFFYqQwzoG3=lEvLYi&qkK;VHy z{{^fg&B7VMTS3(>;oDOUO6|F}2Uv-v+o`6`$q3@(3c>QNCQXpe zt4G~lQr?{Htz5c;opDU4ezIu@|H4+-pNE+)tX^hCa?WE*0l%eT~o%;AV7i zu!JXMqd5Xv>5SW#AuF?o+MSr`%3l|TM5*fyc_f7))dIc^C-mzuI z2mE!c6jc06nbYeW=Wg8Z!}sEcXy8fL(DMmF!pjM=1!EM92$(ls3v=FA%{*r#N?w0g zII=NzT|D@8Qg{wEVPXZ*;S8Fj0TC`bahM>nF-^bc22DW6Ihp%}O;us`Sm&-VV^GTA z&}crDvwue1C>@MPr8`t z!N!d7P|9iB2;UcvY?V^9=7Wf~+ahSkpJmp7nBN##8K)LPbUBz`p@VcNDhePG{K09t+ zJJzYY?3lAu9grE#XwDi4k11RbZaH=0D<)PA+SGEMvPiZm812>Iaill_c7%4eI z5#uQmaI#ep zUc%R6rQ3{kk?<~*;>VGY$*b7t_}tPm0iJ%?WEJVyRFOuAm7A24OazzT=qb{DptKZY zz9L?HjbPklB2?lvIwnNKrQ$K^_ydgF+@y~liWw7B5-`ndp+d$X?F6`NZ;EXv*mAp3 z%`08|nGqb-?_PL2A_8Q)~{Adeb^$jL`0Ji0Vx|cd)d*sa#$m9FxXiIi31wWPEdgQf>H@T`V z*z@K*UGF*JEl!W@hY^CZh8l|T5Cu-EkLcHU-830swh%{{?G-H()X^*0iUGKdHH!QJ z)aB=KgEZ(R@~+;Xx|DiVy9YwE%|eH{cEe`%I+~y`zrGG_1sxnUz6_ycd#>dBNqPl)GCS@@Zt95e8xN2q_1Q#69~nL@aJqN zjJ02wU8ICtuFujk#Y!M(8*a9wCZMB@3dPNh2p=~O(IjSr^}QH^sO4OL-WI9PIj-pg zdB#}|AuWf*CBV&Zqsd*z;1T#ZTW;neM)cy71r-&0ZRG3R|EImPjEaI?+x8&csk9)9 zl7b=~qM|g2K`Mepiikl72q@j1(%s#ybceL0(w##L^UVw)2pC)U^FI4q{Deg?@@M zYw?>b4tk*QWgu0xn7&(5khQ_>g~zH6AtH`VCJer;3sf8wG)3wZ>Ez&E-S(G3RMO$n z%(z0mzDlyPcR2X#GFsLqA3kb7Pr7tWsp##?ER2V&k9nQh^s>A@aC)HIxl|L&WZ$B6 zkkz+)o+_|R$F(f3p6Pj2`RRN9BZHhSp8ACS>>}0=14{SsY~k0L9NF|(y1Q^!XcEo_ykE|N@s-~ z1)GPy>Emw;rNprcT$a+~)(NyOzRNU&t4$Ja&b8K!OT#MeWggaC7<~#E_?6#BReU8R zL??xhu_XRkWRXC4(h8p$*GtY~Ge%SUyzD?-19H?$UD*aPj>w+iOwm!fILi_^l_tjz z{3mcuqM7Mp`^3e50?c+5zu_)QDAB>6HBegSx9KC%n-+^*cEi)6_Fp!M!}qO+}x0krW%fw?Z1TRRA z7zDE}`dDT~3--ZTi6txBVc`@SGUETrlrQ=nO;ZFv#olmt3V#xBsS?@IB_-8KJcn-wyg27WLm>3 z0QghzBRQ@L(Gl`KxTd`(#Eh6C1(~q!JUFj-2pPI65LNDAlbw9nm1lGepNOmq zHKeknYrUJ=wZTw4{c;ZZLdp`b-zls5D@w)J+*)>$%*KY=Cp5z4JY4gBKtMWW<4PSW zIIkWPRFBKs5cj11XkG(3sNn=}BehW@ZC)cIsPPL8sOb`K^Hrl};k;&X zP_q>8r`txK9PJEgP3&r5 z!fC(rImDsiGcVAGr+We;DZ{TjE1`472wWK4v1F7RT$t+z>KULLM)L2iE9=Hptgd<3 zw`}J;c-L+~DUF^>My22jho*6N-e$GBm!i#qeVuyrJ zI3JNQK{p*gN%5r1&V}Gjn4_)>-ZF0kuXs8vjGD|V^jC zzy645Hrw;&ZV$yW7bhCzyY4**hI~z#>R`yb*}OGS)JKUy)9}tkwKj^;bT86)mc!JGMw=Rp7|QGQPJgr6YE3Fn9T(rnM^-@Jdt!q zgIRYGbo)hW-kb8`z_V|OvPK6Kh)UQi3f$~827_J$axiIA9PedtF#ze-}7KHG_FvfR{OZX%!55UVu|h5$nrc ztKVlm_4Z>2%+FmgVhi zPr+(Peq0^}!)LLhoIV-c^4`x1KI#&WKJU8q+%GjK{erpNkZp2M&pibiFv#3`?PXC! z4;a)_AmsCgU(rTQd>sV&@SN3{oZ&(@gFO5iKYLKO6dIUPgLJ~zx6vqQ8Fp!GL~EIc}Ug$7ETPKx@AaVj#M z@TAxH6I#DML^MDmFPl(A0!el!t)IJW*;W^GuP#4tb!mE_DnK$IVsQmH*CUcpPyhx4 zkZ5{M5RR$#n#y%q_L^a^L1=xPYczfD2&7f}%!#zh?pct%8V2`SQrbi)5iy&q_FL10 zNA}w=q!0Jo))!tawPJ2j9iTkl9Xa5j%zLcuh-7{FfRn)b3w~#z(@|es#4JAYyI#LW z`_=81bdlZz&9Erewj5Hb< z>Y+Xw6&W5)$0`^} zF_i}#jG4-B$*YU*iIK?u#Zna=S&YuB#YzIoGBqv(R3|?{){w>f+cl5BKgsl&yyewUjdhE`(!?gM z|L$J3ZlBee_)OK?jFZ3tr%qa(FK(U!{9nD`-(`@ys!YO8GOY}UdO|KTf$uu3jK*e6 zu8bv?on0MIZPfy=PGk?D&TlHo!d z>?BjwqRvw9z|m*GPJA)wNhXR0-~*F!iJ?*O>YBiGS>1(>*VRwK>uXC>VDLFO7q03v zmQ#@B9l#f#RlM>-BrYd{whB3E6ks8mJkBejCJ`j2@*=EStT#)5AmpE%Wa`tMkN9w$ zZoq)=&fUb*xF4xVW~_v^M*ADyQN1u5^%p9k<2!fchN|Bg3m^iV{EYI=wP2#M^2-R7 zmu@{g6@t)IUdom|W3Ron*$wNn1m#ZdLs3MnVUA(G8Pot+5ig&Bo`woYm5fm2TKuUH?o1>zWEXnVVYkcTo7{;I? zTqUm~;+|gpl}{k5>hj{OXQAfxxl_c|_eofclX$|VM z5jFFg3;uJ&wqDLKkK-Ym_9-GWh?58;|2Va$|EkOETdn*a=X{T z6M30X{9IQLW~k-jBJ@mOR~>Gtg3j7d~0P(diFw`wtdWC6l4#Ce-G@~c{{Hy70MQk(`*-o$FxD88Y^J=s@DqR~J)ummFJL^l zSe{wRQJdsYf^wg^UN4Tld&YqogASg_v^?iiu+yc7rNa_m%0wNK-DJ8R=+nqyDZ5R& zW$@g7?(w07{@Quc!f^+>=bVop@}>A7dJnSZEZ3x%>qPX5snFZV5$MLJD0ajS-Ji)~ z)rn{HOYItRKekk79xf4>W-}~sQl+8CBsD}>+Jr~41KlM*HJrUht>o28Q#d1kIQWwI zXr^3tb4@>W^u=-iYowPx9eFhstsHi*9!H)cVz4+;rDn`3lMA;X{6oAP%eW#b_k*nC z0?Cdw1c+G^9&GioNZptL?#MrN7#q>k@u*RVuJc5BV#tDM!( z(+(NAL*i2govYoz+Kl|Any1A`IXwVu2(9nnKELMMiz1m>Oc?Jb&$7m!VVwC9O6x1E z^%K=)ma;=>{j~wgp3&qh5;{W1bHC7FD)p9F$WfP7d-2xX z`_Ng#b~>3C~@bkML+#E83V?R+@&ggHfRV~E5{cNx&A8w*!UMlEg;0job9+bAg8@mi&82j@4V`pRT;B*D=U#36FPO=nd-bcc{16r(;HFSP@Cr_;`__K{MkmR#h!;*zj7$PHEzPe+^!U_!es z_6D~&!uZnJ1kj}8=t?&>__YX=vA0*&n)12xE3I|wi#cG>^bpqafFyXO6TA+rD_CEu z1Fx?_bO4db5e^dsSra5Z6BI8Kv`iC>HWMtM2@a7d9)~HIK-Tn_o+*)+DM=hs?s~MmUp67I4=m*)F{pUTHoIE!ja81R|J|X5n0^l zuy`nI!QE&+fn@$T(_+=-t)>vRI?w_KPD96w63xourI)2z$h$>WI37Gp0uxJva!m^r zBr^^xD-Ht1a2!i7D~C2>TcDK-2RbWc45($@$!ot6uZ)L)D$m- z5+S-bP`WoJra7b;GdQ*th+^<8MZUFfo07$CI%vI{e@ z>v>Ms3v#Y(`mO}HPO+Je9PO@r%dXK<4i6IT`Q_ZMjbQNTyNP7EnMgSpmb#AWN(WbioSXg%n<&`H*K@;N3ipO{|YO>RA6WU%Et{~F$BM<^ECF+Pc z$cfAX(LFOfal_3ePQdjQc{}x92&P3~!MCUHw>E2Mjuyu896@Z(^pThHVVLpJm^o5- zjw-eNm^lZr9V&)Q6zX&v)@5(3bBVsJ=k%wPd`GC*(elg zYH*YV%}r@Vhk6u?*}%kB1l`CW5}6~)%^<2$+p{GtKx#U2T`9^-UZGW%B#-*wFjaIrPcf?PNAoP*Eog&$f)>nv+lu!7el$d3eIKq|yZ;OrAnTUg~jL{jd zUg?ZYnnYCP;^&i8Gwq1T9K7HeLbi%?f-AX^Cdf!T>2yvq0ZlSPjtk9dvVCu|)H3!s zU5cG<3U*%UdFZ_jgvu(u^&aeTOpL1l$g}w@tCqREoC||=;$S_PUN#9%F3%J^-R(` z!i{g)Qa;L2q#{UpUWHO1o6)MCnr4#87nUhZnHj*9=`@CZfi%laL%~2H%eOwmD<{jZ zGs}N9Yw1-MCK1A><30jlzy{z0(2?q4j@xt}$NhsN$cS%q{>w*@zZ(}a0*w5HaUq!F z-uXTr>bReGWrO`;j(g*MJe@hd(#HGv_abQ<@8dsL?&G-QIy1C?=(soD$HN@=Uw9u6 zbKFMv{YSrhAD_ECH{A3lJ09Y=<59aIj=LZqvXiD-y&aC5xs+zW?gGSd+j9(B3Bz$M4sVSMX}!F^>A2axU3AfxHr#aFBVRq0 zAdcG*#ZGO|TXn;6j|}>1Z#ZsmNBCDT$6c%UaEIfzIvovh+-zG%klm!!e{=--*vAJk ziKTR7v8gR|qXFrgj(aSj5Q%=L<5p%Z98amgMn93-EDdwqF%#)s`#SFQvB~cp_uAsv zQ~>~)VY(0j>bOzP#BMn54>*DhGaom`g_x`~O38G`XUZr&GoC>m_iP1C1k`b7jL%jv zmody$Uue~wtKk@movY5r2T=h8;m(c!&jY+=Ndzk057VEL@x0aNK*2AoIQOblmR^ z0+59YUC9GYP{aa{5JDaIv?TclVR?0x*knLL=|?wIw+guIVWN;0{-0&(0J;XBUc z?R4BzLX}X*-BumG<+z_7A=~dvo~9kgfN))qX}mv>!3l8=;<$b8o2_F+@+ZjEn3Bu~ zqKHErcja}_+~`2eCs+a}w;Z=B`C!zB<0h{axU%86uPFgUrq~+Yv*%gBVy|~O?uPP) z_nVFz@zc#ff|uKldom$R;;%Yx@!0!>3Z<{lFD5xb9QPT~_DcEmc)`5b$Lv)Q$Gw%oewW?4`Wv zmnyFZM0=o)8(5QIyj0b*zOqyRz)Cbh7VAAi3M@p~;kaupbWcJYcY=EHvE$YcSk|!T zb$}lzv68F=#rpAlfgfokl5AwE`;S52$2%n1sX*Vy17VI^w|e0CDzJpK z>OnS$Izz%6N6P2Y`&24=*uo zfStSHxND~^@XdO#9HEZ;nW@T={!hFdXD=wi9CvvUN2>sqjv)Mu0jI7qjj994ig4_$k$um}h4f ze4prtS3y%IkiQgJ5?D;SK5ZqL+fP^rEahIGadOQ4az=8wQel18t1fqty>7Yo_4-^O zcHXd{TDgdYL`BK$A`#DG%75_kY2IFQoep_;#HbiC$R z{z*XHi{D$DtkKH(XV)gx&MWox{9tX;6K);#TLtsoU=p-~*)^E-yBAu1VM~06Af%R6 zO6Vytfrkzz{d7wlI+&CV7Y^AH-)}HU7aj42)avm`eX^N>a##9$wYgbyLz@-M!q}IU z`_!E%DF`7I%x*!b^@)FH1+zFZ^dAet zbVvoWDF}B|FuMg|j?1e`wy_<85S-S=R;sy=B7{^hza$8IkD#%y9r=LuO%SRul>5O> z{9$ndW`A7}DyZ-`2*E0t9fFYYsGSj+(pCkd68`ewE%8l3xLv^zY5}1Y%q~GFqqPhj zOj;iFOF?)z6bKQ7;EfJuuOi&6VBj$U=cWpgnRW`oYW69JAjAji&o}Q8gzLaBp8E;H zr(h89dqH@FWO|n%vWvC!1$N?(A6cZ{Y+Df4TX4+> z;n?r3V891;Fn?abe1<#yT?JE09SEynXxU9NYM~X32HI5AjtWLrb}c^93MvR86%5y= zAhZ?Dxv`i`+DE@72m>+Wb_v2?x|_U|S-vF*m$K^Z<6lH<2tqJS5mtSkH29_nVI2&l zf~k_`ONI!-&$f>S=v$W?_Z5T`h;Xca5vJc&FbYKJC^%#0NzA60uYV*6AB}bsLj<7* zk%Bq8Qjfeg21F3*aNsg*2tq!q$F5yw)Mre~#2^(+gxH24tWEaF_$CO;#0JmrCkThQ zI+wQuA>Zn9oe5TIU{>G*dT#xCD~Z%#!kXc0P(hdv{uFdld_+WHrO~T)zW4N9dPEHp zO+sL5q~OO9sVNgccz8sFJBg`vEXgxjv9#DKys?MJRy-2?S-A|v%tA(1S_{LKqh?sg zUlWiLW$|ew=T$PGBCNK@#GTt&!DtA6dD0~Hp&M4gXt6Nl{IG)A5QNYQMq=8GbZuJ@ za_$4z%?>6(CniKW2*FT<;*e;2g}obAfHG%QyLf3GdJ@zD8YgmuWc#X)lUMEPvqW|uFyPf zuY7V>?wr_^Ps=GLt*>+;2n$p`buU8mH2Va@q3`lE&(tAM!hU($Cc&ZrEGDW=w15&U zKa@}V=4paQHsup!Z}KL34K;Urfq?O*d?L<}%G;1n0cjPAkUXu-j{?pKmZyoSMGdm~ zvQ=q0uuKOtsE`|?b8Cm=dp$|N^Q2L~OyA?i@EuhX&(B%4nB6RoWo?E{>9Qet+Nade zD3(q6bm0XB=21kyxjG+6pe86jdgCHnefW2In)sM}=SoXvZCbo;&6wgUL_T4qCt8Y+ z--qOBp>CU4W-SabKeI=W$O_+8B<=E z#^@9hJCqJAC~{;|+E6+@wN!9RQ@tN-DW*EOq0M2;y@ap}o2>31D;*NTI~%O-4y9B3 zND&eg{i@R08x+x#7j8F)+pO-NDV-k$MO;_-w^`jyrDIGkIsplaU`l6Cb@)@Ib8(2j z2qi;X8^-ExHirX!k0GpX?77R>n$YHOm(n@7IgE-!fi;J_ln$5xi}JGImeR33QMk?O z{#h>K+gj4M+pv)1a*G9;H*~|GE+u6#XlePQRtz$!%5_H6@XHGJ@+QWibBl zDIFAl#Cm8@v~P3Re4GHk;)l)QW>9p4?FJ82>4VB_uwqf1xl+LfR zx=$LYzhiX^;!679Z(z&Xkmj&d z*!KC}<`A~5{pB>QIsCPtsEV$)?8OtvSrW1BpygtVp75^61!WmZA{7seMhXrq|f_8tTk!4xJ9wv>aXwsqo z*D$FAVx5D<4nML{Q0isEC%eSXPcSLoqYdgA6N{bNWsFN*FIt~0ZJZG?{Pr;E$E}#| zu7^o`QXL8K2wXb%DF0ruldv|s(Te>m#ZEAerO>w6IXKoit^ud`7ci+)E_zf@OzMVH zPR_;|5f~=5-HK^@o$9=FL~xX$vOaK`^BWfXqgZFB*x6Hxb+*?)Fsc0?Cb>}}0i*VLnDj{mu>COU z_FK-B9S@UyQaxP0i*=e#^+O*fxm!NZ+xKD8me|>WN&N+}^Gtzv6O-B%>%dAeh4Wp{ zzAMF`50fCVj{3>0$<0{jtQB05d4kc8F)0Ual?D1fv_FbzS3Zo2^*g zVx=M$i%Ai~W-G>`T@$^5NrlsU4?x9^_eITo7$)UMmr`d^8g~m`Ty?T0t6q9~(r|V> z^2!*4>*R|UF2psb@hBms*dpH1^LM3$H!-OiXsqMA(j000Hliq4)i9oG1CtUTE4q>W z&&N9ZiJhnIfh_)Q3eS0x6V@}!1>-+Dx$bSn_yX+}SW&)#;Qz}!&<|rCxc}Xl=lp>& zk91&8##8UU{bHUs(%Ugl@P&<-r)MkX2`J(Dx$^ln9tdxrn5XpXpT#`1tp9AxbMx-^ zF^|z7#XQ^@KZtp-ekuSk2FQ1o)P-K?b^H} z`x+VWt?fGN$+!cH-VT7EZPzx}Gc^PFTQX>SnPx}ZHTWxB54F+cUDz_sPXeH=Wt#si z09uW;7>$mFV$l*@$k2Ck2V&6&ay`G_b{+UmZbty*7Z6MJ>+j^C0nlCiia&cN_mj3u z1;HZ+_0pieyZ*HSkiYtKK8#-sfWEzx+r#ycIcxU|m2q`Q*-N^|T)q)R}b+gmOJ2XC+-`-NY;K4tOV5^1NdEog8Y) zRY(A|#r5plc4=(|K>r!n6VqO0eh?PzMs@)hxz99BsyfZ~G7X~{?eiVWG#%%?cXBkjr-f1d4If2^Xmc76K-C}JGuR_Xx~Jh+1*^vX4^GNl~%inMVG3;frHHB zUuGPDMQ_TWr%Gw`zxYn>;I`|4cXAK3>od0B$=z%5;=@XQ{d9}#(NVLH-fX+*oI;>j zv_9{VOeoj$$T>Q>N-3Yg^@G@82X0n1k1GGm(ynmYlUrWuiVz41_PD**auxt_;u zVRN8QMsuriw(A*%$h98?@%LiU>&M?jT-d6u4%wZJoxRWs*Z=M#uS0g{M~}P?*`2Ld z|A*|(#;gCo@W|_s-KjJFKYiqN$nHRQ_V%f>4%wX_@9h1f><&EirTZbfvz6R{e>b{` zzFYO9Ct0xQ=8)al^P+w8N!B5|bI9)C`~|V|i_y&?yR-Eq>yX`nOdK7uJBRGf|G<{d zA-l6<%jb~Y**vGPSy~;u<->Kz?tF3kw&nAa(&~`iIb?TsjXVD86Rksb=YW{!klp!l z%rj;1kFq-mfNgf?18kG$kljfR`+npa@_Orc1E528XTM3qLw4to-C+W+&A0ydCk+qT zodYKg57`~)CeIrYNmQF2tP-!USypAu{NEtCI!*8r~p z>NCJ9(EDlgsW-*-8@^HrgTzr}7TqPE-;T+yv?pIQkq*@um zBb%?h4uPOUAP9DN^Ve6O5665q4{z=`19CX#1N!%^J|6->hd|IlvxSFaK8IsIn`1sZ zfFMXtbU5boyLr$d5VT(&^wSd;hd>bY=Gozx5A^2QArSQK%J|`!&(?{H-`QyX!E)i@ zn9pyG`GB|Ha{U{}e4g3nl9axcm@T<`2Y`G+AAkzEl*p3rc?5Dw5e~5IjLZyhelXW! z{VdD*kz$Q~YsnXyR=p~BI~|WsvJ%ROerM zdysMt3$bNaCgh)cPAv&4yVvuq`C|7%Y(&@S)zWNMXFlS%6y9=?dpd3UWV5jWci==% zXWJ-aJM z2p#=zK}QS!{|pA{i1z1f91xRm6HeJUAXaiJ)f;+1i~>IzazN}07gq=O(?=)(0Qdg` Dbd7$Q literal 0 HcmV?d00001 diff --git a/res/test_parallel.gif b/res/test_parallel.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7652b4a704f093b487ff139051bb9a2a7ab2858 GIT binary patch literal 972992 zcmb@tWl$Vl7pOb96Fw4x1WSTz65KT~I0+Ek2@u@f-Q8ty7@XibKyY^%++}e0nag|5 z{d51{uBlzq)oZQ2c6D`i)ziJ||7rjr0QjsH7gzSY_?q<^i2%F?#Hm@u zsR6CjfX@ILpc>%ybWzRf8323@UIfIw1^~a|E2&1?LBSIg>O1FQgxǮj}ZFab@+dqg9#JYa5HNZKzoR)qpgB`v2Mh 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

      wjErlT~K7TXZzA+(oTezZ|Nj(;L9+v1^w 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�zWEFFaA>`eC~SLB%h#jFbPyF5~Y?eW$yO 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%0DK1U`7cb*W6v=wG;_{YXcu$Me>7~oGv8)Buo?4u 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 - The [ops.py](ops.py) file contains the classes of the different ops. - The [expr.py](expr.py) file contains the expression class (Expr), used to maintain a mathematical expression based on numbers and labels. ## The FlipJump Interpreter -The Interpreter ([fjm_run.py](fjm_run.py)) stores the entire memory in a dictionary {address: value}, and supports unaligned-word access. +The Interpreter ([fjm_run.py](fjm_run.py)) stores the entire memory in a dictionary {address: value}, and supports unaligned-word access. + +The whole interpretation is done within the [run()](fjm_run.py) function (also uses [fjm.py](fjm.py) to read the fjm file). + The Interpreter has a built-in debugger, and it's activated by specifying breakpoints when called (via the [BreakpointHandler](breakpoints.py)). The debugger can stop on the next breakpoint, or on a fixed number of executed ops after the current breakpoint. -In order to call the debugger with the right labels, get familiar with the [generating label names](README.md#Generated-Label-Names). +In order to call the debugger with the right labels, get familiar with the [generating label names](README.md#Generated-Label-Names) (and see the debugger-image there). -The whole interpretation is done within the [run()](fjm_run.py) function (also uses [fjm.py](fjm.py) to read the fjm file). +The [macro_usage_graph.py](macro_usage_graph.py) file allows presenting the macro-usage in a graph: + + +### FJM versions + +The .fjm file currently has 4 version: +0. The basic version +1. The normal version (more configurable than the basic version) +2. The relative-jumps version (good for further compression) +3. The compressed version -- The [macro_usage_graph.py](macro_usage_graph.py) file allows presenting the macro-usage in a graph. +You can specify the version you want with the `-v VERSION` flag.
      +The assembler chooses **by default** version **3** if the `--outfile` is specified, and version **1** if it isn't. ### Generated Label Names @@ -42,6 +56,8 @@ for example: f1:32:rep6:hex.print---f2:17:print_bit---print_label the short_file_name is (by default) s1,s2,s3,.. for the standard library files (in the order of [stl/conf.json - all](../stl/conf.json)), and f1,f2,f3,.. for the compiled .fj files, in the order they are mentioned to the compiler (or appear in the test-line). +You can insert breakpoints on specific labels using the `-d` followed by a `-b` and a label name (or `-B` and a part of a label name). For example: + ## More Files diff --git a/tests/README.md b/tests/README.md index a936e53..3f8ff12 100644 --- a/tests/README.md +++ b/tests/README.md @@ -11,10 +11,14 @@ Use `--regulr` to run all the tests of stable parts.
      Use `--all` to run all the tests.
      The default (no type flags) means `--fast`. + + You can run the tests parallel with `-n auto` (using [xdist](https://github.com/pytest-dev/pytest-xdist)).
      note that this option is only allowed while using exactly one of `--compile` / `--run`.
      You can execute the `test_parallel` / `test_parallel.bat` to run parallel compile, and afterwords parallel run, with the given flags. + + Please note that the 7 `hexlib-div-*` tests currently fail. ### Filter tests by their name From 3876be62327ca05a0714b9d602ae446107eff0b2 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 13 Aug 2022 11:48:43 +0300 Subject: [PATCH 62/66] resize gifs and images --- README.md | 5 ++--- src/README.md | 8 ++++---- tests/README.md | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a5a07ca..c8c3663 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ The operation takes 2 memory addresses - it flips (inverts) the bit the first ad This project is a **Macro Assembler**, an **Interpreter** and a **Tested Standard Library** to the language. This calculator was built with only FlipJump ([source](programs/calc.fj)): - + ## Hello, World! @@ -85,7 +85,7 @@ Cloning into 'flip-jump'... >>> python src/fj.py programs/hello_world.fj Hello, World! ``` - + - The --no-stl flag tells the assembler not to include the standard library. for example: `python src/fj.py programs/hello_no-stl.fj --no-stl`. - the -w [WIDTH] flag allows compiling the .fj files to a WIDTH-bits memory width. WIDTH is 64 by default. @@ -112,7 +112,6 @@ You can also use the faster (stable, but still in development) cpp-based interpr Hello, World! ``` - # Project Structure **[src](src/README.md)** (assembler + interpreter source files): diff --git a/src/README.md b/src/README.md index 9ce1756..f9dc94e 100644 --- a/src/README.md +++ b/src/README.md @@ -9,7 +9,7 @@ The assembler has 4 steps: - writing the binary data into the executable ([fjm.py](fjm.py)). The whole process is executed within the [assemble()](assembler.py) function. - + - The [ops.py](ops.py) file contains the classes of the different ops. - The [expr.py](expr.py) file contains the expression class (Expr), used to maintain a mathematical expression based on numbers and labels. @@ -19,14 +19,14 @@ The whole process is executed within the [assemble()](assembler.py) function. The Interpreter ([fjm_run.py](fjm_run.py)) stores the entire memory in a dictionary {address: value}, and supports unaligned-word access. The whole interpretation is done within the [run()](fjm_run.py) function (also uses [fjm.py](fjm.py) to read the fjm file). - + The Interpreter has a built-in debugger, and it's activated by specifying breakpoints when called (via the [BreakpointHandler](breakpoints.py)). The debugger can stop on the next breakpoint, or on a fixed number of executed ops after the current breakpoint. In order to call the debugger with the right labels, get familiar with the [generating label names](README.md#Generated-Label-Names) (and see the debugger-image there). The [macro_usage_graph.py](macro_usage_graph.py) file allows presenting the macro-usage in a graph: - + ### FJM versions @@ -57,7 +57,7 @@ the short_file_name is (by default) s1,s2,s3,.. for the standard library files ( and f1,f2,f3,.. for the compiled .fj files, in the order they are mentioned to the compiler (or appear in the test-line). You can insert breakpoints on specific labels using the `-d` followed by a `-b` and a label name (or `-B` and a part of a label name). For example: - + ## More Files diff --git a/tests/README.md b/tests/README.md index 3f8ff12..7fba9eb 100644 --- a/tests/README.md +++ b/tests/README.md @@ -11,13 +11,13 @@ Use `--regulr` to run all the tests of stable parts.
      Use `--all` to run all the tests.
      The default (no type flags) means `--fast`. - + You can run the tests parallel with `-n auto` (using [xdist](https://github.com/pytest-dev/pytest-xdist)).
      note that this option is only allowed while using exactly one of `--compile` / `--run`.
      You can execute the `test_parallel` / `test_parallel.bat` to run parallel compile, and afterwords parallel run, with the given flags. - + Please note that the 7 `hexlib-div-*` tests currently fail. From 5b44a1641612ac4e7099b3892458ccb7037b3a8b Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 13 Aug 2022 12:02:29 +0300 Subject: [PATCH 63/66] add alt-text to images --- README.md | 4 ++-- src/README.md | 10 +++++----- tests/README.md | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c8c3663..9e4adea 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ The operation takes 2 memory addresses - it flips (inverts) the bit the first ad This project is a **Macro Assembler**, an **Interpreter** and a **Tested Standard Library** to the language. This calculator was built with only FlipJump ([source](programs/calc.fj)): - +![Calculations using only FlipJump](res/calc.gif) ## Hello, World! @@ -85,7 +85,7 @@ Cloning into 'flip-jump'... >>> python src/fj.py programs/hello_world.fj Hello, World! ``` - +![Hello World in FlipJump](res/hello.gif) - The --no-stl flag tells the assembler not to include the standard library. for example: `python src/fj.py programs/hello_no-stl.fj --no-stl`. - the -w [WIDTH] flag allows compiling the .fj files to a WIDTH-bits memory width. WIDTH is 64 by default. diff --git a/src/README.md b/src/README.md index f9dc94e..a8718e1 100644 --- a/src/README.md +++ b/src/README.md @@ -9,7 +9,7 @@ The assembler has 4 steps: - writing the binary data into the executable ([fjm.py](fjm.py)). The whole process is executed within the [assemble()](assembler.py) function. - +![Assembly of calc.fj](../res/calc__asm.jpg) - The [ops.py](ops.py) file contains the classes of the different ops. - The [expr.py](expr.py) file contains the expression class (Expr), used to maintain a mathematical expression based on numbers and labels. @@ -19,14 +19,14 @@ The whole process is executed within the [assemble()](assembler.py) function. The Interpreter ([fjm_run.py](fjm_run.py)) stores the entire memory in a dictionary {address: value}, and supports unaligned-word access. The whole interpretation is done within the [run()](fjm_run.py) function (also uses [fjm.py](fjm.py) to read the fjm file). - +![Running the compiled calculator](../res/calc__run.jpg) The Interpreter has a built-in debugger, and it's activated by specifying breakpoints when called (via the [BreakpointHandler](breakpoints.py)). The debugger can stop on the next breakpoint, or on a fixed number of executed ops after the current breakpoint. In order to call the debugger with the right labels, get familiar with the [generating label names](README.md#Generated-Label-Names) (and see the debugger-image there). The [macro_usage_graph.py](macro_usage_graph.py) file allows presenting the macro-usage in a graph: - +![The macro-usage statistics of calc.fj](../res/calc_stats.png) ### FJM versions @@ -56,8 +56,8 @@ for example: f1:32:rep6:hex.print---f2:17:print_bit---print_label the short_file_name is (by default) s1,s2,s3,.. for the standard library files (in the order of [stl/conf.json - all](../stl/conf.json)), and f1,f2,f3,.. for the compiled .fj files, in the order they are mentioned to the compiler (or appear in the test-line). -You can insert breakpoints on specific labels using the `-d` followed by a `-b` and a label name (or `-B` and a part of a label name). For example: - +You can place breakpoints to stop on specific labels using the `-d`, followed by a `-b` and a label name (or `-B` and a part of a label name). For example: +![Debugging Demo](../res/breakpoint.jpg) ## More Files diff --git a/tests/README.md b/tests/README.md index 7fba9eb..ae44953 100644 --- a/tests/README.md +++ b/tests/README.md @@ -11,13 +11,13 @@ Use `--regulr` to run all the tests of stable parts.
      Use `--all` to run all the tests.
      The default (no type flags) means `--fast`. - +![Running Pytest with --regular](../res/pytest.gif) You can run the tests parallel with `-n auto` (using [xdist](https://github.com/pytest-dev/pytest-xdist)).
      note that this option is only allowed while using exactly one of `--compile` / `--run`.
      You can execute the `test_parallel` / `test_parallel.bat` to run parallel compile, and afterwords parallel run, with the given flags. - +![Running the test_parallel script with --regular](../res/test_parallel.gif) Please note that the 7 `hexlib-div-*` tests currently fail. From 857d346fd3cba8d71bb7ee45c39ddd893380e3fe Mon Sep 17 00:00:00 2001 From: tomhea <13395146+tomhea@users.noreply.github.com> Date: Sat, 13 Aug 2022 12:14:44 +0300 Subject: [PATCH 64/66] fix formatting --- src/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/README.md b/src/README.md index a8718e1..21232fa 100644 --- a/src/README.md +++ b/src/README.md @@ -74,5 +74,5 @@ The FlipJump source is built in a way that allows simple addition of new feature Every addition should be supported from the parsing level to the phase that is disappears, in the progression found in assemble() in [assembler](assembler.py). -For example, if you want to add a new operation a@b that calculates a*a+b*b or a! for factorial(a), it is simple as adding a parsing rule in [fj_parser.py](fj_parser.py), then adding the function to the op_string_to_function() in [expr.py](expr.py). +For example, if you want to add a new operation a@b that calculates a^2+b^2 or a! for factorial(a), it is simple as adding a parsing rule in [fj_parser.py](fj_parser.py), then adding the function to the op_string_to_function() in [expr.py](expr.py). From 941df18119b38ece2502c4287cd542cc26dd615b Mon Sep 17 00:00:00 2001 From: tomhea <13395146+tomhea@users.noreply.github.com> Date: Sat, 13 Aug 2022 13:36:14 +0300 Subject: [PATCH 65/66] fix version 0 line formatting --- src/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/README.md b/src/README.md index 21232fa..a5e2212 100644 --- a/src/README.md +++ b/src/README.md @@ -30,7 +30,8 @@ The [macro_usage_graph.py](macro_usage_graph.py) file allows presenting the macr ### FJM versions -The .fjm file currently has 4 version: +The .fjm file currently has 4 versions: + 0. The basic version 1. The normal version (more configurable than the basic version) 2. The relative-jumps version (good for further compression) From 616b8cfa05321b68432ca338552a9bdb9b3ba252 Mon Sep 17 00:00:00 2001 From: Tomhe Date: Sat, 13 Aug 2022 13:50:38 +0300 Subject: [PATCH 66/66] save_debug under the binary-timer --- src/assembler.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/assembler.py b/src/assembler.py index 2e2c310..5c43279 100644 --- a/src/assembler.py +++ b/src/assembler.py @@ -219,5 +219,4 @@ def assemble(input_files: List[Tuple[str, Path]], w: int, fjm_writer: fjm.Writer with PrintTimer(' create binary: ', print_time=print_time): fjm_writer.write_to_file() - - save_debugging_labels(debugging_file_path, labels) + save_debugging_labels(debugging_file_path, labels)

    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�j~>zI|}KyElQ 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

    r)ie1r@+gAq~e zHrxDrsPIY2GcZ_Ur%IxQHgXD5_#vJ}dMLG!r<*Y;&W?pG1j#XiApuGy_NnqZh4qfr zYsumnKt`qQ!bOP&SOpJWP*|i&rspv5^1pM2?9EjITJ}8QXhL zoS-w2#Fb-v;wcpfYxh^e0q{>@(FO5_2VA4)kku6QX#hI3DPO8~@5%)t3x*O$+SQjC zsOk(y)b0E6Q1-njES}@r`7MwFDEp&V8GD7ISsXKqH|%0I8pmjxaxnl37C9ep1Q1X; zOswOGNPYNW`ZDEmG2+%zyn|ux#M8S};Y2S^y)BN9F@2Gd8J9@rU8hmf`;2;t`*t;7 zx@hn#Ts?#QVw^=YH(@s>ppb8`hN7r?B0~>)oP+oza>98obM*x+CCBb!4~0EZAz-`EbShGPJrAz@+lx-h>KY4=pL za90p((~&ntB!1W?I5yz~^-3M&OGLA1uDV4Stq6yh0(2m)EC+ei7iMrQwZ|@4) z*D!9sPGm)g_r4A$-@w2R;$F?DWY#<2Ie&rtqvT{-r=Teba3{-hWJq*~!@E=Y4cSha zV_8JSfaqgPDi1Je`4CKr9ViH0fKSt!o*B9{uejJ2IfKL)bYe$ipBRrG zu-6H=(d98YzWC?q!F=>mx3;u~h5 zRq7upMuO7mrSTBj;l;G>R!WTTF6xb#Bu%T$0QT=VpV?o2b(%N%+=(v63JQ5eiNXOc z+7#AKnRIr(yw9Q9h;&BmKWQgi0;5z&`8F(#zhQ-Mf0~AWdtIR`5)XyQv>fItx!WNY z^jPgq38(GweFmQ<*yQEf`(6a4t>dEKzsx+cK8F6Vzk6vOy^ub6DH%jlq!Qc>W|1rj zW^nI3*nM@DgJIDujP5Un#;_(kefwLTFK7{5nEb6N+#c{c4LX}+Nk|p)Lp}Leu%sJLJBaaKig+Yd(UHS62|7#G7#t`xLsEV_wC@+ASiLk~d`7 zjElswWTYc^*~ILF1pzSMYJB;Y{)O#ag9=(Oc#caYl<28De|iomro|^DCYoR(s@{;GmH1W8Y{TfKvh8Jkk(~F0701uCOW-F2;L`mY#UJqQeYq3EF@ot zzQH--atDYFn;sSsbO(dYz?5VMF+E*-;`=Uw1pdO_K5i|B$n9wVe>BK+rUE5PxRTnLE4y0Q*E$0HL2>-!YR z>QWy{0|2;AGYb6_##n^HOoHG;w^fv}m6cNDtJvmm*p|Aml^%|lNwr2CFu#MBC9Q08 zzh-$>Vy9FwfFljqwtg#IhOzw}W9eP0ut@Rt0%&|Psu570l@XRv6}!iv|1qfF`(Q%% z&Q2gWN@^iae+@b5h-0tYKcLRlzd_gs0QZ7tA*X>m4%JD+B#?#MfnC3(w{_(=3*gco zCeF@Mbs@F6GI@*sa>QnNBaM*}6BH(zl3iU$>9pMLP90kHot5V;tX-#8WEZD`z*eRL zSBZ`0(WaIIVb?$~>t10y3$wb8V@uX1g+XzXQ@%e>#qh{ZIgUQOvU*Dr=L=Ah#==(Z z-ktM{=cWQ$(P7c=L~>v6K0UsWbA)3hlV1PDP~OV<`zMW>VTYc|o`Edf*-O&FsG+wa&?b?iHOr)OEgh`Cy zH6+StG}@<19&aDdFHbHRqS2X$9=W?4M6rq%eQ-rn*1P3KW>nl8Q+i&wuBxH9f_S}V z|DvHkR7u%ll0DV~#k6=jtcHHSFDY%9#7wm>m_z#vrtQBqDc=&MvlMogff*p>XqYo* z>Bjjo&@ijOd3$gmMQHqu7mn{JK!gPz@>hvjvA>2e)v#??U}YIhq3Ln2iD@uN zNv$;Wt7nV7`?zbSS903;R0<6o^QUP@ncQw!V!6+Oo8kamqbfp;HHHt|iiQ}1IV&a) zN49E&!#E}yc&5yF%sWRm&+78ViC<+yL?YkCco9GeXX`(qGR|1OAG9eRcUr(OH_pRmr<1scC#uq7gP5k38IUFiLP`z>x_IF?*Kfp==-SO+agAIB>6UG|>aC8&+ ztpMi4Sa+QbW~G-1Q4<#Sa@|KSdXA<_1BY+z0yrfC>^a!j%V){nu4vKD96awB?}~4P zQ1CM98E^&hkwpFOr`J;6*B)NhzjXi(eMIDDBwk)EFzFlE)-qMjgQjOlO=snKJwRtYRoJci5G%0^wErhc2)opg0X*|i*%Yv(?HsPvP|TD-#d}U^-@XMhNqBXW`xSGM}^A`A3d13dQ7IPYpNR4 zP18QhYELwb6Noj5#3viH(lIv$J(`+{n$w8JhTCVMokVGQAyG_sbnh8Wb|HYtO=6+H z6qL)Eiz00^nfZ+QBIbj$Va_^VHS6EL)`PX_Z*%D-$PobdF{T}GxBW-khZ3bJ2enGb zUk!@BQ7HKn@f$ar!nI&WR%3L4wogFN^38s~31u`JK}3!}c!WqUI$LGLeoi1J$C?<< zXwm;#Y8f39;M`!AuW6;)6G4Wx?L{V&{-^p{2i@E zJ;p3nNz2_rF?A;TIhetW4!?+$OI4yXp_WLL7`WwSC}!hf7yiNW^xJ&pih6)?vMJ`f zKF_aoiH9n-G?WdpF1p{xqts~!eTipt*i=Nm{YDlOVg<@aYb>*T)U#DG^!SD6d80t!Y;|rCwup&mtcxesr%HVky5K1g|2_|F3M9mir$ucN8by!S<_Muc;Ebw1 zV5=`LOg)oy>V56juwUJTr(Hjk4g^M1>KrZ7ID)mrj^0d;@aZZ#;SIRkT6L8FRep%pp`OFZ>(O~@#Jze`%KJAW zvSL-6>KfLyUq>{rUYnD{uaL79b1Inl72~3>`vr2~6^S7cq+MVAExuJihlR@&($D~j z+lB_W_RI}4k}K|rUb7&(BfP^b=#qsgv|IFqkxJowhfEggB(ck|V>$WOU370qy--8%B~!>{lOia&Sjx;TVAp)Y!b9!X8qy^%`q$ zU?E$CzsMb)=`}L1&X5fPz)=Dl-vFbD?af+=&7#SNnIQq7u$RNA zSNsq0-^R%BO>cb}RyJym-AP&#`iKTd~lWHZ}CT@m9U@TDIvpq z2>?G;lsGnUCYl*~)0&X-P~aCxCs>NO4G2-;sx#vU^+wpz!lU|sB@+;->nXJv*yUhZ z0=T4cil$P4cM}SYAH-kMOg;ZPa=G~-^jWRG&x>G>|KS}1Kn6zgHXdLV10jqIUOW!0 zjAtMr2o5$XCI=K3vyiU^56U5l!2!a>1A=Pm@Us=r2q4A-V_6g7oJKL@*^x6@FDHMz zo?UErn)~u*Z6)w$C_I42!6sHE%iXRRe}qb7PT}dWC*p4JSj5 zki+9iPyhkVdOOpYdP~M3#K=xUUKM{AVXv_mOLs^7pZwNO z=?>m^-{H%NCaAEcHu?U(`ArXWwvT1<@Nd+(3$M<_P{ZKm5nDAfA}^POlMa{Z$8%LE zi`!OKrrJV2K6!^JE4^AIsKJT~;<-OTM2Y~NYYS!c{h|#pGo%uN6vE=^g)4IUD^Nu< zr8J|4kUy{r5n}!AWK`rSOu}% zWiN^V1)Iu}&{S@VDg$g5qq805w(V;Zs+88vEh-|1>*^e0Ys)`gn`yB@{J?q$^q7Mw zHXIUaRzONu(<1w*KyIZf-Bd4y`od}Ui7L1M#7T!Y#q2DyeXizredB%ww<`A2;4q)I z6eBGCsTbPvT?vL@RsisAS2e2LsJijWATBJoZy=l~ z&m6oTDnA`z$W0L&@S@%Py8-Z*W%D@kTo7(TX+|!T7vYIfc$U7;dl{`B zY_QU0z-Oq7mW3r>Sh1V+ArUm2~caLW_ny?VqjczEIE9(Mb?Lm@2CgoZnu_x*r+k)19PbyYrcP` za!y*@%xFpU)qZ_oJ@R%v^z+SG%TVQcz{ynQ!YD1f0=O^Z!TLkMa=i{Y|s@SbNxYB-Tbe3;i)@6d{+JI;Mz#<+b>## z_!=X7S~po)bzfgmIv1gfXD8iGM~3$-k%E;~`tKO(BMz`=|M6Sn+LDa{p~X1jfhnSs z$r_y@tGEH9z5C|`5W&C21VMp)j8x|_v>z$15HW*nQr|4vM{o; zKk@{h$Mfms&;&;(9c65Xz%)v!GT5a#MW+&x8ZSy|0SEDx|8Ek)jAi?api@ zCw4q|mN@5+d8JG>I}Z&-IBh{5OM(dt_^|i1C}^P)y1s`8;$UF%?al~2{4@D#{-3kEpxP4&^_Un0?nkrHJI@JyhFY#SOZSFfs2A z{N4iO09+i7$4`!lXua0A-3aA2&n5gI^?Rl+@Jid5;-{J?jE8bqorUL>#DeqgRa5W` zs~kCXUl<>$;wr3;O+8{^oGQ98j{6ux)LgW0NxkF;?lg59w{5M&4*=J!BKlJZi82}c|SMN%~Ny0!`{DUWmoE^YdW#PuTp*W z(CnsL_9ySlj{8(apPLUGxQ&5=BkF4xIX55oH5-F}OsrkaxA&Z#z(V)b*YB2YKHYw4 ze0?*q{&;uu`D;EN2=I5E;Qs+hpA>Gqd03{s)Tw zZw%?bA;OPH0O&Q*G-p)r{~ts+jYI$c1|s}F7*a_x@P9*un{A5#bWbQcrP(($xEuO0vHrDC z;nZ;RihTpFLIc@&LWD;V$gmcIvW@V9=L|97?hF`DD7sp7R1m&*_GYyIWOqSvQ35)%Iq3ApRLWE5ms>}U_J^l+t=fnazRQwx5>an2wgb3GU{=bN@OMX5P z)>EtOe~Tgg?_U%N_YL#k6~xC{dW}oEK(q$7{^g%U`nznN@CJF%3~jd zxqlW7!6_k#RvA>gZHQ6PC?U!k{imn~$A;Jph;a;Yna!vZe=H&E7#-q!DylG?QVQ+# zA*3J|Pq@QVRsAtK9C+50=#@}Pv!^m5wRD~oI9W<}Gdd!3cm8%WkeLBPb<_ghlw2S@ zN=P_1sw8!hl3e!GwNxEbGfRzq4K3s;c^ac}r&JWI12J*o5WXMHVS)g+R3PTU4UU>`{#hq5lPKK$5?g$;@Ut^O?|$ zrZlHX&1%-*me$OsHn+*mZhG^Z;0&iYXJ99bjq{x7Os6{6$xi8!vYm?Z5IpBe&wASP zp7_kCKKIGbe){vD01c=>ZSYR0U~`~wDkwr1%Fu>7^q~-q=;974(TZC1q8QC64dkiO z6dC{143R5iM@MQ;1dudC)1Ahsr#?Lr zP^&W3pc?h4NNs6Sm&(+pI`yegjjB|qO4X`b^{R0pQBkq_AvALJtHRtWSbHSav6}U) zXickH*UHwmy7jGajjLSeO4qvD^{#l$t6ulY*S`AouYmR1#cUeb!W#Clh)t|w7t7ej zI+h+~y#xebFwd~@7J$oJ%;c<`#a+v8BY@fD1}c`$RR?bQ5XC6eHoE^J zfh~61BR@Q=k@)v%V;qGL_#THE^8xX!h% zcg^c-_S!C@{}ES#DW-n5w3U_YX5QS<@Q_$+ou(^nLGsKk3r`4tTugE%1UH z{NMrgvjXN!1b*9q;0RA|#ABjuK|p-si6HS0gsg&#W1I%$K7+<>vFeYTTqXcNc}N(( zgqgk5;bic*%4cpRj?)|s#;mw5(0ubue47v~@43)7^Tv@6{UU?b&=3Do-h-qc{po>` zxeTNZ^{QL_>R8XZ*0;`eV}XY1T@Sn1$4>TK8@=oZA$8EvP7bhzob7OL5&;GP_PE>q z?szAp&GWtxo%4Mib^kjqARzd{8-8zlKfK}>&-lhW{_&8HyyPcO`N~`V@|e%O<~J|) zw_}d;pbveL0v`s_&m88WPrZ>$p8}>!9zUoL1D;jC5S|x@_IB9dOHmN*L&P5Uz(@8B zSRecrxW4%DI6LxZVZq%m|M{80?d+isxfE1v`YpFS@k@Yx>i6U4-e<(`U(o#?EZ_j; z55FbsHh%SABC_&z|Gp)z0t;?m{=FbP{`c>XxsxP(slgisiT zQaFWFScO)2g;fw}(~`0stZT1O)>C5dbU(06+k#0fYho1^*xr06;O4r%8&Winb?P z#wiW2^*!Ud?E1FdO9i7Hn+0*xr;J|(W3nDbg zFJQuh`!10)q=0|`ix@9z6rf;YIgcPeiVR6|q{)(kQ2)JohOT8OmkkCi7(lb8%$o*Y z>dfSl=T1#Mf&L6ibf{6ENQEXXy7Z{hr%a(bjY@T@)uvc|xM{Ew&&Wu;4(>6?Esyj!k>E?b_ln4IuEB^}McEpc&&4 zlR!s374N2Y7LEDvWzU5-8y3Ae_36;DOP99YxpwQ>xr6V1UAz}J>;|{yJ=Oqlk7eD% z-fjH0ecbo+}LP?8X3lg-O*|8mj#@!2fHTIh5Ih4K5ZLgbqe{pk@_jC?RGR zPS_!25*6^@U~1uq009iFrQeGDwaDU&E=Dp72?m__S728ecuNTb5H^~QRb>?-kg9eVu7T5qVil^_8NiUQ-8F@h;(n6U|Ezyl5-u-*X!{3e78 z9wIS^jShT>;f8l!NFknk>S<@6aq{`+pc?uaM@**i2AXJP@^}$FWR59mq?Aqy5+=QI z*#epTlUi$SzUJbIr?p^d zrNj>}IlyXYqMN|ZXbfq(#Fv9u(;{O;?ol>b5*aK8W-EU>`@D@CP!EjTbh0@K1PvAYyc zEEf}Sek(2?+XAYwx7>a#a>yimT(YwpgAAd?6}Qat%PyaUYppb!y6Vg}yNdIvI_Fw5 z&$Q+oG|)TW?6c6n#0>M&N;l2)AtReCHOeYe9ktabcZ~JaT6aC}$4@&gcGzSqJ@DBG zqkZt&3Ae4b+iAzm_SLjPKp}fXwrT;`0owTld^@!%hA5)@MJx_SJ9ieG>NeC_bCy z_oyQB=o_!T6&fIAAj(_?)K53YOcxz~O_@Am8OfByi~3>*;9BhjotCI?ta`WCpp z2Ab^!exctAlA|Kdk?w*P%%JE%H#!Y=aDzqrpa?lgLetr+HC)ky`(We17BcXKFp9x{ z9Poe?7@#){!r$)p$HV{8E`a$1;tqWn#PiI-OK&KRa$Lwn7&u^+mzh;SUD5OqjL{=HF-CmY0I2GEf+ z`Z0}wY)de1*qTw5PIDs+VF?kr$U{03gCJz2A}1-yO4ce6N<3d6H~Gg-a>FH3)XN<0 z7{@yHaFnOKqbZ4qNALk+jICjzCuhmYS~j8;U|FIUcbUa6ZjqP2>?JULNz8M_A(XUC zrY)CQ4LKR0COIT!E2p_iRI;*~s+1-+r&a(y3B+nzx8PG%Mqos8gjX(WzRss(N`50BS^{yBvpw zTSY)u6Mz6&IwGvngwv_eKb*!9tf#chs|#QsZroN%B6tMT-LLim4jb+ zh1ni0psY-d?c*>pk6^gea&NFv1y$p`i0QT~4OkDP_V57nrDi?{NFfOxz$@T#iCMg5 zQ*dlb-I`jLrvKQDX>}tB9M+mukN_wymkMMri{xdnhJ^!Ig7u?ka;bH8kk1O-yVo}~ zz<^ubjcbf4+x{}G2AO(T1CScQwG!t>BPh;Z?|LIq>7lr~gbk?*FaQRCHmigEOCOQS zVaaCnu^;Z=p%Ca=KE|dr41jJD!;+<#r06{{5et=W$fW`>!T}cUqc{Pe-!jVe$MFIR zV)fga*GkWApn`ydM^NCLD0s;Lh~R=(z}yJmf*r2?>f|Ua-FaR0sbHpRn7>T0Fsdf4 zt;ted!aF}LyEnyh2<3bQq#`Ab@6K!*E(r*TrE1V9wLlKE8s$`jTmnXv+ya1&0Fx%q z?gq91NdFF_Tl;7y=XFia8vs4}G9U$M8bLMUO`Q-8S;t0}sHX<;;s{YA*Dg_J&*T;P z$Z8q`l6ckx6hK}YKvoANfJ6gmbOLBthvKkC$9~AACjHCorRgL9074*vZtJ-igjzuf zi1J?ySfe#%JA%kAMR;4YmQhW2xkV>Tw_}W0AX2EAZu&8;*FP3cr%UZ z`c7WIC0ZXZmy+uBmB&MxIB2j0_-RgwMUD zT({jT6P)12_Gf1 z;=JK?Fd>d&EDRh~wTC^g{?B)QTw*%==+~@$?!QO=63>5bz`i6e^Z)-}7l2|1fd2z1 zfJUT$2nc>6a$+V{kU0 z9&$j2ySR_R_=~;Bk3u8}#Rv!ifG-!}Ra3Z(sHlqXNK3vj0mi$7@y#khk}$Ybevb_(f|N(n>H1^^Ms6LJSFIB6J$@?wUe0E#(lddQZR$v%5v8Vn!+&9j-CIR|NR0G!F0 zGa&)TbuXR?Jpv$_SGkcRDUz-ko0JHWusNIDg&uzSAG+z6uu&Gfd0*<-R=GKx|DkY~ zd7MqN1g`S~8Ywv_*ONTykJ1^K(HWQ%v5*akoJ{1L+u?t_hn3*Dm0mfX;n|fzrJdQC zp50Y^jkC5w3F9xm#jeM*@82y>doC~CQXUQ(2x2^i=|re{T8KIWws=57tJafQmG z2ZbrT!AHu~MeN`X4n_hqR6`F|VW_b@g6Jf$@swR>CjUv9VNSQ9uX8ok$;9S_*GdQkrq=%4FUJ4kFZDDh(ozrrl|-7BBCa4_*$~aSYX3t(y{_{ z;w2}dY1&pFfEf{@P+?RjVGkh!A`(2pk{sn&R}b2tfEuqol|1(a0g3X734p94Q4yb* zTNSo!C6E9zc4q9=th*_hyb(XT*`+#oOc3X+eE1V(ktXYbBjwZybOK?zxCh1YRS0)v zwl#7F*=Z;;vZGdQTg9va>ZJZzn?)L>BRQoduv)KnDMpzoHt0328-hxB7g`IU3Pkc(syJpa;qvK8W+ewk%?s;(V_ty=b{Ec&8j z+e3Ab9)H0lGDo!6Ndlf2ONYu?VwhQ6vW~2GaCM8cxAbS}2(f;PP|Fn{ex<1)D>rzH zj9xOSZU{Y@s*O%TWvWUqS9cdI5UU+}xg46g6eR~?k*Q-*e=?(Jer0n%;)yijYp9Dr zhjq76YnFU44eH^uNh@1+p(*Y*L=z-x(ps*qD?OmXcAQaMeHU`zLSvgpwh)TE@Oqd> zv?<9L8^QI7g|Qn0n?$CeX0|A>w`U3Y^)UV>4i!NF*;c84>x@MS3a%+<1;+vrWN@PE ztwtk!A_N<;OQbG)zbgx~Et|ix5-BYpu>W}rsum$|rjcBqpa2&Uce?rwEnol#X`JPo zfQNTST$QgpP#Un;Xu!dRg@_u~dafcPitqE4Wh<}A>!$*xRj+%#C`rB-{H~mF#8Pa5GXtdj z+n-qcvil3ATgOdJH>cx zF;JYwd#t>DjKY9ifupCl3rxs4n8%3BF4yoo!NZ8ounMKHe8ms|jhuA&%f(-O#af)n zn7qlk(g(42kO{!Hkbs4c8Jt^@YyTF3%8A^{U}6J!g=q#P5X%*FMFyB`c4=3M#(vDl zzTC?xYzMI9Rj8$lG9sDerm`Fxh|0{y&MYH)pj(V7YK}ZPrGa-h*>2ny6C<3B7V5^} z48-9a$Gij_B!YXO(yqqmJGduqXen?TJO{1%%=Fw$4XhwGFh6b88;2DwkaCYx>4Leq z%T4^p1^vr`%)I$#TyT&8mL*@6Rj&2Bk~@nB`n9^QoY5m?IoBejVEoDRLKL_n33Z=$Kw3gL;j#`b-2Mx>#eMfnq9tITAKLRRk2(A`g(Lzn5 zkR98y@rRi@3U`_sjw+P|pl2nJ6FFg(G~AnsXWBDh*P0yDT`bcseca4FppEUhX?0=p zj6y5MChEp(scSyNwqV#DYzXvg4#UcAE!&V_0|7UK-pofm4{EBc*)?bm^Q z;TBF+RG=4gnC+_;e`F-CcUf=kgI2@khPBYWV-Qq0%;>+F1$PMEgUgMl(;w9eI zTRq}9E@C$R<7m{^LSErRj^RaKW-6ZK74yeIMaw;|#5*44psmnAUgZr0<1{nD*l}(! z{mn7n?6pUgpT6Sm9Y1c7PWVN*f4Pc1A5vTC#0CfIZ9^3;It5>6( zqCBqSQ{IzW)otX{8n7L(hfY4{fq7N;alZvRSzLL4e-cb8V#76Y!1S&A}XM_%hh{(rS9yP=yPWTki&JzrNM8d7F= zs!rgXs2?}fCg?#vK9*Tz&0`F`=}%L;!B)d^1bk9`)pmQdREF0{M5(*#Bhr|0PQFzN zAQ)|40*b-|GzI}DKInlyoiKMLUuYW_{Rvb%K(+T(I3{%Z?sP)z&~?}q1L+2YE$y7X z2LO^+W8r}|u-7SVch;x}62R057pymu*V&;0I=llntR1(NVg8QT5&w8$i{)aj+%x{= zTET{BCUXqCe`-C{pejCv@gIeOVk#nvd8Qf)aP$9K31UXsp?p_hQ5j>Tq8VJW*na}k~!c}55`ear5wUsvMY{_Nm4oz#_8E)%Fj_bviSz)iQ zAQ9A@Z{3OpS1z{m${K0BAM{|tS;{p7h9rukdF-6e&npbZA)Y(4(`V4kxVU=Ed zmGK+gEQ52~G>{xvO9G+Er-I)0Mb(0tFxz&M_#XO0F&Yx-mS4PZPT2!{p2AUXz)#;9~!wO*+J zZ8Vx#KB^*w(jhH;2@RE^d`_pJ*X>*@wac?}qscudADG<%u3=T-8Q#?`>NOrRJ~}E& z=0#dgURGjmYIY`i(ouenhOz)Gpgak!;uwh}C>hK(Bpt{aDb(Hq80a3+#=5c&^C%1~ z4eYA80^15V94`<}6IWATTW4c$Yj+n=eLpxIeOH2WxuTD#m#aKDD8L^RAiyU)dDYr4 z13MDzdnui!H+VVr}!OSL1u= z(RibInCWO^eemV@BaZeF31pE&8kr=LOVSsllSi%=qm(jEStXTMT3O|3qnXwvYF}~* z=9Xi68K#+JidiO_XR6s|ns2fR=b8#-iKU%&;(4c@d1j;JT0H_PWRp<(_@tkO5*nzX zOd@)yqKOLHD5H-$8W*2?VtT2jnR2QnDHD45pok@gx*@5fepsrBr=BQktEQ%ks;jKh z8tbd8+FC1}*hCp+r@w9*EU?2)3C@HcVmE1|lq$REpp`l+>9fs38viY`(_$;Fw%2ak zLO>aTn?Se&3_zO^4Im(H0ud40uCVXA8!vux5_;V`06ufN8K=Mi%Na1i z0~?%h!3!hI@WBsf#sUJzs5|a44v5eIEcTL{00RTv1Fy*Pl034>Jh%mi6DwboL>Rn4 zHh=`WHFMOmH(QHywL3%0GqpVf{j<>7a$B^eV;ticFZ@VhKr&VIkwVE+pIkN7^7@m6 z0>%OoGM%_UqzbOH=2|w{XTys2*lDx9w%e-0Eo<9x-%7Wxb2Gxiw+)C5hiZ2L0L%cw zU2V1Dg(DuL7A$Mg%r4g{uz*xP6RmU5mFJu}<=a|5H0PRM{{Q*rFr1-+xCexcn-KzS zb-3$^!~Xib4R-YMbxZFhOT)WE?6AVT|K2VkKQ@>p&Jdl=jDfQ{`lvMFP#obnQMv)90}lW_4i+&KmI{LBKTzL z0K$H9d)ol*W;VRlt$+$lAOr74zy==hfetj_u3|8;K;Xt{1gPK3_NTuOdN70}Aj~{Q z2!#?r27`NGpZY{czV@N-g)NLB3)5#q8K&k2%p2TP0FVFyY!C$vP{0s}7#t8HQG`k? z*;*o(5wRU1W_uwQxlplytsyUXS}a}`xwysSeX)yR^#39mxum=TEC7h{lR_Fd=tdyI z5o1f7V-o8atmYVih;c|w1BNJp2NY3{4xkMT3pqnW-mr!^T%;l!xxPm>DhIv-Ty^Yd zNjhROQ;V>OMMm)(PJZ$?5u_jjC%8aULQrj_l;9{&*~(Ow@|CD;g(MYp$y;VJmsbJ_ z_hv#vNdD4=jua*^5y{A69x|DUT#qiBiOXlYPK?qFBQ?u7O>0(jjM}{BHmM2CZ#pxa zSQ{q#dbvzuqBEH4G$uLOiOh4FlRf5~Bsl9S&U<3Xm8#TdEcXdZR{9f_0+l5}16t62 zB6L-^+fb*#LrZ$%Gotq7)v=UUx*5Tfm*)uOPXBsz%yhaFq{{s0I!D@0UsfcPphQe3 zRpA^yO-OYRov1`>3WQ@3ZVocdP&erig&`_nA`;;n9`Xne2Q;9kO64X~v)NQ^LN!i9 zJgQKGN|91bm58>hpi5yi00Dp%jvK6>a9}o80iZ%`G+nDrgFptc!gZ`i2}lxvcmf3E zGWAwr$sEJCC#Ww-$_!%hLjE_Km}j{iwap701!$b*F*5? zmlyD@tSL&N0>shB)7~Y83FxCSl7LsX!nUnEcq=^mm`4pVg)3|T=mY|B}D%YUWP3Up?3I9;)TDQ9Y)UGA85Vb3Ggar+_Vif?<7h@fv zjRzoNPWO{SWylWz4j=#lq^5!tI)(^1jV*s=#}NjE_6b2591A-51i?A)94Ra;0z%6p z@p)_k4+wxbptuDHG)4}&sBeO8LW0}0w3Cl*tVkJa;t`)1Ck}wj9*tn$Qp};bUTbe2 z1#+*591%IH1s4i}0}TcYU@M(8h5%-KQ=G~+$<#BgYgQnXhXUiZfGg^^?6sE!Oc;6j z80)<<{L`2@L0o2lM(#*s)SwPkB0+uJQ9gRv|S?Ey_6>ESji5H9FTc0$=Cme`!#fFYFc>1D$Yru-OH1lDzI#RGq$>q?z!aG#NNjcf8=pRPhdfvl`E-`>&Z z_r0Z$?txB!-?v&Jk_Vn8q8B0f;IKSyf&;HZD-~A)Cj`Q<2{`*fF zoNI4b<>9{n|F<0g`u|@5R#X461O6dk{$bM1kskcjTKqMj{DocwQs9py-~}pR5>a3F zVc+#t-v)Xh2Y#UTbs)Zx;45Vy2C88GM9Lmy2ZL1L1Ipk8LSPNfAOkMT3hH1A#ty-7 z-=_#*+y&tf65s$Dp%5kvHyD99FroLUf@z7H6Yk&?@?Z}*iV7me;LAfmK*RvRd+pUY218O>QzM>gY9t#APP+SEn(!d1~9}O4-1LR{i`lABMK~_=KKqi$YbcM@k9XZs_2|i*Y zLZU-LBqB;ABTghk=8*G<)*0ywd39Aoc#KEX;x>xpKcdqXw9L`n1RA&&I=R0(nKkH$azX8DKFkBT_2mF)pPt{s}Sc;U+py zRPtn1rvKm-E?Bx~Wdfv&xnP)Uab;L`B}>X=JIX zS}B2C3P2t9q*aQa+`yU@{U!9+7a0U5U|ta@QeBaW*Fd4QF%)XISj!Z&v4Z`X+Yv<^)cs zbb4n^%BE_H=WC8abe-0Wd+qWjhGSz znL@#!(PLADpGGDCuLTx{!oZvU73xIE1yNRr!T_GesXh*cQk3ZHoI``zCk{y*Dx8`? zn2RuU#S=L|reS2G-a`X?jLWS+$M6|iSt<#1j5vIZltBld)kD{rq`IgY6U?Vyt^Za4 ztmJc;KtupQ;DyAirT~~32CbUo(`cuE?&|rdhEf=%?TOocIh`=@g1O{bS zOLI}EJGg@%blZE;fHaN(L_|r2jev)`!`^u-SL_|2#sIha&|a)jpfXVve4N7>p%o}9 zCq%(ywGM*JYo#s&ashw@;47)x;-?mfO0p;@bZL;n1-EHNtnS5U zf|i;-+qJC-Ip#pJPEvD0sJHk54m1F@l0#wn9|c zkGfV(bL=P+I4sRY*rKY(qq3+=p@YzFDmqYVq|u)hBrT|}z?A_KKcWF-IR7mj5Y}r& z2ajg$UZ6x2m6>>K-Ph_Sfc9rh=75Cq!|(lvzwIQ))_}(bsNJns+>WeZt-xdv1wBU3 z&ALF#?m)P@0N{!Zxyn>hr0aT0$zTwr*`cT@C0C3p!o4nl(#V12wir766uxd!-~j9u zyu*>U>*ZSQO%4XaUP9n?h6q6HP&Vw8GN+VQY3#N_0bCHx@&_#B3l1bJ4!~^=G#8uF zK-~hb3z&fI`ikG$fT7K-o)&@a;)ciYEzVBOO*rUWxa%BA)b`Odc#);ECef!7CVih|oHQzJ_ln zWUf$>0`nN`FX)3=+3A54Y^p3lI65EdI^XIZNb5#yc}^^AzJOOC6-H+4ISOzAV`T4k ztP(^k3?y)Sc}!pQLXg=2@=hZfL2&a*@J~2zaM`Q|Qw@xrfY_0xBWdryb#HiRnC31m zsI{CLTY&-SMUZxsUW(##u&PI_-xcs^fy8ecdu_^st^M-nf95Z5E|LqJ+lvHFJs?2O zais&8++aB}nW0WSOfnWavN1qJJP@iTZv-a~*G5F#CU=b|um5Zic(MWn&?@UqD0?9v z!h_l}*DS|!AJVd#{gx~T)hnY}%-}K@zf1Q~pTrdwKXe3Sw2l)Ub22OKsPP&H8ffY13&XKed&cf zTG>TgnMUgcM$^|rumCK4bVDPgFt>{tA<}QKOiSy=I^?2%XCiT zCqv-$Oqat?zqHlv^h^`AP{(mm4>fL*Ew9!ZOxY48x&NS4>l9UIUEN*vD#Vmkivd>) z+g4+BSEID15MeKY5;}6ypLBsJeMefi?^**-Ih^%En2=kyb)3ZJ6+iK(XW$tEsVy|f%@?`@zYLk>|6L)R; z@HHJ}!d^yl|MhYA@N=8zrSamCN%o#4He#bpEmikpTX${?GfbF}kAyd8eAs<(wkzC5 zN)57Hz-`2X&x}}ict$`tm4#)F&bDp8Hj2~sJ+t^~ zWL7lTRbCmu>15tzaVd@OGc9L~m_5OK34m1o&==fds~rt%RKC}yB3;|PiR+3 zs6h|7cb-GxVa0e`@|7(ZVr{{eqjN3TjC{eKQAUpHO~zzZxRHa}0o2be9OQXf`MPMK z0|!8y51JCJ966)`jh;4r`+1)OIt3OVkeM7Ux`54!odGbL(iVUM09m4|BuLIr8qF1O zNlatthHK*Rs0nr`&mbD@>ViT`?FEW<^hLQu6VWluTOH7Vc7LdNBR)j_U# z8AJm>u8jT5M?S0M%o-iU>*hYH(w4ayG>+1s5s(?!Mu-8gxzr$G7U@EFUt7C#H}^$$ z6~bN`f*H1u_Oa?3@rD6863=O|Mj3z)R?M^%C4B?iI&sLpx^d$K;i?~V*`s*4?Lqb$ zzN_B&8f_lwdTKCJjqBt7&cb{AZe_p zJMgwKIsgPvV3CU{qMWC5{26G>1`TgVUPLThE6IAdKdMC((E4(%j+e>k1=SaPkvyB zu5W~u&E6EmjM@wRWa!-q0UOu_aNtM|)qgJ_{TCRzM9N!6#8>Ua|F-B`JUrz<#$Rxq z={*Tde#Ve1P^3M8>rEP^&KFRz%D3s#HCcQS*1ylZ-2y&=TL#Xb0D?nJ;PtGC0RX>) z`d$#xX?fvlvDzMx9Osi6U!0bcN5M|B(kk`Z1O!~$(spqe*t&)8BXJ-M3?{Ps1Q;*~uY`ag5HRv9FoDqk zV1S^;<|UX0!RBz6x0jce#?bP1;xLDRV&WikkkAHtXn;9Vsl^pqmfCe%y83$P8ml_X zYI=)W3)@P|Yn$u4iz^$fYg~*x+^hUc%)DE4a1R~L)SuhD4I0bkTmY|si!MTzI{@noA0MCwsEcMX~ zb0bHj1SrovAmh*6C4}bwg@V)V>WQqeu*&4x$}2dqWWSmndseL4t!de!eY;kx+^%lp z(w!T&uHIBUI1LB`c!1yo^8hChjQFojJ75sc5s-ihfPDl+^hhvc#$P{~kfg||Nk!wq zcox`9p^ZUeG=C#|8H_lvCl?zv+OCcJw(i`#cUN?i&C#DfdIa=1z-P{$M*=znD5(dJ z8U?g^!677oQY!_1APrE^Y$hIg1!qLRGaxb<01t{QCl1L_0X)%{^C4Wl*)m|yj`dH* zUx3aCxZi*V7XOH#ehLah;DY`&$l!qv0(hVh=vSoJ zIT~7(MFApxqaubN_Ar8n9;$?4j_J_mTW>!02;`4K21(>zGU0XP7GQN1o{}{znbt4e zSohTnP9BM6mSHt{6_-qQ3Fen#ZW$(-V|r<3nrN1UvT4k{>b$Y@C=mWe(I;e&4_2+diG$}}lBkUDxPg_-`xX``A>*r|jOZt7{M zq>75^goP5y>Z-1`3hS$~#@b_Bc$Ed0k$K%}>s`L?`YWz>0ZXi~x*E%CuE`FIY_Po+ z`)sq&D*x*&wbL>it)#PVODnhDb_?#e;@Spkspg{k>8O>Q%5J&nn!2vL?W#*}s`aL8 zZ@&2M3-7(Ajtg+O0tZa+zy=pur<-;ztZ>5#KU^)t5HDPp!*g0J@x>Ek%<;w^YYcM6 zW*$s(!6uiC^2sXG*ss2!id7(^2Er^al-B6y*1X5O6M)XZ=9etckD8Km&HkS2bIbf9 zZS*lJJLDOj5A}H))xE`#fOA+_jiS_De+|&eVyB#~wbGtV+p@Y=Tt=c@W7*_S3!yz0 zPD7ntDO*rV2{$Nvs||R>$Ciz)*@O>n_@iNmTM#-5fY;|uj-MD!3Xbb!6OG`QxZ@9x zPyhb-<4H9B`Hz2zq2~ykQ~vhq=6v%L=a|F3)#J0@kaF%Tcl>Ut1)%d+9z89T;!(nT zB6kW$(Kij`qA1{i^Eqg9$`&d}C)^!Y!hsGocvRzZE~+$;#y$P1Vn73&Fwcg54afk= z0^D5nKJ)U2SAYEO9Nl~WNi)sA|M?GRQESy_qyrd3@JJlrOV2@6^AqxwCOwg;Oc16w z0ILXu0H5eV4iIyg#LS2X47|fMI*6MR9Hjsf;f@Kx;2IQNFASY%2T%?|!{Ly}1QKL` z_vQdTZ|H7_;tIux1SB$rnE)pt@dJxs(21gWq!U94#|)&{fRdn&hca+Z4jAwWC;v47 zhz58-8P8#z0{rEQElHwW0-%&IK5Ppw831M0aFq>u!Xw;C!)ao0MLzn0AcBaZAj?;= zkGU~qyj!Fr8|kGV2*w}Y;93e(lzmO!2>ok21~Ig8(ZAMB|?G&n2^VMq>$MuBzS;8^lYACV%G+PIInKV z0FS>|<2D1(iS_}29sle^AlSeT%b38RBeSN`9tyzl4KRRH(gZtj$PyB@3jYE#IF05= zIRj2=?tso20Yg)y${@7zlVud?LT5losBHu@@vPeEhEM>0$c>;Vhy*7GdJu&M6b=pu zYBP`8ElWuN0e+aq03`54!37Q!FL|QP8UVxOd7%LNXihgC0EPvy2&}VV#Tcm(!t^|) z28|H}A5W6FwG^POan;K{f0}}HCnoG^j12^<&Z*L^aEwJ{0L=lbvD-jMkhK!5Mgb1fg5t7Jh)8WNk-}2~6FH!-&Hs_;sRS`lZO#oC z&*^9?f+GO=frvIrsUld3`OfgB2LXr4j8y_all1Jwp_;}9mGPHIVPfRPC53oUX+ zd;$f8SD^=7WsPR}0zg70M5;+oOOE1UT*B0nP*^BZ07BbL)bMxHAa0RiTi@YY?}Xiz zff=2;9wJJ4TYPar_axB{VL|c~RZXM`$V!0I5bt+=mE$11`{f3gWefK-L`fC^(s)kn z1Y!LN??}L3IN;pPcStFaW37 zJ=uH@2C^2AcuXHkPpj%FD;r^MI71D?up??xltI}PYp#xqNO!V@5f&^YTIDO4u=2KN zJOf8bL|~$Z=(!>B5(bEs_R;}dNegpbCNRC*Gs9j7-)i)s-0arSX;)a_7#5(xRYfB? z9AuKo)-;+q9S()Fw$?=`39pBv+7}+AGvdgk5HQnf1^7^*HUK%vAM(E07)pgd27*uF zK+{`px&#Q8`9Z{t;FB+V=YawTKbRuzx-JVWUC!g1WB=-qjtnxo>}`714ii?L+~kVf zD`ko_!@W&Qi{|x}>aXCiPon#_1a}lDJ0=bQ30U2nr9HNsy?!mn%3ZRLh5KUXJ_{dY z6ykg;g&6~3&;pe41U(E%0n8})r^Hy7BNF^NB4IN`%oqmYodn{0I23^t+SK(U=GJoh zTHUm?-~AXp3R-D+Gs5p4tPCr4R4R68Rr@);6tjV2K_KnK(PnL zL5@ax4Gl*$r@@2@iD_P`&S|tcHxL}LqYTf2&hhR=Q=yZ6*Jw=Em z>(F#bC=+LJg^UJ+k=BG>2!@d6CS-#s#B(GKC{vQbTv_rquOtzjkZPC2hM-1qXqW{G z(SmvCBgOE0{Pzm;bXaX8A4<|T)JJaNR0@cgF7zZJ;AabmMNxoNPfb&Zg4Z^wrXS;_ z3<|V~`*&e}IB=mje){q>WoU$Ws3=ksIsd5GhG}R8CNfRCp(UfkiebZJZs=UO2q=UD zU374?YkNcR9|LBhy z1CIk4j|6FuRMu{C(ueBkiRS2#=;)0R$&lmtkn7lx5P4yDXi4Hk1RPnAA9;`=DUXVh zX~eQskr#A*BXrIfjnK%FFDZ>K8I#8-lQl_`H@T8CsW=^3hi0gewJ4H736euOM5gc# zEkz(liFo>@l;viT6p4`)d67?tk~qnX zHkp&s8J*DijMn*_(}|rhNjG3aLp|A96W4Gqlw-tcp2CTq7YDGCdZjfbV3>X z^9xWX3D%|-f?1e^$)O(#m>}w*Axff6D4?&kk(vi#GG%2V2$>HGqYWyfqk{|Vi3@;4 zVDX|7sA*@b`Jeguqx>19{^_Gd>Y5pOqWF{qoj@J5*aI^+qfr{8Qwk;$+M|RQ2~{*K zn_*Sksgu>IonZ>5V|txpTBc;0ooLFPW#gTKQHST`R}H6XrnRC|Dy4TCqmM{#08nRp zLBr{7NAB zim>{su&Vg0y$Y-j3$YC=vA#;N4=b1pi?Io-u_)57+}NH%b6pAftp-bBAL}jxNwNd0 zvMF0p8SAnei?Ciwo%E_@X&Q|6Isj5<5BJS($5n>a5kv@jc`EGuvzTTQTlv;k|f zlUR=8II`9%wf_bCuSP4dN41f(V?bIvlnV-;L`$U+bF28!2^vZl&ZZesceWTx4M`Y` z?7f9Ulxy3?`^*eo(j~&s-3UlIAPUkT0sTzqMAwyJw6NvN*BFMOfgDlTnyzg47q+vmxGkaQn~&I8j^6&**;As z;>5cvn1mkaGlf(}g>mFt9?mu101-ra2$fXTC|{{IDv@x>aW>2mCk2e9Z-gG9?y{k z_SelX4famL=qo1@HNqkUFe)20CzH={Q=r{6@$o1J9ylr)89Jl&nnUNAQuEM$va_W^?k_LghMdG7Rg@nP zka>5~9@{V7&k(HDb;eqR>T0IMvEh=Z7k%D`5w0xz2xEU0`|OM z*~NC#v6IbL%Dmd4wN*-Rbge2!yE^5>W4H~ZU*%6(6Y+Gn?z+x`> zwEc05{nYNQG3i2e#j-|;Fd06qyaNh?&1%1aHo{oFE0-FK-Bd;Tx@ggeBUc==cXbD@ zckzm$bBs|J9j7X9bt=&#fK=08wmF0IPFz_xIVt2Z-L~G9gQmw-oRas>maj9o^6`;q7-(|6}=b1 zYO(PVBT+q9G%W8<)o!p~N5h9c9+Fbh^itHql7c)-B$c$&<6Q}P+!)>O+R_i#svp8I z!g=Od0?K50-i+)TIkA$buqoB7fM1l=bqv!AkIAnq_X5u*@omy-6~IYKTCcvHT8JAx zxBpnyL6xFpkHGyn!-s$k5T8io8O@ownM|T`&4^1lUB$ERkN4B3hjY& zGN0Zet}j=;hA(;Z)d^!QRNmR49B?qeG+XbJ+a;4Vi#N9ov%c}5-|yrLymLCQqLgUE z>WuVTVTu#$V%(<`> zn|7ahR3kN4E@gSEq6{IBh2eb5w~g;|t~0WYwjSHrVe+yh&x*SAdSU5k@a3WM=2F0{ zL)msz_*}Dej`9%L9HY_Z+~e!yIC!p7l7bV3k9Db}`c^>P1YokdO2tK0?E;FUdeSx|0bFR z;UHOpSi-2ofHJWsUenER>)Z9Rv5nm1B>JKh zmUxZ&bhgimYuekq1OhsI%`UeeK0O<4AS|Hg)yU<5ahX+MF=Cj7=y|+Oc^~7l`o)!u z_2p~&Ce?P*FT{&DxK~4KjOyx$6kT#N8G)MisdhVi4(QYgmQ2<{>BK0fxK1hxlP)ZL zYtqIRIFaWuqN@I$PJWiEFloa1@U>#74|2{K(++aH z67<>kPu%a_c-ODGKXBT=oYKo5cWEj5RvtP2K)P1*u@8?os2Y-TW&ALM433f9aa>`# zzQ&9ll<=m0@*w*3Vda&>tve2f(uJPP6*r*(DFYwZ8E-_8On9mQpDzrrd3Jf@#ZCh+ z77b2FODcbmK1Wg90F;^Z6h7Yo;IYT9npCP|9lcwc|3q4rSn)*%K4TFjlPMsKX=*qV!c^s@dK%sgo# z{l;f+kkZ+O25uz~062q(Oi<7iIpv8f7?c)$FfS2W2JP)wmbHxTcv1J|)%KmtUY6VQ zG!9S#pkLq`kalW%7v@cKIg;D~4n3=>utROTX4SD$U0~dd+8usobE(i`7-4(;neAAG z)9iq$_^{pON{`pedGlb?a0)i({%mz0SfOqOhLD4y2i|NFj8!pT=}qxmS4^0fkRzN> zMBov!sL)4Xf*fK@oL1#X@T%W~`m|@fZHHbSeflN{?Q+IN_(@?y2` zc~`Y*#4CSDS(~cN4Y5KK8W{j4!Z7ScvgrHjqULwwhDxq%)Jwio!LNrdl6Ypfs}U?F zs!PsGP#h4!ky^QjLdH<0B%1vW??Rz{L+?!3Vvr9JgZ#8Fj&9qOKbi4}kw3AwXbO`= zmo&^0r`9(zSYS@1$sNxGf`kk%Z9W17>nj*=N%(e~RKnw2s{pvx}iy)kKW0|M`p<%ap2&hothH*c}w9FRwiN z7<4I>fHwJ1{Zcqy#I?OEtk_)+Nc;!1z*MvigS%OrRTQUP)NJ)bo|@@|gZ%3G){y*~ zEq~Is^I$BX1p=maYr1xNU-68`I@fi+5-iU6&FiEB*}$zCE`%{e^Mer_Of{~~6+q{i zJN<;g{|0>*Lohe;r#MZq|x4sXguXw?3A28t?Bq2+sdv-3(t~G)`osNXcjH$gMa7wT9End89z(@Z#Z4(~e8g%;L&zD)8p(`; zJ2z(zv76c08j=7O=k`e)5)E7mx3I7)IcKe{EN~z&B*s&48};xcfA4%qn*=n%Opiu4P^9ZevP=_j=JXtLif8|VSYaxK987aEd z84X}er9q$(3Lj1xiqe!|Y^agMx#=K5<^Vq+I#1!kmQ>$&7yD43oveIc27j&*Y+aCiqraq7FbRQ76qxYSdd6w_Ai|!a~;+r=eWeq;(O*m#4@@|IJ zq$5>@RtOm{dcp`G!J#FW-N6v@Qcqmm(m2loO?aLX)VONG?J^-F_xPRF0&#JQNeYaE zjH!`^l8@cFYf3{_IzW*ap;RIe#3teZBM>Z;zFd~^;69D6)v~C%Os(K~H;?vH#y-U7 z-j;!g`&yfIFSJI-8&Y^e70#C@Yr}Ndb@=z2uJt$&oLjakRoI%m#26?qgV2g-Z8QXF zp{W*Zo4|GEGVm+a7!A92v{RO3)EoQRA&b@&`i86w{t+GPeG1~1I?24j1Ad3RF>>Z| zj?1CtPz(?nAE0t}^^uFA_wq9NabD3S`wBwpG4HavcuRCTyiG0US9i&V)qM1dT>V+; zk;ca?f>qB7XjABzs&a=}5$3fGz+~Mu^pcLz3?Y@|UA<}M_hoQ%`{6k@jy{~03ium( z#0OlW)fg&a1S>hl%;a|;E7>@bTwS2h#dlzGVZ$*Spe{rpG?=c%W>Qg?HM2gD4QDZ0 zz>&^6D;JCe2^*R*ofeCY#r_s4prTyVeD<)8Uw z7fXmCWz;sq1g(Rzj(T*|bng8FZxqu{yaQuudZPD`pR*C>YPy7`);VS9v@S6b3p|N> zrsL@52D+C>ot)J@AFfJgW&|O3SiMv14J!8-G6D^mUzortOrnA4Tmg>FexiczJBc<~Lt3}-U z4QekrmQs?eR~kVXa^#$MqJQ-TJL0{Rw=X=w7Z(&pm~xR1H@@t!-j z6owE|p|Tc6Cgn>$YJ-;y&sN`tCYd;&!0bMp!8kkiSl!^m+Ayr2oXvw>OQ6>0uG0=$ zR;hGJkqofA-;~O(X6BLnVb{F2^3DDL0T^9v<1`jlT%(S_DLO%jJ%)OpVAzMk27h83 zVgP(w*j(b|2_t8_6|@7EeD%@ObFW^zVff@J2((X5+iF_rIh{Pb7CO{Jgr5|8>I#V1 zaBBiLsqze78l33_6<8Ez=|GqrB#UWu7V~Z-=T_&zjX0I}Fie9>YoOtaNieX^*&^8_ z>vZG(gC#b7?jCHK0x^Km^4ww#sceaha6CbArZOpFu%&zHp-A zF*YcklEz#4=|y824fUZia_oKZn>;k;b1zteQ=o4^yO*)qX%96hf{i$w7`AlokS!Uq zkLt1%%So~WEb}u$lt};r586n{SKb$lKE?Ne9!zkRk2W=gosr+ar>e+^dpSiYSeY|{ zjIMZw!uTqsCmKn$@kz5;Ht$q>S;kW;si!z_>EHGO@*j0&Vv&I}|#=;qG@8MxD(}G%pLS2qGmR@*(I%b7@ib{T9&b3n( z!U?cqjnpRGj5n9VsWEJO#+9gjpRu6C#w!7Qd=VV57zKj@FYtdOcR zmSz-#Ytm(0*?Qp6K|qS6@tw4OW^N-uciG?}=9+nc(cuIyuxd2ueYQI7I9|&%C+LCKy4a;2MG*dV#@Y!e^f~oFCk6ife&BWs3P57M!kb73)Y)i8gcVQFQQdAC2<^<@`1RvU(ud4}I8)*zAlu5<#s*A0RP;q~ly zye-eAFbqJ^!-NBAR^ut!Ac541+>|1ddx155x|4}ckdrAzwkm+w@|otvoT%NB3XbIkY2cN zko~|cJI{(e?;JrihgT)HSIn}>eEKlkPy~F@pk!Z8_y$LbHv(gB;g*44X)%&Y=j>hB z@k!=7)HO??yn&zyR|~)T6@LwjS{1fB1GZYHEI~J~ z3L!s-7irb6IIlC4Ac>``_Bi`5&U1Mv-sx9>$X)>V8<(8pijTbONPYeSVW#r6R)Ntu zSepIKhZ2dt>p)m#tT z;SQUT9x{^fZS#oW)ISx-D$10nKWWaM4?;6s(i=J6duF0KL+79de~yEbQ%9CAF(@!XB$cMD-`kA z9(c+_x?xW$UIZvQz6hp@q2;GwEh1fAKX%NXGP8g%x`;B4U*4sN`Z~Xgz7cK%KTbg* zO*234lP#(ue%gW}4CXQP)GdNLTXYAGbcv26%Z{{k#l6N`WO_vmA_9!31%L}hOsbCU zl*P=9#U#Ks^d3LGb1^HX6KlX6^Bn<}jjUCgaej{BB96puj;C9aQ36~ATdej1Y`w+k zlTL&I#S5(hyzW~}r}_DKotQ2-@riHqQ3x`zGP3hJ^UfBth?hXml<+8)aMv){oD>wi zU5Jyd%$X^`dAo!&phQG&-V;nBoLDl}GcRx+7?5!0(Jm2x;w;qQEDt9Uj?qs`DUl+X zQ=8&r2R)UeE#cEHf*lu>rrYH`w#(G8>0U@%5phY%d`GI;6zda<9s&@2VbSM;0kp%u z_VYP)qAT4slTEDQCYA{nM^yTH2d-Wh+ewf7jT;+>$Rr1OF6ujNX-@4nVu^iOE(&?N z1tYm`ook*AQ-vN%JaN5?rJmh(HIti_H&hD7H}-39^==#-!o9qGemM1V@BV|R=$ME9 zQ&jppXkql*ulL`)J$U#2h)Rz`BVU-*_z$V{hi8Im&KIY(qpUl?5&TxTYbMOhp z^4!r9i>HXoo#lDs6%MlClQP&Dt%S4X=os?^^2~m zl7-%+GaS|tZOf`qlsn*w`sPs>BuAr#&2d_70I}=qK>fayi@2pJr zHlR+u03RUwhj29V{YDT5OI8vlglloihwvQRv@fZa1&T^Q=c~1QOq>2a&^B z_M(pyvtgZsOFUw|4_VkIY{E`}$F!1rDBdZ>xmG%;WxZAwjux_34w~!uo=TsyUhSeo zorktj%=tZ)ew;P)14eFF5%>=({kWPuo$lAT`1#Pkj zAqD^y1++J~ZKwT1!aQa|Mb`Icb$JQiyu7cS;0-#lYg=`QjJ40NT(DClc)OSuZ70^8 zl9>N?IkzI;ZXy5lqqo>4PwWoX-g=6GR?B7ygkIFINVub@^rtyj#ae7{wA4lSz1tSK zO7NLVKXM1tVQ<2H$R$USpJrKgNTGida}3r#{}hBRW&cikkXq0aP=ZY1z5#{ z1SxqBCW=bWFWOe~iAsO?8B6~}zEvQ0E7Sr-rO%FTIa$3GcKZ}Pjo`_aQ#gvjZl9_2 zFLJ|f;iVl>=~*a?A_A4t7%1B1t<{U}Mues@v7T?&I8hww*Tl#o(%zmhScIa|r?bhO zM^Wjw?`J8cb7;4tsPsDC;SLMerbO7d%+z03Tys3q>cqG^YJuj;I9Z~5Ysh?p~=nn=P9j1_XXPp!2=nwZ4 zy0Gz%%~ObdAToA04TG9ZLAzrhs(Lq_7mHoVJXqu5z;1?UceaXq$J2zjyO}V2gj#^Y zU+7+pjkZb@Ky z6wcf$l+HKWR?M8tIE5e=%h2d7p36yi-fw(HacuqlMT~WhJS+2{ia}ju8I|aomAT^h z*w{1q;#Wuu`%XPbeMw0je*PMmQ-5!@ys`~HDMIJ~)Iu;_*?u^Oqm_D{VP3;RykBmu zB8@4)sm(DsjKnCB5puA`$(_Ow-*232Re4E4 z@9jWLPiclo_tJn?)zee$f?1EZm(=6l4$2q^B2H^8Uvy3%$`3EgHCMKdVuBWw^|*F9 zqt=7$bmIy8Z3$0eWTdUT9c!Fmig3q^eX>ryIR2s#UV*iY@6b(HJLNmI z+(=X(?q`kc$7{fwW>_aQSV}@1FhrDQ8%I zd`g|@!#e~|FWjc8Zm4I(x`R>Ac;%peUl<)q@L~Hf{dJQ_!`r;8?_V{iykEc5@NPl% z@a;HiXS=uI!|UF|vJVFh96fT*hazw^O8!l4I93cCr&6l20##hoO}>VYvwD&0c=>2p zEt(%u>D!3CX!gCJi_Dmm-ZoQSOdj5BG2R@N-drQzJp0~!ls*EYK0-P^dWPP@F+O53 zbf+qO>eS@ay?vxaePtWw| zM^t(<4}Xgof2&IWOc!4p6qP=PLX$EekP!3{Lyrca9XVM`APl5;0H3?CS36 z?L*yHN&*cIkBp9uPdtAyIW--cJu^4Iu(-6mvbwguvH9`7QrEM+f6d8m3@ZHWWJkSe zzBpMn${XkYaI&7V9DnU(Uo{%$Kd zTrx^cA9>7Yf4#57apYuwxUYnG`6yD$Q};m!nOa7=wQa|eh~`a><*c+QtL5yhjM(Gp zi1Ov-k4`qX^x4sUrFldSd+z#jNM=0-CyJ>9R$MJ=W64>SZS`bEDi!yg`{HCr%yQPs zCwfS%Djs`tu2;T{vR*uV|3^{GIV zqc!~IS^Y_YXph$RsX#Ry}PX*%9vzm|jSRnrJtggP7XN4)h_>*U4G1tDBdW8pAO1rOR zWqC8)pt{>)@PyhGNUZW`HvUz# zIjhAFSUSHsTUJ%}=~=n0tm&5BibFh_`Sh%C396PgB4IU~1Auhxu~UlQpDpVmt^t#f z*fnCY=5990({ycqDG+TO8wjqT&XyGr(WHUUy>C!u(nQ+`9H&h@I$QQS#_9V4QSd^- z`p*Soy;;}i0+G2+@zs!y`KJQ$)v#dz_uj}stx|bVq!`7Qt1aL!av6CfmuhY2bAbOf za*6&|a+&?DTn0V+SuQ(Y{)=+C@JqP_(|wW4EQ-W$gj%ujMTci+)P{;2VDDmYXZ)%f}Jt}O`9|16i!-VjH-{e@g|WZ(5rv0}F{IN4Z?dAKI+O`y`hw3Y(T6<+7L%B>rqFsOty0bmI&Myz;j1`VTUcV(ZeKZ>ZK;j? zg}mLtd{^b;gL+R`%55&X$B&K{Tdr+e+0cWe7d9v`*OAr~1I(~b`qvpM_a@+ihP z5{~Njq8|PKaJN?yEr^sp^iIUx$p7JP@Al5_tG&O`?G;1kv6^TrN_}z%`d8gvXQgx0 zfak|P`+@BnG5_k3 ze=X)p=;t%UB@@28LF)3%5_N<0=+WzxJzhw>$OHc9k=d@@qNVNzJ?2+?0SP|Gff944 zD2wzMGsIFxyxTInw%IL?WdqA_D?~(c!Y48R#v{YCkHq}?e8=}UNKs)gj7l!8CM;oo)c?>hH)oqNUW*{ zyUzVI2mLRvbI}0Y@9JEK_VX*?-*xUiw%>K`PjdNxpw8X@pQv+-Jn~d*wnSz-w6@IA z0XR@u1~LQyFx2okaDr|M-d3872Y_%UqP9Dr))E3;ti4>@tua-hCAMP2G~=iecY+@x zbo{+j7Yvdl&{;y%T{@t8hsO2E*{9?#og%6?PXh91^7x+_^p?90US3!g>Xx`N?>t)k z$aZJIDuBDx+P<^4eB?~#38yFE!uPJv%)$`=Vf~)-e(quYp7X~4|6$IH27I0K&iK1MIPe6o_Hd9Gk)SRh!6nWFtq{T_N?T@3pfeE+N%l|Ky<*NV5vONFuv=;*Wu6BP{yT7a5|L$oo(KqdD z^g~0Ya1$yrvwtC#cQ>o#KbOioYgzGim)Qhp{(hJF$EC|c(93Ujnd7Urf7;W4ia2AC zaOk%cCN~EVGAhK&7o~hVTxxQ=$2m(5`J zHMPD?<$c^`hFv%cuOm-(@BswXPXz`XQCK^2eUW=BK4gyg!z+ zv~9K?pQeRxwbHmBrSedF8jrizpXJ#hIQjq-neT}JfF^W_20+k80G%!Ucu4STD(#(a z?t{H;0E;rSq?`9xreJUNr31m9iaZ=7s^<)Iu|r1#^q;9>z8@Pjj0W}wl@bwf2o5Cx z8@eEpR15~7Yh_mA+)y}x6>5tFxr-aR_N!CyAwg&ofG`>wO&@HSH8BGKfpR zYi}h84x1qm;@bx!+#XdW4FyHl3yf%Qm?44mX34Teb=5UE5OgQcYBUuSDK?!?hrhcR zM{)}Z&QyKmX^T*KkGgIJEkuGKzO*8JVR3u#=Mc&s&pE}bwBsY#n^LcqgA%2X8qggq`!y~i-O}B z`4j)GP4VXd=kz3Mf_`y!0TsZ2qpzU?7*e6HtEsXtkqH zfRc<`Oz?QDWQn1VTf(4csuiLMlH2aFB_Fyfp#m7Ccg`zS$NxG?4CA}QaT&*g`Qt~6 z`L2sq-gT9;T%r+3#BhO$i8m@rY}0`-dx{A2c3a~vvilSzepv4IIe=m9aEOD75~Ds^ ztD7&dlwSE7w?rgLg)6<8ZV6(62XayV>pjc6OdmM!?gAy;I5!h~=!F$* zm_)gFcGJ)&Og#qMhbxeRmVl%KZe&2GLX_fXWT7J)!1Puc8qBT`-F%a)+@d8gq#W67+bRva$AUKhUg@ zF~Q|1ku%}227xB7+F_HVSXxrXVXQ3G${@*dLYD@xk#!vkj(NoIgee^e19^(_?reFg z+xne?kMm~D6i=-*JNd@&J*LEz9(zpXUVE;EHee$2^Kuz4HY!RC$!S7zKe=%xS2Gfp z-zA#3f9B%GJZe+iLaD+jkB#8Hb0Y!R7Sh#_pR;>e_0A@5g1VgAi;&%7OYqY&2EA7# z{mLyTJ6mHNc9Ks!zbnJKpI_HBV)tatx8G^_xoob(c%J()tBtkSlkhXiqqn>$dT0$y zsS_;BY$u${Q>en--Sk`#eXuzV&6j-97cXCCNM!cNn?0Nj)(+K~j80PF=nlM=fHn~O zjIYeo^F&u`lWwV;`;ztC&46WYkZQAwZ4Qpbi11WBw44Q=8~bdXtoLADJCIiUEXxCB z|6N9hNx#<_d+!c31{vus-w<`(@?NRDWd0r}Ep=5qb8*M6!R76I!Qnfm&E9A4^NDGX zqQtU81#m2-q#1${-c0&JLp;r-?De9D`{y^!iE5K32QwQp->7@(vmCDPfg9sP@$s4$<=rS?rqJqJ#eP@9V2k+P9sksp*9;l;eKldFMW?K z+D3D-(hW$BrurQv7jU9O{31CfX@Lg`geJsOtNF0bD-;HHQXs;FL{q9r2knuJ;nL_( zLHaDiU>8F7uqe>QXw|uo>C$)DU40@J2DkIzx=8BIa+<@22mP5I(~!K@IrS4;cT5^n z=$|+ola7VoM8_%TX6oY9~xY#)sj zx}?D|TEJHgi}EaaG^M}M@-3Zvh)tJaG(kG;4%(B4aYB4cJTOXzXn zwr{Vdp-pj+pp}#0)%6>h5)0>hJwHc@-GjQiPOw=vlZ0XQy_7jYd(Xg^-kf@((tC!# zR6y6HNs>NkR5( z1ev1&hk=DUFmIvOiAA$&%=bW5^)jF4HPI;`>7}pob)l!x$_xpt*VtM#BQ$iv{4wWc zEzsUAWF%>{=5PbnYQa{FMd4sIa!CcP?#uxyHBxq$^9#gDh;IJ~GF-*FMwbuwhJ_z+ z$U>lSej`G(E6f);JUM1{n-QudR%n8@WO6es4{3?xoi8$%aXs5>C-te{PHMo*GdQI< zHo)R9i8>xnt<0JJg!EOuQ*zG3^&)LrlXTi#A;21}28be%6}hj@Cul@G^F)^}mpjEp zfQa>xbmO{9?<(!W2)+28ZJ6LtkURfYX-%z{!TrSdGMzpc2kbJZ+_0vsdawDVJbLHo ze#Q!(7n-jp;9fi`^gV`rbq!bizFH) zbY`g}P)}Ibb?ZVS4hQX!t(ZYI{|5(PLGcUWBu3-2zN_EoRoxqg~OZdPHTK@MVhpNX;Qb;O%x(%B6PbUG&%7<@vM-{o zlv?!B=!H8@j%hkTYL$A+G}^h_ENTgPmYbp?OP!6k{0sSg^L*1L9`teT3(?)3TJ%;D zyR=VrCgd#Nnh{hFzoWG|_k`&KtJm;e_LR8u#d)Jm0*YM0DlN9Maj-g@(yvb`)%5#rihCooyCegI#RA);=?C_R57gGOVNSshYUf28+PWoKX5tUx z`NTKWHQ*$>4&&lZrxOjk4$lm2tCLACy}cwhn5ptHN_@gyWRa;f(9P(%z?1i4SLE?^ z^RGU<5Ar;@gT}h3CAhlADOo+nnCzP45uX2+NBnYx@638VY>H#?8ugyu`pv;!*p%5Y zmZzB|5HX%6ko2@W_EvD_u=J*JVXg4HfJ!Qx<@TG2xO4aTfUe`9$;m+GNf(S0a)pay ziu^ZmEqI)yH_2Jk`pGJ#vyW%Iy5%sd|f@sheDK)aF*Wb$IZC;O*m}J=-T-48URN^6@9=+xfop zL0kFJJKlSeb>e?Z=ObqF}L#637I+< z-A<=BpveN~5yL+;(w!}LB?xpeuJESTc4uhwJ~iXTr$dEG6HBTK@n%UAS2BxRFa@QH z;s*+31qieZ_$X)`yA#0AdDYh{(p}ht)f?T3_JYsTLA5J_H-&e6^=57bM zaI^f(G&F55NNCFYQ===|JwXMES*7>=*ZWPB*aF-<0z4!9Jt*}kgy4Z&tm+QdU{g1% zJv~`CH9W>Gc<~xmv8nz(#i|G&B_@Vv8_t7$Mu9nZwWr{j*B0n(xBVSY^$7S15wc#j zAieC0fj4!V6&8HR2)k`acmiNMRx*NFC~9^%6Ra^6Aj?lxZGj##NPcwyQW)cXj0GID zz?->97A>#oPRi5#H1y<_d^JS-exsU4qaNSA+tP)hzLYnQZ-of)IT>XIT_*~VI*a2f ziaW4~K7(ajIUOdIL_^vt`rO%RN6i%39L&8LxLHZQv44dvf|u&mO|vAR%z~VVL9#sy zGf*S6+nnN}(FM~euj~6{^%c$@&Xn&w?$WZ8F3Nk;JtSWdjbynN36z_^uVIn$(ckgUlFm=1UMfc&mg1kF6vaZasYgUe$ZJYZUD;$6oQsL{ z^7dPdxu>drZ(Nd?n*LN^n)d@1h=k7$-+M2c(S8+v68c9m=mzI~j94FBShVU8Ab7<` zz$JHq70ca&>aK<;C*P8zbyXysD#rU%jPIow|7$VoMh^nBi6A8pQl0cD&^&^xV(zzN z-5!1LdN$^PCAnqQ!-OS#)i)1QPQ|7z3E#UEoAodjQ5Bmz8k_$nwvZ~0arbKRrMLm) z@kf?%)o*amR>cKKd(@wzB&CdRxfI{}(Ba9$_>QXhuF?3OH}QQ`k1nP@9JoY~dFj!} z5(BHtqxY`T58WP)QY8qVdo=UVbFRw$HOV(wIx>JB=mmJbWa*A#HET=%O!WMJCq(J* z#%jLV9sY;0nzukwiFpWE3I$Ob^96o@DCwqxK0}nqI>7dH)qew`w6u+v%LGg}%V0vk zgDCwXR`Ug-Wc>hkrIVcS`qy?%g*|iG?W;6gKSGo!=99|2mPSO-dkMlsUvGF8`1}D; zx}whiZS-6)#D49B?8rL+qfMReHu%TrdDgHS@exERhiXsxn=~~MKnd&vs3|+zA>kMB zR^q=4-m=GD*J1nr6uk8h{xe|nU$^*v{Lc^rJXbsZq+0$n@YWDXSN<39)*1AkpTS$L zdPx*B!}TI`0IFK%BZvG5-umW0bDP@x7vQa%+XYRfrT-9D@Dq3|u9>@Df_i)YBX~=a za(w*=yfwKG|J3692;TZOiZwC@8l4!%xPfy7-V#XCRs~4SvWzSNG{b3s6nM*6gDyN! zCWs{?Yvu@7@NKU8zI5QHYWZ`n`dr4i=dhGjlGZHtsig&M^P*-tL!i@f?ZbF3GkF<96A{Q&x(6X0?$N`k6n^V3r9p` z7J4hF<)m*vUCPX&mR-p~xCQoQBk5mtF`BH{>3(7TO*GBkERxXD z(~cj4aLCO=kwE@UWWhZ8_A7q*kI`lZ?Dv0*Y4?x1=g!Nde)gHFagw)xVA|c4PE@#= zX8b2iyL`>0Bc@$jN|URiJ&FV(moxJN2_%jDr_b?a;kMkf_IMcaf5NmYw@r2Wj4a@; zy8Rzw+I{Sv-@2%My0Pv8a0uWC0Z8Uo5?Dx}U<88nhA?d=NdPW^Mt*A^d;kbCg=H)v5Uw`tCrJR9 z_{(@cWx7j2`|zc&Vz>`;2##nU93=5p)HG<(WdsJsBZLBx)=ll{ViY`m^B_{3h~zt> ztvUq31T?7TERIkX67aTr$S8J>*n#mbmMDTPc7d%B03FK0jZ=f&uvGv!Eewc|jbb;A zU~x(v!N$Ua!hLkCvYEt^FvOOlB|ijmh(+N{!Li~x#8^db9s)3koK$cMIGm?1)AzPp z8%rdHgdt#DZ0i=A5gV?61B$GYibIH?1p?Lq0p)L4AQ)^(3%PS92+M$DOmKJ|0mBM1 zL^J$4K@`AC&3zX{s#bW9Vtq_SmCc)jFMyH<;BEn!rr0HLXD*pa0B|c_Z}HfLhg|gE ztXY53w#g%H`x-M&Z232#lJ@BTi?z+k@Na3`TqOA4)HdK(+7_2OJdM(}gjP~4KW}6`;eSr>X|txX#R*jMFKe*ef-T_{Wk?b`X7>mxbJ&4 zz4IRTmG8}*YB2w89CTT`KclF+Bpp#yE4{tn>$;#QsweT2exRsEy_o(%aRS8=%JFGj zfvTaOD5~F>xi1veSmRH*dTW-&v9Ck~Jb>$~4M#zZ7{89H!kak%UFvNC_AP0Cum5+c zxBt}d1-3ZiApG%j{XAd)M7<>kjtaJaj(YoytgrkF^;Qvm{byDfrhXFT%kfq@Iv9$2 zD?km2Lb1Yrp09tT-rf;wLQ!x3DA+!+!fx#pwbr)$bJW}MGdvAav~Tx5Qg2Vw%zi*W zf*R?Hz&@hFelcGk83!%Vj9|j4kEpjYQ`%|(Q%07tEy|G31f%BbSG9P10?&kf9aVh; zHA?de{DT#SGT;6gCVxGlUL7S51WhF*7>BBVo{X?t|IJFUE883s2eSij`A#- zihgPrIH){Ur=a*<r&H@LSRsJQ_HQ;QgKfw0kN9Hlu|5Xeq!37b^_ z2Y@4iH{`y~CD>SeTUYUGC#*YUpRRDCq2Wy-Aygupa0m}00Bcj{oG2(_AmQ7dU|@X& z4}e^^MFK|00BJB56Vzi$`SkNW*aZr;lTT}?H{r8FxOr-g0L@J#fN^@Yv_g1Nu&h9A zhvtp*EWWdH-%xou*AC!*e0*g-0M~`98Ol3V44}Qt7p}!Yk6YEl5k-1VVa4EIZ$kGI z_ila~E2UOmvA2>El26N0jn>-wZY_5+^77g7|=Z5vArM z|LpJu)AQRuqoC~n=lpZif3ts97)Y#^{X(Dm>XJWxXD_yd|fA$*} z7M`VKn*_a8fAzm4}F=O%s|@BbR(t&m2MA|{iFFRAN|I7H$|gJSq! za$py)KV<-Fi#=sPfW#C4l#!#Y7I6~d!XZ91q(A|>#Bo*t$pHfni!e_p+7=@Pa(eR^ zH#zbPSTwKO7NJ>+FH{0-NLV$Ke9cPvw7+$JF-G?Bd=Qop91fas;~baX3C2YNU_K}k z099PKD<2%dZG=E*)V2V8%2hj=fpaz15IinayAsocrl@RW{y6_l9Ijks8y4j%5{W_8 zwF1HBi-3Vn9ZTZwSR@|g1Mq1IVO`InYFApZ9^&OSQeVH4=!z@!Yo}gzuXb$~oY&ZEn_MnuWPW{$N6!Hb_fbP+7N_$b6D(@RSH1e7L~PW z`^?a&4RZmSOo(hT^%SSfmqzASSHAMwl|v8yPrCAY-kZ0Ru|6~Ae;e~}`g}hOZGRi{ z|E9+FH^v-tw6Fiun3UyD#-upE9+UFW|C3`<{9lbpaS;xf|A8^-0>}0%KG4T8DI?@R zGbT03?EPs>dLa@uCiRoG|C2E(!sW}D^roIGYD{_-|Hqa?#s~Tzw^sC)yW`V&Lbd;N zOuClxc}!~0vw!P9HYSBSRpm`xa>ZP}06oOP4u-%Sct{JW#BdY(rbLc`ljwbqI*1?w zfX_&jHflu1A0I2C%kLywk`aiY2x^=qW8W zCO|5R|i!vG$3hoV~r!T~hj5hf9QnKwz;P+C4XSeuqzC6XB{2xV6S zvs3QzwzA2nQj0kt!8X*V7(^X{3z-0CTI77pOPY=}Faet(EEZmVicM5v@Bd-%Jp8Ht z-~azQ1IIo|naSQHo1{aMog$RR3E2rrLUruT$=;5=j=g8c$X+3&l#rcdr{Q-rG~e&< z`}6&LZr|_k{e9dW$PiO$VI)}`;_~7+ z9Qe|yOd#7=_$HSW`JyQziMUb4BwNq(S}Tl67BdUz=!5}r$>F;#gW3ae$rTBWl`|MG zaxxsQ*tWM~I(MAE2Mda&u;wmx*{ezs18_5BC9=uH@FhRD_C?_Xu7MmhCI6yH6>F_y zCr~3SHJ46F+k?s+n^l?h0w; zEm0YC-Md4R3xfGH04l*&k?xi*?u^a>b6S%i>4exRKQhM*6hOe%`oc%4dzszKv=>&= zG(ug;7UCNRVGGh02|$wRz1sD~jfUrUd|GLY{&p7q1bP0aIg36IwMbG%YN zg1?wGu*DJBLl$=ZG)#Z;dzk*+m+?;=ruY8Mhv^@mL;P7H@747HbMxd_6{;_vIlk)e zX!y^5;(x9M<=fWu|5FRfe{Q&bJl?UkXmbo`H1^txxeWjdG#X(b06w&zKky|SKoRgq zGD{MUEnz4MKp6?ryVAx1mo4>{0Dweq+TV-W+7;yi_Ur@PURo=SiSvPnD10Xw;o~mP zL|a(J$*keyevj2`3{b-`pSl16U(>E25vq!bz)4u9q05Q37K(sLccshH#4?%~H(Dz* z4G)dzkmr%y^2C>145IsGM3f?XU4`EelFFJZNA(mefsf1{_TAKE^_+c)2EkF zg;gYocfQ;9-20QbZzHE)WfR=yC?xl9z%>xLD$QZ z?NxVTM(0ZtA-wse3R+qc{__N3F5)K9n|+z2+4L(-*%#yG*70=UgpfaP4exazBHk+ zh<467OA1;JS&R5gRr)H*{NNomyEA9}tyzA`>G{Xa86W;1(kyM~FlpiSne016?%%TI z4<_pW_hrk1!-t~H7bN_~Ui;6100Kz>7jyeLfQMA#hl{Fr!~qxz3?<8;a3y(Kk94C# za9@(9&g#QKC>52MC84lLj0nwbOoS(!tD%9%Tz+IAcwZr#p%kQgh{BIYx&a^(jgO?@ zf<5u>q-K~lP4*TUpk)i0gc2J{DJ;>ZhRo9P1O`t^B9g<$kaUxGkbAjPq$qfqaj3(A z5LDzCy299Rlo|F&`f6<|2^@7ee`!b+uP|T|IWiTd^eeO zl_GGvn>_WooBSB2{i&P$Jx=>xfcze(eb>GH_NIQ@z5U~)>COZAcf9SwufTtg)Be&8 z@$Yfk|I#=O(7F(*;c1uz<8UYNHPi4ij&|epr1*B62E_|zequaGqJRK@Z2O&&HuvAZ zV0*iTa&dM0dck)5VBoh&zA|Lr-HRxpv3Xx^+{;MItEy{i@8Rm|8yfF_B*Yp)+Pk`Y z9`yG8NQm8uD-5A|c_Mf5)5W1x!kc&RKWzQ*eO?j;Cr(KHD}>lj7i>H6-9I2lR7(EH zyz#@mh{I>t;yo0E^b>5+8$U$rC@&aqM*rc(;TPlxo)ByJAN5kdfBTUT`vo8IWk8TI z`il#;jOU(=_TMM@=0XrZ;v*!#z!tx`U{m76!xq)Vw+XR|JU`+ies#gNO^E%9kC=-8 zh7h}b!ImWF{-=c4PZw-|Iz;=C5c@I7cfP3SOM3SP=7 z39tg2`_nKfo6JoVQfv-uv_<-)RpObuL*72}K1d+f>j{?n= zZwIB>;|u_k2p-_ ztUq;L--ay`32uzK(^zdh_vXso81t7{*cf+DCa(yqM6;|;#9s)!nHPO^;ms7rOSW+f zk`!UJIg^o|yE%(3`w#@mZ5Dj%7~F03_GS50?%Rdx^@X>ua6|{*EjH3zefPSBEAQP> zhs3LQ%RR>rykF_pz50H2$RzLm+LIfv-mi~(9r&;@5pngyo9Xnt51XfX+djNqY(B8{ zZe{T5*87dAysZ!K)?eXQu4I^P*diEzT8D=%f@xZCgwl&HaDNPxOR0|J?4m0z_QI5~ zq#wEM;?a_~7}#;8da7tVY*8(dM7O1WZ{?zgkbfeXiBbbS9=0gik@yj|xVh+sAWMRK zDK)avzxGyAOQMQsY2=iC?W5_RM4hg5pZDx*U%if`y=5);1sz}eA<2?yo0Xcjgri^k zo2n(#54JRkSH2Fg_D^PbAD&R4#?(`=|1Q z2K>(q2V3H~zkpS1`-RP=2pn0Oke70Y0sV4hiyG&kN@j<#^m0^>f12p6)(*3?BI*yT z)5ObKJFOg-V@Ao+C7YGIY@?TBr`6J>XKYZ{H&enF*zXIvpgSEt!xqi{7I=h;s*O{eL*7h*haWxxBo~_rcGEf-3iZ%6!In~#uGe4i4V;zuv zZc1gaa(Fe@p)>o!dfQ;_=4u{_9E&7U9jd2a%lB5t8ql;4HA$}(paZZ*T&j=S&aM?k zUQW^yX@Arem=+fw;0cz;!xp30iZj%6%yrw(`eRE<@>g4p4OJiC>nJTP@655f(f;`9 z=2{t!JlEPw^~u=NxzZ+eLD`h7CzI0a6+HpDcIm1kvuD>Uw}v`%?aSIn797{BM#=LW znpK}JMXy&+tLHfm&eabVuGcKSAh8{{AX@KTuifa(yS?82?8D~zJ%Az~MWi+gX4t^N zH1b_(Iz|Z(ZPdX7^WC}Bo|EWr)YEq5drEXXr*PV6V5TVWKCU)K6|>REtx@2s+cCDc zYU938V1YkNPX$;=mq;SMAn+RMV4ySt%2IqFz@le-Ulp=eQ9}-ZqbE4$5G}lj!jN=l z_qHfxF;~mMu+zW`0h&ty6u0E}j2GHlfMC5)3Sv=3PKs91kzhOuLZ3N9IP-9~>^Q;E z%QBEd%Wt|_QRx)#oFROMLjeA-31MN1h+zgDM{yP>a~*bN%&QW`kKOWv95Nn|6=`TxcoUUFx56(o_0q%Y{TV0bDGn!|DtrzJT9=x4O06k z9cp6g&we8v_7zC}1?f;`qb`|tdViOhm+!W8KvNnZCPHY&`8*N zj+YM7>X2Aj)7h-Dh0VEqymXi^9{f*8hxxKsepewbXZXz)5MiXHEm0WaYd>OymWXSgp%2{AEMl{BOO{> z6s12&2QKASm2ad2i2*tuFCC6QA~+QMNjeBXP&&Dvq=Sia``O{8kDTTkt*Vt#gwr)#@POPy6UOG6g6=BG8Om7YjJ=l>B!vmFTCHVn4mL{YHy}fI{ zk`DCikvo4gq=2Q>xE4hyS8<@VfMv_!R~SDYD+pi+xU4Oa%}C zuc3!xp#Uu|o1IhMdp|P(bco(Rw6W-ONyeQrulzn;S^-?m-(cSy;u13<;CH^`(tbbu zLQE4C%&>@}TpnuSgQt5_A^;G46d*NS3Q#Azyc;G40_)*GREQT4GED1<1zR%Nd6clk zXeSK53@&|VAeMjuAj|-We$QahKI!5+Ij5S-I_t z;sU?~cEhclf+Cp}Y74uW&vauMl~5C^h}&;UV?H2CP#wVDU}Y=iE^ zLJ44q4&w3`ij;2~co6F_@OxVtXw(DH4ZCJ1Cb#I_?+IpPH={|eU{})C5ib(SzgX&a zTo^;YoumJF=jh+sg^|T0cgKpJ@nZY{cvjZi!yG?jiN22!`Ru~@I78eqkA9gU{yqTv z20=^h@qhdP41XuW8S`00GEL9=m;!EC7LZB;d|i3!p&Yjs_M_ z{uOqd>xA930VzYU>6j<2l_{GSW4J??pWuY4MgVuP=AJ+Ttm$(}LC=g!5E9WxI0zem zhM|;%?KJ*Y3x;Puk&5C~XuATfTZ9ZJGyYJV9mNrGVbhc%01(B!z%wy>0I;bbhShJP z*z7q#3LoVHuJH=7MvgNhCc;Uda8H3DB|-0?)BnnvkH1DgO4CX5CEbNicE zscL!zHaFsdhyy5T7jel%&c4}Fo`g4f!(pbpyqOh&ZpoQ0#y)9@jOkj4 z079HJ0(?C@-=J)4k@j-f-lc42bPA!ht)`$oV_?S$6JwsFB;QT>ZX&mklt_7vcbsS* zihz^{{CcqAK(YFAmcEY54&aV6?q5#TfAchcgY5nwro29J*5E&eQRZ5cLgq0&%%sK!N!?rWhst;YQVMWGh=8$(d zp&;aP)+Dy(UZ+Op^vIs0b>wg2s94By>YF!0$?qV5ul|cGQ1I6RCB(D z-|3bp?gA;?x=rbLjV%Itqn~w-bP{o$U+p{C zd^oyhrIaEetA|AFp8N`yqI-UXAS$mOWWk{QzNqnnVB&k5ofl~51aIT_3Ep>d`5)jJ z+H$ZQ2|P3rVZC+p(I!9`d5mH^1p#BRwa+yAg67Y@_TL@V_qMWs;w@h1m$miZ(L9tj zlNP&unv8c(noE;O?~tJJGVD_)Mex;)@w=1yhjmhE+nrR{ZhYbZz^Eh-ib)(FB_9fuJTTh%izL2$u?mu!KQ6@QDc8zL+#A z0E$6H5(~jt++c8P1Vo%Z0|NoEe0F9m8_JB!aLMu=&H`DVQpRzhgrz7mlBk3bMPq4?rX??ENT&mpuHINF zS@UQB%&?o^wU{@Y+3a*7liFA!cSt@aPBNaf&Y%B+CB8Go%Dfbpi144O=8tp|5vNSH zMpOm%S|(BK#1rgz_&-*m-v@}_T3G*a9{!yw^mp{|e_Ms5cB;@f_Wf7Cr8x8Ze;T)L z+Z}i`C?|nsYtPP|-OeuKW8Bzp+y1w2-apQ^zx6j&-m@n#;eoC*1b6Boh)4$7p6;~0 zc6bfGk6jZ0QtFG$v#DT604N^oW63de(ppvS!%HqhjOY6TZ)yxk8%j zKvYm%Qd;&W_N_m5e!pCJ^(AYji+AI#4CviQ=eIBtQ|AWT&3mpT|JUJ4U!V3rwQmUo z8*L{Apn1=?6=(LPYbLA2eRO`C`x=Z$tLz`l`w|>jWZL&laG*sCXr#(vxxO!}>=kL= zZ3ro$1v3A6!?(`wNj>YrAG2nn6`%JS0}YWLl_h`V{O`T_K5T_3RuD-)ZMPqyP07$lJWwgg2R=V!=r;$QsrQ$y z6k)v!AB|)qR`Er#OCy?Ez@gfehN)qS;l!xm3$pd>Od9d!KE#@}riLIL-yR%5%8lXx zWE9O<{15QvqX0+w(LIs+;zfz%M)Wf{&@FnO$>^ElOdLQqbXq>vCs-skiX1VV93^AU z(;Y=3isl8AGNKV#`CydkU4V=kfPlBRMLAC$`9RKsbV11wGHXOZ6YJb800<$HV_9oA z5RiV^MQ%3`O!G0WxNdW%%kMG?{Y>Ifd+Dyo;}`U&eMU~TaUdg%&9h*!dwmv4VCSMz z6PN7hOufD!Ns6m*Z7qo3uJ2@lT~-CJXOna?YPw9IcQ-O$PAwB)PDzH^SrDgve*(S?(f zBtZ2@DW7H5n7qDb;ZTx(ed!1Ki3O6yvv05BhM%_Q$P;-T60CaL!zV;MD~~uROFmC( zMY7nYj|NDgemON8Ori+z&~V$U#s{U&uVK&-r<~?jI#sU^3rob>R_sde$?M$Oi+tI^ zYE&&EE0+vk>Rr{FUv4n7hN<;&k&%lX1`hbicj^zil@OnZh!JShZkEYueC;XF{RqxX z?$S#faK0WS-Q6zK26J}q8RjGFDaaviy;6_;JX84HaV6dVh70h!<060nI~~{WUB~ZT z$Ig`L|I)5wC(q~Ol<6Oy=kxuW_YcVP*`6}#pU8Q3$&zlzN4PUt$1C68q4r;!)2x3Y z9cO3C^mm)An_a&{(LX641*Qf7%xy;ofB@|X&rI-)*387llbCzCd}zqZB=p#Pm`2z+ zJR_S~FKwP(vbTpXmtbZ#E9YJ>Nk$$Fu8Ni`AS7qVKGFl`ozL!~&=!!(6ZY#Vg|IxH z&r0D{MHinHf{~Sj6MY3LaDsdbWiJ-8g32F}G+H61>n*J0-sr%;_|SKZHNU6%LBFT@ zP`tMMJYm=ZehN=({I^q!-)?b%QAZBCd46}e85$P;tHaG~Y|dXg-26+Ezl}GWZ-2pj z_<8cj)(Bzx`ndkd|aYQ-Ug>y*N_FMmf-_C@XQAeLS){vADIs}!}5VAy8`@6 zK--f)hC*yb(Ny=Blqr z#`*T-FHTKyo9n;Le1M}GN8R9x+|S*qbxfb*Ck$Vi4=^ZXksaM)%esBIsk_mP_Tz8j zX1h)R1;+jHhnt2MBo>B_2FVigOrRC^eg{saO@e*LeE493{4bafVM-M&Xos~gsm1pf zm8TQGJKW^CaZw{WFp>VW`B(SMY(`4>_C3NEaH_+m+2*WBq%r%PVu_9s08nrPxE$Jj zc!PG8WAPjq_AWYGp`NO0{%A8N>HM+Iy^l|B6|>5`eULw3OZ_r$H;8$Gc=L4j6$FSH zi6Wkr_QMuZ`8XL?Jc)mM0z}R|ig#Z6zD49w0E-L7&>0C70EWs4LWy<@&4WNUNFM-D zMjRcKm=S@>1GAw86qdv>uYoFFp(PlkU-e`Yl(`4E&tAoMrJR)=pM6Hek33k@b!vsL zYY!j4NcA2T&4MdzG61ULwXZ(V4sU-eP)8&-g}0UpVXi@BRNuk#=-Ebrjw%CEmzwuV zIj=!gg)%sp+HolA!O5*G5fG)fkTos4ieVAJ8Q6nQM&lo~=)Z7a#RAMTb*r?Tgq_*G zS;4K^n)rP3NKmEN8ed+3mY0*%KH{h&3S!Wz(swpWHcq6t&QV`c1n!-0N(CC^{!{km zZ>|1g4f#iE^=~lTzg;jt%_n}lU_NG<31f6m0My1Am(1{a_s>02n z1|U?<8;{{$n;!p65K>Gty!)pFAR@2bfU817GA%&#t(omewc5Ybn>h4HUr&FF(#Qm6>@e%_CM!dr-HVE+1k zG%7k~XFn=Sn3|E9^^;1ngH%V?-rFH#eZgD&J1XgtKbV4Tz>KwEdlDPR(b7_o+#K{5 zPGbHF-a_{h^*!Hxhj{rPeZL=7Efdr(vR_`%N-XiUP%p8 zlhv&cCywReR52K+sD}WNK9eDg=kY4(c0G@Y%Jtw@*Lbt=VouB*U*-&$vpxGH1fOkY z7IB`F9+Y&~z$i707>2;>lx@=|l&l9AZ$rPSl%6ESlLm$|BGaNs;RpbdZt0koc1gG* z6_Ui-gDW6sNAZGP12ZQhVf~fnAu%LEsI3SHdp?(VzI{Pf7zJZKD&jglJSPh%CYd}w z0fxT>^_@zw1P_^$@+*%D3*~|+7h?bjlzVX+&Edg0S!LWLg#!@_ae>pjC#z7IX~Voi z*>18<);Yw?qX4*VVHTJ5$SQj}o&xZn3IlQHqjF~29$h)+QCnqBY_l{xTf7f-Rydxmss)i**Ar`0!f%olTyID*JplFQhX6fsMS%R4);?CJJPzWzGjV7$Xzh z^IQ-u0JW*@uo<4SS3tptBBW=ZCNT-w#t(NXQ$a7BeS|1w=6d?N%uaXT-CqAqDR3jZ z$AB>igv`A;smqpQGtsZ1ah4c@TN5|#75h|F=CpI1)P z@|hqP@%o~dK2Pu80RQ3XeG$Qe9`_HBoL{;uzI{bf)6#$Siu}OW`?p__>g&j#d#&wP zKx1+7&%IU%-^H%#Kj^iZ8wF}*7?vjcvM+YmzK_1QFy5YU z;-X{2=68I(2VeYBO8X$g>~OCuAFJbGj7g9OzB;m)6F^a)s-yP)z{p=$$I2h7V=dvu zKdp|b5z-&NsgB0%hCf!vGedVB<@-4QVs*?sdxwO2GCd`HcDGx%!k44b&%vJzppVxI z$d4iHf8-#-S4dkrKB1o+L|*_<>TLOc)j{;bx1B(q@l%D|{@duqSY43 znyJkX4x)IqZvt2(iQO2azV>&rw19y~sYz5x)Dj51*W$tK|hM-HOA^v?k-TUSk?_`C0)97MmGBXEy-vxl3G`EdVfg+%;fj-XVYx-Zmm z4}iFRT)hGuE^2erHC%)Mz(pE-Dwx)nHFQcJ)dNt#I!#^IS9y}egwq-qhOF%8Ot>Hm zAiy?VXF}qDP@gG`lOu6oLZBiF2ew^%bSiEyv4ed4lQXki7yWt z{ka?cb1gy|a-aGw_Y!b-UV$dvX4nmx3w(nsAC?y?=m((Kd^NgdsSb#ESSFDJG`xXzKU675&P7lY!I<*d8ar(m3x8;#2xkdUM2rM+j|Y&Vzb zCM>jGZ&ipt`fwgIvLwy+_~x7$$$G5`2j{Gpt_=9d&L`PV?RB}B;VKe8Ks89I)%|4L39%ADV?`sK0c=E3}O z=x9NDAuoWxN<4_D6kiBmJ^;QQI)3+9)Ksp{-M(t@tm_w##Vw6tEvc%66ZigGa{5^- z(U|u;Z>7(VMQ2?z{+6kUd)!}%95Ej7RZf5RSQy##Z5z(Uzq@wuw{muU>x{I(}*s2k0&*`HRm^C!-a4f7K>#4;^Rw zl6;cPX0x!Rv$NUxO}rMn&vcp3eMxKj0-9yRs92uNlD#}%&>=qe18DX;TAY`FzI>rf zqP}Z|6#j9mS}4Q=EPxC@Ezs&f6&MViAl0r}sE^sUU|OT@9eJLeU(35l3e;`YzI{;$ zW$3WhB+br7+}luOyb3Le*R%=Qm9MJR#Ao>~zx5!2OaTeoMKbLsD%EqYZTq&M`Hd_L zNP`Zk?$`shVpSPS&FM?;thT3{_$LiczM`oB=|O;r;CSW}5g7&tlPr4I3psWKCpL&T zPl`Vx2;pBlx;CJB9YhR6+d~}KwqG=Kj&S3?nwQ|#1#$Fh2rGbl1tKmM5II50jea!- z9kj&1W1$O;|yMIDX_((uRK*<0w5wn@L9+KyRHC>*K1MdMu*Gk-t zk2%o{nNHzCsd1NSt1*NlVkO>k`Nk4#n63-S3 zi2%LN9#xTV0&nb$NI$RH*g*Jy9CQoaqMThLKH6Eeh2#!2GK>HC(tYJ(O5wI}7;7c| z?ZLqh#%hZ_*57k6|FSF+B#i#aSiQYoF^3e!7nl6I#_Au|D{{I76ugWRh94!rpc?b{ zFWrxlzdb_eUzGgkhph20-NQ=PeX6C{?*|8A-1fO6LG%l=zkcbqk=o6tnLo-Rn}?kp zZ?x*W@aq+;up2*0e)THx2!idG?uYeCNR80I%Y4z^o+M(Ix8sR8(;r+p*`}c(0=mue=4;9 zt?k|&x1X@AUph`Zu)o;Bpx}`IueN)CZEocYk^QTx-2Q?~;dj3NKQFZ35#5^)W$zSP zdIr?bb1VFI?{Q#?zR=WDT!|2Yd7NM%=vwp}qI=^E}oP@nbCF7oxi^yBGfRqi8^>5%c$5{5X%*6q65| zjM^@=M+l(#lQDJ!W>ay+9X{zSjtk!x+Apz)F^00dnL>9p%)iDW&ZJANz<%8BZ5P@( zZ1KR?LYt+OTDmqfm*2S80w0UWnQbXqFZhc>OXbrhpx^2E;$_)HxWz)nbXxX8<@_&* z?);u_L+`QrlZN5A04(0W(bDP)f&mC2Edt5;MG_JivyA{{gwR4$k|aM@{r)^26A00{ zYUQS01*|PGtXa>dp3sYWnN*;`Sw0s36GTAvCdY=hQ8nv{)RVxGOWd+~fF&vSfh)&) zRZ#CPwg56cC@=-`JOXl2Ug#Q!rhXE~Zp3l56#!p+QNtvn$m05Yl2<&QTya;s{=ke9 zvkoSq?I{wp@rFAPQ^X2M5|c2>t;4;zPOf!98S@cfT?Py=alE@e1{M?1^JWjB7XxA| zR-%8yI)SN-KOJHwAtO2%HQwtmln%UH1nx?p(;kZt3M1;JoJU+26BTRfdtfx%D4R$D zvF_bv22aVMYLu!=VhreY;$zKBYR@^`>8#XN_3eizx%~2f6NHL_sg<%BmwY zi4qtT?mBA%gz!;YDgDR8krCp1sNleeAFU)U%>DjL%x!5{1ax0G09{#hC7HfNd7xR2 z=mM+zz0r#}&+xM70Mrcf}hN`No=r9!)y-)9lY~(OH3Cm=Vdwbg}fA#(e=q=~QA?QulV~(!C zm6a#NWcdn3WfdAFqsjE*qm03R(L8gf4#cj3FOB|pM&5sRlC+eKg>&Bi<6 zr?I1Y)pj=SFEj{WUd|1ve4r~?bx<6M@3w}DEPmN-{ZIs+b$^QWa6oTe1n(W9a3REd zJigH&Wz0&KZgrmjYVr6+gRq{Xz_xgR1e?m^JcMtDU&41=4#fV_Uzc**77tz>ub*N) zq87bhP)N8UhQpDbJe=a^13xY0e(1LL2iQ+$;$uAsVdoQ2guH)sDfeF&fiK;b_w&q| z1X(&h)u=}MWGtm)i@0iEksJ@tl^9~v&vrN{fFD{C;@{@`1Ru>$-^?K@|MP)2{~L1% z6}BE8Puzdv?C~!TEq`3=eKJ3dw9{z0aNc=K!lV{Sg2JCYvdNwT5aZ2(`)KgL4BJ33 zNXVkAgAR`o1yS#(s2M8659E(~U%2G}n;5*iKRsSO#u`FEVLjK?$>8F`l5&uZLZhr?|PiTzA{D&hfz^Z?Zy1pSe>jdZ1j$5roV)Ak?5J zw}&$_`7OmTZa553FVd;G4_ zSpU#X20V7e^eB#2&)w^0_(YgqZz$%5AVo!^*BMWqNmT+kZX{T-BV*Fq5HF98(@QhU zgYWVrJ`24%naQO<98QGr+J%L^*wrXjK9%S#tq>PPM8?cOMJyXVof1l@{nUquRdak- zlCmCtT|JzHGULP!pt< z7v2P^5(EL>&ZHKc7F~EpAAB;o~_xhA4Eddz`OCad_wQ_UcSy3j$gs=%Uhn&6-XNdqV`6S`$jj+vNtBb~`Eb6mKckm_o13A)zFi0K-6@ z`xPTLl6*-NQ&!Kx?(8I{lgIK4Q@OR|Y1REyBIq_()xCBh$3U=0w2EeePOGFbQJl&R zv&ZgAiOH}4=Z@7Lb`(B+`cy(+KW%b@Bu@FPvyN}ITV1G+a9A?r1fSUSy~>BZcQpEu zH#Y47!LbhLMiD*ah_aeWT^{ISd*}c~c$AR_l?2gdERWen2SAr=QSza3Rx#Zm`q~LlIr$BR9&ToO(6MCb(f?C2AMfv$0fqiPpD9MzICe`NkGmMNIjHMd|5#Mgg*l2K<+-saYsJ~!jiN>v8q z3l)(#5IllAs=Y@vAca3AlIps9dW$GddA)iHTyNZ`PJ(jxiHkRiIy=~AaQv(VgRAZI zWL#k4E*rfZkOBRoUfp}UyUL;nvpWi9_ieii^E(5Z7U?-6N{j4Bw9wo%v#AW;R$*?} z(#_8utA7R1fTaU+Y%N00MAaZOgaJAdVUm#-XLW_P&WP0;pGDI#+ZhwY+*C6$bsAY3 z&NdOs%Dp+rmzJ0%p-Am_!0At^^#nt5J$~2qP1S-ai*(pyw3zQ&T1tsPE&s zX6#_G^#Ji|<;C&4Hvx7XV|Fn8O%I0C=O&@ofy^vUS0Xfihd7kZI{xsW+HEm6 zbjL(!?p>(IS-M=Q@Da_omF)cmB_!=iD!Y}U?UB)^3g;SUkoRcS1j_BA4DIJG>N9Xm zv59R4528rvY`WcJ=+z{|CYtH8p0qeVA@1$8N?qN=XIAyWBtvD~A9zKyij_uj1{fRD zD0eU~*`>yvFPv?BJIeDw+-)&syf`Wvij}p+b{^%>O)zPtc_xN^R?~Er?cF#_qD1kH z=?4c+-F()vP?mn$YVmGK_5BZo6&+&17p|-?Lj#oATIF{y9NvAl2lYWJgtdvi?v(SS zQa3DeOQvHw^gUTFmt-j^Qq3Uz&e=ZD5!>D}ie1+zHHI|s%Nq7nW*x7%0h;~V+FVxP zpgCz1+8bhnQy<_%YBy(}E(;R}j;vt$HnJf^&ULyU%qkf!>=#k#h~as{6IWzBPiY}h zIdb?-Tg>C7V4}|F5_xDVKIAn~JKQA7i$!@qIXx-%{-4*oQ zm05V))}7CC9o!-!=zr+0Nb8Y`;^)Cx&83OTj7sv-LZ6FWh-UFXa+4}~Upp}9su~Gl zJPy&{K+)~-w8|hU3Oj8hc~CyhHQ7bV2en0$!J!6`Hi;us?S(fzwBH*n z#*JDj2&$dhSH$iAAdOba&NHAQ`Ud83pP_`{m~Fw7H@}uWxCdP-uJqdFShOKz*(3z= zNKu;gAlVG-)z;{i3c}m$&izNv?2E8(A(VQgbTAKM6439|RHA1t0(qjRFjZ+P%>bJSVL8;IoT<1gMM*q~^)`W2*k zd=x&Ic(4|WT8bgUiqV%Q*eQ@9R4S*l=!A*;xvj$?uief9!-O3O^GkwkDrvl%irlPI~FNP-U*Y_iyMBS5#+;zeoLQbUAM$-bpW z=h+s+NLpP-!|0N9r4MTYcuMh}=w!WN0t(Tjvg0wv_Oy4Pkx%YkzL0VvZAC9_#{Et& zdMYy2%A6L{!kfbFdsH{Qiw&SHMt9boyqn>icr@~UT3R57Y@EoUddL|_~LF=PhzB&E8Dg8vb3$q!d_tn*C_h)ID zR;Ef5@x)x_Cg5Gq?dE06uos6{`ocyG2aM}{?@s3n+IM$9u z)ytly3Rz5MK>IQf*eM()x}ns*k1X3JBK@YQb&e8onZ6Tt@XeLP5LPk-y=*eOh=G*0ik5*1XT@t{ZrnBVDw9N(W3n`MO2h@WzMfNZ)h)AE=uWAoA63*JmpRvz z$tqOdy~cIKO?JH{j=Mc>Mz!$CTsCVa4~@JugRO7Bog$Or;hXkSTR@~pLX~@B`#~}0 z;v!Ga>yr2If_BqTM9PaLptM45(9SucDxje1Tvo}{a7KijHJJ=nhMoRmLq0ckjp91j zku>>!ecwX*;?hb84PAZ1>=C5=(W$j!(MBI0RBhl;359R@!ehTiscO-8Sypr=ilGX2 zlMX!j6|lJqSHt=NB|f70WTFtu0Y z=}dZ_kLnelxzy{`_W_j(4l(7FbcY8D$+M;=DN@nbMT65tT85&$ly|55cxAphlO5;U zd|w(7Sq!K+)pk5+P7l%Yw(;+J-3qo&VMQiP(KPzC-PXz~-_qf0%~wecUadTN=nMza zv29AMd#Nq>vf;|^Gu7wvWeycvthWej8DV9xW6=s9bfeO|&6>}d3EgOxXTEozEW5Rj z4z_%rEjgZI%p>a3Q56!l3$!dPSot%fTz!^U?nrIe(epeq2ctMTPXe7&WLOc&?ltG` z4H?SW= zT^-7Bt45Q%L)BXN<+%*nD{eNk`3>GRcB=q%}oktw+xR>;5!WkErd#`AF9LQm_ zJk@(l>H3+fyaoprhhgq4U2TFY#uE?A;I|-mJmQH*V+TZ}w-_GpqnYcIDi%ct#g%Jq-NhzzsiIl%NCN82r8lfqo3;pN24 zb<4(_oN%$60Jk)@0mZ`=F#b5pV*#S%2bb-%^umR&v4K+S0x3GdFDfB%u_G7}Nm18< z_A73w_CwbpiTmHw%JB3HXo{T(Q{Ba$a9Q`+Z8~}C^Fmwg9XZq!HH8*WdXJ9IUy-bS%Q zxS#ZyrSmr{&fj73kU^;}pcy8Ilk2qe6Vr0UVp>mKGw5HHb*1AMJK>z=e>BK_UU~W3A9y?ZuWU>Ec3$2Qtd)sQ&Qd$_A3dD4B|JjWJPOoBMMSPoN4@| zr7lWp2{CH)a+l2m#PC!C(P*F35++ZUDs;_#4>cU48re#Tu@GOB*3J~tNhq>C+!)%w z8djVVe(fxxYXwFt@j82o&kLg0zwe#oaY$$gWp-1Uk*aZjP`!ezy~3KrP|Fn}wQ%z1 z$7Qc)Nxwck+~N2vOaIPBp7a#wEM#HT1)aMQeB_Pf=0@n9H<1Z%WRu^-K6?|t^#-$l zGwH}?%Ee8G*p0M=&8%lWjs#OVB};~ksxL*&#F^tNFTChh?l=Rinx?akbG+?4&$MkVwI+mrRUY^swy9r|25|o>ATpPv?R#?g=_sxn`y}aEp zz9dy+b#Hum^YFb_TM$AL3aY*IOua1LqSV!q>{xcSIBqOiv6!*6x$%OvRjq?-8}p>; ztlffScwuQ}ZGBT)SMR{^)3M3fg{8Gkrf^Yac9~c*ayTO`*~y2D?C5y9YwDDz^>s<< zEDi-oo$j{FyL953mfu!dc3x3g)xC!1_U^vH$Itv+c)iIKvZEy>5y<@v8cDLZ>V?f& z=uc6o*GQ!rUgCA$d%&P0!-lOnkm-mkSu0;V+b)>OmYSKnS`>ZoKq>NCt9x{Zpln-* z|IKAGp16}}cPbt`?gvSVL9FUoc05{QM1ygRLbKaz0D$-X6I-U1w|ILq1dI zs|N+|$iClPdo`YZKFQsRYS8qF2MTo6=vsi(gr(uusHi975Jvm9R78UN?o)b+9yG&V z(QGI7A!8{B$uRW*iT_}*V`8GxSx5I`F9K)7OwUArkzT#z014jI5O6Dd&oLdoU4RRO zgzU@&YPi1bqZj-E032>|5+4^7#b*uMBWIAI z^uUj=c81fBhfwUS>4mYV^mwPGN9lA&V2!;BoQ%u}Oe-_5riq|7h*~O8epAc9lNdac z5-~8Do)%*}oSDA64T%6f+jGzyo<=A%D=84n5lv0s<|V)AO=Ew*_X*$3b?V%daCcX`bIlvWyd|_mU)2 zY^2mWS8$)kFt(tH;nm|&rmZV%g3WHI`OX%u|mWmc=(jO-RB?m1tX(ZHYuXhVDu;z4)!uNCd~7{36#zHt`@cticUYgYKgH0@qK zbGwthn^^mqc-&l6!KsC<)2=lK$)V9s8%E6e0BD545b=%+<-JAhalrgGn2|Xl7U{#l z-K6Vt5OPOHv$7ITS!|t-hi^8B@G_dpS-8cEvv2sD0(HA=T^K>CruF=FI2#B8`0(yI zTq?}PiQE)es5~eOa({X4`ZZu#gBzUt=G88++~bg^G}8ArgnU%6aO(KI83dX+g3^+% zlThH;P(iNwV0$8nKA&vkC8rfR+t%3pV^~{3~;KOKqW2z!9d&U6QX2`qE&Jy zE#V3m$wF9w%17ik{W99tkVGgV<_2D)^5|KrMX|%Io%*XzgnK?5N4@Pl7!utdD48PB zIzq-PWMazv1|R2MPYhK z9M>TZNQKq~R z7Th(#8Qk41!958YAR)~E-POIDyZEcRde^7Bx_WW?)cc&*9<%0&Q4j;hS!GH<2|CLl zjl2hhG5V;f#bMyt8LQ1T6-E8XV^^BK2E3*F#bHft8;=U|PQU~tQABA1z)->&B5t^Q z{6y3oR<#J=Ai&~$BMLI>3-|n^}#S#B5 zkeD+73#}UG<&r#DnIBVO<9!%s(Pfg?kr3tyH}w084Qc&Jkg-=ZKE0h)k1PY?lzD6c1r(O>_~nE zc7Pg+tORb47oQ0yL5uDfQue|0dc{usyAcy5#T_{&%lm`peHTvLWXEODW}W=sXH~IW zEi^@rfBT>S=6MNxgqt4^G3?yoHQda;``b3(M{Kzk4kI-jCw>+@S`Qs>s-2RrA7D!E zxovL3NMw6HLkii}cO2U_Qhfb+@kr%zXirATKB-xxhKr3HB8z)_p@G!JtC};9(~!aZ zO|@OTw*9d9XqBWuQebTq-uDZ(~Boj;*YG5)*m_f*Ca~_Li?C zCe6MHe(Jh7vuU4`YbW+oZ0NXN@HW#E-|AY+%S`aT@l%TlBEHz%R0O` zuEBplDwMC9Fuk_-se7XC!!w;EfEYgz#n?Ihu|T*e?n(cX*Mp%3&(Q+!n2LH>&WJTY zK7>3TU(a|gy{CC8jAmKO$Tn;ag#TXxF44pw-sBc(#xU>oZ#1Wq>;?bU4Xc#vg&C7n z+Bc@SYk5p5MV^TOI?a(5Qgka$>p*pZ?7gn@Kn9=3$tG!Rb0!AXk&Qnt!n{9j_j zlB+lqe~es#yl zd9itF^U1Vo(sCEmcrc8uCvt-U?fferP!0JZeI;6ngGyG93A zak!3i_06%-itwFg^Mg|Hk{-`L-8XZqJha9B))+VIQ{HGM&rQT?ipwO41%%GUJzHk> z5_%xqFecvwx_QKE`0i5pB0lTTOZ$%J$Wn-mI+y6+&vWj{4DnrrKcRtvOD zLfG$J*q(+4`t*$W&~`{a-Hh(m6AgpB4YT?lvmPS_#VZyY8&>B%Rxca2fIYTQ8}`^e z_EZ~=oIQ>b8_sIRG!B%_Apc$wuweWkj9VSodMc!>$CP(ukMr7wZ(@LDBxDfynGgCo zyUhk;WP4|NPY|D0XrMo3em(hRq42A=w+N}<>SB3J7k80ZOP@&(;4-nc_5Iw1i}YADbYT|pB2AB9sFq5>|wa7bK7vFURf+!JoE3dmq4sR zP&7=cTwQ}P@x^a|#>%WFhMm^Cb!r)Gr&4mkIlQQ`BpglRHl+vyv~(lSvA=hAAa)i5 z{xa+(ZJla0)Js&q0Tl~@63|eGg~gRc@F~H#Q#UB$(Bc$e9BD6odSK>Y!U&}t0$Nyz zrn9ITT`^2}ZYMovA;DYdmYGQcmt`#+89qJm*I!oN`R>$&s~r6swTaZSH4AmCJj9P4 z7pk4_Gj!O;B{uhBeUEO*-Lu{-k(L*K#OAXFz*R%zm~lZ*2REi(&u6Sp9r8thqY(@c z<}jm`^7UxATcYv$)Hh9u1vrm33GN{LRhnn$uAs-FQKWWZWD(4t0#@jPX~6Ic+5cAPxsPFCmhn> z{5sI$??4$<0y1B#^<#pNwu!_CxB4Ez(V>ty7c*37x_jPh?2JyA&JP;E87$BD?d zDvi@qkx={?b)d^>>Q_SSiz4g`55p3fu;6~jxLB4S<0r+g_^1CB_?#C+R0&jRCzc|@ z2&dS)Eq5K}%1dERgc54lu+!H^T#&po5;U;Wi(QF4B*u|e-YW2|k>;=2A zJI+qM+BDi!MF%cNBU^1ZDg}WAhgt_xKX(6q2cZWCQk@#N=P=9&6=AiIk{PG3BaZE6 za;0vTzD6!HGUOxA)9YA?a~+H`gw~ao>;Za)!BjjS&bAn*-pupL*I2SomJ^c9qe_K$ zon@5~CF!4C+h;$?*RJxOG@o9q{h>C9#&X^xC|p0=ePKz$U85m#P9j~?a(yaNUi($2 zrb8LwmUW1atR)FLFInKuj_3N3QL~%kx)(fqV(_x=sWSFuY!*gU*0-9~pEaxURgy2N zkWd3WJ3DK6ILNtb;N6=Q`IJ?<%0bJGp~!_SNZQ_j+wE1Dn(vzj4$ZX=*Ky0TpX&W% zIWBD_7vq0ocXuO^2=nXYozcg#enb0?wvjT77|>11pDCh zLEeoLk(tltN`lN{f;SX`Okgk8$$FuIwG}lYm5BZ{&s??^Y>udA*3T#}&YEk^x0KT$9(_i(Wh$MLhdnyyw@vH(q>yulc~<{O*}Bh_?XsjR2FkAlHqckhhT3%>a#j z1H}f%qIwwQI2VG!?R5#*w+^1#W{*WdlXSiYg{T`JT_v@u)D?$N@J_NW zlSpVU9DX^dyKmo`F;1coG4W^T@n3-~vB6^Foz~!8xd#S8HufU>tP=GK+9`tKt4?ga z2iVk;7XKJF&0`dDp?~O$??yxRvsf<&gs`8X~41ex*7s=UKnXvQ56lw16(` zgE($S&vzWXbMhYVbi*PU=Mht-9U1<%Ts`C*x+BS@*z(&d)~(THa?7o^K7T4Xy?Pdx z+wSz%dn{XJbYo7%K}jVh)SKykxA?cu+wqV_eD8bQ6AQ92@xj*{5nyx+Wpbcq9iZ0; z?3r;-DufhIo417Ooi~5Kvg1IxR9E!k?dTSN;Ik3jL(zWJzyJ6hi{0;(nOyfrMpJTg zjjFH336`AxF9ar0^;^j=KBUW``^QoJfZr5vLoksZHOCD3?Bkv;L#;do)?z<1wqn2! zv9{47(OCBPgtN3?mo*nG9+YO3nlNs(vy#bjZZH0z9eop)hol=EtmzV>?B%FuApj#{ z3V4mEisNFoeE*tMdAJXZDZTL_^Lz9ssE_y@S6yZcBzZRl-@z3JN+jEw)X*66u|9;4 zPv<;!@N!maQJu-;_fv;K47rberTC^y?Jv*AqJ0(YZgCN_X?w{Sjm*QtZXV^gt-WWd zicGG3h4?k1@>g#5t27lDs(6h6u$W=*kcTJ(gyX$ zg*llA_L)a1MvoS*5&*e>Mg7pG%v@SGp!m)SAF)>=4>!2)-h?Rm)z^`sso8IH7G;Z{ zcJDtHZg3V#brqhkej2Rm`~2i$a*x@ubk`V^{Y@YZtQb)bSS?YzUz<;6-XT+yo|d|u z-f!(wb`n8o<=o@q5d5oBa>IyB-QKm%Ttv|>(c4bwe|U=}{?u{C#owzG_eA_}V z>ATW><6C^Efvy;X`LKV|j}JLhD-Fiy!r{@8-W4rEe_P_7@+-?9DBe2cGevpoCFAQ^Udq(OR^79>oq4xXXYvwVk-=GAxA|J-~Jnjhn}YF014{KZR}JihJxmpFTV z|I~{jpkNnQHF5Nd&Z=x5TRVBcqCCZfrNZDIF@uPh#}pzD+hux8lcnTC|FTSEWf##BR#77KvUWY!Jjb-28Bi+^$!b6FvF=>S*g< zxpCVR@OI36`}vGd&nK(>+WlivVME{S_rlkgTrgyassW)iJ3l&32=;8Y9y=Ezk=t~t zNW7TIMp4jm&O&-MAweJ#%Nmufw~Njgn?@p1A76A0QBP!-l`mbtF7L~i4*c_kEnGQQ ztQbf2B376qk56`jzif9&oyynI;UB*muQ5%ncR}xMCa+RSyM&EldCuMJa%Gcbdj8y9Y<7JlknMeXyglFSOOow- z{sO)Kiz2Z454%yd3c;X5MO%eJc*m^5@E3%>(eG{(71I%O8W!6VxQ$sy(FJ4KL^CF; z+QhIHMBBvvwlGm~fP0-U)v(GT%16iXJ!sA5>8$74@{XNGoM;pDq7 z`P&x+{2YH%_%D4h*C^C;pBc~o-`#LAfoaH*s2!PEslf+vH~ZVfa#2p7aOX zxw0ft-I?AdkF$#M)!MBR7z-C52Qqr8ivSarrXoO=Zo20+RWO}UV_xZGBtXcnNuvpS zND|R(pKJQ{YgeH#2iTu?>0jeB=7`@gNcY-N+@`WEc1*2h$bEYd8J@Kp$l1@EUq=6l-Lv; z3`AfXCF9;P!37-QVi5HZH~Lcay&w+|6tW+lFIb548f%c^%P_@+zOr1d>xC@xaKAM|(aj2_=lS2-L^OsXre^Ax8P`0@a zrBKu*yE8|?(nb-yu~s%ELI@Dm9Kw*aDC}RL0U6JN>h2F!G^ztE92)?Vo_!t--D;p; zW;B#vQt+c#7BJ~3deY*|>r<2;9GooB4&?UalpG=__<99Dtt;~wM1)G%U1@065&?RM zt?_b9A~(xQ?5e~+5fa^l3`i!e0|z@UCOV7`eBWUVx;6A&4G&%BJqhOxzOIaSt+jn`1g^PS zWPEcLH)k2b4FGs$D%fM=Nk$`nvy27ifA-~(Te;`a=mzqS;J3w z2BW*3vz{ZI)1_w)4lELSUOMrzuzcb|2#(#V@K?4U$iOFT9m#X?gmMQx3EL*#v1hxZgsG6 zaKE*-P}DbPGz2lGy2@kK*ru7qW0R?LSXEofYmiKIjSS46p{M21iG3ZP1}8WBX5Kay zi*8C{T4flunH143QTEoSU)4KQI*?0>D}Q<}3ai6uK>6btzu?vgSV%vb3ogS58Q0DF zKplhc`sYOG54s);a;*N3g`TjP%U(kf)~OLXQcQOW=~VSk6_Dx#qGR%C@FLB&+#WH9 zc!j5nC$B5@n#9=19<1npE_Yz6qqHy%*jTC;MF5K8O~w+UCcC$4VRJ5m{q+eIA_hn0 zgo02C@Q6U707sfZm6 zeYD=^Z%mi?_i*3coJqucBnmx1*DSuc{-V;r)d<0^$3s$*xa|nX;VDu96Ael6bEn;D zW6R#P73#b6zl%4L@)`YEqu!V7`+La`{ix)3ul0;AJi89~ zDUZJ05=_;Je5EluySY4n{iMYqdr7$e5!JuI^sBa?;F5`zegy$Mu(c!- z{S$%SzpG>1#J=z4pOJwXxu@>S!u|UzJ4PiXvp6~=I+UX_)UV0AAd*LZfyo`<-}hdJ z%P~wWI_w89@QVmh);&UjI7Bs5CWn|FYwRMAsMx}=tIz||) zvJ{3!n2$xgs-zNfB$2Mfuo(-FheujQM>{Td`pP==MLCBXAlyYq`0FjX&046#UYM;oR{kn!R#}94babMlY1mjy zKD&bH9-}~XG{1PP$7QsuN33AGII2=Lwl^>**~B#8 z)(ke*UdI7xb|~oVtZB~JXq?CM+0oW;ujnWDFAMZHDpy8OoF-*0vx)72yE1 zm>f1?%xvgxyT8b85*D^FwtwWnuIcy*2~JFS&ifSCl5j$fB-+yyy=#z&ke@c1YF6XR z=Y^yUen|U(*c+0MKcf?mkgqNtQV+5czVFcR$6yL_*ok)}Y+|Nce2S%4OII?5;b401 z>sfY$s`)5@h_8e-Pc_inR8h5zHb&Xd@>^^3m<%PK41CWFebv@q8GCKc!z<4#v33 z$G|63V zx05jGX)-}ma;`&c^M7}QPB$?AS;{Y`e7rO+x$HpZz z^Ho*mD<^e7(#ntOnfPlVQ4^I;}|Qq$y2V%Z2NPQh3b(wI|a&9!%t$w`*nP?1$Fm4l=N zg(pjK<_!=L`z8CYd(^6RmJUtiG^^JwZxD~FeR=@}czuOOW(nA(Q@$q4uZEQD_*a)# zvmb0^QBQOIP;W_o=H4Ze3)miuIldq)5S3V){r%Bbidi) z>Uqy%EG3Xgx^Fd{E)v6;hVZps=Cy-xG{csb<~utyLkX#O?Mu9;UY1qBXaXpkKX z*QmTfGn{cG0XL~xsy+%-V7DV&jli~Kq^h(MI2*_ov>#tZR@v`pm8QXAZSJTt{h&N6 z9X?4Y_MBV=E+!|F`y2;mW~)KtmKiPDM2`bTXC7p(!vMBFHprc%-QQ6x)%cqDElZ@E z+6`Jo3;L3+ibm0^bvqn`W$!>m>3550RZCNo+-glUntQ&O^Gm4%4n%TusT-t$GgD%Q z95_EM-VSNbHfN2xOO8v}@x_cPQBen8vw#;*jJCqeo!B}c2>!_%#Yq;tsYk^LkAy|X zV0O3=4l(c1F$PAs8umscj>>eqri(gkPSngw%tg00br!-c(!AqdL}ba` zgmpyzX|p^B^^x!*hfTA9;)ks7e`kV*^&HM7}mIKs&i>m#k3`Irl%RxCYKafFb zhsNAtTJ3PV1S0u32dlJjaZ`YqpT4D~yci)|L}+^DLzbM~{>VX7*Do{8u#mTTo^mIV z;=5~>#KII&X+F~=GdhX`OWpvA7no7{=)x@$yHoD(&=)i=^Vlog1zQ#tN?)v6t<$Hy z;7d^kt*;c ztg{4mcp*y~AGUEUqk5WOL@Q{~5eXBFxFKS5pV&sU-Nn|zi2Ve1Sn~EKa0%a7_L^Y(B(%**e8*V_ zD4XE0S<@>@d+r_Kj%e}mi>nH*Sh*Yo%J@GA_{k{8=;~$$4sEzLR`F2*9qX~t>IB+; z+l6DqbnO5#^SxO}mKIaXd<}5lA!=%fPhP}mKVsPV9BZLs!}o<6O;PeMh9i^^B+9T= zFOu=&mP7=p(lo|uRVq!I6QI8L zLI*&-wB(7Ru>+yiFkwbmnLZ}#aoEjK1gU`9x)d(4V{83SE-b<}vFW`%BCTqrBBLJ8 zanrYRKRz3%c1S8}gbUXkUikVe3YW{;h1wSCPyTh43>lpCnOhcdvoj4ilf*xO7OG10 z{%RaN``hx9_G6giuwqAZ{jV{mJ;$h+Y!Y@W>Oy8$w z?7bSNi6V~z!J=O}jv^dh%X;htzCZ{6d=ZNw5BYh8(oPC3t&_AjDlCi}=sW4D{YUZ_ zf?J(>EB@MK(q#`mvX2B|U;y0C9FFZidbAmARkCQ}D}DmwpK1OIiEY_B8bowo*oe>0VF`8#;~)|**zw@7}3&Hg2>08KY5PX|(J zLE2sgc1Hy5l0NQS_KqGBj;chqI72H?g+`?h_+A4 za$Sp$+_yMIcZ$!NvU7RQg*VT1K0!V1C<9{vic9KiO05D6ARL`0KIp}KUK z;%5u%GSdwLj>QS1vFHTHZ-}6(aBCg3OpGW4a1lDJyg!^2M<;diV2EHIK! z;1}!x3b6n>D4-3F^b@Le_Xt6L`h`jy4vqU?z^3{Ih6|ryXl8Du8 zsLT0po~?GTR!}0krRaOT*k&~;%58FC6iid^uraek^ zROR05=f$JY$y|v_8n5dg;j^V`;}*9ce?%_Un%^weyXJbi^nHDQ^Yh1FvCEx-C}KXh zC-LipiBCfAKc6ISPZlcl8{Ga${=V4w>iz5IKdFbyz0ov2_h;!pw`Z#@?!TU2JUv_= zFE+S;9RK(9=l`A-^rTJDn*z*${YA{rwj%CJ5{CLJy}z|`s>V2Xwc32tfy zR1p_8Mr}^AfT@tCTwSd8TRosb{ZF%Sbz-Jd^%{~>&siDS@tgXr7l-SKeK5X2N?@4O z+=2+eft$=O!uwRx1lx(0Mx*~4YI_L#&Yadf=2EcLJn^=f+iQxqVrzV&-Nt-;if<8D zXigUA$IT2m^#|bvwZdx?18}WIctH@BXeMyB9icXWMV?pF_bB+}o|I)q<(YsUIE}4t z_I*=ijUcUBc*}G0g;*R>X);34;#SC%7LOes3To%|em}|Pm4Cs!ME6|Bm*R=V(>{F` zR9iZv+%?{oy68A=KZL?xYClTWrK>&JcGD6&tE#c&1tg=tV?* zPP3lcSa6bPLh*tN4j{u~82;6Ms!bVz2{TpxsWjWrpc6g?ujlK3FgEUCWW$H-7K?+% zHAVZ5#yHETJya0M9A;{3A{JFRI2Fqy1FLoya;Jv`=$Q2${gMAP7I5$)U9o z!)q!fNr5DHh}TxWQEu_=vQIf(ZbkozZ)oo90qpinb<`rYCGY474}g^%?%Hk(;BP#@ zO@TMlLd)>fVcB8>HKCz7T$r<^KQhD{I%=M^Rvt6(_lIXVgW0#eF;><5 zJ>jsqZg!n8&ZXH_TmT{aKyGD!luGIaCWFF6eO711`#a5#u6y((8R3RCdkr6Ru+rGR zMi4xHsIPH2tj>(AUTJIg~BR`!i4*OL~#r#U=rbI3=p z39|~3l|Rw!tjp^0fkg^GY`tqXw`CMPd3oS$YOTcvC0U<>eud(wzLoP1`EX7a_>_vwvUMRHu=v%U(wvOj|w_mhB5?M z#j6rW$;b$%n&Vm#_m_F71q-Gt&~UM&oM_rKH`smqubp-+5=xG(|$@@UD$gjdqWb0(%?rjAz-~b@+b%y zp5o3Cl@F$@zu3dR>q}+}6emulqwFH} zW&@Ue3WV#u|Iwjm#iyUtQ8sFqGdS<+*blE9>;Emen8KP0(YlLhHdH<%;>}eVPJGwg zP*-a$N4KcI1L+^~_RWUtApWP~9*27pDmm z$HT{>9P`gWQY1^;z0FF+HAdRY`_2GVmP>aEtPrJ@(m2>hF*MF1-prRl=qOVPAO#{6 zjpJ%!w(aZyCsr#|BMvq%37-IvAWx#ad(PK8u=5tJdLbh|O`aa!647*T#*irhx5Rxc zGyoS7@^Ko^Q7A7L&W?_SC>5yc%6*v`o>Kk?Prw48_8pf1`XK_#-RMaU0z5`jm%B23 z9kahq8^XJ^v+sfx2)fA8%nHv3pia71^&0}tC?@|iKp6x1l>yLSwf%lWx_;NXQJosS zPl??wfp#442pf7vQ>s!K_m4@PMT_+Bvc57m0&p~fyHX^(Yi1Y$M4TWuO9`{ z&#U|)*>!C65cy>uVUgdCfI${xKGdU>3bPcwQy$KD27lqUHc32w$LC&WVdr*82~;d;=~ijV_FMz zsHG_l)Ep|PMVo(R`Wj3E@CX5d9SeRXz;yYE|NVmzLRF>?W~fMqiC+;xd&$g%;c5Ih zG%15*CJXYop`zS~S4!4GfFf}$B#3!)+m0+@jfURkReJPy6-w*RE-QH~G|*OkC@w%v zAY4W~f+{~+s&*GAS{p2~ODPXPM`wUx*tlwD3tl0&$EaGy3X!lM_)Wf=g(nig5rxSaTx-n$-3jR|XRYZ7)O>Z@+#()@`nuI3Pbya1P zSQNsJN_fj7n{YR<+ZDhoHjUZjf5+1B6E;eKgVNJr<{bt-LM`1GMOuV)fD*Db2KQk+ zZ!Tt*aw3^F&q6n%U%$T}+?vL$xO?x!G{qr5>atMsgHd|qvlG?;7;QovAcqbeF~3?W z^G~C|M!tBm-C$5tFT=&+Ov4?~V8zddUT)^)s~Sod0Ho&?qG@RMN~Ft6)xRmdHp%P?|0dzET!@}d(o@Wws@cHvSytFq%@Ih$^UXo{ zfc%T*G|T5PSkB!%ME}LWxn16OBt4O;g32pYKXJ;Kkc>h@+rd4y+}w)=G9876E1jo0 zX4A|=3tU1qk&qRZTn!1_^&O%czXd^7ruqC*wq<=ytwLRsG81P#78e^+5jc1ch>x9v z)(hcn?zd{4*L<=@8%xIHghj)Y|36Z&Ap}taB89v6^nJ~DbYA6P)OR|M4 zSMr#U!e0{YndB8J0T9p-dVI7OQ}}q76Qu1luf_>)T=UT|6fge6cC!~g41!R4$n8mfV_28plxt!o)G;h%fW7d?n~SRjmhGHy8IJVC0iU1g*|bDg z-MjnK4$$s`%^u2Mc2)*3q+%?yl2?gD5i-lDw6dQ_iENSIl}xD@#|~kzJ+A>x=GfWY z`%mq#Ih_45@=b0kBefyj2FtL$GDit(H7Ch3e=n3L#nvZu-$^bc_()5hnQbncEv$fz zC9CMWD*WS&QF_oB3x09=8R|{*>2dkDZ6CMlni1x*>l|4$(91=hC4*3h3! z;!|0IQPWsGkZo^KRjn*?^ z)fl%K)pnO^~s@GqA; zkIn#xXUXaoWq5p?Q0Kn!+)GAv%X;(8`I^3po6GO&R_pafj4+pjdDb&|BLC@@KdFAm z{txZ^Q6hM59$&XP!?P`l_QlD(-CEPhbYLUY`1=aa4hC=YJ8spnAMIvNx7^t~ygygJ zFfS~yEeO`7MP8I^x_R$9<4sUIa?n8QLSF*crUdIxFsvnYOHWJkRTOuDW7}nQ20}fX zCnNQnnTkmZ>`CvyEa-SGXFq@b{>d$oOCZ4ct6=rJ-a3nLbpvTb;5hG1L2l<&$jWkc zb;(Ix1h2w7szlYd%c=<>x*QSzmUyXW3=TH zaJ;Vop}9utYy;{LONZgPtS@pBe;TQX4pq_l7`_z<jV!- z%H=PUW4f=rcz^qDw?=XNYgAn|VFe+grUo}!^iAe99T|csZzs1*FKiZa8GEl{kYF@5@mO zUqgRgPQ**dwnjO{>m9+5I?+_{wxCmKBe4X<(*1NK2O7A?Z&=N>u>hj8OXojr#mHC0 z7Ih(y0$SOGinGEY#Vw0~1gOu{sA;lRivlyNH`98!Hlrn(i+K||*k=IDf0@=EiS@Pz z<)weW*qXk|k&qDKkmvLm8pTTT^1bi-E3Zq8q;7b^s55Z<;TR@vK3tA=9C3KN> zd=Xo~IJ05(fuGoSqA3!xewA_)^m5g&&B}WJJs}zSsg4Wog2frnT2~HlJV^*dorG3Y{hGcc`dY}Az*x|qErDeEZ=lrD)muupTGJHuj!eiXT{q?Ko=)KvMAfZP#UqcH00V@33 ziMfD%gMj^e(#(#=%#|5m*heN{!<>bAuOc3zwZhJup{h}HP&gfJMZKjl=#99JVVLA= zGBqb?UfoTUEdg#(denVB1Cmp_d%_-_O;EMqd+`H_GSl~zbfL^U`9(biHlORCeu1au zlj&{Kj^ZiC1_4K3>DR<4Y6qEM{=t|JM=TNz(h@XdA@nc=$U{|6+<$@NA^qL!Q73QO zb&(wGd)P>82nr{ zJkNAlE(}ws0-pa|=mG{MN>{VozJ@042=el|z&h+p-2)iM8UUqwO=v`EaGCd1xM zVm?NMicYLb$5U2<9^T|Ci02$PWq;-uUGJVtG6CqIKl-qC*DD(Ji8TwOQi{8p>8-cs zv_HhWSOz`Pb;-5E%-ge*q?bSTM6nG1>$tEy5>FBmmOmC>Yxod#WvZ>m2`k;6{be}& z*~cAtDJHA*D$brsxHad+-QR~G3EAKJB(Hx6 zco1Lv7&_g*>3hi4H`dkS86|t05F9yh|Bvt>c%GrpMUkaGUL;RN92Za&k}B@wtU$=Dj&tK&o%Dm_Up{;f-Z0r?)*SK4`N`E zgu$iZz*6`S*#%A?T!=YtpuXvu47*Bv92BdFH^0*lP_zYAr2}I}?YPB6@QYUK?{VZW*jbYw;c`RCeC+=rk30R778q9SI%Rwplcx5s*~c=BE?U5@kL+3K zcLYgxB&2h~I+w^*MQLbd^>TCN-f%p%R4}eY^TBvJ*GH#Mekxq_vy#duZ0MRm%#~Og z@potW5N9zjk};*CqnL{NkZBFMze0e`I&Mb9RjU|nZa^iG4k5hZ#Wn{#C36*0#p#l> zO86^OUhxe>W>+8zA0^ZMaCI=5%XW_(muXR6!TgWcmz&ZmJQMNIv4vCZ0i~7&EWS(q z*Go41wLUt@BtSse*9<<(jx`8&Y`fke_2}pS6cKtlKVc4nwQf-%D1qu+_Hf^#m$D}< zgV8GNz7bq#M%LQ0k4xT`iIP9ZY?EZ3vFwuf;;j-~UZ!|Z1E2;%qj>JP4rDG((qJ7~ zfGYcxiQ#W@Od+gBqeIhyRvTmjNA$W5Ecto-#YY|21dk}hTNkP(~Xm}u#>H!6urOO>3$@p*`aKVeyb=5wl z9c~=$`if;TZbv(w&)l^lb;|9!*(yguGU?jr;6XdG$- zokMCe5B5(?2=oAHKd80iUcJ+ALcn?3D1hhFLSnTtm=cA$V|ich|z*-QC?aN#X7;A-EGH1dG%m|K7W|boUu&eB)f4 z@!i%%-OXprcdfbR4}fL^jiGf_4%YbTZlff{K<6{EuAa1PkKaJ_YFIt{;- z$b(pv&@5QGC^hk}OkdA=v(sP2&?lKs2F*0(D|k~6C?m}B}+0JX?fA|{!d zXks8uq~g^jzNS3&>i~=b1s78Mft|z>eA^Sbl(`f(1Zba%rb8%;ZQ;|fw8Xa~!)MhE z(o?V1;!7rG@E;%M(x=#K;Oekypyb&)I!jo`0Asa|7TFq!xic#rQX%9b+ISHGKLmje zC|`*$|Gb3(&-t?$wGnWlb5B(Yi@*j_+n?Daf5RX|(jSfm!FjH4m@z*y8;2ko3*s$G zJ^OVP?-*T3i5)p2$>f~4DJq5_KrEHg$f&{&e(^>wqL0z9f)`t`ztOo7ngwx6V#Lw@ zHPg;2EgXYV5d+Il>H~3q2Jy{Dnz1RVQsrw|pmIUJ$lZ!&ow4=`Tv-;+@F!Qx7qMe~ z*wW?XAVD6ez0mbX$EB{1oV2xe$=*N!Z^;0u+H*L;Me@1`#tt8qcn%hx+wyz90(2GNGuFP;W0b1zI`jdx0DVhC0Vx*Dv@d z5wkD7%Jf`nb_G8zbU{;VvT0Z=Wfh}Ty4@UjUA(CAy=4nUm?o7sJ$v%VRxd#O^8Z1PEBr z)YaCl8R1Sr*`O+)UW`5i5aN4pd7end+G@RvsO6rqh7<-TVm<9Es6t3Wn_I^cEQd2ZM3D+xIv!J0v1rQ|! zm0fsv^nTG`&zSLO2}PijYW1fW>W&WyG}!;9x1uyz)dHbfH}21U=Nm2hZA8M|v|CKq z4+9Ac0>q18AT;?rq$z_l?k5k)j-(U?A#GwWDnL6CSAwm3{|rmVY-6DJDSZ1`@ZcJq zHlJeb-;QQ$G_6!^r5xRI>$E{i-Bi>(qxj}Wlgw6~Xn*p?E!wZpagu=%1I5czW8GSW zZZ`B+6h$kLU;?Yx=2u{2u?1o(Dc$qe!RRPfp5wY-o6#UdmQ61nv3V6~}J38n~tbbkcA! z*q2A7^ZdkoI4Po%t-W(P_ABAD%qnguh_> zhGm=J_Oc4hI#Sj{ZX=M<+$9oqVr?L23!7C=uUX@{5k)>1LJ2weBzaW|10j zfzZWQC9l5F=6k?&{4+&se6eRaygpd4IY|Zh9=^KhoDTTN9t!q5l6?6%9BuAeX!+_` z-l1zgAInV=Mfho0x@)ofSSH8dGdca2uH{cyx5Q84ppnL~U%CG6(=y|8Bz)+tW6-U= zsV=Rn!3t_uxm(+*--YkR?21cLuH3-ql0XMwHqw{70cQWJB(cDC7f$EblH}X$BR&`` z241{|zsV@WJE>Ek*QH$kHzhBBDg4H|6NLk>!YqWBu(5rXv;A*d>Ob&rD0sDM-EWx$S$+@>%C_ef|?)C>*If&H3y%a^8eUACxids z@ceXH_wbQu2#$D@FY?no{=)+qhyUHU{*RmbPrtz1_aeE$k9o^Kzh&Ye{k&75mxh8Z zp&(70;ky9T4tjKAKRrV~s1g)q1qFq{`7S(=q#`gF>J8xvfEGCJA%m~zgM=^rH46NX z=>y)1264;f)2?_wJ;S5)3|g5DW*`o>Xb+T-33B=Y@KPBwq%>zx!zv|`mmAC`pto@2|~5Ctl<6>5|b zq7Q=(Ekk44LQPi!q@ISQGXhQ0gI=Kc(?$g2HUwX#28l9+obp9P5{EP(2gA8mA~=qa z?+_ilaU%B0{Y4leGVUW(H6k*JBfL?f3T1pAETGGUD2T+*3pKEFHKO3@QPmYuH?XK? z;^=yY=+>jCx(a6odao9g=ue)}Fw5xvjOYr@u%d{VQA=-7LvSP@ED9xdqcMVlKbD0* zmYKnFF(Y=mBZ8AXB5{N+r6Ty?&OhBUQY<3us3Vg5DDtc#<^m<&a2PD(2~8|QvC|CI zu8242h_}y(|A~^Iq7?37f$x4F|2rZc)hb+T-&bn{S^bE#RVo3+DgjL(5grlt>t1D; z=+CgU(Q@GDqnPcLxLS|cnHBK_?}S z`~o#a?7{WH!wW7=OvoRIm67sRD_%Y_rBd;PRvAx|<0PmF&%6?2Dibli64GTe6C*PTMl;`*CptGFXEJ7jWwRi& znI#XIk(F81nf4Xw>G}L9ZmV%_vKedq*_^9M%#}%XjoIrX*&k7JygSp{WFu*;A~-d( z7Z|d~DT+l(b4o<#_Y${;PCrk*W)1UiX1^ecF|S(p=U(< zLu`;%KF&#C5Mw@pb)g4Od_oemR|6$mAhY}-vuF5iMP+8uaUqRh7M^U8PeGWjrju7u zyb!dAp0tPvHO*lqbkUa58q!E7(ok*7tYoipTI=}M$HEyt zKh7wRjFak5a(s22mC(`P+=yhsilAp<`O<4SLrjIEYdJ|uks-tt!>HL)S;0$aHS1%w zND?WjN>S%lF&BWUMS;-14x*(6d-qFw7LVs=q+Uq{c_8HIA47RxyHviC=3T7T{yM1_ zp{hwys?mx{n;{Jvm1{7bDTp|Vd&WdMD_8>_FEMJUd5mmWd#op^ZWI=euOX=>LvNxK zq5y~jt~(p3qMI0h5Pvzz@vLfkiQXLDNJjTGF2-Tg%omMsO%jhA(JXx0EP~!5#@r&> z+bm(zB8}cm`FB|B2@OJh`kQ26JP3dYH>8PzS^hie`Tq!~)l54vJu^EuKaIGsyt2Bs zUNN=tMGj+YcW*y`=ivC{^z8iWMJD>?HpxrB(n16%Erbx8R}|_DMM77@AYuQ+Y3)R@v>p8oFXmqQyQ%o9o|+OLY2dC9A4+(_z)QKmXc-(LwY*)NVSZv#azI=4ga(B% z{l#fjNkHTdzR)tJpW2@f7 zwjKq3%eG`&4dS=4gIA8|{{t^Roo~6zW&C3*W~`$0ib3Mj_>})a0 z3f{YN<{GwjiE7@g`8M_H?(EyNC^GBKjO4J6%dE)r*qb?dzVqz*c8t@T1vL%3?~9sm z!O%G`r(Cxj{Qy>8d$M@D+f~c*+S@hT_Ve3y$6?mHjp_Gq?>@(c#@=oE-ksllfg-cr zZ?UDlyWftWuk-ZM>F>GUO^{}L*h|r{f7s8ksCzib@%Z|1SP;(kD0ftnZvS{(QC`>O z61F@eh*s}Vc6V|#=^u06a#+_L&~XvBQu}cpzgFiAr1A8rGN6!n-3v~3!N!_5Pgv-@ z&y=|^htvmu4*#1S3*O)r=a;i(8-GA7~5*JicqGi^v2t2*V`R;$NoKNG?M=N zpxGbK_`BQpuR$Z|7`)VAGVX5T{6D#Ue}cwkb3O0B1WkYRi~kIo{I7r?cTaY3{k_Y- zE9vn6*$!Tk4BrkTcR$(=|M#FN>JyE&#zfkU`A5*G;9gS2|Fe=#f+;V@d%Tw{#|n5- z(*I!xyC3hT`z#{=QPTg@?R%Pj&2}7OJk0qEZ}mJF4T~APsyzIg+gC?rUKl}VJzqG$ zQTaznAB!ozl3_e9HTW69m|agv8L&t@YcV( zeFMgFHh=KevnD&Ou`eGR<09q2EfeZC=dCN|{|Fj%tcsnla(4eS-umrsaCKS9%ec0JBM z%<^r5d)fBeB>&+*f(8@4Qykf=&Owr>_OGD1nOBl#{rJCLK zzyks(9}p1##te!AB!J!j(J{msi~YaRG0@X>fBXdN?UMlX4-Jouj*a&t|3}BLu(s_|q}` zI|43403~(r2nm8>u_$E&Y050aBbol{7`k>R^ne5Z*)imSiclDC`Kh8`A{=9f zi_<-rB*{xD@48F!TCF8LKp6L(HU2`t{}l2Q!1+|jU&YNbEzAD3WB8*mdtRHF<@w$| zDa>@jfPVm-4Cab#Cr^dE>1tk*qW+{X+bcvdLSm;{56k}EF`QIZlsy%4nA_ONKP${j zTF~mwTT+Djk4VgC|EVyaHBIpT7lpZ&Gsyn*ynQQ-`D@4jUSa+j^xf*IkTI4&frxC` z)v_pR8c0VwXB}UIPe z#x5rdfEb5^x4Q_(nSf#4kz=g8>n9Yzq{HRHJhABO!t(^J^^M841Kj4-gjhkT-RiYG zE~*aa-j+Etx9B2b z4wlzZLj6?EX;FWj=;&M3-8N}77Dp%m1BV?7em4xu0e<2F^Z<}i6n*E|up4@=7hVPc zcHfafeqErc)&9Df5W>D22Qa{T07vMeFd(|?7gz9Mv4QaSY3$rr_r2&_qCm-PmdRN( z%`YG%b^y}7J%>v-**MiD6oDKH#Zk-uT{lFIjI{+og&HEgB<8|p*a{*)BXpBA6vMz% z3PMeI?y@y32I8&v`YM!nDK7)VG;RP6`#>;}8=iiJJ+0(|fqkU`vjQ_7E2>&Ec$z^p zyoP`&AJH9h832+zG5|+2A6yc_&&In23?&OhAQpwezw;EhB8}_-+xQ2G=n9DTP4v-l zr3JpQ0^)A7O^A-~0bmq6Kk#J{QMWXI6A&7OYPp8{LaMcsKoLQ4U~BP}CG3=z6^Jxo zw4sy$06}0tB}oYCXvHW2Z+(Ppu)&WCq(N|sN-7F0dy+6grXDy;`p$-Sw?G{r)Hex0 zlhIoSBy{|Gjva*}V~m(h^fuki88B9&y-cA5`$cdWyBfR$kQ*gO=5_!89kl?<9YPr- z4L)o(P{ONQ==a4WHvmpHyoi$fiCkj=YXZOpyprDs6Ed#*DR@vFr_~6RBo}0%fVNH; zxHQS{vjp@~PPQ+SjUAMs3#HS#pO(mibEKljnrTUS_ayLg`*ao`ZqUHwA-%CtOe`=& z)XOCGG!>t|XgWYkq;RD6wS$Wb35YOC!l8)MD!Z9s(YI>U-MGP2C4~XJNiyvQ;sFH= zY%PUIwXiElovQM(?HMI1)#Ivufj!Go}(Rqxpkv=!9?bG(vgs^?(0-3wUQvn7*m|L^T*LZ36)<^p-Gm^fSJk zP4~*v(@LS>NGO7g5?&9& ztehVCKvn$Aqt9c>wo7l|45<1HW_%(zbqgtbC~qK(KD;C_`d>|c_>KljC-~t$pUp$6 zBb1;Y(;M&z^<|TN-j`%8q%npLz11y~f`MS=V5t3^ueX6mTG|v1F%`z>p=$2b!}Ntt z+p+T+cgCznj=CLbBlfwCC!4pU-urCU0%oHxezSl?mK{`Y`d7H3vr+cB)?l=m;TPkN zNg&G?A7-Dgdif}M&j((VtG<&loVqCol$yN)UrOXV3w)7jWBJ5^e&q*mh^OuU%;WAc zLX_56N)IUtG_a&WU!IvH%FDe}*zDiqwC~ZjVa0mq>nz;eWCe7!L*lBikmX7b7ZvHG zLx=PL=>Q<%iLD;^59u~sa%I0WlalU5jRSsjep__@mkVB+JfV1+rx>l3OB08qAMi5# z7^TmaF@;3wt^LlwHm|Nt3w7xRq^9GIIDvZP1xTe?K?U;LS2uaPtS9n7E;?TjVZMBZ z-<->!u=gD_(-T`rv|GcbU`Iq(a9AVnQUd-nhU8+Hf()xJ;7%urjKplop=(5k`Fd6S zgZHAt+^s>da2;RXqvJ=-EIAAdG)^qxFZd!>dgxhK>Gi(M55Mgu>PcT_zWj+R|LI{N z{Pk_H)JN(3&07oA0*U&n<_&!JTbg$tHjNGZ8;&<8+|#85bd>ly-!&n~51d?ntJk0a zRQ!hb27o*Rm<0RZ^HAHjZV6Ny+K?gh)EPp*mDr$YKE2MOUWRZMDA}2E2Btb%Oyhw5 z(LVn9BJBGwN_E};Ka^^Js{dz{Y7aChH=;Ab5JyM-cE2$?Kxx9WakozjAd}W(+_e8Z zjlO(Do}}?`S{I0r@k-nIcuGQ^2&I9PGjg<6s~JT}%h`6BTCF(^v#b50GB#L5-#6r& z!LuRecA2=GZx@F%$#rdhT{kzok^pX{ttTl25s8IpY3j3(=M}wU_R8;HKHwXwk#+~1 z*ImDUh?1>SOszx&gAq_55FnV_u`d9Kl zzHig-MDX+uty+o0=n6y8F&Y3+41UOF6mrWw6_6thkPXBpE+Do*(;O*^2I$LVf%ukW zNJORy(ql^+T8) z00wus>w-~2tkyvoETU#lchC%*(N#sfM>Q?#2!JXCs;(FA;tZEoAUX&mtPJyK*Cq%A z7-!55&`&cmx5GOk&7pp_bp!`qjB1~@ZBTKqwz5#M)7r-TX3qivs2oW{;?k=0x=%m8 zHO#2Bx;F;3r;_!$B?&v$TMqToF#@yQZ7zF31cuOjSqf_?ZXZ*0ZoPoimQB+sNq3Fu zEY_B;Z!T+0&45!7hG>h`b=2h;%QBcf#6yrNs4xXfxhAwsuC1tx-XQzjR4Bat(tZ7D zaj(Z#Dy$eBN7!LK`h)G3s(@9)u2s1Bk))tW6p+glAxsGUI&wvO$rJx7F1B%yKqbO_ z9U(md8iZ=vO%hV+?Du`sx7($u^jIHNG$Fv>v%VNj{uY{mOl)u2?c8-lSCiDfvWJ4? zdB_m@wF;vN_$F-i4t`V;ZnEmmWq@{7PEZyJXcEDm>RLy~hQNHB*N&M3C0!zOfEIY3 zL1t`d(8|M7`ud+-!>qp^fm9ffI`3CGc~Gy5TFvI2Gw zJ=?|aAG6PFgyL9Fw8RvI>&bU4Bb<3=~Rno<(E-BpiX6Jc|^?YR1If z86=I8nOj_e|(Da>I5%VytIkIzCxyvl;X+67C&Q` z0%B*VJfnma!QWFdhZ;riU?h(W@fPjyH)w%CNK%xbqgaHGSqW))N?Zi5&ca=+m8;dC zy{5DtmY~=vqC#Gk<`cY5%&&-Rj$+U13`JL^C63JtTNoe^Kj(?Ef+qA4eIzAOkpS^S z0dkSW@5?yd6JknPn1RwbY}*PbN>EBgoI>5NNl3OkQ&fZBYj`m^fx&8~xE7-m<|@Xo zu>??$KnAHU_l$)p!WmYWG8y(zfDVZh9*2%5_{MZ|bhAxV#>Km@rcdRd_F z9aNx|wOmj})nbi9ZIv$2yIGBA$|O&MD4H~!uF7aixilpuO9qm&Mbj#0;~J=n z`-8ZWaH-TK_KY9c4j7YTf6br+Wg{V^9>=K*;ghqK*YeJpm2*}$&sC69wb5QGQ*UaB zEnh*pd=6l+^0Z^xK>-ux8!z5!3;5JHk_c_=P_%Un*xA~qqbvHqv#VhioeNbrW0Gav z0>Xi+7TT=EpTClZ*J59Pjr={lac%F?82UKl+<;IJlnLly@;NcF5?p*xM{i_iutf{8 z+5GLyr97=y=t+}MC-PAW!9eB2#!Yf<@YQT@lQsJ%!?CrZIGEt;oBA+|2eo+GGz9eI zneR%1p!*`JkME1>jo!!P?un;2{9JX2;gdHpkE4U_#X>)U-YzU^6LmYfF-PrC??K2& zYQ^=%D>AdT=`;e&!V0Rx!TFuhpo6VM2G>Vz+n=)2CcZWEJ1n-1bGhr#a zC^VX7KdkMvlzr4u#~;jIJZD8y6Fhj`?O5fR%j7(CuzdH3UCNebRn(kg@UxG9!aok~ zdOhS*{|ga=x1os}R?{tVS!Xqpjq6}8Ir(`afuJ@awWX??C#QRAYb;D*RVuS;Lu)x} zFu}gXe>vs!{f|d$hrz}}PqTW`+ADqssmfeo>oxo%uQH_%>~6X`hXy)64t>ga_6luz z1WxbFV6_+l!h*ZIXr$xVYuByIlYF}R*y<=9c^a&PgPzG8uAV7(-Hm7Fm^4MqP%h^ML>IDd`^ts)-qVMI%TJL)8iDEC5%CgK9Qe&5d>>t&_CqJAP z2<1vX2)fv)2!8)|UZ&qJaO~Z^bdVI=eyWJw?V$a0bo&EjQ3+sWl)!e|7XSH--;r@W z^D!iTYVF)}x_k3(>h9x@Ul&m9pUN|A_kCo)FC+3(r*a$a2ZVlKCB*wmj|tq7cq(6K zO!pk{y-ZGv3cSq0_R}58{TgSodINhFm}h&(#Vj+@<(rz~hR*u9_GRGk*;MB=2Zp(dwZz6x!O^F3J)-{7q-kKqY%zSS;-pq4k$AGw4AFpr2 z@T8UA)&+wX-#uh^&u)_ezRSrAK2r1dsy<^A;}@EqM*&R~NpLue6FG+|72NvJ(s9Y= zrI~6yF6$0RV1^ECJI5XT28=2S5#=R;Qd0vu0-3Kwbr%36Y0z0Ii|RlZfP{r`KaKOe zK0S@zssxuMAH`lW(}4sS$lZP7Ozjv!fNkg7osG&wfB4=q; zoz4%P_g*d!5GVl1n{pO>qY~)|rRyb?Z`MdPGi1;-MYbRnZs&SUU|%ohuOiO`G2Tj}xn+}lT&wFF6bo8Iy$dm#XMCVR<5#~p`Dm!YgLqDjL_U%u zpgd}y2KPj42f<&YR~^P636^Zr?pZLNsHq`EfU9`MF$#<;-kQ zBB0cJPjI)0A7bP;aZgiBaEuJCH08y_{*)IL)~LFX>sTiNhH?Lg;0m zHm@d$qvFKj`oHee+kWq88WD$$7b+;@l7`EQlfZQy1Xx~v39m?cFQgP5#Gj&Hi7g!& z60L4SsgZ&U(i1Y3^rUpl+s*RCDa%^~B7-@tIZ29W0P3=cd9w70T3Kw# zdZ+3BN9F!zgQTzVUcSalYb0SuD`wYJ$~Lyl>N>`WujZ2(S-)n_gVW7}V48??hxsT`=zA(Jk1FG~ zS_=pkAim~^Na^aR-i7TA3X7^a)8YksmEgxt6}GTK8aZ@490#^xa0#ajA}Nr0>(0_&+yt}I3#i)lNE{53C-p> z(3?xt+c8qta;>}wz;7dyL67i)teMoPgdJeWTXhW$C#8teb}@Ohonizh34-$(ia{sk zS&t}!#LThEGr}ZH*`B(Q#&PaFS$$~!J=%^>Qr{pU;SJvkJLbb<}erk zO|YKDQAYJ>fB{vU_o#nbdkRdgu!y00f)urcSZ){O|ExVJQp?tQRdse(q<@!~F088N zF^Nn%sk66aQoAnVQn>6HV2+j=MFrGKOmUoC?2wk5qas@gs!ZQcpA?AZ^VZ^n7#)x{ zL_=zstu%uB>FI(Yn~7|LtF^tARdah)wU4zth9MxI#;^iemWVfqN|Ik`Nmv9D%w-%! z!m?5kYAQ#wM4}{0)WJnzjqExo)AN#p&J0Zw>UZU}>SfK!t#sBh9^2MlzD&gIB+XLe z$OvhP^jy!GRjO!*skV>Jhr((BDHZTL!HV=TpR{zJjIO3sr&wvSHowaV{ZisVu0XE= zdg9btxTovFTAN8El!}R5WGma)r`;`~`gN#9X4t!ia4tr6Qrc*;zNjX%iW}DAEdcfIc!wcssTXbw@d_BFzumS$%0%JLM009Bmd4v zB;|U>>^$Kay)WILYz^txpEleX?FoH-{M5T3gk&od;L800EQhR_xiAVo8vKM;gS6Jt zS%AX1>1nl|l{G+Qp?4XFPu@rMs&A@2UqJA+37SV>wW$`MkLG6|J9$6ntA1|XeqP^x z{+xcn7y`<*W`rn(&CY)DR|AqgxG~XSwhah@FJC4aB4BJ_NN0e3qhEHJhe zqW1B7B=ayVm40DL9=suV&V^WR~0fQ%U?!)R|^}d*+rQ4}D;+wRIv;#k~r-7 zRAXEc=1k#qn(fSNGIBua9vlm#lC-xHl^});yC7y#F_IDszt~|(qMAUq>#7xF;!9$3 z&uN`kx5H?wAzb7TR%BU_&=&`=&MY*t}Vnn421zCZeol zza9cpG6qcQW6DZ>S8YOBFdvwg6_3f6^=02V6&iIQ7tR}9&TdQ`*mQ0-4hr{VQ_vvG zLYB(<@HjCg5(L4SGP2*vcEa_?1Snn;LYf3?D`qi7WV)E8PHg6_GK3rO}wRbM#_D(i_(=d5cl#0MjlzZUnB`ub3mW;E>9Ti zWQw+0Ws1y1+P0X;2f6`yTB(o13Ox+E+SIw!%pt|T8~a=WaqW>~GpXlh-}j@}(ak%1 zCDQxKK9Mt8y1oxkL4@c~LZ}vCCWcxa5Q#-PanF6v=xV0!Ebrg36+<~VL2stH63S!-h`RcY>Md6>Su-bVQnGk67(rz5b9lRD;gvh+0aJq9~B$42&U-oLciInO3)#x|utV4EqNm|i~i~*(Jvsd=>+egROv+1kw zLb7WJ+xId38=^7pl;-bBQyk>S3H+N%A|KP+zs?oV?5VKdE-2q-ob+pc$*1#Y=#u2l zA`y@)dTXFbZS#Bwk1Tn5^UezUT;j(qQB~vdI7wk>AVM>nSc?nDzhe;X0lbNj2%p+g zxF@P2E)-zneq&kTBrsg4(K5N?kDa{Ovr2H9%Q9_qaBEo_{y-d6m(|L~RXt$U`8bHa zH+`GlZICG2)Asgc{TJE~;;!dgxa454N^rl9jeOeMcH`;#5(?ydH{#@Xe%=G|1)GS8 zuj=nt#2*dU4tHMO+>veX#h>@R)vwI_CAdZ`Sp*pS%^FL+O7Up);?8Nlew4(_8$N>t zO5{%}^(w0DYO4Lw*Z69_)o-`+4FDmU0#NTrEF5zFJy>h1=X&HtVPe2|M*MV1bz)4qj>vx~)w_qM7vJuPrlW`x z(BHJ#mAl5m_H7KS-&5Jsx>}+@_@l5%9>**Gu2eHR(+GMR4Z#sal?wth>}K{7*vnC; zNIi8arnF4V2gQh7cMzj?5wS=Au2j#LDOh1P%t1oIATSm~M7TAjMyNiK-0=z4?qIgU zKa}bQC^A_d-U|D6U*NX*lTyvOKbH1VQE+5# zz5vCtPX8TLv?Uk;6-nOjiapC23sYHrIWNOucdFKh?_$&5j(TS3oCg}T7S~Qw z013-2@URt}2FaL@F-%r^_}yM1#pnAV8eB@GqrW86DIg6-ws3QW*Xss3JeC z$@416PB5lIJc_XPz0#Ba`x>e6)Gy!+A&lO(OOOgTf(vMigX)w1jfnTIknqcN@WTn}+V`oEOw z`~a1tGM^w&7fN9$RaQk&H0N4HalCkxB-6UlvZ^cX5Kb6Dw!V`nh#E8_s-^*fX_SOn zt}&M9TrY-!j;*M*Ny_K6t84izuQwT+Rt=oIWQRq-L3PUPC@5v z%PT4WQmVULG>!8<>`n?E>2W~8C^5|1VA8TIC}@B}l(kJJhZ|s3OzB7Uh@g|iL80jN8SxK)5i5+oH+cd=05XiIjL0|j2at2-mPgpPk1=tw{ zc--7870YN~Fc9{ufd)|H=666NyUzhQcQMadMcvbi8iy1yMR#RlUEW%K*$61>vwx4@!8$py98Ik}ZWzlMNTyf~Hr6sMWJFEn0D!Gkide z=o7085C#MateLmBpc^rmDIsXt3w>t<+CVs1ID{dCBGIu%hziM5P={S({8yo(7d7Hg zWZh{4w)-4QIhmLEQI1wN=%iXQN&uhd=s}!0MiDI@ul!3LSt8d1&n(kF0p;zvwQv{D zEK!2PpR*Zv1h0T%j|S+Y4jsHvN6OU-o)c{X$n3ySAf#bXtijIrT?>4NSVEn=+G>ic z;Y5S9@Mwtd8cEl?ah>r9A&uncq@E5A0g#3sRI6og4!YMOiIr&t))>b61XEL!b!Mlr zKrv)>FpSY6gL)eqv5ZV595Fb#HLu<%axZ{taFj-cPf88qbZMCnX+Zv7^45hgY?rnK z08n$EEf`<4T6{67`T;MtmPV``dW>jE5S?I0PRErUnZg2Pw~8klQ)Dn34I`gq!cu}E zoEA}P+6CKJ+3btO(Qy;yDP!#H&`dUi_D-b4VE(nG`EO7yl)cP~c zPZ4&ol6Y<#PMP`>=_SZca9vUg#I_?MBPjsPNCVbM`Om;o@Ikk9BlEyw0r@xZlQ42% zhDs!s9^>0%<>AEKLuMzZ9AKGOQ0LxECXb!;o1ZFx{I!-+@#j^-B{UJ-8HMaXJhWFA zb5tP4)C!ecruR=ub@lbJ5`z$iI>G#6eGpHL@pERaaqFe#BA!}nJ!YNtlcn}Po;v4T zX1&u#8fC)kEY1aH{_d{(uS$&=MrP zs*sIBO~exuGQT`#OCxYxKZG>5e9ze*0b3fme)J)BdYp*E|(}L z1<*_>Mu1h6a|<@?;b>T{p@mC!@2^Yo@^umJvAXGW!lR!p!~^=jOMcrR0!Hs70XOVW zsUpGIt5fEwUE(iUt4=qK)VV5jWAsO@$J*Sjly#Sy^~Gqm3RF`FVKWbb4AeZyr=s*Q zx!qGAG7P?|QWS02M$mLzCr9z~sh-gn3f3 zG1@PWunI)|WzvYeaWe->vQXM+tne{Xpu!d`UeVXCX#)Fv;db2DShx;b>6cPxNNC#Z1+lm?FF71U8p)8>+*v zy~8I;KuIFIld{p(Dc8K_^mmRNFmor!`&En-GNhi7o8+}wY2iF)&rX~Zh=dkY;Ga1ZXAWqdu7T*@Y2hBl1@Oe*_qQX9@TY0|j7AN*W&P|9Vz~b}8jcLyreC@;K zB{f{(YReBk9zW{aTlB2&okOAdtFgof@dUg%?xS*!obz!VfO}|j$iz~>lgWb zZ7}{odFAJ~5%BvF+2h0K&q3SilW;M(ZXc@QuS|U)732cLF!9^~oJTGnk~5aO`gGBn zio59r%~_jCArP1n0uIew4p@Bnd>)HpkqF736+;!=Ld(-Gs?3Y)*oXld=FvhfNFYF_ zE#k>7EH()G^Sq+mlT{~u1;AHOK>58y zpi+q8TnHXe>hq(_!^Ff-G9uT^oBg##TDC+C)b2@zosMJ;lHj9`7;RkPt!x<0eODo` zL#J5FwPVP8I)sKSiS91GoudWh{(Q%a@Z3Fcin>U2FCq}Y0-)(bV{6=|(@sPD3bOP| z%PhrkWCb`a4(^GPIsU?T2EcQ|DvG{^%xOaBolHZWCaJE^lrC9`Lj|yRN>IiZLtkbA z*!6)31ptog@t~YOzr|1{ryVYkx;4(~7qQH`n%Hr}P>>n&TTS4^cDjkTVQ(^$O?UbWFSBtk*8 zqV%ELsO0a|vS70a@CC1sC`Wm9(Hv~dHWP#yY9uL9%N|Wp&oPHkB<-kWr6w~Sv%q@E zByP4O3#c)I^ZG$2c)UY?FEogeAEuv%X^|NOvNbiNP_583X8BG_WRybOiNpSj7KXVV zR4W$N2&im<3bJk~tj&J5Q`QNh)7F}YA&755O9KO$Yg_^qU}o`k+ssk zJTB)FJPh!Mr}jGmX}k2bDrB^JB6z=I*ox=a@-o=5se(7m6>G+s=#b$#v}gzxXod>r zrL>B^6$GvFUO>x8?Nk@X#3o`zgV8=+^@8Xu=u*MX)9R@=Z97xY!;wKssl}Zs-#udT zHA3P-uxFy6-F&C63f^&qSslQ?4yMoqNXa@%QAmZd8GVM}Y$fV`=sXCrmUvMF4gNYY z`||)*rho$MSBAQte%TQ#5PKvQxX2n4>nvUp1k2+?jLxwErS*W7@rZu8q*>h`}C-E4Y zdSNG2&ezXv`XNf|jnEDRgT@o=B@FR!ZMk?~ro zp7_c#`V~VH=DW$Z80Rfp@*`W5TNa{)GlMv>nXk*8IIJX+_^43{-vND%jf(3~92Zi! z&aT$lLXzmBIjJ>{&XU6UQr&q->&bz-3AiX<`ju#!Eo^Bf*GGZ{J@epG2^G8tB_zRdkRxH|^FaCMLU z*;Q|q0ISXz`n{wDL~qE=L@Kks0GG!XAe3(A zH^|*W5Q-hqsxQ&LsOz-_p(krLhtaf5ImWrA9plRA=1^dLVZRnjMb#$3+@(XucfuvR z!WB{aE!_K1%Yr9#g)ias?CsSvRVM1)~R}qY9Yj~%lNoxp2EOA~t zx^a!f-xg6%L$K9!ket`iEw6~yuZFoBiMvsLRDOB>qcMMvAhxI=rW3Tukcf(&K(3pw zXjvFE!x7}mj)t=>6uS08$2nV#HQ(>W!Q_xHP;0EhjQqs{=+(tj}M~S$#ye@m= zw=K(llm*1)%XIfd0J>g3H*u+WU~F0)Yti-^`pHq+t@G>Vn>be$nnoP{B%&=SzG4y9 zI}bU?_0BT?y5m(SrN+rA13+ky<_2J;I34%=C)t*(Dm~5QTdvkug7C%LlsP1iOPJAj z@iyFolMJ%<8x7=0x|(rb0%?f=Gh&Qkv0rf(TXw4v(=!F(gWr>;Vd6DZG`e>!-1V_Z zRee?oaS6YZ1|?0)oX>Cdhoo}a98@<>r?snMcx0pM2j|R46*yBi8c3ArbA3b~M0t3K2zLGCd3z&3FzHPwljYAvE;N zMqLvBP22T5Ub*%!PR)F=&xUAuLjaSQJRL>op|c^4#Nu}fR`GBEW2$NAgyO1_;%P!# znh|Zw<#g%(s*`M)iKR8{m&O#WZoA#vDX*;6H_kpbo|@Ht@>1YNDqJ^<^XiD@5>CE^ zsaSC#`)^npjXzrxw-J+f6aW#bpoPL?Oa&w6fy}kf^{fV7rz2h_xNPMIat`;2;0Qv~ zHh0~0A_hzG6k|PD7I(_6Udj6BtXSGIrg9X7^wc7SLqt*F;1mU{IijBhs8J)&Z$k0? zX)x=Gx$CjMa5DIYgWz2sCGabw^PAEUL+0c^eF3Mgs+ z9$%qXqZ<45gam#r71*nZ>O#5lNoEJZe{|P8f`xK@RDCq9Y6JQ?&l`-6E0xSrb?y`$ z>AaSuH&ueSkE83hQf|!GgCPaj2ioq3X&utP>z(hHjgt{(rJBhD0y>k$sD;1x0LlV_1ma1>#rk&b1{|me} z`X5X62qQVDty>yexp&!aCI@6E{sxi^)h0<1gWDH3xX%H!Rdsg(UVweeG?fLvg_INI z9WfdlE)KJtqq>%TLYNL2npzvF_%1m5n>Yu?tNCe|)x@7q#^)%Ty96cV*Y-?pUOeK` z@up_&kA*XzW^9tf2u7qs zSFx$3V)%;&BXOTe1c3#Lhhz7F#IabfXb9bvdX&ba8u$8=l*Li+xMS0bCo;Lsx`H4= zv${<~q3%c|$=AL-$q;<$ zt}NPTj*lJl1ehh#AJUGmRsrqR=<)K@yNkj49R97iG*IY2{bFj+Bd+$$%)&>}s}d>I zr9xut8zM^r&T6i5}6-AA`GRD_yyk`|NxcL+2_v8Kw zz=uH!2GM2JuF-l58al+Hd3XHWL4({Z06;Q`%Hr6uZ{nFGkh>z;R3+htk=VLNZP{SK zjpK=Um6thVjIGF+GR6cKupQhwsfxnq+ks^{1l_SD9NT{_iY9D(8Ymn4VU9u_Bq9zC zO9G3}VdDNpLqb6i{ji;+6G91Q+z`e&3zmQ-in#DlZY+hT4X%a>VzBnaX}K&7WVa%Z z4uMnkVZww3g3qsgmU?TTW>?p?9p`Kq?_FuhfN^O$sGkJ*Q^OSSh$ahcC}%&d$0p=Q zGH%eKD)!@VMPT#gKL{V_fcDCkC%n?c?p2}#-*t}@h!G_R#53;(BR~>+9!x6k+Z02Y z*h_#4-!gNPcj$k4b>n&t+VY&Az-vHz48tIxmEQ-T)&M|(gs0aFEwICjefPs=}a zCO?k##8!1dY11wFHDs0J@y87l^>!R=95E= zUDJNDV$BbvRsVVx_(#4`pf3zSsNVc6Pz+q=kVhDu9d5qf2wCzBb6?4IoAEz3z)BxgQBB`1F;Np=jKYXMgTtPEs5JyKa~DB0*1EqlTf3hkUW(N&mVbWlV$GuWwBW@rMv9Kq=i<(Z@D#%l zKmDZfJ{~Z!?VWcXIVj^U7gh`ZMO1JlOMq1ig<%8Ode`mHB%KzDn(h=tQS5bq*~v}F zY|M!8${F#q3&SH=5yBE+LzoU)h;b^7d;N_O4G7*Ur>nq%n*hUm-CqG^$io#=xCmxF zQwoU@UGJm^q;W0{NugNXW=qK=)q;RW`Homy0ZYT@z_+a#A^=R=i?|(~5-tmf25u%& zf2?L^%GOi{XK1ZpWb+pX=Bx{s3Q4W-)Ju0Q6^m;$o~T`!Mu?M1d%m^k zzP_NvJtrnTb0``V*=QK%tRfBH0WmcoUu!4Z45OvUCpXkdEybf~8JU?%bz8>q-^>H( zSvD{@ZfnwfZVI?vt2ADu559DbBi%n?lhTe>IMqVgusMq&Kkx6 z(UO!fAn~M)4voQtw=qv?*O0{WGFxLQu_@1;xZQUe*C@_+&3QYI#IMKhlRRsiE#6{U zlChE$u!-Z-W{qKbe(TT>a>@)bkR4O*z`|sVN1`0AExVOpm_n8Y2}t!Z9QX-zTdQev znZ$z`U#(85Jw!G?f!EHWxv@u@Se)azrr3ZtSJGk^B>)NXbD0s@m8L9ck+{J*1JAOS z_h13o(6Z?ji>J3>UYX$Y+kKXcPo}z+pAuky%vhW&UK&k!w2)G_zH1J3q7#6(j~ASI z*92~vdj05hC))Wvm>2Y%9|`;B>KKUSjFd+DvON0!KpX1r2loEnj*Ey@3dIYi=#4>a zgFdt01@1k5#~gp0wpw%A-@{y0!DGcI_K6QVV16}JGrz=2y_X;za%(>sKc$~=g7_*E zG(Wt#qUg7#(iNhF9TI+doj6x=pvc!XKY-eWOgJ&0x_*sHyGZ5eKD0y-L35~t&b;IR z!KeI%j3k5Mu%9w$X9jGSgsLMM`8e|5RNT71?0mlzaSWpMWZT;O*7>rBPw5$5MfZr- z;IBT5sB^RI2lu--e#1k-R|#&9Lh>ImzQWNj=fFMte98Ay&L6JxfAk!CE!@n;{|CI* zd-^Ilz{gbPyKRHEmU+nUrOE#SuYGe%{*zNnhg14mzB}MW!6r_~T}gJ3Iw=7QQ|-r# z+TVX(0Q&=d?{p!P6pyOb76P3lA%8aM^={)~_!Aus@M^6VE8$kw+1ez_@(%+(K!eEGv@?um!AOba9xI7~vgTC`sir zV|0!bU9Sfad%mY?bV+ETHAnF;24AHxcl|IXhcJ$quwH;SJtM|>1v;IejJJ=yk53qt zO6c>-@Nzlb3_)iL49AlJXZdT~~ymA&A#EQgpbU%a!r)Xcd;rN20uU907b(w!;y^^JLJC?Wb zRuu;xhTOG8yIDowzK!vMN2{|%#gE0rUV%$)pyM~7v0H(sXmYLDrbIvX7bbt*k%stT zBvy=PF=d>Q1L&2i6b|?UN(>SCamz+Y?kzK#vgvCdGsI* zXO3Z<6rp-25xgx)TDEZpgrVQVK%I&L-%jMuIuh?Ilf4>oz{PQEExJcPdE{=RUb4C2 z7!mX^MniRC+8R>yqhnwv(I1X^`Nz<4)l97Bg=-0l(T_@$&&j|Hq*o~2nz~m zUJ3nn9C_iJ^rADOOqI5-9Co`JC+(OmqZT)>k`=B7uO7kP`1ww|SoLKU9`ZzT-H?~^ zG{t}o{fF55=(W_JJ~{3&TGX+b3JCWswcwr04>_^Xbg{Wur>T+Sxpf>Qb{xt-*i#5F zlRnA{0`^VcLo&)1Eeh8nN!Rmgva%&&VPQFWY>vqxRr$v!xznflxH=g*%bB4d$zQ|Z zv?kH9=PK{tyUY3}?yMJ(VRCc-7Q1RM2&v3GRY^Q|OkBFl{{bn)Vi4M?BxPA~mot*q zS4|&}P4cTsLbaFTQ!vF%trLAZLN^mvx~oJWC=2n<5Q|8z91L_H-GXCntEz~XN@J;X z@K>?NIYd>tdp5jP&r^yW(Sf%_hk(Qf{+yeYVtCbu%UgtyddbAD!p$iN#0dOQ5(2EE z*Vi@k&B=%OdBQsLS3)DD{1KuYURn+U-|kAqAn79NWd;uzIz!a8L~QDBqGhC^Ds4jTphxSHyjn@RYid|Wx;0^Z+0Qi{5VN< z>9e40K}e3+YQ6C^8~fNIAe2t!tn_XzPK&ctmpa)*EnhM=9qv>rb6-)!S$(N0?ZyER zi>O9ba02WctE(me3% z0%}VpYNsF2@eum+*maA!!b?td^BY3Owsm;BX&*VO6uRQ7RpTICg%kFAHpitO{PVl+ zBWKP&{n#LSHw2<1j**r~Jnl^R`n>+sB!Z{1Vxgn{E&%=EChWp7<(NeDQ6e0SQ;&Dv zV2{ks_C`z?VW2-WP{cRlUwOWAte4p!XQn2o94{D1D+XFA<95;%o}x1b;vXAXQV4`l zaWxBRP~@pUao3vpiJI34X>14^pFeTe%qT}VT9lr+Yw;~=H7y#GEn4R-uW(v*xLQ$q zTp7P)P1&)VuQ-dxDj4MvO)d=evDr-)@j7IpWnaka9W`2=CF6IpgWcj^jZ(C$TsB+R z;EuHWZXtY6M%#j)wnsEn-gLMAjZQ)Tg%cN^(a*+l>5Fl#QV&)Oc^B>;(%SsNxwB>U z(?7N3rcPJxaT_&3{{TRp6synLFm>T1wfb+bn-YCY;=0m5o$|+>QY+|-rd<@LFDkzz z)IRf>6(L|9vgz&i&L-@c!%oYN@99vnr|XDDlZ@H5;&jU?0-8W@)4&VQUbI{G{SJhF{VQZe__fLa`bkaM%AjxZ|_pV+))xNq|hmO0bg{choKvM1hk zWlV16)h>jTMgmtDy=hNX_kE8N4BU(f<+kth02&3P8xFkBT5n@&1+X<(yE>?~K{SW+ zjKG@#HRJGvd#8j1QiDpFeiP-q6O95u;C;ZBuf0bUmCqm+Hsey7kdSlp5koPneu zrEc+ia>1YRzCcA7EvG_7#P8B4C*CWF_q5^=JFUk0s5dBCC~zk20vO1{qfCo*eOa`< zAhi(ukq$Ye{7OooOXQNheA!W>OTsX44Quv6bYyK z_!X3;K=0zOjXkD7=!$eJlEAM-<_T);>zN>%_jbQ%AUPQse`;U1?{hNY%?VBWlaD#h zH}yU9sNi%E^%-6y9#kJpu>c}V9!Rhq(j5xsm_qmm2~ymPEd@~@pOtIMM$HXUXN0Mm zoX*T$v(|dY8@34Q>@R;pP6{+KYLnqboNrja%#_*tT_#;2qa&@KcufGzc3 zhRKf}wy?WuZN#he^m+9LG&k@)Yj_s-G^7#r2>Bw!A`N^UJ}IoX@mK>9~VQXgC&(&0U_a<;&b39;biZ6ezV7{|OLPXV4AkVc}bPV!~__$?9T^ zPp1yzeQp{@>1*TGfz^?&{^`acvI|FXhDPSH2Bf;{cmU%=p0zC=V z`EEDV8;=;B=NA#;ND%-bjORSJijPC!gjPkOOEr{z(yc>sASyz@lVg=6+u)-< z&%%*3)b8CsP}_hh!Rk=9-^pEzfr|-<4Jc?$?$LWtcJ>V9VQELbqO#FA0BK(9Sj&rB*fQ%I0u-}RRi;^&!5W(s>lRC&_bI`E+GXlx zhqb=r`E<=PZI$ttK;p|Q*r5Rl?f%WDpT~!gXi~|G>#8&Mt&hwK6a|JYtOgiJA&S>5 zH~VULtgq%1GroJcr1L7*_B z2g;egCZR700V1Z?R1s^cF@0;iEbjN9a{0#>{7}$emFgdVZ{LLPLU2oC6B4{Hk5L@d zLQsmBe~bUX7a{t4Gp^njuQWX`|Gc$DUA}_oU7kWyplTpRw%lrafH)KPL^#@-FB8*C zk3T;6BY$pP2)5?hOa=31*n~L?bZb_)L~FJ@ySMqox#`j;kAx)Z-ZX#tE+)lWxOhHG zN0-7^`Rn0@MV!U%LUK{uSAso;2dtTXu%zCSNcui54h^3lXRPB-ierRv#&u4gwK zOO?76x^+&soGZ1a?VjJxZn@SPtVh#$oPTj|$jd`=OUhP^HvYGzx*h*ZSX!~HZP@Wl zpL1x%fwjP8gM*FScdz(!URme8eSznh|89CDbpU%Y zIj~_bGhI;)5MwKW0F>eB$EkweHn9WYpT8OJSA@c<_bX8s;xv^;`PGp!s#zPGHIbi9 zUl+G-1aN(_t8!#P^VeT@;4>v3FhNJdl|2Grm+HBE2o%()2z5azKidtfL({8!vm}c1 zEzpQ?tuTT}Z89FZ@*#?+9p5hSQ&(r#AKsoT`Q;%r*Mdv-7<2qD!;M(Xm&4DM0wk)f z&{YgMs~2f&8_0@?pDCq5DsuO$L6Z{=Jygy;0;58ma9F+lhT|c?U-c(4Yv>=sB8+QQ z8NpV$>~G2__(iRmftyYEI+uWH4`+sJRmyut5$Buss2W$V@Zz239xMmEsSW7kq{+Jg zgT(pYIP*qSB0bNfoB8VmOrkab7$l+_*O(Plm|#)nZFd|&W-8q z6!^mP3*@ag?YRzt0c7LL4*0tIVttxotGj5xiEV)PXG3)K&yCo=(1hV>%y&d%OR=yy zzA-Iete!Q_Swu+!<3^2lL>ETONZTiNbuO616bq{Ri+tu?qb_x2X#>970 z`asc40M+okrfGLf92h1?c3kj5I|=u@$s8UC|ho)vA54hQeDOdRb+l9 zX7w<$cBhvG6d^s5YC_?}2pD++rjr~x4DC}CD-FD!Mk(-c9zi*Ym~XOg%QxYzq=bCD z9TfGfVc~Q0(XhhQv&)fU6-@WfrmKzd8y3=|Pp<5FG+;!-v4q7l5|*LS;A0ptT5WE! zHXb?+db8o4%-^z1Ec|FnlIMnmfva55L z^q9Y(m5^IX88YIOe`Xrov@@7JW=U{~O*kMw;ZQhA(TjYcWviZEy;O#;M6977$}y?P z%A3hl{V@W`30jt|!%hh`f18dCFjoE)XBXOkQw@YL8gk>uRlN)5GWQ6BZ{IU!V6Ew6 z5iyh>#(Jhacg=i0X*YPh=~Z!d5hfMQsjq{_;d+ulmq`6=bzHZtiS6Ec@@VM!3t|;n zX~Be+1_`ZEd|g@188x69{sa%S|5laIVd- z#O)m;(!8GOHJgWm?VU5hyxt{TTc}gr_O6v)UZ3XwSgPB*xBv3`4RLK>IUTiEYV-In z)@@qP~tUKQ4Z{p<;N$FmnZr^u(ilDWieEY8{J`qqgo6A z0ntheO`Zb0N{;$*>@~ZlT!+&+&Uz$UL*Y+iC|+34#sdB>Er`GJ*oq{OH`FhqH19Ef zzV&>>TFRQs00B5ELRMRN!2sm4TAbPAx*w$qL6k@?hk%8ZN_0Vz?36yYiv15{BZXqL zVvesqKroW!Q+xYaUHRT_tPmNC30Eb+Jm%WhFkkrTUpB02g^aH#;<+%m%@tv+by-A% zU>d2TP6jfr=)QF=fBjfmp~E`55ZNo_pRl(fCD0;sb%A|MM3_bI;{pG)GRVjBlzm)w zkz=jAsbZSt6(7M73ax&)t5x(&i=pTA=ZAq0!uVn^Gn0noIZ;mei}>W8FGyb z&xL|}vEU!m*11l?RkLwv=2X%0b5tXEM5qXQ_1frKgePn|Xyu*TZ2m+r)PBl?P_guV z?lp2$4+2FP(UOjo>;-+T(ChoD47q{)q@3;v_A?aD>>(kM)}n_J8P~QfeC9AewEDa? z%q1?LX|gE-BD6f=*cDiHwe%=F?F*|rT|mP&Kh?paSLD{sfA06u;d&rCd9Y3DrX-nk zcFXjLNPK?Q+F5zp=~f3vYv(h?j$n0auQQ}|*FHkk562L+)hElI!#e}K-(vsCXz6cz zLYL!K3jpq8qH-!s)V^;a;kW=kb{N18m}zA&pjHTyfofia#&Hv5@9s!RuVb`r{-;Y> zsoDTZ1L6X(h|xw<=~}l|GctFFYH3Ko1?4&jy1K2O>;yn>Q(gh}U%fGaaB=P(zbpX&z_huhM%k7} zqP#;~iOO99%Z=_xF#6+wedSn(!5rnk*M(@{fFju`79d95SGIN82V1h(r?(Euz(CHZ z?qb!1wru6GjifZ>t)&6L3JIVH0PZdy_dG$wb^xj3=IKHO9_)fD6{K&1$0-|;vv;_O zG7|R7&pgO{1E5bOL$5Kxcj+V*E864e0uy!?3uELl{A1+LRlLN_4<%)~P1HYwmOKk! zI3t76VA=$8|aulkVM+sIcE+og9XGlB%# z)iMG=lS&RZKsO0C0nKCY1=JgxsAZLzd>YEX8?&T}Ml_bSIF28kerB=D1<&XRPcWzvtgF z@hP`&0y-_j9ZXZ31wz4eNN}~L0C!P;Q0|X4KwGM63|#e!c2q{4td9u29j}a@Cx1U< zYDpiTB#xLQn7Nm%2#aVb<9(i>V)?$i)lz1D>=NP;x?}%_&F2%)jDKaw{h0KI+=U3( z&amU(V}hnV!kf<~C_6 zl?SPZV&OZ)v{lBFuLpNhAobC|JN(q3|8mdi8ZW<;+MdBiEkMah+eVM&Hn@T5~tc(gyjAsdJhkiwDI zR+TAQsaIN+H^Wh|QdO|cF*>Ylzsphhi(^zgs}QpqQ4Ms~q@x|HOnSS5;N>jI#dsyc zS*l!31yGTkqwsq-|4+5L{2eFdaB77pL*_zq#0VGJm_pOS<(S1;Gs|O z1Kg?c_=)s1vZ$oKagomG&SvCbzBMe!;2P|LS6xKX>r@Xg4kIZCw@V$^0&1!~&uvRf zUS;CpdT>_(&TcNUcSubKvo1oYEP;pl6)UfGzXR}X6WLGYCOu!bRJxEPr4>Y^-L}e3 zX00rFgCA0l6dZRFma`p3*i~Cc9A+RC_ZOrd@%3S-r16*ELS5rzptP|tj*D?SEWD){ zhi~kju1Qibj$odO+pyI*FuSO1dQuGCsRFR}Bl$Lym|{-4oO!es@sSl>(ff-EZJynS z?0fOrxZ(LprRk1k*fibuSmsZ;-ecMl?{H2oCdUctEf=S?wHnIE(0Jt01lUdFmH-%p z$HkeaxdyxC-ve7sc{wM)P=d08V{?8b#Upv)ZLAk}vx zvgRkF*8JtnlE9eE!tWv)v-#!yo&dzin$46M~MtODXYk%AjF=1p~ z`%#a<&BLQ8aOw=Vx{4U&>euxkS8*VSzVebT8D<1(_{$TDqJ24hl{Cx)Q8-*Z&39x}im z@ewqo!P9ph;cpB61-x5{{dCGIB*8^7zRM`7F@$kV^uknKqDP2i(yJqg8DfkL{yP9N zzbrY)J?ACHPZ&#IXfVUPmb2jAX1r;8IXhZijZ@LANU~b&?Iz>_`5i@gW#yf%8H?^b zu0&wo0bhV@CLc@}EAat9T}kVq954P|8Nb#S*IUxe6XeKi67v;g%-7MfnN&ozyhB5R zLR?p@37v>r*TYmF@LO-McEJ^>AAlHPx^lONVq{E&d(y6KR{57LS#Nw-7X~uJHf%#? z$kdR4ur^w&=_)yXkC3Fw8mL9~eDIcM?A9!g@t+4j@5p=BDUmmzy@VnNvKB(&+erS* zhx9`u^39dA;#bobzg*Q6hj=T8s1Ga&(7hC2kKi|ppJto1cMx862a3(wDVR8l-IN5VKi?8?91`{}Z1-m1G*e?>jUOzl zmJ7mH4J;804$t10iuYedwSNdVs(-08|6L3gV&un%VUN`jYD8fza$@I_DFv21{D5LM;wC#&_)9z|Sn8p?2 zX%?M9RPpSu^Yhod|9yDbpS$J|cHeB(nez-@Yna1vWNCBXh=0u^@oh=G;CX@3H?I{$ zRpux0AI~-Zy(&QYhfvAZ^T5*IIcBzZ8o$`Q7EIGY>na&tC0#ji*Ih&l^k>WVEaM9c zm6E8aSWPsWD0w_Arbm%&1&BORDXagu&-D;ID_2Wl^GWT0u&$7(3pZlzLX?7YUwxCn zWNo<-49HmSYEYo~_cZBJe*fn}CEs$!?RUH2Ow!vB&m02D))#l^#KPIN{$|@(3Zp5; zdYV!O-5o~a*l+?5%!cQRstiG1llj*llO%g2DGGyW4tnmHVKrt^zn)9q{~GS@7s_7A zcwI*DdjaUK`1Pi%d9t6c$77nulH;MsYoz{MTtKMj^L|zhS6i)H&xo&-xP{c1k>Qas z->@&85Bzs5g?mG^)MPiAEB&K5g(9WvUUNj}lo9DPNOkgu)a>t`*%C#uJg-13>74ZY zp!S(rw%!Fk=|wSA@8S#TC6(T#SJKNyy~`HTEB3uBZqlp1y{jS8Ytg-H$+ZAX*8ossAC`yT$t%r20u z47-f8{Ju5v5LQ}2^{IcZu~$IdLImv-Lo!KFKe$qiz4Vn0Z|-INNbY9_c}~>N5}${X z0rEaKMM~tF5{hZ~rj)tntL9HAm^)fEA)Khpi7Ab>y8KmO#w6A81OA1_SDZ7L99FoU zBy)^pIsf5787}Agnp`?@*UFP>YkypX^22sd0E8(ebUM5IO=awF!Y#p<$dPdO zdhne_h2ww#`yCipHu@6=FWKF@(imf#y_~4D8F!pE)DK1&y2=fQlQt-tz}v$3=bF*n z0i)~x(E@fzN%lBXLXt*kz&NpRDMd^xWy{bLX=I4X&(jz|BKWXpCX96DXpH&R0TddP z>*dC@MY>*Y)` z3haywb$22JdK}lUGFb6z&V=Scu#c7QoV?wfl5F7HT?fr*9B>LOk->Tph~~yKl7XWv z&-Mza#;-al_K}LsGSl!)?At8UcjIrfWwa_(<-nSw#*A=>6GC#a80|a;jBh{Vz*n#w ze1V7@`?(i?QX1$?3r|P@ejhp9AvRbJER|>x0Z{;lI0wp)Kw6Q2lM+vIM5RmyIVPq! zO_7d0L<6uC<{OuQ6-thOvS5STMVN9{Q#AG2vX=SICXZDoVBERB?;o~H!yta(Av=?K z(~4rTPR?K+A*%QWnwAK;eu^!Cr?0W`2``~aB*koNOk)y1H^fPDaAeJ~FBRZz$u2~z zj%4o@zmV5XwSA$0&tc*)|0S+4r#K3Y%1!EO=!|XRYN*m-!flykWTx)@-C&5;kga5d zeOZjrNEd?ZImVc*={b)0XtHWbrcC4NQuYt@1|Oph>l=9y9W=BhGis>75L0%J($nBB zJVp;w+X>+L7oZIp&I1Bi7PCq(y>URQ!4B^gEdSaX6_*QP0u1WJZh|)GzP?wN8?jVO zLT&a$>MJ&6t}JCw6ekWJ1yH_m=~RtO%YPsW$4HN zMOnrXq3Z99%BJJYkW9~;0>3u`G&_dHZ;reIUUw<&eFt84y{V_Pwoe5(ch?qwK6sFk zu$nBe5PXg1*DINIY1UgKzevbiSYZ!*yi?o2BufhZPYXEs_jZj3c{u10nfmda%-+_l zXv!f(&%2Nyt~z4_g9iQRoHfu(^Ywx(IR^R};U1(qqymyr0)S`zOFVNlj*kXn$yfFH zqv@eQvI>ML!r2jt$~zMS-XkQ`a0I~zR^vtR4P$a@MoO?S6hG%*1=pe${4l^G2~15!sOYS<_9?M_8MBGeO(R>ZkPJr| z;EpsBW^^bh;lN`kdnpsdJ=85|Co}@Z_anpW1b{}R%QN{0tt_56lG8TYcsFARDmgc! zfwlivzbqPR_~PhmHqHkOky8*g8}%Fj!+{~a;%g%Pi`W7=LB}@(Fny0O5TQ;m3t);m z$+N2%s0F~KQHt0nvBOkLPO0W9F-^cow&c`Qg=Sz(mI{be0V)toFTuOaMJbMoftyD} zKP^i|{#(E7m||$Y$(rz)mc#1>^W2R$GYdwGf{OP&1_kr4Ok18PlQ_LY8CK@zE|`t{ z%gdDb6>Cv)b_P80vlyPjIY3$hC{lKK(}EH~fam%(%PMqV3Z*qXo#5nMLi4Q>4^9Mr3>9{hNemiUw@X;aoSv&~?(_G#&QgZStm@^;ES4lxB zM2K+9R!J6^Uq#ugJZ*4`8|rP;`ip>%L70tsrE5hMyk8tmR^x1e^JQ%!i>+H9Jaxe_ zc>8=FoMtxlbuB`^0-?%kj~(B>LV-*RI&{~r=FaUYM-fZPaCC89mf&#W#K7q&63KE> zAQitp6Ex1cTG~`Ye)^;=uN*t27Ssjq;OyK@7!iO70UBgF7;NN%Ks?9MWx}~62F_2= zUzzj9=nX>f1rnu2$pH|dra91Kl)*-D;;Q2i|KejMlr+f>m)I193ZNv^vu2D&x3S;@ z-X&}5?*WPVtsDIZ`!HnEEGo5k$O&%P#mFy$LU0eDIR0ajvMLMSDJ@J2Y~!f#u(W5R zwybWEVMbblnjBy?Y<0&dMF>`U@a|il{$WBLL(FV8$3qSks!7w=*XffbcD!!S#}z*{ z7yL-DUzI8Ab+;pyhLf(t=9%WwNm?@Qf*j&eVf&o%hEa%qpo1z-QJGrj8T>loRMR%bAv`bc1G#8;$6VR{lwWY=a@7$Q=JBKd3#mC82Qk*7Zc?xkG?6<`+ z3@}?6=51?C-kLA_pt(NwuC2Kc@0){0;KtIYw$}Q@bUmBEFPq=n+WYaoyT=D^9{g|p z@_$;u7w_7;ckq7jIGS0`!hNelTnWtoAh(m(Z|P1*f532pc6-x=EnM^*>sY0}Cek&F zvA#Zusu@{`Rle(^{}_upMiqXffv{Inz? zt24vnfYQzn?++siW=&^1Mppqp(;aE|9gXh4Y;XUnoDBZ%jRFCf-6L;LN^n(#J_DdI z3@lq5Y~l}CyQ^MzxQigZM0E~v(!<|F&Gw#PkI@~i&`3hV?MwKpAfa{}KQg}$jC-;@ zCzAb5*rIIA3S-ZaWdnE$9Uthm>OlqO7QZ*oKm4A6x(lpL#?UNwP<8;%E|X`64L{4? zRY0QiQuH=&*cFT7U!*O)()EBGj> zQj7hbC;Rdbw`egIfWu!DvfavBn-zX6W7h=z=#JqZ?N8Z)KcE0Jn->P2s4&>FeMhi{ zDC(hE!HgS1p56KTDUf5W`IjTeZqcx*WBkhb*{THs&l_HPOf|OE#w)g4Hyo zxCO)61$-=q$Rtwgi%V+&L!>@j*lgYsAbGsQXw`?q43&!`r*<0>q}aWuCHM$ zRFz>s9&OyA6o=w$0AN#~aa9Iz+~Bnzhr6-`s!(9ovk^CU1azE)eH0CUA?Dbi8XwJ` zFfk6$ZvSu>67 zF=81$LqX>72M&Tn*fRAQtmI3*bp6>xDqh|T1%GtcTwx=**u^L7q_l|1de8%ode9K~ z`ncaGd5kCjbVzed`PE>w>N z3c$TAV!%dgj!yk-z>zb~*saQm`&LYD0g$d__yA*>$a`O6Ad!9J>ynH~~>o6Afd9R1{|};Wr!k zUUZPJJT=@#Ol~5@ckvnP`*ak4n)JPBA-@THxW=w1Oc);D9}wT&;nePzR~zkJP2nva z6W*5-KZ>0_d7roFRGQ^fx7y{Hh(LGB<;9T&C_-`Z_u0>(#g@5=DSe z4Vng#RW^`^(7Vndo!g{F@;-e!AWl89M)q7%Dz-)WyjjDnj^w-r_3D{Lo@o%LH>iz> zEg}tSW`H5;!^notV6K*#`aY9NL&=%}-?xikt|^5i^rbH3<+iV}L3vhdCn<||D&#C1 z#|+U$njA1z88F!pa^4VTmaXmF5&g&XCx7mAsT%FDXfku_Y#MP`wi-Gn|0yygBVH|C ziJjn54r^EOgg;(?4qq8Wmv2U>(vS!~D$X<^d=9f5LDuB|DYm<^JQ3>t0|7<5qc2jE z4c&Jy<$4F-)o!3AEKv8%R_BjS_RN^#*TN}dxOx}6b)pvyNyu=`b;y5sb92dJf4pQ; zZ=s;M>GcpOB+jz@sQa<&Yp$)8MXH|HrAeRv6;rb<;C5XGweuzTZ(9FfYhr*|2S#4@ zIR!G*JsInw5;E0*VuvrCBMB~~Uv?I%%;BQJ=mE z8&F%Rw7Z063bI-K6454Li4U7hzJhQeug{$#DdYsU6&zNb#w!nlpzN-uo_iC!3Q4+7m|?Ge2-=XAm=2nzOgu zDQi<$?H6Icre^q-=H9r9H#Qjup_kJe1YKD<1CSUzFcv|w5G zV%hBPvX1()jn>L*gCu8jf{$(4{&`E7&WH!_CvBe9(D%nU)eq8fCcw6&$f+uq?cmdda*gc)&YjYD@uco#p&({)pwzsBdzG`hR zByOL6<9a`2C|vG`g0ElpE+qww`NSlnz%);0kg@6B(c-#o6yEOtV(+d0s%+P-?^$#= zl9O(vOTbAtQc@C=4gmoHQ9&o&ozmUiAl)I-f^;`Xix|A9cdfPVwb$DF+57!G`+e`f z;QDEt#~8;suJfyFN{$T22$STOuAlM)yu(<`L0_E0d^@F2xlEwC0_ZILjKCSz=zpkE zajMe)DQ}75#e9a!s`rBxrtsCoj%qzcmUWVe3f&2Bj?h*zHM1S-J9&knhs1_&lD?!ac*e7Ab_7x9iDRLy3UP=&av1G)C_Mt zSez9e0K>h9ilsMf$~I@9m>-It==Dv0=IC!`DU>^0@o!q+;BR;K+){7de2KmNHbY>s za(Jn9V$@_iV0cX^ZCfC1ZBAvvi*qN&paaHN%YCR=*w`=o@L83*bTeSXh!X4d!OGi%3cFR$@I%$NA23Fa z8tg`0R4K>yj?flV8W<;*!jE034!UQLC_fw<(e6^;KB0TWprCld6mjy6`-o-agyZh5 z%Ka1W+o!zuPWeaVFYQi+m&R!TKj>#*00_X20f61`uuHzfb2Fg7Q?Tg(BQEw!?qwf- zP_WgsNXa7lbDRh4MAAnKTog<7%V$d5h7O*!EmycJb0&{$*CZ9{zFspM>Ws6T>qaXpsq64f-oGy8>|O6jS6Yvwp&J`zy2m5uTenl)&`| z3ihAEb8UjWRkIaS6>E#8igl}P7Y1vKr_148!IVmM-{H9ve@4OHBcxesL;MEMC15jp zWQ?O6BxU?kFRa>qo!SAXG zs4`k!fBdlg=kVOSDn3`2r+Z5yZEe@r09IPV-yzt)!*fm8)Ksij{75YeZYbCeLhzpy z><|z6)gb1)g4JO5AMo5>=08%fMK8A3B5Yrwu189@M#G}y84K5=mA_N4GYgS#DA*!& z43BlR3mHg=9Dal6ragiEDLl6sHE8Q6JQs08Kg;kXw%xv=U>9v?g?i_1X-5dK?&Q3H z%kAXW)UH_NB)Tb*fYSVvdd()Bn09}{b4%)W{|27RYNc1!e6hPno%fCPpTl!&ep0Zr z90z}c=PKF6Z{`&{2x64%9lk#5#b7EpdH3)`%jIVAht}UI*boxCqYhN28wxh2;Qmn; z?oSGKGhP$%KTxopxk=N1P_Vy5fjR$F;3sUx3)(dDsj+AkG^}2caNTl9EBoe=6z1iF~zRC9MdA|67tCsxSY0N&gKGo5v(; zEV!|HYa~OedV(d1WoNuVv-np@>sZpib_+wPd%U+e{JQ?bQo9cZwQ6(2A0$1R{m;Sn zEvc%%@UYA6pl!LErxCkt)EVC;{eBc>`FF5=#)}k=?PVWaS>_dALhauq{U>1iYtr`B z5UyV&oo$V^$gCYM@?FwvlzDU-i%i4>3w-Bcdv{p>Yf*_b@j zZ(#e8*X_V7S^M)T-5+54UnK1&EfQgW@!mQ=O!s}e%+DeHgK+H@EqPaBl|u zn;{MP*F$>ezdWP?|ARwX+Z^8D{og#KS ze?6r6e-7zXaxK z?Dm+yDOvzc-%nMRg@IR%Rc9ks*Vf76r=o8N_m=LMp*EZUIHU)L5N?}=e>S8G^kC1X zwzDE-$xz**wG|&kJzuri$@7qC-^sT@g)M+G;%)zQNIRp>e^)f9)9_bCKiseE|5eey z3;OzINZ$$0n|1q@aG&R(aM;)v7j)RPU-x53vwdhj`*(&k=C&uk&Oa!cXEWUHWPmw; zJ_^KIzkf2s_4|;XzOa5P`f(nw{_Vj&Z+sfIAx@91oVUxkvf#nlgc^pv^Q1Sb{l;S? z00NNv1_;0D@2<}pumUKS5z~fNDu5x01kXC4;mek~$L7fg=aa2bVo&DWx?1KJp66o$ zz>hGfgdXdCq!a`MJa~0E=l(HIaBf&E{9?&j^V^emzQ%__Ye~1Q8pW1U^u!>`nM^u@ z>&ZUhwR363X~GLBB#Y112E$r~4*R1x0DI}D;Rf&8`WBx90GN?iO8~w{B2ylK1wGVX zY(MfJ+`^6Rr}@qH{|`ftSs+Pt+^HFvS=l+cdHDr}MgLQ_pF+MOqr(UF|HSq)DFDQM z&?$op00@w@4p3#V=8qoXPi%iJt;$ec>0G_z+F+_uec8fm_tV{lf8`Mpc^@vm`RNft zs8pJ2b|wmZI9sX(e%k)U`ezsKX8-6Bn1*c{j%iCHezE=kkw=&)HvYvU45i;|YyJB9 z^0d6G^oQ+7W`?WcV9pS{JfnnXTqAJVzk7r{P52)?0tRE>%D;7@2oS;|V8|@Lc!cVw zf#wExId5#g+F~CpR!iGvBTm=yhevo75^dzq@{30pWG0rv)M{@ z|LsJ{P)574{j)iinSoV8R#~9}`dHrKvNyIrR@-(b_r@dG+=Dype)kAhvN2h|pD5AQ z*2NXQta~Lj?`-!<8~)xS{OO5e|MpgnQSm|D{BI}9di=xRJp$+5)K<3JtY84@PV=AJ z{{2x9`X6lnKb$E2^a(#slpnVLZ%>r1lGB?L<-12xN-t*Z>JKjF93S|)%)3n6e_V*ONH+Xc;(sN3=}Y>54Y!hPZ%jijuNu#H)8MRb@|$Vce2VhtrU4`JpO^+~ zU3cdnrr`?ZhiM@95VzgQbEWxi8bk#spZpWkQ0yGP@ZB_gld%1dO+&?vX<+-KX^1nr zF%8>p)v*7pX<)CU+f@BWiPvcV*!RkGM6eZ}5 z<;N9&n1+9l`1$l(Y!!o_B8L2x>i@W?`zzH$h^?2sP#FvUO7%0AKPLA7-c%0;Kz?1l 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 z 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�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