From b8ff8fb596e12e906d5551563264bf6854c2808d Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 20:08:10 +0100 Subject: [PATCH 01/82] Remove DS_Store --- ._.DS_Store | Bin 82 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 ._.DS_Store diff --git a/._.DS_Store b/._.DS_Store deleted file mode 100644 index 460d887a2e21de5e7ccf222b0fdc4fbe43f67e75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82 ucmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}u>uf-_(4Dn2M%x+Dgyuy>I7i` From 2c017fd4841ca02f20302e3f1154e2f033bde023 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 21:04:32 +0100 Subject: [PATCH 02/82] Run 2to3 and manually fix @apply decorators --- chiplotle/core/cfg/initialize_files.py | 4 +- chiplotle/core/cfg/read_config_file.py | 2 +- chiplotle/core/devscripts/replace_in_files.py | 16 +-- .../core/imports/get_functions_in_module.py | 2 +- .../imports/remove_modules_from_namespace.py | 2 +- chiplotle/core/visitor.py | 4 +- chiplotle/documentation/conf.py | 8 +- chiplotle/documentation/install.rst | 1 - chiplotle/examples/abstract_masterpiece.py | 20 ++-- .../examples/abstract_masterpiece_file.py | 28 ++--- .../examples/abstract_masterpiece_virtual.py | 20 ++-- chiplotle/examples/importing_an_hpgl_file.py | 22 ++-- chiplotle/examples/liveplot_data-to-path.py | 2 +- chiplotle/geometry/core/__init__.py | 8 +- chiplotle/geometry/core/affixformatvisitor.py | 2 +- chiplotle/geometry/core/coordinate.py | 24 ++--- chiplotle/geometry/core/coordinatearray.py | 8 +- chiplotle/geometry/core/hpglformatvisitor.py | 2 +- chiplotle/geometry/core/polygon.py | 4 +- .../geometry/core/test/test_layersvisitor.py | 8 +- chiplotle/geometry/core/transformlock.py | 2 +- chiplotle/geometry/shapes/cross.py | 2 +- chiplotle/geometry/shapes/grid.py | 2 +- chiplotle/geometry/shapes/isosceles.py | 2 +- chiplotle/geometry/shapes/line.py | 2 +- .../geometry/shapes/path_interpolated.py | 2 +- chiplotle/geometry/shapes/rectangle.py | 2 +- chiplotle/geometry/transforms/scale.py | 2 +- .../geometry/transforms/transformvisitor.py | 2 +- chiplotle/hpgl/abstract/arc.py | 2 +- chiplotle/hpgl/abstract/hpgl.py | 2 +- chiplotle/hpgl/abstract/penplot.py | 6 +- chiplotle/hpgl/abstract/positional.py | 7 +- chiplotle/hpgl/abstract/twopoint.py | 4 +- chiplotle/hpgl/commands.py | 14 +-- chiplotle/hpgl/formatters/pen.py | 2 +- chiplotle/hpgl/label.py | 4 +- chiplotle/plotters/__init__.py | 24 ++--- chiplotle/plotters/baseplotter.py | 4 +- chiplotle/plotters/drawingplotter.py | 14 +-- .../interactive/interactive_commands.py | 102 +++++++++--------- chiplotle/scripts/envelope.py | 12 +-- .../scripts/find_hpgl_file_dimensions.py | 8 +- chiplotle/scripts/plot_hpgl_file.py | 2 +- chiplotle/scripts/plot_hpgl_file_max_size.py | 18 ++-- chiplotle/scripts/plot_hpgl_file_virtual.py | 2 +- chiplotle/scripts/typewriter.py | 12 +-- chiplotle/scripts/view_hpgl_file.py | 2 +- .../geometrytools/get_line_intersection.py | 2 +- .../split_coordinatearray_proportionally.py | 4 +- .../split_vector_equidistantly.py | 6 +- .../tools/hpgltools/get_all_coordinates.py | 2 +- .../tools/hpgltools/inflate_hpgl_string.py | 2 +- chiplotle/tools/hpgltools/scale.py | 2 +- .../hpgltools/test/test_parse_hpgl_string.py | 2 +- .../test/test_rotate_hpglprimitives.py | 2 +- chiplotle/tools/io/export.py | 2 +- .../flat_list_to_dovetail_pairs.py | 2 +- chiplotle/tools/logtools/apply_logger.py | 2 +- chiplotle/tools/mathtools/factors.py | 2 +- chiplotle/tools/mathtools/xy_to_polar.py | 2 +- .../plottertools/_instantiate_plotter.py | 10 +- .../plottertools/instantiate_plotters.py | 2 +- .../instantiate_virtual_plotter.py | 8 +- .../interactive_choose_plotter.py | 8 +- .../plottertools/interactive_plot_layers.py | 10 +- .../search_and_instantiate_plotters.py | 20 ++-- .../serialtools/interactive_open_serial.py | 14 +-- .../serialtools/scan_serial_ports_windows.py | 2 +- .../tools/serialtools/virtual_serial_port.py | 2 +- .../tools/serialtools/what_plotter_in_port.py | 2 +- 71 files changed, 278 insertions(+), 278 deletions(-) delete mode 120000 chiplotle/documentation/install.rst diff --git a/chiplotle/core/cfg/initialize_files.py b/chiplotle/core/cfg/initialize_files.py index 3839edb..58c054b 100644 --- a/chiplotle/core/cfg/initialize_files.py +++ b/chiplotle/core/cfg/initialize_files.py @@ -10,7 +10,7 @@ def initialize_files(): output = os.path.join(CONFIG_DIR, 'output') if not os.path.exists(output): - raw_input('ATTENTION: "%s" does not exist in your system.\n\ + input('ATTENTION: "%s" does not exist in your system.\n\ Chiplotle will now create it to store configuration and other\n\ session files. \n\ (Hit Return to continue)' % CONFIG_DIR) @@ -20,7 +20,7 @@ def initialize_files(): write_log_file(LOG_FILE) if not os.path.exists(CONFIG_FILE): - raw_input('ATTENTION: Chiplotle has created its configuration file\n\ + input('ATTENTION: Chiplotle has created its configuration file\n\ %s.\n\ Edit this file to set various Chiplotle defaults.' % CONFIG_FILE) write_config_file(CONFIG_FILE) diff --git a/chiplotle/core/cfg/read_config_file.py b/chiplotle/core/cfg/read_config_file.py index 56f4ce9..e46c766 100644 --- a/chiplotle/core/cfg/read_config_file.py +++ b/chiplotle/core/cfg/read_config_file.py @@ -6,6 +6,6 @@ def read_config_file( ): globals = { } locals = { } - execfile(CONFIG_FILE, globals, locals) + exec(compile(open(CONFIG_FILE).read(), CONFIG_FILE, 'exec'), globals, locals) return locals diff --git a/chiplotle/core/devscripts/replace_in_files.py b/chiplotle/core/devscripts/replace_in_files.py index bc3080e..3dcb00e 100755 --- a/chiplotle/core/devscripts/replace_in_files.py +++ b/chiplotle/core/devscripts/replace_in_files.py @@ -35,9 +35,9 @@ def _remove_files(skip_files, files): def replace_in_files(dir, old, new, skip_dirs=['.svn'], confirm=True): skip_files = ['replace-in-files', '.pyc', '.rst'] - print 'Replacing ...' - print ' "%s"' % old - print ' "%s"' % new + print('Replacing ...') + print(' "%s"' % old) + print(' "%s"' % new) total_files_changed = 0 for root, dirs, files in os.walk(dir): _remove_dirs(skip_dirs, dirs) @@ -47,8 +47,8 @@ def replace_in_files(dir, old, new, skip_dirs=['.svn'], confirm=True): result = _replace_in_file(root, file, old, new) if result: total_files_changed += 1 - print '... in %s file(s)' % total_files_changed - print '' + print('... in %s file(s)' % total_files_changed) + print('') def _replace_in_file(root, file, old, new): @@ -61,8 +61,8 @@ def _replace_in_file(root, file, old, new): for line in old_text: if old in line: if confirm: - print line, - replace = raw_input('Replace [y/n]? ') + print(line, end=' ') + replace = input('Replace [y/n]? ') if replace.lower( ) == 'y': line = line.replace(old, new) file_is_changed = True @@ -82,7 +82,7 @@ def _replace_in_file(root, file, old, new): if __name__ == '__main__': import sys if len(sys.argv) < 4: - print _usage( ) + print(_usage( )) sys.exit(2) dir = sys.argv[1] diff --git a/chiplotle/core/imports/get_functions_in_module.py b/chiplotle/core/imports/get_functions_in_module.py index a66686b..d7ebe78 100644 --- a/chiplotle/core/imports/get_functions_in_module.py +++ b/chiplotle/core/imports/get_functions_in_module.py @@ -6,7 +6,7 @@ def _get_functions_in_module(module_file): result = [ ] module_file = module_file.replace(os.sep, '.') mod = __import__(module_file, fromlist=['*']) - for key, value in mod.__dict__.items( ): + for key, value in list(mod.__dict__.items( )): if not key.startswith('_'): ## if not a private function... if getattr(value, '__module__', None) == module_file: #print '"%s" in module %s ' % (key, module_file) diff --git a/chiplotle/core/imports/remove_modules_from_namespace.py b/chiplotle/core/imports/remove_modules_from_namespace.py index cdc359f..7652d62 100644 --- a/chiplotle/core/imports/remove_modules_from_namespace.py +++ b/chiplotle/core/imports/remove_modules_from_namespace.py @@ -2,6 +2,6 @@ def _remove_modules_from_namespace(namespace): - for key, value in namespace.items( ): + for key, value in list(namespace.items( )): if isinstance(value, types.ModuleType) and not key.startswith('_'): del(namespace[key]) diff --git a/chiplotle/core/visitor.py b/chiplotle/core/visitor.py index 11231a7..22a9cea 100644 --- a/chiplotle/core/visitor.py +++ b/chiplotle/core/visitor.py @@ -14,6 +14,6 @@ def visit(self, node, *args, **kwargs): def visit_generic(self, node, *args, **kwargs): - print '*** In generic Visitor function.' - print 'Node: %s' % node + print('*** In generic Visitor function.') + print('Node: %s' % node) diff --git a/chiplotle/documentation/conf.py b/chiplotle/documentation/conf.py index 4068d80..4fe63de 100644 --- a/chiplotle/documentation/conf.py +++ b/chiplotle/documentation/conf.py @@ -37,8 +37,8 @@ master_doc = 'index' # General information about the project. -project = u'Chiplotle' -copyright = u'2009-2012, Víctor Adán, Douglas Repetto' +project = 'Chiplotle' +copyright = '2009-2012, Víctor Adán, Douglas Repetto' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -178,8 +178,8 @@ # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'Chiplotle.tex', u'Chiplotle Documentation', - u'Víctor Adán, Douglas Repetto', 'manual'), + ('index', 'Chiplotle.tex', 'Chiplotle Documentation', + 'Víctor Adán, Douglas Repetto', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of diff --git a/chiplotle/documentation/install.rst b/chiplotle/documentation/install.rst deleted file mode 120000 index 37675c7..0000000 --- a/chiplotle/documentation/install.rst +++ /dev/null @@ -1 +0,0 @@ -../../INSTALL \ No newline at end of file diff --git a/chiplotle/examples/abstract_masterpiece.py b/chiplotle/examples/abstract_masterpiece.py index 72aa386..b749064 100644 --- a/chiplotle/examples/abstract_masterpiece.py +++ b/chiplotle/examples/abstract_masterpiece.py @@ -14,8 +14,8 @@ def main(): bottom = plotter.margins.soft.bottom top = plotter.margins.soft.top - print "width: %d height: %d" % (plotter.margins.soft.width, plotter.margins.soft.height) - pens = raw_input("\nhow many pens do you want to use? ") + print("width: %d height: %d" % (plotter.margins.soft.width, plotter.margins.soft.height)) + pens = input("\nhow many pens do you want to use? ") numPens = int(pens) #start in a random spot @@ -28,15 +28,15 @@ def main(): whichGesture = random.randint(0,5) if whichGesture == 0: - print "circle!" + print("circle!") plotter.write(hpgl.CI(random.randint(10,5000), random.randint(1,180))) elif whichGesture == 1: - print "rect!" + print("rect!") plotter.write(hpgl.ER((random.randint(10,5000), random.randint(10,5000)))) elif whichGesture == 2: - print "filled rect!" + print("filled rect!") ft = random.randint(1,8) if ft == 1 or ft == 2: ft = 1 @@ -48,20 +48,20 @@ def main(): space = random.randint(10,100) angle = random.randint(0,3) * 45 - print "fill type: %d space: %d angle: %d" % (ft, space, angle) + print("fill type: %d space: %d angle: %d" % (ft, space, angle)) plotter.write(hpgl.RR((random.randint(10, 2000), random.randint(10, 2000)))) plotter.write(hpgl.FT(ft, space, angle)) elif whichGesture == 3: - print "draw a crazy line!" + print("draw a crazy line!") plotter.pen_down() plotter.goto(random.randint(left, right), random.randint(bottom, top)) plotter.pen_up() elif whichGesture == 4: - print "draw an abstract shape!" + print("draw an abstract shape!") numPoints = random.randint(2,4) - print "numPoints: ", numPoints + print("numPoints: ", numPoints) firstX = random.randint(left, right) firstY = random.randint(bottom, top) plotter.goto(firstX, firstY) @@ -75,7 +75,7 @@ def main(): plotter.pen_up() elif whichGesture == 5: - print "just jump around!" + print("just jump around!") plotter.goto(random.randint(left, right), random.randint(bottom, top)) #pick a new pen? diff --git a/chiplotle/examples/abstract_masterpiece_file.py b/chiplotle/examples/abstract_masterpiece_file.py index 60c43f4..f517179 100755 --- a/chiplotle/examples/abstract_masterpiece_file.py +++ b/chiplotle/examples/abstract_masterpiece_file.py @@ -14,13 +14,13 @@ def abstract_masterpiece_file(file): io.view(plot) - saveit = raw_input("\nsave this one (y/n)? ") + saveit = input("\nsave this one (y/n)? ") if 'y' in saveit: io.save_hpgl(plot, file) - print "saved " + file + print("saved " + file) saved = True - print "bye!" + print("bye!") def generate_plot(): @@ -31,8 +31,8 @@ def generate_plot(): bottom = 0 top = 20000 - print "width: %d height: %d" % (width, height) - pens = raw_input("\nhow many pens do you want to use? ") + print("width: %d height: %d" % (width, height)) + pens = input("\nhow many pens do you want to use? ") numPens = int(pens) plot = [] @@ -50,7 +50,7 @@ def generate_plot(): whichGesture = random.randint(0,5) if whichGesture == 0: - print "circle!" + print("circle!") #plotter.circle(random.randint(10,5000), random.randint(1,180)) x = random.randint(left, right) y = random.randint(bottom, top) @@ -58,14 +58,14 @@ def generate_plot(): elif whichGesture == 1: - print "rect!" + print("rect!") x = random.randint(left, right) y = random.randint(bottom, top) #plotter.edgeRectRelative(random.randint(10,5000), random.randint(10,5000)) plot.append(ER([random.randint(10,5000), random.randint(10,5000)])) elif whichGesture == 2: - print "filled rect!" + print("filled rect!") ft = random.randint(1,8) if ft == 1 or ft == 2: ft = 1 @@ -77,7 +77,7 @@ def generate_plot(): space = random.randint(10,100) angle = random.randint(0,3) * 45 - print "fill type: %d space: %d angle: %d" % (ft, space, angle) + print("fill type: %d space: %d angle: %d" % (ft, space, angle)) #plotter.fill_type(ft, space, angle) #plotter.shadeRectRelative(random.randint(10,2000), random.randint(10,2000)) plot.append(FT(ft, space, angle)) @@ -85,7 +85,7 @@ def generate_plot(): elif whichGesture == 3: - print "draw a crazy line!" + print("draw a crazy line!") #plotter.pen_down() #plotter.goto(random.randint(left, right), random.randint(bottom, top)) #plotter.pen_up() @@ -95,9 +95,9 @@ def generate_plot(): elif whichGesture == 4: - print "draw an abstract shape!" + print("draw an abstract shape!") numPoints = random.randint(2,4) - print "numPoints: ", numPoints + print("numPoints: ", numPoints) firstX = random.randint(left, right) firstY = random.randint(bottom, top) #plotter.goto(firstX, firstY) @@ -120,7 +120,7 @@ def generate_plot(): plot.append(PU()) elif whichGesture == 5: - print "just jump around!" + print("just jump around!") #plotter.goto(random.randint(left, right), random.randint(bottom, top)) plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) @@ -142,7 +142,7 @@ def generate_plot(): ### $> python abstract_masterpiece.py if __name__ == '__main__': if len(sys.argv) < 2: - print 'Must give output filename.\nExample: $ abstract_masterpiece_file.py myfile.hpgl' + print('Must give output filename.\nExample: $ abstract_masterpiece_file.py myfile.hpgl') sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/examples/abstract_masterpiece_virtual.py b/chiplotle/examples/abstract_masterpiece_virtual.py index 1c89c58..4663507 100755 --- a/chiplotle/examples/abstract_masterpiece_virtual.py +++ b/chiplotle/examples/abstract_masterpiece_virtual.py @@ -18,8 +18,8 @@ def main(): bottom = plotter.margins.soft.bottom top = plotter.margins.soft.top - print "width: %d height: %d" % (plotter.margins.soft.width, plotter.margins.soft.height) - pens = raw_input("\nhow many pens do you want to use? ") + print("width: %d height: %d" % (plotter.margins.soft.width, plotter.margins.soft.height)) + pens = input("\nhow many pens do you want to use? ") numPens = int(pens) #start in a random spot @@ -32,16 +32,16 @@ def main(): whichGesture = random.randint(0,5) if whichGesture == 0: - print "circle!" + print("circle!") #plotter.circle(random.randint(10,5000), random.randint(1,180)) plotter.write(hpgl.CI(random.randint(10,5000), random.randint(1,180))) elif whichGesture == 1: - print "rect!" + print("rect!") plotter.write(hpgl.ER((random.randint(10,5000), random.randint(10,5000)))) elif whichGesture == 2: - print "filled rect!" + print("filled rect!") ft = random.randint(1,8) if ft == 1 or ft == 2: ft = 1 @@ -53,22 +53,22 @@ def main(): space = random.randint(10,100) angle = random.randint(0,3) * 45 - print "fill type: %d space: %d angle: %d" % (ft, space, angle) + print("fill type: %d space: %d angle: %d" % (ft, space, angle)) #plotter.fill_type(ft, space, angle) #plotter.filled_rectangle_relative(random.randint(10,2000), random.randint(10,2000)) plotter.write(hpgl.RR((random.randint(10, 2000), random.randint(10, 2000)))) plotter.write(hpgl.FT(ft, space, angle)) elif whichGesture == 3: - print "draw a crazy line!" + print("draw a crazy line!") plotter.pen_down() plotter.goto(random.randint(left, right), random.randint(bottom, top)) plotter.pen_up() elif whichGesture == 4: - print "draw an abstract shape!" + print("draw an abstract shape!") numPoints = random.randint(2,4) - print "numPoints: ", numPoints + print("numPoints: ", numPoints) firstX = random.randint(left, right) firstY = random.randint(bottom, top) plotter.goto(firstX, firstY) @@ -82,7 +82,7 @@ def main(): plotter.pen_up() elif whichGesture == 5: - print "just jump around!" + print("just jump around!") plotter.goto(random.randint(left, right), random.randint(bottom, top)) #pick a new pen? diff --git a/chiplotle/examples/importing_an_hpgl_file.py b/chiplotle/examples/importing_an_hpgl_file.py index 7e7356b..e41f25a 100644 --- a/chiplotle/examples/importing_an_hpgl_file.py +++ b/chiplotle/examples/importing_an_hpgl_file.py @@ -10,16 +10,16 @@ def main(): - print 'Importing media/square.hpgl' + print('Importing media/square.hpgl') f = import_hpgl_file("./media/square.hpgl") - print "Here are the contents of the file, expanded into a list of chiplotle objects:" - print f + print("Here are the contents of the file, expanded into a list of chiplotle objects:") + print(f) - print "\nAnd here are the raw hpgl commands:" + print("\nAnd here are the raw hpgl commands:") for c in f: - print c.format + print(c.format) # We can use io.view() to take a look... io.view(f) @@ -43,13 +43,13 @@ def main(): # We know from looking at the contents of the file above that the first thing # the hpgl code does is select pen 1. Let's change that to pen 2: - print "\nbefore:" - print f[0] + print("\nbefore:") + print(f[0]) f[0] = hpgl.SP(2) - print "\nafter:" - print f[0] + print("\nafter:") + print(f[0]) # We'll clear the virtual plotter so that we can start a new drawing: plotter.clear() @@ -68,8 +68,8 @@ def main(): # the last pen up (PU;) command: f.insert(len(f) - 1, c) - print "\nWe've inserted a circle (Path) into the list of commands:" - print f + print("\nWe've inserted a circle (Path) into the list of commands:") + print(f) plotter.clear() plotter.select_pen(3) diff --git a/chiplotle/examples/liveplot_data-to-path.py b/chiplotle/examples/liveplot_data-to-path.py index df014a0..74d096e 100644 --- a/chiplotle/examples/liveplot_data-to-path.py +++ b/chiplotle/examples/liveplot_data-to-path.py @@ -13,7 +13,7 @@ def main(): data = data_file.readlines() - print "read %d data points." % len(data) + print("read %d data points." % len(data)) #make an empty list and fill it with data points as coordinates points = [] diff --git a/chiplotle/geometry/core/__init__.py b/chiplotle/geometry/core/__init__.py index 2d047b9..bb0218e 100644 --- a/chiplotle/geometry/core/__init__.py +++ b/chiplotle/geometry/core/__init__.py @@ -1,4 +1,4 @@ -from group import Group -from label import Label -from path import Path -from polygon import Polygon +from .group import Group +from .label import Label +from .path import Path +from .polygon import Polygon diff --git a/chiplotle/geometry/core/affixformatvisitor.py b/chiplotle/geometry/core/affixformatvisitor.py index 002b6a4..a8c16c9 100644 --- a/chiplotle/geometry/core/affixformatvisitor.py +++ b/chiplotle/geometry/core/affixformatvisitor.py @@ -16,7 +16,7 @@ def visit_Group(self, node, formatters=None): def visit__Shape(self, node, formatters=None): frmtrs = self._update_formatters(node, formatters) - node.formatters = frmtrs.values() + node.formatters = list(frmtrs.values()) diff --git a/chiplotle/geometry/core/coordinate.py b/chiplotle/geometry/core/coordinate.py index af98db1..0a539e7 100644 --- a/chiplotle/geometry/core/coordinate.py +++ b/chiplotle/geometry/core/coordinate.py @@ -13,7 +13,7 @@ class Coordinate(object): # return super(Coordinate, cls).__new__(cls) def __init__(self, *args): - if args and not isinstance(args[0], (int, float, long)): + if args and not isinstance(args[0], (int, float)): raise TypeError('Arguments must all be scalars') self._coords = list(args) @@ -78,11 +78,11 @@ def __str__(self): ## math operators ## def __abs__(self): - return Coordinate(*map(abs, self._coords)) + return Coordinate(*list(map(abs, self._coords))) def __add__(self, arg): if isinstance(arg, Coordinate): - coords = map(operator.add, self._coords, arg._coords) + coords = list(map(operator.add, self._coords, arg._coords)) return Coordinate(*coords) try: return arg.__radd__(self) @@ -94,7 +94,7 @@ def __add__(self, arg): def __sub__(self, arg): if isinstance(arg, Coordinate): - coords = map(operator.sub, self._coords, arg._coords) + coords = list(map(operator.sub, self._coords, arg._coords)) return Coordinate(*coords) try: return arg.__rsub__(self) @@ -117,10 +117,10 @@ def __floordiv__(self, arg): return Coordinate(*coords) def __mul__(self, arg): - if not isinstance(arg, (Coordinate, int, float, long)): + if not isinstance(arg, (Coordinate, int, float)): raise TypeError if isinstance(arg, Coordinate): - coords = map(operator.mul, self._coords, arg._coords) + coords = list(map(operator.mul, self._coords, arg._coords)) else: coords = [c * arg for c in self._coords] return Coordinate(*coords) @@ -157,9 +157,9 @@ def __invert__(self): cm = c * 2 cd = c / 2 cn = -c - print 'len(c) =', len(c) - print c - print cp - print cs - print cm - print cd + print('len(c) =', len(c)) + print(c) + print(cp) + print(cs) + print(cm) + print(cd) diff --git a/chiplotle/geometry/core/coordinatearray.py b/chiplotle/geometry/core/coordinatearray.py index 198c231..3b62e49 100644 --- a/chiplotle/geometry/core/coordinatearray.py +++ b/chiplotle/geometry/core/coordinatearray.py @@ -168,7 +168,7 @@ def __invert__(self): if __name__ == '__main__': ca = CoordinateArray([(1, 2), (3, 4)]) - print ca - print ca.coords - print ca.x - print ca.y + print(ca) + print(ca.coords) + print(ca.x) + print(ca.y) diff --git a/chiplotle/geometry/core/hpglformatvisitor.py b/chiplotle/geometry/core/hpglformatvisitor.py index ea549d3..d07cb06 100644 --- a/chiplotle/geometry/core/hpglformatvisitor.py +++ b/chiplotle/geometry/core/hpglformatvisitor.py @@ -88,7 +88,7 @@ def _label_to_hpgl(self, label): def _formatters_to_hpgl(self, formatters): result = [] - for f in formatters.values(): + for f in list(formatters.values()): result += f._subcommands return result diff --git a/chiplotle/geometry/core/polygon.py b/chiplotle/geometry/core/polygon.py index f4aaffc..d535de5 100644 --- a/chiplotle/geometry/core/polygon.py +++ b/chiplotle/geometry/core/polygon.py @@ -25,7 +25,7 @@ def _preformat_points(self): from chiplotle import io p = Polygon([(0, 0), (2000, 0), (1000, 1000), (0, 500)], 0) - print p.points - print p._preformat_points + print(p.points) + print(p._preformat_points) io.view(p) diff --git a/chiplotle/geometry/core/test/test_layersvisitor.py b/chiplotle/geometry/core/test/test_layersvisitor.py index a5d92b2..e125a83 100644 --- a/chiplotle/geometry/core/test/test_layersvisitor.py +++ b/chiplotle/geometry/core/test/test_layersvisitor.py @@ -7,7 +7,7 @@ def test_layervisitor_01(): r = rectangle(1000, 1000) v = LayersVisitor() v.visit(r) - assert v.layers.keys() == [None] + assert list(v.layers.keys()) == [None] assert v.layers[None] == [r] def test_layersvisitor_02(): @@ -16,7 +16,7 @@ def test_layersvisitor_02(): l = Layer([r1], 1) v = LayersVisitor() v.visit(l) - assert v.layers.keys() == [1] + assert list(v.layers.keys()) == [1] assert v.layers[1] == [r1] def test_layersvisitor_03(): @@ -32,7 +32,7 @@ def test_layersvisitor_03(): v = LayersVisitor() v.visit(l3) - assert v.layers.keys() == [1, 2, 3] + assert list(v.layers.keys()) == [1, 2, 3] assert v.layers[1] == [r1] assert v.layers[2] == [r2] assert v.layers[3] == [t3] @@ -58,7 +58,7 @@ def test_layersvisitor_04(): v = LayersVisitor() v.visit(l3) - assert v.layers.keys() == [1, 3] + assert list(v.layers.keys()) == [1, 3] assert v.layers[1] == [r1] assert v.layers[3] == [t3, r2] diff --git a/chiplotle/geometry/core/transformlock.py b/chiplotle/geometry/core/transformlock.py index 1bc50ba..a9ad507 100644 --- a/chiplotle/geometry/core/transformlock.py +++ b/chiplotle/geometry/core/transformlock.py @@ -12,7 +12,7 @@ def __init__(self, shapes, lock_transforms): } def get_transform(self, transform): - fn = transform.func_name + fn = transform.__name__ transform = self.transform_map.get(fn) if transform is None: raise ValueError("Don't know transform '%s'." % fn) diff --git a/chiplotle/geometry/shapes/cross.py b/chiplotle/geometry/shapes/cross.py index 0e92751..44ebf73 100644 --- a/chiplotle/geometry/shapes/cross.py +++ b/chiplotle/geometry/shapes/cross.py @@ -20,5 +20,5 @@ def cross(width, height): from chiplotle.tools import io from chiplotle.geometry.core.path import Path e = cross(100, 200) - print e.format + print(e.format) io.view(e) diff --git a/chiplotle/geometry/shapes/grid.py b/chiplotle/geometry/shapes/grid.py index 11e11e2..663d2df 100644 --- a/chiplotle/geometry/shapes/grid.py +++ b/chiplotle/geometry/shapes/grid.py @@ -45,5 +45,5 @@ def grid(width, height, width_divisions,height_divisions): from chiplotle.tools import io gr = grid(1000, 2000, 10, 20) assert isinstance(gr, Group) - print gr.format + print(gr.format) io.view(gr) diff --git a/chiplotle/geometry/shapes/isosceles.py b/chiplotle/geometry/shapes/isosceles.py index 16efb59..3d4b283 100644 --- a/chiplotle/geometry/shapes/isosceles.py +++ b/chiplotle/geometry/shapes/isosceles.py @@ -16,5 +16,5 @@ def isosceles(width, height, filled=False): if __name__ == '__main__': from chiplotle.tools import io e = isosceles(200, 400, filled=True) - print e.format + print(e.format) io.view(e) diff --git a/chiplotle/geometry/shapes/line.py b/chiplotle/geometry/shapes/line.py index 172b76f..93801b1 100644 --- a/chiplotle/geometry/shapes/line.py +++ b/chiplotle/geometry/shapes/line.py @@ -13,5 +13,5 @@ def line(startpoint, endpoint): from chiplotle.tools import io l = line((0,0), (1000,1000)) - print l.format + print(l.format) io.view(l) diff --git a/chiplotle/geometry/shapes/path_interpolated.py b/chiplotle/geometry/shapes/path_interpolated.py index 1514143..217c8a9 100644 --- a/chiplotle/geometry/shapes/path_interpolated.py +++ b/chiplotle/geometry/shapes/path_interpolated.py @@ -35,7 +35,7 @@ def path_interpolated(points, curvature, interpolation_count = 50): ## compute dxy... dxy = [Coordinate(0, 0)] - for i in reversed(range(len(points) - 1)): + for i in reversed(list(range(len(points) - 1))): dxy.insert(0, a[i] + dxy[0] * bi[i]) ## compute interpolated points... diff --git a/chiplotle/geometry/shapes/rectangle.py b/chiplotle/geometry/shapes/rectangle.py index 2cf8a8d..08061ae 100644 --- a/chiplotle/geometry/shapes/rectangle.py +++ b/chiplotle/geometry/shapes/rectangle.py @@ -18,5 +18,5 @@ def rectangle(width, height): e = rectangle(100, 200) e.filled = True assert isinstance(e, Polygon) - print e.format + print(e.format) io.view(e) diff --git a/chiplotle/geometry/transforms/scale.py b/chiplotle/geometry/transforms/scale.py index 63c638a..30a6145 100644 --- a/chiplotle/geometry/transforms/scale.py +++ b/chiplotle/geometry/transforms/scale.py @@ -25,6 +25,6 @@ def scale(shape, value, pivot = Coordinate(0, 0)): scale(r1, 5, (500, 250)) scale(r2, (10, 20)) g = Group([r0, r1, r2]) - print g.format + print(g.format) io.view(g) diff --git a/chiplotle/geometry/transforms/transformvisitor.py b/chiplotle/geometry/transforms/transformvisitor.py index 8442f2b..594e3e5 100644 --- a/chiplotle/geometry/transforms/transformvisitor.py +++ b/chiplotle/geometry/transforms/transformvisitor.py @@ -13,7 +13,7 @@ def visit_Group(self, node, *args, **kwargs): def visit_TransformLock(self, node, *args, **kwargs): - if self.transform.func_name in node.lock_transforms: + if self.transform.__name__ in node.lock_transforms: self._handle_transform_map(node, *args, **kwargs) else: for s in node: diff --git a/chiplotle/hpgl/abstract/arc.py b/chiplotle/hpgl/abstract/arc.py index 7c9e1d9..388c74d 100644 --- a/chiplotle/hpgl/abstract/arc.py +++ b/chiplotle/hpgl/abstract/arc.py @@ -7,7 +7,6 @@ def __init__(self, xy, angle, chordtolerance=None): self.chordtolerance = chordtolerance _Positional.__init__(self, xy) - @apply def angle( ): def fget(self): return self._angle @@ -16,6 +15,7 @@ def fset(self, arg): raise ValueError('angle must be between -360 and 360.') self._angle = arg return property(**locals( )) + angle = angle() @property def format(self): diff --git a/chiplotle/hpgl/abstract/hpgl.py b/chiplotle/hpgl/abstract/hpgl.py index b64e6da..ca6dd3d 100644 --- a/chiplotle/hpgl/abstract/hpgl.py +++ b/chiplotle/hpgl/abstract/hpgl.py @@ -17,7 +17,7 @@ def format(self): def __eq__(self, arg): if type(arg) == type(self): - for attr in self.__dict__.keys( ): + for attr in list(self.__dict__.keys( )): if getattr(self, attr) != getattr(arg, attr): return False return True diff --git a/chiplotle/hpgl/abstract/penplot.py b/chiplotle/hpgl/abstract/penplot.py index 87f7f4e..3272186 100644 --- a/chiplotle/hpgl/abstract/penplot.py +++ b/chiplotle/hpgl/abstract/penplot.py @@ -14,29 +14,29 @@ def __init__(self, xy): ### MANAGED ATTRIBUTES ### - @apply def xy( ): def fget(self): return self._coords def fset(self, arg): self._coords = CoordinateArray(arg) return property(**locals()) + xy = xy() - @apply def x( ): def fget(self): return self._coords.x def fset(self, arg): self.xy.x = arg return property(**locals()) + x = x() - @apply def y( ): def fget(self): return self._coords.y def fset(self, arg): self.xy.y = arg return property(**locals()) + y = y() ### FORMATTING ### diff --git a/chiplotle/hpgl/abstract/positional.py b/chiplotle/hpgl/abstract/positional.py index 9dec5bf..89f3de2 100644 --- a/chiplotle/hpgl/abstract/positional.py +++ b/chiplotle/hpgl/abstract/positional.py @@ -11,7 +11,7 @@ def __init__(self, xy): ## PUBLIC ATTRIBUTES ## - @apply + def xy( ): def fget(self): return self._coords @@ -20,22 +20,23 @@ def fset(self, arg): raise ValueError('Positional HPGL commands are 2D') self._coords = Coordinate(*arg) return property(**locals()) + xy = xy() - @apply def x( ): def fget(self): return self._coords.x def fset(self, arg): self.xy = Coordinate(arg, self.y) return property(**locals()) + x = x() - @apply def y( ): def fget(self): return self._coords.y def fset(self, arg): self.xy = Coordinate(self.x, arg) return property(**locals()) + y = y() diff --git a/chiplotle/hpgl/abstract/twopoint.py b/chiplotle/hpgl/abstract/twopoint.py index b1ae570..b09b383 100644 --- a/chiplotle/hpgl/abstract/twopoint.py +++ b/chiplotle/hpgl/abstract/twopoint.py @@ -9,20 +9,20 @@ def __init__(self, coords=None): raise ValueError('Only two coordinate pairs allowed.') - @apply def coords( ): def fget(self): return self._coords def fset(self, arg): self._coords = CoordinateArray(arg) return property(**locals()) + coords = coords() @property def format(self): if self.coords: coords = self.coords[0].xy + self.coords[1].xy - coords = map(str, coords) + coords = list(map(str, coords)) coords = ','.join(coords) return '%s%s%s' % (self._name, coords, _HPGLPrimitive._terminator) else: diff --git a/chiplotle/hpgl/commands.py b/chiplotle/hpgl/commands.py index b107f05..69e9730 100644 --- a/chiplotle/hpgl/commands.py +++ b/chiplotle/hpgl/commands.py @@ -70,7 +70,6 @@ def __init__(self, radius, chordangle=None): self.radius = radius self.chordangle = chordangle - @apply def radius( ): def fget(self): '''The radius of the circle.''' @@ -79,6 +78,7 @@ def fset(self, arg): ### TODO: check for type here? self._radius = arg return property(**locals( )) + radius = radius() @property def format(self): @@ -905,7 +905,7 @@ def format(self): else: ### TODO: raise this type of warning in all other commands where ### this may be necessary. - raise(Warning("Can't format %s with given parameters." % self._name)) + raise Warning class PM(_HPGLPrimitive): @@ -1113,7 +1113,7 @@ def format(self): elif self.slot == self.left == None: return '%s%s' % (self._name, _HPGLPrimitive._terminator) else: - raise(Warning("Can't format %s with given parameters." % self._name)) + raise Warning class IW(_TwoPoint): @@ -1153,7 +1153,7 @@ def format(self): elif self.key == self.function == None: return '%s%s' % (self._name, _HPGLPrimitive._terminator) else: - raise(Warning("Can't format %s with given parameters." % self._name)) + raise Warning class PT(_HPGLPrimitive): @@ -1199,7 +1199,7 @@ def format(self): elif None == self.width == self.height: return '%s%s' % (self._name, _HPGLPrimitive._terminator) else: - raise(Warning("Can't format %s without all parameters." % self._name)) + raise Warning class SR(SI): @@ -1240,7 +1240,7 @@ def format(self): elif None == self.run == self.rise: return '%s%s' % (self._name, _HPGLPrimitive._terminator) else: - raise(Warning("Can't format %s without all parameters." % self._name)) + raise Warning class DR(DI): @@ -1507,7 +1507,6 @@ class SetHandshakeMode(_HPGLEscape): def __init__(self, mode=None): self.mode = mode - @apply def mode( ): def fget(self): return self._mode @@ -1516,6 +1515,7 @@ def fset(self, mode): raise ValueError('mode must be in (0,1,2,3).') self._mode = mode return property(**locals( )) + mode = mode() @property def _name(self): diff --git a/chiplotle/hpgl/formatters/pen.py b/chiplotle/hpgl/formatters/pen.py index 6aa0b93..3a99a92 100644 --- a/chiplotle/hpgl/formatters/pen.py +++ b/chiplotle/hpgl/formatters/pen.py @@ -40,4 +40,4 @@ def _subcommands(self): pd = Pen(2, 3, 4, 5, 0.1) r = rectangle(100, 20) pd(r) - print r.format + print(r.format) diff --git a/chiplotle/hpgl/label.py b/chiplotle/hpgl/label.py index 8c7a2e7..d63a4b3 100644 --- a/chiplotle/hpgl/label.py +++ b/chiplotle/hpgl/label.py @@ -79,5 +79,5 @@ def format(self): ## demo if __name__ == '__main__': - print Label('Hello!').format - print Label('Adios!', 1, 2, direction = (1, 2)).format + print(Label('Hello!').format) + print(Label('Adios!', 1, 2, direction = (1, 2)).format) diff --git a/chiplotle/plotters/__init__.py b/chiplotle/plotters/__init__.py index 17e8783..b8e03d4 100644 --- a/chiplotle/plotters/__init__.py +++ b/chiplotle/plotters/__init__.py @@ -11,15 +11,15 @@ # #remove_all_but_types(locals( )) -from dpx2000 import DPX2000 -from dpx3300 import DPX3300 -from dxy1300 import DXY1300 -from dxy880 import DXY880 -from hp7475a import HP7475A -from hp7550a import HP7550A -from hp7575a import HP7575A -from hp7576a import HP7576A -from hp7585b import HP7585B -from hp7595a import HP7595A -from hp7596a import HP7596A -from plotter import Plotter +from .dpx2000 import DPX2000 +from .dpx3300 import DPX3300 +from .dxy1300 import DXY1300 +from .dxy880 import DXY880 +from .hp7475a import HP7475A +from .hp7550a import HP7550A +from .hp7575a import HP7575A +from .hp7576a import HP7576A +from .hp7585b import HP7585B +from .hp7595a import HP7595A +from .hp7596a import HP7596A +from .plotter import Plotter diff --git a/chiplotle/plotters/baseplotter.py b/chiplotle/plotters/baseplotter.py index 37640ca..6593f95 100644 --- a/chiplotle/plotters/baseplotter.py +++ b/chiplotle/plotters/baseplotter.py @@ -3,7 +3,7 @@ * * http://music.columbia.edu/cmc/chiplotle ''' -from __future__ import division + from chiplotle.core.cfg.get_config_value import get_config_value from chiplotle.core.interfaces.margins.interface import MarginsInterface from chiplotle.geometry.core.shape import _Shape @@ -135,7 +135,7 @@ def _slice_string_to_buffer_size(self, data): def _write_string_to_port(self, data): ''' Write data to serial port. data is expected to be a string.''' #assert type(data) is str - if not isinstance(data, basestring): + if not isinstance(data, str): raise TypeError('string expected.') data = self._filter_unrecognized_commands(data) data = self._slice_string_to_buffer_size(data) diff --git a/chiplotle/plotters/drawingplotter.py b/chiplotle/plotters/drawingplotter.py index 668afef..bf9f57b 100644 --- a/chiplotle/plotters/drawingplotter.py +++ b/chiplotle/plotters/drawingplotter.py @@ -24,7 +24,7 @@ def goto(self, *args): elif len(args) == 2: self.write(self._hpgl.PA([args])) else: - print "Please use either: goto(x, y) or goto(Coordinate(x, y))" + print("Please use either: goto(x, y) or goto(Coordinate(x, y))") def goto_center(self): self.write(self._hpgl.PA([self.margins.soft.center])) @@ -195,22 +195,22 @@ def set_plot_window(self, left_bottom, right_top): left_bottom = Coordinate(left_bottom) right_top = Coordinate(right_top) except TypeError: - print "Please pass in two coordinate pairs." + print("Please pass in two coordinate pairs.") return - print "Setting plot window..." + print("Setting plot window...") x1 = left_bottom.x y1 = left_bottom.y - print "left: %d bottom: %d" % (x1, y1) + print("left: %d bottom: %d" % (x1, y1)) x2 = right_top.x y2 = right_top.y - print "right: %d top: %d" % (x2, y2) + print("right: %d top: %d" % (x2, y2)) self.write(self._hpgl.IP([(x1, y1), (x2, y2)])) self.write(self._hpgl.IW([(x1, y1), (x2, y2)])) - print "Plot window set to:" - print self.output_p1p2 + print("Plot window set to:") + print(self.output_p1p2) ## paper control ## diff --git a/chiplotle/plotters/interactive/interactive_commands.py b/chiplotle/plotters/interactive/interactive_commands.py index 5611670..355c69d 100644 --- a/chiplotle/plotters/interactive/interactive_commands.py +++ b/chiplotle/plotters/interactive/interactive_commands.py @@ -22,15 +22,15 @@ def interactive_set_plot_window(plotter): plotter.write(IW()) #plotter.write(SC()) - print "Interactive set plot window:" - print "Move pen to lower left and press enter." - raw_input() + print("Interactive set plot window:") + print("Move pen to lower left and press enter.") + input() position = plotter.actual_position[0] x1 = position.x y1 = position.y - print "Move pen to upper right and press enter." - raw_input() + print("Move pen to upper right and press enter.") + input() position = plotter.actual_position[0] x2 = position.x y2 = position.y @@ -54,18 +54,18 @@ def interactive_set_plot_window_and_units(plotter): interactive_set_plot_window(plotter) - print "Enter value for left side (typically 0):" - left = int(raw_input()) - print "Enter value for bottom side (typically 0):" - bottom = int(raw_input()) - print "Enter value for right side (width of plot in your units):" - right = int(raw_input()) - print "Enter value for top side (height of plot in your units):" - top = int(raw_input()) + print("Enter value for left side (typically 0):") + left = int(input()) + print("Enter value for bottom side (typically 0):") + bottom = int(input()) + print("Enter value for right side (width of plot in your units):") + right = int(input()) + print("Enter value for top side (height of plot in your units):") + top = int(input()) plotter.write(SC([left,right,bottom,top])) - print "new soft margins:" - print plotter.margins.soft + print("new soft margins:") + print(plotter.margins.soft) ''' from chiplotle.interactive.interactive_commands import * @@ -99,17 +99,17 @@ def interactive_set_plot_window_auto_units(plotter): mm_w = width/40.0 mm_h = width/40.0 - print "Window size is:" - print "%f inches x %f inches" % (inches_w, inches_h) - print "%f cm x %f cm" % (cm_w, cm_h) - print "%f mm x %f mm" % (mm_w, mm_h) + print("Window size is:") + print("%f inches x %f inches" % (inches_w, inches_h)) + print("%f cm x %f cm" % (cm_w, cm_h)) + print("%f mm x %f mm" % (mm_w, mm_h)) - print "Choose units:" - print "1) inches" - print "2) cm" - print "3) mm" + print("Choose units:") + print("1) inches") + print("2) cm") + print("3) mm") - units = int(raw_input()) + units = int(input()) left = plotter.margins.soft.left bottom = plotter.margins.soft.bottom @@ -124,7 +124,7 @@ def interactive_set_plot_window_auto_units(plotter): right = left + 40 top = righ + 40 else: - print "That wasn't one of the choices!" + print("That wasn't one of the choices!") return plotter.write(IP([left, bottom,right,top])) @@ -134,8 +134,8 @@ def interactive_set_plot_window_auto_units(plotter): #These margins will be WRONG!!! They'll be the floor integer margins, #not the margins set via the set_plot_window() above. ARRRRG! - print "new soft margins:" - print plotter.margins.soft + print("new soft margins:") + print(plotter.margins.soft) ''' from chiplotle.plotters.interactive.interactive_commands import * @@ -151,18 +151,18 @@ def interactive_define_polygon_simple(plotter): points = [] - print "Interactive define PolygonSimple:" - print "Move pen to each point and press enter. Press x when finished adding points." - print "The final point (a duplicate of first point) will be added automatically." + print("Interactive define PolygonSimple:") + print("Move pen to each point and press enter. Press x when finished adding points.") + print("The final point (a duplicate of first point) will be added automatically.") while True: - input = raw_input() + input = input() if input is 'x': break; point = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) points.append(point) - print "added:" - print point + print("added:") + print(point) poly = PolygonSimple([0,0], points) @@ -177,19 +177,19 @@ def interactive_define_rectangle(plotter): points = [] - print "Interactive define Rectangle:" - print "Move pen to lower, left corner and press enter." + print("Interactive define Rectangle:") + print("Move pen to lower, left corner and press enter.") - input = raw_input() + input = input() lower_left = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - print "lower_left:" - print lower_left + print("lower_left:") + print(lower_left) - print "Move pen to upper, right corner and press enter." - input = raw_input() + print("Move pen to upper, right corner and press enter.") + input = input() upper_right = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - print "upper_right:" - print upper_right + print("upper_right:") + print(upper_right) rectangle = Rectangle([lower_left], upper_right.x, upper_right.y) @@ -209,19 +209,19 @@ def interactive_define_ellipse(plotter): points = [] - print "Interactive define Rectangle:" - print "Move pen to lower, left corner and press enter." + print("Interactive define Rectangle:") + print("Move pen to lower, left corner and press enter.") - input = raw_input() + input = input() lower_left = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - print "lower_left:" - print lower_left + print("lower_left:") + print(lower_left) - print "Move pen to upper, right corner and press enter." - input = raw_input() + print("Move pen to upper, right corner and press enter.") + input = input() upper_right = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - print "upper_right:" - print upper_right + print("upper_right:") + print(upper_right) rectangle = Rectangle([lower_left], upper_right.x, upper_right.y) diff --git a/chiplotle/scripts/envelope.py b/chiplotle/scripts/envelope.py index 2c3eadc..1990d7f 100644 --- a/chiplotle/scripts/envelope.py +++ b/chiplotle/scripts/envelope.py @@ -12,7 +12,7 @@ def envelope( ): finished = 0 while finished == 0: - line = raw_input("") + line = input("") if len(line) == 0: finished = 1 else: @@ -23,30 +23,30 @@ def envelope( ): finished = 0 while finished == 0: - line = raw_input("") + line = input("") if len(line) == 0: finished = 1 else: to_address.append(line) - input = raw_input("\n\renter pen number for plotting FROM ADDRESS:\n") + input = input("\n\renter pen number for plotting FROM ADDRESS:\n") pen_num = int(input) plotter.write(SP(pen_num)) - raw_input("\n\rmove pen to top left of FROM: address field and hit return to start plotting...") + input("\n\rmove pen to top left of FROM: address field and hit return to start plotting...") print("plotting FROM: address...") for line in from_address: plotter.write(LB(line)) plotter.write(LB("\n\r")) - input = raw_input("\n\renter pen number for plotting TO ADDRESS:\n") + input = input("\n\renter pen number for plotting TO ADDRESS:\n") pen_num = int(input) plotter.write(SP(pen_num)) - raw_input("\n\rmove pen to top left of TO ADDRESS field and hit return to start plotting...") + input("\n\rmove pen to top left of TO ADDRESS field and hit return to start plotting...") print("plotting TO ADDRESS...") num_lines = len(to_address) diff --git a/chiplotle/scripts/find_hpgl_file_dimensions.py b/chiplotle/scripts/find_hpgl_file_dimensions.py index ba9dbb0..4cb41f2 100755 --- a/chiplotle/scripts/find_hpgl_file_dimensions.py +++ b/chiplotle/scripts/find_hpgl_file_dimensions.py @@ -19,15 +19,15 @@ def find_hpgl_file_dimensions(file): width = maxX - minX height = maxY - minY - print "" - print "bounding box: ", dimensions - print "width: %d height: %d" % (width, height) + print("") + print("bounding box: ", dimensions) + print("width: %d height: %d" % (width, height)) if __name__ == '__main__': if len(sys.argv) < 2: - print 'Must give HPGL file.\nExample: $ find_hpgl_file_dimensions myfile.hpgl' + print('Must give HPGL file.\nExample: $ find_hpgl_file_dimensions myfile.hpgl') sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/scripts/plot_hpgl_file.py b/chiplotle/scripts/plot_hpgl_file.py index ad0e107..f2fca0e 100755 --- a/chiplotle/scripts/plot_hpgl_file.py +++ b/chiplotle/scripts/plot_hpgl_file.py @@ -16,7 +16,7 @@ def plot_hpgl_file(file): if __name__ == '__main__': if len(sys.argv) < 2: - print 'Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl' + print('Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl') sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/scripts/plot_hpgl_file_max_size.py b/chiplotle/scripts/plot_hpgl_file_max_size.py index 6c3445d..b7bc667 100755 --- a/chiplotle/scripts/plot_hpgl_file_max_size.py +++ b/chiplotle/scripts/plot_hpgl_file_max_size.py @@ -22,8 +22,8 @@ def plot_hpgl_file_max_size(file): dimensions = hpgltools.get_bounding_box(f) - print "original dimensions: " - print dimensions + print("original dimensions: ") + print(dimensions) minX = dimensions[0][0] minY = dimensions[0][1] @@ -46,10 +46,10 @@ def plot_hpgl_file_max_size(file): p2X = int(widthPlot * scaler) p2Y = int(heightPlot * scaler) - print 'minX, minY, maxX, maxY: ', minX, minY, maxX, maxY - print 'width, height: ', widthPlot, heightPlot - print 'p1x, p1y, p2x, p2y: ', p1X, p1Y, p2X, p2Y - print 'scaler: ', scaler + print('minX, minY, maxX, maxY: ', minX, minY, maxX, maxY) + print('width, height: ', widthPlot, heightPlot) + print('p1x, p1y, p2x, p2y: ', p1X, p1Y, p2X, p2Y) + print('scaler: ', scaler) hpgltools.scale(f, scaler) @@ -59,8 +59,8 @@ def plot_hpgl_file_max_size(file): dimensions = hpgltools.get_bounding_box(f) - print "scaled dimensions: " - print dimensions + print("scaled dimensions: ") + print(dimensions) plotter.write(f) ## call flush( ) to wait till all data is written before exiting... @@ -69,7 +69,7 @@ def plot_hpgl_file_max_size(file): if __name__ == '__main__': if len(sys.argv) < 2: - print 'Must give HPGL file to plot.\nExample: $ plot_hpgl_file_max_size.py myfile.hpgl' + print('Must give HPGL file to plot.\nExample: $ plot_hpgl_file_max_size.py myfile.hpgl') sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/scripts/plot_hpgl_file_virtual.py b/chiplotle/scripts/plot_hpgl_file_virtual.py index 28d88c5..1327483 100755 --- a/chiplotle/scripts/plot_hpgl_file_virtual.py +++ b/chiplotle/scripts/plot_hpgl_file_virtual.py @@ -18,7 +18,7 @@ def plot_hpgl_file(file): if __name__ == '__main__': if len(sys.argv) < 2: - print 'Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl' + print('Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl') sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/scripts/typewriter.py b/chiplotle/scripts/typewriter.py index 0ffe284..89635ea 100644 --- a/chiplotle/scripts/typewriter.py +++ b/chiplotle/scripts/typewriter.py @@ -4,12 +4,12 @@ ## HELPER FUNCTIONS ## def _query_font_size( ): - char_height = float(raw_input("font height (in cm)? ")) - char_width = float(raw_input("font width (in cm)? ")) + char_height = float(input("font height (in cm)? ")) + char_width = float(input("font width (in cm)? ")) return char_width, char_height def _query_pen( ): - pen_num = int(raw_input("which pen? ")) + pen_num = int(input("which pen? ")) return pen_num @@ -25,7 +25,7 @@ def typewriter( ): pen_num = _query_pen( ) - set_size = raw_input("set font size (y/N)? ") + set_size = input("set font size (y/N)? ") if set_size.lower( ) == "y": cw, ch = _query_font_size( ) @@ -42,13 +42,13 @@ def typewriter( ): finished = False while finished == False: - line = raw_input(">>> ") + line = input(">>> ") if len(line) == 0: print("(enter): blank line") print("p: select new pen") print("s: set new font size") print("q: quit") - response = raw_input("command: ") + response = input("command: ") if response == "p": pen_num = _query_pen( ) plotter.select_pen(pen_num) diff --git a/chiplotle/scripts/view_hpgl_file.py b/chiplotle/scripts/view_hpgl_file.py index 0bbcf3a..14dffc7 100755 --- a/chiplotle/scripts/view_hpgl_file.py +++ b/chiplotle/scripts/view_hpgl_file.py @@ -12,7 +12,7 @@ def view_hpgl(file): if __name__ == '__main__': if len(sys.argv) < 2: - print 'Must give HPGL file to view.\nExample: $ view_hpgl myfile.hpgl' + print('Must give HPGL file to view.\nExample: $ view_hpgl myfile.hpgl') sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/tools/geometrytools/get_line_intersection.py b/chiplotle/tools/geometrytools/get_line_intersection.py index dff4743..8bf291b 100644 --- a/chiplotle/tools/geometrytools/get_line_intersection.py +++ b/chiplotle/tools/geometrytools/get_line_intersection.py @@ -73,7 +73,7 @@ def get_line_intersection(line_a, line_b): if intersection == False: no_intersections.append(new_line) - print "found %d lines..." % len(no_intersections) + print("found %d lines..." % len(no_intersections)) io.view(no_intersections) diff --git a/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py b/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py index 907e28a..ce93e53 100644 --- a/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py +++ b/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py @@ -1,4 +1,4 @@ -from __future__ import division + from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.tools.geometrytools.split_vector_equidistantly import \ split_vector_equidistantly @@ -36,4 +36,4 @@ def round(self, n): if __name__ == '__main__': ca = CoordinateArray([(20, 0), (20, 500), (20, 1000)]) - print split_coordinatearray_proportionally(ca, 8) + print(split_coordinatearray_proportionally(ca, 8)) diff --git a/chiplotle/tools/geometrytools/split_vector_equidistantly.py b/chiplotle/tools/geometrytools/split_vector_equidistantly.py index d9d45dc..2336ad1 100644 --- a/chiplotle/tools/geometrytools/split_vector_equidistantly.py +++ b/chiplotle/tools/geometrytools/split_vector_equidistantly.py @@ -1,4 +1,4 @@ -from __future__ import division + from chiplotle.tools.mathtools.interpolate_linear import interpolate_linear from chiplotle.geometry.core.coordinatearray import CoordinateArray @@ -11,7 +11,7 @@ def split_vector_equidistantly(vector, count) : ''' xs = [interpolate_linear(0, vector.x, i / count) for i in range(1, count)] ys = [interpolate_linear(0, vector.y, i / count) for i in range(1, count)] - coords = [(0, 0)] + zip(xs, ys) + [vector] + coords = [(0, 0)] + list(zip(xs, ys)) + [vector] return CoordinateArray(coords) @@ -19,4 +19,4 @@ def split_vector_equidistantly(vector, count) : from chiplotle import Coordinate v = Coordinate(-10, 12) c = 4 - print split_vector_equidistantly(v, c) + print(split_vector_equidistantly(v, c)) diff --git a/chiplotle/tools/hpgltools/get_all_coordinates.py b/chiplotle/tools/hpgltools/get_all_coordinates.py index fde05f7..118069a 100644 --- a/chiplotle/tools/hpgltools/get_all_coordinates.py +++ b/chiplotle/tools/hpgltools/get_all_coordinates.py @@ -28,5 +28,5 @@ def get_all_coordinates(arg): else: result.append(e.xy) else: - print '"%s" has no abs coords.' % e + print('"%s" has no abs coords.' % e) return result diff --git a/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/chiplotle/tools/hpgltools/inflate_hpgl_string.py index 0b5b1a8..8940c19 100644 --- a/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -84,4 +84,4 @@ def _parse_hpgl_command_string(cmd_string): if __name__ == '__main__': string = 'IN;PU;PD1,2,3,4;' - print inflate_hpgl_string(string) + print(inflate_hpgl_string(string)) diff --git a/chiplotle/tools/hpgltools/scale.py b/chiplotle/tools/hpgltools/scale.py index 281dc85..c8e062d 100644 --- a/chiplotle/tools/hpgltools/scale.py +++ b/chiplotle/tools/hpgltools/scale.py @@ -1,7 +1,7 @@ from chiplotle.hpgl.abstract.hpgl import _HPGL def _scale_command(obj, val): - attrs = obj.__dict__.keys() + attrs = list(obj.__dict__.keys()) for scalable_attr in obj.__class__._scalable: a = getattr(obj, scalable_attr) setattr(obj, scalable_attr, a * val) diff --git a/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py b/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py index 6a941e9..9099693 100644 --- a/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py +++ b/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py @@ -29,7 +29,7 @@ def test_parse_hpgl_string_05(): '''LB''' s = 'DT#;LBHello World#;' t = hpgltools.parse_hpgl_string(s) - print t + print(t) assert t == ['DT#', 'LBHello World#'] ## DCI (escape) commands ## diff --git a/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py b/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py index 5c42fd0..4688c3c 100644 --- a/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py +++ b/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py @@ -8,7 +8,7 @@ def test_rotate_hpglprimitives_01( ): ER((1, 2)), EA((1, 2)), CI(10)] hpgltools.rotate_hpglprimitives(t, math.pi / 2.0) assert len(t) == 7 - print t[2].xy + print(t[2].xy) ## NOTE: why is this not working? #assert t[2].xy == CoordinateArray([Coordinate(1, -1), Coordinate(1, 1)]) diff --git a/chiplotle/tools/io/export.py b/chiplotle/tools/io/export.py index 1693f75..43bce65 100644 --- a/chiplotle/tools/io/export.py +++ b/chiplotle/tools/io/export.py @@ -30,7 +30,7 @@ def export(expr, filename, fmt = 'eps'): stdout, stderr = p.communicate( ) if 'not found' in stderr: - print _hp2xxError() + print(_hp2xxError()) return imgfile diff --git a/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py b/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py index 7eb7897..afcf8a8 100644 --- a/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py +++ b/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py @@ -1,3 +1,3 @@ def flat_list_to_dovetail_pairs(lst): - return zip(lst[0:-1], lst[1:]) + return list(zip(lst[0:-1], lst[1:])) diff --git a/chiplotle/tools/logtools/apply_logger.py b/chiplotle/tools/logtools/apply_logger.py index bf74971..d6fe4ac 100644 --- a/chiplotle/tools/logtools/apply_logger.py +++ b/chiplotle/tools/logtools/apply_logger.py @@ -2,7 +2,7 @@ def apply_logger(f): '''Applies a logger object to the 'wrapped' function.''' - logger = get_logger(f.func_name) + logger = get_logger(f.__name__) f.logger = logger return f diff --git a/chiplotle/tools/mathtools/factors.py b/chiplotle/tools/mathtools/factors.py index a94ef89..888d68f 100644 --- a/chiplotle/tools/mathtools/factors.py +++ b/chiplotle/tools/mathtools/factors.py @@ -23,7 +23,7 @@ def factors(n): ''' - if not isinstance(n, (int, long)): + if not isinstance(n, int): raise TypeError if n <= 0: raise ValueError diff --git a/chiplotle/tools/mathtools/xy_to_polar.py b/chiplotle/tools/mathtools/xy_to_polar.py index 63a97aa..c01242a 100644 --- a/chiplotle/tools/mathtools/xy_to_polar.py +++ b/chiplotle/tools/mathtools/xy_to_polar.py @@ -1,4 +1,4 @@ -from __future__ import division + from chiplotle.geometry.core.coordinate import Coordinate import math diff --git a/chiplotle/tools/plottertools/_instantiate_plotter.py b/chiplotle/tools/plottertools/_instantiate_plotter.py index 71ae956..f93e433 100644 --- a/chiplotle/tools/plottertools/_instantiate_plotter.py +++ b/chiplotle/tools/plottertools/_instantiate_plotter.py @@ -19,11 +19,11 @@ def _instantiate_plotter(port, id): from chiplotle.tools.plottertools import interactive_choose_plotter plotter = instantiate_plotter_from_id(ser, id) if not plotter: - print "\nChiplotle does not have a software Plotter type that" - print "matches your hardware plotter %s." % id + print("\nChiplotle does not have a software Plotter type that") + print("matches your hardware plotter %s." % id) plotter = interactive_choose_plotter(ser) - print "\nInstantiated plotter %s:" % plotter + print("\nInstantiated plotter %s:" % plotter) coords = plotter.margins.soft.all_coordinates - print " Drawing limits: (left %s; bottom %s; right %s; top %s)" % coords - print " Buffer Size: %s" % plotter.buffer_size + print(" Drawing limits: (left %s; bottom %s; right %s; top %s)" % coords) + print(" Buffer Size: %s" % plotter.buffer_size) return plotter diff --git a/chiplotle/tools/plottertools/instantiate_plotters.py b/chiplotle/tools/plottertools/instantiate_plotters.py index fbdba41..b774864 100644 --- a/chiplotle/tools/plottertools/instantiate_plotters.py +++ b/chiplotle/tools/plottertools/instantiate_plotters.py @@ -14,7 +14,7 @@ def instantiate_plotters( ): ## if user has set fixed port to plotter mapping... if map is not None: result = [ ] - for k, v in map.items( ): + for k, v in list(map.items( )): p = _instantiate_plotter(k, v) result.append(p) else: diff --git a/chiplotle/tools/plottertools/instantiate_virtual_plotter.py b/chiplotle/tools/plottertools/instantiate_virtual_plotter.py index daa2b3e..f9c7ef7 100644 --- a/chiplotle/tools/plottertools/instantiate_virtual_plotter.py +++ b/chiplotle/tools/plottertools/instantiate_virtual_plotter.py @@ -21,17 +21,17 @@ def instantiate_virtual_plotter(left_bottom = Coordinate(0,0), map = get_config_value('serial_port_to_plotter_map') ## if user has set fixed port to plotter mapping... if map is not None: - for k, v in map.items( ): + for k, v in list(map.items( )): which_plotter = v else: which_plotter = "Plotter" ser = VirtualSerialPort(left_bottom, right_top) plotter = instantiate_plotter_from_id(ser, which_plotter) - print "\nInstantiated plotter %s:" % plotter + print("\nInstantiated plotter %s:" % plotter) coords = plotter.margins.soft.all_coordinates - print " Drawing limits: (left %s; bottom %s; right %s; top %s)" % coords - print " Buffer Size: %s" % plotter.buffer_size + print(" Drawing limits: (left %s; bottom %s; right %s; top %s)" % coords) + print(" Buffer Size: %s" % plotter.buffer_size) return plotter diff --git a/chiplotle/tools/plottertools/interactive_choose_plotter.py b/chiplotle/tools/plottertools/interactive_choose_plotter.py index 59e2bee..bdc6681 100644 --- a/chiplotle/tools/plottertools/interactive_choose_plotter.py +++ b/chiplotle/tools/plottertools/interactive_choose_plotter.py @@ -1,13 +1,13 @@ from chiplotle.tools.serialtools.virtual_serial_port import VirtualSerialPort def interactive_choose_plotter(serial): - print "\nChoose the plotter that best fits your hardware." - print "When in doubt choose the generic 'Plotter'." + print("\nChoose the plotter that best fits your hardware.") + print("When in doubt choose the generic 'Plotter'.") from chiplotle import plotters plotters = _get_instantiated_plotters_from_module(plotters) for i, plotter in enumerate(plotters): - print '[%d] %s' % (i, plotter.__class__.__name__) - return plotters[int(raw_input())].__class__(serial) + print('[%d] %s' % (i, plotter.__class__.__name__)) + return plotters[int(input())].__class__(serial) def _get_instantiated_plotters_from_module(module): diff --git a/chiplotle/tools/plottertools/interactive_plot_layers.py b/chiplotle/tools/plottertools/interactive_plot_layers.py index a3c4312..d49efb5 100644 --- a/chiplotle/tools/plottertools/interactive_plot_layers.py +++ b/chiplotle/tools/plottertools/interactive_plot_layers.py @@ -10,16 +10,16 @@ def interactive_plot_layers(shape, plotter): v.visit(shape) v = LayersVisitor() v.visit(shape) - print 'Layers collected: ', v.layers.keys() + print('Layers collected: ', list(v.layers.keys())) for layer in sorted(v.layers.keys()): - print 'Please set/change paper for layer [%s].' % layer - reply = raw_input('Hit ENTER to plot layer, "n" to skip:') + print('Please set/change paper for layer [%s].' % layer) + reply = input('Hit ENTER to plot layer, "n" to skip:') if reply.lower( ) == 'n': continue - print 'Plotting layer [%s]...' % layer + print('Plotting layer [%s]...' % layer) plotter.write(v.layers[layer]) - print 'Done plotting layer [%s].' % layer + print('Done plotting layer [%s].' % layer) diff --git a/chiplotle/tools/plottertools/search_and_instantiate_plotters.py b/chiplotle/tools/plottertools/search_and_instantiate_plotters.py index 70e343c..cd06f60 100644 --- a/chiplotle/tools/plottertools/search_and_instantiate_plotters.py +++ b/chiplotle/tools/plottertools/search_and_instantiate_plotters.py @@ -11,26 +11,26 @@ def search_and_instantiate_plotters( ): from chiplotle.tools.plottertools import instantiate_plotter_from_id from chiplotle.tools.plottertools import interactive_choose_plotter - print 'Scanning serial ports...' - ports = scan_serial_ports( ).values( ) - print 'Found ports:' - print ' ' + '\n '.join(ports) + print('Scanning serial ports...') + ports = list(scan_serial_ports( ).values( )) + print('Found ports:') + print(' ' + '\n '.join(ports)) ## get serial ports that have a plotter connected... - print '\nSniffing for plotters in all serial ports...' + print('\nSniffing for plotters in all serial ports...') plotters_found = sniff_ports_for_plotters(ports) if len(plotters_found) == 0: - print 'Found no plotter connected to any of the serial ports.' - print 'Is your plotter on?\n' + print('Found no plotter connected to any of the serial ports.') + print('Is your plotter on?\n') ## return a list so we don't get a python error when trying ## to index the result. return [None] else: - for serial_address, pln in plotters_found.items( ): - print ' Found plotter %s in port %s' % (pln, serial_address) + for serial_address, pln in list(plotters_found.items( )): + print(' Found plotter %s in port %s' % (pln, serial_address)) ## instantiate a plotter for every port with a plotter... result = [ ] - for serial_address, pln in plotters_found.items( ): + for serial_address, pln in list(plotters_found.items( )): plotter = _instantiate_plotter(serial_address, pln) result.append(plotter) return result diff --git a/chiplotle/tools/serialtools/interactive_open_serial.py b/chiplotle/tools/serialtools/interactive_open_serial.py index 19dac1a..6c92662 100644 --- a/chiplotle/tools/serialtools/interactive_open_serial.py +++ b/chiplotle/tools/serialtools/interactive_open_serial.py @@ -7,21 +7,21 @@ def interactive_open_serial(baudrate, bytesize, parity, stopbits, timeout, the user to select a port. The function returns a Serial instance. ''' ports = scan_serial_ports( ) - print "Available ports:\n" - for k, port in ports.items( ): - print "(%d) %s" % (k, port.portstr) + print("Available ports:\n") + for k, port in list(ports.items( )): + print("(%d) %s" % (k, port.portstr)) ## get user's input... while True: - sp = raw_input("\nChoose serial port number: ") + sp = input("\nChoose serial port number: ") ## check response... try: sp = int(sp) - if not sp in ports.keys( ): + if not sp in list(ports.keys( )): raise ValueError else: break except ValueError: - print 'Whoops! wrong port number. Try again...' + print('Whoops! wrong port number. Try again...') ## configure port... selected_serial = ports[sp] selected_serial.baudrate = baudrate @@ -32,5 +32,5 @@ def interactive_open_serial(baudrate, bytesize, parity, stopbits, timeout, selected_serial.xonxoff = xonxoff selected_serial.rtscts = rtscts selected_serial.open( ) - print "Okay, opening %s." % selected_serial.portstr + print("Okay, opening %s." % selected_serial.portstr) return selected_serial diff --git a/chiplotle/tools/serialtools/scan_serial_ports_windows.py b/chiplotle/tools/serialtools/scan_serial_ports_windows.py index a426613..1982d41 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports_windows.py +++ b/chiplotle/tools/serialtools/scan_serial_ports_windows.py @@ -2,4 +2,4 @@ def scan_serial_ports_windows( ): from chiplotle.tools.serialtools import scan_serial_ports_from_list - return scan_serial_ports_from_list(range(256)) + return scan_serial_ports_from_list(list(range(256))) diff --git a/chiplotle/tools/serialtools/virtual_serial_port.py b/chiplotle/tools/serialtools/virtual_serial_port.py index 6494e13..1c5956f 100644 --- a/chiplotle/tools/serialtools/virtual_serial_port.py +++ b/chiplotle/tools/serialtools/virtual_serial_port.py @@ -1,7 +1,7 @@ from chiplotle.hpgl import commands from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools.hpgltools.inflate_hpgl_string import inflate_hpgl_string -from sys import maxint +from sys import maxsize class VirtualSerialPort(): def __init__(self, left_bottom, right_top): diff --git a/chiplotle/tools/serialtools/what_plotter_in_port.py b/chiplotle/tools/serialtools/what_plotter_in_port.py index 3660b77..63e67c3 100644 --- a/chiplotle/tools/serialtools/what_plotter_in_port.py +++ b/chiplotle/tools/serialtools/what_plotter_in_port.py @@ -11,7 +11,7 @@ def what_plotter_in_port(port, wait_time=10): Returns the ID of the plotter found or None.''' assert isinstance(wait_time, int) - if not isinstance(port, basestring): + if not isinstance(port, str): raise TypeError('`port` must be a string.') from chiplotle.tools.serialtools import instantiate_serial_from_config_file From ef833571d689dddc2b7571888d2b4cf3e75302a9 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 21:05:08 +0100 Subject: [PATCH 03/82] Ignore pytest cache dir --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 6631751..5373da9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ *.pyc *.egg-info _venv* +.venv +.pytest_cache From fa9490e1b232716e4172553781b294de50a4c694 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 21:07:30 +0100 Subject: [PATCH 04/82] Add requirements.txt --- requirements.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..cc284fc --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +numpy==1.15.0 +pyserial==3.4 From e0c8f8d0bc71c63194c0629094b2d5b288373748 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 21:14:48 +0100 Subject: [PATCH 05/82] Fix chiplotele.tools.io.export errors --- chiplotle/tools/io/export.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/chiplotle/tools/io/export.py b/chiplotle/tools/io/export.py index 43bce65..9f9c6d4 100644 --- a/chiplotle/tools/io/export.py +++ b/chiplotle/tools/io/export.py @@ -24,9 +24,10 @@ def export(expr, filename, fmt = 'eps'): cmd = 'hp2xx --truesize -p 1 -m %s -f "%s" "%s"' % (fmt, imgfile, htmlfile) p = subprocess.Popen(cmd, - shell = True, - stdout = subprocess.PIPE, - stderr = subprocess.PIPE) + shell=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True) stdout, stderr = p.communicate( ) if 'not found' in stderr: From 6e9de3c38e728e28844a6135d05618b145003074 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 21:48:03 +0100 Subject: [PATCH 06/82] Fix relativise type check --- chiplotle/geometry/core/coordinate.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/chiplotle/geometry/core/coordinate.py b/chiplotle/geometry/core/coordinate.py index 0a539e7..dbee72f 100644 --- a/chiplotle/geometry/core/coordinate.py +++ b/chiplotle/geometry/core/coordinate.py @@ -1,6 +1,9 @@ +import numbers import operator import math +import numpy as np + class Coordinate(object): @@ -13,7 +16,7 @@ class Coordinate(object): # return super(Coordinate, cls).__new__(cls) def __init__(self, *args): - if args and not isinstance(args[0], (int, float)): + if args and not isinstance(args[0], numbers.Number): raise TypeError('Arguments must all be scalars') self._coords = list(args) @@ -70,7 +73,7 @@ def __len__(self): return len(self._coords) def __repr__(self): - return 'Coordinate(%s)' % self._coords + return 'Coordinate({})'.format(self._coords) def __str__(self): return '<%s>' % ','.join([str(c) for c in self._coords]) From a4d4f02ce1b06f8387d30e75b59bdfc43d493cb3 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 21:50:30 +0100 Subject: [PATCH 07/82] Fix virtual_serial_port maxint -> maxsize --- chiplotle/tools/serialtools/virtual_serial_port.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chiplotle/tools/serialtools/virtual_serial_port.py b/chiplotle/tools/serialtools/virtual_serial_port.py index 1c5956f..c86cf94 100644 --- a/chiplotle/tools/serialtools/virtual_serial_port.py +++ b/chiplotle/tools/serialtools/virtual_serial_port.py @@ -18,7 +18,7 @@ def __init__(self, left_bottom, right_top): self.right = right_top.x self.bottom = left_bottom.y self.top = right_top.y - self.buffer_size = maxint + self.buffer_size = maxsize self.portstr = "VirtualSerialPort" def write(self, command): From fc6af5ae064ef4d337a870ca88301c2a496f93a0 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 21:57:12 +0100 Subject: [PATCH 08/82] Fix LayerVisitor tests --- chiplotle/geometry/core/layersvisitor.py | 3 ++- chiplotle/geometry/core/test/test_layersvisitor.py | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/chiplotle/geometry/core/layersvisitor.py b/chiplotle/geometry/core/layersvisitor.py index d6c0cd9..e94ed9c 100644 --- a/chiplotle/geometry/core/layersvisitor.py +++ b/chiplotle/geometry/core/layersvisitor.py @@ -1,10 +1,11 @@ from chiplotle.core.visitor import Visitor + class LayersVisitor(Visitor): '''Sorts / splits shapes based on the layers they live in.''' def __init__(self): - self.layers = {} + self.layers = dict() def visit_Layer(self, node, current_layer=None, tree=''): for s in node: diff --git a/chiplotle/geometry/core/test/test_layersvisitor.py b/chiplotle/geometry/core/test/test_layersvisitor.py index e125a83..087d45a 100644 --- a/chiplotle/geometry/core/test/test_layersvisitor.py +++ b/chiplotle/geometry/core/test/test_layersvisitor.py @@ -27,12 +27,12 @@ def test_layersvisitor_03(): l1 = Layer([r1], 1) l2 = Layer([l1, r2], 2) - l3 = Layer([t3, l2], 3) + l3 = Layer([t3, l2], 3) v = LayersVisitor() v.visit(l3) - assert list(v.layers.keys()) == [1, 2, 3] + assert set(v.layers.keys()) == {1, 2, 3} assert v.layers[1] == [r1] assert v.layers[2] == [r2] assert v.layers[3] == [t3] @@ -58,7 +58,7 @@ def test_layersvisitor_04(): v = LayersVisitor() v.visit(l3) - assert list(v.layers.keys()) == [1, 3] + assert set(v.layers.keys()) == {1, 3} assert v.layers[1] == [r1] assert v.layers[3] == [t3, r2] From 732735cd00b96b543c45f88244ef58f1ce766b0d Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 22:05:55 +0100 Subject: [PATCH 09/82] Update division methods of CoordinateArray to Python 3 --- chiplotle/geometry/core/coordinatearray.py | 4 ++-- chiplotle/geometry/core/test/test_coordinatearray_init.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chiplotle/geometry/core/coordinatearray.py b/chiplotle/geometry/core/coordinatearray.py index 3b62e49..9852064 100644 --- a/chiplotle/geometry/core/coordinatearray.py +++ b/chiplotle/geometry/core/coordinatearray.py @@ -126,9 +126,9 @@ def __div__(self, arg): return CoordinateArray([a / arg for a in self._data]) def __truediv__(self, arg): - return self / arg + return self.__div__(arg) - def __idiv__(self, arg): + def __itruediv__(self, arg): self._data = (self / arg)._data return self diff --git a/chiplotle/geometry/core/test/test_coordinatearray_init.py b/chiplotle/geometry/core/test/test_coordinatearray_init.py index 8421377..9458c70 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_init.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_init.py @@ -67,7 +67,7 @@ def test_coordinatearray__div__02( ): ## rdiv ## -## idiv ## +## itruediv ## def test_coordinatearray__idiv__02( ): '''In place division with another CoordinateArray works.''' From 0c0527f1952db164fda3ee6c1c64ad58bc458396 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 22:26:38 +0100 Subject: [PATCH 10/82] Fix broken pens_updown_to_papr method (fix by @victoradan) See https://github.com/drepetto/chiplotle/blob/13ac28a7645a018a4bc62980cb174627ca6b5b54/chiplotle/tools/hpgltools/pens_updown_to_papr.py I lifted the code directly from there as the test looked to have been originally broken, there is an open pull request to fix this issue on the mainline at https://github.com/drepetto/chiplotle/pull/5 --- .../tools/hpgltools/pens_updown_to_papr.py | 63 +++++-------------- 1 file changed, 14 insertions(+), 49 deletions(-) diff --git a/chiplotle/tools/hpgltools/pens_updown_to_papr.py b/chiplotle/tools/hpgltools/pens_updown_to_papr.py index 2b18427..c7cc9af 100644 --- a/chiplotle/tools/hpgltools/pens_updown_to_papr.py +++ b/chiplotle/tools/hpgltools/pens_updown_to_papr.py @@ -1,5 +1,7 @@ +import copy + from chiplotle.hpgl.commands import PA, PR, PU, PD -from chiplotle.geometry.core.coordinate import Coordinate + def pens_updown_to_papr(lst): '''Converts all PU((x1, y1, x2, y2) and PD(x1, y1, x2, y2) found in `lst` @@ -11,63 +13,26 @@ def pens_updown_to_papr(lst): raise TypeError('`lst` argument must be a list or tuple.') result = [ ] - last_move = None - - pen_down = False - pen_up = True - + last_penplot = None for e in lst: if isinstance(e, (PU, PD)): - if len(e.xy) > 0: - if last_move is None: + if last_penplot is None: msg = "*** WARNING: %s with coordinates found without prior PA or PR. PA assumed." % e print(msg) - last_move = PA( ) - - new_move = None - - if isinstance(last_move, PA): - new_move = PA() - elif isinstance(last_move, PR): - new_move = PR() - - new_move.xy = e.xy - - up_down_command = None - - if isinstance(e, PU): - if pen_down: - up_down_command = PU( ) - result.append(up_down_command) - pen_up = True - pen_down = False - - elif isinstance(e, PD): - if pen_up: - up_down_command = PD( ) - result.append(up_down_command) - pen_down = True - pen_up = False - - - result.append(new_move) - - last_move = new_move + last_penplot = PA( ) + last_penplot.xy = e.xy + ec = copy.copy(e) + ec.xy = None + result.append(ec) + result.append(copy.copy(last_penplot)) else: - if isinstance(e, PU): - if pen_down: - result.append(e) - pen_up = True - elif isinstance(e, PD): - if pen_up: - result.append(e) - pen_down = True + result.append(e) else: if isinstance(e, PR): - last_move = PR( ) + last_penplot = PR( ) elif isinstance(e, PA): - last_move = PA( ) + last_penplot = PA( ) result.append(e) return result From b2ebfe6db31fa7020e51da1b5dd4f007ba3b013c Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 22:51:13 +0100 Subject: [PATCH 11/82] Pasteurize lib to attempt to make py2/3 compatible --- chiplotle/__init__.py | 6 ++++++ chiplotle/core/cfg/_run_chiplotle.py | 6 ++++++ chiplotle/core/cfg/_run_chiplotle_virtual.py | 6 ++++++ chiplotle/core/cfg/cfg.py | 6 ++++++ chiplotle/core/cfg/get_config_value.py | 6 ++++++ chiplotle/core/cfg/initialize_files.py | 7 +++++++ chiplotle/core/cfg/read_config_file.py | 7 +++++++ chiplotle/core/cfg/write_config_file.py | 7 +++++++ chiplotle/core/cfg/write_log_file.py | 7 +++++++ chiplotle/core/devscripts/replace_in_files.py | 8 ++++++++ chiplotle/core/errors.py | 9 ++++++++- chiplotle/core/imports/get_functions_in_module.py | 6 ++++++ chiplotle/core/imports/package_import.py | 6 ++++++ .../core/imports/remove_modules_from_namespace.py | 6 ++++++ chiplotle/core/interfaces/formatdecorator.py | 6 ++++++ chiplotle/core/interfaces/interface.py | 6 ++++++ chiplotle/core/interfaces/margins/interface.py | 6 ++++++ chiplotle/core/interfaces/parentage/interface.py | 6 ++++++ chiplotle/core/visitor.py | 6 ++++++ chiplotle/documentation/conf.py | 6 ++++++ chiplotle/documentation/scripts/compile_api.py | 7 +++++++ chiplotle/examples/abstract_masterpiece.py | 9 +++++++++ chiplotle/examples/abstract_masterpiece_file.py | 9 +++++++++ chiplotle/examples/abstract_masterpiece_virtual.py | 11 ++++++++++- chiplotle/examples/importing_an_hpgl_file.py | 6 ++++++ chiplotle/examples/liveplot_data-to-path.py | 9 ++++++++- chiplotle/examples/liveplot_virtual_generic.py | 6 ++++++ chiplotle/examples/liveplot_virtual_specific.py | 6 ++++++ chiplotle/fonts/dorkbot.py | 6 ++++++ chiplotle/geometry/core/__init__.py | 6 ++++++ chiplotle/geometry/core/affixformatvisitor.py | 6 ++++++ chiplotle/geometry/core/coordinate.py | 9 +++++++++ chiplotle/geometry/core/coordinatearray.py | 8 ++++++++ .../geometry/core/coordinatearraypropertiesmixin.py | 7 +++++++ chiplotle/geometry/core/group.py | 6 ++++++ chiplotle/geometry/core/hpglformatvisitor.py | 6 ++++++ chiplotle/geometry/core/label.py | 6 ++++++ chiplotle/geometry/core/layer.py | 6 ++++++ chiplotle/geometry/core/layersvisitor.py | 7 +++++++ chiplotle/geometry/core/metadata.py | 6 ++++++ chiplotle/geometry/core/path.py | 6 ++++++ chiplotle/geometry/core/polygon.py | 6 ++++++ chiplotle/geometry/core/shape.py | 7 +++++++ chiplotle/geometry/core/shapepropertiesmixin.py | 6 ++++++ chiplotle/geometry/core/tagsvisitor.py | 6 ++++++ chiplotle/geometry/core/test/test_coordinate_add.py | 6 ++++++ chiplotle/geometry/core/test/test_coordinate_init.py | 7 +++++++ chiplotle/geometry/core/test/test_coordinate_mul.py | 6 ++++++ chiplotle/geometry/core/test/test_coordinate_sub.py | 6 ++++++ .../geometry/core/test/test_coordinatearray_add.py | 6 ++++++ .../geometry/core/test/test_coordinatearray_append.py | 6 ++++++ .../geometry/core/test/test_coordinatearray_extend.py | 6 ++++++ .../geometry/core/test/test_coordinatearray_init.py | 6 ++++++ .../core/test/test_coordinatearray_properties.py | 6 ++++++ chiplotle/geometry/core/test/test_layersvisitor.py | 7 +++++++ chiplotle/geometry/core/test/test_path_add.py | 6 ++++++ chiplotle/geometry/core/test/test_path_mul.py | 6 ++++++ chiplotle/geometry/core/test/test_path_sub.py | 6 ++++++ chiplotle/geometry/core/test/test_shapes_group_add.py | 6 ++++++ .../geometry/core/test/test_shapes_group_init.py | 6 ++++++ .../geometry/core/test/test_shapes_group_points.py | 6 ++++++ chiplotle/geometry/core/test/test_transformlock.py | 6 ++++++ chiplotle/geometry/core/transformlock.py | 6 ++++++ chiplotle/geometry/shapes/__init__.py | 6 ++++++ chiplotle/geometry/shapes/annotation.py | 8 ++++++++ chiplotle/geometry/shapes/arc_circle.py | 7 +++++++ chiplotle/geometry/shapes/arc_ellipse.py | 7 +++++++ chiplotle/geometry/shapes/arrow.py | 6 ++++++ chiplotle/geometry/shapes/catmull_path.py | 7 +++++++ chiplotle/geometry/shapes/circle.py | 7 +++++++ chiplotle/geometry/shapes/cross.py | 6 ++++++ chiplotle/geometry/shapes/donut.py | 6 ++++++ chiplotle/geometry/shapes/ellipse.py | 7 +++++++ chiplotle/geometry/shapes/fan.py | 6 ++++++ chiplotle/geometry/shapes/frame.py | 6 ++++++ chiplotle/geometry/shapes/grid.py | 7 +++++++ chiplotle/geometry/shapes/group.py | 6 ++++++ chiplotle/geometry/shapes/isosceles.py | 6 ++++++ chiplotle/geometry/shapes/label.py | 6 ++++++ chiplotle/geometry/shapes/layer.py | 6 ++++++ chiplotle/geometry/shapes/line.py | 6 ++++++ chiplotle/geometry/shapes/line_displaced.py | 7 +++++++ chiplotle/geometry/shapes/lock_group.py | 6 ++++++ chiplotle/geometry/shapes/path.py | 6 ++++++ chiplotle/geometry/shapes/path_bezier.py | 6 ++++++ chiplotle/geometry/shapes/path_interpolated.py | 7 +++++++ chiplotle/geometry/shapes/path_linear.py | 9 +++++++++ chiplotle/geometry/shapes/radial_ruler.py | 8 ++++++++ chiplotle/geometry/shapes/random_walk_cartesian.py | 7 +++++++ chiplotle/geometry/shapes/random_walk_polar.py | 7 +++++++ chiplotle/geometry/shapes/rectangle.py | 6 ++++++ chiplotle/geometry/shapes/ruler.py | 8 ++++++++ chiplotle/geometry/shapes/spiral_archimedean.py | 7 +++++++ chiplotle/geometry/shapes/spiral_logarithmic.py | 7 +++++++ chiplotle/geometry/shapes/square.py | 6 ++++++ chiplotle/geometry/shapes/star_crisscross.py | 8 ++++++++ chiplotle/geometry/shapes/star_outline.py | 7 +++++++ chiplotle/geometry/shapes/supershape.py | 8 ++++++++ .../geometry/shapes/symmetric_polygon_side_length.py | 6 ++++++ chiplotle/geometry/shapes/target.py | 7 +++++++ chiplotle/geometry/shapes/test/test_bezier_path.py | 6 ++++++ chiplotle/geometry/transforms/__init__.py | 6 ++++++ .../geometry/transforms/arrange_shapes_on_path.py | 8 ++++++++ chiplotle/geometry/transforms/center_at.py | 6 ++++++ chiplotle/geometry/transforms/noise.py | 6 ++++++ chiplotle/geometry/transforms/offset.py | 6 ++++++ .../geometry/transforms/perpendicular_displace.py | 7 +++++++ chiplotle/geometry/transforms/perpendicular_noise.py | 7 +++++++ chiplotle/geometry/transforms/rotate.py | 6 ++++++ chiplotle/geometry/transforms/scale.py | 6 ++++++ .../transforms/test/test_perpendicular_noise_path.py | 6 ++++++ chiplotle/geometry/transforms/test/test_scale_path.py | 6 ++++++ chiplotle/geometry/transforms/transformvisitor.py | 6 ++++++ chiplotle/hpgl/abstract/arc.py | 6 ++++++ chiplotle/hpgl/abstract/hpgl.py | 6 ++++++ chiplotle/hpgl/abstract/hpglescape.py | 7 +++++++ chiplotle/hpgl/abstract/hpglprimitive.py | 7 +++++++ chiplotle/hpgl/abstract/penplot.py | 6 ++++++ chiplotle/hpgl/abstract/positional.py | 6 ++++++ chiplotle/hpgl/abstract/twopoint.py | 7 +++++++ chiplotle/hpgl/commands.py | 7 +++++++ chiplotle/hpgl/formatters/__init__.py | 6 ++++++ chiplotle/hpgl/formatters/filltype.py | 6 ++++++ chiplotle/hpgl/formatters/linetype.py | 8 ++++++++ chiplotle/hpgl/formatters/pen.py | 6 ++++++ chiplotle/hpgl/label.py | 6 ++++++ chiplotle/hpgl/pen.py | 6 ++++++ chiplotle/hpgl/test/test_AA.py | 6 ++++++ chiplotle/hpgl/test/test_AR.py | 6 ++++++ chiplotle/hpgl/test/test_CI.py | 6 ++++++ chiplotle/hpgl/test/test_CP.py | 6 ++++++ chiplotle/hpgl/test/test_DI.py | 6 ++++++ chiplotle/hpgl/test/test_DR.py | 6 ++++++ chiplotle/hpgl/test/test_EA.py | 6 ++++++ chiplotle/hpgl/test/test_ER.py | 6 ++++++ chiplotle/hpgl/test/test_ES.py | 6 ++++++ chiplotle/hpgl/test/test_EW.py | 6 ++++++ chiplotle/hpgl/test/test_FS.py | 6 ++++++ chiplotle/hpgl/test/test_FT.py | 6 ++++++ chiplotle/hpgl/test/test_IP.py | 6 ++++++ chiplotle/hpgl/test/test_PA.py | 6 ++++++ chiplotle/hpgl/test/test_PU.py | 6 ++++++ chiplotle/hpgl/test/test_SI.py | 6 ++++++ chiplotle/hpgl/test/test_SR.py | 6 ++++++ chiplotle/hpgl/test/test_VS.py | 6 ++++++ chiplotle/hpgl/test/test_WG.py | 6 ++++++ chiplotle/hpgl/test/test_dci_sethandshakemode.py | 6 ++++++ chiplotle/hpgl/test/test_hpglescape.py | 6 ++++++ chiplotle/hpgl/test/test_hpglprimitive.py | 6 ++++++ chiplotle/hpgl/test/test_pen.py | 6 ++++++ chiplotle/hpgl/test/test_penplot.py | 6 ++++++ chiplotle/plotters/__init__.py | 6 ++++++ chiplotle/plotters/baseplotter.py | 11 ++++++++++- chiplotle/plotters/dpx2000.py | 6 ++++++ chiplotle/plotters/dpx2200.py | 6 ++++++ chiplotle/plotters/dpx3300.py | 6 ++++++ chiplotle/plotters/drawingplotter.py | 6 ++++++ chiplotle/plotters/dxy1300.py | 6 ++++++ chiplotle/plotters/dxy880.py | 6 ++++++ chiplotle/plotters/hp7475a.py | 6 ++++++ chiplotle/plotters/hp7550a.py | 6 ++++++ chiplotle/plotters/hp7575a.py | 6 ++++++ chiplotle/plotters/hp7576a.py | 6 ++++++ chiplotle/plotters/hp7585b.py | 6 ++++++ chiplotle/plotters/hp7595a.py | 6 ++++++ chiplotle/plotters/hp7596a.py | 6 ++++++ .../plotters/interactive/interactive_commands.py | 8 ++++++++ chiplotle/plotters/margins/marginshard.py | 6 ++++++ chiplotle/plotters/margins/marginssoft.py | 6 ++++++ chiplotle/plotters/margins/plottermargins.py | 6 ++++++ chiplotle/plotters/margins/test/test_marginsoft.py | 6 ++++++ chiplotle/plotters/plotter.py | 6 ++++++ chiplotle/plotters/test/plotter_query.py | 6 ++++++ chiplotle/plotters/test/test_drawingplotter.py | 6 ++++++ chiplotle/plotters/test/test_plotter_write.py | 6 ++++++ chiplotle/scripts/envelope.py | 8 ++++++++ chiplotle/scripts/find_hpgl_file_dimensions.py | 6 ++++++ chiplotle/scripts/plot_hpgl_file.py | 6 ++++++ chiplotle/scripts/plot_hpgl_file_max_size.py | 7 +++++++ chiplotle/scripts/plot_hpgl_file_virtual.py | 6 ++++++ chiplotle/scripts/typewriter.py | 8 ++++++++ chiplotle/scripts/view_hpgl_file.py | 6 ++++++ chiplotle/tools/__init__.py | 6 ++++++ .../tools/geometrytools/get_line_intersection.py | 6 ++++++ .../tools/geometrytools/get_shape_intersections.py | 7 +++++++ chiplotle/tools/geometrytools/scale.py | 6 ++++++ .../split_coordinatearray_proportionally.py | 8 ++++++++ .../tools/geometrytools/split_vector_equidistantly.py | 8 ++++++++ chiplotle/tools/hpgltools/__init__.py | 6 ++++++ .../convert_coordinates_to_hpgl_absolute_path.py | 6 ++++++ .../tools/hpgltools/convert_relatives_to_absolutes.py | 6 ++++++ chiplotle/tools/hpgltools/get_all_coordinates.py | 6 ++++++ chiplotle/tools/hpgltools/get_bounding_box.py | 6 ++++++ chiplotle/tools/hpgltools/get_centroid.py | 6 ++++++ chiplotle/tools/hpgltools/inflate_hpgl_string.py | 6 ++++++ chiplotle/tools/hpgltools/is_primitive_absolute.py | 6 ++++++ chiplotle/tools/hpgltools/parse_hpgl_string.py | 6 ++++++ chiplotle/tools/hpgltools/pens_updown_to_papr.py | 6 ++++++ chiplotle/tools/hpgltools/pr_to_pa.py | 6 ++++++ chiplotle/tools/hpgltools/relativize.py | 6 ++++++ chiplotle/tools/hpgltools/rotate_hpglprimitives.py | 6 ++++++ chiplotle/tools/hpgltools/scale.py | 6 ++++++ .../test/test_convert_coordinates_to_absolute_path.py | 6 ++++++ .../test/test_convert_relatives_to_absolutes.py | 6 ++++++ .../tools/hpgltools/test/test_get_all_coordinates.py | 6 ++++++ .../tools/hpgltools/test/test_get_bounding_box.py | 6 ++++++ chiplotle/tools/hpgltools/test/test_get_centroid.py | 6 ++++++ .../tools/hpgltools/test/test_inflate_hpgl_string.py | 6 ++++++ .../tools/hpgltools/test/test_parse_hpgl_string.py | 6 ++++++ .../tools/hpgltools/test/test_pens_updown_to_papr.py | 6 ++++++ chiplotle/tools/hpgltools/test/test_pr_to_pa.py | 6 ++++++ chiplotle/tools/hpgltools/test/test_relativize.py | 6 ++++++ .../hpgltools/test/test_rotate_hpglprimitives.py | 6 ++++++ chiplotle/tools/hpgltools/test/test_scale.py | 6 ++++++ chiplotle/tools/hpgltools/test/test_transpose.py | 6 ++++++ chiplotle/tools/hpgltools/transpose.py | 6 ++++++ chiplotle/tools/io/__init__.py | 6 ++++++ chiplotle/tools/io/_open_file.py | 6 ++++++ chiplotle/tools/io/export.py | 6 ++++++ chiplotle/tools/io/import_hpgl_file.py | 7 +++++++ chiplotle/tools/io/save_hpgl.py | 7 +++++++ chiplotle/tools/io/test/test_export.py | 6 ++++++ chiplotle/tools/io/test/test_import_hpgl_file.py | 6 ++++++ chiplotle/tools/io/test/test_save_hpgl.py | 6 ++++++ chiplotle/tools/io/view.py | 6 ++++++ chiplotle/tools/iterabletools/__init__.py | 6 ++++++ .../iterabletools/flat_list_to_dovetail_pairs.py | 7 +++++++ chiplotle/tools/iterabletools/flat_list_to_pairs.py | 7 +++++++ chiplotle/tools/iterabletools/flatten.py | 6 ++++++ chiplotle/tools/iterabletools/is_flat_list.py | 6 ++++++ chiplotle/tools/iterabletools/isiterable.py | 6 ++++++ chiplotle/tools/iterabletools/ispair.py | 6 ++++++ chiplotle/tools/logtools/apply_logger.py | 6 ++++++ chiplotle/tools/logtools/get_logger.py | 6 ++++++ chiplotle/tools/mathtools/__init__.py | 6 ++++++ chiplotle/tools/mathtools/bezier_interpolation.py | 8 ++++++++ chiplotle/tools/mathtools/catmull_interpolation.py | 7 +++++++ chiplotle/tools/mathtools/cumsum.py | 6 ++++++ chiplotle/tools/mathtools/difference.py | 7 +++++++ chiplotle/tools/mathtools/factors.py | 6 ++++++ chiplotle/tools/mathtools/interpolate_cosine.py | 6 ++++++ chiplotle/tools/mathtools/interpolate_exponential.py | 6 ++++++ chiplotle/tools/mathtools/interpolate_linear.py | 6 ++++++ chiplotle/tools/mathtools/lcm.py | 6 ++++++ chiplotle/tools/mathtools/pascal_row.py | 7 +++++++ chiplotle/tools/mathtools/polar_to_xy.py | 6 ++++++ chiplotle/tools/mathtools/rotate_2d.py | 6 ++++++ chiplotle/tools/mathtools/rotate_3d.py | 6 ++++++ chiplotle/tools/mathtools/superformula.py | 6 ++++++ chiplotle/tools/mathtools/test/test_difference.py | 6 ++++++ .../tools/mathtools/test/test_mathtools_factors.py | 6 ++++++ chiplotle/tools/mathtools/test/test_polar_to_xy.py | 7 +++++++ chiplotle/tools/mathtools/test/test_rotate_2d.py | 7 +++++++ chiplotle/tools/mathtools/test/test_xy_to_polar.py | 7 +++++++ chiplotle/tools/mathtools/xy_to_polar.py | 6 ++++++ chiplotle/tools/measuretools/__init__.py | 6 ++++++ chiplotle/tools/measuretools/cm_to_pu.py | 6 ++++++ chiplotle/tools/measuretools/in_to_pu.py | 6 ++++++ chiplotle/tools/measuretools/mm_to_pu.py | 6 ++++++ chiplotle/tools/measuretools/pu_to_cm.py | 6 ++++++ chiplotle/tools/measuretools/pu_to_in.py | 6 ++++++ chiplotle/tools/measuretools/pu_to_mm.py | 6 ++++++ chiplotle/tools/measuretools/test/test_cm_to_pu.py | 6 ++++++ chiplotle/tools/measuretools/test/test_in_to_pu.py | 6 ++++++ chiplotle/tools/measuretools/test/test_mm_to_pu.py | 6 ++++++ chiplotle/tools/measuretools/test/test_pu_to_cm.py | 6 ++++++ chiplotle/tools/measuretools/test/test_pu_to_in.py | 6 ++++++ chiplotle/tools/measuretools/test/test_pu_to_mm.py | 6 ++++++ chiplotle/tools/plottertools/__init__.py | 6 ++++++ chiplotle/tools/plottertools/_instantiate_plotter.py | 6 ++++++ .../tools/plottertools/instantiate_plotter_from_id.py | 6 ++++++ chiplotle/tools/plottertools/instantiate_plotters.py | 6 ++++++ .../tools/plottertools/instantiate_virtual_plotter.py | 6 ++++++ .../tools/plottertools/interactive_choose_plotter.py | 8 ++++++++ .../tools/plottertools/interactive_plot_layers.py | 7 +++++++ .../plottertools/search_and_instantiate_plotters.py | 6 ++++++ chiplotle/tools/serialtools/__init__.py | 6 ++++++ .../instantiate_serial_from_config_file.py | 6 ++++++ .../tools/serialtools/interactive_open_serial.py | 8 ++++++++ chiplotle/tools/serialtools/scan_serial_ports.py | 6 ++++++ .../tools/serialtools/scan_serial_ports_from_list.py | 6 ++++++ .../tools/serialtools/scan_serial_ports_linux.py | 6 ++++++ .../tools/serialtools/scan_serial_ports_windows.py | 7 +++++++ .../tools/serialtools/sniff_ports_for_plotters.py | 6 ++++++ chiplotle/tools/serialtools/virtual_serial_port.py | 9 ++++++++- chiplotle/tools/serialtools/what_plotter_in_port.py | 6 ++++++ chiplotle/tools/shapetools/get_shapes_with_tag.py | 6 ++++++ requirements-dev.txt | 1 + requirements.txt | 1 + 289 files changed, 1828 insertions(+), 5 deletions(-) diff --git a/chiplotle/__init__.py b/chiplotle/__init__.py index 29d9067..d322fe1 100644 --- a/chiplotle/__init__.py +++ b/chiplotle/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.cfg import __version__ from chiplotle.core.cfg.initialize_files import initialize_files __authors__ = "Victor Adan, Douglas Repetto" diff --git a/chiplotle/core/cfg/_run_chiplotle.py b/chiplotle/core/cfg/_run_chiplotle.py index 531e92f..ce2e6d9 100644 --- a/chiplotle/core/cfg/_run_chiplotle.py +++ b/chiplotle/core/cfg/_run_chiplotle.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.cfg import __version__ import os diff --git a/chiplotle/core/cfg/_run_chiplotle_virtual.py b/chiplotle/core/cfg/_run_chiplotle_virtual.py index 2fa8121..72550cb 100644 --- a/chiplotle/core/cfg/_run_chiplotle_virtual.py +++ b/chiplotle/core/cfg/_run_chiplotle_virtual.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.cfg import __version__ import os diff --git a/chiplotle/core/cfg/cfg.py b/chiplotle/core/cfg/cfg.py index 2ea91e9..3a63603 100644 --- a/chiplotle/core/cfg/cfg.py +++ b/chiplotle/core/cfg/cfg.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import os __version__ = '0.4.1' diff --git a/chiplotle/core/cfg/get_config_value.py b/chiplotle/core/cfg/get_config_value.py index 0558d65..b34a201 100644 --- a/chiplotle/core/cfg/get_config_value.py +++ b/chiplotle/core/cfg/get_config_value.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.read_config_file import read_config_file def get_config_value(var_name): diff --git a/chiplotle/core/cfg/initialize_files.py b/chiplotle/core/cfg/initialize_files.py index 58c054b..3fcfb83 100644 --- a/chiplotle/core/cfg/initialize_files.py +++ b/chiplotle/core/cfg/initialize_files.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import input +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.write_config_file import write_config_file from chiplotle.core.cfg.write_log_file import write_log_file from chiplotle.core.cfg.cfg import LOG_FILE diff --git a/chiplotle/core/cfg/read_config_file.py b/chiplotle/core/cfg/read_config_file.py index e46c766..d36f21f 100644 --- a/chiplotle/core/cfg/read_config_file.py +++ b/chiplotle/core/cfg/read_config_file.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import open +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.cfg import CONFIG_FILE def read_config_file( ): diff --git a/chiplotle/core/cfg/write_config_file.py b/chiplotle/core/cfg/write_config_file.py index cd348ae..e4c7bb6 100644 --- a/chiplotle/core/cfg/write_config_file.py +++ b/chiplotle/core/cfg/write_config_file.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import open +from future import standard_library +standard_library.install_aliases() import time diff --git a/chiplotle/core/cfg/write_log_file.py b/chiplotle/core/cfg/write_log_file.py index 79b0db9..f8cd155 100644 --- a/chiplotle/core/cfg/write_log_file.py +++ b/chiplotle/core/cfg/write_log_file.py @@ -1,4 +1,11 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import open +from future import standard_library +standard_library.install_aliases() def write_log_file(path): f = open(path, 'w') f.write('') diff --git a/chiplotle/core/devscripts/replace_in_files.py b/chiplotle/core/devscripts/replace_in_files.py index 3dcb00e..6baee69 100755 --- a/chiplotle/core/devscripts/replace_in_files.py +++ b/chiplotle/core/devscripts/replace_in_files.py @@ -1,5 +1,13 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from builtins import open +from builtins import input +from future import standard_library +standard_library.install_aliases() import os diff --git a/chiplotle/core/errors.py b/chiplotle/core/errors.py index 68fc03c..39ed718 100644 --- a/chiplotle/core/errors.py +++ b/chiplotle/core/errors.py @@ -1,4 +1,11 @@ - +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import + +from builtins import str +from future import standard_library +standard_library.install_aliases() class _ChiplotleError(Exception): '''Abstract error class for Chiplotle!''' diff --git a/chiplotle/core/imports/get_functions_in_module.py b/chiplotle/core/imports/get_functions_in_module.py index d7ebe78..9cc5a91 100644 --- a/chiplotle/core/imports/get_functions_in_module.py +++ b/chiplotle/core/imports/get_functions_in_module.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import os diff --git a/chiplotle/core/imports/package_import.py b/chiplotle/core/imports/package_import.py index 3ab5587..ee0e860 100644 --- a/chiplotle/core/imports/package_import.py +++ b/chiplotle/core/imports/package_import.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.get_functions_in_module \ import _get_functions_in_module from chiplotle.core.imports.remove_modules_from_namespace \ diff --git a/chiplotle/core/imports/remove_modules_from_namespace.py b/chiplotle/core/imports/remove_modules_from_namespace.py index 7652d62..60dc2f8 100644 --- a/chiplotle/core/imports/remove_modules_from_namespace.py +++ b/chiplotle/core/imports/remove_modules_from_namespace.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import types diff --git a/chiplotle/core/interfaces/formatdecorator.py b/chiplotle/core/interfaces/formatdecorator.py index e7de712..2c28067 100644 --- a/chiplotle/core/interfaces/formatdecorator.py +++ b/chiplotle/core/interfaces/formatdecorator.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.shape import _Shape class FormatDecorator(object): diff --git a/chiplotle/core/interfaces/interface.py b/chiplotle/core/interfaces/interface.py index 0c1d920..81ac7f5 100644 --- a/chiplotle/core/interfaces/interface.py +++ b/chiplotle/core/interfaces/interface.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() class _Interface(object): def __init__(self, client): diff --git a/chiplotle/core/interfaces/margins/interface.py b/chiplotle/core/interfaces/margins/interface.py index 230dd79..c3edcc8 100644 --- a/chiplotle/core/interfaces/margins/interface.py +++ b/chiplotle/core/interfaces/margins/interface.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.interfaces.interface import _Interface from chiplotle.plotters.margins.marginssoft import MarginsSoft from chiplotle.plotters.margins.marginshard import MarginsHard diff --git a/chiplotle/core/interfaces/parentage/interface.py b/chiplotle/core/interfaces/parentage/interface.py index aa6ebee..093b83b 100644 --- a/chiplotle/core/interfaces/parentage/interface.py +++ b/chiplotle/core/interfaces/parentage/interface.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.interfaces.interface import _Interface class ParentageInterface(_Interface): diff --git a/chiplotle/core/visitor.py b/chiplotle/core/visitor.py index 22a9cea..f9d7fd6 100644 --- a/chiplotle/core/visitor.py +++ b/chiplotle/core/visitor.py @@ -1,5 +1,11 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() class Visitor(object): def visit(self, node, *args, **kwargs): diff --git a/chiplotle/documentation/conf.py b/chiplotle/documentation/conf.py index 4fe63de..769519f 100644 --- a/chiplotle/documentation/conf.py +++ b/chiplotle/documentation/conf.py @@ -11,6 +11,12 @@ # All configuration values have a default; values that are commented out # serve to show the default. +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import sys, os # If extensions (or modules to document with autodoc) are in another directory, diff --git a/chiplotle/documentation/scripts/compile_api.py b/chiplotle/documentation/scripts/compile_api.py index d76e6ac..4a97a61 100755 --- a/chiplotle/documentation/scripts/compile_api.py +++ b/chiplotle/documentation/scripts/compile_api.py @@ -1,6 +1,13 @@ #!/usr/bin/env python +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import open +from future import standard_library +standard_library.install_aliases() def compile_plotters(): from chiplotle import plotters diff --git a/chiplotle/examples/abstract_masterpiece.py b/chiplotle/examples/abstract_masterpiece.py index b749064..8d0e1e7 100644 --- a/chiplotle/examples/abstract_masterpiece.py +++ b/chiplotle/examples/abstract_masterpiece.py @@ -1,5 +1,14 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import division +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import input +from builtins import range +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle import * import random diff --git a/chiplotle/examples/abstract_masterpiece_file.py b/chiplotle/examples/abstract_masterpiece_file.py index f517179..5512016 100755 --- a/chiplotle/examples/abstract_masterpiece_file.py +++ b/chiplotle/examples/abstract_masterpiece_file.py @@ -1,5 +1,14 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import division +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import input +from builtins import range +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.tools import * import random diff --git a/chiplotle/examples/abstract_masterpiece_virtual.py b/chiplotle/examples/abstract_masterpiece_virtual.py index 4663507..0e70278 100755 --- a/chiplotle/examples/abstract_masterpiece_virtual.py +++ b/chiplotle/examples/abstract_masterpiece_virtual.py @@ -1,7 +1,16 @@ #!/usr/bin/env python '''Same as abstract_masterpiece.py but uses a virtual plotter to view the ouptut.''' - +from __future__ import print_function +from __future__ import division +from __future__ import unicode_literals +from __future__ import absolute_import + +from builtins import input +from builtins import range +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter diff --git a/chiplotle/examples/importing_an_hpgl_file.py b/chiplotle/examples/importing_an_hpgl_file.py index e41f25a..33f1b05 100644 --- a/chiplotle/examples/importing_an_hpgl_file.py +++ b/chiplotle/examples/importing_an_hpgl_file.py @@ -1,7 +1,13 @@ #!/usr/bin/env python '''A simple example that shows how to load existing hpgl code into chiplotle.''' +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.tools.io.import_hpgl_file import import_hpgl_file from chiplotle.tools.plottertools import instantiate_virtual_plotter diff --git a/chiplotle/examples/liveplot_data-to-path.py b/chiplotle/examples/liveplot_data-to-path.py index 74d096e..53d8a5d 100644 --- a/chiplotle/examples/liveplot_data-to-path.py +++ b/chiplotle/examples/liveplot_data-to-path.py @@ -1,7 +1,14 @@ #!/usr/bin/env python '''Read in a data file and plot it using a virtual plotter.''' - +from __future__ import print_function +from __future__ import division +from __future__ import unicode_literals +from __future__ import absolute_import + +from builtins import open +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter diff --git a/chiplotle/examples/liveplot_virtual_generic.py b/chiplotle/examples/liveplot_virtual_generic.py index b1994a9..a3fc176 100644 --- a/chiplotle/examples/liveplot_virtual_generic.py +++ b/chiplotle/examples/liveplot_virtual_generic.py @@ -1,5 +1,11 @@ #!/usr/bin/env python +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter diff --git a/chiplotle/examples/liveplot_virtual_specific.py b/chiplotle/examples/liveplot_virtual_specific.py index 2985a79..09d6d93 100644 --- a/chiplotle/examples/liveplot_virtual_specific.py +++ b/chiplotle/examples/liveplot_virtual_specific.py @@ -1,5 +1,11 @@ #!/usr/bin/env python +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter diff --git a/chiplotle/fonts/dorkbot.py b/chiplotle/fonts/dorkbot.py index c34b14d..40d7f2c 100644 --- a/chiplotle/fonts/dorkbot.py +++ b/chiplotle/fonts/dorkbot.py @@ -1,7 +1,13 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import # a_ b_ etc are backwards characters for iron on transfers +from future import standard_library +standard_library.install_aliases() a = [ [0,0,0,], [0,0,0,], diff --git a/chiplotle/geometry/core/__init__.py b/chiplotle/geometry/core/__init__.py index bb0218e..c347c38 100644 --- a/chiplotle/geometry/core/__init__.py +++ b/chiplotle/geometry/core/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from .group import Group from .label import Label from .path import Path diff --git a/chiplotle/geometry/core/affixformatvisitor.py b/chiplotle/geometry/core/affixformatvisitor.py index a8c16c9..55fd633 100644 --- a/chiplotle/geometry/core/affixformatvisitor.py +++ b/chiplotle/geometry/core/affixformatvisitor.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.visitor import Visitor diff --git a/chiplotle/geometry/core/coordinate.py b/chiplotle/geometry/core/coordinate.py index dbee72f..93b885f 100644 --- a/chiplotle/geometry/core/coordinate.py +++ b/chiplotle/geometry/core/coordinate.py @@ -1,3 +1,12 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import int +from builtins import map +from builtins import str +from future import standard_library +standard_library.install_aliases() import numbers import operator import math diff --git a/chiplotle/geometry/core/coordinatearray.py b/chiplotle/geometry/core/coordinatearray.py index 9852064..cb636b6 100644 --- a/chiplotle/geometry/core/coordinatearray.py +++ b/chiplotle/geometry/core/coordinatearray.py @@ -1,3 +1,11 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import zip +from builtins import str +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.coordinatearraypropertiesmixin import \ CoordinateArrayPropertiesMixin diff --git a/chiplotle/geometry/core/coordinatearraypropertiesmixin.py b/chiplotle/geometry/core/coordinatearraypropertiesmixin.py index 6aaec45..75b7fd7 100644 --- a/chiplotle/geometry/core/coordinatearraypropertiesmixin.py +++ b/chiplotle/geometry/core/coordinatearraypropertiesmixin.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate import numpy as np diff --git a/chiplotle/geometry/core/group.py b/chiplotle/geometry/core/group.py index f5c0559..f5216af 100644 --- a/chiplotle/geometry/core/group.py +++ b/chiplotle/geometry/core/group.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.shape import _Shape import copy diff --git a/chiplotle/geometry/core/hpglformatvisitor.py b/chiplotle/geometry/core/hpglformatvisitor.py index d07cb06..b30d930 100644 --- a/chiplotle/geometry/core/hpglformatvisitor.py +++ b/chiplotle/geometry/core/hpglformatvisitor.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.visitor import Visitor from chiplotle.tools.hpgltools import convert_coordinates_to_hpgl_absolute_path import chiplotle.hpgl.commands as hpgl diff --git a/chiplotle/geometry/core/label.py b/chiplotle/geometry/core/label.py index 41108fa..24bb129 100644 --- a/chiplotle/geometry/core/label.py +++ b/chiplotle/geometry/core/label.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.label import Label as HPGLLabel from chiplotle.hpgl.commands import PA from chiplotle.geometry.core.coordinatearray import CoordinateArray diff --git a/chiplotle/geometry/core/layer.py b/chiplotle/geometry/core/layer.py index 63b900e..3fc84f0 100644 --- a/chiplotle/geometry/core/layer.py +++ b/chiplotle/geometry/core/layer.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group class Layer(Group): diff --git a/chiplotle/geometry/core/layersvisitor.py b/chiplotle/geometry/core/layersvisitor.py index e94ed9c..ae21cca 100644 --- a/chiplotle/geometry/core/layersvisitor.py +++ b/chiplotle/geometry/core/layersvisitor.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import dict +from future import standard_library +standard_library.install_aliases() from chiplotle.core.visitor import Visitor diff --git a/chiplotle/geometry/core/metadata.py b/chiplotle/geometry/core/metadata.py index b2be836..1dcd5d2 100644 --- a/chiplotle/geometry/core/metadata.py +++ b/chiplotle/geometry/core/metadata.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() class MetaData(object): def __init__(self): diff --git a/chiplotle/geometry/core/path.py b/chiplotle/geometry/core/path.py index a1d93d5..d00870e 100644 --- a/chiplotle/geometry/core/path.py +++ b/chiplotle/geometry/core/path.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.shape import _Shape from chiplotle.geometry.core.coordinatearray import CoordinateArray diff --git a/chiplotle/geometry/core/polygon.py b/chiplotle/geometry/core/polygon.py index d535de5..0f62117 100644 --- a/chiplotle/geometry/core/polygon.py +++ b/chiplotle/geometry/core/polygon.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import PM, EP, FP, FT, SP from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.path import Path diff --git a/chiplotle/geometry/core/shape.py b/chiplotle/geometry/core/shape.py index df57dd2..de397e6 100644 --- a/chiplotle/geometry/core/shape.py +++ b/chiplotle/geometry/core/shape.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import str +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.hpglformatvisitor import HPGLFormatVisitor from chiplotle.geometry.core.metadata import MetaData from chiplotle.geometry.core.shapepropertiesmixin import _ShapePropertiesMixin diff --git a/chiplotle/geometry/core/shapepropertiesmixin.py b/chiplotle/geometry/core/shapepropertiesmixin.py index 751dbc9..9f048cc 100644 --- a/chiplotle/geometry/core/shapepropertiesmixin.py +++ b/chiplotle/geometry/core/shapepropertiesmixin.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate class _ShapePropertiesMixin(object): diff --git a/chiplotle/geometry/core/tagsvisitor.py b/chiplotle/geometry/core/tagsvisitor.py index f904f92..826f574 100644 --- a/chiplotle/geometry/core/tagsvisitor.py +++ b/chiplotle/geometry/core/tagsvisitor.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.visitor import Visitor diff --git a/chiplotle/geometry/core/test/test_coordinate_add.py b/chiplotle/geometry/core/test/test_coordinate_add.py index 0c2c6de..2527433 100644 --- a/chiplotle/geometry/core/test/test_coordinate_add.py +++ b/chiplotle/geometry/core/test/test_coordinate_add.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from py.test import raises diff --git a/chiplotle/geometry/core/test/test_coordinate_init.py b/chiplotle/geometry/core/test/test_coordinate_init.py index ba86b62..577ae36 100644 --- a/chiplotle/geometry/core/test/test_coordinate_init.py +++ b/chiplotle/geometry/core/test/test_coordinate_init.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import round +from future import standard_library +standard_library.install_aliases() from chiplotle import * from py.test import raises diff --git a/chiplotle/geometry/core/test/test_coordinate_mul.py b/chiplotle/geometry/core/test/test_coordinate_mul.py index 91b26cf..e11d739 100644 --- a/chiplotle/geometry/core/test/test_coordinate_mul.py +++ b/chiplotle/geometry/core/test/test_coordinate_mul.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from py.test import raises diff --git a/chiplotle/geometry/core/test/test_coordinate_sub.py b/chiplotle/geometry/core/test/test_coordinate_sub.py index 005108b..0f8658e 100644 --- a/chiplotle/geometry/core/test/test_coordinate_sub.py +++ b/chiplotle/geometry/core/test/test_coordinate_sub.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from py.test import raises diff --git a/chiplotle/geometry/core/test/test_coordinatearray_add.py b/chiplotle/geometry/core/test/test_coordinatearray_add.py index ea8f226..1cacddb 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_add.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_add.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from py.test import raises diff --git a/chiplotle/geometry/core/test/test_coordinatearray_append.py b/chiplotle/geometry/core/test/test_coordinatearray_append.py index 1a39304..0e6f72e 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_append.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_append.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from py.test import raises diff --git a/chiplotle/geometry/core/test/test_coordinatearray_extend.py b/chiplotle/geometry/core/test/test_coordinatearray_extend.py index 2ea42a8..6f0c9c9 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_extend.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_extend.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from py.test import raises diff --git a/chiplotle/geometry/core/test/test_coordinatearray_init.py b/chiplotle/geometry/core/test/test_coordinatearray_init.py index 9458c70..bde3158 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_init.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_init.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from py.test import raises diff --git a/chiplotle/geometry/core/test/test_coordinatearray_properties.py b/chiplotle/geometry/core/test/test_coordinatearray_properties.py index 88699f8..3e29287 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_properties.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_properties.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * def ca_square(wh): diff --git a/chiplotle/geometry/core/test/test_layersvisitor.py b/chiplotle/geometry/core/test/test_layersvisitor.py index 087d45a..1fad550 100644 --- a/chiplotle/geometry/core/test/test_layersvisitor.py +++ b/chiplotle/geometry/core/test/test_layersvisitor.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.geometry.core.layersvisitor import LayersVisitor from chiplotle.geometry.core.layer import Layer diff --git a/chiplotle/geometry/core/test/test_path_add.py b/chiplotle/geometry/core/test/test_path_add.py index 0b655cb..d80bacd 100644 --- a/chiplotle/geometry/core/test/test_path_add.py +++ b/chiplotle/geometry/core/test/test_path_add.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.core import errors diff --git a/chiplotle/geometry/core/test/test_path_mul.py b/chiplotle/geometry/core/test/test_path_mul.py index b9415e9..5f3e95f 100644 --- a/chiplotle/geometry/core/test/test_path_mul.py +++ b/chiplotle/geometry/core/test/test_path_mul.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from py.test import raises diff --git a/chiplotle/geometry/core/test/test_path_sub.py b/chiplotle/geometry/core/test/test_path_sub.py index 3ff91ad..5f4eeb9 100644 --- a/chiplotle/geometry/core/test/test_path_sub.py +++ b/chiplotle/geometry/core/test/test_path_sub.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate from py.test import raises diff --git a/chiplotle/geometry/core/test/test_shapes_group_add.py b/chiplotle/geometry/core/test/test_shapes_group_add.py index d55d6db..d9fcfd5 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_add.py +++ b/chiplotle/geometry/core/test/test_shapes_group_add.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path diff --git a/chiplotle/geometry/core/test/test_shapes_group_init.py b/chiplotle/geometry/core/test/test_shapes_group_init.py index 9de833e..9671d57 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_init.py +++ b/chiplotle/geometry/core/test/test_shapes_group_init.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path import py.test diff --git a/chiplotle/geometry/core/test/test_shapes_group_points.py b/chiplotle/geometry/core/test/test_shapes_group_points.py index 81e44d1..d58b4d6 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_points.py +++ b/chiplotle/geometry/core/test/test_shapes_group_points.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path diff --git a/chiplotle/geometry/core/test/test_transformlock.py b/chiplotle/geometry/core/test/test_transformlock.py index fdeb01b..5a570ef 100644 --- a/chiplotle/geometry/core/test/test_transformlock.py +++ b/chiplotle/geometry/core/test/test_transformlock.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.group import Group diff --git a/chiplotle/geometry/core/transformlock.py b/chiplotle/geometry/core/transformlock.py index a9ad507..a167f0f 100644 --- a/chiplotle/geometry/core/transformlock.py +++ b/chiplotle/geometry/core/transformlock.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.tools.mathtools.rotate_2d import rotate_coordinate_2d from chiplotle.tools.geometrytools.scale import scale diff --git a/chiplotle/geometry/shapes/__init__.py b/chiplotle/geometry/shapes/__init__.py index 0cb1408..885e9cc 100644 --- a/chiplotle/geometry/shapes/__init__.py +++ b/chiplotle/geometry/shapes/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], globals( )) diff --git a/chiplotle/geometry/shapes/annotation.py b/chiplotle/geometry/shapes/annotation.py index 8952d31..5709666 100644 --- a/chiplotle/geometry/shapes/annotation.py +++ b/chiplotle/geometry/shapes/annotation.py @@ -1,3 +1,11 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import range +from builtins import str +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.shapes.circle import circle from chiplotle.geometry.shapes.cross import cross from chiplotle.geometry.shapes.rectangle import rectangle diff --git a/chiplotle/geometry/shapes/arc_circle.py b/chiplotle/geometry/shapes/arc_circle.py index 3a226e4..c31e54c 100644 --- a/chiplotle/geometry/shapes/arc_circle.py +++ b/chiplotle/geometry/shapes/arc_circle.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.group import Group from chiplotle.geometry.shapes.arc_ellipse import arc_ellipse diff --git a/chiplotle/geometry/shapes/arc_ellipse.py b/chiplotle/geometry/shapes/arc_ellipse.py index 0a7605d..b740a7f 100644 --- a/chiplotle/geometry/shapes/arc_ellipse.py +++ b/chiplotle/geometry/shapes/arc_ellipse.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path import math diff --git a/chiplotle/geometry/shapes/arrow.py b/chiplotle/geometry/shapes/arrow.py index 449cc91..122d6ba 100644 --- a/chiplotle/geometry/shapes/arrow.py +++ b/chiplotle/geometry/shapes/arrow.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.shapes.isosceles import isosceles from chiplotle.geometry.transforms.offset import offset from chiplotle.geometry.transforms.rotate import rotate diff --git a/chiplotle/geometry/shapes/catmull_path.py b/chiplotle/geometry/shapes/catmull_path.py index 0149330..eb4b885 100644 --- a/chiplotle/geometry/shapes/catmull_path.py +++ b/chiplotle/geometry/shapes/catmull_path.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools.catmull_interpolation \ import catmull_interpolation diff --git a/chiplotle/geometry/shapes/circle.py b/chiplotle/geometry/shapes/circle.py index 9f9cb8c..c13c9f5 100644 --- a/chiplotle/geometry/shapes/circle.py +++ b/chiplotle/geometry/shapes/circle.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon from chiplotle.geometry.transforms.scale import scale import math diff --git a/chiplotle/geometry/shapes/cross.py b/chiplotle/geometry/shapes/cross.py index 44ebf73..6dcf4a1 100644 --- a/chiplotle/geometry/shapes/cross.py +++ b/chiplotle/geometry/shapes/cross.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.group import Group diff --git a/chiplotle/geometry/shapes/donut.py b/chiplotle/geometry/shapes/donut.py index 0be07a5..778170c 100644 --- a/chiplotle/geometry/shapes/donut.py +++ b/chiplotle/geometry/shapes/donut.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.shapes.ellipse import ellipse from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path diff --git a/chiplotle/geometry/shapes/ellipse.py b/chiplotle/geometry/shapes/ellipse.py index baec937..1494fb4 100644 --- a/chiplotle/geometry/shapes/ellipse.py +++ b/chiplotle/geometry/shapes/ellipse.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.shapes.circle import circle from chiplotle.geometry.transforms.scale import scale diff --git a/chiplotle/geometry/shapes/fan.py b/chiplotle/geometry/shapes/fan.py index 929ebce..2c76103 100644 --- a/chiplotle/geometry/shapes/fan.py +++ b/chiplotle/geometry/shapes/fan.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon from chiplotle.geometry.shapes.arc_circle import arc_circle import math diff --git a/chiplotle/geometry/shapes/frame.py b/chiplotle/geometry/shapes/frame.py index f5b0d46..27227bb 100644 --- a/chiplotle/geometry/shapes/frame.py +++ b/chiplotle/geometry/shapes/frame.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.shapes.rectangle import rectangle from chiplotle.geometry.core.group import Group diff --git a/chiplotle/geometry/shapes/grid.py b/chiplotle/geometry/shapes/grid.py index 663d2df..49200cc 100644 --- a/chiplotle/geometry/shapes/grid.py +++ b/chiplotle/geometry/shapes/grid.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.group import Group from chiplotle.geometry.shapes.line import line diff --git a/chiplotle/geometry/shapes/group.py b/chiplotle/geometry/shapes/group.py index 190c701..35f748b 100644 --- a/chiplotle/geometry/shapes/group.py +++ b/chiplotle/geometry/shapes/group.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group def group(lst): diff --git a/chiplotle/geometry/shapes/isosceles.py b/chiplotle/geometry/shapes/isosceles.py index 3d4b283..66b7912 100644 --- a/chiplotle/geometry/shapes/isosceles.py +++ b/chiplotle/geometry/shapes/isosceles.py @@ -1,4 +1,10 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import #from chiplotle.geometry.core.path import Path +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon def isosceles(width, height, filled=False): diff --git a/chiplotle/geometry/shapes/label.py b/chiplotle/geometry/shapes/label.py index 0bff682..4d50ba0 100644 --- a/chiplotle/geometry/shapes/label.py +++ b/chiplotle/geometry/shapes/label.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.label import Label def label(text, diff --git a/chiplotle/geometry/shapes/layer.py b/chiplotle/geometry/shapes/layer.py index 4e53748..cc8f18b 100644 --- a/chiplotle/geometry/shapes/layer.py +++ b/chiplotle/geometry/shapes/layer.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.layer import Layer def layer(shapes, name): diff --git a/chiplotle/geometry/shapes/line.py b/chiplotle/geometry/shapes/line.py index 93801b1..89a67b3 100644 --- a/chiplotle/geometry/shapes/line.py +++ b/chiplotle/geometry/shapes/line.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path def line(startpoint, endpoint): diff --git a/chiplotle/geometry/shapes/line_displaced.py b/chiplotle/geometry/shapes/line_displaced.py index bee47d6..a595ce5 100644 --- a/chiplotle/geometry/shapes/line_displaced.py +++ b/chiplotle/geometry/shapes/line_displaced.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.shapes.path import path from chiplotle.geometry.transforms.perpendicular_displace \ import perpendicular_displace diff --git a/chiplotle/geometry/shapes/lock_group.py b/chiplotle/geometry/shapes/lock_group.py index 443c5d6..e744873 100644 --- a/chiplotle/geometry/shapes/lock_group.py +++ b/chiplotle/geometry/shapes/lock_group.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.transformlock import TransformLock from chiplotle.geometry.core.shape import _Shape diff --git a/chiplotle/geometry/shapes/path.py b/chiplotle/geometry/shapes/path.py index 9f1a102..8f44efc 100644 --- a/chiplotle/geometry/shapes/path.py +++ b/chiplotle/geometry/shapes/path.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path def path(points): diff --git a/chiplotle/geometry/shapes/path_bezier.py b/chiplotle/geometry/shapes/path_bezier.py index 99b0046..808b212 100644 --- a/chiplotle/geometry/shapes/path_bezier.py +++ b/chiplotle/geometry/shapes/path_bezier.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools.bezier_interpolation import bezier_interpolation diff --git a/chiplotle/geometry/shapes/path_interpolated.py b/chiplotle/geometry/shapes/path_interpolated.py index 217c8a9..137f680 100644 --- a/chiplotle/geometry/shapes/path_interpolated.py +++ b/chiplotle/geometry/shapes/path_interpolated.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path diff --git a/chiplotle/geometry/shapes/path_linear.py b/chiplotle/geometry/shapes/path_linear.py index 63b31d2..0365157 100644 --- a/chiplotle/geometry/shapes/path_linear.py +++ b/chiplotle/geometry/shapes/path_linear.py @@ -1,3 +1,12 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from builtins import int +from builtins import round +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools.interpolate_linear import interpolate_linear diff --git a/chiplotle/geometry/shapes/radial_ruler.py b/chiplotle/geometry/shapes/radial_ruler.py index 8a1d59c..23db2c2 100644 --- a/chiplotle/geometry/shapes/radial_ruler.py +++ b/chiplotle/geometry/shapes/radial_ruler.py @@ -1,3 +1,11 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools.mathtools.polar_to_xy import polar_to_xy as p2c from chiplotle.geometry.shapes.line import line diff --git a/chiplotle/geometry/shapes/random_walk_cartesian.py b/chiplotle/geometry/shapes/random_walk_cartesian.py index 5426735..18106a4 100644 --- a/chiplotle/geometry/shapes/random_walk_cartesian.py +++ b/chiplotle/geometry/shapes/random_walk_cartesian.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path import math import random diff --git a/chiplotle/geometry/shapes/random_walk_polar.py b/chiplotle/geometry/shapes/random_walk_polar.py index 7456b85..afb1e09 100644 --- a/chiplotle/geometry/shapes/random_walk_polar.py +++ b/chiplotle/geometry/shapes/random_walk_polar.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools import polar_to_xy import math diff --git a/chiplotle/geometry/shapes/rectangle.py b/chiplotle/geometry/shapes/rectangle.py index 08061ae..4e0cac5 100644 --- a/chiplotle/geometry/shapes/rectangle.py +++ b/chiplotle/geometry/shapes/rectangle.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon def rectangle(width, height): diff --git a/chiplotle/geometry/shapes/ruler.py b/chiplotle/geometry/shapes/ruler.py index 55227e6..f02b4fa 100644 --- a/chiplotle/geometry/shapes/ruler.py +++ b/chiplotle/geometry/shapes/ruler.py @@ -1,3 +1,11 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.group import Group from chiplotle.geometry.shapes.line import line diff --git a/chiplotle/geometry/shapes/spiral_archimedean.py b/chiplotle/geometry/shapes/spiral_archimedean.py index c3df867..55f3c32 100644 --- a/chiplotle/geometry/shapes/spiral_archimedean.py +++ b/chiplotle/geometry/shapes/spiral_archimedean.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path import math diff --git a/chiplotle/geometry/shapes/spiral_logarithmic.py b/chiplotle/geometry/shapes/spiral_logarithmic.py index d61655b..923de07 100644 --- a/chiplotle/geometry/shapes/spiral_logarithmic.py +++ b/chiplotle/geometry/shapes/spiral_logarithmic.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path import math diff --git a/chiplotle/geometry/shapes/square.py b/chiplotle/geometry/shapes/square.py index e0ee2ee..293d887 100644 --- a/chiplotle/geometry/shapes/square.py +++ b/chiplotle/geometry/shapes/square.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.shapes.rectangle import rectangle def square(width_height): diff --git a/chiplotle/geometry/shapes/star_crisscross.py b/chiplotle/geometry/shapes/star_crisscross.py index 4760390..bb74a30 100644 --- a/chiplotle/geometry/shapes/star_crisscross.py +++ b/chiplotle/geometry/shapes/star_crisscross.py @@ -1,3 +1,11 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon from chiplotle.geometry.core.group import Group from chiplotle.tools.mathtools.lcm import lcm diff --git a/chiplotle/geometry/shapes/star_outline.py b/chiplotle/geometry/shapes/star_outline.py index 8f80cd4..556df6a 100644 --- a/chiplotle/geometry/shapes/star_outline.py +++ b/chiplotle/geometry/shapes/star_outline.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon from chiplotle.geometry.core.group import Group from chiplotle.tools.mathtools.lcm import lcm diff --git a/chiplotle/geometry/shapes/supershape.py b/chiplotle/geometry/shapes/supershape.py index 5a4d782..2a37e67 100644 --- a/chiplotle/geometry/shapes/supershape.py +++ b/chiplotle/geometry/shapes/supershape.py @@ -1,3 +1,11 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools import superformula diff --git a/chiplotle/geometry/shapes/symmetric_polygon_side_length.py b/chiplotle/geometry/shapes/symmetric_polygon_side_length.py index 23a4b38..9f62aff 100644 --- a/chiplotle/geometry/shapes/symmetric_polygon_side_length.py +++ b/chiplotle/geometry/shapes/symmetric_polygon_side_length.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.shapes.circle import circle from chiplotle.geometry.transforms.scale import scale diff --git a/chiplotle/geometry/shapes/target.py b/chiplotle/geometry/shapes/target.py index 641388a..35dfb84 100644 --- a/chiplotle/geometry/shapes/target.py +++ b/chiplotle/geometry/shapes/target.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.shapes.circle import circle diff --git a/chiplotle/geometry/shapes/test/test_bezier_path.py b/chiplotle/geometry/shapes/test/test_bezier_path.py index f86082e..9d772a0 100644 --- a/chiplotle/geometry/shapes/test/test_bezier_path.py +++ b/chiplotle/geometry/shapes/test/test_bezier_path.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * def test_path_interpolated_01(): diff --git a/chiplotle/geometry/transforms/__init__.py b/chiplotle/geometry/transforms/__init__.py index 55455c1..eebf58e 100644 --- a/chiplotle/geometry/transforms/__init__.py +++ b/chiplotle/geometry/transforms/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], globals( )) diff --git a/chiplotle/geometry/transforms/arrange_shapes_on_path.py b/chiplotle/geometry/transforms/arrange_shapes_on_path.py index 00aab18..a82fc5c 100644 --- a/chiplotle/geometry/transforms/arrange_shapes_on_path.py +++ b/chiplotle/geometry/transforms/arrange_shapes_on_path.py @@ -1,3 +1,11 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import zip +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.transforms.offset import offset diff --git a/chiplotle/geometry/transforms/center_at.py b/chiplotle/geometry/transforms/center_at.py index 2e64001..c7c602f 100644 --- a/chiplotle/geometry/transforms/center_at.py +++ b/chiplotle/geometry/transforms/center_at.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.transforms.offset import offset from chiplotle.geometry.core.coordinate import Coordinate diff --git a/chiplotle/geometry/transforms/noise.py b/chiplotle/geometry/transforms/noise.py index e6ddb8b..1d3d8f2 100644 --- a/chiplotle/geometry/transforms/noise.py +++ b/chiplotle/geometry/transforms/noise.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate diff --git a/chiplotle/geometry/transforms/offset.py b/chiplotle/geometry/transforms/offset.py index b509e07..5bc4b96 100644 --- a/chiplotle/geometry/transforms/offset.py +++ b/chiplotle/geometry/transforms/offset.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.transforms.transformvisitor import TransformVisitor diff --git a/chiplotle/geometry/transforms/perpendicular_displace.py b/chiplotle/geometry/transforms/perpendicular_displace.py index 42c483b..8c71436 100644 --- a/chiplotle/geometry/transforms/perpendicular_displace.py +++ b/chiplotle/geometry/transforms/perpendicular_displace.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.geometrytools.split_coordinatearray_proportionally \ import split_coordinatearray_proportionally from chiplotle.geometry.core.path import Path diff --git a/chiplotle/geometry/transforms/perpendicular_noise.py b/chiplotle/geometry/transforms/perpendicular_noise.py index 05a3d50..32d38a3 100644 --- a/chiplotle/geometry/transforms/perpendicular_noise.py +++ b/chiplotle/geometry/transforms/perpendicular_noise.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import zip +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinatearray import CoordinateArray diff --git a/chiplotle/geometry/transforms/rotate.py b/chiplotle/geometry/transforms/rotate.py index 28fbefc..3332276 100644 --- a/chiplotle/geometry/transforms/rotate.py +++ b/chiplotle/geometry/transforms/rotate.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.group import Group from chiplotle.tools.mathtools.rotate_2d import rotate_2d diff --git a/chiplotle/geometry/transforms/scale.py b/chiplotle/geometry/transforms/scale.py index 30a6145..536ea97 100644 --- a/chiplotle/geometry/transforms/scale.py +++ b/chiplotle/geometry/transforms/scale.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.transforms.transformvisitor import TransformVisitor diff --git a/chiplotle/geometry/transforms/test/test_perpendicular_noise_path.py b/chiplotle/geometry/transforms/test/test_perpendicular_noise_path.py index 0e04958..0d19cdc 100644 --- a/chiplotle/geometry/transforms/test/test_perpendicular_noise_path.py +++ b/chiplotle/geometry/transforms/test/test_perpendicular_noise_path.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * import copy diff --git a/chiplotle/geometry/transforms/test/test_scale_path.py b/chiplotle/geometry/transforms/test/test_scale_path.py index 570895a..8f659c1 100644 --- a/chiplotle/geometry/transforms/test/test_scale_path.py +++ b/chiplotle/geometry/transforms/test/test_scale_path.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * import py.test diff --git a/chiplotle/geometry/transforms/transformvisitor.py b/chiplotle/geometry/transforms/transformvisitor.py index 594e3e5..5c1baaf 100644 --- a/chiplotle/geometry/transforms/transformvisitor.py +++ b/chiplotle/geometry/transforms/transformvisitor.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.visitor import Visitor class TransformVisitor(Visitor): diff --git a/chiplotle/hpgl/abstract/arc.py b/chiplotle/hpgl/abstract/arc.py index 388c74d..f659073 100644 --- a/chiplotle/hpgl/abstract/arc.py +++ b/chiplotle/hpgl/abstract/arc.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.positional import _Positional from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive diff --git a/chiplotle/hpgl/abstract/hpgl.py b/chiplotle/hpgl/abstract/hpgl.py index ca6dd3d..b5bdb6f 100644 --- a/chiplotle/hpgl/abstract/hpgl.py +++ b/chiplotle/hpgl/abstract/hpgl.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() class _HPGL(object): ## a list of attributes that can be scaled. diff --git a/chiplotle/hpgl/abstract/hpglescape.py b/chiplotle/hpgl/abstract/hpglescape.py index a9d3cdc..c1ec0e0 100644 --- a/chiplotle/hpgl/abstract/hpglescape.py +++ b/chiplotle/hpgl/abstract/hpglescape.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import chr +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL class _HPGLEscape(_HPGL): diff --git a/chiplotle/hpgl/abstract/hpglprimitive.py b/chiplotle/hpgl/abstract/hpglprimitive.py index 618fe53..c56db4e 100644 --- a/chiplotle/hpgl/abstract/hpglprimitive.py +++ b/chiplotle/hpgl/abstract/hpglprimitive.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import str +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL class _HPGLPrimitive(_HPGL): diff --git a/chiplotle/hpgl/abstract/penplot.py b/chiplotle/hpgl/abstract/penplot.py index 3272186..a69f0ee 100644 --- a/chiplotle/hpgl/abstract/penplot.py +++ b/chiplotle/hpgl/abstract/penplot.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.geometry.core.coordinatearray import CoordinateArray diff --git a/chiplotle/hpgl/abstract/positional.py b/chiplotle/hpgl/abstract/positional.py index 89f3de2..b3b6389 100644 --- a/chiplotle/hpgl/abstract/positional.py +++ b/chiplotle/hpgl/abstract/positional.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.geometry.core.coordinatearray import Coordinate diff --git a/chiplotle/hpgl/abstract/twopoint.py b/chiplotle/hpgl/abstract/twopoint.py index b09b383..68ee630 100644 --- a/chiplotle/hpgl/abstract/twopoint.py +++ b/chiplotle/hpgl/abstract/twopoint.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import map +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.geometry.core.coordinatearray import CoordinateArray diff --git a/chiplotle/hpgl/commands.py b/chiplotle/hpgl/commands.py index 69e9730..c1078d1 100644 --- a/chiplotle/hpgl/commands.py +++ b/chiplotle/hpgl/commands.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import chr +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.arc import _Arc from chiplotle.hpgl.abstract.hpglescape import _HPGLEscape from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive diff --git a/chiplotle/hpgl/formatters/__init__.py b/chiplotle/hpgl/formatters/__init__.py index d8f4625..d535bff 100644 --- a/chiplotle/hpgl/formatters/__init__.py +++ b/chiplotle/hpgl/formatters/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from .pen import Pen from .linetype import LineType from .filltype import FillType diff --git a/chiplotle/hpgl/formatters/filltype.py b/chiplotle/hpgl/formatters/filltype.py index 29971d5..065696d 100644 --- a/chiplotle/hpgl/formatters/filltype.py +++ b/chiplotle/hpgl/formatters/filltype.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import FT from chiplotle.core.interfaces.formatdecorator import FormatDecorator diff --git a/chiplotle/hpgl/formatters/linetype.py b/chiplotle/hpgl/formatters/linetype.py index 4141915..275a72e 100644 --- a/chiplotle/hpgl/formatters/linetype.py +++ b/chiplotle/hpgl/formatters/linetype.py @@ -1,3 +1,11 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from builtins import str +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import LT from chiplotle.core.interfaces.formatdecorator import FormatDecorator diff --git a/chiplotle/hpgl/formatters/pen.py b/chiplotle/hpgl/formatters/pen.py index 3a99a92..55aff55 100644 --- a/chiplotle/hpgl/formatters/pen.py +++ b/chiplotle/hpgl/formatters/pen.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.pen import Pen as HPGLPen from chiplotle.core.interfaces.formatdecorator import FormatDecorator diff --git a/chiplotle/hpgl/label.py b/chiplotle/hpgl/label.py index d63a4b3..6379fab 100644 --- a/chiplotle/hpgl/label.py +++ b/chiplotle/hpgl/label.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import LB, PA, ES, LO, SL, DI, DV, SI class Label(object): diff --git a/chiplotle/hpgl/pen.py b/chiplotle/hpgl/pen.py index b5ddddd..a2fe4c5 100644 --- a/chiplotle/hpgl/pen.py +++ b/chiplotle/hpgl/pen.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import AS, FS, PT, SP, VS class Pen(object): diff --git a/chiplotle/hpgl/test/test_AA.py b/chiplotle/hpgl/test/test_AA.py index dccd74d..04f3bfa 100644 --- a/chiplotle/hpgl/test/test_AA.py +++ b/chiplotle/hpgl/test/test_AA.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import * import py.test diff --git a/chiplotle/hpgl/test/test_AR.py b/chiplotle/hpgl/test/test_AR.py index 7bc068b..08c0423 100644 --- a/chiplotle/hpgl/test/test_AR.py +++ b/chiplotle/hpgl/test/test_AR.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import AR import py.test diff --git a/chiplotle/hpgl/test/test_CI.py b/chiplotle/hpgl/test/test_CI.py index 09fd26b..1552cb1 100644 --- a/chiplotle/hpgl/test/test_CI.py +++ b/chiplotle/hpgl/test/test_CI.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import CI from py.test import raises diff --git a/chiplotle/hpgl/test/test_CP.py b/chiplotle/hpgl/test/test_CP.py index fd90604..8aa1df3 100644 --- a/chiplotle/hpgl/test/test_CP.py +++ b/chiplotle/hpgl/test/test_CP.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import CP def test_CP_01( ): diff --git a/chiplotle/hpgl/test/test_DI.py b/chiplotle/hpgl/test/test_DI.py index 7f66c96..c9423b0 100644 --- a/chiplotle/hpgl/test/test_DI.py +++ b/chiplotle/hpgl/test/test_DI.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import DI from py.test import raises diff --git a/chiplotle/hpgl/test/test_DR.py b/chiplotle/hpgl/test/test_DR.py index 063388d..8add278 100644 --- a/chiplotle/hpgl/test/test_DR.py +++ b/chiplotle/hpgl/test/test_DR.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import DR from py.test import raises diff --git a/chiplotle/hpgl/test/test_EA.py b/chiplotle/hpgl/test/test_EA.py index fb3e25c..ed526b6 100644 --- a/chiplotle/hpgl/test/test_EA.py +++ b/chiplotle/hpgl/test/test_EA.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import EA diff --git a/chiplotle/hpgl/test/test_ER.py b/chiplotle/hpgl/test/test_ER.py index 96e82ef..e923316 100644 --- a/chiplotle/hpgl/test/test_ER.py +++ b/chiplotle/hpgl/test/test_ER.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import ER from py.test import raises diff --git a/chiplotle/hpgl/test/test_ES.py b/chiplotle/hpgl/test/test_ES.py index 643d11b..990933a 100644 --- a/chiplotle/hpgl/test/test_ES.py +++ b/chiplotle/hpgl/test/test_ES.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import ES def test_ES_01( ): diff --git a/chiplotle/hpgl/test/test_EW.py b/chiplotle/hpgl/test/test_EW.py index b5d4c71..c4ef43d 100644 --- a/chiplotle/hpgl/test/test_EW.py +++ b/chiplotle/hpgl/test/test_EW.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import EW def test_EW_01( ): diff --git a/chiplotle/hpgl/test/test_FS.py b/chiplotle/hpgl/test/test_FS.py index 1bcd466..946e0f9 100644 --- a/chiplotle/hpgl/test/test_FS.py +++ b/chiplotle/hpgl/test/test_FS.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import FS def test_FS_01( ): diff --git a/chiplotle/hpgl/test/test_FT.py b/chiplotle/hpgl/test/test_FT.py index 9e7122a..f0a4c16 100644 --- a/chiplotle/hpgl/test/test_FT.py +++ b/chiplotle/hpgl/test/test_FT.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import FT from py.test import raises diff --git a/chiplotle/hpgl/test/test_IP.py b/chiplotle/hpgl/test/test_IP.py index c7fc8af..e7a52ac 100644 --- a/chiplotle/hpgl/test/test_IP.py +++ b/chiplotle/hpgl/test/test_IP.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import IP from py.test import raises diff --git a/chiplotle/hpgl/test/test_PA.py b/chiplotle/hpgl/test/test_PA.py index 7e19d38..e19709d 100644 --- a/chiplotle/hpgl/test/test_PA.py +++ b/chiplotle/hpgl/test/test_PA.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PA diff --git a/chiplotle/hpgl/test/test_PU.py b/chiplotle/hpgl/test/test_PU.py index 8da9f2c..f1ee1f3 100644 --- a/chiplotle/hpgl/test/test_PU.py +++ b/chiplotle/hpgl/test/test_PU.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PU from py.test import raises diff --git a/chiplotle/hpgl/test/test_SI.py b/chiplotle/hpgl/test/test_SI.py index 455289e..40a52cb 100644 --- a/chiplotle/hpgl/test/test_SI.py +++ b/chiplotle/hpgl/test/test_SI.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import SI import py.test diff --git a/chiplotle/hpgl/test/test_SR.py b/chiplotle/hpgl/test/test_SR.py index dfb8209..6043d40 100644 --- a/chiplotle/hpgl/test/test_SR.py +++ b/chiplotle/hpgl/test/test_SR.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import SR import py.test diff --git a/chiplotle/hpgl/test/test_VS.py b/chiplotle/hpgl/test/test_VS.py index eef59ac..97f43b7 100644 --- a/chiplotle/hpgl/test/test_VS.py +++ b/chiplotle/hpgl/test/test_VS.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import VS def test_VS_01( ): diff --git a/chiplotle/hpgl/test/test_WG.py b/chiplotle/hpgl/test/test_WG.py index 9fb42de..0583679 100644 --- a/chiplotle/hpgl/test/test_WG.py +++ b/chiplotle/hpgl/test/test_WG.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import WG def test_WG_01( ): diff --git a/chiplotle/hpgl/test/test_dci_sethandshakemode.py b/chiplotle/hpgl/test/test_dci_sethandshakemode.py index 671eba9..1bd2156 100644 --- a/chiplotle/hpgl/test/test_dci_sethandshakemode.py +++ b/chiplotle/hpgl/test/test_dci_sethandshakemode.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import SetHandshakeMode from py.test import raises diff --git a/chiplotle/hpgl/test/test_hpglescape.py b/chiplotle/hpgl/test/test_hpglescape.py index f4440e5..514e03d 100644 --- a/chiplotle/hpgl/test/test_hpglescape.py +++ b/chiplotle/hpgl/test/test_hpglescape.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * ## No longer the case diff --git a/chiplotle/hpgl/test/test_hpglprimitive.py b/chiplotle/hpgl/test/test_hpglprimitive.py index a60e531..64ddeab 100644 --- a/chiplotle/hpgl/test/test_hpglprimitive.py +++ b/chiplotle/hpgl/test/test_hpglprimitive.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import PU from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive diff --git a/chiplotle/hpgl/test/test_pen.py b/chiplotle/hpgl/test/test_pen.py index 7ecb1e4..01a50f8 100644 --- a/chiplotle/hpgl/test/test_pen.py +++ b/chiplotle/hpgl/test/test_pen.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * import py.test diff --git a/chiplotle/hpgl/test/test_penplot.py b/chiplotle/hpgl/test/test_penplot.py index 5efbbdf..5214652 100644 --- a/chiplotle/hpgl/test/test_penplot.py +++ b/chiplotle/hpgl/test/test_penplot.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.penplot import _PenPlot from chiplotle.geometry.core.coordinatearray import CoordinateArray from py.test import raises diff --git a/chiplotle/plotters/__init__.py b/chiplotle/plotters/__init__.py index b8e03d4..4a9e05c 100644 --- a/chiplotle/plotters/__init__.py +++ b/chiplotle/plotters/__init__.py @@ -1,3 +1,7 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import #from chiplotle.core.imports.package_import import _package_import # #_package_import(__path__[0], locals( )) @@ -11,6 +15,8 @@ # #remove_all_but_types(locals( )) +from future import standard_library +standard_library.install_aliases() from .dpx2000 import DPX2000 from .dpx3300 import DPX3300 from .dxy1300 import DXY1300 diff --git a/chiplotle/plotters/baseplotter.py b/chiplotle/plotters/baseplotter.py index 6593f95..f2921ab 100644 --- a/chiplotle/plotters/baseplotter.py +++ b/chiplotle/plotters/baseplotter.py @@ -3,7 +3,16 @@ * * http://music.columbia.edu/cmc/chiplotle ''' - +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import + +from builtins import range +from builtins import open +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.get_config_value import get_config_value from chiplotle.core.interfaces.margins.interface import MarginsInterface from chiplotle.geometry.core.shape import _Shape diff --git a/chiplotle/plotters/dpx2000.py b/chiplotle/plotters/dpx2000.py index 7620db0..71c85c2 100644 --- a/chiplotle/plotters/dpx2000.py +++ b/chiplotle/plotters/dpx2000.py @@ -3,6 +3,12 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class DPX2000(_DrawingPlotter): diff --git a/chiplotle/plotters/dpx2200.py b/chiplotle/plotters/dpx2200.py index 09bcc9e..b70949a 100644 --- a/chiplotle/plotters/dpx2200.py +++ b/chiplotle/plotters/dpx2200.py @@ -3,6 +3,12 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class DPX2200(_DrawingPlotter): diff --git a/chiplotle/plotters/dpx3300.py b/chiplotle/plotters/dpx3300.py index c62dec9..e30afaa 100644 --- a/chiplotle/plotters/dpx3300.py +++ b/chiplotle/plotters/dpx3300.py @@ -3,6 +3,12 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class DPX3300(_DrawingPlotter): diff --git a/chiplotle/plotters/drawingplotter.py b/chiplotle/plotters/drawingplotter.py index bf9f57b..a2d6625 100644 --- a/chiplotle/plotters/drawingplotter.py +++ b/chiplotle/plotters/drawingplotter.py @@ -3,7 +3,13 @@ * * http://music.columbia.edu/cmc/chiplotle ''' +from __future__ import print_function +from __future__ import division +from __future__ import unicode_literals +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.baseplotter import _BasePlotter from chiplotle.geometry.core.coordinate import Coordinate diff --git a/chiplotle/plotters/dxy1300.py b/chiplotle/plotters/dxy1300.py index 258fed6..2f42e20 100644 --- a/chiplotle/plotters/dxy1300.py +++ b/chiplotle/plotters/dxy1300.py @@ -3,6 +3,12 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class DXY1300(_DrawingPlotter): diff --git a/chiplotle/plotters/dxy880.py b/chiplotle/plotters/dxy880.py index 39da775..bbbf941 100644 --- a/chiplotle/plotters/dxy880.py +++ b/chiplotle/plotters/dxy880.py @@ -3,6 +3,12 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class DXY880(_DrawingPlotter): diff --git a/chiplotle/plotters/hp7475a.py b/chiplotle/plotters/hp7475a.py index b768bbb..5bb6dad 100644 --- a/chiplotle/plotters/hp7475a.py +++ b/chiplotle/plotters/hp7475a.py @@ -3,7 +3,13 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class HP7475A(_DrawingPlotter): diff --git a/chiplotle/plotters/hp7550a.py b/chiplotle/plotters/hp7550a.py index d85a8db..d91ff47 100644 --- a/chiplotle/plotters/hp7550a.py +++ b/chiplotle/plotters/hp7550a.py @@ -3,6 +3,12 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class HP7550A(_DrawingPlotter): diff --git a/chiplotle/plotters/hp7575a.py b/chiplotle/plotters/hp7575a.py index 0ccb2ce..bb1af49 100644 --- a/chiplotle/plotters/hp7575a.py +++ b/chiplotle/plotters/hp7575a.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.hp7576a import HP7576A class HP7575A(HP7576A): diff --git a/chiplotle/plotters/hp7576a.py b/chiplotle/plotters/hp7576a.py index f596dcb..bbc7577 100644 --- a/chiplotle/plotters/hp7576a.py +++ b/chiplotle/plotters/hp7576a.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class HP7576A(_DrawingPlotter): diff --git a/chiplotle/plotters/hp7585b.py b/chiplotle/plotters/hp7585b.py index e1deb9e..c496fe9 100644 --- a/chiplotle/plotters/hp7585b.py +++ b/chiplotle/plotters/hp7585b.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class HP7585B(_DrawingPlotter): diff --git a/chiplotle/plotters/hp7595a.py b/chiplotle/plotters/hp7595a.py index f121d11..d532609 100644 --- a/chiplotle/plotters/hp7595a.py +++ b/chiplotle/plotters/hp7595a.py @@ -3,7 +3,13 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class HP7595A(_DrawingPlotter): diff --git a/chiplotle/plotters/hp7596a.py b/chiplotle/plotters/hp7596a.py index 6207ad1..91ee9c9 100644 --- a/chiplotle/plotters/hp7596a.py +++ b/chiplotle/plotters/hp7596a.py @@ -3,7 +3,13 @@ * * http://music.columbia.edu/cmc/chiplotle """ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class HP7596A(_DrawingPlotter): diff --git a/chiplotle/plotters/interactive/interactive_commands.py b/chiplotle/plotters/interactive/interactive_commands.py index 355c69d..ce12f16 100644 --- a/chiplotle/plotters/interactive/interactive_commands.py +++ b/chiplotle/plotters/interactive/interactive_commands.py @@ -1,3 +1,11 @@ +from __future__ import print_function +from __future__ import division +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import int +from builtins import input +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.hpgl.commands import SC, IP, IW diff --git a/chiplotle/plotters/margins/marginshard.py b/chiplotle/plotters/margins/marginshard.py index 6cb6970..41b5663 100644 --- a/chiplotle/plotters/margins/marginshard.py +++ b/chiplotle/plotters/margins/marginshard.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.margins.plottermargins import _PlotterMargins from chiplotle.hpgl.commands import OH diff --git a/chiplotle/plotters/margins/marginssoft.py b/chiplotle/plotters/margins/marginssoft.py index 7e64f27..b6dc83a 100644 --- a/chiplotle/plotters/margins/marginssoft.py +++ b/chiplotle/plotters/margins/marginssoft.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.margins.plottermargins import _PlotterMargins from chiplotle.hpgl.commands import OW diff --git a/chiplotle/plotters/margins/plottermargins.py b/chiplotle/plotters/margins/plottermargins.py index 1761af1..ddc683f 100644 --- a/chiplotle/plotters/margins/plottermargins.py +++ b/chiplotle/plotters/margins/plottermargins.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate class _PlotterMargins(object): diff --git a/chiplotle/plotters/margins/test/test_marginsoft.py b/chiplotle/plotters/margins/test/test_marginsoft.py index 1c31556..1a03384 100644 --- a/chiplotle/plotters/margins/test/test_marginsoft.py +++ b/chiplotle/plotters/margins/test/test_marginsoft.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.plotters.margins.marginssoft import MarginsSoft from chiplotle.tools.plottertools.instantiate_virtual_plotter import \ diff --git a/chiplotle/plotters/plotter.py b/chiplotle/plotters/plotter.py index f3b216f..e931808 100644 --- a/chiplotle/plotters/plotter.py +++ b/chiplotle/plotters/plotter.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter class Plotter(_DrawingPlotter): diff --git a/chiplotle/plotters/test/plotter_query.py b/chiplotle/plotters/test/plotter_query.py index e78fcee..c436333 100644 --- a/chiplotle/plotters/test/plotter_query.py +++ b/chiplotle/plotters/test/plotter_query.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_plotters diff --git a/chiplotle/plotters/test/test_drawingplotter.py b/chiplotle/plotters/test/test_drawingplotter.py index 5ca7b1d..70a8000 100644 --- a/chiplotle/plotters/test/test_drawingplotter.py +++ b/chiplotle/plotters/test/test_drawingplotter.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from chiplotle.tools.plottertools.instantiate_virtual_plotter \ diff --git a/chiplotle/plotters/test/test_plotter_write.py b/chiplotle/plotters/test/test_plotter_write.py index 07359cc..51d3251 100644 --- a/chiplotle/plotters/test/test_plotter_write.py +++ b/chiplotle/plotters/test/test_plotter_write.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from chiplotle.tools.plottertools.instantiate_virtual_plotter \ diff --git a/chiplotle/scripts/envelope.py b/chiplotle/scripts/envelope.py index 1990d7f..df7bfa8 100644 --- a/chiplotle/scripts/envelope.py +++ b/chiplotle/scripts/envelope.py @@ -1,4 +1,12 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from builtins import int +from builtins import input +from future import standard_library +standard_library.install_aliases() from chiplotle import * def envelope( ): diff --git a/chiplotle/scripts/find_hpgl_file_dimensions.py b/chiplotle/scripts/find_hpgl_file_dimensions.py index 4cb41f2..ea1cfc0 100755 --- a/chiplotle/scripts/find_hpgl_file_dimensions.py +++ b/chiplotle/scripts/find_hpgl_file_dimensions.py @@ -1,4 +1,10 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools import * import sys diff --git a/chiplotle/scripts/plot_hpgl_file.py b/chiplotle/scripts/plot_hpgl_file.py index f2fca0e..db87b00 100755 --- a/chiplotle/scripts/plot_hpgl_file.py +++ b/chiplotle/scripts/plot_hpgl_file.py @@ -1,4 +1,10 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.plottertools import instantiate_plotters import sys import time diff --git a/chiplotle/scripts/plot_hpgl_file_max_size.py b/chiplotle/scripts/plot_hpgl_file_max_size.py index b7bc667..13c3620 100755 --- a/chiplotle/scripts/plot_hpgl_file_max_size.py +++ b/chiplotle/scripts/plot_hpgl_file_max_size.py @@ -1,4 +1,11 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import division +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.plottertools import instantiate_plotters from chiplotle.tools import * import sys diff --git a/chiplotle/scripts/plot_hpgl_file_virtual.py b/chiplotle/scripts/plot_hpgl_file_virtual.py index 1327483..4fc87ac 100755 --- a/chiplotle/scripts/plot_hpgl_file_virtual.py +++ b/chiplotle/scripts/plot_hpgl_file_virtual.py @@ -1,4 +1,10 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter import sys diff --git a/chiplotle/scripts/typewriter.py b/chiplotle/scripts/typewriter.py index 89635ea..9d8cd82 100644 --- a/chiplotle/scripts/typewriter.py +++ b/chiplotle/scripts/typewriter.py @@ -1,4 +1,12 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from builtins import int +from builtins import input +from future import standard_library +standard_library.install_aliases() from chiplotle import * ## HELPER FUNCTIONS ## diff --git a/chiplotle/scripts/view_hpgl_file.py b/chiplotle/scripts/view_hpgl_file.py index 14dffc7..1e7a4ad 100755 --- a/chiplotle/scripts/view_hpgl_file.py +++ b/chiplotle/scripts/view_hpgl_file.py @@ -1,4 +1,10 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools import * import sys import time diff --git a/chiplotle/tools/__init__.py b/chiplotle/tools/__init__.py index 9067e72..57df404 100644 --- a/chiplotle/tools/__init__.py +++ b/chiplotle/tools/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools import geometrytools from chiplotle.tools import hpgltools from chiplotle.tools import io diff --git a/chiplotle/tools/geometrytools/get_line_intersection.py b/chiplotle/tools/geometrytools/get_line_intersection.py index 8bf291b..8b12a91 100644 --- a/chiplotle/tools/geometrytools/get_line_intersection.py +++ b/chiplotle/tools/geometrytools/get_line_intersection.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path diff --git a/chiplotle/tools/geometrytools/get_shape_intersections.py b/chiplotle/tools/geometrytools/get_shape_intersections.py index 8176c37..480089c 100644 --- a/chiplotle/tools/geometrytools/get_shape_intersections.py +++ b/chiplotle/tools/geometrytools/get_shape_intersections.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.shape import _Shape from chiplotle.geometry.shapes.line import line from chiplotle.tools.geometrytools.get_line_intersection \ diff --git a/chiplotle/tools/geometrytools/scale.py b/chiplotle/tools/geometrytools/scale.py index 302abc1..ac378a1 100644 --- a/chiplotle/tools/geometrytools/scale.py +++ b/chiplotle/tools/geometrytools/scale.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate def scale(coords, value, pivot): diff --git a/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py b/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py index ce93e53..3b6cfdb 100644 --- a/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py +++ b/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py @@ -1,4 +1,12 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import int +from builtins import round +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.tools.geometrytools.split_vector_equidistantly import \ split_vector_equidistantly diff --git a/chiplotle/tools/geometrytools/split_vector_equidistantly.py b/chiplotle/tools/geometrytools/split_vector_equidistantly.py index 2336ad1..32bb3ff 100644 --- a/chiplotle/tools/geometrytools/split_vector_equidistantly.py +++ b/chiplotle/tools/geometrytools/split_vector_equidistantly.py @@ -1,4 +1,12 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from builtins import zip +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.mathtools.interpolate_linear import interpolate_linear from chiplotle.geometry.core.coordinatearray import CoordinateArray diff --git a/chiplotle/tools/hpgltools/__init__.py b/chiplotle/tools/hpgltools/__init__.py index f27cd4f..2c1b173 100644 --- a/chiplotle/tools/hpgltools/__init__.py +++ b/chiplotle/tools/hpgltools/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], locals( )) diff --git a/chiplotle/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py b/chiplotle/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py index b920a5a..012fa94 100644 --- a/chiplotle/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py +++ b/chiplotle/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.commands import PU, PA, PD from chiplotle.geometry.core.coordinatearray import CoordinateArray diff --git a/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py b/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py index 9a8aac9..7d9e188 100644 --- a/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py +++ b/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.hpgltools.pens_updown_to_papr import pens_updown_to_papr from chiplotle.tools.hpgltools.is_primitive_absolute import is_primitive_absolute from chiplotle.tools.hpgltools.pr_to_pa import pr_to_pa diff --git a/chiplotle/tools/hpgltools/get_all_coordinates.py b/chiplotle/tools/hpgltools/get_all_coordinates.py index 118069a..3e70c47 100644 --- a/chiplotle/tools/hpgltools/get_all_coordinates.py +++ b/chiplotle/tools/hpgltools/get_all_coordinates.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.tools.hpgltools.convert_relatives_to_absolutes import \ diff --git a/chiplotle/tools/hpgltools/get_bounding_box.py b/chiplotle/tools/hpgltools/get_bounding_box.py index 6bccfb1..be65719 100644 --- a/chiplotle/tools/hpgltools/get_bounding_box.py +++ b/chiplotle/tools/hpgltools/get_bounding_box.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools.hpgltools.get_all_coordinates import get_all_coordinates diff --git a/chiplotle/tools/hpgltools/get_centroid.py b/chiplotle/tools/hpgltools/get_centroid.py index 1115ccd..cd1393f 100644 --- a/chiplotle/tools/hpgltools/get_centroid.py +++ b/chiplotle/tools/hpgltools/get_centroid.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools.hpgltools.get_all_coordinates import get_all_coordinates diff --git a/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/chiplotle/tools/hpgltools/inflate_hpgl_string.py index 8940c19..c359c67 100644 --- a/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl import commands as hpgl from chiplotle.tools.hpgltools.parse_hpgl_string import parse_hpgl_string from chiplotle.tools.logtools.apply_logger import apply_logger diff --git a/chiplotle/tools/hpgltools/is_primitive_absolute.py b/chiplotle/tools/hpgltools/is_primitive_absolute.py index 82d1fc3..786dc6c 100644 --- a/chiplotle/tools/hpgltools/is_primitive_absolute.py +++ b/chiplotle/tools/hpgltools/is_primitive_absolute.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL def is_primitive_absolute(command): diff --git a/chiplotle/tools/hpgltools/parse_hpgl_string.py b/chiplotle/tools/hpgltools/parse_hpgl_string.py index f2880c2..aea2aaa 100644 --- a/chiplotle/tools/hpgltools/parse_hpgl_string.py +++ b/chiplotle/tools/hpgltools/parse_hpgl_string.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import re def parse_hpgl_string(arg): diff --git a/chiplotle/tools/hpgltools/pens_updown_to_papr.py b/chiplotle/tools/hpgltools/pens_updown_to_papr.py index c7cc9af..329bb73 100644 --- a/chiplotle/tools/hpgltools/pens_updown_to_papr.py +++ b/chiplotle/tools/hpgltools/pens_updown_to_papr.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import copy from chiplotle.hpgl.commands import PA, PR, PU, PD diff --git a/chiplotle/tools/hpgltools/pr_to_pa.py b/chiplotle/tools/hpgltools/pr_to_pa.py index ec3e143..cc78e93 100644 --- a/chiplotle/tools/hpgltools/pr_to_pa.py +++ b/chiplotle/tools/hpgltools/pr_to_pa.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.hpgl.commands import PA, PR diff --git a/chiplotle/tools/hpgltools/relativize.py b/chiplotle/tools/hpgltools/relativize.py index 09215b2..9a14eb9 100644 --- a/chiplotle/tools/hpgltools/relativize.py +++ b/chiplotle/tools/hpgltools/relativize.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.hpgl import commands as hpgl import numpy diff --git a/chiplotle/tools/hpgltools/rotate_hpglprimitives.py b/chiplotle/tools/hpgltools/rotate_hpglprimitives.py index 00a760d..d2f4542 100644 --- a/chiplotle/tools/hpgltools/rotate_hpglprimitives.py +++ b/chiplotle/tools/hpgltools/rotate_hpglprimitives.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.tools.mathtools.rotate_2d import rotate_coordinate_2d from chiplotle.geometry.core.coordinatearray import CoordinateArray diff --git a/chiplotle/tools/hpgltools/scale.py b/chiplotle/tools/hpgltools/scale.py index c8e062d..aa20351 100644 --- a/chiplotle/tools/hpgltools/scale.py +++ b/chiplotle/tools/hpgltools/scale.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL def _scale_command(obj, val): diff --git a/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py b/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py index 32c5d97..0c17c9d 100644 --- a/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py +++ b/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from py.test import raises diff --git a/chiplotle/tools/hpgltools/test/test_convert_relatives_to_absolutes.py b/chiplotle/tools/hpgltools/test/test_convert_relatives_to_absolutes.py index 9fd21dc..3eff923 100644 --- a/chiplotle/tools/hpgltools/test/test_convert_relatives_to_absolutes.py +++ b/chiplotle/tools/hpgltools/test/test_convert_relatives_to_absolutes.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * diff --git a/chiplotle/tools/hpgltools/test/test_get_all_coordinates.py b/chiplotle/tools/hpgltools/test/test_get_all_coordinates.py index 3197659..cf5246d 100644 --- a/chiplotle/tools/hpgltools/test/test_get_all_coordinates.py +++ b/chiplotle/tools/hpgltools/test/test_get_all_coordinates.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * diff --git a/chiplotle/tools/hpgltools/test/test_get_bounding_box.py b/chiplotle/tools/hpgltools/test/test_get_bounding_box.py index 9298dc3..d021a26 100644 --- a/chiplotle/tools/hpgltools/test/test_get_bounding_box.py +++ b/chiplotle/tools/hpgltools/test/test_get_bounding_box.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PA, EA diff --git a/chiplotle/tools/hpgltools/test/test_get_centroid.py b/chiplotle/tools/hpgltools/test/test_get_centroid.py index 09a27b5..8983c08 100644 --- a/chiplotle/tools/hpgltools/test/test_get_centroid.py +++ b/chiplotle/tools/hpgltools/test/test_get_centroid.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PA diff --git a/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py b/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py index ebda4ff..dfd0a26 100644 --- a/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py +++ b/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from py.test import raises diff --git a/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py b/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py index 9099693..6f1fc09 100644 --- a/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py +++ b/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * def test_parse_hpgl_string_01( ): diff --git a/chiplotle/tools/hpgltools/test/test_pens_updown_to_papr.py b/chiplotle/tools/hpgltools/test/test_pens_updown_to_papr.py index d985a31..bdc2f00 100644 --- a/chiplotle/tools/hpgltools/test/test_pens_updown_to_papr.py +++ b/chiplotle/tools/hpgltools/test/test_pens_updown_to_papr.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * diff --git a/chiplotle/tools/hpgltools/test/test_pr_to_pa.py b/chiplotle/tools/hpgltools/test/test_pr_to_pa.py index 91be4ab..a86290d 100644 --- a/chiplotle/tools/hpgltools/test/test_pr_to_pa.py +++ b/chiplotle/tools/hpgltools/test/test_pr_to_pa.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * diff --git a/chiplotle/tools/hpgltools/test/test_relativize.py b/chiplotle/tools/hpgltools/test/test_relativize.py index fda0f76..6eb5dcc 100644 --- a/chiplotle/tools/hpgltools/test/test_relativize.py +++ b/chiplotle/tools/hpgltools/test/test_relativize.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from chiplotle.tools.hpgltools import relativize diff --git a/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py b/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py index 4688c3c..f2223e2 100644 --- a/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py +++ b/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * import math diff --git a/chiplotle/tools/hpgltools/test/test_scale.py b/chiplotle/tools/hpgltools/test/test_scale.py index 6315068..c2746f1 100644 --- a/chiplotle/tools/hpgltools/test/test_scale.py +++ b/chiplotle/tools/hpgltools/test/test_scale.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from chiplotle.tools.hpgltools import scale diff --git a/chiplotle/tools/hpgltools/test/test_transpose.py b/chiplotle/tools/hpgltools/test/test_transpose.py index bbd48cc..59d743c 100644 --- a/chiplotle/tools/hpgltools/test/test_transpose.py +++ b/chiplotle/tools/hpgltools/test/test_transpose.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from chiplotle.tools.hpgltools import transpose diff --git a/chiplotle/tools/hpgltools/transpose.py b/chiplotle/tools/hpgltools/transpose.py index 77ac1e8..b8bb512 100644 --- a/chiplotle/tools/hpgltools/transpose.py +++ b/chiplotle/tools/hpgltools/transpose.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL from chiplotle.tools.hpgltools.is_primitive_absolute import is_primitive_absolute from chiplotle.geometry.core.coordinate import * diff --git a/chiplotle/tools/io/__init__.py b/chiplotle/tools/io/__init__.py index 3c6064d..55e192e 100644 --- a/chiplotle/tools/io/__init__.py +++ b/chiplotle/tools/io/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], globals( )) diff --git a/chiplotle/tools/io/_open_file.py b/chiplotle/tools/io/_open_file.py index 66cecaf..937be8a 100644 --- a/chiplotle/tools/io/_open_file.py +++ b/chiplotle/tools/io/_open_file.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import os import sys diff --git a/chiplotle/tools/io/export.py b/chiplotle/tools/io/export.py index 9f9c6d4..0147539 100644 --- a/chiplotle/tools/io/export.py +++ b/chiplotle/tools/io/export.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.io.save_hpgl import save_hpgl from chiplotle.core.cfg.cfg import CONFIG_DIR import subprocess diff --git a/chiplotle/tools/io/import_hpgl_file.py b/chiplotle/tools/io/import_hpgl_file.py index a69fdf3..0ed4e0c 100644 --- a/chiplotle/tools/io/import_hpgl_file.py +++ b/chiplotle/tools/io/import_hpgl_file.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import open +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.hpgltools.inflate_hpgl_string import inflate_hpgl_string from chiplotle.hpgl import commands as hpgl import re diff --git a/chiplotle/tools/io/save_hpgl.py b/chiplotle/tools/io/save_hpgl.py index e455426..a521f9f 100644 --- a/chiplotle/tools/io/save_hpgl.py +++ b/chiplotle/tools/io/save_hpgl.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import open +from future import standard_library +standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL def save_hpgl(expr, filename): diff --git a/chiplotle/tools/io/test/test_export.py b/chiplotle/tools/io/test/test_export.py index 287763b..0acf7b7 100644 --- a/chiplotle/tools/io/test/test_export.py +++ b/chiplotle/tools/io/test/test_export.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * import os diff --git a/chiplotle/tools/io/test/test_import_hpgl_file.py b/chiplotle/tools/io/test/test_import_hpgl_file.py index 12efc78..d05d76f 100644 --- a/chiplotle/tools/io/test/test_import_hpgl_file.py +++ b/chiplotle/tools/io/test/test_import_hpgl_file.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * import os diff --git a/chiplotle/tools/io/test/test_save_hpgl.py b/chiplotle/tools/io/test/test_save_hpgl.py index 97cf8a5..cb83a27 100644 --- a/chiplotle/tools/io/test/test_save_hpgl.py +++ b/chiplotle/tools/io/test/test_save_hpgl.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * import os diff --git a/chiplotle/tools/io/view.py b/chiplotle/tools/io/view.py index ecc3d65..261748c 100644 --- a/chiplotle/tools/io/view.py +++ b/chiplotle/tools/io/view.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.cfg import CONFIG_DIR from chiplotle.tools.io.export import export from chiplotle.tools.io._open_file import _open_file diff --git a/chiplotle/tools/iterabletools/__init__.py b/chiplotle/tools/iterabletools/__init__.py index 3c6064d..55e192e 100644 --- a/chiplotle/tools/iterabletools/__init__.py +++ b/chiplotle/tools/iterabletools/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], globals( )) diff --git a/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py b/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py index afcf8a8..c81326e 100644 --- a/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py +++ b/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py @@ -1,3 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import zip +from future import standard_library +standard_library.install_aliases() def flat_list_to_dovetail_pairs(lst): return list(zip(lst[0:-1], lst[1:])) diff --git a/chiplotle/tools/iterabletools/flat_list_to_pairs.py b/chiplotle/tools/iterabletools/flat_list_to_pairs.py index a99d153..91c170d 100644 --- a/chiplotle/tools/iterabletools/flat_list_to_pairs.py +++ b/chiplotle/tools/iterabletools/flat_list_to_pairs.py @@ -1,4 +1,11 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import zip +from future import standard_library +standard_library.install_aliases() def flat_list_to_pairs(lst): '''Returns a list of pairs created from consecutive elements of the given flat list `lst`. diff --git a/chiplotle/tools/iterabletools/flatten.py b/chiplotle/tools/iterabletools/flatten.py index e345349..a073437 100644 --- a/chiplotle/tools/iterabletools/flatten.py +++ b/chiplotle/tools/iterabletools/flatten.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def flatten(l, ltypes=(list, tuple)): ''' Flatten nested lists. Returns a 0-depth list or tuple. diff --git a/chiplotle/tools/iterabletools/is_flat_list.py b/chiplotle/tools/iterabletools/is_flat_list.py index 7446aa0..3c77132 100644 --- a/chiplotle/tools/iterabletools/is_flat_list.py +++ b/chiplotle/tools/iterabletools/is_flat_list.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def is_flat_list(lst): '''Returns True if list is flat, false otherwise.''' if isinstance(lst, (list, tuple)): diff --git a/chiplotle/tools/iterabletools/isiterable.py b/chiplotle/tools/iterabletools/isiterable.py index f90ec54..bdcf600 100644 --- a/chiplotle/tools/iterabletools/isiterable.py +++ b/chiplotle/tools/iterabletools/isiterable.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def isiterable(data): try: iter(data) diff --git a/chiplotle/tools/iterabletools/ispair.py b/chiplotle/tools/iterabletools/ispair.py index 6522818..4ac754d 100644 --- a/chiplotle/tools/iterabletools/ispair.py +++ b/chiplotle/tools/iterabletools/ispair.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.iterabletools.isiterable import isiterable def ispair(data): diff --git a/chiplotle/tools/logtools/apply_logger.py b/chiplotle/tools/logtools/apply_logger.py index d6fe4ac..7a8756a 100644 --- a/chiplotle/tools/logtools/apply_logger.py +++ b/chiplotle/tools/logtools/apply_logger.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.logtools.get_logger import get_logger def apply_logger(f): diff --git a/chiplotle/tools/logtools/get_logger.py b/chiplotle/tools/logtools/get_logger.py index 6d8ebee..d5b7f1a 100644 --- a/chiplotle/tools/logtools/get_logger.py +++ b/chiplotle/tools/logtools/get_logger.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.cfg import LOG_FILE from chiplotle.core.cfg.get_config_value import get_config_value import logging diff --git a/chiplotle/tools/mathtools/__init__.py b/chiplotle/tools/mathtools/__init__.py index 3c6064d..55e192e 100644 --- a/chiplotle/tools/mathtools/__init__.py +++ b/chiplotle/tools/mathtools/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], globals( )) diff --git a/chiplotle/tools/mathtools/bezier_interpolation.py b/chiplotle/tools/mathtools/bezier_interpolation.py index 5feadd4..011541b 100644 --- a/chiplotle/tools/mathtools/bezier_interpolation.py +++ b/chiplotle/tools/mathtools/bezier_interpolation.py @@ -1,3 +1,11 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import zip +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.mathtools.pascal_row import pascal_row import numpy diff --git a/chiplotle/tools/mathtools/catmull_interpolation.py b/chiplotle/tools/mathtools/catmull_interpolation.py index 564d073..3a9f690 100644 --- a/chiplotle/tools/mathtools/catmull_interpolation.py +++ b/chiplotle/tools/mathtools/catmull_interpolation.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray def catmull_interpolation(control_points, points_to_compute): diff --git a/chiplotle/tools/mathtools/cumsum.py b/chiplotle/tools/mathtools/cumsum.py index 9340c7b..f996864 100644 --- a/chiplotle/tools/mathtools/cumsum.py +++ b/chiplotle/tools/mathtools/cumsum.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def cumsum(lst): '''Returns the cumulative sum of the values in `lst`.''' diff --git a/chiplotle/tools/mathtools/difference.py b/chiplotle/tools/mathtools/difference.py index 8a39b3a..9232a9a 100644 --- a/chiplotle/tools/mathtools/difference.py +++ b/chiplotle/tools/mathtools/difference.py @@ -1,4 +1,11 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() def difference(seq): '''Returns the difference between consecutive elements in `seq`. i.e., first derivative. diff --git a/chiplotle/tools/mathtools/factors.py b/chiplotle/tools/mathtools/factors.py index 888d68f..9d68bfa 100644 --- a/chiplotle/tools/mathtools/factors.py +++ b/chiplotle/tools/mathtools/factors.py @@ -1,4 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def factors(n): '''Return factors of positive `n` in increasing order:: diff --git a/chiplotle/tools/mathtools/interpolate_cosine.py b/chiplotle/tools/mathtools/interpolate_cosine.py index f24efa8..936abdc 100644 --- a/chiplotle/tools/mathtools/interpolate_cosine.py +++ b/chiplotle/tools/mathtools/interpolate_cosine.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import math ## TODO: use Decimal instead of floats? diff --git a/chiplotle/tools/mathtools/interpolate_exponential.py b/chiplotle/tools/mathtools/interpolate_exponential.py index d7ed661..3e9577c 100644 --- a/chiplotle/tools/mathtools/interpolate_exponential.py +++ b/chiplotle/tools/mathtools/interpolate_exponential.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def interpolate_exponential(y1, y2, mu, exp = 1): '''Exponential interpolate `y1` and `y2` with `mu` normalized ``[0, 1]``. diff --git a/chiplotle/tools/mathtools/interpolate_linear.py b/chiplotle/tools/mathtools/interpolate_linear.py index 0d18650..05928d2 100644 --- a/chiplotle/tools/mathtools/interpolate_linear.py +++ b/chiplotle/tools/mathtools/interpolate_linear.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def interpolate_linear(y1, y2, mu): '''Linear interpolate `y1` and `y2` with `mu` normalized ``[0, 1]``. diff --git a/chiplotle/tools/mathtools/lcm.py b/chiplotle/tools/mathtools/lcm.py index 9bfe931..9539924 100644 --- a/chiplotle/tools/mathtools/lcm.py +++ b/chiplotle/tools/mathtools/lcm.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from fractions import gcd def lcm(a, b): diff --git a/chiplotle/tools/mathtools/pascal_row.py b/chiplotle/tools/mathtools/pascal_row.py index 6e610d5..7424459 100644 --- a/chiplotle/tools/mathtools/pascal_row.py +++ b/chiplotle/tools/mathtools/pascal_row.py @@ -1,4 +1,11 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from builtins import range +from future import standard_library +standard_library.install_aliases() def pascal_row(n): '''Returns the nth row of Pascal's Triangle.''' diff --git a/chiplotle/tools/mathtools/polar_to_xy.py b/chiplotle/tools/mathtools/polar_to_xy.py index da3678a..9ff8cd4 100644 --- a/chiplotle/tools/mathtools/polar_to_xy.py +++ b/chiplotle/tools/mathtools/polar_to_xy.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate import math diff --git a/chiplotle/tools/mathtools/rotate_2d.py b/chiplotle/tools/mathtools/rotate_2d.py index 165bf16..acc3495 100644 --- a/chiplotle/tools/mathtools/rotate_2d.py +++ b/chiplotle/tools/mathtools/rotate_2d.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.coordinatearray import CoordinateArray import math diff --git a/chiplotle/tools/mathtools/rotate_3d.py b/chiplotle/tools/mathtools/rotate_3d.py index 236ddc7..0888be7 100644 --- a/chiplotle/tools/mathtools/rotate_3d.py +++ b/chiplotle/tools/mathtools/rotate_3d.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import math diff --git a/chiplotle/tools/mathtools/superformula.py b/chiplotle/tools/mathtools/superformula.py index 23a1c36..c45eba3 100644 --- a/chiplotle/tools/mathtools/superformula.py +++ b/chiplotle/tools/mathtools/superformula.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from math import sin, cos, pow diff --git a/chiplotle/tools/mathtools/test/test_difference.py b/chiplotle/tools/mathtools/test/test_difference.py index 6e31c06..f1364f5 100644 --- a/chiplotle/tools/mathtools/test/test_difference.py +++ b/chiplotle/tools/mathtools/test/test_difference.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import * def test_difference_01( ): diff --git a/chiplotle/tools/mathtools/test/test_mathtools_factors.py b/chiplotle/tools/mathtools/test/test_mathtools_factors.py index 7bcb242..dda70b5 100644 --- a/chiplotle/tools/mathtools/test/test_mathtools_factors.py +++ b/chiplotle/tools/mathtools/test/test_mathtools_factors.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools import mathtools import py.test diff --git a/chiplotle/tools/mathtools/test/test_polar_to_xy.py b/chiplotle/tools/mathtools/test/test_polar_to_xy.py index b20a2d6..acc11ab 100644 --- a/chiplotle/tools/mathtools/test/test_polar_to_xy.py +++ b/chiplotle/tools/mathtools/test/test_polar_to_xy.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import round +from future import standard_library +standard_library.install_aliases() from chiplotle import * import math from py.test import raises diff --git a/chiplotle/tools/mathtools/test/test_rotate_2d.py b/chiplotle/tools/mathtools/test/test_rotate_2d.py index 5966b04..e94b6c9 100644 --- a/chiplotle/tools/mathtools/test/test_rotate_2d.py +++ b/chiplotle/tools/mathtools/test/test_rotate_2d.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import round +from future import standard_library +standard_library.install_aliases() from chiplotle import * import math diff --git a/chiplotle/tools/mathtools/test/test_xy_to_polar.py b/chiplotle/tools/mathtools/test/test_xy_to_polar.py index c3f7a2e..33e7d81 100644 --- a/chiplotle/tools/mathtools/test/test_xy_to_polar.py +++ b/chiplotle/tools/mathtools/test/test_xy_to_polar.py @@ -1,3 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from builtins import round +from future import standard_library +standard_library.install_aliases() from chiplotle import * import math diff --git a/chiplotle/tools/mathtools/xy_to_polar.py b/chiplotle/tools/mathtools/xy_to_polar.py index c01242a..065b275 100644 --- a/chiplotle/tools/mathtools/xy_to_polar.py +++ b/chiplotle/tools/mathtools/xy_to_polar.py @@ -1,4 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate import math diff --git a/chiplotle/tools/measuretools/__init__.py b/chiplotle/tools/measuretools/__init__.py index 3c6064d..55e192e 100644 --- a/chiplotle/tools/measuretools/__init__.py +++ b/chiplotle/tools/measuretools/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], globals( )) diff --git a/chiplotle/tools/measuretools/cm_to_pu.py b/chiplotle/tools/measuretools/cm_to_pu.py index 2401f78..972200b 100644 --- a/chiplotle/tools/measuretools/cm_to_pu.py +++ b/chiplotle/tools/measuretools/cm_to_pu.py @@ -1,4 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def cm_to_pu(magnitude): '''Converts centimeters to plotter units.''' return magnitude / 0.025 * 10.0 diff --git a/chiplotle/tools/measuretools/in_to_pu.py b/chiplotle/tools/measuretools/in_to_pu.py index 0aec6c1..3b61058 100644 --- a/chiplotle/tools/measuretools/in_to_pu.py +++ b/chiplotle/tools/measuretools/in_to_pu.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def in_to_pu(magnitude): '''Converts inches to plotter units.''' return magnitude * 1016.0 ## == magnitude / 0.025 * 10 * 2.54 diff --git a/chiplotle/tools/measuretools/mm_to_pu.py b/chiplotle/tools/measuretools/mm_to_pu.py index 056eed5..d1164d4 100644 --- a/chiplotle/tools/measuretools/mm_to_pu.py +++ b/chiplotle/tools/measuretools/mm_to_pu.py @@ -1,4 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def mm_to_pu(magnitude): '''Converts millimeters to plotter units.''' return magnitude / 0.025 diff --git a/chiplotle/tools/measuretools/pu_to_cm.py b/chiplotle/tools/measuretools/pu_to_cm.py index f6401b6..0966e3e 100644 --- a/chiplotle/tools/measuretools/pu_to_cm.py +++ b/chiplotle/tools/measuretools/pu_to_cm.py @@ -1,4 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def pu_to_cm(magnitude): '''Converts plotter units to centimeters.''' return magnitude / 400.0 diff --git a/chiplotle/tools/measuretools/pu_to_in.py b/chiplotle/tools/measuretools/pu_to_in.py index d45c824..482175f 100644 --- a/chiplotle/tools/measuretools/pu_to_in.py +++ b/chiplotle/tools/measuretools/pu_to_in.py @@ -1,4 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def pu_to_in(magnitude): '''Converts plotter units to inches.''' return magnitude / 1016.0 diff --git a/chiplotle/tools/measuretools/pu_to_mm.py b/chiplotle/tools/measuretools/pu_to_mm.py index c213e00..aa96efb 100644 --- a/chiplotle/tools/measuretools/pu_to_mm.py +++ b/chiplotle/tools/measuretools/pu_to_mm.py @@ -1,4 +1,10 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def pu_to_mm(magnitude): '''Converts plotter units to millimeters.''' return magnitude / 40.0 diff --git a/chiplotle/tools/measuretools/test/test_cm_to_pu.py b/chiplotle/tools/measuretools/test/test_cm_to_pu.py index ae88062..307b765 100644 --- a/chiplotle/tools/measuretools/test/test_cm_to_pu.py +++ b/chiplotle/tools/measuretools/test/test_cm_to_pu.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.measuretools import * diff --git a/chiplotle/tools/measuretools/test/test_in_to_pu.py b/chiplotle/tools/measuretools/test/test_in_to_pu.py index 5767925..96c7b56 100644 --- a/chiplotle/tools/measuretools/test/test_in_to_pu.py +++ b/chiplotle/tools/measuretools/test/test_in_to_pu.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.measuretools import * diff --git a/chiplotle/tools/measuretools/test/test_mm_to_pu.py b/chiplotle/tools/measuretools/test/test_mm_to_pu.py index f2172ab..2e594b8 100644 --- a/chiplotle/tools/measuretools/test/test_mm_to_pu.py +++ b/chiplotle/tools/measuretools/test/test_mm_to_pu.py @@ -1,3 +1,9 @@ +from __future__ import division +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.measuretools import * diff --git a/chiplotle/tools/measuretools/test/test_pu_to_cm.py b/chiplotle/tools/measuretools/test/test_pu_to_cm.py index 9e4476d..af1f388 100644 --- a/chiplotle/tools/measuretools/test/test_pu_to_cm.py +++ b/chiplotle/tools/measuretools/test/test_pu_to_cm.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.measuretools import * diff --git a/chiplotle/tools/measuretools/test/test_pu_to_in.py b/chiplotle/tools/measuretools/test/test_pu_to_in.py index a65ebe2..1393157 100644 --- a/chiplotle/tools/measuretools/test/test_pu_to_in.py +++ b/chiplotle/tools/measuretools/test/test_pu_to_in.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.measuretools import * diff --git a/chiplotle/tools/measuretools/test/test_pu_to_mm.py b/chiplotle/tools/measuretools/test/test_pu_to_mm.py index 5877b98..baeb420 100644 --- a/chiplotle/tools/measuretools/test/test_pu_to_mm.py +++ b/chiplotle/tools/measuretools/test/test_pu_to_mm.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.measuretools import * diff --git a/chiplotle/tools/plottertools/__init__.py b/chiplotle/tools/plottertools/__init__.py index 3c6064d..55e192e 100644 --- a/chiplotle/tools/plottertools/__init__.py +++ b/chiplotle/tools/plottertools/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], globals( )) diff --git a/chiplotle/tools/plottertools/_instantiate_plotter.py b/chiplotle/tools/plottertools/_instantiate_plotter.py index f93e433..f3b076a 100644 --- a/chiplotle/tools/plottertools/_instantiate_plotter.py +++ b/chiplotle/tools/plottertools/_instantiate_plotter.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.serialtools.instantiate_serial_from_config_file \ import instantiate_serial_from_config_file from chiplotle import plotters diff --git a/chiplotle/tools/plottertools/instantiate_plotter_from_id.py b/chiplotle/tools/plottertools/instantiate_plotter_from_id.py index b3867b2..7718ff8 100644 --- a/chiplotle/tools/plottertools/instantiate_plotter_from_id.py +++ b/chiplotle/tools/plottertools/instantiate_plotter_from_id.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle import plotters def instantiate_plotter_from_id(serial, id): diff --git a/chiplotle/tools/plottertools/instantiate_plotters.py b/chiplotle/tools/plottertools/instantiate_plotters.py index b774864..665ad8b 100644 --- a/chiplotle/tools/plottertools/instantiate_plotters.py +++ b/chiplotle/tools/plottertools/instantiate_plotters.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.get_config_value import get_config_value from chiplotle.tools.plottertools._instantiate_plotter \ import _instantiate_plotter diff --git a/chiplotle/tools/plottertools/instantiate_virtual_plotter.py b/chiplotle/tools/plottertools/instantiate_virtual_plotter.py index f9c7ef7..45defc4 100644 --- a/chiplotle/tools/plottertools/instantiate_virtual_plotter.py +++ b/chiplotle/tools/plottertools/instantiate_virtual_plotter.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.serialtools.virtual_serial_port \ import VirtualSerialPort from chiplotle.tools.plottertools.instantiate_plotter_from_id \ diff --git a/chiplotle/tools/plottertools/interactive_choose_plotter.py b/chiplotle/tools/plottertools/interactive_choose_plotter.py index bdc6681..fae84da 100644 --- a/chiplotle/tools/plottertools/interactive_choose_plotter.py +++ b/chiplotle/tools/plottertools/interactive_choose_plotter.py @@ -1,3 +1,11 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from builtins import int +from builtins import input +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.serialtools.virtual_serial_port import VirtualSerialPort def interactive_choose_plotter(serial): diff --git a/chiplotle/tools/plottertools/interactive_plot_layers.py b/chiplotle/tools/plottertools/interactive_plot_layers.py index d49efb5..6f06383 100644 --- a/chiplotle/tools/plottertools/interactive_plot_layers.py +++ b/chiplotle/tools/plottertools/interactive_plot_layers.py @@ -1,3 +1,10 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from builtins import input +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.layersvisitor import LayersVisitor from chiplotle.geometry.core.affixformatvisitor import AffixFormatVisitor import copy diff --git a/chiplotle/tools/plottertools/search_and_instantiate_plotters.py b/chiplotle/tools/plottertools/search_and_instantiate_plotters.py index cd06f60..191862e 100644 --- a/chiplotle/tools/plottertools/search_and_instantiate_plotters.py +++ b/chiplotle/tools/plottertools/search_and_instantiate_plotters.py @@ -1,3 +1,9 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.plottertools._instantiate_plotter import _instantiate_plotter from chiplotle.tools.serialtools.sniff_ports_for_plotters import sniff_ports_for_plotters from chiplotle.tools.serialtools.scan_serial_ports import scan_serial_ports diff --git a/chiplotle/tools/serialtools/__init__.py b/chiplotle/tools/serialtools/__init__.py index 3c6064d..55e192e 100644 --- a/chiplotle/tools/serialtools/__init__.py +++ b/chiplotle/tools/serialtools/__init__.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import _package_import(__path__[0], globals( )) diff --git a/chiplotle/tools/serialtools/instantiate_serial_from_config_file.py b/chiplotle/tools/serialtools/instantiate_serial_from_config_file.py index ccf054b..c9ef46f 100644 --- a/chiplotle/tools/serialtools/instantiate_serial_from_config_file.py +++ b/chiplotle/tools/serialtools/instantiate_serial_from_config_file.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.core.cfg.get_config_value import get_config_value import serial diff --git a/chiplotle/tools/serialtools/interactive_open_serial.py b/chiplotle/tools/serialtools/interactive_open_serial.py index 6c92662..9472918 100644 --- a/chiplotle/tools/serialtools/interactive_open_serial.py +++ b/chiplotle/tools/serialtools/interactive_open_serial.py @@ -1,3 +1,11 @@ +from __future__ import print_function +from __future__ import unicode_literals +from __future__ import division +from __future__ import absolute_import +from builtins import input +from builtins import int +from future import standard_library +standard_library.install_aliases() from chiplotle.tools.serialtools.scan_serial_ports import scan_serial_ports ## TODO: DELETE. No longer used. diff --git a/chiplotle/tools/serialtools/scan_serial_ports.py b/chiplotle/tools/serialtools/scan_serial_ports.py index 1602dbf..ef109ac 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports.py +++ b/chiplotle/tools/serialtools/scan_serial_ports.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import platform def scan_serial_ports( ): diff --git a/chiplotle/tools/serialtools/scan_serial_ports_from_list.py b/chiplotle/tools/serialtools/scan_serial_ports_from_list.py index 047594e..8f90adc 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports_from_list.py +++ b/chiplotle/tools/serialtools/scan_serial_ports_from_list.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import serial def scan_serial_ports_from_list(portlist): diff --git a/chiplotle/tools/serialtools/scan_serial_ports_linux.py b/chiplotle/tools/serialtools/scan_serial_ports_linux.py index c67099b..d5fd579 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports_linux.py +++ b/chiplotle/tools/serialtools/scan_serial_ports_linux.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import glob def scan_serial_ports_linux( ): diff --git a/chiplotle/tools/serialtools/scan_serial_ports_windows.py b/chiplotle/tools/serialtools/scan_serial_ports_windows.py index 1982d41..2510cea 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports_windows.py +++ b/chiplotle/tools/serialtools/scan_serial_ports_windows.py @@ -1,5 +1,12 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import #import serial +from builtins import range +from future import standard_library +standard_library.install_aliases() def scan_serial_ports_windows( ): from chiplotle.tools.serialtools import scan_serial_ports_from_list return scan_serial_ports_from_list(list(range(256))) diff --git a/chiplotle/tools/serialtools/sniff_ports_for_plotters.py b/chiplotle/tools/serialtools/sniff_ports_for_plotters.py index d52de7b..2df4646 100644 --- a/chiplotle/tools/serialtools/sniff_ports_for_plotters.py +++ b/chiplotle/tools/serialtools/sniff_ports_for_plotters.py @@ -1,4 +1,10 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() def sniff_ports_for_plotters(ports): '''Sniffs all given serial `ports` in search for pen plotters. The function returns a dictionary of plotter names found, with keys diff --git a/chiplotle/tools/serialtools/virtual_serial_port.py b/chiplotle/tools/serialtools/virtual_serial_port.py index c86cf94..0302ba9 100644 --- a/chiplotle/tools/serialtools/virtual_serial_port.py +++ b/chiplotle/tools/serialtools/virtual_serial_port.py @@ -1,9 +1,16 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() +from builtins import object from chiplotle.hpgl import commands from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools.hpgltools.inflate_hpgl_string import inflate_hpgl_string from sys import maxsize -class VirtualSerialPort(): +class VirtualSerialPort(object): def __init__(self, left_bottom, right_top): left_bottom = Coordinate(*left_bottom) right_top = Coordinate(*right_top) diff --git a/chiplotle/tools/serialtools/what_plotter_in_port.py b/chiplotle/tools/serialtools/what_plotter_in_port.py index 63e67c3..906fced 100644 --- a/chiplotle/tools/serialtools/what_plotter_in_port.py +++ b/chiplotle/tools/serialtools/what_plotter_in_port.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() import serial import time diff --git a/chiplotle/tools/shapetools/get_shapes_with_tag.py b/chiplotle/tools/shapetools/get_shapes_with_tag.py index 5c25869..9804a0a 100644 --- a/chiplotle/tools/shapetools/get_shapes_with_tag.py +++ b/chiplotle/tools/shapetools/get_shapes_with_tag.py @@ -1,3 +1,9 @@ +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() from chiplotle.geometry.core.tagsvisitor import TagsVisitor def get_shapes_with_tag(shape, tag): diff --git a/requirements-dev.txt b/requirements-dev.txt index 87db4cf..054011a 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,2 +1,3 @@ pytest +pytest-cov tox>=2,<3 diff --git a/requirements.txt b/requirements.txt index cc284fc..fb17172 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ numpy==1.15.0 pyserial==3.4 +future==0.16.0 From b73931aab8d5e01d1c6db6c00ca105a6375d5b64 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 22:51:40 +0100 Subject: [PATCH 12/82] Add circleci config, makefile and tox support --- .circleci/config.yml | 66 ++++++++++++++++++++++++++++++++++++++++++++ Makefile | 34 +++++++++++++++++++++++ tox.ini | 14 ++++++++++ 3 files changed, 114 insertions(+) create mode 100644 .circleci/config.yml create mode 100644 Makefile create mode 100644 tox.ini diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..e7370f8 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,66 @@ +# Python CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-python/ for more details +version: 2 + +shared: &shared + working_directory: ~/repo + steps: + - checkout + + - restore_cache: + keys: + - deps-{{ .Branch}}-{{ checksum "requirements.txt" }} + + - run: + name: Install dependencies + command: | + python3 -m venv venv + . venv/bin/activate + pip install tox + pip install codecov + pip install -r requirements.txt + pip install -r requirements-dev.txt + + - save_cache: + key: deps-{{ .Branch}}-{{ checksum "requirements.txt" }} + paths: + - "venv" + + - run: + name: Run tests + command: | + . venv/bin/activate + # If we don't specify the python version then the default + # 3.5 version that is part of all images is run which causes + # issues. + TOX_ENV="$(echo ${PYTHON_VERSION} | sed -E 's/([[:digit:]]).([[:digit:]]).([[:digit:]])/py\1\2/')" + tox -e "$TOX_ENV" + codecov + +jobs: + py2.7: + <<: *shared + docker: + - image: circleci/python:2.7 + py3.5: + <<: *shared + docker: + - image: circleci/python:3.5 + py3.6: + <<: *shared + docker: + - image: circleci/python:3.6 + py3.7: + <<: *shared + docker: + - image: circleci/python:3.7 + +workflows: + version: 2 + test: + jobs: + - py2.7 + - py3.5 + - py3.6 + - py3.7 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bf6ee22 --- /dev/null +++ b/Makefile @@ -0,0 +1,34 @@ +.PHONY: all docs test compile upload_to_pypi clean format + + +LIBRARY_DIR := chiplotle +SRC_FILES := $(shell find $(LIBRARY_DIR)) +SRC_FILES += setup.py +TEST_FILES := $(shell find $(LIBRARY_DIR) -iname test*.py) + +all: test + +docs: + $(MAKE) html -C docs + +test: compile + tox + +compile: + python -m compileall $(LIBRARY_DIR) -j $$(nproc) + +format: + black $(LIBRARY_DIR) + +flake8: + flake8 $(LIBRARY_DIR) + +dist: $(SRC_FILES) compile + rm -rf dist + python setup.py sdist + +upload_to_pypi: dist + twine upload dist/* + +clean: + rm -rf dist diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..502ddfc --- /dev/null +++ b/tox.ini @@ -0,0 +1,14 @@ +[tox] +envlist = py27,py35,py36,py37 +skip_missing_interpreters = True + + +[testenv] +passenv = HOME +whitelist_externals = make +deps= + -r{toxinidir}/requirements.txt + -r{toxinidir}/requirements-dev.txt +commands= + make compile + pytest chiplotle From 9c81d2ecf6919574ab7c262da14658faf2eff5fc Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 22:55:21 +0100 Subject: [PATCH 13/82] Add build status badge to README --- README | 8 -------- README.md | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 8 deletions(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index da9d160..0000000 --- a/README +++ /dev/null @@ -1,8 +0,0 @@ -Chiplotle is a Python library that implements and extends the HPGL (Hewlett-Packard Graphics Language) plotter control language. It supports all the standard HPGL commands as well as our own more complex "compound HPGL" commands, implemented as Python classes. Chiplotle also provides direct control of your HPGL-aware hardware via a standard usb<->serial port interface. - -Chiplotle has been tested with a variety of HPGL devices from various companies, including Hewlett-Packard, Roland Digital Group, Houston Instrument, etc. It includes plotter-specific configuration files for many different plotter models, as well as a generic configuration that should work with any HPGL-compliant device. - -Chiplotle is written and maintained by Victor Adan and Douglas Repetto. - -Find all there is to know about Chiplotle at: -http://music.columbia.edu/cmc/chiplotle diff --git a/README.md b/README.md new file mode 100644 index 0000000..13986c7 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# Chiplotle + +[![CircleCI](https://circleci.com/gh/willprice/chiplotle.svg?style=svg)](https://circleci.com/gh/willprice/chiplotle) + +Chiplotle is a Python library that implements and extends the HPGL +(Hewlett-Packard Graphics Language) plotter control language. It +supports all the standard HPGL commands as well as our own more complex +"compound HPGL" commands, implemented as Python classes. Chiplotle also +provides direct control of your HPGL-aware hardware via a standard +usb<->serial port interface. + +Chiplotle has been tested with a variety of HPGL devices from various +companies, including Hewlett-Packard, Roland Digital Group, Houston +Instrument, etc. It includes plotter-specific configuration files for +many different plotter models, as well as a generic configuration that +should work with any HPGL-compliant device. + +Chiplotle is written and maintained by Victor Adan and Douglas Repetto. + +Find all there is to know about Chiplotle at: +http://music.columbia.edu/cmc/chiplotle From 67e3325d622c2b888a9f7bede5dfecacf2702d7b Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 23:01:45 +0100 Subject: [PATCH 14/82] Fix chiplotle config file coding line --- .circleci/config.yml | 4 + chiplotle/core/cfg/write_config_file.py | 116 +++++++++++------------- 2 files changed, 59 insertions(+), 61 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e7370f8..c32cc8d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,6 +27,10 @@ shared: &shared paths: - "venv" + - run: + name: Set up chiplotle + command: yes | python -c 'import chiplotle' + - run: name: Run tests command: | diff --git a/chiplotle/core/cfg/write_config_file.py b/chiplotle/core/cfg/write_config_file.py index e4c7bb6..b5946cc 100644 --- a/chiplotle/core/cfg/write_config_file.py +++ b/chiplotle/core/cfg/write_config_file.py @@ -9,72 +9,66 @@ def write_config_file(path): + with open(path, 'w') as f: + ## set preamble... + preamble = '## Chiplotle configuration file.\n' + preamble += '## Created by Chiplotle on %s.\n' % time.strftime("%d %B %Y %H:%M:%S") + preamble += '##\n' + preamble += '## This file houses all the configuration variables employed\n' + preamble += '## by Chiplotle. You can set them manually to suit your needs.\n' + preamble += '## Do not delete them! If you want them to have no effect\n' + preamble += '## simply set them to "None".\n' + preamble += '##\n' + preamble += '## This file is executed via the ``execfile( )`` function,\n' + preamble += "## so all its content should adhere to the Python syntax.\n" + preamble += '\n\n' + f.write(preamble) - ## write file... - f = open(path, 'w') + f.write("# Configuration Variables ---------------------------------\n\n") - ## set preamble... - preamble = '# -*- coding: utf-8 -*-\n' - preamble += '## \n' - preamble += '## Chiplotle configuration file.\n' - preamble += '## Created by Chiplotle on %s.\n' % time.strftime("%d %B %Y %H:%M:%S") - preamble += '##\n' - preamble += '## This file houses all the configuration variables employed\n' - preamble += '## by Chiplotle. You can set them manually to suit your needs.\n' - preamble += '## Do not delete them! If you want them to have no effect\n' - preamble += '## simply set them to "None".\n' - preamble += '##\n' - preamble += '## This file is executed via the ``execfile( )`` function,\n' - preamble += "## so all its content should adhere to the Python syntax.\n" - preamble += '\n\n' - f.write(preamble) + ## serial port to plotter mappings... + f.write("## Serial ports to plotters map.\n") + f.write("## Set to None if you want Chiplotle to dynamically find the\n") + f.write("## plotters connected to your computer. This is the default.\n") + f.write("## This default is convenient when your setup changes frequently.\n") + f.write("## For a fixed setup set this to a dictionary mapping serial\n") + f.write("## ports to plotters. \n") + f.write("## e.g., {'/dev/ttyS0' : 'DXY-1300', '/dev/ttyS1' : 'HP7475A'}\n") + f.write("## sets plotter 'DXY-1300' to port '/dev/ttyS0' and plotter\n") + f.write("## 'HP7475A' to port '/dev/ttyS1'.\n") + f.write("serial_port_to_plotter_map = None\n") + f.write("\n\n") - f.write("# Configuration Variables ---------------------------------\n\n") + ## default serial parameters... + f.write("## Serial connection parameters.\n") + f.write("## Set your plotter to match these values, or vice versa..\n") + f.write("baudrate = 9600\n") + f.write("bytesize = 8\n") + f.write("parity = 'N'\n") + f.write("stopbits = 1\n") + f.write("timeout = 1\n") + f.write("xonxoff = 1\n") + f.write("rtscts = 0\n") + f.write("\n\n") - ## serial port to plotter mappings... - f.write("## Serial ports to plotters map.\n") - f.write("## Set to None if you want Chiplotle to dynamically find the\n") - f.write("## plotters connected to your computer. This is the default.\n") - f.write("## This default is convenient when your setup changes frequently.\n") - f.write("## For a fixed setup set this to a dictionary mapping serial\n") - f.write("## ports to plotters. \n") - f.write("## e.g., {'/dev/ttyS0' : 'DXY-1300', '/dev/ttyS1' : 'HP7475A'}\n") - f.write("## sets plotter 'DXY-1300' to port '/dev/ttyS0' and plotter\n") - f.write("## 'HP7475A' to port '/dev/ttyS1'.\n") - f.write("serial_port_to_plotter_map = None\n") - f.write("\n\n") + ## maximum wait time for response from plotter. + f.write("## Maximum wait time for response from plotter.\n") + f.write("## Every time the plotter is queried, Chiplotle will wait for\n") + f.write("## a maximum of `maximum_response_wait_time` seconds.\n") + f.write("maximum_response_wait_time = 8\n") + f.write("\n\n") - ## default serial parameters... - f.write("## Serial connection parameters.\n") - f.write("## Set your plotter to match these values, or vice versa..\n") - f.write("baudrate = 9600\n") - f.write("bytesize = 8\n") - f.write("parity = 'N'\n") - f.write("stopbits = 1\n") - f.write("timeout = 1\n") - f.write("xonxoff = 1\n") - f.write("rtscts = 0\n") - f.write("\n\n") + ## verbose. + f.write("## Set to True if you want information (such as warnings)\n") + f.write("## displayed on the console. Set to False if you don't.\n") + f.write("verbose = True\n") + f.write("\n\n") - ## maximum wait time for response from plotter. - f.write("## Maximum wait time for response from plotter.\n") - f.write("## Every time the plotter is queried, Chiplotle will wait for\n") - f.write("## a maximum of `maximum_response_wait_time` seconds.\n") - f.write("maximum_response_wait_time = 8\n") - f.write("\n\n") +# f.write("## PDF viewer. Set for previewing HPGL commands via the\n") +# f.write("## ``view( )`` function. If set to `None`, the viewer will\n") +# f.write("## use the OS dependent generic file opener.\n") +# f.write("## e.g., `open` in OS X, `xdg-open` in Linux.\n") +# f.write("pdf_viewer = None") +# f.write('\n\n') - ## verbose. - f.write("## Set to True if you want information (such as warnings)\n") - f.write("## displayed on the console. Set to False if you don't.\n") - f.write("verbose = True\n") - f.write("\n\n") - -# f.write("## PDF viewer. Set for previewing HPGL commands via the\n") -# f.write("## ``view( )`` function. If set to `None`, the viewer will\n") -# f.write("## use the OS dependent generic file opener.\n") -# f.write("## e.g., `open` in OS X, `xdg-open` in Linux.\n") -# f.write("pdf_viewer = None") -# f.write('\n\n') - - f.close( ) From a86feeead4dd242fc486cfa2dcdfea269ec5afa4 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 20 Aug 2018 23:04:35 +0100 Subject: [PATCH 15/82] Fix cirleci config --- .circleci/config.yml | 28 ++++++++++++++-------------- tox.ini | 3 +-- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c32cc8d..8ab9afb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,38 +8,38 @@ shared: &shared steps: - checkout - - restore_cache: - keys: - - deps-{{ .Branch}}-{{ checksum "requirements.txt" }} - - run: name: Install dependencies command: | - python3 -m venv venv - . venv/bin/activate + if [[ ${PYTHON_VERSION} == 2* ]]; then + mkdir .venv + virtualenv ./venv + else + python3 -m venv .venv + fi + source .venv/bin/activate + + sudo apt install hp2xx pip install tox pip install codecov pip install -r requirements.txt pip install -r requirements-dev.txt - - save_cache: - key: deps-{{ .Branch}}-{{ checksum "requirements.txt" }} - paths: - - "venv" - - run: name: Set up chiplotle - command: yes | python -c 'import chiplotle' + command: | + source .venv/bin/activate + (yes || true) | python -c "import chiplotle" - run: name: Run tests command: | - . venv/bin/activate + source .venv/bin/activate # If we don't specify the python version then the default # 3.5 version that is part of all images is run which causes # issues. TOX_ENV="$(echo ${PYTHON_VERSION} | sed -E 's/([[:digit:]]).([[:digit:]]).([[:digit:]])/py\1\2/')" - tox -e "$TOX_ENV" + PYTHONPATH="$PWD" tox -e "$TOX_ENV" codecov jobs: diff --git a/tox.ini b/tox.ini index 502ddfc..82aa2b1 100644 --- a/tox.ini +++ b/tox.ini @@ -4,11 +4,10 @@ skip_missing_interpreters = True [testenv] -passenv = HOME +passenv = HOME PYTHONPATH whitelist_externals = make deps= -r{toxinidir}/requirements.txt -r{toxinidir}/requirements-dev.txt commands= - make compile pytest chiplotle From c1f54935d55ac86be7c0ba438fc045b2eb0ea9d2 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 20:17:21 +0100 Subject: [PATCH 16/82] Add docs and pypi badge --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 13986c7..f50c0ab 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # Chiplotle -[![CircleCI](https://circleci.com/gh/willprice/chiplotle.svg?style=svg)](https://circleci.com/gh/willprice/chiplotle) +[![CircleCI](https://circleci.com/gh/willprice/chiplotle.svg?style=shield)](https://circleci.com/gh/willprice/chiplotle) +[![Documentation Status](https://readthedocs.org/projects/chiplotle/badge/?version=latest)](https://chiplotle.readthedocs.io/en/latest/?badge=latest) +[![PyPI version](https://badge.fury.io/py/Chiplotle.svg)](https://badge.fury.io/py/Chiplotle) Chiplotle is a Python library that implements and extends the HPGL (Hewlett-Packard Graphics Language) plotter control language. It From f5f3dbbe627143cda118a609d140af29597585ff Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 20:48:39 +0100 Subject: [PATCH 17/82] Ditch requirements-dev.txt keep everything in requirements.txt --- .circleci/config.yml | 1 - requirements-dev.txt | 3 --- requirements.txt | 3 +++ tox.ini | 1 - 4 files changed, 3 insertions(+), 5 deletions(-) delete mode 100644 requirements-dev.txt diff --git a/.circleci/config.yml b/.circleci/config.yml index 8ab9afb..d582ac3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -23,7 +23,6 @@ shared: &shared pip install tox pip install codecov pip install -r requirements.txt - pip install -r requirements-dev.txt - run: name: Set up chiplotle diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index 054011a..0000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,3 +0,0 @@ -pytest -pytest-cov -tox>=2,<3 diff --git a/requirements.txt b/requirements.txt index fb17172..986b566 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,6 @@ +pytest +pytest-cov +tox>=2,<3 numpy==1.15.0 pyserial==3.4 future==0.16.0 diff --git a/tox.ini b/tox.ini index 82aa2b1..001e25f 100644 --- a/tox.ini +++ b/tox.ini @@ -8,6 +8,5 @@ passenv = HOME PYTHONPATH whitelist_externals = make deps= -r{toxinidir}/requirements.txt - -r{toxinidir}/requirements-dev.txt commands= pytest chiplotle From 3789e7eae23e729806ab5eed77dde235d43812bc Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 21:09:42 +0100 Subject: [PATCH 18/82] Use RTD docs theme, extract version to __version__.py, fix docs Makefile target --- Makefile | 2 +- chiplotle/__version__.py | 7 ++++++ chiplotle/documentation/.gitignore | 1 + .../documentation/chapters/api/geometry.rst | 3 ++- chiplotle/documentation/conf.py | 14 +++++++---- chiplotle/documentation/install.rst | 1 + setup.py | 24 ++++++++++++------- 7 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 chiplotle/__version__.py create mode 100644 chiplotle/documentation/.gitignore create mode 120000 chiplotle/documentation/install.rst diff --git a/Makefile b/Makefile index bf6ee22..81b5495 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ TEST_FILES := $(shell find $(LIBRARY_DIR) -iname test*.py) all: test docs: - $(MAKE) html -C docs + $(MAKE) html -C chiplotle/documentation test: compile tox diff --git a/chiplotle/__version__.py b/chiplotle/__version__.py new file mode 100644 index 0000000..628cf95 --- /dev/null +++ b/chiplotle/__version__.py @@ -0,0 +1,7 @@ +__title__ = "chiplotle" +__description__ = "Chiplotle is an HPGL Python API." +__version__ = "0.4.2" +__author__ = "Víctor Adán and Douglas Repetto" +__author_email__ = "chiplotle@music.columbia.edu" +__license__ = "GPL" +__copyright__ = "Copyright 2018 Chiplotle" diff --git a/chiplotle/documentation/.gitignore b/chiplotle/documentation/.gitignore new file mode 100644 index 0000000..a485625 --- /dev/null +++ b/chiplotle/documentation/.gitignore @@ -0,0 +1 @@ +/_build diff --git a/chiplotle/documentation/chapters/api/geometry.rst b/chiplotle/documentation/chapters/api/geometry.rst index 105df85..dc54d46 100644 --- a/chiplotle/documentation/chapters/api/geometry.rst +++ b/chiplotle/documentation/chapters/api/geometry.rst @@ -8,7 +8,6 @@ Shapes .. autofunction:: chiplotle.geometry.shapes.arc_circle .. autofunction:: chiplotle.geometry.shapes.arc_ellipse .. autofunction:: chiplotle.geometry.shapes.arrow -.. autofunction:: chiplotle.geometry.shapes.bezier_path .. autofunction:: chiplotle.geometry.shapes.catmull_path .. autofunction:: chiplotle.geometry.shapes.circle .. autofunction:: chiplotle.geometry.shapes.cross @@ -26,6 +25,8 @@ Shapes .. autofunction:: chiplotle.geometry.shapes.lock_group .. autofunction:: chiplotle.geometry.shapes.path .. autofunction:: chiplotle.geometry.shapes.path_linear +.. autofunction:: chiplotle.geometry.shapes.path_interpolated +.. autofunction:: chiplotle.geometry.shapes.path_bezier .. autofunction:: chiplotle.geometry.shapes.radial_ruler .. autofunction:: chiplotle.geometry.shapes.random_walk_cartesian .. autofunction:: chiplotle.geometry.shapes.random_walk_polar diff --git a/chiplotle/documentation/conf.py b/chiplotle/documentation/conf.py index 769519f..92f1cde 100644 --- a/chiplotle/documentation/conf.py +++ b/chiplotle/documentation/conf.py @@ -19,6 +19,12 @@ standard_library.install_aliases() import sys, os + +about = dict() +here = os.path.abspath(os.path.dirname(__file__)) +with open(os.path.join(here, '..', '__version__.py'), 'r') as f: + exec(f.read(), about) + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. @@ -44,16 +50,16 @@ # General information about the project. project = 'Chiplotle' -copyright = '2009-2012, Víctor Adán, Douglas Repetto' +copyright = '2009-2018, Víctor Adán, Douglas Repetto' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '0.4' +version = about['__version__'][:len('x.y')] # The full version, including alpha/beta/rc tags. -release = '0.4.1' +release = about['__version__'] # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -98,7 +104,7 @@ # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. #html_theme = 'default' -html_theme = 'chiplotle' +html_theme = 'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the diff --git a/chiplotle/documentation/install.rst b/chiplotle/documentation/install.rst new file mode 120000 index 0000000..37675c7 --- /dev/null +++ b/chiplotle/documentation/install.rst @@ -0,0 +1 @@ +../../INSTALL \ No newline at end of file diff --git a/setup.py b/setup.py index 6a13c16..725328a 100755 --- a/setup.py +++ b/setup.py @@ -1,20 +1,28 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import os from setuptools import setup, find_packages -setup(name = 'Chiplotle', - version = '0.4.2', - description = 'Chiplotle is an HPGL Python API.', - long_description = 'Chiplotle is an HPGL Python API.', - author = 'Víctor Adán and Douglas Repetto', - author_email = 'chiplotle@music.columbia.edu', + +about = dict() +here = os.path.abspath(os.path.dirname(__file__)) +with open(os.path.join(here, 'chiplotle', '__version__.py'), 'r') as f: + exec(f.read(), about) + + +setup(name = about['__title__'], + version = about['__version__'], + description = about['__description__'], + long_description = about['__description__'], + author = about['__author__'], + author_email = about['__author_email__'], url = 'http://music.columbia.edu/cmc/chiplotle', keywords = 'vector graphics hpgl plotter plot pen', - license = 'GPL', + license = about['__license__'], include_package_data = True, - packages = ['chiplotle'], + packages = find_packages(), install_requires = ['pyserial<=3', 'numpy<=2'], entry_points = {'console_scripts': ['chiplotle = chiplotle.core.cfg._run_chiplotle:_run_chiplotle',]}, From 0f7662ba3fede5c602f20911121d4acf960759f6 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 21:14:38 +0100 Subject: [PATCH 19/82] Add joe generated gitignore file --- .gitignore | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 162 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 5373da9..cb81586 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,163 @@ -*.pyc -*.egg-info -_venv* +#### joe made this: http://goel.io/joe + +#####=== JetBrains ===##### +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Rider-specific rules +*.sln.iml + +#####=== Python ===##### + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env .venv -.pytest_cache +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + From b63d35503d64f21e137f67171973d9578d212558 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 21:17:52 +0100 Subject: [PATCH 20/82] Fix venv creation bug in circleci config for py27 --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d582ac3..6628f4e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,7 +13,7 @@ shared: &shared command: | if [[ ${PYTHON_VERSION} == 2* ]]; then mkdir .venv - virtualenv ./venv + virtualenv .venv else python3 -m venv .venv fi From c68d502840f2387962a90455b0fe7d566ba6d2ab Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 21:57:16 +0100 Subject: [PATCH 21/82] Reorder doc index and rename Chiplotle API page to API --- chiplotle/documentation/chapters/api/index.rst | 4 ++-- chiplotle/documentation/index.rst | 16 +++------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/chiplotle/documentation/chapters/api/index.rst b/chiplotle/documentation/chapters/api/index.rst index 8c6075e..9ceab46 100644 --- a/chiplotle/documentation/chapters/api/index.rst +++ b/chiplotle/documentation/chapters/api/index.rst @@ -1,6 +1,6 @@ -Chiplotle API -============= +API +=== .. toctree:: diff --git a/chiplotle/documentation/index.rst b/chiplotle/documentation/index.rst index 90cd8f9..73359bc 100644 --- a/chiplotle/documentation/index.rst +++ b/chiplotle/documentation/index.rst @@ -10,28 +10,18 @@ Chiplotle |release| documentation chapters/about/index install chapters/configuration/index - -.. toctree:: - :maxdepth: 1 + chapters/api/index chapters/tutorial/index chapters/plotters/index chapters/hardware/index chapters/fundamentals/index + chapters/faq/index + chapters/resources/index chapters/mailinglist/index - -.. toctree:: - :maxdepth: 1 - - chapters/api/index chapters/contributors/index -.. toctree:: - :maxdepth: 1 - - chapters/resources/index - Indices and tables From d7107d3d46ee04794f828048040e96c28046b945 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 21:59:19 +0100 Subject: [PATCH 22/82] Fix circleci bug: parsing python version with multiple digits --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6628f4e..09486db 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -37,7 +37,7 @@ shared: &shared # If we don't specify the python version then the default # 3.5 version that is part of all images is run which causes # issues. - TOX_ENV="$(echo ${PYTHON_VERSION} | sed -E 's/([[:digit:]]).([[:digit:]]).([[:digit:]])/py\1\2/')" + TOX_ENV="$(echo ${PYTHON_VERSION} | sed -E 's/([[:digit:]]+).([[:digit:]]+).([[:digit:]]+)/py\1\2/')" PYTHONPATH="$PWD" tox -e "$TOX_ENV" codecov From 35d72356ad8d90d10c07a3132b13f7f068f23994 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 22:31:21 +0100 Subject: [PATCH 23/82] Fix failing python 2 tests due to unicode literals I've ditched unicode literal in the test files that pass src code strings to `pytest.raises` (they should eventually be upgraded to context manager style usage) as pytest fails to recognise them as src code strings, they only do an instance check on `str` objects, and not unicode: https://github.com/pytest-dev/pytest/blob/9ef7878cbca555000d88a0ae3abb8cf809e69557/src/_pytest/python_api.py#L627 --- chiplotle/geometry/core/test/test_coordinate_add.py | 1 - chiplotle/geometry/core/test/test_coordinate_init.py | 1 - chiplotle/geometry/core/test/test_coordinate_mul.py | 1 - chiplotle/geometry/core/test/test_coordinate_sub.py | 1 - chiplotle/geometry/core/test/test_coordinatearray_add.py | 1 - chiplotle/geometry/core/test/test_coordinatearray_append.py | 1 - chiplotle/geometry/core/test/test_coordinatearray_extend.py | 1 - chiplotle/geometry/core/test/test_coordinatearray_init.py | 1 - chiplotle/geometry/core/test/test_coordinatearray_properties.py | 1 - chiplotle/geometry/core/test/test_layersvisitor.py | 1 - chiplotle/geometry/core/test/test_path_add.py | 1 - chiplotle/geometry/core/test/test_path_mul.py | 1 - chiplotle/geometry/core/test/test_path_sub.py | 1 - chiplotle/geometry/core/test/test_shapes_group_add.py | 1 - chiplotle/geometry/core/test/test_shapes_group_init.py | 1 - chiplotle/geometry/core/test/test_shapes_group_points.py | 1 - chiplotle/geometry/core/test/test_transformlock.py | 1 - chiplotle/hpgl/test/test_AA.py | 1 - chiplotle/hpgl/test/test_DI.py | 1 - chiplotle/hpgl/test/test_DR.py | 1 - chiplotle/hpgl/test/test_EA.py | 1 - chiplotle/hpgl/test/test_ER.py | 1 - chiplotle/hpgl/test/test_FT.py | 1 - chiplotle/hpgl/test/test_IP.py | 1 - chiplotle/hpgl/test/test_SI.py | 1 - chiplotle/hpgl/test/test_SR.py | 1 - chiplotle/hpgl/test/test_dci_sethandshakemode.py | 1 - chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py | 1 - 28 files changed, 28 deletions(-) diff --git a/chiplotle/geometry/core/test/test_coordinate_add.py b/chiplotle/geometry/core/test/test_coordinate_add.py index 2527433..384a23e 100644 --- a/chiplotle/geometry/core/test/test_coordinate_add.py +++ b/chiplotle/geometry/core/test/test_coordinate_add.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_coordinate_init.py b/chiplotle/geometry/core/test/test_coordinate_init.py index 577ae36..ac9ea40 100644 --- a/chiplotle/geometry/core/test/test_coordinate_init.py +++ b/chiplotle/geometry/core/test/test_coordinate_init.py @@ -1,5 +1,4 @@ from __future__ import division -from __future__ import unicode_literals from __future__ import print_function from __future__ import absolute_import from builtins import round diff --git a/chiplotle/geometry/core/test/test_coordinate_mul.py b/chiplotle/geometry/core/test/test_coordinate_mul.py index e11d739..b30f897 100644 --- a/chiplotle/geometry/core/test/test_coordinate_mul.py +++ b/chiplotle/geometry/core/test/test_coordinate_mul.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_coordinate_sub.py b/chiplotle/geometry/core/test/test_coordinate_sub.py index 0f8658e..a4915dc 100644 --- a/chiplotle/geometry/core/test/test_coordinate_sub.py +++ b/chiplotle/geometry/core/test/test_coordinate_sub.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_coordinatearray_add.py b/chiplotle/geometry/core/test/test_coordinatearray_add.py index 1cacddb..6830bef 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_add.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_add.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_coordinatearray_append.py b/chiplotle/geometry/core/test/test_coordinatearray_append.py index 0e6f72e..7bac36e 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_append.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_append.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_coordinatearray_extend.py b/chiplotle/geometry/core/test/test_coordinatearray_extend.py index 6f0c9c9..89602f3 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_extend.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_extend.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_coordinatearray_init.py b/chiplotle/geometry/core/test/test_coordinatearray_init.py index bde3158..3176a31 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_init.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_init.py @@ -1,5 +1,4 @@ from __future__ import division -from __future__ import unicode_literals from __future__ import print_function from __future__ import absolute_import from future import standard_library diff --git a/chiplotle/geometry/core/test/test_coordinatearray_properties.py b/chiplotle/geometry/core/test/test_coordinatearray_properties.py index 3e29287..ef73977 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_properties.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_properties.py @@ -1,5 +1,4 @@ from __future__ import division -from __future__ import unicode_literals from __future__ import print_function from __future__ import absolute_import from future import standard_library diff --git a/chiplotle/geometry/core/test/test_layersvisitor.py b/chiplotle/geometry/core/test/test_layersvisitor.py index 1fad550..6344cbe 100644 --- a/chiplotle/geometry/core/test/test_layersvisitor.py +++ b/chiplotle/geometry/core/test/test_layersvisitor.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_path_add.py b/chiplotle/geometry/core/test/test_path_add.py index d80bacd..893b92d 100644 --- a/chiplotle/geometry/core/test/test_path_add.py +++ b/chiplotle/geometry/core/test/test_path_add.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_path_mul.py b/chiplotle/geometry/core/test/test_path_mul.py index 5f3e95f..27621e3 100644 --- a/chiplotle/geometry/core/test/test_path_mul.py +++ b/chiplotle/geometry/core/test/test_path_mul.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_path_sub.py b/chiplotle/geometry/core/test/test_path_sub.py index 5f4eeb9..9f39566 100644 --- a/chiplotle/geometry/core/test/test_path_sub.py +++ b/chiplotle/geometry/core/test/test_path_sub.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_shapes_group_add.py b/chiplotle/geometry/core/test/test_shapes_group_add.py index d9fcfd5..5680458 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_add.py +++ b/chiplotle/geometry/core/test/test_shapes_group_add.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_shapes_group_init.py b/chiplotle/geometry/core/test/test_shapes_group_init.py index 9671d57..0f4efa4 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_init.py +++ b/chiplotle/geometry/core/test/test_shapes_group_init.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_shapes_group_points.py b/chiplotle/geometry/core/test/test_shapes_group_points.py index d58b4d6..58f1fc0 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_points.py +++ b/chiplotle/geometry/core/test/test_shapes_group_points.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/geometry/core/test/test_transformlock.py b/chiplotle/geometry/core/test/test_transformlock.py index 5a570ef..b393d64 100644 --- a/chiplotle/geometry/core/test/test_transformlock.py +++ b/chiplotle/geometry/core/test/test_transformlock.py @@ -1,5 +1,4 @@ from __future__ import division -from __future__ import unicode_literals from __future__ import print_function from __future__ import absolute_import from future import standard_library diff --git a/chiplotle/hpgl/test/test_AA.py b/chiplotle/hpgl/test/test_AA.py index 04f3bfa..c86d232 100644 --- a/chiplotle/hpgl/test/test_AA.py +++ b/chiplotle/hpgl/test/test_AA.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_DI.py b/chiplotle/hpgl/test/test_DI.py index c9423b0..0552075 100644 --- a/chiplotle/hpgl/test/test_DI.py +++ b/chiplotle/hpgl/test/test_DI.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_DR.py b/chiplotle/hpgl/test/test_DR.py index 8add278..a2da776 100644 --- a/chiplotle/hpgl/test/test_DR.py +++ b/chiplotle/hpgl/test/test_DR.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_EA.py b/chiplotle/hpgl/test/test_EA.py index ed526b6..c2b296d 100644 --- a/chiplotle/hpgl/test/test_EA.py +++ b/chiplotle/hpgl/test/test_EA.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_ER.py b/chiplotle/hpgl/test/test_ER.py index e923316..320463a 100644 --- a/chiplotle/hpgl/test/test_ER.py +++ b/chiplotle/hpgl/test/test_ER.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_FT.py b/chiplotle/hpgl/test/test_FT.py index f0a4c16..d54128d 100644 --- a/chiplotle/hpgl/test/test_FT.py +++ b/chiplotle/hpgl/test/test_FT.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_IP.py b/chiplotle/hpgl/test/test_IP.py index e7a52ac..75b9fab 100644 --- a/chiplotle/hpgl/test/test_IP.py +++ b/chiplotle/hpgl/test/test_IP.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_SI.py b/chiplotle/hpgl/test/test_SI.py index 40a52cb..4e04ff3 100644 --- a/chiplotle/hpgl/test/test_SI.py +++ b/chiplotle/hpgl/test/test_SI.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_SR.py b/chiplotle/hpgl/test/test_SR.py index 6043d40..c393485 100644 --- a/chiplotle/hpgl/test/test_SR.py +++ b/chiplotle/hpgl/test/test_SR.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/hpgl/test/test_dci_sethandshakemode.py b/chiplotle/hpgl/test/test_dci_sethandshakemode.py index 1bd2156..3b374b1 100644 --- a/chiplotle/hpgl/test/test_dci_sethandshakemode.py +++ b/chiplotle/hpgl/test/test_dci_sethandshakemode.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import diff --git a/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py b/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py index dfd0a26..72b1c2b 100644 --- a/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py +++ b/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import From 1a75f939d9fdfcbbdd0d16ad170624dd5b8599c2 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 22:33:32 +0100 Subject: [PATCH 24/82] Fix inflate_hpgl_string tests These were failing because of unicode literals being passed and the `isinstance(string, type('abc'))` check failing, I've made the change to support both unicode and bytes which shouldn't cause an issue, although I'd imagine only ascii strings will be passed - not sure what will happen if a unicode string that isn't ascii is passed. --- chiplotle/tools/hpgltools/inflate_hpgl_string.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/chiplotle/tools/hpgltools/inflate_hpgl_string.py index c359c67..36e9ec3 100644 --- a/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -28,8 +28,8 @@ def inflate_hpgl_string(string, filter_commands=None): filter_commands = filter_commands or [ ] - if not isinstance(string, type('abc')): - raise TypeError('`string` must be a string') + if not isinstance(string, (str, bytes)): + raise TypeError('`string` must be a string or bytes') if not isinstance(filter_commands, (list, tuple)): msg = '`filter_commands` must be a list of string HPGL commands.' raise TypeError(msg) From 1fb63aa7c85f64d77dddb99a31401220a93fb419 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 23:04:52 +0100 Subject: [PATCH 25/82] Fix hpgl parsing python 2 test failures --- chiplotle/tools/hpgltools/inflate_hpgl_string.py | 5 ++++- chiplotle/tools/hpgltools/parse_hpgl_string.py | 6 ++++-- chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py | 1 - chiplotle/tools/io/import_hpgl_file.py | 8 +++----- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/chiplotle/tools/hpgltools/inflate_hpgl_string.py index 36e9ec3..338ed0b 100644 --- a/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -3,12 +3,15 @@ from __future__ import division from __future__ import absolute_import from future import standard_library +from six import string_types, text_type + standard_library.install_aliases() from chiplotle.hpgl import commands as hpgl from chiplotle.tools.hpgltools.parse_hpgl_string import parse_hpgl_string from chiplotle.tools.logtools.apply_logger import apply_logger from chiplotle.tools.iterabletools.flat_list_to_pairs import flat_list_to_pairs + def inflate_hpgl_string(string, filter_commands=None): '''Reads a text string and "inflates" it by creating Chiplotle-HPGL class instances of the found HPGL commands. @@ -28,7 +31,7 @@ def inflate_hpgl_string(string, filter_commands=None): filter_commands = filter_commands or [ ] - if not isinstance(string, (str, bytes)): + if not isinstance(string, (string_types, text_type)): raise TypeError('`string` must be a string or bytes') if not isinstance(filter_commands, (list, tuple)): msg = '`filter_commands` must be a list of string HPGL commands.' diff --git a/chiplotle/tools/hpgltools/parse_hpgl_string.py b/chiplotle/tools/hpgltools/parse_hpgl_string.py index aea2aaa..6bd608d 100644 --- a/chiplotle/tools/hpgltools/parse_hpgl_string.py +++ b/chiplotle/tools/hpgltools/parse_hpgl_string.py @@ -3,6 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library +from six import text_type, string_types + standard_library.install_aliases() import re @@ -10,8 +12,8 @@ def parse_hpgl_string(arg): '''The function takes a string `arg` of HPGL commands, parses them (separates them) and returns them in a list. ''' - if not isinstance(arg, str): - raise TypeError('`arg` must be of type string.') + if not isinstance(arg, (text_type, string_types)): + raise TypeError('`arg` must be of type string') string_commands = ['LB', 'DT'] numeric_commands = ['AA','AF','AH','AP','AR','AS', diff --git a/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py b/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py index 6f1fc09..44c3647 100644 --- a/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py +++ b/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py @@ -1,5 +1,4 @@ from __future__ import print_function -from __future__ import unicode_literals from __future__ import division from __future__ import absolute_import from future import standard_library diff --git a/chiplotle/tools/io/import_hpgl_file.py b/chiplotle/tools/io/import_hpgl_file.py index 0ed4e0c..a349261 100644 --- a/chiplotle/tools/io/import_hpgl_file.py +++ b/chiplotle/tools/io/import_hpgl_file.py @@ -22,8 +22,6 @@ def import_hpgl_file(filename, filter_commands=None): PD(xy=[ 100. 100.]), SP(pen=0)] ''' - f = open(filename) - fs = f.read() - f.close() - - return inflate_hpgl_string(fs, filter_commands) + with open(filename, 'r', encoding='utf8') as f: + file_contents = f.read() + return inflate_hpgl_string(file_contents, filter_commands) From 25e71db9f9e6082f80121b14c8ca5d4c155f2227 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 23:05:58 +0100 Subject: [PATCH 26/82] Fix more test failures due to unicode literals and pytest.raises --- chiplotle/tools/mathtools/test/test_mathtools_factors.py | 1 - 1 file changed, 1 deletion(-) diff --git a/chiplotle/tools/mathtools/test/test_mathtools_factors.py b/chiplotle/tools/mathtools/test/test_mathtools_factors.py index dda70b5..41399ee 100644 --- a/chiplotle/tools/mathtools/test/test_mathtools_factors.py +++ b/chiplotle/tools/mathtools/test/test_mathtools_factors.py @@ -1,4 +1,3 @@ -from __future__ import unicode_literals from __future__ import print_function from __future__ import division from __future__ import absolute_import From a7fa64e7e98f48d4b7e7e8589893e4633eb02ef9 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 23:12:49 +0100 Subject: [PATCH 27/82] Fix remaining broken python 2 tests relying on str instance checks --- chiplotle/plotters/baseplotter.py | 19 ++++++++++--------- .../instantiate_virtual_plotter.py | 1 + .../tools/serialtools/virtual_serial_port.py | 4 +++- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/chiplotle/plotters/baseplotter.py b/chiplotle/plotters/baseplotter.py index f2921ab..ffb1e48 100644 --- a/chiplotle/plotters/baseplotter.py +++ b/chiplotle/plotters/baseplotter.py @@ -12,6 +12,8 @@ from builtins import open from builtins import int from future import standard_library +from six import string_types, text_type + standard_library.install_aliases() from chiplotle.core.cfg.get_config_value import get_config_value from chiplotle.core.interfaces.margins.interface import MarginsInterface @@ -84,11 +86,8 @@ def write(self, data): def write_file(self, filename): '''Sends the HPGL content of the given `filename` to the plotter.''' - if not isinstance(filename, str): - raise TypeError('Argument must be a string with the file name.') - f = open(filename, 'r') - chars = f.read( ) - f.close( ) + with open(filename, 'r') as f: + chars = f.read( ) chars = chars.replace('\n',';') comms = re.split(';+', chars) comms = [c + ';' for c in comms if c != ''] @@ -98,7 +97,7 @@ def write_file(self, filename): ### PRIVATE METHODS ### def _is_HPGL_command_known(self, hpglCommand): - if isinstance(hpglCommand, str): + if isinstance(hpglCommand, (string_types, text_type)): command_head = hpglCommand[0:2] elif hasattr(hpglCommand, '_name'): command_head = hpglCommand._name @@ -108,7 +107,7 @@ def _is_HPGL_command_known(self, hpglCommand): def _filter_unrecognized_commands(self, commands): - assert isinstance(commands, str) + self._check_is_string(commands) result = [ ] #commands = re.split('[\n;]+', commands) commands = commands.split(';') @@ -144,14 +143,16 @@ def _slice_string_to_buffer_size(self, data): def _write_string_to_port(self, data): ''' Write data to serial port. data is expected to be a string.''' #assert type(data) is str - if not isinstance(data, str): - raise TypeError('string expected.') + self._check_is_string(data) data = self._filter_unrecognized_commands(data) data = self._slice_string_to_buffer_size(data) for chunk in data: self._sleep_while_buffer_full( ) self._serial_port.write(chunk) + def _check_is_string(self, data): + if not isinstance(data, (string_types, text_type)): + raise TypeError('string expected.') ### PRIVATE QUERIES ### diff --git a/chiplotle/tools/plottertools/instantiate_virtual_plotter.py b/chiplotle/tools/plottertools/instantiate_virtual_plotter.py index 45defc4..ae2fe58 100644 --- a/chiplotle/tools/plottertools/instantiate_virtual_plotter.py +++ b/chiplotle/tools/plottertools/instantiate_virtual_plotter.py @@ -11,6 +11,7 @@ from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.core.cfg.get_config_value import get_config_value + def instantiate_virtual_plotter(left_bottom = Coordinate(0,0), right_top = Coordinate(10320, 7920), type=None): diff --git a/chiplotle/tools/serialtools/virtual_serial_port.py b/chiplotle/tools/serialtools/virtual_serial_port.py index 0302ba9..4e9f661 100644 --- a/chiplotle/tools/serialtools/virtual_serial_port.py +++ b/chiplotle/tools/serialtools/virtual_serial_port.py @@ -3,6 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library +from six import string_types, text_type + standard_library.install_aliases() from builtins import object from chiplotle.hpgl import commands @@ -45,7 +47,7 @@ def write(self, command): ''' #make sure we received a string, not a tuple or something - assert type(command) is str + assert isinstance(command, (string_types, text_type)) if command.startswith(commands.B().format): #let's say we have 4MB of memory to avoid buffered writes From 9e8d89ecc5cf3b512caf184d4e66ed5a4e84b4b8 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 23:15:16 +0100 Subject: [PATCH 28/82] Fix last instance of isinstance check that uses str --- chiplotle/tools/serialtools/what_plotter_in_port.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/chiplotle/tools/serialtools/what_plotter_in_port.py b/chiplotle/tools/serialtools/what_plotter_in_port.py index 906fced..11de8fb 100644 --- a/chiplotle/tools/serialtools/what_plotter_in_port.py +++ b/chiplotle/tools/serialtools/what_plotter_in_port.py @@ -3,6 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library +from six import text_type, string_types + standard_library.install_aliases() import serial import time @@ -17,7 +19,7 @@ def what_plotter_in_port(port, wait_time=10): Returns the ID of the plotter found or None.''' assert isinstance(wait_time, int) - if not isinstance(port, str): + if not isinstance(port, (string_types, text_type)): raise TypeError('`port` must be a string.') from chiplotle.tools.serialtools import instantiate_serial_from_config_file From 54561b15f4208a5e1e394f001f2d6e9f17e5ff51 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 23:16:54 +0100 Subject: [PATCH 29/82] Run black formatter on lib --- chiplotle/__init__.py | 22 +- chiplotle/core/cfg/_run_chiplotle.py | 13 +- chiplotle/core/cfg/_run_chiplotle_virtual.py | 17 +- chiplotle/core/cfg/cfg.py | 13 +- chiplotle/core/cfg/get_config_value.py | 21 +- chiplotle/core/cfg/initialize_files.py | 20 +- chiplotle/core/cfg/read_config_file.py | 15 +- chiplotle/core/cfg/write_config_file.py | 26 +- chiplotle/core/cfg/write_log_file.py | 7 +- chiplotle/core/devscripts/replace_in_files.py | 66 +- chiplotle/core/errors.py | 18 +- .../core/imports/get_functions_in_module.py | 18 +- chiplotle/core/imports/package_import.py | 22 +- .../imports/remove_modules_from_namespace.py | 7 +- chiplotle/core/interfaces/formatdecorator.py | 12 +- chiplotle/core/interfaces/interface.py | 4 +- .../core/interfaces/margins/interface.py | 10 +- .../core/interfaces/parentage/interface.py | 17 +- chiplotle/core/visitor.py | 12 +- chiplotle/documentation/conf.py | 111 +- .../documentation/scripts/compile_api.py | 75 +- chiplotle/examples/abstract_masterpiece.py | 176 ++- .../examples/abstract_masterpiece_file.py | 265 ++-- .../examples/abstract_masterpiece_virtual.py | 48 +- chiplotle/examples/importing_an_hpgl_file.py | 14 +- chiplotle/examples/liveplot_data-to-path.py | 31 +- .../examples/liveplot_virtual_generic.py | 6 +- .../examples/liveplot_virtual_specific.py | 18 +- chiplotle/fonts/dorkbot.py | 548 ++----- chiplotle/geometry/core/__init__.py | 1 + chiplotle/geometry/core/affixformatvisitor.py | 10 +- chiplotle/geometry/core/coordinate.py | 40 +- chiplotle/geometry/core/coordinatearray.py | 37 +- .../core/coordinatearraypropertiesmixin.py | 27 +- chiplotle/geometry/core/group.py | 44 +- chiplotle/geometry/core/hpglformatvisitor.py | 37 +- chiplotle/geometry/core/label.py | 104 +- chiplotle/geometry/core/layer.py | 7 +- chiplotle/geometry/core/layersvisitor.py | 13 +- chiplotle/geometry/core/metadata.py | 7 +- chiplotle/geometry/core/path.py | 18 +- chiplotle/geometry/core/polygon.py | 15 +- chiplotle/geometry/core/shape.py | 49 +- .../geometry/core/shapepropertiesmixin.py | 2 + chiplotle/geometry/core/tagsvisitor.py | 5 +- .../geometry/core/test/test_coordinate_add.py | 65 +- .../core/test/test_coordinate_init.py | 163 +- .../geometry/core/test/test_coordinate_mul.py | 19 +- .../geometry/core/test/test_coordinate_sub.py | 43 +- .../core/test/test_coordinatearray_add.py | 43 +- .../core/test/test_coordinatearray_append.py | 18 +- .../core/test/test_coordinatearray_extend.py | 24 +- .../core/test/test_coordinatearray_init.py | 54 +- .../test/test_coordinatearray_properties.py | 7 +- .../geometry/core/test/test_layersvisitor.py | 49 +- chiplotle/geometry/core/test/test_path_add.py | 61 +- chiplotle/geometry/core/test/test_path_mul.py | 28 +- chiplotle/geometry/core/test/test_path_sub.py | 59 +- .../core/test/test_shapes_group_add.py | 18 +- .../core/test/test_shapes_group_init.py | 32 +- .../core/test/test_shapes_group_points.py | 22 +- .../geometry/core/test/test_transformlock.py | 53 +- chiplotle/geometry/core/transformlock.py | 195 +-- chiplotle/geometry/shapes/__init__.py | 25 +- chiplotle/geometry/shapes/annotation.py | 60 +- chiplotle/geometry/shapes/arc_circle.py | 36 +- chiplotle/geometry/shapes/arc_ellipse.py | 75 +- chiplotle/geometry/shapes/arrow.py | 11 +- chiplotle/geometry/shapes/catmull_path.py | 14 +- chiplotle/geometry/shapes/circle.py | 27 +- chiplotle/geometry/shapes/cross.py | 9 +- chiplotle/geometry/shapes/donut.py | 12 +- chiplotle/geometry/shapes/ellipse.py | 13 +- chiplotle/geometry/shapes/fan.py | 8 +- chiplotle/geometry/shapes/frame.py | 11 +- chiplotle/geometry/shapes/grid.py | 12 +- chiplotle/geometry/shapes/group.py | 2 + chiplotle/geometry/shapes/isosceles.py | 13 +- chiplotle/geometry/shapes/label.py | 11 +- chiplotle/geometry/shapes/layer.py | 2 + chiplotle/geometry/shapes/line.py | 10 +- chiplotle/geometry/shapes/line_displaced.py | 13 +- chiplotle/geometry/shapes/lock_group.py | 8 +- chiplotle/geometry/shapes/path.py | 10 +- chiplotle/geometry/shapes/path_bezier.py | 15 +- .../geometry/shapes/path_interpolated.py | 36 +- chiplotle/geometry/shapes/path_linear.py | 19 +- chiplotle/geometry/shapes/radial_ruler.py | 73 +- .../geometry/shapes/random_walk_cartesian.py | 15 +- .../geometry/shapes/random_walk_polar.py | 10 +- chiplotle/geometry/shapes/rectangle.py | 6 +- chiplotle/geometry/shapes/ruler.py | 10 +- .../geometry/shapes/spiral_archimedean.py | 40 +- .../geometry/shapes/spiral_logarithmic.py | 69 +- chiplotle/geometry/shapes/square.py | 4 +- chiplotle/geometry/shapes/star_crisscross.py | 37 +- chiplotle/geometry/shapes/star_outline.py | 19 +- chiplotle/geometry/shapes/supershape.py | 31 +- .../shapes/symmetric_polygon_side_length.py | 6 +- chiplotle/geometry/shapes/target.py | 15 +- .../geometry/shapes/test/test_bezier_path.py | 37 +- chiplotle/geometry/transforms/__init__.py | 3 +- .../transforms/arrange_shapes_on_path.py | 7 +- chiplotle/geometry/transforms/center_at.py | 5 +- chiplotle/geometry/transforms/noise.py | 11 +- chiplotle/geometry/transforms/offset.py | 8 +- .../transforms/perpendicular_displace.py | 25 +- .../transforms/perpendicular_noise.py | 13 +- chiplotle/geometry/transforms/rotate.py | 13 +- chiplotle/geometry/transforms/scale.py | 12 +- .../test/test_perpendicular_noise_path.py | 7 +- .../transforms/test/test_scale_path.py | 3 +- .../geometry/transforms/transformvisitor.py | 11 +- chiplotle/hpgl/abstract/arc.py | 19 +- chiplotle/hpgl/abstract/hpgl.py | 9 +- chiplotle/hpgl/abstract/hpglescape.py | 9 +- chiplotle/hpgl/abstract/hpglprimitive.py | 19 +- chiplotle/hpgl/abstract/penplot.py | 34 +- chiplotle/hpgl/abstract/positional.py | 32 +- chiplotle/hpgl/abstract/twopoint.py | 21 +- chiplotle/hpgl/commands.py | 1379 +++++++++-------- chiplotle/hpgl/formatters/__init__.py | 1 + chiplotle/hpgl/formatters/filltype.py | 2 +- chiplotle/hpgl/formatters/linetype.py | 12 +- chiplotle/hpgl/formatters/pen.py | 58 +- chiplotle/hpgl/label.py | 40 +- chiplotle/hpgl/pen.py | 16 +- chiplotle/hpgl/test/test_AA.py | 46 +- chiplotle/hpgl/test/test_AR.py | 36 +- chiplotle/hpgl/test/test_CI.py | 26 +- chiplotle/hpgl/test/test_CP.py | 24 +- chiplotle/hpgl/test/test_DI.py | 21 +- chiplotle/hpgl/test/test_DR.py | 27 +- chiplotle/hpgl/test/test_EA.py | 22 +- chiplotle/hpgl/test/test_ER.py | 20 +- chiplotle/hpgl/test/test_ES.py | 28 +- chiplotle/hpgl/test/test_EW.py | 11 +- chiplotle/hpgl/test/test_FS.py | 28 +- chiplotle/hpgl/test/test_FT.py | 29 +- chiplotle/hpgl/test/test_IP.py | 38 +- chiplotle/hpgl/test/test_PA.py | 14 +- chiplotle/hpgl/test/test_PU.py | 75 +- chiplotle/hpgl/test/test_SI.py | 18 +- chiplotle/hpgl/test/test_SR.py | 18 +- chiplotle/hpgl/test/test_VS.py | 28 +- chiplotle/hpgl/test/test_WG.py | 11 +- .../hpgl/test/test_dci_sethandshakemode.py | 24 +- chiplotle/hpgl/test/test_hpglescape.py | 3 +- chiplotle/hpgl/test/test_hpglprimitive.py | 26 +- chiplotle/hpgl/test/test_pen.py | 23 +- chiplotle/hpgl/test/test_penplot.py | 51 +- chiplotle/plotters/__init__.py | 10 +- chiplotle/plotters/baseplotter.py | 518 +++---- chiplotle/plotters/dpx2000.py | 91 +- chiplotle/plotters/dpx2200.py | 91 +- chiplotle/plotters/dpx3300.py | 89 +- chiplotle/plotters/drawingplotter.py | 432 +++--- chiplotle/plotters/dxy1300.py | 76 +- chiplotle/plotters/dxy880.py | 75 +- chiplotle/plotters/hp7475a.py | 76 +- chiplotle/plotters/hp7550a.py | 107 +- chiplotle/plotters/hp7575a.py | 3 +- chiplotle/plotters/hp7576a.py | 83 +- chiplotle/plotters/hp7585b.py | 97 +- chiplotle/plotters/hp7595a.py | 118 +- chiplotle/plotters/hp7596a.py | 118 +- .../interactive/interactive_commands.py | 91 +- chiplotle/plotters/margins/marginshard.py | 4 +- chiplotle/plotters/margins/marginssoft.py | 6 +- chiplotle/plotters/margins/plottermargins.py | 26 +- .../plotters/margins/test/test_marginsoft.py | 23 +- chiplotle/plotters/plotter.py | 70 +- chiplotle/plotters/test/plotter_query.py | 3 +- .../plotters/test/test_drawingplotter.py | 65 +- chiplotle/plotters/test/test_plotter_write.py | 43 +- chiplotle/scripts/envelope.py | 22 +- .../scripts/find_hpgl_file_dimensions.py | 13 +- chiplotle/scripts/plot_hpgl_file.py | 12 +- chiplotle/scripts/plot_hpgl_file_max_size.py | 24 +- chiplotle/scripts/plot_hpgl_file_virtual.py | 13 +- chiplotle/scripts/typewriter.py | 26 +- chiplotle/scripts/view_hpgl_file.py | 9 +- chiplotle/tools/__init__.py | 1 + chiplotle/tools/geometrytools/__init__.py | 8 +- .../geometrytools/get_line_intersection.py | 36 +- .../geometrytools/get_shape_intersections.py | 26 +- chiplotle/tools/geometrytools/scale.py | 7 +- .../split_coordinatearray_proportionally.py | 20 +- .../split_vector_equidistantly.py | 11 +- chiplotle/tools/hpgltools/__init__.py | 4 +- ...nvert_coordinates_to_hpgl_absolute_path.py | 18 +- .../convert_relatives_to_absolutes.py | 6 +- .../tools/hpgltools/get_all_coordinates.py | 20 +- chiplotle/tools/hpgltools/get_bounding_box.py | 8 +- chiplotle/tools/hpgltools/get_centroid.py | 6 +- .../tools/hpgltools/inflate_hpgl_string.py | 52 +- .../tools/hpgltools/is_primitive_absolute.py | 10 +- .../tools/hpgltools/parse_hpgl_string.py | 127 +- .../tools/hpgltools/pens_updown_to_papr.py | 21 +- chiplotle/tools/hpgltools/pr_to_pa.py | 15 +- chiplotle/tools/hpgltools/relativize.py | 17 +- .../tools/hpgltools/rotate_hpglprimitives.py | 10 +- chiplotle/tools/hpgltools/scale.py | 3 + ...st_convert_coordinates_to_absolute_path.py | 34 +- .../test_convert_relatives_to_absolutes.py | 13 +- .../test/test_get_all_coordinates.py | 8 +- .../hpgltools/test/test_get_bounding_box.py | 12 +- .../tools/hpgltools/test/test_get_centroid.py | 6 +- .../test/test_inflate_hpgl_string.py | 82 +- .../hpgltools/test/test_parse_hpgl_string.py | 72 +- .../test/test_pens_updown_to_papr.py | 21 +- .../tools/hpgltools/test/test_pr_to_pa.py | 22 +- .../tools/hpgltools/test/test_relativize.py | 38 +- .../test/test_rotate_hpglprimitives.py | 19 +- chiplotle/tools/hpgltools/test/test_scale.py | 51 +- .../tools/hpgltools/test/test_transpose.py | 48 +- chiplotle/tools/hpgltools/transpose.py | 4 + chiplotle/tools/io/__init__.py | 4 +- chiplotle/tools/io/_open_file.py | 18 +- chiplotle/tools/io/export.py | 34 +- chiplotle/tools/io/import_hpgl_file.py | 8 +- chiplotle/tools/io/save_hpgl.py | 12 +- chiplotle/tools/io/test/test_export.py | 11 +- .../tools/io/test/test_import_hpgl_file.py | 38 +- chiplotle/tools/io/test/test_save_hpgl.py | 5 +- chiplotle/tools/io/view.py | 14 +- chiplotle/tools/iterabletools/__init__.py | 4 +- .../flat_list_to_dovetail_pairs.py | 3 + .../tools/iterabletools/flat_list_to_pairs.py | 9 +- chiplotle/tools/iterabletools/flatten.py | 11 +- chiplotle/tools/iterabletools/is_flat_list.py | 5 +- chiplotle/tools/iterabletools/isiterable.py | 4 +- chiplotle/tools/iterabletools/ispair.py | 5 +- chiplotle/tools/logtools/apply_logger.py | 5 +- chiplotle/tools/logtools/get_logger.py | 13 +- chiplotle/tools/mathtools/__init__.py | 4 +- .../tools/mathtools/bezier_interpolation.py | 42 +- .../tools/mathtools/catmull_interpolation.py | 55 +- chiplotle/tools/mathtools/cumsum.py | 6 +- chiplotle/tools/mathtools/difference.py | 11 +- chiplotle/tools/mathtools/factors.py | 7 +- .../tools/mathtools/interpolate_cosine.py | 10 +- .../mathtools/interpolate_exponential.py | 12 +- .../tools/mathtools/interpolate_linear.py | 9 +- chiplotle/tools/mathtools/lcm.py | 8 +- chiplotle/tools/mathtools/pascal_row.py | 14 +- chiplotle/tools/mathtools/polar_to_xy.py | 11 +- chiplotle/tools/mathtools/rotate_2d.py | 22 +- chiplotle/tools/mathtools/rotate_3d.py | 15 +- chiplotle/tools/mathtools/superformula.py | 7 +- .../tools/mathtools/test/test_difference.py | 24 +- .../mathtools/test/test_mathtools_factors.py | 17 +- .../tools/mathtools/test/test_polar_to_xy.py | 47 +- .../tools/mathtools/test/test_rotate_2d.py | 50 +- .../tools/mathtools/test/test_xy_to_polar.py | 41 +- chiplotle/tools/mathtools/xy_to_polar.py | 15 +- chiplotle/tools/measuretools/__init__.py | 4 +- chiplotle/tools/measuretools/cm_to_pu.py | 5 +- chiplotle/tools/measuretools/in_to_pu.py | 7 +- chiplotle/tools/measuretools/mm_to_pu.py | 6 +- chiplotle/tools/measuretools/pu_to_cm.py | 5 +- chiplotle/tools/measuretools/pu_to_in.py | 5 +- chiplotle/tools/measuretools/pu_to_mm.py | 5 +- .../tools/measuretools/test/test_cm_to_pu.py | 4 +- .../tools/measuretools/test/test_in_to_pu.py | 5 +- .../tools/measuretools/test/test_mm_to_pu.py | 5 +- .../tools/measuretools/test/test_pu_to_cm.py | 5 +- .../tools/measuretools/test/test_pu_to_in.py | 5 +- .../tools/measuretools/test/test_pu_to_mm.py | 4 +- chiplotle/tools/plottertools/__init__.py | 4 +- .../plottertools/_instantiate_plotter.py | 12 +- .../instantiate_plotter_from_id.py | 8 +- .../plottertools/instantiate_plotters.py | 19 +- .../instantiate_virtual_plotter.py | 61 +- .../interactive_choose_plotter.py | 13 +- .../plottertools/interactive_plot_layers.py | 21 +- .../search_and_instantiate_plotters.py | 34 +- chiplotle/tools/serialtools/__init__.py | 4 +- .../instantiate_serial_from_config_file.py | 34 +- .../serialtools/interactive_open_serial.py | 20 +- .../tools/serialtools/scan_serial_ports.py | 18 +- .../scan_serial_ports_from_list.py | 12 +- .../serialtools/scan_serial_ports_linux.py | 12 +- .../serialtools/scan_serial_ports_windows.py | 9 +- .../serialtools/sniff_ports_for_plotters.py | 11 +- .../tools/serialtools/virtual_serial_port.py | 110 +- .../tools/serialtools/what_plotter_in_port.py | 24 +- .../tools/shapetools/get_shapes_with_tag.py | 29 +- 288 files changed, 6020 insertions(+), 4661 deletions(-) diff --git a/chiplotle/__init__.py b/chiplotle/__init__.py index d322fe1..2a31aca 100644 --- a/chiplotle/__init__.py +++ b/chiplotle/__init__.py @@ -3,14 +3,15 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.cfg import __version__ from chiplotle.core.cfg.initialize_files import initialize_files + __authors__ = "Victor Adan, Douglas Repetto" __license__ = "GPL" -__url__ = "http://music.columbia.edu/cmc/chiplotle" -__doc__ = \ -"""Chiplotle +__url__ = "http://music.columbia.edu/cmc/chiplotle" +__doc__ = """Chiplotle Python library for pen plotting. Copyright %s @@ -18,10 +19,15 @@ License %s Homepage %s -""" % (__authors__,__version__,__license__,__url__) +""" % ( + __authors__, + __version__, + __license__, + __url__, +) initialize_files() -globals().pop('initialize_files') +globals().pop("initialize_files") ## IMPORTS ## @@ -57,6 +63,6 @@ Coord = Coordinate ## remove unnecessary modules... -#globals().pop('hpgl') -#globals().pop('tools') -#globals().pop('utils') +# globals().pop('hpgl') +# globals().pop('tools') +# globals().pop('utils') diff --git a/chiplotle/core/cfg/_run_chiplotle.py b/chiplotle/core/cfg/_run_chiplotle.py index ce2e6d9..d73dd81 100644 --- a/chiplotle/core/cfg/_run_chiplotle.py +++ b/chiplotle/core/cfg/_run_chiplotle.py @@ -3,15 +3,17 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.cfg import __version__ import os -def _run_chiplotle( ): - '''The function runs Python, imports Chiplotle and initializes + +def _run_chiplotle(): + """The function runs Python, imports Chiplotle and initializes a plotter. - ''' - python_code = [ ] + """ + python_code = [] python_code.append("print ' '") python_code.append("print ' +-----------------------+'") python_code.append("print ' | Chiplotle! v.%s |'" % __version__) @@ -25,5 +27,4 @@ def _run_chiplotle( ): python_code.append("plotter = plts[0]") ## '\n' does now work on Windowz! - os.system('''python -i -c "%s"''' % ';'.join(python_code)) - + os.system('''python -i -c "%s"''' % ";".join(python_code)) diff --git a/chiplotle/core/cfg/_run_chiplotle_virtual.py b/chiplotle/core/cfg/_run_chiplotle_virtual.py index 72550cb..dda1b22 100644 --- a/chiplotle/core/cfg/_run_chiplotle_virtual.py +++ b/chiplotle/core/cfg/_run_chiplotle_virtual.py @@ -3,15 +3,17 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.cfg import __version__ import os -def _run_chiplotle_virtual( ): - '''The function runs Python, imports Chiplotle and initializes + +def _run_chiplotle_virtual(): + """The function runs Python, imports Chiplotle and initializes a VIRTUAL plotter. - ''' - python_code = [ ] + """ + python_code = [] python_code.append("print ' '") python_code.append("print ' +-----------------------+'") python_code.append("print ' | Chiplotle! v.%s |'" % __version__) @@ -21,9 +23,10 @@ def _run_chiplotle_virtual( ): python_code.append("sys.ps1 = 'chiplotle> '") python_code.append("del sys") python_code.append("from chiplotle import *") - python_code.append("from chiplotle.tools.plottertools import instantiate_virtual_plotter") + python_code.append( + "from chiplotle.tools.plottertools import instantiate_virtual_plotter" + ) python_code.append("plotter = instantiate_virtual_plotter()") ## '\n' does now work on Windowz! - os.system('''python -i -c "%s"''' % ';'.join(python_code)) - + os.system('''python -i -c "%s"''' % ";".join(python_code)) diff --git a/chiplotle/core/cfg/cfg.py b/chiplotle/core/cfg/cfg.py index 3a63603..88cee46 100644 --- a/chiplotle/core/cfg/cfg.py +++ b/chiplotle/core/cfg/cfg.py @@ -3,14 +3,15 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import os -__version__ = '0.4.1' +__version__ = "0.4.1" -home_path = os.environ.get('HOME') or os.environ.get('HOMEPATH') +home_path = os.environ.get("HOME") or os.environ.get("HOMEPATH") -CHIPLOTLE_DIR = os.path.dirname(__file__).rstrip('cfg') -CONFIG_DIR = os.sep.join([home_path, '.chiplotle']) -CONFIG_FILE = os.sep.join([home_path, '.chiplotle', 'config.py']) -LOG_FILE = os.sep.join([home_path, '.chiplotle', 'session.log']) +CHIPLOTLE_DIR = os.path.dirname(__file__).rstrip("cfg") +CONFIG_DIR = os.sep.join([home_path, ".chiplotle"]) +CONFIG_FILE = os.sep.join([home_path, ".chiplotle", "config.py"]) +LOG_FILE = os.sep.join([home_path, ".chiplotle", "session.log"]) diff --git a/chiplotle/core/cfg/get_config_value.py b/chiplotle/core/cfg/get_config_value.py index b34a201..4c78b5a 100644 --- a/chiplotle/core/cfg/get_config_value.py +++ b/chiplotle/core/cfg/get_config_value.py @@ -3,22 +3,23 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.read_config_file import read_config_file + def get_config_value(var_name): try: - result = read_config_file( )[var_name] + result = read_config_file()[var_name] return result except KeyError: msg = "" - msg +="\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\a\n" - msg +="The configuration variable '%s'\n " % var_name - msg +="could not be found in the Chiplotle configuration file. \n" - msg +="This could be due to an update in Chiplotle that modified\n" - msg +="the configuration parameters of the file.\n" - msg +="To fix, please delete your configuration file and run\n" - msg +="Chiplotle again.\n" - msg +="* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\a\n" + msg += "\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\a\n" + msg += "The configuration variable '%s'\n " % var_name + msg += "could not be found in the Chiplotle configuration file. \n" + msg += "This could be due to an update in Chiplotle that modified\n" + msg += "the configuration parameters of the file.\n" + msg += "To fix, please delete your configuration file and run\n" + msg += "Chiplotle again.\n" + msg += "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\a\n" raise ImportError(msg) - diff --git a/chiplotle/core/cfg/initialize_files.py b/chiplotle/core/cfg/initialize_files.py index 3fcfb83..e1c2210 100644 --- a/chiplotle/core/cfg/initialize_files.py +++ b/chiplotle/core/cfg/initialize_files.py @@ -4,6 +4,7 @@ from __future__ import absolute_import from builtins import input from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.write_config_file import write_config_file from chiplotle.core.cfg.write_log_file import write_log_file @@ -12,22 +13,29 @@ from chiplotle.core.cfg.cfg import CONFIG_DIR import os + def initialize_files(): - '''Initializes all needed directories and files.''' + """Initializes all needed directories and files.""" - output = os.path.join(CONFIG_DIR, 'output') + output = os.path.join(CONFIG_DIR, "output") if not os.path.exists(output): - input('ATTENTION: "%s" does not exist in your system.\n\ + input( + 'ATTENTION: "%s" does not exist in your system.\n\ Chiplotle will now create it to store configuration and other\n\ session files. \n\ - (Hit Return to continue)' % CONFIG_DIR) + (Hit Return to continue)' + % CONFIG_DIR + ) os.makedirs(output) if not os.path.exists(LOG_FILE): write_log_file(LOG_FILE) if not os.path.exists(CONFIG_FILE): - input('ATTENTION: Chiplotle has created its configuration file\n\ + input( + "ATTENTION: Chiplotle has created its configuration file\n\ %s.\n\ - Edit this file to set various Chiplotle defaults.' % CONFIG_FILE) + Edit this file to set various Chiplotle defaults." + % CONFIG_FILE + ) write_config_file(CONFIG_FILE) diff --git a/chiplotle/core/cfg/read_config_file.py b/chiplotle/core/cfg/read_config_file.py index d36f21f..858f692 100644 --- a/chiplotle/core/cfg/read_config_file.py +++ b/chiplotle/core/cfg/read_config_file.py @@ -4,15 +4,16 @@ from __future__ import absolute_import from builtins import open from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.cfg import CONFIG_FILE -def read_config_file( ): - '''Read the content of the config file ``$HOME/.chiplotle/config.py``. - Returns a dictionary of ``var : value`` entries.''' - globals = { } - locals = { } - exec(compile(open(CONFIG_FILE).read(), CONFIG_FILE, 'exec'), globals, locals) - return locals +def read_config_file(): + """Read the content of the config file ``$HOME/.chiplotle/config.py``. + Returns a dictionary of ``var : value`` entries.""" + globals = {} + locals = {} + exec(compile(open(CONFIG_FILE).read(), CONFIG_FILE, "exec"), globals, locals) + return locals diff --git a/chiplotle/core/cfg/write_config_file.py b/chiplotle/core/cfg/write_config_file.py index b5946cc..af56ca2 100644 --- a/chiplotle/core/cfg/write_config_file.py +++ b/chiplotle/core/cfg/write_config_file.py @@ -4,24 +4,27 @@ from __future__ import absolute_import from builtins import open from future import standard_library + standard_library.install_aliases() import time def write_config_file(path): - with open(path, 'w') as f: + with open(path, "w") as f: ## set preamble... - preamble = '## Chiplotle configuration file.\n' - preamble += '## Created by Chiplotle on %s.\n' % time.strftime("%d %B %Y %H:%M:%S") - preamble += '##\n' - preamble += '## This file houses all the configuration variables employed\n' - preamble += '## by Chiplotle. You can set them manually to suit your needs.\n' - preamble += '## Do not delete them! If you want them to have no effect\n' + preamble = "## Chiplotle configuration file.\n" + preamble += "## Created by Chiplotle on %s.\n" % time.strftime( + "%d %B %Y %H:%M:%S" + ) + preamble += "##\n" + preamble += "## This file houses all the configuration variables employed\n" + preamble += "## by Chiplotle. You can set them manually to suit your needs.\n" + preamble += "## Do not delete them! If you want them to have no effect\n" preamble += '## simply set them to "None".\n' - preamble += '##\n' - preamble += '## This file is executed via the ``execfile( )`` function,\n' + preamble += "##\n" + preamble += "## This file is executed via the ``execfile( )`` function,\n" preamble += "## so all its content should adhere to the Python syntax.\n" - preamble += '\n\n' + preamble += "\n\n" f.write(preamble) f.write("# Configuration Variables ---------------------------------\n\n") @@ -64,11 +67,10 @@ def write_config_file(path): f.write("verbose = True\n") f.write("\n\n") + # f.write("## PDF viewer. Set for previewing HPGL commands via the\n") # f.write("## ``view( )`` function. If set to `None`, the viewer will\n") # f.write("## use the OS dependent generic file opener.\n") # f.write("## e.g., `open` in OS X, `xdg-open` in Linux.\n") # f.write("pdf_viewer = None") # f.write('\n\n') - - diff --git a/chiplotle/core/cfg/write_log_file.py b/chiplotle/core/cfg/write_log_file.py index f8cd155..1635552 100644 --- a/chiplotle/core/cfg/write_log_file.py +++ b/chiplotle/core/cfg/write_log_file.py @@ -5,8 +5,11 @@ from builtins import open from future import standard_library + standard_library.install_aliases() + + def write_log_file(path): - f = open(path, 'w') - f.write('') + f = open(path, "w") + f.write("") f.close() diff --git a/chiplotle/core/devscripts/replace_in_files.py b/chiplotle/core/devscripts/replace_in_files.py index 6baee69..5df4e84 100755 --- a/chiplotle/core/devscripts/replace_in_files.py +++ b/chiplotle/core/devscripts/replace_in_files.py @@ -7,23 +7,24 @@ from builtins import open from builtins import input from future import standard_library + standard_library.install_aliases() import os -def _usage( ): - result = [ ] - result.append('') - result.append('Usage:') - result.append('') - result.append('replace-in-files DIR OLD_TEXT NEW_TEXT [CONFIRM=true/false]') - result.append('') - result.append('Crawl directory DIR and read every file in it recursively. ') - result.append('Replace OLD_TEXT with NEW_TEXT in each file.') - result.append('') - result.append('Set CONFIRM to `false` to replace without prompting.') - result.append('') - result = '\n'.join(['\t' + line for line in result]) +def _usage(): + result = [] + result.append("") + result.append("Usage:") + result.append("") + result.append("replace-in-files DIR OLD_TEXT NEW_TEXT [CONFIRM=true/false]") + result.append("") + result.append("Crawl directory DIR and read every file in it recursively. ") + result.append("Replace OLD_TEXT with NEW_TEXT in each file.") + result.append("") + result.append("Set CONFIRM to `false` to replace without prompting.") + result.append("") + result = "\n".join(["\t" + line for line in result]) return result @@ -35,15 +36,15 @@ def _remove_dirs(skip_dirs, dirs): def _remove_files(skip_files, files): for x in skip_files: - #for file in files: + # for file in files: for file in files[:]: if file.endswith(x): files.remove(file) -def replace_in_files(dir, old, new, skip_dirs=['.svn'], confirm=True): - skip_files = ['replace-in-files', '.pyc', '.rst'] - print('Replacing ...') +def replace_in_files(dir, old, new, skip_dirs=[".svn"], confirm=True): + skip_files = ["replace-in-files", ".pyc", ".rst"] + print("Replacing ...") print(' "%s"' % old) print(' "%s"' % new) total_files_changed = 0 @@ -55,50 +56,51 @@ def replace_in_files(dir, old, new, skip_dirs=['.svn'], confirm=True): result = _replace_in_file(root, file, old, new) if result: total_files_changed += 1 - print('... in %s file(s)' % total_files_changed) - print('') + print("... in %s file(s)" % total_files_changed) + print("") def _replace_in_file(root, file, old, new): file_is_changed = False file = os.path.join(root, file) - pf = open(file, 'r') - #print "Working on file: %s" % file - new_text = [ ] - old_text = pf.readlines( ) + pf = open(file, "r") + # print "Working on file: %s" % file + new_text = [] + old_text = pf.readlines() for line in old_text: if old in line: if confirm: - print(line, end=' ') - replace = input('Replace [y/n]? ') - if replace.lower( ) == 'y': + print(line, end=" ") + replace = input("Replace [y/n]? ") + if replace.lower() == "y": line = line.replace(old, new) file_is_changed = True else: line = line.replace(old, new) file_is_changed = True new_text.append(line) - pf.close( ) + pf.close() if file_is_changed: - new_file = open(file, 'w') + new_file = open(file, "w") new_file.writelines(new_text) return True else: return False -if __name__ == '__main__': +if __name__ == "__main__": import sys + if len(sys.argv) < 4: - print(_usage( )) + print(_usage()) sys.exit(2) dir = sys.argv[1] old = sys.argv[2] new = sys.argv[3] - skip_dirs = ['.svn'] + skip_dirs = [".svn"] confirm = True - if len(sys.argv) == 5 and sys.argv[4].lower( ) == 'false': + if len(sys.argv) == 5 and sys.argv[4].lower() == "false": confirm = False replace_in_files(dir, old, new, skip_dirs, confirm) diff --git a/chiplotle/core/errors.py b/chiplotle/core/errors.py index 39ed718..c7a14b2 100644 --- a/chiplotle/core/errors.py +++ b/chiplotle/core/errors.py @@ -5,9 +5,12 @@ from builtins import str from future import standard_library + standard_library.install_aliases() + + class _ChiplotleError(Exception): - '''Abstract error class for Chiplotle!''' + """Abstract error class for Chiplotle!""" ## OVERRIDES ## @@ -15,23 +18,22 @@ def __eq__(self, arg): return self.__clas__.__name__ == arg.__class__.__name__ def __repr__(self): - return '%s( )' % self.__class__.__name__ + return "%s( )" % self.__class__.__name__ def __str__(self): return str(self.__class__.__name__) + ## make Errors hashable? # def __hash__(self): # return hash(str(self)) - class InitParameterError(_ChiplotleError): - '''Error returned when initialization parameter is wrong - (e.g., wrong type, value, etc.').''' + """Error returned when initialization parameter is wrong + (e.g., wrong type, value, etc.').""" class OperandError(_ChiplotleError): - '''Error returned when an operand in a binary or unary operation - is wrong (e.g., wrong type, value, etc.').''' - + """Error returned when an operand in a binary or unary operation + is wrong (e.g., wrong type, value, etc.').""" diff --git a/chiplotle/core/imports/get_functions_in_module.py b/chiplotle/core/imports/get_functions_in_module.py index 9cc5a91..2106dd0 100644 --- a/chiplotle/core/imports/get_functions_in_module.py +++ b/chiplotle/core/imports/get_functions_in_module.py @@ -3,19 +3,19 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import os def _get_functions_in_module(module_file): - '''Collects and returns all functions defined in module_file.''' - result = [ ] - module_file = module_file.replace(os.sep, '.') - mod = __import__(module_file, fromlist=['*']) - for key, value in list(mod.__dict__.items( )): - if not key.startswith('_'): ## if not a private function... - if getattr(value, '__module__', None) == module_file: - #print '"%s" in module %s ' % (key, module_file) + """Collects and returns all functions defined in module_file.""" + result = [] + module_file = module_file.replace(os.sep, ".") + mod = __import__(module_file, fromlist=["*"]) + for key, value in list(mod.__dict__.items()): + if not key.startswith("_"): ## if not a private function... + if getattr(value, "__module__", None) == module_file: + # print '"%s" in module %s ' % (key, module_file) result.append(value) return result - diff --git a/chiplotle/core/imports/package_import.py b/chiplotle/core/imports/package_import.py index ee0e860..7c4e00d 100644 --- a/chiplotle/core/imports/package_import.py +++ b/chiplotle/core/imports/package_import.py @@ -3,23 +3,25 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() -from chiplotle.core.imports.get_functions_in_module \ - import _get_functions_in_module -from chiplotle.core.imports.remove_modules_from_namespace \ - import _remove_modules_from_namespace +from chiplotle.core.imports.get_functions_in_module import _get_functions_in_module +from chiplotle.core.imports.remove_modules_from_namespace import ( + _remove_modules_from_namespace +) import os + def _package_import(path, namespace): - '''Non-recursive import helper. + """Non-recursive import helper. All the functions and classes inside modules (leaf-modules, *.py files) - found in `path` are imported into `namespace`.''' - module = path[path.rindex('chiplotle'):] - module = module.replace(os.sep, '.') + found in `path` are imported into `namespace`.""" + module = path[path.rindex("chiplotle") :] + module = module.replace(os.sep, ".") for element in os.listdir(path): if os.path.isfile(os.path.join(path, element)): - if not element.startswith('_') and element.endswith('.py'): + if not element.startswith("_") and element.endswith(".py"): ## import function inside module submod = os.path.join(module, element[:-3]) functions = _get_functions_in_module(submod) @@ -29,4 +31,4 @@ def _package_import(path, namespace): ## remove modules _remove_modules_from_namespace(namespace) ## remove myself - del(namespace['_package_import']) + del (namespace["_package_import"]) diff --git a/chiplotle/core/imports/remove_modules_from_namespace.py b/chiplotle/core/imports/remove_modules_from_namespace.py index 60dc2f8..1a50a40 100644 --- a/chiplotle/core/imports/remove_modules_from_namespace.py +++ b/chiplotle/core/imports/remove_modules_from_namespace.py @@ -3,11 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import types def _remove_modules_from_namespace(namespace): - for key, value in list(namespace.items( )): - if isinstance(value, types.ModuleType) and not key.startswith('_'): - del(namespace[key]) + for key, value in list(namespace.items()): + if isinstance(value, types.ModuleType) and not key.startswith("_"): + del (namespace[key]) diff --git a/chiplotle/core/interfaces/formatdecorator.py b/chiplotle/core/interfaces/formatdecorator.py index 2c28067..c563b9f 100644 --- a/chiplotle/core/interfaces/formatdecorator.py +++ b/chiplotle/core/interfaces/formatdecorator.py @@ -3,24 +3,24 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.shape import _Shape + class FormatDecorator(object): - '''FormatDecorators know how to wrap Shape objects with additional + """FormatDecorators know how to wrap Shape objects with additional formatting stuff. - ''' + """ @property def _subcommands(self): raise NotImplementedError - ## overrides ## def __call__(self, shape): if not isinstance(shape, _Shape): - raise TypeError('Must be a Shape.') - #shape.formatters.append(self) + raise TypeError("Must be a Shape.") + # shape.formatters.append(self) shape.formatters.add(self) - diff --git a/chiplotle/core/interfaces/interface.py b/chiplotle/core/interfaces/interface.py index 81ac7f5..9497375 100644 --- a/chiplotle/core/interfaces/interface.py +++ b/chiplotle/core/interfaces/interface.py @@ -4,8 +4,10 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() -class _Interface(object): + +class _Interface(object): def __init__(self, client): self._client = client diff --git a/chiplotle/core/interfaces/margins/interface.py b/chiplotle/core/interfaces/margins/interface.py index c3edcc8..0a5a270 100644 --- a/chiplotle/core/interfaces/margins/interface.py +++ b/chiplotle/core/interfaces/margins/interface.py @@ -3,28 +3,28 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.interfaces.interface import _Interface from chiplotle.plotters.margins.marginssoft import MarginsSoft from chiplotle.plotters.margins.marginshard import MarginsHard -class MarginsInterface(_Interface): +class MarginsInterface(_Interface): def __init__(self, client): _Interface.__init__(self, client) self._soft = MarginsSoft(client) self._hard = None ## check if hard margin (OH) is supported by plotter... - if 'OH' in client.allowedHPGLCommands: + if "OH" in client.allowedHPGLCommands: self._hard = MarginsHard(client) - @property def soft(self): - '''Read-only reference to MarginsSoft.''' + """Read-only reference to MarginsSoft.""" return self._soft @property def hard(self): - '''Read-only reference to MarginsHard.''' + """Read-only reference to MarginsHard.""" return self._hard diff --git a/chiplotle/core/interfaces/parentage/interface.py b/chiplotle/core/interfaces/parentage/interface.py index 093b83b..9e77142 100644 --- a/chiplotle/core/interfaces/parentage/interface.py +++ b/chiplotle/core/interfaces/parentage/interface.py @@ -4,9 +4,11 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.interfaces.interface import _Interface + class ParentageInterface(_Interface): def __init__(self, _client): _Interface.__init__(self, _client) @@ -18,25 +20,24 @@ def __init__(self, _client): def parent(self): return self.__parent - ## PRIVATE METHODS ## def _cut(self): - '''Cut all ties with parent.''' - self._cut_from_parent( ) - self._cut_parent( ) + """Cut all ties with parent.""" + self._cut_from_parent() + self._cut_parent() def _cut_from_parent(self): - '''Remove client from parent.''' + """Remove client from parent.""" client, parent = self._client, self.parent if parent is not None: parent._shapes.remove(client) def _cut_parent(self): - '''Set parent of client to None.''' + """Set parent of client to None.""" self.__parent = None def _switch(self, new_parent): - '''Remove client from parent and give client to new parent.''' - self._cut( ) + """Remove client from parent and give client to new parent.""" + self._cut() self.__parent = new_parent diff --git a/chiplotle/core/visitor.py b/chiplotle/core/visitor.py index f9d7fd6..e960d07 100644 --- a/chiplotle/core/visitor.py +++ b/chiplotle/core/visitor.py @@ -5,12 +5,14 @@ from future import standard_library + standard_library.install_aliases() -class Visitor(object): + +class Visitor(object): def visit(self, node, *args, **kwargs): for cls in node.__class__.__mro__: - meth_name = 'visit_' + cls.__name__ + meth_name = "visit_" + cls.__name__ meth = getattr(self, meth_name, None) if meth: break @@ -18,8 +20,6 @@ def visit(self, node, *args, **kwargs): meth = self.visit_generic return meth(node, *args, **kwargs) - def visit_generic(self, node, *args, **kwargs): - print('*** In generic Visitor function.') - print('Node: %s' % node) - + print("*** In generic Visitor function.") + print("Node: %s" % node) diff --git a/chiplotle/documentation/conf.py b/chiplotle/documentation/conf.py index 92f1cde..e7fb2fd 100644 --- a/chiplotle/documentation/conf.py +++ b/chiplotle/documentation/conf.py @@ -16,153 +16,153 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import sys, os about = dict() here = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(here, '..', '__version__.py'), 'r') as f: +with open(os.path.join(here, "..", "__version__.py"), "r") as f: exec(f.read(), about) # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.append(os.path.abspath('.')) +# sys.path.append(os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc'] +extensions = ["sphinx.ext.autodoc"] # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix of source filenames. -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8' +# source_encoding = 'utf-8' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = 'Chiplotle' -copyright = '2009-2018, Víctor Adán, Douglas Repetto' +project = "Chiplotle" +copyright = "2009-2018, Víctor Adán, Douglas Repetto" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = about['__version__'][:len('x.y')] +version = about["__version__"][: len("x.y")] # The full version, including alpha/beta/rc tags. -release = about['__version__'] +release = about["__version__"] # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. -#unused_docs = [] +# unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. -exclude_trees = ['_build'] +exclude_trees = ["_build"] # The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -#html_theme = 'default' -html_theme = 'sphinx_rtd_theme' +# html_theme = 'default' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. html_theme_options = { - 'bodyfont': 'Arial, sans-serif', - 'headfont': 'Lucida Sans Unicode, Lucida Sans, Arial, sans-serif', - + "bodyfont": "Arial, sans-serif", + "headfont": "Lucida Sans Unicode, Lucida Sans, Arial, sans-serif", } # Add any paths that contain custom themes here, relative to this directory. -html_theme_path = ['_themes'] +html_theme_path = ["_themes"] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None -html_logo = '_themes/chiplotle/static/chiplotle_logo_2.png' +# html_logo = None +html_logo = "_themes/chiplotle/static/chiplotle_logo_2.png" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_use_modindex = True +# html_use_modindex = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False @@ -170,43 +170,48 @@ # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = '' +# html_file_suffix = '' # Output file base name for HTML help builder. -htmlhelp_basename = 'Chiplotledoc' +htmlhelp_basename = "Chiplotledoc" # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' +# latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' +# latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'Chiplotle.tex', 'Chiplotle Documentation', - 'Víctor Adán, Douglas Repetto', 'manual'), + ( + "index", + "Chiplotle.tex", + "Chiplotle Documentation", + "Víctor Adán, Douglas Repetto", + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # Additional stuff for the LaTeX preamble. -#latex_preamble = '' +# latex_preamble = '' # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_use_modindex = True +# latex_use_modindex = True diff --git a/chiplotle/documentation/scripts/compile_api.py b/chiplotle/documentation/scripts/compile_api.py index 4a97a61..9328fce 100755 --- a/chiplotle/documentation/scripts/compile_api.py +++ b/chiplotle/documentation/scripts/compile_api.py @@ -7,27 +7,29 @@ from __future__ import absolute_import from builtins import open from future import standard_library + standard_library.install_aliases() + + def compile_plotters(): from chiplotle import plotters - content = 'Chiplotle Known Plotters\n' - content += '========================\n\n' + content = "Chiplotle Known Plotters\n" + content += "========================\n\n" ## get classes in plotters... for cls in dir(plotters): - if not cls.startswith('__'): - content += '.. autoclass:: chiplotle.plotters.%s\n' % cls - content += '\t:members:\n' - content += '\t:undoc-members:\n' - content += '\t:show-inheritance:\n' + if not cls.startswith("__"): + content += ".. autoclass:: chiplotle.plotters.%s\n" % cls + content += "\t:members:\n" + content += "\t:undoc-members:\n" + content += "\t:show-inheritance:\n" ## show inherited members for generic plotter... - if cls == 'Plotter': - content += '\t:inherited-members:\n' - content += '\n' - + if cls == "Plotter": + content += "\t:inherited-members:\n" + content += "\n" - file = open('../chapters/api/plotters.rst', 'w') + file = open("../chapters/api/plotters.rst", "w") file.write(content) file.close() @@ -39,64 +41,65 @@ def compile_tools(): from chiplotle import io from chiplotle import mathtools - content = 'Chiplotle Tools\n' - content += '================\n\n' + content = "Chiplotle Tools\n" + content += "================\n\n" - content += 'HPGL Tools\n' - content += '-------------\n\n' + content += "HPGL Tools\n" + content += "-------------\n\n" content += _autofunction(hpgltools) - content += 'Input-output tools\n' - content += '---------------------\n\n' + content += "Input-output tools\n" + content += "---------------------\n\n" content += _autofunction(io) - content += 'Math tools\n' - content += '--------------\n\n' + content += "Math tools\n" + content += "--------------\n\n" content += _autofunction(mathtools) - file = open('../chapters/api/tools.rst', 'w') + file = open("../chapters/api/tools.rst", "w") file.write(content) file.close() + def compile_geometry(): from chiplotle.geometry import core from chiplotle.geometry import shapes from chiplotle.geometry import transforms - content = 'Chiplotle Geometry / Shapes\n' - content += '============================\n\n' + content = "Chiplotle Geometry / Shapes\n" + content += "============================\n\n" - content += 'Shapes\n' - content += '--------\n\n' + content += "Shapes\n" + content += "--------\n\n" content += _autofunction(shapes) - content += 'Transforms\n' - content += '-------------\n\n' + content += "Transforms\n" + content += "-------------\n\n" content += _autofunction(transforms) -# content += 'Core\n' -# content += '-------------\n\n' -# content += _autofunction(core) - + # content += 'Core\n' + # content += '-------------\n\n' + # content += _autofunction(core) - file = open('../chapters/api/geometry.rst', 'w') + file = open("../chapters/api/geometry.rst", "w") file.write(content) file.close() ## helpers ## + def _autofunction(module): modulename = module.__name__ ret = [] for cls in dir(module): - if not cls.startswith('_'): - af = '.. autofunction:: %s.%s' % (modulename, cls) + if not cls.startswith("_"): + af = ".. autofunction:: %s.%s" % (modulename, cls) ret.append(af) - return '\n'.join(ret) + '\n\n' + return "\n".join(ret) + "\n\n" -if __name__ == '__main__': +if __name__ == "__main__": compile_plotters() compile_tools() compile_geometry() diff --git a/chiplotle/examples/abstract_masterpiece.py b/chiplotle/examples/abstract_masterpiece.py index 8d0e1e7..53c3c99 100644 --- a/chiplotle/examples/abstract_masterpiece.py +++ b/chiplotle/examples/abstract_masterpiece.py @@ -8,95 +8,105 @@ from builtins import range from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle import * import random + def main(): - plotter = instantiate_plotters( )[0] - - width = plotter.margins.soft.width - height = plotter.margins.soft.height - left = plotter.margins.soft.left - right = plotter.margins.soft.right - bottom = plotter.margins.soft.bottom - top = plotter.margins.soft.top - - print("width: %d height: %d" % (plotter.margins.soft.width, plotter.margins.soft.height)) - pens = input("\nhow many pens do you want to use? ") - numPens = int(pens) - - #start in a random spot - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - penNum = 1 - - while True: - plotter.select_pen(penNum) - - whichGesture = random.randint(0,5) - - if whichGesture == 0: - print("circle!") - plotter.write(hpgl.CI(random.randint(10,5000), random.randint(1,180))) - - elif whichGesture == 1: - print("rect!") - plotter.write(hpgl.ER((random.randint(10,5000), random.randint(10,5000)))) - - elif whichGesture == 2: - print("filled rect!") - ft = random.randint(1,8) - if ft == 1 or ft == 2: - ft = 1 - if ft == 3 or ft == 4 or ft == 5: - ft = 3 - if ft == 6 or ft == 7 or ft == 8: - ft = 4 - - space = random.randint(10,100) - angle = random.randint(0,3) * 45 - - print("fill type: %d space: %d angle: %d" % (ft, space, angle)) - plotter.write(hpgl.RR((random.randint(10, 2000), random.randint(10, 2000)))) - plotter.write(hpgl.FT(ft, space, angle)) - - elif whichGesture == 3: - print("draw a crazy line!") - plotter.pen_down() - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - plotter.pen_up() - - elif whichGesture == 4: - print("draw an abstract shape!") - numPoints = random.randint(2,4) - print("numPoints: ", numPoints) - firstX = random.randint(left, right) - firstY = random.randint(bottom, top) - plotter.goto(firstX, firstY) - plotter.pen_down() - xRange = width/5 - yRange = height/5 - - for i in range(numPoints): - plotter.nudge(random.randint(int(-xRange), int(xRange)), random.randint(int(-yRange), int(yRange))) - plotter.goto(firstX, firstY) - plotter.pen_up() - - elif whichGesture == 5: - print("just jump around!") - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - - #pick a new pen? - pickPen = random.randint(0,99) - if pickPen < 25: - penNum += 1 - - if penNum == numPens + 1: - break - - plotter.select_pen(0) + plotter = instantiate_plotters()[0] + + width = plotter.margins.soft.width + height = plotter.margins.soft.height + left = plotter.margins.soft.left + right = plotter.margins.soft.right + bottom = plotter.margins.soft.bottom + top = plotter.margins.soft.top + + print( + "width: %d height: %d" + % (plotter.margins.soft.width, plotter.margins.soft.height) + ) + pens = input("\nhow many pens do you want to use? ") + numPens = int(pens) + + # start in a random spot + plotter.goto(random.randint(left, right), random.randint(bottom, top)) + penNum = 1 + + while True: + plotter.select_pen(penNum) + + whichGesture = random.randint(0, 5) + + if whichGesture == 0: + print("circle!") + plotter.write(hpgl.CI(random.randint(10, 5000), random.randint(1, 180))) + + elif whichGesture == 1: + print("rect!") + plotter.write(hpgl.ER((random.randint(10, 5000), random.randint(10, 5000)))) + + elif whichGesture == 2: + print("filled rect!") + ft = random.randint(1, 8) + if ft == 1 or ft == 2: + ft = 1 + if ft == 3 or ft == 4 or ft == 5: + ft = 3 + if ft == 6 or ft == 7 or ft == 8: + ft = 4 + + space = random.randint(10, 100) + angle = random.randint(0, 3) * 45 + + print("fill type: %d space: %d angle: %d" % (ft, space, angle)) + plotter.write(hpgl.RR((random.randint(10, 2000), random.randint(10, 2000)))) + plotter.write(hpgl.FT(ft, space, angle)) + + elif whichGesture == 3: + print("draw a crazy line!") + plotter.pen_down() + plotter.goto(random.randint(left, right), random.randint(bottom, top)) + plotter.pen_up() + + elif whichGesture == 4: + print("draw an abstract shape!") + numPoints = random.randint(2, 4) + print("numPoints: ", numPoints) + firstX = random.randint(left, right) + firstY = random.randint(bottom, top) + plotter.goto(firstX, firstY) + plotter.pen_down() + xRange = width / 5 + yRange = height / 5 + + for i in range(numPoints): + plotter.nudge( + random.randint(int(-xRange), int(xRange)), + random.randint(int(-yRange), int(yRange)), + ) + plotter.goto(firstX, firstY) + plotter.pen_up() + + elif whichGesture == 5: + print("just jump around!") + plotter.goto(random.randint(left, right), random.randint(bottom, top)) + + # pick a new pen? + pickPen = random.randint(0, 99) + if pickPen < 25: + penNum += 1 + + if penNum == numPens + 1: + break + + plotter.select_pen(0) + ### run main if called from command line like so: ### $> python abstract_masterpiece.py -if __name__ == '__main__': main() +if __name__ == "__main__": + main() diff --git a/chiplotle/examples/abstract_masterpiece_file.py b/chiplotle/examples/abstract_masterpiece_file.py index 5512016..9485418 100755 --- a/chiplotle/examples/abstract_masterpiece_file.py +++ b/chiplotle/examples/abstract_masterpiece_file.py @@ -8,151 +8,158 @@ from builtins import range from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.tools import * import random import sys -def abstract_masterpiece_file(file): - - saved = False - - while not saved: - plot = generate_plot() - - io.view(plot) - - saveit = input("\nsave this one (y/n)? ") - if 'y' in saveit: - io.save_hpgl(plot, file) - print("saved " + file) - saved = True - - print("bye!") - -def generate_plot(): - - width = 30000 - height = 20000 - left = 0 - right = 30000 - bottom = 0 - top = 20000 - - print("width: %d height: %d" % (width, height)) - pens = input("\nhow many pens do you want to use? ") - numPens = int(pens) - - plot = [] - - #start in a random spot - - plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) - - penNum = 1 - - while True: - #plotter.select_pen(penNum) - plot.append(SP(penNum)) - - whichGesture = random.randint(0,5) - - if whichGesture == 0: - print("circle!") - #plotter.circle(random.randint(10,5000), random.randint(1,180)) - x = random.randint(left, right) - y = random.randint(bottom, top) - plot.append(CI(random.randint(10,5000), random.randint(1,180))) - - - elif whichGesture == 1: - print("rect!") - x = random.randint(left, right) - y = random.randint(bottom, top) - #plotter.edgeRectRelative(random.randint(10,5000), random.randint(10,5000)) - plot.append(ER([random.randint(10,5000), random.randint(10,5000)])) - - elif whichGesture == 2: - print("filled rect!") - ft = random.randint(1,8) - if ft == 1 or ft == 2: - ft = 1 - if ft == 3 or ft == 4 or ft == 5: - ft = 3 - if ft == 6 or ft == 7 or ft == 8: - ft = 4 - - space = random.randint(10,100) - angle = random.randint(0,3) * 45 - - print("fill type: %d space: %d angle: %d" % (ft, space, angle)) - #plotter.fill_type(ft, space, angle) - #plotter.shadeRectRelative(random.randint(10,2000), random.randint(10,2000)) - plot.append(FT(ft, space, angle)) - plot.append(RR([random.randint(10,2000), random.randint(10,2000)])) - - - elif whichGesture == 3: - print("draw a crazy line!") - #plotter.pen_down() - #plotter.goto(random.randint(left, right), random.randint(bottom, top)) - #plotter.pen_up() - plot.append(PD()) - plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) - plot.append(PU()) - - - elif whichGesture == 4: - print("draw an abstract shape!") - numPoints = random.randint(2,4) - print("numPoints: ", numPoints) - firstX = random.randint(left, right) - firstY = random.randint(bottom, top) - #plotter.goto(firstX, firstY) - #plotter.pen_down() - plot.append(PA([firstX, firstY])) - plot.append(PD()) - - xRange = width/5 - yRange = height/5 - - for i in range(numPoints): - #plotter.nudge(random.randint(int(-xRange), int(xRange)), random.randint(int(-yRange), int(yRange))) - plot.append(PR([random.randint(int(-xRange), int(xRange)), random.randint(int(-yRange), int(yRange))])) +def abstract_masterpiece_file(file): - #plotter.goto(firstX, firstY) - #plotter.pen_up() + saved = False - plot.append(PA([firstX, firstY])) - plot.append(PU()) + while not saved: + plot = generate_plot() - elif whichGesture == 5: - print("just jump around!") - #plotter.goto(random.randint(left, right), random.randint(bottom, top)) - plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) + io.view(plot) - #pick a new pen? - pickPen = random.randint(0,99) - if pickPen < 25: - penNum += 1 + saveit = input("\nsave this one (y/n)? ") + if "y" in saveit: + io.save_hpgl(plot, file) + print("saved " + file) + saved = True - if penNum == numPens + 1: - break + print("bye!") - plot.append(SP(0)) - return plot +def generate_plot(): + width = 30000 + height = 20000 + left = 0 + right = 30000 + bottom = 0 + top = 20000 + + print("width: %d height: %d" % (width, height)) + pens = input("\nhow many pens do you want to use? ") + numPens = int(pens) + + plot = [] + + # start in a random spot + + plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) + + penNum = 1 + + while True: + # plotter.select_pen(penNum) + plot.append(SP(penNum)) + + whichGesture = random.randint(0, 5) + + if whichGesture == 0: + print("circle!") + # plotter.circle(random.randint(10,5000), random.randint(1,180)) + x = random.randint(left, right) + y = random.randint(bottom, top) + plot.append(CI(random.randint(10, 5000), random.randint(1, 180))) + + elif whichGesture == 1: + print("rect!") + x = random.randint(left, right) + y = random.randint(bottom, top) + # plotter.edgeRectRelative(random.randint(10,5000), random.randint(10,5000)) + plot.append(ER([random.randint(10, 5000), random.randint(10, 5000)])) + + elif whichGesture == 2: + print("filled rect!") + ft = random.randint(1, 8) + if ft == 1 or ft == 2: + ft = 1 + if ft == 3 or ft == 4 or ft == 5: + ft = 3 + if ft == 6 or ft == 7 or ft == 8: + ft = 4 + + space = random.randint(10, 100) + angle = random.randint(0, 3) * 45 + + print("fill type: %d space: %d angle: %d" % (ft, space, angle)) + # plotter.fill_type(ft, space, angle) + # plotter.shadeRectRelative(random.randint(10,2000), random.randint(10,2000)) + plot.append(FT(ft, space, angle)) + plot.append(RR([random.randint(10, 2000), random.randint(10, 2000)])) + + elif whichGesture == 3: + print("draw a crazy line!") + # plotter.pen_down() + # plotter.goto(random.randint(left, right), random.randint(bottom, top)) + # plotter.pen_up() + plot.append(PD()) + plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) + plot.append(PU()) + + elif whichGesture == 4: + print("draw an abstract shape!") + numPoints = random.randint(2, 4) + print("numPoints: ", numPoints) + firstX = random.randint(left, right) + firstY = random.randint(bottom, top) + # plotter.goto(firstX, firstY) + # plotter.pen_down() + plot.append(PA([firstX, firstY])) + plot.append(PD()) + + xRange = width / 5 + yRange = height / 5 + + for i in range(numPoints): + # plotter.nudge(random.randint(int(-xRange), int(xRange)), random.randint(int(-yRange), int(yRange))) + plot.append( + PR( + [ + random.randint(int(-xRange), int(xRange)), + random.randint(int(-yRange), int(yRange)), + ] + ) + ) + + # plotter.goto(firstX, firstY) + # plotter.pen_up() + + plot.append(PA([firstX, firstY])) + plot.append(PU()) + + elif whichGesture == 5: + print("just jump around!") + # plotter.goto(random.randint(left, right), random.randint(bottom, top)) + plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) + + # pick a new pen? + pickPen = random.randint(0, 99) + if pickPen < 25: + penNum += 1 + + if penNum == numPens + 1: + break + + plot.append(SP(0)) + + return plot ### run main if called from command line like so: ### $> python abstract_masterpiece.py -if __name__ == '__main__': - if len(sys.argv) < 2: - print('Must give output filename.\nExample: $ abstract_masterpiece_file.py myfile.hpgl') - sys.exit(2) - file = sys.argv[1] - - abstract_masterpiece_file(file) +if __name__ == "__main__": + if len(sys.argv) < 2: + print( + "Must give output filename.\nExample: $ abstract_masterpiece_file.py myfile.hpgl" + ) + sys.exit(2) + file = sys.argv[1] + + abstract_masterpiece_file(file) diff --git a/chiplotle/examples/abstract_masterpiece_virtual.py b/chiplotle/examples/abstract_masterpiece_virtual.py index 0e70278..fd771c7 100755 --- a/chiplotle/examples/abstract_masterpiece_virtual.py +++ b/chiplotle/examples/abstract_masterpiece_virtual.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -'''Same as abstract_masterpiece.py but uses a virtual plotter to view the ouptut.''' +"""Same as abstract_masterpiece.py but uses a virtual plotter to view the ouptut.""" from __future__ import print_function from __future__ import division from __future__ import unicode_literals @@ -10,12 +10,14 @@ from builtins import range from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter import random + def main(): plotter = instantiate_virtual_plotter(Coordinate(0, 0), Coordinate(30000, 20000)) @@ -27,31 +29,34 @@ def main(): bottom = plotter.margins.soft.bottom top = plotter.margins.soft.top - print("width: %d height: %d" % (plotter.margins.soft.width, plotter.margins.soft.height)) + print( + "width: %d height: %d" + % (plotter.margins.soft.width, plotter.margins.soft.height) + ) pens = input("\nhow many pens do you want to use? ") numPens = int(pens) - #start in a random spot + # start in a random spot plotter.goto(random.randint(left, right), random.randint(bottom, top)) penNum = 1 while True: plotter.select_pen(penNum) - whichGesture = random.randint(0,5) + whichGesture = random.randint(0, 5) if whichGesture == 0: print("circle!") - #plotter.circle(random.randint(10,5000), random.randint(1,180)) - plotter.write(hpgl.CI(random.randint(10,5000), random.randint(1,180))) + # plotter.circle(random.randint(10,5000), random.randint(1,180)) + plotter.write(hpgl.CI(random.randint(10, 5000), random.randint(1, 180))) elif whichGesture == 1: print("rect!") - plotter.write(hpgl.ER((random.randint(10,5000), random.randint(10,5000)))) + plotter.write(hpgl.ER((random.randint(10, 5000), random.randint(10, 5000)))) elif whichGesture == 2: print("filled rect!") - ft = random.randint(1,8) + ft = random.randint(1, 8) if ft == 1 or ft == 2: ft = 1 if ft == 3 or ft == 4 or ft == 5: @@ -59,12 +64,12 @@ def main(): if ft == 6 or ft == 7 or ft == 8: ft = 4 - space = random.randint(10,100) - angle = random.randint(0,3) * 45 + space = random.randint(10, 100) + angle = random.randint(0, 3) * 45 print("fill type: %d space: %d angle: %d" % (ft, space, angle)) - #plotter.fill_type(ft, space, angle) - #plotter.filled_rectangle_relative(random.randint(10,2000), random.randint(10,2000)) + # plotter.fill_type(ft, space, angle) + # plotter.filled_rectangle_relative(random.randint(10,2000), random.randint(10,2000)) plotter.write(hpgl.RR((random.randint(10, 2000), random.randint(10, 2000)))) plotter.write(hpgl.FT(ft, space, angle)) @@ -76,17 +81,20 @@ def main(): elif whichGesture == 4: print("draw an abstract shape!") - numPoints = random.randint(2,4) + numPoints = random.randint(2, 4) print("numPoints: ", numPoints) firstX = random.randint(left, right) firstY = random.randint(bottom, top) plotter.goto(firstX, firstY) plotter.pen_down() - xRange = width/5 - yRange = height/5 + xRange = width / 5 + yRange = height / 5 for i in range(numPoints): - plotter.nudge(random.randint(int(-xRange), int(xRange)), random.randint(int(-yRange), int(yRange))) + plotter.nudge( + random.randint(int(-xRange), int(xRange)), + random.randint(int(-yRange), int(yRange)), + ) plotter.goto(firstX, firstY) plotter.pen_up() @@ -94,8 +102,8 @@ def main(): print("just jump around!") plotter.goto(random.randint(left, right), random.randint(bottom, top)) - #pick a new pen? - pickPen = random.randint(0,99) + # pick a new pen? + pickPen = random.randint(0, 99) if pickPen < 25: penNum += 1 @@ -106,6 +114,8 @@ def main(): io.view(plotter) + ### run main if called from command line like so: ### $> python abstract_masterpiece.py -if __name__ == '__main__': main() +if __name__ == "__main__": + main() diff --git a/chiplotle/examples/importing_an_hpgl_file.py b/chiplotle/examples/importing_an_hpgl_file.py index 33f1b05..813e00a 100644 --- a/chiplotle/examples/importing_an_hpgl_file.py +++ b/chiplotle/examples/importing_an_hpgl_file.py @@ -1,12 +1,13 @@ #!/usr/bin/env python -'''A simple example that shows how to load existing hpgl code into chiplotle.''' +"""A simple example that shows how to load existing hpgl code into chiplotle.""" from __future__ import print_function from __future__ import unicode_literals from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.tools.io.import_hpgl_file import import_hpgl_file @@ -14,12 +15,15 @@ import time + def main(): - print('Importing media/square.hpgl') + print("Importing media/square.hpgl") f = import_hpgl_file("./media/square.hpgl") - print("Here are the contents of the file, expanded into a list of chiplotle objects:") + print( + "Here are the contents of the file, expanded into a list of chiplotle objects:" + ) print(f) print("\nAnd here are the raw hpgl commands:") @@ -66,7 +70,6 @@ def main(): io.view(plotter) time.sleep(1) - # Now maybe I want to add a little somethingsomething: c = shapes.circle(1000) @@ -84,4 +87,5 @@ def main(): io.view(plotter) -if __name__ == '__main__': main() +if __name__ == "__main__": + main() diff --git a/chiplotle/examples/liveplot_data-to-path.py b/chiplotle/examples/liveplot_data-to-path.py index 53d8a5d..f5d70b5 100644 --- a/chiplotle/examples/liveplot_data-to-path.py +++ b/chiplotle/examples/liveplot_data-to-path.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -'''Read in a data file and plot it using a virtual plotter.''' +"""Read in a data file and plot it using a virtual plotter.""" from __future__ import print_function from __future__ import division from __future__ import unicode_literals @@ -8,28 +8,30 @@ from builtins import open from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter + def main(): plotter = instantiate_virtual_plotter(Coordinate(0, 0), Coordinate(30000, 20000)) - data_file = open("./media/indoor_temp.txt", 'r') + data_file = open("./media/indoor_temp.txt", "r") data = data_file.readlines() print("read %d data points." % len(data)) - #make an empty list and fill it with data points as coordinates + # make an empty list and fill it with data points as coordinates points = [] x = 0 for y in data: - #we use rstrip() to remove the line break + # we use rstrip() to remove the line break y_value = eval(y.rstrip()) * 100 - #print "y_value: %f" % y_value + # print "y_value: %f" % y_value c = Coordinate(x, y_value) points.append(c) x += 10 @@ -39,31 +41,32 @@ def main(): plotter.select_pen(4) plotter.write(data_path) - #let's offset it and plot it again! + # let's offset it and plot it again! offset(data_path, (1000, 1000)) plotter.select_pen(5) plotter.write(data_path) - #let's draw a box around our offset plot + # let's draw a box around our offset plot (min, max) = data_path.minmax_coordinates (width, height) = max - min r = shapes.rectangle(width, height) - #a rectangle has its center at (0,0) - #so we shift it over so that its lower, left corner is (0,0) - #and we shift it some more to fit around our offset data - transforms.offset(r, (width/2, height/2)) + # a rectangle has its center at (0,0) + # so we shift it over so that its lower, left corner is (0,0) + # and we shift it some more to fit around our offset data + transforms.offset(r, (width / 2, height / 2)) transforms.offset(r, min) plotter.select_pen(6) plotter.write(r) - #take a looksee! + # take a looksee! io.view(plotter) + ### run main if called from command line like so: ### $> python data_do_path.py -if __name__ == '__main__': main() - +if __name__ == "__main__": + main() diff --git a/chiplotle/examples/liveplot_virtual_generic.py b/chiplotle/examples/liveplot_virtual_generic.py index a3fc176..722659d 100644 --- a/chiplotle/examples/liveplot_virtual_generic.py +++ b/chiplotle/examples/liveplot_virtual_generic.py @@ -5,16 +5,17 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter -''' +""" Demonstrates the use of a virtual plotter with the generic plotter. Paper will automatically be set to 8.5x11" (ANSI A). You must have hp2xx installed for io.view() to work! -''' +""" plotter = instantiate_virtual_plotter() @@ -30,4 +31,3 @@ plotter.write(hpgl.CI(125)) io.view(plotter) - diff --git a/chiplotle/examples/liveplot_virtual_specific.py b/chiplotle/examples/liveplot_virtual_specific.py index 09d6d93..c170aec 100644 --- a/chiplotle/examples/liveplot_virtual_specific.py +++ b/chiplotle/examples/liveplot_virtual_specific.py @@ -5,29 +5,32 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter -''' +""" Demonstrates the use of a virtual plotter with a specific plotter definition. You must have hp2xx installed for io.view() to work! -''' +""" -''' +""" compute size of paper: there are 40 plotter units per mm HP7550A reference lists 11x17 (ANSI B) max plot dimensions as: 254 x 411mm -''' +""" paper_width = 411 * 40 paper_length = 254 * 40 -plotter = instantiate_virtual_plotter(type="HP7550A", - left_bottom = Coordinate(0,0), - right_top = Coordinate(paper_width, paper_length) ) +plotter = instantiate_virtual_plotter( + type="HP7550A", + left_bottom=Coordinate(0, 0), + right_top=Coordinate(paper_width, paper_length), +) plotter.margins.soft.draw_outline() plotter.goto_center() @@ -41,4 +44,3 @@ plotter.write(hpgl.CI(125)) io.view(plotter) - diff --git a/chiplotle/fonts/dorkbot.py b/chiplotle/fonts/dorkbot.py index 40d7f2c..d2fec37 100644 --- a/chiplotle/fonts/dorkbot.py +++ b/chiplotle/fonts/dorkbot.py @@ -7,485 +7,191 @@ # a_ b_ etc are backwards characters for iron on transfers from future import standard_library + standard_library.install_aliases() -a = [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [0,0,1,], - [0,0,0,], -] +a = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 1], [1, 1, 1], [0, 0, 1], [0, 0, 0]] -a_ = [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [1,0,0,], - [0,0,0,], -] +a_ = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 1], [1, 1, 1], [1, 0, 0], [0, 0, 0]] -b= [ - [1,0,0,], - [1,0,0,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +b = [[1, 0, 0], [1, 0, 0], [1, 1, 1], [1, 0, 1], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -b_= [ - [0,0,1,], - [0,0,1,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +b_ = [[0, 0, 1], [0, 0, 1], [1, 1, 1], [1, 0, 1], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -c= [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,0,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +c = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 0], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -c_= [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [0,0,1,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +c_ = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [0, 0, 1], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -d= [ - [0,0,1,], - [0,0,1,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +d = [[0, 0, 1], [0, 0, 1], [1, 1, 1], [1, 0, 1], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -d_= [ - [1,0,0,], - [1,0,0,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +d_ = [[1, 0, 0], [1, 0, 0], [1, 1, 1], [1, 0, 1], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -e= [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,1,0,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +e = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 1, 0], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -e_= [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [0,1,1,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +e_ = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [0, 1, 1], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -f = [ - [1,1,1,], - [1,0,0,], - [1,1,0,], - [1,0,0,], - [1,0,0,], - [0,0,0,], - [0,0,0,], -] +f = [[1, 1, 1], [1, 0, 0], [1, 1, 0], [1, 0, 0], [1, 0, 0], [0, 0, 0], [0, 0, 0]] -g = [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [0,0,1,], - [1,1,1,], -] +g = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 1], [1, 1, 1], [0, 0, 1], [1, 1, 1]] -h = [ - [1,0,0,], - [1,0,0,], - [1,1,1,], - [1,0,1,], - [1,0,1,], - [0,0,0,], - [0,0,0,], -] +h = [[1, 0, 0], [1, 0, 0], [1, 1, 1], [1, 0, 1], [1, 0, 1], [0, 0, 0], [0, 0, 0]] -i= [ - [0,1,0,], - [0,0,0,], - [0,1,0,], - [0,1,0,], - [0,1,0,], - [0,0,0,], - [0,0,0,], -] +i = [[0, 1, 0], [0, 0, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 0, 0], [0, 0, 0]] -i_= i +i_ = i -j = [ - [0,0,1,], - [0,0,0,], - [0,0,1,], - [0,0,1,], - [0,0,1,], - [1,0,1,], - [1,1,1,], -] +j = [[0, 0, 1], [0, 0, 0], [0, 0, 1], [0, 0, 1], [0, 0, 1], [1, 0, 1], [1, 1, 1]] -k= [ - [1,0,0,], - [1,0,0,], - [1,0,1,], - [1,1,0,], - [1,0,1,], - [0,0,0,], - [0,0,0,], -] +k = [[1, 0, 0], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 0, 1], [0, 0, 0], [0, 0, 0]] -k_= [ - [0,0,1,], - [0,0,1,], - [1,0,1,], - [0,1,1,], - [1,0,1,], - [0,0,0,], - [0,0,0,], -] +k_ = [[0, 0, 1], [0, 0, 1], [1, 0, 1], [0, 1, 1], [1, 0, 1], [0, 0, 0], [0, 0, 0]] -l= [ - [0,1,0,], - [0,1,0,], - [0,1,0,], - [0,1,0,], - [0,1,0,], - [0,0,0,], - [0,0,0,], -] +l = [[0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 0, 0], [0, 0, 0]] -l_= l +l_ = l -m= [ - [1,0,1,], - [1,1,1,], - [1,0,1,], - [1,0,1,], - [1,0,1,], - [0,0,0,], - [0,0,0,], -] +m = [[1, 0, 1], [1, 1, 1], [1, 0, 1], [1, 0, 1], [1, 0, 1], [0, 0, 0], [0, 0, 0]] -m_= m +m_ = m -n= [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,1,], - [1,0,1,], - [0,0,0,], - [0,0,0,], -] +n = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 1], [1, 0, 1], [0, 0, 0], [0, 0, 0]] -n_= n +n_ = n -o= [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +o = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 1], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -o_= o +o_ = o -p = [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [1,0,0,], - [1,0,0,], -] +p = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 1], [1, 1, 1], [1, 0, 0], [1, 0, 0]] -q = [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,1,], - [1,1,1,], - [0,0,1,], - [0,0,1,], -] +q = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 1], [1, 1, 1], [0, 0, 1], [0, 0, 1]] -r= [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [1,0,0,], - [1,0,0,], - [0,0,0,], - [0,0,0,], -] +r = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [1, 0, 0], [1, 0, 0], [0, 0, 0], [0, 0, 0]] -r_= [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [0,0,1,], - [0,0,1,], - [0,0,0,], - [0,0,0,], -] +r_ = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [0, 0, 1], [0, 0, 1], [0, 0, 0], [0, 0, 0]] -s = [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [0,1,0,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +s = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [0, 1, 0], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -t= [ - [0,1,0,], - [0,1,0,], - [1,1,1,], - [0,1,0,], - [0,1,0,], - [0,0,0,], - [0,0,0,], -] +t = [[0, 1, 0], [0, 1, 0], [1, 1, 1], [0, 1, 0], [0, 1, 0], [0, 0, 0], [0, 0, 0]] -t_= t +t_ = t -u = [ - [0,0,0,], - [0,0,0,], - [1,0,1,], - [1,0,1,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +u = [[0, 0, 0], [0, 0, 0], [1, 0, 1], [1, 0, 1], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -v = [ - [0,0,0,], - [0,0,0,], - [1,0,1,], - [1,0,1,], - [0,1,0,], - [0,0,0,], - [0,0,0,], -] +v = [[0, 0, 0], [0, 0, 0], [1, 0, 1], [1, 0, 1], [0, 1, 0], [0, 0, 0], [0, 0, 0]] -w = [ - [1,0,1,], - [1,0,1,], - [1,0,1,], - [1,1,1,], - [1,0,1,], - [0,0,0,], - [0,0,0,], -] +w = [[1, 0, 1], [1, 0, 1], [1, 0, 1], [1, 1, 1], [1, 0, 1], [0, 0, 0], [0, 0, 0]] -x = [ - [0,0,0,], - [0,0,0,], - [1,0,1,], - [0,1,0,], - [1,0,1,], - [0,0,0,], - [0,0,0,], -] +x = [[0, 0, 0], [0, 0, 0], [1, 0, 1], [0, 1, 0], [1, 0, 1], [0, 0, 0], [0, 0, 0]] -y= [ - [0,0,0,], - [0,0,0,], - [1,0,1,], - [1,0,1,], - [1,1,1,], - [0,0,1,], - [1,1,1,], -] +y = [[0, 0, 0], [0, 0, 0], [1, 0, 1], [1, 0, 1], [1, 1, 1], [0, 0, 1], [1, 1, 1]] -y_= [ - [0,0,0,], - [0,0,0,], - [1,0,1,], - [1,0,1,], - [1,1,1,], - [1,0,0,], - [1,1,1,], -] +y_ = [[0, 0, 0], [0, 0, 0], [1, 0, 1], [1, 0, 1], [1, 1, 1], [1, 0, 0], [1, 1, 1]] -z = [ - [0,0,0,], - [0,0,0,], - [1,1,1,], - [0,1,0,], - [1,1,1,], - [0,0,0,], - [0,0,0,], -] +z = [[0, 0, 0], [0, 0, 0], [1, 1, 1], [0, 1, 0], [1, 1, 1], [0, 0, 0], [0, 0, 0]] -dash= [ - [0,0,0,], - [0,0,0,], - [0,0,0,], - [1,1,1,], - [0,0,0,], - [0,0,0,], - [0,0,0,], -] +dash = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [1, 1, 1], [0, 0, 0], [0, 0, 0], [0, 0, 0]] -bang= [ - [0,0,0,], - [0,1,0,], - [0,1,0,], - [0,1,0,], - [0,0,0,], - [0,1,0,], - [0,0,0,], -] +bang = [[0, 0, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0], [0, 0, 0]] -period = [ - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,1,0,], - [0,0,0,], - [0,0,0,], -] +period = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 1, 0], [0, 0, 0], [0, 0, 0]] -comma = [ - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,1,], - [0,1,0,], - [0,0,0,], - [0,0,0,], -] +comma = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 0, 0], [0, 0, 0]] -colon = [ - [0,0,0,], - [0,0,0,], - [0,1,0,], - [0,0,0,], - [0,1,0,], - [0,0,0,], - [0,0,0,], -] +colon = [[0, 0, 0], [0, 0, 0], [0, 1, 0], [0, 0, 0], [0, 1, 0], [0, 0, 0], [0, 0, 0]] semicolon = [ - [0,0,0,], - [0,0,0,], - [0,1,0,], - [0,0,0,], - [0,1,0,], - [1,0,0,], - [0,0,0,], + [0, 0, 0], + [0, 0, 0], + [0, 1, 0], + [0, 0, 0], + [0, 1, 0], + [1, 0, 0], + [0, 0, 0], ] -plus = [ - [0,0,0,], - [0,0,0,], - [0,1,0,], - [1,1,1,], - [0,1,0,], - [0,0,0,], - [0,0,0,], -] +plus = [[0, 0, 0], [0, 0, 0], [0, 1, 0], [1, 1, 1], [0, 1, 0], [0, 0, 0], [0, 0, 0]] backslash = [ - [0,0,0,], - [0,0,0,], - [1,0,0,], - [0,1,0,], - [0,0,1,], - [0,0,0,], - [0,0,0,], + [0, 0, 0], + [0, 0, 0], + [1, 0, 0], + [0, 1, 0], + [0, 0, 1], + [0, 0, 0], + [0, 0, 0], ] forwardslash = [ - [0,0,0,], - [0,0,0,], - [0,0,1,], - [0,1,0,], - [1,0,0,], - [0,0,0,], - [0,0,0,], + [0, 0, 0], + [0, 0, 0], + [0, 0, 1], + [0, 1, 0], + [1, 0, 0], + [0, 0, 0], + [0, 0, 0], ] singlequote = [ - [0,0,0,], - [0,1,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], + [0, 0, 0], + [0, 1, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0], ] doublequote = [ - [0,0,0,], - [1,0,1,], - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], -] - -space = [ - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], - [0,0,0,], -] - - -char_dict = {'a':a, 'b':b, 'c':c, 'd':d, 'e':e, 'f':f, 'g':g, 'h':h, - 'i':i, 'j':j, 'k':k, 'l':l, 'm':m, 'n':n, 'o':o, 'p':p, 'q':q, 'r':r, - 's':s, 't':t, 'u':u, 'v':v, 'w':w, 'x':x, 'y':y, 'z':z, '-':dash, - '!':bang, '.':period, ',':comma, ':':colon, ';':semicolon, '+':plus, - '\\':backslash, '/':forwardslash, '\'':singlequote, '"':doublequote, - ' ':space} - + [0, 0, 0], + [1, 0, 1], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0], + [0, 0, 0], +] + +space = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] + + +char_dict = { + "a": a, + "b": b, + "c": c, + "d": d, + "e": e, + "f": f, + "g": g, + "h": h, + "i": i, + "j": j, + "k": k, + "l": l, + "m": m, + "n": n, + "o": o, + "p": p, + "q": q, + "r": r, + "s": s, + "t": t, + "u": u, + "v": v, + "w": w, + "x": x, + "y": y, + "z": z, + "-": dash, + "!": bang, + ".": period, + ",": comma, + ":": colon, + ";": semicolon, + "+": plus, + "\\": backslash, + "/": forwardslash, + "'": singlequote, + '"': doublequote, + " ": space, +} diff --git a/chiplotle/geometry/core/__init__.py b/chiplotle/geometry/core/__init__.py index c347c38..99858a1 100644 --- a/chiplotle/geometry/core/__init__.py +++ b/chiplotle/geometry/core/__init__.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from .group import Group from .label import Label diff --git a/chiplotle/geometry/core/affixformatvisitor.py b/chiplotle/geometry/core/affixformatvisitor.py index 55fd633..78eebde 100644 --- a/chiplotle/geometry/core/affixformatvisitor.py +++ b/chiplotle/geometry/core/affixformatvisitor.py @@ -3,29 +3,27 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.visitor import Visitor class AffixFormatVisitor(Visitor): - '''Hard-sets formatters defined in Groups onto the drawable _Shapes. + """Hard-sets formatters defined in Groups onto the drawable _Shapes. This cannot be undone! Useful as an operation previous to splitting a shape tree to avoid loosing the implied formating information across groups. - ''' + """ def visit_Group(self, node, formatters=None): formatters = self._update_formatters(node, formatters) for s in node: self.visit(s, formatters) - def visit__Shape(self, node, formatters=None): frmtrs = self._update_formatters(node, formatters) node.formatters = list(frmtrs.values()) - - ## private methods ## def _update_formatters(self, node, formatters): @@ -33,5 +31,3 @@ def _update_formatters(self, node, formatters): for fd in node.formatters: result[fd.__class__.__name__] = fd return result - - diff --git a/chiplotle/geometry/core/coordinate.py b/chiplotle/geometry/core/coordinate.py index 93b885f..c3d3b64 100644 --- a/chiplotle/geometry/core/coordinate.py +++ b/chiplotle/geometry/core/coordinate.py @@ -6,6 +6,7 @@ from builtins import map from builtins import str from future import standard_library + standard_library.install_aliases() import numbers import operator @@ -16,20 +17,19 @@ class Coordinate(object): - __slots__ = ('_coords') + __slots__ = "_coords" -# def __new__(cls, *args): -# if len(args) == 1 and isinstance(args[0], Coordinate): -# return args[0] -# else: -# return super(Coordinate, cls).__new__(cls) + # def __new__(cls, *args): + # if len(args) == 1 and isinstance(args[0], Coordinate): + # return args[0] + # else: + # return super(Coordinate, cls).__new__(cls) def __init__(self, *args): if args and not isinstance(args[0], numbers.Number): - raise TypeError('Arguments must all be scalars') + raise TypeError("Arguments must all be scalars") self._coords = list(args) - @property def xy(self): return self._coords[0:2] @@ -44,8 +44,8 @@ def y(self): @property def magnitude(self): - '''The norm.''' - return math.sqrt(sum([c**2 for c in self._coords])) + """The norm.""" + return math.sqrt(sum([c ** 2 for c in self._coords])) @property def normalized(self): @@ -55,6 +55,7 @@ def normalized(self): @property def polar(self): from chiplotle.tools.mathtools.xy_to_polar import xy_to_polar + return xy_to_polar(self.xy) @property @@ -82,10 +83,10 @@ def __len__(self): return len(self._coords) def __repr__(self): - return 'Coordinate({})'.format(self._coords) + return "Coordinate({})".format(self._coords) def __str__(self): - return '<%s>' % ','.join([str(c) for c in self._coords]) + return "<%s>" % ",".join([str(c) for c in self._coords]) ## math operators ## @@ -101,8 +102,8 @@ def __add__(self, arg): except Exception: raise TypeError -# def __radd__(self, arg): -# return self + arg + # def __radd__(self, arg): + # return self + arg def __sub__(self, arg): if isinstance(arg, Coordinate): @@ -114,7 +115,7 @@ def __sub__(self, arg): raise TypeError def __rsub__(self, arg): - return - (self - arg) + return -(self - arg) def __truediv__(self, arg): coords = [c / float(arg) for c in self._coords] @@ -154,14 +155,13 @@ def __neg__(self): return Coordinate(*coords) def __invert__(self): - '''Returns the perpendicular of self. + """Returns the perpendicular of self. http://mathworld.wolfram.com/PerpendicularCoordinate.html - ''' + """ return self.perpendicular - -if __name__ == '__main__': +if __name__ == "__main__": c = Coordinate(1, 2, 3) cp = c + c @@ -169,7 +169,7 @@ def __invert__(self): cm = c * 2 cd = c / 2 cn = -c - print('len(c) =', len(c)) + print("len(c) =", len(c)) print(c) print(cp) print(cs) diff --git a/chiplotle/geometry/core/coordinatearray.py b/chiplotle/geometry/core/coordinatearray.py index cb636b6..3b5aa58 100644 --- a/chiplotle/geometry/core/coordinatearray.py +++ b/chiplotle/geometry/core/coordinatearray.py @@ -5,23 +5,25 @@ from builtins import zip from builtins import str from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate -from chiplotle.geometry.core.coordinatearraypropertiesmixin import \ +from chiplotle.geometry.core.coordinatearraypropertiesmixin import ( CoordinateArrayPropertiesMixin +) import numpy as np + class CoordinateArray(CoordinateArrayPropertiesMixin): - __slots__ = ('_data', ) + __slots__ = ("_data",) def __init__(self, coords=None): - '''`coords` is a list of Coordinate objs or iterables.''' + """`coords` is a list of Coordinate objs or iterables.""" if coords is None: - coords = [ ] + coords = [] self._data = [Coordinate(*list(p)) for p in coords] - ## PUBLIC PROPERTIES ## @property @@ -54,10 +56,9 @@ def magnitude(self): def append(self, arg): if not isinstance(arg, Coordinate): - raise TypeError('arg must be a Coordinate') + raise TypeError("arg must be a Coordinate") self._data.append(arg) - def extend(self, arg): if isinstance(arg, CoordinateArray): self._data.extend(arg._data) @@ -65,8 +66,7 @@ def extend(self, arg): for e in arg: self.append(e) else: - raise TypeError('`arg` must be a list or CoordinateArray.') - + raise TypeError("`arg` must be a list or CoordinateArray.") ## OVERRIDES ## @@ -74,11 +74,10 @@ def __len__(self): return len(self._data) def __repr__(self): - return 'CoordinateArray(%s)' % self._data + return "CoordinateArray(%s)" % self._data def __str__(self): - return 'CoordinateArray(%s)' % ', '.join([str(coord) for coord in self._data]) - + return "CoordinateArray(%s)" % ", ".join([str(coord) for coord in self._data]) ## accessors / modifiers ## @@ -87,7 +86,7 @@ def __iter__(self): yield c def __delitem__(self, i): - del(self._data[i]) + del (self._data[i]) def __getitem__(self, arg): return self._data[arg] @@ -113,7 +112,7 @@ def __add__(self, arg): raise ValueError("CoordinateArrays must have same length.") coords = [a + b for a, b in zip(self._data, arg._data)] return CoordinateArray(coords) - raise TypeError('Unknown type for CoordinateArray addition') + raise TypeError("Unknown type for CoordinateArray addition") def __radd__(self, arg): return self + arg @@ -122,7 +121,6 @@ def __iadd__(self, arg): self._data = (self + arg)._data return self - ## substraction ## def __sub__(self, arg): @@ -160,21 +158,20 @@ def __eq__(self, arg): except AttributeError: return False - def __ne__(self, arg): return not (self == arg) def __neg__(self): - return CoordinateArray([-c for c in self]) + return CoordinateArray([-c for c in self]) def __invert__(self): - '''Returns the perpendiculars of the Coordinates contained in self.''' + """Returns the perpendiculars of the Coordinates contained in self.""" if self.ndim != 2: - raise ValueError('inversion only works on 2D currently.') + raise ValueError("inversion only works on 2D currently.") return CoordinateArray([~v for v in self]) -if __name__ == '__main__': +if __name__ == "__main__": ca = CoordinateArray([(1, 2), (3, 4)]) print(ca) print(ca.coords) diff --git a/chiplotle/geometry/core/coordinatearraypropertiesmixin.py b/chiplotle/geometry/core/coordinatearraypropertiesmixin.py index 75b7fd7..21c76b5 100644 --- a/chiplotle/geometry/core/coordinatearraypropertiesmixin.py +++ b/chiplotle/geometry/core/coordinatearraypropertiesmixin.py @@ -4,12 +4,13 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate import numpy as np -class CoordinateArrayPropertiesMixin(object): +class CoordinateArrayPropertiesMixin(object): @property def centroid(self): coords = set(self._data) @@ -17,40 +18,38 @@ def centroid(self): @property def center(self): - '''"center" is defined as being half way between the top/bottom + """"center" is defined as being half way between the top/bottom and left/right-most points. This will be different from the centroid, which takes the distribution of the points into consideration. - ''' + """ return sum(self.minmax, Coordinate(0, 0)) / 2.0 @property def minmax(self): - '''Returns the minimum and maximum coordinates.''' + """Returns the minimum and maximum coordinates.""" if len(self._data) == 0: return None - coords= [list(c) for c in self._data] - mx = np.max(coords, 0).tolist() - mn = np.min(coords, 0).tolist() + coords = [list(c) for c in self._data] + mx = np.max(coords, 0).tolist() + mn = np.min(coords, 0).tolist() return (Coordinate(*mn), Coordinate(*mx)) @property def difference(self): - '''Returns the difference between consecutive elements in `self`. + """Returns the difference between consecutive elements in `self`. i.e., first derivative. - ''' - result = [ ] + """ + result = [] for i in range(len(self) - 1): - result.append(self[i+1] - self[i]) + result.append(self[i + 1] - self[i]) return type(self)(result) - @property def cumsum(self): - '''Returns the cumulative sum.''' + """Returns the cumulative sum.""" dimensions = len(self[0]) result = [Coordinate(*([0] * dimensions))] for coord in self: result.append(result[-1] + coord) return type(self)(result) - diff --git a/chiplotle/geometry/core/group.py b/chiplotle/geometry/core/group.py index f5216af..85f0828 100644 --- a/chiplotle/geometry/core/group.py +++ b/chiplotle/geometry/core/group.py @@ -3,38 +3,40 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.shape import _Shape import copy + class Group(_Shape): - '''A group collects together multiple _Shapes, so they + """A group collects together multiple _Shapes, so they can be treated as a single object. The elements in a group are stored in order, like a list, so that order-specific operation can be performed on groups. i.e., Groups are lists, not sets. - ''' + """ + def __init__(self, shapes=None): _Shape.__init__(self) - self._shapes = [ ] - if shapes is None: shapes = [ ] + self._shapes = [] + if shapes is None: + shapes = [] self.extend(shapes) - ## PUBLIC PROPERTIES ## @property def points(self): - '''Returns a flat list of all the Coordinates that form this shape. + """Returns a flat list of all the Coordinates that form this shape. This property is useful in computing some property of the shape based - on all it's points. e.g., centroid, bounding box, etc. ''' - coords = [ ] + on all it's points. e.g., centroid, bounding box, etc. """ + coords = [] for shape in self: coords += list(shape.points) return CoordinateArray(coords) - #return coords - + # return coords ## PUBLIC METHODS ## @@ -57,32 +59,29 @@ def pop(self, indx=-1): result = self._shapes.pop(indx) return result - ## private properties ## -# @property -# def _infix_commands(self): -# result = [ ] -# for shape in self: -# result += shape._subcommands -# return result - + # @property + # def _infix_commands(self): + # result = [ ] + # for shape in self: + # result += shape._subcommands + # return result ## private methods ## def _check_init_shape(self, shape): if not isinstance(shape, _Shape): - raise TypeError('shape must be an _Shape object.') + raise TypeError("shape must be an _Shape object.") def _check_init_shapes(self, shapes): for s in shapes: self._check_init_shape(s) - ## OVERRIDES ## def __delitem__(self, indx): - del(self._shapes[indx]) + del (self._shapes[indx]) def __getitem__(self, indx): return self._shapes[indx] @@ -132,7 +131,7 @@ def __isub__(self, arg): return self def __neg__(self): - self._shapes = [s.__neg__( ) for s in self] + self._shapes = [s.__neg__() for s in self] return self def __eq__(self, arg): @@ -140,4 +139,3 @@ def __eq__(self, arg): return self._shapes == arg._shapes except AttributeError: return False - diff --git a/chiplotle/geometry/core/hpglformatvisitor.py b/chiplotle/geometry/core/hpglformatvisitor.py index b30d930..bc54d3e 100644 --- a/chiplotle/geometry/core/hpglformatvisitor.py +++ b/chiplotle/geometry/core/hpglformatvisitor.py @@ -3,52 +3,48 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.visitor import Visitor from chiplotle.tools.hpgltools import convert_coordinates_to_hpgl_absolute_path import chiplotle.hpgl.commands as hpgl import copy + class HPGLFormatVisitor(Visitor): - '''Visitor that collects shapes and returns their HPGL representation.''' + """Visitor that collects shapes and returns their HPGL representation.""" def __init__(self): self.hpgl = [] - def visit_Group(self, node, formatters=None): frmtrs = self._update_formatters(node, formatters) for s in node: self.visit(s, frmtrs) - def visit_Polygon(self, node, formatters=None): frmtrs = self._update_formatters(node, formatters) result = self._formatters_to_hpgl(frmtrs) result += self._polygon_to_hpgl(node) self.hpgl += result - def visit_Path(self, node, formatters=None): frmtrs = self._update_formatters(node, formatters) result = self._formatters_to_hpgl(frmtrs) result += self._path_to_hpgl(node) self.hpgl += result - def visit_Label(self, node, formatters=None): frmtrs = self._update_formatters(node, formatters) result = self._formatters_to_hpgl(frmtrs) result += self._label_to_hpgl(node) self.hpgl += result - ## properties ## @property def format(self): - return ''.join([c.format for c in self.hpgl]) - + return "".join([c.format for c in self.hpgl]) ## private methods ## @@ -58,11 +54,9 @@ def _update_formatters(self, node, formatters): result[fd.__class__.__name__] = fd return result - def _path_to_hpgl(self, path): return convert_coordinates_to_hpgl_absolute_path(path._preformat_points) - def _polygon_to_hpgl(self, poly): path = convert_coordinates_to_hpgl_absolute_path(poly._preformat_points) result = path[0:2] + [hpgl.PM(0)] + path[2:] + [hpgl.PM(2), hpgl.EP()] @@ -70,31 +64,30 @@ def _polygon_to_hpgl(self, poly): result.append(hpgl.FP()) return result - def _label_to_hpgl(self, label): from chiplotle.hpgl.label import Label from chiplotle.tools.mathtools import polar_to_xy import math + angle = label.angle if label.never_upside_down: if math.pi * 3 / 2.0 > angle > math.pi / 2.0: angle += math.pi - origin = label.HPGL_ORIGIN_MAP[label.origin] - hpgllabel = Label(text = label.text, - charwidth = label.charwidth, - charheight = label.charheight, - charspace = label.charspace, - linespace = label.linespace, - origin = origin, - direction = polar_to_xy((1, angle)) - ) + origin = label.HPGL_ORIGIN_MAP[label.origin] + hpgllabel = Label( + text=label.text, + charwidth=label.charwidth, + charheight=label.charheight, + charspace=label.charspace, + linespace=label.linespace, + origin=origin, + direction=polar_to_xy((1, angle)), + ) return [hpgl.PA([label.points[0]]), hpgllabel] - def _formatters_to_hpgl(self, formatters): result = [] for f in list(formatters.values()): result += f._subcommands return result - diff --git a/chiplotle/geometry/core/label.py b/chiplotle/geometry/core/label.py index 24bb129..37e7467 100644 --- a/chiplotle/geometry/core/label.py +++ b/chiplotle/geometry/core/label.py @@ -3,6 +3,7 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.label import Label as HPGLLabel from chiplotle.hpgl.commands import PA @@ -14,8 +15,9 @@ ## TODO should a Label be a path? Probably not. + class Label(_Shape): - ''' + """ A text label. - `text` is the text to be displayed. @@ -27,27 +29,29 @@ class Label(_Shape): 'top-left' 'top-center' 'top-right' 'middle-left' 'middle-center' 'middle-right' 'bottom-left' 'bottom-center' 'bottom-right' - ''' + """ HPGL_ORIGIN_MAP = { - 'bottom-left' : 1, - 'middle-left' : 2, - 'top-left' : 3, - 'bottom-center': 4, - 'middle-center': 5, - 'top-center' : 6, - 'bottom-right' : 7, - 'middle-right' : 8, - 'top-right' : 9} - - - def __init__(self, + "bottom-left": 1, + "middle-left": 2, + "top-left": 3, + "bottom-center": 4, + "middle-center": 5, + "top-center": 6, + "bottom-right": 7, + "middle-right": 8, + "top-right": 9, + } + + def __init__( + self, text, charwidth, charheight, - charspace = None, - linespace = None, - origin = 'bottom-left'): + charspace=None, + linespace=None, + origin="bottom-left", + ): _Shape.__init__(self) @@ -65,11 +69,11 @@ def __init__(self, @property def points(self): return self._points + @points.setter def points(self, arg): self._points = CoordinateArray(arg) - @property def angle(self): return self.points.difference[0].angle @@ -78,9 +82,10 @@ def angle(self): @property def charwidth(self): return self.points.difference[0].magnitude -# @charwidth.setter -# def charwidth(self, arg): -# self._points + + # @charwidth.setter + # def charwidth(self, arg): + # self._points @property def charheight(self): @@ -88,44 +93,43 @@ def charheight(self): ## PRIVATE PROPERTIES ## -# @property -# def _infix_commands(self): -# angle = self.angle -# if self.never_upside_down: -# if math.pi * 3 / 2.0 > angle > math.pi / 2.0: -# angle += math.pi -# -# if _Shape.language == 'HPGL': -# origin = self.HPGL_ORIGIN_MAP[self.origin] -# label = HPGLLabel( -# text = self.text, -# charwidth = self.charwidth, -# charheight = self.charheight, -# charspace = self.charspace, -# linespace = self.linespace, -# origin = origin, -# direction = mathtools.polar_to_xy((1, angle)), -# ) -# return [PA(self.points[0]), label] -# -# elif _Shape.language == 'gcode': -# print 'Sorry, no g-code support!' -# raise NotImplementedError - + # @property + # def _infix_commands(self): + # angle = self.angle + # if self.never_upside_down: + # if math.pi * 3 / 2.0 > angle > math.pi / 2.0: + # angle += math.pi + # + # if _Shape.language == 'HPGL': + # origin = self.HPGL_ORIGIN_MAP[self.origin] + # label = HPGLLabel( + # text = self.text, + # charwidth = self.charwidth, + # charheight = self.charheight, + # charspace = self.charspace, + # linespace = self.linespace, + # origin = origin, + # direction = mathtools.polar_to_xy((1, angle)), + # ) + # return [PA(self.points[0]), label] + # + # elif _Shape.language == 'gcode': + # print 'Sorry, no g-code support!' + # raise NotImplementedError def __str__(self): - return '%s(%s)' % (self.__class__.__name__, self.text) + return "%s(%s)" % (self.__class__.__name__, self.text) + ## DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * - lb = Label("Hello!", 1, 2, origin = 'bottom-center') - PenDecorator(Pen(1))(lb) ## we need this for Label to display with hp2xx + lb = Label("Hello!", 1, 2, origin="bottom-center") + PenDecorator(Pen(1))(lb) ## we need this for Label to display with hp2xx rotate(lb, 3.14 / 4 * 3) c = circle(100 / 2.5) g = group([c, lb]) io.view(g) - diff --git a/chiplotle/geometry/core/layer.py b/chiplotle/geometry/core/layer.py index 3fc84f0..1192309 100644 --- a/chiplotle/geometry/core/layer.py +++ b/chiplotle/geometry/core/layer.py @@ -3,14 +3,15 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group -class Layer(Group): +class Layer(Group): def __init__(self, shapes, name): - Group.__init__(self, shapes = shapes) + Group.__init__(self, shapes=shapes) self.name = name def __str__(self): - return 'Layer({0}, {1})'.format(len(self), self.name) + return "Layer({0}, {1})".format(len(self), self.name) diff --git a/chiplotle/geometry/core/layersvisitor.py b/chiplotle/geometry/core/layersvisitor.py index ae21cca..3150075 100644 --- a/chiplotle/geometry/core/layersvisitor.py +++ b/chiplotle/geometry/core/layersvisitor.py @@ -4,28 +4,28 @@ from __future__ import absolute_import from builtins import dict from future import standard_library + standard_library.install_aliases() from chiplotle.core.visitor import Visitor class LayersVisitor(Visitor): - '''Sorts / splits shapes based on the layers they live in.''' + """Sorts / splits shapes based on the layers they live in.""" def __init__(self): self.layers = dict() - def visit_Layer(self, node, current_layer=None, tree=''): + def visit_Layer(self, node, current_layer=None, tree=""): for s in node: self.visit(s, node.name, tree=tree) - def visit_Group(self, node, current_layer=None, tree=''): + def visit_Group(self, node, current_layer=None, tree=""): for s in node: self.visit(s, current_layer, tree) - def visit__Shape(self, node, current_layer=None, tree=''): + def visit__Shape(self, node, current_layer=None, tree=""): self._add_shape_to_layer(node, current_layer) - ## private ## def _add_shape_to_layer(self, shape, layer): @@ -34,10 +34,11 @@ def _add_shape_to_layer(self, shape, layer): else: self.layers[layer] = [shape] + ## DEPRECATED ## ################################################ # -#class LayersVisitor(Visitor): +# class LayersVisitor(Visitor): # '''Sorts / splits shapes based on the layers they live in.''' # # def __init__(self): diff --git a/chiplotle/geometry/core/metadata.py b/chiplotle/geometry/core/metadata.py index 1dcd5d2..d7192d7 100644 --- a/chiplotle/geometry/core/metadata.py +++ b/chiplotle/geometry/core/metadata.py @@ -4,10 +4,11 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() -class MetaData(object): + +class MetaData(object): def __init__(self): self.name = None - self.tags = set( ) - + self.tags = set() diff --git a/chiplotle/geometry/core/path.py b/chiplotle/geometry/core/path.py index d00870e..2d30034 100644 --- a/chiplotle/geometry/core/path.py +++ b/chiplotle/geometry/core/path.py @@ -3,45 +3,44 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.shape import _Shape from chiplotle.geometry.core.coordinatearray import CoordinateArray class Path(_Shape): - ''' + """ A generic path (connected points). This is the most basic concrete drawing class. - ''' + """ + def __init__(self, points): _Shape.__init__(self) self.points = CoordinateArray(points) - ## public properties ## @property def points(self): return self._points + @points.setter def points(self, arg): self._points = CoordinateArray(arg) - ## private properties ## @property def _preformat_points(self): - '''Points (coordinates) ready for formatting (conversion to HPGL).''' + """Points (coordinates) ready for formatting (conversion to HPGL).""" return self.points - ## overrides ## def __len__(self): return len(self.points) - ## operators ## ## some are destructive transformations ## @@ -77,7 +76,6 @@ def __isub__(self, arg): def __rsub__(self, arg): return -(self - arg) - def __eq__(self, arg): try: return self.points == arg.points @@ -91,12 +89,10 @@ def __neg__(self): return Path(-self.points) - ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io p = Path(CoordinateArray([(1, 2), (4, 6), (0, 2), (5, 1)]) * 1000) io.view(p) - diff --git a/chiplotle/geometry/core/polygon.py b/chiplotle/geometry/core/polygon.py index 0f62117..4fae7f6 100644 --- a/chiplotle/geometry/core/polygon.py +++ b/chiplotle/geometry/core/polygon.py @@ -3,15 +3,18 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import PM, EP, FP, FT, SP from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.path import Path -from chiplotle.tools.hpgltools.convert_coordinates_to_hpgl_absolute_path \ - import convert_coordinates_to_hpgl_absolute_path +from chiplotle.tools.hpgltools.convert_coordinates_to_hpgl_absolute_path import ( + convert_coordinates_to_hpgl_absolute_path +) + class Polygon(Path): - '''A closed path.''' + """A closed path.""" def __init__(self, points, filled=False): Path.__init__(self, points) @@ -19,15 +22,13 @@ def __init__(self, points, filled=False): @property def _preformat_points(self): - '''Points (coordinates) ready for formatting (conversion to HPGL).''' + """Points (coordinates) ready for formatting (conversion to HPGL).""" coords = self.points[:] coords.append(coords[0]) return CoordinateArray(coords) - - -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import io p = Polygon([(0, 0), (2000, 0), (1000, 1000), (0, 500)], 0) diff --git a/chiplotle/geometry/core/shape.py b/chiplotle/geometry/core/shape.py index de397e6..14e8ea0 100644 --- a/chiplotle/geometry/core/shape.py +++ b/chiplotle/geometry/core/shape.py @@ -4,41 +4,38 @@ from __future__ import absolute_import from builtins import str from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.hpglformatvisitor import HPGLFormatVisitor from chiplotle.geometry.core.metadata import MetaData from chiplotle.geometry.core.shapepropertiesmixin import _ShapePropertiesMixin -class _Shape(_ShapePropertiesMixin): - '''Abstract class from which all geometric shapes inherit.''' - - language = 'HPGL' - def __init__(self): - self.formatters = set( ) - self.layer = None - self.meta = MetaData() +class _Shape(_ShapePropertiesMixin): + """Abstract class from which all geometric shapes inherit.""" + language = "HPGL" - @property - def format(self): - if _Shape.language == 'HPGL': - v = HPGLFormatVisitor() - else: - raise ValueError('Sorry, only HPGL supported at the moment.') - v.visit(self) - return v.format + def __init__(self): + self.formatters = set() + self.layer = None + self.meta = MetaData() + @property + def format(self): + if _Shape.language == "HPGL": + v = HPGLFormatVisitor() + else: + raise ValueError("Sorry, only HPGL supported at the moment.") + v.visit(self) + return v.format - ## overrides ## + ## overrides ## - def __repr__(self): - return str(self) + def __repr__(self): + return str(self) - def __str__(self): - name = self.meta.name or '' - tags = self.meta.tags or '' - return '%s(%d) %s %s' % (self.__class__.__name__, - len(self), - name, - tags) + def __str__(self): + name = self.meta.name or "" + tags = self.meta.tags or "" + return "%s(%d) %s %s" % (self.__class__.__name__, len(self), name, tags) diff --git a/chiplotle/geometry/core/shapepropertiesmixin.py b/chiplotle/geometry/core/shapepropertiesmixin.py index 9f048cc..884ca0d 100644 --- a/chiplotle/geometry/core/shapepropertiesmixin.py +++ b/chiplotle/geometry/core/shapepropertiesmixin.py @@ -3,9 +3,11 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate + class _ShapePropertiesMixin(object): ## TODO: cache computed values? diff --git a/chiplotle/geometry/core/tagsvisitor.py b/chiplotle/geometry/core/tagsvisitor.py index 826f574..7314052 100644 --- a/chiplotle/geometry/core/tagsvisitor.py +++ b/chiplotle/geometry/core/tagsvisitor.py @@ -3,12 +3,13 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.visitor import Visitor class TagsVisitor(Visitor): - '''Sort / group shapes by tags.''' + """Sort / group shapes by tags.""" def __init__(self): self.tags = {} @@ -21,7 +22,6 @@ def visit_Group(self, node, *args, **kwargs): def visit__Shape(self, node, *args, **kwargs): self._sort_by_tag(node) - ## private ## def _sort_by_tag(self, shape): @@ -30,4 +30,3 @@ def _sort_by_tag(self, shape): self.tags[tag].append(shape) else: self.tags[tag] = [shape] - diff --git a/chiplotle/geometry/core/test/test_coordinate_add.py b/chiplotle/geometry/core/test/test_coordinate_add.py index 384a23e..143ce5a 100644 --- a/chiplotle/geometry/core/test/test_coordinate_add.py +++ b/chiplotle/geometry/core/test/test_coordinate_add.py @@ -2,12 +2,14 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from py.test import raises -def test_coordinate__add__01( ): - '''Two Coordinates can be added.''' + +def test_coordinate__add__01(): + """Two Coordinates can be added.""" a = Coordinate(1, 2) b = Coordinate(3, 4) t = a + b @@ -17,44 +19,44 @@ def test_coordinate__add__01( ): assert t == Coordinate(4, 6) -def test_coordinate__add__02( ): - '''A Coordinate and an int scalar cannot be added.''' +def test_coordinate__add__02(): + """A Coordinate and an int scalar cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, 't = a + 4') + assert raises(TypeError, "t = a + 4") -def test_coordinate__radd__02( ): - '''An int scalar and a Coordinate cannot be added.''' +def test_coordinate__radd__02(): + """An int scalar and a Coordinate cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, 't = 4 + a') + assert raises(TypeError, "t = 4 + a") -def test_coordinate__add__03( ): - '''A Coordinate and a float scalar cannot be added.''' +def test_coordinate__add__03(): + """A Coordinate and a float scalar cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, 't = a + 4.2') + assert raises(TypeError, "t = a + 4.2") -def test_coordinate__radd__03( ): - '''A float scalar and a Coordinate can be added.''' +def test_coordinate__radd__03(): + """A float scalar and a Coordinate can be added.""" a = Coordinate(1, 2) - assert raises(TypeError, 't = 4.2 + a') + assert raises(TypeError, "t = 4.2 + a") -def test_coordinate__add__04( ): - '''A Coordinate and a tuple pair cannot be added.''' +def test_coordinate__add__04(): + """A Coordinate and a tuple pair cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, 'a + (3, 4)') + assert raises(TypeError, "a + (3, 4)") -def test_coordinate__radd__04( ): - '''A tuple pair and a Coordinate cannot be added.''' +def test_coordinate__radd__04(): + """A tuple pair and a Coordinate cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, '(3, 4) + a') + assert raises(TypeError, "(3, 4) + a") -def test_coordinate__add__05( ): - '''A Coordinate and a CoordinateArray can be added.''' +def test_coordinate__add__05(): + """A Coordinate and a CoordinateArray can be added.""" a = Coordinate(1, 2) b = CoordinateArray([(3, 4), (5, 6)]) t = a + b @@ -63,8 +65,8 @@ def test_coordinate__add__05( ): assert t[1] == Coordinate(6, 8) -def test_coordinate__radd__05( ): - '''A CoordinateArray and a Coordinate can be added.''' +def test_coordinate__radd__05(): + """A CoordinateArray and a Coordinate can be added.""" a = Coordinate(1, 2) b = CoordinateArray([(3, 4), (5, 6)]) t = b + a @@ -73,16 +75,15 @@ def test_coordinate__radd__05( ): assert t[1] == Coordinate(6, 8) -def test_coordinate__add__06( ): - '''A 2D Coordinate and a triple cannot be added.''' +def test_coordinate__add__06(): + """A 2D Coordinate and a triple cannot be added.""" a = Coordinate(1, 2) b = (3, 4, 5) - assert raises(TypeError, 'a + b') + assert raises(TypeError, "a + b") + -def test_coordinate__radd__06( ): - '''A triple and a 2D Coordinate cannot be added.''' +def test_coordinate__radd__06(): + """A triple and a 2D Coordinate cannot be added.""" a = Coordinate(1, 2) b = (3, 4, 5) - assert raises(TypeError, 'b + a') - - + assert raises(TypeError, "b + a") diff --git a/chiplotle/geometry/core/test/test_coordinate_init.py b/chiplotle/geometry/core/test/test_coordinate_init.py index ac9ea40..9187aaa 100644 --- a/chiplotle/geometry/core/test/test_coordinate_init.py +++ b/chiplotle/geometry/core/test/test_coordinate_init.py @@ -3,76 +3,81 @@ from __future__ import absolute_import from builtins import round from future import standard_library + standard_library.install_aliases() from chiplotle import * from py.test import raises ## __init__ ## -def test_coordinate__init__01( ): - '''Coordinate can be initialized with two values.''' + +def test_coordinate__init__01(): + """Coordinate can be initialized with two values.""" t = Coordinate(1, 2) assert t == Coordinate(1, 2) assert t.x == 1 assert t.y == 2 -def test_coordinate__init__02( ): - '''Coordinate cannot be initialized with a duple.''' - assert raises(TypeError, 'Coordinate((1, 2))') +def test_coordinate__init__02(): + """Coordinate cannot be initialized with a duple.""" + assert raises(TypeError, "Coordinate((1, 2))") -def test_coordinate__init__03( ): - '''Coordinate cannot be initialized with a Coordinate.''' +def test_coordinate__init__03(): + """Coordinate cannot be initialized with a Coordinate.""" ##In this case, the constructor returns the existing coordinate.''' a = Coordinate(1, 2) - assert raises(TypeError, 't = Coordinate(a)') + assert raises(TypeError, "t = Coordinate(a)") -def test_coordinate__init__04( ): - '''Two Coordinates have different ids.''' +def test_coordinate__init__04(): + """Two Coordinates have different ids.""" a = Coordinate(1, 2) b = Coordinate(1, 2) assert a is not b -def test_coordinate__init__05( ): - '''Coordinate can be initialized with a single number.''' +def test_coordinate__init__05(): + """Coordinate can be initialized with a single number.""" a = Coordinate(1) assert a._coords == [1] -def test_coordinate__init__06( ): - '''Coordinate cannot be initialized with a triple.''' - assert raises(TypeError, 't = Coordinate((1, 2, 3))') + +def test_coordinate__init__06(): + """Coordinate cannot be initialized with a triple.""" + assert raises(TypeError, "t = Coordinate((1, 2, 3))") -def test_coordinate__init__07( ): - '''Coordinate cannot be initialized with a Path.''' - assert raises(TypeError, 't = Coordinate(Path([1,2]))') +def test_coordinate__init__07(): + """Coordinate cannot be initialized with a Path.""" + assert raises(TypeError, "t = Coordinate(Path([1,2]))") ## attribute assignment ## -def test_coordinate_attribute_assignment_01( ): - '''Coordinates are immutable. - Attributes cannot be set (rebound).''' + +def test_coordinate_attribute_assignment_01(): + """Coordinates are immutable. + Attributes cannot be set (rebound).""" t = Coordinate(1, 2) - assert raises(AttributeError, 't.xy = 2') - assert raises(AttributeError, 't.foo = 3') - assert raises(TypeError, 't[0] = 2') + assert raises(AttributeError, "t.xy = 2") + assert raises(AttributeError, "t.foo = 3") + assert raises(TypeError, "t[0] = 2") ## __eq__ ## -def test_coordinate__eq__01( ): - '''Coordinate equates with another Coordinate.''' + +def test_coordinate__eq__01(): + """Coordinate equates with another Coordinate.""" t = Coordinate(1, 2) assert t == Coordinate(1, 2) assert Coordinate(1, 2) == t -def test_coordinate__eq__02( ): - '''Coordinate does not equate with a list or tuple.''' +def test_coordinate__eq__02(): + """Coordinate does not equate with a list or tuple.""" t = Coordinate(1, 2) assert not (t == (1, 2)) assert not ((1, 2) == t) @@ -80,136 +85,146 @@ def test_coordinate__eq__02( ): assert not ([1, 2] == t) -def test_coordinate__eq__03( ): - '''Coordinate __eq__ works with None.''' +def test_coordinate__eq__03(): + """Coordinate __eq__ works with None.""" t = Coordinate(1, 2) assert not (t == None) ## __ne__ ## -def test_coordinate__ne__01( ): - '''Coordinate non-equates with another Coordinate, a tuple, - or a list.''' + +def test_coordinate__ne__01(): + """Coordinate non-equates with another Coordinate, a tuple, + or a list.""" t = Coordinate(1, 2) assert t != Coordinate(1, 3) assert t != (1, 3) assert t != [1, 3] -def test_coordinate__ne__02( ): - '''Coordinate non-equates with int, float.''' +def test_coordinate__ne__02(): + """Coordinate non-equates with int, float.""" t = Coordinate(1, 2) assert t != 4.5 assert t != 2 assert t != None - ## div ## -def test_coordinate__div__01( ): - '''True division works without __future__.division imported.''' + +def test_coordinate__div__01(): + """True division works without __future__.division imported.""" a = Coordinate(1, 2) t = a / 2 assert isinstance(t, Coordinate) assert t == Coordinate(.5, 1) -def test_coordinate__div__02( ): - '''Denominator 0 raises ZeroDivisionError.''' + +def test_coordinate__div__02(): + """Denominator 0 raises ZeroDivisionError.""" a = Coordinate(1, 2) - assert raises(ZeroDivisionError, 't = a / 0') + assert raises(ZeroDivisionError, "t = a / 0") -def test_coordinate__div__03( ): - '''A Coordinate cannot be divided by a Coordinate.''' +def test_coordinate__div__03(): + """A Coordinate cannot be divided by a Coordinate.""" a = Coordinate(1, 2) b = Coordinate(2, 4) - assert raises(TypeError, 't = a / b') + assert raises(TypeError, "t = a / b") -def test_coordinate__div__04( ): - '''A Coordinate cannot be divided by a duple.''' +def test_coordinate__div__04(): + """A Coordinate cannot be divided by a duple.""" a = Coordinate(1, 2) b = (2, 4) - assert raises(TypeError, 'a / b') + assert raises(TypeError, "a / b") -def test_coordinate__div__05( ): - '''Division raises an Error on wrong type.''' +def test_coordinate__div__05(): + """Division raises an Error on wrong type.""" a = Coordinate(1, 2) - assert raises(TypeError, 'a / (1, 2, 3)') + assert raises(TypeError, "a / (1, 2, 3)") -def test_coordinate__floordiv__01( ): - '''Floor division works with ints.''' +def test_coordinate__floordiv__01(): + """Floor division works with ints.""" a = Coordinate(1, 2) t = a // 2 assert isinstance(t, Coordinate) assert t == Coordinate(0, 1) -def test_coordinate__floordiv__02( ): - '''Floor division does not work with two Coordinates.''' +def test_coordinate__floordiv__02(): + """Floor division does not work with two Coordinates.""" a = Coordinate(1, 2) b = Coordinate(2, -4) - assert raises(TypeError, 't = a // b') + assert raises(TypeError, "t = a // b") -def test_coordinate__floordiv__03( ): - '''Denominator 0 raises ZeroDivisionError.''' +def test_coordinate__floordiv__03(): + """Denominator 0 raises ZeroDivisionError.""" a = Coordinate(1, 2) - assert raises(ZeroDivisionError, 't = a // 0') + assert raises(ZeroDivisionError, "t = a // 0") -def test_coordinate__floordiv__04( ): - '''Floor Division raises an OperandError on wrong type.''' +def test_coordinate__floordiv__04(): + """Floor Division raises an OperandError on wrong type.""" a = Coordinate(1, 2) - assert raises(TypeError, 'a // (1, 2, 3)') + assert raises(TypeError, "a // (1, 2, 3)") ## __hash__ ## -def test_coordinate__hash__01( ): + +def test_coordinate__hash__01(): t = set([Coordinate(1, 2), Coordinate(1, 2)]) assert len(t) == 1 ## __invert__ ## -def test_coordinate__invert__01( ): + +def test_coordinate__invert__01(): t = Coordinate(1, 2) assert ~t == Coordinate(-2, 1) t = Coordinate(0, 0) assert ~t == Coordinate(0, 0) - ## __getitem__ ## -def test_coordinate__getitem__01( ): + +def test_coordinate__getitem__01(): t = Coordinate(1, 2) assert t[0] == 1 assert t[1] == 2 - assert raises(IndexError, 't[3]') + assert raises(IndexError, "t[3]") + ## __len__ ## -def test_coordinate__len__01( ): + +def test_coordinate__len__01(): t = Coordinate(1, 2) assert len(t) == 2 + ## __iter__ ## -def test_coordinate__iter__01( ): + +def test_coordinate__iter__01(): t = Coordinate(1, 2) t = list(t) assert isinstance(t, list) assert t == [1, 2] + ## __abs__ ## -def test_coordinate__abs__01( ): + +def test_coordinate__abs__01(): t = Coordinate(1, 2) assert abs(t) == Coordinate(1, 2) t = Coordinate(-1, 2) @@ -220,7 +235,8 @@ def test_coordinate__abs__01( ): ## __neg__ ## -def test_coordinate__neg__01( ): + +def test_coordinate__neg__01(): t = Coordinate(1, 2) assert -t == Coordinate(-1, -2) t = Coordinate(-1, 2) @@ -232,7 +248,8 @@ def test_coordinate__neg__01( ): ## polar ## import math -def test_coordinate_polar_01( ): + +def test_coordinate_polar_01(): t = Coordinate(1, 0) assert isinstance(t.polar, tuple) assert len(t.polar) == 2 @@ -240,9 +257,7 @@ def test_coordinate_polar_01( ): assert t.polar[1] == 0 -def test_coordinate_polar_02( ): +def test_coordinate_polar_02(): t = Coordinate(0, 1) assert t.polar[0] == 1 assert round(t.polar[1], 2) == round(math.pi / 2., 2) - - diff --git a/chiplotle/geometry/core/test/test_coordinate_mul.py b/chiplotle/geometry/core/test/test_coordinate_mul.py index b30f897..a56e3f4 100644 --- a/chiplotle/geometry/core/test/test_coordinate_mul.py +++ b/chiplotle/geometry/core/test/test_coordinate_mul.py @@ -2,12 +2,14 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from py.test import raises -def test_coordinate__mul__01( ): - '''A Coordinate can be multiplied with a scalar.''' + +def test_coordinate__mul__01(): + """A Coordinate can be multiplied with a scalar.""" a = Coordinate(1, 2) b = 2.5 t = a * b @@ -16,18 +18,15 @@ def test_coordinate__mul__01( ): assert t == Coordinate(2.5, 5) -def test_coordinate__mul__02( ): - '''A Coordinate cannot be multiplied with a pair.''' +def test_coordinate__mul__02(): + """A Coordinate cannot be multiplied with a pair.""" a = Coordinate(2, 3) - assert raises(TypeError, 'a * (2, 3)') + assert raises(TypeError, "a * (2, 3)") -def test_coordinate__mul__03( ): - '''A Coordinate can be multiplied with another Coordinate.''' +def test_coordinate__mul__03(): + """A Coordinate can be multiplied with another Coordinate.""" a = Coordinate(2, 3) t = a * Coordinate(2, 3) assert isinstance(t, Coordinate) assert t == Coordinate(4, 9) - - - diff --git a/chiplotle/geometry/core/test/test_coordinate_sub.py b/chiplotle/geometry/core/test/test_coordinate_sub.py index a4915dc..8c0b115 100644 --- a/chiplotle/geometry/core/test/test_coordinate_sub.py +++ b/chiplotle/geometry/core/test/test_coordinate_sub.py @@ -2,12 +2,14 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from py.test import raises -def test_coordinate__sub__01( ): - '''Coordinate pair can substract with other coordinate pairs.''' + +def test_coordinate__sub__01(): + """Coordinate pair can substract with other coordinate pairs.""" a = Coordinate(1, 2) b = Coordinate(0.5, 0.5) t = a - b @@ -15,36 +17,37 @@ def test_coordinate__sub__01( ): assert t == Coordinate(0.5, 1.5) -def test_coordinate__sub__02( ): - '''Coordinate pair cannot substract a tuple.''' +def test_coordinate__sub__02(): + """Coordinate pair cannot substract a tuple.""" a = Coordinate(1, 2) - assert raises(TypeError, 'a - (0.5, 0.5)') + assert raises(TypeError, "a - (0.5, 0.5)") -def test_coordinate__rsub__02( ): - '''A tuple cannot substract a Coordinate.''' +def test_coordinate__rsub__02(): + """A tuple cannot substract a Coordinate.""" a = Coordinate(1, 2) - assert raises(TypeError, '(0.5, 0.5) - a') + assert raises(TypeError, "(0.5, 0.5) - a") -def test_coordinate__sub__03( ): - '''An int cannot be substracted from a Coordinate.''' +def test_coordinate__sub__03(): + """An int cannot be substracted from a Coordinate.""" a = Coordinate(1, 2) - assert raises(TypeError, 'a - 1') + assert raises(TypeError, "a - 1") -def test_coordinate__rsub__03( ): - '''A Coordinate cannot be substracted from an int.''' +def test_coordinate__rsub__03(): + """A Coordinate cannot be substracted from an int.""" a = Coordinate(1, 2) - assert raises(TypeError, '1 - a') + assert raises(TypeError, "1 - a") -def test_coordinate__sub__04( ): - '''An float cannot be substracted from a Coordinate.''' +def test_coordinate__sub__04(): + """An float cannot be substracted from a Coordinate.""" a = Coordinate(1, 2) - assert raises(TypeError, 't = a - 1.5') + assert raises(TypeError, "t = a - 1.5") + -def test_coordinate__rsub__04( ): - '''A Coordinate cannot be substracted from a float.''' +def test_coordinate__rsub__04(): + """A Coordinate cannot be substracted from a float.""" a = Coordinate(1, 2) - assert raises(TypeError, 't = 1.5 - a') + assert raises(TypeError, "t = 1.5 - a") diff --git a/chiplotle/geometry/core/test/test_coordinatearray_add.py b/chiplotle/geometry/core/test/test_coordinatearray_add.py index 6830bef..4531d36 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_add.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_add.py @@ -2,13 +2,14 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from py.test import raises -def test_coordinatearray__add__01( ): - '''Two CoordinateArrays of the same size can be added.''' +def test_coordinatearray__add__01(): + """Two CoordinateArrays of the same size can be added.""" a = CoordinateArray([(1, 2), (3, 4)]) b = CoordinateArray([(1, 1), (2, 2)]) t = a + b @@ -18,39 +19,39 @@ def test_coordinatearray__add__01( ): assert t == CoordinateArray([(2, 3), (5, 6)]) -def test_coordinatearray__add__02( ): - '''Two CoordinateArrays of different length cannot be added.''' +def test_coordinatearray__add__02(): + """Two CoordinateArrays of different length cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) b = CoordinateArray([(1, 1), (2, 2), (3, 3)]) - assert raises(ValueError, 't = a + b') + assert raises(ValueError, "t = a + b") -def test_coordinatearray__add__03( ): - '''A CoordinateArray and an int cannot be added.''' +def test_coordinatearray__add__03(): + """A CoordinateArray and an int cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) - assert raises(TypeError, 't = a + 2') + assert raises(TypeError, "t = a + 2") -def test_coordinatearray__radd__04( ): - '''An int and a CoordinateArray cannot be added.''' +def test_coordinatearray__radd__04(): + """An int and a CoordinateArray cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) - assert raises(TypeError, 't = 2 + a') + assert raises(TypeError, "t = 2 + a") -def test_coordinatearray__add__05( ): - '''A CoordinateArray and a float cannot be added.''' +def test_coordinatearray__add__05(): + """A CoordinateArray and a float cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) - assert raises(TypeError, 't = a + 2.3') + assert raises(TypeError, "t = a + 2.3") -def test_coordinatearray__add__06( ): - '''A float and a CoordinateArray cannot be added.''' +def test_coordinatearray__add__06(): + """A float and a CoordinateArray cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) - assert raises(TypeError, 't = 2.3 + a') + assert raises(TypeError, "t = 2.3 + a") -def test_coordinatearray__add__07( ): - '''A CoordinateArray and a Coordinate can be added.''' +def test_coordinatearray__add__07(): + """A CoordinateArray and a Coordinate can be added.""" a = CoordinateArray([(1, 2), (3, 4)]) t = a + Coordinate(2, 3) assert isinstance(t, CoordinateArray) @@ -58,8 +59,8 @@ def test_coordinatearray__add__07( ): assert t == CoordinateArray([(3, 5), (5, 7)]) -def test_coordinatearray__radd__08( ): - '''A Coordinate and a CoordinateArray can be added.''' +def test_coordinatearray__radd__08(): + """A Coordinate and a CoordinateArray can be added.""" a = CoordinateArray([(1, 2), (3, 4)]) t = Coordinate(2, 3) + a assert isinstance(t, CoordinateArray) diff --git a/chiplotle/geometry/core/test/test_coordinatearray_append.py b/chiplotle/geometry/core/test/test_coordinatearray_append.py index 7bac36e..50328f0 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_append.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_append.py @@ -2,21 +2,21 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from py.test import raises -def test_coordinatearray_append_01( ): - '''CoordinateArray cannot be appended an (x, y) pair.''' - t = CoordinateArray( ) - assert raises(TypeError, 't.append((0, 0))') + +def test_coordinatearray_append_01(): + """CoordinateArray cannot be appended an (x, y) pair.""" + t = CoordinateArray() + assert raises(TypeError, "t.append((0, 0))") -def test_coordinatearray_append_02( ): - '''CoordinateArray can be appended an Coordinate.''' - t = CoordinateArray( ) +def test_coordinatearray_append_02(): + """CoordinateArray can be appended an Coordinate.""" + t = CoordinateArray() t.append(Coordinate(0, 0)) assert len(t) == 1 assert isinstance(t[0], Coordinate) - - diff --git a/chiplotle/geometry/core/test/test_coordinatearray_extend.py b/chiplotle/geometry/core/test/test_coordinatearray_extend.py index 89602f3..4b3d21e 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_extend.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_extend.py @@ -2,26 +2,28 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from py.test import raises -def test_coordinatearray_extend_01( ): - '''CoordinateArray cannot be extended with a list of (x, y) pairs.''' - t = CoordinateArray( ) - assert raises(TypeError, 't.extend([(0, 0), (1, 2)])') + +def test_coordinatearray_extend_01(): + """CoordinateArray cannot be extended with a list of (x, y) pairs.""" + t = CoordinateArray() + assert raises(TypeError, "t.extend([(0, 0), (1, 2)])") -def test_coordinatearray_extend_02( ): - '''CoordinateArray can be extended with a list of Coordinate.''' - t = CoordinateArray( ) +def test_coordinatearray_extend_02(): + """CoordinateArray can be extended with a list of Coordinate.""" + t = CoordinateArray() t.extend([Coordinate(0, 0), Coordinate(3, 2)]) assert len(t) == 2 assert isinstance(t[0], Coordinate) assert isinstance(t[1], Coordinate) -def test_coordinatearray_extend_03( ): - '''Mixtures are not allowed.''' - t = CoordinateArray( ) - assert raises(TypeError, 't.extend([Coordinate(0, 0), (3, 2)])') +def test_coordinatearray_extend_03(): + """Mixtures are not allowed.""" + t = CoordinateArray() + assert raises(TypeError, "t.extend([Coordinate(0, 0), (3, 2)])") diff --git a/chiplotle/geometry/core/test/test_coordinatearray_init.py b/chiplotle/geometry/core/test/test_coordinatearray_init.py index 3176a31..ea4044f 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_init.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_init.py @@ -2,13 +2,15 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from py.test import raises -def test_coordinatearray__init__01( ): - '''CoordinateArray can be empty.''' - t = CoordinateArray( ) + +def test_coordinatearray__init__01(): + """CoordinateArray can be empty.""" + t = CoordinateArray() assert isinstance(t.coords, list) assert isinstance(t.x, tuple) assert isinstance(t.y, tuple) @@ -16,8 +18,8 @@ def test_coordinatearray__init__01( ): assert isinstance(e, Coordinate) -def test_coordinatearray__init__03( ): - '''CoordinateArray can take a list of tuple pairs.''' +def test_coordinatearray__init__03(): + """CoordinateArray can take a list of tuple pairs.""" t = CoordinateArray([(1, 2), (3, 4), (5, 6)]) assert t[:] == [Coordinate(1, 2), Coordinate(3, 4), Coordinate(5, 6)] for e in t: @@ -26,8 +28,9 @@ def test_coordinatearray__init__03( ): ## iadd ## -def test_coordinatearray__iadd__01( ): - '''In place addition with another CoordinateArray works.''' + +def test_coordinatearray__iadd__01(): + """In place addition with another CoordinateArray works.""" t = CoordinateArray([(1, 2), (3, 4)]) b = CoordinateArray([(1, 1), (1, 1)]) tid = id(t) @@ -38,17 +41,17 @@ def test_coordinatearray__iadd__01( ): assert t[:] == [Coordinate(2, 3), Coordinate(4, 5)] -def test_coordinatearray__iadd__02( ): - '''In place addition with a scalar raises.''' +def test_coordinatearray__iadd__02(): + """In place addition with a scalar raises.""" t = CoordinateArray([(1, 2), (3, 4)]) tid = id(t) b = 1 - assert raises(TypeError, 't += b') + assert raises(TypeError, "t += b") ## div ## -#def test_coordinatearray__div__01( ): +# def test_coordinatearray__div__01( ): # '''Two CoordinateArrays can be divided.''' # a = CoordinateArray([(1, 2), (3, 4)]) # b = CoordinateArray([(2., 2), (2, 2)]) @@ -59,8 +62,8 @@ def test_coordinatearray__iadd__02( ): # assert t.xy == [(.5, 1), (3/2., 2)] -def test_coordinatearray__div__02( ): - '''A CoordinateArray can be divided by a scalar.''' +def test_coordinatearray__div__02(): + """A CoordinateArray can be divided by a scalar.""" a = CoordinateArray([(1., 2), (4, 8)]) b = 2 @@ -74,8 +77,9 @@ def test_coordinatearray__div__02( ): ## itruediv ## -def test_coordinatearray__idiv__02( ): - '''In place division with another CoordinateArray works.''' + +def test_coordinatearray__idiv__02(): + """In place division with another CoordinateArray works.""" t = CoordinateArray([(1., 2), (4, 8)]) tid = id(t) b = 2 @@ -87,8 +91,9 @@ def test_coordinatearray__idiv__02( ): ## eq / ne ## -def test_coordinatearray__eq__01( ): - '''Equality between two CoordinateArrays works.''' + +def test_coordinatearray__eq__01(): + """Equality between two CoordinateArrays works.""" a = CoordinateArray([(1, 2), (4, 8)]) b = CoordinateArray([(1, 2), (4, 8)]) c = CoordinateArray([(1, 3), (2, 2)]) @@ -96,8 +101,8 @@ def test_coordinatearray__eq__01( ): assert a != c -def test_coordinatearray__eq__02( ): - '''Equality between one CoordinateArray and a list is always false.''' +def test_coordinatearray__eq__02(): + """Equality between one CoordinateArray and a list is always false.""" a = CoordinateArray([(1, 2), (4, 8)]) b = [(1, 2), (4, 8)] c = [(1, 3), (2, 2)] @@ -105,8 +110,8 @@ def test_coordinatearray__eq__02( ): assert a != c -def test_coordinatearray__eq__03( ): - '''Equality between a list and a CoordinateArray is always false.''' +def test_coordinatearray__eq__03(): + """Equality between a list and a CoordinateArray is always false.""" a = CoordinateArray([(1, 2), (4, 8)]) b = [(1, 2), (4, 8)] c = [(1, 3), (2, 2)] @@ -116,17 +121,20 @@ def test_coordinatearray__eq__03( ): ## __invert__ ## -def test_coordinatearray__invert__01( ): + +def test_coordinatearray__invert__01(): t = CoordinateArray([(1, 2), (3, 4)]) assert ~t == CoordinateArray([(-2, 1), (-4, 3)]) ## __neg__ ## -def test_coordinatearray__neg__01( ): + +def test_coordinatearray__neg__01(): t = CoordinateArray([(1, 2), (-3, 4)]) assert -t == CoordinateArray([(-1, -2), (3, -4)]) + ## TODO: pending ## sub ## ## mul ## diff --git a/chiplotle/geometry/core/test/test_coordinatearray_properties.py b/chiplotle/geometry/core/test/test_coordinatearray_properties.py index ef73977..d837922 100644 --- a/chiplotle/geometry/core/test/test_coordinatearray_properties.py +++ b/chiplotle/geometry/core/test/test_coordinatearray_properties.py @@ -2,14 +2,17 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * + def ca_square(wh): coords = [(0, 0), (wh, 0), (wh, wh), (0, wh), (0, 0)] coords = [Coordinate(*c) for c in coords] return CoordinateArray(coords) + def test_coordinatearray_properties_center_01(): wh = 100 t = ca_square(wh) @@ -28,12 +31,12 @@ def test_coordinatearray_properties_minmax_01(): assert t.minmax == (Coordinate(0, 0), Coordinate(wh, wh)) -def test_coordinatearray_difference_01( ): +def test_coordinatearray_difference_01(): t = CoordinateArray([(1, 2), (3, 4), (4, 4)]) assert t.difference == CoordinateArray([(2, 2), (1, 0)]) assert isinstance(t, CoordinateArray) -def test_coordinatearray_cumsum_01( ): +def test_coordinatearray_cumsum_01(): t = CoordinateArray([(1, 1), (1, 1), (1, 1)]) assert t.cumsum == CoordinateArray([(0, 0), (1, 1), (2, 2), (3, 3)]) diff --git a/chiplotle/geometry/core/test/test_layersvisitor.py b/chiplotle/geometry/core/test/test_layersvisitor.py index 6344cbe..daf0135 100644 --- a/chiplotle/geometry/core/test/test_layersvisitor.py +++ b/chiplotle/geometry/core/test/test_layersvisitor.py @@ -3,21 +3,24 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.geometry.core.layersvisitor import LayersVisitor from chiplotle.geometry.core.layer import Layer + def test_layervisitor_01(): - '''Shapes without layer are set to layer None, the default.''' + """Shapes without layer are set to layer None, the default.""" r = rectangle(1000, 1000) v = LayersVisitor() v.visit(r) assert list(v.layers.keys()) == [None] assert v.layers[None] == [r] + def test_layersvisitor_02(): - '''One paths with layer gorup.''' + """One paths with layer gorup.""" r1 = rectangle(1000, 1000) l = Layer([r1], 1) v = LayersVisitor() @@ -25,8 +28,9 @@ def test_layersvisitor_02(): assert list(v.layers.keys()) == [1] assert v.layers[1] == [r1] + def test_layersvisitor_03(): - '''Nested Layers work as expected.''' + """Nested Layers work as expected.""" r1 = rectangle(1000, 1000) r2 = rectangle(500, 500) t3 = isosceles(500, 200) @@ -43,6 +47,7 @@ def test_layersvisitor_03(): assert v.layers[2] == [r2] assert v.layers[3] == [t3] + # r1 r2 t3 # . . . # l1 . . @@ -51,8 +56,9 @@ def test_layersvisitor_03(): # . . # l3 + def test_layersvisitor_04(): - '''Nested Layers and Groups work as expected.''' + """Nested Layers and Groups work as expected.""" r1 = rectangle(1000, 1000) r2 = rectangle(500, 500) t3 = isosceles(500, 200) @@ -68,6 +74,7 @@ def test_layersvisitor_04(): assert v.layers[1] == [r1] assert v.layers[3] == [t3, r2] + # r1 t3 r3 # . . . # l1 . . @@ -76,28 +83,30 @@ def test_layersvisitor_04(): # . . # l3 + def test_layervisitor_05(): - '''Multiple nestings work as expected.''' + """Multiple nestings work as expected.""" c1, c2, c3 = [circle(1000 * i) for i in range(1, 4)] r = rectangle(1000, 1000) t = isosceles(1000, 2000) - l_leaf = Layer([c1], 'leaf') + l_leaf = Layer([c1], "leaf") g1 = Group([l_leaf, c2, c3]) - l_bottom = Layer([g1], 'bottom') + l_bottom = Layer([g1], "bottom") - l_med = Layer([l_bottom, r], 'med') + l_med = Layer([l_bottom, r], "med") - l_top = Layer([l_med, t], 'top') + l_top = Layer([l_med, t], "top") v = LayersVisitor() v.visit(l_top) - assert sorted(v.layers.keys()) == ['bottom', 'leaf', 'med', 'top'] - assert v.layers['top'] == [t] - assert v.layers['med'] == [r] - assert v.layers['bottom'] == [c2, c3] - assert v.layers['leaf'] == [c1] + assert sorted(v.layers.keys()) == ["bottom", "leaf", "med", "top"] + assert v.layers["top"] == [t] + assert v.layers["med"] == [r] + assert v.layers["bottom"] == [c2, c3] + assert v.layers["leaf"] == [c1] + # c1 c2 c3 r t # . . . . . @@ -114,9 +123,9 @@ def test_layervisitor_05(): ## DEPRECATED ## ############################################################ -#from chiplotle.geometry.core.layersvisitor import LayersVisitor +# from chiplotle.geometry.core.layersvisitor import LayersVisitor # -#def test_layersvisitor_01(): +# def test_layersvisitor_01(): # '''Simple paths with set layer.''' # r1 = rectangle(1000, 1000) # r1.layer = 1 @@ -126,7 +135,7 @@ def test_layervisitor_05(): # assert v.layers[1] == [r1] # # -#def test_layervisitor_01b(): +# def test_layervisitor_01b(): # '''Shapes without layer are set to layer None, the default.''' # r = rectangle(1000, 1000) # v = LayersVisitor() @@ -135,7 +144,7 @@ def test_layervisitor_05(): # assert v.layers.keys() == [None] # # -#def test_layersvisitor_02(): +# def test_layersvisitor_02(): # '''A group defines the layer of it's undelying Shapes, # if the layer of these underlying shapes is set to None. # Shapes with their layer set override the Group layer.''' @@ -156,7 +165,7 @@ def test_layervisitor_05(): # # # -#def test_layersvisitor_03(): +# def test_layersvisitor_03(): # '''Nested Groups work as expected.''' # r1 = rectangle(1000, 1000) # r1.layer = 1 @@ -178,7 +187,7 @@ def test_layervisitor_05(): # assert v.layers[3] == [t] # # -#def test_layervisitor_04(): +# def test_layervisitor_04(): # '''Multiple nestings work as expected.''' # circs = [circle(1000 * i) for i in range(1, 3)] # circs[0].layer = 'leaf' diff --git a/chiplotle/geometry/core/test/test_path_add.py b/chiplotle/geometry/core/test/test_path_add.py index 893b92d..b7970f2 100644 --- a/chiplotle/geometry/core/test/test_path_add.py +++ b/chiplotle/geometry/core/test/test_path_add.py @@ -2,29 +2,31 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.core import errors from py.test import raises -def test_path_add_01( ): - '''A Path and an int cannot be added.''' - assert raises(TypeError, 'Path([(1, 2), (3, 4)]) + 3') + +def test_path_add_01(): + """A Path and an int cannot be added.""" + assert raises(TypeError, "Path([(1, 2), (3, 4)]) + 3") -def test_path_add_02( ): - '''A Path and a float cannot be added.''' - assert raises(TypeError, 'Path([(1, 2), (3, 4)]) + 3.2') +def test_path_add_02(): + """A Path and a float cannot be added.""" + assert raises(TypeError, "Path([(1, 2), (3, 4)]) + 3.2") -def test_path_radd_02( ): - '''A float and a Path cannot be added.''' - assert raises(TypeError, '3.2 + Path([(1, 2), (3, 4)])') +def test_path_radd_02(): + """A float and a Path cannot be added.""" + assert raises(TypeError, "3.2 + Path([(1, 2), (3, 4)])") -def test_path_add_03( ): - '''A Path and a Coordinate can be added.''' +def test_path_add_03(): + """A Path and a Coordinate can be added.""" a = Path([(1, 2), (3, 4)]) t = a + Coordinate(1, 2) assert t is not a @@ -32,8 +34,8 @@ def test_path_add_03( ): assert t == Path([(2, 4), (4, 6)]) -def test_path_radd_03( ): - '''A Coordinate and a Path can be added.''' +def test_path_radd_03(): + """A Coordinate and a Path can be added.""" a = Path([(1, 2), (3, 4)]) t = Coordinate(1, 2) + a assert t is not a @@ -41,36 +43,35 @@ def test_path_radd_03( ): assert t == Path([(2, 4), (4, 6)]) -def test_path_add_04( ): - '''A Path and a duple cannot be added.''' +def test_path_add_04(): + """A Path and a duple cannot be added.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 'a + (1, 2)') + assert raises(TypeError, "a + (1, 2)") -def test_path_radd_04( ): - '''A duple and a Path cannot be added.''' +def test_path_radd_04(): + """A duple and a Path cannot be added.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, '(1, 2) + a') + assert raises(TypeError, "(1, 2) + a") -def test_path_add_05( ): - '''A 2D Path and a triple cannot be added.''' +def test_path_add_05(): + """A 2D Path and a triple cannot be added.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 'a + (1, 2, 3)') + assert raises(TypeError, "a + (1, 2, 3)") -def test_path_add_06( ): - '''A Path and a Path cannot be added.''' +def test_path_add_06(): + """A Path and a Path cannot be added.""" a = Path([(1, 2), (3, 4)]) b = Path([(2, 3)]) - assert raises(TypeError, 'a + b') + assert raises(TypeError, "a + b") ## in place addition __iadd__ ## -def test_path_iadd_01( ): - '''A float and a Path cannot be added.''' - t = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 't += 3.2') - +def test_path_iadd_01(): + """A float and a Path cannot be added.""" + t = Path([(1, 2), (3, 4)]) + assert raises(TypeError, "t += 3.2") diff --git a/chiplotle/geometry/core/test/test_path_mul.py b/chiplotle/geometry/core/test/test_path_mul.py index 27621e3..df98e21 100644 --- a/chiplotle/geometry/core/test/test_path_mul.py +++ b/chiplotle/geometry/core/test/test_path_mul.py @@ -2,13 +2,14 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path from py.test import raises -def test_path_mul_01( ): - '''A Path and a scalar can be multiplied.''' +def test_path_mul_01(): + """A Path and a scalar can be multiplied.""" a = Path([(1, 2), (3, 4)]) t = a * 2 assert isinstance(t, Path) @@ -16,8 +17,8 @@ def test_path_mul_01( ): assert t == Path([(2, 4), (6, 8)]) -def test_path_rmul_01( ): - '''A scalar and a Path can be multiplied.''' +def test_path_rmul_01(): + """A scalar and a Path can be multiplied.""" a = Path([(1, 2), (3, 4)]) t = 2 * a assert isinstance(t, Path) @@ -25,20 +26,19 @@ def test_path_rmul_01( ): assert t == Path([(2, 4), (6, 8)]) -def test_path_mul_02( ): - '''A Path and a duple cannot be multiplied.''' +def test_path_mul_02(): + """A Path and a duple cannot be multiplied.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 'a * (1, 2)') + assert raises(TypeError, "a * (1, 2)") -def test_path_rmul_02( ): - '''A duple and a Path cannot be multiplied.''' +def test_path_rmul_02(): + """A duple and a Path cannot be multiplied.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, '(1, 2) * a') + assert raises(TypeError, "(1, 2) * a") -def test_path_mul_03( ): - '''A Path cannot be multiplied with a triple.''' +def test_path_mul_03(): + """A Path cannot be multiplied with a triple.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 'a * (1, 2, 3)') - + assert raises(TypeError, "a * (1, 2, 3)") diff --git a/chiplotle/geometry/core/test/test_path_sub.py b/chiplotle/geometry/core/test/test_path_sub.py index 9f39566..5302ac0 100644 --- a/chiplotle/geometry/core/test/test_path_sub.py +++ b/chiplotle/geometry/core/test/test_path_sub.py @@ -2,31 +2,33 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate from py.test import raises -def test_path_sub_01( ): - '''A Path cannot substract an int.''' + +def test_path_sub_01(): + """A Path cannot substract an int.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 't = a - 2') + assert raises(TypeError, "t = a - 2") -def test_path_sub_02( ): - '''A Path cannot substract a float.''' +def test_path_sub_02(): + """A Path cannot substract a float.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 't = a - 2.5') + assert raises(TypeError, "t = a - 2.5") -def test_path_rsub_02( ): - '''A float cannot substract a Path.''' +def test_path_rsub_02(): + """A float cannot substract a Path.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 't = 2.5 - a') + assert raises(TypeError, "t = 2.5 - a") -def test_path_sub_03( ): - '''A Path can substract a Coordinate.''' +def test_path_sub_03(): + """A Path can substract a Coordinate.""" a = Path([(1, 2), (3, 4)]) t = a - Coordinate(1, 2) assert t is not a @@ -34,8 +36,8 @@ def test_path_sub_03( ): assert t == Path([(0, 0), (2, 2)]) -def test_path_rsub_03( ): - '''A Coordinate can substract a Path.''' +def test_path_rsub_03(): + """A Coordinate can substract a Path.""" a = Path([(1, 2), (3, 4)]) t = Coordinate(1, 2) - a assert t is not a @@ -43,34 +45,35 @@ def test_path_rsub_03( ): assert t == Path([(0, 0), (-2, -2)]) -def test_path_sub_04( ): - '''A Path cannot substract a duple.''' +def test_path_sub_04(): + """A Path cannot substract a duple.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 'a - (1, 2)') + assert raises(TypeError, "a - (1, 2)") -def test_path_rsub_04( ): - '''A duple cannot substract a Path.''' +def test_path_rsub_04(): + """A duple cannot substract a Path.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, '(1, 2) - a') + assert raises(TypeError, "(1, 2) - a") -def test_path_sub_05( ): - '''A Path cannot substract a triple.''' +def test_path_sub_05(): + """A Path cannot substract a triple.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 'a - (1, 2, 3)') + assert raises(TypeError, "a - (1, 2, 3)") -def test_path_sub_06( ): - '''Two paths cannot be substracted.''' +def test_path_sub_06(): + """Two paths cannot be substracted.""" a = Path([(1, 2), (3, 4)]) b = Path([(2, 3)]) - assert raises(TypeError, 'a - b') + assert raises(TypeError, "a - b") ## in place addition __isub__ ## -def test_path_isub_01( ): - '''A float cannot be substracted from a Path in place.''' + +def test_path_isub_01(): + """A float cannot be substracted from a Path in place.""" t = Path([(1, 2), (3, 4)]) - assert raises(TypeError, 't -= 2.5') + assert raises(TypeError, "t -= 2.5") diff --git a/chiplotle/geometry/core/test/test_shapes_group_add.py b/chiplotle/geometry/core/test/test_shapes_group_add.py index 5680458..c617c62 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_add.py +++ b/chiplotle/geometry/core/test/test_shapes_group_add.py @@ -2,23 +2,25 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path from py.test import raises -'''A Group is offset with the + operator.''' +"""A Group is offset with the + operator.""" + +"""A Group with paths works as expected.""" -'''A Group with paths works as expected.''' -def test_shapes_group_add_01( ): - '''Group + int is not allowed.''' +def test_shapes_group_add_01(): + """Group + int is not allowed.""" a = Group([Path([(1, 2), (3, 4)]), Path([(5, 6), (7, 8)])]) - assert raises(TypeError, 't = a + 2') + assert raises(TypeError, "t = a + 2") -def test_shapes_group_add_02( ): - '''int + Group is not allowed.''' +def test_shapes_group_add_02(): + """int + Group is not allowed.""" a = Group([Path([(1, 2), (3, 4)]), Path([(5, 6), (7, 8)])]) - assert raises(TypeError, 't = 2 + a') + assert raises(TypeError, "t = 2 + a") diff --git a/chiplotle/geometry/core/test/test_shapes_group_init.py b/chiplotle/geometry/core/test/test_shapes_group_init.py index 0f4efa4..82a6a74 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_init.py +++ b/chiplotle/geometry/core/test/test_shapes_group_init.py @@ -2,42 +2,42 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path import py.test -def test_shapes_group__init__01( ): - '''A Group can be empty.''' +def test_shapes_group__init__01(): + """A Group can be empty.""" t = Group([]) assert len(t) == 0 -def test_shapes_group__init__02( ): - '''A Group can take no parameters.''' + +def test_shapes_group__init__02(): + """A Group can take no parameters.""" t = Group() assert len(t) == 0 -def test_shapes_group__init__03( ): - '''A Group can be initialized with a list of Paths.''' +def test_shapes_group__init__03(): + """A Group can be initialized with a list of Paths.""" t = Group([Path([(1, 2), (3, 4)])]) assert len(t) == 1 assert t[0] == Path([(1, 2), (3, 4)]) -def test_shapes_group__init__04( ): - '''A Group can be initialized with another Group.''' - t = Group([Group([ ]), Path([(1, 2), (3, 4)])]) +def test_shapes_group__init__04(): + """A Group can be initialized with another Group.""" + t = Group([Group([]), Path([(1, 2), (3, 4)])]) assert len(t) == 2 - assert t[0] == Group([ ]) + assert t[0] == Group([]) assert t[1] == Path([(1, 2), (3, 4)]) -def test_shapes_group__init__05( ): - '''A Group cannot be initialized with a non-_Shape.''' - assert py.test.raises(TypeError, 'Group([1, 2, 3])') +def test_shapes_group__init__05(): + """A Group cannot be initialized with a non-_Shape.""" + assert py.test.raises(TypeError, "Group([1, 2, 3])") assert py.test.raises(TypeError, 'Group("a")') - assert py.test.raises(TypeError, 'Group(0)') - - + assert py.test.raises(TypeError, "Group(0)") diff --git a/chiplotle/geometry/core/test/test_shapes_group_points.py b/chiplotle/geometry/core/test/test_shapes_group_points.py index 58f1fc0..71ba317 100644 --- a/chiplotle/geometry/core/test/test_shapes_group_points.py +++ b/chiplotle/geometry/core/test/test_shapes_group_points.py @@ -2,28 +2,28 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate -def test_shapes_group_points_01( ): - '''An empty Group has an empty CoordinateArray.''' - t = Group( ) - assert t.points == CoordinateArray([ ]) + +def test_shapes_group_points_01(): + """An empty Group has an empty CoordinateArray.""" + t = Group() + assert t.points == CoordinateArray([]) -def test_shapes_group_points_02( ): - '''A flat Group has a CoordinateArray.''' +def test_shapes_group_points_02(): + """A flat Group has a CoordinateArray.""" t = Group([Path([(1, 2), (3, 4)]), Path([(4, 2), (4, 2)])]) - assert t.points == CoordinateArray([(1, 2), (3, 4), - (4, 2), (4, 2)]) + assert t.points == CoordinateArray([(1, 2), (3, 4), (4, 2), (4, 2)]) -def test_shapes_group_points_03( ): - '''A non-flat Group has a CoordinateArray.''' +def test_shapes_group_points_03(): + """A non-flat Group has a CoordinateArray.""" g = Group([Path([(1, 2), (3, 4)]), Path([(4, 2), (4, 2)])]) t = Group([g, Path([(100, 200)])]) assert t.points == CoordinateArray([(1, 2), (3, 4), (4, 2), (4, 2), (100, 200)]) - diff --git a/chiplotle/geometry/core/test/test_transformlock.py b/chiplotle/geometry/core/test/test_transformlock.py index b393d64..df30c43 100644 --- a/chiplotle/geometry/core/test/test_transformlock.py +++ b/chiplotle/geometry/core/test/test_transformlock.py @@ -2,6 +2,7 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.coordinatearray import CoordinateArray @@ -15,58 +16,66 @@ ## test construction ## + def test_transformlock_01(): - '''A TransformLock can be empty.''' + """A TransformLock can be empty.""" t = TransformLock([], []) assert len(t) == 0 + def test_transformlock_02(): - '''A TransformLock can have no tranformations to lock.''' + """A TransformLock can have no tranformations to lock.""" r = shapes.rectangle(100, 100) t = TransformLock([r], []) assert t.lock_transforms == set() assert t._shapes == [r] + def test_transformlock_03(): - '''A TransformLock takes exactly two arguments.''' - expr = 't = TransformLock([shapes.rectangle(100, 100)])' + """A TransformLock takes exactly two arguments.""" + expr = "t = TransformLock([shapes.rectangle(100, 100)])" assert py.test.raises(TypeError, expr) ## test transforms ## + def test_transformlock_transforms_rotate_01(): - '''Shapes under a TransformLock are not rotated under a rotate transform; - they are just offset to the rotation point.''' + """Shapes under a TransformLock are not rotated under a rotate transform; + they are just offset to the rotation point.""" t = rotation_locked_rectangle_pair() transforms.offset(t, (200, 0)) assert_rotation_preserves_diff(t) assert_rotation_changes_coords(t) + def test_transformlock_transforms_rotate_02(): - '''Locks work within groups.''' + """Locks work within groups.""" t = rotation_locked_rectangle_pair() g = Group([Group([t])]) transforms.offset(g, (200, 0)) assert_rotation_preserves_diff(g) assert_rotation_changes_coords(g) + def test_transformlock_transforms_rotate_03(): - '''Scaling affects rotation-locked shapes.''' + """Scaling affects rotation-locked shapes.""" t = rotation_locked_rectangle_pair() transforms.offset(t, (200, 0)) assert_scaling_affects_rotation_locked_shapes(t) + def test_transformlock_transforms_scale_01(): - '''Shapes under a TrsnformLock are not scaled under a scale transform - they are just offset to the scale point.''' + """Shapes under a TrsnformLock are not scaled under a scale transform + they are just offset to the scale point.""" t = scale_locked_rectangle_pair() transforms.offset(t, (200, 0)) assert_scaling_preserves_diff(t) assert_scaling_changes_coords(t) + def test_transformlock_transforms_scale_02(): - '''Locks work within groups.''' + """Locks work within groups.""" t = scale_locked_rectangle_pair() g = Group([Group([t])]) transforms.scale(g, 2) @@ -76,52 +85,60 @@ def test_transformlock_transforms_scale_02(): ## helpers ## + def rotation_locked_rectangle_pair(): - return _transformlock_rectangle_pair(['rotate']) + return _transformlock_rectangle_pair(["rotate"]) + def scale_locked_rectangle_pair(): - return _transformlock_rectangle_pair(['scale']) + return _transformlock_rectangle_pair(["scale"]) def assert_scaling_preserves_diff(shape): _assert_transform_preserves_diff(shape, transforms.scale, [2]) + def assert_rotation_preserves_diff(shape): _assert_transform_preserves_diff(shape, transforms.rotate, [math.pi / 2]) + def assert_rotation_changes_coords(shape): _assert_transform_changes_coords(shape, transforms.rotate, [math.pi / 2]) + def assert_scaling_changes_coords(shape): _assert_transform_changes_coords(shape, transforms.scale, [2]) + def assert_scaling_affects_rotation_locked_shapes(shape): - points_before = CoordinateArray(shape.points).difference - minmax_before = shape.minmax_coordinates + points_before = CoordinateArray(shape.points).difference + minmax_before = shape.minmax_coordinates transforms.scale(shape, 2) - points_after = CoordinateArray(shape.points).difference - minmax_after = shape.minmax_coordinates + points_after = CoordinateArray(shape.points).difference + minmax_after = shape.minmax_coordinates assert points_before != points_after assert CoordinateArray(minmax_before) * 2 == CoordinateArray(minmax_after) ## private ## + def _assert_transform_preserves_diff(shape, transform, trans_args): points_before = CoordinateArray(shape.points).difference transform(shape, *trans_args) points_after = CoordinateArray(shape.points).difference assert points_before == points_after + def _assert_transform_changes_coords(shape, transform, trans_args): points_before = CoordinateArray(shape.points) transform(shape, *trans_args) points_after = CoordinateArray(shape.points) assert points_before != points_after + def _transformlock_rectangle_pair(trans_locks): r1 = shapes.rectangle(100, 100) r2 = copy.deepcopy(r1) transforms.offset(r2, (200, 0)) return TransformLock([r1, r2], trans_locks) - diff --git a/chiplotle/geometry/core/transformlock.py b/chiplotle/geometry/core/transformlock.py index a167f0f..0faf51c 100644 --- a/chiplotle/geometry/core/transformlock.py +++ b/chiplotle/geometry/core/transformlock.py @@ -3,108 +3,111 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.tools.mathtools.rotate_2d import rotate_coordinate_2d from chiplotle.tools.geometrytools.scale import scale -class TransformLock(Group): - def __init__(self, shapes, lock_transforms): - Group.__init__(self, shapes = shapes) - self.lock_transforms = set(lock_transforms) - self.transform_map = {'scale' : self.scale_to_offset, - 'rotate': self.rotate_to_offset, - } - - def get_transform(self, transform): - fn = transform.__name__ - transform = self.transform_map.get(fn) - if transform is None: - raise ValueError("Don't know transform '%s'." % fn) - return transform - - @staticmethod - def rotate_to_offset(points, angle, pivot): - def offset(points, value): - return points + value - center = points.center - new_coord = rotate_coordinate_2d(center, angle, pivot) - diff = new_coord - center - return offset, [diff] - - @staticmethod - def scale_to_offset(points, factor, pivot): - def offset(points, value): - return points + value - #center = get_center(points) - center = points.center - new_coord = scale(center, factor, pivot) - diff = new_coord - center - return offset, [diff] +class TransformLock(Group): + def __init__(self, shapes, lock_transforms): + Group.__init__(self, shapes=shapes) + self.lock_transforms = set(lock_transforms) + self.transform_map = { + "scale": self.scale_to_offset, + "rotate": self.rotate_to_offset, + } + + def get_transform(self, transform): + fn = transform.__name__ + transform = self.transform_map.get(fn) + if transform is None: + raise ValueError("Don't know transform '%s'." % fn) + return transform + + @staticmethod + def rotate_to_offset(points, angle, pivot): + def offset(points, value): + return points + value + + center = points.center + new_coord = rotate_coordinate_2d(center, angle, pivot) + diff = new_coord - center + return offset, [diff] + + @staticmethod + def scale_to_offset(points, factor, pivot): + def offset(points, value): + return points + value + + # center = get_center(points) + center = points.center + new_coord = scale(center, factor, pivot) + diff = new_coord - center + return offset, [diff] ## ~~~~~~~~~~~~~~~~~~ -if __name__ == '__main__': - from chiplotle.geometry import shapes - from chiplotle.geometry import transforms - from chiplotle import io - from chiplotle.hpgl import formatters - import copy - import math - - def rotation_example(): - r1 = shapes.rectangle(100, 100) - r2 = shapes.rectangle(200, 200) - transforms.offset(r2, (400, 0)) - r3 = shapes.rectangle(300, 300) - transforms.offset(r3, (800, 0)) - - tl = TransformLock([r1, r2], ['rotate']) - start = Group([tl, r3]) - transforms.offset(start, (500, 0)) - - mid = copy.deepcopy(start) - end = copy.deepcopy(start) - - formatters.Pen(3)(start) - formatters.Pen(2)(mid) - formatters.Pen(1)(end) - transforms.rotate(mid, math.pi / 6, (0, 0)) - transforms.rotate(end, math.pi / 3, (0, 0)) - - o = shapes.circle(100) - return Group([start, mid, end, o]) - - - def scale_example(): - s1 = shapes.star_outline(100, 100, 4) - transforms.offset(s1, (300, 0)) - transforms.rotate(s1, -math.pi / 4) - s2 = shapes.star_outline(100, 100, 6) - transforms.offset(s2, (300, 0)) - transforms.rotate(s2, -math.pi / 2) - s3 = shapes.star_outline(100, 100, 9) - transforms.offset(s3, (300, 0)) - transforms.rotate(s3, -math.pi * 3 / 4) - - tl = TransformLock([s1, s2], ['scale']) - start = Group([tl, s3]) - - mid = copy.deepcopy(start) - end = copy.deepcopy(start) - - formatters.Pen(3)(start) - formatters.Pen(2)(mid) - formatters.Pen(1)(end) - transforms.scale(mid, 2) - transforms.scale(end, 3) - - o = shapes.circle(100) - return Group([start, mid, end, o]) - - ## go... - r = rotation_example() - s = scale_example() - - io.view(Group([s, r])) +if __name__ == "__main__": + from chiplotle.geometry import shapes + from chiplotle.geometry import transforms + from chiplotle import io + from chiplotle.hpgl import formatters + import copy + import math + + def rotation_example(): + r1 = shapes.rectangle(100, 100) + r2 = shapes.rectangle(200, 200) + transforms.offset(r2, (400, 0)) + r3 = shapes.rectangle(300, 300) + transforms.offset(r3, (800, 0)) + + tl = TransformLock([r1, r2], ["rotate"]) + start = Group([tl, r3]) + transforms.offset(start, (500, 0)) + + mid = copy.deepcopy(start) + end = copy.deepcopy(start) + + formatters.Pen(3)(start) + formatters.Pen(2)(mid) + formatters.Pen(1)(end) + transforms.rotate(mid, math.pi / 6, (0, 0)) + transforms.rotate(end, math.pi / 3, (0, 0)) + + o = shapes.circle(100) + return Group([start, mid, end, o]) + + def scale_example(): + s1 = shapes.star_outline(100, 100, 4) + transforms.offset(s1, (300, 0)) + transforms.rotate(s1, -math.pi / 4) + s2 = shapes.star_outline(100, 100, 6) + transforms.offset(s2, (300, 0)) + transforms.rotate(s2, -math.pi / 2) + s3 = shapes.star_outline(100, 100, 9) + transforms.offset(s3, (300, 0)) + transforms.rotate(s3, -math.pi * 3 / 4) + + tl = TransformLock([s1, s2], ["scale"]) + start = Group([tl, s3]) + + mid = copy.deepcopy(start) + end = copy.deepcopy(start) + + formatters.Pen(3)(start) + formatters.Pen(2)(mid) + formatters.Pen(1)(end) + transforms.scale(mid, 2) + transforms.scale(end, 3) + + o = shapes.circle(100) + return Group([start, mid, end, o]) + + ## go... + r = rotation_example() + s = scale_example() + + io.view(Group([s, r])) diff --git a/chiplotle/geometry/shapes/__init__.py b/chiplotle/geometry/shapes/__init__.py index 885e9cc..ae11314 100644 --- a/chiplotle/geometry/shapes/__init__.py +++ b/chiplotle/geometry/shapes/__init__.py @@ -3,19 +3,20 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], globals( )) +_package_import(__path__[0], globals()) -#from .arc_circle import arc_circle -#from .arc_ellipse import arc_ellipse -#from .arrow import arrow -#from .bezier_path import bezier_path -#from .catmull_path import catmull_path -#from .circle import circle -#from .cross import cross -#from .donut import donut -#from .ellipse import ellipse -#from .fan import fan -#from .frame import frame +# from .arc_circle import arc_circle +# from .arc_ellipse import arc_ellipse +# from .arrow import arrow +# from .bezier_path import bezier_path +# from .catmull_path import catmull_path +# from .circle import circle +# from .cross import cross +# from .donut import donut +# from .ellipse import ellipse +# from .fan import fan +# from .frame import frame diff --git a/chiplotle/geometry/shapes/annotation.py b/chiplotle/geometry/shapes/annotation.py index 5709666..bcc08af 100644 --- a/chiplotle/geometry/shapes/annotation.py +++ b/chiplotle/geometry/shapes/annotation.py @@ -5,6 +5,7 @@ from builtins import range from builtins import str from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.shapes.circle import circle from chiplotle.geometry.shapes.cross import cross @@ -16,8 +17,9 @@ ## TODO should this be a decorator carried around by the shape? + def annotation(shape): - ''' + """ Returns informative shape annotations. Good for debugging and general info displaying. @@ -29,45 +31,44 @@ def annotation(shape): center centroid - ''' + """ annotation = _Annotation(shape) return annotation.annotation class _Annotation(object): - - def __init__(self, shape, charwidth = 0.05, charheight = 0.1): + def __init__(self, shape, charwidth=0.05, charheight=0.1): self.shape = shape self.charwidth = charwidth self.charheight = charheight - def _annotate_structure(self): - '''Annotate Group / Path structure?''' + """Annotate Group / Path structure?""" pass - def _annotate_properties(self): - cr = ' center: %s' % self.shape.center - cd = 'centroid: %s' % self.shape.centroid + cr = " center: %s" % self.shape.center + cd = "centroid: %s" % self.shape.centroid mn, mx = self.shape.minmax_coordinates - mn = ' min: %s' % mn - mx = ' max: %s' % mx - ws = ' width: %.2f' % self.shape.width - hs = ' height: %.2f' % self.shape.height + mn = " min: %s" % mn + mx = " max: %s" % mx + ws = " width: %.2f" % self.shape.width + hs = " height: %.2f" % self.shape.height - fields = '\n\r'.join([cr, cd, mn, mx, ws, hs, ]) + fields = "\n\r".join([cr, cd, mn, mx, ws, hs]) label = Label(fields, self.charwidth, self.charheight) offset(label, self.shape.bottom_left) return label - def _annotate_center(self): coord = self.shape.center - label = Label('\n\rcenter: ' + str(coord), - self.charwidth, self.charheight, - origin = 'top-center') + label = Label( + "\n\rcenter: " + str(coord), + self.charwidth, + self.charheight, + origin="top-center", + ) c = circle(20) cr = cross(50, 50) mark = Group([c, cr, label]) @@ -78,12 +79,14 @@ def _annotate_center(self): return mark - def _annotate_centroid(self): coord = self.shape.centroid - label = Label('\n\rcentroid: ' + str(coord), - self.charwidth, self.charheight, - origin = 'top-center') + label = Label( + "\n\rcentroid: " + str(coord), + self.charwidth, + self.charheight, + origin="top-center", + ) r = rectangle(20, 20) cr = cross(50, 50) mark = Group([r, cr, label]) @@ -94,22 +97,21 @@ def _annotate_centroid(self): return mark - @property def annotation(self): - result = [ ] - result.append(self._annotate_center( )) - result.append(self._annotate_centroid( )) - result.append(self._annotate_properties( )) + result = [] + result.append(self._annotate_center()) + result.append(self._annotate_centroid()) + result.append(self._annotate_properties()) return Group(result) - ## demo -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * from chiplotle.hpgl.formatters import Pen from random import randint + coords = [(randint(0, 4000), randint(0, 4000)) for i in range(20)] p = bezier_path(coords, 1) r = rectangle(1000, 400) diff --git a/chiplotle/geometry/shapes/arc_circle.py b/chiplotle/geometry/shapes/arc_circle.py index c31e54c..ab617f3 100644 --- a/chiplotle/geometry/shapes/arc_circle.py +++ b/chiplotle/geometry/shapes/arc_circle.py @@ -4,6 +4,7 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.group import Group @@ -11,10 +12,9 @@ import math -def arc_circle(radius, - start_angle, end_angle, - segments = 100, segmentation_mode = '2PI'): - ''' + +def arc_circle(radius, start_angle, end_angle, segments=100, segmentation_mode="2PI"): + """ Constructs an arc from a circle with the given radius, and number of segments. Arc goes from start_angle to end_angle, both of which are in radians. @@ -22,25 +22,23 @@ def arc_circle(radius, - `segmentation_mode` : '2PI' or 'arc'. The first segments the whole circle into the given number of segments, the second segments the arc. - ''' - radius = radius * 2.0 - return arc_ellipse(radius, radius, - start_angle, end_angle, - segments, segmentation_mode) - + """ + radius = radius * 2.0 + return arc_ellipse( + radius, radius, start_angle, end_angle, segments, segmentation_mode + ) ## RUN DEMO CODE -if __name__ == '__main__': - from chiplotle.tools import io - - gr = Group() +if __name__ == "__main__": + from chiplotle.tools import io - for radius in range(100, 1000, 100): - ac = arc_circle(radius, 1.0, math.pi) - assert isinstance(ac, Path) - gr.append(ac) + gr = Group() - io.view(gr, 'png') + for radius in range(100, 1000, 100): + ac = arc_circle(radius, 1.0, math.pi) + assert isinstance(ac, Path) + gr.append(ac) + io.view(gr, "png") diff --git a/chiplotle/geometry/shapes/arc_ellipse.py b/chiplotle/geometry/shapes/arc_ellipse.py index b740a7f..91dad1f 100644 --- a/chiplotle/geometry/shapes/arc_ellipse.py +++ b/chiplotle/geometry/shapes/arc_ellipse.py @@ -4,15 +4,17 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path import math -def arc_ellipse(width, height, - start_angle, end_angle, - segments = 100, segmentation_mode = '2PI'): - ''' + +def arc_ellipse( + width, height, start_angle, end_angle, segments=100, segmentation_mode="2PI" +): + """ Constructs an arc from an ellipse with the given width, height, and number of segments. Arc goes from start_angle to end_angle, both of which are in radians. @@ -20,45 +22,44 @@ def arc_ellipse(width, height, - `segmentation_mode` : '2PI' or 'arc'. The first segments the whole ellipse into the given number of segments, the second segments the arc. - ''' - if start_angle > end_angle: - end_angle += math.pi * 2 + """ + if start_angle > end_angle: + end_angle += math.pi * 2 - def _divide_2pi(): - return (math.pi * 2) / float(segments) - def _divide_arc(): - return (end_angle - start_angle) / float(segments) + def _divide_2pi(): + return (math.pi * 2) / float(segments) - segmentation_map = {'2pi' : _divide_2pi, - 'arc' : _divide_arc} + def _divide_arc(): + return (end_angle - start_angle) / float(segments) - rads_incr = segmentation_map[segmentation_mode.lower()]() - rads = start_angle - arc = [] - while rads < end_angle: - coord = Coordinate(math.cos(rads), math.sin(rads)) - coord = coord * Coordinate(width / 2.0, height / 2.0) - rads += rads_incr - arc.append(coord) - ## NOTE: this is better than using rads <= end_angle since - ## the equality does not always work as expected with floats - ## due to rounding. - last = Coordinate(math.cos(end_angle), math.sin(end_angle)) - last *= Coordinate(width / 2.0, height / 2.0) - arc.append(last) - return Path(arc) + segmentation_map = {"2pi": _divide_2pi, "arc": _divide_arc} + rads_incr = segmentation_map[segmentation_mode.lower()]() + rads = start_angle + arc = [] + while rads < end_angle: + coord = Coordinate(math.cos(rads), math.sin(rads)) + coord = coord * Coordinate(width / 2.0, height / 2.0) + rads += rads_incr + arc.append(coord) + ## NOTE: this is better than using rads <= end_angle since + ## the equality does not always work as expected with floats + ## due to rounding. + last = Coordinate(math.cos(end_angle), math.sin(end_angle)) + last *= Coordinate(width / 2.0, height / 2.0) + arc.append(last) + return Path(arc) -## RUN DEMO CODE -if __name__ == '__main__': - from chiplotle.tools import io - from chiplotle.geometry.core.group import Group +## RUN DEMO CODE - gr = Group() - for radius in range(100, 1000, 10): - ae = arc_ellipse(radius, radius * 2, 0, math.pi/2, 5, 'arc') - gr.append(ae) +if __name__ == "__main__": + from chiplotle.tools import io + from chiplotle.geometry.core.group import Group - io.view(gr) + gr = Group() + for radius in range(100, 1000, 10): + ae = arc_ellipse(radius, radius * 2, 0, math.pi / 2, 5, "arc") + gr.append(ae) + io.view(gr) diff --git a/chiplotle/geometry/shapes/arrow.py b/chiplotle/geometry/shapes/arrow.py index 122d6ba..97acf3f 100644 --- a/chiplotle/geometry/shapes/arrow.py +++ b/chiplotle/geometry/shapes/arrow.py @@ -3,6 +3,7 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.shapes.isosceles import isosceles from chiplotle.geometry.transforms.offset import offset @@ -11,13 +12,14 @@ from chiplotle.tools.mathtools.xy_to_polar import xy_to_polar import math + def arrow(path, headwidth, headheight, filled=False): - '''Returns an arrow shape. + """Returns an arrow shape. - `path` is a Path object. - `headwidth` is the width of the arrow head. - `headheight` is the height of the arrow head. - ''' + """ ## make arow head... r, a = xy_to_polar((path.points[-1] - path.points[-2])) @@ -29,13 +31,12 @@ def arrow(path, headwidth, headheight, filled=False): return Group([head, path]) - ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * coords = [(0, 0), (0, 1000), (2000, 1000)] p = shapes.bezier_path(coords, 1) a = arrow(p, 100, 200) - io.view(a, 'png') + io.view(a, "png") diff --git a/chiplotle/geometry/shapes/catmull_path.py b/chiplotle/geometry/shapes/catmull_path.py index eb4b885..096042c 100644 --- a/chiplotle/geometry/shapes/catmull_path.py +++ b/chiplotle/geometry/shapes/catmull_path.py @@ -4,34 +4,33 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path -from chiplotle.tools.mathtools.catmull_interpolation \ - import catmull_interpolation +from chiplotle.tools.mathtools.catmull_interpolation import catmull_interpolation def catmull_path(points, interpolation_count=50): - '''Path with Catmull-Rom spline interpolation.''' + """Path with Catmull-Rom spline interpolation.""" path_points = catmull_interpolation(points, interpolation_count) return Path(path_points) - ## DEMO -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io from chiplotle.geometry.shapes.cross import cross from chiplotle.geometry.core.group import Group from chiplotle.geometry.transforms.offset import offset import random - points = [ ] + points = [] for i in range(10): x, y = random.randint(-100, 100), random.randint(-100, 100) points.append((x, y)) - crosses = [ ] + crosses = [] for point in points: c = cross(15, 15) offset(c, point) @@ -41,4 +40,3 @@ def catmull_path(points, interpolation_count=50): g = Group([path] + crosses) io.view(g) - diff --git a/chiplotle/geometry/shapes/circle.py b/chiplotle/geometry/shapes/circle.py index c13c9f5..64d72da 100644 --- a/chiplotle/geometry/shapes/circle.py +++ b/chiplotle/geometry/shapes/circle.py @@ -4,22 +4,29 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon from chiplotle.geometry.transforms.scale import scale import math -def circle(radius, segments = 36): - '''Returns a circle.''' - coords = [(math.cos(math.pi * 2 / segments * r) * radius, - math.sin(math.pi * 2 / segments * r) * radius) - for r in range(segments)] - return Polygon(coords) + +def circle(radius, segments=36): + """Returns a circle.""" + coords = [ + ( + math.cos(math.pi * 2 / segments * r) * radius, + math.sin(math.pi * 2 / segments * r) * radius, + ) + for r in range(segments) + ] + return Polygon(coords) ## RUN DEMO CODE -if __name__ == '__main__': - from chiplotle.tools import io - e = circle(1000) - io.view(e) +if __name__ == "__main__": + from chiplotle.tools import io + + e = circle(1000) + io.view(e) diff --git a/chiplotle/geometry/shapes/cross.py b/chiplotle/geometry/shapes/cross.py index 6dcf4a1..c45bedf 100644 --- a/chiplotle/geometry/shapes/cross.py +++ b/chiplotle/geometry/shapes/cross.py @@ -3,17 +3,19 @@ from __future__ import unicode_literals from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.group import Group + def cross(width, height): - '''Draws a cross shape. + """Draws a cross shape. - `width` is the length of the horizontal line. - `height` is the length of the vertical line.. - ''' + """ l1 = Path([Coordinate(-width / 2.0, 0), Coordinate(width / 2.0, 0)]) l2 = Path([Coordinate(0, -height / 2.0), Coordinate(0, height / 2.0)]) @@ -22,9 +24,10 @@ def cross(width, height): ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io from chiplotle.geometry.core.path import Path + e = cross(100, 200) print(e.format) io.view(e) diff --git a/chiplotle/geometry/shapes/donut.py b/chiplotle/geometry/shapes/donut.py index 778170c..b9073f9 100644 --- a/chiplotle/geometry/shapes/donut.py +++ b/chiplotle/geometry/shapes/donut.py @@ -3,13 +3,15 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.shapes.ellipse import ellipse from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path -def donut(width, height, inset, segments = 100): - ''' + +def donut(width, height, inset, segments=100): + """ A donut (ellipse within ellipse) with a width, height, inset, segments. segments is how many lines should be used to draw ellipse. More @@ -20,7 +22,7 @@ def donut(width, height, inset, segments = 100): The donut is drawn with the current pen location as the center. offset may be used to shift this around, for example, to draw from the lower, left corner. - ''' + """ e1 = ellipse(width, height, segments) e2 = ellipse(width - (inset * 2), height - (inset * 2), segments) @@ -28,8 +30,8 @@ def donut(width, height, inset, segments = 100): ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io - d1 = donut(1000, 500, inset = 20) + d1 = donut(1000, 500, inset=20) io.view(d1) diff --git a/chiplotle/geometry/shapes/ellipse.py b/chiplotle/geometry/shapes/ellipse.py index 1494fb4..7c88054 100644 --- a/chiplotle/geometry/shapes/ellipse.py +++ b/chiplotle/geometry/shapes/ellipse.py @@ -4,19 +4,21 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.shapes.circle import circle from chiplotle.geometry.transforms.scale import scale -def ellipse(width, height, segments = 36): - ''' +def ellipse(width, height, segments=36): + """ Constructs an ellipse with the given width, height, and number of segments. - ''' + """ r = circle(1, segments) scale(r, (width / 2.0, height / 2.0)) return r + # two_pi = math.pi * 2.0 # # rads_incr = two_pi / float(segments) @@ -44,7 +46,7 @@ def ellipse(width, height, segments = 36): ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * from chiplotle.geometry import * @@ -55,11 +57,10 @@ def ellipse(width, height, segments = 36): g = [] - for a in range(0,7): + for a in range(0, 7): e = ellipse(5000, 1000, 500) assert isinstance(e, Polygon) rotate(e, (two_pi / 7) * a) g.append(e) io.view(Group(g)) - diff --git a/chiplotle/geometry/shapes/fan.py b/chiplotle/geometry/shapes/fan.py index 2c76103..6520dae 100644 --- a/chiplotle/geometry/shapes/fan.py +++ b/chiplotle/geometry/shapes/fan.py @@ -3,16 +3,18 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon from chiplotle.geometry.shapes.arc_circle import arc_circle import math + def fan(radius, start_angle, end_angle, height, segments=100, filled=False): - '''A Fan is a slice of a donut seen from above + """A Fan is a slice of a donut seen from above (when you can see the hole in the middle). - All angles are assumed to be in radians.''' + All angles are assumed to be in radians.""" if start_angle > end_angle: end_angle += math.pi * 2 @@ -24,7 +26,7 @@ def fan(radius, start_angle, end_angle, height, segments=100, filled=False): ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io import math diff --git a/chiplotle/geometry/shapes/frame.py b/chiplotle/geometry/shapes/frame.py index 27227bb..657dc0f 100644 --- a/chiplotle/geometry/shapes/frame.py +++ b/chiplotle/geometry/shapes/frame.py @@ -3,27 +3,28 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.shapes.rectangle import rectangle from chiplotle.geometry.core.group import Group + def frame(width, height, inset): - '''A frame (rectangle within a rectangle) with a width, height, and inset. + """A frame (rectangle within a rectangle) with a width, height, and inset. - `width` is the width of the frame. - `height` is the height of the frame. - `inset` is the distance to inset the inner rectangle from the outer. - ''' + """ r1 = rectangle(width, height) r2 = rectangle(width - (inset * 2), height - (inset * 2)) return Group([r1, r2]) - ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io - f1 = frame(1000, 500, inset = 20) + f1 = frame(1000, 500, inset=20) io.view(f1) diff --git a/chiplotle/geometry/shapes/grid.py b/chiplotle/geometry/shapes/grid.py index 49200cc..1c701b7 100644 --- a/chiplotle/geometry/shapes/grid.py +++ b/chiplotle/geometry/shapes/grid.py @@ -4,20 +4,22 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.group import Group from chiplotle.geometry.shapes.line import line -def grid(width, height, width_divisions,height_divisions): - '''Rectangular grid. + +def grid(width, height, width_divisions, height_divisions): + """Rectangular grid. - `width` : ``int`` or ``float``, width of the rectangle. - `height` : ``int`` or ``float``, height of the rectangle. - `width_divisions` : ``int``, number of horizontal equidistant partitions. - `height_divisions` : ``int``, number of vertical equidistant partitions. - ''' + """ ul_x = width bl_x = ul_x @@ -46,10 +48,12 @@ def grid(width, height, width_divisions,height_divisions): return g + ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io + gr = grid(1000, 2000, 10, 20) assert isinstance(gr, Group) print(gr.format) diff --git a/chiplotle/geometry/shapes/group.py b/chiplotle/geometry/shapes/group.py index 35f748b..3ea9782 100644 --- a/chiplotle/geometry/shapes/group.py +++ b/chiplotle/geometry/shapes/group.py @@ -3,8 +3,10 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group + def group(lst): return Group(lst) diff --git a/chiplotle/geometry/shapes/isosceles.py b/chiplotle/geometry/shapes/isosceles.py index 66b7912..3b7a7a2 100644 --- a/chiplotle/geometry/shapes/isosceles.py +++ b/chiplotle/geometry/shapes/isosceles.py @@ -2,25 +2,28 @@ from __future__ import print_function from __future__ import unicode_literals from __future__ import absolute_import -#from chiplotle.geometry.core.path import Path + +# from chiplotle.geometry.core.path import Path from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon + def isosceles(width, height, filled=False): tip = (0, height) - left = (- width / 2.0, 0) + left = (-width / 2.0, 0) right = (width / 2.0, 0) - return Polygon([tip, left, right, tip], filled = filled) - + return Polygon([tip, left, right, tip], filled=filled) ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io + e = isosceles(200, 400, filled=True) print(e.format) io.view(e) diff --git a/chiplotle/geometry/shapes/label.py b/chiplotle/geometry/shapes/label.py index 4d50ba0..6918806 100644 --- a/chiplotle/geometry/shapes/label.py +++ b/chiplotle/geometry/shapes/label.py @@ -3,13 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.label import Label -def label(text, - charwidth, - charheight, - charspace = None, - linespace = None, - origin = 'bottom-left'): + +def label( + text, charwidth, charheight, charspace=None, linespace=None, origin="bottom-left" +): return Label(text, charwidth, charheight, charspace, linespace, origin) diff --git a/chiplotle/geometry/shapes/layer.py b/chiplotle/geometry/shapes/layer.py index cc8f18b..61fe870 100644 --- a/chiplotle/geometry/shapes/layer.py +++ b/chiplotle/geometry/shapes/layer.py @@ -3,8 +3,10 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.layer import Layer + def layer(shapes, name): return Layer(shapes, name) diff --git a/chiplotle/geometry/shapes/line.py b/chiplotle/geometry/shapes/line.py index 89a67b3..7bb7a5f 100644 --- a/chiplotle/geometry/shapes/line.py +++ b/chiplotle/geometry/shapes/line.py @@ -3,21 +3,23 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path + def line(startpoint, endpoint): - '''Returns a Path with only two points. + """Returns a Path with only two points. The path describes a simple straight line. - ''' + """ return Path([startpoint, endpoint]) ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io - l = line((0,0), (1000,1000)) + l = line((0, 0), (1000, 1000)) print(l.format) io.view(l) diff --git a/chiplotle/geometry/shapes/line_displaced.py b/chiplotle/geometry/shapes/line_displaced.py index a595ce5..5d3e3c1 100644 --- a/chiplotle/geometry/shapes/line_displaced.py +++ b/chiplotle/geometry/shapes/line_displaced.py @@ -4,27 +4,28 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.shapes.path import path -from chiplotle.geometry.transforms.perpendicular_displace \ - import perpendicular_displace +from chiplotle.geometry.transforms.perpendicular_displace import perpendicular_displace + def line_displaced(start_coord, end_coord, displacements): - '''Returns a Path defined as a line spanning points `start_coord` and + """Returns a Path defined as a line spanning points `start_coord` and `end_coord`, displaced by scalars `displacements`. The number of points in the path is determined by the lenght of `displacements`. - ''' + """ p = path([start_coord, end_coord]) perpendicular_displace(p, displacements) return p -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * import math - disp = [math.sin(i**0.7 / 3.14159 * 2) * 100 for i in range(200)] + disp = [math.sin(i ** 0.7 / 3.14159 * 2) * 100 for i in range(200)] line = line_displaced(Coordinate(0, 0), Coordinate(1000, 1000), disp) io.view(line) diff --git a/chiplotle/geometry/shapes/lock_group.py b/chiplotle/geometry/shapes/lock_group.py index e744873..f9f6710 100644 --- a/chiplotle/geometry/shapes/lock_group.py +++ b/chiplotle/geometry/shapes/lock_group.py @@ -3,17 +3,19 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.transformlock import TransformLock from chiplotle.geometry.core.shape import _Shape + def lock_group(shapes, lock_transforms): t = TransformLock(shapes, lock_transforms) return t ## ~~~~~~~~~~~~~~~~~~~~~~~ -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.geometry.shapes.square import square from chiplotle.geometry.core.group import Group from chiplotle.geometry.transforms.rotate import rotate @@ -23,8 +25,8 @@ def lock_group(shapes, lock_transforms): r1 = square(100) r2 = square(150) - l = lock_group([r2], ['rotate']) - g = Group([r1, l]) + l = lock_group([r2], ["rotate"]) + g = Group([r1, l]) offset(g, (200, 0)) rotate(g, math.pi / 4) io.view(g) diff --git a/chiplotle/geometry/shapes/path.py b/chiplotle/geometry/shapes/path.py index 8f44efc..d7f2ac6 100644 --- a/chiplotle/geometry/shapes/path.py +++ b/chiplotle/geometry/shapes/path.py @@ -3,18 +3,20 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path + def path(points): - '''A simple path.''' + """A simple path.""" return Path(points) - ## DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io - points = [(0, 0), (10, 10), (-10, 10), (-10, -10), (10, -10), (0, 0)] + + points = [(0, 0), (10, 10), (-10, 10), (-10, -10), (10, -10), (0, 0)] p = path(points) io.view(p) diff --git a/chiplotle/geometry/shapes/path_bezier.py b/chiplotle/geometry/shapes/path_bezier.py index 808b212..aa3f2d5 100644 --- a/chiplotle/geometry/shapes/path_bezier.py +++ b/chiplotle/geometry/shapes/path_bezier.py @@ -3,10 +3,12 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools.bezier_interpolation import bezier_interpolation + def path_bezier(control_points, weight=1, interpolation_count=50): """ Rational Bezier curve. @@ -17,30 +19,28 @@ def path_bezier(control_points, weight=1, interpolation_count=50): p_len = len(control_points) weight = weight * (p_len // w_len) + weight[: p_len % w_len] - plot_points = bezier_interpolation(control_points, - interpolation_count, - weight) + plot_points = bezier_interpolation(control_points, interpolation_count, weight) return Path(plot_points) ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io from chiplotle.geometry.shapes.group import group from chiplotle.geometry.shapes.cross import cross from chiplotle.geometry.transforms.offset import offset t_base = 4000 - points = [(-t_base/2,0),(0,t_base*0.8660),(t_base/2,0)] + points = [(-t_base / 2, 0), (0, t_base * 0.8660), (t_base / 2, 0)] ## a list containing different sets of weights for the middle point - weights = [[1,1,1],[1,2,1],[1,0.5,1],[1,0,1],[1,-0.5,1]] + weights = [[1, 1, 1], [1, 2, 1], [1, 0.5, 1], [1, 0, 1], [1, -0.5, 1]] c = group([]) ## draws a cross at each control point for i in points: - r = cross(100,100) + r = cross(100, 100) offset(r, i) c.append(r) @@ -50,4 +50,3 @@ def path_bezier(control_points, weight=1, interpolation_count=50): c.append(b) io.view(c) - diff --git a/chiplotle/geometry/shapes/path_interpolated.py b/chiplotle/geometry/shapes/path_interpolated.py index 137f680..81c86d0 100644 --- a/chiplotle/geometry/shapes/path_interpolated.py +++ b/chiplotle/geometry/shapes/path_interpolated.py @@ -4,6 +4,7 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.coordinate import Coordinate @@ -11,8 +12,8 @@ from chiplotle.tools.mathtools.bezier_interpolation import bezier_interpolation -def path_interpolated(points, curvature, interpolation_count = 50): - '''Returns a Path with bezier interpolation between the given `points`. +def path_interpolated(points, curvature, interpolation_count=50): + """Returns a Path with bezier interpolation between the given `points`. The interpolation is computed so that the resulting path touches the given points. @@ -20,10 +21,10 @@ def path_interpolated(points, curvature, interpolation_count = 50): - `curvature` the smoothness of the curve [0, 1]. - `interpolation_count` is the number of points to add by interpolation, per segment. - ''' + """ if not (0 <= curvature <= 1): - raise ValueError('`curvature` must be between 0 and 1 inclusive.') + raise ValueError("`curvature` must be between 0 and 1 inclusive.") if curvature == 0: return Path(points) @@ -36,9 +37,9 @@ def path_interpolated(points, curvature, interpolation_count = 50): a = [Coordinate(0, 0), (points[2] - points[0] - Coordinate(0, 0)) / 4.0] ## compute bi and a... - for i in range(2, len(points)-1): + for i in range(2, len(points) - 1): bi.append(-1 / (curvature + bi[i - 1])) - a.append(-(points[i+1] - points[i-1] - a[i-1]) * bi[i]) + a.append(-(points[i + 1] - points[i - 1] - a[i - 1]) * bi[i]) ## compute dxy... dxy = [Coordinate(0, 0)] @@ -46,26 +47,33 @@ def path_interpolated(points, curvature, interpolation_count = 50): dxy.insert(0, a[i] + dxy[0] * bi[i]) ## compute interpolated points... - plot_points = [ ] + plot_points = [] for i in range(len(points) - 1): control_points = [ points[i], points[i] + dxy[i], - points[i+1] - dxy[i+1], - points[i+1]] - plot_points += bezier_interpolation(control_points, - interpolation_count, 1)[:-1] + points[i + 1] - dxy[i + 1], + points[i + 1], + ] + plot_points += bezier_interpolation(control_points, interpolation_count, 1)[:-1] return Path(plot_points) - ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.geometry.core.group import Group from chiplotle.tools import io - points = [(0, 0), (1000, 1000), (-1000, 1000), (-1000, -1000), (1000, -1000), (0, 0)] + + points = [ + (0, 0), + (1000, 1000), + (-1000, 1000), + (-1000, -1000), + (1000, -1000), + (0, 0), + ] e1 = path_interpolated(points, 1) e2 = path_interpolated(points, 0.5) e3 = path_interpolated(points, 0) diff --git a/chiplotle/geometry/shapes/path_linear.py b/chiplotle/geometry/shapes/path_linear.py index 0365157..5ee60a0 100644 --- a/chiplotle/geometry/shapes/path_linear.py +++ b/chiplotle/geometry/shapes/path_linear.py @@ -6,13 +6,15 @@ from builtins import int from builtins import round from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools.interpolate_linear import interpolate_linear + def path_linear(coords, interpolation_unit): - '''Returns a path with linearly interpolated segments. + """Returns a path with linearly interpolated segments. Visually the result is the same as a plain path, but this is useful as an intermediate step in constructing more interesting shapes by deforming this one. @@ -22,11 +24,11 @@ def path_linear(coords, interpolation_unit): Think of it as the sampling period in digital recording. If `interpolation_unit` > coord[i] - coord[i-1], the coord[i] - coord[i-1] segment is not further segmented. - ''' + """ coords = CoordinateArray(coords) def units_per_path_segment(coords, interpolation_unit): - result = [ ] + result = [] diffs = coords.difference for i in range(len(diffs)): segs = diffs[i].magnitude / float(interpolation_unit) @@ -37,9 +39,8 @@ def units_per_path_segment(coords, interpolation_unit): result.append((coord_pair, int(round(segs)))) return result - divs = units_per_path_segment(coords, interpolation_unit) - result = [ ] + result = [] for cp, n in divs: newcoords = [interpolate_linear(cp[0], cp[1], float(i) / n) for i in range(n)] result.extend(newcoords) @@ -47,21 +48,19 @@ def units_per_path_segment(coords, interpolation_unit): return Path(result) - ## demo -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * import random coords = CoordinateArray([random.randint(0, 1000) for i in range(10)]) - #coords = CoordinateArray([0, 0, 300, 0, 300, 300, 0, 300, 0, 0]) + # coords = CoordinateArray([0, 0, 300, 0, 300, 300, 0, 300, 0, 0]) p = path_linear(coords, 100) - circs = [ ] + circs = [] for coord in p.points: c = circle(10, 8) offset(c, coord) circs.append(c) - io.view(group([p] + circs)) diff --git a/chiplotle/geometry/shapes/radial_ruler.py b/chiplotle/geometry/shapes/radial_ruler.py index 23db2c2..51bbb7f 100644 --- a/chiplotle/geometry/shapes/radial_ruler.py +++ b/chiplotle/geometry/shapes/radial_ruler.py @@ -5,6 +5,7 @@ from builtins import range from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools.mathtools.polar_to_xy import polar_to_xy as p2c @@ -12,39 +13,39 @@ from chiplotle.geometry.core.group import Group import math -def radial_ruler(radius, - start_angle, - end_angle, - units, - min_tick_height, - symmetric=True): - - length = end_angle - start_angle - - result = [] - for i, unit in enumerate(units): - ticks = int(math.ceil(length / unit)) - for t in range(ticks): - tick_height = min_tick_height * (i + 1) - if symmetric: - r1, a1 = tick_height / 2, unit * t + start_angle - r2, a2 = -tick_height / 2, unit * t + start_angle - else: - r1, a1 = 0, unit * t + start_angle - r2, a2 = -tick_height, unit * t + start_angle - xy1 = p2c(Coordinate(r1, a1) + Coordinate(radius, 0)) - xy2 = p2c(Coordinate(r2, a2) + Coordinate(radius, 0)) - tick = line(xy1, xy2) - result.append(tick) - return Group(result) - - -if __name__ == '__main__': - from chiplotle import * - import math - - r1 = radial_ruler(1000, 0.1, math.pi, (math.pi/20, math.pi/10), 20, True) - r2 = radial_ruler(500, math.pi/3, math.pi, (math.pi/40, math.pi/10), 20, False) - c = circle(30) - g = Group([r1, r2, c]) - io.view(g) + +def radial_ruler( + radius, start_angle, end_angle, units, min_tick_height, symmetric=True +): + + length = end_angle - start_angle + + result = [] + for i, unit in enumerate(units): + ticks = int(math.ceil(length / unit)) + for t in range(ticks): + tick_height = min_tick_height * (i + 1) + if symmetric: + r1, a1 = tick_height / 2, unit * t + start_angle + r2, a2 = -tick_height / 2, unit * t + start_angle + else: + r1, a1 = 0, unit * t + start_angle + r2, a2 = -tick_height, unit * t + start_angle + xy1 = p2c(Coordinate(r1, a1) + Coordinate(radius, 0)) + xy2 = p2c(Coordinate(r2, a2) + Coordinate(radius, 0)) + tick = line(xy1, xy2) + result.append(tick) + return Group(result) + + +if __name__ == "__main__": + from chiplotle import * + import math + + r1 = radial_ruler(1000, 0.1, math.pi, (math.pi / 20, math.pi / 10), 20, True) + r2 = radial_ruler( + 500, math.pi / 3, math.pi, (math.pi / 40, math.pi / 10), 20, False + ) + c = circle(30) + g = Group([r1, r2, c]) + io.view(g) diff --git a/chiplotle/geometry/shapes/random_walk_cartesian.py b/chiplotle/geometry/shapes/random_walk_cartesian.py index 18106a4..f228e54 100644 --- a/chiplotle/geometry/shapes/random_walk_cartesian.py +++ b/chiplotle/geometry/shapes/random_walk_cartesian.py @@ -4,18 +4,20 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path import math import random + def random_walk_cartesian(steps, step_size=500): - '''Random Walk. Border is a square.''' + """Random Walk. Border is a square.""" the_points = [] - half_step = step_size/2 + half_step = step_size / 2 - previous = (0,0) + previous = (0, 0) for i in range(steps): x = previous[0] + random.randrange(-half_step, half_step) @@ -25,13 +27,12 @@ def random_walk_cartesian(steps, step_size=500): return Path(the_points) - ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io rw = random_walk_cartesian(1000) assert isinstance(rw, Path) - #print rw.format - io.view(rw) \ No newline at end of file + # print rw.format + io.view(rw) diff --git a/chiplotle/geometry/shapes/random_walk_polar.py b/chiplotle/geometry/shapes/random_walk_polar.py index afb1e09..7d54e2a 100644 --- a/chiplotle/geometry/shapes/random_walk_polar.py +++ b/chiplotle/geometry/shapes/random_walk_polar.py @@ -4,6 +4,7 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools import polar_to_xy @@ -12,7 +13,7 @@ def random_walk_polar(steps, step_size=500): - '''Random Walk. Border is a circle''' + """Random Walk. Border is a circle""" the_points = [] two_pi = math.pi * 2 @@ -20,7 +21,7 @@ def random_walk_polar(steps, step_size=500): for i in range(steps): A = random.random() * two_pi r = step_size - xy = polar_to_xy((r,A)) + xy = polar_to_xy((r, A)) the_points.append(xy) return Path(the_points) @@ -28,11 +29,10 @@ def random_walk_polar(steps, step_size=500): ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io rw = random_walk_polar(1000) assert isinstance(rw, Path) - #print rw.format + # print rw.format io.view(rw) - diff --git a/chiplotle/geometry/shapes/rectangle.py b/chiplotle/geometry/shapes/rectangle.py index 4e0cac5..ceb679a 100644 --- a/chiplotle/geometry/shapes/rectangle.py +++ b/chiplotle/geometry/shapes/rectangle.py @@ -3,9 +3,11 @@ from __future__ import unicode_literals from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon + def rectangle(width, height): corners = [] corners.append((-width / 2.0, -height / 2.0)) @@ -16,11 +18,11 @@ def rectangle(width, height): return Polygon(corners) - ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io + e = rectangle(100, 200) e.filled = True assert isinstance(e, Polygon) diff --git a/chiplotle/geometry/shapes/ruler.py b/chiplotle/geometry/shapes/ruler.py index f02b4fa..bf80de5 100644 --- a/chiplotle/geometry/shapes/ruler.py +++ b/chiplotle/geometry/shapes/ruler.py @@ -5,6 +5,7 @@ from builtins import range from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.group import Group @@ -13,8 +14,9 @@ from chiplotle.geometry.transforms.offset import offset import math + def ruler(start_coord, end_coord, units, min_tick_height, symmetric=False): - ''' + """ A measuring ruler. - `units` is a list of units on which to put marks, from smaller @@ -23,14 +25,14 @@ def ruler(start_coord, end_coord, units, min_tick_height, symmetric=False): The hight of the other units are multiples of this. - `symmetric` set to True to draw the tick lines symmetrically around the invisible center-line. - ''' + """ start_coord = Coordinate(*start_coord) end_coord = Coordinate(*end_coord) length = (end_coord - start_coord).magnitude angle = (end_coord - start_coord).angle - result = [ ] + result = [] for i, unit in enumerate(units): ticks = int(math.ceil(length / unit)) for t in range(ticks): @@ -49,7 +51,7 @@ def ruler(start_coord, end_coord, units, min_tick_height, symmetric=False): return g -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * r = ruler((0, 0), (1000, 1000), (100, 200, 400), 10) diff --git a/chiplotle/geometry/shapes/spiral_archimedean.py b/chiplotle/geometry/shapes/spiral_archimedean.py index 55f3c32..70dd5a4 100644 --- a/chiplotle/geometry/shapes/spiral_archimedean.py +++ b/chiplotle/geometry/shapes/spiral_archimedean.py @@ -4,12 +4,16 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path import math -def spiral_archimedean(radius, num_turns = 5, wrapping_constant = 1, direction = "cw", segments = 500): - ''' + +def spiral_archimedean( + radius, num_turns=5, wrapping_constant=1, direction="cw", segments=500 +): + """ Constructs an Archimedean (arithmetic) spiral with the given number of turns using the specified number of points. @@ -33,23 +37,23 @@ def spiral_archimedean(radius, num_turns = 5, wrapping_constant = 1, direction = More info: http://mathworld.wolfram.com/ArchimedeanSpiral.html - ''' + """ two_pi = math.pi * 2.0 total_rads = two_pi * num_turns theta = 0.0 theta_incr = total_rads / float(segments - 1) - exponent = 1.0/wrapping_constant + exponent = 1.0 / wrapping_constant scaler = float(radius) / math.pow(total_rads, exponent) - #Spirals with a negative wrapping_constant technically begin at infinity, - #which obviously isn't practical. So we nudge theta by a bit to get a - #reasonable starting point + # Spirals with a negative wrapping_constant technically begin at infinity, + # which obviously isn't practical. So we nudge theta by a bit to get a + # reasonable starting point if wrapping_constant < 0.0: theta += theta_incr pow = math.pow(theta_incr, abs(exponent)) - scaler = float(radius) / (1.0/pow) + scaler = float(radius) / (1.0 / pow) spiral_points = [] r = 0.0 @@ -59,14 +63,14 @@ def spiral_archimedean(radius, num_turns = 5, wrapping_constant = 1, direction = r = scaler * math.pow(theta, exponent) else: pow = math.pow(theta, abs(exponent)) - r = scaler * 1.0/pow + r = scaler * 1.0 / pow x = math.cos(theta) * r y = math.sin(theta) * r if direction == "ccw": y *= -1.0 - #print "r: %f theta: %f" % (r, theta) + # print "r: %f theta: %f" % (r, theta) spiral_points.append((x, y)) theta += theta_incr @@ -78,24 +82,24 @@ def spiral_archimedean(radius, num_turns = 5, wrapping_constant = 1, direction = ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.geometry.core.group import Group from chiplotle.geometry.transforms.offset import offset from chiplotle.geometry.transforms.rotate import rotate from chiplotle.tools import io - #one of each main spiral type - s1 = spiral_archimedean(500, wrapping_constant = 1) + # one of each main spiral type + s1 = spiral_archimedean(500, wrapping_constant=1) - s2 = spiral_archimedean(500, wrapping_constant = 2, direction = "ccw") + s2 = spiral_archimedean(500, wrapping_constant=2, direction="ccw") offset(s2, (0, -1000)) - #these two are long, so we'll rotate them and move them to the side - #of the others - s3 = spiral_archimedean(1800, wrapping_constant = -1, direction = "ccw") + # these two are long, so we'll rotate them and move them to the side + # of the others + s3 = spiral_archimedean(1800, wrapping_constant=-1, direction="ccw") rotate(s3, math.pi * 1.5) offset(s3, (650, 400)) - s4 = spiral_archimedean(1500, wrapping_constant = -2, direction = "ccw") + s4 = spiral_archimedean(1500, wrapping_constant=-2, direction="ccw") rotate(s4, math.pi * .6) offset(s4, (1000, -1100)) diff --git a/chiplotle/geometry/shapes/spiral_logarithmic.py b/chiplotle/geometry/shapes/spiral_logarithmic.py index 923de07..bcb1c64 100644 --- a/chiplotle/geometry/shapes/spiral_logarithmic.py +++ b/chiplotle/geometry/shapes/spiral_logarithmic.py @@ -4,15 +4,14 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path import math -def spiral_logarithmic(num_turns = 5, - expansion_rate = 0.2, - direction = "cw", - segments = 500): - ''' + +def spiral_logarithmic(num_turns=5, expansion_rate=0.2, direction="cw", segments=500): + """ Constructs an logarithmic spiral with the given number of turns using the specified number of points. @@ -26,48 +25,48 @@ def spiral_logarithmic(num_turns = 5, where r is the radius, e is e, b is the expansion rate, and t is theta - ''' + """ - two_pi = math.pi * 2.0 - total_rads = two_pi * num_turns - theta = 0.0 - theta_incr = total_rads / float(segments - 1) + two_pi = math.pi * 2.0 + total_rads = two_pi * num_turns + theta = 0.0 + theta_incr = total_rads / float(segments - 1) - expansion_rate = abs(expansion_rate) + expansion_rate = abs(expansion_rate) - x, y = 0.0, 0.0 - spiral_points = [(x, y)] - theta += theta_incr + x, y = 0.0, 0.0 + spiral_points = [(x, y)] + theta += theta_incr - for i in range(segments - 1): - x = math.cos(theta) * math.pow(math.e, (expansion_rate * theta)) - y = math.sin(theta) * math.pow(math.e, (expansion_rate * theta)) + for i in range(segments - 1): + x = math.cos(theta) * math.pow(math.e, (expansion_rate * theta)) + y = math.sin(theta) * math.pow(math.e, (expansion_rate * theta)) - if direction == "ccw": - y *= -1.0 + if direction == "ccw": + y *= -1.0 - spiral_points.append((x, y)) - theta += theta_incr + spiral_points.append((x, y)) + theta += theta_incr - return Path(spiral_points) + return Path(spiral_points) ## RUN DEMO CODE -if __name__ == '__main__': - from chiplotle.geometry.core.group import Group - from chiplotle.geometry.shapes.line import line - from chiplotle.geometry.transforms.offset import offset - from chiplotle.tools import io +if __name__ == "__main__": + from chiplotle.geometry.core.group import Group + from chiplotle.geometry.shapes.line import line + from chiplotle.geometry.transforms.offset import offset + from chiplotle.tools import io - s = spiral_logarithmic() + s = spiral_logarithmic() - #add some lines for scale - line_right = line((0,0), (500, 0)) - line_left = line((0,0), (-500, 0)) - line_up = line((0,0), (0, 500)) - line_down = line((0,0), (0, -500)) + # add some lines for scale + line_right = line((0, 0), (500, 0)) + line_left = line((0, 0), (-500, 0)) + line_up = line((0, 0), (0, 500)) + line_down = line((0, 0), (0, -500)) - g = Group([s, line_right, line_left, line_up, line_down]) + g = Group([s, line_right, line_left, line_up, line_down]) - io.view(g) + io.view(g) diff --git a/chiplotle/geometry/shapes/square.py b/chiplotle/geometry/shapes/square.py index 293d887..0fdfe60 100644 --- a/chiplotle/geometry/shapes/square.py +++ b/chiplotle/geometry/shapes/square.py @@ -3,9 +3,11 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.shapes.rectangle import rectangle + def square(width_height): - '''Returns a square centered at (0, 0).''' + """Returns a square centered at (0, 0).""" return rectangle(width_height, width_height) diff --git a/chiplotle/geometry/shapes/star_crisscross.py b/chiplotle/geometry/shapes/star_crisscross.py index bb74a30..e7ade65 100644 --- a/chiplotle/geometry/shapes/star_crisscross.py +++ b/chiplotle/geometry/shapes/star_crisscross.py @@ -5,6 +5,7 @@ from builtins import range from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon from chiplotle.geometry.core.group import Group @@ -12,14 +13,17 @@ import math from fractions import gcd -def star_crisscross(width, height, num_points = 5, jump_size = None, find_valid_jump_size = True): - ''' + +def star_crisscross( + width, height, num_points=5, jump_size=None, find_valid_jump_size=True +): + """ Draws a star with criscrossing lines. jump_size determines how many points to skip between connected points. an illegal jump size (one that does not result in a valid crisscross star) is ignored and replaced with a dot in the center of the star. - ''' + """ corners = [] pi_div_180 = math.pi / 180.0 half_width = width * 0.5 @@ -31,11 +35,11 @@ def star_crisscross(width, height, num_points = 5, jump_size = None, find_valid_ while degrees < 360.0 + degrees_offset: alpha = degrees * pi_div_180 - sin_alpha = math.sin(alpha); - cos_alpha = math.cos(alpha); + sin_alpha = math.sin(alpha) + cos_alpha = math.cos(alpha) - point_x = (half_width * cos_alpha); - point_y = (half_height * sin_alpha); + point_x = half_width * cos_alpha + point_y = half_height * sin_alpha corners.append((point_x, point_y)) @@ -44,8 +48,8 @@ def star_crisscross(width, height, num_points = 5, jump_size = None, find_valid_ corners.append(corners[0]) if num_points == 6: - #special case, ignore jump_size - #rearrange points to draw two polygons + # special case, ignore jump_size + # rearrange points to draw two polygons multiplier = int(num_points / 2) corners1 = [corners[0], corners[2], corners[4]] @@ -57,7 +61,7 @@ def star_crisscross(width, height, num_points = 5, jump_size = None, find_valid_ else: if jump_size is None: - jump_size = int(num_points/2) + jump_size = int(num_points / 2) if gcd(num_points, jump_size) != 1: if find_valid_jump_size: @@ -69,16 +73,16 @@ def star_crisscross(width, height, num_points = 5, jump_size = None, find_valid_ point_order = [] for i in range(0, num_points): - point_num = (i * jump_size) % num_points + point_num = (i * jump_size) % num_points point_order.append(point_num) corners = [corners[i] for i in point_order] - return Polygon(corners) + return Polygon(corners) ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io from chiplotle.geometry.shapes.star_crisscross import star_crisscross from chiplotle.geometry.core.group import Group @@ -88,11 +92,10 @@ def star_crisscross(width, height, num_points = 5, jump_size = None, find_valid_ for points in range(5, 26): for i in range(1, points): - s = star_crisscross(1000, 1000, num_points = points, - jump_size = i, find_valid_jump_size = False) + s = star_crisscross( + 1000, 1000, num_points=points, jump_size=i, find_valid_jump_size=False + ) offset(s, ((i - 1) * 1000, -(points - 5) * 1000)) gr1.append(s) io.view(gr1) - - diff --git a/chiplotle/geometry/shapes/star_outline.py b/chiplotle/geometry/shapes/star_outline.py index 556df6a..2111f55 100644 --- a/chiplotle/geometry/shapes/star_outline.py +++ b/chiplotle/geometry/shapes/star_outline.py @@ -4,6 +4,7 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon from chiplotle.geometry.core.group import Group @@ -11,8 +12,9 @@ import math from fractions import gcd -def star_outline(width, height, num_points = 5): - '''Constructs a star shape in outline. ''' + +def star_outline(width, height, num_points=5): + """Constructs a star shape in outline. """ corners = [] pi_div_180 = math.pi / 180.0 half_width = width * 0.5 @@ -27,8 +29,8 @@ def star_outline(width, height, num_points = 5): while degrees < 360.0 + degrees_offset: alpha = degrees * pi_div_180 - sin_alpha = math.sin(alpha); - cos_alpha = math.cos(alpha); + sin_alpha = math.sin(alpha) + cos_alpha = math.cos(alpha) if even: w_multi = half_width @@ -39,8 +41,8 @@ def star_outline(width, height, num_points = 5): h_multi = quarter_height even = True - point_x = (w_multi * cos_alpha); - point_y = (h_multi * sin_alpha); + point_x = w_multi * cos_alpha + point_y = h_multi * sin_alpha corners.append((point_x, point_y)) @@ -50,9 +52,8 @@ def star_outline(width, height, num_points = 5): return Polygon(corners) - ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io from chiplotle.geometry.shapes.star_outline import star_outline from chiplotle.geometry.core.group import Group @@ -60,7 +61,7 @@ def star_outline(width, height, num_points = 5): gr1 = Group() for i in range(5, 10): - st = star_outline(100 * (i * i * i), 100 * (i * i * i), num_points = i) + st = star_outline(100 * (i * i * i), 100 * (i * i * i), num_points=i) gr1.append(st) io.view(gr1) diff --git a/chiplotle/geometry/shapes/supershape.py b/chiplotle/geometry/shapes/supershape.py index 2a37e67..772f7c2 100644 --- a/chiplotle/geometry/shapes/supershape.py +++ b/chiplotle/geometry/shapes/supershape.py @@ -5,30 +5,42 @@ from builtins import range from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path from chiplotle.tools.mathtools import superformula import math -def supershape(width, height, m, n1, n2, n3, - point_count=100, percentage=1.0, a=1.0, b=1.0, travel=None): - '''Supershape, generated using the superformula first proposed + +def supershape( + width, + height, + m, + n1, + n2, + n3, + point_count=100, + percentage=1.0, + a=1.0, + b=1.0, + travel=None, +): + """Supershape, generated using the superformula first proposed by Johan Gielis. - `points_count` is the total number of points to compute. - `travel` is the length of the outline drawn in radians. 3.1416 * 2 is a complete cycle. - ''' + """ travel = travel or (math.pi * 2) ## compute points... - phis = [i * travel / point_count - for i in range(int(point_count * percentage))] + phis = [i * travel / point_count for i in range(int(point_count * percentage))] points = [superformula(a, b, m, n1, n2, n3, x) for x in phis] ## scale and transpose... - path = [ ] + path = [] for x, y in points: x *= width y *= height @@ -39,8 +51,9 @@ def supershape(width, height, m, n1, n2, n3, ## RUN DEMO CODE -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.tools import io from chiplotle.geometry.core.path import Path - e = supershape(100, 120, 5, 3.3, 2, 3, b=0.75, travel = 4*math.pi) + + e = supershape(100, 120, 5, 3.3, 2, 3, b=0.75, travel=4 * math.pi) io.view(e) diff --git a/chiplotle/geometry/shapes/symmetric_polygon_side_length.py b/chiplotle/geometry/shapes/symmetric_polygon_side_length.py index 9f62aff..47ce99d 100644 --- a/chiplotle/geometry/shapes/symmetric_polygon_side_length.py +++ b/chiplotle/geometry/shapes/symmetric_polygon_side_length.py @@ -3,14 +3,16 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.shapes.circle import circle from chiplotle.geometry.transforms.scale import scale + def symmetric_polygon_side_length(count, length): - '''Creates a symmetric polygon with `count` sides, all with the + """Creates a symmetric polygon with `count` sides, all with the same given `length`. - ''' + """ result = circle(1.0, count) scale(result, length / result.points.difference[0].magnitude) return result diff --git a/chiplotle/geometry/shapes/target.py b/chiplotle/geometry/shapes/target.py index 35dfb84..6523616 100644 --- a/chiplotle/geometry/shapes/target.py +++ b/chiplotle/geometry/shapes/target.py @@ -4,22 +4,24 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.shapes.circle import circle + def target(outer_radius, inner_radius, circles_count, segments=36): - ''' + """ Creates `circles_count` concentric circles. Can be used to create radially filled circles. - ''' + """ if not outer_radius > inner_radius: - raise ValueError('outer_radius must be > inner_radius.') + raise ValueError("outer_radius must be > inner_radius.") if not circles_count > 1: - raise ValueError('circles_count must be >= 2.') + raise ValueError("circles_count must be >= 2.") - result = [ ] + result = [] radius_delta = (outer_radius - inner_radius) / float(circles_count) for i in range(circles_count): result.append(circle(inner_radius + radius_delta * i, segments)) @@ -27,8 +29,7 @@ def target(outer_radius, inner_radius, circles_count, segments=36): return Group(result) - -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * t = target(1000, 50, 5) diff --git a/chiplotle/geometry/shapes/test/test_bezier_path.py b/chiplotle/geometry/shapes/test/test_bezier_path.py index 9d772a0..97848e8 100644 --- a/chiplotle/geometry/shapes/test/test_bezier_path.py +++ b/chiplotle/geometry/shapes/test/test_bezier_path.py @@ -3,25 +3,34 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * + def test_path_interpolated_01(): - '''path_interpolated can initialize with a list of duples.''' - points = [(0, 0), (1000, 0), (1000, 1000), (0, 1000), (0, 0)] - t = shapes.path_interpolated(points, 1) - assert isinstance(t, Path) + """path_interpolated can initialize with a list of duples.""" + points = [(0, 0), (1000, 0), (1000, 1000), (0, 1000), (0, 0)] + t = shapes.path_interpolated(points, 1) + assert isinstance(t, Path) + def test_path_interpolated_02(): - '''path_interpolated can initialize with a list of Coordinates.''' - points = [Coordinate(0, 0), Coordinate(1000, 0), \ - Coordinate(1000, 1000), Coordinate(0, 1000), Coordinate(0, 0)] - t = shapes.path_interpolated(points, 1) - assert isinstance(t, Path) + """path_interpolated can initialize with a list of Coordinates.""" + points = [ + Coordinate(0, 0), + Coordinate(1000, 0), + Coordinate(1000, 1000), + Coordinate(0, 1000), + Coordinate(0, 0), + ] + t = shapes.path_interpolated(points, 1) + assert isinstance(t, Path) + def test_path_interpolated_03(): - '''path_interpolated can initialize with a CoordinateArray.''' - points = [(0, 0), (1000, 0), (1000, 1000), (0, 1000), (0, 0)] - points = CoordinateArray(points) - t = shapes.path_interpolated(points, 1) - assert isinstance(t, Path) + """path_interpolated can initialize with a CoordinateArray.""" + points = [(0, 0), (1000, 0), (1000, 1000), (0, 1000), (0, 0)] + points = CoordinateArray(points) + t = shapes.path_interpolated(points, 1) + assert isinstance(t, Path) diff --git a/chiplotle/geometry/transforms/__init__.py b/chiplotle/geometry/transforms/__init__.py index eebf58e..415957f 100644 --- a/chiplotle/geometry/transforms/__init__.py +++ b/chiplotle/geometry/transforms/__init__.py @@ -3,7 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], globals( )) +_package_import(__path__[0], globals()) diff --git a/chiplotle/geometry/transforms/arrange_shapes_on_path.py b/chiplotle/geometry/transforms/arrange_shapes_on_path.py index a82fc5c..55ca500 100644 --- a/chiplotle/geometry/transforms/arrange_shapes_on_path.py +++ b/chiplotle/geometry/transforms/arrange_shapes_on_path.py @@ -5,23 +5,24 @@ from builtins import zip from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.transforms.offset import offset + def arrange_shapes_on_path(shapes, path): if not isinstance(path, Path): raise TypeError if len(shapes) != len(path): - raise ValueError('len(shapes) == len(path) must be true.') + raise ValueError("len(shapes) == len(path) must be true.") for shape, coord in zip(shapes, path.points): offset(shape, coord) - -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * import random diff --git a/chiplotle/geometry/transforms/center_at.py b/chiplotle/geometry/transforms/center_at.py index c7c602f..dfe9f29 100644 --- a/chiplotle/geometry/transforms/center_at.py +++ b/chiplotle/geometry/transforms/center_at.py @@ -3,11 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.transforms.offset import offset from chiplotle.geometry.core.coordinate import Coordinate + def center_at(shape, coord): - '''Centers shape at the given coordinate.''' + """Centers shape at the given coordinate.""" offset(shape, -shape.center + Coordinate(*coord)) - diff --git a/chiplotle/geometry/transforms/noise.py b/chiplotle/geometry/transforms/noise.py index 1d3d8f2..e627bf9 100644 --- a/chiplotle/geometry/transforms/noise.py +++ b/chiplotle/geometry/transforms/noise.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path @@ -11,18 +12,20 @@ from chiplotle.geometry.transforms.transformvisitor import TransformVisitor import random + def noise(shape, value): - '''Distort shape by adding noise. + """Distort shape by adding noise. - `value` can be a scalar or a tuple (x, y) that sets the range of the noise for the x and y coordinates. - ''' + """ + def noisify(coords, value): try: x, y = value except TypeError: x = y = value - result = [ ] + result = [] for point in coords: x_wiggle = random.randrange(-x, x) y_wiggle = random.randrange(-y, y) @@ -34,11 +37,11 @@ def noisify(coords, value): t.visit(shape, value) - ## RUN DEMO CODE if __name__ == "__main__": from chiplotle.geometry.shapes.circle import circle from chiplotle.tools import io + c1 = circle(1000, 100) c2 = circle(800, 100) noise(c1, 90) diff --git a/chiplotle/geometry/transforms/offset.py b/chiplotle/geometry/transforms/offset.py index 5bc4b96..924c992 100644 --- a/chiplotle/geometry/transforms/offset.py +++ b/chiplotle/geometry/transforms/offset.py @@ -3,17 +3,19 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.transforms.transformvisitor import TransformVisitor + def offset(shape, value): - '''In place offsetting. + """In place offsetting. - `shape` is the shape to be rotated. - `value` is the offset value. Can be a scalar or an (x, y) coordinate. - ''' + """ if isinstance(value, (list, tuple)): value = Coordinate(*value) @@ -28,10 +30,10 @@ def offset(coords, value): if __name__ == "__main__": from chiplotle.geometry.shapes.rectangle import rectangle from chiplotle.tools import io + r0 = rectangle(1000, 400) r1 = rectangle(1000, 400) r2 = rectangle(1000, 400) offset(r1, (0, 1500)) offset(r2, (100, 200)) io.view(Group([r0, r1, r2])) - diff --git a/chiplotle/geometry/transforms/perpendicular_displace.py b/chiplotle/geometry/transforms/perpendicular_displace.py index 8c71436..48df45e 100644 --- a/chiplotle/geometry/transforms/perpendicular_displace.py +++ b/chiplotle/geometry/transforms/perpendicular_displace.py @@ -4,33 +4,38 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() -from chiplotle.tools.geometrytools.split_coordinatearray_proportionally \ - import split_coordinatearray_proportionally +from chiplotle.tools.geometrytools.split_coordinatearray_proportionally import ( + split_coordinatearray_proportionally +) from chiplotle.geometry.core.path import Path + def perpendicular_displace(path, displacements): - '''Displaces a path along its perpendiculars. + """Displaces a path along its perpendiculars. - `path` is a Path instance. - `displacement` is a list of displacement values (scalars). - ''' + """ if not isinstance(path, Path): - raise TypeError('`path` should be of type Path.') + raise TypeError("`path` should be of type Path.") ## TODO may want to check here for identical consecutive coords ## to avoid 0 differences. - count = len(displacements) - points = split_coordinatearray_proportionally(path.points, count) + count = len(displacements) + points = split_coordinatearray_proportionally(path.points, count) d_points = points.difference - result = [] + result = [] for i in range(len(d_points)): norm = d_points[i].perpendicular.normalized disp = norm * displacements[i] result.append(points[i] + disp) path.points = Path(result).points + + # result = [ ] # d_points = path.points.difference # d_points.append(d_points[-1]) @@ -42,7 +47,7 @@ def perpendicular_displace(path, displacements): ## ~~~~~~~~~~~~~~~ demo ~~~~~~~~~~~ -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * from chiplotle.hpgl.formatters.pen import Pen import copy @@ -50,7 +55,7 @@ def perpendicular_displace(path, displacements): import math struct = shapes.circle(1000, randint(5, 12)) - disp = copy.deepcopy(struct) + disp = copy.deepcopy(struct) Pen(2)(struct) Pen(1)(disp) diff --git a/chiplotle/geometry/transforms/perpendicular_noise.py b/chiplotle/geometry/transforms/perpendicular_noise.py index 32d38a3..639cf49 100644 --- a/chiplotle/geometry/transforms/perpendicular_noise.py +++ b/chiplotle/geometry/transforms/perpendicular_noise.py @@ -4,6 +4,7 @@ from __future__ import absolute_import from builtins import zip from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path @@ -12,16 +13,18 @@ from chiplotle.geometry.transforms.transformvisitor import TransformVisitor import random + def perpendicular_noise(shape, value): - '''Distort shape by adding noise perpendiculary to the path. + """Distort shape by adding noise perpendiculary to the path. This is an in-place destructive transformation; no new shapes are created. - `shape` is the shape to be noisified. - `value` must be a scalar defining the range of the noise for displacement. - ''' + """ + def perpnoise(coords, value): - result = [ ] + result = [] d_coords = difference(coords) for coord, d_coord in zip(coords[:-1], d_coords): wiggle = random.randrange(-value, value) @@ -34,13 +37,12 @@ def perpnoise(coords, value): t.visit(shape, value) - - ## RUN DEMO CODE if __name__ == "__main__": from chiplotle.geometry.shapes.circle import circle from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools import io + c1 = circle(1000, 200) c2 = circle(800, 200) c2 += Coordinate(2000, 2000) @@ -48,4 +50,3 @@ def perpnoise(coords, value): perpendicular_noise(c2, 60) g = Group([c1, c2]) io.view(g) - diff --git a/chiplotle/geometry/transforms/rotate.py b/chiplotle/geometry/transforms/rotate.py index 3332276..1b86bf0 100644 --- a/chiplotle/geometry/transforms/rotate.py +++ b/chiplotle/geometry/transforms/rotate.py @@ -3,31 +3,34 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.group import Group from chiplotle.tools.mathtools.rotate_2d import rotate_2d from chiplotle.geometry.transforms.transformvisitor import TransformVisitor -def rotate(shape, angle, pivot = (0, 0)): - '''In place rotation. + +def rotate(shape, angle, pivot=(0, 0)): + """In place rotation. - `shape` is the shape to be rotated. - `angle` is the angle (in radians) of rotation. - `pivot` is the center of rotation. Must be a Coordinate or (x, y) pair. - ''' - def rotate(coords, angle, pivot = pivot): + """ + + def rotate(coords, angle, pivot=pivot): return rotate_2d(coords, angle, pivot) t = TransformVisitor(rotate) t.visit(shape, angle, pivot) - ## RUN DEMO CODE if __name__ == "__main__": from chiplotle.geometry.shapes.rectangle import rectangle from chiplotle.tools import io + r1 = rectangle(1000, 400) r2 = rectangle(1000, 400) r3 = rectangle(2000, 900) diff --git a/chiplotle/geometry/transforms/scale.py b/chiplotle/geometry/transforms/scale.py index 536ea97..ec62f96 100644 --- a/chiplotle/geometry/transforms/scale.py +++ b/chiplotle/geometry/transforms/scale.py @@ -3,28 +3,31 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.transforms.transformvisitor import TransformVisitor -def scale(shape, value, pivot = Coordinate(0, 0)): - '''In place scaling. + +def scale(shape, value, pivot=Coordinate(0, 0)): + """In place scaling. - `shape` is the shape to be rotated. - `value` is the scaling value. Can be a scalar or an (x, y) coordinate. - `pivot` is the Coordinate around which the shape will be scaled. - ''' + """ from chiplotle.tools.geometrytools.scale import scale + t = TransformVisitor(scale) t.visit(shape, value, pivot) - ## RUN DEMO CODE if __name__ == "__main__": from chiplotle.geometry.shapes.rectangle import rectangle from chiplotle.tools import io + r0 = rectangle(1000, 500) r1 = rectangle(1000, 500) r2 = rectangle(1000, 500) @@ -33,4 +36,3 @@ def scale(shape, value, pivot = Coordinate(0, 0)): g = Group([r0, r1, r2]) print(g.format) io.view(g) - diff --git a/chiplotle/geometry/transforms/test/test_perpendicular_noise_path.py b/chiplotle/geometry/transforms/test/test_perpendicular_noise_path.py index 0d19cdc..bb29e94 100644 --- a/chiplotle/geometry/transforms/test/test_perpendicular_noise_path.py +++ b/chiplotle/geometry/transforms/test/test_perpendicular_noise_path.py @@ -3,14 +3,15 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * import copy -def test_perpendicular_noise_path_01( ): - c = circle(1000, 200) + +def test_perpendicular_noise_path_01(): + c = circle(1000, 200) cc = copy.deepcopy(c) perpendicular_noise(c, 360) assert c.points != cc.points assert c.points is not cc.points - diff --git a/chiplotle/geometry/transforms/test/test_scale_path.py b/chiplotle/geometry/transforms/test/test_scale_path.py index 8f659c1..1fc15f4 100644 --- a/chiplotle/geometry/transforms/test/test_scale_path.py +++ b/chiplotle/geometry/transforms/test/test_scale_path.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * import py.test @@ -14,8 +15,8 @@ def test_scale_path_01(): scale(t, 2, Coordinate(0, 0)) assert t.points == CoordinateArray([(0, 0), (2, 2)]) + def test_scale_path_02(): t = Path([(0, 0), (1, 1)]) scale(t, 2, Coordinate(1, 1)) assert t.points == CoordinateArray([(-1, -1), (1, 1)]) - diff --git a/chiplotle/geometry/transforms/transformvisitor.py b/chiplotle/geometry/transforms/transformvisitor.py index 5c1baaf..0087e53 100644 --- a/chiplotle/geometry/transforms/transformvisitor.py +++ b/chiplotle/geometry/transforms/transformvisitor.py @@ -3,21 +3,22 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.visitor import Visitor + class TransformVisitor(Visitor): - '''"Crawler" pattern encapsulation for transformations applied to _Shapes. - Separates the "what it does" (action) from "how it does it" (traversal).''' + """"Crawler" pattern encapsulation for transformations applied to _Shapes. + Separates the "what it does" (action) from "how it does it" (traversal).""" + def __init__(self, transform): self.transform = transform - def visit_Group(self, node, *args, **kwargs): for s in node: self.visit(s, *args, **kwargs) - def visit_TransformLock(self, node, *args, **kwargs): if self.transform.__name__ in node.lock_transforms: self._handle_transform_map(node, *args, **kwargs) @@ -25,11 +26,9 @@ def visit_TransformLock(self, node, *args, **kwargs): for s in node: self.visit(s, *args, **kwargs) - def visit__Shape(self, node, *args, **kwargs): node.points = self.transform(node.points, *args, **kwargs) - ## private ## def _handle_transform_map(self, node, *args, **kwargs): diff --git a/chiplotle/hpgl/abstract/arc.py b/chiplotle/hpgl/abstract/arc.py index f659073..00ee8dc 100644 --- a/chiplotle/hpgl/abstract/arc.py +++ b/chiplotle/hpgl/abstract/arc.py @@ -3,34 +3,39 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.positional import _Positional from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive + class _Arc(_Positional): def __init__(self, xy, angle, chordtolerance=None): self.angle = angle self.chordtolerance = chordtolerance _Positional.__init__(self, xy) - def angle( ): + def angle(): def fget(self): return self._angle + def fset(self, arg): if abs(arg) > 360: - raise ValueError('angle must be between -360 and 360.') + raise ValueError("angle must be between -360 and 360.") self._angle = arg - return property(**locals( )) + + return property(**locals()) + angle = angle() @property def format(self): if isinstance(self.x, int) and isinstance(self.y, int): - coordinates = '%i,%i' % (self.x, self.y) + coordinates = "%i,%i" % (self.x, self.y) else: - coordinates = '%.2f,%.2f' % (self.x, self.y) - result = '%s%s,%.2f' % (self._name, coordinates, self.angle) + coordinates = "%.2f,%.2f" % (self.x, self.y) + result = "%s%s,%.2f" % (self._name, coordinates, self.angle) if self.chordtolerance: - result += ',%.2f' % self.chordtolerance + result += ",%.2f" % self.chordtolerance result += _HPGLPrimitive._terminator return result diff --git a/chiplotle/hpgl/abstract/hpgl.py b/chiplotle/hpgl/abstract/hpgl.py index b5bdb6f..9f65d91 100644 --- a/chiplotle/hpgl/abstract/hpgl.py +++ b/chiplotle/hpgl/abstract/hpgl.py @@ -4,11 +4,14 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + class _HPGL(object): ## a list of attributes that can be scaled. - _scalable = [ ] + _scalable = [] @property def _name(self): @@ -18,15 +21,13 @@ def _name(self): def format(self): pass - ## OVERRIDES ## def __eq__(self, arg): if type(arg) == type(self): - for attr in list(self.__dict__.keys( )): + for attr in list(self.__dict__.keys()): if getattr(self, attr) != getattr(arg, attr): return False return True else: return False - diff --git a/chiplotle/hpgl/abstract/hpglescape.py b/chiplotle/hpgl/abstract/hpglescape.py index c1ec0e0..75700b2 100644 --- a/chiplotle/hpgl/abstract/hpglescape.py +++ b/chiplotle/hpgl/abstract/hpglescape.py @@ -4,23 +4,22 @@ from __future__ import absolute_import from builtins import chr from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL + class _HPGLEscape(_HPGL): _escape = chr(27) - ## PUBLIC PROPERTIES ## @property def format(self): - return '%s.%s' % (self._escape, self._name) - + return "%s.%s" % (self._escape, self._name) ## OVERRIDES ## def __repr__(self): - return 'Escape(%s, %s)' % (repr(self._escape), self._name) - + return "Escape(%s, %s)" % (repr(self._escape), self._name) diff --git a/chiplotle/hpgl/abstract/hpglprimitive.py b/chiplotle/hpgl/abstract/hpglprimitive.py index c56db4e..e43e25f 100644 --- a/chiplotle/hpgl/abstract/hpglprimitive.py +++ b/chiplotle/hpgl/abstract/hpglprimitive.py @@ -4,28 +4,29 @@ from __future__ import absolute_import from builtins import str from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL -class _HPGLPrimitive(_HPGL): - _terminator = ';' +class _HPGLPrimitive(_HPGL): + _terminator = ";" @property def format(self): - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + return "%s%s" % (self._name, _HPGLPrimitive._terminator) ### OVERRIDES ### ### TODO: [VA] make this simpler. remove all but the name? def __repr__(self): - attributes = [ ] + attributes = [] for a in dir(self): - if not a.startswith('_'): + if not a.startswith("_"): if not callable(getattr(self, a)): - #if a not in ('x', 'y', 'format', 'terminator'): - if a not in ('x', 'y', 'format'): - attributes.append( '%s=%s' %(a, str(getattr(self, a))) ) - result = '%s(%s)' % (self._name, ', '.join(attributes)) + # if a not in ('x', 'y', 'format', 'terminator'): + if a not in ("x", "y", "format"): + attributes.append("%s=%s" % (a, str(getattr(self, a)))) + result = "%s(%s)" % (self._name, ", ".join(attributes)) return result diff --git a/chiplotle/hpgl/abstract/penplot.py b/chiplotle/hpgl/abstract/penplot.py index a69f0ee..6ad5386 100644 --- a/chiplotle/hpgl/abstract/penplot.py +++ b/chiplotle/hpgl/abstract/penplot.py @@ -3,55 +3,67 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.geometry.core.coordinatearray import CoordinateArray class _PenPlot(_HPGLPrimitive): - '''For those primitive HPGL commands that can take multiple + """For those primitive HPGL commands that can take multiple x,y,x,y,... coordinates. - g.e., PA( ).''' + g.e., PA( ).""" - _scalable = ['xy'] + _scalable = ["xy"] def __init__(self, xy): self.xy = xy ### MANAGED ATTRIBUTES ### - def xy( ): + def xy(): def fget(self): return self._coords + def fset(self, arg): self._coords = CoordinateArray(arg) + return property(**locals()) + xy = xy() - def x( ): + def x(): def fget(self): return self._coords.x + def fset(self, arg): self.xy.x = arg + return property(**locals()) + x = x() - def y( ): + def y(): def fget(self): return self._coords.y + def fset(self, arg): self.xy.y = arg + return property(**locals()) - y = y() + y = y() ### FORMATTING ### @property def format(self): if self.xy.dtype == int: - coordinates = ['%i,%i' % tuple(p) for p in self.xy] + coordinates = ["%i,%i" % tuple(p) for p in self.xy] else: - coordinates = ['%.2f,%.2f' % tuple(p) for p in self.xy] - return '%s%s%s' % (self._name, ','.join(coordinates), - _HPGLPrimitive._terminator) + coordinates = ["%.2f,%.2f" % tuple(p) for p in self.xy] + return "%s%s%s" % ( + self._name, + ",".join(coordinates), + _HPGLPrimitive._terminator, + ) diff --git a/chiplotle/hpgl/abstract/positional.py b/chiplotle/hpgl/abstract/positional.py index b3b6389..b232476 100644 --- a/chiplotle/hpgl/abstract/positional.py +++ b/chiplotle/hpgl/abstract/positional.py @@ -3,55 +3,63 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.geometry.core.coordinatearray import Coordinate class _Positional(_HPGLPrimitive): - '''For those primitive HPGL commands that have an (x, y) position pair.''' - _scalable = ['xy'] + """For those primitive HPGL commands that have an (x, y) position pair.""" + + _scalable = ["xy"] def __init__(self, xy): self.xy = xy ## PUBLIC ATTRIBUTES ## - - def xy( ): + def xy(): def fget(self): return self._coords + def fset(self, arg): if not len(arg) == 2: - raise ValueError('Positional HPGL commands are 2D') + raise ValueError("Positional HPGL commands are 2D") self._coords = Coordinate(*arg) + return property(**locals()) + xy = xy() - def x( ): + def x(): def fget(self): return self._coords.x + def fset(self, arg): self.xy = Coordinate(arg, self.y) + return property(**locals()) + x = x() - def y( ): + def y(): def fget(self): return self._coords.y + def fset(self, arg): self.xy = Coordinate(self.x, arg) - return property(**locals()) - y = y() + return property(**locals()) + y = y() ### FORMATTING ### @property def format(self): if isinstance(self.x, int) and isinstance(self.y, int): - coordinates = '%i,%i' % (self.x, self.y) + coordinates = "%i,%i" % (self.x, self.y) else: - coordinates = '%.2f,%.2f' % (self.x, self.y) - return '%s%s%s' % (self._name, coordinates, _HPGLPrimitive._terminator) + coordinates = "%.2f,%.2f" % (self.x, self.y) + return "%s%s%s" % (self._name, coordinates, _HPGLPrimitive._terminator) diff --git a/chiplotle/hpgl/abstract/twopoint.py b/chiplotle/hpgl/abstract/twopoint.py index 68ee630..01b7af5 100644 --- a/chiplotle/hpgl/abstract/twopoint.py +++ b/chiplotle/hpgl/abstract/twopoint.py @@ -4,34 +4,37 @@ from __future__ import absolute_import from builtins import map from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.geometry.core.coordinatearray import CoordinateArray + class _TwoPoint(_HPGLPrimitive): - '''Abstract class for commands with 2 coordinate pairs: x1, y1, x2, y2.''' + """Abstract class for commands with 2 coordinate pairs: x1, y1, x2, y2.""" + def __init__(self, coords=None): self.coords = coords if self.coords and len(self.coords) != 2: - raise ValueError('Only two coordinate pairs allowed.') + raise ValueError("Only two coordinate pairs allowed.") - - def coords( ): + def coords(): def fget(self): return self._coords + def fset(self, arg): self._coords = CoordinateArray(arg) + return property(**locals()) - coords = coords() + coords = coords() @property def format(self): if self.coords: coords = self.coords[0].xy + self.coords[1].xy coords = list(map(str, coords)) - coords = ','.join(coords) - return '%s%s%s' % (self._name, coords, _HPGLPrimitive._terminator) + coords = ",".join(coords) + return "%s%s%s" % (self._name, coords, _HPGLPrimitive._terminator) else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) - + return "%s%s" % (self._name, _HPGLPrimitive._terminator) diff --git a/chiplotle/hpgl/commands.py b/chiplotle/hpgl/commands.py index c1078d1..cb3be8f 100644 --- a/chiplotle/hpgl/commands.py +++ b/chiplotle/hpgl/commands.py @@ -4,6 +4,7 @@ from __future__ import absolute_import from builtins import chr from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.arc import _Arc from chiplotle.hpgl.abstract.hpglescape import _HPGLEscape @@ -12,126 +13,135 @@ from chiplotle.hpgl.abstract.positional import _Positional from chiplotle.hpgl.abstract.twopoint import _TwoPoint + class PU(_PenPlot): - ''' + """ :Pen Up: Raises the pen from the plotting surface. Use this instruction to prevent stray lines from being drawn. - `xy` : A ``list`` or ``tuple`` of x, y positions of the form \ ``(x1, y2, x2, y2, x3, y3, ..., xn, yn)``. - ''' + """ - def __init__(self, xy=None): - _PenPlot.__init__(self, xy) + def __init__(self, xy=None): + _PenPlot.__init__(self, xy) class PD(_PenPlot): - ''' + """ :Pen Down: Lowers the pen onto the writing surface for drawing and moves it to the coordinates/increments you specified. - `xy` : A ``list`` or ``tuple`` of x, y positions of the form \ ``(x1, y2, x2, y2, x3, y3, ..., xn, yn)``. - ''' + """ - def __init__(self, xy=None): - _PenPlot.__init__(self, xy) + def __init__(self, xy=None): + _PenPlot.__init__(self, xy) class PA(_PenPlot): - ''' + """ :Plot Absolute: Establishes absolute plotting and moves the pen to specified absolute coordinates using the current pen position. - ''' + """ - def __init__(self, xy=None): - _PenPlot.__init__(self, xy) + def __init__(self, xy=None): + _PenPlot.__init__(self, xy) class PR(_PenPlot): - ''' + """ :Plot Relative: Establishes relative plotting and moves the pen (using the current position) to the specified points, each successive move relative to the last current pen location. - ''' + """ - def __init__(self, xy=None): - _PenPlot.__init__(self, xy) + def __init__(self, xy=None): + _PenPlot.__init__(self, xy) class CI(_HPGLPrimitive): - ''' + """ :Circle: Draws a circle using the specified radius and chord tolerance. If you want a filled circle, refer to the :class:`~chiplotle.hpgl.commands.WG` or :class:`~chiplotle.hpgl.commands.PM` instruction. - ''' - _scalable = ['radius'] - - def __init__(self, radius, chordangle=None): - self.radius = radius - self.chordangle = chordangle - - def radius( ): - def fget(self): - '''The radius of the circle.''' - return self._radius - def fset(self, arg): - ### TODO: check for type here? - self._radius = arg - return property(**locals( )) - radius = radius() - - @property - def format(self): - if self.chordangle: - return '%s%.2f,%.2f%s' % (self._name, self.radius, self.chordangle, - _HPGLPrimitive._terminator) - else: - return '%s%.2f%s' % (self._name, self.radius, _HPGLPrimitive._terminator) + """ + + _scalable = ["radius"] + + def __init__(self, radius, chordangle=None): + self.radius = radius + self.chordangle = chordangle + + def radius(): + def fget(self): + """The radius of the circle.""" + return self._radius + + def fset(self, arg): + ### TODO: check for type here? + self._radius = arg + + return property(**locals()) + + radius = radius() + + @property + def format(self): + if self.chordangle: + return "%s%.2f,%.2f%s" % ( + self._name, + self.radius, + self.chordangle, + _HPGLPrimitive._terminator, + ) + else: + return "%s%.2f%s" % (self._name, self.radius, _HPGLPrimitive._terminator) class CC(_HPGLPrimitive): - ''' + """ :Character chord angle: Sets the chord angle that determines the smoothness of characters drawn when you select one of the arc-font character sets for labeling. - ''' + """ - def __init__(self, angle=None): - self.angle = angle + def __init__(self, angle=None): + self.angle = angle - @property - def format(self): - if self.angle: - return '%s%i%s' % (self._name, self.angle, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + @property + def format(self): + if self.angle: + return "%s%i%s" % (self._name, self.angle, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class AF(_HPGLPrimitive): - ''' + """ :Advance full page: Advances roll paper one full page length and establishes the origin at the center of the new page. - ''' + """ class AH(_HPGLPrimitive): - ''' + """ :Advance half page: Advances roll paper one half page length and establishes the origin at the center of the new page. - ''' + """ class AP(_HPGLPrimitive): - ''' + """ :Automatic Pen operations: Controls automatic pen operations such as returning a pen to the carousel if it has been in the holder without drawing @@ -154,21 +164,21 @@ class AP(_HPGLPrimitive): default is 7 on 7550 codes are 0 to 255 with default of 95 on the DraftMaster - ''' + """ - def __init__(self, n=None): - self.n = n + def __init__(self, n=None): + self.n = n - @property - def format(self): - if self.n: - return '%s%i%s' % (self._name, self.n, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + @property + def format(self): + if self.n: + return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class AA(_Arc): - ''' + """ :Arch Absolute: Draws an arc, using absolute coordinates, that starts at the current pen location and uses the specified center point. @@ -177,13 +187,14 @@ class AA(_Arc): - `angle` : ``float`` [-360 to 360]. The arch angle in degrees. - `chordtolerance` : ``float`` [0.36 to 180], ``None``. - ''' - def __init__(self, xy, angle, chordtolerance=None): - _Arc.__init__(self, xy, angle, chordtolerance) + """ + + def __init__(self, xy, angle, chordtolerance=None): + _Arc.__init__(self, xy, angle, chordtolerance) class AR(_Arc): - ''' + """ :Arch Relative: Draws an arc, using relative coordinates, that starts at the current pen location and uses the specified center point. @@ -191,14 +202,14 @@ class AR(_Arc): - `xy` : ``(x, y)`` position pair. - `angle` : ``float`` [-360 to 360]. The arch angle in degrees. - `chordtolerance` : ``float`` [0.36 to 180], ``None``. - ''' + """ - def __init__(self, xy, angle, chordtolerance=None): - _Arc.__init__(self, xy, angle, chordtolerance) + def __init__(self, xy, angle, chordtolerance=None): + _Arc.__init__(self, xy, angle, chordtolerance) class AS(_HPGLPrimitive): - ''' + """ :Acceleration Select: Sets pen acceleration for one or all pens. The default acceleration is suitable for all recommended pen and media @@ -208,99 +219,107 @@ class AS(_HPGLPrimitive): - `accel` : ``int`` [1 to 4] , ``None``. - `pen` : ``int`` [1 to 8], ``None``. When ``None``, accel is \ applied to all pens. - ''' - - def __init__(self, accel=None, pen=None): - self.accel = accel - self.pen = pen - - @property - def format(self): - if self.accel and self.pen: - return '%s%i,%i%s' % (self._name, self.accel, self.pen, - _HPGLPrimitive._terminator) - elif self.accel: - return '%s%i%s' % (self._name, self.accel, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + """ + + def __init__(self, accel=None, pen=None): + self.accel = accel + self.pen = pen + + @property + def format(self): + if self.accel and self.pen: + return "%s%i,%i%s" % ( + self._name, + self.accel, + self.pen, + _HPGLPrimitive._terminator, + ) + elif self.accel: + return "%s%i%s" % (self._name, self.accel, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class EA(_Positional): - ''' + """ :Edge Rectangle Absolute: Defines and outlines a rectangle using absolute coordinates. - `xy` : ``(x, y)``. The absolute coordinates of the remaining corner. - ''' + """ - def __init__(self, xy): - _Positional.__init__(self, xy) + def __init__(self, xy): + _Positional.__init__(self, xy) class ER(_Positional): - ''' + """ :Edge Rectangle Relative: Defines and outlines a rectangle using relative coordinates. - `xy` : ``(x, y)``. The relative coordinates of the remaining corner. - ''' + """ - def __init__(self, xy): - _Positional.__init__(self, xy) + def __init__(self, xy): + _Positional.__init__(self, xy) class RA(_Positional): - ''' + """ :Filled Rectangle Absolute: Defines and fills a rectangle using absolute coordinates. - `xy` : ``(x, y)`` tuple. The absolute coordinates of the \ remaining corner. - ''' + """ - def __init__(self, xy): - _Positional.__init__(self, xy) + def __init__(self, xy): + _Positional.__init__(self, xy) class RR(_Positional): - ''' + """ :Filled Rectangle Relative: Defines and fills a rectangle using relative coordinates. - `xy` : ``(x, y)`` tuple. The relative coordinates of the \ remaining corner. - ''' + """ - def __init__(self, xy): - _Positional.__init__(self, xy) + def __init__(self, xy): + _Positional.__init__(self, xy) class VS(_HPGLPrimitive): - ''' + """ :Pen Velocity: Set's pen velocity. - `vel` : ``float`` [0.0 to 127.9999] (depends on plotter), ``None``. - `pen` : ``int`` [1 to 8]. - ''' - - def __init__(self, vel=None, pen=None): - self.vel = vel - self.pen = pen - - @property - def format(self): - if self.vel and self.pen: - return '%s%i,%i%s' % (self._name, self.vel, self.pen, - _HPGLPrimitive._terminator) - elif self.vel: - return '%s%i%s' % (self._name, self.vel, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + """ + + def __init__(self, vel=None, pen=None): + self.vel = vel + self.pen = pen + + @property + def format(self): + if self.vel and self.pen: + return "%s%i,%i%s" % ( + self._name, + self.vel, + self.pen, + _HPGLPrimitive._terminator, + ) + elif self.vel: + return "%s%i%s" % (self._name, self.vel, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class FS(_HPGLPrimitive): - ''' + """ :Force Select: Sets pen pressure to the paper for one or all pens. Use this instruction to optimize pen life and line quality for each pen @@ -308,25 +327,29 @@ class FS(_HPGLPrimitive): - `force` : ``int`` [1 to 8] - `pen` : ``int`` [1 to 8]. If pen is ``None`` then all pens are set. - ''' - - def __init__(self, force=None, pen=None): - self.force = force - self.pen = pen - - @property - def format(self): - if self.force and self.pen: - return '%s%i,%i%s' % (self._name, self.force, self.pen, - _HPGLPrimitive._terminator) - elif self.force: - return '%s%i%s' % (self._name, self.force, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + """ + + def __init__(self, force=None, pen=None): + self.force = force + self.pen = pen + + @property + def format(self): + if self.force and self.pen: + return "%s%i,%i%s" % ( + self._name, + self.force, + self.pen, + _HPGLPrimitive._terminator, + ) + elif self.force: + return "%s%i%s" % (self._name, self.force, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class EP(_HPGLPrimitive): - ''' + """ :Edge Polygon: Outlines the polygon currently stored in the polygon buffer. Use this instruction to edge polygons that you defined in polygon mode @@ -334,27 +357,27 @@ class EP(_HPGLPrimitive): wedge instructions (:class:`~chiplotle.hpgl.commands.RA`, :class:`~chiplotle.hpgl.commands.RR` and :class:`~chiplotle.hpgl.commands.WG`). - ''' + """ class BF(_HPGLPrimitive): - ''' + """ Buffer plot. - ''' + """ class DC(_HPGLPrimitive): - ''' + """ :Digitizer Clear: Terminates digitize mode. For example, if you are using an interrupt routine in a digitizing program to branch to another plotting function, use DC to clear the digitize mode immediately after branching. - ''' + """ class DF(_HPGLPrimitive): - ''' + """ :Default: Sets certain plotter functions to predefined default conditions. Use this instruction to return the plotter to a known state while @@ -362,21 +385,21 @@ class DF(_HPGLPrimitive): the beginning of a program, unwanted graphics parameters such as character size, slant, or scaling are not inherited from another program. - ''' + """ class DP(_HPGLPrimitive): - ''' + """ :Digitize Point: Returns the X,Y coordinates of a selected point on a plot to the computer for later use. Use this instruction to input data for a graphics program or to obtain the coordinates of a point or points on plot. - ''' + """ class FP(_HPGLPrimitive): - ''' + """ :Fill Polygon: Fills the polygon currently in the polygon buffer. Use FP to fill polygons defined in polygon mode ( @@ -385,60 +408,60 @@ class FP(_HPGLPrimitive): :class:`~chiplotle.hpgl.commands.EA`, :class:`~chiplotle.hpgl.commands.ER`, and :class:`~chiplotle.hpgl.commands.EW`). - ''' + """ class FR(_HPGLPrimitive): - ''' + """ :Advance Frame: Advances paper to the next plot frame and calculates a relative coordinate system for that frame. Use FR to do multi-frame long-axis plotting. - ''' + """ class NR(_HPGLPrimitive): - ''' + """ :Not Ready: Programmatically simulates pressing VIEW. However, you cannot take the plotter out of the view state with NR instruction. - ''' + """ class OA(_HPGLPrimitive): - ''' + """ :Output Actual Pen Status: Outputs the current pen location (in plotter units) and up/down position. Use this information to position a label or figure, to determine the parameters of a window, or to determine the pen's curent location if you moved it using front-panel cursor buttons. - ''' + """ class OC(_HPGLPrimitive): - ''' + """ :Output Commanded Pen Status: Ouput the location and up/down position of the last commanded pen move instruction. Use OC to position a label or determine the parameters of an instruction that tried to move the pen beyond the limits of some window. You can also use this instruction when you want to know the pen's location in user units. - ''' + """ class OD(_HPGLPrimitive): - ''' + """ :Output Digitized Point and Pen Status: Outputs the X,Y coordinates and up/down pen position associated with the last digitized point. Use this instruction after the :class:`~chiplotle.hpgl.commands.DP` instruction to return the coordinates of the digitized point to your computer. - ''' + """ class OE(_HPGLPrimitive): - ''' + """ :Output Error: Output a number corresponding to the type of HP-GL error (if any) received by the plotter after the most recent @@ -462,75 +485,75 @@ class OE(_HPGLPrimitive): .. note:: some error meanings change depending on the plotter! - ''' + """ class OF(_HPGLPrimitive): - ''' + """ :Output Factors: Outputs the number of plotter units per millimeter in each axis. This lets you use the plotter with sofware that needs to know the size of a plotter unit. - ''' + """ class OG(_HPGLPrimitive): - ''' + """ :Output Group Count: Outputs the data block number of the current group count and whether the escape function has been activated. Use this instruction at the end of a data block in spooling applications, where it is important to know the current data block number and whether the data block has been transferred. - ''' + """ class OH(_HPGLPrimitive): - ''' + """ :Output Hard-Clip Limits: Outputs the X,Y coordinates of the current hard-clip limits. Use this instruction to determine the plotter unit dimension of the area in which plotting can occur. - ''' + """ class OI(_HPGLPrimitive): - ''' + """ :Output Identification: Outputs the plotter's identifying model number. This information is useful in a remote operating configuration to determine which plotter model is on-line, or when software needs the plotter's model number. - ''' + """ class OK(_HPGLPrimitive): - ''' + """ :Output Key: Outputs a number that indicates which, if any, of the front-panel function keys has been pressed. use this instruction with the :class:`~chiplotle.hpgl.commands.WD` instruction when designing interactive programs. - ''' + """ class OL(_HPGLPrimitive): - ''' + """ :Output Label Length: Outputs information about the label contained in the label buffer. - ''' + """ class OO(_HPGLPrimitive): - ''' + """ :Output Options: Outputs eight option parameters indicating the features implemented on the plotter. Some software packages use this feature to determine which plotter capabilities exist. - ''' + """ class OP(_HPGLPrimitive): - ''' + """ :Output P1 and P2: Outputs the X,Y coordinates (in plotter units) of the current scaling points P1 and P2. Use this instruction to determine the @@ -539,11 +562,11 @@ class OP(_HPGLPrimitive): scaling is on. This instruction can also be used with the input window (:class:`~chiplotle.hpgl.commands.IW`) instruction to programmatically set the window to P1 and P2. - ''' + """ class OS(_HPGLPrimitive): - ''' + """ :Output Status: Outputs the decimal value of the status byte. Use this instruction in debugging operations and in digitizing applications. @@ -562,126 +585,131 @@ class OS(_HPGLPrimitive): ========= ============ ========= power-on status == 24 (bits 3 & 4 set) - ''' + """ class OT(_HPGLPrimitive): - ''' + """ :Output Carousel Type: Outputs information on the type of carousel loaded and the stalls occupied. - ''' + """ class OW(_HPGLPrimitive): - ''' + """ :Output Window: Outputs the X,Y coordinates of the lower-left and upper-right corners of the window area in which plotting can occur. This instruction is especially useful when the window area (defined by :class:`~chiplotle.hpgl.commands.IW`) extends beyond the hard-clip limits. - ''' + """ class PB(_HPGLPrimitive): - ''' + """ :Print Buffer Label: Prints the contents of the label buffer. - ''' + """ class PS(_HPGLPrimitive): - ''' + """ :Page Size: Changes the size of the hard clip limits. - ''' - - def __init__(self, length = None, width = None): - self.length = length - self.width = width - - @property - def format(self): - if self.length and self.width: - return '%s%i,%i%s' % (self._name, self.length, self.width, - _HPGLPrimitive._terminator) - elif self.length: - return '%s%i%s' % (self._name, self.length, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + """ + + def __init__(self, length=None, width=None): + self.length = length + self.width = width + + @property + def format(self): + if self.length and self.width: + return "%s%i,%i%s" % ( + self._name, + self.length, + self.width, + _HPGLPrimitive._terminator, + ) + elif self.length: + return "%s%i%s" % (self._name, self.length, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class BL(_HPGLPrimitive): - ''' + """ :Buffer label: Stores a label in the label buffer. You can then use the output length (:class:`~chiplotle.hpgl.commands.OL`) instruction to determine its space requirement prior to drawing it. Or, you can use the plot buffer (:class:`~chiplotle.hpgl.commands.PB`) instruction to repeatedly plot this label. - ''' + """ - def __init__(self, label=None): - self.label = label + def __init__(self, label=None): + self.label = label - @property - def format(self): - if self.label: - return '%s%s%s' % (self._name, chr(3), _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + @property + def format(self): + if self.label: + return "%s%s%s" % (self._name, chr(3), _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class IN(_HPGLPrimitive): - ''' + """ :Initialize: Resets most plotter functions to their default settings. Use this instruction to return the plotter to a known state and to cancel settings that may have been changed by a previous program. - ''' + """ class SS(_HPGLPrimitive): - ''' + """ :Select standard character set: - ''' + """ class XT(_HPGLPrimitive): - ''' + """ :X tick: - ''' + """ class YT(_HPGLPrimitive): - ''' + """ :Y tick: - ''' + """ class CS(_HPGLPrimitive): - ''' + """ :Standard character set: Designates a character set as the standard character set for labeling instruction. Use this instruction to change the default ANSI ASCII english set to one with characters appropriate to your application. This instruction is particularly useful if you plot most of your labels in a language other than english. - ''' - def __init__(self, set=0): - self.set = set + """ - @property - def format(self): - return '%s%i%s' % (self._name, self.set, _HPGLPrimitive._terminator) + def __init__(self, set=0): + self.set = set + + @property + def format(self): + return "%s%i%s" % (self._name, self.set, _HPGLPrimitive._terminator) class CT(_HPGLPrimitive): - ''' + """ :Chord tolerance: Determines whether the chord tolerance parameter of the :class:`~chiplotle.hpgl.commands.CI`, @@ -693,17 +721,18 @@ class CT(_HPGLPrimitive): - `type` : ``int`` 0 or 1, default 0. - ''' - def __init__(self, type=0): - self.type = type + """ + + def __init__(self, type=0): + self.type = type - @property - def format(self): - return '%s%i%s' % (self._name, self.type, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.type, _HPGLPrimitive._terminator) class CV(_HPGLPrimitive): - ''' + """ :Curved line generator: Collects coordinates (line segments) in the coordinate buffer so that they can be plotted as a group. This allows the plotter to plot in a @@ -712,43 +741,47 @@ class CV(_HPGLPrimitive): - `n` : ``int`` 0 or 1, default 1 (on). - `inputdelay` : ``int`` [0 to 8,388,607] msec, default 100. - ''' - - def __init__(self, n=None, inputdelay=None): - self.n = n - self.inputdelay = inputdelay - - @property - def format(self): - if self.n and self.inputdelay: - return '%s%i%i%s' % (self._name, self.n, self.inputdelay, - _HPGLPrimitive._terminator) - elif self.n: - return '%s%i%s' % (self._name, self.n, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + """ + + def __init__(self, n=None, inputdelay=None): + self.n = n + self.inputdelay = inputdelay + + @property + def format(self): + if self.n and self.inputdelay: + return "%s%i%i%s" % ( + self._name, + self.n, + self.inputdelay, + _HPGLPrimitive._terminator, + ) + elif self.n: + return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class CA(_HPGLPrimitive): - ''' + """ :Designate alternate character set: Designates a character set as the alternate character set to be used in labeling instructions. Use this instruction to provide an additional character set that you can easily access in a program. - `set` : ``int`` [-1, 0 to 59, 60, 70, 80, 99, 100, 101], default 0. - ''' + """ - def __init__(self, set=0): - self.set = set + def __init__(self, set=0): + self.set = set - @property - def format(self): - return '%s%i%s' % (self._name, self.set, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.set, _HPGLPrimitive._terminator) class CM(_HPGLPrimitive): - ''' + """ :Character selection mode: Specifies mode of character set selection and usage. Use this instruction to select the alternate HP 8-bit, ISO 7-bit, or @@ -756,94 +789,105 @@ class CM(_HPGLPrimitive): - `switch` : ``int`` [0 to 3], default 0. - `fallback` : ``int`` 0 or 1, default 0. - ''' - - def __init__(self, switch=None, fallback=None): - self.switch = switch - self.fallback = fallback - - @property - def format(self): - if self.switch and self.fallback: - return '%s%i,%i%s' % (self._name, self.switch, self.fallback, - _HPGLPrimitive._terminator) - elif self.switch: - return '%s%i%s' % (self._name, self.switch, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + """ + + def __init__(self, switch=None, fallback=None): + self.switch = switch + self.fallback = fallback + + @property + def format(self): + if self.switch and self.fallback: + return "%s%i,%i%s" % ( + self._name, + self.switch, + self.fallback, + _HPGLPrimitive._terminator, + ) + elif self.switch: + return "%s%i%s" % (self._name, self.switch, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class CP(_HPGLPrimitive): - ''' + """ :Character Plot: Move the pen the specified number of character plot cells from the current pen location. - ''' - - def __init__(self, spaces=None, lines=None): - self.spaces = spaces - self.lines = lines - - @property - def format(self): - if self.spaces and self.lines: - return '%s%s,%s%s' % (self._name, self.spaces, self.lines, - _HPGLPrimitive._terminator) - elif self.spaces: - return '%s%s%s' % (self._name, self.spaces, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + """ + + def __init__(self, spaces=None, lines=None): + self.spaces = spaces + self.lines = lines + + @property + def format(self): + if self.spaces and self.lines: + return "%s%s,%s%s" % ( + self._name, + self.spaces, + self.lines, + _HPGLPrimitive._terminator, + ) + elif self.spaces: + return "%s%s%s" % (self._name, self.spaces, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class DT(_HPGLPrimitive): - ''' + """ :Define Label Terminator: Specifies the ASCII character to be used as the label terminator. Use this instruction to define a new label terminator if your computer cannot use the default terminator (ETX, decimal code 3). - ''' + """ - def __init__(self, terminator=chr(3)): - self.labelterminator = terminator + def __init__(self, terminator=chr(3)): + self.labelterminator = terminator - @property - def format(self): - return '%s%c%s' % (self._name, self.labelterminator, - _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%c%s" % (self._name, self.labelterminator, _HPGLPrimitive._terminator) class LB(_HPGLPrimitive): - ''' + """ :Label: Plots text using the currently defined character set. - ''' + """ - def __init__(self, text): - self.text = text - self.labelTerminator = chr(3) + def __init__(self, text): + self.text = text + self.labelTerminator = chr(3) - @property - def format(self): - return '%s%s%s%s' % (self._name, self.text, self.labelTerminator, - _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%s%s%s" % ( + self._name, + self.text, + self.labelTerminator, + _HPGLPrimitive._terminator, + ) class SP(_HPGLPrimitive): - ''' + """ :Select Pen: - ''' + """ - def __init__(self, pen = 0): - self.pen = pen + def __init__(self, pen=0): + self.pen = pen - @property - def format(self): - return '%s%i%s' % (self._name, self.pen, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.pen, _HPGLPrimitive._terminator) class LT(_HPGLPrimitive): - ''' + """ :Line Type: Specifies the line pattern to be used when drawing linese and nonsolid fill types. Use LT to emphasize or de-emphasize other plotter lines and @@ -861,23 +905,27 @@ class LT(_HPGLPrimitive): 5 ___ _ ___ _ ___ _ ___ _ 6 ___ _ _ ___ _ _ ___ _ _ ___ = ============================ - ''' + """ - def __init__(self, pattern=None, length=4): - self.pattern = pattern - self.length = length + def __init__(self, pattern=None, length=4): + self.pattern = pattern + self.length = length - @property - def format(self): - if self.pattern is not None: - return '%s%i,%.4f%s' % (self._name, self.pattern, - self.length, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + @property + def format(self): + if self.pattern is not None: + return "%s%i,%.4f%s" % ( + self._name, + self.pattern, + self.length, + _HPGLPrimitive._terminator, + ) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class FT(_HPGLPrimitive): - ''' + """ :Fill Type: Selects the shading pattern used in polygons (:class:`~chiplotle.hpgl.commands.FP`), rectangles @@ -890,182 +938,193 @@ class FT(_HPGLPrimitive): - `type` : ``int`` 1 or 2, Solid (space and angle ignored) \ 3: Hatching, 4: Cross hatching. - ''' - - def __init__(self, type=None, space=None, angle=None): - self.type = type - self.space = space - self.angle = angle - - @property - def format(self): - if not None in (self.type, self.space, self.angle): - return '%s%i,%s,%s%s' % (self._name, self.type, self.space, - self.angle, _HPGLPrimitive._terminator) - elif not None in (self.type, self.space): - return '%s%i,%s%s' % (self._name, self.type, self.space, - _HPGLPrimitive._terminator) - elif not self.type is None: - return '%s%i%s' % (self._name, self.type, _HPGLPrimitive._terminator) - elif None == self.type == self.space == self.angle: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) - else: - ### TODO: raise this type of warning in all other commands where - ### this may be necessary. - raise Warning + """ + + def __init__(self, type=None, space=None, angle=None): + self.type = type + self.space = space + self.angle = angle + + @property + def format(self): + if not None in (self.type, self.space, self.angle): + return "%s%i,%s,%s%s" % ( + self._name, + self.type, + self.space, + self.angle, + _HPGLPrimitive._terminator, + ) + elif not None in (self.type, self.space): + return "%s%i,%s%s" % ( + self._name, + self.type, + self.space, + _HPGLPrimitive._terminator, + ) + elif not self.type is None: + return "%s%i%s" % (self._name, self.type, _HPGLPrimitive._terminator) + elif None == self.type == self.space == self.angle: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) + else: + ### TODO: raise this type of warning in all other commands where + ### this may be necessary. + raise Warning class PM(_HPGLPrimitive): - ''' + """ :Polygon Mode: Enter polygon mode for defining shapes such as block letters, logos, surface charts, or any unique or intricate area for subsequent filling and/or edging. Fill polygons using the fill polygon (FP) instruction and/or outline them using the edge polygon (EP) instruction. - ''' - def __init__(self, n = 0): - self.n = n + """ + + def __init__(self, n=0): + self.n = n - @property - def format(self): - return '%s%i%s' % (self._name, self.n, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) class EC(_HPGLPrimitive): - ''' + """ :Enable Cut Line: Draws a dashed cut line between 'pages' on roll paper to indicate where to cut the paper. Used with :class:`~chiplotle.hpgl.commands.AF`, :class:`~chiplotle.hpgl.commands.AH` and :class:`~chiplotle.hpgl.commands.PG` instructions. - ''' + """ - def __init__(self, n = 0): - self.n = n + def __init__(self, n=0): + self.n = n - @property - def format(self): - return '%s%i%s' % (self._name, self.n, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) class PG(_HPGLPrimitive): - ''' + """ :Page Feed: Advances roll paper one page length and establishes the plotter-unit origin at the center of the new page. - ''' + """ - def __init__(self, n = None): - self.n = n + def __init__(self, n=None): + self.n = n - @property - def format(self): - if self.n: - return '%s%i%s' % (self._name, self.n, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + @property + def format(self): + if self.n: + return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class GC(_HPGLPrimitive): - ''' + """ :Group Count: Allows you to assign an arbitrary number that will be output by the :class:`~chiplotle.hpgl.commands.OG` instruction. Use :class:`~chiplotle.hpgl.commands.GC` with the :class:`~chiplotle.hpgl.commands.OG` instruction to monitor the successful transfer of data blocks in spooling applications. - ''' + """ - def __init__(self, count=None): - self.count = count + def __init__(self, count=None): + self.count = count - @property - def format(self): - if not self.count is None: - return '%s%i%s' % (self._name, self.count, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + @property + def format(self): + if not self.count is None: + return "%s%i%s" % (self._name, self.count, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) ### TODO implement these: -#class GM(_HPGLPrimitive): +# class GM(_HPGLPrimitive): -#class GP(_HPGLPrimitive): +# class GP(_HPGLPrimitive): + +# class IM(_HPGLPrimitive): -#class IM(_HPGLPrimitive): class SL(_HPGLPrimitive): - ''' + """ :Character Slant: Argument is tan of desired angle. - ''' + """ - def __init__(self, tan = 0): - self.tan = tan + def __init__(self, tan=0): + self.tan = tan - @property - def format(self): - return '%s%.4f%s' % (self._name, self.tan, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%.4f%s" % (self._name, self.tan, _HPGLPrimitive._terminator) class SA(_HPGLPrimitive): - ''' + """ :Select alternate character set: - ''' + """ class RO(_HPGLPrimitive): - ''' + """ :Rotate coordinate system: - ''' + """ - def __init__(self, angle = 0): - self.angle = angle + def __init__(self, angle=0): + self.angle = angle - @property - def format(self): - return '%s%i%s' % (self._name, self.angle, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.angle, _HPGLPrimitive._terminator) class RP(_HPGLPrimitive): - ''' + """ :Replot: - ''' + """ - def __init__(self, n = 1): - self.n = n + def __init__(self, n=1): + self.n = n - @property - def format(self): - return '%s%i%s' % (self._name, self.n, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) class SM(_HPGLPrimitive): - ''' + """ :Symbol Mode: Plots the char at each plotted point. char can be any printing ascii char, except ';' Calling without an argument cancels symbol mode. - ''' + """ - def __init__(self, char = None): - self.char = char + def __init__(self, char=None): + self.char = char - @property - def format(self): - if self.char: - return '%s%c%s' % (self._name, self.char, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + @property + def format(self): + if self.char: + return "%s%c%s" % (self._name, self.char, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class SC(_TwoPoint): - ''' + """ :Scale: Establishes a user-unit coordinate system by mapping user-defined values onto the scaling points P1 and P2. Thus, you can plot in @@ -1075,14 +1134,14 @@ class SC(_TwoPoint): .. note:: DraftMaster also has a more complex version of 'SC' that \ is not implemented yet. - ''' + """ - def __init__(self, coords=None): - _TwoPoint.__init__(self, coords) + def __init__(self, coords=None): + _TwoPoint.__init__(self, coords) class IP(_TwoPoint): - ''' + """ :Input P1 and P2: Allows you to establish new or default locations for the scaling points P1 and P2. P1 and P2 are used by the scale instruction @@ -1092,96 +1151,104 @@ class IP(_TwoPoint): ensure that a plot is always the same size, regardless of how P1 and P2 might have been set from the front panel or the size of media loaded in the plotter. - ''' + """ - def __init__(self, coords=None): - _TwoPoint.__init__(self, coords) + def __init__(self, coords=None): + _TwoPoint.__init__(self, coords) class IV(_HPGLPrimitive): - ''' + """ :Invoke Character Slot: Invokes a character set slot into either the right or left half of the in-use code table. Primarily used with ISO modes of character selection. - ''' - - def __init__(self, slot=None, left=None): - self.slot = slot - self.left = left - - @property - def format(self): - if not None in (self.slot, self.left): - return '%s%i%i%s' % (self._name, self.slot, self.left, - _HPGLPrimitive._terminator) - elif not self.slot is None: - return '%s%i%s' % (self._name, self.slot, _HPGLPrimitive._terminator) - elif self.slot == self.left == None: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) - else: - raise Warning + """ + + def __init__(self, slot=None, left=None): + self.slot = slot + self.left = left + + @property + def format(self): + if not None in (self.slot, self.left): + return "%s%i%i%s" % ( + self._name, + self.slot, + self.left, + _HPGLPrimitive._terminator, + ) + elif not self.slot is None: + return "%s%i%s" % (self._name, self.slot, _HPGLPrimitive._terminator) + elif self.slot == self.left == None: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) + else: + raise Warning class IW(_TwoPoint): - ''' + """ :Input Window: Defines a rectangular area, or window, that establishes soft-clip limits. Subsequent programmed pen motion will be restricted to this area. Use this instruction when you want to be sure that your plot falls within a specified area. - ''' + """ - def __init__(self, coords=None): - _TwoPoint.__init__(self, coords) + def __init__(self, coords=None): + _TwoPoint.__init__(self, coords) ### TODO this is the exact same pattern as that of all other commands with ### two parameters. Refactor. class KY(_HPGLPrimitive): - ''' + """ :Define Key: Assigns a predefined function to one of the frontal panel function keys. Use this instruction with the WD instruction when designing interactive programs. - ''' - - def __init__(self, key=None, function=None): - self.key = key - self.function = left - - @property - def format(self): - if not None in (self.key, self.function): - return '%s%i%i%s' % (self._name, self.key, self.function, - _HPGLPrimitive._terminator) - elif not self.key is None: - return '%s%i%s' % (self._name, self.key, _HPGLPrimitive._terminator) - elif self.key == self.function == None: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) - else: - raise Warning + """ + + def __init__(self, key=None, function=None): + self.key = key + self.function = left + + @property + def format(self): + if not None in (self.key, self.function): + return "%s%i%i%s" % ( + self._name, + self.key, + self.function, + _HPGLPrimitive._terminator, + ) + elif not self.key is None: + return "%s%i%s" % (self._name, self.key, _HPGLPrimitive._terminator) + elif self.key == self.function == None: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) + else: + raise Warning class PT(_HPGLPrimitive): - ''' + """ :Pen Thickness: Determines the spacing between the parallel lines in solid fill patterns, according to the pen tip thickness. - `thickness` : ``float`` [0.1 to 5] mm, default is 0.3mm. - ''' + """ - def __init__(self, thickness = 0.3): - self.thickness = thickness + def __init__(self, thickness=0.3): + self.thickness = thickness - @property - def format(self): - return '%s%.2f%s' % (self._name, self.thickness, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%.2f%s" % (self._name, self.thickness, _HPGLPrimitive._terminator) class SI(_HPGLPrimitive): - ''' + """ :Absolute character size: Specifies the size of labeling characters in centimeters. Use this instruction to establish character sizing that is not @@ -1189,28 +1256,32 @@ class SI(_HPGLPrimitive): - `width` : ``float`` [-110 to 110] cm, excluding 0. - `height` : ``float`` [-110 to 110] cm, excluding 0. - ''' - - def __init__(self, width = None, height = None): - assert width != 0 - assert height != 0 - - self.width = width - self.height = height - - @property - def format(self): - if self.width and self.height: - return '%s%.2f,%.2f%s' % (self._name, self.width, self.height, - _HPGLPrimitive._terminator) - elif None == self.width == self.height: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) - else: - raise Warning + """ + + def __init__(self, width=None, height=None): + assert width != 0 + assert height != 0 + + self.width = width + self.height = height + + @property + def format(self): + if self.width and self.height: + return "%s%.2f,%.2f%s" % ( + self._name, + self.width, + self.height, + _HPGLPrimitive._terminator, + ) + elif None == self.width == self.height: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) + else: + raise Warning class SR(SI): - ''' + """ :Relative character size: Specifies the relative size of characters as a percentage of the distance between P1 and P2. Use this instruction to establish @@ -1220,11 +1291,11 @@ class SR(SI): - `width` : ``float`` [-100 to 100] percent, excluding 0. - `height` : ``float`` [-100 to 100] percent, excluding 0. - ''' + """ class DI(_HPGLPrimitive): - ''' + """ :Absolute direction: Specifies the direction in which labels are drawn, independent of P1 and P2 settings. Use this instruction to change labeling @@ -1233,25 +1304,29 @@ class DI(_HPGLPrimitive): - `run` : ``float``. cos(angle) - `rise` : ``float``. sin(angle) - ''' - - def __init__(self, run=None, rise=None): - self.run = run - self.rise = rise - - @property - def format(self): - if not None in (self.run, self.rise): - return '%s%.2f,%.2f%s' % (self._name, self.run, self.rise, - _HPGLPrimitive._terminator) - elif None == self.run == self.rise: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) - else: - raise Warning + """ + + def __init__(self, run=None, rise=None): + self.run = run + self.rise = rise + + @property + def format(self): + if not None in (self.run, self.rise): + return "%s%.2f,%.2f%s" % ( + self._name, + self.run, + self.rise, + _HPGLPrimitive._terminator, + ) + elif None == self.run == self.rise: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) + else: + raise Warning class DR(DI): - ''' + """ :Relative Direction: Specifies the direction in which labels are drawn relative to the scaling points P1 and P2. Label direction is adjusted when @@ -1261,11 +1336,11 @@ class DR(DI): - `run` : ``float``. cos(angle) - `rise` : ``float``. sin(angle) - ''' + """ ### TODO: figure out how this works and implement. -#class DL(_HPGLPrimitive): +# class DL(_HPGLPrimitive): # ''' # Define Downloadable Character # Allows you to design characters and store them in a buffer for @@ -1280,44 +1355,48 @@ class DR(DI): class DS(_HPGLPrimitive): - ''' + """ :Designate Character Set into Slot: Designates up to four character sets to be immediately available for plotting. Used with ISO character sets and modes. - ''' + """ - def __init__(self, slot=None, set=None): - self.slot = slot - self.set = set + def __init__(self, slot=None, set=None): + self.slot = slot + self.set = set - @property - def format(self): - if self.slot and self.set: - return '%s%i,%i%s' % (self._name, self.slot, self.set, - _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + @property + def format(self): + if self.slot and self.set: + return "%s%i,%i%s" % ( + self._name, + self.slot, + self.set, + _HPGLPrimitive._terminator, + ) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class DV(_HPGLPrimitive): - ''' + """ :Direction Vertical: Specifies vertical mode as the direction for subsequent labels. Use this instruction to 'stack' horizontal characters in a column. A carriage return and a line feed lace the next 'column' to the left of the previous one. - ''' + """ - def __init__(self, vertical=0): - self.vertical = bool(vertical) + def __init__(self, vertical=0): + self.vertical = bool(vertical) - @property - def format(self): - return '%s%i%s' % (self._name, self.vertical, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.vertical, _HPGLPrimitive._terminator) class ES(_HPGLPrimitive): - ''' + """ :Extra space: Adjust space between characters and lines of labels without affecting character size. @@ -1330,25 +1409,29 @@ class ES(_HPGLPrimitive): space and negative values reduce space. 1 doubles the standard space, 0.5 adds half the standard space, and -1 substracts the standar space, causing the characters to draw on top of each other. - ''' - - def __init__(self, charspace = None, linespace = None): - self.charspace = charspace - self.linespace = linespace - - @property - def format(self): - if not None in (self.charspace, self.linespace): - return '%s%.2f,%.2f%s' % (self._name, self.charspace, self.linespace, - _HPGLPrimitive._terminator) - elif not self.charspace is None: - return '%s%.2f%s' % (self._name, self.charspace, _HPGLPrimitive._terminator) - else: - return '%s%s' % (self._name, _HPGLPrimitive._terminator) + """ + + def __init__(self, charspace=None, linespace=None): + self.charspace = charspace + self.linespace = linespace + + @property + def format(self): + if not None in (self.charspace, self.linespace): + return "%s%.2f,%.2f%s" % ( + self._name, + self.charspace, + self.linespace, + _HPGLPrimitive._terminator, + ) + elif not self.charspace is None: + return "%s%.2f%s" % (self._name, self.charspace, _HPGLPrimitive._terminator) + else: + return "%s%s" % (self._name, _HPGLPrimitive._terminator) class LO(_HPGLPrimitive): - ''' + """ :Label Origin: Positions labels relative to current pen location. Use LO to center, left justify, or right justify label. The label can be drawn above or @@ -1356,18 +1439,18 @@ class LO(_HPGLPrimitive): to 1/2 the character's width and height. - `origin` : ``int`` [1-9] or [11-19]. - ''' + """ - def __init__(self, origin = 1): - self.origin = origin + def __init__(self, origin=1): + self.origin = origin - @property - def format(self): - return '%s%i%s' % (self._name, self.origin, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%i%s" % (self._name, self.origin, _HPGLPrimitive._terminator) class EW(_HPGLPrimitive): - ''' + """ :Edge Wedge: Outlines any wedge. Use these instructions to produce sectors of a pie chart. @@ -1376,36 +1459,46 @@ class EW(_HPGLPrimitive): - `startangle` : ``float`` [0 - 360] degrees. - `sweepangle` : ``float`` [0 - 360] degrees. - `chordangle` : ``float`` [0.36 - 50] degrees. - ''' - - _scalable = ['radius'] - - def __init__(self, radius, startangle, sweepangle, chordangle=None): - self.radius = radius - self.startangle = startangle - self.sweepangle = sweepangle - self.chordangle = chordangle - - @property - def format(self): - if self.chordangle: - return '%s%.2f,%.2f,%.2f,%.2f%s' % (self._name, self.radius, - self.startangle, self.sweepangle, self.chordangle, - _HPGLPrimitive._terminator) - else: - return '%s%.2f,%.2f,%.2f%s' % (self._name, self.radius, - self.startangle, self.sweepangle, _HPGLPrimitive._terminator) + """ + + _scalable = ["radius"] + + def __init__(self, radius, startangle, sweepangle, chordangle=None): + self.radius = radius + self.startangle = startangle + self.sweepangle = sweepangle + self.chordangle = chordangle + + @property + def format(self): + if self.chordangle: + return "%s%.2f,%.2f,%.2f,%.2f%s" % ( + self._name, + self.radius, + self.startangle, + self.sweepangle, + self.chordangle, + _HPGLPrimitive._terminator, + ) + else: + return "%s%.2f,%.2f,%.2f%s" % ( + self._name, + self.radius, + self.startangle, + self.sweepangle, + _HPGLPrimitive._terminator, + ) class WG(EW): - ''' + """ :Filled wedge: - ''' + """ class TL(_HPGLPrimitive): - ''' + """ Length of ticks drawn with the XT and YT instructions. - `tp` : percentage of (P2y - P1y) for XT or (P2x - P1x) for YT. \ @@ -1413,66 +1506,72 @@ class TL(_HPGLPrimitive): difference is positive. - `tn` : same as `tp` except denotes portion below the X-axis and to \ the left of the Y-axis. 0.5 is default for both. - ''' + """ - def __init__(self, tp = 0.5, tn = 0.5): - self.tp = tp - self.tn = tn + def __init__(self, tp=0.5, tn=0.5): + self.tp = tp + self.tn = tn - @property - def format(self): - return '%s%.4f,%.4f%s' % (self._name, self.tp, self.tn, _HPGLPrimitive._terminator) + @property + def format(self): + return "%s%.4f,%.4f%s" % ( + self._name, + self.tp, + self.tn, + _HPGLPrimitive._terminator, + ) class WD(_HPGLPrimitive): - ''' + """ :Write to display: - ''' - - def __init__(self, text): - self.text = text + """ - @property - def format(self): - return '%s%s%s' % (self._name, self.text, chr(3)) # no terminator?? + def __init__(self, text): + self.text = text + @property + def format(self): + return "%s%s%s" % (self._name, self.text, chr(3)) # no terminator?? ### ESCAPES ### + class B(_HPGLEscape): - ''' + """ :Escape output buffer space: - ''' + """ class On(_HPGLEscape): - ''' + """ :On: Places the plotter in a programmed on-state. Instructs the plotter to interpret data as HPGL and DCI instructions, rather than plotting the data stream as literal text characters. - ''' + """ - @property - def _name(self): - return '(' + @property + def _name(self): + return "(" class Off(_HPGLEscape): - ''' + """ :Off: Places the plotter in a programmed off-state. - ''' - @property - def _name(self): - return ')' + """ + + @property + def _name(self): + return ")" class ExtendedError(_HPGLEscape): - ''' + """ :ExtendedError: Get RS-232-C related error message. @@ -1489,20 +1588,22 @@ class ExtendedError(_HPGLEscape): 16 input buffer overflow ========= ======== - ''' - @property - def _name(self): - return 'E' + """ + + @property + def _name(self): + return "E" class K(_HPGLEscape): - ''' + """ :Abort command: Tells the plotter to discard commands in its buffer. - ''' + """ + class SetHandshakeMode(_HPGLEscape): - ''' + """ :Set Handshake Mode: Set one of three standard handshakes. @@ -1510,27 +1611,31 @@ class SetHandshakeMode(_HPGLEscape): 1 (Xon-Xoff) 2 (ENQ-ACK) 3 (hardwire) - ''' - def __init__(self, mode=None): - self.mode = mode - - def mode( ): - def fget(self): - return self._mode - def fset(self, mode): - if not mode in (None, 0,1,2,3): - raise ValueError('mode must be in (0,1,2,3).') - self._mode = mode - return property(**locals( )) - mode = mode() - - @property - def _name(self): - return 'P' - - @property - def format(self): - if self.mode is None: - return '%s.%s' % (self._escape, self._name) - else: - return '%s.%s%i' % (self._escape, self._name, self.mode) + """ + + def __init__(self, mode=None): + self.mode = mode + + def mode(): + def fget(self): + return self._mode + + def fset(self, mode): + if not mode in (None, 0, 1, 2, 3): + raise ValueError("mode must be in (0,1,2,3).") + self._mode = mode + + return property(**locals()) + + mode = mode() + + @property + def _name(self): + return "P" + + @property + def format(self): + if self.mode is None: + return "%s.%s" % (self._escape, self._name) + else: + return "%s.%s%i" % (self._escape, self._name, self.mode) diff --git a/chiplotle/hpgl/formatters/__init__.py b/chiplotle/hpgl/formatters/__init__.py index d535bff..18d8713 100644 --- a/chiplotle/hpgl/formatters/__init__.py +++ b/chiplotle/hpgl/formatters/__init__.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from .pen import Pen from .linetype import LineType diff --git a/chiplotle/hpgl/formatters/filltype.py b/chiplotle/hpgl/formatters/filltype.py index 065696d..64ba8a7 100644 --- a/chiplotle/hpgl/formatters/filltype.py +++ b/chiplotle/hpgl/formatters/filltype.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import FT from chiplotle.core.interfaces.formatdecorator import FormatDecorator @@ -18,7 +19,6 @@ def __init__(self, filltype=None, space=None, angle=None): self.space = space self.angle = angle - @property def _subcommands(self): return [FT(self.filltype, self.space, self.angle)] diff --git a/chiplotle/hpgl/formatters/linetype.py b/chiplotle/hpgl/formatters/linetype.py index 275a72e..956782c 100644 --- a/chiplotle/hpgl/formatters/linetype.py +++ b/chiplotle/hpgl/formatters/linetype.py @@ -5,18 +5,20 @@ from builtins import range from builtins import str from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import LT from chiplotle.core.interfaces.formatdecorator import FormatDecorator + class LineType(FormatDecorator): __doc__ = LT.__doc__ def __init__(self, linetype=None, length=4): FormatDecorator.__init__(self) - self.linetype = linetype - self.length = length + self.linetype = linetype + self.length = length @property def _subcommands(self): @@ -24,7 +26,7 @@ def _subcommands(self): ## DEMO -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * lines = Group() @@ -45,5 +47,5 @@ def _subcommands(self): formatters.Pen(1)(lines) offset(lines, (0, 1000)) io.view(lines) - #p = plottertools.instantiate_plotters()[0] - #p.write(lines) + # p = plottertools.instantiate_plotters()[0] + # p.write(lines) diff --git a/chiplotle/hpgl/formatters/pen.py b/chiplotle/hpgl/formatters/pen.py index 55aff55..0594f40 100644 --- a/chiplotle/hpgl/formatters/pen.py +++ b/chiplotle/hpgl/formatters/pen.py @@ -3,47 +3,43 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.pen import Pen as HPGLPen from chiplotle.core.interfaces.formatdecorator import FormatDecorator + class Pen(FormatDecorator): - '''The Pen wraps HPGL Pen properties around a given Shape. + """The Pen wraps HPGL Pen properties around a given Shape. - `pen` is the pen number to use. - `sticky` boolean; set to False to set plotter back to default values at the end of the decorated shape. Set to True to skip reset. - ''' - - def __init__(self, - number, - velocity = None, - force = None, - acceleration= None, - thickness = None): - FormatDecorator.__init__(self) - self.number = number - self.velocity = velocity - self.force = force - self.acceleration = acceleration - self.thickness = thickness - - @property - def _subcommands(self): - p = HPGLPen(self.number, - self.velocity, - self.force, - self.acceleration, - self.thickness) - return [p] - + """ + + def __init__( + self, number, velocity=None, force=None, acceleration=None, thickness=None + ): + FormatDecorator.__init__(self) + self.number = number + self.velocity = velocity + self.force = force + self.acceleration = acceleration + self.thickness = thickness + + @property + def _subcommands(self): + p = HPGLPen( + self.number, self.velocity, self.force, self.acceleration, self.thickness + ) + return [p] ## DEMO -if __name__ == '__main__': - from chiplotle.geometry.shapes.rectangle import rectangle +if __name__ == "__main__": + from chiplotle.geometry.shapes.rectangle import rectangle - pd = Pen(2, 3, 4, 5, 0.1) - r = rectangle(100, 20) - pd(r) - print(r.format) + pd = Pen(2, 3, 4, 5, 0.1) + r = rectangle(100, 20) + pd(r) + print(r.format) diff --git a/chiplotle/hpgl/label.py b/chiplotle/hpgl/label.py index 6379fab..87cf227 100644 --- a/chiplotle/hpgl/label.py +++ b/chiplotle/hpgl/label.py @@ -3,11 +3,13 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import LB, PA, ES, LO, SL, DI, DV, SI + class Label(object): - '''Text label. + """Text label. * `xy`: 2-tuple of coordinates pair for label location. * `text`: The actual text to be printed. @@ -37,19 +39,20 @@ class Label(object): * `slant`: slant of characters (italic). Possible values: [0-1). 0 is vertical, 0.5 is 45 degs., ... * `vertical`: Print text from left to right (False) or top down (True). - ''' + """ - - def __init__(self, + def __init__( + self, text, - charwidth = None, - charheight = None, - charspace = None, - linespace = None, - origin = 1, - slant = 0, - direction = None, - vertical = False): + charwidth=None, + charheight=None, + charspace=None, + linespace=None, + origin=1, + slant=0, + direction=None, + vertical=False, + ): self.text = text self.charwidth = charwidth @@ -61,14 +64,13 @@ def __init__(self, self.slant = slant self.vertical = vertical - @property def _subcommands(self): - result = [ ] + result = [] if self.direction: result.append(DI(*self.direction)) else: - result.append(DI( )) + result.append(DI()) result.append(SI(self.charwidth, self.charheight)) result.append(ES(self.charspace, self.linespace)) result.append(LO(self.origin)) @@ -80,10 +82,10 @@ def _subcommands(self): @property def format(self): - return ''.join([c.format for c in self._subcommands]) + return "".join([c.format for c in self._subcommands]) ## demo -if __name__ == '__main__': - print(Label('Hello!').format) - print(Label('Adios!', 1, 2, direction = (1, 2)).format) +if __name__ == "__main__": + print(Label("Hello!").format) + print(Label("Adios!", 1, 2, direction=(1, 2)).format) diff --git a/chiplotle/hpgl/pen.py b/chiplotle/hpgl/pen.py index a2fe4c5..3d77a94 100644 --- a/chiplotle/hpgl/pen.py +++ b/chiplotle/hpgl/pen.py @@ -3,11 +3,13 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import AS, FS, PT, SP, VS + class Pen(object): - '''The Pen class houses the following HPGL pen settable properties: + """The Pen class houses the following HPGL pen settable properties: AS, FS, SP and VS. - `number` : ``int`` [1 to 8] pen number. @@ -15,10 +17,11 @@ class Pen(object): - `force` : ``int`` pen force. - `acceleration` : ``int`` [1 to 4] pen velocity. - `thickness` : ``float`` [0.1 to 5] mm. - ''' + """ - def __init__(self, number, velocity=None, force=None, acceleration=None, - thickness=None): + def __init__( + self, number, velocity=None, force=None, acceleration=None, thickness=None + ): assert isinstance(number, int) @@ -28,7 +31,6 @@ def __init__(self, number, velocity=None, force=None, acceleration=None, self.velocity = velocity self.thickness = thickness - @property def _subcommands(self): result = [SP(self.number)] @@ -42,11 +44,9 @@ def _subcommands(self): result.append(PT(self.thickness)) return result - @property def format(self): - result = '' + result = "" for c in self._subcommands: result += c.format return result - diff --git a/chiplotle/hpgl/test/test_AA.py b/chiplotle/hpgl/test/test_AA.py index c86d232..bbeeaf9 100644 --- a/chiplotle/hpgl/test/test_AA.py +++ b/chiplotle/hpgl/test/test_AA.py @@ -2,50 +2,54 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import * import py.test -def test_AA_01( ): - t = AA((0,0), 180) + +def test_AA_01(): + t = AA((0, 0), 180) assert t.angle == 180 assert t.chordtolerance is None - assert t.format == 'AA0,0,180.00;' + assert t.format == "AA0,0,180.00;" -def test_AA_02( ): - t = AA((0,0), 180, 45) +def test_AA_02(): + t = AA((0, 0), 180, 45) assert t.angle == 180 assert t.chordtolerance == 45 - assert t.format == 'AA0,0,180.00,45.00;' + assert t.format == "AA0,0,180.00,45.00;" -def test_AA_03( ): - '''AA must take at least two arguments: position and angle.''' - assert py.test.raises(TypeError, 'AA((0, 0))') +def test_AA_03(): + """AA must take at least two arguments: position and angle.""" + assert py.test.raises(TypeError, "AA((0, 0))") -def test_AA_format_01( ): - '''Ints format as ints.''' - t = AA((0,0), 180) +def test_AA_format_01(): + """Ints format as ints.""" + t = AA((0, 0), 180) - assert t.format == 'AA0,0,180.00;' + assert t.format == "AA0,0,180.00;" -def test_AA_format_02( ): - '''Floats format as floats.''' - t = AA((0,0.0), 180) +def test_AA_format_02(): + """Floats format as floats.""" + t = AA((0, 0.0), 180) - assert t.format == 'AA0.00,0.00,180.00;' + assert t.format == "AA0.00,0.00,180.00;" -def test_AA_angle_01( ): - '''Angle must be between -360 and 360.''' - assert py.test.raises(ValueError, 'AA((0, 0), 1200)') +def test_AA_angle_01(): + """Angle must be between -360 and 360.""" + assert py.test.raises(ValueError, "AA((0, 0), 1200)") + ## eq ## -def test_AA__eq__01( ): + +def test_AA__eq__01(): assert AA((1, 2), 120) == AA((1, 2), 120) diff --git a/chiplotle/hpgl/test/test_AR.py b/chiplotle/hpgl/test/test_AR.py index 08c0423..35470d6 100644 --- a/chiplotle/hpgl/test/test_AR.py +++ b/chiplotle/hpgl/test/test_AR.py @@ -3,40 +3,42 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import AR import py.test -def test_AR_01( ): - t = AR((0,0), 180) + +def test_AR_01(): + t = AR((0, 0), 180) assert t.angle == 180 assert t.chordtolerance is None - assert t.format == 'AR0,0,180.00;' + assert t.format == "AR0,0,180.00;" -def test_AR_02( ): - t = AR((0,0), 180, 45) +def test_AR_02(): + t = AR((0, 0), 180, 45) assert t.angle == 180 assert t.chordtolerance == 45 - assert t.format == 'AR0,0,180.00,45.00;' + assert t.format == "AR0,0,180.00,45.00;" -def test_AR_03( ): - '''AR must take at least two arguments: position and angle.''' - assert py.test.raises(TypeError, 'AR((0, 0))') +def test_AR_03(): + """AR must take at least two arguments: position and angle.""" + assert py.test.raises(TypeError, "AR((0, 0))") -def test_AR_format_01( ): - '''Ints format as ints.''' - t = AR((0,0), 180) +def test_AR_format_01(): + """Ints format as ints.""" + t = AR((0, 0), 180) - assert t.format == 'AR0,0,180.00;' + assert t.format == "AR0,0,180.00;" -def test_AR_format_02( ): - '''Floats format as floats.''' - t = AR((0,0.0), 180) +def test_AR_format_02(): + """Floats format as floats.""" + t = AR((0, 0.0), 180) - assert t.format == 'AR0.00,0.00,180.00;' + assert t.format == "AR0.00,0.00,180.00;" diff --git a/chiplotle/hpgl/test/test_CI.py b/chiplotle/hpgl/test/test_CI.py index 1552cb1..e005ab3 100644 --- a/chiplotle/hpgl/test/test_CI.py +++ b/chiplotle/hpgl/test/test_CI.py @@ -3,36 +3,40 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import CI from py.test import raises -def test_CI_01( ): - '''CI must have at least one argument (radius).''' - assert raises(TypeError, 'CI()') +def test_CI_01(): + """CI must have at least one argument (radius).""" + assert raises(TypeError, "CI()") + -def test_CI_02( ): - '''CI can take only radius argument.''' +def test_CI_02(): + """CI can take only radius argument.""" t = CI(1) assert t.radius == 1 -def test_CI_03( ): - '''CI takes at most 2 arguments: radius and chord angle.''' + +def test_CI_03(): + """CI takes at most 2 arguments: radius and chord angle.""" t = CI(1, 90) assert t.radius == 1 assert t.chordangle == 90 - assert t.format == 'CI1.00,90.00;' + assert t.format == "CI1.00,90.00;" ## _scalable ## -def test_CI_scalable_01( ): - assert CI._scalable == ['radius'] + +def test_CI_scalable_01(): + assert CI._scalable == ["radius"] ### RADIUS ### -#def test_CI_radius_02( ): +# def test_CI_radius_02( ): # '''Radius must be scalar.''' # assert raises(TypeError, 't = CI([1])') diff --git a/chiplotle/hpgl/test/test_CP.py b/chiplotle/hpgl/test/test_CP.py index 8aa1df3..44c5024 100644 --- a/chiplotle/hpgl/test/test_CP.py +++ b/chiplotle/hpgl/test/test_CP.py @@ -3,28 +3,30 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import CP -def test_CP_01( ): - '''Empty initialization.''' - t = CP( ) + +def test_CP_01(): + """Empty initialization.""" + t = CP() assert t.spaces is None assert t.lines is None - assert t.format == 'CP;' + assert t.format == "CP;" -def test_CP_02( ): - '''Initialize with spaces only.''' +def test_CP_02(): + """Initialize with spaces only.""" t = CP(2) assert t.spaces == 2 assert t.lines is None - assert t.format == 'CP2;' + assert t.format == "CP2;" -def test_CP_03( ): - '''Initialize with spaces and lines.''' +def test_CP_03(): + """Initialize with spaces and lines.""" t = CP(2, 1) assert t.spaces == 2 - assert t.lines == 1 - assert t.format == 'CP2,1;' + assert t.lines == 1 + assert t.format == "CP2,1;" diff --git a/chiplotle/hpgl/test/test_DI.py b/chiplotle/hpgl/test/test_DI.py index 0552075..62c4c58 100644 --- a/chiplotle/hpgl/test/test_DI.py +++ b/chiplotle/hpgl/test/test_DI.py @@ -2,33 +2,34 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import DI from py.test import raises -def test_DI_01( ): - t = DI( ) + +def test_DI_01(): + t = DI() assert t.run == t.rise == None - assert t.format == 'DI;' + assert t.format == "DI;" -def test_DI_02( ): - '''both run and rise (or none) must be set for formatting.''' +def test_DI_02(): + """both run and rise (or none) must be set for formatting.""" t = DI(23) assert t.run == 23 assert t.rise == None - assert raises(Warning, 't.format') + assert raises(Warning, "t.format") -def test_DI_03( ): - '''run can be 0.''' +def test_DI_03(): + """run can be 0.""" t = DI(0, 25.3) assert t.run == 0 assert t.rise == 25.3 - assert t.format == 'DI0.00,25.30;'; - + assert t.format == "DI0.00,25.30;" diff --git a/chiplotle/hpgl/test/test_DR.py b/chiplotle/hpgl/test/test_DR.py index a2da776..2251741 100644 --- a/chiplotle/hpgl/test/test_DR.py +++ b/chiplotle/hpgl/test/test_DR.py @@ -2,43 +2,44 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import DR from py.test import raises -def test_DR_01( ): - t = DR( ) + +def test_DR_01(): + t = DR() assert t.run == t.rise == None - assert t.format == 'DR;' + assert t.format == "DR;" -def test_DR_02( ): - '''both run and rise (or none) must be set for formatting.''' +def test_DR_02(): + """both run and rise (or none) must be set for formatting.""" t = DR(23) assert t.run == 23 assert t.rise == None - assert raises(Warning, 't.format') + assert raises(Warning, "t.format") -def test_DR_03( ): - '''run can be 0.''' +def test_DR_03(): + """run can be 0.""" t = DR(0, 25.3) assert t.run == 0 assert t.rise == 25.3 - assert t.format == 'DR0.00,25.30;' + assert t.format == "DR0.00,25.30;" -def test_DR_03( ): - '''rise can be 0.''' +def test_DR_03(): + """rise can be 0.""" t = DR(10, 0) assert t.run == 10 assert t.rise == 0 - assert t.format == 'DR10.00,0.00;' - + assert t.format == "DR10.00,0.00;" diff --git a/chiplotle/hpgl/test/test_EA.py b/chiplotle/hpgl/test/test_EA.py index c2b296d..0799e7c 100644 --- a/chiplotle/hpgl/test/test_EA.py +++ b/chiplotle/hpgl/test/test_EA.py @@ -2,26 +2,26 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import EA from py.test import raises -def test_EA_01( ): - '''EA cannot initialize with a scalar.''' - assert raises(TypeError, 't = EA(1)') + +def test_EA_01(): + """EA cannot initialize with a scalar.""" + assert raises(TypeError, "t = EA(1)") -def test_EA_02( ): - '''EA cannot initialize with a list of length > 2.''' - assert raises(ValueError, 't = EA([1, 2, 3, 4])') +def test_EA_02(): + """EA cannot initialize with a list of length > 2.""" + assert raises(ValueError, "t = EA([1, 2, 3, 4])") -def test_EA_03( ): - '''EA can initialize with a list of length 2.''' +def test_EA_03(): + """EA can initialize with a list of length 2.""" t = EA([1, 2]) assert t.xy == Coordinate(1, 2) - assert t.format == 'EA1,2;' - - + assert t.format == "EA1,2;" diff --git a/chiplotle/hpgl/test/test_ER.py b/chiplotle/hpgl/test/test_ER.py index 320463a..16bef28 100644 --- a/chiplotle/hpgl/test/test_ER.py +++ b/chiplotle/hpgl/test/test_ER.py @@ -2,23 +2,25 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import ER from py.test import raises -def test_ER_01( ): - '''ER cannot initialize with a scalar.''' - assert raises(TypeError, 't = ER(1)') + +def test_ER_01(): + """ER cannot initialize with a scalar.""" + assert raises(TypeError, "t = ER(1)") -def test_ER_02( ): - '''ER cannot initialize with a list of length > 2.''' - assert raises(ValueError, 't = ER([1, 2, 3, 4])') +def test_ER_02(): + """ER cannot initialize with a list of length > 2.""" + assert raises(ValueError, "t = ER([1, 2, 3, 4])") -def test_ER_03( ): - '''ER can initialize with a list of length 2.''' +def test_ER_03(): + """ER can initialize with a list of length 2.""" t = ER([1, 2]) assert t.xy == Coordinate(1, 2) - assert t.format == 'ER1,2;' + assert t.format == "ER1,2;" diff --git a/chiplotle/hpgl/test/test_ES.py b/chiplotle/hpgl/test/test_ES.py index 990933a..d73cf5d 100644 --- a/chiplotle/hpgl/test/test_ES.py +++ b/chiplotle/hpgl/test/test_ES.py @@ -3,37 +3,41 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import ES -def test_ES_01( ): - t = ES( ) + +def test_ES_01(): + t = ES() assert t.charspace == None assert t.linespace == None - assert t.format == 'ES;' + assert t.format == "ES;" -def test_ES_02( ): +def test_ES_02(): t = ES(0) assert t.charspace == 0 assert t.linespace == None - assert t.format == 'ES0.00;' + assert t.format == "ES0.00;" + -def test_ES_03( ): +def test_ES_03(): t = ES(1) assert t.charspace == 1 assert t.linespace == None - assert t.format == 'ES1.00;' + assert t.format == "ES1.00;" -def test_ES_04( ): + +def test_ES_04(): t = ES(1, 0) assert t.charspace == 1 assert t.linespace == 0 - assert t.format == 'ES1.00,0.00;' + assert t.format == "ES1.00,0.00;" + -def test_ES_04( ): +def test_ES_04(): t = ES(1, 1) assert t.charspace == 1 assert t.linespace == 1 - assert t.format == 'ES1.00,1.00;' - + assert t.format == "ES1.00,1.00;" diff --git a/chiplotle/hpgl/test/test_EW.py b/chiplotle/hpgl/test/test_EW.py index c4ef43d..cbdaf90 100644 --- a/chiplotle/hpgl/test/test_EW.py +++ b/chiplotle/hpgl/test/test_EW.py @@ -3,10 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import EW -def test_EW_01( ): + +def test_EW_01(): t = EW(10, 0, 90) @@ -14,10 +16,10 @@ def test_EW_01( ): assert t.startangle == 0 assert t.sweepangle == 90 assert t.chordangle is None - assert t.format == 'EW10.00,0.00,90.00;' + assert t.format == "EW10.00,0.00,90.00;" -def test_EW_02( ): +def test_EW_02(): t = EW(10, 0, 90, 4) @@ -25,5 +27,4 @@ def test_EW_02( ): assert t.startangle == 0 assert t.sweepangle == 90 assert t.chordangle == 4 - assert t.format == 'EW10.00,0.00,90.00,4.00;' - + assert t.format == "EW10.00,0.00,90.00,4.00;" diff --git a/chiplotle/hpgl/test/test_FS.py b/chiplotle/hpgl/test/test_FS.py index 946e0f9..341bc73 100644 --- a/chiplotle/hpgl/test/test_FS.py +++ b/chiplotle/hpgl/test/test_FS.py @@ -3,35 +3,37 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import FS -def test_FS_01( ): - '''Empty initialization.''' - t = FS( ) + +def test_FS_01(): + """Empty initialization.""" + t = FS() assert t.force is None assert t.pen is None - assert t.format == 'FS;' + assert t.format == "FS;" -def test_FS_02( ): - '''Initialize forceocity.''' +def test_FS_02(): + """Initialize forceocity.""" t = FS(1) assert t.force == 1 assert t.pen is None - assert t.format == 'FS1;' + assert t.format == "FS1;" -def test_FS_03( ): - '''Initialize forceocity and pen.''' +def test_FS_03(): + """Initialize forceocity and pen.""" t = FS(1, 2) assert t.force == 1 assert t.pen == 2 - assert t.format == 'FS1,2;' + assert t.format == "FS1,2;" -def test_FS_03( ): - '''Setting force to None formats correctly.''' +def test_FS_03(): + """Setting force to None formats correctly.""" t = FS(1, 2) t.force = None - assert t.format == 'FS;' + assert t.format == "FS;" diff --git a/chiplotle/hpgl/test/test_FT.py b/chiplotle/hpgl/test/test_FT.py index d54128d..d792dae 100644 --- a/chiplotle/hpgl/test/test_FT.py +++ b/chiplotle/hpgl/test/test_FT.py @@ -2,45 +2,46 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import FT from py.test import raises -def test_FT_01( ): - t = FT( ) + +def test_FT_01(): + t = FT() assert t.type is None assert t.space is None assert t.angle is None - assert t.format == 'FT;' + assert t.format == "FT;" -def test_FT_02( ): +def test_FT_02(): t = FT(2) assert t.type == 2 - assert t.format == 'FT2;' + assert t.format == "FT2;" -def test_FT_03( ): +def test_FT_03(): t = FT(2, .23) assert t.type == 2 assert t.space == 0.23 - assert t.format == 'FT2,0.23;' + assert t.format == "FT2,0.23;" -def test_FT_04( ): +def test_FT_04(): t = FT(2, .23, 80.5) assert t.type == 2 assert t.space == 0.23 assert t.angle == 80.5 - assert t.format == 'FT2,0.23,80.5;' + assert t.format == "FT2,0.23,80.5;" -def test_FT_05( ): - '''Mandatory parameters missing raises Warning at format time.''' - t = FT( ) +def test_FT_05(): + """Mandatory parameters missing raises Warning at format time.""" + t = FT() t.space = .23 assert t.type is None assert t.space == 0.23 assert t.angle is None - assert raises(Warning, 't.format') - + assert raises(Warning, "t.format") diff --git a/chiplotle/hpgl/test/test_IP.py b/chiplotle/hpgl/test/test_IP.py index 75b9fab..dc62f6c 100644 --- a/chiplotle/hpgl/test/test_IP.py +++ b/chiplotle/hpgl/test/test_IP.py @@ -2,38 +2,42 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import IP from py.test import raises -def test_IP_01( ): - '''IP can be empty.''' - t = IP( ) - assert t.format == 'IP;' + +def test_IP_01(): + """IP can be empty.""" + t = IP() + assert t.format == "IP;" assert isinstance(t.coords, CoordinateArray) -def test_IP_02( ): - '''IP cannot take a flat tuple.''' - assert raises(TypeError, 't = IP((1,2,3,4))') +def test_IP_02(): + """IP cannot take a flat tuple.""" + assert raises(TypeError, "t = IP((1,2,3,4))") -def test_IP_03( ): - '''IP can take a tuple or list of pairs.''' +def test_IP_03(): + """IP can take a tuple or list of pairs.""" t = IP([(1, 2), (3, 4)]) assert t.coords == CoordinateArray([(1, 2), (3, 4)]) -def test_IP_04( ): - '''IP can take two an only two coordinate pairs.''' - assert raises(ValueError, 't = IP([Coordinate(1, 2)])') - assert raises(ValueError, 't = IP([Coordinate(1, 2), Coordinate(3, 4), Coordinate(5, 6)])') -def test_IP_05( ): - '''Coordinates of IP can be reset.''' +def test_IP_04(): + """IP can take two an only two coordinate pairs.""" + assert raises(ValueError, "t = IP([Coordinate(1, 2)])") + assert raises( + ValueError, "t = IP([Coordinate(1, 2), Coordinate(3, 4), Coordinate(5, 6)])" + ) + + +def test_IP_05(): + """Coordinates of IP can be reset.""" t = IP() t.coords = (Coordinate(5, 6), Coordinate(7, 8)) assert isinstance(t.coords, CoordinateArray) assert t.coords == CoordinateArray([(5, 6), (7, 8)]) - - diff --git a/chiplotle/hpgl/test/test_PA.py b/chiplotle/hpgl/test/test_PA.py index e19709d..9967d6d 100644 --- a/chiplotle/hpgl/test/test_PA.py +++ b/chiplotle/hpgl/test/test_PA.py @@ -3,20 +3,22 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PA -def test_PA_01( ): - t = PA( ) - assert t.xy == CoordinateArray([ ]) +def test_PA_01(): + t = PA() + + assert t.xy == CoordinateArray([]) assert isinstance(t.xy, CoordinateArray) - assert t.format == 'PA;' + assert t.format == "PA;" ## eq ## -def test_PA__eq__01( ): - assert PA([(1,2),(3,4)]) == PA([(1,2),(3,4)]) +def test_PA__eq__01(): + assert PA([(1, 2), (3, 4)]) == PA([(1, 2), (3, 4)]) diff --git a/chiplotle/hpgl/test/test_PU.py b/chiplotle/hpgl/test/test_PU.py index f1ee1f3..8dace25 100644 --- a/chiplotle/hpgl/test/test_PU.py +++ b/chiplotle/hpgl/test/test_PU.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PU @@ -10,43 +11,49 @@ ### INITIALIZATION ### -def test_pu_init_01( ): - '''PU can be initialized with nothing.''' - t = PU( ) + +def test_pu_init_01(): + """PU can be initialized with nothing.""" + t = PU() assert type(t.xy) == CoordinateArray assert len(t.xy) == 0 assert len(t.x) == 0 assert len(t.y) == 0 -def test_pu_init_02( ): - '''PU can be initialized with empty list.''' - t = PU([ ]) + +def test_pu_init_02(): + """PU can be initialized with empty list.""" + t = PU([]) assert type(t.xy) == CoordinateArray assert len(t.xy) == 0 assert len(t.x) == 0 assert len(t.y) == 0 -def test_pu_init_03( ): - '''PU argument must be list-like (list, tuple, Ndarray,...).''' - assert raises(TypeError, 'PU(4)') -def test_pu_init_04( ): - '''PU argument must be a list or tuple of length == 2*n''' - assert raises(TypeError, 'PU([1])') - assert raises(TypeError, 'PU([1,2,3])') - assert raises(TypeError, 'PU([1,2,3,4,5])') +def test_pu_init_03(): + """PU argument must be list-like (list, tuple, Ndarray,...).""" + assert raises(TypeError, "PU(4)") + + +def test_pu_init_04(): + """PU argument must be a list or tuple of length == 2*n""" + assert raises(TypeError, "PU([1])") + assert raises(TypeError, "PU([1,2,3])") + assert raises(TypeError, "PU([1,2,3,4,5])") + -def test_pu_init_05( ): - '''PU initialize properly with list or tuple of 2.''' - t = PU([(1,2)]) +def test_pu_init_05(): + """PU initialize properly with list or tuple of 2.""" + t = PU([(1, 2)]) assert type(t.xy) == CoordinateArray assert t.xy == CoordinateArray([(1, 2)]) - assert t.x == (1, ) - assert t.y == (2, ) + assert t.x == (1,) + assert t.y == (2,) -def test_pu_init_06( ): - '''PU initialize properly with list or tuple of length == 2**n.''' - t = PU([(1,2),(3,4)]) + +def test_pu_init_06(): + """PU initialize properly with list or tuple of length == 2**n.""" + t = PU([(1, 2), (3, 4)]) assert type(t.xy) == CoordinateArray assert t.xy == CoordinateArray([(1, 2), (3, 4)]) assert t.x == (1, 3) @@ -55,18 +62,20 @@ def test_pu_init_06( ): ### FORMAT ### -def test_pu_format_01( ): - '''Empty PU( ).''' - t = PU( ) - assert t.format == 'PU;' -def test_pu_format_02( ): - '''Floats are left floats at format.''' +def test_pu_format_01(): + """Empty PU( ).""" + t = PU() + assert t.format == "PU;" + + +def test_pu_format_02(): + """Floats are left floats at format.""" t = PU([(1, 0.)]) - assert t.format == 'PU1.00,0.00;' + assert t.format == "PU1.00,0.00;" -def test_pu_format_03( ): - '''Ints are kept ints at format.''' - t = PU([(0, 0)]) - assert t.format == 'PU0,0;' +def test_pu_format_03(): + """Ints are kept ints at format.""" + t = PU([(0, 0)]) + assert t.format == "PU0,0;" diff --git a/chiplotle/hpgl/test/test_SI.py b/chiplotle/hpgl/test/test_SI.py index 4e04ff3..d26a087 100644 --- a/chiplotle/hpgl/test/test_SI.py +++ b/chiplotle/hpgl/test/test_SI.py @@ -2,25 +2,27 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import SI import py.test -def test_SI_01( ): - '''SI has default values.''' - t = SI( ) - assert t.format == 'SI;' +def test_SI_01(): + """SI has default values.""" + t = SI() + + assert t.format == "SI;" -def test_SI_02( ): +def test_SI_02(): t = SI(3, 2) - assert t.format == 'SI3.00,2.00;' + assert t.format == "SI3.00,2.00;" -def test_SI_03( ): +def test_SI_03(): t = SI(3) - assert py.test.raises(Warning, 't.format') + assert py.test.raises(Warning, "t.format") diff --git a/chiplotle/hpgl/test/test_SR.py b/chiplotle/hpgl/test/test_SR.py index c393485..dc87636 100644 --- a/chiplotle/hpgl/test/test_SR.py +++ b/chiplotle/hpgl/test/test_SR.py @@ -2,27 +2,29 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import SR import py.test -def test_SR_01( ): - '''SR can be initialized empty.''' - t = SR( ) +def test_SR_01(): + """SR can be initialized empty.""" + + t = SR() - assert t.format == 'SR;' + assert t.format == "SR;" -def test_SR_02( ): +def test_SR_02(): t = SR(3, 2) - assert t.format == 'SR3.00,2.00;' + assert t.format == "SR3.00,2.00;" -def test_SR_03( ): +def test_SR_03(): t = SR(3) - assert py.test.raises(Warning, 't.format') + assert py.test.raises(Warning, "t.format") diff --git a/chiplotle/hpgl/test/test_VS.py b/chiplotle/hpgl/test/test_VS.py index 97f43b7..fd7720e 100644 --- a/chiplotle/hpgl/test/test_VS.py +++ b/chiplotle/hpgl/test/test_VS.py @@ -3,35 +3,37 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import VS -def test_VS_01( ): - '''Empty initialization.''' - t = VS( ) + +def test_VS_01(): + """Empty initialization.""" + t = VS() assert t.vel is None assert t.pen is None - assert t.format == 'VS;' + assert t.format == "VS;" -def test_VS_02( ): - '''Initialize velocity.''' +def test_VS_02(): + """Initialize velocity.""" t = VS(1) assert t.vel == 1 assert t.pen is None - assert t.format == 'VS1;' + assert t.format == "VS1;" -def test_VS_03( ): - '''Initialize velocity and pen.''' +def test_VS_03(): + """Initialize velocity and pen.""" t = VS(1, 2) assert t.vel == 1 assert t.pen == 2 - assert t.format == 'VS1,2;' + assert t.format == "VS1,2;" -def test_VS_03( ): - '''Setting vel to None formats correctly.''' +def test_VS_03(): + """Setting vel to None formats correctly.""" t = VS(1, 2) t.vel = None - assert t.format == 'VS;' + assert t.format == "VS;" diff --git a/chiplotle/hpgl/test/test_WG.py b/chiplotle/hpgl/test/test_WG.py index 0583679..1af68a4 100644 --- a/chiplotle/hpgl/test/test_WG.py +++ b/chiplotle/hpgl/test/test_WG.py @@ -3,10 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import WG -def test_WG_01( ): + +def test_WG_01(): t = WG(10, 0, 90) @@ -14,10 +16,10 @@ def test_WG_01( ): assert t.startangle == 0 assert t.sweepangle == 90 assert t.chordangle is None - assert t.format == 'WG10.00,0.00,90.00;' + assert t.format == "WG10.00,0.00,90.00;" -def test_WG_02( ): +def test_WG_02(): t = WG(10, 0, 90, 4) @@ -25,5 +27,4 @@ def test_WG_02( ): assert t.startangle == 0 assert t.sweepangle == 90 assert t.chordangle == 4 - assert t.format == 'WG10.00,0.00,90.00,4.00;' - + assert t.format == "WG10.00,0.00,90.00,4.00;" diff --git a/chiplotle/hpgl/test/test_dci_sethandshakemode.py b/chiplotle/hpgl/test/test_dci_sethandshakemode.py index 3b374b1..963243e 100644 --- a/chiplotle/hpgl/test/test_dci_sethandshakemode.py +++ b/chiplotle/hpgl/test/test_dci_sethandshakemode.py @@ -2,26 +2,26 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import SetHandshakeMode from py.test import raises -def test_dci_sethandshakemode_01( ): - '''SetHandshakeMode can take no parameters.''' - t = SetHandshakeMode( ) - - assert t.format == '\x1b.P' +def test_dci_sethandshakemode_01(): + """SetHandshakeMode can take no parameters.""" + t = SetHandshakeMode() -def test_dci_sethandshakemode_02( ): - '''SetHandshakeMode can take None, 0, 1, 2 or 3 to set the mode.''' - t = SetHandshakeMode(1) + assert t.format == "\x1b.P" - assert t.format == '\x1b.P1' +def test_dci_sethandshakemode_02(): + """SetHandshakeMode can take None, 0, 1, 2 or 3 to set the mode.""" + t = SetHandshakeMode(1) -def test_dci_sethandshakemode_03( ): - '''SetHandshakeMode cannot take a value other than None, 0, 1, 2 or 3.''' - assert raises(ValueError, 't = SetHandshakeMode(32)') + assert t.format == "\x1b.P1" +def test_dci_sethandshakemode_03(): + """SetHandshakeMode cannot take a value other than None, 0, 1, 2 or 3.""" + assert raises(ValueError, "t = SetHandshakeMode(32)") diff --git a/chiplotle/hpgl/test/test_hpglescape.py b/chiplotle/hpgl/test/test_hpglescape.py index 514e03d..9a67156 100644 --- a/chiplotle/hpgl/test/test_hpglescape.py +++ b/chiplotle/hpgl/test/test_hpglescape.py @@ -3,11 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * ## No longer the case -#def test_hpglescape_escape_01( ): +# def test_hpglescape_escape_01( ): # '''The escape class attribute of _HPGLEscape commands can be set directly # from the instances.''' # on = On( ) diff --git a/chiplotle/hpgl/test/test_hpglprimitive.py b/chiplotle/hpgl/test/test_hpglprimitive.py index 64ddeab..60e686f 100644 --- a/chiplotle/hpgl/test/test_hpglprimitive.py +++ b/chiplotle/hpgl/test/test_hpglprimitive.py @@ -3,27 +3,27 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import PU from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive -def test_hpglprimitive_terminator_01( ): - '''the _HPGLPrimitive class has a _terminator attribute that defines - the terminator for HPGL commands. The default is `;`.''' - assert _HPGLPrimitive._terminator == ';' +def test_hpglprimitive_terminator_01(): + """the _HPGLPrimitive class has a _terminator attribute that defines + the terminator for HPGL commands. The default is `;`.""" + + assert _HPGLPrimitive._terminator == ";" - t = PU( ) - assert t.format == 'PU;' + t = PU() + assert t.format == "PU;" - _HPGLPrimitive._terminator = '@' - assert t.format == 'PU@' + _HPGLPrimitive._terminator = "@" + assert t.format == "PU@" - t = PU( ) - assert t.format == 'PU@' + t = PU() + assert t.format == "PU@" ## Reset terminator back to default ';' so that future ## tests don't fail. - _HPGLPrimitive._terminator = ';' - - + _HPGLPrimitive._terminator = ";" diff --git a/chiplotle/hpgl/test/test_pen.py b/chiplotle/hpgl/test/test_pen.py index 01a50f8..de87cca 100644 --- a/chiplotle/hpgl/test/test_pen.py +++ b/chiplotle/hpgl/test/test_pen.py @@ -3,17 +3,19 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * import py.test -def test_pen_01( ): - '''Pen must take one argument at least.''' - assert py.test.raises(TypeError, 't = Pen( )') +def test_pen_01(): + """Pen must take one argument at least.""" + + assert py.test.raises(TypeError, "t = Pen( )") -def test_pen_02( ): +def test_pen_02(): t = Pen(2) assert t.number == 2 @@ -22,31 +24,28 @@ def test_pen_02( ): assert t.velocity == None assert t.thickness == None - assert t.format == 'SP2;' + assert t.format == "SP2;" -def test_pen_03( ): +def test_pen_03(): t = Pen(2, 3, 4, 5, 0.1) - assert t.number == 2 assert t.acceleration == 5 assert t.force == 4 assert t.velocity == 3 assert t.thickness == 0.1 - assert t.format == 'SP2;AS5,2;FS4,2;VS3,2;PT0.10;' + assert t.format == "SP2;AS5,2;FS4,2;VS3,2;PT0.10;" -def test_pen_04( ): +def test_pen_04(): t = Pen(2, 3, 4) - assert t.number == 2 assert t.acceleration == None assert t.force == 4 assert t.velocity == 3 assert t.thickness == None - assert t.format == 'SP2;FS4,2;VS3,2;' - + assert t.format == "SP2;FS4,2;VS3,2;" diff --git a/chiplotle/hpgl/test/test_penplot.py b/chiplotle/hpgl/test/test_penplot.py index 5214652..d72efe8 100644 --- a/chiplotle/hpgl/test/test_penplot.py +++ b/chiplotle/hpgl/test/test_penplot.py @@ -3,43 +3,45 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.penplot import _PenPlot from chiplotle.geometry.core.coordinatearray import CoordinateArray from py.test import raises -def test_penplot_01( ): - '''_PenPlot cannot be initialized with a flat iterable''' - assert raises(TypeError, 'p = _PenPlot((1, 2, 3, 4))') + +def test_penplot_01(): + """_PenPlot cannot be initialized with a flat iterable""" + assert raises(TypeError, "p = _PenPlot((1, 2, 3, 4))") -def test_penplot_03( ): - '''xy cannot be set with an single number.''' - p = _PenPlot([(1,2)]) - assert raises(TypeError, 'p.xy = 3') +def test_penplot_03(): + """xy cannot be set with an single number.""" + p = _PenPlot([(1, 2)]) + assert raises(TypeError, "p.xy = 3") -def test_penplot_04( ): - '''xy can be set with a list or tuple.''' - p = _PenPlot([(0,0)]) - p.xy = [(1,2)] - assert p.xy == CoordinateArray([(1,2)]) - p.xy = [(1,2),(3,4)] - assert p.xy == CoordinateArray([(1,2),(3,4)]) +def test_penplot_04(): + """xy can be set with a list or tuple.""" + p = _PenPlot([(0, 0)]) + p.xy = [(1, 2)] + assert p.xy == CoordinateArray([(1, 2)]) + p.xy = [(1, 2), (3, 4)] + assert p.xy == CoordinateArray([(1, 2), (3, 4)]) assert p.x == (1, 3) assert p.y == (2, 4) -def test_penplot_05( ): - '''xy assignment must have lenth == 2*n''' - p = _PenPlot([(0,0)]) - assert raises(TypeError, 'p.xy =(1,)') - assert raises(TypeError, 'p.xy =(1,2,3)') +def test_penplot_05(): + """xy assignment must have lenth == 2*n""" + p = _PenPlot([(0, 0)]) + assert raises(TypeError, "p.xy =(1,)") + assert raises(TypeError, "p.xy =(1,2,3)") -def test_penplot_06( ): - '''xy can be set to None''' - p = _PenPlot([(0,0)]) +def test_penplot_06(): + """xy can be set to None""" + p = _PenPlot([(0, 0)]) p.xy = None assert isinstance(p.xy, CoordinateArray) assert len(p.xy) == 0 @@ -52,13 +54,12 @@ def test_penplot_06( ): ## TODO: these two tests work fine when py.test -x is run on this test ## flile only, but not when run on all files in directory... figure out ## why. -#def test_penplot_format_01( ): +# def test_penplot_format_01( ): # '''ints format as ints.''' # assert _PenPlot((1, 2)).format == '_PenPlot1,2;' # # -#def test_penplot_format_02( ): +# def test_penplot_format_02( ): # '''Floats that would normally print as Xe-n (e.g., 1e-10 instead of # 0.0000000001) format without the 'e-n'.''' # assert _PenPlot((1e-12,2)).format == '_PenPlot0.00,2.00;' - diff --git a/chiplotle/plotters/__init__.py b/chiplotle/plotters/__init__.py index 4a9e05c..eceb2c5 100644 --- a/chiplotle/plotters/__init__.py +++ b/chiplotle/plotters/__init__.py @@ -2,20 +2,22 @@ from __future__ import print_function from __future__ import division from __future__ import absolute_import -#from chiplotle.core.imports.package_import import _package_import + +# from chiplotle.core.imports.package_import import _package_import # -#_package_import(__path__[0], locals( )) +# _package_import(__path__[0], locals( )) # -#def remove_all_but_types(lst): +# def remove_all_but_types(lst): # '''Keep only classes.''' # from types import TypeType # for k, v in lst.items( ): # if not isinstance(v, TypeType): # del(lst[k]) # -#remove_all_but_types(locals( )) +# remove_all_but_types(locals( )) from future import standard_library + standard_library.install_aliases() from .dpx2000 import DPX2000 from .dpx3300 import DPX3300 diff --git a/chiplotle/plotters/baseplotter.py b/chiplotle/plotters/baseplotter.py index ffb1e48..daaabd4 100644 --- a/chiplotle/plotters/baseplotter.py +++ b/chiplotle/plotters/baseplotter.py @@ -1,8 +1,8 @@ -''' +""" * This file is part of chiplotle. * * http://music.columbia.edu/cmc/chiplotle -''' +""" from __future__ import division from __future__ import unicode_literals from __future__ import print_function @@ -31,271 +31,259 @@ class _BasePlotter(object): - def __init__(self, serial_port): - self.type = '_BasePlotter' - self._logger = get_logger(self.__class__.__name__) - self._serial_port = serial_port - self._hpgl = commands - self._margins = MarginsInterface(self) - self.maximum_response_wait_time = get_config_value('maximum_response_wait_time') - - #this is so that we don't pause while preparing and sending - #full buffers to the plotter. By sending 1/2 buffers we assure - #that the plotter will still have some data to plot while - #receiving the new data - self.buffer_size = int(self._buffer_space / 2) - self.initialize_plotter( ) - - - - @property - def margins(self): - '''Read-only reference to MarginsInterface.''' - return self._margins - - - ### PUBLIC METHODS ### - - def initialize_plotter(self): - self._serial_port.flushInput( ) - self._serial_port.flushOutput( ) - self.write(self._hpgl.On( )) - self.write(self._hpgl.IN( )) - - - def write(self, data): - '''Public access for writing to serial port. - data can be an iterator, a string or an _HPGL. ''' - ## TODO: remove _HPGL from this list... - if isinstance(data, (_Shape, _HPGL)): - data = data.format - try: - self._write_string_to_port(data) - except TypeError: ## must be an iterable... - result = [ ] - for c in data: - ## TODO: remove _HPGL from this list... - if isinstance(c, (_Shape, _HPGL)): - c = c.format - result.append(c) - try: - self._write_string_to_port(''.join(result)) - except TypeError: - raise TypeError('Must be a str, iterator, or a _Shape.') - - - def write_file(self, filename): - '''Sends the HPGL content of the given `filename` to the plotter.''' - with open(filename, 'r') as f: - chars = f.read( ) - chars = chars.replace('\n',';') - comms = re.split(';+', chars) - comms = [c + ';' for c in comms if c != ''] - self.write(comms) - - - ### PRIVATE METHODS ### - - def _is_HPGL_command_known(self, hpglCommand): - if isinstance(hpglCommand, (string_types, text_type)): - command_head = hpglCommand[0:2] - elif hasattr(hpglCommand, '_name'): - command_head = hpglCommand._name - else: - raise TypeError("Don't know type %s" % hpglCommand) - return command_head.upper( ) in self.allowedHPGLCommands - - - def _filter_unrecognized_commands(self, commands): - self._check_is_string(commands) - result = [ ] - #commands = re.split('[\n;]+', commands) - commands = commands.split(';') - for comm in commands: - if comm: ## if not an empty string. - if self._is_HPGL_command_known(comm): - #result.append(comm) - result.append(comm + ';') - else: - msg = 'HPGL command `%s` not recognized by %s. Command not sent.' - msg = msg % (comm, self.type) - self._logger.warning(msg) - return ''.join(result) - - - def _sleep_while_buffer_full(self): - ''' - sleeps until the buffer has some room in it. - ''' - if self._buffer_space < self.buffer_size: - while self._buffer_space < self.buffer_size: - time.sleep(0.01) - - - def _slice_string_to_buffer_size(self, data): - result = [ ] - count = int(math.ceil(len(data) / self.buffer_size)) - for i in range(count): - result.append(data[i * self.buffer_size: (i+1) * self.buffer_size]) - return result - - - def _write_string_to_port(self, data): - ''' Write data to serial port. data is expected to be a string.''' - #assert type(data) is str - self._check_is_string(data) - data = self._filter_unrecognized_commands(data) - data = self._slice_string_to_buffer_size(data) - for chunk in data: - self._sleep_while_buffer_full( ) - self._serial_port.write(chunk) - - def _check_is_string(self, data): - if not isinstance(data, (string_types, text_type)): - raise TypeError('string expected.') - - ### PRIVATE QUERIES ### - - def _read_port(self): - '''Read data from serial port.''' - elapsed_time = 0 - total_time = self.maximum_response_wait_time - sleep = 1.0 / 8 - while elapsed_time < total_time: - if self._serial_port.inWaiting( ): + def __init__(self, serial_port): + self.type = "_BasePlotter" + self._logger = get_logger(self.__class__.__name__) + self._serial_port = serial_port + self._hpgl = commands + self._margins = MarginsInterface(self) + self.maximum_response_wait_time = get_config_value("maximum_response_wait_time") + + # this is so that we don't pause while preparing and sending + # full buffers to the plotter. By sending 1/2 buffers we assure + # that the plotter will still have some data to plot while + # receiving the new data + self.buffer_size = int(self._buffer_space / 2) + self.initialize_plotter() + + @property + def margins(self): + """Read-only reference to MarginsInterface.""" + return self._margins + + ### PUBLIC METHODS ### + + def initialize_plotter(self): + self._serial_port.flushInput() + self._serial_port.flushOutput() + self.write(self._hpgl.On()) + self.write(self._hpgl.IN()) + + def write(self, data): + """Public access for writing to serial port. + data can be an iterator, a string or an _HPGL. """ + ## TODO: remove _HPGL from this list... + if isinstance(data, (_Shape, _HPGL)): + data = data.format + try: + self._write_string_to_port(data) + except TypeError: ## must be an iterable... + result = [] + for c in data: + ## TODO: remove _HPGL from this list... + if isinstance(c, (_Shape, _HPGL)): + c = c.format + result.append(c) try: - return self._serial_port.readline(eol='\r') # <-- old pyserial - except: - return self._serial_port.readline() - else: - time.sleep(sleep) - elapsed_time += sleep - msg = 'Waited for %s secs... No response from plotter.' % total_time - raise RuntimeError(msg) - #self._logger.error(msg) - - - @property - def _buffer_space(self): - self._serial_port.flushInput() - self._serial_port.write(self._hpgl.B().format) - bs = self._read_port() - return int(bs) - - def _send_query(self, query): - '''Private method to manage plotter queries.''' - if self._is_HPGL_command_known(query): - self._serial_port.flushInput( ) - self.write(query) - return self._read_port( ) - else: - #print '%s not supported by %s.' % (query, self.id) - msg = 'Command %s not supported by %s.' % (query, self.id) - self._logger.warning(msg) - - - ### PUBLIC QUERIES (PROPERTIES) ### - - @property - def id(self): - '''Get id of plotter. Returns a string.''' - id = self._send_query(self._hpgl.OI( )) - return id.strip('\r') - - @property - def actual_position(self): - '''Output the actual position of the plotter pen. Returns a tuple - (Coordinate(x, y), pen status)''' - response = self._send_query(self._hpgl.OA( )).split(',') - return [Coordinate(eval(response[0]), eval(response[1])), - eval(response[2].strip('\r'))] - - @property - def carousel_type(self): - return self._send_query(self._hpgl.OT( )) - - @property - def commanded_position(self): - '''Output the commanded position of the plotter pen. Returns a tuple - [Coordinate(x, y), pen status]''' - response = self._send_query(self._hpgl.OC( )).split(',') - return [Coordinate(eval(response[0]), eval(response[1])), - eval(response[2].strip('\r'))] - - @property - def digitized_point(self): - '''Returns last digitized point. Returns a tuple - [Coordinate(x, y), pen status]''' - response = self._send_query(self._hpgl.OD( )).split(',') - return [Coordinate(eval(response[0]), eval(response[1])), - eval(response[2].strip('\r'))] - - @property - def output_error(self): - return self._send_query(self._hpgl.OE( )) - - @property - def output_key(self): - return self._send_query(self._hpgl.OK( )) - - @property - def label_length(self): - return self._send_query(self._hpgl.OL( )) - - @property - def options(self): - return self._send_query(self._hpgl.OO( )) - - @property - def output_p1p2(self): - '''Returns the current settings for P1, P2. Returns two Coordinates''' - response = self._send_query(self._hpgl.OP( )).split(',') - cp1 = Coordinate(eval(response[0]), eval(response[1])) - cp2 = Coordinate(eval(response[2]), eval(response[3].strip('\r'))) - return (cp1, cp2) - - @property - def status(self): - return self._send_query(self._hpgl.OS( )) - - - ### DCI (Device Control Instructions) Escape commands ### - - def escape_plotter_on(self): - self.write( self._hpgl.On() ) - - - ## OVERRIDES ## - - def __str__(self): - return '%s in port %s' % (self.type, self._serial_port.portstr) - - def __repr__(self): - return '%s(%s)' % (self.type, self._serial_port.portstr) - - - ## WEIRD STUFF FOR VIRTUAL PLOTTERS ## - - @property - def format(self): - ''' + self._write_string_to_port("".join(result)) + except TypeError: + raise TypeError("Must be a str, iterator, or a _Shape.") + + def write_file(self, filename): + """Sends the HPGL content of the given `filename` to the plotter.""" + with open(filename, "r") as f: + chars = f.read() + chars = chars.replace("\n", ";") + comms = re.split(";+", chars) + comms = [c + ";" for c in comms if c != ""] + self.write(comms) + + ### PRIVATE METHODS ### + + def _is_HPGL_command_known(self, hpglCommand): + if isinstance(hpglCommand, (string_types, text_type)): + command_head = hpglCommand[0:2] + elif hasattr(hpglCommand, "_name"): + command_head = hpglCommand._name + else: + raise TypeError("Don't know type %s" % hpglCommand) + return command_head.upper() in self.allowedHPGLCommands + + def _filter_unrecognized_commands(self, commands): + self._check_is_string(commands) + result = [] + # commands = re.split('[\n;]+', commands) + commands = commands.split(";") + for comm in commands: + if comm: ## if not an empty string. + if self._is_HPGL_command_known(comm): + # result.append(comm) + result.append(comm + ";") + else: + msg = "HPGL command `%s` not recognized by %s. Command not sent." + msg = msg % (comm, self.type) + self._logger.warning(msg) + return "".join(result) + + def _sleep_while_buffer_full(self): + """ + sleeps until the buffer has some room in it. + """ + if self._buffer_space < self.buffer_size: + while self._buffer_space < self.buffer_size: + time.sleep(0.01) + + def _slice_string_to_buffer_size(self, data): + result = [] + count = int(math.ceil(len(data) / self.buffer_size)) + for i in range(count): + result.append(data[i * self.buffer_size : (i + 1) * self.buffer_size]) + return result + + def _write_string_to_port(self, data): + """ Write data to serial port. data is expected to be a string.""" + # assert type(data) is str + self._check_is_string(data) + data = self._filter_unrecognized_commands(data) + data = self._slice_string_to_buffer_size(data) + for chunk in data: + self._sleep_while_buffer_full() + self._serial_port.write(chunk) + + def _check_is_string(self, data): + if not isinstance(data, (string_types, text_type)): + raise TypeError("string expected.") + + ### PRIVATE QUERIES ### + + def _read_port(self): + """Read data from serial port.""" + elapsed_time = 0 + total_time = self.maximum_response_wait_time + sleep = 1.0 / 8 + while elapsed_time < total_time: + if self._serial_port.inWaiting(): + try: + return self._serial_port.readline(eol="\r") # <-- old pyserial + except: + return self._serial_port.readline() + else: + time.sleep(sleep) + elapsed_time += sleep + msg = "Waited for %s secs... No response from plotter." % total_time + raise RuntimeError(msg) + # self._logger.error(msg) + + @property + def _buffer_space(self): + self._serial_port.flushInput() + self._serial_port.write(self._hpgl.B().format) + bs = self._read_port() + return int(bs) + + def _send_query(self, query): + """Private method to manage plotter queries.""" + if self._is_HPGL_command_known(query): + self._serial_port.flushInput() + self.write(query) + return self._read_port() + else: + # print '%s not supported by %s.' % (query, self.id) + msg = "Command %s not supported by %s." % (query, self.id) + self._logger.warning(msg) + + ### PUBLIC QUERIES (PROPERTIES) ### + + @property + def id(self): + """Get id of plotter. Returns a string.""" + id = self._send_query(self._hpgl.OI()) + return id.strip("\r") + + @property + def actual_position(self): + """Output the actual position of the plotter pen. Returns a tuple + (Coordinate(x, y), pen status)""" + response = self._send_query(self._hpgl.OA()).split(",") + return [ + Coordinate(eval(response[0]), eval(response[1])), + eval(response[2].strip("\r")), + ] + + @property + def carousel_type(self): + return self._send_query(self._hpgl.OT()) + + @property + def commanded_position(self): + """Output the commanded position of the plotter pen. Returns a tuple + [Coordinate(x, y), pen status]""" + response = self._send_query(self._hpgl.OC()).split(",") + return [ + Coordinate(eval(response[0]), eval(response[1])), + eval(response[2].strip("\r")), + ] + + @property + def digitized_point(self): + """Returns last digitized point. Returns a tuple + [Coordinate(x, y), pen status]""" + response = self._send_query(self._hpgl.OD()).split(",") + return [ + Coordinate(eval(response[0]), eval(response[1])), + eval(response[2].strip("\r")), + ] + + @property + def output_error(self): + return self._send_query(self._hpgl.OE()) + + @property + def output_key(self): + return self._send_query(self._hpgl.OK()) + + @property + def label_length(self): + return self._send_query(self._hpgl.OL()) + + @property + def options(self): + return self._send_query(self._hpgl.OO()) + + @property + def output_p1p2(self): + """Returns the current settings for P1, P2. Returns two Coordinates""" + response = self._send_query(self._hpgl.OP()).split(",") + cp1 = Coordinate(eval(response[0]), eval(response[1])) + cp2 = Coordinate(eval(response[2]), eval(response[3].strip("\r"))) + return (cp1, cp2) + + @property + def status(self): + return self._send_query(self._hpgl.OS()) + + ### DCI (Device Control Instructions) Escape commands ### + + def escape_plotter_on(self): + self.write(self._hpgl.On()) + + ## OVERRIDES ## + + def __str__(self): + return "%s in port %s" % (self.type, self._serial_port.portstr) + + def __repr__(self): + return "%s(%s)" % (self.type, self._serial_port.portstr) + + ## WEIRD STUFF FOR VIRTUAL PLOTTERS ## + + @property + def format(self): + """ This lets us pass the VirtualPlotter directly to io.view() Returns None if called on a plotter with a real serial port. - ''' - if isinstance(self._serial_port, VirtualSerialPort): - return self._serial_port.format - else: - return None - - - def clear(self): - ''' + """ + if isinstance(self._serial_port, VirtualSerialPort): + return self._serial_port.format + else: + return None + + def clear(self): + """ Tells the virtual serial port to forget its stored commands. Used to "erase" the drawing on the virtual plotter. - ''' - if isinstance(self._serial_port, VirtualSerialPort): - self._serial_port.clear() - else: - pass - - + """ + if isinstance(self._serial_port, VirtualSerialPort): + self._serial_port.clear() + else: + pass diff --git a/chiplotle/plotters/dpx2000.py b/chiplotle/plotters/dpx2000.py index 71c85c2..967e9b5 100644 --- a/chiplotle/plotters/dpx2000.py +++ b/chiplotle/plotters/dpx2000.py @@ -8,19 +8,86 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class DPX2000(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AR','BL','CA','CC', - 'CI','CP','CS','CT','DC','DF','DI','DL','DP','DR','DT','EA','EP', - 'ER','ES','EW','FP','FS','FT','IM','IN','IP','IW','LB','LO','LT', - 'OA','OC','OD','OE','OF','OH','OI','OL','OO','OP','OS','OT','OW', - 'PA','PB','PD','PM','PU','PR','PT','RA','RO','RR','SA','SC','SI', - 'SL','SM','SP','SR','SS','TL','UC','UF','VS','WG','XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "DPX-2000" - - +class DPX2000(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AR", + "BL", + "CA", + "CC", + "CI", + "CP", + "CS", + "CT", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FS", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LO", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PM", + "PU", + "PR", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VS", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "DPX-2000" diff --git a/chiplotle/plotters/dpx2200.py b/chiplotle/plotters/dpx2200.py index b70949a..5c53df6 100644 --- a/chiplotle/plotters/dpx2200.py +++ b/chiplotle/plotters/dpx2200.py @@ -8,19 +8,86 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class DPX2200(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AR','BL','CA','CC', - 'CI','CP','CS','CT','DC','DF','DI','DL','DP','DR','DT','EA','EP', - 'ER','ES','EW','FP','FS','FT','IM','IN','IP','IW','LB','LO','LT', - 'OA','OC','OD','OE','OF','OH','OI','OL','OO','OP','OS','OT','OW', - 'PA','PB','PD','PM','PU','PR','PT','RA','RO','RR','SA','SC','SI', - 'SL','SM','SP','SR','SS','TL','UC','UF','VS','WG','XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "DPX-2200" - - +class DPX2200(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AR", + "BL", + "CA", + "CC", + "CI", + "CP", + "CS", + "CT", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FS", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LO", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PM", + "PU", + "PR", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VS", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "DPX-2200" diff --git a/chiplotle/plotters/dpx3300.py b/chiplotle/plotters/dpx3300.py index e30afaa..631eedd 100644 --- a/chiplotle/plotters/dpx3300.py +++ b/chiplotle/plotters/dpx3300.py @@ -8,17 +8,86 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class DPX3300(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AR','BL','CA','CC', - 'CI','CP','CS','CT','DC','DF','DI','DL','DP','DR','DT','EA','EP', - 'ER','ES','EW','FP','FS','FT','IM','IN','IP','IW','LB','LO','LT', - 'OA','OC','OD','OE','OF','OH','OI','OL','OO','OP','OS','OT','OW', - 'PA','PB','PD','PM','PU','PR','PT','RA','RO','RR','SA','SC','SI', - 'SL','SM','SP','SR','SS','TL','UC','UF','VS','WG','XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "DPX-3300" +class DPX3300(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AR", + "BL", + "CA", + "CC", + "CI", + "CP", + "CS", + "CT", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FS", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LO", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PM", + "PU", + "PR", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VS", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "DPX-3300" diff --git a/chiplotle/plotters/drawingplotter.py b/chiplotle/plotters/drawingplotter.py index a2d6625..07000cc 100644 --- a/chiplotle/plotters/drawingplotter.py +++ b/chiplotle/plotters/drawingplotter.py @@ -1,253 +1,291 @@ -''' +""" * This file is part of chiplotle. * * http://music.columbia.edu/cmc/chiplotle -''' +""" from __future__ import print_function from __future__ import division from __future__ import unicode_literals from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.baseplotter import _BasePlotter from chiplotle.geometry.core.coordinate import Coordinate -class _DrawingPlotter(_BasePlotter): +class _DrawingPlotter(_BasePlotter): - ## motion ## + ## motion ## - def goto(self, *args): - ''' + def goto(self, *args): + """ Alias for PA( ) with only one point. Pass in either an x, y pair: goto(100, 100) or a tuple pair: goto((x, y)) or a Coordinate: goto(Coordinate(100,100)) - ''' - if len(args) == 1: - self.write(self._hpgl.PA([args])) - elif len(args) == 2: - self.write(self._hpgl.PA([args])) - else: - print("Please use either: goto(x, y) or goto(Coordinate(x, y))") - - def goto_center(self): - self.write(self._hpgl.PA([self.margins.soft.center])) - - def goto_bottom_left(self): - coord = self.margins.soft.bottom_left - ## pad with 1 to guarantee plotter motion... - coord = coord.x + 1, coord.y + 1 - self.write(self._hpgl.PA([coord])) - - def goto_bottom_right(self): - coord = self.margins.soft.bottom_right - ## pad with 1 to guarantee plotter motion... - coord = coord.x - 1, coord.y + 1 - self.write(self._hpgl.PA([coord])) - - def goto_origin(self): - self.write(self._hpgl.PA([(0,0)])) - - def goto_top_left(self): - coord = self.margins.soft.top_left - ## pad with 1 to guarantee plotter motion... - coord = coord.x + 1, coord.y - 1 - self.write(self._hpgl.PA([coord])) - - def goto_top_right(self): - coord = self.margins.soft.top_right - ## pad with 1 to guarantee plotter motion... - coord = coord.x - 1, coord.y - 1 - self.write(self._hpgl.PA([coord])) - - def nudge(self, x, y): - self.write(self._hpgl.PR([(x,y)])) - - - ## pen control ## - - def pen_down(self, coords = None): - """Pen Down.""" - self.write(self._hpgl.PD(coords)) - - def pen_up(self, coords = None): - """Pen Up.""" - self.write(self._hpgl.PU(coords)) - - def select_pen(self, penNum = 0): - self.write(self._hpgl.SP(penNum)) - - - ## origin setting ## - - def set_origin_bottom_left(self): """ + if len(args) == 1: + self.write(self._hpgl.PA([args])) + elif len(args) == 2: + self.write(self._hpgl.PA([args])) + else: + print("Please use either: goto(x, y) or goto(Coordinate(x, y))") + + def goto_center(self): + self.write(self._hpgl.PA([self.margins.soft.center])) + + def goto_bottom_left(self): + coord = self.margins.soft.bottom_left + ## pad with 1 to guarantee plotter motion... + coord = coord.x + 1, coord.y + 1 + self.write(self._hpgl.PA([coord])) + + def goto_bottom_right(self): + coord = self.margins.soft.bottom_right + ## pad with 1 to guarantee plotter motion... + coord = coord.x - 1, coord.y + 1 + self.write(self._hpgl.PA([coord])) + + def goto_origin(self): + self.write(self._hpgl.PA([(0, 0)])) + + def goto_top_left(self): + coord = self.margins.soft.top_left + ## pad with 1 to guarantee plotter motion... + coord = coord.x + 1, coord.y - 1 + self.write(self._hpgl.PA([coord])) + + def goto_top_right(self): + coord = self.margins.soft.top_right + ## pad with 1 to guarantee plotter motion... + coord = coord.x - 1, coord.y - 1 + self.write(self._hpgl.PA([coord])) + + def nudge(self, x, y): + self.write(self._hpgl.PR([(x, y)])) + + ## pen control ## + + def pen_down(self, coords=None): + """Pen Down.""" + self.write(self._hpgl.PD(coords)) + + def pen_up(self, coords=None): + """Pen Up.""" + self.write(self._hpgl.PU(coords)) + + def select_pen(self, penNum=0): + self.write(self._hpgl.SP(penNum)) + + ## origin setting ## + + def set_origin_bottom_left(self): + """ Set origin to bottom, left """ - self.write(self._hpgl.SC()) #reset scaling first! - self.write(self._hpgl.IP( - [(self.margins.soft.left, self.margins.soft.bottom), - (self.margins.soft.right, self.margins.soft.top)])) - self.write(self._hpgl.SC([(0, self.margins.soft.width), - (0, self.margins.soft.height)])) - - def set_origin_top_left(self): - """ + self.write(self._hpgl.SC()) # reset scaling first! + self.write( + self._hpgl.IP( + [ + (self.margins.soft.left, self.margins.soft.bottom), + (self.margins.soft.right, self.margins.soft.top), + ] + ) + ) + self.write( + self._hpgl.SC([(0, self.margins.soft.width), (0, self.margins.soft.height)]) + ) + + def set_origin_top_left(self): + """ Set origin to upper, left """ - self.write(self._hpgl.SC()) #reset scaling first! - self.write(self._hpgl.IP( - [(self.margins.soft.left, self.margins.soft.top), - (self.margins.soft.right, self.margins.soft.bottom)])) - self.write(self._hpgl.SC([(0, self.margins.soft.width), - (0, -self.margins.soft.height)])) - - - def set_origin_bottom_right(self): - """ + self.write(self._hpgl.SC()) # reset scaling first! + self.write( + self._hpgl.IP( + [ + (self.margins.soft.left, self.margins.soft.top), + (self.margins.soft.right, self.margins.soft.bottom), + ] + ) + ) + self.write( + self._hpgl.SC( + [(0, self.margins.soft.width), (0, -self.margins.soft.height)] + ) + ) + + def set_origin_bottom_right(self): + """ Set origin to bottom, right """ - self.write(self._hpgl.SC()) #reset scaling first! - self.write(self._hpgl.IP( - [(self.margins.soft.left, self.margins.soft.top), - (self.margins.soft.right, self.margins.soft.bottom)])) - self.write(self._hpgl.SC([(-self.margins.soft.width,0), - (self.margins.soft.height,0)])) - - def set_origin_top_right(self): - """ + self.write(self._hpgl.SC()) # reset scaling first! + self.write( + self._hpgl.IP( + [ + (self.margins.soft.left, self.margins.soft.top), + (self.margins.soft.right, self.margins.soft.bottom), + ] + ) + ) + self.write( + self._hpgl.SC( + [(-self.margins.soft.width, 0), (self.margins.soft.height, 0)] + ) + ) + + def set_origin_top_right(self): + """ Set origin to top, right """ - self.write(self._hpgl.SC()) #reset scaling first! - self.write(self._hpgl.IP( - [(self.margins.soft.left, self.margins.soft.bottom), - (self.margins.soft.right, self.margins.soft.top)])) - self.write(self._hpgl.SC([(-self.margins.soft.width,0), - (-self.margins.soft.height,0)])) - - def set_origin_center(self): - """ + self.write(self._hpgl.SC()) # reset scaling first! + self.write( + self._hpgl.IP( + [ + (self.margins.soft.left, self.margins.soft.bottom), + (self.margins.soft.right, self.margins.soft.top), + ] + ) + ) + self.write( + self._hpgl.SC( + [(-self.margins.soft.width, 0), (-self.margins.soft.height, 0)] + ) + ) + + def set_origin_center(self): + """ Set origin to center, center """ - self.write(self._hpgl.SC()) #reset scaling first! - self.write(self._hpgl.IP( - [(self.margins.soft.left, self.margins.soft.bottom), - (self.margins.soft.right, self.margins.soft.top)])) - - w_div_2 = self.margins.soft.width/2 - h_div_2 = self.margins.soft.height/2 - - self.write(self._hpgl.SC([(-w_div_2, w_div_2), - (-h_div_2, h_div_2)])) - - def set_origin_current_location(self): - """ + self.write(self._hpgl.SC()) # reset scaling first! + self.write( + self._hpgl.IP( + [ + (self.margins.soft.left, self.margins.soft.bottom), + (self.margins.soft.right, self.margins.soft.top), + ] + ) + ) + + w_div_2 = self.margins.soft.width / 2 + h_div_2 = self.margins.soft.height / 2 + + self.write(self._hpgl.SC([(-w_div_2, w_div_2), (-h_div_2, h_div_2)])) + + def set_origin_current_location(self): + """ Set origin to current location """ - self.write(self._hpgl.SC()) #reset scaling first! - self.write(self._hpgl.IP( - [(self.margins.soft.left, self.margins.soft.bottom), - (self.margins.soft.right, self.margins.soft.top)])) - - position = self.actual_position[0] - posx = float(position.x) - posy = float(position.y) - p1x = self.margins.hard.left - posx - p1y = self.margins.hard.bottom - posy - p2x = p1x + self.margins.hard.width - p2y = p1y + self.margins.hard.height - - self.write(self._hpgl.SC([(p1x,p2x), (p1y,p2y)])) - - position = self.actual_position[0] - posx = float(position.x) - posy = float(position.y) - - self.set_origin_to_point([posx, posy]) - - def set_origin_to_point(self, point): - """ + self.write(self._hpgl.SC()) # reset scaling first! + self.write( + self._hpgl.IP( + [ + (self.margins.soft.left, self.margins.soft.bottom), + (self.margins.soft.right, self.margins.soft.top), + ] + ) + ) + + position = self.actual_position[0] + posx = float(position.x) + posy = float(position.y) + p1x = self.margins.hard.left - posx + p1y = self.margins.hard.bottom - posy + p2x = p1x + self.margins.hard.width + p2y = p1y + self.margins.hard.height + + self.write(self._hpgl.SC([(p1x, p2x), (p1y, p2y)])) + + position = self.actual_position[0] + posx = float(position.x) + posy = float(position.y) + + self.set_origin_to_point([posx, posy]) + + def set_origin_to_point(self, point): + """ Set origin to given point [x, y] """ - self.write(self._hpgl.SC()) #reset scaling first! - self.write(self._hpgl.IP( - [(self.margins.soft.left, self.margins.soft.bottom), - (self.margins.soft.right, self.margins.soft.top)])) - - posx = point[0] - posy = point[1] - p1x = self.margins.hard.left - posx - p1y = self.margins.hard.bottom - posy - p2x = p1x + self.margins.hard.width - p2y = p1y + self.margins.hard.height - - self.write(self._hpgl.SC([(p1x,p2x),(p1y,p2y)])) - - def rotate(self, angle = 0): - self.write(self._hpgl.RO(angle)) - - def scale(self, xMin, xMax, yMin, yMax): - self.write(self._hpgl.SC([(xMin, xMax), (yMin, yMax)])) + self.write(self._hpgl.SC()) # reset scaling first! + self.write( + self._hpgl.IP( + [ + (self.margins.soft.left, self.margins.soft.bottom), + (self.margins.soft.right, self.margins.soft.top), + ] + ) + ) - ## window setting ## + posx = point[0] + posy = point[1] + p1x = self.margins.hard.left - posx + p1y = self.margins.hard.bottom - posy + p2x = p1x + self.margins.hard.width + p2y = p1y + self.margins.hard.height - def set_plot_window(self, left_bottom, right_top): - '''Programatically set new margins for the plotting window. - Arguments must be two tuple pairs (x, y) or two Coordinates.''' - try: - left_bottom = Coordinate(left_bottom) - right_top = Coordinate(right_top) - except TypeError: - print("Please pass in two coordinate pairs.") - return + self.write(self._hpgl.SC([(p1x, p2x), (p1y, p2y)])) - print("Setting plot window...") - x1 = left_bottom.x - y1 = left_bottom.y - print("left: %d bottom: %d" % (x1, y1)) - x2 = right_top.x - y2 = right_top.y - print("right: %d top: %d" % (x2, y2)) + def rotate(self, angle=0): + self.write(self._hpgl.RO(angle)) - self.write(self._hpgl.IP([(x1, y1), (x2, y2)])) - self.write(self._hpgl.IW([(x1, y1), (x2, y2)])) + def scale(self, xMin, xMax, yMin, yMax): + self.write(self._hpgl.SC([(xMin, xMax), (yMin, yMax)])) - print("Plot window set to:") - print(self.output_p1p2) + ## window setting ## + def set_plot_window(self, left_bottom, right_top): + """Programatically set new margins for the plotting window. + Arguments must be two tuple pairs (x, y) or two Coordinates.""" + try: + left_bottom = Coordinate(left_bottom) + right_top = Coordinate(right_top) + except TypeError: + print("Please pass in two coordinate pairs.") + return - ## paper control ## + print("Setting plot window...") + x1 = left_bottom.x + y1 = left_bottom.y + print("left: %d bottom: %d" % (x1, y1)) + x2 = right_top.x + y2 = right_top.y + print("right: %d top: %d" % (x2, y2)) - def advance_frame(self): - self.write(self._hpgl.FR()) + self.write(self._hpgl.IP([(x1, y1), (x2, y2)])) + self.write(self._hpgl.IW([(x1, y1), (x2, y2)])) - def advance_full_page(self): - self.write(self._hpgl.AF()) + print("Plot window set to:") + print(self.output_p1p2) - def advance_half_page(self): - self.write(self._hpgl.AH()) + ## paper control ## - def enable_cut_line(self, n): - self.write(self._hpgl.EC(n)) + def advance_frame(self): + self.write(self._hpgl.FR()) - def page_feed(self, n = None): - self.write(self._hpgl.PG(n)) + def advance_full_page(self): + self.write(self._hpgl.AF()) + def advance_half_page(self): + self.write(self._hpgl.AH()) - ## digitizer control ## + def enable_cut_line(self, n): + self.write(self._hpgl.EC(n)) - def clear_digitizer(self): - self.write(self._hpgl.DC()) + def page_feed(self, n=None): + self.write(self._hpgl.PG(n)) - def digitize_point(self): - self.write(self._hpgl.DP()) + ## digitizer control ## + def clear_digitizer(self): + self.write(self._hpgl.DC()) - ## misc i/o, plotter queries, errors, setup ## + def digitize_point(self): + self.write(self._hpgl.DP()) - def replot(self, n = 1): - self.write(self._hpgl.RP(n)) + ## misc i/o, plotter queries, errors, setup ## + def replot(self, n=1): + self.write(self._hpgl.RP(n)) diff --git a/chiplotle/plotters/dxy1300.py b/chiplotle/plotters/dxy1300.py index 2f42e20..05a91ee 100644 --- a/chiplotle/plotters/dxy1300.py +++ b/chiplotle/plotters/dxy1300.py @@ -8,17 +8,73 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class DXY1300(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AR','CA','CI','CP', - 'CS','DC','DF','DI','DP','DR','DT','EA','ER','EW','FT','IM','IN', - 'IP','IW','LB','LT','OA','OC','OD','OE','OF','OH','OI','OO','OP', - 'OS','OW','PA','PU','PD','PR','PS','PT','RA','RO','RR','SA','SC', - 'SI','SL','SM','SP','SR','SS','TL','UC','VS','WG','XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "DXY-1300" - +class DXY1300(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AR", + "CA", + "CI", + "CP", + "CS", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "ER", + "EW", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OO", + "OP", + "OS", + "OW", + "PA", + "PU", + "PD", + "PR", + "PS", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "DXY-1300" diff --git a/chiplotle/plotters/dxy880.py b/chiplotle/plotters/dxy880.py index bbbf941..c12ef6b 100644 --- a/chiplotle/plotters/dxy880.py +++ b/chiplotle/plotters/dxy880.py @@ -8,17 +8,72 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class DXY880(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AR','CA','CI','CP', - 'CS','DC','DF','DI','DP','DR','DT','EA','ER','EW','FT','IM','IN', - 'IP','IW','LB','LT','OA','OC','OD','OE','OF','OI','OO','OP', - 'OS','OW','PA','PU','PD','PR','PS','PT','RA','RO','RR','SA','SC', - 'SI','SL','SM','SP','SR','SS','TL','UC','VS','WG','XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "DXY-880" - +class DXY880(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AR", + "CA", + "CI", + "CP", + "CS", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "ER", + "EW", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OI", + "OO", + "OP", + "OS", + "OW", + "PA", + "PU", + "PD", + "PR", + "PS", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "DXY-880" diff --git a/chiplotle/plotters/hp7475a.py b/chiplotle/plotters/hp7475a.py index 5bb6dad..069caad 100644 --- a/chiplotle/plotters/hp7475a.py +++ b/chiplotle/plotters/hp7475a.py @@ -9,17 +9,73 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class HP7475A(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AR','CA','CI','CP', - 'CS','DC','DF','DI','DP','DR','DT','EA','ER','EW','FT','IM','IN', - 'IP','IW','LB','LT','OA','OC','OD','OE','OF','OH','OI','OO','OP', - 'OS','OW','PA','PD','PR','PS','PT','PU','RA','RO','RR','SA','SC', - 'SI','SL','SM','SP','SR','SS','TL','UC','VS','WG','XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "HP7475A" - +class HP7475A(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AR", + "CA", + "CI", + "CP", + "CS", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "ER", + "EW", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OO", + "OP", + "OS", + "OW", + "PA", + "PD", + "PR", + "PS", + "PT", + "PU", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "HP7475A" diff --git a/chiplotle/plotters/hp7550a.py b/chiplotle/plotters/hp7550a.py index d91ff47..c8b848c 100644 --- a/chiplotle/plotters/hp7550a.py +++ b/chiplotle/plotters/hp7550a.py @@ -8,19 +8,102 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class HP7550A(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AF','AH','AP','AR', - 'BF','BL','CA','CC','CI','CM','CP','CS','CT','CV','DC','DF','DI', - 'DL','DP','DR','DS','DT','EA','EP','ER','ES','EW','FP','FS','FT', - 'GC','IM','IN','IP','IV','IW','KY','LB','LO','LT','NR','OA','OC', - 'OD','OE','OF','OG','OH','OI','OK','OL','OO','OP','OS','OT','OW', - 'PA','PB','PD','PG','PM','PR','PT','PU','RA','RO','RP','RR','SA', - 'SC','SI','SL','SM','SP','SR','SS','TL','UC','UF','VS','WD','WG', - 'XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "HP7550A" +class HP7550A(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AF", + "AH", + "AP", + "AR", + "BF", + "BL", + "CA", + "CC", + "CI", + "CM", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DS", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FS", + "FT", + "GC", + "IM", + "IN", + "IP", + "IV", + "IW", + "KY", + "LB", + "LO", + "LT", + "NR", + "OA", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PG", + "PM", + "PR", + "PT", + "PU", + "RA", + "RO", + "RP", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VS", + "WD", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "HP7550A" diff --git a/chiplotle/plotters/hp7575a.py b/chiplotle/plotters/hp7575a.py index bb1af49..f2d9c2e 100644 --- a/chiplotle/plotters/hp7575a.py +++ b/chiplotle/plotters/hp7575a.py @@ -3,11 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.hp7576a import HP7576A + class HP7575A(HP7576A): def __init__(self, ser, **kwargs): HP7576A.__init__(self, ser, **kwargs) self.type = "HP7575A" - diff --git a/chiplotle/plotters/hp7576a.py b/chiplotle/plotters/hp7576a.py index bbc7577..cfc988e 100644 --- a/chiplotle/plotters/hp7576a.py +++ b/chiplotle/plotters/hp7576a.py @@ -3,19 +3,88 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter + class HP7576A(_DrawingPlotter): def __init__(self, ser, **kwargs): ## allowedHPGLCommands must be set prior to base class init. - self.allowedHPGLCommands = tuple(['\x1b.','AA','AP','AR','CA','CI', - 'CM','CP','CS','CT','DC','DF','DI','DP','DR','DS','DT','DV','EA', - 'EP','ER','ES','EW','FP','FT','IM','IN','IP','IV','IW','LB','LO', - 'LT','NR','OA','OC','OD','OE','OF','OH','OI','OO','OP','OS','OT', - 'OW','PA','PD','PM','PR','PS','PT','PU','RA','RO','RR','SA','SC', - 'SI','SL','SM','SP','SR','SS','TL','UC','VS','WG','XT','YT']) + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AP", + "AR", + "CA", + "CI", + "CM", + "CP", + "CS", + "CT", + "DC", + "DF", + "DI", + "DP", + "DR", + "DS", + "DT", + "DV", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FT", + "IM", + "IN", + "IP", + "IV", + "IW", + "LB", + "LO", + "LT", + "NR", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PD", + "PM", + "PR", + "PS", + "PT", + "PU", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", + ] + ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "HP7576A" - diff --git a/chiplotle/plotters/hp7585b.py b/chiplotle/plotters/hp7585b.py index c496fe9..b901a77 100644 --- a/chiplotle/plotters/hp7585b.py +++ b/chiplotle/plotters/hp7585b.py @@ -3,21 +3,98 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter + class HP7585B(_DrawingPlotter): - '''Use with Houston Instruments DMP-60.''' + """Use with Houston Instruments DMP-60.""" + def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AP','AR', - 'AS','BL','CA','CI','CP','CS','CT','CV','DC','DF', - 'DI','DP','DR','DT','EA','EP','ER','ES','EW','FP', - 'FT','GC','GM','GP','IM','IN','IP','IW','KY', - 'LB','LO','LT','NR','OA','OB','OC','OD','OE','OF','OG','OH','OI', - 'OK','OL','OO','OP','OS','OT','OW','PA','PB','PD','PM','PR', - 'PT','PU','RA','RL','RO','RR','SA','SC','SG','SI','SL','SM', - 'SP','SR','SS','TL','UF','VS','WG','XT','YT']) + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AP", + "AR", + "AS", + "BL", + "CA", + "CI", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FT", + "GC", + "GM", + "GP", + "IM", + "IN", + "IP", + "IW", + "KY", + "LB", + "LO", + "LT", + "NR", + "OA", + "OB", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PM", + "PR", + "PT", + "PU", + "RA", + "RL", + "RO", + "RR", + "SA", + "SC", + "SG", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UF", + "VS", + "WG", + "XT", + "YT", + ] + ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "HP7585B" - diff --git a/chiplotle/plotters/hp7595a.py b/chiplotle/plotters/hp7595a.py index d532609..e09f631 100644 --- a/chiplotle/plotters/hp7595a.py +++ b/chiplotle/plotters/hp7595a.py @@ -9,20 +9,114 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class HP7595A(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AF','AH','AP','AR', - 'AS','BF','BL','CA','CC','CI','CM','CP','CS','CT','CV','DC','DF', - 'DI','DL','DP','DR','DS','DT','EA','EC','EP','ER','ES','EW','FP', - 'FR','FS','FT','GC','GM','GP','IC','IM','IN','IP','IV','IW','KY', - 'LB','LO','LT','NR','OA','OB','OC','OD','OE','OF','OG','OH','OI', - 'OK','OL','OO','OP','OS','OT','OW','PA','PB','PD','PG','PM','PR', - 'PT','PU','RA','RL','RO','RP','RR','SA','SC','SG','SI','SL','SM', - 'SP','SR','SS','TL','UC','UF','VA','VN','VS','WD','WG','XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "HP7595A" +class HP7595A(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AF", + "AH", + "AP", + "AR", + "AS", + "BF", + "BL", + "CA", + "CC", + "CI", + "CM", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DS", + "DT", + "EA", + "EC", + "EP", + "ER", + "ES", + "EW", + "FP", + "FR", + "FS", + "FT", + "GC", + "GM", + "GP", + "IC", + "IM", + "IN", + "IP", + "IV", + "IW", + "KY", + "LB", + "LO", + "LT", + "NR", + "OA", + "OB", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PG", + "PM", + "PR", + "PT", + "PU", + "RA", + "RL", + "RO", + "RP", + "RR", + "SA", + "SC", + "SG", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VA", + "VN", + "VS", + "WD", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "HP7595A" diff --git a/chiplotle/plotters/hp7596a.py b/chiplotle/plotters/hp7596a.py index 91ee9c9..5c153a9 100644 --- a/chiplotle/plotters/hp7596a.py +++ b/chiplotle/plotters/hp7596a.py @@ -9,20 +9,114 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter -class HP7596A(_DrawingPlotter): - def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple(['\x1b.', 'AA','AF','AH','AP','AR', - 'AS','BF','BL','CA','CC','CI','CM','CP','CS','CT','CV','DC','DF', - 'DI','DL','DP','DR','DS','DT','EA','EC','EP','ER','ES','EW','FP', - 'FR','FS','FT','GC','GM','GP','IC','IM','IN','IP','IV','IW','KY', - 'LB','LO','LT','NR','OA','OB','OC','OD','OE','OF','OG','OH','OI', - 'OK','OL','OO','OP','OS','OT','OW','PA','PB','PD','PG','PM','PR', - 'PT','PU','RA','RL','RO','RP','RR','SA','SC','SG','SI','SL','SM', - 'SP','SR','SS','TL','UC','UF','VA','VN','VS','WD','WG','XT','YT']) - _DrawingPlotter.__init__(self, ser, **kwargs) - self.type = "HP7596A" +class HP7596A(_DrawingPlotter): + def __init__(self, ser, **kwargs): + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AF", + "AH", + "AP", + "AR", + "AS", + "BF", + "BL", + "CA", + "CC", + "CI", + "CM", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DS", + "DT", + "EA", + "EC", + "EP", + "ER", + "ES", + "EW", + "FP", + "FR", + "FS", + "FT", + "GC", + "GM", + "GP", + "IC", + "IM", + "IN", + "IP", + "IV", + "IW", + "KY", + "LB", + "LO", + "LT", + "NR", + "OA", + "OB", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PG", + "PM", + "PR", + "PT", + "PU", + "RA", + "RL", + "RO", + "RP", + "RR", + "SA", + "SC", + "SG", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VA", + "VN", + "VS", + "WD", + "WG", + "XT", + "YT", + ] + ) + _DrawingPlotter.__init__(self, ser, **kwargs) + self.type = "HP7596A" diff --git a/chiplotle/plotters/interactive/interactive_commands.py b/chiplotle/plotters/interactive/interactive_commands.py index ce12f16..a6f172b 100644 --- a/chiplotle/plotters/interactive/interactive_commands.py +++ b/chiplotle/plotters/interactive/interactive_commands.py @@ -5,11 +5,12 @@ from builtins import int from builtins import input from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.hpgl.commands import SC, IP, IW -''' +""" Interactive plotter routines. Note that these routines may not work on your plotter. They are @@ -19,16 +20,17 @@ pen moves as attempts to reset the origin, which interferes with these routines. -''' +""" + def interactive_set_plot_window(plotter): - ''' + """ Interactive routine to manually move the pen to set the margins of the plotting window. - ''' + """ plotter.write(IP()) plotter.write(IW()) - #plotter.write(SC()) + # plotter.write(SC()) print("Interactive set plot window:") print("Move pen to lower left and press enter.") @@ -45,17 +47,16 @@ def interactive_set_plot_window(plotter): plotter.set_plot_window(Coordinate(x1, y1), Coordinate(x2, y2)) - ''' + """ from chiplotle.plotters.interactive.interactive_commands import * interactive_set_plot_window(plotter) - ''' - + """ def interactive_set_plot_window_and_units(plotter): - ''' + """ User sets window size and then defines units inside of that window. - ''' + """ plotter.write(IP()) plotter.write(IW()) plotter.write(SC()) @@ -71,21 +72,21 @@ def interactive_set_plot_window_and_units(plotter): print("Enter value for top side (height of plot in your units):") top = int(input()) - plotter.write(SC([left,right,bottom,top])) + plotter.write(SC([left, right, bottom, top])) print("new soft margins:") print(plotter.margins.soft) - ''' + """ from chiplotle.interactive.interactive_commands import * interactive_set_plot_window_and_units(plotter) - ''' + """ def interactive_set_plot_window_auto_units(plotter): - ''' + """ User sets window size and then units are automatically set to user's choise of inches, millimeters, or centimeters. - ''' + """ plotter.write(IP()) plotter.write(IW()) plotter.write(SC()) @@ -98,14 +99,14 @@ def interactive_set_plot_window_auto_units(plotter): width = plotter.margins.soft.width height = plotter.margins.soft.height - inches_w = width/1016.0 - inches_h = height/1016.0 + inches_w = width / 1016.0 + inches_h = height / 1016.0 - cm_w = width/400.0 - cm_h = height/400.0 + cm_w = width / 400.0 + cm_h = height / 400.0 - mm_w = width/40.0 - mm_h = width/40.0 + mm_w = width / 40.0 + mm_h = width / 40.0 print("Window size is:") print("%f inches x %f inches" % (inches_w, inches_h)) @@ -135,52 +136,53 @@ def interactive_set_plot_window_auto_units(plotter): print("That wasn't one of the choices!") return - plotter.write(IP([left, bottom,right,top])) - plotter.write(SC([0,1,0,1])) - #plotter.write(IP([left, bottom, orig_right, orig_top])) - + plotter.write(IP([left, bottom, right, top])) + plotter.write(SC([0, 1, 0, 1])) + # plotter.write(IP([left, bottom, orig_right, orig_top])) - #These margins will be WRONG!!! They'll be the floor integer margins, - #not the margins set via the set_plot_window() above. ARRRRG! + # These margins will be WRONG!!! They'll be the floor integer margins, + # not the margins set via the set_plot_window() above. ARRRRG! print("new soft margins:") print(plotter.margins.soft) - ''' + """ from chiplotle.plotters.interactive.interactive_commands import * interactive_set_plot_window_auto_units(plotter) - ''' + """ def interactive_define_polygon_simple(plotter): - ''' + """ Interactive routine to define points in a PolygonSimple object. - ''' + """ from chiplotle.hpgl.compound.polygon_simple import PolygonSimple points = [] print("Interactive define PolygonSimple:") - print("Move pen to each point and press enter. Press x when finished adding points.") + print( + "Move pen to each point and press enter. Press x when finished adding points." + ) print("The final point (a duplicate of first point) will be added automatically.") while True: input = input() - if input is 'x': - break; + if input is "x": + break point = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) points.append(point) print("added:") print(point) - poly = PolygonSimple([0,0], points) + poly = PolygonSimple([0, 0], points) return poly def interactive_define_rectangle(plotter): - ''' + """ Interactive routine to define points in a Rectangle object. - ''' + """ from chiplotle.hpgl.compound.rectangle import Rectangle points = [] @@ -203,16 +205,17 @@ def interactive_define_rectangle(plotter): return rectangle -''' + +""" from chiplotle.plotters.interactive.interactive_commands import * interactive_define_rectangle(plotter) -''' +""" def interactive_define_ellipse(plotter): - ''' + """ Interactive routine to define center and radii of an ellipse. - ''' + """ from chiplotle.hpgl.compound.rectangle import Ellipse points = [] @@ -235,8 +238,8 @@ def interactive_define_ellipse(plotter): return rectangle -''' + +""" from chiplotle.plotters.interactive.interactive_commands import * interactive_define_rectangle(plotter) -''' - +""" diff --git a/chiplotle/plotters/margins/marginshard.py b/chiplotle/plotters/margins/marginshard.py index 41b5663..8aa90eb 100644 --- a/chiplotle/plotters/margins/marginshard.py +++ b/chiplotle/plotters/margins/marginshard.py @@ -3,10 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.margins.plottermargins import _PlotterMargins from chiplotle.hpgl.commands import OH + class MarginsHard(_PlotterMargins): def __init__(self, plotter): - _PlotterMargins.__init__(self, plotter, OH( )) + _PlotterMargins.__init__(self, plotter, OH()) diff --git a/chiplotle/plotters/margins/marginssoft.py b/chiplotle/plotters/margins/marginssoft.py index b6dc83a..e9bea9d 100644 --- a/chiplotle/plotters/margins/marginssoft.py +++ b/chiplotle/plotters/margins/marginssoft.py @@ -3,12 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.margins.plottermargins import _PlotterMargins from chiplotle.hpgl.commands import OW + class MarginsSoft(_PlotterMargins): def __init__(self, plotter): - _PlotterMargins.__init__(self, plotter, OW( )) - - + _PlotterMargins.__init__(self, plotter, OW()) diff --git a/chiplotle/plotters/margins/plottermargins.py b/chiplotle/plotters/margins/plottermargins.py index ddc683f..d48ff40 100644 --- a/chiplotle/plotters/margins/plottermargins.py +++ b/chiplotle/plotters/margins/plottermargins.py @@ -3,18 +3,18 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate + class _PlotterMargins(object): def __init__(self, plotter, queryCommand): self._plotter = plotter self._queryCommand = queryCommand - ## PROPERTIES ## - @property def left(self): return self.all_coordinates[0] @@ -43,7 +43,7 @@ def height(self): @property def center(self): - #return (self.right + self.left) / 2., (self.top + self.bottom) / 2. + # return (self.right + self.left) / 2., (self.top + self.bottom) / 2. x = (self.right + self.left) / 2. y = (self.top + self.bottom) / 2. return Coordinate(x, y) @@ -70,12 +70,11 @@ def top_left(self): @property def all_coordinates(self): - self._plotter._serial_port.flushInput( ) + self._plotter._serial_port.flushInput() self._plotter._write_string_to_port(self._queryCommand.format) - m = self._plotter._read_port( ).rstrip('\r').split(',') + m = self._plotter._read_port().rstrip("\r").split(",") return tuple([eval(n) for n in m]) - ## METHODS ## def draw_outline(self, pen=1): @@ -86,18 +85,17 @@ def draw_outline(self, pen=1): def draw_corners(self, pen=1): from chiplotle.hpgl.compound import Cross + coords = self.all_coordinates size = 100 - corners = [ ] - corners.append(Cross(coords[0:2], width = size, height = size, pen = 1)) - corners.append(Cross((coords[0], coords[3]), size, size)) - corners.append(Cross((coords[2], coords[1]), size, size)) - corners.append(Cross(coords[2:4], size, size)) + corners = [] + corners.append(Cross(coords[0:2], width=size, height=size, pen=1)) + corners.append(Cross((coords[0], coords[3]), size, size)) + corners.append(Cross((coords[2], coords[1]), size, size)) + corners.append(Cross(coords[2:4], size, size)) self._plotter.write(corners) - ## OVERRIDES ## def __repr__(self): - return '%s%s' % (self.__class__.__name__, self.all_coordinates) - + return "%s%s" % (self.__class__.__name__, self.all_coordinates) diff --git a/chiplotle/plotters/margins/test/test_marginsoft.py b/chiplotle/plotters/margins/test/test_marginsoft.py index 1a03384..d75c8aa 100644 --- a/chiplotle/plotters/margins/test/test_marginsoft.py +++ b/chiplotle/plotters/margins/test/test_marginsoft.py @@ -3,28 +3,31 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.plotters.margins.marginssoft import MarginsSoft -from chiplotle.tools.plottertools.instantiate_virtual_plotter import \ +from chiplotle.tools.plottertools.instantiate_virtual_plotter import ( instantiate_virtual_plotter +) + -def test_marginsoft_01( ): - '''plotter.margins.soft is an instance of MarginsSoft.''' - p = instantiate_virtual_plotter( ) +def test_marginsoft_01(): + """plotter.margins.soft is an instance of MarginsSoft.""" + p = instantiate_virtual_plotter() m = p.margins.soft assert isinstance(m, MarginsSoft) -def test_marginsoft_02( ): - '''MarginsSoft.bottom_left returns a Coordinate.''' - p = instantiate_virtual_plotter( ) +def test_marginsoft_02(): + """MarginsSoft.bottom_left returns a Coordinate.""" + p = instantiate_virtual_plotter() m = p.margins.soft.bottom_left assert isinstance(m, Coordinate) -def test_marginsoft_03( ): - '''MarginsSoft.top_right returns a Coordinate.''' - p = instantiate_virtual_plotter( ) +def test_marginsoft_03(): + """MarginsSoft.top_right returns a Coordinate.""" + p = instantiate_virtual_plotter() m = p.margins.soft.top_right assert isinstance(m, Coordinate) diff --git a/chiplotle/plotters/plotter.py b/chiplotle/plotters/plotter.py index e931808..600928c 100644 --- a/chiplotle/plotters/plotter.py +++ b/chiplotle/plotters/plotter.py @@ -3,17 +3,77 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.plotters.drawingplotter import _DrawingPlotter + class Plotter(_DrawingPlotter): def __init__(self, ser, **kwargs): ## allowedHPGLCommands must be set prior to base class init. - self.allowedHPGLCommands = tuple(['\x1b.','AA','AR','CA','CI','CP', - 'CS','DC','DF','DI','DP','DR','DT','EA','EP','ER','EW','FT','IM', - 'IN','IP','IW','LB','LT','OA','OC','OD','OE','OF','OH','OI','OO','OP', - 'OS','OW','PA','PD','PM','PR','PS','PT','PU','RA','RO','RR','SA','SC', - 'SI','SL','SM','SP', 'SR','SS','TL','UC','VS','WG','XT','YT']) + self.allowedHPGLCommands = tuple( + [ + "\x1b.", + "AA", + "AR", + "CA", + "CI", + "CP", + "CS", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "EW", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OO", + "OP", + "OS", + "OW", + "PA", + "PD", + "PM", + "PR", + "PS", + "PT", + "PU", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", + ] + ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "Generic" diff --git a/chiplotle/plotters/test/plotter_query.py b/chiplotle/plotters/test/plotter_query.py index c436333..6276c71 100644 --- a/chiplotle/plotters/test/plotter_query.py +++ b/chiplotle/plotters/test/plotter_query.py @@ -3,11 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_plotters -plotter = instantiate_plotters( )[0] +plotter = instantiate_plotters()[0] assert plotter._buffer_space assert plotter.id diff --git a/chiplotle/plotters/test/test_drawingplotter.py b/chiplotle/plotters/test/test_drawingplotter.py index 70a8000..1296156 100644 --- a/chiplotle/plotters/test/test_drawingplotter.py +++ b/chiplotle/plotters/test/test_drawingplotter.py @@ -3,103 +3,126 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * -from chiplotle.tools.plottertools.instantiate_virtual_plotter \ - import instantiate_virtual_plotter +from chiplotle.tools.plottertools.instantiate_virtual_plotter import ( + instantiate_virtual_plotter +) ## goto ## + def test_goto_01(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.goto(10, 10) assert p._serial_port.get_received_commands() == [IN(), PA([(10, 10)])] + def test_gotocenter_01(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.goto_center() - assert p._serial_port._received_commands_string == 'IN;PA5160.00,3960.00;' - assert p._serial_port.get_received_commands() == [IN(), PA([(5160.0,3960.0)])] + assert p._serial_port._received_commands_string == "IN;PA5160.00,3960.00;" + assert p._serial_port.get_received_commands() == [IN(), PA([(5160.0, 3960.0)])] + def test_goto_bottom_left(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.goto_bottom_left() + def test_goto_bottom_right(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.goto_bottom_right() + def test_goto_bottom_right(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.goto_bottom_right() + def test_goto_origin(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.goto_origin() + def test_goto_top_left(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.goto_top_left() + def test_goto_top_right(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.goto_top_right() + def test_nudge(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.nudge(1, 2) ## set origin ## + def test_set_origin_bottom_left(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.set_origin_bottom_left() + def test_set_origin_top_left(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.set_origin_top_left() + def test_set_origin_bottom_right(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.set_origin_bottom_right() + def test_set_origin_top_right(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.set_origin_top_right() + def test_set_origin_center(): - p = instantiate_virtual_plotter( ) + p = instantiate_virtual_plotter() p.set_origin_center() + def test_set_origin_current_location(): p = instantiate_virtual_plotter() p.set_origin_current_location() + def test_set_origin_to_point(): p = instantiate_virtual_plotter() p.set_origin_to_point(Coordinate(1, 2)) + ## transforms ## + def test_rotate(): p = instantiate_virtual_plotter() p.rotate(90) + def test_scale(): p = instantiate_virtual_plotter() p.scale(0, 0, 2, 2) + ## window setting ## + def test_set_plot_window_01(): - '''Arguments as tuples.''' + """Arguments as tuples.""" p = instantiate_virtual_plotter() p.set_plot_window((0, 0), (1, 2)) + def test_set_plot_window_02(): - '''Arguments as coordinates.''' + """Arguments as coordinates.""" p = instantiate_virtual_plotter() p.set_plot_window(Coordinate(0, 0), Coordinate(1, 2)) - diff --git a/chiplotle/plotters/test/test_plotter_write.py b/chiplotle/plotters/test/test_plotter_write.py index 51d3251..e73c190 100644 --- a/chiplotle/plotters/test/test_plotter_write.py +++ b/chiplotle/plotters/test/test_plotter_write.py @@ -3,41 +3,42 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * -from chiplotle.tools.plottertools.instantiate_virtual_plotter \ - import instantiate_virtual_plotter +from chiplotle.tools.plottertools.instantiate_virtual_plotter import ( + instantiate_virtual_plotter +) -def test_plotter_write_01( ): - '''write( ) can take a string of raw HPGL commands.''' - p = instantiate_virtual_plotter( ) - commands = 'SP1;PA0,0;PD;PU;' +def test_plotter_write_01(): + """write( ) can take a string of raw HPGL commands.""" + p = instantiate_virtual_plotter() + commands = "SP1;PA0,0;PD;PU;" p.write(commands) - assert p.format == 'IN;' + commands + assert p.format == "IN;" + commands -def test_plotter_write_02( ): - '''write( ) can take a Chiplotle HPGL command.''' - p = instantiate_virtual_plotter( ) +def test_plotter_write_02(): + """write( ) can take a Chiplotle HPGL command.""" + p = instantiate_virtual_plotter() command = CI(1000) p.write(command) - assert p.format == 'IN;' + command.format + assert p.format == "IN;" + command.format -def test_plotter_write_03( ): - '''write( ) can take list/tuple of string HPGL commands.''' - p = instantiate_virtual_plotter( ) - commands = ['SP2;', 'PA0,0;', 'PD;', 'PU;'] +def test_plotter_write_03(): + """write( ) can take list/tuple of string HPGL commands.""" + p = instantiate_virtual_plotter() + commands = ["SP2;", "PA0,0;", "PD;", "PU;"] p.write(commands) - assert p.format == 'IN;' + ''.join(commands) + assert p.format == "IN;" + "".join(commands) -def test_plotter_write_04( ): - '''write( ) can take list/tuple of Chiplotle HPGL commands.''' - p = instantiate_virtual_plotter( ) +def test_plotter_write_04(): + """write( ) can take list/tuple of Chiplotle HPGL commands.""" + p = instantiate_virtual_plotter() commands = [PA([(1000, 0)]), CI(500)] p.write(commands) - assert p.format == 'IN;' + ''.join([c.format for c in commands]) - + assert p.format == "IN;" + "".join([c.format for c in commands]) diff --git a/chiplotle/scripts/envelope.py b/chiplotle/scripts/envelope.py index df7bfa8..e6b6b48 100644 --- a/chiplotle/scripts/envelope.py +++ b/chiplotle/scripts/envelope.py @@ -6,16 +6,18 @@ from builtins import int from builtins import input from future import standard_library + standard_library.install_aliases() from chiplotle import * -def envelope( ): - plotter = instantiate_plotters( )[0] + +def envelope(): + plotter = instantiate_plotters()[0] to_address = [] from_address = [] - print ("\n\renter FROM ADDRESS (blank line to end):") + print("\n\renter FROM ADDRESS (blank line to end):") finished = 0 while finished == 0: @@ -26,7 +28,7 @@ def envelope( ): else: from_address.append(line) - print ("enter TO ADDRESS (blank line to end):") + print("enter TO ADDRESS (blank line to end):") finished = 0 while finished == 0: @@ -42,7 +44,9 @@ def envelope( ): plotter.write(SP(pen_num)) - input("\n\rmove pen to top left of FROM: address field and hit return to start plotting...") + input( + "\n\rmove pen to top left of FROM: address field and hit return to start plotting..." + ) print("plotting FROM: address...") for line in from_address: @@ -54,7 +58,9 @@ def envelope( ): plotter.write(SP(pen_num)) - input("\n\rmove pen to top left of TO ADDRESS field and hit return to start plotting...") + input( + "\n\rmove pen to top left of TO ADDRESS field and hit return to start plotting..." + ) print("plotting TO ADDRESS...") num_lines = len(to_address) @@ -68,5 +74,5 @@ def envelope( ): print("done!") -if __name__ == '__main__': - envelope( ) +if __name__ == "__main__": + envelope() diff --git a/chiplotle/scripts/find_hpgl_file_dimensions.py b/chiplotle/scripts/find_hpgl_file_dimensions.py index ea1cfc0..701039a 100755 --- a/chiplotle/scripts/find_hpgl_file_dimensions.py +++ b/chiplotle/scripts/find_hpgl_file_dimensions.py @@ -4,18 +4,20 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools import * import sys + def find_hpgl_file_dimensions(file): - ''' + """ prints width, height, and minimum and maximum x,y coordinates found in hpgl plot file - ''' + """ f = io.import_hpgl_file(file) - #dimensions = hpgltools.find_hpgl_dimensions(f) + # dimensions = hpgltools.find_hpgl_dimensions(f) dimensions = hpgltools.get_bounding_box(f) minX = dimensions[0].x @@ -30,10 +32,9 @@ def find_hpgl_file_dimensions(file): print("width: %d height: %d" % (width, height)) - -if __name__ == '__main__': +if __name__ == "__main__": if len(sys.argv) < 2: - print('Must give HPGL file.\nExample: $ find_hpgl_file_dimensions myfile.hpgl') + print("Must give HPGL file.\nExample: $ find_hpgl_file_dimensions myfile.hpgl") sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/scripts/plot_hpgl_file.py b/chiplotle/scripts/plot_hpgl_file.py index db87b00..4cf1f5e 100755 --- a/chiplotle/scripts/plot_hpgl_file.py +++ b/chiplotle/scripts/plot_hpgl_file.py @@ -4,25 +4,27 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.plottertools import instantiate_plotters import sys import time + def plot_hpgl_file(file): - '''Send an HPGL file to the plotter found connected to the computer.''' - plotter = instantiate_plotters( )[0] + """Send an HPGL file to the plotter found connected to the computer.""" + plotter = instantiate_plotters()[0] plotter.set_origin_bottom_left() plotter.write_file(file) ## call flush( ) to wait till all data is written before exiting... - plotter._serial_port.flush( ) + plotter._serial_port.flush() -if __name__ == '__main__': +if __name__ == "__main__": if len(sys.argv) < 2: - print('Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl') + print("Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl") sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/scripts/plot_hpgl_file_max_size.py b/chiplotle/scripts/plot_hpgl_file_max_size.py index 13c3620..277cb53 100755 --- a/chiplotle/scripts/plot_hpgl_file_max_size.py +++ b/chiplotle/scripts/plot_hpgl_file_max_size.py @@ -5,14 +5,16 @@ from __future__ import absolute_import from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle.tools.plottertools import instantiate_plotters from chiplotle.tools import * import sys import time + def plot_hpgl_file_max_size(file): - ''' + """ Scale an HPGL file so that it will plot as large as possible on the the plotter found connected to the computer. @@ -21,8 +23,8 @@ def plot_hpgl_file_max_size(file): Plot origin will be on the bottom, left and plot will be scaled to be as large as possible without distorting either axis. - ''' - plotter = instantiate_plotters( )[0] + """ + plotter = instantiate_plotters()[0] plotter.set_origin_bottom_left() f = io.import_hpgl_file(file) @@ -53,10 +55,10 @@ def plot_hpgl_file_max_size(file): p2X = int(widthPlot * scaler) p2Y = int(heightPlot * scaler) - print('minX, minY, maxX, maxY: ', minX, minY, maxX, maxY) - print('width, height: ', widthPlot, heightPlot) - print('p1x, p1y, p2x, p2y: ', p1X, p1Y, p2X, p2Y) - print('scaler: ', scaler) + print("minX, minY, maxX, maxY: ", minX, minY, maxX, maxY) + print("width, height: ", widthPlot, heightPlot) + print("p1x, p1y, p2x, p2y: ", p1X, p1Y, p2X, p2Y) + print("scaler: ", scaler) hpgltools.scale(f, scaler) @@ -71,12 +73,14 @@ def plot_hpgl_file_max_size(file): plotter.write(f) ## call flush( ) to wait till all data is written before exiting... - plotter._serial_port.flush( ) + plotter._serial_port.flush() -if __name__ == '__main__': +if __name__ == "__main__": if len(sys.argv) < 2: - print('Must give HPGL file to plot.\nExample: $ plot_hpgl_file_max_size.py myfile.hpgl') + print( + "Must give HPGL file to plot.\nExample: $ plot_hpgl_file_max_size.py myfile.hpgl" + ) sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/scripts/plot_hpgl_file_virtual.py b/chiplotle/scripts/plot_hpgl_file_virtual.py index 4fc87ac..456af53 100755 --- a/chiplotle/scripts/plot_hpgl_file_virtual.py +++ b/chiplotle/scripts/plot_hpgl_file_virtual.py @@ -4,27 +4,30 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter import sys import time + def plot_hpgl_file(file): - '''Send an HPGL file to the plotter found connected to the computer.''' - plotter = instantiate_virtual_plotter((0,0), (20000,15000)) + """Send an HPGL file to the plotter found connected to the computer.""" + plotter = instantiate_virtual_plotter((0, 0), (20000, 15000)) plotter.set_origin_bottom_left() plotter.write_file(file) ## call flush( ) to wait till all data is written before exiting... - plotter._serial_port.flush( ) + plotter._serial_port.flush() io.view(plotter) -if __name__ == '__main__': + +if __name__ == "__main__": if len(sys.argv) < 2: - print('Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl') + print("Must give HPGL file to plot.\nExample: $ plot_hpgl_file.py myfile.hpgl") sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/scripts/typewriter.py b/chiplotle/scripts/typewriter.py index 9d8cd82..cdfcee6 100644 --- a/chiplotle/scripts/typewriter.py +++ b/chiplotle/scripts/typewriter.py @@ -6,37 +6,41 @@ from builtins import int from builtins import input from future import standard_library + standard_library.install_aliases() from chiplotle import * ## HELPER FUNCTIONS ## -def _query_font_size( ): + +def _query_font_size(): char_height = float(input("font height (in cm)? ")) char_width = float(input("font width (in cm)? ")) return char_width, char_height -def _query_pen( ): + +def _query_pen(): pen_num = int(input("which pen? ")) return pen_num ## MAIN FUNCTION ## -def typewriter( ): + +def typewriter(): print("***************************") print("* CHIPLOTLE TYPEWRITER!!! *") print("***************************") print("") - plotter = instantiate_plotters( )[0] + plotter = instantiate_plotters()[0] - pen_num = _query_pen( ) + pen_num = _query_pen() set_size = input("set font size (y/N)? ") - if set_size.lower( ) == "y": - cw, ch = _query_font_size( ) + if set_size.lower() == "y": + cw, ch = _query_font_size() plotter.write(SI(cw, ch)) plotter.select_pen(pen_num) @@ -58,10 +62,10 @@ def typewriter( ): print("q: quit") response = input("command: ") if response == "p": - pen_num = _query_pen( ) + pen_num = _query_pen() plotter.select_pen(pen_num) elif response == "s": - cw, ch = _query_font_size( ) + cw, ch = _query_font_size() plotter.write(SI(cw, ch)) elif response == "q": finished = True @@ -73,5 +77,5 @@ def typewriter( ): print("l8r.") -if __name__ == '__main__': - typewriter( ) +if __name__ == "__main__": + typewriter() diff --git a/chiplotle/scripts/view_hpgl_file.py b/chiplotle/scripts/view_hpgl_file.py index 1e7a4ad..0173548 100755 --- a/chiplotle/scripts/view_hpgl_file.py +++ b/chiplotle/scripts/view_hpgl_file.py @@ -4,21 +4,22 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools import * import sys import time + def view_hpgl(file): - '''Convert hpgl to eps and view with default system eps app.''' + """Convert hpgl to eps and view with default system eps app.""" f = io.import_hpgl_file(file) io.view(f) - -if __name__ == '__main__': +if __name__ == "__main__": if len(sys.argv) < 2: - print('Must give HPGL file to view.\nExample: $ view_hpgl myfile.hpgl') + print("Must give HPGL file to view.\nExample: $ view_hpgl myfile.hpgl") sys.exit(2) file = sys.argv[1] diff --git a/chiplotle/tools/__init__.py b/chiplotle/tools/__init__.py index 57df404..bbe22dd 100644 --- a/chiplotle/tools/__init__.py +++ b/chiplotle/tools/__init__.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools import geometrytools from chiplotle.tools import hpgltools diff --git a/chiplotle/tools/geometrytools/__init__.py b/chiplotle/tools/geometrytools/__init__.py index 5e72353..37859c4 100644 --- a/chiplotle/tools/geometrytools/__init__.py +++ b/chiplotle/tools/geometrytools/__init__.py @@ -1,6 +1,6 @@ ## TODO: make this autoimport work -#from chiplotle.core.imports.package_import import _package_import -#_package_import(__path__[0], globals( )) +# from chiplotle.core.imports.package_import import _package_import +# _package_import(__path__[0], globals( )) -#from .get_centroid import get_centroid -#from .get_line_intersection import get_line_intersection +# from .get_centroid import get_centroid +# from .get_line_intersection import get_line_intersection diff --git a/chiplotle/tools/geometrytools/get_line_intersection.py b/chiplotle/tools/geometrytools/get_line_intersection.py index 8b12a91..9c2d992 100644 --- a/chiplotle/tools/geometrytools/get_line_intersection.py +++ b/chiplotle/tools/geometrytools/get_line_intersection.py @@ -3,17 +3,19 @@ from __future__ import unicode_literals from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.path import Path + def get_line_intersection(line_a, line_b): - ''' + """ Finds the intersection point, if any, between lines a and b. Returns a Coordinate or None if there is no intersection. - ''' + """ - #make sure we have two lines + # make sure we have two lines assert isinstance(line_a, Path) and len(line_a) == 2 assert isinstance(line_b, Path) and len(line_b) == 2 @@ -27,48 +29,51 @@ def get_line_intersection(line_a, line_b): s2_x = float(p3_x - p2_x) s2_y = float(p3_y - p2_y) - s_divisor = (-s2_x * s1_y + s1_x * s2_y) + s_divisor = -s2_x * s1_y + s1_x * s2_y if s_divisor == 0.0: s = -1.0 else: s = (-s1_y * (p0_x - p2_x) + s1_x * (p0_y - p2_y)) / s_divisor - t_divisor = (-s2_x * s1_y + s1_x * s2_y) + t_divisor = -s2_x * s1_y + s1_x * s2_y if t_divisor == 0.0: t = -1.0 else: - t = ( s2_x * (p0_y - p2_y) - s2_y * (p0_x - p2_x)) / t_divisor + t = (s2_x * (p0_y - p2_y) - s2_y * (p0_x - p2_x)) / t_divisor if s >= 0 and s <= 1 and t >= 0 and t <= 1: - #Collision detected + # Collision detected i_x = p0_x + (t * s1_x) i_y = p0_y + (t * s1_y) return Coordinate(i_x, i_y) else: - #No collision + # No collision return None - ## DEMO -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle.geometry.shapes.line import line from chiplotle.geometry.core.group import Group from chiplotle.tools import io from random import randrange - #draw a bunch of lines that do not intersect + # draw a bunch of lines that do not intersect no_intersections = Group() - line_1 = line([randrange(0, 4000), randrange(0, 4000)], - [randrange(0, 4000), randrange(0, 4000)]) + line_1 = line( + [randrange(0, 4000), randrange(0, 4000)], + [randrange(0, 4000), randrange(0, 4000)], + ) no_intersections.append(line_1) while len(no_intersections) < 300: - new_line = line([randrange(0, 4000), randrange(0, 4000)], - [randrange(0, 4000), randrange(0, 4000)]) + new_line = line( + [randrange(0, 4000), randrange(0, 4000)], + [randrange(0, 4000), randrange(0, 4000)], + ) intersection = False @@ -82,4 +87,3 @@ def get_line_intersection(line_a, line_b): print("found %d lines..." % len(no_intersections)) io.view(no_intersections) - diff --git a/chiplotle/tools/geometrytools/get_shape_intersections.py b/chiplotle/tools/geometrytools/get_shape_intersections.py index 480089c..e11a427 100644 --- a/chiplotle/tools/geometrytools/get_shape_intersections.py +++ b/chiplotle/tools/geometrytools/get_shape_intersections.py @@ -4,41 +4,43 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.shape import _Shape from chiplotle.geometry.shapes.line import line -from chiplotle.tools.geometrytools.get_line_intersection \ - import get_line_intersection +from chiplotle.tools.geometrytools.get_line_intersection import get_line_intersection + def get_shape_intersections(shape1, shape2): - '''Returns a generator of all intersecting points found in the - given shapes.''' + """Returns a generator of all intersecting points found in the + given shapes.""" if not isinstance(shape1, _Shape) or not isinstance(shape2, _Shape): raise TypeError - for i in range(len(shape1.points)-1): - for j in range(len(shape2.points)-1): + for i in range(len(shape1.points) - 1): + for j in range(len(shape2.points) - 1): intersection = get_line_intersection( - line(shape1.points[i], shape1.points[i+1]), - line(shape2.points[j], shape2.points[j+1])) + line(shape1.points[i], shape1.points[i + 1]), + line(shape2.points[j], shape2.points[j + 1]), + ) if intersection: yield intersection ## demo -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * from chiplotle.hpgl.decorators.pen import PenDecorator from random import randint - s1 = bezier_path([randint(0, 200) for i in range(12)], 1, 14) - s2 = bezier_path([randint(0, 200) for i in range(12)], 1, 14) + s1 = bezier_path([randint(0, 200) for i in range(12)], 1, 14) + s2 = bezier_path([randint(0, 200) for i in range(12)], 1, 14) PenDecorator(Pen(4))(s1) PenDecorator(Pen(2))(s2) intersections = get_shape_intersections(s1, s2) - marks = [ ] + marks = [] for i in intersections: c = circle(2) offset(c, i) diff --git a/chiplotle/tools/geometrytools/scale.py b/chiplotle/tools/geometrytools/scale.py index ac378a1..1af708e 100644 --- a/chiplotle/tools/geometrytools/scale.py +++ b/chiplotle/tools/geometrytools/scale.py @@ -3,16 +3,18 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate + def scale(coords, value, pivot): - '''Scales the given coordinates by the given value + """Scales the given coordinates by the given value around the given pivot point. - `coords` is a CoordinateArray. - `value` is a tuple or Coordinate. - `pivot` is a tuple or Coordinate. - ''' + """ pivot = Coordinate(*pivot) try: ## NOTE Coordinate is a bad name for this. @@ -29,4 +31,3 @@ def scale(coords, value, pivot): scaled_points = offset_points * value coords = scaled_points + pivot return coords - diff --git a/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py b/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py index 3b6cfdb..9c0674e 100644 --- a/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py +++ b/chiplotle/tools/geometrytools/split_coordinatearray_proportionally.py @@ -6,14 +6,17 @@ from builtins import int from builtins import round from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray -from chiplotle.tools.geometrytools.split_vector_equidistantly import \ +from chiplotle.tools.geometrytools.split_vector_equidistantly import ( split_vector_equidistantly +) + def split_coordinatearray_proportionally(coord_array, count): - '''Splits a CoordinateArray into `count` segments, in proportion to - the length of each Coordinate segment.''' + """Splits a CoordinateArray into `count` segments, in proportion to + the length of each Coordinate segment.""" rounder = Rounder() total_length = coord_array.magnitude result = [] @@ -23,14 +26,16 @@ def split_coordinatearray_proportionally(coord_array, count): r = split_vector_equidistantly(coord, c) r = r.difference result.extend(r) - result = CoordinateArray(result).cumsum + coord_array[0] + result = CoordinateArray(result).cumsum + coord_array[0] assert len(result) == count + 1 return result + class Rounder(object): - '''Hack class to keep track of residues. + """Hack class to keep track of residues. Come up with a good structural / rational solution. - ''' + """ + def __init__(self): self.residue = 0 @@ -42,6 +47,7 @@ def round(self, n): self.residue += rn - n return rn -if __name__ == '__main__': + +if __name__ == "__main__": ca = CoordinateArray([(20, 0), (20, 500), (20, 1000)]) print(split_coordinatearray_proportionally(ca, 8)) diff --git a/chiplotle/tools/geometrytools/split_vector_equidistantly.py b/chiplotle/tools/geometrytools/split_vector_equidistantly.py index 32bb3ff..0280a0e 100644 --- a/chiplotle/tools/geometrytools/split_vector_equidistantly.py +++ b/chiplotle/tools/geometrytools/split_vector_equidistantly.py @@ -6,25 +6,28 @@ from builtins import zip from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.tools.mathtools.interpolate_linear import interpolate_linear from chiplotle.geometry.core.coordinatearray import CoordinateArray -def split_vector_equidistantly(vector, count) : - '''Splits a vector/coordinate into `count` parts. + +def split_vector_equidistantly(vector, count): + """Splits a vector/coordinate into `count` parts. Returns a CoordinateArray with the new Coordinate segments. >>> split_vector_equidistantly(Coordinate(-10, 12)) CoordinateArray(<0,0>, <-2.5,3.0>, <-5.0,6.0>, <-7.5,9.0>, <-10,12>) - ''' + """ xs = [interpolate_linear(0, vector.x, i / count) for i in range(1, count)] ys = [interpolate_linear(0, vector.y, i / count) for i in range(1, count)] coords = [(0, 0)] + list(zip(xs, ys)) + [vector] return CoordinateArray(coords) -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import Coordinate + v = Coordinate(-10, 12) c = 4 print(split_vector_equidistantly(v, c)) diff --git a/chiplotle/tools/hpgltools/__init__.py b/chiplotle/tools/hpgltools/__init__.py index 2c1b173..d1e6247 100644 --- a/chiplotle/tools/hpgltools/__init__.py +++ b/chiplotle/tools/hpgltools/__init__.py @@ -3,8 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], locals( )) - +_package_import(__path__[0], locals()) diff --git a/chiplotle/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py b/chiplotle/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py index 012fa94..8c088a2 100644 --- a/chiplotle/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py +++ b/chiplotle/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py @@ -3,25 +3,27 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.commands import PU, PA, PD from chiplotle.geometry.core.coordinatearray import CoordinateArray + def convert_coordinates_to_hpgl_absolute_path(coords): - '''Converts an iterator of lists of coordinates + """Converts an iterator of lists of coordinates e.g., [, , , ...] into a list of PA, PD and PU HPGL commands. - ''' + """ if not isinstance(coords, (list, tuple, CoordinateArray)): - raise TypeError('`coords` must be a list of coordinates or CoordinateArray.') + raise TypeError("`coords` must be a list of coordinates or CoordinateArray.") coords = [list(c) for c in coords] - result = [ ] - result.append(PU( )) + result = [] + result.append(PU()) result.append(PA([coords[0]])) - result.append(PD( )) + result.append(PD()) ## this denies the possibility of paths with one coord. - #result.append(PA(coords[1:])) + # result.append(PA(coords[1:])) result.append(PA(coords)) - result.append(PU( )) + result.append(PU()) return result diff --git a/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py b/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py index 7d9e188..06b7b9a 100644 --- a/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py +++ b/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.hpgltools.pens_updown_to_papr import pens_updown_to_papr from chiplotle.tools.hpgltools.is_primitive_absolute import is_primitive_absolute @@ -11,13 +12,14 @@ from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.hpgl.commands import PR, PA, ER, EA, RA, RR, AR, AA + def convert_relatives_to_absolutes(lst): if not isinstance(lst, (list, tuple)): - raise TypeError('`lst` must be a list or tuple.') + raise TypeError("`lst` must be a list or tuple.") lst = pens_updown_to_papr(lst) - result = [ ] + result = [] last_position = Coordinate(0, 0) command = None for e in lst: diff --git a/chiplotle/tools/hpgltools/get_all_coordinates.py b/chiplotle/tools/hpgltools/get_all_coordinates.py index 3e70c47..cc55f26 100644 --- a/chiplotle/tools/hpgltools/get_all_coordinates.py +++ b/chiplotle/tools/hpgltools/get_all_coordinates.py @@ -3,15 +3,17 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.geometry.core.coordinatearray import CoordinateArray -from chiplotle.tools.hpgltools.convert_relatives_to_absolutes import \ +from chiplotle.tools.hpgltools.convert_relatives_to_absolutes import ( convert_relatives_to_absolutes +) def get_all_coordinates(arg): - '''Returns all absolute coordinates for a given list of Chiplotle-HPGL commands. + """Returns all absolute coordinates for a given list of Chiplotle-HPGL commands. Example:: @@ -19,16 +21,16 @@ def get_all_coordinates(arg): >>> c = hpgltools.get_all_coordinates(t) >>> print c [CP(1, 2), CP(2, 3), CP(3, 4)] - ''' - + """ + if not isinstance(arg, (list, tuple)): - raise TypeError('`arg` must be list or tuple') - + raise TypeError("`arg` must be list or tuple") + arg = convert_relatives_to_absolutes(arg) - - result = [ ] + + result = [] for e in arg: - if isinstance(e, _HPGLPrimitive) and hasattr(e, 'xy'): + if isinstance(e, _HPGLPrimitive) and hasattr(e, "xy"): if isinstance(e.xy, CoordinateArray): result.extend(e.xy) else: diff --git a/chiplotle/tools/hpgltools/get_bounding_box.py b/chiplotle/tools/hpgltools/get_bounding_box.py index be65719..0b42549 100644 --- a/chiplotle/tools/hpgltools/get_bounding_box.py +++ b/chiplotle/tools/hpgltools/get_bounding_box.py @@ -3,15 +3,17 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools.hpgltools.get_all_coordinates import get_all_coordinates + def get_bounding_box(arg): - '''Returns the pair of coordinate pairs outlining the bounding box of - the given HPGL drawing.''' + """Returns the pair of coordinate pairs outlining the bounding box of + the given HPGL drawing.""" if not isinstance(arg, (list, tuple)): - raise TypeError('arg must be list or tuple') + raise TypeError("arg must be list or tuple") min_x = min_y = 1000000.0 max_x = max_y = -1000000.0 diff --git a/chiplotle/tools/hpgltools/get_centroid.py b/chiplotle/tools/hpgltools/get_centroid.py index cd1393f..b0c11a4 100644 --- a/chiplotle/tools/hpgltools/get_centroid.py +++ b/chiplotle/tools/hpgltools/get_centroid.py @@ -3,12 +3,14 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.tools.hpgltools.get_all_coordinates import get_all_coordinates + def get_centroid(arg): - '''Returns the centroid of the given Chiplotle-HPGL shapes.''' + """Returns the centroid of the given Chiplotle-HPGL shapes.""" arg = get_all_coordinates(arg) ## convert into a set to remove duplicate coordinates and to ## avoid giving more weight to these duplicate points... @@ -17,5 +19,3 @@ def get_centroid(arg): for c in arg: result += c return result / len(arg) - - diff --git a/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/chiplotle/tools/hpgltools/inflate_hpgl_string.py index 338ed0b..cc1c6e6 100644 --- a/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -13,7 +13,7 @@ def inflate_hpgl_string(string, filter_commands=None): - '''Reads a text string and "inflates" it by creating + """Reads a text string and "inflates" it by creating Chiplotle-HPGL class instances of the found HPGL commands. Example:: @@ -27,21 +27,21 @@ def inflate_hpgl_string(string, filter_commands=None): chiplotle> move = inflate_hpgl_string('IN;SP1;PA10,10;', ['IN']) chiplotle> move [SP(1), PA((10, 10))] - ''' + """ - filter_commands = filter_commands or [ ] + filter_commands = filter_commands or [] if not isinstance(string, (string_types, text_type)): - raise TypeError('`string` must be a string or bytes') + raise TypeError("`string` must be a string or bytes") if not isinstance(filter_commands, (list, tuple)): - msg = '`filter_commands` must be a list of string HPGL commands.' + msg = "`filter_commands` must be a list of string HPGL commands." raise TypeError(msg) - _unsupported_commands = ('PW','PC', 'LA', 'WU', 'BP') + _unsupported_commands = ("PW", "PC", "LA", "WU", "BP") comms = parse_hpgl_string(string) result = [] for c in comms: - if c: ## not an empty string: '' + if c: ## not an empty string: '' head = c[0:2] if head in filter_commands: continue @@ -51,46 +51,48 @@ def inflate_hpgl_string(string, filter_commands=None): result.append(command) return result + @apply_logger def inflate_hpgl_string_command(cmd_string): - '''Converts a string representing a single HPGL command into a + """Converts a string representing a single HPGL command into a Chiplotle HPGL instance. e.g., 'PD1,2,3,4' --> PD((1,2,3,4)). - ''' + """ head, body = _parse_hpgl_command_string(cmd_string) try: - result = eval('hpgl.%s(%s)' % (head, body)) + result = eval("hpgl.%s(%s)" % (head, body)) return result except: - msg = 'Could not create %s(%s)...' % (head, body) - msg += ' The command is either malformed or unrecognized.' + msg = "Could not create %s(%s)..." % (head, body) + msg += " The command is either malformed or unrecognized." inflate_hpgl_string_command.logger.warning(msg) + def _parse_hpgl_command_string(cmd_string): - '''Parses a single hpgl command string. + """Parses a single hpgl command string. Splits it in two: the head and the body. e.g., 'PD1,2,3,4' --> 'PD' and '(1,2,3,4)'. - ''' + """ head = cmd_string[0:2] - if head in ('PU','PD','PA','PR','IP','IW','SC'): - coords = cmd_string[2:].split(',') - if coords == ['']: + if head in ("PU", "PD", "PA", "PR", "IP", "IW", "SC"): + coords = cmd_string[2:].split(",") + if coords == [""]: coords = [] coords = [eval(n) for n in coords] coords = flat_list_to_pairs(coords) - body = '(%s)' % coords - elif head in ('RA','RR','ER','EA',): - body = '(%s)' % cmd_string[2:] - elif head in ('AR', 'AA'): - parameters = cmd_string[2:].split(',') + body = "(%s)" % coords + elif head in ("RA", "RR", "ER", "EA"): + body = "(%s)" % cmd_string[2:] + elif head in ("AR", "AA"): + parameters = cmd_string[2:].split(",") x = parameters.pop(0) y = parameters.pop(0) - body = '(%s,%s),%s' % (x, y, ','.join(parameters)) + body = "(%s,%s),%s" % (x, y, ",".join(parameters)) else: body = cmd_string[2:] return head, body -if __name__ == '__main__': - string = 'IN;PU;PD1,2,3,4;' +if __name__ == "__main__": + string = "IN;PU;PD1,2,3,4;" print(inflate_hpgl_string(string)) diff --git a/chiplotle/tools/hpgltools/is_primitive_absolute.py b/chiplotle/tools/hpgltools/is_primitive_absolute.py index 786dc6c..8ec75e3 100644 --- a/chiplotle/tools/hpgltools/is_primitive_absolute.py +++ b/chiplotle/tools/hpgltools/is_primitive_absolute.py @@ -3,17 +3,19 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL + def is_primitive_absolute(command): - '''Returns True of `command` is a primitive HPGL with absolute position, + """Returns True of `command` is a primitive HPGL with absolute position, False if `command` is a non-absolute position primitive HPGL. - Otherwise the function raises a TypeError exception.''' + Otherwise the function raises a TypeError exception.""" if not isinstance(command, _HPGL): - raise TypeError('command is not an _HPGL') - if command._name in ('AA', 'EA', 'PA', 'RA'): + raise TypeError("command is not an _HPGL") + if command._name in ("AA", "EA", "PA", "RA"): return True else: return False diff --git a/chiplotle/tools/hpgltools/parse_hpgl_string.py b/chiplotle/tools/hpgltools/parse_hpgl_string.py index 6bd608d..7768292 100644 --- a/chiplotle/tools/hpgltools/parse_hpgl_string.py +++ b/chiplotle/tools/hpgltools/parse_hpgl_string.py @@ -8,37 +8,104 @@ standard_library.install_aliases() import re + def parse_hpgl_string(arg): - '''The function takes a string `arg` of HPGL commands, parses them + """The function takes a string `arg` of HPGL commands, parses them (separates them) and returns them in a list. - ''' + """ if not isinstance(arg, (text_type, string_types)): - raise TypeError('`arg` must be of type string') + raise TypeError("`arg` must be of type string") - string_commands = ['LB', 'DT'] - numeric_commands = ['AA','AF','AH','AP','AR','AS', - 'BF','BL', - 'CA','CC','CI','CM','CP','CS','CT','CV', - 'DC','DF','DI','DP','DR','DS','DV', #DL - 'EA','EC','EP','ER','ES','EW', - 'FP','FR','FS','FT', - 'GC', #GM GP - 'IM','IN','IP','IV','IW', - 'KY', - 'LO','LT', - 'NR', - 'OA','OC','OD','OE','OF','OG','OH','OI','OK','OL','OO','OP','OS','OT','OW', - 'PA','PB','PD','PG','PM','PR','PS','PT','PU', - 'RA','RO','RR', - 'SA','SC','SI','SL','SM','SP','SR','SS', #SG - 'TL', - #'UC', UF - 'VS', - 'WD','WG', - 'XT', - 'YT'] + string_commands = ["LB", "DT"] + numeric_commands = [ + "AA", + "AF", + "AH", + "AP", + "AR", + "AS", + "BF", + "BL", + "CA", + "CC", + "CI", + "CM", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DP", + "DR", + "DS", + "DV", # DL + "EA", + "EC", + "EP", + "ER", + "ES", + "EW", + "FP", + "FR", + "FS", + "FT", + "GC", # GM GP + "IM", + "IN", + "IP", + "IV", + "IW", + "KY", + "LO", + "LT", + "NR", + "OA", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PG", + "PM", + "PR", + "PS", + "PT", + "PU", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", # SG + "TL", + # 'UC', UF + "VS", + "WD", + "WG", + "XT", + "YT", + ] ## TODO: Add all the supported escape (DCI) commands. - dci_commands = ['\x1b\.\(', '\x1b\.Y'] + dci_commands = ["\x1b\.\(", "\x1b\.Y"] # NOTE: added '-' to hpgl_patter because we were barfing on strings like # 'PA1.99,-5.00;' -- the ,- construction wasn't being parsed correctly. @@ -46,10 +113,10 @@ def parse_hpgl_string(arg): # correctly though... # TODO: the whole parser needs to be rewritten. This is simple, # but inaccurate, especially for DT/LB commands. - numeric_pattern= '|'.join([c + '[-0-9.,]*' for c in numeric_commands]) - dci_pattern = '|'.join([c + '[0-9.;]*' for c in dci_commands]) - string_pattern = '|'.join([c + '[^;]+' for c in string_commands]) - pattern = '|'.join([numeric_pattern, string_pattern, dci_pattern]) + numeric_pattern = "|".join([c + "[-0-9.,]*" for c in numeric_commands]) + dci_pattern = "|".join([c + "[0-9.;]*" for c in dci_commands]) + string_pattern = "|".join([c + "[^;]+" for c in string_commands]) + pattern = "|".join([numeric_pattern, string_pattern, dci_pattern]) ## this assumes that the re will find each and every hpgl command ## with the pattern. Any command not matched will effectively be ## removed... we don't want that. diff --git a/chiplotle/tools/hpgltools/pens_updown_to_papr.py b/chiplotle/tools/hpgltools/pens_updown_to_papr.py index 329bb73..f6aa389 100644 --- a/chiplotle/tools/hpgltools/pens_updown_to_papr.py +++ b/chiplotle/tools/hpgltools/pens_updown_to_papr.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import copy @@ -10,23 +11,26 @@ def pens_updown_to_papr(lst): - '''Converts all PU((x1, y1, x2, y2) and PD(x1, y1, x2, y2) found in `lst` + """Converts all PU((x1, y1, x2, y2) and PD(x1, y1, x2, y2) found in `lst` into (PU( ), PA(x1, y1, x2, y2)) pair sequences. The function removes the coordinates from PU and PD and places them in - PR or PA, whatever was last found in lst prior to a PU or PD.''' + PR or PA, whatever was last found in lst prior to a PU or PD.""" if not isinstance(lst, (list, tuple)): - raise TypeError('`lst` argument must be a list or tuple.') + raise TypeError("`lst` argument must be a list or tuple.") - result = [ ] + result = [] last_penplot = None for e in lst: if isinstance(e, (PU, PD)): if len(e.xy) > 0: if last_penplot is None: - msg = "*** WARNING: %s with coordinates found without prior PA or PR. PA assumed." % e + msg = ( + "*** WARNING: %s with coordinates found without prior PA or PR. PA assumed." + % e + ) print(msg) - last_penplot = PA( ) + last_penplot = PA() last_penplot.xy = e.xy ec = copy.copy(e) ec.xy = None @@ -36,10 +40,9 @@ def pens_updown_to_papr(lst): result.append(e) else: if isinstance(e, PR): - last_penplot = PR( ) + last_penplot = PR() elif isinstance(e, PA): - last_penplot = PA( ) + last_penplot = PA() result.append(e) return result - diff --git a/chiplotle/tools/hpgltools/pr_to_pa.py b/chiplotle/tools/hpgltools/pr_to_pa.py index cc78e93..fe45124 100644 --- a/chiplotle/tools/hpgltools/pr_to_pa.py +++ b/chiplotle/tools/hpgltools/pr_to_pa.py @@ -3,27 +3,28 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.hpgl.commands import PA, PR + def pr_to_pa(arg, starting_position=None): - '''Converts a given PR into PA starting at `starting_position`. + """Converts a given PR into PA starting at `starting_position`. - `arg` is a PR object. - `starting_position` is a coordinate pair. Default is (0, 0). - ''' + """ if not isinstance(arg, PR): - raise TypeError('`arg` must be of type PR'); + raise TypeError("`arg` must be of type PR") if len(arg.xy) == 0: - return PA( ) - + return PA() last_abs = starting_position or Coordinate(0, 0) last_abs = Coordinate(*last_abs) - #abs_coords = [last_abs] - abs_coords = [ ] + # abs_coords = [last_abs] + abs_coords = [] for p in arg.xy: last_abs = last_abs + p abs_coords.append(last_abs) diff --git a/chiplotle/tools/hpgltools/relativize.py b/chiplotle/tools/hpgltools/relativize.py index 9a14eb9..815192e 100644 --- a/chiplotle/tools/hpgltools/relativize.py +++ b/chiplotle/tools/hpgltools/relativize.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.hpgl import commands as hpgl @@ -10,13 +11,13 @@ ## TODO: this works, but is quite ugly. Refactor! def relativize(data): - '''Converts all absolute coordinate commands (PA, RA, EA, AA) + """Converts all absolute coordinate commands (PA, RA, EA, AA) into relative commands (PR, RR, ER, AR), so that everything - has in realtive coordinate values.''' + has in realtive coordinate values.""" ## main body... last_position = None delta = None - result = [ ] + result = [] for e in data: ## absolute... if isinstance(e, (hpgl.PA, hpgl.RA, hpgl.EA, hpgl.AA)): @@ -37,9 +38,9 @@ def relativize(data): if isinstance(e, hpgl.PR): coords = [list(c) for c in e.xy] if not last_position is None: - last_position += Coordinate(*numpy.sum(coords, axis = 0)) + last_position += Coordinate(*numpy.sum(coords, axis=0)) else: - last_position = Coordinate(*numpy.sum(coords, axis = 0)) + last_position = Coordinate(*numpy.sum(coords, axis=0)) result.append(e) else: last_position = (last_position or 0) + e.xy @@ -50,12 +51,12 @@ def relativize(data): def _return_relative_from_absolute(command, delta): - result = [ ] + result = [] if isinstance(command, hpgl.PA): if delta is not None: result.append(hpgl.PR([delta])) coords = [list(c) for c in command.xy] - diff = numpy.diff(coords, axis=0).tolist( ) + diff = numpy.diff(coords, axis=0).tolist() if len(diff) > 0: result.append(hpgl.PR(diff)) elif isinstance(command, hpgl.RA) and delta is not None: @@ -68,7 +69,7 @@ def _return_relative_from_absolute(command, delta): ## Trash... -#def relativize(data): +# def relativize(data): # '''Converts all absolute coordinate commands (PA, RA, EA, AA) # into relative commands (PR, RR, ER, AR), so that everything # has in realtive coordinate values.''' diff --git a/chiplotle/tools/hpgltools/rotate_hpglprimitives.py b/chiplotle/tools/hpgltools/rotate_hpglprimitives.py index d2f4542..2f6887e 100644 --- a/chiplotle/tools/hpgltools/rotate_hpglprimitives.py +++ b/chiplotle/tools/hpgltools/rotate_hpglprimitives.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive from chiplotle.tools.mathtools.rotate_2d import rotate_coordinate_2d @@ -13,20 +14,19 @@ ## TODO: implement rotation AXIS! ## (options: center, centroid, left, right, top, bottom, and (x, y)) + def rotate_hpglprimitives(arg, angle): for e in arg: if not isinstance(e, _HPGLPrimitive): - raise TypeError('Elements must be of type _HPGLPrimitive') + raise TypeError("Elements must be of type _HPGLPrimitive") ## should we check for CoordinateArray and Coordinate instead? - if hasattr(e, 'xy'): + if hasattr(e, "xy"): pivot = Coordinate(0, 0) if isinstance(e.xy, CoordinateArray): - result = [ ] + result = [] for cp in e.xy: result.append(rotate_coordinate_2d(cp, angle, pivot)) e.xy = CoordinateArray(result) elif isinstance(e.xy, Coordinate): e.xy = rotate_coordinate_2d(e.xy, angle, pivot) - - diff --git a/chiplotle/tools/hpgltools/scale.py b/chiplotle/tools/hpgltools/scale.py index aa20351..51b258e 100644 --- a/chiplotle/tools/hpgltools/scale.py +++ b/chiplotle/tools/hpgltools/scale.py @@ -3,15 +3,18 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL + def _scale_command(obj, val): attrs = list(obj.__dict__.keys()) for scalable_attr in obj.__class__._scalable: a = getattr(obj, scalable_attr) setattr(obj, scalable_attr, a * val) + def scale(obj, val): if isinstance(obj, _HPGL): _scale_command(obj, val) diff --git a/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py b/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py index 0c17c9d..5f3224c 100644 --- a/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py +++ b/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py @@ -3,44 +3,44 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from py.test import raises -def test_convert_coordinates_to_absolute_hpgl_path_01( ): - '''Coordinates can be generic tuples.''' + +def test_convert_coordinates_to_absolute_hpgl_path_01(): + """Coordinates can be generic tuples.""" c = [(1, 2), (3, 4), (5, 6)] t = hpgltools.convert_coordinates_to_hpgl_absolute_path(c) - assert t[0] == PU( ) + assert t[0] == PU() assert t[1] == PA([c[0]]) - assert t[2] == PD( ) + assert t[2] == PD() assert t[3] == PA(c[:]) -def test_convert_coordinates_to_absolute_hpgl_path_02( ): - '''Coordinates can be Coordinates.''' +def test_convert_coordinates_to_absolute_hpgl_path_02(): + """Coordinates can be Coordinates.""" c = [Coordinate(1, 2), Coordinate(3, 4), Coordinate(5, 6)] t = hpgltools.convert_coordinates_to_hpgl_absolute_path(c) - assert t[0] == PU( ) + assert t[0] == PU() assert t[1] == PA([c[0].xy]) - assert t[2] == PD( ) + assert t[2] == PD() assert t[3] == PA(c) -def test_convert_coordinates_to_absolute_hpgl_path_03( ): - '''The argument can be a CoordinateArray''' +def test_convert_coordinates_to_absolute_hpgl_path_03(): + """The argument can be a CoordinateArray""" c = CoordinateArray([Coordinate(1, 2), Coordinate(3, 4), Coordinate(5, 6)]) t = hpgltools.convert_coordinates_to_hpgl_absolute_path(c) - assert t[0] == PU( ) + assert t[0] == PU() assert t[1] == PA([list(c[0])]) - assert t[2] == PD( ) + assert t[2] == PD() assert t[3] == PA([list(x) for x in c]) -def test_convert_coordinates_to_absolute_hpgl_path_04( ): - '''Argument must be a list of coordinate pairs..''' +def test_convert_coordinates_to_absolute_hpgl_path_04(): + """Argument must be a list of coordinate pairs..""" c = [1, 2, 3, 4] - assert raises(TypeError, 'hpgltools.convert_coordinates_to_hpgl_absolute_path(c)') - - + assert raises(TypeError, "hpgltools.convert_coordinates_to_hpgl_absolute_path(c)") diff --git a/chiplotle/tools/hpgltools/test/test_convert_relatives_to_absolutes.py b/chiplotle/tools/hpgltools/test/test_convert_relatives_to_absolutes.py index 3eff923..97d6c5f 100644 --- a/chiplotle/tools/hpgltools/test/test_convert_relatives_to_absolutes.py +++ b/chiplotle/tools/hpgltools/test/test_convert_relatives_to_absolutes.py @@ -3,11 +3,13 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * -def test_convert_relatives_to_absolutes_01( ): + +def test_convert_relatives_to_absolutes_01(): g = [PA([(1, 2)]), PR([(1, 1), (1, 1)])] t = hpgltools.convert_relatives_to_absolutes(g) assert len(t) == 2 @@ -15,16 +17,16 @@ def test_convert_relatives_to_absolutes_01( ): assert t[1] == PA([(2, 3), (3, 4)]) -def test_convert_relatives_to_absolutes_02( ): - '''Initial absolute position is set to (0, 0) when absolute commands are absent before PR.''' +def test_convert_relatives_to_absolutes_02(): + """Initial absolute position is set to (0, 0) when absolute commands are absent before PR.""" g = [PR([(1, 1), (1, 1)])] t = hpgltools.convert_relatives_to_absolutes(g) assert len(t) == 1 assert t[0] == PA([(1, 1), (2, 2)]) -def test_convert_relatives_to_absolutes_03( ): - '''Edges and archs work.''' +def test_convert_relatives_to_absolutes_03(): + """Edges and archs work.""" g = [ER((1, 1)), RR((1, 1)), AR((1, 1), 40), EA((0, 0))] t = hpgltools.convert_relatives_to_absolutes(g) assert len(t) == 4 @@ -32,4 +34,3 @@ def test_convert_relatives_to_absolutes_03( ): assert t[1] == RA((2, 2)) assert t[2] == AA((3, 3), 40) assert t[3] == EA((0, 0)) - diff --git a/chiplotle/tools/hpgltools/test/test_get_all_coordinates.py b/chiplotle/tools/hpgltools/test/test_get_all_coordinates.py index cf5246d..6eece9f 100644 --- a/chiplotle/tools/hpgltools/test/test_get_all_coordinates.py +++ b/chiplotle/tools/hpgltools/test/test_get_all_coordinates.py @@ -3,17 +3,17 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * -def test_get_all_coordinates_01( ): - '''get_all_coordinates( ) works with _HPGLPrimitives.''' + +def test_get_all_coordinates_01(): + """get_all_coordinates( ) works with _HPGLPrimitives.""" t = [PA([(1, 2)]), PR([(1, 1)]), ER((1, 1)), CI(100)] c = hpgltools.get_all_coordinates(t) assert len(c) == 3 assert c[0] == Coordinate(1, 2) assert c[1] == Coordinate(2, 3) assert c[2] == Coordinate(3, 4) - - diff --git a/chiplotle/tools/hpgltools/test/test_get_bounding_box.py b/chiplotle/tools/hpgltools/test/test_get_bounding_box.py index d021a26..f421c45 100644 --- a/chiplotle/tools/hpgltools/test/test_get_bounding_box.py +++ b/chiplotle/tools/hpgltools/test/test_get_bounding_box.py @@ -3,20 +3,20 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PA, EA -def test_get_bounding_box_01( ): - '''The function can take a list of _HPGLPrimitives.''' + +def test_get_bounding_box_01(): + """The function can take a list of _HPGLPrimitives.""" t = hpgltools.get_bounding_box([PA([(1, 2), (3, 4)])]) assert t == (Coordinate(1, 2), Coordinate(3, 4)) -def test_get_bounding_box_02( ): - '''The function can take a list of _HPGLPrimitives.''' +def test_get_bounding_box_02(): + """The function can take a list of _HPGLPrimitives.""" a = [PA([(1, 2), (3, 4)]), EA((10, -2))] t = hpgltools.get_bounding_box(a) assert t == (Coordinate(1, -2), Coordinate(10, 4)) - - diff --git a/chiplotle/tools/hpgltools/test/test_get_centroid.py b/chiplotle/tools/hpgltools/test/test_get_centroid.py index 8983c08..e08a391 100644 --- a/chiplotle/tools/hpgltools/test/test_get_centroid.py +++ b/chiplotle/tools/hpgltools/test/test_get_centroid.py @@ -3,13 +3,13 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PA -def test_get_centroid_01( ): + +def test_get_centroid_01(): g = [PA([(0, 0), (10, 10), (0, 10), (10, 0)])] t = hpgltools.get_centroid(g) assert t == Coordinate(5, 5) - - diff --git a/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py b/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py index 72b1c2b..5f2e04f 100644 --- a/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py +++ b/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py @@ -2,101 +2,109 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from py.test import raises -def test_inflate_hpgl_string_01( ): - '''An empty string returns an empty list.''' - t = hpgltools.inflate_hpgl_string('') - assert t == [ ] +def test_inflate_hpgl_string_01(): + """An empty string returns an empty list.""" + t = hpgltools.inflate_hpgl_string("") + + assert t == [] -def test_inflate_hpgl_string_02( ): - '''The first argument must be a string.''' - assert raises(TypeError, 't = hpgltools.inflate_hpgl_string([1,2,3])') +def test_inflate_hpgl_string_02(): + """The first argument must be a string.""" + assert raises(TypeError, "t = hpgltools.inflate_hpgl_string([1,2,3])") -def test_inflate_hpgl_string_03( ): - '''The function converts a string of HPGL commands into Chiplotle-HPGL instances.''' - t = hpgltools.inflate_hpgl_string('IN;PU;PA10,10;CI100;') +def test_inflate_hpgl_string_03(): + """The function converts a string of HPGL commands into Chiplotle-HPGL instances.""" + t = hpgltools.inflate_hpgl_string("IN;PU;PA10,10;CI100;") assert len(t) == 4 - assert t[0] == IN( ) - assert t[1] == PU( ) + assert t[0] == IN() + assert t[1] == PU() assert t[2] == PA([(10, 10)]) assert t[3] == CI(100) -def test_inflate_hpgl_string_04( ): - '''HPGL commands need not be separated by ;.''' - s = 'INPA10,10PDCI100' +def test_inflate_hpgl_string_04(): + """HPGL commands need not be separated by ;.""" + s = "INPA10,10PDCI100" t = hpgltools.inflate_hpgl_string(s) assert len(t) == 4 - assert t[0] == IN( ) + assert t[0] == IN() assert t[1] == PA([(10, 10)]) - assert t[2] == PD( ) + assert t[2] == PD() assert t[3] == CI(100) ## AR AA ## -def test_inflate_hpgl_string_05( ): - '''AA and AR are with only coordinates and angle are imported correctly.''' - s = 'IN;AA10,10,90;' + +def test_inflate_hpgl_string_05(): + """AA and AR are with only coordinates and angle are imported correctly.""" + s = "IN;AA10,10,90;" t = hpgltools.inflate_hpgl_string(s) assert len(t) == 2 - assert t[0] == IN( ) + assert t[0] == IN() assert t[1] == AA((10, 10), 90) -def test_inflate_hpgl_string_06( ): - '''AA and AR are with all parameters are imported correctly.''' - s = 'IN;AA10,10,90,10.2;' +def test_inflate_hpgl_string_06(): + """AA and AR are with all parameters are imported correctly.""" + s = "IN;AA10,10,90,10.2;" t = hpgltools.inflate_hpgl_string(s) assert len(t) == 2 - assert t[0] == IN( ) + assert t[0] == IN() assert t[1] == AA((10, 10), 90, 10.2) ## two point commands ## + def test_inflate_hpgl_string_IW(): - '''IW.''' - s = 'IW1,2,3,4;' + """IW.""" + s = "IW1,2,3,4;" t = hpgltools.inflate_hpgl_string(s) assert len(t) == 1 assert t[0] == IW([(1, 2), (3, 4)]) + def test_inflate_hpgl_string_SC(): - '''SC.''' - s = 'SC1,2,3,4;' + """SC.""" + s = "SC1,2,3,4;" t = hpgltools.inflate_hpgl_string(s) assert len(t) == 1 assert t[0] == SC([(1, 2), (3, 4)]) + def test_inflate_hpgl_string_IP(): - '''IP.''' - s = 'IP1,2,3,4;' + """IP.""" + s = "IP1,2,3,4;" t = hpgltools.inflate_hpgl_string(s) assert len(t) == 1 assert t[0] == IP([(1, 2), (3, 4)]) + ## FILTERING ## -def test_inflate_hpgl_string__filter_01( ): - '''The function can take a list of HPGL commands to filter out from the result.''' - t = hpgltools.inflate_hpgl_string('IN;PU;PA10,10;CI100;', ['IN', 'PA']) + +def test_inflate_hpgl_string__filter_01(): + """The function can take a list of HPGL commands to filter out from the result.""" + t = hpgltools.inflate_hpgl_string("IN;PU;PA10,10;CI100;", ["IN", "PA"]) assert len(t) == 2 - assert t[0] == PU( ) + assert t[0] == PU() assert t[1] == CI(100) -def test_inflate_hpgl_string__filter_02( ): - '''The `filter_commands' argument must be a list of two-letter HPGL strings.''' +def test_inflate_hpgl_string__filter_02(): + """The `filter_commands' argument must be a list of two-letter HPGL strings.""" e = "t = hpgltools.inflate_hpgl_string('IN;PU;PA10,10;CI100;', 'IN;PU;')" assert raises(TypeError, e) diff --git a/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py b/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py index 44c3647..f438a99 100644 --- a/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py +++ b/chiplotle/tools/hpgltools/test/test_parse_hpgl_string.py @@ -2,53 +2,67 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * -def test_parse_hpgl_string_01( ): - '''Coma separated integer arguments numbers are handled properly.''' - s = 'IN;PA0,0PD1,2;PU3,4PD' + +def test_parse_hpgl_string_01(): + """Coma separated integer arguments numbers are handled properly.""" + s = "IN;PA0,0PD1,2;PU3,4PD" t = hpgltools.parse_hpgl_string(s) - assert t == ['IN', 'PA0,0', 'PD1,2', 'PU3,4', 'PD'] + assert t == ["IN", "PA0,0", "PD1,2", "PU3,4", "PD"] + -def test_parse_hpgl_string_02( ): - '''Coma separated floating point numbers are handled correctly.''' - s = 'IN;PA0,0.1PD1.33,2.0;PU3,4PD' +def test_parse_hpgl_string_02(): + """Coma separated floating point numbers are handled correctly.""" + s = "IN;PA0,0.1PD1.33,2.0;PU3,4PD" t = hpgltools.parse_hpgl_string(s) - assert t == ['IN', 'PA0,0.1', 'PD1.33,2.0', 'PU3,4', 'PD'] + assert t == ["IN", "PA0,0.1", "PD1.33,2.0", "PU3,4", "PD"] -def test_parse_hpgl_string_03( ): - '''Negative values are handled correnctly.''' - s = 'IN;SP2;PU;PA169.33,-0.00;PD;PA169.33,-1.00,170.22,6.32,170.86,12.67;PU;' + +def test_parse_hpgl_string_03(): + """Negative values are handled correnctly.""" + s = "IN;SP2;PU;PA169.33,-0.00;PD;PA169.33,-1.00,170.22,6.32,170.86,12.67;PU;" t = hpgltools.parse_hpgl_string(s) - assert t == ['IN', 'SP2', 'PU', 'PA169.33,-0.00', 'PD', - 'PA169.33,-0.00,170.22,6.32,170.86,12.67', 'PU'] + assert t == [ + "IN", + "SP2", + "PU", + "PA169.33,-0.00", + "PD", + "PA169.33,-0.00,170.22,6.32,170.86,12.67", + "PU", + ] + -def test_parse_hpgl_string_04( ): - '''Commands stringed together (with no ; separator) are handled correctly.''' - s = 'INSP2PUPA2,-1PDRR100PU' +def test_parse_hpgl_string_04(): + """Commands stringed together (with no ; separator) are handled correctly.""" + s = "INSP2PUPA2,-1PDRR100PU" t = hpgltools.parse_hpgl_string(s) - assert t == ['IN', 'SP2', 'PU', 'PA2,-1', 'PD', 'RR100', 'PU'] + assert t == ["IN", "SP2", "PU", "PA2,-1", "PD", "RR100", "PU"] + def test_parse_hpgl_string_05(): - '''LB''' - s = 'DT#;LBHello World#;' + """LB""" + s = "DT#;LBHello World#;" t = hpgltools.parse_hpgl_string(s) print(t) - assert t == ['DT#', 'LBHello World#'] + assert t == ["DT#", "LBHello World#"] + ## DCI (escape) commands ## -def test_parse_hpgl_string_03( ): - '''Plotter On DCI is captured.''' - s = '\x1b.YIN;PA0,0;' + +def test_parse_hpgl_string_03(): + """Plotter On DCI is captured.""" + s = "\x1b.YIN;PA0,0;" t = hpgltools.parse_hpgl_string(s) - assert t == ['\x1b.Y', 'IN', 'PA0,0'] + assert t == ["\x1b.Y", "IN", "PA0,0"] -def test_parse_hpgl_string_03b( ): - '''Plotter On DCI is captured.''' - s = '\x1b.(IN;PA0,0;' +def test_parse_hpgl_string_03b(): + """Plotter On DCI is captured.""" + s = "\x1b.(IN;PA0,0;" t = hpgltools.parse_hpgl_string(s) - assert t == ['\x1b.(', 'IN', 'PA0,0'] - + assert t == ["\x1b.(", "IN", "PA0,0"] diff --git a/chiplotle/tools/hpgltools/test/test_pens_updown_to_papr.py b/chiplotle/tools/hpgltools/test/test_pens_updown_to_papr.py index bdc2f00..aae4dac 100644 --- a/chiplotle/tools/hpgltools/test/test_pens_updown_to_papr.py +++ b/chiplotle/tools/hpgltools/test/test_pens_updown_to_papr.py @@ -3,44 +3,45 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * -def test_pens_updown_to_papr_01( ): + +def test_pens_updown_to_papr_01(): g = [PA([(1, 2)]), PU([(1, 1), (2, 2)])] t = hpgltools.pens_updown_to_papr(g) assert len(t) == 3 assert t[0] == PA([(1, 2)]) - assert t[1] == PU( ) + assert t[1] == PU() assert t[2] == PA([(1, 1), (2, 2)]) -def test_pens_updown_to_papr_02( ): +def test_pens_updown_to_papr_02(): g = [PU([(1, 1), (2, 2)])] t = hpgltools.pens_updown_to_papr(g) assert len(t) == 2 - assert t[0] == PU( ) + assert t[0] == PU() assert t[1] == PA([(1, 1), (2, 2)]) -def test_pens_updown_to_papr_03( ): - '''Other HPGL commands are passed untouched.''' +def test_pens_updown_to_papr_03(): + """Other HPGL commands are passed untouched.""" g = [PA([(0, 0)]), CI(100), PD([(1, 1), (2, 2)]), ER((10, 10))] t = hpgltools.pens_updown_to_papr(g) assert len(t) == 5 assert t[0] == PA([(0, 0)]) assert t[1] == CI(100) - assert t[2] == PD( ) + assert t[2] == PD() assert t[3] == PA([(1, 1), (2, 2)]) assert t[4] == ER((10, 10)) -def test_pens_updown_to_papr_04( ): - '''The function returns fresh new instances of PA and or PR.''' +def test_pens_updown_to_papr_04(): + """The function returns fresh new instances of PA and or PR.""" g = [PA(), PD([(1, 1)]), PD([(2, 2)]), PD([(3, 3)])] t = hpgltools.pens_updown_to_papr(g) assert len(t) == 7 assert t[2] is not t[4] assert t[4] is not t[6] - diff --git a/chiplotle/tools/hpgltools/test/test_pr_to_pa.py b/chiplotle/tools/hpgltools/test/test_pr_to_pa.py index a86290d..12fd324 100644 --- a/chiplotle/tools/hpgltools/test/test_pr_to_pa.py +++ b/chiplotle/tools/hpgltools/test/test_pr_to_pa.py @@ -3,36 +3,38 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * -def test_pr_to_pa_01( ): - '''PR with one coordinate works.''' + +def test_pr_to_pa_01(): + """PR with one coordinate works.""" pr = PR([(1, 2)]) t = hpgltools.pr_to_pa(pr, (0, 0)) assert isinstance(t, PA) assert t.xy == CoordinateArray([(1, 2)]) -def test_pr_to_pa_02( ): - '''PR with more than one coordinate works.''' +def test_pr_to_pa_02(): + """PR with more than one coordinate works.""" pr = PR([(1, 2), (1, 1), (-2, 1)]) t = hpgltools.pr_to_pa(pr) assert isinstance(t, PA) assert t.xy == CoordinateArray([(1, 2), (2, 3), (0, 4)]) -def test_pr_to_pa_03( ): - '''PR with mpty coordinate array results in empty PA.''' - pr = PR( ) +def test_pr_to_pa_03(): + """PR with mpty coordinate array results in empty PA.""" + pr = PR() t = hpgltools.pr_to_pa(pr) assert isinstance(t, PA) - assert t.xy == CoordinateArray([ ]) + assert t.xy == CoordinateArray([]) -def test_pr_to_pa_04( ): - '''The function takes the optional argument `starting_position`.''' +def test_pr_to_pa_04(): + """The function takes the optional argument `starting_position`.""" pr = PR([(1, 1), (1, 1)]) t = hpgltools.pr_to_pa(pr, (10, 20)) assert isinstance(t, PA) diff --git a/chiplotle/tools/hpgltools/test/test_relativize.py b/chiplotle/tools/hpgltools/test/test_relativize.py index 6eb5dcc..b6f273a 100644 --- a/chiplotle/tools/hpgltools/test/test_relativize.py +++ b/chiplotle/tools/hpgltools/test/test_relativize.py @@ -3,17 +3,19 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from chiplotle.tools.hpgltools import relativize -def test_relativize_01( ): - '''A sequence or PAs is converted into a sequence or PRs.''' + +def test_relativize_01(): + """A sequence or PAs is converted into a sequence or PRs.""" t = [PA([(1, 1)]), PA([(2, 2)]), PA([(3, 2)])] r = relativize(t) - 'r = [PR((1, 1)), PR((1, 0))]' + "r = [PR((1, 1)), PR((1, 0))]" assert len(r) == len(t) - 1 assert isinstance(r[0], PR) assert isinstance(r[1], PR) @@ -21,23 +23,23 @@ def test_relativize_01( ): assert r[1].xy == CoordinateArray([(1, 0)]) -def test_relativize_02( ): - '''Long PAs are converted to long PRs.''' +def test_relativize_02(): + """Long PAs are converted to long PRs.""" t = [PA([(1, 1), (2, 3), (3, 2)])] r = relativize(t) - 'r = [PR([(1, 2), (1, -1)])]' + "r = [PR([(1, 2), (1, -1)])]" assert len(r) == 1 assert isinstance(r[0], PR) assert r[0].xy == CoordinateArray([(1, 2), (1, -1)]) -def test_relativize_03( ): - '''Long PAs are converted to long PRs.''' +def test_relativize_03(): + """Long PAs are converted to long PRs.""" t = [PA([(3, 2)]), PA([(1, 1), (2, 3), (3, 2)])] r = relativize(t) - 'r = [PR(-2, -1), PR([(1, 2), (1, -1)])]' + "r = [PR(-2, -1), PR([(1, 2), (1, -1)])]" assert len(r) == 2 assert isinstance(r[0], PR) assert isinstance(r[1], PR) @@ -45,12 +47,12 @@ def test_relativize_03( ): assert r[1].xy == CoordinateArray([(1, 2), (1, -1)]) -def test_relativize_04( ): - '''PUs and PDs are left alone.''' +def test_relativize_04(): + """PUs and PDs are left alone.""" t = [PA([(1, 1)]), PU([(2, 2)]), PU([(3, 2)])] r = relativize(t) - 'r = [PU((2, 2)), PU((3, 2))]' + "r = [PU((2, 2)), PU((3, 2))]" assert len(r) == 2 assert isinstance(r[0], PU) assert isinstance(r[1], PU) @@ -58,12 +60,12 @@ def test_relativize_04( ): assert r[1].xy == CoordinateArray([(3, 2)]) -def test_relativize_05( ): - '''PUs and PDs are left alone.''' +def test_relativize_05(): + """PUs and PDs are left alone.""" t = [PA([(1, 1)]), PR([(2, 1)]), PU([(2, 2)]), PU([(3, 2)])] r = relativize(t) - 'r = [PR((2, 1)), PU((2, 2)), PU((3, 2))]' + "r = [PR((2, 1)), PU((2, 2)), PU((3, 2))]" assert len(r) == 3 assert isinstance(r[0], PR) assert isinstance(r[1], PU) @@ -73,12 +75,12 @@ def test_relativize_05( ): assert r[2].xy == CoordinateArray([(3, 2)]) -def test_relativize_06( ): - '''RAs are converted into RRs.''' +def test_relativize_06(): + """RAs are converted into RRs.""" t = [PR([(1, 2)]), RA((3, 3))] r = relativize(t) - '[PR((1, 2)), RR((2, 1))]' + "[PR((1, 2)), RR((2, 1))]" assert len(r) == 2 assert isinstance(r[0], PR) assert isinstance(r[1], RR) diff --git a/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py b/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py index f2223e2..7002475 100644 --- a/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py +++ b/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py @@ -3,19 +3,26 @@ from __future__ import unicode_literals from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * import math from py.test import raises -def test_rotate_hpglprimitives_01( ): - t = [PU( ), PD( ), PA([(1, 1), (-1, 1)]), PR([(1, 1), (-1, 1)]), - ER((1, 2)), EA((1, 2)), CI(10)] + +def test_rotate_hpglprimitives_01(): + t = [ + PU(), + PD(), + PA([(1, 1), (-1, 1)]), + PR([(1, 1), (-1, 1)]), + ER((1, 2)), + EA((1, 2)), + CI(10), + ] hpgltools.rotate_hpglprimitives(t, math.pi / 2.0) assert len(t) == 7 print(t[2].xy) ## NOTE: why is this not working? - #assert t[2].xy == CoordinateArray([Coordinate(1, -1), Coordinate(1, 1)]) - - + # assert t[2].xy == CoordinateArray([Coordinate(1, -1), Coordinate(1, 1)]) diff --git a/chiplotle/tools/hpgltools/test/test_scale.py b/chiplotle/tools/hpgltools/test/test_scale.py index c2746f1..13c55c9 100644 --- a/chiplotle/tools/hpgltools/test/test_scale.py +++ b/chiplotle/tools/hpgltools/test/test_scale.py @@ -3,70 +3,79 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from chiplotle.tools.hpgltools import scale -def test_scale_CI( ): - '''Scale works on single CI.''' + +def test_scale_CI(): + """Scale works on single CI.""" t = CI(1, 20) scale(t, 1.5) assert t.radius == 1.5 - assert t.chordangle == 20 ### chordangle is unmodified + assert t.chordangle == 20 ### chordangle is unmodified + -def test_scale_ER( ): - '''Scale works on single ER.''' +def test_scale_ER(): + """Scale works on single ER.""" t = ER((1, 2)) scale(t, 1.5) assert t.xy == Coordinate(1.5, 3.0) -def test_scale_EA( ): - '''Scale works on single EA.''' + +def test_scale_EA(): + """Scale works on single EA.""" t = EA((1, 2)) scale(t, 1.5) assert t.xy == Coordinate(1.5, 3.0) -def test_scale_PU( ): - '''Scale works on single PU.''' + +def test_scale_PU(): + """Scale works on single PU.""" t = PU([(1, 2)]) scale(t, 1.5) assert t.xy == CoordinateArray([(1.5, 3.0)]) -def test_scale_PD( ): - '''Scale works on single PD.''' + +def test_scale_PD(): + """Scale works on single PD.""" t = PD([(1, 2)]) scale(t, 1.5) assert t.xy == CoordinateArray([(1.5, 3.0)]) -def test_scale_PA( ): - '''Scale works on single PA.''' + +def test_scale_PA(): + """Scale works on single PA.""" t = PA([(1, 2)]) scale(t, 1.5) assert t.xy == CoordinateArray([(1.5, 3.0)]) -def test_scale_PR( ): - '''Scale works on single PR.''' + +def test_scale_PR(): + """Scale works on single PR.""" t = PR([(1, 2)]) scale(t, 1.5) assert t.xy == CoordinateArray([(1.5, 3.0)]) -def test_scale_RA( ): - '''Scale works on single RA.''' + +def test_scale_RA(): + """Scale works on single RA.""" t = RA((1, 2)) scale(t, 1.5) assert t.xy == Coordinate(1.5, 3.0) -def test_scale_RR( ): - '''Scale works on single RR.''' + +def test_scale_RR(): + """Scale works on single RR.""" t = RR((1, 2)) scale(t, 1.5) assert t.xy == Coordinate(1.5, 3.0) -def test_scale_list_01( ): +def test_scale_list_01(): t = [PA([(1, 2)]), PU([(3, 4)])] scale(t, 1.5) assert t[0].xy == CoordinateArray([(1.5, 3)]) assert t[1].xy == CoordinateArray([(4.5, 6)]) - diff --git a/chiplotle/tools/hpgltools/test/test_transpose.py b/chiplotle/tools/hpgltools/test/test_transpose.py index 59d743c..ef8f307 100644 --- a/chiplotle/tools/hpgltools/test/test_transpose.py +++ b/chiplotle/tools/hpgltools/test/test_transpose.py @@ -3,63 +3,73 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * from chiplotle.tools.hpgltools import transpose -def test_transpose_CI( ): - '''Transpose correctly ignores CI attributes.''' + +def test_transpose_CI(): + """Transpose correctly ignores CI attributes.""" t = CI(1, 20) transpose(t, (1.5, -2.5)) assert t.radius == 1 assert t.chordangle == 20 -def test_transpose_EA( ): - '''Transpose works on single EA.''' + +def test_transpose_EA(): + """Transpose works on single EA.""" t = EA((1, 2)) transpose(t, (1.5, -2.5)) assert t.xy == Coordinate(2.5, -0.5) -def test_transpose_ER( ): - '''Transpose correctly ignores relative positions in ER.''' + +def test_transpose_ER(): + """Transpose correctly ignores relative positions in ER.""" t = ER((1, 2)) transpose(t, (1.5, -2.5)) assert t.xy == Coordinate(1, 2) -def test_transpose_PU( ): - '''Transpose ignores PU because behavior of PU depends on previous - PA or PR.''' + +def test_transpose_PU(): + """Transpose ignores PU because behavior of PU depends on previous + PA or PR.""" t = PU([(1, 2)]) transpose(t, (1.5, -2.5)) assert t.xy == CoordinateArray([(1, 2)]) -def test_transpose_PD( ): - '''Transpose ignores PD.''' + +def test_transpose_PD(): + """Transpose ignores PD.""" t = PD([(1, 2)]) transpose(t, (1.5, -2.5)) assert t.xy == CoordinateArray([(1, 2)]) -def test_transpose_PA( ): - '''Transpose works on a single PA.''' + +def test_transpose_PA(): + """Transpose works on a single PA.""" t = PA([(1, 2)]) transpose(t, (1.5, -2.5)) assert t.xy == CoordinateArray([(2.5, -0.5)]) -def test_transpose_PR( ): - '''Transpose correctly ignores relative positions in PR.''' + +def test_transpose_PR(): + """Transpose correctly ignores relative positions in PR.""" t = PR([(1, 2)]) transpose(t, (1.5, -2.5)) assert t.xy == CoordinateArray([(1, 2)]) -def test_transpose_RA( ): - '''Transpose works on single RA.''' + +def test_transpose_RA(): + """Transpose works on single RA.""" t = RA((1, 2)) transpose(t, (1.5, -2.5)) assert t.xy == Coordinate(2.5, -0.5) -def test_transpose_RR( ): - '''Transpose correctly ignores relative positions in RR.''' + +def test_transpose_RR(): + """Transpose correctly ignores relative positions in RR.""" t = RR((1, 2)) transpose(t, (1.5, -2.5)) assert t.xy == Coordinate(1, 2) diff --git a/chiplotle/tools/hpgltools/transpose.py b/chiplotle/tools/hpgltools/transpose.py index b8bb512..b0011c5 100644 --- a/chiplotle/tools/hpgltools/transpose.py +++ b/chiplotle/tools/hpgltools/transpose.py @@ -3,17 +3,21 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL from chiplotle.tools.hpgltools.is_primitive_absolute import is_primitive_absolute from chiplotle.geometry.core.coordinate import * + def _transpose_command(arg, val): from chiplotle.tools.iterabletools.ispair import ispair + val = Coordinate(*val) if is_primitive_absolute(arg): arg.xy = arg.xy + val + def transpose(arg, val): if isinstance(arg, _HPGL): _transpose_command(arg, val) diff --git a/chiplotle/tools/io/__init__.py b/chiplotle/tools/io/__init__.py index 55e192e..415957f 100644 --- a/chiplotle/tools/io/__init__.py +++ b/chiplotle/tools/io/__init__.py @@ -3,8 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], globals( )) - +_package_import(__path__[0], globals()) diff --git a/chiplotle/tools/io/_open_file.py b/chiplotle/tools/io/_open_file.py index 937be8a..51ea702 100644 --- a/chiplotle/tools/io/_open_file.py +++ b/chiplotle/tools/io/_open_file.py @@ -3,26 +3,26 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import os import sys -def _open_file(file_name, application = None): - '''Generic cross-platform file opener. +def _open_file(file_name, application=None): + """Generic cross-platform file opener. - `file_name` is the file to open, including path. - `application` is the application to use to open the file; must be a string or None. If not given, the function will use a generic OS dependent file openner. - ''' + """ - if os.name == 'nt': + if os.name == "nt": os.startfile(file_name) else: - if sys.platform.lower( ) == 'linux2': - viewer = application or 'xdg-open' + if sys.platform.lower() == "linux2": + viewer = application or "xdg-open" else: - viewer = application or 'open' - os.system('%s %s &' % (viewer, file_name)) - + viewer = application or "open" + os.system("%s %s &" % (viewer, file_name)) diff --git a/chiplotle/tools/io/export.py b/chiplotle/tools/io/export.py index 0147539..b803489 100644 --- a/chiplotle/tools/io/export.py +++ b/chiplotle/tools/io/export.py @@ -3,13 +3,15 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.io.save_hpgl import save_hpgl from chiplotle.core.cfg.cfg import CONFIG_DIR import subprocess -def export(expr, filename, fmt = 'eps'): - '''Export Chiplotle-HPGL objects to an image file format via ``hp2xx``. + +def export(expr, filename, fmt="eps"): + """Export Chiplotle-HPGL objects to an image file format via ``hp2xx``. - `expr` can be an iterable (e.g., list) of Chiplotle-HPGL objects or a single Chiplotle-HPGL object. @@ -22,27 +24,29 @@ def export(expr, filename, fmt = 'eps'): .. note:: You must have ``hp2xx`` installed before you can export Chiplote-HPGL objects to image files. - ''' + """ - htmlfile = '{0}.hpgl'.format(filename) - imgfile = '{0}.{1}'.format(filename, fmt) + htmlfile = "{0}.hpgl".format(filename) + imgfile = "{0}.{1}".format(filename, fmt) save_hpgl(expr, htmlfile) cmd = 'hp2xx --truesize -p 1 -m %s -f "%s" "%s"' % (fmt, imgfile, htmlfile) - p = subprocess.Popen(cmd, - shell=True, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - universal_newlines=True) - stdout, stderr = p.communicate( ) - - if 'not found' in stderr: + p = subprocess.Popen( + cmd, + shell=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ) + stdout, stderr = p.communicate() + + if "not found" in stderr: print(_hp2xxError()) return imgfile def _hp2xxError(): - msg = '''ATTENTION: hp2xx is not installed in your system. - hp2xx must be installed for previewing art.''' + msg = """ATTENTION: hp2xx is not installed in your system. + hp2xx must be installed for previewing art.""" return msg diff --git a/chiplotle/tools/io/import_hpgl_file.py b/chiplotle/tools/io/import_hpgl_file.py index a349261..a977696 100644 --- a/chiplotle/tools/io/import_hpgl_file.py +++ b/chiplotle/tools/io/import_hpgl_file.py @@ -4,13 +4,15 @@ from __future__ import absolute_import from builtins import open from future import standard_library + standard_library.install_aliases() from chiplotle.tools.hpgltools.inflate_hpgl_string import inflate_hpgl_string from chiplotle.hpgl import commands as hpgl import re + def import_hpgl_file(filename, filter_commands=None): - '''Reads a text HPGL file and "inflates" it by creating + """Reads a text HPGL file and "inflates" it by creating Chiplotle-HPGL class instances of the found HPGL commands. Example:: @@ -20,8 +22,8 @@ def import_hpgl_file(filename, filter_commands=None): [SP(pen=1), PU(xy=[ 100. 100.]), PD(xy=[ 200. 100.]), PD(xy=[ 200. 200.]), PD(xy=[ 100. 200.]), PD(xy=[ 100. 100.]), SP(pen=0)] - ''' + """ - with open(filename, 'r', encoding='utf8') as f: + with open(filename, "r", encoding="utf8") as f: file_contents = f.read() return inflate_hpgl_string(file_contents, filter_commands) diff --git a/chiplotle/tools/io/save_hpgl.py b/chiplotle/tools/io/save_hpgl.py index a521f9f..76e27c9 100644 --- a/chiplotle/tools/io/save_hpgl.py +++ b/chiplotle/tools/io/save_hpgl.py @@ -4,18 +4,20 @@ from __future__ import absolute_import from builtins import open from future import standard_library + standard_library.install_aliases() from chiplotle.hpgl.abstract.hpgl import _HPGL + def save_hpgl(expr, filename): - '''Save text HPGL from Chiplotle-HPGL. + """Save text HPGL from Chiplotle-HPGL. - `expr` can be an iterable (e.g., list) or a Chiplotle-HPGL object. - `filename` the full file name, including path and extension (usually .hpgl or .plt) - ''' + """ ## parse expr; extract pure text HPGL commands. - hpgl = [ ] + hpgl = [] if isinstance(expr, (list, tuple)): for o in expr: assert isinstance(o, _HPGL) @@ -24,6 +26,6 @@ def save_hpgl(expr, filename): hpgl.append(expr.format) ## create HPGL file - file = open('%s' % filename, 'w') + file = open("%s" % filename, "w") file.writelines(hpgl) - file.close( ) + file.close() diff --git a/chiplotle/tools/io/test/test_export.py b/chiplotle/tools/io/test/test_export.py index 0acf7b7..aedfbd5 100644 --- a/chiplotle/tools/io/test/test_export.py +++ b/chiplotle/tools/io/test/test_export.py @@ -3,16 +3,17 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * import os def test_01(): - circ = shapes.circle(100) - filename = 'circle' - io.export(circ, filename, 'png') + circ = shapes.circle(100) + filename = "circle" + io.export(circ, filename, "png") - assert os.path.exists(filename + '.png') + assert os.path.exists(filename + ".png") - os.remove(filename + '.png') + os.remove(filename + ".png") diff --git a/chiplotle/tools/io/test/test_import_hpgl_file.py b/chiplotle/tools/io/test/test_import_hpgl_file.py index d05d76f..2d681e7 100644 --- a/chiplotle/tools/io/test/test_import_hpgl_file.py +++ b/chiplotle/tools/io/test/test_import_hpgl_file.py @@ -3,27 +3,29 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * import os -def test_import_hpgl_file_01( ): + +def test_import_hpgl_file_01(): path = os.path.dirname(os.path.abspath(__file__)) - t = io.import_hpgl_file(os.path.join(path, 'hpgl_import_test_file.hpgl')) + t = io.import_hpgl_file(os.path.join(path, "hpgl_import_test_file.hpgl")) - assert t[0].format == 'IN;' - assert t[1].format == 'IP0,0,8128,8128;' - assert t[2].format == 'SC0,10000,0,10000;' - assert t[3].format == 'SP1;' - assert t[4].format == 'LT;' - assert t[5].format == 'PM0;' - assert t[6].format == 'PU;' - assert t[7].format == 'PA0,0;' - assert t[8].format == 'PD;' - assert t[9].format == 'PA10,0,10,10,0,10,0,0;' - assert t[10].format == 'PM2;' - assert t[11].format == 'PU;' - assert t[12].format == 'FT2;' - assert t[13].format == 'FP;' - assert t[14].format == 'EP;' - assert t[15].format == 'SP0;' + assert t[0].format == "IN;" + assert t[1].format == "IP0,0,8128,8128;" + assert t[2].format == "SC0,10000,0,10000;" + assert t[3].format == "SP1;" + assert t[4].format == "LT;" + assert t[5].format == "PM0;" + assert t[6].format == "PU;" + assert t[7].format == "PA0,0;" + assert t[8].format == "PD;" + assert t[9].format == "PA10,0,10,10,0,10,0,0;" + assert t[10].format == "PM2;" + assert t[11].format == "PU;" + assert t[12].format == "FT2;" + assert t[13].format == "FP;" + assert t[14].format == "EP;" + assert t[15].format == "SP0;" diff --git a/chiplotle/tools/io/test/test_save_hpgl.py b/chiplotle/tools/io/test/test_save_hpgl.py index cb83a27..9e34ea7 100644 --- a/chiplotle/tools/io/test/test_save_hpgl.py +++ b/chiplotle/tools/io/test/test_save_hpgl.py @@ -3,14 +3,15 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * import os def test_01(): - circ = shapes.circle(100) - filename = 'circle.hpgl' + circ = shapes.circle(100) + filename = "circle.hpgl" io.save_hpgl(circ, filename) assert os.path.exists(filename) diff --git a/chiplotle/tools/io/view.py b/chiplotle/tools/io/view.py index 261748c..abe50db 100644 --- a/chiplotle/tools/io/view.py +++ b/chiplotle/tools/io/view.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.cfg import CONFIG_DIR from chiplotle.tools.io.export import export @@ -10,18 +11,19 @@ import os import time -def view(expr, fmt='eps'): - '''Displays Chiplotle-HPGL objects for prevewing. + +def view(expr, fmt="eps"): + """Displays Chiplotle-HPGL objects for prevewing. - `expr` can be an iterable (e.g., list) or a Chiplotle-HPGL object. - `fmt` is the file format to which the given `expr` will be converted for viewing. The default is 'eps'. - ''' + """ - outdir = os.path.join(CONFIG_DIR, 'output') - filename = time.strftime('%Y%m%d_%H%M%S') + outdir = os.path.join(CONFIG_DIR, "output") + filename = time.strftime("%Y%m%d_%H%M%S") filepath = os.path.join(outdir, filename) - imgfile = export(expr, filepath, fmt) + imgfile = export(expr, filepath, fmt) ## show! _open_file(imgfile) diff --git a/chiplotle/tools/iterabletools/__init__.py b/chiplotle/tools/iterabletools/__init__.py index 55e192e..415957f 100644 --- a/chiplotle/tools/iterabletools/__init__.py +++ b/chiplotle/tools/iterabletools/__init__.py @@ -3,8 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], globals( )) - +_package_import(__path__[0], globals()) diff --git a/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py b/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py index c81326e..a7797e8 100644 --- a/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py +++ b/chiplotle/tools/iterabletools/flat_list_to_dovetail_pairs.py @@ -5,6 +5,9 @@ from builtins import zip from future import standard_library + standard_library.install_aliases() + + def flat_list_to_dovetail_pairs(lst): return list(zip(lst[0:-1], lst[1:])) diff --git a/chiplotle/tools/iterabletools/flat_list_to_pairs.py b/chiplotle/tools/iterabletools/flat_list_to_pairs.py index 91c170d..6209111 100644 --- a/chiplotle/tools/iterabletools/flat_list_to_pairs.py +++ b/chiplotle/tools/iterabletools/flat_list_to_pairs.py @@ -5,21 +5,24 @@ from builtins import zip from future import standard_library + standard_library.install_aliases() + + def flat_list_to_pairs(lst): - '''Returns a list of pairs created from consecutive elements of the given + """Returns a list of pairs created from consecutive elements of the given flat list `lst`. Example:: >>> flat_list_to_pairs([1,2,3,4,5,6]) [(1, 2), (3, 4), (5, 6)] - ''' + """ if len(lst) % 2 != 0: raise ValueError("List must have a pair number of elements.") - result = [ ] + result = [] for x, y in zip(lst[0:-1:2], lst[1::2]): result.append((x, y)) return result diff --git a/chiplotle/tools/iterabletools/flatten.py b/chiplotle/tools/iterabletools/flatten.py index a073437..48bbe4e 100644 --- a/chiplotle/tools/iterabletools/flatten.py +++ b/chiplotle/tools/iterabletools/flatten.py @@ -4,12 +4,15 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def flatten(l, ltypes=(list, tuple)): - ''' + """ Flatten nested lists. Returns a 0-depth list or tuple. Based on Mike C. Fletcher's flatten. - ''' + """ assert isinstance(l, ltypes) ltype = type(l) l = list(l) @@ -21,8 +24,6 @@ def flatten(l, ltypes=(list, tuple)): i -= 1 break else: - l[i:i + 1] = l[i] + l[i : i + 1] = l[i] i += 1 return ltype(l) - - diff --git a/chiplotle/tools/iterabletools/is_flat_list.py b/chiplotle/tools/iterabletools/is_flat_list.py index 3c77132..459f5a8 100644 --- a/chiplotle/tools/iterabletools/is_flat_list.py +++ b/chiplotle/tools/iterabletools/is_flat_list.py @@ -4,9 +4,12 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def is_flat_list(lst): - '''Returns True if list is flat, false otherwise.''' + """Returns True if list is flat, false otherwise.""" if isinstance(lst, (list, tuple)): for e in lst: if isinstance(e, (list, tuple)): diff --git a/chiplotle/tools/iterabletools/isiterable.py b/chiplotle/tools/iterabletools/isiterable.py index bdcf600..6b89846 100644 --- a/chiplotle/tools/iterabletools/isiterable.py +++ b/chiplotle/tools/iterabletools/isiterable.py @@ -4,11 +4,13 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def isiterable(data): try: iter(data) except TypeError: return False return True - diff --git a/chiplotle/tools/iterabletools/ispair.py b/chiplotle/tools/iterabletools/ispair.py index 4ac754d..0edcbca 100644 --- a/chiplotle/tools/iterabletools/ispair.py +++ b/chiplotle/tools/iterabletools/ispair.py @@ -3,9 +3,10 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.iterabletools.isiterable import isiterable -def ispair(data): - return (isiterable(data) and len(data) == 2) +def ispair(data): + return isiterable(data) and len(data) == 2 diff --git a/chiplotle/tools/logtools/apply_logger.py b/chiplotle/tools/logtools/apply_logger.py index 7a8756a..7dc4622 100644 --- a/chiplotle/tools/logtools/apply_logger.py +++ b/chiplotle/tools/logtools/apply_logger.py @@ -3,12 +3,13 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.logtools.get_logger import get_logger + def apply_logger(f): - '''Applies a logger object to the 'wrapped' function.''' + """Applies a logger object to the 'wrapped' function.""" logger = get_logger(f.__name__) f.logger = logger return f - diff --git a/chiplotle/tools/logtools/get_logger.py b/chiplotle/tools/logtools/get_logger.py index d5b7f1a..1d2ecfe 100644 --- a/chiplotle/tools/logtools/get_logger.py +++ b/chiplotle/tools/logtools/get_logger.py @@ -3,28 +3,29 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.cfg import LOG_FILE from chiplotle.core.cfg.get_config_value import get_config_value import logging + def get_logger(name): logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) - string = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + string = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" formatter = logging.Formatter(string) - fh = logging.FileHandler(LOG_FILE, 'w') + fh = logging.FileHandler(LOG_FILE, "w") fh.setLevel(logging.DEBUG) fh.setFormatter(formatter) logger.addHandler(fh) - if get_config_value('verbose') == True: - string = '%(name)s - %(levelname)s - %(message)s' + if get_config_value("verbose") == True: + string = "%(name)s - %(levelname)s - %(message)s" formatter = logging.Formatter(string) - s = logging.StreamHandler( ) + s = logging.StreamHandler() s.setLevel(logging.INFO) s.setFormatter(formatter) logger.addHandler(s) return logger - diff --git a/chiplotle/tools/mathtools/__init__.py b/chiplotle/tools/mathtools/__init__.py index 55e192e..415957f 100644 --- a/chiplotle/tools/mathtools/__init__.py +++ b/chiplotle/tools/mathtools/__init__.py @@ -3,8 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], globals( )) - +_package_import(__path__[0], globals()) diff --git a/chiplotle/tools/mathtools/bezier_interpolation.py b/chiplotle/tools/mathtools/bezier_interpolation.py index 011541b..6d3bb15 100644 --- a/chiplotle/tools/mathtools/bezier_interpolation.py +++ b/chiplotle/tools/mathtools/bezier_interpolation.py @@ -5,34 +5,40 @@ from builtins import zip from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.tools.mathtools.pascal_row import pascal_row import numpy + def bezier_interpolation(control_points, points_to_compute, weight): - '''Computes Bezier interpolations from given `control_points`. + """Computes Bezier interpolations from given `control_points`. This uses the generalized formula for bezier curves: http://en.wikipedia.org/wiki/B%C3%A9zier_curve#Generalization - `control_points` : A list of (x, y) control points. - `points_to_compute`: An int of the number of points to compute. - `weight`: A list of weights for control points. - ''' + """ - control_points = numpy.array(control_points) - number_points = len(control_points) - combinations = pascal_row(number_points-1) - ts = [t / float(points_to_compute) for t in range(points_to_compute + 1)] + control_points = numpy.array(control_points) + number_points = len(control_points) + combinations = pascal_row(number_points - 1) + ts = [t / float(points_to_compute) for t in range(points_to_compute + 1)] - result = [ ] - for t in ts: - tpowers = (t**i for i in range(number_points)) - upowers = reversed([(1-t)**i for i in range(number_points)]) - coefs = numpy.array([c*a*b for c,a,b in zip(combinations,tpowers,upowers)]) - num = numpy.column_stack((coefs*weight*numpy.column_stack(control_points))).sum(axis=0) - den = (coefs*weight).sum(axis=0) - if den == 0: - den = 1 - point = tuple(num/den) - result.append(point) - return result + result = [] + for t in ts: + tpowers = (t ** i for i in range(number_points)) + upowers = reversed([(1 - t) ** i for i in range(number_points)]) + coefs = numpy.array( + [c * a * b for c, a, b in zip(combinations, tpowers, upowers)] + ) + num = numpy.column_stack( + (coefs * weight * numpy.column_stack(control_points)) + ).sum(axis=0) + den = (coefs * weight).sum(axis=0) + if den == 0: + den = 1 + point = tuple(num / den) + result.append(point) + return result diff --git a/chiplotle/tools/mathtools/catmull_interpolation.py b/chiplotle/tools/mathtools/catmull_interpolation.py index 3a9f690..9d7a0a4 100644 --- a/chiplotle/tools/mathtools/catmull_interpolation.py +++ b/chiplotle/tools/mathtools/catmull_interpolation.py @@ -4,36 +4,41 @@ from __future__ import absolute_import from builtins import range from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray + def catmull_interpolation(control_points, points_to_compute): - '''Computes Catmull-Rom interpolations from given `control_points`. + """Computes Catmull-Rom interpolations from given `control_points`. first and last point are not on the curve, but define initial and final tangent - `control_points` : A list of (x, y) control points. - `points_to_compute`: An int of the number of points to compute. - ''' - - ## TODO: move 'spline' out of this function? - def spline(p_1, p0, p1, p2, t): - point = ((2 * t**2 - t**3 - t) * p_1 + - (3 * t**3 - 5 * t**2 + 2) * p0 + - (4 * t**2 -3 * t**3 + t) * p1 + - (t**3 - t**2) * p2) * 0.5 - return point - - try: ## use numpy for speed... - import numpy - p_array = numpy.array(control_points) - except ImportError: - p_array = CoordinateArray(control_points) - - p_len = len(p_array) - result = [] - for j in range(1, p_len - 2): - for t in range(points_to_compute): - p = spline(*p_array[j-1:j+2 + 1], t = t / float(points_to_compute)) - result.append(p) - - return result + """ + + ## TODO: move 'spline' out of this function? + def spline(p_1, p0, p1, p2, t): + point = ( + (2 * t ** 2 - t ** 3 - t) * p_1 + + (3 * t ** 3 - 5 * t ** 2 + 2) * p0 + + (4 * t ** 2 - 3 * t ** 3 + t) * p1 + + (t ** 3 - t ** 2) * p2 + ) * 0.5 + return point + + try: ## use numpy for speed... + import numpy + + p_array = numpy.array(control_points) + except ImportError: + p_array = CoordinateArray(control_points) + + p_len = len(p_array) + result = [] + for j in range(1, p_len - 2): + for t in range(points_to_compute): + p = spline(*p_array[j - 1 : j + 2 + 1], t=t / float(points_to_compute)) + result.append(p) + + return result diff --git a/chiplotle/tools/mathtools/cumsum.py b/chiplotle/tools/mathtools/cumsum.py index f996864..d8cedd9 100644 --- a/chiplotle/tools/mathtools/cumsum.py +++ b/chiplotle/tools/mathtools/cumsum.py @@ -4,12 +4,16 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def cumsum(lst): - '''Returns the cumulative sum of the values in `lst`.''' + """Returns the cumulative sum of the values in `lst`.""" try: import numpy + return numpy.cumsum(lst) except ImportError: r = 0 diff --git a/chiplotle/tools/mathtools/difference.py b/chiplotle/tools/mathtools/difference.py index 9232a9a..f7495be 100644 --- a/chiplotle/tools/mathtools/difference.py +++ b/chiplotle/tools/mathtools/difference.py @@ -5,12 +5,15 @@ from builtins import range from future import standard_library + standard_library.install_aliases() + + def difference(seq): - '''Returns the difference between consecutive elements in `seq`. + """Returns the difference between consecutive elements in `seq`. i.e., first derivative. - ''' - result = [ ] + """ + result = [] for i in range(len(seq) - 1): - result.append(seq[i+1] - seq[i]) + result.append(seq[i + 1] - seq[i]) return type(seq)(result) diff --git a/chiplotle/tools/mathtools/factors.py b/chiplotle/tools/mathtools/factors.py index 9d68bfa..a032527 100644 --- a/chiplotle/tools/mathtools/factors.py +++ b/chiplotle/tools/mathtools/factors.py @@ -4,9 +4,12 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def factors(n): - '''Return factors of positive `n` in increasing order:: + """Return factors of positive `n` in increasing order:: >>> mathtools.factors(84) [1, 2, 2, 3, 7] @@ -27,7 +30,7 @@ def factors(n): 18 [1, 2, 3, 3] 19 [1, 19] - ''' + """ if not isinstance(n, int): raise TypeError diff --git a/chiplotle/tools/mathtools/interpolate_cosine.py b/chiplotle/tools/mathtools/interpolate_cosine.py index 936abdc..51d4f34 100644 --- a/chiplotle/tools/mathtools/interpolate_cosine.py +++ b/chiplotle/tools/mathtools/interpolate_cosine.py @@ -3,19 +3,21 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import math + ## TODO: use Decimal instead of floats? + def interpolate_cosine(y1, y2, mu): - '''Cosine interpolate `y1` and `y2` with `mu` normalized ``[0, 1]``. + """Cosine interpolate `y1` and `y2` with `mu` normalized ``[0, 1]``. Example:: >>> mathtools.interpolate_cosine(0, 1, 0.5) 0.49999999999999994 - ''' + """ mu2 = (1 - math.cos(mu * math.pi)) / 2.0 - return (y1 * (1 - mu2) + y2 * mu2) - + return y1 * (1 - mu2) + y2 * mu2 diff --git a/chiplotle/tools/mathtools/interpolate_exponential.py b/chiplotle/tools/mathtools/interpolate_exponential.py index 3e9577c..11b0dad 100644 --- a/chiplotle/tools/mathtools/interpolate_exponential.py +++ b/chiplotle/tools/mathtools/interpolate_exponential.py @@ -4,9 +4,12 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() -def interpolate_exponential(y1, y2, mu, exp = 1): - '''Exponential interpolate `y1` and `y2` with `mu` normalized ``[0, 1]``. + + +def interpolate_exponential(y1, y2, mu, exp=1): + """Exponential interpolate `y1` and `y2` with `mu` normalized ``[0, 1]``. Example:: @@ -15,7 +18,6 @@ def interpolate_exponential(y1, y2, mu, exp = 1): Set `exp` to the exponent of interpolation. - ''' - - return (y1 * (1 - mu ** exp) + y2 * mu ** exp) + """ + return y1 * (1 - mu ** exp) + y2 * mu ** exp diff --git a/chiplotle/tools/mathtools/interpolate_linear.py b/chiplotle/tools/mathtools/interpolate_linear.py index 05928d2..4e20400 100644 --- a/chiplotle/tools/mathtools/interpolate_linear.py +++ b/chiplotle/tools/mathtools/interpolate_linear.py @@ -4,14 +4,17 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def interpolate_linear(y1, y2, mu): - '''Linear interpolate `y1` and `y2` with `mu` normalized ``[0, 1]``. + """Linear interpolate `y1` and `y2` with `mu` normalized ``[0, 1]``. Example:: >>> mathtools.interpolate_linear(0, 1, 0.5) 0.5 - ''' + """ - return (y1 * (1 - mu) + y2 * mu) + return y1 * (1 - mu) + y2 * mu diff --git a/chiplotle/tools/mathtools/lcm.py b/chiplotle/tools/mathtools/lcm.py index 9539924..2346ebb 100644 --- a/chiplotle/tools/mathtools/lcm.py +++ b/chiplotle/tools/mathtools/lcm.py @@ -3,11 +3,13 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from fractions import gcd + def lcm(a, b): - ''' returns the lowest common multiple of a & b''' + """ returns the lowest common multiple of a & b""" the_gcd = 0 lcm = 0 @@ -19,7 +21,7 @@ def lcm(a, b): dividend = b divisor = a - the_gcd = gcd(dividend,divisor) + the_gcd = gcd(dividend, divisor) lcm = (a * b) / the_gcd - return lcm \ No newline at end of file + return lcm diff --git a/chiplotle/tools/mathtools/pascal_row.py b/chiplotle/tools/mathtools/pascal_row.py index 7424459..0290f94 100644 --- a/chiplotle/tools/mathtools/pascal_row.py +++ b/chiplotle/tools/mathtools/pascal_row.py @@ -5,27 +5,29 @@ from builtins import range from future import standard_library + standard_library.install_aliases() + + def pascal_row(n): - '''Returns the nth row of Pascal's Triangle.''' + """Returns the nth row of Pascal's Triangle.""" if not isinstance(n, int): - raise TypeError('n must be int.') + raise TypeError("n must be int.") if n < 1: - raise ValueError('n must be greater equal 1.') + raise ValueError("n must be greater equal 1.") result = [1] - x,numerator = 1, n + x, numerator = 1, n for denominator in range(1, n // 2 + 1): # print(numerator,denominator,x) x *= numerator x /= denominator result.append(x) numerator -= 1 - if n&1 == 0: + if n & 1 == 0: ## n is even result.extend(reversed(result[:-1])) else: result.extend(reversed(result)) return result - diff --git a/chiplotle/tools/mathtools/polar_to_xy.py b/chiplotle/tools/mathtools/polar_to_xy.py index 9ff8cd4..8b47f79 100644 --- a/chiplotle/tools/mathtools/polar_to_xy.py +++ b/chiplotle/tools/mathtools/polar_to_xy.py @@ -3,22 +3,21 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate import math -#def polar_to_xy(*args): +# def polar_to_xy(*args): def polar_to_xy(args): - '''Converts polar (r, A) to Cartesian (x y) coordinates, + """Converts polar (r, A) to Cartesian (x y) coordinates, where r is the radius and A is the angle in radians. - ''' + """ try: r, A = tuple(Coordinate(*args)) except: - raise TypeError('`args` must be an (r, A) tuple.') + raise TypeError("`args` must be an (r, A) tuple.") x = r * math.cos(A) y = r * math.sin(A) return (x, y) - - diff --git a/chiplotle/tools/mathtools/rotate_2d.py b/chiplotle/tools/mathtools/rotate_2d.py index acc3495..f7c6491 100644 --- a/chiplotle/tools/mathtools/rotate_2d.py +++ b/chiplotle/tools/mathtools/rotate_2d.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.coordinatearray import CoordinateArray @@ -10,15 +11,16 @@ ## TODO: refactor, this is nasty. Take one type only! + def rotate_2d(xy, angle, pivot=(0, 0)): - '''2D rotation. + """2D rotation. - `xy` is an (x, y) coordinate pair or a list of coordinate pairs. - `angle` is the angle of rotation in radians. - `pivot` the point around which to rotate `xy`. Returns a Coordinate or a CoordinateArray. - ''' + """ try: xy = Coordinate(*xy) pivot = Coordinate(*pivot) @@ -31,36 +33,36 @@ def rotate_2d(xy, angle, pivot=(0, 0)): def rotate_coordinate_2d(xy, angle, pivot): - '''Coordinate 2D rotation. + """Coordinate 2D rotation. - `xy` is an (x, y) coordinate pair. - `angle` is the angle of rotation in radians. - `pivot` the point around which to rotate `xy`. Returns a Coordinate. - ''' + """ pivot = Coordinate(*list(pivot)) ## rotate counter-clockwise... angle = -angle - #cp = Coordinate(xy) + # cp = Coordinate(xy) xy -= pivot x = xy.x * math.cos(angle) + xy.y * math.sin(angle) - y = -xy.x * math.sin(angle) + xy.y * math.cos(angle) + y = -xy.x * math.sin(angle) + xy.y * math.cos(angle) result = Coordinate(x, y) + pivot return result + def rotate_coordinatearray_2d(xylst, angle, pivot): - '''2D rotation of list of coordinate pairs (CoordinateArray). + """2D rotation of list of coordinate pairs (CoordinateArray). - `xylst` list of (x, y) coordinate pairs. - `angle` is the angle of rotation in radians. - `pivot` the point around which to rotate `xy`. Returns a CoordinateArray. - ''' - result = CoordinateArray( ) + """ + result = CoordinateArray() for xy in xylst: r = rotate_coordinate_2d(xy, angle, pivot) result.append(r) return result - diff --git a/chiplotle/tools/mathtools/rotate_3d.py b/chiplotle/tools/mathtools/rotate_3d.py index 0888be7..07f94ce 100644 --- a/chiplotle/tools/mathtools/rotate_3d.py +++ b/chiplotle/tools/mathtools/rotate_3d.py @@ -3,28 +3,29 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import math def rotate_3d(xyz, xyzrot): - '''3D rotation. + """3D rotation. - `xyz` is a triple (x, y, z) of coordinates. - `xyzrot` is a triple (xr, yr, zr) of angles of roation. - ''' + """ if not len(xyz) == 3: - raise ValueError('Coordinate tuple `xyz` is not a triple.') + raise ValueError("Coordinate tuple `xyz` is not a triple.") if not len(xyzrot) == 3: - raise ValueError('Rotation tuple `xyzrot` is not a triple.') + raise ValueError("Rotation tuple `xyzrot` is not a triple.") x, y, z = xyz ## z rotation.. x = x * math.cos(xyzrot[2]) + y * math.sin(xyzrot[2]) - y = - x * math.sin(xyzrot[2]) + y * math.cos(xyzrot[2]) + y = -x * math.sin(xyzrot[2]) + y * math.cos(xyzrot[2]) ## y rotation.. x = x * math.cos(xyzrot[1]) + z * math.sin(xyzrot[1]) - z = - x * math.sin(xyzrot[1]) + z * math.cos(xyzrot[1]) + z = -x * math.sin(xyzrot[1]) + z * math.cos(xyzrot[1]) ## x rotation.. y = y * math.cos(xyzrot[0]) + z * math.sin(xyzrot[0]) - z = - y * math.sin(xyzrot[0]) + z * math.cos(xyzrot[0]) + z = -y * math.sin(xyzrot[0]) + z * math.cos(xyzrot[0]) return (x, y, z) diff --git a/chiplotle/tools/mathtools/superformula.py b/chiplotle/tools/mathtools/superformula.py index c45eba3..f09170a 100644 --- a/chiplotle/tools/mathtools/superformula.py +++ b/chiplotle/tools/mathtools/superformula.py @@ -3,17 +3,18 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from math import sin, cos, pow def superformula(a, b, m, n1, n2, n3, phi): - ''' Computes the position of the point on a + """ Computes the position of the point on a superformula curve. Superformula has first been proposed by Johan Gielis and is a generalization of superellipse. see: http://en.wikipedia.org/wiki/Superformula - ''' + """ t1 = cos(m * phi / 4.0) / a t1 = abs(t1) @@ -26,6 +27,6 @@ def superformula(a, b, m, n1, n2, n3, phi): t3 = -1 / float(n1) r = pow(t1 + t2, t3) if abs(r) == 0: - return (0,0) + return (0, 0) else: return (r * cos(phi), r * sin(phi)) diff --git a/chiplotle/tools/mathtools/test/test_difference.py b/chiplotle/tools/mathtools/test/test_difference.py index f1364f5..85ff291 100644 --- a/chiplotle/tools/mathtools/test/test_difference.py +++ b/chiplotle/tools/mathtools/test/test_difference.py @@ -3,34 +3,36 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import * -def test_difference_01( ): - '''Computes the difference of a list of ints.''' + +def test_difference_01(): + """Computes the difference of a list of ints.""" a = [1, 2, 3, 4] t = mathtools.difference(a) assert t == [1, 1, 1] assert isinstance(t, list) -def test_difference_02( ): - '''Computes the difference of a CoordinateArray.''' +def test_difference_02(): + """Computes the difference of a CoordinateArray.""" a = CoordinateArray([(1, 2), (3, 4), (4, 4)]) t = mathtools.difference(a) assert t == CoordinateArray([(2, 2), (1, 0)]) assert isinstance(t, CoordinateArray) -def test_difference_03( ): - '''The argument can be empty.''' - t = mathtools.difference([ ]) - assert t == [ ] +def test_difference_03(): + """The argument can be empty.""" + t = mathtools.difference([]) + assert t == [] assert isinstance(t, list) -def test_difference_04( ): - '''The argument can have one element.''' +def test_difference_04(): + """The argument can have one element.""" t = mathtools.difference([2]) - assert t == [ ] + assert t == [] assert isinstance(t, list) diff --git a/chiplotle/tools/mathtools/test/test_mathtools_factors.py b/chiplotle/tools/mathtools/test/test_mathtools_factors.py index 41399ee..e4da54a 100644 --- a/chiplotle/tools/mathtools/test/test_mathtools_factors.py +++ b/chiplotle/tools/mathtools/test/test_mathtools_factors.py @@ -2,36 +2,37 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools import mathtools import py.test -def test_mathtools_factors_01( ): - assert py.test.raises(TypeError, 'mathtools.factors(7.5)') - assert py.test.raises(ValueError, 'mathtools.factors(0)') +def test_mathtools_factors_01(): + assert py.test.raises(TypeError, "mathtools.factors(7.5)") + assert py.test.raises(ValueError, "mathtools.factors(0)") -def test_mathtools_factors_02( ): +def test_mathtools_factors_02(): t = mathtools.factors(2) assert t == [1, 2] -def test_mathtools_factors_03( ): +def test_mathtools_factors_03(): t = mathtools.factors(3) assert t == [1, 3] -def test_mathtools_factors_04( ): +def test_mathtools_factors_04(): t = mathtools.factors(4) assert t == [1, 2, 2] -def test_mathtools_factors_05( ): +def test_mathtools_factors_05(): t = mathtools.factors(6) assert t == [1, 2, 3] -def test_mathtools_factors_06( ): +def test_mathtools_factors_06(): t = mathtools.factors(12) assert t == [1, 2, 2, 3] diff --git a/chiplotle/tools/mathtools/test/test_polar_to_xy.py b/chiplotle/tools/mathtools/test/test_polar_to_xy.py index acc11ab..4d3a7eb 100644 --- a/chiplotle/tools/mathtools/test/test_polar_to_xy.py +++ b/chiplotle/tools/mathtools/test/test_polar_to_xy.py @@ -4,6 +4,7 @@ from __future__ import absolute_import from builtins import round from future import standard_library + standard_library.install_aliases() from chiplotle import * import math @@ -11,55 +12,57 @@ ## arguments ## -def test_polar_to_xy_01( ): - '''The function can take a tuple pair (r, a)''' + +def test_polar_to_xy_01(): + """The function can take a tuple pair (r, a)""" t = mathtools.polar_to_xy(Coordinate(1, 0)) assert isinstance(t, tuple) assert len(t) == 2 assert t == (1, 0) -def test_polar_to_xy_02( ): - '''The function cannot take two values r and A''' - assert raises(TypeError, 'mathtools.polar_to_xy(1, 0)') +def test_polar_to_xy_02(): + """The function cannot take two values r and A""" + assert raises(TypeError, "mathtools.polar_to_xy(1, 0)") -def test_polar_to_xy_03( ): - '''Three arguments throw a TypeError.''' - assert raises(TypeError, 'mathtools.polar_to_xy(1, 2, 3)') +def test_polar_to_xy_03(): + """Three arguments throw a TypeError.""" + assert raises(TypeError, "mathtools.polar_to_xy(1, 2, 3)") -def test_polar_to_xy_04( ): - '''One numeric argument throws a TypeError.''' - assert raises(TypeError, 'mathtools.polar_to_xy(1)') +def test_polar_to_xy_04(): + """One numeric argument throws a TypeError.""" + assert raises(TypeError, "mathtools.polar_to_xy(1)") -def test_polar_to_xy_05( ): - '''One tuple argument with > 2 arguments throws a TypeError.''' - assert raises(TypeError, 'mathtools.polar_to_xy((1, 2, 3))') +def test_polar_to_xy_05(): + """One tuple argument with > 2 arguments throws a TypeError.""" + assert raises(TypeError, "mathtools.polar_to_xy((1, 2, 3))") ## values 90 degs. ## -def test_polar_to_xy_06( ): + +def test_polar_to_xy_06(): t = mathtools.polar_to_xy(Coordinate(1, math.pi / 2)) assert round(t[0], 6) == 0 assert round(t[1], 6) == 1 -def test_polar_to_xy_07( ): +def test_polar_to_xy_07(): t = mathtools.polar_to_xy(Coordinate(1, math.pi)) assert round(t[0], 6) == -1 assert round(t[1], 6) == 0 -def test_polar_to_xy_08( ): +def test_polar_to_xy_08(): t = mathtools.polar_to_xy(Coordinate(1, math.pi / 2 * 3)) assert round(t[0], 6) == 0 assert round(t[1], 6) == -1 -def test_polar_to_xy_09( ): +def test_polar_to_xy_09(): t = mathtools.polar_to_xy(Coordinate(1, math.pi / 2 * 4)) assert round(t[0], 6) == 1 assert round(t[1], 6) == 0 @@ -68,25 +71,25 @@ def test_polar_to_xy_09( ): ## values 45 degs. ## -def test_polar_to_xy_10( ): +def test_polar_to_xy_10(): t = mathtools.polar_to_xy(Coordinate(1, math.pi / 4 * 1)) assert round(t[0], 6) == round(math.sqrt(2) / 2, 6) assert round(t[1], 6) == round(math.sqrt(2) / 2, 6) -def test_polar_to_xy_11( ): +def test_polar_to_xy_11(): t = mathtools.polar_to_xy(Coordinate(1, math.pi / 4 * 3)) assert round(t[0], 6) == round(-math.sqrt(2) / 2, 6) assert round(t[1], 6) == round(math.sqrt(2) / 2, 6) -def test_polar_to_xy_12( ): +def test_polar_to_xy_12(): t = mathtools.polar_to_xy(Coordinate(1, math.pi / 4 * 5)) assert round(t[0], 6) == round(-math.sqrt(2) / 2, 6) assert round(t[1], 6) == round(-math.sqrt(2) / 2, 6) -def test_polar_to_xy_13( ): +def test_polar_to_xy_13(): t = mathtools.polar_to_xy(Coordinate(1, math.pi / 4 * 7)) assert round(t[0], 6) == round(math.sqrt(2) / 2, 6) assert round(t[1], 6) == round(-math.sqrt(2) / 2, 6) diff --git a/chiplotle/tools/mathtools/test/test_rotate_2d.py b/chiplotle/tools/mathtools/test/test_rotate_2d.py index e94b6c9..e7e0b65 100644 --- a/chiplotle/tools/mathtools/test/test_rotate_2d.py +++ b/chiplotle/tools/mathtools/test/test_rotate_2d.py @@ -4,48 +4,49 @@ from __future__ import absolute_import from builtins import round from future import standard_library + standard_library.install_aliases() from chiplotle import * import math -def test_rotate_2d_args_01( ): - '''Rotate 2d can take a tuple.''' +def test_rotate_2d_args_01(): + """Rotate 2d can take a tuple.""" xy = (1, 2) t = mathtools.rotate_2d(xy, 0) assert t == Coordinate(*xy) -def test_rotate_2d_args_02( ): - '''Rotate 2d can take a Coordinate.''' +def test_rotate_2d_args_02(): + """Rotate 2d can take a Coordinate.""" xy = Coordinate(1, 2) t = mathtools.rotate_2d(xy, 0) assert t == xy -def test_rotate_2d_args_03( ): - '''Rotate 2d can take a list of tuples.''' +def test_rotate_2d_args_03(): + """Rotate 2d can take a list of tuples.""" xy = [(1, 2), (2, 3)] t = mathtools.rotate_2d(xy, 0) assert t == CoordinateArray(xy) -def test_rotate_2d_args_04( ): - '''Rotate 2d can take a CoordinateArray.''' +def test_rotate_2d_args_04(): + """Rotate 2d can take a CoordinateArray.""" xy = CoordinateArray([(1, 2), (2, 3)]) t = mathtools.rotate_2d(xy, 0) assert t == xy -def test_rotate_2d_args_05( ): - '''Rotate 2d returns a Coordinate if it gets a pair.''' +def test_rotate_2d_args_05(): + """Rotate 2d returns a Coordinate if it gets a pair.""" xy = Coordinate(1, 2) t = mathtools.rotate_2d(xy, 0) assert isinstance(t, Coordinate) -def test_rotate_2d_args_05( ): - '''Rotate 2d returns a CoordinateArray if it gets a list of coordinates.''' +def test_rotate_2d_args_05(): + """Rotate 2d returns a CoordinateArray if it gets a list of coordinates.""" xy = [(1, 2), (3, 4)] t = mathtools.rotate_2d(xy, 0) assert isinstance(t, CoordinateArray) @@ -53,8 +54,9 @@ def test_rotate_2d_args_05( ): ## values ## -def test_rotate_2d_04( ): - '''Rotate 2d leaves (x, y) unchanged on 0 rotation.''' + +def test_rotate_2d_04(): + """Rotate 2d leaves (x, y) unchanged on 0 rotation.""" xy = (0, 0) t = mathtools.rotate_2d(xy, 0) assert t == Coordinate(*xy) @@ -72,8 +74,8 @@ def test_rotate_2d_04( ): assert t == Coordinate(*xy) -def test_rotate_2d_05( ): - '''Rotate 2d turns counter-clockwise.''' +def test_rotate_2d_05(): + """Rotate 2d turns counter-clockwise.""" xy = (1, 0) t = mathtools.rotate_2d(xy, math.pi / 2) assert round(t[0], 6) == 0 @@ -90,9 +92,8 @@ def test_rotate_2d_05( ): assert round(t[1], 3) == -0.707 - -def test_rotate_2d_06( ): - '''Rotate 2d returns correct values.''' +def test_rotate_2d_06(): + """Rotate 2d returns correct values.""" xy = (1, 0) t = mathtools.rotate_2d(xy, math.pi / 2) assert round(t[0], 6) == 0 @@ -101,16 +102,17 @@ def test_rotate_2d_06( ): ## pivot ## -def test_rotate_2d_pivot_01( ): - '''Rotate 2d can rotate around an arbitrary pivot point.''' + +def test_rotate_2d_pivot_01(): + """Rotate 2d can rotate around an arbitrary pivot point.""" xy = (1, 0) t = mathtools.rotate_2d(xy, math.pi / 1.5, (1, 0)) assert round(t[0], 6) == 1 assert round(t[1], 6) == 0 -def test_rotate_2d_pivot_02( ): - '''Rotate 2d can rotate around an arbitrary pivot point.''' +def test_rotate_2d_pivot_02(): + """Rotate 2d can rotate around an arbitrary pivot point.""" xy = (1, 0) t = mathtools.rotate_2d(xy, math.pi / 2, (1, 1)) assert round(t[0], 6) == 2 @@ -119,5 +121,3 @@ def test_rotate_2d_pivot_02( ): r = Coordinate(0.707, -0.707) + Coordinate(1, 1) assert round(t[0], 3) == round(r[0], 3) assert round(t[1], 3) == round(r[1], 3) - - diff --git a/chiplotle/tools/mathtools/test/test_xy_to_polar.py b/chiplotle/tools/mathtools/test/test_xy_to_polar.py index 33e7d81..64efd45 100644 --- a/chiplotle/tools/mathtools/test/test_xy_to_polar.py +++ b/chiplotle/tools/mathtools/test/test_xy_to_polar.py @@ -4,13 +4,14 @@ from __future__ import absolute_import from builtins import round from future import standard_library + standard_library.install_aliases() from chiplotle import * import math -def test_xy_to_polar_01( ): - '''radius and angle are 0 when x and y ar 0.''' +def test_xy_to_polar_01(): + """radius and angle are 0 when x and y ar 0.""" r, a = mathtools.xy_to_polar((0, 0)) assert r == 0 assert a == 0 @@ -18,29 +19,30 @@ def test_xy_to_polar_01( ): ## 90 degs ## -def test_xy_to_polar_02( ): - '''Coordinate axis alignment values are correct.''' + +def test_xy_to_polar_02(): + """Coordinate axis alignment values are correct.""" r, a = mathtools.xy_to_polar((1, 0)) assert r == 1 assert a == 0 -def test_xy_to_polar_03( ): - '''Coordinate axis alignment values are correct.''' +def test_xy_to_polar_03(): + """Coordinate axis alignment values are correct.""" r, a = mathtools.xy_to_polar((0, 1)) assert r == 1 assert round(a, 6) == round(math.pi / 2, 6) -def test_xy_to_polar_04( ): - '''Coordinate axis alignment values are correct.''' +def test_xy_to_polar_04(): + """Coordinate axis alignment values are correct.""" r, a = mathtools.xy_to_polar((-1, 0)) assert r == 1 assert round(a, 6) == round(math.pi, 6) -def test_xy_to_polar_05( ): - '''Coordinate axis alignment values are correct.''' +def test_xy_to_polar_05(): + """Coordinate axis alignment values are correct.""" r, a = mathtools.xy_to_polar((0, -1)) assert r == 1 assert round(a, 6) == round(math.pi / 2 * 3, 6) @@ -48,31 +50,30 @@ def test_xy_to_polar_05( ): ## 45 degs ## -def test_xy_to_polar_06( ): - '''Coordinates in positive quadrant are correct.''' + +def test_xy_to_polar_06(): + """Coordinates in positive quadrant are correct.""" r, a = mathtools.xy_to_polar((1, 1)) assert round(r, 6) == round(math.sqrt(2), 6) assert round(a, 6) == round(math.pi / 4, 6) -def test_xy_to_polar_07( ): - '''Coordinates in -x y quadrant are correct.''' +def test_xy_to_polar_07(): + """Coordinates in -x y quadrant are correct.""" r, a = mathtools.xy_to_polar((-1, 1)) assert round(r, 6) == round(math.sqrt(2), 6) assert round(a, 6) == round(math.pi / 4 * 3, 6) -def test_xy_to_polar_08( ): - '''Coordinates in -x -y quadrant are correct.''' +def test_xy_to_polar_08(): + """Coordinates in -x -y quadrant are correct.""" r, a = mathtools.xy_to_polar((-1, -1)) assert round(r, 6) == round(math.sqrt(2), 6) assert round(a, 6) == round(math.pi / 4 * 5, 6) -def test_xy_to_polar_09( ): - '''Coordinates in x -y quadrant are correct.''' +def test_xy_to_polar_09(): + """Coordinates in x -y quadrant are correct.""" r, a = mathtools.xy_to_polar((1, -1)) assert round(r, 6) == round(math.sqrt(2), 6) assert round(a, 6) == round(math.pi / 4 * 7, 6) - - diff --git a/chiplotle/tools/mathtools/xy_to_polar.py b/chiplotle/tools/mathtools/xy_to_polar.py index 065b275..afc1dec 100644 --- a/chiplotle/tools/mathtools/xy_to_polar.py +++ b/chiplotle/tools/mathtools/xy_to_polar.py @@ -4,22 +4,23 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate import math def xy_to_polar(args): - '''Converts cartesian to polar coordinates. + """Converts cartesian to polar coordinates. Argument may be two coordinates x, y, a tuple (x, y), or a Coordinate(x, y). Returns an (r, a) tuple, where `r` is the magnitude, `a` is the angle in radians. - ''' + """ x, y = tuple(Coordinate(*args)) - r = math.sqrt(x**2 + y**2) + r = math.sqrt(x ** 2 + y ** 2) x = x or 1E-10 a = math.atan(y / x) @@ -30,9 +31,9 @@ def xy_to_polar(args): a += 2 * math.pi else: a += math.pi -# if y >= 0: -# a += math.pi -# else: -# a = math.pi / 2 * 3 - a + # if y >= 0: + # a += math.pi + # else: + # a = math.pi / 2 * 3 - a return r, a diff --git a/chiplotle/tools/measuretools/__init__.py b/chiplotle/tools/measuretools/__init__.py index 55e192e..415957f 100644 --- a/chiplotle/tools/measuretools/__init__.py +++ b/chiplotle/tools/measuretools/__init__.py @@ -3,8 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], globals( )) - +_package_import(__path__[0], globals()) diff --git a/chiplotle/tools/measuretools/cm_to_pu.py b/chiplotle/tools/measuretools/cm_to_pu.py index 972200b..d99eb29 100644 --- a/chiplotle/tools/measuretools/cm_to_pu.py +++ b/chiplotle/tools/measuretools/cm_to_pu.py @@ -4,7 +4,10 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def cm_to_pu(magnitude): - '''Converts centimeters to plotter units.''' + """Converts centimeters to plotter units.""" return magnitude / 0.025 * 10.0 diff --git a/chiplotle/tools/measuretools/in_to_pu.py b/chiplotle/tools/measuretools/in_to_pu.py index 3b61058..8af3d9c 100644 --- a/chiplotle/tools/measuretools/in_to_pu.py +++ b/chiplotle/tools/measuretools/in_to_pu.py @@ -4,7 +4,10 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def in_to_pu(magnitude): - '''Converts inches to plotter units.''' - return magnitude * 1016.0 ## == magnitude / 0.025 * 10 * 2.54 + """Converts inches to plotter units.""" + return magnitude * 1016.0 ## == magnitude / 0.025 * 10 * 2.54 diff --git a/chiplotle/tools/measuretools/mm_to_pu.py b/chiplotle/tools/measuretools/mm_to_pu.py index d1164d4..bc8cf0e 100644 --- a/chiplotle/tools/measuretools/mm_to_pu.py +++ b/chiplotle/tools/measuretools/mm_to_pu.py @@ -4,8 +4,10 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def mm_to_pu(magnitude): - '''Converts millimeters to plotter units.''' + """Converts millimeters to plotter units.""" return magnitude / 0.025 - diff --git a/chiplotle/tools/measuretools/pu_to_cm.py b/chiplotle/tools/measuretools/pu_to_cm.py index 0966e3e..f61f0e3 100644 --- a/chiplotle/tools/measuretools/pu_to_cm.py +++ b/chiplotle/tools/measuretools/pu_to_cm.py @@ -4,7 +4,10 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def pu_to_cm(magnitude): - '''Converts plotter units to centimeters.''' + """Converts plotter units to centimeters.""" return magnitude / 400.0 diff --git a/chiplotle/tools/measuretools/pu_to_in.py b/chiplotle/tools/measuretools/pu_to_in.py index 482175f..11b9088 100644 --- a/chiplotle/tools/measuretools/pu_to_in.py +++ b/chiplotle/tools/measuretools/pu_to_in.py @@ -4,7 +4,10 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def pu_to_in(magnitude): - '''Converts plotter units to inches.''' + """Converts plotter units to inches.""" return magnitude / 1016.0 diff --git a/chiplotle/tools/measuretools/pu_to_mm.py b/chiplotle/tools/measuretools/pu_to_mm.py index aa96efb..99dae87 100644 --- a/chiplotle/tools/measuretools/pu_to_mm.py +++ b/chiplotle/tools/measuretools/pu_to_mm.py @@ -4,7 +4,10 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def pu_to_mm(magnitude): - '''Converts plotter units to millimeters.''' + """Converts plotter units to millimeters.""" return magnitude / 40.0 diff --git a/chiplotle/tools/measuretools/test/test_cm_to_pu.py b/chiplotle/tools/measuretools/test/test_cm_to_pu.py index 307b765..81dba88 100644 --- a/chiplotle/tools/measuretools/test/test_cm_to_pu.py +++ b/chiplotle/tools/measuretools/test/test_cm_to_pu.py @@ -3,11 +3,11 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.measuretools import * -def test_cm_to_pu_01( ): +def test_cm_to_pu_01(): assert cm_to_pu(1) == 400 assert cm_to_pu(0) == 0 - diff --git a/chiplotle/tools/measuretools/test/test_in_to_pu.py b/chiplotle/tools/measuretools/test/test_in_to_pu.py index 96c7b56..d979dfb 100644 --- a/chiplotle/tools/measuretools/test/test_in_to_pu.py +++ b/chiplotle/tools/measuretools/test/test_in_to_pu.py @@ -3,13 +3,12 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.measuretools import * -def test_in_to_pu_01( ): +def test_in_to_pu_01(): assert in_to_pu(1) == 1016 assert in_to_pu(0.5) == 1016 / 2.0 assert in_to_pu(0) == 0 - - diff --git a/chiplotle/tools/measuretools/test/test_mm_to_pu.py b/chiplotle/tools/measuretools/test/test_mm_to_pu.py index 2e594b8..1e0910b 100644 --- a/chiplotle/tools/measuretools/test/test_mm_to_pu.py +++ b/chiplotle/tools/measuretools/test/test_mm_to_pu.py @@ -3,13 +3,12 @@ from __future__ import print_function from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.measuretools import * -def test_mm_to_pu_01( ): +def test_mm_to_pu_01(): assert mm_to_pu(1) == 40 assert mm_to_pu(0.5) == 40 / 2.0 assert mm_to_pu(0) == 0 - - diff --git a/chiplotle/tools/measuretools/test/test_pu_to_cm.py b/chiplotle/tools/measuretools/test/test_pu_to_cm.py index af1f388..d48cc01 100644 --- a/chiplotle/tools/measuretools/test/test_pu_to_cm.py +++ b/chiplotle/tools/measuretools/test/test_pu_to_cm.py @@ -3,13 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.measuretools import * -def test_pu_to_cm_01( ): +def test_pu_to_cm_01(): assert pu_to_cm(1) == 0.0025 assert pu_to_cm(400) == 1 assert pu_to_cm(0) == 0 - - diff --git a/chiplotle/tools/measuretools/test/test_pu_to_in.py b/chiplotle/tools/measuretools/test/test_pu_to_in.py index 1393157..37447eb 100644 --- a/chiplotle/tools/measuretools/test/test_pu_to_in.py +++ b/chiplotle/tools/measuretools/test/test_pu_to_in.py @@ -3,12 +3,11 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.measuretools import * -def test_pu_to_in_01( ): +def test_pu_to_in_01(): assert pu_to_in(1016) == 1 assert pu_to_in(0) == 0 - - diff --git a/chiplotle/tools/measuretools/test/test_pu_to_mm.py b/chiplotle/tools/measuretools/test/test_pu_to_mm.py index baeb420..6c8d195 100644 --- a/chiplotle/tools/measuretools/test/test_pu_to_mm.py +++ b/chiplotle/tools/measuretools/test/test_pu_to_mm.py @@ -3,12 +3,12 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.measuretools import * -def test_pu_to_mm_01( ): +def test_pu_to_mm_01(): assert pu_to_mm(1) == 0.025 assert pu_to_mm(40) == 1 assert pu_to_mm(0) == 0 - diff --git a/chiplotle/tools/plottertools/__init__.py b/chiplotle/tools/plottertools/__init__.py index 55e192e..415957f 100644 --- a/chiplotle/tools/plottertools/__init__.py +++ b/chiplotle/tools/plottertools/__init__.py @@ -3,8 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], globals( )) - +_package_import(__path__[0], globals()) diff --git a/chiplotle/tools/plottertools/_instantiate_plotter.py b/chiplotle/tools/plottertools/_instantiate_plotter.py index f3b076a..d926c70 100644 --- a/chiplotle/tools/plottertools/_instantiate_plotter.py +++ b/chiplotle/tools/plottertools/_instantiate_plotter.py @@ -3,13 +3,16 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() -from chiplotle.tools.serialtools.instantiate_serial_from_config_file \ - import instantiate_serial_from_config_file +from chiplotle.tools.serialtools.instantiate_serial_from_config_file import ( + instantiate_serial_from_config_file +) from chiplotle import plotters + def _instantiate_plotter(port, id): - '''Instantiate a Plotter object with given `id` at port `port`. + """Instantiate a Plotter object with given `id` at port `port`. - `port` a ``str`` address or number of serial port. Usually something like '/def/ttyS0' in posix systems or 'COM1' Windowz. @@ -17,12 +20,13 @@ def _instantiate_plotter(port, id): - `id` is the string ID of the plotter to be instantiated. e.g., 'DXY-1300' - use instantiate_virtual_plotter for VirtualPlotters - ''' + """ ser = instantiate_serial_from_config_file(port) from chiplotle.tools.plottertools import instantiate_plotter_from_id from chiplotle.tools.plottertools import interactive_choose_plotter + plotter = instantiate_plotter_from_id(ser, id) if not plotter: print("\nChiplotle does not have a software Plotter type that") diff --git a/chiplotle/tools/plottertools/instantiate_plotter_from_id.py b/chiplotle/tools/plottertools/instantiate_plotter_from_id.py index 7718ff8..98dc01a 100644 --- a/chiplotle/tools/plottertools/instantiate_plotter_from_id.py +++ b/chiplotle/tools/plottertools/instantiate_plotter_from_id.py @@ -3,17 +3,19 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle import plotters + def instantiate_plotter_from_id(serial, id): - '''Tries to instantiate a plotter that matches the given string `id`. + """Tries to instantiate a plotter that matches the given string `id`. - `serial` is a Serial instance. - `id` is a string of the plotter ID. - ''' + """ ## massage id... - id = id.replace('-', '').strip('\r') + id = id.replace("-", "").strip("\r") ## find a plotter within existing plotters that matches ID ## and instantiate. for plt_str in dir(plotters): diff --git a/chiplotle/tools/plottertools/instantiate_plotters.py b/chiplotle/tools/plottertools/instantiate_plotters.py index 665ad8b..e2da1db 100644 --- a/chiplotle/tools/plottertools/instantiate_plotters.py +++ b/chiplotle/tools/plottertools/instantiate_plotters.py @@ -3,26 +3,27 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.get_config_value import get_config_value -from chiplotle.tools.plottertools._instantiate_plotter \ - import _instantiate_plotter +from chiplotle.tools.plottertools._instantiate_plotter import _instantiate_plotter + -def instantiate_plotters( ): - '''Instantiates all found and available plotters. +def instantiate_plotters(): + """Instantiates all found and available plotters. The function sniffs all serial ports in search for pen plotters and instantiates all plotters found. If a plotter is not recognized, - the function interactively queries user for plotter type.''' + the function interactively queries user for plotter type.""" from chiplotle.tools.plottertools import search_and_instantiate_plotters - map = get_config_value('serial_port_to_plotter_map') + map = get_config_value("serial_port_to_plotter_map") ## if user has set fixed port to plotter mapping... if map is not None: - result = [ ] - for k, v in list(map.items( )): + result = [] + for k, v in list(map.items()): p = _instantiate_plotter(k, v) result.append(p) else: - result = search_and_instantiate_plotters( ) + result = search_and_instantiate_plotters() return result diff --git a/chiplotle/tools/plottertools/instantiate_virtual_plotter.py b/chiplotle/tools/plottertools/instantiate_virtual_plotter.py index ae2fe58..bcdbc1d 100644 --- a/chiplotle/tools/plottertools/instantiate_virtual_plotter.py +++ b/chiplotle/tools/plottertools/instantiate_virtual_plotter.py @@ -3,43 +3,42 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() -from chiplotle.tools.serialtools.virtual_serial_port \ - import VirtualSerialPort -from chiplotle.tools.plottertools.instantiate_plotter_from_id \ - import instantiate_plotter_from_id +from chiplotle.tools.serialtools.virtual_serial_port import VirtualSerialPort +from chiplotle.tools.plottertools.instantiate_plotter_from_id import ( + instantiate_plotter_from_id +) from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.core.cfg.get_config_value import get_config_value -def instantiate_virtual_plotter(left_bottom = Coordinate(0,0), - right_top = Coordinate(10320, 7920), - type=None): - ''' +def instantiate_virtual_plotter( + left_bottom=Coordinate(0, 0), right_top=Coordinate(10320, 7920), type=None +): + """ Instantiates a virtual plotter with 8.5x11" (ANSI A) paper. If you have a default plotter defined in your config.py file we will use that plotter definition file (ignoring the serial port setting). - ''' - - which_plotter = type - - if type is None: - map = get_config_value('serial_port_to_plotter_map') - ## if user has set fixed port to plotter mapping... - if map is not None: - for k, v in list(map.items( )): - which_plotter = v - else: - which_plotter = "Plotter" - - ser = VirtualSerialPort(left_bottom, right_top) - plotter = instantiate_plotter_from_id(ser, which_plotter) - print("\nInstantiated plotter %s:" % plotter) - coords = plotter.margins.soft.all_coordinates - print(" Drawing limits: (left %s; bottom %s; right %s; top %s)" % coords) - print(" Buffer Size: %s" % plotter.buffer_size) - - return plotter - - + """ + + which_plotter = type + + if type is None: + map = get_config_value("serial_port_to_plotter_map") + ## if user has set fixed port to plotter mapping... + if map is not None: + for k, v in list(map.items()): + which_plotter = v + else: + which_plotter = "Plotter" + + ser = VirtualSerialPort(left_bottom, right_top) + plotter = instantiate_plotter_from_id(ser, which_plotter) + print("\nInstantiated plotter %s:" % plotter) + coords = plotter.margins.soft.all_coordinates + print(" Drawing limits: (left %s; bottom %s; right %s; top %s)" % coords) + print(" Buffer Size: %s" % plotter.buffer_size) + + return plotter diff --git a/chiplotle/tools/plottertools/interactive_choose_plotter.py b/chiplotle/tools/plottertools/interactive_choose_plotter.py index fae84da..216c6e6 100644 --- a/chiplotle/tools/plottertools/interactive_choose_plotter.py +++ b/chiplotle/tools/plottertools/interactive_choose_plotter.py @@ -5,29 +5,32 @@ from builtins import int from builtins import input from future import standard_library + standard_library.install_aliases() from chiplotle.tools.serialtools.virtual_serial_port import VirtualSerialPort + def interactive_choose_plotter(serial): print("\nChoose the plotter that best fits your hardware.") print("When in doubt choose the generic 'Plotter'.") from chiplotle import plotters + plotters = _get_instantiated_plotters_from_module(plotters) for i, plotter in enumerate(plotters): - print('[%d] %s' % (i, plotter.__class__.__name__)) + print("[%d] %s" % (i, plotter.__class__.__name__)) return plotters[int(input())].__class__(serial) def _get_instantiated_plotters_from_module(module): - '''The function returns a list of instantiated plotters + """The function returns a list of instantiated plotters --one per plotter type-- found in the given module. The plotters are instantiated with a VirtualSerialPort, for convenience and speed. Anything in the module that is not a plotter is removed. - ''' - result = [ ] + """ + result = [] for e in dir(module): try: - plotter = getattr(module, e)(VirtualSerialPort((0,0), (1, 1))) + plotter = getattr(module, e)(VirtualSerialPort((0, 0), (1, 1))) result.append(plotter) except TypeError: pass diff --git a/chiplotle/tools/plottertools/interactive_plot_layers.py b/chiplotle/tools/plottertools/interactive_plot_layers.py index 6f06383..90f05fb 100644 --- a/chiplotle/tools/plottertools/interactive_plot_layers.py +++ b/chiplotle/tools/plottertools/interactive_plot_layers.py @@ -4,40 +4,41 @@ from __future__ import absolute_import from builtins import input from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.layersvisitor import LayersVisitor from chiplotle.geometry.core.affixformatvisitor import AffixFormatVisitor import copy + def interactive_plot_layers(shape, plotter): - '''Sorts given `shape` by layers and interactively plots, - requesting the use to change page every time a layer is done printing.''' + """Sorts given `shape` by layers and interactively plots, + requesting the use to change page every time a layer is done printing.""" shape = copy.deepcopy(shape) v = AffixFormatVisitor() v.visit(shape) v = LayersVisitor() v.visit(shape) - print('Layers collected: ', list(v.layers.keys())) + print("Layers collected: ", list(v.layers.keys())) for layer in sorted(v.layers.keys()): - print('Please set/change paper for layer [%s].' % layer) + print("Please set/change paper for layer [%s]." % layer) reply = input('Hit ENTER to plot layer, "n" to skip:') - if reply.lower( ) == 'n': + if reply.lower() == "n": continue - print('Plotting layer [%s]...' % layer) + print("Plotting layer [%s]..." % layer) plotter.write(v.layers[layer]) - print('Done plotting layer [%s].' % layer) - + print("Done plotting layer [%s]." % layer) -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * r1 = rectangle(1000, 1000) r1.layer = 1 r2 = rectangle(500, 500) r2.layer = None - t = isosceles(500, 200) + t = isosceles(500, 200) t.layer = None rg = Group([r1, r2]) diff --git a/chiplotle/tools/plottertools/search_and_instantiate_plotters.py b/chiplotle/tools/plottertools/search_and_instantiate_plotters.py index 191862e..fea99ab 100644 --- a/chiplotle/tools/plottertools/search_and_instantiate_plotters.py +++ b/chiplotle/tools/plottertools/search_and_instantiate_plotters.py @@ -3,40 +3,44 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.tools.plottertools._instantiate_plotter import _instantiate_plotter -from chiplotle.tools.serialtools.sniff_ports_for_plotters import sniff_ports_for_plotters +from chiplotle.tools.serialtools.sniff_ports_for_plotters import ( + sniff_ports_for_plotters +) from chiplotle.tools.serialtools.scan_serial_ports import scan_serial_ports -def search_and_instantiate_plotters( ): - '''Dynamically searches and instantiates all found plotters. + +def search_and_instantiate_plotters(): + """Dynamically searches and instantiates all found plotters. The function sniffs all serial ports in search for pen plotters and instantiates all plotters found. If a plotter is not recognized, - the function interactively queries user for plotter type.''' + the function interactively queries user for plotter type.""" from chiplotle.tools.plottertools import instantiate_plotter_from_id from chiplotle.tools.plottertools import interactive_choose_plotter - print('Scanning serial ports...') - ports = list(scan_serial_ports( ).values( )) - print('Found ports:') - print(' ' + '\n '.join(ports)) + print("Scanning serial ports...") + ports = list(scan_serial_ports().values()) + print("Found ports:") + print(" " + "\n ".join(ports)) ## get serial ports that have a plotter connected... - print('\nSniffing for plotters in all serial ports...') + print("\nSniffing for plotters in all serial ports...") plotters_found = sniff_ports_for_plotters(ports) if len(plotters_found) == 0: - print('Found no plotter connected to any of the serial ports.') - print('Is your plotter on?\n') + print("Found no plotter connected to any of the serial ports.") + print("Is your plotter on?\n") ## return a list so we don't get a python error when trying ## to index the result. return [None] else: - for serial_address, pln in list(plotters_found.items( )): - print(' Found plotter %s in port %s' % (pln, serial_address)) + for serial_address, pln in list(plotters_found.items()): + print(" Found plotter %s in port %s" % (pln, serial_address)) ## instantiate a plotter for every port with a plotter... - result = [ ] - for serial_address, pln in list(plotters_found.items( )): + result = [] + for serial_address, pln in list(plotters_found.items()): plotter = _instantiate_plotter(serial_address, pln) result.append(plotter) return result diff --git a/chiplotle/tools/serialtools/__init__.py b/chiplotle/tools/serialtools/__init__.py index 55e192e..415957f 100644 --- a/chiplotle/tools/serialtools/__init__.py +++ b/chiplotle/tools/serialtools/__init__.py @@ -3,8 +3,8 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.imports.package_import import _package_import -_package_import(__path__[0], globals( )) - +_package_import(__path__[0], globals()) diff --git a/chiplotle/tools/serialtools/instantiate_serial_from_config_file.py b/chiplotle/tools/serialtools/instantiate_serial_from_config_file.py index c9ef46f..cf1dd3b 100644 --- a/chiplotle/tools/serialtools/instantiate_serial_from_config_file.py +++ b/chiplotle/tools/serialtools/instantiate_serial_from_config_file.py @@ -3,24 +3,28 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.core.cfg.get_config_value import get_config_value import serial + def instantiate_serial_from_config_file(port): - '''Instantiates a Serial with port `port` and serial config - parameters read from the configuration file.''' - bytesize = get_config_value('bytesize') - parity = get_config_value('parity') - stopbits = get_config_value('stopbits') - timeout = get_config_value('timeout') - xonxoff = get_config_value('xonxoff') - rtscts = get_config_value('rtscts') - ser = serial.Serial(port = port, - bytesize = bytesize, - parity = parity, - stopbits = stopbits, - timeout = timeout, - xonxoff = xonxoff, - rtscts = rtscts) + """Instantiates a Serial with port `port` and serial config + parameters read from the configuration file.""" + bytesize = get_config_value("bytesize") + parity = get_config_value("parity") + stopbits = get_config_value("stopbits") + timeout = get_config_value("timeout") + xonxoff = get_config_value("xonxoff") + rtscts = get_config_value("rtscts") + ser = serial.Serial( + port=port, + bytesize=bytesize, + parity=parity, + stopbits=stopbits, + timeout=timeout, + xonxoff=xonxoff, + rtscts=rtscts, + ) return ser diff --git a/chiplotle/tools/serialtools/interactive_open_serial.py b/chiplotle/tools/serialtools/interactive_open_serial.py index 9472918..939baed 100644 --- a/chiplotle/tools/serialtools/interactive_open_serial.py +++ b/chiplotle/tools/serialtools/interactive_open_serial.py @@ -5,18 +5,20 @@ from builtins import input from builtins import int from future import standard_library + standard_library.install_aliases() from chiplotle.tools.serialtools.scan_serial_ports import scan_serial_ports ## TODO: DELETE. No longer used. -def interactive_open_serial(baudrate, bytesize, parity, stopbits, timeout, - xonxoff, rtscts): - '''The function scans for all serial ports, lists them and prompts +def interactive_open_serial( + baudrate, bytesize, parity, stopbits, timeout, xonxoff, rtscts +): + """The function scans for all serial ports, lists them and prompts the user to select a port. The function returns a Serial instance. - ''' - ports = scan_serial_ports( ) + """ + ports = scan_serial_ports() print("Available ports:\n") - for k, port in list(ports.items( )): + for k, port in list(ports.items()): print("(%d) %s" % (k, port.portstr)) ## get user's input... while True: @@ -24,12 +26,12 @@ def interactive_open_serial(baudrate, bytesize, parity, stopbits, timeout, ## check response... try: sp = int(sp) - if not sp in list(ports.keys( )): + if not sp in list(ports.keys()): raise ValueError else: break except ValueError: - print('Whoops! wrong port number. Try again...') + print("Whoops! wrong port number. Try again...") ## configure port... selected_serial = ports[sp] selected_serial.baudrate = baudrate @@ -39,6 +41,6 @@ def interactive_open_serial(baudrate, bytesize, parity, stopbits, timeout, selected_serial.timeout = timeout selected_serial.xonxoff = xonxoff selected_serial.rtscts = rtscts - selected_serial.open( ) + selected_serial.open() print("Okay, opening %s." % selected_serial.portstr) return selected_serial diff --git a/chiplotle/tools/serialtools/scan_serial_ports.py b/chiplotle/tools/serialtools/scan_serial_ports.py index ef109ac..ae291f0 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports.py +++ b/chiplotle/tools/serialtools/scan_serial_ports.py @@ -3,17 +3,21 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import platform -def scan_serial_ports( ): - '''Scan for available ports. return a list of tuples (num, name). + +def scan_serial_ports(): + """Scan for available ports. return a list of tuples (num, name). Based on the scan.py example from pySerial (http://pyserial.sf.net). - ''' + """ from chiplotle.tools.serialtools import scan_serial_ports_linux from chiplotle.tools.serialtools import scan_serial_ports_windows - if platform.system( ).lower( ).startswith('windows') or \ - platform.system( ).lower( ).startswith('cygwin'): - return scan_serial_ports_windows( ) + + if platform.system().lower().startswith( + "windows" + ) or platform.system().lower().startswith("cygwin"): + return scan_serial_ports_windows() else: - return scan_serial_ports_linux( ) + return scan_serial_ports_linux() diff --git a/chiplotle/tools/serialtools/scan_serial_ports_from_list.py b/chiplotle/tools/serialtools/scan_serial_ports_from_list.py index 8f90adc..ea6a95e 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports_from_list.py +++ b/chiplotle/tools/serialtools/scan_serial_ports_from_list.py @@ -3,25 +3,27 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import serial + def scan_serial_ports_from_list(portlist): - result = { } + result = {} ## keep track of previously opened ports to avoid including aliases ## in our list... - ports_opened = [ ] + ports_opened = [] for i, port in enumerate(portlist): try: s = serial.Serial(port) ports_opened.append(s) result[i] = s.portstr - #result[i] = s - #s.close( ) # explicit close 'cause of delayed GC in java + # result[i] = s + # s.close( ) # explicit close 'cause of delayed GC in java except serial.SerialException: pass ## gracefully close all open ports... for port in ports_opened: - port.close( ) + port.close() return result diff --git a/chiplotle/tools/serialtools/scan_serial_ports_linux.py b/chiplotle/tools/serialtools/scan_serial_ports_linux.py index d5fd579..8a4b72e 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports_linux.py +++ b/chiplotle/tools/serialtools/scan_serial_ports_linux.py @@ -3,15 +3,19 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() import glob -def scan_serial_ports_linux( ): + +def scan_serial_ports_linux(): from chiplotle.tools.serialtools import scan_serial_ports_from_list + ## NOTE: there are also /dev/tty.PL2303-xxxx ports. Should we assume ## all /dev/tty.* devices are valid? or should we just add ## /dev/tty.PL* to the list? will do the former and see what happens. - ports = glob.glob('/dev/ttyS*') + glob.glob('/dev/ttyUSB*') +\ - glob.glob('/dev/tty.*') - #glob.glob('/dev/tty.USA*') + glob.glob('/dev/tty.KeySerial*') + ports = ( + glob.glob("/dev/ttyS*") + glob.glob("/dev/ttyUSB*") + glob.glob("/dev/tty.*") + ) + # glob.glob('/dev/tty.USA*') + glob.glob('/dev/tty.KeySerial*') return scan_serial_ports_from_list(ports) diff --git a/chiplotle/tools/serialtools/scan_serial_ports_windows.py b/chiplotle/tools/serialtools/scan_serial_ports_windows.py index 2510cea..a3380a2 100644 --- a/chiplotle/tools/serialtools/scan_serial_ports_windows.py +++ b/chiplotle/tools/serialtools/scan_serial_ports_windows.py @@ -2,11 +2,16 @@ from __future__ import print_function from __future__ import division from __future__ import absolute_import -#import serial + +# import serial from builtins import range from future import standard_library + standard_library.install_aliases() -def scan_serial_ports_windows( ): + + +def scan_serial_ports_windows(): from chiplotle.tools.serialtools import scan_serial_ports_from_list + return scan_serial_ports_from_list(list(range(256))) diff --git a/chiplotle/tools/serialtools/sniff_ports_for_plotters.py b/chiplotle/tools/serialtools/sniff_ports_for_plotters.py index 2df4646..584ae55 100644 --- a/chiplotle/tools/serialtools/sniff_ports_for_plotters.py +++ b/chiplotle/tools/serialtools/sniff_ports_for_plotters.py @@ -4,15 +4,18 @@ from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() + + def sniff_ports_for_plotters(ports): - '''Sniffs all given serial `ports` in search for pen plotters. + """Sniffs all given serial `ports` in search for pen plotters. The function returns a dictionary of plotter names found, with keys - being the port name or address and values the plotter names.''' + being the port name or address and values the plotter names.""" from chiplotle.tools.serialtools import what_plotter_in_port - plotters_found = { } - #for k, port in scan_serial_ports( ).items( ): + plotters_found = {} + # for k, port in scan_serial_ports( ).items( ): for port in ports: plotter_name = what_plotter_in_port(port) if plotter_name: diff --git a/chiplotle/tools/serialtools/virtual_serial_port.py b/chiplotle/tools/serialtools/virtual_serial_port.py index 4e9f661..3a90f43 100644 --- a/chiplotle/tools/serialtools/virtual_serial_port.py +++ b/chiplotle/tools/serialtools/virtual_serial_port.py @@ -12,16 +12,17 @@ from chiplotle.tools.hpgltools.inflate_hpgl_string import inflate_hpgl_string from sys import maxsize + class VirtualSerialPort(object): def __init__(self, left_bottom, right_top): left_bottom = Coordinate(*left_bottom) right_top = Coordinate(*right_top) - #print "I am a virtual serial port!" + # print "I am a virtual serial port!" self._received_commands_string = "" - self._next_query_value = '' + self._next_query_value = "" self.commanded_x = 0 self.commanded_y = 0 - #pen_status: 0 == up, 1 == down + # pen_status: 0 == up, 1 == down self.pen_status = 0 self.left = left_bottom.x self.right = right_top.x @@ -31,7 +32,7 @@ def __init__(self, left_bottom, right_top): self.portstr = "VirtualSerialPort" def write(self, command): - ''' + """ we assume that commands are sent either as single escaped commands, like B() or On(), or as single or strings of regular text commands, like PA0,0;PD; @@ -39,116 +40,137 @@ def write(self, command): if an escape command is somehow inserted into a string of text commands we will not catch it! but that shouldn't happen... - ''' - #print "vsp got command: " + command + """ + # print "vsp got command: " + command - '''this seems dumb, but don't know how else to do it. + """this seems dumb, but don't know how else to do it. gotta iterate through all possible weirdo commands. - ''' + """ - #make sure we received a string, not a tuple or something + # make sure we received a string, not a tuple or something assert isinstance(command, (string_types, text_type)) if command.startswith(commands.B().format): - #let's say we have 4MB of memory to avoid buffered writes + # let's say we have 4MB of memory to avoid buffered writes self._next_query_value = self.buffer_size return elif command.startswith(commands.On().format): - #print "vsp: ignoring On() command." + # print "vsp: ignoring On() command." return elif command.startswith(commands.OH().format): - #hard margins - out_string = "%d, %d, %d, %d\r" % (self.left, self.bottom, self.right, self.top) + # hard margins + out_string = "%d, %d, %d, %d\r" % ( + self.left, + self.bottom, + self.right, + self.top, + ) self._next_query_value = out_string return elif command.startswith(commands.OW().format): - #soft margins - out_string = "%d, %d, %d, %d\r" % (self.left, self.bottom, self.right, self.top) + # soft margins + out_string = "%d, %d, %d, %d\r" % ( + self.left, + self.bottom, + self.right, + self.top, + ) self._next_query_value = out_string return elif command.startswith(commands.OI().format): self._next_query_value = "VirtualPlotter\r" return elif command.startswith(commands.OA().format): - #actual position - out_string = "%i, %i, %i\r" % (self.commanded_x, self.commanded_y, self.pen_status) + # actual position + out_string = "%i, %i, %i\r" % ( + self.commanded_x, + self.commanded_y, + self.pen_status, + ) self._next_query_value = out_string return elif command.startswith(commands.OC().format): - #commanded position - out_string = "%i, %i, %i\r" % (self.commanded_x, self.commanded_y, self.pen_status) + # commanded position + out_string = "%i, %i, %i\r" % ( + self.commanded_x, + self.commanded_y, + self.pen_status, + ) self._next_query_value = out_string return elif command.startswith(commands.OP().format): - #output P1P2 - out_string = "%d, %d, %d, %d\r" % (self.left, self.bottom, self.right, self.top) + # output P1P2 + out_string = "%d, %d, %d, %d\r" % ( + self.left, + self.bottom, + self.right, + self.top, + ) self._next_query_value = out_string return - #if we made it here then we're normal HPGL + # if we made it here then we're normal HPGL self._received_commands_string += command - #store commanded position data - #this breaks for buffered writes since we don't always - #receive a full PA1000,1000 type command + # store commanded position data + # this breaks for buffered writes since we don't always + # receive a full PA1000,1000 type command - split_data = command.split(';') + split_data = command.split(";") for point in split_data: if point.startswith("PA"): - point_parts = point.strip("PA").split(',') + point_parts = point.strip("PA").split(",") self.commanded_x = eval(point_parts[len(point_parts) - 2]) self.commanded_y = eval(point_parts[len(point_parts) - 1]) elif point.startswith("PD"): - if ',' in point: - point_parts = point.strip("PD").split(',') + if "," in point: + point_parts = point.strip("PD").split(",") self.commanded_x = eval(point_parts[len(point_parts) - 2]) self.commanded_y = eval(point_parts[len(point_parts) - 1]) self.pen_status = 1 elif point.startswith("PU"): - if ',' in point: - point_parts = point.strip("PU").split(',') + if "," in point: + point_parts = point.strip("PU").split(",") self.commanded_x = eval(point_parts[len(point_parts) - 2]) self.commanded_y = eval(point_parts[len(point_parts) - 1]) self.pen_status = 0 if point.startswith("PR"): - point_parts = point.strip("PR").split(',') + point_parts = point.strip("PR").split(",") self.commanded_x += eval(point_parts[len(point_parts) - 2]) self.commanded_y += eval(point_parts[len(point_parts) - 1]) - #print "commanded_x: %i commanded_y: %i" % (self.commanded_x, self.commanded_y) + # print "commanded_x: %i commanded_y: %i" % (self.commanded_x, self.commanded_y) def flush(self): pass def flushInput(self): - #print "vsp: flushed input." + # print "vsp: flushed input." pass def flushOutput(self): - #print "vsp: flushed output." + # print "vsp: flushed output." pass def clear(self): - #this method doesn't exist for real serial ports - #we use it to erase the stored commands so that you can reset - #a virtual plotter to a blank state + # this method doesn't exist for real serial ports + # we use it to erase the stored commands so that you can reset + # a virtual plotter to a blank state self._received_commands_string = "" - #what's a reasonable value here? + # what's a reasonable value here? def inWaiting(self): return 10 - def readline(self, eol=None): - #print "returning: " + self._next_query_value + # print "returning: " + self._next_query_value return_value = self._next_query_value self._next_query_value = None return return_value - def get_received_commands(self): return inflate_hpgl_string(self._received_commands_string) @@ -157,7 +179,7 @@ def get_received_commands_string(self): @property def format(self): - '''This is so that a VirtualPlotter can call serial_port.format to retrieve + """This is so that a VirtualPlotter can call serial_port.format to retrieve stored commands and send them to io.view() - ''' + """ return self._received_commands_string diff --git a/chiplotle/tools/serialtools/what_plotter_in_port.py b/chiplotle/tools/serialtools/what_plotter_in_port.py index 11de8fb..d682ca4 100644 --- a/chiplotle/tools/serialtools/what_plotter_in_port.py +++ b/chiplotle/tools/serialtools/what_plotter_in_port.py @@ -9,37 +9,39 @@ import serial import time + def what_plotter_in_port(port, wait_time=10): - '''Check if there's a powered-on plotter in `port` port. + """Check if there's a powered-on plotter in `port` port. - `port` : a string with port path or name. - `wait_time` : ``int`` maximum time in seconds to wait for plotter response. - Returns the ID of the plotter found or None.''' + Returns the ID of the plotter found or None.""" assert isinstance(wait_time, int) if not isinstance(port, (string_types, text_type)): - raise TypeError('`port` must be a string.') + raise TypeError("`port` must be a string.") from chiplotle.tools.serialtools import instantiate_serial_from_config_file + ser = instantiate_serial_from_config_file(port) try: ser.flushInput() ser.flushOutput() - ser.write('IN;') - ser.write('OI;') + ser.write("IN;") + ser.write("OI;") except serial.serialutil.SerialException: return None - t = time.time( ) - while time.time( ) - t < wait_time: - if ser.inWaiting( ) > 0: + t = time.time() + while time.time() - t < wait_time: + if ser.inWaiting() > 0: try: - id = ser.readline(eol='\r').strip('\r') # <-- old pyserial + id = ser.readline(eol="\r").strip("\r") # <-- old pyserial except: - id = ser.readline().strip('\r') + id = ser.readline().strip("\r") ## if not just a repeater... - if id != 'OI;': + if id != "OI;": return id diff --git a/chiplotle/tools/shapetools/get_shapes_with_tag.py b/chiplotle/tools/shapetools/get_shapes_with_tag.py index 9804a0a..6a0957a 100644 --- a/chiplotle/tools/shapetools/get_shapes_with_tag.py +++ b/chiplotle/tools/shapetools/get_shapes_with_tag.py @@ -3,38 +3,39 @@ from __future__ import division from __future__ import absolute_import from future import standard_library + standard_library.install_aliases() from chiplotle.geometry.core.tagsvisitor import TagsVisitor + def get_shapes_with_tag(shape, tag): - '''Returns all the shapes with the given tag.''' + """Returns all the shapes with the given tag.""" v = TagsVisitor() v.visit(shape) return v.tags.get(tag) or [] - -if __name__ == '__main__': +if __name__ == "__main__": from chiplotle import * c1 = circle(1000) - c1.meta.tags.update(['circle', 'red']) + c1.meta.tags.update(["circle", "red"]) c2 = circle(2000) - c2.meta.tags.update(['circle', 'blue']) + c2.meta.tags.update(["circle", "blue"]) r1 = rectangle(100, 1000) - r1.meta.tags.update(['rect', 'blue']) + r1.meta.tags.update(["rect", "blue"]) t1 = isosceles(100, 1000) - t1.meta.tags.add('triangle') + t1.meta.tags.add("triangle") g = Group([c1, c2, r1, t1]) - circles = get_shapes_with_tag(g, 'circle') - reds = get_shapes_with_tag(g, 'red') - blues = get_shapes_with_tag(g, 'blue') - triang = get_shapes_with_tag(g, 'triangle') + circles = get_shapes_with_tag(g, "circle") + reds = get_shapes_with_tag(g, "red") + blues = get_shapes_with_tag(g, "blue") + triang = get_shapes_with_tag(g, "triangle") assert circles == [c1, c2] - assert reds == [c1] - assert blues == [c2, r1] - assert triang == [t1] + assert reds == [c1] + assert blues == [c2, r1] + assert triang == [t1] From 90baf1112d9b2edcc6a8820cb8ca046ee737a74d Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 23:20:57 +0100 Subject: [PATCH 30/82] Import __version__.* constants into __init__ --- chiplotle/__init__.py | 6 ++---- chiplotle/__version__.py | 5 +++++ setup.py | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/chiplotle/__init__.py b/chiplotle/__init__.py index 2a31aca..f7e4c1b 100644 --- a/chiplotle/__init__.py +++ b/chiplotle/__init__.py @@ -7,10 +7,8 @@ standard_library.install_aliases() from chiplotle.core.cfg.cfg import __version__ from chiplotle.core.cfg.initialize_files import initialize_files +from .__version__ import __author__, __version__, __license__, __url__, __copyright__, __description__ -__authors__ = "Victor Adan, Douglas Repetto" -__license__ = "GPL" -__url__ = "http://music.columbia.edu/cmc/chiplotle" __doc__ = """Chiplotle Python library for pen plotting. @@ -20,7 +18,7 @@ Homepage %s """ % ( - __authors__, + __author__, __version__, __license__, __url__, diff --git a/chiplotle/__version__.py b/chiplotle/__version__.py index 628cf95..738101d 100644 --- a/chiplotle/__version__.py +++ b/chiplotle/__version__.py @@ -1,3 +1,7 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + + __title__ = "chiplotle" __description__ = "Chiplotle is an HPGL Python API." __version__ = "0.4.2" @@ -5,3 +9,4 @@ __author_email__ = "chiplotle@music.columbia.edu" __license__ = "GPL" __copyright__ = "Copyright 2018 Chiplotle" +__url__ = "http://music.columbia.edu/cmc/chiplotle" diff --git a/setup.py b/setup.py index 725328a..37fa7b6 100755 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ long_description = about['__description__'], author = about['__author__'], author_email = about['__author_email__'], - url = 'http://music.columbia.edu/cmc/chiplotle', + url = about['__url__'], keywords = 'vector graphics hpgl plotter plot pen', license = about['__license__'], From e8ff1a12aa9ad9c1f238ced14c132e1fd2a2cc97 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 23:21:10 +0100 Subject: [PATCH 31/82] Run black on setup.py --- setup.py | 56 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/setup.py b/setup.py index 37fa7b6..67b854b 100755 --- a/setup.py +++ b/setup.py @@ -7,33 +7,35 @@ about = dict() here = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(here, 'chiplotle', '__version__.py'), 'r') as f: +with open(os.path.join(here, "chiplotle", "__version__.py"), "r") as f: exec(f.read(), about) -setup(name = about['__title__'], - version = about['__version__'], - description = about['__description__'], - long_description = about['__description__'], - author = about['__author__'], - author_email = about['__author_email__'], - url = about['__url__'], - keywords = 'vector graphics hpgl plotter plot pen', - license = about['__license__'], - - include_package_data = True, - packages = find_packages(), - install_requires = ['pyserial<=3', 'numpy<=2'], - entry_points = {'console_scripts': - ['chiplotle = chiplotle.core.cfg._run_chiplotle:_run_chiplotle',]}, - scripts = [ - 'chiplotle/scripts/envelope.py', - 'chiplotle/scripts/find_hpgl_file_dimensions.py', - 'chiplotle/scripts/plot_hpgl_file_max_size.py', - 'chiplotle/scripts/plot_hpgl_file.py', - 'chiplotle/scripts/plot_hpgl_file_virtual.py', - 'chiplotle/scripts/typewriter.py', - 'chiplotle/scripts/view_hpgl_file.py', - ], - ) - +setup( + name=about["__title__"], + version=about["__version__"], + description=about["__description__"], + long_description=about["__description__"], + author=about["__author__"], + author_email=about["__author_email__"], + url=about["__url__"], + keywords="vector graphics hpgl plotter plot pen", + license=about["__license__"], + include_package_data=True, + packages=find_packages(), + install_requires=["pyserial<=3", "numpy<=2"], + entry_points={ + "console_scripts": [ + "chiplotle = chiplotle.core.cfg._run_chiplotle:_run_chiplotle" + ] + }, + scripts=[ + "chiplotle/scripts/envelope.py", + "chiplotle/scripts/find_hpgl_file_dimensions.py", + "chiplotle/scripts/plot_hpgl_file_max_size.py", + "chiplotle/scripts/plot_hpgl_file.py", + "chiplotle/scripts/plot_hpgl_file_virtual.py", + "chiplotle/scripts/typewriter.py", + "chiplotle/scripts/view_hpgl_file.py", + ], +) From 612bc97876ea522f2d197f7f7b06b2c6be650ca0 Mon Sep 17 00:00:00 2001 From: Will Price Date: Tue, 21 Aug 2018 23:23:39 +0100 Subject: [PATCH 32/82] Add classifiers and break up keywords in setup.py --- setup.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 67b854b..a98ab99 100755 --- a/setup.py +++ b/setup.py @@ -19,8 +19,21 @@ author=about["__author__"], author_email=about["__author_email__"], url=about["__url__"], - keywords="vector graphics hpgl plotter plot pen", + keywords=["vector", "graphics", "hpgl", "plotter", "plot", "pen"], license=about["__license__"], + classifiers=[ + # How mature is this project? Common values are + # 3 - Alpha + # 4 - Beta + # 5 - Production/Stable + 'Intended Audience :: Developers', + 'Development Status :: 4 - Beta', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)', + ], include_package_data=True, packages=find_packages(), install_requires=["pyserial<=3", "numpy<=2"], From 385f74565829bc797d6dfc25ad43a02fd1cf8c4c Mon Sep 17 00:00:00 2001 From: Will Price Date: Wed, 22 Aug 2018 00:03:00 +0100 Subject: [PATCH 33/82] Attempt to fix RTD build by copying chiplotle config --- chiplotle/documentation/chiplotle_config.py | 48 +++++++++++++++++++++ chiplotle/documentation/conf.py | 10 ++++- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 chiplotle/documentation/chiplotle_config.py diff --git a/chiplotle/documentation/chiplotle_config.py b/chiplotle/documentation/chiplotle_config.py new file mode 100644 index 0000000..6d636d7 --- /dev/null +++ b/chiplotle/documentation/chiplotle_config.py @@ -0,0 +1,48 @@ +## Chiplotle configuration file. +## Created by Chiplotle on 21 August 2018 20:52:20. +## +## This file houses all the configuration variables employed +## by Chiplotle. You can set them manually to suit your needs. +## Do not delete them! If you want them to have no effect +## simply set them to "None". +## +## This file is executed via the ``execfile( )`` function, +## so all its content should adhere to the Python syntax. + + +# Configuration Variables --------------------------------- + +## Serial ports to plotters map. +## Set to None if you want Chiplotle to dynamically find the +## plotters connected to your computer. This is the default. +## This default is convenient when your setup changes frequently. +## For a fixed setup set this to a dictionary mapping serial +## ports to plotters. +## e.g., {'/dev/ttyS0' : 'DXY-1300', '/dev/ttyS1' : 'HP7475A'} +## sets plotter 'DXY-1300' to port '/dev/ttyS0' and plotter +## 'HP7475A' to port '/dev/ttyS1'. +serial_port_to_plotter_map = {'/dev/usb/lp0': 'DXY-1300'} + + +## Serial connection parameters. +## Set your plotter to match these values, or vice versa.. +baudrate = 9600 +bytesize = 8 +parity = 'N' +stopbits = 1 +timeout = 1 +xonxoff = 1 +rtscts = 0 + + +## Maximum wait time for response from plotter. +## Every time the plotter is queried, Chiplotle will wait for +## a maximum of `maximum_response_wait_time` seconds. +maximum_response_wait_time = 8 + + +## Set to True if you want information (such as warnings) +## displayed on the console. Set to False if you don't. +verbose = True + + diff --git a/chiplotle/documentation/conf.py b/chiplotle/documentation/conf.py index e7fb2fd..91b9eee 100644 --- a/chiplotle/documentation/conf.py +++ b/chiplotle/documentation/conf.py @@ -18,7 +18,8 @@ from future import standard_library standard_library.install_aliases() -import sys, os +import os +import shutil about = dict() @@ -26,6 +27,13 @@ with open(os.path.join(here, "..", "__version__.py"), "r") as f: exec(f.read(), about) +chiplotle_config_dir = os.path.expanduser("~/.chiplotle") +if not os.path.exists(chiplotle_config_dir): + os.makedirs(os.path.join(chiplotle_config_dir)) + os.makedirs(os.path.join(chiplotle_config_dir, 'output')) + shutil.copyfile(os.path.join(here, 'chiplotle_config.py'), + os.path.join(chiplotle_config_dir, 'config.py')) + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. From 515377641b14cb56923abab9889ce969c85c5b13 Mon Sep 17 00:00:00 2001 From: Will Price Date: Wed, 22 Aug 2018 08:50:01 +0100 Subject: [PATCH 34/82] Add coverage --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 001e25f..6b32e41 100644 --- a/tox.ini +++ b/tox.ini @@ -9,4 +9,4 @@ whitelist_externals = make deps= -r{toxinidir}/requirements.txt commands= - pytest chiplotle + pytest --cov chiplotle --cov-branch chiplotle From 28e75d5ae50038827c7219e21c025b8fe5aefdb5 Mon Sep 17 00:00:00 2001 From: Will Price Date: Wed, 22 Aug 2018 08:52:55 +0100 Subject: [PATCH 35/82] Add code coverage status badge to README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f50c0ab..55b3d85 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # Chiplotle -[![CircleCI](https://circleci.com/gh/willprice/chiplotle.svg?style=shield)](https://circleci.com/gh/willprice/chiplotle) +[![CircleCI Status](https://circleci.com/gh/willprice/chiplotle.svg?style=shield)](https://circleci.com/gh/willprice/chiplotle) +[![Code coverage Status](https://codecov.io/gh/willprice/chiplotle/branch/master/graph/badge.svg)](https://codecov.io/gh/willprice/chiplotle) [![Documentation Status](https://readthedocs.org/projects/chiplotle/badge/?version=latest)](https://chiplotle.readthedocs.io/en/latest/?badge=latest) -[![PyPI version](https://badge.fury.io/py/Chiplotle.svg)](https://badge.fury.io/py/Chiplotle) +[![PyPI Version](https://badge.fury.io/py/Chiplotle.svg)](https://badge.fury.io/py/Chiplotle) + Chiplotle is a Python library that implements and extends the HPGL (Hewlett-Packard Graphics Language) plotter control language. It From 306ea019d3a04dbc2d026ba39001bb397f8bfc22 Mon Sep 17 00:00:00 2001 From: Will Price Date: Wed, 22 Aug 2018 08:55:03 +0100 Subject: [PATCH 36/82] Include README.md in MANIFEST, update INSTALL file suffix to rst --- INSTALL => INSTALL.rst | 0 MANIFEST.in | 4 ++-- chiplotle/documentation/install.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename INSTALL => INSTALL.rst (100%) diff --git a/INSTALL b/INSTALL.rst similarity index 100% rename from INSTALL rename to INSTALL.rst diff --git a/MANIFEST.in b/MANIFEST.in index 6179a93..e2a9555 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,5 @@ -include INSTALL -include README +include INSTALL.rst +include README.md include COPYING include setup.py global-include test*.py diff --git a/chiplotle/documentation/install.rst b/chiplotle/documentation/install.rst index 37675c7..760d43d 120000 --- a/chiplotle/documentation/install.rst +++ b/chiplotle/documentation/install.rst @@ -1 +1 @@ -../../INSTALL \ No newline at end of file +../../INSTALL.rst \ No newline at end of file From e2e887173e904d1e83f5dcb05e72a0d310e267f9 Mon Sep 17 00:00:00 2001 From: Will Price Date: Wed, 22 Aug 2018 08:56:08 +0100 Subject: [PATCH 37/82] Remove unused test script --- test.sh | 3 --- 1 file changed, 3 deletions(-) delete mode 100755 test.sh diff --git a/test.sh b/test.sh deleted file mode 100755 index 9ca310b..0000000 --- a/test.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -py.test chiplotle From 89927de95daec9d4d824a6c604558a1d17dbea4a Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 21:29:34 +0100 Subject: [PATCH 38/82] Move chiplotle package dir to subfolder, add coverage support Coverage was previously broken due to the coverage picking up source files from the source directory, but it should have been picking up those within the tox installed directory, by putting the package into a `src` dir we mitigate this issue. Discussion here: - https://hynek.me/articles/testing-packaging/ - https://blog.ionelmc.ro/2014/05/25/python-packaging/#the-structure This still needs work on the circle front as we'll still spam codecov.io with 4 versions of coverage results for each test - really we should merge them and then submit, which should be possible using the workflow system (although if one fails we still want to merge coverage we do have - could be a bit tricky) --- .coveragerc | 9 +++++++ MANIFEST.in | 6 +---- Makefile | 2 +- .../SerialPlotterCable_Chiplotle.pdf | Bin 2751918 -> 0 bytes chiplotle/documentation/install.rst | 1 - setup.py | 24 ++++++++++-------- {chiplotle => src/chiplotle}/__init__.py | 0 {chiplotle => src/chiplotle}/__version__.py | 0 {chiplotle => src/chiplotle}/core/__init__.py | 0 .../chiplotle}/core/cfg/__init__.py | 0 .../chiplotle}/core/cfg/_run_chiplotle.py | 0 .../core/cfg/_run_chiplotle_virtual.py | 0 {chiplotle => src/chiplotle}/core/cfg/cfg.py | 0 .../chiplotle}/core/cfg/get_config_value.py | 0 .../chiplotle}/core/cfg/initialize_files.py | 0 .../chiplotle}/core/cfg/read_config_file.py | 0 .../chiplotle}/core/cfg/write_config_file.py | 0 .../chiplotle}/core/cfg/write_log_file.py | 0 .../core/devscripts/replace_in_files.py | 0 {chiplotle => src/chiplotle}/core/errors.py | 0 .../chiplotle}/core/imports/__init__.py | 0 .../core/imports/get_functions_in_module.py | 0 .../chiplotle}/core/imports/package_import.py | 0 .../imports/remove_modules_from_namespace.py | 0 .../chiplotle}/core/interfaces/__init__.py | 0 .../core/interfaces/formatdecorator.py | 0 .../chiplotle}/core/interfaces/interface.py | 0 .../core/interfaces/margins/__init__.py | 0 .../core/interfaces/margins/interface.py | 0 .../core/interfaces/parentage/__init__.py | 0 .../core/interfaces/parentage/interface.py | 0 {chiplotle => src/chiplotle}/core/visitor.py | 0 .../chiplotle}/documentation/.gitignore | 0 .../chiplotle}/documentation/Makefile | 0 .../_themes/chiplotle/layout.html | 0 .../chiplotle/static/chiplotle_logo_2.png | Bin .../_themes/chiplotle/static/default.css_t | 0 .../_themes/chiplotle/static/ga-1.js | 0 .../_themes/chiplotle/static/ga-2.js | 0 .../_themes/chiplotle/static/ga.js | 0 .../_themes/chiplotle/theme.conf | 0 .../documentation/chapters/about/index.rst | 0 .../documentation/chapters/api/geometry.rst | 0 .../documentation/chapters/api/hpgl.rst | 0 .../documentation/chapters/api/index.rst | 0 .../documentation/chapters/api/plotters.rst | 0 .../documentation/chapters/api/tools.rst | 0 .../chapters/configuration/index.rst | 0 .../chapters/contributors/index.rst | 0 .../documentation/chapters/faq/index.rst | 0 .../chapters/fundamentals/index.rst | 0 .../documentation/chapters/hardware/index.rst | 0 .../chapters/mailinglist/index.rst | 0 .../documentation/chapters/plotters/index.rst | 0 .../chapters/resources/index.rst | 0 .../chapters/tutorial/images/arches.png | Bin .../chapters/tutorial/images/arrow.png | Bin .../documentation/chapters/tutorial/index.rst | 0 .../documentation/chapters/tutorial/intro.rst | 0 .../chapters/tutorial/shapes.rst | 0 .../documentation/chiplotle_config.py | 0 .../chiplotle}/documentation/conf.py | 0 .../chiplotle}/documentation/index.rst | 0 src/chiplotle/documentation/install.rst | 1 + .../documentation/scripts/compile_api.py | 0 {chiplotle => src/chiplotle}/examples/README | 0 .../chiplotle}/examples/__init__.py | 0 .../examples/abstract_masterpiece.py | 0 .../examples/abstract_masterpiece_file.py | 0 .../examples/abstract_masterpiece_virtual.py | 0 .../examples/importing_an_hpgl_file.py | 0 .../examples/liveplot_data-to-path.py | 0 .../examples/liveplot_virtual_generic.py | 0 .../examples/liveplot_virtual_specific.py | 0 ...ird_by_brian_whitman_and_kelly_dobson.hpgl | 0 .../examples/media/douglas_repetto.jpg | Bin .../media/foal_by_douglas_repetto.hpgl | 0 .../chiplotle}/examples/media/indoor_temp.txt | 0 .../chiplotle}/examples/media/square.hpgl | 0 .../chiplotle}/fonts/__init__.py | 0 {chiplotle => src/chiplotle}/fonts/dorkbot.py | 0 .../chiplotle}/geometry/__init__.py | 0 .../chiplotle}/geometry/core/__init__.py | 0 .../geometry/core/affixformatvisitor.py | 0 .../chiplotle}/geometry/core/coordinate.py | 0 .../geometry/core/coordinatearray.py | 0 .../core/coordinatearraypropertiesmixin.py | 0 .../chiplotle}/geometry/core/group.py | 0 .../geometry/core/hpglformatvisitor.py | 0 .../chiplotle}/geometry/core/label.py | 0 .../chiplotle}/geometry/core/layer.py | 0 .../chiplotle}/geometry/core/layersvisitor.py | 0 .../chiplotle}/geometry/core/metadata.py | 0 .../chiplotle}/geometry/core/path.py | 0 .../chiplotle}/geometry/core/polygon.py | 0 .../chiplotle}/geometry/core/shape.py | 0 .../geometry/core/shapepropertiesmixin.py | 0 .../chiplotle}/geometry/core/tagsvisitor.py | 0 .../geometry/core/test/test_coordinate_add.py | 0 .../core/test/test_coordinate_init.py | 0 .../geometry/core/test/test_coordinate_mul.py | 0 .../geometry/core/test/test_coordinate_sub.py | 0 .../core/test/test_coordinatearray_add.py | 0 .../core/test/test_coordinatearray_append.py | 0 .../core/test/test_coordinatearray_extend.py | 0 .../core/test/test_coordinatearray_init.py | 0 .../test/test_coordinatearray_properties.py | 0 .../geometry/core/test/test_layersvisitor.py | 0 .../geometry/core/test/test_path_add.py | 0 .../geometry/core/test/test_path_mul.py | 0 .../geometry/core/test/test_path_sub.py | 0 .../core/test/test_shapes_group_add.py | 0 .../core/test/test_shapes_group_init.py | 0 .../core/test/test_shapes_group_points.py | 0 .../geometry/core/test/test_transformlock.py | 0 .../chiplotle}/geometry/core/transformlock.py | 0 .../chiplotle}/geometry/shapes/__init__.py | 0 .../chiplotle}/geometry/shapes/annotation.py | 0 .../chiplotle}/geometry/shapes/arc_circle.py | 0 .../chiplotle}/geometry/shapes/arc_ellipse.py | 0 .../chiplotle}/geometry/shapes/arrow.py | 0 .../geometry/shapes/catmull_path.py | 0 .../chiplotle}/geometry/shapes/circle.py | 0 .../chiplotle}/geometry/shapes/cross.py | 0 .../chiplotle}/geometry/shapes/donut.py | 0 .../chiplotle}/geometry/shapes/ellipse.py | 0 .../chiplotle}/geometry/shapes/fan.py | 0 .../chiplotle}/geometry/shapes/frame.py | 0 .../chiplotle}/geometry/shapes/grid.py | 0 .../chiplotle}/geometry/shapes/group.py | 0 .../chiplotle}/geometry/shapes/isosceles.py | 0 .../chiplotle}/geometry/shapes/label.py | 0 .../chiplotle}/geometry/shapes/layer.py | 0 .../chiplotle}/geometry/shapes/line.py | 0 .../geometry/shapes/line_displaced.py | 0 .../chiplotle}/geometry/shapes/lock_group.py | 0 .../chiplotle}/geometry/shapes/path.py | 0 .../chiplotle}/geometry/shapes/path_bezier.py | 0 .../geometry/shapes/path_interpolated.py | 0 .../chiplotle}/geometry/shapes/path_linear.py | 0 .../geometry/shapes/radial_ruler.py | 0 .../geometry/shapes/random_walk_cartesian.py | 0 .../geometry/shapes/random_walk_polar.py | 0 .../chiplotle}/geometry/shapes/rectangle.py | 0 .../chiplotle}/geometry/shapes/ruler.py | 0 .../geometry/shapes/spiral_archimedean.py | 0 .../geometry/shapes/spiral_logarithmic.py | 0 .../chiplotle}/geometry/shapes/square.py | 0 .../geometry/shapes/star_crisscross.py | 0 .../geometry/shapes/star_outline.py | 0 .../chiplotle}/geometry/shapes/supershape.py | 0 .../shapes/symmetric_polygon_side_length.py | 0 .../chiplotle}/geometry/shapes/target.py | 0 .../geometry/shapes/test/test_bezier_path.py | 0 .../geometry/transforms/__init__.py | 0 .../transforms/arrange_shapes_on_path.py | 0 .../geometry/transforms/center_at.py | 0 .../chiplotle}/geometry/transforms/noise.py | 0 .../chiplotle}/geometry/transforms/offset.py | 0 .../transforms/perpendicular_displace.py | 0 .../transforms/perpendicular_noise.py | 0 .../chiplotle}/geometry/transforms/rotate.py | 0 .../chiplotle}/geometry/transforms/scale.py | 0 .../test/test_perpendicular_noise_path.py | 0 .../transforms/test/test_scale_path.py | 0 .../geometry/transforms/transformvisitor.py | 0 {chiplotle => src/chiplotle}/hpgl/__init__.py | 0 .../chiplotle}/hpgl/abstract/__init__.py | 0 .../chiplotle}/hpgl/abstract/arc.py | 0 .../chiplotle}/hpgl/abstract/hpgl.py | 0 .../chiplotle}/hpgl/abstract/hpglescape.py | 0 .../chiplotle}/hpgl/abstract/hpglprimitive.py | 0 .../chiplotle}/hpgl/abstract/penplot.py | 0 .../chiplotle}/hpgl/abstract/positional.py | 0 .../chiplotle}/hpgl/abstract/twopoint.py | 0 {chiplotle => src/chiplotle}/hpgl/commands.py | 0 .../chiplotle}/hpgl/formatters/__init__.py | 0 .../chiplotle}/hpgl/formatters/filltype.py | 0 .../chiplotle}/hpgl/formatters/linetype.py | 0 .../chiplotle}/hpgl/formatters/pen.py | 0 {chiplotle => src/chiplotle}/hpgl/label.py | 0 {chiplotle => src/chiplotle}/hpgl/pen.py | 0 .../chiplotle}/hpgl/test/test_AA.py | 0 .../chiplotle}/hpgl/test/test_AR.py | 0 .../chiplotle}/hpgl/test/test_CI.py | 0 .../chiplotle}/hpgl/test/test_CP.py | 0 .../chiplotle}/hpgl/test/test_DI.py | 0 .../chiplotle}/hpgl/test/test_DR.py | 0 .../chiplotle}/hpgl/test/test_EA.py | 0 .../chiplotle}/hpgl/test/test_ER.py | 0 .../chiplotle}/hpgl/test/test_ES.py | 0 .../chiplotle}/hpgl/test/test_EW.py | 0 .../chiplotle}/hpgl/test/test_FS.py | 0 .../chiplotle}/hpgl/test/test_FT.py | 0 .../chiplotle}/hpgl/test/test_IP.py | 0 .../chiplotle}/hpgl/test/test_PA.py | 0 .../chiplotle}/hpgl/test/test_PU.py | 0 .../chiplotle}/hpgl/test/test_SI.py | 0 .../chiplotle}/hpgl/test/test_SR.py | 0 .../chiplotle}/hpgl/test/test_VS.py | 0 .../chiplotle}/hpgl/test/test_WG.py | 0 .../hpgl/test/test_dci_sethandshakemode.py | 0 .../chiplotle}/hpgl/test/test_hpglescape.py | 0 .../hpgl/test/test_hpglprimitive.py | 0 .../chiplotle}/hpgl/test/test_pen.py | 0 .../chiplotle}/hpgl/test/test_penplot.py | 0 .../chiplotle}/plotters/__init__.py | 0 .../chiplotle}/plotters/baseplotter.py | 0 .../chiplotle}/plotters/dpx2000.py | 0 .../chiplotle}/plotters/dpx2200.py | 0 .../chiplotle}/plotters/dpx3300.py | 0 .../chiplotle}/plotters/drawingplotter.py | 0 .../chiplotle}/plotters/dxy1300.py | 0 .../chiplotle}/plotters/dxy880.py | 0 .../chiplotle}/plotters/hp7475a.py | 0 .../chiplotle}/plotters/hp7550a.py | 0 .../chiplotle}/plotters/hp7575a.py | 0 .../chiplotle}/plotters/hp7576a.py | 0 .../chiplotle}/plotters/hp7585b.py | 0 .../chiplotle}/plotters/hp7595a.py | 0 .../chiplotle}/plotters/hp7596a.py | 0 .../plotters/interactive/__init__.py | 0 .../interactive/interactive_commands.py | 0 .../chiplotle}/plotters/margins/__init__.py | 0 .../plotters/margins/marginshard.py | 0 .../plotters/margins/marginssoft.py | 0 .../plotters/margins/plottermargins.py | 0 .../plotters/margins/test/test_marginsoft.py | 0 .../chiplotle}/plotters/plotter.py | 0 .../chiplotle}/plotters/test/plotter_query.py | 0 .../plotters/test/test_drawingplotter.py | 0 .../plotters/test/test_plotter_write.py | 0 .../chiplotle}/scripts/chiplotle | 0 .../chiplotle}/scripts/chiplotle_virtual | 0 .../chiplotle}/scripts/envelope.py | 0 .../scripts/find_hpgl_file_dimensions.py | 0 .../chiplotle}/scripts/plot_hpgl_file.py | 0 .../scripts/plot_hpgl_file_max_size.py | 0 .../scripts/plot_hpgl_file_virtual.py | 0 .../chiplotle}/scripts/typewriter.py | 0 .../chiplotle}/scripts/view_hpgl_file.py | 0 .../chiplotle}/tools/__init__.py | 0 .../tools/geometrytools/__init__.py | 0 .../geometrytools/get_line_intersection.py | 0 .../geometrytools/get_shape_intersections.py | 0 .../chiplotle}/tools/geometrytools/scale.py | 0 .../split_coordinatearray_proportionally.py | 0 .../split_vector_equidistantly.py | 0 .../chiplotle}/tools/hpgltools/__init__.py | 0 ...nvert_coordinates_to_hpgl_absolute_path.py | 0 .../convert_relatives_to_absolutes.py | 0 .../tools/hpgltools/get_all_coordinates.py | 0 .../tools/hpgltools/get_bounding_box.py | 0 .../tools/hpgltools/get_centroid.py | 0 .../tools/hpgltools/inflate_hpgl_string.py | 0 .../tools/hpgltools/is_primitive_absolute.py | 0 .../tools/hpgltools/parse_hpgl_string.py | 0 .../tools/hpgltools/pens_updown_to_papr.py | 0 .../chiplotle}/tools/hpgltools/pr_to_pa.py | 0 .../chiplotle}/tools/hpgltools/relativize.py | 0 .../tools/hpgltools/rotate_hpglprimitives.py | 0 .../chiplotle}/tools/hpgltools/scale.py | 0 ...st_convert_coordinates_to_absolute_path.py | 0 .../test_convert_relatives_to_absolutes.py | 0 .../test/test_get_all_coordinates.py | 0 .../hpgltools/test/test_get_bounding_box.py | 0 .../tools/hpgltools/test/test_get_centroid.py | 0 .../test/test_inflate_hpgl_string.py | 0 .../hpgltools/test/test_parse_hpgl_string.py | 0 .../test/test_pens_updown_to_papr.py | 0 .../tools/hpgltools/test/test_pr_to_pa.py | 0 .../tools/hpgltools/test/test_relativize.py | 0 .../test/test_rotate_hpglprimitives.py | 0 .../tools/hpgltools/test/test_scale.py | 0 .../tools/hpgltools/test/test_transpose.py | 0 .../chiplotle}/tools/hpgltools/transpose.py | 0 .../chiplotle}/tools/io/__init__.py | 0 .../chiplotle}/tools/io/_open_file.py | 0 .../chiplotle}/tools/io/export.py | 0 .../chiplotle}/tools/io/import_hpgl_file.py | 0 .../chiplotle}/tools/io/save_hpgl.py | 0 .../tools/io/test/hpgl_import_test_file.hpgl | 0 .../chiplotle}/tools/io/test/test_export.py | 0 .../tools/io/test/test_import_hpgl_file.py | 0 .../tools/io/test/test_save_hpgl.py | 0 {chiplotle => src/chiplotle}/tools/io/view.py | 0 .../tools/iterabletools/__init__.py | 0 .../flat_list_to_dovetail_pairs.py | 0 .../tools/iterabletools/flat_list_to_pairs.py | 0 .../chiplotle}/tools/iterabletools/flatten.py | 0 .../tools/iterabletools/is_flat_list.py | 0 .../tools/iterabletools/isiterable.py | 0 .../chiplotle}/tools/iterabletools/ispair.py | 0 .../chiplotle}/tools/logtools/__init__.py | 0 .../chiplotle}/tools/logtools/apply_logger.py | 0 .../chiplotle}/tools/logtools/get_logger.py | 0 .../chiplotle}/tools/mathtools/__init__.py | 0 .../tools/mathtools/bezier_interpolation.py | 0 .../tools/mathtools/catmull_interpolation.py | 0 .../chiplotle}/tools/mathtools/cumsum.py | 0 .../chiplotle}/tools/mathtools/difference.py | 0 .../chiplotle}/tools/mathtools/factors.py | 0 .../tools/mathtools/interpolate_cosine.py | 0 .../mathtools/interpolate_exponential.py | 0 .../tools/mathtools/interpolate_linear.py | 0 .../chiplotle}/tools/mathtools/lcm.py | 0 .../chiplotle}/tools/mathtools/pascal_row.py | 0 .../chiplotle}/tools/mathtools/polar_to_xy.py | 0 .../chiplotle}/tools/mathtools/rotate_2d.py | 0 .../chiplotle}/tools/mathtools/rotate_3d.py | 0 .../tools/mathtools/superformula.py | 0 .../tools/mathtools/test/test_difference.py | 0 .../mathtools/test/test_mathtools_factors.py | 0 .../tools/mathtools/test/test_polar_to_xy.py | 0 .../tools/mathtools/test/test_rotate_2d.py | 0 .../tools/mathtools/test/test_xy_to_polar.py | 0 .../chiplotle}/tools/mathtools/xy_to_polar.py | 0 .../chiplotle}/tools/measuretools/__init__.py | 0 .../chiplotle}/tools/measuretools/cm_to_pu.py | 0 .../chiplotle}/tools/measuretools/in_to_pu.py | 0 .../chiplotle}/tools/measuretools/mm_to_pu.py | 0 .../chiplotle}/tools/measuretools/pu_to_cm.py | 0 .../chiplotle}/tools/measuretools/pu_to_in.py | 0 .../chiplotle}/tools/measuretools/pu_to_mm.py | 0 .../tools/measuretools/test/test_cm_to_pu.py | 0 .../tools/measuretools/test/test_in_to_pu.py | 0 .../tools/measuretools/test/test_mm_to_pu.py | 0 .../tools/measuretools/test/test_pu_to_cm.py | 0 .../tools/measuretools/test/test_pu_to_in.py | 0 .../tools/measuretools/test/test_pu_to_mm.py | 0 .../chiplotle}/tools/plottertools/__init__.py | 0 .../plottertools/_instantiate_plotter.py | 0 .../instantiate_plotter_from_id.py | 0 .../plottertools/instantiate_plotters.py | 0 .../instantiate_virtual_plotter.py | 0 .../interactive_choose_plotter.py | 0 .../plottertools/interactive_plot_layers.py | 0 .../search_and_instantiate_plotters.py | 0 .../chiplotle}/tools/serialtools/__init__.py | 0 .../instantiate_serial_from_config_file.py | 0 .../serialtools/interactive_open_serial.py | 0 .../tools/serialtools/scan_serial_ports.py | 0 .../scan_serial_ports_from_list.py | 0 .../serialtools/scan_serial_ports_linux.py | 0 .../serialtools/scan_serial_ports_windows.py | 0 .../serialtools/sniff_ports_for_plotters.py | 0 .../tools/serialtools/virtual_serial_port.py | 0 .../tools/serialtools/what_plotter_in_port.py | 0 .../chiplotle}/tools/shapetools/__init__.py | 0 .../tools/shapetools/get_shapes_with_tag.py | 0 tox.ini | 2 +- 351 files changed, 27 insertions(+), 18 deletions(-) create mode 100644 .coveragerc delete mode 100644 chiplotle/documentation/downloads/SerialPlotterCable_Chiplotle.pdf delete mode 120000 chiplotle/documentation/install.rst rename {chiplotle => src/chiplotle}/__init__.py (100%) rename {chiplotle => src/chiplotle}/__version__.py (100%) rename {chiplotle => src/chiplotle}/core/__init__.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/__init__.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/_run_chiplotle.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/_run_chiplotle_virtual.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/cfg.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/get_config_value.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/initialize_files.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/read_config_file.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/write_config_file.py (100%) rename {chiplotle => src/chiplotle}/core/cfg/write_log_file.py (100%) rename {chiplotle => src/chiplotle}/core/devscripts/replace_in_files.py (100%) rename {chiplotle => src/chiplotle}/core/errors.py (100%) rename {chiplotle => src/chiplotle}/core/imports/__init__.py (100%) rename {chiplotle => src/chiplotle}/core/imports/get_functions_in_module.py (100%) rename {chiplotle => src/chiplotle}/core/imports/package_import.py (100%) rename {chiplotle => src/chiplotle}/core/imports/remove_modules_from_namespace.py (100%) rename {chiplotle => src/chiplotle}/core/interfaces/__init__.py (100%) rename {chiplotle => src/chiplotle}/core/interfaces/formatdecorator.py (100%) rename {chiplotle => src/chiplotle}/core/interfaces/interface.py (100%) rename {chiplotle => src/chiplotle}/core/interfaces/margins/__init__.py (100%) rename {chiplotle => src/chiplotle}/core/interfaces/margins/interface.py (100%) rename {chiplotle => src/chiplotle}/core/interfaces/parentage/__init__.py (100%) rename {chiplotle => src/chiplotle}/core/interfaces/parentage/interface.py (100%) rename {chiplotle => src/chiplotle}/core/visitor.py (100%) rename {chiplotle => src/chiplotle}/documentation/.gitignore (100%) rename {chiplotle => src/chiplotle}/documentation/Makefile (100%) rename {chiplotle => src/chiplotle}/documentation/_themes/chiplotle/layout.html (100%) rename {chiplotle => src/chiplotle}/documentation/_themes/chiplotle/static/chiplotle_logo_2.png (100%) rename {chiplotle => src/chiplotle}/documentation/_themes/chiplotle/static/default.css_t (100%) rename {chiplotle => src/chiplotle}/documentation/_themes/chiplotle/static/ga-1.js (100%) rename {chiplotle => src/chiplotle}/documentation/_themes/chiplotle/static/ga-2.js (100%) rename {chiplotle => src/chiplotle}/documentation/_themes/chiplotle/static/ga.js (100%) rename {chiplotle => src/chiplotle}/documentation/_themes/chiplotle/theme.conf (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/about/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/api/geometry.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/api/hpgl.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/api/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/api/plotters.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/api/tools.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/configuration/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/contributors/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/faq/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/fundamentals/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/hardware/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/mailinglist/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/plotters/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/resources/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/tutorial/images/arches.png (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/tutorial/images/arrow.png (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/tutorial/index.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/tutorial/intro.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chapters/tutorial/shapes.rst (100%) rename {chiplotle => src/chiplotle}/documentation/chiplotle_config.py (100%) rename {chiplotle => src/chiplotle}/documentation/conf.py (100%) rename {chiplotle => src/chiplotle}/documentation/index.rst (100%) create mode 120000 src/chiplotle/documentation/install.rst rename {chiplotle => src/chiplotle}/documentation/scripts/compile_api.py (100%) rename {chiplotle => src/chiplotle}/examples/README (100%) rename {chiplotle => src/chiplotle}/examples/__init__.py (100%) rename {chiplotle => src/chiplotle}/examples/abstract_masterpiece.py (100%) rename {chiplotle => src/chiplotle}/examples/abstract_masterpiece_file.py (100%) rename {chiplotle => src/chiplotle}/examples/abstract_masterpiece_virtual.py (100%) rename {chiplotle => src/chiplotle}/examples/importing_an_hpgl_file.py (100%) rename {chiplotle => src/chiplotle}/examples/liveplot_data-to-path.py (100%) rename {chiplotle => src/chiplotle}/examples/liveplot_virtual_generic.py (100%) rename {chiplotle => src/chiplotle}/examples/liveplot_virtual_specific.py (100%) rename {chiplotle => src/chiplotle}/examples/media/bird_by_brian_whitman_and_kelly_dobson.hpgl (100%) rename {chiplotle => src/chiplotle}/examples/media/douglas_repetto.jpg (100%) rename {chiplotle => src/chiplotle}/examples/media/foal_by_douglas_repetto.hpgl (100%) rename {chiplotle => src/chiplotle}/examples/media/indoor_temp.txt (100%) rename {chiplotle => src/chiplotle}/examples/media/square.hpgl (100%) rename {chiplotle => src/chiplotle}/fonts/__init__.py (100%) rename {chiplotle => src/chiplotle}/fonts/dorkbot.py (100%) rename {chiplotle => src/chiplotle}/geometry/__init__.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/__init__.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/affixformatvisitor.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/coordinate.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/coordinatearray.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/coordinatearraypropertiesmixin.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/group.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/hpglformatvisitor.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/label.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/layer.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/layersvisitor.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/metadata.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/path.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/polygon.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/shape.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/shapepropertiesmixin.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/tagsvisitor.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinate_add.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinate_init.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinate_mul.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinate_sub.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinatearray_add.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinatearray_append.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinatearray_extend.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinatearray_init.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_coordinatearray_properties.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_layersvisitor.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_path_add.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_path_mul.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_path_sub.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_shapes_group_add.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_shapes_group_init.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_shapes_group_points.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/test/test_transformlock.py (100%) rename {chiplotle => src/chiplotle}/geometry/core/transformlock.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/__init__.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/annotation.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/arc_circle.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/arc_ellipse.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/arrow.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/catmull_path.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/circle.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/cross.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/donut.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/ellipse.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/fan.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/frame.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/grid.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/group.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/isosceles.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/label.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/layer.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/line.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/line_displaced.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/lock_group.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/path.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/path_bezier.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/path_interpolated.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/path_linear.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/radial_ruler.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/random_walk_cartesian.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/random_walk_polar.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/rectangle.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/ruler.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/spiral_archimedean.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/spiral_logarithmic.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/square.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/star_crisscross.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/star_outline.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/supershape.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/symmetric_polygon_side_length.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/target.py (100%) rename {chiplotle => src/chiplotle}/geometry/shapes/test/test_bezier_path.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/__init__.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/arrange_shapes_on_path.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/center_at.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/noise.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/offset.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/perpendicular_displace.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/perpendicular_noise.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/rotate.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/scale.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/test/test_perpendicular_noise_path.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/test/test_scale_path.py (100%) rename {chiplotle => src/chiplotle}/geometry/transforms/transformvisitor.py (100%) rename {chiplotle => src/chiplotle}/hpgl/__init__.py (100%) rename {chiplotle => src/chiplotle}/hpgl/abstract/__init__.py (100%) rename {chiplotle => src/chiplotle}/hpgl/abstract/arc.py (100%) rename {chiplotle => src/chiplotle}/hpgl/abstract/hpgl.py (100%) rename {chiplotle => src/chiplotle}/hpgl/abstract/hpglescape.py (100%) rename {chiplotle => src/chiplotle}/hpgl/abstract/hpglprimitive.py (100%) rename {chiplotle => src/chiplotle}/hpgl/abstract/penplot.py (100%) rename {chiplotle => src/chiplotle}/hpgl/abstract/positional.py (100%) rename {chiplotle => src/chiplotle}/hpgl/abstract/twopoint.py (100%) rename {chiplotle => src/chiplotle}/hpgl/commands.py (100%) rename {chiplotle => src/chiplotle}/hpgl/formatters/__init__.py (100%) rename {chiplotle => src/chiplotle}/hpgl/formatters/filltype.py (100%) rename {chiplotle => src/chiplotle}/hpgl/formatters/linetype.py (100%) rename {chiplotle => src/chiplotle}/hpgl/formatters/pen.py (100%) rename {chiplotle => src/chiplotle}/hpgl/label.py (100%) rename {chiplotle => src/chiplotle}/hpgl/pen.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_AA.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_AR.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_CI.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_CP.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_DI.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_DR.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_EA.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_ER.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_ES.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_EW.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_FS.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_FT.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_IP.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_PA.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_PU.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_SI.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_SR.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_VS.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_WG.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_dci_sethandshakemode.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_hpglescape.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_hpglprimitive.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_pen.py (100%) rename {chiplotle => src/chiplotle}/hpgl/test/test_penplot.py (100%) rename {chiplotle => src/chiplotle}/plotters/__init__.py (100%) rename {chiplotle => src/chiplotle}/plotters/baseplotter.py (100%) rename {chiplotle => src/chiplotle}/plotters/dpx2000.py (100%) rename {chiplotle => src/chiplotle}/plotters/dpx2200.py (100%) rename {chiplotle => src/chiplotle}/plotters/dpx3300.py (100%) rename {chiplotle => src/chiplotle}/plotters/drawingplotter.py (100%) rename {chiplotle => src/chiplotle}/plotters/dxy1300.py (100%) rename {chiplotle => src/chiplotle}/plotters/dxy880.py (100%) rename {chiplotle => src/chiplotle}/plotters/hp7475a.py (100%) rename {chiplotle => src/chiplotle}/plotters/hp7550a.py (100%) rename {chiplotle => src/chiplotle}/plotters/hp7575a.py (100%) rename {chiplotle => src/chiplotle}/plotters/hp7576a.py (100%) rename {chiplotle => src/chiplotle}/plotters/hp7585b.py (100%) rename {chiplotle => src/chiplotle}/plotters/hp7595a.py (100%) rename {chiplotle => src/chiplotle}/plotters/hp7596a.py (100%) rename {chiplotle => src/chiplotle}/plotters/interactive/__init__.py (100%) rename {chiplotle => src/chiplotle}/plotters/interactive/interactive_commands.py (100%) rename {chiplotle => src/chiplotle}/plotters/margins/__init__.py (100%) rename {chiplotle => src/chiplotle}/plotters/margins/marginshard.py (100%) rename {chiplotle => src/chiplotle}/plotters/margins/marginssoft.py (100%) rename {chiplotle => src/chiplotle}/plotters/margins/plottermargins.py (100%) rename {chiplotle => src/chiplotle}/plotters/margins/test/test_marginsoft.py (100%) rename {chiplotle => src/chiplotle}/plotters/plotter.py (100%) rename {chiplotle => src/chiplotle}/plotters/test/plotter_query.py (100%) rename {chiplotle => src/chiplotle}/plotters/test/test_drawingplotter.py (100%) rename {chiplotle => src/chiplotle}/plotters/test/test_plotter_write.py (100%) rename {chiplotle => src/chiplotle}/scripts/chiplotle (100%) rename {chiplotle => src/chiplotle}/scripts/chiplotle_virtual (100%) rename {chiplotle => src/chiplotle}/scripts/envelope.py (100%) rename {chiplotle => src/chiplotle}/scripts/find_hpgl_file_dimensions.py (100%) rename {chiplotle => src/chiplotle}/scripts/plot_hpgl_file.py (100%) rename {chiplotle => src/chiplotle}/scripts/plot_hpgl_file_max_size.py (100%) rename {chiplotle => src/chiplotle}/scripts/plot_hpgl_file_virtual.py (100%) rename {chiplotle => src/chiplotle}/scripts/typewriter.py (100%) rename {chiplotle => src/chiplotle}/scripts/view_hpgl_file.py (100%) rename {chiplotle => src/chiplotle}/tools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/geometrytools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/geometrytools/get_line_intersection.py (100%) rename {chiplotle => src/chiplotle}/tools/geometrytools/get_shape_intersections.py (100%) rename {chiplotle => src/chiplotle}/tools/geometrytools/scale.py (100%) rename {chiplotle => src/chiplotle}/tools/geometrytools/split_coordinatearray_proportionally.py (100%) rename {chiplotle => src/chiplotle}/tools/geometrytools/split_vector_equidistantly.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/convert_coordinates_to_hpgl_absolute_path.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/convert_relatives_to_absolutes.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/get_all_coordinates.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/get_bounding_box.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/get_centroid.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/inflate_hpgl_string.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/is_primitive_absolute.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/parse_hpgl_string.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/pens_updown_to_papr.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/pr_to_pa.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/relativize.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/rotate_hpglprimitives.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/scale.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_convert_relatives_to_absolutes.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_get_all_coordinates.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_get_bounding_box.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_get_centroid.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_inflate_hpgl_string.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_parse_hpgl_string.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_pens_updown_to_papr.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_pr_to_pa.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_relativize.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_rotate_hpglprimitives.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_scale.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/test/test_transpose.py (100%) rename {chiplotle => src/chiplotle}/tools/hpgltools/transpose.py (100%) rename {chiplotle => src/chiplotle}/tools/io/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/io/_open_file.py (100%) rename {chiplotle => src/chiplotle}/tools/io/export.py (100%) rename {chiplotle => src/chiplotle}/tools/io/import_hpgl_file.py (100%) rename {chiplotle => src/chiplotle}/tools/io/save_hpgl.py (100%) rename {chiplotle => src/chiplotle}/tools/io/test/hpgl_import_test_file.hpgl (100%) rename {chiplotle => src/chiplotle}/tools/io/test/test_export.py (100%) rename {chiplotle => src/chiplotle}/tools/io/test/test_import_hpgl_file.py (100%) rename {chiplotle => src/chiplotle}/tools/io/test/test_save_hpgl.py (100%) rename {chiplotle => src/chiplotle}/tools/io/view.py (100%) rename {chiplotle => src/chiplotle}/tools/iterabletools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/iterabletools/flat_list_to_dovetail_pairs.py (100%) rename {chiplotle => src/chiplotle}/tools/iterabletools/flat_list_to_pairs.py (100%) rename {chiplotle => src/chiplotle}/tools/iterabletools/flatten.py (100%) rename {chiplotle => src/chiplotle}/tools/iterabletools/is_flat_list.py (100%) rename {chiplotle => src/chiplotle}/tools/iterabletools/isiterable.py (100%) rename {chiplotle => src/chiplotle}/tools/iterabletools/ispair.py (100%) rename {chiplotle => src/chiplotle}/tools/logtools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/logtools/apply_logger.py (100%) rename {chiplotle => src/chiplotle}/tools/logtools/get_logger.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/bezier_interpolation.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/catmull_interpolation.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/cumsum.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/difference.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/factors.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/interpolate_cosine.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/interpolate_exponential.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/interpolate_linear.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/lcm.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/pascal_row.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/polar_to_xy.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/rotate_2d.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/rotate_3d.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/superformula.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/test/test_difference.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/test/test_mathtools_factors.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/test/test_polar_to_xy.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/test/test_rotate_2d.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/test/test_xy_to_polar.py (100%) rename {chiplotle => src/chiplotle}/tools/mathtools/xy_to_polar.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/cm_to_pu.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/in_to_pu.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/mm_to_pu.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/pu_to_cm.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/pu_to_in.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/pu_to_mm.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/test/test_cm_to_pu.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/test/test_in_to_pu.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/test/test_mm_to_pu.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/test/test_pu_to_cm.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/test/test_pu_to_in.py (100%) rename {chiplotle => src/chiplotle}/tools/measuretools/test/test_pu_to_mm.py (100%) rename {chiplotle => src/chiplotle}/tools/plottertools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/plottertools/_instantiate_plotter.py (100%) rename {chiplotle => src/chiplotle}/tools/plottertools/instantiate_plotter_from_id.py (100%) rename {chiplotle => src/chiplotle}/tools/plottertools/instantiate_plotters.py (100%) rename {chiplotle => src/chiplotle}/tools/plottertools/instantiate_virtual_plotter.py (100%) rename {chiplotle => src/chiplotle}/tools/plottertools/interactive_choose_plotter.py (100%) rename {chiplotle => src/chiplotle}/tools/plottertools/interactive_plot_layers.py (100%) rename {chiplotle => src/chiplotle}/tools/plottertools/search_and_instantiate_plotters.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/instantiate_serial_from_config_file.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/interactive_open_serial.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/scan_serial_ports.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/scan_serial_ports_from_list.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/scan_serial_ports_linux.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/scan_serial_ports_windows.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/sniff_ports_for_plotters.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/virtual_serial_port.py (100%) rename {chiplotle => src/chiplotle}/tools/serialtools/what_plotter_in_port.py (100%) rename {chiplotle => src/chiplotle}/tools/shapetools/__init__.py (100%) rename {chiplotle => src/chiplotle}/tools/shapetools/get_shapes_with_tag.py (100%) diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000..2454b98 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,9 @@ +[run] +branch = true +source = chiplotle +omit = */test*.py + +[paths] +source = + chiplotle + .tox/*/lib/python*/site-packages/chiplotle diff --git a/MANIFEST.in b/MANIFEST.in index e2a9555..8aa0ed7 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1 @@ -include INSTALL.rst -include README.md -include COPYING -include setup.py -global-include test*.py +include README.md INSTALL.rst COPYING diff --git a/Makefile b/Makefile index 81b5495..00af1ed 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ .PHONY: all docs test compile upload_to_pypi clean format -LIBRARY_DIR := chiplotle +LIBRARY_DIR := src SRC_FILES := $(shell find $(LIBRARY_DIR)) SRC_FILES += setup.py TEST_FILES := $(shell find $(LIBRARY_DIR) -iname test*.py) diff --git a/chiplotle/documentation/downloads/SerialPlotterCable_Chiplotle.pdf b/chiplotle/documentation/downloads/SerialPlotterCable_Chiplotle.pdf deleted file mode 100644 index bd480fb171eaf6b0e7a59982ee5f64d9cac55772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2751918 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�{+F0NUihCoL(_= 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 z z;gkft-?M7CV(yi$JFgklw^eP@subHOucK?P^Q`IS5#oBTwya$7HE6mA8M8X;e>ujY zh3l+=)3^^%l+>@dVt&j(cFl5vzeb zNz-pl8FD5|2Mj44$Z+$^WxaJE(A0dLrUDz%0JFyoUf#_l{HPxd`2Fp+QF|Awbn1;J z<;jTv^*9w(7Ta z^wkRo&_vlr)QLO~t<*aY_2W$KBPx$|OgpOZNKJFf))*$dhcw}xXa^Nkl*RvJT8A_^ z6opqu{I{MoKJ^BTO&FnXO>SY}b?V2NQjOx?JtaE{ zuc6LKyghdt$2(?$e{UKp_oz$Fz;#o?DdcBR+t9@^B>=Hxta%(u4s^|!khwxfJN&JZ z{&E}HnYVU6--Zx5yp0g|eEc>575>)ni&Xi`n+S~)xe=2kLYzldjyB+F)$|lr4)&&t z>aQ~8UkW>!6A0{w(EBPeym_3Sug4fKh$7<>JbyN`{MHOJ7JC1V@m{oa*m!Y!tpTt* z+jQ($3iV(frj+ZvP&_qq~h6g-?uuP{_9s*)UyM=;PvL2 ztPb@8#x(y#;>mJBleiZDQ*J^awKQobIa6hR{(`6-CCU9s z-ux}*p`i`}Ue_MbI=B1d_0J&K#cYieo^Pmet>9fPP6o&nQZHo}_mr!@**`GmK z?xo4wN7R99-J>vOVA)Hd7MyL%RQ`G10~!P|*M>o`e2+qwR}{kJKg0f=IuN92$K$Ek z%UUj;1`n3Nere<@9nnH3%LAK8HObg@k24Z1n;X-3Ql}Qxu1pICP^+~w-}7qJ{X~eP z-_M*JcXCLbZ;6XYq^u|xzvhm^x-aH%>U>hIgU5-^490U+^Z;KwYU8n{f0WTL_HX^} zpZELIkn=pU4a!l@<_G%9uO-p;ZoAq61Aa)J9fU5c$~!ZGE^PMu9m8eQxS*8m4{ z3hDg@t6gA9oYl>Vq_FDw(J}Vo(szADrvGz2tOG9{`#>`W4JkPqbHP+Y>YS`nu-v&S zE253Fz3W(Awtxs89j7I|!6`67oipWjLFx?^Qz>whX#na0_fq;q>k5aWc{*a4;%wsX zE3^U)1f#CzajR9s#?b3^>*W--uP2|OA0NDuBqw2nS|MMvI)YWC0|Q%W0Iqjwe@HcD zQRqJg+rj2)+-d=Sv=!uOB{&RqS9QmVyURrrhVOycCpyt1?%R=!#0 zKj=-Y2!+KpNIsbJ_fPiY@oM9e@==i9R`{0N8om}PQAf6QwNo8$q^#&ynEuDla54Q6 zlI_+R(mVF|#g8EkHdNH=9Uz+4?zS3@Dz+~>zAb^l?s45F`7=(n za?#1|nsCtcfR>}H0>QAZuchh%Hv16)Z-g2U6%iqT%Dg@>77Hw{O5W8oE7C8 zSE6(7eWq@2MYC_%{J=+vqR7^FLVb>173cUPTl}sFg46}++5d^f>qj+%jE{aP&n~(q zywkNsj_O8dC+bh0oeh>X`HOuOKj1%xPSx`|#ORv90dpq>w@h zSi^nT83}}DP^n!%^ulU=K^{3QrI*|3@^C~Qm+#(l%uJ?s)N2G7eB~7KBD%!Wul1Sp zL~8`-ak9nHQ)fhA(6Zh`vMy6e zz_&5YD%qc($kk)}MyUQ`MVy@`mkV0$jKXUo;S5khWuT03Jmity`) zSBZ~mbhum)7BL1UtQXUqwX0F!r-!s?QH2^nr`jiKVfy}1c*ij|;-A|fpgoJ+iHKH03_&h5MMkG_izJ8|i;v=4>H>*PciB8JFF zk~lCq`L%_J?kG5`H>#gt8>a+5HqB}~^0K65XDDtRZg-?oXL7~Y{e^$eLuaXzVa_Gr zqlzN$-lMB5vAx$RTK(lY_If@3Mpro<&>lyhrMip=wC_ZUGSoO5XqIe$rn3#OeQ;ABSed{0jvDyO_bu(Sqx@mBx z?Vxg=`Kp}W>|u+SYg|Nmmx_8DuwT=r79fscbzWzL@?CB3>Y~|Zyi#SrK!3NSGdL=ORkKki}68V!0oyFuE(T?;0c$pZhY{n zG2xUEQ!E>w-J~A?VA|>k-ZsiW3c!()`Z{DrgS-d$&o^;|vwe(?3Sa4;?cnR5QgE*9 z+cVEWzdTRfN_)LCwj1`ikCbdF;S^11QiW+von(>DP=cmqY#$RjgMm>=0WFa6isq0r z>EQTA*RjVYX*mxG+c#MAW1-%N4Z(7C*ukEA-YlgHzK7!C331kQqe1TlV>r3PrDLG_ z^j_@0kSMKCgpQ|B15c%*8T3G6KhE5A9r}x8Hf4-XCeknA>&31 z(iQlPby)@6#a^WA4pM7ULGxNvkCf{5#-puD8;5mKMk$ANSFhbN#U+*ncSc)g(R=C+ z>9-|a&3JD`&NRNYke2(PNzTf)k^#DBZ)haQ(XD$joM0s!aX1LDsByFsx30fZAsdc zVX)s{kHP8JABOW%*~?3L?yHmbUaOksBPyJG7qRkH4{R5E`T=xKilUG`wm@Bpw*Vy= z08_oG@!Z1XWlV?IbV~n^y5k>6*@aDmv67eW+lGR|e^gB*9M&i)LYAV0_fVDd>9bQJ zE#hYa^Iwv<|05b+JA%h_1qUDsMTE!3YDK@b1DIMtWJ?MjH8aQtK8{YBS`8t`?ZV4nu;-e`Z88Ubr%Qdtm`kx=Cwxhu=k?3@v-zTp*j7iKX>qQ_7OG~O zx-O6nS^aRS=Xpg3wNlwmSjl@ekn_--s4a4j*y%R1*NN4}T$0q#wcwtDc-hCc{d+FX z;c>N>;1(op*+b?f%L&aFD_GMZhez?|tFHH*tyE6gRW+YrJv;zyhlU607gjt)?_NDy zDO9PP_xS{NuDfxJJ^dABAQ+-}*ami(d*F2k&Xcx-R-I-aud|9H z_DgH79`C;F$wO=x^Aigsc8EM$roI;jp)io})fxClWv5DA%%X;H{nK1o*8O+|(ri-! z&!bhAL-4oqChKqko@j`OAk!z}lNR{bd!4{+oOM?L*yG9jdR6YAw_XTmk2Fea*H!fZ z6Q%KSDjFb&gP*-G0n^vM z(Xy0h4^psoA-FN|Ml1YXZH-bsDeM@_p|oitOJCc7*lwq#xWT!*icbabY0lYDi*$0< z*2@^N{$5RywI(uuaPY`-vxwSn0zSGeSQFX?AI%t$gKB#=%cI2@M4Z0kqJPgsqT^-`I8gm95U$n&ErmU~&#mQso4>7i zE4A@vQSw&WpY0~{&4IIRqJdoX$c2>%a^12t@F!7t1yrYZ4j#O+*fv}a4XY>wjPZXH zH$VNf&N|*yJaj{GIdt(@23Ut_^>%6WXq&o17>H#JLcOdYgyVfz^Ru#t?{+*$4c}a$ z90kb89_j~QmDeG7>g-(bk{v@OLZ3&FVQoLSg@;O~auXDPc#4Nr$|J|b(QP67mCT36 zVuH#|=1okIYYX`a@D2U5kfO*9ujkwSDk=&in8>BX{y&XnH{;gLb0Hu{BtE$-PUQFlMfr7?~die*i5x(;8 zFC$5&`|c6p_aavVov(dV${|G0uIvRgHNW<;VRC4C)hTyC^_@?EM8xPyHgH;%%Qwo_ z!bq0zPKb;1T-07ujY_PJHwV491ZpM6wKxev%F;m0un|GdD1DSGD}k0hds!o_6sIb4 z@h)8yUbc&{{k7Z~&ubq70+2Xuf+XzOVAlfqTkc@IP65ASV)K`eWia4J>BxyGoFXZy zsZLt`M4*|`a$_g05o|#-McVy~#oyYb zuB$ZWEZ3<9<&ShPKarVkp1-k+6P#v?HSS*V4WO4*9_YS;@$+FBs>wG#*&XWFe!rsa z{s;$Tt%t0pR9v31e-Ui+!0)+=9L~WI#l!^Kb^oq}{8$*M>S!zyDrvnq2X8DawA;S= zb8n`H=5t5ENThqtbdgu>=#f$Ro;p!b%|)1FlH46tOmK{@x;ioUQo66=ZMh4tRELNV z7;MSygux!Ks}gGDF#&bIy|qbe{sA}$ExjWq`wimiR{k_*&pyx$pRD;XLVyus+@BVA z(Wo?5Ab2To#~lb+B2ANF-nZN|ooV)RgkqJasGdjx`*YQ9XMAKq15KqTa7TGnOmQ7| zN5ImiJ&pNO@<#g4?t~7g=26f!&+dNtb8@0*bn>FEa@`GqwXcWzkWB|8-9(8AP|Pm& zIWFg-UZ6gc5pq)Hmb($(AV2HArNNx-dvF@H2%sAL;gw3%(pOfyQ%$Qti15LV!*_V0 zwCcy6Q4_MgLA<5ybGfyjjb9Kj*_Pm%Qs-Bv{(MDQ726&Wv~Wg-*$zeT3M)87C?r%a zeGDUKYrXw_-xvs2&j+%`&Ms#=Qa`Z^l{-)OAxV{!$`xSaF#v$HN(tx*-HUvY>)rm| z)Csoj`9`W+MuFSvxg&5EQ9eL z8Am3S{^ATsL0`RUd?+icS8hmj7<8&hj(g4(tDGkP=Aox^MS|9h#|x9gHyhk%3Zr^{ zjL$>^vpkXTy7c9GwU+chOBL0ua*R?UKVK3Nl|i)LT>04pY?ht0uZvA`yH@(n=E;V> z(#+Xf6Zi;22K=zHD>zLg@JuBenfFj$vJE)H{%kJ70#H}Tx96(VPo?oBG7SY4Y#oy_ z5CKCz$KF5q=@n?2V;|@wnl--7dkCYAPQ7!n5~k^V^|*j+=+9|3j4t40SrMroi`CT{ zVP+(@Ie@#%n*v(I*dNo!*C<@P%Su$0z?DUWYRNcSk-pcJ{0ew@_aBDe_}Q)yryU*7 zZVYt|&4$(LQ1Hwvy34tz;0+sX8a1n5oumRDmSjUrQgMuq*+rUCX>I7e#(%c%qu^=G zd1rgof?T4OB4k}JyC{CNU#L&Z=G#n+w|I?7)sT+JlvHpp5s@yq>Vd=X+R|w%=VTlI zAqirvM1ZNTyTaiyy+6+}crdRgMhEymo=j}2>EN>qg?8^<+H9&W9BNp&<)NV`4ef6~ zctyEheb!FkF5jQ0Q$jL+=fEu0L@ox|_K4XCw2}|!aX*J}Tz4`3P^JknMhsI+axbq@ z;L4JJQ)jul6vS3x#yA5 z*b$ked|e>GxqrP-1G?11=&80cN5mle|6pI7xe5d-t(SKw51MVLy0%lY5B}iIWueVM z!cuu=L#CNnK0MhqULL^Yjp0xP@yIPt^*B|FQQ#MD7ClO1Y>YcH`8tAe5*Oi)+{I;~ zPd_Vxul9*=Ri2fdO0iZ^Ql`EGkj>0Y*2x6m=+mdM^drgeJ!D|s=RHJ>rRQngOl~$d zM=VM+DA?l_9*JeAWryOEDx-V6UKqPfG2lZ;9qUt@PM+GS*0EjgCMa1T&2Jy&Gz%`ou$r!#4(Z<&WZ2Y? zDoz>1W&d$`&@=I7`k_pO53uUV3WJ{f%_FdO$k~Pd8$$CpZJEg8F8LI{^TyW&o6bJc)`1_^CI$PMt6pX0M>`@ll5w6U z$ttRf%SHO~sfkCZz1Xersxf8i_pOwU7*CJ`s_?o18=Q-T{h()|+)emLy6eTC%{i-8 zF?WYvML0M#UMwx;TRHhc7d6rVy9i(S?ETDkfoc3|V40#e|8UAku41m|;(0#;w|t}@ zZFy@G^2s6Ok%$6YGw7jk#i&dLx>X{yTt za0&Fxus(e%dVg4RbGP^3CtiAXS|*t#ST{`7~-4|K~5eJ_)E$ z5q|&+FEVqW`014xU+zbd{vUxX>jeCt_x-=S;zp*pCvOg8gTUn~NHj1lqg%aVKHyEv zM!aH1YZ<&1o6C3b3C_Afi9!moH;Zjn>Z=?8K~f-gqv;k!22-{D$5 z2aeXy?{-PmgA5%sw-EdP<-VdHy%8}=|I3y+Z#Ox*0NO4k$vr8|4IiM&^p-51;`;BI zRn^EqS31?&v)&i{pV#28S67Xyyjtqp9GHtu?HJ_${Gd?|2)q-BGx#4M23_bu`(@93 zq@#Q_mGn6Y))5NNk^@;&K z@R&yG#Fa6$#EF>~J+=t`7W5yVpn>wk=&is112~fxyUKmL6fSa@=yb1Hy_dgMe?uLc zc`Z9<7~1yLeRm-LUbRjhQBsf|UX^lT`S8?m&n#Z3mx7 z!f+H(`O_p-jjz6*o@0-gJ7&GcL~YZn#w^4FMv35k_dS>KfjW)fGBt>52n1A1JR{)W z__{tBa~djtrBN7*#~e=qiYgq?%aqEEvWo+5nA_+dcc$FjffAtS0yUfTrpomOAGfP3 z6FqgEC3J{k-m*GGI2YG6|hr_0}7J2$@tU>qhrA)oh}XZVu6nCap!=$1lhTDOO-T2D zDn7H31Bme*e}?`R{%p8-&<*sj6lD8ln)`!6`|fAWSC76_J{=5ud@aATTK3y^^tF5X z<=VUffr*0Q!|W(6d*t@w7j|%2j)EPJ8|5rI6l`erNoxM-wt0?{1kOoVH zZjKKq#sXd_aCmF-0sqpHUK!qAKh$a}eZJy}?$om=JEfdr36r=(vnS}EhQGi30Y`^Y ze#9%i9kkI&Y)Pj$^G-B{5Fea8^)0xa=d?@VkJ^8p4RLdG?bNX>0Ldw90l4(0e{hXT_?sPPywR(oAH7n&99UBB``| zZcr?5sK$3q!tb3 z_V90K(9WDC+wyc&NKgn`=3C`}I1-C5O;A}^xkxqbRTaRfWJrf^&xlGm>JfS7qO8GZ zpNB7XELQ!ZVv_>^pWhd7Ef!$GMA(KhAE-Ur`mp#GKB;rhnH6C! zyL=^bOhIwC1P*Jd&nZtT+I|bNj=HMj-o$s+hH0>~m?ZNGq0kpn=DXHA%G=I-S&w(` z8{L)p)Or?{HsC^FIs)ea0!# z1akCjemaKgt9EOw)X@3^p-Wlgd4AWv%67&o?vW9tp%O_!BlznD>U=_o(xC^+Yzg<3 z8yB_0jf}$Qw=tDb7uGIzpp7yv=>RHPK7DHI8M?ED7vQV9g0~X`;0N$jWJR$2;6u_r zLg1=ZrdSb0QpT#o>}OcE31t)g^46ToWVE(F3}N3ltT~_23}@TOrKov*U|BzV_@QbW zXgx=)AE-QcV3hi~9N5Jc@s4u9P*9w5#WB z)Hwz11{U4&2^!PM`Tb98(;Wu)!au6ri0aXDrAh!Y#m>oB&?RZ$La5y zaVFCPX7aS7UP}NVl4#Sy@|!V(f{%aSzMe=$nI~&p)qKy0noG=lIUIPQp%3R=AGMBW zT#xO`K;nJ;Z=LA(#So3vSGYN~CKPpLKl2fPuy`w#Xgel6F$#S|Za^DI;6SS8mGxX7 zC2>3IsGJw0=+9XE``bm_wrppD!YZA`onz zL_p~4A7df_YhIOpW{i5nj+9vXoh8apl`*(#zAWrgxmVmHIV$ZY4eS@2#xy{Jpf8_J zS*m1Bl)ozD=&QBLU}LqV4Op*&^+D>_Gck2=42I%MCc*UAD_GCIM-qKi7}_0On4J31 zb#EsbiBxrq0SnKQt^ zl}ReC*CkcIZmm=6t9ok@^=QyEyW^3}@upi*LU$2nwr^6pHKVbcm5E`y(uTKk&8vcj z2K}tV&3Mx@vVxN9vj0}SGU&D81)Wx**~6J^a?wjdD&viKk6@MN;Vi=SHh8uUX_MP} z))9~`6#Q`@Nog4WiaQ#6rIqQ26vEl7O@}rsTFG1$qV%zj~`>Z{&o5! z_>PhBNF94;L+4054^sTbnY!-0 zM6@i@!dj~4o8A|Hf9iCB1)#ww#*gfLS(ya5t_$$Se-nDxl^RI_tqC)N@X z29!m80ORw#dT|--AP66En!HKVxr{V3Ar7ykpAs%>TfSsyAIIp~{f0Of$6Xx2_)~h4 zL23vd<8YabXl!29XpK|g9q*W``C<>q8k8X!l;*ROSrE4XBFj0o-}a)PYqH@y^AW#` z`S`i8Ei~Ze;pVJFhfY<7(Pa&^wP9G`*3v;Bo%wnhuDh<|HQS(6Ebc$IuAib(ton6o zeDyJjjW^g`&&opvUIyE%MjYK|OnRvG88U z)Io;ppDgTMeGLZVAOe5UA*n;oj;l(!H?ee9J^Yjfx}jki4jHMQY%O0`F?(N2LP^}c zBUsazT>3KyGvB&D9Ohu~RH%gtL$l3usWxb>UirK9y}NYiRwpTV)fd^Kd8u?s>%wI2 z``+XAT&TwDx2{Z;M#%J{oNXfiFP;Y=^a~-s*EZ?AX#>jenbTarzh3J*IuE0a4a-3LvhaynhX*F4Uy`w#(KPRU4c79Et z8?EylNMe*Yu`K&Jmk+)ewTx^idZ6=%p8Of$Ep2jZkog(c>GWmUvK#p#^Y2HIzkgQ@ z{~pG|_>@${#(T{+H-x-orf#3f<6=<l=Y>0del&FcJ`-u9|J|TmP+IeQTF~*G4#t0MM<$`l8vT2-T&|O3cJ|9Sca5 zIdSPzC)*2sfi&2%>ixLBN|dbJUv49Fim&f0?lXHe|ByxG8I>9Q7Cqw-1*i3N_JdaAABp^Xg>&-3uzIkFHa^3Lrw;cFUKPB?B|Kq6RDwTq$ zSGk`lA48GKB6;KG360Crgu*+ETVZ!-5~hp;Id|0-D&(?)?7N4`pIZ+#buuYZ;|Oc+ zbPW$)bKH^J*g8shQopV-PDJ{py(+dMLEmJ@EsfA7cB+OK)t3-)@c_qwS0X4U(} z-NTN$=nC5~t#kZ4akWVXp-awB8L3*?V8)-WY5xQCvEFqx#$bRbr;8jZgE0i*Ozi&1 z!7h!t5OraQ=hgj%?}Zq>k89{S)lc zGeYM-#KAz_5*-IwF#S@6R;!xzR^{6N07dYghIKgbB5vCK`SUhTZ>^RSCmA1=iawr- z(Z3uCrhog}+2a&bOV+Cv{k&9`0jyVpAMJkaUSs~c>E8* z0k01&ITn^3Nb1E(M;?#1+;0l1zglKD{U5+sztClX-c!5xz|kj__l_JhWuq?qp#FYD z)K-2_XKaj-GW>o(USYtfYu=OBd+C3C|6Q~Le`s#h%C&9Twfi0Wuz}qUO7}n=Eh}oG za#zQTzC?5GgRzXIX_-V-P!g(jGo0&!e5@MZqkbko-;Pn0(0n~aA+JMR-nqYujaBzx zdbz&(kzBg?Ze4%Cq@_``!pY{l;!VDbO>+Fq!8WP$n$7G^Qr|}%uB(cOLWswMO z7oM$U-#DB}|9(GVe5EKeO?^7x?>|{clN_%&-!A`spJLV&!lfX1!#eJ{TL!24=@YN} zyfW03%Cjq*zIpWA8G?0zY-W3F{Q2RnYwMkVTP+n8I%b*{L5t5R7-`wj zIZAS2|NYob!kX?QWdYc0*n}IythZWEg9RZzuYW#axMY#OZyjsBdCT!M?JS z8E^Ucwc0xas+rc-TRc9Oi(7obt_E|r{F*6nMRt`yer-3~Wygh#uRhVbp`@>?^|R)| z67r1JRBNP*Q&%MU#Vna7fXUzk`4LYITeZPFR>}S;_SM8B+rhoie^dmL2`G85i^0Cbd;p zj`s0$5X!FBjx}7S+yIF78_XV({+1;lmpWOBeHr zYX{)gYAe(v*q9PH=fVv-WQZ^V60qyJ$rc47Z6i$7kV>w;+Lw390en-++B54`P1J=* z;{yV)s6tbOWYVG~y`@pIP_5fvnIzG`+r6ELVG=M5li?C!^3F!#-|woBeT6lr%Z(ho zHABihHf>sjD;|&AZdE3JNu#XS_t`~e=O9-VXTR2)ppQh|NA?VTx7ZB0dd!jN&lCq; zlQFv{IVrOG{x|G5^cx4{LfWiRS-9F|mGp1RS^tM3Ro;T&P51wFD!H{YWd(=g*iicS zeQg+yrYbZ`hAAn?n+d{j{i=;wB^Q39Vh@jLf$HL+r6%Lo2CK9&K7kuFN9I=eh=;zb zPv}ZC|akR1fxt^3yaZ}m%VZ#C)B zeIsyO5;=m*9Phuigp|m>0UlE);=-A^R;Xx&vN&~0Uea?v_W>N6aV%|Ornl>4M0-R4 zjR0$gpTRQv5o&#b+L`HJYSo@1@{1QLFbSrf!|)lEB}FUo<`MI6eFp{#@5?+LuY08x zY71}p#N-gD3H{J3E$1F3LxtEd~7Qb)9~ zCpz2#M`-!}kxE`>_vx9LMV6XfhU#|}d(*ZF4p|5IHzRJ5+`!)0$~yoKLy?O;I4kXI zx|{7Wkg~C7-_nSh=Vq*aCAp)x!8`4=w`B@tEOmG!X_Wjocx#}I_G1n~yf^5DE|hC( zId8I8_|oJRr|E#z+W(a@O16*b%9IwF&xMxV{lYbzn1F}Dzp%=?&s`e6 zKRQUq0CZ|?|0L}D0#Tys? zn-!=h+WivBXYo*GKl=Q=?R*(7Ek6#wA z=vYILzplw#jDJBze_(&U>Y6%1^`PE+Duhj8q0ZA*=23e#2PIs4Vnp#8X}@eazNgSR ztljp|BxN~Ry61#;^SfWR&6dnrVbWa%2iz#CrwU$o_H4!6H!1$I`U(0_5zLYiqLeDN9E2cr@J>D`2rOHkQ; z8{mzRHrC9HESF+z6=;6Dpez#G zu)}1)j2_P~H+V3oZyIme9q%>C?14eMCv z6uc&63j#ODvf~RcnUc*I$o1r_fjt%jg*8x;E14sLS~7IM=tjf{pDPYC-6Ch}mJ}vY zSn^uep2dQq1;NWgT49T5bK8^1iV{ zUU$;>(M{=#`Fwg)VfgDMNMa_G{4*=XCbY{@epn(Wk_I$8;9UYl8@Y+FspE6MAmG)B zPbfWazL67CpDz$Gv;nM@-_ObTM>4_)SgvA0iK0`1u4+n*Xt-X587dpAEH{LVztoB1 zkHBHePHUtGEGLnAYRfrtFXN3yOSb#Bs}1fjXGBk*aYk0dDa6e(;DTe}9}30D@Z?El zaD~oxVTSix+Sw&brHxLJAcS5Q4UxLprg4Rm=c6+k)XR56n&ngPs6n{Zx-Hr0=qpk7 zR%W>VsyuTY5*ugWhmiDt1wRdib4pL}C)}34&+h-rPP_S=!Gn4ut^vUhxCFSOs-6jo z_{MTlAqcfFH*!hS!AFx$LVj9NnHiwkBN^wI@1pJ;EM`HJ4&CpHdOsCh;JwjQ(oLyL`N%TM@USr+;gB}q?pv`Q4D+pU!RfLm3p*uNtBR`o`*d{~#7uq(pAhD7SjYV12E8 z=0-#a+iB}H;$!Kl=9f~LwrMe@j&SjnSxt8M!@g6qdju-1FYqXkU6k) z2aA0VLR(rGzRFLHJP)Mcz8d7QZQ`rUf$;j#w=%q!VOqZ|9-1QY*_!CLxLDRFuM?bO z>RMHwJ}UYCJD@)uSZ>^oz=tK7mp6y?-jggViw)4*kF+|uzHE}tK} z#{`;iRqE?$N^k}H(pwF4i(Y?tZKg8ImS8U=uQQ_bccFZ5KDp9kFW%!1B9BKI$UoZJG zOew*-;j#AxYmye(@20{#j}5qK6M~epjPY2ht$QT{KZnO{+#H*@Yiml_&%Q%Wo-`4F zS8w$*yGrZaH4fD_DwM5pM-O93X$Cvc>Osf)ED`W!I_53cMhEf8^xjzdi1NJ^ zJJ}NJ0NGebx#I;XaZhJmidZfL`tGn6lKp9Llui(x z+2h`M4b0{=y@r{Vok;q88a7er6+WQ-5Y+ur1-Tga=oxwUj0=M@lMuiP%CF{KJK}>o zs{6};JDRo#RqnXtLtouxdM@GIQ>fH17Z{=R@&;|fBB3eX{^FvtsCT~np`sIKbNFM7 zYXbH|VLA736v(s?TwRVrPmY-%Dhm=^ptrRkRZ`;JNOM}b!}H6Uc&b+#5!DW9>gcQ@ znL(Sd{sweNGK!l3=1O`4{89ZC2a}PT)PLT(!a8%udSBv9oefOe6YVjr!>1y9>TF#xUKZBVx^>El>9RmNs231j8z*W@Q9EA~^Sr+A#WMH~FKY!84lh6ta) zG??p5%~#@%bsdHCAyrRZJ_^@sE_GwlhiB5u)OPj!!1Pw%{=2H8yAee;5^%|26%$M8 z8X#QbVYzUYlVhu>eq$_8ix5`9L272|c48 zbQxCy4xeclMseH~mRUfjDLb{ZvKZ(&gvfl|8X4y?0#?M=zFRL8uCNvycp_OLcSr%U zU^3U%ux&=+Y~@M)nlKZW%gWod7u4y$t@Re#HSxFe2~5F-i1n`5o!@=!Pt8sYU>8K3 z&VX#3g)KKt2RvE)XE%9wH7@uRQVv2V8iQ@Fyl09O4SnBq{@N}#e|J&c&$Tw5Y6bJv z>c7<>ZMkgYbkLDt45I0^PJBY2aALMf562iX91Pya^Y1FVjdhBl-K*W_a|z)U-u;x6 za0)`MuNPdYQzf`Zo0Lq?HNSx$D{qj^lXCHa*}U6YL1%#V_vZYv%^{CVx(Jphc5Ze*?fCqmFiE-tVe$kvrd8xk(T6CA${;ZMcfclqQ3!t zZH>f`-vCJV3mVW3y8Oif$D})p<`5$KS@At;Y~}@|F5lFr7W9v@o_O~Nz;(95=WvvZ z%hE_>2HDary*v6_-j&E_@G#WV2I&w(Q9=f1X$OKS0Zfd069A^~-YA-fg-onlbQxf_FoO@&q$Za;fuI%Sr{p!r;sRm`Bac;7YKR1ul$cEAqDN2z#Fya%8>;(0L(6ei3b9qn zrR_%;4x8h8;itzxpBm>4XX`DG;PuR_xCTT`10cgu?Ta26s*`N9^92Fr4CP+7{)HM~)CdO8m75Fdq?CM+{x6YmVkcqg-WoypG*z%1cgpq?)6_I4b zMrZB5XKI}+FJO#VR%O*gd8{D>-6O}x%j zyBf2bt&T4N?!2`-w_?~rZO}wsN*xNUnJs51cs}19($wK0+(Yx3Z#&CB)0_D$0o$fM zGxd=3{>HgARoDLjCuJreXf`dTkRn<+dtxv-t*d=018?H9*|U;vetudiPnmS2J#}P@ zLS64OGz5+;eEN44)XuIv%`EQ88_=fkK}?LV>Zk%FD*)+v)p_;=Ye-+Ro@3V28JAcT znv;%|DaF$w<8K(qW@HWV&|#xRR3zL(uhQ3pYk}B*52yeD5l}g4`syt7sP6t@fk~p=-QC| z#40<9pBhqic*K-uA!2Cz>A~#Z{NS_&>l0 zFOP3WCCq=0hSHz828!FLR}=o{bS8Oax#Uf)0K9~dR}k( zf^+FUr6YE6?3d`1ERei2Q%lSOX?snE`Ib9PU7B=YOS)mFOx;X+1o} zL#y}>2lBNt*8d84El&Qc<7>MoCnmrhC)xRyKfu^^m``wT!@3K@N;wN?g$reAj~bZZ zpR_Exxp8el1Wyf30|_YH%)4iP9W{M?TiQtk!gFqg|Kh)wtSAw}SwnEVZy%eP@X7% zzt`4sH<#VE8Fpcf4AGYB9(|e~CpZW`ZJVw9Dxv8e4=-v-1A{}fr274h?(opJOEdZ( zahs1voJB(T8kp|!ElXd2A8`1CLwB!gh|1^t3`ML_M$GD|wPQ}k0fH6_M+LDer+;a< z_Cnq~DTlh-fRG)^BmEnRfgXuq`u|!;>KjAZ7_JfC4NV!hBx7Wl%aY;#P=ZJ5?@c4M zHI9*Mp8)lSLD1X_*DEW`XuiKE_U>PX$ZlM+lNxk!@5ga`3mGDUG zB2vtC%lK_ai5NGNZ;t0A!;50&=T7hykc}N$$KoysXq~n%&(Y--$L`_*BukM*3ow;4 zC*d38&My`RmG*KdL;V_zd)IdB;(0VuLG{z18SBv6bC-_`(^Yb%1`kkG`@w5muTy`R zgWa0&;;ypA>BFXH57c*INC;rP4m2QG{$QR^s|4*p;W!{T*H-hQP<LXdNK5rn4 z_kok=+~j}=*o#J);K^oCXk+)M44rF!ym@*5FNto=ly?ddp6=P0op4SHIURr6hhcZq zAio-;p%%ZSNWC|gq=)%HxBcmJZqcNEn>w(pNNVb*>bqPv3!8N{)P{4$=-J@8Ghcer z3pPFW9Iw4)AR|$PfaL^5Gu8dD%&_mmM29qd5otf0bi;7$O1J(9Yc9$b@7KPbQ*T&2 zWFFZR;wfa< zKornU=RJ_hBu~8mD4ir0fn<*N^8Ck@q#eVw?;%Hgc8kt(b<3BnKCI3hrgngy=I5Gx zVl#(4SgoDVf@qzUFQ<9o9 z?FArn>omiPi=ON!#KsQQS)6bzR%^V#`q5>~GcI z>Y6llI)AMf2{rV>B{pVWH5KZQEsoK5ub1Robc=EH8C{S}iyPoE6lrez&3I#l-)v@( zwrVcG;8dftpQil;`-!{9Fv4#!_G@T!Oid)rE#Ok=&+{ITz>-|%ldonU_sHU^z5`mB7gUiX>0X3G1~`RWPmyspH*N==L_=5<2ReLxhA z?cTYp3ACyH2L;=!=1LKN|0Sz>2BGZVTc|B-m*xg|!Oq4Yg2d|O!T_@kIg6(9m2*G@ z$pvJ`$oJ=X$-I zyR#)%ODYQzQ%E&m;e0%Te!{;k(?6gN@DJK$+?3YA;B0gxnbIpWiVZm5}Gr z3M(8xorPi6ZW%Tz{tv)7S~F~!TC^&M?33iC|M7;?=tbuL01TS26qV5c{6F44pLe)s z%7wCw!DnB*0l)DDZ(#_zwV3lqZ{XAmP5hiuNb`sueA2yQ#K3SjJotCRoRPl>|87P^p3N@ z?|L#I*ljn5f-j^;x7U`>btVydnlr)OjTw?(+lwQ^we4XetMp1!An$s$3cp5&*Js0h zp6g|D`7i0|FRCF?sOU@pO!}@I$cA zWBW3oP;1-}WbaXGKJH=la}C=ZCq37CQQ>u(eMGGxGgV=m#?rmK9(C_G?3$UW?de|KD zQvG+s>DEvr8HGY14IGsz^##zbR%i0^=P=^ap#0a8C^{b}X9=m*((YbG8%}`S6RU1& zs{RH(uSH#nR#}Oa>3P&uICn$%x2yXi-=kpTrzDp>JJa#DWKhU2+t~cVwsP^1M`2#^ zg;FcnUg^>a%HpCzmH7;FjwkB)t;(M8miylCB3Wjf@?a5(S4)Ig9p?pQ;Amg~lbn8C z4)WFbdv@m=mfd7Jg|e;%QI$8h zrgKMvVu&pN%Ech^C#fX05Or6)yma;Af+-La-1v!&&<5h%8omScIJY!YTLcK2d22Z* zRd~StC~RIEP^Tt3aXd-GLYbe4JVwl3g|ez+eZz&?xF!cYiZX3_{CLt$01GRa^=?+x z$H85peSc2@^9n?68L`3!iJSW_@P$zkyA9ulS0*!fBd*McdHqxH-9x3$4GeOd<%+xM z2KrdQ4(QD-omm+fdO8UgyFF|4I%YSH9;;R#;s3l?KBEcQ16C?N51XLC-V$!ogV!ABq}Y!G6T zNuLdJRh4@VhdmpInJi31J4^kRpbL(uS4aRr6_BtopBg^8=@!l?=pW3DO|P~@d+NLv z5IVTB!wXxxFc=Nc?W0Yn1XNqyd1*NY10(GrT)e&ddKN848d*nqB)LN2SFm9kr5E0D zeE_E2LKYO3mDQi=^sxvY>;?)xspKg5SM{3>Xf}>l?1A~^f^6e(uj-+${=@a6mX_)2 zb&tHEcETyuS%!AjlOtZ?Jcga$l|7X$QzhKIZJu7d^*|*h`!2Cpw+EVjvK@DdmS%kV zAE49j!0AiN@)yX)d@;`4{f-E=Mbsz^sf1PR`l#GOQ|QZ22jOj)ak?w?TJh^@ZF{!i z&$M)-+12e&LttRkfL(&_4V07KQ2MOeKkg)0j>+@jau-VRDTz@Jks|iyO;oP*aJ|L^ z?+$(jXVM8P0v&0cN!P-)&8;u1q|RE?>yYwMrSBexl4KxUwNFL61cJ1Dd-z&neXEGg zb@^SA1j7?!&ww6XvH9W$;6XJZeT2k6>URw!c(`4?ncgAsWd&sq=2I0lZG-gcP1cbn@(6GsOVaBsa9lBNIE^AU$AL)v)Gw!@=!{L=7#^h#(pf9Ve~VKg})e zYec<}?h^bhukG&D#n2GtGMCgH9Av*vG$T3z&p+xLAX)clf;QRbtKL}dnz%&S-OR!A z2y|+u+kPWAwYs?X`cz2~TKav$YD4US=?Ox z6Jm&B!sq!alcXWV(G&Q2aISg)kM->NB%%%lcEp^1R#wn9?5C?y-!}luYtFb6W^Rvd zV0P-IL}q)q6A=Nz1Ntb#s5tY@VM`$1xeqGzfIskfWf$6>q@>9)a$+WlcMaSwiB5us z6R6;|3XuYe*Lo7;k|Tl9znIPnY%LTFM6Md92JHTNKr`KVG=Y~5Y(L|0VvrO3rOzm| z^f=rVd=Ta}n!$!p(rSX4Sl(akL!Z`ad!v?9lG0JIM`UY<7U<&vAb-F9FYYjG*@v>w zsj*<4QSSZQjv`a=^M7wR#7~UTokdE{^a`!0r1T=41tU7_&yd(dJ>J6y(m_AU)GBFO z&myYE#~Kj1*GN+uK1pr~X8B>` zu4V2z5X1nH-dPN0Vg|4(J(~%b>XkF|zo($*cv0aD=DOVBrNG&g31tB{9V1)`99Emz zN?kv@Ln_Z>4f{_l^3CY(z}3V*mZyU`EEu@=VgQMLhTV>f5ZGQ*-ze@Y^!Z!P7lW=hJZBlZGDqxt(cl{ znf`vsUW-C$YNkTz4>40wM}dc=$El!p4Ol9R7T8t=h-cVt$*!(6E=!BHK6Oo=ls~cg zjJHItR>;La?yEkqY(W*4<`B2j$u|Tdl{v2{@V;SyIlG19%q`4p+U%bfli)9gWgjb!4+Q}fFw3aArXH%od={M;xEo)`*e zm%)u}=ju`#ZWZ*%lDI(>xV;~7KZs79T!te+sixO+!Vy6!m*A8@4?u|07Voc59g>(& zSUq39=y?vwK;QgEiA8jaouVYGk90g}qGMt6$N*BUbTC7lz$nKv^(Yi^` zoe7uq0?%AL+*;j3cYCEJ1xhho(-RS%j!ip2mgmYuPnVh=C!Lc7IFmbwv(M$!R?PFR z1F*2IbY8Pu>)6hL)~(CtViQJ6bonMmv)CX@GtNGM<6g1O)`r~`<^V##cO{&n5(_mXO z!Ih4_O?!PR{QLJ9>3vB*(T(lM**#cIt&+c146CglpK5?Sp$Ktd+vJohwl}D)rF2h1 zehRiPqlOZXWDZDGP{HYc@f`b&g1s>!JWCtlA)_yRl}50KA|ij?2zd4GZ#fCGtR(A- zi3S7MgwTv9Ux+8)fjO2Q;9jD^eliyWrLmsUlOPRg50 z3;31_zmRI>O{~D*|JZb5b15jq-u+2T>H+u!Mn5Xj5)I_dZOHN&qJkKUK~{-=lYx$UqH>aVhX0FB>E z+oivgYUNu3IGH@%4iXN^GnxOx1fMHDjme0m$dZ+8;p`_%#cLl_rl zCWkbpT41kNr3X&qxsSCaT^M#6qR53|LFzUJ&jd^3Iz={j=G)Llh}-uV*}qwtA=^Hz z{XukQRzqVVtGClKBDPziM#7tro>%43@w!$RN}=e|i*GxAhrZBPtrolWDx-*YK@zx8 zZ>hl9sr26$oykb$X4{8REoO3z8*RoCyMFf{h|rAI(&^Cm8Yivvy_?w#t+4A`o8yp+ zAku8?K`+AiJi6SWGHW)%YBXdhb5TCG71?ywZpzB&9f|~1B!rG|GdmV6l=R5+C*R?f zEUCz_WYBKQmDGe41`VJrSBBDGkm#~J`qx{oPsY+5vqpIzz>`=5HTc&Z-IZoVB$~~Z znnu-rS<3wsX@8y-9CO3n^rq3^jh8ZzKts*vt#3k%AO}x+OkBccyZR(bQ~9d-*TR+g zr(RAWf^0oQl=$MRztDsa+NwSPUzQu4L6pnOf*D5uHjzOLBo(7!O|m$716LF^W;s77 z0XZF7ZPN@GmQ*%XB^_CCQpFXTIf}I3T5cZ3Yxeih6|a!QHqY^n@9GTO4aK%90SrH1 zDN`#_B}~mz;_+6OLU#B&j1BZ;!`Gd8 zWEWu|7KrFVO+%xyrrim!D729U)Hm-Z)gE3X*~45rSkHuSl|i)R;gh9=IE&;)#`!5q|*vF-Df|E}9oy~N*hKhQ4ReabcnOS5KES~w2y3}e{nW)evxAvua-DSlmy`8|s6X=(osDW+Q{GDX>( zmEh`OMG0}{wqK5=n!#eriE-99xiW2E6~x8aI0&5E@V>V?9_}u?vx1p-8jyT$Z8Pfe zF~;{a)_;lTE7GBi z(6A2tkS7FKfelMgsAJHr$6AKl9X7OXwJ~`bb3d1)qw&?7o0i9i)3S9C|9K@|&<=U- z$}j1NAGV+qiwmmMB|fgwz_2jiTL4Yfi0k#v2wU=?qtdu}*(MrBSuHfS-xPr=?IGi;73_B$BE`c5$12+FamTG9VHF8BGA8}JymX9o2tsm5*kP=oLTk7qiqd=r?`tg z-0dTPs1$5RygpE6Ffn0tyo9`qMkIF~QG*|xPiN3?nF(pn+MiV|1-|(3u4#0U>d5r# zqy?o%0oa^!vJmo(Hj?@u;GX36@D{}Zh)Uc89L@v|2$Ub|6Wc=IHxMAP%!CA|7#>jU)sd|!nTUr zFU5SPmo;iB$VzJYMep!sm7py|fX@E^C^`>!Hs7}oM{PA~wMM8_d#{RBYVQ%ds7+#2 zlGdh1Q9*32h?ohnN=s3rRP7oi_Ndxh?XPP4d-MJUd5-5eay<8aU7yc+>PG`vUFqL^ z2wZcNjrh}F^tW8y?52$)MyYtZY$c6tJSL?S_IW&+e7d``X>e88ibMzKo*l0V7nJkO z8d5(UV5_uj1K+f#e)lM|SeBjRicOQin#mU5i}~>U9r@G+f`YL6waNY7S-FGw&BKjMw*t)S{Rr1SA!*O=KA${Z(G&IlqljgKo{fgy=;$PY za$HT4VzR!%+3fE95q`Me{V9_%8H$45y=(2dPOaFY0fn?sQTWc3#l?R#Tsi0~ zuQ1@_$V>c`l@+$Za`0Hd=KS^W?w1 zz}|1KT}fkZ$#+k#-VVhx#Ej;at+GxAAf{l)bumk zL;&LVbj8VGV}GE~l}7Tu)j@SY@;B6iiG0O_#p zp!?|%(suM2u3X@B1Ef$Jz?N*fASx}DrecEF4u4%m;QIg{{ix~9O!Sr zd?!2~O1_=MhF^b*c_DMTq^5KI>*Mh!+a&R_N+L%}#R&5V&7#Jc=^LYvARc%GK-{zD z+vB&{_rQM)(D7!T?tj;XkF`jcmQokMpTT{3y64G~e(fiLU|lGa*z zWF!8uKfEkQe3Xq=DU;9nj=WsLf719qd<`8vnC6DqXJxuBRXsW+cQSCsDsy{S19tSq z^-jo3m@c1>!>|gv-c~L`$WQWP1)|PP7VYW?Gp?w(Hhprcj}|F5ET(eQ{jg6pLu+BV zN7>UUkIufuA=&nnd=kHX;`lNal7*m;4OJmjd&2R7PyT(?Enyu=%V$*~<<{v7+y*fUKUrkm7|)LA6^8yNo&hhz z5Ef=o?;eSqCC0q4-IKwu5|q^Mc%ZtIf}{$??-w=ZcX@^doj=XVXNvs>5))in`KaPq z9s$wM7ff|1mlI?-*l*7@P`h1I6SnZq@7$16R@=_-;6VF5-on4{6T4oJ|D8g+H-zws zXZIH%DnA)y17M5we#SCdbIrW(V>LZB2Of>(`q!`m2RaRRxN&wFW;yP1HK0p2V&jY9 zVcGxxgfWa#%nG=-dAc9yKXQuLXKn$odHy$Tc*q{BN7njh_w#(B5kEXyG(()r?C$4g zL2I22`c-0jwPP9Kr9!dZsO{atm~*Xv&Fp<2D3%)Jct@PzeGNGQ?SFC5jZ6n7Q-tv| zJ~|GQ_((flyKm->Gy}~JcVFu}WcHGLY;^y2(wW0~m;1VT|JXbVblw)E`tWZYm^Sa6 z)vcKa{7ymc13T8sT;KA)JvY?<_p_^*-lQjAyaYYHn4~OqgcaXERs#X{QDR5hY7nR9 zh5z{L7cY3*>I3ax>Rj6-KIGfLL=aCY#}cA~6gp`x6{lZ6dJNF4#JPWcC3d@KobAry zRX%qoL7btp_w5c3)fdZzV_PQE?PBBMOa&R~`Te1_au~nhc0hzLvXW#Ea-K9w&1PFA zWgx^$qAKq9H(aR_dIYkS-QX45vx;US4U5Wnm&R?*YJUmVCJa}7I_Rbzc0}ZmzRh}y z7?%_mEF=2FMFC$r396AyYc+cGeYEZg7x?5XZk|rR%g{MvJIT>*K3;K3?Uqo4X};aS z*%q4Tm&6nJ*U)zM{<$F$oR{l*h+Wg>gIpv*QY{JUad7m-RbO|k+g;!AoDldRQ+7zxT`3|ENlnaj;{swbkae1U>c;Cu!veCJ5>tl`8qE1H{E7U&b1<}MdEm1qsbOvaz)U}`KTPBta8eGD zS?Irc)uKZ#g07QXOa>b%)m{&O-H2E#@mq#<8gI{(3LmBOI5=G~7b})a#mbwh-VQAo zG>tY3ScGWDF3|{1A+1x9pzX9*5d{s7P04ZSg{gCRPbh(+*gUTVH*XO1%8g}iOy56b zWuE;W$B=rlv0ySmYFxF;JzBuW0b(4d4;oi%pIK6NdB`+Vr_CiJuFcyFSG*3Rm>G^w z+AdT*(zRTSyMiv%Q;DUXVzo&J&kUzsDYJ6aeqQVsf?Q-D0vmZlWH?QZ-x6pQ+E6beNNsS!i8~2b9wNX+>=cb&&+7y_PAPQ+7{mLFLnJ);54+r;VLw-4c3;B+vaBg_D*cA`M5N+^*o^_s zC~hIopxLWzrmvFVGD~vL2``=O+fk1c>&&3-G00}#)yFnuNS6|HX8M<$pao+|nt2iz zWY>C~0Ky+0gO%_&DgE5x2|>^RG*qQh7@=$Zgj&Ig{`7k2FXW%AT`_4K0_zuFFK55t zqm7%yq{N5yDDmHPfEyD?HqYm3@5%3op!MSnR}pqv*Y6|1m-If_p>sw{WtU4)<)~|X zp)(v*2Wa~P2}$ojL077K;r=?Z^YNNTMweAw<69a7oq?3=IFbBL(#5Anjxe{4Zx}No z-`%&BRwRl|`JLbTRQ{|33%jW58sxwbPb-{iJX4E}IeHT^>MW!AKYWtM%l(^G+F^Mj zQzEibqk)04v3KtP2ziPNjkPfO)QPi#=L1Q0f}aI7sw?tqX@S`qHIok-EL#VZieb1K zOjbq-PTX2eF#RZ4hMTdOO9t!`IFl>?xHND%?0*2dZ|zf2rRf#qeIDiFku^nD{bDcV zj22BkEBW|yDsQL#g?`Yt@dOgbZC>ctI!!!W-NJfbYwQVB&`-(;=VXBO6u+wurFqmA zz~L&RzKwkvLi^}uicF(j_|6+8NpRpQ#txE8STF9!dQ%WJ6d5?H-v~X|*b6&$G$fzx z^h~jU!Z1wEL{;fOUx#Un09`L&$^4ONCw56CZQR^^R~z<9+fhrhl_@>@%ebpEvVx}3zFU2{c&Z^c#)K>9cCs_lmPned+sOw-)7ZSBZgl=pa zp|7I81v9x`bV!J_z50dr3o(OZ?hvC14(ZK9Fa5+`sI^jMLfcaY)+lYDx;^f-FVf*P z*$zILOQIC{oaf_8!Fu_ zO-)c5b%8=_`y7L#8U2MX|LX`Sxv0A*?!={YTiC36`8w@!gSe_k11<-FFj4QD1)SKX zRI2_t*;FG~Z?gXYRo(WQY^>OIu5m%VJ`ljPutS&bf<(GhZD_FZ&F3|CpPuUigE(uU zntHG{q584eo{v8A(&U+(On~62HRo$%P!X3iS zrnj=zJVd_D)1@69|JXGK?9BlpCQAfCI}qIKfRK8~PeXZ)vCyYo;hEaagYtlm z-s5%P3@c=Lj;ZwGYfd&yK6MOrRA@N}q~W)Zky~$9M%}#+!@7! z?)}-B>THYPJHL#tsxE(-spQNG=dK6pnR%CdXWlWW69$n0F?tYcw+6EQ$O!9qY@M>S zz<*6^nx4Cso1+p*U(HLVzRR~AE@Www_B)Jkcby)KMUDqYqzm3kTSvoDG{RZQBgp*P zBPKZKgrb4QegV;AQINMyJ(8q%->i+cV_20PGjLO#VXN33-hqEGP?JB)6cY>zjvx+D zWEu#R1~9^0F;B9_;UOSP4Y77}1ruIIF|PnXD`?cTbi&_G=_!y)ZdA$O7@#p~^Z_(( zYzFredscF4ffJzQ%NL59!3^**_p5^Mu$V^@>y9KE7vluIxz#3L2~<#ciZm-?*V}GW zkQ(z91^{}pK1S{9#!*|Lq>2M@#9gd*+BOMO+5VFDkrPsc?2`?umy_)QI4R}aCa%6q{kgQ`b(=3PfU`={EFs;{mb1E=m=A7m0ia#QE4_QGT$`B zr4>hY3)OSLw7>LeYqMlb(fJ@XU*vR@Q0Hh4LZEccK#)+W)HB#0zCY?Kgz*$)JC-HK z5YH%6`vb(tKRZ1`hl92V1;ODOe)5>_k*L1uRyVlw$rM_1;sDlqIO^N<>YQNxG}pJz zI+Q(~?G4X0A>SEgH0mw%s)3-3xhT7wxSKY~vb}HB?zM4MU1rs9CR31&n0)^cch3{{ z5qn0ZzFxv!xXnB zHt}t2xX2!4#kx>aQ0VH-a@57>wkcKV!Zbl z*_gip+w?0eUVE}(qnx2DEdu;t3bi@Jag3aYSgvQ($qsgE3!dPHU}ptZkb^`s&B0S{ zWN^!?@^7G)A^Bk7u22nOlmA7Qan>$r! zOS_8h0L88}^uW;?oUzY^5(YHH*CSbOu;H3-_-~Snqv%p^l%w)&=~rTBE2UGP#XA~$ zo>!L}GPkIQ3?7Mxw-qInZu?ibesHfVG9U<)6dQI9%F$yB5oxnk(uHlY&aB0*#G7=I zY^Ek>2T%jg{vJPZYSY}7ej@MnQal`TCCkjK%HlsE9i_hgz;-NJ|7D)%c{!=+9Jeiv-$mjZva4}5gqj% z4oPtlOwT@i?JO)@sgKOY}&j*5P+9D%Dp>B_UUkHRn7$te8La{e(buRhksclI@9KZ>VXZxf6<3CfY zijU-YE0N{Osp{dre9_d#`D=N@UHIs}{_fzpt5JK@ZY%c(`zf95T|=K>g(VM6luF=_ z)bzPSq;xX;(_qMH#ANkqc=T9qO#}`C?R*U{Xlz}5zm^8%dwLpX8 zGj%+gYkDdvZ5L}L(efLzOst-JViHo6G6IqxJb_4kdZu9ujSpasdO>HJ|HebAUgv~; z3ott8fnKurcdf-TnvugrgwCu9Stdb=$wV7O>jBO0Df1h0Nalw|#SNhZ+l{wk{qhLY z8zT;meyEKzUil!kS0E=RVWs5k3C~~!>z(-lHq5n4=HYV}`mj;s823IK$566eI}bOT zKl`NaCG;3Z?<+Bh77|KBBkH+xW-`B$31Mvd_N!Pb{&tG3Abjh^8^2^YLEFx>#@Q|G zXy4q9B?*%3NM8dE$*^*Fl0ANe7%4Cj%&pm!F0F5qQTI5^DXyD5iST;lvmc!-$wK)< zwQ2*KyV?h*j$nIEG<$Q`DlMmvRu!9P8NC9bvI&+j%XDZH`l)Z?Hf855{0o7uyDXH9?@~G0n^kPr*+XF6yJlLCSBdiE*e1P7 z5m;4@`lbOj8>b03^?C@xjA;A&L(}BwFwK=jry!1h7hR=aABqV z4enU()oj)`_1zrrG&Q_^dXE3{t?5Ic63@u7x(zqsXD5T#;9-e{;s247 zE$)>gh)j!x)Wm7q1UgaazP7Ke#CM&uJhk4u65Ngs)N2ZEZVt)OwqxqjZ$ja z{{v8oeQzV@sIp3l$U=!0f0A|yGCnZgz(NYUo!sFDPH}}>0GS@IhwP*u?E4`FokLl?;rt}%sGCBDJxCOFT*8M!Uec7g|fyhF>G&-v^kGgBdO;TZ8Pwa+x z4xmfqhDyxoOf^3o5y9rx5=m*9UF+iD99|CD7oj+h@onGWUfZol_SD$=4^xM+juS@~5V`7#{U#X6Uz1d!`d;D3# z3e)9pk!mNw!g*WS%($MWr+R)su}x*L7A@m3!l+VJsDUs;J*F1Ph%m^}5Qnr>{TYzB z6HXv^XV7BckC}#<>wZ)t2$4i}db%B$skdo%DNTvN@(K?rkolkmxmaj*4u)8sg?62_ z68N&D?w%Idglz`4SO*Ql)lRGuFhni5AAHYRN-vZTBt39~dnnb;N1DZCll93!+3IPV z8v|wVX)SLgQ?X3nAp2EIEVoJ45Fdi*MQPljvH6#0r8wSq&v8IQ?Z<|kYj{n5;^+9? zi3qxW4Kdn2<-8+_LP1wz!`Eds-2{+9;o>9Awb$!v2u0J_!^>{QKj)jo_+{cDR1TOQpX^fks_Pfu$ z7bVw#>qEctsGng9 zG0#(HNxyQD=dt&PJG6b=zhIb*^JzD%L)y0ADcxp#`?owoa2D0>8E~hw|L<2f5s`hT zk6rvtA&bD2iyy_49h^r(_M0icF>B}+RS<9s10~Cj zp`Vt52dy4x0k+k*Iuf59H9TG#ZUe9|(%yGsELF`W&$d8}^7e?hpDD}>Op`NZuPGzu zR0jWuhaG*Jl-{vE2NdhpO&ZVEGh-sdp z%);US9l>Sq#O?RLr2D{>5yULJICP;x2#YA9z()i(wpg8_EYz>cZ#3s$Ka-+87et=< zzvRgu;c#43AuHynX(Ww@fPp>K6jY-+I9vI)|2LWYf44PgD4FXOIJ_MnNw+EZU!2cL ziQFA(%9J6({QA>ap4v;&=P18e>wZx~eZ zE2O^U`~6GWTZU7CIz2w?r#L0WgCXlDnd9C=G@AG_6JFU$>Y4h!>fN()L+M$+{{g(R zWAf;JRJ<>i)*4w<5>wXn>MsyhA%aR&CWUE)!Y9S z-pWJoFyz$gE5sU&GWo0d0+>wE{2eLDEBC>ZwNe{yUh>5O-^CpF6zgrxR9CZai;a7W zpzS{9@^PE*buye*9|@6N5KIgB@|<~NE^L?b;~|`l3uET$m5;Pd^T%Se($XSkMw^eA zU)%onMWdc1@Q+POXnyp=f1_$Cpk4Z$r~h5;<3y!W)2ZiPG{kd(%7!uG`{?k6_6UMb zEtDd@^4+$15l~GWA1p5c+n@*VxkZ8>_O-Hdo%~>jy|MIF5*X&Dm$Ne2#itX375aggW4-BeaWVLBnxD<2H0xURG_|y zxEfyUT57!V$~01{slo)&SrEpAXGkA_Z<*vRegIFZ=Kld2CzU829un8eBeke0avVen z#yj;PKDaIiPmW3xZw`tE>e;mEUg(B*$ofiFX)wS&Z3b1;%u=Wy+>)*}hb(#d+@qM& za*l%4F8#w1Z*rZ$ZsoU?P74z9wrWUPQ2>l>Oe6Qd;CFJHCa*Z=HM$aL{Y$t>87X{PhGt1LjrpfeS z2e<@_T24F}&L3~ply-xL3Ls|sf0A{cn0dw_dmrkexG*j6eW^@uxLn8I*86kQAuPbi z5tD!6Yjp;2l-3fN(yRKn#2oLA1TA%<-|(_nZ-NPS+>)0`@fTERpQKoI(jT{KasNvQ zg^lW4a8?Ezbn1E&#P&3tira;3#1R%cr`tRyGxbu9Ed*I|oCwsN?}A)$wYxsTN{nTo zica2441iLdg0~I<(D3OWX0%J5d^k}i=NKjNb>PInBr4E2g1sWq+z2=wF4fC~^CQbd z7=nv)eP^oWiEITKmrslF2%96tDz8oADlb4|znqTRgL|c1wh~0HWQMnaI$~b^)?VCq zoQ=7k(q_BxV`Zp*_b~Ter+xmSSb~+Ph|lOxSCYFIhQI|_%Nnm&u@^i@6*jaR=!^*X z=*Y2{%;htM;0xCbo3VHnlIZG_gpc+I)1Rg@ItGl2J3>{1ay2ESz|S=C!b zSVbtF-dJ7q@PMlR5w&kdNl?`S_`pJ8$0d&9uu2tz7QSfEhcY$Efpctzgw9N*_4NX} z*b$m~6OBRzoK-?^f(NdZxIu#NjQyh*n!8H(ly#8l8JwjA2beXks#cM=pwf-&)`pu+ z<5!cYj+xXz`a+>3`6YnSW&QCNC!<8qf{D8@4D)2;A2pnbdf8)~WvD=>pjoru<6kt3 zsPKBAt-0?Y+`i`7^R_@5!wjCiVQET`B@CrtuFkcPsAk|fjHw?!OxqyxFhvv;D&6)4 zz2h>xU}a7T@bbuEd&M%(`3GVkQ1q@XsM}t!Ufi&U0`VXEu`D%Jaks0#w81wn2GYt8 z+$VUaB64D-SzK&SA}&Zi9RG1uzLNi@uR9;ePwdmGWo}ZgGg&1!Z9ngR?_*OeHRjta3k$asBU@EML={I>Img@z_9r7Z0Yy3 zJ~dVIyE3}4+HL0qti<<{rDplu00U}E@lbNkV@vu{s>&FxYD_bGlEBaRBMC$naUbV1 zbmGtg?GT9}qkq#NYL~y!WE6*jwEp7*u+>ezeaf-#0B`EAHMx2th|}Hp)v9>74&)W* z^r1fb<&S5Xvh=Ekm%Z&~wXB`{ZIjh?HdAKvb#pG*QY=|~P8f&i(`jldI0UmtTh#BQ z-1xe^TQA)M-aykyv+Oc2GGt~{CHkpZ(^>~Y*ET)Sy_doV{htV4?2aN!G3ewA|V`j3_Yro<6t>*4KVHy@5dMa6Yk?)&HhaQcye;0iU zRvg*o8&j~Rja7Pknh7TZo#U@7nnibBKLb0s(32w5la;8|;@ph>MldWOI|iFq8Z_E( zVZ0NxgT;4P^OV&J=JZ)5qChpwT@n&cwd-!j{fhCl*8Oj2)Jmo`!zrQ>uzGv$;j|3s_9q_7*hRM2ZIEQUR33;OLdfU zP%Dw3(xlF4^_!7M>u}84n}76QojGtj;{ZhDWqC3r&%`dsDb&T~CJBU?l`3VmpVF_}Z>X z2B{|V{`yUIm@zZ$7~B1zi-PSdYBqv0h$`6~{gQ9stWs6bt6_D4?tj*Sm4*D7F?=H;BdF$=-*2`1Im^OmmAT@~X?0E-0>yc+OOM zyHy;4LX4{slZ(4ZM(6nG1Z-p4#JTrs*Onje|%s7fP0p)?g*kVoW4XMHj-UOplZin8|VmZUk$Hi9`DW zJkq84IB%tY-8iv5ZelCo$hC<|z`Ur>{T3Uz)Nv{N)`gb4km7m8?o%5zOyIlZkh^kO zBI+31?u3!?q|@Bi0$jweXtl!HSxIbP{~6wZ`CYeOMyJSQq3%4PRd?yIQuMOc3+)f&30 zxRLZe)i*kV!2Nv$$Ay1o2KV8E!p1;K*3YP@9`u5!)8r`ZD+^Ud7+QJTDrwkN>F-NU=1_#4cX9i9$(6MY z?IGed2rZgG80Qb}zrlKu)R$4Z@!!HO@SP>k1+-{*#B-Q5>#3ibOH4?0$mhiRq`wb; zq%3YbAw?p4*xyPz=msKrekX+bVyhKI`5h8|u&D(uaKirjPgG2xt>t1{cg*zBOqpaW z_to>}{~~mXvi!m0&I#ij72wlt_QmLICfQGqk=mW33jBi~1%Bs6v@ zUrg@ER$YVN1s91W^fu&4+E$RiQ~75@d{+g;D@?u_ri<}xSDJ1~E~UN6^#W}pe6Ob+ z6>U5dIbsg6;xYsSB~i;Tc22qhY|(y%8H?Rx4>A5RIgIVIgK(?2MlDl-trlz47X=ow zoXu>5fJsSTTyMDIAK=6vcMGZzh=2~_6Ps*!`5xq5SRGaV`mHj{ zNDQ%$TxMjZh@rf{Er`0)U-V7$_!RMEYpQV)3`t0R-ZKGxWyI?gQE zc*EL4`$)oY;8x~ZW-FaM2#@NTu7T)xXR@LwANRagQhg_c&0|B6o!5dtu5GryHm+Cb zspui+oAhe@|0ncCceQA(m-L79^eHg`rw}=#EJf9FJ&G>Q`H6!Rq#uB==8S4SYZdE@ zpGZ>%jVrMNHzqR~WU~fu)x+O6GFc0cJ5O{>4X)A!lR}YmQJ?7lfGT`6)GWhn8YMo>4LDNv22#*+z2%022eia0^-XN6{24SPz{|!K!{;v8l_pce^mUH^# zVh^>}@MdSM4}wL6aW^G4LT)~obZoN}yZfI6YyIohi>ltuwu(oQ$f%i!JP*rYsD5^h zFWcz$3!BQo*ZHr$%}3Z~k`GlM5CMLvpNNH!QninakkSM$PhJpyJCNBvl+nM2Nh%&v z+E#+8(;v8nJ+|Bwfsk>qb41snGe|8MSrIg(-pw!H=Zr>)d6ZwIncox5^H561U7-bp zKLX)YG|WZ2$9eqx-)K9-2P3%bdz?}s6-$0j^7*gjMujy*$49W|%hNUauaFwMoQ-|l ze+e8%P@{RuBMoysVT2Keo=&^(v7PtrV?%i}{(W;n9JuqGl?3sg2~bjjLu$L4K#YTM zX5-PgK0Rz$B{p}RJ=&06p$Y8+35{yS$Mr)Cx!K@QeSSS%Mg}zy5IrpQ(e@ljLZ`0J zlnG<&29(O~$yh2r6v#pytYxxjHe0|<;L=IC??5<>@QQ%AL&xEh&|7*jDiuP+Cxo64 z#^Oio?CBy-47X>R-#?Hu63ApV?k{NF!i$eKPI3XZ*^B$w=o_umOP1zhxBM{+=roI2lqwQZdL1QWX^&r_Kd3x-v3|APnb$Qzkxd zWV86AJPKQL454XYL|Z=N=0B>j|dd935YFsQE%}-g0t~N<~bBWv8g%t?ZnD z$~ou}RfVJ$o_th|Z~Ba7`YkozWGIM4SQfhpV^{A(_zC=qJhPVYLr?jy4PQBJ20@$uo`&DZu>+IGj7=Z=gi#sGNptWYd@5L;NdMqx6)QAEB_=6G%9th|DHQro;2(0dUZ6CuE5jH$|qfX>%CIzF)W;Ew}%&7o4}rg-c? zRZCi3@n)2+h3WYpgkhIlGs@JEB0Tl38gNoZbF-a~3g`ks650 z{h2Eh@C$0#ys!23Sx_5@&%U7IrqLpQb*&L2aDGpsE4lVQ^I{L9m1*orQMc{O|BNM9 zOz-T$vcJMyp8#vMd-zBZY8}B6euuQ1>Bo0q@1-p@qLmiSYPO84fnHvhHOza;=Gr%p z0gkK&`3BewU!#rt^O1kOJ@s8ddTikb`r zlGI}4oI6_4c`>LY8PU;8S>faUL#5gV)ZE&+N!W*XxRo%z70Dli8BXqT;U(pAoc`O zm9%X46`s{ueecjC|AsfT(>&!45dCe# zv6Vlz1yTS`c1hJ!MX61Lpzn;gSw}rq!m=sgxXg!F+Es~S#KI7s-*1+0!7Q6}KMxVn zUvj>l+AIRCoKBAj^z9$t}s@~r*GiK}-mozkvGkeC#LUz@< zR{93~!SA0D4aeRe-(CIUszt+?8wp0)<$Xqo3c>+W^Jc5X*PH(}J4eFE*os9Rq;4xe z^Oj2s3U~d_RzB6}PP-8&byiZHz~%$D?{9sSABABVlx^s1X?`P|PNfJx@ecZ`S?KWs zH|otSh5hzA70p+tWv}F9W8|UsadW?zI-kBrtyn%bZ~ri;;cs%I$*1xu9YYHIUg0>M z%-$bmjotP!>^EHAgSICz%%0X~?+pyQ9Q5c%PLo4jOuUt`n@KOlCmCeI-blQ?L1NGr zpnmhETX05y8&X6nGCs))i*P)9Jot4x!`Qhor*+aOUrNSH=Zt4%S;9_&2rpMhZ(SDk zwkU}Y?{pJZ?KL8uHl@y0D}v#WpUE?g2hZq}Sv=nL@dXtZiAR(z965r=761GO%d1%* zt)qbfhMS7N!q^$LDr;;dmT1W?aHG21ikmx-swGZ-V1h+@!~DKgLZ5h+g+oK5C^Q&! ztDM1{I?H@n2d)*~Cv2#0O>V4e6-oCc>qjRLO*Xid3rny;du-nGfuzL}W4GdrS|Vxv z>|{51RjRP`&v)%l0eCi2gv&T|B5E8V?eDUmFiEiRJpGAMi*unGc29KdzgTKEI+s>x z92&vLa|bExB8NVG*X~XWrV~^M%>(^6K%7<@mg4HgH^6pLKNy|aiUYrRwWrnUCEX;a#Y_)6pB3^aXg(DMQD47BboxPm^( zR7i07JC=TzMo#RJ@o?*RfQX+vYM|4nbhu!e-XrMS1|4=SFUA@11hFfhmYvq|i>BXS z<6wiD8i1XzSj!^T^t%{WQlm4%Ne3;XKp{7=$3{o0w(jJ*L_>*Y0Dofs82)QLMfweX?p>GwneFs8Y! zWM1+^ILf9v<5OgDghSK!CIw!y-}Yvu3qpRevAv;uX|oR;&1VeQoqq2G?J7T!l}qUN zFKn! zCa*!L4afbXM>-FgX!&b*?hdyv67DC`spc5gCDm+AX*(T+$n}YF;29kfE-GJ?Y9@p* zbsn2rQ|SQ#(Rv~pdtU9YZF^p7o2yU@cIxZv`|*g01Sb2_n6CzhRXN;RvdNC*dWGJ$ z+*%5~rvWpQGzktn$HyD09Gh#82GYPwl~qngRe-UOdT#F6!QWHAGvy}VD1X#x?mI3H zumsSFRjk(mfiJ4j9eVCxPqGX^XVrsFERmNPi#U=cxTb~*7#TVHE^J1i|7 zt)R-GlTDBlt-OBL+e114&tHhb+>{Ow?65K8zp``d16hA~6>jWH*dH_XDUJSw=yeOgg%i?Clh>F8(~8foK2IJ7p1TT;!oVyd9v#abD|(0NJroYHsyGRfauw-w|z z670wm(^!$iDaf{MWW$&-%$jHkQYsBF;{H=jqk%vdp$xBTU->ShG0w3ztb_N9+;-YV z9_M~9DHpELPD`*2+!~XQn6BGKk15A9U-!xo9IW{%D3Tsn;F<_;(QhBdbA2PsyKfec2itY+!< ze*FmJno+NHh#w@H+7~Ofnr#lLrU9N;$_*2%DlYDBD5PChrxwfC8x6DCmiHRP%{0HV z4rNQ1c){yH@KPZM+Q90GKqA=WGz(*Ipt1aIQV{(VZ0i+lvw=i~({l25H5<(rq#Qoc zLr5`(%MV3i5-jY8*J{LsYzEUwo6VpmFMO?ONn@X5ysS;U+F2j7t_?#kx`oU0q}u;U z!IAjmSU45*t06LibTIWZT`L+40Ovp`Q%(lhB@Ljf8$`M}bz)(oQ6M}^6?-9o75}89 zj*XZ?rE!TcWZ;DN>Md}frwLhT;b!&&i}uzM1-A_%+23m0fXSd9_iJ?zyxpn|U==u- zRP!MJVQ8fU0$s<=vn`TgoMjTookY8DK0{?Hw2gc`uf&Bi>J$I_OAVdO>t1HLOwa*d ztYyk5uC-NdHX3@$i6rP7?Lk7^fZ$1azew7>9tCu`%B~qmdsNPZHGcl8>>yN%s{7Ew zF&SaY^Q*OrzV30h*B*p+`aRpE`YO;j%dtjgG@Hpaw~pUK3y3ay=5gdF)Nxr!8hJKr zdn=ZiLk~Tk$XqAqn1#~_vV%uOKC_jXV!+QzQqZgQa5?MiSIpREqqn}9G&pGhcd){5 zD^7nO?l&`*U{qIbx~yv@y5jvEI3t6y(L)63Z<^DUAQN7KZ3^$csy)w~q~_1i@Ux?E zg*2{YGhyr`Y>2>2werT$`6qyAPaHAsD$9*r=nh@r#*V~XTT zHZjLJ{WnER+ibKg4D)~X6%8M+a;dLTiJdW&n>zC*SJtUpG;MGV-RO97u$BFsi`63k z+{qH*%%BZ7+L$cF0F%X|YlMb%f+0UY5Q$$R<|O@7EBRvrP;D0k>)qEqeI7~TfTget zC2?c8EOe>46|K}Y`3HDjVv#Kmjm=SF9ZJZAoKcI_&L%vwra59zl5rsIP*6#YSC>2l zF34T=D(+6vv>c+D!;gnS1Java_*_@{qrX4Nr<9W3$g5CxgLlNAJ`_N|309_@6E`Hy zl^5SWtWwW_ZqL#!COdE8A#gFo6D`9<7wr!TQ!}_5m_%i}i;5eQJMz7#_E$g7*z8~&`JVD@h! z_eDV5WM$zK#&7#Gy8uAL|6|`wH)#THX8CzmZ(}fjp)U`q84{xi=eu^<4CY114H7}h zB<+sYb|>QLf}Z{oJo1vAZ~BSfNVdU^N=eYRc2f*hZfwW%`e>!c^7}&?wByFGX_R5+ z`4zsl4*^?G&xOU=NY_zxSMecc2m=J&13CWt2WZU7I}V{}J(Ku7X&*C6v~H~EHK~sL z{Nsu2O~+qoTYEo^I`4VeseH_@XE?J=fv>^R@Vj|+x!Ew{R@svsEkMK2Rml(G!!q6b z$3XC=DJ##Vw@3*-I+1pysCSBERDG!gP*cOY1KE{z$7JCBf_2)8{^rK(d&DA6^Ukjb zcfZJ8r9Rwr(uBs70Z`}f1ddcV1|rNgZf!+{NYH3n3TnU+W;YaYU|!Ghu@kSGhL{dr zhL76Yvt6wJt?KUI(~zb_SiErzU{;?q60J`Mr&%NPK5napd+J)xYhR2%4jd-;{Q=}-j8g4Zy%4nX_eN9QG1kHvDKf)f%Ow8Y5I2p_Cwqy;ZALP(g`3s`jY8s_XmY`3vqJ?)#kkoa?&Yua{#P z0b&7)32&yl&&tJLX0NlOT$qq0VYs3zgzx)0oP#Pg%(I4RVwtrOjnW{M?Lx%j8;{NE@Wt6pHs+|v9C#=lSI zY&t2EMHco`XG(;xX`Z5~oIR^DvAhd|2mdN>YYp$4hRgh_QqY#`ac>h_D!%Qlo5_>$!)>N(n{U^tD=&)J7@G*` zvRQs)k*0lq@2%dN#q?%Boe3A6;r&6)SCYgWnNbnlJB>Hh#f zA6|&KROwV7-6h{RGXLESdN@kl>My?X4AEx1h^rRK*3r4aY68l=^lmV)zI$0hD&TP{ z3V4tbNBbx!bgyH4)1s|aG9^dNh>x@}Tkhrl#Pa|`{nw79C@%$b);bo}uM zj)<)cj(n@4F`m$CkMzLT`8LXRvM`~xZ`vw9U$iIQoBC2b@V8vqRg0YRqua*AD6fYCwu>Z z(UWu@1Mbr|tlLn+w(-y?gG7&g)i}_eIZ7i(JH_7ruM`CqmtOE=#D@9Ls_%R01(-QH zmfvo7v#KMLyemOsz6J%=D_}NOBkByySr^tU@!mh;X`y1rXM-hnBqREeN8a9<+s@y9 zyz1JE$^8#F36v)b1aL0m%VS2LICrAdU6XRmtB!)Ng>d38@Yo^g%|o>%HQ}?eg-{yV z3dRPp=$^{WR|S6^#sWGzj<*Wg^A?WAMKHI1BA!PFFV_pQ0G}S9ZN4dxL=ML!dJYEF zBev4ATTkU(tAD~KHQ#~y!Uxp9^)|Su9QwKz1FQYWY5R8`DqcxBwC5FNF{TIi|M11! zV7c+q&+7M>xoz`tFg{BB@HPe4Z({q2Ew}%Lq*CEL!K@MY-GSVAunA&P*hqHW_;~X} z3kz^c&zmoC{iLetr|(G=?zD{}yZOXqglAgSX=eO_q?sK`e1c5R7%(W79PGdUnWq!&a?|JE?!W+F{% z*AH=}QhQxgmtPmop%h00A8X;f$pVbmXZ4HB2ANN6vZ1KX+gWA$U&k1#f=A2W=BB}O zprh^8laA`rD%5^dE7i@c7D`Lgho*D21XYf%c&Vkx;pwL9DIcA;J!`lXXQt80=zTD= z{O94y@?oXc)dqst`&sWc+}&V9n2_OKlgJZV&6@|do#^=imP~3MD2jUOZHN@@RV9?t zjzf(|gGX{iw((Qtv4$4;5_Oe;UGw>>-B^(VPLWyCP$tctPL{nN8mf^~vwvwP%1R+cx!uoTW z$W5ZN>%)n;F-fkCNfd!&CAH+Jc#^-en0=Z%XbG8HYtb!eNn`DlGo6aMhLp=2$I6v^ zblHN44G-TAmt#^dEACUG)GColE$PCHMoK{1wf7Kx_o;?6TQiY_`SdTgun%u!u!|6xXFJwoT z8Em6N`SZ+gwRa&UJGSz`Y)Z_*Af5=RHRb4Xq`B&;|0>nK_3g!${s9i8u4)Ms88RJe zN3v@mLl-$Rrd0TIOK0B4R^J|0M0;>4AqY_|)MsGn5_RMtucCXYbAI%kL8IvQHTz|qgcD`>Y$a~6z}-O0 zLX$M$ij$(HXs?M7!qevBDVt<;C>PL1O)Fi8>$Xrvwz)u@(m!&~ z;(1{rICjcmv%Q#npvS~Z8mdG|L~BA6tyLh&lgLsNMr>jQ?u#{rS_PHu7i_lPA#cOJ z{;9nAXPE)D_L>C~2W;igPml%$I`P3t#Yea;r{_UvkN0Hd^^O~jDnE2=(ur{)JtJc+ zS5|kOV>Q%bpXhrbI~-`3+(N7V)>>(1q$q&%PW#Y@50@pklIU?TgPyfo#mT;qJ-vp6 zFv$TXI3$Zk%tV#4F)Rovtp_p_fEfWvHFA=2T+Gu0r`0dOB=cLz5}Wk_9pmL8mMaP{G(HW-0s%EC)pxdrBDuhZ^rN4B@smy|Er;J~0)83AK`M zgvv9v0k*>(Lb|H|@4rUcjzegdHHoNK*vM1_) z0c}#Zd~F?p?R+ZMrIt|aQ!k6f;c8Y(gUsen`8lz1(@bwy^uh@5V&7zBSZiYbaeg(e zN@rzGqIG8z=k)OjQ5AWrMBVF|)L}Y;^<7E)G5mB<>fpMG?5iKBbg4B)(PV1CP|`qm z8-$#i=2zn3%lwWi^yZ$Ru23F-saW~T$6Z#xd+D_ZoCrFQm_qvi2qLYQr_uEAXX>UQ zEmstE#2=WzL5%AcPDZwpF=@4Y(A}4bHq|}vd=FuLb!M-UR3wC{RL9qyvVQg_RW%Hi zJ-fMmK@2OVz#u$pc@d%2rcQEsimj-D8iyFvt$#z~Ag1V+bk`26qNijrwfY7FVYWp@ z9JlA6^Srd-ow(Om_Y~O};-52INe&+`N@F_nB+s z93Nemcg;*+`^o!<-`M*f0klNzNE#pP>X>{c-n31)gUJ5=iq)G4ShCJ*vat&>R$D7- zTFt3A!~R%u8>k4|I+XnUSE`~QZw=EJdSoT3eBj}>*#bk2YNtThEY1{YSspF>#|Yq@ROe22EL&xg%4387<-$-Ydvw%Wb@E z3b^K36U`Ny7g@)!ZfL9X)i@KpY{TonctL)*Oce8ZeO zr%=SaXIVSYHl~KkC@~9;L05oH9P(cUp1lopeD>m#i%simT04zc*7DBlW~|6-nV%2? zujlTx8j1Vnlg;5`4t+)c#;9NQ(bhRR2daK1-~$PsI@hTt=Lgm=-P1TI$hQ?pPLtYp zdYD97o|Q2b2oBB}%N-83(h>_xlZ&$Xgf#@(C^-c3Z z$)%IWpvH!SM%|g*8|vi$6cr$J-m@rV*x`Kl-_bE1P(|&cOzj z9FafAnt7sB1MN(CmdeH87|ZBYM93<+jyO$%U8QAxpIu2lZIK_>gxFc^DKqay`;h^Kx6{Z{rHFNBw}1s^m+4qnvUad=KEtX59Dzpo#$mOX94 zk^%HWUf5jKvsz^&PfR8Bg-)hGbSk{a)^s!pzz@A1J~HV6PV$UAUGLE03LX}WhZ3^0 z&5kC^^z$|#ww&p)N$0;T3F3k$rgTa(s#Uhux+B83GCb1AC0J|o;cX?!jcMHDP={Q0 z$sBfG%2&&hqg_dD<! zLwh-hKacbfX+NBNxi$G=O`kNalf%W{*h^=1Ttm7uFMG#FY`jyK}B(2|aTYUCKRnj2TpW|0{lRwyg+ z7>7u4>j6#74MQmr+K+svuRzE~&UA#CAOO25YZTlAYL7K};NqsYAHWT255-h(qC@y}O23Hzfo_u7C}87) zj4>9*VsFe=VLhs+f(!Ybe0Ee&P%R}{&xeHSlQCU(7P@%jhGy@mGH#_3ax`1lvl}N` zIk-)m^gjRylum{A>sBT+CDe*d$*FfJ#|A{M(&X@tI6G>ls4+;bsv4}xD%I-rGHgCK zi(a)%*16mIj4K?w5{uwSbv%pw3+;XKcdu*|N>LG>((zu@dIclGwT~d$36;r``}QwH ziV{8l2Y92H0Id^bR->(aE!+)q*(Ohb?cKg#^QAq3##oGc)s{1KCO?Fa#hPR`JQ2rZwul6`x1D-oeD-d>gQQ)wpFx#V@>*vf}k8!@je3J{aYprZNE zXRW;(N-mC7vjrJ&N7JSMk8#EN)?Vp+Ik?}gE3#-LR_v#`Zg2-M3Mz7Zp$KLwre5SWA!8!}IUa z%TWS7vs#y#1(W5-;MJ)xv%nqViKX1eMi@gy;lpT?nOLqH ze~7kQi#=6Iz;RiYg1@;zVQvv!i+g-^2w!?d*>4l-wUo-YQ=+R&U>*Lga^!)6CSkoz zZ6NHE|2nShH&iR>oz)83rB8$7gBk7c;(1AJiMU43I6lntID^tDuXa8blMGq+y{!(9 zY}bfU+IXX$WJqpubw1{FVOK6HnwD})1wP6gEUb|k!}?l&il*8v^8bc`yL?&hln{Lx zw}twxQ|g^G4`lutTnSQ#ORXls6uhJ!)z|v8*h6V=$Z9zYPEA?goBJ+%vm3;fwaMiuKn#fd9iYHhS2Vb3t874Vc}MGfdaqX*j;VrzeU1QDxX{~v&<{er7>eorR8HqmjsiqI!0rMPra(!xR{QEI8;LYeYC8&hJbP$r_Cw?+^+)>3ZG_I*2u zPcWR&{XoYoJIHf^mi`a)=?M0p3+sIO%UmgXjTe=>;9Ci?-hZK>rF;5Xm}CKkRepk6 z)njk8iS83AKdu4Tb%td<&{}`hJL^Gtu2*OlpQL6z(?H@FWe^z(^V0K;`0QM$T}EFd zn;VM;k=I1Tv-b)LO>vFyO_v0cCBrFZ>RM z&-vehBH2y5LSk*8LR6nQHEYZ-Rj)s&g`6_q04ugZ1@JoIOqIu9*f%22q(7eJ2UF~u z8Q5y%PM57W+_z56Hz857Etj*oUn|L^{E%3DGJR;vTes=jCzXt$Ks&7Im;euf$yWH@ zSxw?O-p;YGv@Jvt(?yYOhcf>(LQs@yATVE3c5{5bIru#h9N?|pPNmcepJZ-65hxJq7I8AdBxVj4fHLR=1%7gcB)saB^x7{ItsI!PGu=- z@J4+q@NdI^-|=AUj+Zu=8Ym zZAEQ-vU3qHdr1?%`8#-dz|*L7k1}jxKv>(lIUD^IF0pgLAlj+8@iQ(WNIo$_mFFpw zAV6RgJv9A+57+w}<(~dNB_k!1m@&PS5d!mPwc0Nd{yPmJu9g@gH7@+9)78 z=+HzHb?ePF{1#XK`ZX9)|St$#2lMp3Fro*2ZbrXiE^{_C6np!_qeF$YAu05IUEh5rF!CTuLqKPz>4w7T|_k;7XlDsl3TAb6(h1Bsrc0p!y>>4Dn-uHnl% zoyKGF%cLfJpVMO9ih_GK0cQM>m+56;>#vuM$yaZ6hAwNmtIU^RDw+oecLXE}9aaAW z%;$?7Q9Nn-n!fKk*tI%bQ`>JjeD^u?TW`WH;wAXFaGJEw^5KiHa*P*px&}5N-TJ`3 zp??@Q!WwENQ}6)%9dSPYkJn9~_IIJ_it^Ak<>CHOwv~2YkRGo}M@-3$y1Q5FA(tHL z*>Mf+i~2-j!BdW(KSaU+f^62Vkm%qwztMY)zq0_9eiL=V7(xSBT~3on3!8qfwi{>~ z?!MAq`h)#u55BbA?X8)Ar2sd#D$#|XYZjsnT7$^vP>5A8h@QxYwT89bZtSO+Bg|61 z5zNu=MLFH6ccc5J1SuXrk)$k3mreLfx;H#4XxoCF0Qve32k+2YHSHq&^6zFeAaoK| z8z8g+uqn%qwk`|N%r~Fp%?sMeGO?8BA0#1&91| zP$O8GX6LBZ=9oWFk)rm-c)>2j@b^>yyDc<0;((&#O%RyD*?fF%$g>xEz)h6%289co z-W#p`&W58yi%h(~xv}*9*J|BL70yoSJTNFyj>D&;EL(B1?argqG28S@rC08bgA*M` zs3d4_?eqCJ&Wv7KyWee!0zCI0wL2u{@O@IIH745gcyF9>ORBAt1Z-jkg)yLONn$oI(AtILuDM~hK7 z(Ld|KX1I<$8u{?^S}hY)PCg^vKfv!E0AlVV8Fr}QQqqjFPW$IFUE(L*&TGtn;SqlA zYQbx$h_a0bQ5Ow{g@b^ILHv@_F#GnkjTBK(!zN2(Ep5Mn#W71i57s&P@31<}p@;&P zv%DysY~C=J;E}FcF1NH~_hQb+ECKs5sjAuFF||91_(OwpNDCLoJYCABE+SKo>^z1!zH?;D+}svlDQwe38@Q11QVl{_u{N6G85eZ4Fo2vM zP3)FHT(!{P?g}y*sBug(U>8CM*r#`HPQ+0lr4$rkI{3CMe=0;-)&kERv7}-~vn=Q< zbdgQ+M7Fu%x(wQuPjd9bG+g>s^(&zDOK*rAR~eAi-)_mmqsJ2sRYZpXCXwqFy2TJg zS`Nd&y`UnPOABW+XDW--IaaX9pNq0GpO+41HH8k2S<6KsaDku>g;qMHQD*W~cbI|i z+`_$Dz*;U4o$x^Nb4NuZ^}HgG!psY0WXVuoPiBfy47F=ozqEnNn5AwcqM{Cz)U1?=7aj2$1mbJfl!#c`+?QNI;fK-^G zJyV(TaCUzbOOuABJaiY7D*bKl+zwU_txIa?#xFCAVVQlYwzjAK|&bB zHiBef1Ehk~nLcN8Yd#NT=0T&i7?Tdc^prVf%94mMiL8X8bG>*L&RUHU0t_%*IkAxh zdn!M`X5z0rSk&CjE0mx}l-xyI>v0+1)5S6kfQ*P1z5w@76B!VPKIN;Axho_?@OMYN zX~SI?Rw=c_0keJ#PrxeP_L?FPVgKrS3QTA4K{?xY_w~)CilsS_0UV2YPHka9rW-u{ZZ`uc;93IsV0`^i{ zyoe9v2_UXLIM{Azz{dL_sy*{eSrVJH5ryN5wP6lhmX`kA=gek32vg&w_RK|*KP-lQ zXG2#8(;siy)IhR^T2<{puWpkJ84GDtN7Uv-K2rw5PE9Y4qCBp8-v5zH z9|F+)lTUs^S|P*+dPGg@9mV)fY;gJPfhdtA9Se z!KGX}Z{2;G)X1TopE#fqGY-mcdWA@N)CAKQpqo9Zru-h-6{)z;F(pYQlqbuj3d-p# zcd6nNv5xQkH!$LP7W_TSy90$isJ zJdpk__$7iby2j^4@Bv4a%g)-9K^00C8vFs-@VAR8=3SPL4a z_;6v5C!0P&GZ9J3yfFZ77cjMcwG>{WlyoWa!QCdThugp{g82{P6@g=tb~GlaXAE{L zC^6gVN3xm_+KW!Lq)VCt)4FIcjyo_9i0|j0F1PeT>))UP$)EAc-NzdBX~YNs?0dm2|m^^$Zngaw>z1y`dgd-Jl5>8L;+#vbj~=HkBc_6Rtf zyx5;~b@_3uDk9RZlL2(x+}Ix4#sy5P<%m$G5vR9#BEsUF{0wx0$w!dJJnDKO zOvp(p@Wi?GyJ)C*Jmcc>j1*}eO_#BN3{3H-jM>HO2zCVkUrK~THRFbw zU=qygY|=%V`DVh$@`B)>!8%7oA8{WK*F#6+xsYil9COSOdG0TgV_YTVGjJPku2PE? z4|Dw{!99FrSMqLSz!DM#w=QJ{p4dVd8lC;Wrhn!hgY^e0qLS$Fe)DpIv9>KC>UP#i z<*Fl_Sj~5_UWWRi6C|j_n7qY3hiwpXq@Y9ZW{x7Hc+n~xB+CkSa(1N@9@;&!pvthm zlg|x=BmsI#q~%)`!YErqQQtrXqE4N8mVARvJg#HPtB76f?em5dBacb;9_C3YKm0vm z!ELR$>E{_ex~l!ccY%E2PW6!l&uGTuQLaD#-l>+s|^U4*8(g;h~g+FDBi@}!yq zLVK{(za}Zhl@8iDL!>VH(*0UFr8{<;}aGGK-hg;Mf~_c`mYBRL`uxj zR!_1K&(W4LU)0Nf7ot~Z<=ALehB>jXTX!!@bUDw^5yzVaPA6t|bk6bq=Y-HG{A;s? z`_S>buMRKxG}NijA?HiEb!V2^xKkA#WnITn^EnV)11KpQ?x{>9s@_*C&sQYfFH!RA z2D1@SmV#?#M@|lQ_av46oLIi-{XM0Bljx0)6MBs;+gK&-6vAp)V}H#&e{xHAQb3gb8D3JaHuJ)SvKpr7<_6|Yp=J~s2j4#{2O#c; zNTvFC4GT}^s(qo9lYC4CB6n43Q)+AM#OgvjSwP0-nv@RpHq)oNReL?> z*l{}aTN4%`JzDa4Br+M1V)1mnTQJOAq=qF&aS~T45)2)JPZk{Z)JqI46NQj!SZ^%@ z?<=X^M?*uE(@1$pqcYt{C`7c&>w3BZ%2dL>G4-L%>vM(b+_Y5doy3`{OU@SQ&g@w{ zNS{3#w?XqJR8Nv>i>oBqHMIt8sF$M!?N$D~jxM^h`1!~#RaL1Y@X&C}kvd}S?I-Tl znJ%d)OWljAQ$0-K``iKnnNghU+;K?rO!l;4EKeI5=VM)n9L2P%GgdClFfnYghrx9I zz^!BfTbR-IRnjnvbfW=krKqv?5GIN_)8B;bg1NnpK~6KuizD(VK#^joG^RjRFaAr{NZIMt+YJ3lzq#X zydqc17zWIA5gGAht2R3fG;(ajaafMYw-mMSAwN2KKrSN#LB`wMQ;5i)$sgUuTZ^8O zP3hHL$&cRVI4A%k*3hCt)wk6K=mdT7rhWJC{XwC|1J6q;e6{7PV5EYv7$s8e1&_}s z6*{FO4J|1YyS)&))<8DkrQR9X{u7ATrC|?N`laX($^0&5>cSn!DR=`@q+KX&(jFn! z*uSBy1+&d3^E2imm7e#rLCAdXVYQy6c&Qg?9j(3l%6c){W~{jr4kQ)olOoAfJN=?p zM>d+1bZ$`Uc};Xwy$CcO*K^NAwGzG2bzA#2ESZ>%cs`C~DBn7yt^9O4>#k{29elL@k-*D3kDk6AyiRW@?jP!qYhtn4oaz7~wwe;5-~DSa6E zKfvPX`WE;3f{{Rqe9M4fY9#f!+uK@^{o9v^Lst}Fc-su74W|&?XWh7$T2$fo3m4(z z$8?0wSvaoIoj;A8z02HlJ_d6X_xUHJ&4YezX0LuygA(jz*HYzF-_L&0!<4-U8f5Bg zq9J^@B81zv50YKxXdrU?w~xz#@6{L^M|D*NFR)Du?h?C_s_ORf!gpcY;uX`k4;h4? z!Y=5ScU=pU+%!LIR3Wdi&J#UZtJ&W`eM|ck(*{)^phZzd(8~o>sHZINmQ&`)i1Bhxw3osi;JGAZvdKEvEcZo#0A zN0KI6deQrcPV!LL%^Y#rI7;|9nay*dGrvO_$`kC7Z5DuqxBKxI7H9z)_O0>Iw_GxPp)MLfQBUwW$`>2q z)xUfj+ZvUeBCwmJcR%iru<(y9G%W2!Wn6HT33qUFro_a>yEhc<$3?ecXwDvZTvS=_ zpT1@kp_G$HUSMz!lDd%%nuTSZCBLTQ3V!=<_NrH9u7b@&Phl&5U+zjhj|k5F36k~+ zG-S{kQ=htoEg<*3aO%~asQ-fQy{H(|W2{!Pzmn)DGOPXD9yMAEQ0Mb;Md~uDZcP0T z(E2@9r)yIGTL7!XChDi9^lhQz%`yZ&=3X27&0(*^>u~&C4=C)TZH>GX1@d;2b-%m@ z;7RwlUd4rS#Og?$vX09(xdtH_LH+A?Y9aF*4*|em*oOttj32#m4qMA4GXJuQV|psj zD3EHL*jmWi64=-(o}qx@8>3<5<8m5pECNp1$=Qt>?Y1Ra%D(WS{Z8{d@1*Cc@EdE?M%KTz1Coo_`TDAo6mt!0noBv36J46!ocg|JU~`Z{tOv)!>T~R_EiI{m0C( zbs<%u1&t=J^Ez;AoLy!_pR(eRTYF{yUZYAD<6txZgNd6gT&aW>d8}#Ocj%bs5msM) zf=l5RaBJbL&8)$`H;TF?_oL=7P3%kHX)NTB*VwJ4uBEf(`SgY6>uuw%R!eqTKdn5l z`~~hF9t3rT$Y@nOS*66V#a?*(&kx%8?awq*%jr@zwx5aYP~af{l_(pZWd1Zba{4o@ zkQm0w9M|KtShQ_7bznE+u5X9IEL%^nfk>*Tia(!dc*iT9FB8NA6~M}mjq&- zd_i4LM3pW(>BIo1wY+E!5eW`I`ea!t}pqNZcEd>;(?a!w4Bd)(>xp)? zkZa@K7nU(yL2miX;@TC97a#c-+nqX#K0TQ>`WaIU^boWD_XYSbrX0gJC2oDIpI`Vi z>%q$kr(z$zJOp}cxyAXrum#p2iPh&`JM}M$$*$)=L(6YJYg`_ufAHbmD7t=y5L zD|tli6(gbEJ&V(1(yqv zY2Kha1CjXOFSWE{hVS)1lM*UkCZT=sHI^TL#+5D9|2F^b6a1V9$@cv6SI+fU*c$x{ z+o7R9`%dQ417sEC519=<2DZ{07pXn%Km>BrjUY5z~OY^ad-B;&8NqRr$7lj`A)gUBTKm&iYo zBQkjJ)S?%xN?N8rI~NBttZ~bUw%AFK4)rtdtTu~$^!Z=jJ~XydVc7qgE~`SVwra}! z^$OSWfe7nL^-v`|Kv%|b^@R?}lD3djZO0kiC0czgsE!+m)lLtLU@Dj7t0l2u>IVbf zzSARdGGLzm2w%`1e5cY~tcnRlKgob|XuPOGLRnJZi_D?pzlua=taS_bEtn7Fe)OIh z-C3_)T8)dF#X-^Kc{HV_zK`Vwnw`^Hb5^#R@R0YB2%yEA@r59V>OK(&E4_#PkN->` zFdI80MXmaA9;kH6;Fn~Svig0p(^Y}ETDQk^^GtQh>tpkOzb3vLY=)DA=3p%gxoJ_B zyZ7e*!&Ip zsN*2$H3v5Z{dbs|yDr?Iuzti={Qk-!I*YwVn{n^EW6-AkO(a`|(_{cc1pQS(n9)wq2PU$QY zl)mz>(AUn*JJ!%C{}$E!)5lfiW!97{pqA@b&dTzrKvKVBB%BCvhr5~+UX;q;qB=ON z*{+*usBNAXvL0zw&)apje)5}Pa4S*=JH(O64In)XMR!P>4hH5P&>@>ApL$s0d^e~p z41(sBRLfHHhI>kZB!jUZQ8*n9xOLo)^+e>MyfH)h`zH1{n+BY3PlcL8LB@8(1M;57 zCiJF3#d?y=T{6f{oXHP{ZpN%7RFDN>E@d!zwEkq7FyEd^`DBjR42{x{RhxJkMy*&I ziRwLuml$;PWw{rh6`v{G?E%aG+EXS0k3 z`>o`nX`yi9!wPh^yyKX%&qF&^;eAL%ASqB|YJ${U=HDhVu3B6dYuK}esgQn@C+1o! zCZ{DqjevmFu)3Wn^I#@(8i6Qeb00b@gC9yi1S-fX=n^*k!Xr?Lm9D>KE-oeQCvDgp z05K58N@Ym_54hb-u+$edXk(6AQ{tE;cWW(7h@e)s;w(7bUfyy?UO`R}tvfspOOM$l zGg?Deu)SKe$)N{k3P8`K5XlTn~F%}}%KcB(@a!hs z^XJ@m%+PsAopPylL<|=d$G=+-n}q>Q?g)g{m$?s$@mb)I=Vhu35|U7^WB;7A9{W!9Lk2#mya4 za_BwmZfJyexN#doKOm3q;i~Km-YFQlycs-~5JpigzbtSsb`?11luGHxrws5+)3^5%1(N~_**R6Uh^8XK81!8e zh1?(EFT;6(f59+^L(2_6%sP5=W>0T!j1KGI{62wfDtl(HXX`rlZj3r4rh=jEW>Ma# z%y|M(MSP`3_Wf!tJ>f|P$$}00O6$E-AsbrV`fG0z6?4SCgV04XrTR8HYbB}Y9f32m zA#|cbiP#{5V-HH`{Wak-^8NEHHKdDq^#mB%WrrXgRl*N$U6pc1bm2R{@c zvI2nh2j|y$iT-Ma)^++s$w9Sy7N?a2H|Rh@dCS8lwU1X8BdEjQ2%SDnFR>yc&NGnE zI@6-{5`v^-vSZO+VxUFK@$2iZJ}SSLPuKVllpH)RCbTDmcb-~7)&;$|E{o5%veV1E zfHobMJbI{8lF`u?lAwfO_&tX&)u@&alvRK}!)o{wI5G*7^{A!~h#RkZ3x)s@N{Oj* z>JZ>oVO~vAuLggvgldJdGE%a5A`h(xEEPiLo_`OE<Ll>yc2SEMkQwTn?xy zc5#VBRp#uZ>}fS*P~^l-(GPvbz40s^cd=DoS?Bo{?u9k%Un^V3lG|^n*oTpC81r=9;@a&>LSS=y9V;1zkXFg(FC)NLRiwfMVHeEG8eU=3byL6 zfUHtF(UoZeePCuCzTMBwgO|V`ceu5{QVa!24BC071i_-zQjgB`sb{y?eci~+JWfq7 z@s-BxHg7L3d{-U~nBhT3O@2mFZxyD-tP}@^IHqaQ7`0bmw!xya1Qvg_An zfkTW*HUN_&ut!@7Hp`2)`g(EP$?`w<;NR>Tf4T?kJuUQ!T4~+{eRBq6-UqKGxC!D#7xFE(yNE&Cz!s2IryAUUqt01MA1>eA(A~tdkpFYKvLYrTg+Z zjZ11g)487R8FEq{cgLxxs6}IspXRbMlz$hi6H@y4{Og0QYWHL52UJNhxUXdRL@>{e zb36-uy=~KMi-u}d>#27Nod{{;%=Y$VJ(`3H1)L%9p~?dQ{&;A96t9g`QQSF7cG z%z0(Sk)oQhNnzm_gV=M|;#>RU_w6#?k_Fi9s5h5#T>37&`8PvFUC-Lu5<`1t^ z9@|nFahBPxhXv|#c)x?yH*E7Kz2mBQPB5+9<)wTW@Ojt5rH!_z5^#aFq$tt1>>lO> zaADny_{goI_bID(ua*;zS=GwO#Jk0Rmh@W%iKY+>ok#8M%QJ~RgOVJpQ!gO#FyYFB zN-UhHG&RgMptLF*H*P_+eI+w`cCmOx7l{t(#D$`^Kve)4+M{aN zgPetFpD_Q0$-Psi*k0)n{q#24gr05|9R_2sv-g_C;VfMp_~7EeJh}Y8(0De7B#6=arO7O*B~q6HOw4ceFsgdZD;*+ zwGu#i2)XtZK@me$hrzpOX@}xbhO3IfFqjy(2jYo)GGgy#6Y14gf0knJn_w1HhIQmg zvfkgl$=!w@;A8|!EE_-o2?8d+(%X6s7+1`c>Lx)gtPnWUp-8bIA*>C#>qc8*E6jfp zOg+pEw6mICrukvP@=32HOu~47<+bQ)tZjnon7k8+WSsehQ;JytFDQgx3|f+-HIQE7 zf38RAEOG)7dB`(i+(yP4{e6cy_=A(7E*#MXt6SA0&E5P@7SLXr88%<6axc$_aupzG zso;4z{g=oRn3ef7qOg6u8`3VS*p+4tjVq|amI-59p1^F{1s;WOEpOjlYQR=irX&<1X);vnwcMBHVH~!=1<7 zwZAB-;6{Y@0|p#x=zw9*+^lXk!aPrC&_Zdof))+#ZJ)r{gw<{hm5(`Vgg}KC*>CQH zC7#TRFd%ZN60Q38me6nK6g=XlEp&{d7li4;a^m;$z7*;Gi@59BabUZli6N=Eax@#5 zgu!lGqniODTP2t(q`V~xJY+A`E(~GAOFT;HH3aniJ9X@)VXWl!P+Vv)I&(B-T* zrQAewZt5w@6Qb02XXN=L|3*JN(WEtxE12VyLeqA@F(tKffCipHN;H1}8iON5H|}s{ zpFG<5Z%=B(FtkVHH)Cg(1QinYU+CM0`H!p<=2|k|>kPBC0p?!uJ?}T-VZC+5CD*sS zWTjQc9GK%_j|J;slMJVmHSP%Lj@IZ=(;e424w)=16WZo}LD?IjrZ-qgc=rjSvbH?4 zq1G!Uhjq>EDcY7%N2l9@WyuJSk_?$Nu6c5N_`kq_=t24&DS7rQZla`Y=|tZt8&*D_ zinINzgr@tnUz?$)@%Fx+Y5&5OqL@PvH;3HakXS!ZmvnS5$CAq{{`XvT@{m@eL)#1Xl~9A;v$azBL8axT#z!d)NZ;JvP=*I^*y=v> zH;nmIXoT$+hyhps7h^lddx`Vu$#3*EOib`j_awgnyk^9ad8|6OJ4-6WVsUx%TRmg! zq;N2urEjaJ#da{`pxf;03veOFc<)x&qj{#+?E`-ar{heNPR-pD=d+2`HyVgBRrMuR=!kudy?QBO_DBs_Gm}ju? ze~tGZcR7;jc{K1nv>%imYS$@;dw0fNZtU@;j4J=G)g8&NL!`BH!hLUB!>u0&Rt5b~ z`)8nPj)x`!{YCd`S+ZD7cXh#=dEf|p-(p3jci-#PDhT%XhJ6e{y+5;e!OqFS4&EP} z$M&Fd!sOPFp`wr5W+b2(wr}3`eh)z#Y>16%>bhXucR343Rv3>VW=%Teq$0v1RA7hX-o?t18n!i+%;ZM&ncdquJM* ziXK#ZAuXkDUSD|dVW{EK>D(|^}sPza}}SZ897La~nlndJ8AiRA6F9?Sc}#Ax{^ zs#dPGE5mgnmh(y#Ubj!-)&&{+Gqs18LeF>m^Gx2EeXOZGZ<>#(SE^;to#`mJ3Ddz7 zOUUdZ^zG2_BI%!2O_|<1innu}IIj#h@ME!Ogn+Yu)EHj+mJx9sSCx*fGD_NwM{f2zssKFduXH^s2) zbOOg8%U~``@k|)846%iyl#)$6K%Uv1PP=cDm7cNRigejUIbIdUHZAC~`5* zBz2LI=H_)#KZVqp(h4u}%9}kms3D#||6Qqd95|ZX+}8j6N4#OcOJJzWB<=(gd_^-Z zs_rr|<+^BU1taiAr`wJFQ;DDT|3UY@$9QO0$6!z|JtE93odKva&a;vdak0@_qDz5I z2e9>VtDB>eK%hp`XQ6(@A$t8Icg0TJ5+^pFb&H3^-YN;wqF-q-Vk@pP03zH8Y^Nci zvAKNJe(M1U+^q%073wy~V9G7HS#9rUOTf@m9UL8Hzfq=&fM3(uhC{P@(_f1@ZvoPq_HW<%j*dS5(!4sZ zOUFZNqs7iQikCs{EH<}0AiVN&I8LX#2Juk6IFDm#Z0x{A76CqrUyF`jLwVR4D8WKVCI zZpn!Qum^c@`u?e2SzP{W=?oRfn)CgfFox9zr-KKh`Om(wCj)ZZ!LWDrRkw6x;UTO(Dmx5mI+Yjy8_LqIE@sF6Wu911er)onrg1AL z!oK2xVN=6|x@(qCD zYDj-Q@A^ekCeKYx^R1g4|GsAooml@?;|TWw>(I-UxO?3EnftVrGXIhY_xdf-)u{_o zb$5J!(F7id1yW7K* zE)tT#eIu^C%*Ix6m5Xlw{%vsR)2^QbN&f?cnDUCbst6mgkri>fcTOa8uviu>Ya(-v+~=yDfb>76%uvB>?4{=ChhST_X;2P7jHf8V)`LyRhBpM-#;;M z*AJHPHc6Y6zp{zwf#lIQ49Ss2(abK3Jlay!B?;emjTBY<^M%dhu0ME-S(7lm?Hwg5 zDAbS(QS2S`s`F>4^p-PO%j_TR0arZ*XA$8a!+Z=X3)O&CeNrIe98h;#udqJU+> z!afY#qWYVZrSc_4Ue>m0kW=_^Vwf3U&C*!lvwqbJk+gq&2^k62n!JV~%pEzZ2Tp|V zKR1(%1LA)JmT3U7zZSfBIRH?utolZ#~lmrCbyU=bLd0S8Z`9gaW ze3XgBM&zDWk$Y(s5PBH*vj_;@eD}+3)bMjM>3h44T;Rm}qOC{fdKnjChpAR&|4rKY zK8`Z}qk|LuyPf|`Zy9*y^55eRatP)lW3SQAz5k*t zHZmn4zNzmeT|#|`_LI6@^8DKM>mn~LKH-M6z;gSz*8;F9m7Ta-&jjmc9O6N^dvVDxkFM1|(Qhlttw-|6S7)6)OCOwGR!A9hej zD_;M>{|j>`L({d5YHOD$L4is1Tz@OXy|p6MHyIAzADfGaz9!YA>pOog(0HWrOeB(T zYSS(E4VxMaJiE@GKDPiht70?Iz|GoSAIq*|K#m&7=znW|Y z-M7684kJ1sRoFubKz3>PCVkV=B>PMLynyn3UH(_?`jbD*D~>t;ahE8RR;RpUSQ}8a z>h)0 zWC8L7H5O6<_h*%T&Bm(ElYCc81Lq?s5}y|S#ic|;1DMg%UfqUQMq9kXX0#UOANK4h_tUr(r><_R#$pv!dp6jltV>&)z)(e;}lW9?g z>Ii*8c&kPra~WyvWL3gp>%L@geVv4LPF&;O5CS!WrAdZz$9%Nth)1ors=Y0fHR0vH z5gJD*Zw!YWa!6`IWN2@|Bp!G1w@>(QoK%&467x_sM7l5WHpu?z+<^(GDD?ux?;4A( zZ%`_;R^KuTo;Juvtflda+?ByEX*B4q0U+UT`iu-!5hxpw3s}_zVSI5dTJRN$KL{~e z$G1~VHPt04*hs@cPFtTvZst= ztVA9z>0M2G6b`os3cs7L1=C3!LWD`;-1IBzYG?B`kB;$<@k~uB4tjS61RmR%#9cIA z6P!y6CP)%0ql9jZ(KO7LNdkn=hk<;wuPLN>KMNhx#FZU1e#R^@mbX4de*G0b)fW4>cd{ec zV(S~3a@Xn~(;1QHJ~%jtHNAZK-FIqqMd`Ys=0deT8>m(JdxH9MH{A-`bsddX%TygU zJ?2xv>Lw?mWUg8sAWNfXSSUVRZlSwY6r zr;L)z;H`D`d+@uXkypymy`lvVN6HGNkn?#fD!(ZP7;<%rLpQWv_0lSz-!U^B9Oyi* ziJs+#t)DRfHj3vrA1kNG{;dTX+6IdE`FSN5Olgzfgn&lERBae3TaNEU@vOh!QnTKV zm#F+V@cH<0m(uG9a&qo0uw+3RijPT2SlSLEQ*d7ne9!(O@S#{5lKu9 zOhODF!r($&iv{<~lwR4}@IBW(Kk1SY-{EcX3wWd)e7+u_fxFe~SwYF|mJ4s%_X&xX zxk^0dmd+Q9aQpD!g3l`(Uht4O8Zj!0`qz~`hf$a#&ZtsLvjMi|`M-Rp9-~0a;ZXy; zblH-5mE-o@nJN3GZqp6oz#^dyo~L!v*#*89gDb; z%LDaQp15QOBpUuI%=k2VZ2lJ(VPEKp*t7mpE{m17rB2R~8ExidGtfSjRU7lxm#lL* zc%Ys@f_@f!k$YlAnlRa*Hx}pdW^9RC(afT-W<|BJHYN=77&C_KT`P-CAHJ+(O{n$9 z#rhul0#}weZuV@oP7(bP{><8LItCDhcxLDMchfOQiz8hSVTn$jFT>9A3eDx$C72jj z)%uxB6iN-;!hVOn_r_HE<3DJMCa{5MmN5t{bL7+Q#?RZ@(3jnnPn9KRUt&D<6cb^e z%4H0#8+CZM51=XbVN64frt}mC4|c}Vd|wN+D>&=8b6E?ahg}mU-+2^lWCbV`=eww5 zkdh(@WNmilma~GS=o%ID0d%U#ixFUoYRkLJx+GA}39!rck3sF-d|8&}%)=s2i*;~3 z)M+MCEi+GJhqzVN0&xH+k#oDZr{FMcq-vIy-N;^`Vqdnxgi^OE^127T^zV1eP0JQ8 zX3=t^m8m3`$#R{v&EuV}ReeGGYvi{P*>F#qbXP+2i{Mf#>IKtvj??fHw-C^>~_=qTRDf_@AX-C>$*Je!l&4 zBv!I-Rpx(y7}ORT>Jchu0ENA@p|X^kF9JUn=(jIXalWHr?ra*{U^;1UFqQV)!C#%t2g-3!JN9TL`qpI`xoZBlEkyzfl|{LN zyhC(`2yR8;;qMey>_WsQStCDV=1szL_MFiA5Hlcu*@Qz8%F#_`N$|96H9ZqCPmtE2 zFU~EbZZYNLwoyVXUJ;0)-fxv>S`-<%=AN6ad)hr0X58ASYiKtMS7ey4qsfY&jTgMa z#SYsyn z|F$~a!B0edSwPkS*9>TQ@er_egt^=?RMARt-Pj(+D2RDBR-S>`RSRjGuYGG-9;lK7 z@1WRku4S&r&pog*>naJFm@=|bG~bV~Io?4dR;|p{m^kGMq;^KtNX3m3zL>zo@mwo! zWy}XheG-Q?)L!uc4d4u17*0d^uY!UG6vdr&RP4?k_N zjK6;$u(%-MP=;4DiN(XN39`@5w+^w}o(Yl(so^s|A{G%Mg;fx{S-&EoA5aC8)r>K5 z)U(m40q3rQ*Y1m~#CyKiJMSXh>AYUNBf-C zQA)m&WtU*`k_~SHYtk_u_vujI>-9a2M_8-3r+a_6|2q;mTv{)0CiO$DA}Hs(uY|21 z`^!$(-eQjM*Q5cnjuCyT48{pW?%F6@%&DeLU+PF4NI3s)+T;dkmd@^P&`q~DW>s3z zyS$t8#L`T#rQlsT$%Na0}{o~k_ZmnUy?r`I07bB!F6flsSDucS(ILV{9Tw;4XhrwLm_9)`qy)gNN`p zEc&KNy7|S|%4G$vIysDk5}@Ss+G4jFFYjoPLjqjCgti+Xe4+TahHvx0YOLN-F=cV& zF!duXFvMlA-6FZR#O7B3rq26=nN(dQPne;-ue^X>9W<-x)?b!Ad2a_fK7X432H@>I z((gTy`;RJ3REHfg6wf;$!orFR9iX7_`YewXikVI^0|})^=DnSKPc>7lcKKwWKw^mv-1=(jWSk(ESYuV!8_2d4Ywy z&6<0@jQzu-nUDt!z{yzTh?d=G_~O2mAD{GxkA#n@2+F+gfgjV|BpukZP|94q!(xxl z+;2E|$D?2V7*?f4%^KM?4*szEW)aV7gPnP-O5ph$O3xpZFF$T zlZc6H;m$PD8pF!@0eP}Bs9od(8NEKH3t$K;L*hg~({7WX$Em7>Qv7rPHgmgP?28ei zV0$F9!$=}!`qN&|M4xEB>OT40T4%-DF1~wUOf*>h=)~76e##wwO$B!vZp{FU<~0ec z!EO*pJoL&?iNkA9T?L@;$WP`9FU-roIBb2{6LI zMFAw-l_PSc?_oOh>ll?!3^Omdn?GzU#i-Khn@`4j7pzYiT7hf2^mvCQpGJV1H>GwN zL|ja}X+5d3>jLw~YL|w!nE0%Hmf|KHF&}i^yw~GjRnDWhy1YgwrQL@X2NN|_v&;1p z=FH{Y&E2TVp8{vK1tYmxD17DGtz&CBkW^=^8Eeu10D)|>a>ZEu5$)M>A1nmCW1Avd znPMa&vAq2uhUD?cdhdqjVG3^=M@nak#xa)-rVDpfi!HzI@(BDxVzgfjzzW)b`=oHGx)ae)xUnMiUbw6N z@ z&nM>`wHd#cS3w$Mtp>*d8B!8ZMt@H*!ZqicItxS54Z!cY&ret;_gQ+O*pMl1x4je> zEZKref?T}vj&jWv`@Y3A&X9AlzEQ4y*S)wPFo&%(e{Lj#e$9c#f8}Cpqp74_I&;z~ z=Avctiy^AubPINqL8=7?eV1dxP{J28qO!t#+d&$v9sr^V%}f$y@g&nRg{E!v(|^k2 z(&))d1nuBfVKW^S3hF%`vJ~AqgPf_JfV@}7K;lcw+*2j|V0L_`#b3}3^!Cs<84nHyg2647 z7E}7CI%<*&x1}W3&n!jJwx+!?bu7R8*U63DEkJ)=b3Q0wqk^Ru#WK5@9X5`z_Z4v4 z)Q}pmtMlb)_jWd!jBWf%40H{n8pw1g|C$>eLK}ZoFV2HUwSbo~3NiAN*8nxsP!E57 zbM4e&qr4>loK)$3lfeAANY)F9tcwlH3iMBjZ=9pVt?5R#8MftY8Zy>*( zdvIX&`@X7IrvB2T0cpSy@@Uc;gtsz>TR7gO`|`p5Ce3_PNsPMA<1Rsv6#a9bWhS8r zx6?Pk+**gU7s{;rGAVBAYR`0V1Oe4B)(||IqkH>;D0ju1dM_d={0MDNQFWPlp|!pn zmS+^{LHO@jMTWn&6=wkH?5m#%3lK2zLws>b9X4X?W&<` z=qvBGwcEVQ{ok7dV?N;A(|7c^v1}iRISotl;IT|d3*R%d&$uDJ17{UC-RY_<8IJJE z8;ijg%|A<5N)$)tM(Wz%8gds2_6*#6=>91=dTcAfK^}c-5?hyb;vGVbhrpbfFzqY4 z22#0>o3DI?nFJRom2$olNZr`#JHdFn;eI%Cl0q= zTxD&ZXI2DQJ)Tua1E}q<+PpG`e;AK45zO-!z4`9s&+4O+&hV=WQ@(cCYp~N4=h+IC)3XUWS2y zp&GIB!-(<{T*RJtZaYuo>E=g3+g^pmbkE$~9KTyYk@uR&Z6AMCDq#Uk$+q`zYuRDZP6u&wFPhhKJfe&xfgS7 zXiTGV!6td-Y?eqt|FpgE3$xy}*It+SoJ(=5-#3seGumfvwAbC+*Maf>y&F~v*4#zz zq?QPX{m6dY<*=z@o)`YOQ>LXd@*w{BzNxsBc78BaicGzJU%O;4lY|+5`GsF->SP@9 zlvOTtR|voIp*!PmIqtb#6X%c!P;=MW^S`uPo5WqrwnvPKL>OFIK26X^m%Iu2a99SO zxqf5Pb$6*3#X)oP4?c?WD=!H2-N+)1>^gnRr-lp3iK9zBpweARdUjBUpJN=@&% z-!cu4)Njg*2jw|ZKYK+y$A^y<0U`;B)rmBA(etmR@>!TfwlDslGb5SnEn$_RqcPgT ze_KM3zg%*$R#|EWjcAV!K2~^St!-vF`ZYUB=ZR)pxjfP1n%Voa!jYhKj;~>K_CZDF z&sUZ%s$EVa3tL{66nUBUG*&#-u_dwBR^5$lHf6>$WlCb zegys=J}rof9}~ z`#5HGeE)kJ==1md)5zjj@bT0%bn{2e&!Ai2LnacYh&cCRjcO zIt-qX11cw<6h!vjK~8V`hna7&T=2FscJ=)h3uiktK67Fbv0oW86Z#C+l2MoU{;1tusw)y@}ftM-`mO}ZcTyP$f|2**DM)k{t z>gwkdQoo<9S`sfv=HakUj#(LOK zeNKSnRca=s@dwu2(AYp^*oS>kk-HOga=m~>Fsgw)N5+CfrbbrTUZ$RjjW&x;&NnMC z8;dq0?eOk7YYdG0v?(dyzwz@s>?Rs)`?Q&Wkb!Gb7;=_2uFJKL___Y{5`<=^B|dSc zRy>G@ah)PC{%mms8M0enI=1Vcaa^rjD%3~M<)I7Y_<7qj2xs#H<2fogopyTN0@hFk za}vlNL2G-bPTk69K|XCHrd=C>SreoMBMg0aN|7u1$3QA6wPU6Dos=+`{)CM4AuP(P zktD%x9h(0~aSc1Gi7A|o<{)RjTuV_QHoVcc)87=GGto@TXdTc%PeVlDZV@iG{f+v3 zzInWwb(EO><#02G+$p2hkYx;b^lExlhRC)N`jc4e&sX22E`UGrL+Ffgt5E6e+w{_K z^9zQ-C?rQ5gy=vN(-0*49*ZLRGUBJx{9Cqgk^JlJA_U$|>VlWAQ-(~eEFQH&Leb9ziXG~p&xfew*ZwH92vloRX^L<{Uup(qz z{k#b{CSLAaK3phJJ-Tz_Wvbh}-?a)%(Q8;uxiR2u!cM+cW!@V@0g2sGCaGQz^*-9uBaQRh(*S)Um4zC+@Qu zL%fO5@7d&wRu_&AWfv+5HW}UkVPa+51WTN7LH*=bCvO8M*{4fYZR;nV8{Jz}EIQWU z!zFzJUjN4(Y8=HGYD{qoHf*A1LZ*P)qYmO;$rp{i=eVsY0N`04N)DOx0d-dt|u+g@?5ZQAo+GwYPPrNL$6e@^q&++($S;FY*amRU%<1Ha>dfT@Ov zOA(jsEUJ8~3&;GnE;-a#yb%D1J8>}lXP0ggOK>}E(c*qow_GU=VD@=WStHR2B#9HW zJbf0g6K<>bb0Srjsd^4<{uZ<3lFwWWwaZ~FQO)q6s!}Ae;?mEVD;1k%BE!FUG6kP? z8u=2>VicY`+uLvy#gYDT>Lu%|JHYEpda*GScC#zBeCmiyE2EC)9DaU<8%Q2Y@Y>5B zsZMyfn!d~?7yJ&JwTfeX!}l#w?m?*cp4>OjpAsY#dmiisrzr`(ayRasFIBmTtYo)V zR(v$xKD31`^J9+l0~&0_hm^xt=*b|f=AV?1KL0cgRyfEWqQgRzK$^>ih{iOS%E^Z4 zsLnTc;hTIpv+E4!cQvN|zb@W$v-h@`@%l3Nr2Yj?{8bi+aZBdp#J;XO>KoH9J5~X@ zb5Knohkk=}=tSU!NT2H9H`(boisAIS1(RRXC|ZgH`JuKicOK8l<~!RqNk-eEI7u$C zyb_dkg_J~e?UPczqX#z#(t(Lu(;fp1Ty<@X^}+(E4QvC2fg(sW4THEg4pUIn{7(o* z6whIm;s8VM{J6RYjOt-ARpF7oP|`3U!a||JSFP(dO%?(Z`%P9mfLk`lMESotW1PjQ z@MsWgeN91oimd4vgU&wBB;|009U+pCfg7G6U>f}Otcn+`fNo&(x)tn6zvgDeeU;qQXxa5F);0USkJAz zX~@b((qer;d7wuayx2>ck-foKAz*Ew^xx*gUY%O&m%C-t5+=OMZx7Hl!-?7fG zdBT2(zmEBl^C|b~kCf~22X)*Mez$QIlA3mkB|8KQ0AFJ)VKee$U6m6BKYOws4|P{r zVxXDHGt^|pbzk@(i7X!-#kKjHUh%BYtbjoD_y7j#zQ$o-CD>(gsWYdLdltr#N1CO< zYzD9Pgay^imUJ*65?_fq_}6B3$|xVJbeH6UuJ z610qpGNr8@&eVm!p?yLy2v%u+<-5K$_g@k37;1S37o#ZzoEQmwoTOLm1T>=AY&aWt?MMC0}H~05{?#{A7ON5Ghb8M z%9Y=%{TpfxmXm`Eut8HHO&d+rG5lfh-hq2d52sf2X}B`nuJEptf1=gW+Y)9&&Uv=y zdxI|yY`TWVq%e)XT5U4J8Ee)+S~bAwCzj`Ef?gU(-B{+Z2{ zPTy-|+D|kI5~)EqtaZC?NMsYV1Rd~K*EBu)SSH#-O zhwTox^B(4$kKv1MiVI@xgGvj8e&X*a=TOAx1BSz2BQ4sd=!*j+5;rRdwk*an!Tj@A zJi`?ff)kTeJl>_?K^MeFKJKXw!lFYMP6X8|AfIa;tBmH%-p)@Zxg@(C*X8_xLRk&TL9nY;Pg%d(@aczoAyp8pL0{MTJgw z{%-Jeb-8oX#4El2RciG8({rv6n*kYG4pElP)~X2(q3WuB<=inDH`KblKxxW#2Cg1R zKoT68DxbuOD(|wL+h@fryQ&h$m4_~XGehC*fENEXv!jKR)?K47d11BQ-37)9j20vh zAo13R!qKB-ETqhLRO$4N?kh*Gg{ev93b*MV6=9=1sm~)60?TnQMO&W-ab=2Gl$WY}y=WVf^=_<|xZR0>6n_&uGxyoRazv z|KP}|@XS5y7_rFq2+y15Z@+be&RPV>NJB8^Y|%dsOiy#kY?J*Mfw21l z&TNBOxGeIw;{-DJnru7L_v!rP(;{)KE4Gb_i2XS$g||DMmQ38!dwH;4+Ze_>SpsXl zps1#Y%HkRBA4z;PRp*4i{6~_8$Gyvod`(-?Va+=ZSaAF0v4$IZ z&#~s(trSMl*?D#fXfCr;=;LV3&u7}~^L5JW_QYFMi>UB~S(Zn3iwOlOv)vJcxO;AA z;A=?1P?c9X=!-^vQK~^cf|~nE3Z15zxF_$f)PP!Z(oX2-hmR5*6yC45Gt>uFEuijp z&uB^Wiqa2_567}GFF?zVS%2~o;6}!!V{FH=xa?!2|VwEomnR=YWz$|@cO)!+Oe3)`+Y#In6*yhwchD*)cOT}U~wd+ zsjQPYp@tjX%yzNkQ>(t94lJT&|20=D%2wchJ$Npimsi5S3(fA$gF2<&UEn%QS!%pF zZTE==g(>o?wyrai;l7sm3GGlg`K0K|8hvDQQ!Wj(%e7v7)dX?XHr=JOc7rnS65QuH zukD)*z$SR5Zk69)i)%=>4Y@a3D5{e1Xy=;OW6uB$=Kwl zu{u-ZWt?Fr>QjC}v(D*IFKAEsYZcbly(o3bH&D_^0-Ah9ZrMK%y_w_&NVI|w^F{in zHtju)&3W?@C+zb%{{RES&o`d-&|cxqSBi+3%Mp7G07vXt9rB~0^+(={VDHX*5)tz` zc=}1*hw%+jZ8{c`YlbCoo+*Zi)R|Vf)VEoIr!S~o3{sb??)FF(;mQzPv09G22b6kp z^zh_X*v+5wJ%vfA^CoKPzjF7#*`t-2)7NpEuVuu#Odqb^t64yPK}An-tK}TiXf&cQ z*W4yEr~$MUldT2~HFuACb;o_bT(7JTnSz%F9+3oQiAgjJ^erco)~QVSZ@%Nkb+2DrqZW76XJ(H|n{p zVE9U$;{2%a^z^3G24^BJO9S!>sH^mMp`qmka__T+4cF%`-{mL|HjK63l-J)Ju=M$m z9#I}^Hc4mLP7LMRibsBfa;A9m=@ppFqhD3Vg}x*ECOdNdLN6F8auu9{r?ny=I(WMA zo{tIMEo1&(yt|-ApKis^7@>({xWwFr4BT&uneVavs0Pk+c5K&c0&Y+T@;#Z+D zBnUWlEA#GZ^GkNVGF$-te(^*`#X#eNo4X?}&AXpr_R+=4L9a0J~V3vntaT@WOzEb|C#p;{jYb@QvF_K(^mKC9MJq2hSkP);?3D*!k43)+{L za1XAEO2pG3F`M_Y9$W;DrIOkI2DK+>v&h417VT)PQEdUBhnCpKcG!zP83U&+PH>=m zs$zKTMtNl1$`+lm-r9jX(z#vAbN%90?s>=3I3=~*)Z}Jy5b=UP!2qqLm=MzVr+v=g z^DJCf9I&yYx0Ch=YG0*|FV`=ih<=?zIr%TJ?Dw3swI5XAxO7+qYxTi$RB zH(tY@z25+vLZ@l91znHKi&N>EstbG&A|2otrkC+-g zI-X`Mc(JT%Zyz2#`0pu}>vR-!nf9c019-{34luN+X(lb<`DKE%}< z1X`v?W8=w+haA%%LOzm^Ac%_Qe8EIpmL}DKuP+*cC@~b*O`2w zflnirSDR_ixDwovd*5jyg=A|C?Vr}^8gwcs9&)OM@~bkpc{*J*(olEtjQDPRIi3uCCb=Y;>Go@`c1VQ52eT{Z#EFFl7x;?bFZ(!jgzq`m zN33r&Zl|MNW(m{ou9BOYyjGvLXPB|VW=-&ZZcbkv?sR7OqBr7P)A`OVW7@v0b3VLP zn6PD@oDeoEZsL~35YB?f&_$~>^babsv95RU5|5Z9rDDu$=@4u6SU3B(kbZ?sQ>LCk z-ShfKXXRa4PPh?9+*}5|wIpHW`0Coq4APiQU04zkkB|zZ6^H2CE)>sH-p9Q=HzvF zJ7>~69oc{yqJ`w4-1)w>HB%4#7hS!1Hd56#nKl1*|8y>3Y>^hiwR3$n1LTg;dKEFz3EBVTt z&~N4YsQ-cJS>~$Tc;zdx=b)WVLaSvUuON+E)=VzkW${AG-A?IeG0j5ie4dr9nHc$R zgh$-pjw+j*eo{Cg{BjTt{QW79ZbNUi-Jzmy@^$Y zZ$;!##6=f@tJI@!l(jeOETWCYOXkk&a$}^VW{7g1nZzSbg|CBJZOeIgZhuM^o-2J) zFaM1c&5QaQm}ysD_p{vNr^(Ppoyq9>eD}+GHNgTc)%kXSGzs{L*WI0C^@TuNIGil6 zd>jNSm2Cdp^TcAr#-X44c-+6FM`{^MzllMIn$U%>uB>UX(=2BIJa;iRX?JBj-?BCMK?;W~P?A$x7#g&T5$e^T1x1H<=6!+4I=SW%EJ1=$A znf0g!e(T1Znh&yf5h1)dY=)AfuvE^qE6wV{H4o6kCMziZYi9;cVIiwIt3A}k z+_W{~8coc9Zov7Ryt}Ln0wwPyAxr3um2Q~8jH0F_+=@ zrMoR?gjHkn;ee!x%s|krm0%MBEXcybzJ@N(zp#;E0@@bLrw6|m&Oa`DX(;- zHI-^>sq|P4z9VM>lP6fCF8ES}p!yo-gdVNI90nrx425BYije{~&3RSy?qan^=Q^

y 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
))`|RiG72?;d36l1N3Wqb` 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
*U+Si}|LH`)1TpZk3rU|Lpk? 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Ⓢ!A@f>0#vc;&` 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

02QSv-?dZG1# zF!#G3-yYIk!VP75zMniG{Y%ec0TLoZ9WORlZq7v~x1U?$S*USp7fjT;dxQ0yX0Vha z;FApmg1exj+m?jCXlyru-J~-V=DQ<@Z06x3%Erq?>Ta0KBJ_N?U$~w8iA5Gogt_VO zv%<>XmT_=)ip?yln-#8)=HJ54O)^)bD&q;0xn7}{)JfrHzR?n^aL)%|!EeHvIV?&n zCfjYFG#2V+S6@1RXI?&WJNIQl+Z$b7{*Afk2q#3XQz$XcVdQ<1U+k}|m-N<62@)5Y zjLiD?AR(i96Kagg9nIw+y?@HJid#N}=8r0Fk~pAB>>#Xcoq4t3wp;d*izC`gx>b6O z8*xD~sM2vw-1DODu`I6dsA=mIBP}>^JjW)D-#4{r6*B)`=WTD(KQ<4wxs8RjsSo5l ziHQ@G0sAjSCX}`nY+nV|3NTyrTkd1Wx?1Vv`eRl#5rXEnJTgH-*$R$G5|hkL%%|-a2iNH5)foHI-pK(i_Fr;Qioyshqj$N9$NtbwR2=3W}nj z_qf)DL$}UTMaZP}!tvc#V`5W#^Y{O;|LpQ9w!vAj3H+ZO>hCV*os;(Zp4i`2(>Ho; zqH2kn&WugRHC(plJE`?9@7r5`Kxo^;#waMAsU-^Sum}%~hY~kq z+!LPYJ5V&kbgG~7*L36NYOimB`u4NNH-1+qA2p29I=gtgR;2{!+~pr!-@8R^WSafS z%c*zsacOfVeihwVoLBm0w%QeURMVdFRkfAUrX7A&bAA|m>X}&V!|#}<6_T9UZkO~? zDXU7}SrUA;1C)30t%pkziGR6{*$CsrOo867p3GU}t$&IMZ?oE0yRJH>lH{&kRR=cm z#?%~t_Y`P}!Sd&@Fee9CvREKp@iasgCK>i$GVYY1ckqnuHg@V0wpoHc|vl3ZS zbZq5VulBj3JWw792%a7Wx2xn54r|uJd3qG@A-f3#H%(5-gA+=VHqBDo+eLuYh9f!V zMB%pHRnjRe=}fgk9M!Fl>Is}n>OJK2gXA<{XCE?Gvo$?tp1}r<-w7Pcf55xt!8?QT zo+bi5X#=|~f)JI%sKDn$$R;T=V0;;}gor;O%2G^4BA9TvoFc82^}Blpuh%Z>&*{S6 z*YsOexXQDQ_)bON_gl|3LoXVr0JxaoCOz~i)(!_1HYt3g+gz>m--u(n@{Szkifl`E zA5&gPdcxk#A;3+%5r8v?O0ZUVNUk#HDCh_G+wgzZ?zf#)C&`zb!Xu54;)qM63)G9l ztIKHsH=dxRrS55Op=`xqCA@ir5V&2Pq0++uybhL_y$^EoJgQO^*+eKFScHeDurLcL z;*G`tjwYn+iN-RhPg>$rQ|+15pRiFTC`-LGH*xcn7--PJ-=u>(w}S^(6Rt#pA8o^_ zXB9L?c3tz)dK?p6Ap(kmLC)+JIo4>h#AT%aI<)OR}| zq3fN}s{x=2$G_rm9SCY{@RO1((v!+dO(kEI)YrFzA2roXJL^-N5+27lvQ4EM+ctW# z%(L}Jo8mVk7Y}tkx`OiFFu!`(e^rl(_i9QNwpFX3U@7gR&6r z|D>sq?r1hypwR>0{#v!eR2vFN_7HP|Q4e4=&FdtuXVfE!kIMX@p=l3PK~3UcjQ_`U zj6|_ZOJHaC4_ch=3%O(uk0BxT(r&!$OX~iX7vAz+_!47VnTP0N(;M$TX0fUa33Y|5 z$Y!Dl0Yx_IpHvxupBX0No;JV{5x=%7Qheq+$&@tJoclE-v#U^be2Ny@_CT{4 z9O$~<*^8ZtTW+0sp4p3n-`RQi&S zol1SL+!%VzZ!n@_X#4RFk%>JR&juD*SWP8wdn^QJ&Q_~>#Ynz8Q#SL{=lbV(aia~u zf8bevA)L2a%lZR&hT>|}T`i9!|41#8^-+JP;rh%I3tB=`;}(Pu9t`oUGibMSJ^ zn-k{rRFcGjv&|U=XLU-58$6k_Nmu_hS)yc#a{}U1d+g{+Wmjb<3*_8RZg3i(H6%Mn zEz?D-@iCsCwm!AqhQfX~2I+#UbmJ)q#{KqTTFjWig-V%b-I#G1s)tV0#dHSMq8%AOOCLP+?Jo(IVbHpsaCYR#4u<(IW}ga^XcEmve+e zS}#vCcyc9%QxTew#GYYyaU#CpmJz05bO?|n_e=181VWm3T8fY_;*GvJ-D5u;;r-Ob zjuTBhaNQX^9}cYzA0G^Z6FFzdgJmo3Ah;y_vlN>V`aFO0`Q29TQ_XVoIT&wp2eIx> zWHn6MWZqg+Gl4ZFwwCwRbN>4@$h|YIY!Y%U*q2)vmtDyAq$69oz1UIaxUTe2`nO}e zs<_HoE!_=HM#vRvvDE8Y{_b-_ACA<&r&D=bh@8vRV&vKN-Xx_C$`li;z`6I9gU2{t zivy)%Lqly9&W*TUg1~co(HxU^_V=DnwrdLX-%*@Fijrr4UfknfOndqUMe|MQ919Q`PaA<3a(=w}sz79BwqyMR!g#hHRceBt*&C>2=AzEEL|GEtw(V zyAA%RQ~y2wlH7U$ytQu zWj&UMa&3Ki3&Bkl&?Kx~XW%31bnj_b|AZ_sY^6Cs#GCXAcSl!C7I}sgk`-8EnB7)qv7_(MAs883kz)^EyyJSZPomD4r7$CQ zHQ|dE zy|v_|cVFjdr-;leTHFZec4rgRsoM#9$HFcgpl}2rFsOGqvj}U8ZADsz9Ya(iBe|fG z*OhK}-OO>Ee)jC+S2xYyqh}*;l>mRqWulFgnC@o(8^Zaja&?iB~lgV;KC-Tps#FYn}Lk_6XdUylrh z0$S>AsWtbGddn;Dn=2yYmo&?%abRsH7`q zP)}K)4iy3WUi+t~qR1q=USve7=Cs{+Myn5ZAR;+!$YMQL0mhKVv52o%$w7_V75E*x zvV_@@{Lgw>*jG4C7L2-s=@4B~dfpPrW#ZBPO6`Po%WaQw+;WjkuXMvL^(Se0-@irZ zd-QX^GX;V-+2ee3DhH&D*I|3!NY8)^f2nt%a_)MIMbbd&RY_jF+vP^fa&o!txGC0GI zRk1&6px1z9#Bxr8?jqjhltdjD(o`J zYT-!3;GWQ`M**zW!Tu9#0CZNQYYa-Q#^47K%Oii_S`u>!h~J1rq}ZL9mXvmVjIw71 zuLBO=A{(@@6U`1u(vFGe=R5O+)2#nYh7*)s+fv&StMV-g>y}m_K_x zdWFwaYsNY_*;z3VV$E2>DG@*4az^#o>{OLpu!TuagtymUYP31|CsaMoE4roR;;EI0 z3WbbLS|Thut3lT|pzZA^^V+xmvo<=%s36OQXDa{|nSyJ#o^mNhNe|xeP1nR3US8y7Ahs4ZY7oMz#^|9H+^u z_Wlur=2mc9`%yRHyTl8czdfxWgt!tM;ghW%G9fVt<6U7>-=|5#z%)Bc zV7!b^!FL(Hvv_y8DMAGQ>Rg)KdZqeBmrVUy> z16SOl3*S%355hXv3)u2jyyBnH0x4+6G7Hn%tkg)m^(y;MVO+M#rXj$rHe`L)0>G z@IzX3_(Nci%5~WGHE3vLzC>gk{fNq)B)mr)KB!+`_q_RJ2hh8Va39ijo}*wF9;XR_ z`slp5a6X`)W~|h4h34SpaCfW^B&O0(~INX=RrncmHf_pBkk zNS%iiOCckjfQ{kksRuWTRRq5DYqYK1WiRC=noBB8n-4+-<>vOXj!e)Zeu)3~_8!y4 z@iB8lVJ`Y}WFSp9ijm;S_z)R(-WAVH2t2ALyTrR{)bsV*4J#Es=fMkGuAufRTL*P~ zM47d(wDc*MNL?+HAfnSRNlwrj4*o#1kCzEI_tW^-!Yix$7pYMj1*^a4e&<}s1m;z1 zt6@!(|90d9*9iy{w2WJB4n^*i&zs5})}5Me4CXCgOZb7g_rx;2w|40lD_fYKX{!SO zLvU2iu`%BLw%R{3p$ftnwXob1&?Qs;z%jkqO8VgQ>x(kuS>IOii>%efqs=K#+sBz@ z@anoL)R^Wb1@>$1S5`fKf(6`>-2z?hg-9yU(+s0czEg!bYZ54=R7v5%q>;=)l==RZcjXx}jRzMOeZNvqiP;Wd#^=59x} zwq=7q13PYbPq_`=YrosYDV)9JwG&1I$7UY(gPY95=JfU<-YxX}#Ldp?81IlUnT)PG zmae@F<;&$(_IxG=lN zM!p^{#ZR~Ztbf3Uyp9_|igHoR*u_nQ!uZ;2KVfdH9$Bzp?` zO?|%J*i~)H9&#SnOYpqcG5!Yo>Q_+9nGLxjHfcU7eWCX|q}pEFJgDns(8wV*`^e$+ z(v^Txr@mCYMg7Pv#`hpP$|F zplt@>(MxpehbvqyFnbhTXdFzl|J94a76w%d&{kQ-4&vi}_iU+}xJ~b@r#~OviE zJCuma9#WaQ&!7@XYimc`GIL$6j_$miL#_u)l#)kF_M6<{^xZ-0rW+B<^>V08R#u?HrHwIa)m3GPahpw@T^ zFgfxcdz_&?fuv6shu82X9WcQW!={_~zu#=<3Me>)p}$qCf1X1(4?e3*9q%%WoyI=3 zB6BhYLHqitHecqD@%V+DMWB7GB0eb+z1b&KXQ32b0T5@F5Av(h1c*MxU_IIx7y@OE3A@PmNjxbaAIEjZ;@ z@oJg6%1RL3(8r6gckR-7?R{3MZmKE5{!x5t48&}@J0+HZ+;m9_J#BB!E?;jIm@azt zG^qbZ6o7zCY~Ui3hCQ`&<0&Br*wM;ii)*q0hkAk#%lS9B^v&&SmQMPlQ-4aB&`q(p zC~*FlwUkJNLiD>+MZ>GtY~1pe({sCVld~4rjD;EzYCSs6^d9SZ$E(tVZahHgnlUWF z^S1UoV%4pTl7HQp>SXtzy7XNOg z?W-{fB>@*Tzz+Wr!(Zqpo^U>~w(MQXk!;4#HRLs|2&~LF2j&NEglrE+YhG8m*VY!+ z)GD_1c|dN1)s5i(@%r?&lY($5bw(4^$KYdj(p-Bg*s-CfZl@6i)5b)+`=nE%`b@{E{NmMAJGrCXU6=GxdQjmJZ)Qgj)on;i1^j0k$!CYl zE)XQMc79izcG1*R@okysgNE%N?#BUg;yIad{yW~KLSZIEPAB!0|BUbt6B$Ed&IXcd zEWZ2I;@)YC^~xp0I9q=qyZXWz>e9$xjA?JwuKCSzgik=cxU%5KY<*`p0=_}l4ssJq z!RYWjLbcnO?SM!(`+DgL!dfM7GoZCzQA~TB%j+S86C*`NCfD!{Zo1uqEO%V-Z+!U} z@v8cz1rpOGoCCt`ZndUWToFs9px<}ZTCt0xyx*3J?S5URoUB`AFo5cfYE5d6vXj%p zitZRA_l##k(99M%P-3oko!rk|jom+B>I8Hs5gBGZ7~RF`TZwd{Yxu|ti^v_o!I%s; zn)~3hs8X-x+?;+1U35@=jx3hNP&-a3SeRsY*0o|>wf^*AKV)OPLlC60Zz-kS>QG3^ zuZEmLS=&k=l!59-3+tijiDRAy9oa{sWWnr#J&)X?A!kXWURwHk7^RJ-Ql8nB!9EOK zf>dQ%$sJC3e|!O=ISW5kE$6YU*ieRi@gzyaAd|Zm<@T5KwT5r?!f zzpk9q%5~C8Ybu#$_WW=RrrjMoot`#b=3Ih*_vVFy7ThJ3MbG*=w_+h|D4qnGYgd}O zq+=e!{^=YUp`F=;xVHNd3m;w%y21&P);{bChI03a_b<4#w99@AL=lIV{$Na%`!_>S zdEfR?utUfTvn#z#W^o>gc})D^!KQqMM(?I`PIlV>gMY$l4RP5l=RC9r+52&p0o2cv;_GUj44HeCfQwknw`GKk-v&_ z&No-QREdb|Wk0w6T`_;Q#_9ZX;SYBSGGEU7kLV_NO4%0|Ys2&fd|SI=mLO6~O25;2_Rq!AAB-}z01HV6dotLzR+zdlTo!r2e>*b1WX=CJi# zG5tXx1Oe7Qr4AkB*%4hRmi7)YL3$S_RGLpn^lJ8JA9Bq-u5Ezq10`y$bVBaD(3Fnu z9KJuZBPdm9f)r;Or*o*n*=^d{$BHN>q>~|VKnmsh>3U{IjpOevjD!t>(uH8j^2XCn z33HJ@lCr~2>uU21o_UO(evDbSmi9CK*_6S1RCg@;6F(Na)Yn8XSu)D3Hp<(0^vI+< z*|x8#`jz4DKwV=4sXrX#QhWU!wO`in+ie|Zec%hrw{Dqej+=&VX;}nloHKOtd)2ko z%T0%z7)vppx^=1ij$D$4r;Cjy>&OIqLtW*gS`LG*y+w$dp_|N_!{cY3o5M%yxFXhH zkOMso-^9Dqn5O|6t3-dZ*1kwa11zDsi=Q+0*!Cm#s{ z)urfF!LZM!XaL|hD+Q>~W_XjTvkY3u)mSz>{LU!mb&rgQrAedX_|K>7a;Um`CqDke znWoAsSi@=3oHcn{nXC-Q;1Q|W1EuFna)4@<4e-lzS%Wi$=2|}FoH-KzIV*dksOtQX z+-ZrwJMnI@!q{x|JKo@LwNGL^hCHt-td@Ly*)}SgqxjfQ%Mz;2suIfQL^o?*soVnc zrjn1C&SHG(&!!$XTCxDq2M6w3D{8i5ruy)vBvW^}1H92U%?5s8K4>{#{~*fji1<9Z z<*Iz^1%4o2plOlI-d8M+s-6pIRB32aTRR`!?1V4`=m2L9km<4`N|^v&LwV30O8dS-230Pjo)obvmT+8_!LZddcrGIhC$&LsBM zu34;W^3dD^zVrT)e92- zN11H%7y##saaN0iVh3J4PCvQg$$D@r=wbVVQ`=U_*~ZhoyG-!DSpi*bHh1L90c4o)ftpL_^>fB@)8FdyW8xO<1_j=3|Jm&F zO}B>LDDj`P1su_zuOuAR_6K5}E;hdQIq5W&JyacOq%nm4F}hyX!OI;P5+8PPNF{bf zFcIx6pZN!!IH+}W1m4)yZtT-p3oqTEL2tSXJAZUCA)_SbMifzvx6Vwrr;mIPzB zu44QXmpkd>{L-$hqDz+Wl`sxP|IGGk^YGv%(1ah*Mlmp-_@DPe-HJ)fiD8!hhfiohE<4$%@*l zi+)S+r0M2Itb*~cSsM=9^OG*+ZH+`fhszRt$E^LdR4&22 zbE)9j3`#J7{Lq1mzyLzOI;5%8A8sR2JfHre2d^#KH9iT4ohye1b{;ak0&#fDYH5kG z^*qllWgXvu)Ol_y?`@`TeLgKteiPH?-+o&0XC^QTEEvUbxtSf$GUUj?6}DRR;> z4FL5@yd4)7@xI2jBHV`9|J>(`;#t27rKvZ+{yE)3#76@;3v_bvDFNa5X=iWX8<5j2 zDLMAT_RuU*QSuD_q{2*+dn)uhBU--c5|?cwG!i;!7>?dc0Rnz~(;QT?9;RJ*R4A8= zvn+oaNNGEG?dEc|TUJWfC!DiP$NFMP(H1JF&40N`oxb1J#d#D)5Hoam9KfS88|1P2 zMXQ%L+h`u4iOW+BV3xezAk98pZFhU>s3zk5yjt>e%~w?Ejst;AnV~0>xPGFgSY^?j zQz!aQaL}Em^}9+ssE$nSum-wLPLdHsp1O76v zI@~(Bt_zh6V5nHXEXk11PLR*uz-Y}MYwj3fjN{7Oam#AUmTt)IggyT%P2eqkZjF02 z;+SFAS2OHDplE$%7-f&2IDb?@&Y@{kvBTL>6$F=)D!-8wi<&bs&fbJIx1wAEsb=8q z(55R_pILehM7&vjxixwzOAl5i5PH_FSd>Vb?Yevs=RMOu76_c{#B5hCrDcG#F-OO~ z2EuW*$-TfvJ><2~@wl2#PZCdnXOs$}%~C|4J`syknGpx6M6Z)?D3zWc;*hdC5+8-w zs7u%Wizhpo*B%_W5pICWE?B0+&piKnMsb`$4xa1sk-Vq@2qaz~%HTThL&!e4d;M^Y z)ynx3$j+bmL=c`0SvkmVmoUFAb;wA#TT67@D^V!d1oYCM0qt*^6_R*CqexBp)`bjM z%|?nTrpZ{qN22sET3DY6Yz9hRwGM-1s!K9|499#&4GjZwZF}w_&y9E8kQx2&5qEI@ zr}}FC##<;st2SBa+aEZ}QS=NEjOqN{-#k~Fgd_C?l+g&{geT`36EFOCCiWl9aP>RD zvs&)2!;-h9#3Ua|*P>P~Nv&Yr1i7_8X)TRDwt#zUxLByq$RWE%j%zxQ|GdE2J4?zV zqNPW`QD!srJXenUwn?_i{g`ojg(IL*bSqdRl_!hbqZ|$Wn0M~(*&hJt0*!Ik(|0h2 z$}kA=UehXOL;B-&fzZ%u)x!h>9)d#6^Nq`zDt|FOOEaD=CangiaU^#8jkB*c@{Ltw zWwQnjoN!)gff{{-i_E=(O-?UX_+AtAxG{_G)0Z}e!3giuK(5b1IL~K8@OwYI!Zs-D z?XC}{B%P=?5pK4O^w)nocGW`BS#o-pNR z$|!GB9kSSvbQy)bC|R^SY@)k9+0Q<7asTCM{f!?51yE*bG96l>mJU8&_fk6~>#3NF z@_mccRo>=b!_*_xHukLOGuf!ppE5#f?bBRUJ)Ao*b;&Sal2LS z0tL;id<~S+1fxd(-r^yhgBI|+;p{y@dP8-{=QC!7vnxDdeHTg5TQr5+@PwRYLoN#X z%?F4D1!phv+R8gs?ZfaKxv>x8D~{*+UbA4?0u3YO$yE5YYp@?-47{wEb|T(*?Zk(86C2W=Kf>CZDyUj{Chb(3(B2+KDjiZfNY><^|VGEH^0goa5xfkAc0 zvR4Qz!XZlwl^0@ZDurx@QoLBkpzO$c6%co7x95m(v8w z<7qr=hp8D_aYcM*z2qFn*7>kyTm$7$65XnLi8!bct_5&PWULb15>l;4aBjofE)|<@ zm+TWxKB41npu8*%)sS(Z$?T%2EO)L(Pj0q6Yj;N(bUDzmr$l`9be7b2A*L| zcp?h~Fa4Rhl5KRqt@Qh!Ew`6x;yZup+L;Tl2zI=Oa;#BBz})qLw9Lcm+6K2yRgMr1 zQi#LcQ1Kjkb5y$k>ZVIlZzW2-*JV$;K0dC7+&8wXzLV?!kJj@o5pykOW7GZU&CPAE zvCT~F9{Y%EkkKIZ*F0Toq>X#7bgA&df>!QMjtkaCtMM;62L8-~GPBs!ZWMxWE1bA+ zOQ|vdmwhycxi8xZFL{6Bu3VCjWSLG@t-;B*NYhB|;&T1B>1rZAC2RMpN``M^%0*mw zTRLu66CH0WefQP#ekpRCuC-Vls_)@xI8_=9t6;F(vI}Dy+rPe#35%f{l-;GCc~)>K z@@g_%V>CozNxiF(g0;7RL_5H2&3r_+BxZtG_W~_6e_eEJXz#keWJW{f>V~M%VtsY5 zDd$NY3R1-pv4OVzS2%dN7gUeyPiH+s7yZGyYcg?&e`EcBv%ai0LKHkAzK^Y;Bx;?6 zl!U7rFOS_fv*rCC;Avb<&-&%in`xtL(%Pz|UT-fb&_8kT{6oeK&^7&$k?m_U2vdHK z;z&iO<@hO1OzlJ)p?g-Yxz^3Ry|l|t_2$;;$+8pIZbY`MAPsB`W4N zI6E%DpR#_ME1CUpIy~0o*SrTXP3PP?8bwf8U9SiIK)|_u(v`d9g1dO+z&TI*;hDt@2QepQol5$8C7x3dqiHebl7tCSxedmcl&I6O@{ovJ0@}d z!5Eo%J3se}>qo<3p8lS$=~9p>yDrJnnA0|#v%ynuN~q?^miLeVDa#b2z-fKtzmP(1wYQR z>L!ssC2GCYpQF{A3M>i81rpX+87oBBul-p2ik&_-!=cj)`4bErw}nxo`q)Xv(>Tct z?WiNh>0`ADi{kYf9v+eifdjk7wEyo&;Dg@CUDb<@FB%j^>rY5j2w1|T>egpG1v$7r z&y74p_!Y%%5?%Gl85Cd!kI@*i!8pyR28gNfQ4(Y_bkI(VRgcFyv2{ytmx&;p5+wuAnt5^K;yQUUPJ{MC zB}Ve1z1!8d5=D%X`0F2v>n*^KqhZ2WzxhC`_tvZBTSBqvdBLh*w`|4qZ>6()(nA*; zltLO;uU^ar^vP?R1Q4kClA7Raer7M*{5RAqkLk%oyH%-%Te2ay6EdA|#0Sf{^?ug3 z_jz|FBYA|TluSTwKxl1Gei8B&M=Y99*E&R*`+|JZe?#jad5wMRYDeSlxI;$%^H0Iy zd~{W795$Cu%!%IymnECN2ot{VqMdy&HPwg2`vWU_PG?z!7MK0_Y2nm13VkrWZtFxh zahq?3$f1;|pS5QQU4;{*+WfPXbdAv(PB+8u{jfLd;+J4-yj$x&hXd_T!v58I@b+*g z#H=a_XXkWM>bUOdmgQOb%?P6dlD|4Ha=q|_MH??G+18cpB6at$ra8ht(#Xx$58bbp zd(PV+J~u5KR&n~BMAsii>WlzuWs)6N5xK}?ht|3j1kNyQH(VwIB^F9CxhVKe(l+`Say~Qv8t8v1^d+FBZz|5G#?m`x=Zh3lVIM+)^nwz z;874VkKy}w^Ih6!;FO=Hva=KlYC&R1-BB@?gnnO$NihJD>LuvC|rH6F<$S< zJ;~2Dp|6=58lKO$;;%)8$J?)+6-_b1zmAeE5zKk@j3(`P+%Q_OwxXc@YRJ_?8MRPp zYHwZME0Y&eBb7nu+ZVvs2vEI=2Gxl7TCl?$hH;4DU*=hHl z41gZda$t(n4;Q!wl^&PTtjm{jms2OdqBdQ3KIs1Uc@1XU7#^FZM)$(P|d(B7g@c!PQnJ{=r5kGYSDkL0tKadvKY_R0)E!;e~t8B7y;37reSy?r9NMnDmNS-ksEjpn_oK$##gjs6E_P$E@ zhp*=I~2gdxD^g?@ljm^ga39 z5UHqIIUsS*vMB=2u8z|@RbFNbgM`DipFS5CeexUm%o9N+KlYnF1=9k?lew8aKkvl5 zVg?>Q9E@84Vm#R8<<*a0Wo`etj`4++4{)MO)Rjwat|Bk^Au!lYPWiU#)J_dfNu(v@kkKWc>3iR z=`J-9<}!&(5gC`9ZqBBpW`~9hX146*3iH=c_!SQChH=Ur0hRD8nHO#H`GomtfMAnp zb1lPY=7}zKvJCR?_PS8Ux#A{^8hsSW`Gr90T*-$Rz=ouI@N2aak<2934DXX$LnWoV z_QM2$$l6cZrpc8e?VA1o4iA1hO>VMrd!#9De60WMc^mirSTJ*px<(*fuk=Fgkg$Mf zHkSozpB?(oj?f6-Y%D5x$fPHOnH<1lrS=SuN0onW188K>FoK8oh%Q{Ml$Q+c?PZGj zj-Zo((kAEPLqWTw(lTYvQ9cJ+IqV?Tp|GZnGC}I+y~m@3I6eqXMJ_VC)w%N*p1)Vw z6#WHevagx6Hr2@iD^HtG{#|ZcOiG*pzZ!1WfpaY4XA*=eElhiX3#k(-lM$AA^K$Ds zjn|tR>}67U7RYo|J%|1sSHThVau;^?NdqNGTzn2g>k#Gn2Qc$?e(Otdg*=ID8v-KTbo>L7eC$ zDD}km51oUkv+VHGY*v((&yv4;D#Xso2Hnt~>=M_TVjPsacpfOI?|pcpUiDrKRhb~r z#41v*(efz7%|C9mM|4ZfrnyUxZaZ;oYSrjY#cvv7LS4L`;?LvxF?K7#N`(6oc=yWJ z8j5=d!Ug);8hz_^POmLM4OEVwxnMyUW4_9%V&)4rL-fMDa|y&`XWwG2D@MAypk&wG zzuO54FWXNOyR60ltLwdV*zjwnmAbN7p}6DKit*4oF^7nd(!GV!K6YKE9ct5w6H(!- zvETXZv_>e4;2PaQM_MXqaT&frz;2BvYUzBJk=wr+yM?(7_UG`gvhZudn$0}I2*}RU zqUV5n9A`iky506(OWsOci+4^9O(d+rM&*VqKTDHyKC%1_{b|YE79fag4Zs3P* zcLXBZR20u_+E_k$wHEKL+K(c|V)ONxzE#uRyrZad8o)-wT$l+FE}Kt&$* zK4SxN;cV*4Wgtz@Kx&=jwKFU?rLu+$eBlDTvF&;xiH9<)63MNfbVXnjBgnm%=P){i zw)*GqlQVfAV4^F4<`nu+C_swx7={SZz0yzTzc%FS!qh2e?E!n-$tQ_BT6w zCpdCR)1(Z9ls15!Oyxk7oI6|xrWlk*KW8uJEp`E<4wxpMNK&fIcBCNe?1b_>XJ-d8 z-~Jik8fH-+Q8>>NzFw2ucZb2bgStLKgnZ=#`m&pNJQ^ondwSrQ@j#f;YB0E;Mg31s zcxDvpJro&VDF5d73mm1rR9)!mu9GmrMV-^=Tfx6*NC2COE#=okSDF$-qeYWUwFO2` zjZsP)kL0j^ZIV@a!&!k{^dx8Stm)?J|x$+W#(xKNB$&M;(@MzFs6{Tj*stBD&oa>?M!U4@NnlZH=8Oxm1~T8ohYeMNYkEF;O91QGuHZE-T0 z+4*AFIrK9d-Pl)|J)LID2>ufv8StTVJVB`$-4$A!B>i*H#kHsrAs4ixD(@h0yyZ|NxPMc2R3TN^ zQYW5GU1I8i(tM8w?Mg zM?eIkh?;RX|Aa#dpRl^)Z}n9BlJ9Ke;cJ^B-y##Gcv8=W)( z`6~!8U0d&$Z+Ly(jnJzCRM?G=nVNec;^rwnUo>D`TpMObK2|gL2V>Sx{&{5sgbs%L zeRzFujFnPx*LTgGU9&k{baK1TH7Yo|O-t*9d3C#;d2erDO)X&Un0~poNhh??xdsov z#-%cwkoip@6-ne!5?rzQ2wxe;Qo)2$-cC<;(>n{f`6o=}#8<+LQR}VG&VrJVI;RQq?s0c4+@nHong|-+R{Z4LhzsSvqG4%VL_O3rwVspe!?H)4bQRYy#EZuqDA2}RYWSzeB-Z)Y|3y_jS6Hf%FoBN$9AXh5q-`pAu&(-Bf0inHEwLQp0l% z6~mHr$du4xk(zAhHnQ2iS?1#pNT@=gozY2QEg0@C`|(1_8bHq$yfA6k#3cNl4Kj8% z-I{6lw$wiJWz32@#VKCKW7q-_CkDRo1t2lonQ`-u5$KB#2hqa&)lnc)H@5cWJmB_A zOwsp^Bf4w}ZlKO~uC4WyZXmbaxL=PH+^pK#w5%7`pAlO&6_f6cOrlK4&rIl}Vbu-oNk|ekLi|Iwj zlITPF9t8u2txb>fA<(z^y+vPw@F{+U{)E{$;n;>>1^8_KO(&0^SCpT)jcnWRYYj;0 zLi7_|qxoDN!!$-sWEf@@nOkvvwe%Naiu|NdYr)%#KchY5wa&oS+(TcxI77c8AA2GO zC%~Myh-UVWFoAml*ZY+5@~lbEF31b%p}4`26YrDpVWG)`j&*jU+sOAVXfJLKuV7<= z3JA(=_P%)6xbU4J*YkX@g4z+_wkKzKGaY^F`3myxaDt@Wf-Y1-@+Xdh2_|fikdHYN z%CytfTQJF22D%8S4cCh35#t%F!(JIqtEDNac38e2c^yCbJ-0Q;t}x5#-~XfN+~b+< z|NlSdL(Yd9hJ`SPGB&mxa%R}DIYcU_usLMpoGyn>*34O&Sx&>8LWoLH7;4BV2_Kn5 z2$xeXU3Gnb`~A89-naMO+w1*$z8;VJ{Z`6k;q9qERA(C#P49m-0ICa`u61mKji0RI zdzjP)OKpq7`4Hwrc9Z{lg3)Kp^Rd&P)@w14rfQ$E{@&V4?>PaLZM&SBIDV50awh#9el9$rOHqy4MubCW@SqgDXHEthfv;vhe7L8 zAkU7ox=GW_5 z2TUfEdi!PJ6Nx@@P?HX%Z@}ph_oaxhuB!MuI=6o9aU}XhSGB0f%5r|q`9Ro8G_uy8 znkOYTUfHqQ(rlj`_mA4^kBPrTv*0n=_YyyBpD#b^gUh-qNqOEk{j9mIt!zj? z5_^mTctFPp-Z=)laTQ+_a%neRM`>;9lCLkx`rW!|RHt`&`VZ`)Uq4iT zh6XWEr@QM^KjN6LbnH`tQ<$Qr4VGbD0wCprBy^q;{c;tf6+n~R7?=RO>+TI8zlY54 z@@YykclLS`dehHy#Cj7;-9h~KFOTPS&(8Vi)mCo0cyk$tFhy=Xdvnc$Z0Dp%^)5a&}rB*aVlW9}#`$Vi3{~8UIEK{+r-ho81p-`;8yT;v+Cu&R4`2Gpd zGSgJ<#-`C9Dl`qLyd}5Q_=J}~h|b84+-!xlO1*u`hz+m38RJ*h!`)(eIsMf6bIQRl zZz@1qvV0vj*;s^}bA18!yxCF@;yS3F21L;IC3|e{Sh7z=`pvu454XAkLg7t)An!}! z_4ePohu}TZe?}S_&I{iAI>)Cfc7j#%$Z|D{r3%~{viL){@!Mx@~nTTA~LHBRvHJBJ_~x9azO z=N*^yVzjlG@;y~wPh4yq@`W@gN7$!2t*GnR{EY+|1HJn4m{>2)8tI*6ud zC2hvl@Ojwv3?7XSU%jB;)j6%)I#YOlR5 z`Jm3UgH|$=aA?fXHKn<<8k&4Wg8V-Ps1G0uChL?pe?C{BtSm)aUdndQYDrq|A}X4@ zGHU)X)Vn(TgM{J&`MpxXJv1?GNl~R{nj$C={7Bx)u0+P*F zXMQiPHkA_cfFs09@87OtB}Ydb)z&q|xHKEK&#$Z%z=BBJkN!cw#@lNF8Te$Ci=Gk9 zXQbAZ@x&r6SV&%$GDQFCa6(u4QecK5PtAIslW)`Dcd5OM8mf@cTrSrD&^3?O3O=pW z#f3~%4_?IHTF&nR>)B~a`aNYR+d;Ou;3q)fW7q?#%YV0a;~ha0p&b|8E$bZvGSN{z z`2OW5ltWX$EB6JHmh;ktc*}B8LuISLQ(d#1Mj_AlQh zGjD(JtAj$2BL+DLU9LXKj}F--X<%LD^{T`@8F__Ep-qYZymXRSzpV;Y zCm+i7Kg@SNZ{(VjNA-?c5GO)3A8i`Y$npc4LU5J;1JE*Y4QF$J>r)dkt!OoHIan`g zKspjRZ*)|*s#U(>{?4gbW1pa9Dwh|QK8tf)E>?fl1kai!vf%EK4f*PatmKFwp#rKA zTU!Bc_9C}ar9bo+mh#ak(>ndFTw7=jkrao+pY;QZmrn+Yk2=VK+^(GJV<^BH2a#!_ zP`4vQt!~tqO-}O7uG;G2DmjoeNma?UNn38%r&Hc9c=}4Ecm_xURrCDL-@mXt>F7~3 z`sLaGVeJF|0oIM=_U2r}Z}qJ=T~cYk`a_&N`a8<(xJJhE-BIl}|B8e|GMaYGuc#P# zS-?|S66f3+Ed)F)mnSJ8+4ejyUTj;w&;xp73)LMzfAII{Qb>MLWX4m~nE1$NIU}@SF zz~q|SWofkSoK@7HJ#X#m4#jxTnKgx8))ww*7sg>~%Ed$qutu+ED{xEfx0nOIKWYxu z=;)D0zx@w#oDwx?%Nci@K zE^c>|%e#K+G8HjkrQxoZ`2V%FE1i8U!T-)o+*|0MP*^9@Vx3+H(Ua)#0#Hl+LpX8L>Pu_adp;-oi=sp@ z9kQ~I*tQM)db(fq3qfPdjhj=*cTixMj9btJfMr@4tDf-EV`}QV==oC)% zl9>%njybdVwa7C?>WkLah7<2PjFJT0^*on4c#nTqrLbG+;c@i{=Z&2SQ>Y7WL~|pU zkz<`RJeJ&0KM0zS0hHLo3Ru>B!b~QY!k5M`c0jcUL<_SRqQ0|wHeDPr)um-!9t@`8 zx^&6dwl@q-+otT^<67;TdZ#z>ZRhP=Ap#F^c^FXBY(!QHIfN$hX~WS1Q^LAU#ZA%= z>))e!mx-thjGeM%hnR@6{akG|YE$p7VPLKbq=Z9~lg7zW6@5vyH*qsX_Z^YTWQoHb zDcZD^#y$N(#7T0jyW{KgfT3gNL$Y;yui5&X3wRz43pS$^`Fv^}i0FDpedy37fvERXv@Cm4 zrijQ{+j2};34&MXUAA@rf?{pmGs)>EGpz+-7h;jc=#zE+TLa)w1rBKP%0OIfF5#v@Yj5@b-;htui>|J| z$nL{)XM2}R9N2l7K!9cmaJ_=nr2W3Y%dN3`#RIJ>Z-h|wRpQ6J%x@u#*vs^Cx@%x( zdH5LDJwJ%%tVAuBG6O3~jcMg9Uo{M};Ve%ebU@p(2f|wPwjGvu2zX68rvSRe_+G2p zWO5<5B9_WFo*m+ljna}+jhwdj<;^#G<)iF{Yg@&19qMA`pCT0MsX{|46sIcjXzpF*x^F_vXovvPgq8C~nv3tXp<&w|?Fj!4v4O zb7NPczeK3h9RC~~!81dzk4YLh|IV>7XvbJ$HGpfd~`}>Xt0@lj zvE)IPa96T-AZecEw(aiNPb#4Oi#ylryWW`Z4X+I^IUY5M-1U6$VJg_;ag^EniIS$* z2Y$EUMPme!I_gF2x(3D6>thg!Jvm;|rz|ATR9y0I?3mhb#lC*9=eqeCM=Y43BbEZG z2Z-RoeSB|zYMruu*iP)^mNQc?o?E2l%XGnt{Nzp+8`8Rms}Qh^+%#16kF&jb|7#Lr zXc`EJ#fZZ-OB%sj17e1DFsL9s85d!D(_=kCwDSZ&Wq02WrLHqu8F1#k=Fy;glb{x} z&x$`3vasTjTL;B@6>ZhI=-8^&(Mi9<$|H*c5&lYvFaF~2tVJZ^u;zuHaLtH`L4+9P zkkc@=6+atpf~@n|C%S6va0Dy0)|&4riwy%ByxfZmqg^NJ2c4zU3$}gdg6&ommb|Yb zHiGioPuwTJw`>OwVu;iq-*~Vsu*>#tX~w^(-{lio1g5F3>Ls58r{((!W(W2YN!7jA z=AZhyVRWw5vFg&6CREz*(lS}=PRZCd5)X|J!{uTAqP&@!*&t&nRm$4RP;&B=UH5<) zafZ5}^V8q{pT1_k0kKORereGj5)R+4{(ds+xJ5ZyzjHSCO_jD*jqc=!qD{YVgI{dN z!0}BtCGFM-Zsbtv&^00Wr$kS_>k#Gi^}nCtq_zc<4&$f}!NP-fNLRUD105Ifa?%Nt zkn#{p#cyO{^wZH=={_4RgDQw>G3OvM))cGd>uL{g1-~O*E*|e}KRnolF>OZ#5pw-!<4F`A1 zQEmNv)Aaj7RWL%H>Wv?24n?{yTRh^k`O<5UjD4O9oqO_1Gqem_!Bj7@83E{St8o&@(yq1t7-?<=E0k$pKl1n69XeEM}P8O1D5{D zCHR1JWH69UeB0tV^~!Xt;}f7dDJJTt!{~6~`zWOH#^oha>4!OlyjcA#KcuFpQ}bBq zWyPxq7Uk%?Fl?ABGVzH0?%>O=)%U^Eil5282jBLW_26_54TjfF>jxJLU5C7gMD%X> z6~>#~?RNH=y?{O4UUR|;9WOqK)8{K@`*jxT9t_og^0^kF&{^{5bdwMMGkffd=4i4s zX_4lEqV2?YK2Q3jo;M|tO85~u)Yzjkv!;6v)h8y>%d*<=Wy+FipkFBcs747hQk#Lr%P@+%3AN=?Qn<%ix{35&cnzl!35v@yT6LjXV7NR2s1 zg>`yIhrG-(L(Cm(%k^emXLP4j z=6;J-E8|Scd>I%NnY#pv zn~rNNn!CWGH%X55>!c=Q>pic_r}@Z=P0ci8}w_4L?VnV5?Z3CY|K zHg${d#;ZW&e|RV;zNR>$v7F?)wlgkqd3S8cWa?K(HlCfBaiD>DSA(N;2;0l+G=JO0 zrDRoxZQdl1&M{rD=}f-V0R9(u&F21q%K`z}4L4REDKL>QyTuBR3CB1-$?N*PN$%Xi z6~W1+U*srGYu1`vDpk%Xa_cJpOP4l_mAmU^nY}fglui48J-|<2i~EI~#L3zN9*2H( z)tIa-)u-);C$-;h-aUI+A`>+J(k4ikH<+?u=h|LC_$o1Xs&csKP7IV~u578kfaWo?=lB%jBHBKgoOMQh`6(?AZ3jNU22rauSrryV>WYM)wI)GZnC*On zb!DB`jY5R>|0T$Kd1|Ci9@RNxNir|k+dkfp{Vk?OQ}%ohu5_=uuKRd%>EDy5DR9xh zvM3N!zc)d~KCu_fH^Z{vx?wL~9qfZrjvCzYlfh|1A3o2Oq6*fqLLo$_EAXWDulLRP zRdG(YzIZ?AwJ1NTBYKUCwF|6rX4;zyFSwsf<>DtO(bb+61P6^)i~EmetB-(CY-TTS zp=~O}+9Y6tdLUw8YPquXi;C?UI%Jyl^sW`w#CrYYAL^_VU_uwG0USQY`T00zGG#^U zF_-E6V1M-De3-XNphx8b}o0%%A&AYSEgzOmm^p? ziZ)ZxwQWBaCB!9g*$coxA*FBgbt2Bl^2<{32-tptF~J0}Wu1KloT?mFOs zlY85^ZCNr%@h`RVYZ8R$7#+E16(}J>G>GJ8_!`%1@iZHDrsaZM(7Go55!=y28m+I# ze>NtyZqOdGq!>Tq#IYqnY=c0e1;A|#OTIF}IwiM=1NZudnIQb5AXqgk=?m2KUwC)B zMuQto@mbb13);APt9Y|thG)!I;APO=>mzNeQ%cChz!=8>5*;xl1RwuX<{E*UlMg-l ztXBHj9+O4;t#EMPYJl)Q-@r=M-B*v~z{i^l)?%Dih5A_4s?pXOBYrbS(qzzA@5QKK z%muh4$7t2OTEOZ0xd&DwTou$Ge2fpq=&7&V()zQRM~04CeuKRdlJZ$_=FP%q@}E$X zyi^YmAMW%tWvuuN$XMe)i$J^8g|9Y^}%icMSLEUAqiQBy4TY zSktlgk;1W{behpZL!~qau|x`RB}APO(3LL|?u}~yyW}@v^ndP7av{x7F9EeKYe=6f z;mKn;Etg-PJ_Mgl0}-*JlI)4HoZ@<2%gwVYMRK2ZFhITyTza01TK>Gsnk_Xc@JbBr zr&{@cA4b|*0S0}`FPzdH-K3z{&jANvf&T{x5jgciFBNToPaBc6{IWn=oRgE@a`=SRT*>tQ9h%4W0MDbZ ziyhFM!Q3=%A3}=!EdZ!6Cw$DDkmsZ54D$i2`JNKS9%F}Ym*e@t#)LjM?#iUI+=x;v z7c6U$rpAw>#h_^yal}pZkz&0m?oT$1=)7xpCw3(=0LDw-vzmb3vMpi75&-3z8JBgISMUl#pD_Qb0AnmFT zpn}EPjZq^Pp;aMDQmr<=TF$V9B=KNSvehE`{Zei z$YvI1z`wl|$^4mNw25~D#F);z%H|{kM9mLyhO|9LoF*f@!b?4P*iFdyY8l~O zv!LsiqvZg0((+2~5>L7l&!B*5q{&Ac&0g=sO`ZzVC~qqde@-r*dl78N(j?|r!Blqf z6AB@8otphmU13}|(I0PAJfOXH56G6Zam-nxzN7WTI(?~7D}WviiH$e#3cepr)h#Ji z-#KE(9~)!^=|so+MQ#df=$t5F#ABArSC!~Lui&WX#U{t2j2(m2cb9S^yj>oE#rFK* zujFn;JNB{Tz1mLlnEb)yJ-^HNf9Gq@hgy%7ogQ9F!8Q{e%LvvE@>>hliA}FPFXqLXEvPn$W!N`r!Ez=qrFXBlx(%5~4#2<3K7B@#=p0JQRnMw@_| z#-dHhB7GKxrRiMGi%=$7i?_k+k?BNjNh^ubPwEfK z1MUOJF_Ovc4qO~$VW^p>jlEWA_u3oqbK{qVS-*wWd@CXr{YHBCCBobGZqWbr?%Mp2 z?&p%$Ao`0Y_oqkSl{Sd=Xt=6URkLvFl}C|-n0d-{@hUoIQKCy+=^cAatZHxVCH;TC zC-YY?gnCvjzW4l@>oWQhr~sbkHIdCD&AzmBll7=}llr4OI5@aBb)@Z54H`_m)O3C= zXqf55i>$fF63X1YX58Ydd}Y(7rFcw%c{jMpu_1k~s4sYqrr2;`zad=TyDrDBRxHS! zKdMEXgbNRRu<@8sYhxd8{OKme(5x6=k?!QZWlfP zLN=uRT)Y2}9MEQ7uTeFw$2#e~BqljNHEf^`B6?`$h{ig$mX(vZhgaP`P^UgmG`*^DYdPGti9vz*V%T{Z~Td>Q?^?<(!;YI(N`YwP#&BiireUyZqq&mS~18;wRcTifRvXr(_Smu(fs_ zY|k>dX@1Pb$uH?ZhL~~SL+g*~OhxTenY0Oth;laHTZV3z9|%WjThp15v*j78L7JtL z|DC+MMUVXli^OuqCkwZC&-!^p)QFou*!hppC}A{H9q5Kl>g_L-1a3UdPf~nhZs*Wt_TdcO|Bl5zc$-TAT z!5qKQ@5BP+v5o(XC!DqxBcS*xUB4#fQA#;B6QvpfqbP6+uCt6JXjz}J_OP_;M}XzF z(+?rAN3awUE-T~O5oEg9+o`Oc5led3rP9MaWb1ZY$kxtT{T*J>$*DkT8lI04QloO> zt=4MDw^@8m>a`zBcv5BI?Oonfe5_XesWYeJqJ?2cT)m?` z)MG-eO6aITR1$MorBNVPiGE!ev7cHep&Hy;@N&>3J@HTJn&+0*m6dWIsJb}^_6bM2Ld>=?fO@hl7w0%1H zC`VqJQRNfH38V?Am;56_Ocf{<|3LjdvTk5l zJ`8R7ni@7S4O^s_%kv|14x%9ge!oW$AnLP=3UWW;a9l9%?GC zLleUFCqgx*hQS528Q9rJxwFG-d0!^nhj}nzPNw&=nU@7dV-IT_jCq7|!;Mi4fB?^f zYZ!=n;r(51SeMfU0nOC;HF z#em46R216~Dd=>}q-Lji1EV0GrFbBS(oTtqb-Z$uKdxf&m>))mZaBJr$bb<0`qW_* zBo9g*^auaWI5!snJgP{Oo94PtZNw;5;F*Gi@5;7wT$r}O#Yx9r&?FM6u*|?+p={@j zLNnQ7XKtFKIPz!sx-{vIH|kfh)>pFUtq>f!Dm|es$IGWV=}v%a4&1`AEmGL8u{4^v zSYS@1O*+dQuBzvoPPpH6hmOoIO+kngiO(^Xz6nn(@r7UHFC zr<@)9(MC)Qi+Tc3e1!BI72b8);o%_QqUV3zYrG7Qa|?^(3ePl#Ik2@LQWU40Ne~okQ!XSk2f;(%b>OYkpJkN3!bqFuB(^q>RK=dT1kx9uWJ?GA( zv~&!|cK=f==*As`ED89jmW)g7@CO#4vt}PJ<|4#W%{K(C&bh)C8d3A8W6k!A&gFAM z>S|O8PDV7O3+yk^UXS1gCme_}Jng|At*ejMkZ|5kdm*PhSA_<~X-$lhgn@*v{aCIf zVf0~svP3xM^A727!(2?mFDHZWj+$|nMnBRX0>YcRT~=81r@jp_v)(L1OaFGgiPkD| z*DtX)?E9?%P7-iGGD%`_TEk|dDv*y#|C9j7NXM%5FH}Zc=3D*cl>?CK@S3*Fa$xuZ z2a+FTUGXN4#0Y33Vbk1lxdGuu#mGQVx)Wl{afx=TB3pdcX1_XRg03TlA33R?e_Xyd z%ox)MrG_iw&D^I%99g#~J&xGW>q5$SXP*3d(VMoe?(-o}Xo@BtH@cZA62G$4b9L2z zx||m3!H;gWe?~Sr$t&P8$pwB#^as~eKodx1rzJK~TQwRvXs&w^^EwuXIk_VwSU#q4 zEMH{W*ry$Yy5Os2`uBZekzU-zh(s$EVFGKl&hY90 z*c%cD(61#{W@282k{4J~KrY%{0i?(S6sif+AC09-H49}rI>=Gp^QmTQ?iL0<2rWO0 zhVT^rgk_qk4CcncI6GN81}PJud^^MedgTtx+%DCzdJHr8deYPX_<0NR56AyM_=bsu zj7g}50Dr+h-X(tGZHAd$!TTwnn~HT!G^2y&+*|rabsPSEt-hvlkaO^RtBAba{Qh0~ z>jzq&GfCS6Zx=d=0daLtJ`LV+6Ewo|6=cpmQI%T?Usr0~X|lUxuY*L18kinnM#T-D zuKSpT7{ebl!4m@$*NT`ANGVy83cFZV_Uog%!pW>T1gx|hWy~_sBK7SF><;A)F0N$G zHE({-Sd{U6o9Ms?AM!(W&(eFgiW{5T&HYrAo*Wn=N%SXd+y3Rp;Qi#O7z7adUv%Id-x_-E1po)E%+ZM2DyP1(7U*Y1%;*wwbYK3j4aFZy}@sGeFwlbp{`#Y zw5*ewty>SqWl|>ZI*(I$hL}*2n_#Si{@o)PM4uKf?GJLp>GiGJ3vjO~eh&^@dsx*8 zUwaGW36JbQmIbZ%a7!Oe;D4vO#?+gXDDUI<(AqqJBeSWdA-M@d?ZOCCF=^%&^=i7+ zSJ$s3Akn$#@|8RtUWlT+*3MLg1JG>ZfQF5>G+?pJA?_Zb;NYpd@fDWyJR4g!zG9Z; zqQ>OOLK#e$Iu&)6AbOFC>^m&ywJ2P+@J#_cqD*zwP#`B23*<*P&9#wyl*3~Ltoy{O zx27n!w42X??&|B-1(esiJrPQ!d)$Y+NuX7Hi-#5D4t{?h)1Sh&v=gv#rXkIMaDnCmpf1sH-0wHS_x zzf&R4DAPLH39^x3OToXmtu-ju7&($=2{GVdYz&+_ZVUS)bF9qbSACZoKtc19Ctfg& zVX(tqIpXd=lZ8RBMI-F^V5Gu;y1rA_5RBz_Ko2*CX20VwfL>#KFwV$6Ug8Y(6Jy*q z#dIQah-t!$s8T0mTl})UX9{co@=XciW585Peu?UFYpLLsJSzS=fwukM-&_%n*;>J) z2th!sl@P49>4F(miN`?TtPABL?%})W>FU31T$Ut!C2|Yw8zn4ZY^F+lOithS z69mKyfo|Au2GWdEaK5I(rF=agiT~B-Dmdl0x6%4?$QNbiGWz61c?a3Ua$gvpl7PkBaeuinv(jYnNv$i?#4eT7mv}kT46#c0^8MU%O*mq!T~c?8jW{Y z95ADlFhbtf^&-k4@?bY{-Sc6cnJ!uB)nC);N4gMmyn*llS5ADpR{rVfCue@3W}F&F6si_y~=UQX2B6y$sTAoJFIBgf}5ax z%-^BCiT4KOT^`s9346u0s_m5HEQh$a5`eSw%l=0ruKCKf2Y<9_(e{`W>XzeR>Xz2E zP8r`_&yQIXm9;%P^!vPR_v~W16mIy;_mY1>!Jx7#_;Ar#mJq$W>FVik6{Q~*_DvA* z73-sL_7;D_3A#5@ugf!Awdh!%6Jy(i%F14IlY@h zFC;qFY zg`Ann@N0tY(~pdvHF@Q>1RCxC!bVj55zvuA)*bs}cYw>ab=R$aB-O0bQ3r7@8^m3e;6k{aHOD~Mvb+)yz?qifi=x_n>Z-&KHbNU7!l|ND1E&*}er zau0kjrr6#nntr|#@;Vbt8l!D*4}_&JG8b4h4*B>Qjrue1x%sb{)f>u7Mc`n?`^Zzj zM*->-NL%;A+~jFuw2&QV=C#xKYJ6ywxO>V+mT%NgAtYzZQ|!wM?&Ib~x-Mc8n>`ZM zPx+q#H1b)>56z(x(7G88_>H;qWmHoB>V2dZHLE8MB4Y&M_s@s2 zbvy`n|6Muol1?};XsDxevwRY`r&0@qE7`Tzxh0v`&w`|gLkzpGv;yiUSkZ9LP@a73 ztG~5dQAi?-u)78 zY5ms9nkie&ZWOnS;yozqKCV$}r9qc#q>Hx#BT!tS0#okM>3s~qVjB38!?-Y)@r*Fx z%yhTiQW507*y{X^tY2RFThb|Iw47{k)6ZicNf<`W-{EmFNhWs!um(KUM$O;0oo1mA zexQ-on*$L}p!26BrkekE9$)c7%bXhtOjkxUjq{69S1O0t|kJ`Zvb$jOe7fS$TCnxG5 zv!@vcs=Eo1eDk2ST2G+*=O(Dts3T)`rzzuW8#HsKJ)Ws_sw63wBDtW{?cVc^ibJgJx&OQpNV$qE4vh0JYgb?(h_+nf9X2cv zzGj3ne3jQO*}q&7_Jh~L#p$*`-3(&DWfC!MI_&>hZ}eBMKL6zUV*4#L+7%Pht-^0FjkU{vgulhTj-jC zV6}tBI7T5k29Mf^d7&m%akDTm|FY%nIv_mq-N6fxhmRL9;1F5&Xf^O=tC!5kqx9bm6!n>Ab$H~^4fglTnc>}FP(5xlxya@Rl??$NH4^@h1;rgX9pzt z%O51l1bky5BVwP{cUe&GptsLUK|n#)!lNGNRAG>r3F0N z#i81R!hk41(`ya5j7gA>F$$1~MQb|cS(;5sks zK7{^VW2AlZJdc|bI|t+XeCUVG65PM+E_L;C#(4wnYdak2=k39uf5oPPOtW27`7#JF zKrnRO413dUHYk(oPD>@&^8w8_!F^YRdi+jj%zNVKXj383M8Ew{kcyG}^WWSTOV!t= z1n#4hH=uUITWD*B=Fy`$0rbj>Q_Vd+GHJtQ6X~V&2-t5O+)}-VoI=a4*xg5R-%v&@ zB2=C7JUDN()oKi%EBA}+`^VRqaP=-mH9;%EDN~Uu4lwf@(Jq8M?m(k8z*U$xO@JpQ zRNm~@Y~*)4E&fSoPA2wamxBEDVuIgCHJ7&FWqSDvH7jUnG>I7`)MJrp6aQ0g#ilD0 zTPYBg#FV?yrj735+0p(_<-s0vZ{Gt2bkD=8Lp&w(Q>ea8B1CDo49E>X6>&&}v37`` zN|JnKyjO73AkT|}x%>R%evxZM)p|?8+e|xWD|HvutNQ8YTq4n>B+I&|lUgv__{_Qd-_qJ{W5e>dmvyXNJT!{2STJ^y%u6k^19lubB1 zOTV`oi~LG`cw{z?v0}px8KnW4pN$>|jcLsDtanJf?}WP7@yC@fQSo0gRbOc-GwmE+(I$&d)a9?V zB+EjM%jx0HA2ozcO|7sw0BJQYMLq0`<})P3Og@6Rt&!ma#*sQ1_|XiJQ5TfWLN)GXE! zS)H3JV$MuI5z0e{A8^ zyXmZp5qXaqZlrw->*^im=F?K^eC5(mClmMQh3j$z?*$CO=9^(o6f3iwks{i1#VEu% znajBf%ae$8@}m&+=lv6ERnp>{Os?T^0F*7CY{NssQ`4be*~Z(S0NioVoj5)Y|4 zt-;SF6qT0O>{Lf}SCETJVGE0e(-!Sw*oa~$$q_WnG0~iPcaJ2(lKZJ>d+*Uv)g4Qf z!jF57Xs_>)G7T%_TTGGRTiA?6;j=uK*xu@&r}$#H12QhI z72+!QjHqFnG@wu;JL9iZtum5DqCtY4^uGfh6g11(Sg0=zo$z87Y?D89Y&j@KbyASnkOYcZm zXk;%+R%2Bybla zCZxQnzeE$|>1()}@&0QMLalBjy`YVd0b)5*5vbd?{Xgsvz%7)?g}yrqI%Gd<0z`W9>=3C8|Xt!1urvu^e` z&v5m;L^MJ3Hc1^UsNPU@kqi-tc4tEtWz>&z}M8Htb;=33Yi~4h55YduNw#s-EQp$%pa~)v>Y7yF!a*@v8_}y>u$^fM6aF8zRiImP z-25-bABsXXK(mjk!9mpcIpMYXi|Ic16$=&ftw=dQwvBz>EM&HZQu&l7MexoYFA|>< zx>rbE@ytAaK1coVih8#cp1E2ydVXImKhNEE8Obwmxl5Y)43-`O=8G(e4yp^~qnh>5 zx`dqCs!QRnxEJlw<7ZVDRI`1|jV@D_hZFfDP{9aQr#W1n@3+m^^SE`W+==F-oWx;G zfyESOlC;x9ap+ojot|qnKNXv%BpPE*uqha@QR7gPt2G;KtpHs41z6N?FUQxq3p5j- z@JecutwWK7@fA3Vusx5)^=|=}evMx|s^-EMf8%3^>XRQpv_b1L)$Z{&q9fyg4a9o%=k29rP}_rBUl zKFUXwQBU(tF{JcWA;f5w! z>~(dl#VA@8jUk{=z{f4C6oJqZiDmpUESsWfmig73ka+O!fbA#s%>R-O-i>=vwxwUhb$2`x zOL$`-dHa719Y8bb3huiu+I%4mUzoa`y02!Nh7bd4QIhm&<6h7K{cuIcle?qbaHEDP zPx5cM=H41O`)BS}ZN6wo^Uv{%xl$s_X(hFk!XG#8lx@6C2_T=!qz2`Gjpxq9=#J3e z&3wVZDIP)58ky7*+-gEl&(OQ0<-DrY?rS<8O9zV#@GUN@*;F>(MrD=j{g}FY2#XvZ zKt2R{5nqlgsoj#`lIkzF09fiIx_%>Sj5k+CU7)pK!?$jMfQ`46lwL@8dpN`ev{td) zXR3ndzxD|!+g-e~Jmve`*fC2>;rB+Cbc9!)<$IOF@e*?=c9mVJI6j)Mc`#_PW5h=0 zJ+K+owXM?;F#2%yqqzj6b36EqwxI$5^t%@JUUpYVLvr2sm6`_<>l!F7oK~mzI>&dq z14#Nc|8aITam!f`;}k^uuP9OLV`A;YKK>c$SMz?qz6U@2qN?|oZ$9D+#j>FZIHty! zjPr%Br+)ge%%cJA&SIN-5X*Ck*26{6N6!eVOR1rNnUM#%R~@C)(N?^3JIS;ueL z9$P_QY5c3`Pp$$aQ-gCAG~S;N!+DJtV;)}ut81zE=nMe?(UQsc^hcNgf6?1+&t-U! z_1MVk<(heK8W}=n6EZvtF1@0{E7H_}z_0hA|AUK@v|IWOrQO!kAobV5eB>i$MktB> zon$S`l5@y@58J<3C&WEUCn46FB_GF}cUl1$AHii!O1i*Ar+$g$s?as6Z_#+Tw!a5S zUf7Qs)UC1SKy}fOEq24;?V7`(O%4bhdk1%FtRTOXPGhW0QUmz80Qe3(w&Fv5;Mv5k zy8Q7soL8%dO@e-L<>z^ZfJbl|cw$ZIvyGlloI4G7n*BK%$Y&PPk$am}1M%aH9T2_! zE*U7vx7QVSSbch5#IkR_C-TSp&`heUUevJLoen~ERf}dw(s^^j1)Z?L;ND>lbxyPl z!FJFfxb3Xdi=xXiw5vdk57ySwP=S5%2NO;5eiuIHIj`QI_Xhr&!9)((S_B-!4hueB zi`}PMsVrM=xr#~~q{KDBd^07!EOQZvb$6@o$Z`EscHA#AA5GyDrg4$i6lC4Lh`$Jz zfqjHai(O<4j((IqQ)q7n{Q>nnMk=TaHWw)ADlX0oMWHmX!69} zISjtSIbY&OaO_;WGn$9uA+99Gft8|wyVw?F4gKQGg=K+x%lJLii`b}89 zaZ?pxb9yKV5s^`o;M&3q6QRuy|?AV)I3yfyf+4#R9y#OAP@x#mzJiI zbWT|EuY*!i;Ky3=l6R)XN*@B^8m>gM#t*O&xHRZfhE`miLYsm?pJy9%oCBi=`9~@1 zy7eQ6Hg#0NK^j<3`3{Kunf1Qfo2K;>@9CLxGcR~Ps90^I;aYX5Ft4Op;_Rf$0PhRt zTCEh{0CL;v`r~Ik@W>}ReR7P4WAf^0NyG9WVy@AwM?GrkzxGmybc^m$wabpiG4m_G z7zI!6V%|@W#*xwf+=U@x9N0BfZntY@qnAsY^~`_OUd9xDtRrvpNnZd%R8BO3V8IL z6NHv<5}9)ozfG~)$aifn^HGW8%&J+cK2;{UnkV>DFz-t2^CA8F5{c;}5Ef6)h1;tW zgM!{(D`HUPBjA(OzB$X4auADI8AEVvU!vZH5^|2*RU>lnksS!mx=rF;<&P-KrOD;8 zygGX=hG%?g#L`Bmy_iXWJ>>1J$EA`%9s_&5;XQO7>cC``YL-@gB$q9AMDGAj%;zU! z`WO1^A(s0N)X|YBqcWrUb(#h?=DgX#@e4m0A_eKTi~hDraSBv5zh#`W|pA zVfPlx9vcPuJrZUQjzCKSHe?mzOk}Q!_i(qPd|&_KkGA#4d_Uy1tih?st!VPlj+525F+$a9s($j#dr?wWqJ-o4jrf)+JAf?9dK zR4xqZ`CuFxXrf&FqIOs?Hh+Xv0POHM@hrFErS;HS1nmHct3#Q^FwKG}?`(JK;u;IH zJ9W-%j$s_sH|o{CCe)Cf3b_)TXJT%jRTpR>wV`4Lo;!WsB6|eC!C zUAeU3<<#}!u}_UsL_y1azq3dHKrDnAxfd_Xh($j8>ZBV?n^Yv@h&s~H9i*g;bc*E` zUd3LXG4CLD#CICo^1LET`XNMz63gb7PH85mpO;^MZzQrPipzBjm{3$U)A!4e1 z#|hrE-0XoU3f->rbZoyouB!3Nv#hOqaNqAcS!0f2S`fW(WBX>2SV-qiOH!+OUH9(+ zB9GsP%*m)yMP>P^WcO~H?`^Q~@xvIkm%#6?4n_~!1G?&Cz*cBkn+tjs6U`?0Z)r$#YN<03Dm0H?9GX7^fDFVuUtq>OF@gU;fs z1&^Rx?)H8KxF=)a+SGD*a`7y-f(*6=0LgeDFh#e|O;VEsy#yBXD{5*J|(Rc@Q zXYU)gfRf(pv|F*`DAEh{p~N1sTfcCT)u2v62O2g0DmFb<`#>_0#nJf4>DnOQJf3jG zkya~i;qAGh6F?w0+~Rs9mn8bZ3%zas19Unj3&<@L!^G7ALO{`?p4(a7>(m`WudXuQ zuuC~?DlCzfo{w07iyOuBQWe4TnFz@da?uk3&v|X`n8fyW2}JYH4IS7I`dO1ovkF8b zmw?hXWz~qXp@rPx2{itTTb&Bei`H>!-VKnB6~u{XxYY;}7OSroDU?Zv5~ULU2iTqn zJ|2x5>l(52(E_{~3Bg<}UCz5uZ`a0?LgH3XU|#34S_w|#2X0A^K*tE9YcK@J*TC!RbuQ9~CAj0^3Avv`g!>5l7gO83lx6~?JQ$3{fdmWBtM~`H8;?EE8 znFlg~F-(~Ienpwe=qxUx{26-C<#C?A&N;SkiLtoml6|kuvx&?Nh~)*7O2w9oK3eti zt8bL#FaFL9TcG6}`9l3s2v(LLu3h+Ev>aoBdfOO`GJ?hz?q+qlYQa&A zdB)BJq8qb(XU0C8&s-E3@MVG$CsYsWf*w^GoM%tV_sc}~0#>C_K(aDJEI`uL zbwI#Aw~S%z7*h5|km2bs9*pYnd*0IQeAzqBKFj{7j-i;Q%V7vjr?i2Wo=rS?n)1#Z zW3^24G)Kz~)UH2n;@95*x9vO6ApdIj3FyWsulgmvjk6B^R$H<`jT-I@nYG4#vQ=1m zJMi>v!YMp0ma~kR`gT}5F)Lm*@8{f!bzD)a=^@(55)x!4cs!}4Tzkifl?NeSVc1K2HLBw?Uk`A?{@S-^6=?(H-TwZUCaoKs?2YvCzDt5>heG`+I`dJ3W+fCLs8I_XsHQ zW}{}Yv-z9kSC02I$mK?<7tk9Gk9a;XV*OQAhpFrh=CCu*!iDA3Wd_XGCiN^I> z-%v<&s(aM0fS7HE3R#Cd81C4g=1E)dj+ytJXA_(a@Jo;j!G*quReGLRAg(C^f{v1= zn@i8(k+));PP__OIgQP-z{dZqg)r$&1L|PSQx|+EF)e0k;a(l7D*O8g(ku;bC-VU5 zgp0QINxdcXM5laxU{xaNm;37+!4-Gm5r^V@C$YhKI0=PDbkmQK-7aC(h7i`t0Wgr! z0p{ge7I@nC0W$8%ascZ=z2mJ^*HmYegf_ZEBTqWd7G>(@C94A6ym&Zu{$k2!fJ~=2 zB%T#D52*TXMNnY-i5aLpe2`dA6tc;^npnFa9f`DICMsN>mw+3fi#Hg6>(8d6uv9vH zp7Lu#%E?@%p9Ft%u{>={KQssQi3hsxKp}fg3RXt4XU|ZMTeKKzZ@X$COHCCf494%5 zeC&p(t*{a)MDF0mA0~+Fp3&(2<#xq%1^mm!q$=^zqqo2VWV}iBhl!#zIRl`Jao?Nn zWg22|$Eeo;j?LUr;FDMY@gAV{kC-`!<<(m%d@?19oJ0lZWf-m^Ec;!(rQL{!V!f@( z9>~f2)Jgr|Yb+ioD9m&+rOv$oY`sFp4Y1Mx>&0JMEt)5r+F}fj+U|7K2_lW7!>OhE zZ{N=|Kb1|iE0zr1-Ox}DFFTRY>-D{9>z;32XVnOh1lZuG{4@PDEXOu_yv>^@C_~8H zGxUn)5BGz2)YVsd_A~w9>d@gkK`d~r%s6oYx88Z}X}Pr3L=`Eoi#zY3;^fUS#5OSI z?pKp0dfPYl$RFLb{Z^QfTg;z6*M7ddaDlZD7EB5lL}EswW`Z9F-d+4pq$DB2`5k$U zex^wDdT^B#OYm`wx>Wl$Gp-IRPk{gWTL)y>$dlaUV>}~a%879dQF3CThH!$p+nte% z++CwGe*X3u-yn?x6lMf|3jCizKUVQLs}S)T9S}K|7({HIdnA9p)v()0@9nX2u5^yH z^-%7k6(sypDw#fnn31@#ec!Bc6klum-u{#<2@b=fXM)`^?Yd zw4&>5IP9x(CcnKwK1ZR`|G#-(Yu9!m^JLj|(~KAI8y3|moQL$GaNF*ecB!S4gaWGR zRRRCxFH0dWX#!*T?XSkGtDzIm`r++KNvpw;6~~M1M?&nkW+j-RUlV8Jw~?N0n|pZN?;Z4>r)ujjZYcxZ2BrxNZhL=i z>oE3T=DBOpT$k)C>YJhT*cE{i)U~ToXMahnrbf*xgLo7Z|GTzacR$){16o6N2pkBO z!(T%grBBe~y94Z)xGxp{1Y}){y~v4y7b^Yr2!_vTJ>kD$@-QoAV?VMyIPG2V<*y5D zEhyOT^l<-l`RlKFrjzUIirKe|E;a|J9yndk{!4gL7o-O2`2X62OR%&pT zK06`$O|)7d)nZVtC(WLyw^RaprMz4&b9H0ev0J2hneH#mlD)6lUQ)`>QqhmN0n*Ts z6T6bDvBE&{*6jAbcDkmRy5)3DW3EZzK-DozKLJ|~SG2?oGI!;n+bCNXxQuA`;JgO- z@0*N`=Vp^BpX|FhZLT!#M0ZU65AFr|ql{{>C^0!|s#>h#1VRpA*$<1a%p}-Cv9^Na zgZbSf^4xL`*Or(EDrn``R+*l}&KKz{RXu{iaXp_~PVN_-TuvjL9_cqnyFQhUD9H#K z4{fI#$gOGj6Z7-zWTgm4TX?UOpIPP;Yrd7?kMiM`Zm0c^PRQ+uON^{P4nF8b@aVQt zOIn&h=itE-&oIlg6nVR-Be9fw{Grrn%mj@-eY-SlQewQ{yzsxCMN07Y1YgNj_glN0zs*rt@Yg)o`b@yO>Rp)};WyYgdvCt!? z`9K|%g)I4*>pJ3^a~|jYH38ZiD!zxoo&sjhdRB5*GK6gpeq>_>Fj9`aaQ@uI>ICBq zDYGlxDiy$^G3*n?WBV>I=@RWMq+}5J%@pZ2w&$VdR)Mi15nq(l-M!AxSW#{+yb4!C zcQpp+Xc3J*;d<_~lxmCy>L%98>7D5b!p@l4`|EeNdsSp8)h*$SzFXh<$Geo1&^(h= z0?=jg>9G*_z`r-YOigAQOWR2C^xCLecnD#T$4X}+h-nq)>or~&QdQ0ro~?9dNcKD4 z&?c{qpWyvR_UvVD--GtmR`6y_Fm07qlhYaCJV}}PTWGThyMiD4p2O5e?LrN5 zd;nnNM0va1uL)o*n-muADi;M-ecyF1hgr;R7=3%6a{*)Tv?DbYZtMgZd;K5yrt%a; zZuc(%+vejUla>I(>wiqfOqZ`Ng;W7T3xAH&RqGP-T{A7(Ph%gQBAZvdrF=jaHeMo( z;y%q~h%3J$+y1oD%J;TvHQFZFP(p%P>q9+O>e2dgzx&C_Ha@c00 z_IzA`#Iq?ARxQtuK5-#_l9lGgpWMDk`~Y`o)sV8#V>_s!V1Gwow^!8qf#aLklyCLt zVxmv|(0Ts3K7D((4j`-!!N!ZWspfpZs+HUU9EYm>1-;J-L`+MCBc-GXaSSl2l#LD75Do! zADqAN6vb8_Ae5JIx|XXfd(z3psY=gV81;&RD@{UJ9E^avV0hq4S(?&qDo_}rQywv5 zm3WxN$L@Cle@*B}egt@A_f21%bFBcp$^ivY9v@85s#Eu!EioJw<&wJDJ@>sK6Tt?oT7b>0q~^>kR;5jh}qy7{sk@U4&gZ2CjlNa#bSByM6Mk*m}E z+s-?4@Uw_vjNUJmgaWJ#pGhjUAO75HGt%YBj5#eyOXQ zbMyLq=$HBqnV02nvn1lgJgoxgaFIRTS>{hp{+&p*857R&73ys+brOz)_ZMpR?~R-{ ze}GI(O{WGPSrq$n@_KHx{Y;v2>PIFBX)!^!IuWYbj5O{tmqfMEP5VX9B?s+0B`qh0g-hB@m;8_|l;Cs@1n`(2asHcqc2d4;y~-gE z_rZEH|Ht%=-^<2TKC6yW!u-pRTNK~UB;{<#W;j4%ueqiZq4oaJekr3?D$~|S(ArZ? zr}AfL1^7CO$y`@m0M&v_iBwcGHVJaPdVf=?X+ufJ*krvK*R*y`9nh~v>jb5&P~Au2 zrXEGbt5=}ljQTPEwaoYwJgg z)VcY;#1E7-fItruqWm8HPZ+(yx|j#0s@s>A2oMH4WVQ4x3jNuv;u&xkEcqF5JyLwd-mC1D%gV zJ40TBpkZU~y{c;*k$vi&*hCjDAx2?s%0@$jCQ78~Db~Y%^0^&c&4&Bs6&qJBcXwb? z2YW4#$+vBKe9Wf0$OKc_4RJwK5|_nNjfj?^ZZ;p2KDl`x9zXYBy0m(;18Cm0L?M50 z)Dhq#ZxwhnnNv`z4hy$;g3JRjcQaPq$Y#s;bQ(7fPs?pk?^2-;^syn|(c`#F+uh#N7-mz!qQT(ZFP)1o2?={G2206$UykxG^z?OHxvZ#-anQ zrBUX~WsCQB?VIX!l$~V*Eog6JKGqEV<2?G1+5_R3N+fXZrMvV=2+5j0L^f1e(J(%# z&e7cK!;eju{_&gTe``8cVo+94_8B<_$ct_SjfiC&^@Do{wd&2}s@Xd-m7Sm(5h(cc zgZfiv#Dz4Al&5r-%DJU}jh#Nx@Kn`3HnA%-A^h=x*AxNko1t7s zlTU#jO2^1qOXl6Ec4tb%AL>I*t1*1JCl_-3EkR06bC0B+zkM{YM0*8odsZ>R$vY&z?vlO3=3%YXo%G8G}F z;&qbv41CXZj$n;()M{?`qVPVN@}2pQ+z28OQ!tg^OuynR&j3mkslMX16D;(wma8o< z`q;(jGj+jX*Rlg7)v7PkrpjMZ=R+8aABm5}q`lvT-y5ulLhF8WnZ%u^rpk&5WW^M5 zxe;@TsZ}(WOeoJ1i>bT?WdLK=8LEiD)WLb^u016bqPpvZXYOTQ^eHSa`t%bV$^Rz1 zQ&-tP1S~CcT2B%77xdMCxGlEX1^)YH0~p0zy(luDu-+h%R>SQcCtF07);jEypHrp7rP5LSQYAh+5BQ2Aq-3I3_mxM&sAmn67fOdIqO}0@!)Csy16)=*9FnycwPgW*w|yYB63XK zI9;+L5X0k^vN*4z7EQkKiS$CJ)BmiX0EN3wnk89oU!2U*{j|f1ub`YBVnBMHd+t|9zzivpwVdWRWFSMJr7v!oH#l^u1Wwee_LzozpGuXfe56u|SU}uS z-E^Ohk7u8RT^s#dn}SVyWqg2>wl7=db6B?qn!-)Nb%F-p$@DH^rk}hp_{Z9jcDPLE z15RBBBp!{xBzDlr)@{d8&=H$!FFFQfEe!0nJt-WE!@|d>3~uWE50H_mIGYMpt7>!f zLv%zNO_!VsEGHEroiT`lXTyS4>v<@m(TBwB@Tb=stzjWcj6!q93@hdLF|6+l3~ zT9cE}mt%>^ay%^;21>5Mwm^13w_yoMi2N!#F5gr48;gYsixO8g|LqYO2fp2r06b!J zq2rhHQBD`?MLt;H{-ORSyzJe%Kke^Re>z`4Zl=hV*8ALQ2^4~EY}zpCRI^7h2|DUU zSB92i8tz!p2AJxDwqoI;h;PdFzuXrT{?++qRKS-t`lSVBw7oSKN7Yx~~CV6TOwo(Xw zt89&|DViX^w0Cax>`Affec#TxL$!D`C!v^uE>`5wQsC3J!;Z@n2DuFLnU@z*PEWKe zEq;2Qq|Rp-*d)6>a?SE|(S%*NXvQ&x;A;^i4`YA<3jFg5vxjtvcyc8l**=0iMdhBE zbs3n*f|-1v$r$SJPwGS|C3wADNL{eT{$l=&q8(JLovO1*&jVJUjQm`<4Hr>fD;OJ7-0p1;oY<7wSielW@dhn!>;`xYAeBQKZr1E= zPG?$`>k2trlZ_iq(>u)HJ~+FpAzGAk2z~jvy_V%%bk|duKjotSR_CR&w_3D(|c$b2uXFJ8tcp_^;jrGzvPRxX1 zyP)-seX&LQw`BC^0YEooV=}E^iE=zau=$T!{I_3pFZGBAAgz|9_$}q>dxqu_;+HOC zFcXS`wSJO!Sy`>{wm#hB2KWW!&txB?%}PC{#yt`FSE1YnZ`6r&oiyQnSO3}bv%Wb* zqE1cM&>C%NC6)T6@mfOYwM6~mH_@-Vv>2+%TM6tmDPbr_^^S@8JM~Dan%lg~Dd>6; z@uOz}uIqHi?7b*qb*L<@?*6#AHVIj+l<0Cv<}(RhJ!RPwRQU(5Dffv)CFzgBv`4=J zxD;P`;*N120+%8M9TkUW0hgpF<>~x)Uy_*(4X0#si-H&ic^gWcHwD9RgGHKRIB9Ac zZ{D!u)1=aQLma{ImSity0)J0rbV2YQXL0?gADV?DeT#`~7z`&eD{{#E!-bQM;2|81 zf)uzgyMK6U@ZMF37@9}Z>x+Y3UDtYmr8s()LuLH`&-|31cQ}ei*-x8AiXGQC<2Nr9u@{`yXn9sArG6MJ_cR9dr`uKFDIcAJ|8?e@Oq8gaOpGi zftYq?@y_Ln+8&$Eh~T4<_EG*DGW2GIUP|Bdut77z*mQB8_C7hs8xZ49#K{k;NcRHk z!^o|!11W9)g=7XuPL!>SEyXZ?cLjC&u7u4yEl?BA{@CQI&I^m75hSWLkI?gY2(ScY zXn-Xy_?CGkIW%7zjbE>Q)^@pYnk8Ik@L__gj$R?I<`nCkR16g2Nnk(wJZdl?d-jt^ zAHx4gEVh!^MT=z@bUfBMd%Ylg{*VbD5*$xBVuwg}h#Ha{c~XT0SwF&E;;!^11Ge`a z+H&seG>X~xT3B`qVcE4wuh5Nw0qWNdVR%W1U(UGQbP3Pd-np~R&PZ1gl{{0@^!;CS z;p=F=w%sKR?QBJ8&R@KShnu$5AbT!R{8ej<)b+VzfeFG8vEhMJz>tar2R%#fMKn04 zC*^I?T1D$W@ZU8kVUuk)^|O*~wI|xUHI8arw#*9dns8AhpGoeN61hIFsrG?xF!pP^ z7y-IDQP!$Ob@zXz#EoL=^L1*so+9=WO|aJbL|hO*;+Pou${X|DRd-ufn^&~OeUQi) zZ_QkXsjl)7P6G6GVe3?rOei^;#|O$*$~BYRKr|o}pH5i=TLU8vM?a35PNGnzlW>`n z&@sF{{fZ+c__wQM!j_1a%TF-V#m>LjHFP$a^!l3IzDtJ%%FqdmIDh4^O#b_Ky0;b4 zYAM<&G{idja&F&k??N4CS!AMjHZ`O8zu$o8&4YlePl>SKZxO4ZCaaKxqYP-bm({+kTO3WE7Hq^Wbh##`^hW&mx+RuH^KOG_ zD76$#iPiE5OQ`W-SH}w})uaa-TQUcALpibrjsEaLWc^~^SQnqrmJS6CloDazX$&f~ zx6(WbIq70|)+)+`Q|*2v*!cEaPCVy&zo=lce_Jm$4ND%LmQwi%ckYDh^VEG>=+tpF z0LC$Nv7Z$50#>NFh|uY3`_W-#Cx~CklN<4n`(-oshnl~;LMXcsxj@j5d0RJJORZpU zh~i^75pR6Rn2m=1VQ15iq%?D(z252PRIr&R`a6A}xV8yym$yHJXBmai)X9x<{Sba% z_mudR`q&{)JL6vkIk*PPtwb88h(dC;_i_#~IfqoJj`XXEw!;oal|mT*7Sw;}ys{gZ z_@C@6Ip!g3*tGdrEM6&-+d6wH44>(ey~EVh*iIw(RHypa=~V~ak=N~zz@WAJv4J^8 zsKG8?rm4|r-k0$MghA_Kiox`)C4ze#cb47-W&2X5GHxL=8qup7nF9&REz;+G5773r z757x_`|(5c&N;O=*);=kk?Qj6kChs8k?rh)$+((-HW!(+)#6*a;tAef$D?g^7WF?q zP?=3kupRA&VGx_r7=B0z0Mf$mz6*XaLy~ z^(U5@XNOFr2rLy+XZ3e3gY=jgMM*SIR|edHCpU59aORGQ$);ay@d zWv!&F>t2XcFr9MCpnc4xMrqnnO?H8EClOwowK2Oos6PteOy8&|U)YA+cCm+eKO9!F zRBwZA$J-AsynFG&9B#kF9_%3AdC%Wx9$l;nqg;hDHHK@4GOhWS6qI=nhy@ZCV zoRO#>?YVRAlD2YVotN2%51B8qGKJ=jwhQn(C$-IwVBzhLBJ*?&O!{Sea7)MNV~z(t zaZk(SrnOVt_-G1WjZ8NoA&Chgf-y=vVR&jumbdiXfmP+=G2eNk;n5wh2iS*ads@$; zZaBex)Sf{{w>D-jeCjo?KJi>(J+4jUD^b_B1qfD5VCmQbaz zJI~pXTYAy)n}}f_i{^P+OeIR!t)pNTSgnK`B06`f5%CM19S$lN<%4D)oXH%(XrEVV9pL6xFPZfIj9Pgy=aB^d~gim{S#^YrwcCw{jy1!=`*lZ0q?;tendO zt$EH&`W}#LXAn1O3gIjAFx=N@CwPCJPH?6^VX$(qekD3rMIw>MUQa$+yRkXV{;|1# zh*_wNtsljs{ifve3krgj_*;^ye`+r`k3bLp%TiR{&@BCXFGywX+cnoM(}||}yLG`& zDsdgS`#jr&EXGtUI|eTk}wBwyr^>SL>W5%IgaiF2}LhHMHp-vGA`77VpD1 zv$PmqqyoZ3MP3fkPKMrqR@2ZPv5YaZCDyGbedD|ni?&pm&gjgfz4Du3Nus0c zq2Cw{yNr_1N;O7nXJ#x&dD-qd!Q+2`$7ijUr_GZ!OFmmg4WC;%kvhm5Prhd@`< z0slclrZ@G9Oxf<6-ygeQZQeGaYnlLrn9hf+_bP}dRVfvRvIa%Lhsx~d&`pe<9rmFz zQ6EvO({=b4UsAIAF$3E#>l@T?L4gJ&zk!J$;-ZS>`O^fc-ndhKE)@Xaa@6PxHf z)3ui&u}-IT(NpRfU7UM+2Z(d*ir^qF@E@gPiC8b`38KCUOErAlUKt#Vq zZs(b7`+hwq|8>h&F6Zdd@0eEs7io#Dnh$${qRyqF7I2BJ)^OzqVk&wMcmm?jy*r@a z|7QJGUfrkYxVPFbjHhpYlW1^GIMynxm-hap$aWV5xvq^+46?O&B^!mGQ-#X7 z{)`WcGF|5QHF!KO=#ZKp<90;;0Zs(0C>bHEDGD_celLtcNn}!z`<#^lgW#x( zJ~_ZFr@7H*GIdhP;W;E{AsumWx%e@sexitoB7*M=N40Mm1u6jPraB075GNA(e!BOp z#n-sz2|=RN`=^`lOmw}`Hre3<%-v1cxA;Cx(5(s#!`^SHxp!A4ekIv(-z)1JXiZCI zPn15ce~&C_?mAAwOxb7amj9^qgtAVQ|DgMq)I5IFpr0o0UQ#@UY)hzlcPzgj8#zZT zP`MLspFUl0ZiQjE%nrQ={3jbq+UXYB_J-}b4^3K3kSNo^*@Mv9?>eiWjohA(fi{9p zGfuUAm*+bTxnVSd%UB>+om;b$cT9#b^Jx-QO;`t4Ut3wVmEW&6orFEVuvAnI8*UDS zCAw8>{1y#Nr%iSc>|AE@c%55J4*RjkFY_qj%zn8y*Ey(_!Y9P9_=-uB-{qZ@g(n5R zqD)7$Jw8_^D}B0*{A~96YOuf`r}I0KZGf%^YZ#D*g?qarje7B?4}@^7PeQVElHD(J zzsNj7H~inD4{wO!BUk>(@afVp+<_;y@o_kEv9OU_#z*5v6kQcgu9X(esqCf8rM z?eSml@vTyeBQBL<26Pppb;(#rYEGh_j1L-Na&?L?|8tk=@Pju9pgL014l=d^AQ_2qr9?N%FWL) zvID^B{{aeWDuPWb0(4ZszS25?AUg`N$ZWcLPv=wO((S^v1Z+h5KUBgqs2|ltoY9(6bKn4 zYhh?&QXSTZdv8b3gm42FE)rad7l>r-5FNOJ=i*fhxp*YDT=!s2n9b8~jD8ty#-4zg znK15S>Mlx-+3Fix&3`cChF$w$xo>lAu)0%d{OvU<1*?AE)UNe=3^9@2-ZSho?9!#* zQ%QJBqv`y60NMm{xVD(?k2hXAz&uarwO+uvHNoG^xBxDZ&>%&UE1UaEnm`H^t-nD8 zhHhCaa;H+49rJjFYo0S+dW1?QNNWs3`LxmZ*eYuH9FLDxR^Ndw_f|KNjK97D8=2D5*&vt+p8$*hEwV z_-2cwsf32POE%OMo-NR`Aabmw`2;2E8+~Qw)+(4Mrzm?+X6Fw*kQ%@0QDdBSO6DJ# z>OvdJ0IJt}nD0K9OeW zapo(%#+e^nL%MjKOL)9K54;(w6VkDgU5FnVwhw95f!;ozT>R?!sfURy+J8xtt&&k_%RHjH^to}P#r6@bCVI$U_2k@>#gPiMzZJ`Kgs z6a`C`$#aY-Y5Mq6{}uwKoV5VF_WKuuzLnHD7^aRNR#}uP>F5(BoFN+5^+24(#qnM&W3n?CzQQ=y-JPmJ)wmHTz zW#@lC=5B2jZS{envf>;wgP*w(qE7Gmr)+a>bZ%~EKXU~?3kX5 zKIL}@HBw6n{*Xw}U_`#z{5ulij3uQQ3F?>4Y)( z0iZzJfW&0jr&Uj#oqreoov|c<0cGl+c0y{eld>q+91R-}%ds!@4E(HEe@y>!3OBs| zIXz)aWy1EjWt?)jT>~8waIWto)dMYQK5>D&0i^Wv78E?Mj0*%AwaGHzSE8I8$r473 z1s|<~o@9B~^S)C{m_az3oUT86FQN-1BzqnE4}XfitRhzLv)Otp%bVDd=G3I!fST;g z8bgx&P4gdDY;QaMwg}eUbUxW;@n7*RiyfAdy};tK!y!xn5yb% zbF(d0P>x#Y;xUDAJC4)~n;;!Rfgx^CMIO_8#mP*2o@bjJ=sTF&CN-Q$eNxmSP}!LA z>V%82(O6=w?CU4ILXrLX-6N50^upIBJFHB&b@BoLU zTicYcbyv`6`d)x~4(K*_kKUu(c3$3O1;R3Hqv|Gv?u+G@ADu;Y`05YtBHxQ1Um-i{ zJV1JUKh*L$Auqy(GoqY?-5#Lu1m!;PPxR#*g2sX(7E=Y99*hmmGQHR(4>Wc`=82B2 zyqM)_R2AQ zV*0knJzdo(_+^O-GNILX1Mt8Xv-{Ovu0N5Mi_Fp*XWGeV%L$$Sr-JP*Dov*G3Mn@a z;-RzG>yGEG@B@RtSKd?V{w^!{l?Bl%;R?|r1+IzbNL0qs0=P+Io^$T+yXiO{^9?Qt zl^n_WT^o&+{yg-0^v32Km)h2Bw11`;CFwX-c`)6$MwpLnn>WVV?mMpWU z-0ai!k5-xupn#qi8r(fV_e%LxMZ4cnyOUc6&r|aCl$&yLBPL(pvuHBvvUN9>wk&B} z*k<{Mp_`ZvO{Q0qq1j|n!5co0U_jH7LZUHINLIa%FX)N3umO$d5WKploBavOv~cES z=~%D9_wk}cXXL2P*S0bpx`|oiWG71gUrNY>)~_-de4m~0AEL3@?s8h`R2#X&Kc7UU zbCG82m195Qys|E_548%yRKzgu16mr?96OZ>;`$X`X}Y?Q2JMhN3@ixCM7Q}$C9X5A zy~jG8Xtseya$Nw7)3XSxxdVxx5Q3XA$w~KhfP^6KJo{3muWinIj+iBzpM>F!UCzmD zK#d%`LH;OeY{F5eoP;vWsoa0_@0`NNa^tCnsDvZ>TJnD4gD7|sCJpfH$l|bCi)fmc zp(3_Y{*#qwIk35H383ZwnBq#<7}wywL&MCA2{Nnlj0lC}yU=adp@$Vuv~EX2A=TmE zyKA)LBuZps-|h3wc8VH2$ux=syAq8sD&LuQFH;v8{w-7Y^D{DJ29w=JV3`88P)!wa zQlJj8_c1bj(eUbn0($J9ts)_f7|vD2?-M+!BQ}!w^;Z^k-vjE!#lrzs-+CidmO`l` zlSM{=aCg(dPPdM76zF&N4rmKxc#5G4)@UFYoAFCn^(u98cHa92md%#Uq`|5e%ho9C zbZAA6PJ&IKCgp^qzVv3!Q2OMV&*$$PLqlxs7a}&;K=l*qI?3t60Kx5!xdH zmf-f|{(VN9(GL}kKESr*|r&(SL#nCW8!#lrwL%yNP>5!L;$Gv`2*RtoPzDK)Eta*}JWxZZNz$I+ohj@lE zW@6piK(U=!NR|ubrrzG6v#Ua8*0snj5q!zA&d}wD-pmcO(Z1ic%F5TCL2>rECVjfi zjVW|wQa-h7ygok#o$`CRLs)I*&LO*A`PQA=oPBS3;-;(P+I>3zL7$F#6-RyJ%B5td zD4he8j!17{B`0H)cu7K?Z*Bg$bBL_w?53TKm$)7sw(xw=<;G3$8y zRik%UVxEAYmp4z#vs5(R!a?Umh&E+R&>N0gIU7-b&d53GuG~;AS{F%JpI@!@w!(Wh zJuV341)uG2iJ1+#|1Ip^FyC-Lw<10|r0CUUE6~xn?UCAWN2_vmx(C`=nZP9-s}cn? zad6V~V}ffUus%hela>OAljIc zg!+60H#gK1e2p$DE-deUD>3UGOxG$;I%l1#CPYTZSsQ(^=YQ_|v)kfr^{QS15OY%- z>fWnEd@N`sumU_1(m0)1EpMeJ!cort^rB#`Q*`Kt zoM6516o5B(C^IYCgqJ!0YF)dJF50M^IJK?p$v0iz7+Hh3YiKl3E5D&u{hq=#13xdC zGZKTJiq-u}Ht2K)fx|lx`*qwRjIb{;D>r97R*=_wR9>bQ= z(YCxA{C}#;e^mYQ3g-R!{TlH1RMk##->iFv0JDcDwA7h5Ehv&l!T>g3@Sw;1~w}hktR+h3i>MWypLB1P#ic>$UuBbQ~}UscsHV zcLL?$kOIsgr*H!mcsrEEs2gaD+0QYXZsYQ%g{bNk^xyKAt`z?Q2>BK|77Y3FdOR_{ z+)fWTwn04?tMNWpoR*r}-G~3xyI3zfP29=hA8a$t*!Db= zALA75UufrwLS7^L4@#R{v3jT)EjY8UDd*36-b0z4&`!wUu~hroEscw-DFl0YC6L$k zc5u&jui5*VI6dp7^OjD&j(J9lY`a&Ii7!qg@3Hq#LiMo3L*_sD_-z}dJ>41WY8eU-$MPlZJ9Br1?6HGZ74}^3UqPK{5EMe@@ul0-u5tW>cMJ-1iYf&` ztJ$~GJGPztg=MQBjr03UBnXx@hcXcQ_7z|38JFo`QP)&B$eQajSez-7I&-N0{02-|4akQW^Cr8f5nbZ_Gqa#3l z2`oJ`x8MV+5jCw2+GcXZ3KFbZJTDr%kJRY7ut=G@(xKp?1&}zh&sJTEV;pvO?Ym|| zfs?;O80q7&L=c^8UIXwKI%(Eu+mtL}&Jz&!nuVQQSw?$T1(2JdWB?V)^wO2EUIAb6yz`+GH@TMLNykX9l9-A|AEv7ZmBL1N9q++D?e`h&;ZoA> zACwpEf#%qvues_i-;ZI1W`KcSPn#4gt%oF=89)1j{1LrBqS*-ya~@2%7`p$9R;K{> zeFRS=q1(>c{`0l99;C&aUvz?cs*rp6*|9&?ali^q!L@CGD>lfHGA7E}?yLEZ7|j1s zbnfv?J^mjbbI&EBTt+Snql?SLT+01!m}^Vr7B(fba+&mTDY9nn#mtah%q@zL^r0}+ z(2U3>AD6jB7nW3?&+oVIzk8fN&L8LOob!IaUe70F86WpfRq?F1yK-2@7cUunyj2%{ zzMx3e1x8cMF8OwW5oLTB$LSEqL)0c{mv-)U2xHyIw;0ml*_Wvi_O#B*2b1R zd+fcsa4$~iz>eR{l*NSDbeA#mSO6ol>EL&I_b$oWHCrC>y>4nf`tapYr{%;w-T1UR z9Y7@i30%(MO^nNi^EscGK|5YCSQ_hHSF9Smrif4Ql1^~a9Iz^SQzPgSc|jwiNvJuu zVBdxG6neBcK7@csvV9ME{cnuSsDS9DK4XJwOgiiU48j~71^PV68E~ZR{o8q)1VhKa(crL1|mwN1x;gM&gcVd`DP{Ii!%|uQM_J zWzTgqBQq^0lr^gN7+pgHj_8nIGTQB*g;U)k!U~p;=cQ1X=&27fYM}*~%XM}v_As?>&2Cx4mf&Ybf8w>w(Yw*>VNX$(3ci`1PS!R*m%K zwjM6-ahu$X`vj-z}}C zYWxeiP(GYqt0Nc_z6oQAmG%*`C}@R&d^Yz()`f(jy@?l{lcJBT7gZI3Rp^8jNXVZq z>TDY*sqtn+f~YdvJx|cwl3fJ&7<;_bR3;g$23UCvQ5>3cYRs9&O6+S@6-I| zyBym>P3s*CCRw3YqrBd!tO)Y$6=2P#iv}fiId+bUIUNFlNnC)6iZJ3DpBUD z;XKsvkd}po%2HKkJ%DZsB0~l-q!9HkGrxJ^$o&0e>j@PPy3hvOJe5$lj)sBtyUvg1 zMEV+nguH+PP^Rg5l_5SGPF6K&KT0~HoXS0=^%)ny)R8zBIRA;1TVQY`B+{;P?Hf|)1YTtDz$buVrS*>9kK(97_7 z3qS-BZ49pZjs#u>`=cVmgEhSLljf%yPX?LKgK7jK4!KQz;8y5Qft zZu-Sl^0eC)W%7s@%Ra8z>@Z~U_8|4YQ;a&gYZtE&w`R>Xgi2oV9sM^4eQ&jI%*;3+ zu(OFid!LLMK(Xl=36dwqz~nT8#z&%Az)?9+gm&`-?5K;F;`;i0X*I`I8(A4obK z5&F(Ug5Lbv@sup|Kux?_>DGFTx$SByhZUW1SF~%atB#tH^-R74{52KPVe&%I7(WdN zsY1Fn+ojc?yW;2R5hyrU)QOHlz;$YVTyjIvy|%fF>#*pL$ua_?-p&OkttOqe+;P$Y_R*DVd#zl4PRxs$xIj6QAqc`FvuU#$NzX3jL4A*q zm4}CZa+fi~CsSZhk%JD6_P8Gihc0`Muuig2@gR(ObS_g4gqs}n?M{R#sSbhS)aBp; zY50-CBZCAZmn-f^=aX4Ckay(%Aze^@yl260oaf$4T?hN#9}C$fm401A`j>7ICPL(ikn^{uPur=6b&a~< zo|3<#2-BO+X^?+DKC}kLHae(2&s~_Pc&UVx8(C#=%}1KR$9PR+5;*BlY=iLq1 zPV1M~?d>Uce;{gVvM4!CPPg2d47RNG+cLM{2I$G~1KVL(y{U`#QJD3&srDpby5z>F zlW{@ZPOL>oi#CzvVRlp|X-Sb78$=x~&ta z$%!;?2S+LayQqelSkhg8M;+nDYJgBd^0tq3A=|Zjf5U${K`jaF+-I@vD!UZp*n5sw z!t??BA`R2$GmM)h`qWL?=RB{At9zMuDozcD3*N_?758vS-qk`0jmK?`ip#n!VWJg;4-SzM1mIavdI9*O;AD3iaN`Ue zJJ zGvh$+TKF;=mtM(nwjR=}^iZ zd$crq6tch?d-J^%+yrcyL;94g`l$YdLaRnQe8~wYoooiBiZ1S6=qQo~?FM^$$)H%} zWY&FNkdNumFdLK56-V#jcRiR(`~1Y>I1S4o8#iBVuKVQ)O^FDHNY461(aJmP#G7t9 zZA2vQDV41$zT-SxBiX{5D;PBo62XL|rnJ*G+w7~aO)ruVAmOgjSeh=;;5%n6_Me|p zng%X5*h?o--=}no4@=cjWN}kN*4PVNw`ctoFDpR)(ajJ!ARcA?&4bJYL7Tph#AEg0G4V`PV*im0(NBN-4v#8Ej$XCsnDq+1uLnGCX-sgyCvQEe^g0CTKB)RMi_kS4-f zYuEohO=UsFq}=ofe(hz~&I3DnC5dLLe{24L{yW2nt&XS=%MiREc+N>yzY9#)O{IWA#qqwjgzN?C=zeA3wK z)2P0jJ#zluFzEJnhCs6$eYJ=7e13l;jg!tBtFVfKnLJ8a8NcFMTk!NPoPcD0Er7K(?HI12&3#|B}+C zzpuNJqmE*HtmxKGheMEWBE}B6Gptqf|5BV^R;kaUEW%|aYranZ;?=r{!_2e`iES01 zWgbwB&b1|0%a3V}r>d5HsT(g}JTg^6iYV@k$Z(s?w@#gi@hp*6fLKc1fAxMCTJy}s z*5MZs6)Y{BfY#O1E-~IouJ$a%g%^J;Cr1eA(n?m+cLe1g-%nFDo7k$U^!ViZ_nX>r zrVhJohvB$Rb+j$k(Pz3xR2@bggMKOP6l}WtH)A6DmZ6<*q#Q<3jB#cCFRpI{@^pyn z5^YYQ^~fHtI{qTC-CLWK$D)Dn?i({iBSSA*bE2(Dqz&8BoF1nRGhcc~L}ap6pY^}! z+q|*{0*~^zm}_gnE7+x2PUP4dyI?jDg^p=o_0R2nhZtc4bw@an6Ni;x%=uJ*ciC8& zjcp5gsrhxXa((==^<-yfE#g7XJ*WoOo{aaKs^>+1dnInO9#-t-H{i-zt&VWB5OgSb z9Ay7-}KBLZNBr?5EUd>hH(f4+ph4dTj|AY z6^3{n>js@yY_rjr1{q;z1%Xdu`+E1NdOA;_6QdADv#4I(R95cQb=*YRBGyx5ugG2U zP$1v_T8Xi8A1{+d|4TI=n!bBs&hfs4T7ow&rB9qwMqSH706P{Q%-?SoH3lURf3$@qk`V5iYAEWH&1(WjXlP6Ky~M5>0JjbDJq%zX;w+H zO*iKUFOSQap(@XNO$Vx1ReUU|av-9*6n9MBjKJdB_qM!1L`W||6K3939frv%F!d_5-S9@| zW@vKOCCo8>1G=9H+!$0%r{W7@|Ggni&cpq>+~I2Z0=MH1?jJLZ?wG{PQ!x1Z=h2uO z4=eK8MOZ0htg{=)-*t^*!5DO_OW;1n3=P20X3BzFjvsF6H)l`jVnFB`POfDv8`N9{ zTE_=NeEEYB>X(>_C6H|Fe}u}>^nTBgk^mSt;=ddHhqE%BbeAA3APFv6mr7iUj6T;! z{pOZmwv=h4|12g+b@HvP8I9uryw^D;yy`g25CQ>K+uG zfyc0*KyMkA_aHgAY)~l>F3CokUA{Gn38XQ719hYi0iEMf19nJzS&K$$yBaDR$4R6~ zdE0r}=zFp3zT@4*pD31(DavPf`R#`1B`LM*f>!nzkZs>AZ;)zJ?xs53sjx@rcf_8RF*PJv^BxlXiVdH=nti>wfQw z!-w)WH?1|$5dRX3?F;`Me{qb2^dKl%$)IJ+%)Xn|4x1m@KzUOPT;GwbcLPSk+Zdj* zqJfaD%jeD(;V3j!(&77WT*jk{Lk->zqOSpLK~bb-z4UYKJTsK)PGInleKxr8m|9BT z9#dfMpgGsuUMs?GdD-uLc6GidyqY|w+fefFKRUY&I*DxRf6&3+6WE~!kMgI@_Vs?R-HmlVQW{{p9b@^!Eyywt}t_19kqCSnkJoK>J5@!BF6TgRny$)<&_CG zM*3E>6hPhTf$N|_6T42vUnpgTdtD+*WKElTkXa;tc`qZwVhl?5&qS=>g`^vMUA2Dl zM9HG}xVgJ+_aI+fgKtc2O5`8P?o|X}GkoWc7lZu9M2yx^$9am40ui&4bVP?=pw^{& z0B~!e?1Z;*W=1~p*)ezKuydf80j0J_O}O7}g_JiQCo|_?b}}AgkDJd*bV>|4Z0wETyNl36%XdRwK zR{$E6y@WS9H4J_58SAWI{m%7}L=a0R-`%HHF;8Rdq})_h`mu%fAm6UDhp&p+^_r=z zcB;#WcB}g9#i;*&KT1=eWVzP^Qn{2XJAG`kt}s$T#|Uh!{lw`@_lvJJ7-Wvj-U(ZH zC}K6U8R#`g4fxo(P2v>uuBC~&Y4GxLL@z?u1a3Q(UtC(D&yl%BKisab#fa?sk@0Ai zj}~;dE}w7YfNZDV3t3H0ai3SG$?5U>K{NP8M*N#wgAls4^sV!w)ZniNe1=iTFaP0A z=kNBP!q=_x6=&ph)FFj0s!#r95QNcOl)v;0zcP;0g;m%<6j!mn6zv3W!`Z1qy-Qg- z8k4UdFRX@;|DEFq;#B-Pjmy1XQ5#xel*x`0Z6bZId~i-r?OyNK zqd(>y(zp{gDj=Fdq+QybC$w7yH6xvs<*BX%)uhmABVoiFCfyZR=<2o-`V}1jpvyu! z=X2#Bo@{N1R!dpy5tXp!Qi5O+d%Vhyg(l<_{ryiq0M>p@wV)~?Js`L4!a*oUNO2m)^*ks7mSB!5yTQhnU~zL z*rLLdAxzzZ7EM0eZZ~eZM=M;`GKxVt_5CSF<8zV#ptuMUcHM`bbpu)`N#%^$U<0d8 zXQ3WPu6~8FZ7RfRws#w%KlHfX36-@~U#Cyb9*KmnL<`>^{3m0IvOyu^?WF`cWWRRO zMf?<3+SznBa;>W_4ofs}a}zmid8_WSZ((;0f7?&xll|itrSn6C9|M7=MsfV>Epxzv z7zsh@Om&LHRSAd=oqg(T#clQMeK-eCVX7$o9MHP2KZrhIBR-z@rDa-AjB*+~`j=&9 zY#8L!XuS9p_q&e0h3uGmR6O$G)H-DDqQySr)KvWIXVi?z9FeSTPNU;J;o?~mW~G>W z{aF7$RD?5E=Lyo!lHBZ#eCK~P;@^ci&PxK($ja9M^Y;rlz35$6AM_LSsD<`Z0`cnT zTy)E}A0!I2-#|FJuEahAOT0yMbD$VPTYa-gP9<4=OrN_~j2dSey8J@{0J@gQ??9Y~ z)|j{mpKZksW8u7Zt%y^nt9n@O@tRV#(rf|1Yq*mrn7NfW&JRln1hQ}e3D(9-lw@1q zxkNrj_2o;H17D!dOanE#4a?_cATKx`~k@Bf`#5mHzZH?$6M18xcW zyNbQuevYf}20z)kudG4259Bx{VhhxpUjoHoEcDb}Tun%kMBg=`i$%hcXh?83KaFe9CQeoZm<$U+uR`}@9&TGS= zv8zBmb@TvpIAl*L*j(AhV7_Rz_lm&bTgta_Z+>s77HS{LXPOp!dMF}BA+FwH@cj5_6py8`Z=TQS72LyVMYk=`R|hScvHd$QPfS#uist@ zcwgAHA-l!hy~f--{L4LM&>eAG+*E4uOI|xeX(aV)q9fusQb;Xr1Kh_p5{~r%PD=c# z!kHvVBO-WfO=rG+aI`9S?TG8rS$NT-pfnPZ@oy}t1yCT9XbHXe{9be0EO!@!;IJ-4 zQ9>f(S2WQ7U}pLCEi$bHGN~9eWm3emF0xHwC>Z-jixF11Zuw!n5{##e-L+e0w9L7n*rb2ary zf@vl9B}K-9f^s%=eOrAN5Kehq@drkOlczdfDCH_*5YC-cJArPSrD%4w#++-*X!1A? zM`fKzK7Y?${4ERVMzsGb<63J-%5(ADXA~2pPJ7+k9&i?vfpZ5OXQ->R-a9FbHQ*B^ zi8#~@ozBD%WK|g$10@QS{jk9bQEQ`#7Okea1|q~3077!48sJshMqQv*1!5=Vr3wb{ZH$C z>WZNPN1#m>gE(M(I)n}mT8Rd?&Yv+8j$AIr7s0hHwhEC#S_5Xe10t9{de^qw$Jee= zUq}TMlyVY1j#u#6qcekFbEjP%?K9_7VHfVXGVbNl4Ly=UiV@G1HFj46P$m!CY|K7w z+c|n-4CnJH&t49Vho(b>*#vtd8Sn+z|j@ z^2D`=wkT7F=b$GvXZH7Req8aL;eFbe*yH(87o_>0IZB&(-Fxlgi5^3Y=X`p63O#$d zYN|K_%s#yt3bUZrE`@6dBvZ0yf6%}5(&j9)5Y+5kA(oQ1^e=ypUH>6xj8}@}j{e4g zm5ySW$`V;t|8n@N=h{(gf|(}6)j64d*tX$SR>TXE?_gTJHY>}myC@Cq*D`!48jpN% zM;7(kR+ZLm+~g!qCbre;75mDelWm?2*TdHx)<+@LyRPxc)IMQX@cA>|SCB0hz^R%% zTY%gY&6jY*1@Z7ruMWvaJOt|@cs8c`J%4=7l$3-H)hPLHt4R4Jfm)`NlrM59F6~k_ z=;lVC^0zTu21_a2UP7ZCxcv7n(@XT-R>{FG=^myq@N^&ONBvv(Q*@b4w+s@1E}RrP zkq7!v@EMk_hxh#Eer{W{;W}80==uv0`PE54$yB`S-%59!XWM)0(yh6khA`KYZYl#v z!lWzf?Nrm7J{1~fVRib2f2E9Lj=H5^->}m2%vMbiBb$1`)L3C=x!pDW`hc#Mw=dr6 zSFt-Bb@vzN@Tz!^Zcxf#0zDhNN0ky^Mqad=v*Z{J)x7xTMlp8(w|{6h)5-ZAV4n$I z6Hx!bvZkE7BIQ);31FtpM$)3jdDX(EoTCTvka~f)=}m_sCniaK7`x$lEn1gEup+rY ze;i$@U^-xZiKyPgDO-M>GnQm-J=TZ0M0dFRxF2}f((h0dMa)YFP(9HaWY9G|`)tTs zD)xEGpN-v{?0_@FHL@#xFA!h;Y(D>U2U^cPXzus^n+Qp#@DF3iQJJjP0hu|;eGJ>k zc+{?LW)wzqVLlTM#qp?~MFygA7(e24eNPS-7tPb?f%Jw};o{(^19r%Bu|~ai7o!85 zf4{$<%-dn;h2Wx=2)vu}?Uz|qIMfOBQLT&Wnh<(e2%86U5yhfnJ^Q-T;~?u+3L>$m{(n}(alk#GD+aJ0bb$ETZADpUF&kp zPTrn4Q8S~+`hv&GqC_QIoFwlA3al!#>8>iwxD07y9}}^{;9WdCkXy6N zbVk!%OCwk4H-hw@Ds*Q8}60(UbBMZ~eq!qh)!tXtP5LNn)%I!)d=)g4ljf;7QXS@GEWx7DT36;FK}rI-e&9iGoZXYJpnYDg(No{ z^ei3Acz*b}ipY5FI|tlhE8#m41RQ7QQn|EYPL*$G3hiyd$bh#-$Q{<@eNaA_5Dnnh3C2CsT+6U-Vc+ckJ$^LgqlfH-aN|ulJr~aoTKWW?NXtA$dA1iTmqopTB1V5%S)*cX5 z6IJLFiGbj0qMk~W!p8#tK46!#2#_(IW5>6!PavPP}4nZiGpoD*EF{c}i( ztK7>P`%P%Y>w%hgt5w7mL?x}d{)!M zLv(GghGlTWneP@ssxKFp@$a}nol5`sGuSuB5(teJrSsW(g@ZPzSv#fDHKi>sZi001 zx}fY&?CS>E3&DF@u_5onx-ewyRQWv}z?wQbXBPfH#81fFaDG9l$S%^U0WG6Ctt7H( zTKWh5GU=L+p+ayHv_VIH7c_Ny!%D=B+q!OIHJ$*2LIOfsEq>IhXbcvs+5@E4^vpD` zL569OuhT8)){YswQfwn+t8WQ8x=8^NmX11`H_$2mvE=N;n3=-$&ptoXV{*kQe7WMb ztSv;&n34hD%|esiH2dkPifkFP@6`~ICl21H=Su0>Cji$X`3&`T{an@vfN{?%h0$N# z!Tz%`)&`Oll`*fIfV`AaGwc)S!R}n9my`+$>n5Kp#sJ?gz>htw9#-Bh9IA01=-o_P zx0gnrO?UC5v=Jl?Y=_3o8p$DXxjKhBD@WiHLrm()erb$r7EhNdEv~%6^(#iUKDQT> zQ{MnPP?8xisZAKKbSUDY(?ZCbxTVHq+f;woPNq+hgdm#Y-HrPUzQuN|GHrS6S&5;v z%_x`p&};9$a3g>F0(S!x997G(I5$Z>-W}G?4fQM}^BLQtiDbmPkxHvQh8|F5k!wM1 zyjM54DGGBoikGqR!?qqe@OvMxrp^55(+Y+U81+V+D6EwK2rEd!T{90fKk-BQAI-NaU{)`7UmS(TqN^< z0OQv`7>(86bMlde+gTAXI_>X=02P6Ay!l3X$k|Xm=kuwe`R?T*N%cp1-<}x~zpP)b zmuDr%GV|)E(D6ein1k{D(xqq1C3*LVLKY2IP*TPl!S0j}In9L6Zz-Q~v&K-1{V=}lW}#Hk8Nxp&jx$f)PGEa3u|hl>Hf-OiR_gV{&lHQQ&kBsV2W&!h&G_$VZ%f=f4e{!AAKAaf?(i8|O%{F-|SJko&oZ`$?sf8wwGbjdbSG7M? z4{fm_&O2{<-k&d58Tzy<%iSBCGq+Eja?e%jW;>Dg06_8dgu5NKrL}l9H*8v z?md(nBq9%=OW7K*7JgUbPu}070#%lqjvToCHuX{du;D%%Lud*aB>0X?jQ8H~Q-)}NM(Nz1-WIGas{_xUf4;V^f2oYs?w(iKo4Dyo$st9d-V_G0 z>q=~KoTJs>2F!All#ctWmF|E}Cw?$|;_j~zFK70C;da-rAhjnWzSA0ZLmG2IA{E6p z(kE}Vj)oit6&O@hj(S}vSeZnLOv|#ep?^dUWTuCn^3&ogx-2 zWq#sJpV+f6UpN4BlQmA=rfQL>L9;2b^liwcl+aAhGX_HDOZ69Oh`wMu83;*bL`IWQ_<>kat#%;a1Ly)tt#@>nQk> z?shbti(1hREWTyGMn-6OD|TZk=pTCJT7DKh@Ue~N`q(A}c791fL<6S^(ERPI|3ic&5CJXYZIc;Kv`Ioi_|g=5ox0UTZ|@Rw_()h{Awm!Uj|Owo z!%34_VZ*=t#v@la(K^gOsM*e?Y_B2Omal-J#=_+iA^P(nt>R*tTyyt4q6Ck8HD06X zfKw#Fs}Us6H$pCX2(?&12`sb2*Q<{>7%e`5@$08mjEVtS@CD<5@=gZuJN|I_**_G6 z0P9JA0RdW?q>zgLb%e>p_72$B@`UMNd`$QgccMTiLw_Z~BgKZ#XholI}_BsnGOLyt_MU3OP$; zHGK1$Sc&mi`%&Q==48J&tF~)qA>VV?7q#l8+q-08`3dH5rj^%GN)A$~+d|Zz7fHnK9MqdM;$Ye&YF^Z4a-_?E7y+ z6JkDP__l(V6|=w@ZmmT*!z`$Ri~IdZ!4|;Siuqj4_;)9dtj2)R&-7?2>#3XirDi%- zbS+Wg7fCraOht-}QLDZMx)SbWE4Enzl1{1@gpNRhe>LHU~qA^)+hx!1VL*7U-< z5d;eTU)y$xWVtwzu|&#Cm#9XNW!nh7&7x=1V{TA#r7cP}HLh)9+^Z-bT@c@{N-7mt zwNN3V+paF!c)xV#)ba6VeJvDqt(8~V8|RFY5N99(F5zNg0`d%4pp5*$Q!E>hk+atu zHJ}p263{EXPszr9TNk|1pF_%J)!Jp&wL=$5*emVUb!xUCA-u#GEpi2+8rch2gWdpR zoj-a8<`O@O36x23G#~{fE3}j|U7-L()Qo|P16at)RG)UPq~dpjctNI;(Sc0(j$$F) z?4TUf^nk8DPS|j4Ke=9Rzn5iEe-2mJQF-YeqTCjHS8%4c&0{yBV zMxo!clI>5?v-T^h%)s0A(fN+oJj={Xj=N`AVFo<09a(rm;D~i(6z!xEGI2}|_dldZ za+6ak@xSA^h_tyPQJa({Qhb7>06vXdKUMA=@o=fZ=xxC8hwDMtyLj}AkH#~dZ0Z6m z8f4nct)=Wo?rezsRvjzeWR47dy~Y(2tdC zv%V6u|Ngf((FBS3E+jyUTkM4+RX009yppB*jgGge8vdf1i_Hn>2`MkL>JRbO04I1; zx`9xUsC%uV^TwQKDcsAIn!QYOWN;|$abE(p5hwxmj2coZR!TIsS1_DAjq$NuTp_ie zF>q~0{QALz&8U2@UJ*8+DTOtS<~idKM}aWyF5@)QmbWcecJRrsin;#XJVH zV7%=Uiy(L*b+rG0>RI@k$8V#dUs=k0K0Sg%X<(UMl*RxF2q@($F^=cg~3sUG*neMG*2^hPIdZw_B3@7Po@%8w`OaX59&2nc}6q77IT@ zLTqbit}fz9fgI+-HnsNx@rrs2+F)kzgK8-;C1XAV?n`uQTE976a734<$FLZ%xw#HN z9Lf0g;Y1apWC!mvgf!!C1cj=bB3z7GsL2~W!l;>Yb0QR-8sLf0g3rjZMdCd8n8iJs*f6A zC90yhEpLWZU0cAg**x78{`~Oac`?b_IB%$9wNMcj9+A^{fUCLu`7nT$C{dF?(&xsj z=q@hwUnMsb7)G~T2zfEqyQauKP!Z?XBV1=q10K2zALLJ1BkuY^zSK0TCq?=_>s*X_ z`f|{c8oZudvs?nl^Q3cdRRMH|Eq9ZA^iRMu$g&fdXs*zs=hj3D zWNzwyG;KLBKMVvdPu;IV!KmWkUEh7P2i~EsH}iTP=m=YdQ>vxo(H0{+vxB&$%5Ji% zmdq`UH~Z4Z(do^Cw%>{cAX1~vimVzZ*(1)5jM-k)pS!r>&^#{mSQk?)SkBQsJ&XVa zI3BrY+b(9%vGGC&aLki?_xfneeNZ%Rg>rY-`|6zB6w~a~RQmjYvX0G$33hlCRlN)a zvN+6-`?h80N9JzU?Y<;8%UC*p?6PsvU35+*4L4uG_3~9M!>L!g^W7u<+&z97H8O{| zZXQ34`K!XfI3FqIp|RHFe1!*`q6U7%!ndj`#6>76=k_Ay-M}V>8lNFN_u8v%w`qy~~OM)j}_B0d+`|s0{xWg%0lXk#EzBU~qH^J66o&1gHGYL%?sLr zHG+xqk%d6< zm{FH%u`siAn64Tv_NR$z z&s16>nsj9if-W`S6GHLB!yO5(zRs>tPNSTeRoy6t?dWB8%FYpYB)`erBHYSvT!6PS z7f%^d=GRqv3@Kh49I0^ye?_0eW*}UXWUUa+MmAfIPe9>h=a+t<2tl7#Oik8pjAk}` zb&dac)7xG_`&1EN#Xsvw2ThwG#F`@8Dg(ZIdHy@2bY0Y|UQ(x+QxeLjr(7pUN6&Ey zwJ}mI>KHF>%%kdFF$_!HKs!YTUlcH#Y3UD+T%n{H_;)R2y?S`UKvu@=X)+D47)}Ke z(F^;kNNLxveSOv#BKK=8n9~Xf!~N!%JOa`@pS-j0e4Q{ygp5{szpiM>gv@0XlLNl< zPs+#3wQKe*QS-9S;^fwRpDV85#;d|bjDeKF!cY;=a~Zb}-{{#a_06D8K4jB5K&d4G z>#igE!f({#q$xa3@<$Ei@_Ivq^!Fbf?dBtIBBPb`t@2!zh1{%mq7$?<2AA`3wvra$ zWizcXfz8F?r02Q7;k}wBk}6OcB&A?lOvL&XmxHsBiY`@Pr#+2iXQ(5g_{} zhsZ7)MFy|me0TV7-F}@d!&h6`&&CKWyh{KxDGdjclR!=v-q816? zrXDBUrt5qO@7lKi?$a;U_v-@~ObsR01V;*15ejO+;(_>y%X6;oImIzM!CWV@yzc%2 zOr~>+X#A>?Qwi~!QSaY}C=|@>4`4si=`6$JLtR^QQ&yK?4n4y+`~sp1D_?!%H>X^< zhMT^vN_>L25WRZ{>k}_#HDRfM^*Sx7F-f}K*#Oe7Qrm zq)0H?$gO+(4Q}x3ZuuFKw~~gWK-ehYy#w`>&@$cSUBRBA{)IKC2K0S917?HAhq`lt z)=S-}FmikAz!fFc)Q8aRlWcvNBHUMo($vNe`QGlY6FG*TQKFtCWZ(0M9f zCA@6L(N?D3V84Hivola&r z|0R`B$fX!e)p-`HD1HuqtiTizKpp~RdSQ&ZI2$;!>5N#zAiyl*y#9byZV_vk*&S7L zf04V1_1BW%m7j3?Ky%U@;^kC7q@Fgx_!teM6SsWMr7X1;U)8pmv7iC*p}#*N%j4Bl zRO)AdTA02ew&jV}S>Cr0vde8h*e8`EFFSi96)UsNRjLJc%))GozF&xMS%n^Td&)T| z=0q0h?in+aEdLJOfx8w;=fuY6cnuJxtFE(IfnN9i15BG8dcr1E)eRb$Z}^?4D-0n_ zrdSAs>XVG#`d#T|CDGC`B=QM3E^fKtoV=ZA8v3oJfFQw4NE6F&v8c(>&NtE8O<}g( z;!z?Ad9R($=ON&40#!N$z+4a+_x}`~izCzf|HtRLh`BUHMnV`Vmtn(1xehaP4LL%x zk!;Fk($^)*&Rj>aW^S9gUy6_v$*pqTNJ0)G_j1WmopXMl-@mZWXP@``{dzy2kH=3O z&$1-qApjtjX!;K%RQ2k~xqkwrF2wE!JVDpG$vZIC0j?#mbc@ozWG zv}1JvNLw^MF(}Q7aKXVVfs5LKZTvY<#ce@WzK-pQcJ2Si25SHS$NlQgbWQBb+0{3@ ziQ4L#7X05oadnZ$>AAD90QLe}xLgPPWnm|6)un;q6VQ8!8mMaXz8Kqkv1?1tFeqiN zJbGY}j_G-s8kUnE(KUHfB|9Mu@9)MKxxK=0iM$vjtjw>D$NvYC6q2ulKI{p)^rsWt2Lf}@|Ab0J1s1C%|Z8$v_Z~ z&S-)VB*XnPo@n2#>G!DtD-lPW0&p%`^V*@Gs;u7Q!tAh?-?@{63_*eM@v!ss(+?_ z9DNr_HEaU`Q`Dnv`Q)vV1j?jgH}VQ+$F8b+N1YbgqmhoB8|Wy4c|{H;J`udzVu7j; z98y-K^G^A!UOkiJeISSFGKcIVV$EYJqXrJDaPxd_h|aNku#;QfuIm<8Ey{h`Cmjf( z+qytkkb(s+(5hrqHIO7#I4xhhy5!wGXvAKeY`O`3sMg~6REc)jQm%Ma^&O=2sr~fa zX07h59f`>&cPWf0{Tfxl8Q3U~>7F(7BYikk^sx7TpDUE2|4I~{KBMp@B^t1rYvh%| z5BqGi_*Za@(7C7oGnHN`t-2C7LgZH1`{>s26l#L0*oDTuRs4C?GB;|z%e&q`&OMSF z^pam@oft2(T?%3OGVv{a7fLuvTC0=v7PDh~Zsp5?!Bd6xLAdA7A;J+|G2QjmheFmp z3ftZ>GL03sZeb1VpPe`R z>XXY!FVXKlyc(~$Ennkv*VFAQ@yrAI)gX-3jJW+{u+o~Xyg5Jk&PPF3gR8;70{ar* z{m9~61vakEjqE9E21ae-1?`7STF{W#UYVJPJzxcOp1N?Un!*8hX^~;Kv6t^@G(Gi{qXEj3xBIDr(5-OS7H08-jI1XswQtXEu^Kytr=zU5Bzf=?Al19(e1>6 z1Frm3TNkPx)o!qn-i);Acxl=au7~1;t+N#n>U&i|8$jGj$LYHj=zAAqmVrM|Fmz>#}6WQR|)wmCUz zIGvzV8DRtyoyNY8U8~rHQ|~nmZzz`%elRX4rKz7SuebA2eYkkz#0e&^8+3~!Bg5l% zqJz{EDa!k|3T`P*xmOKTG+(#icG@Sd$VE>snUH$uNmw+2O`*CuH_qfqi$KRMEC~W5 z|AFeOk54&^3UDt#3%ZBYOo)EZ^OfubfvW#8<`RjIgF{YiwciZCRpxsHM!}UQhkkAD zti0DOs%gatx>mp-4bR}xYHX7vVM4f9JeT5h}Il8 zg|Mm{Gj|g7FGcmLe#dfj`&v}5b=AlF<2BCH(}c`PS5AXp>R)EO7j?ANqDZ@pKV`h6 zZNGM3VxSCWa;TrbEgdFa%GqgJe5oUQZTgKzorVYXr(lmt(TnJzxcuU?^;uyurw9&3 zu_{ztWDE2dCao(hbP4L}8taL_tsrUeMw0T|iPc?So}_q1rM%GBR> zpyHFWb;alKX~J5w>-e()G-*kDeY;Ee(rcA7k5z+(7eN8M9NUDdmB}QU8}$tB7U-LZ z7A)kELIr)gP6v2h;P3L)RFkM;gF}eTa=CP|u6f+duG5I}-qz~|TMfkiG9wOIr4MlS zepi%Dic|&&QT>7!vU9R1P6wqm$uL{fTb!VsB}j{+veux?;toei1ehU_>_iKThv^y( z7w_jJZ9265*mf4)F^eCUrHF@u7bh7~h=BR)h_M4KRKX1X~>O^>c>aH{YQbYZAWBB9raU}lL`Np&DXWY}-V`Lt%Iam#2ZS=M58-kmIAoIoHo1~hh~SCi5~tj^W8 zC*GOjZT$d|*D%oq%DW#x;GzNYhZ1#Ge8%2AdITX=_>>V9w9C1)lZ5$QJ>V&=;VVpX zMYqk;R_1C=gz?7?U7bIZn%x-Eu|uYc)-HwZ7WX`o*;#o}#pC&zi<$XE$U^vV?9nD6 zk*EFR_gh|XZUbtAF)tORLx4Y{ux4mOX#1K*zji$pHV#EqLY+1fQJ7K;&+|r zi}&f)^{ZP3q4o6Q1*l#gZfRY%_p$jK(#wBct`K<6n_>iJU7|}X~AU_OmtbE!%)ikZA z?`B<_D@b;EMd_3m-c+Lk;y;mV3XY`n250cW!YqCKGh-Htt+K_{-cs=xbc}rRRbNj^ z$r)L{Qu#eSU6Y#KCe!5Ed()xadT2{4_9asCCKmG}FtdCV^vWkZMLkG8X5pT^+op?Ts@h~){g#=x4H_PN+SY1` zAAXN%kmLFSwK`p4pK`8;Ewm{Ma~j&pW49GL6i8rH?&h{)uOiI`S*fvuR8lfBu~G6Ms{fl`<`=k z{lIeD)gCZco7`Gpd^CW$LZ6)_$h*0&2&u9T#pC(b*VkROD%1xd^3enATQdS^yH0&F zcbX+HlWbXa54fchV)6^S5YkpLD8FDtxK~5&)9p6ZNa)a;cAClaCt3E$|_l7}*X)aBKl_S7p`>{M~uQveWf%}d~$MAXg7x5Frvi4#(=HcM>Wyl0OJ ze7ekjcnboi47Q%A9N>{G`|FU72hZu_wZfp_Ol|3$FVB)Ye|`(AhJ4LPXW4|`7dX2iW3%rV z_!FAMq#VO1UoINQ|KpZ(zom0vuKm@1pHaTX;g9I8Fr8w(MNZt>u$NtHYHHb)r+>^f z_#LButs7PoY`pdDa+i7Vyo~QxHrdpxx=z0QPx*Zf*CZ^?s*=Bp7bNmx%zyNfQbyb^ zvfviq2Q{*lNtb;52Ev$h*PIbI{F9|9*ZIXx$3L^TOOGWAd;)N04^*Tu`P~}jp(C!Y zTIwg-i>r-QRomO$A^D?g_8SG_??1}r{BS6u=BfPjgfYH)=@-IhVk@mL8_E=7Roso1{ z^@+Aza#zf#1u@+|t9#F4Utt|nlIu{~)FISzg-JV8GOJ%-dvdVYDpk`f&9e815AMY8daUK?VDj`EezSvqFw5=)>SyRsZT zxMK9Q^2$Bh?#wbwP1dJPtwSlUl5c-_@` zk14E9n0a7&QF~=kI%>!k_Eg#m{JB$j*PWg-7A9qIXO2IU#W6tvUC=U8*i{pf{O>6x zc*ib7u^x;l`aV~lgYNq>iX+3T1rFmGuGu8~#m7s2=dl&f)v#at@bt{e*9`55{Ywv)j~|jMSQwLHC7{ zTtF!sgqkgQ)R3R|eMs{+LRlWr=6{1qgS*F6>@O5$oBewWV=R1n(dZ~_p~5_KLd=}+ z|2{sa9kz>WTz5l(IhRgPo8GQseK>`0dDEw^e!JF_&&hb;*3Stgjy#zth~8wpZcTH1 z`T*DQQ{0_M&M5Pm2vOe_UgRKV2mX!;qJLnt+$i&RIH((N^BZJ3lr3FabpqOvf-_l+Kl z0Ci3XQOtXROIKU~#)0CiY~m^s6({yHqQ(7ma*uyJ`=U z@>hPb}Exzd&_Z8f~^_o$q z84JWh*=!QE5JGJ0668Es3gOg&1IPEOq!;T9Oey;uC3_8dmBq?+XQi*6B_6jSZ0C1T z9$(DAySG_x+ktARWpdR_^r18!S z46JxI3+L>pTp0Z&vKqP{(37-RvwSI81|7&z4obfpN zNbeB^1A))Q6cUmx!Er$%ib9{Z8_Ta4i6xX|P8b_9e^hT-1i4+Esfqiy7Pb@bDZ?wf zKC7NF@{RiGIc%}5cHu5rN1^6dMbVLCPS0jc2EN!4pM;++B(z@A~;12kkG14h+yyXa{$Cjf8<_h~(DdA(UnYR-ji>%mMVYpd!ZCp6X zxw;|w3EC$Q-T3a>q=~2t(dbXw;bYrYdohJN)F9d(_r0(zx#i-eU5`V<%rFbrU!w`y z_>Ok_hL8fB)aAC zz*zWT+j;EW7V?KcF>ExG#K1+ivrC>K%S<7QY4(FqUecyxZu}U3{9&yyY%JrwfQrz} zI5Pw|a_>^>aVKqKheAGUj!?(?FCvF7e&5!Nl>a&Yid4W(*e0^Q>0QgMb03A2{!E^Y zTX*)=>i@QX0PMZtm_Eo61*4-`Oevq$<8Sq_qEY`W+D%;@-qy9M5*;RMb=^tYuS-DE z6(#PJEPk(fb&Zz5cU`kw$M*|X|78iX*-H1&Xi<%uM^(wuYe?y|)H;8W$PK9J=QONUemM51p7?T65nSA>p-y`8@#90tY&% z&hyJo3r7h@!aqd~Q{27->aQ%H<4L49B!}s|B_@s%SnQkFCy{+5 z*Hd(Mi?K>@^5j{~H~og!ap)Pt7k}NZ%PvbsEi~oEG`>&bssut@hzvA3=&OrSd22D{ zNGb1V_Mv4!aBDj|w6hv8`v6_8`uPWH4+NO|oR4YiiA3!EXP zT2j=bu$8c)yH2xa zv2YN2ts*sEkm?CNt^^tqsM^WsNJIjQofLYNE4<9Kod4-b9;5y>$FS5yaj!F+1f!;# zJ4dtUgdlLi-Ot57(IgfaAw(T{`14`2{JR{gWg?mE3$;F=jTFjb)=S|3266y>Oh%>~?YJiNKhVN*(c5LZr8`}6VAY|!>J;eYgWC(7ulooWtG_k! zAr4TX9D7l*3f@dhBl}tuZun1ir~Bm+9+@ekWjdc)wAQO4^9y@F+rIYnOW;vcNEsi% z;QFwe{?9(0zP+8**XSL*vfp5)=;HptZB1{-174K*NbBLW30O_Orq=!{D}Utg2oFK~ zbRckEH~-OxC#fmFQ;eo@H`WjiKn>erx`?r-GOUpnutLSha@2*KBk~Epc<=Y)vY{&9 z6J5}i8hLE{;7qvTC0NUO!MrPp5eslEz+2Bfy7oqI)2mzQP{QV ztbU!2@gW|?Tat#%m3lJUD<1){?&N90X3?-AI57xfu}5#xzM~*1!TSal%MBt^{^cRfmZ2Wn7ud zmoX1vwh7A`py5%sf*f7@zq5ldVAy!13ni?rpbLcpi3gW}^zr0B)VQ3}^6Nf!*66n< zM$b-;*CgKcOALE|Q>HXO*G9Xih4SJB^{?MyMAf!552v$(zg(P4vAda^EUzvK(Y!Y^EIc z=8cur)Sk+AC0syM(!e1KuPq_Nyo(q+p-z4MgP&ln-nj1cN8bE_5imL6zt(dx_oUt# zK;2fe?jsZ1|2LQ4U1JIQI9OR^xk+F5MjdER2E+=lB&|COG}~x~l?^H`zzzWvH#1 z@dln>qRu|flTeNu;pmt?-v$)KYi`OsMtHG7B&wFNl2aXMx2vUz0`GFn3cJB6(?zK+ zd9bl$h>H)SZdP6AifrYOSHX?P$NkaAhRVDQnlbS;yz3Jb#=XOdu2g2eJ#wCi1kubY%_Kk zCMtNm-7%!&uM_&~Oam~9>_ww;tbyFyuWSt-!#yeMeT>$rI`iWaF+k}{HFqYul1zA5 zG}@2Pi2*EP^Xd|i=2VM_U(OCE7jy8RG~Uz}K~P3w!h+Fs&n#`R3KWPs_t;td$LaJd zdC&CV-)XX9|G=G!5*KnFSD@4<<<4;e8ZAg&tFFoJcluBHJh}icH5h&Y_h-xa=*p!A zcEGJ@5kamA|A8Lmj95$%{pIOh>^xz`?1aC(u+FEwE5B`qoKD9_;XiWo6`x*TM(Ynb zgWpzq-ppAPw?CPryiE>o{4X6uE zw^TkRl>9mB9i)>SH)IbUDq_2tRN=)+>;)ycxAFdC2pw;)`RIxpbE1mM%}=D?bysF@ zXpZtS8Y-uoPUD%m_6OWFU=1udBV;lQ@c7ib?OKeq<^~9%zHc*qISANN1E#taRB3j9 z^dx1b}u8jC1SV zUO&>+<~!}-`xQ@U0g0hYf-a|gMT-}14}y3|?(s?5$;R>f zF-97Ietl~5DmL(le=Hc`zxHO3s9q?~)}%g)4C-3Q=3Ij=>y(qp<4?k(h6b2YIFJof{^-0B_0C6eK9 z&RInKyY~^$jePyqg=w5?Lu3aUy0)E7T~BvG_E-N^$b$&7NM%^TYSL~}y`DpP0loPkdr zY~!Ax@Z%l!tMqxItP{yL9u}`>WrBnQlv_AAe;awKAI2#WH=oF)WLmU*bw^~QWrIr5`Ius@6GTbZ(g%FtYh!j*6ESO_Uo?oAsak#PweP_<}aZW zsuoKtN)Ji45CT&o#|}CP<0W=gymV>t*|3Z*SMUML1CfO#H_YoBIZu9$J?(S^X57$7 z;0I{BrTtDuUAldQBPqB)Z9*Elyqujv^N2^X#hyIxA3@t!&dCo1yoFGHO}uVX=(T;v zNasC=JG#mKoHk$!D_r12`m1Dxvmqqr2hMDtG2^cnF0%L4XSb_lW} z4NYjc#olgPR*%AD>@b{GQUE+-bo$&CTmDc($J9 zRv7hrN?Y5`H$9zKZ41Wx4W{1_|Auh1HuNr>+&7qNb^rD~;+sLKpH^=~sQTHi)`K*W ztF}|bxo_WQ> zJtZK@ULWI7aty^*TL!~MDZGB4k-!{PS`xkl08?YJL>nb%GktyEN-m^X>TwI;4hsv@ zn~Gh&+N?)W;q#By0WW!h3!&VprnPnsgUq?5hqj1WDG77GKo z@z3#Fn{83hS?rNYPYunSUc#aZgr5|N)h<_l)9zQ+m_1>Ru>;5$mO!84T+~m`vg7*0 zL=SZAx_wz*K&1Bg=;I`LpY;23Cc1@sd$BcO-uzVVowAfw@0CxvXc3f` zni0uKQO#YaTh4$!m(=I1RWSxnTZ4cON-{%1rfHiVN@-TATSRJT+-pYjJF4;Ijmxx= zSjAVTd}_|zqdA_FkCAI_WiC8Ezye2KFO36zpYCT$iK0U0F`O&tOyR^T7%MF3`a4$N zqY$hMLcKpq-TN=&hClFxtGrpoGu?Ig5`2(o>WRp9uZ<uMeNo9Y2N{;*Y zw(v8n8CjR{W?wZ0j+&9S$;^$l;Q9gq^F>V_;?D|O$GDECpTKer&yq{_YyWxJdT}|# zjX+`^QwthrJ`dEnmag+juHpm-S&!ARIl+&)cIJUVBC^W-C2Jx`9*~0xy+oGkTFD4^ z_u4lt1@n?KU+3xf9T8-B21<)~_8BCs&aQ$6xq($384s3NzunIk8fkzu*BvMG-sD`~ z%zr{A9=oQjsPisn+edx~5P=T%`{vfG_?mQP6n6x0n z{}Oyg0e&kDw3bT#JOeEf*=LF~-MzT9SUjBE!;zE#Bx8+iSIph!GXXOZsQ!q(_je}F ziHacr$Dfm^=%*Zemt}&pFwMP5RSbo!cKbFFSDo=$0m1yk>P zpGa55>e*3TQxc_&6vFqo=j%f6^~-9xxwfh=((osQKtM2n`*2ayUtSrYa}C)_I`kRN zWj_mg>V$-LVu>hIYFI!hDV%4u2b2Ih5xHjc{n8GiqU?1g%2)>w$^(Gh2$KXW1Lv85 zs7t5v+-xlYwwRta)AoMKkV3D1!m6`IyZ8MvIgBz0F=A(t7EV1H+gf8i$NT)}x-3_v%@{5;7( zqBtXna0$vwvXqYr%uQ4Tv;^a^l1~+5Y*1ebhOI4n$}W3l=+|%VZQAJi#<1Q|gB9Xn* zzU>TRSl{_R{U{c^jxYEDD-ix-Y*nS!R{Wt=iDOZFR$L zQJ%Y8$g9%@Wa67cKpH*L&T31ZPqwOV!hAg0HJ}dSqW~-^93{GovQn z9FBK;n!?Di1ztOcs*b5qdgU@B0lxnF7tfoleIo>Kcsul7w!Ye#xO&(79tww8RQ*D1 zj|Mun-VT2WRu73{^pT#oZ+_XoJ20!^DzawwN}+q?Ds{c=bRH~O3RN#_U>O)yd{O5q z@6>Ik9qoot7AJE2@ye@6%+ z5X?g{=+hnhknGVM?H$uy=Kw;vnQw!Urp<3STeJP-UPVr>3o*t& z)Vx9df)7WhH2Zm$7319pU7Ojw7uUud{-_Jf;eW@;2}{qKP4bCI2L}cIeRH4d^b2n- z(P1tKY`0pPVvgKW z$?ALZa-(o_(2cWF;7R(sh<&l04zaK*GmG9qi+!n2$IWj_?%q;yH>hd# z;gVn<`yghXFPcV85UB&JtmY4GxJa^HQ#J0*dyB}>oxvZKS=u*Ujo;Np$-Cqg_dS;D z%C}Nl6TPpk&#*6npXWj`m}$|0ClSK>xho`q+*RLGe=#3CSv4e_>!;!;yhXhBEWnoX z%az?Kdo9P9;jug2>JlFfls^s_5()Ve0uJf>-J|iV4tslGO_6VhZ zovN+AF{FJOjB12zAscnnUy=LG!&E8UF)r;>}?_5jTuM{%9 z4#d>S&pR{+Uc4~`L4cxR7n*cA>C0}6@w~Rfa&`qYF^WHSP2Fd7JgZ!?Ux_k)LcCl_ z2VT#SY<3vjqy`ingkb3v_ z8zIj1{&NpZ_c^jxllH4!Yx3Vo9CK_sxZYx&`?91cLpm;8Z#q6O@?{?)-E+ffT0y4Wwf-tuA03=w{IeH6F6QM+1);$3SMQQ8%sQ zaWQK|yL)?bwvI||r=P5x>D1z?@8>u~MMT&s2w61$lQCV9iSAimrIH3#85Pr>ZMjYv zP{@TMNJ+pqt?sjusCG5;$p~Gd*~c6idY@e<@=0ai#y{}rXmiSu{AHV+DfRo({t)#NfxClDqM#5?n>oHFq8kwng=e;_>t~` zS)vzX?zp`#jR7!iK7RzwbX_GeZcSpE@|8N*0JF$f$yx8p2>DDdwC0xM|JTc`)bE^*Sw1mSPEhOD0$N*@o>LPD(B%3 zgVayPmcq(2s5Dtvil|8_!#A+DaJ41bSakK3 z^UZHNr-t4LdMO-~7A67Xso2|nB&W#thEwj^HwM6l$#;EjT^B63*6ky?D12;j4{ERT zyHTdD^Z}y(sYUfk^~0!U3eQ*?-jJ*S@uK~nfPU89!YwSKz;)vDZ^3mojr-lbNEJ=> zD7T?)zZ+R}1x?Zge?DKK7eQ-sV-$xz(6BUnE-}$<_Dr+!^z<(mO5QhZlT*g=LRRMA zu-fc5_avf*6lN$}_179-##VTLQFvoHbpzGSD#G~4H~f6tG*}w=J)Gr&?gb)gmLqlUr>~QJ8~=VR+N}GOzh_jyU74R`gSGVi zix7M#ZG-6@;N%@OSB90u80bU<3Dm~*+My1md>+XMI(s~il*u4X%oZU$KBnFga%uNo zF3%DULK8G4&le2TTET!L(6c{^E+%DJ*&Jz(PoLJ9D@gTPMj5d?iFNm`1s!aAen|4a z$0PQqKZv0R|JjQq!>Lg&=J*}tm$s1XCMZlfGy)90T!*_Sneq@p>xvm>_)<6x4>vP)PFi{yeQ@-MnxwVo_+twy^CKq^i2)QIY1K=2&v4?%{mI(X{g@<;)?IR%3Ga=H zX)@gvDL`vCQd0juF(a@xl+93LQf=ga;%btxu=AZ34*F43#NWfj(ECG4j=~z3lIET@ zZ^FL>Kv_tmj$~kSTz}fSF6i3I(7@|O0L4H!iSaEP_&YF8NJ)FLn0uy~SX({&#D=Jy zC~E348=j>mlO8n|ZmT8^>XqzX;Hasomj2HtZ-cB!ZdsQ(7KD=f@_hcn^b^UMt)=VK zy;++A%dQxOp*a7_-WIcm8-EzBU3)hdzR-(#`otE7|?G5c7tvvSj$Bldhw= zH(uqR1O4PHegZFVW9`(Vyv`&f=E1&WD156Yv0R~Su_~vtNG1f{yaBY#vn7uo{gV~C z?z*M6YJZ9$yLA*FqEJDWX5PI8Y{gU4J9opV@q$i|eXSc#BaAECNReUqjB@TuHz)l-9B@4N)qsdE&m#{_1b&&4i0X5xR8 z)(8bmtvk3rl^M-(U=wc44r2u9~Sh35%rIS`t8o5c`ABICF>z7jG~RpdtRuvSgnOcL@>1(sR6nTJW7+u7et)cfmJ~QL{?H))yL~w| zQcVr!hW#m#L)mp?;&nh2w+Dkmju)Z1p6U zJrSBdSvmcb?CXq+0(&qOGF=IN95*x~JPz}4+;}sFxhGj~ zSbVAX2>lWYI!aNF-Nu$kw+-1*y*Sp~a$!@V{xTKqHoKVi#@~ zL(0K7M4q+&ly}Ofkm7#4=Gm-O)##3h#G}d=JbzXfUT@Q*(I#8Du%s2l2zzEAsb3&q zT{Qaf^wlYxymCd^SxH1OCGlEfPwOsQB8rg`!_f+~TyCBLoLq!UQMiXo@uU5!PjeG& z?>}73VZ@@0#9<`7#7fGL$N0=SZ`Tw|m!STKPP-zu#1g-7$YV4cVwl57?N_LB(J0T} zSE|xELVG2QzbP+-cx}1Du~no`mNpkr+s%xT?DLsvr6D7zimf5zec|+&V;FfpCYCds zxi6_t2aotSS5K`@mbwif=Hto-th-Nbt5T19hCQVj(htp%A?E@pwocfKV4+uHfp&LppSKihF!5E<38s*mDM!((L|f_9&zm2mf1=Mp+4w~i=zi6 z&%DQ`v(Ml8?%dIMqH+}@Cf_T>xYX-N5nrh6SJKjCiJ07mMqTz}>p)^lPCcY+#B`!SPIIUPue0mG*d|4%6iH{F}5N;u`Z-kQU?NHm8SVU*F zF~6zn$1tHkTiXc9&DD1snqeDYR`%O|ARk?S+fU!VA|$~wn+$m>+nFvo;fL%!=J0j+ zy%N^v!O~3j(ys4ISbNBzgY4Ghm`lJ0y8aLo!uUa@$|m{`u{5S@Fl@@PFC` zcAD~%{vm1&6LDrA8ZdricJDCewHHxkc~MsNk8=W1rY94bEMm8UWM*gei#Dr=NaYrt zcG)o+c=>`4KCbfp1Jv1<{fN(|#_C|de~5AZ^F@OSZEW=j0>j*^yOum+vp^PwTE(jt~dj`wE={8kiQFm5SnwKdOfK6D44MecLJ*B0#L}Is;p)#W=iM3G zI_$I|u{WG&YxpfkJ=)XDKIN0BySf-5$#=apkwBfV+%-6qEpQ&ov#@_^Ow)VWBYEsO^@Al@eeSZkMDJ7R*c|1kz_Csv`V zSOmH5JgsMVd2n{>#t*eyd(brHOC)N+JS|9-(S9{o@Lwb184dk%MFaU`j3AY1kPv!} zTp)biNKwL7Yd2ixv{><9L#8&sp=VLf;CIvcgDjt`f9Oq;o<~D#?_~&8B6coj>p7rT z#k2(*FhJ7U$eC!rCC1($G{I7^!Vp%A;l!iLer-1CA!6h?HlD{!wo)P}SanA}_w-lsAfZ6^FSfG&Wn1U3O7<259lqv4+|G-m zATPBvWF7dcU68B%A&%4xn;iUXHN({{+wfGmUQ%I4P@cymCXj~y2pSYBsn9x8J^S!Y z{o?U6x-VL{ zqphfwoJ)aCmxbnUE*)_6ml#D4Bm`EiGlc-avkE&k`p-@e*9@1Ti={_IP@^J}pN$|_-sYa<)5Kg?u>qovr+T1;hhjpj zmv=8`Y#6xYOX|DlFbbk3vsoktK9}NWe|2{H(X!L;cBR$#wxS{`ngr1Y9cIw(*mV~t z1+Y1V!UIP7&`tWMRS%C(c>GIFx~P{@wO*ULxRCL}k@+1-apS>3mu_2LCNX%#+!6WW^z}M(*k;=rpP+Iw~XgN*gH<`1g7&7!#aWHBhre>}j*hokD8` zh)KApC1Ge%8UQOF(EMFNEWSJLJP-qP#W|j$r`PA`U-}jV2B1xu6n>PtN#%Tj0z#$_ zK9p<4*%ER3Yp6OXJg@|9N+oLza)YJT?fZqaFZ>@x=N`{w|Nn94A?GNEIYrn+&Ning z$6?r<5^~C6BsMurbvt%g%wa?`avF0ir;rqtV-3w5LvH7@oJ)0of7kC%fAP3%*Y&wx z@AvEZJbN|df(2~XY2YL$x$hsmMDpEDd$UZfe+*pTtUwpR0nG3+g>U5Ny+}?A9Sc)9 zNcV-|yX2?fF7|GabdMBsRWS|NXyBd!vDa~&lUOB0-*HtulHSjF19Tq9a$+|O^ChWT zP5d9M?EZ=ALUY`4XTti%skY2zB-j0Q z8QsX*|w;#8yswAw1P{uS^&5tr&X!ql4j4f z%<&HwQrV4o|6v!eNF4$m%Fl27w6sUW$kJ*TZ(9lonEqK`%b&qk8aL6k{YAP2a-C8O zyYjDq?;e+5;w_wAuacN0IT;i#D!=!rR9%z*+Fx_R+8aOmXJ+)eDM)n8vj{4y<252u zOA!i2*(kTDf1Rc@aKdLP$34!=_gS3j5Ygw|U6uN+4jv9x#m|-u_X>N9Dl_sr_1p)# zd#}`8ke5YNsv2|kRUohNqCkl7tt&UXMxR_V^q+pA>QRE@2&y`SQ3LsVELqtl7XIJH z{dnU@y07Rx0&8M`)+R9uvZcGzKiH+{pz|-9h{HbD@SZ{9d;rKPHkR28{RY*vYY*YmmC@L){5|q90}syDE!B zi=YapF3s}dOK6^joFXJtFC61tY8|UnixZ`Fn~avW z%dB8sv@$M8jhlHux9uQ8jeLOrhmjiQSZQf(=D<~KKi5^8au)ShRrPu>uh#%R(SAru zlwfVd(35C{7K}`5oiAkmaV%=lGIw7|t*8YvE-XK0tDBzc?3Rn(Ok}(aIlW>1?+ZEJ z4V_uIf_U$Jn+;5%`S>GgPn3s(K7t_%%|pp{MvX^jbtOR4PL%8H!I*|^N7gDgIox=Q zM@`e`Dwlx`LkV%Vhn%otkvJt%O(4}4bxC9CKBSTyhw+z0O$uK_L)9+Mj)s8t#Fi$q zxt{kM+v6*0qp$v2bN)|vX+q-Q25bWvI`vu4Xv@FD`d*NF8+gM1UjTnjfj}u|kGR@? zT60KlzXd54>+CwuTT7v&tS0}?HX@tRVV=#^+o3wi%GJQ~*{w`sF>PKgc)htZk{G5CY6)$W5ROc|Mpw*#E%9A6VV?_jRNSI(eBcn7 zVI0g=c6k`%nas#x$&`VYgDK2gKYP@-&{y%<{*)0}K+G&#r=zbk&4Hj$MibfLw2zrE zMKrGH@FH#W;${)XnZ{DX!yvo*^vQ%&G76br6UM#oL-od03I+6QW|=7lIF@xnmc}e<9;f$-32Zs<3qV2hPKqXF zO*Zenh*lj$TJOg~{SUqCL`3;CeM&zG|)j zW+tpwA`)=p6;4GfB!96)cEVZMuPUV3P>5|r+$K{0yi?sM!FLEN_%Cu8W7fU$sA5qP zF9}i|4$rBDZ`vD0S}urxI^K0USEXq9kK{`Qzo+YdPh$3Zv}ts!_o}=0vvj?~GhW#% znfkg?dhm)z@O9wbl=De4&OXLyp)?4tlmkvX1t1Pt+8WX-S8Zrd=r*#m6-Rgxz+&IE zjw<;^iJ@KK#532dZhF*Q7c5?gLF3gScu5qj_B7k+?fv?ve>VbmASYk%+zLCaUT$z@ z$kb-GxW2zwSKhUL;QYM5`b|oK8o;xdjxY{|*&OgcD05rYbe>|s1n^7f*8f*o)D8;CtOc*>Z>ZE!+l`zIuwTKylnfin6?V1 zekVUI{O*y-#~`(B4djr}R^uf|19GhLtEwhHkFzouvl9%Pbr0gb9<17fJ8s>nza7NE z%t=pZTh*~he4#JBA^me$*XVNw)y;RhbX|+l#;`Gx;Wv_QCZzD8k4JNAm0BdVDFjR9 zVr4QZkSl~`Nn50+>RZ8H4PSDzk+$M+0(Ra&j7)SdiUE8&=9Q zbkiA=`|E9x~ZfylH~ox_$#Oxh-0oMX=+l0*(> zksQQ)JNLGC3%-(*CYgD6k<7NEt9e_^j8CTJ!Xn2BRW7O`fN<~RjFO2qg@if=ah0SM zJ(9xOBg>;I<2C%5Sg2`)21YK@VFOcCIui4RRT)tGT&99r@tqJ2|xBo+p|fZWA1g8By==h9-x9p`c!wXVndZi)p%p!)f2)`{IlFM#U&df zoiye%JY=Z7t}#~9IDzpy$2OZTV}yfsdRXYQZSdgygYCXe_cR3M<)WuJ_3ZkO-D!0D z{-?e5>kFZSrvjSFse}@idC9s^t)7|>5|26d zG51y#1x#A5{z5eN8&uJ8gJnOhR6Mued37W%wsz`gTY|*+b4nMc&wHmO{HF^O2hc#2 z+1mc#%!rUdEJhBAy^nD|s!uW9V^H45h$bw>Gm?{0%MsTSyjQb!t^Yv!JpP&MTDP7L zl6x`Of?75`fv00<)Vjia+6IQ}0y)3+ONUmBEgr}VSb9dlwmttdhF4erDv9j*epThE z_Ss42uO#8k#T;@X#VMIHqDEFFeo@S~v>*{_TIIuLO zaLc^;JWRA2s=;FvRpnw`w^BbKJ56cpyFeBc<)tbM>sUL8rYt%2T*hOztOGf9>h0BW z)}c;~JOXo;s)>8fe0hfbzamseF0$;oKTv8S#)H)Mb60g|^TwPvR4K4QZwATe$dhX+ z)3~Pn$K9`FhIM{g$uBdbEKi+*Mz6M$x|;&t_wyVr6;1*YEbnj5^^UjzRH--^v}mxj zeQnAxR#!ADu`O*899Zrd4y$NCT2o!Bjwb`VF19yv#BnZ9;59>twL+ZZ`P*7LdoKkyGi)KM9X-iY&HiKpqRGjI?ex4m+#r8ylP_Z%9}U^ zzsHErH{hW-eaFK{yZhLwS6fY$XMy!s5ja%4 z$6|%c=0FO4ux@fdru#urmBdQ^_mOW@ZvWmz>s`(J2uTDj#(%DR>yD)hkL@(*R6)jqPl zla)Gf%kK{DP#HYx^~4kCh4x{B7==QHcz>g@;M|A(L$UtX^!~PS00o9GJg^~PV$F9z ziSDcOf=`_dCG&nXBH+NQENN&hZQ|k2$sqCJ&ZzazKB9toWE|_rXn-6m+3ywqf#ec} z;`MY^M34JdqlJb~y{KRA(qgb20T3ea2NrbZGe$y?kOHi=v{jv59GX}*PLj*&`yY!p zbrj(i&}l6u-fFBlPFZB%?6LV~oYAQ-cehTB#xI-;Q-;G&(S-;hfSh?t`K8XuN4Z5l z!A;G~33tpIM* z0m`;i6w>Wx_=e)Yej}guVx1e&% zBJXNR&eR4hF7IHfuMg3G=k~K_JBWSVX7MY(^M>=5BoW#*^v{+Sr@;2W76_4A7pRsX zV1*4WbGNeW(OvXRZxj9XvdZQ}LoxN0rNBm(e`LZhWoZy*EExM2^1&zw98{;TcqoBT z8R~)tk7S!kh-oCVh~ONokBPY=SG8ALyr$T)Rk*f_T1wYD5+HgknnaBAtedvj>qPvo(k}a0nT!&0@0oKCXaXXE{C&bDaogbugh7Kkx zjRb_7zs|V(AZ16bNFcTfWe(2PbT_vJKb=`^ugXDq-utAop=z^V6|6+oE6mD8#vWH_ zS7?-zcCR;S*P24$G;;>T@FB<_;TqmAGV)dNPCvYgl+{&xxA2j2`>#-!yv&_sp)?#%{Efe+kkdi_duauqbvQRE^mR~>x#4hRpC*c*?dLf5vA39 zAY0SbXaPXey$_=9zPc`gtZif;;G#a2ONwWF+Soi0q+U-`2em|@GIUzBvl{|u2Bac01AFXql0 z-?rt)%0KFPn^3tKRvaxV#JHhQ^>e~K!H%K|d<8{7_JJYitT z_!F8eli6DL$hVKfaI+@wrav62_&gD!p9K>$Si90!!Z0PTj^CPI+cw2dV zx``Y9Q>#8|7d4-T^OD|4+tZMeit!|-xSXx*H@RJoBU(h^=9C)9fqoEnu?xv=`~~&4 ze9oCuhKs>ei7EG*nX+L-w#xO#ygW*;)tckLNgrhj-njNWOQQ`+3CunguQ|@LestY} z^0)J8dl$;8UKRV%*0gMC=KkMM{M^8WThMCWQx_)Svr}2Ev%R;`r)GC8UTphPwxZWS zGG%O}SkILGM=_g&ujP)tigGBp?z_{J#6n>aRBj5O%NIv_@$O!O3#@T+EM&^e(u`Kg zRMA%H$#FSyI^7UPTLLddQ9~P^ORj59+x-Hm08QZi&yW6Y3SRRrSa7s2NLyrwztp7g zFL#iS8-b&SOt_Y<*+@VpKOU6)A>Al-Xc?=0`ac$rgP($k!<%PVUaR)%3wUzAgPU>@%B zNfuu?vcw3?Tsr)VxqW*;a;g`jHy=}FqfF$qjBpf7olt=v+BCrYiJCqMUCLhRa6~hmvWY0D1#e4Lfe(?{9jfkjY5O zSd3BRwHIdP5`7+CleE?V+;|SzX6A;-xpiyLdEy~`1}NGym^`_SZ@+f1)nq#$y!u#* zp!Mpgdn+$wJrePO<-kk(?BqiIb#NN0Hv5M)0?@Y|F<{r*jhXZrM=2xn!|QDGfoT-9H7)zuKuLr^JkxX!!H;&mSZ5Q1 zI%m=%5e`Ha~nze zSYnZRciMelR@$PS5Oo4!FHRwrW;3}UKWJNx`1{%VET;+zB`9Td{WC&Zp8 zguTY0X*6^t;yI6WNJqFjH5H(#4K7x#&XriMP{HJfUD`dCtAsdthdOg+fe7=Z#`-U2 zeBwfRo)}k1rEf+IJ1ZW2{jmba{BLHMfnN>*X&a#Pg#Gtu>nc?vTWBGnn2&f=kmqyl zfZz!1@-$~!{})x*zUeB6b(|7|f|)#h9?wDeOG;aI6lP*P6Ur)1x0PiV9eK3R-KD(l z)Bwo6fIkR}OTKm$3JNr(Pez-YeCV<<#N%{5m(8@2zCjY!~-N36!6-D zb`i_QgCh4At>5x0!!iYWNiCXp6(W58Gcr?aOfdx z`JXvvIwOf&S7}UR=aPO<;`P4!SC{>u`U(+4P%O;kh`o54XVXcoH|vu9h)b@Vzb;Z8 z$^d7Pg~I+n`axuun$Z!0V$|Qfc6czkU}vF*$ZuC;6VCn=N7sMh4RN3Xs;;k-22Y5G zL5gJ0RU$Kgary-`IMhko-e|Oo73dSSyih%RA=Bl0>Wv6~mz;ZZV zXpN_afg>HgExp;=yOrzQvx66J7Ix`^o35IEB1~=Z2Z?v~w4Dc0VUl&1e$<2Vi;Jd8 zg3?rGKAJQm)`>mO1!YrpmM88Y0d zW1h}FA>r%dKNwF{AxAyDr1!uH`#p8DqhcRd;dkwd znzx24U}f7AoCm3^G%uqi@wOsd1+zkWGGcse+I45P% zEkct=UO#KqR~pOjA_&#yBRWxHwNBVAAp3Hskz`tCBmgq(6T>p~WqWK$uS?h3#8ec5 zWpXUNIOK*P^;*C!uUujJr3KA%W%p%x<_ozTj#Ks?=g`l+;8*Ys>pDZG%P+)#x)y*L z#pPB-@=UsVc+Sp&cs!eFc}TcBOXC&K{g98!MCRG13Vxpz26V9Z-3wJCcN~e(^tv&s z-6Z;^cj!%VuQ81Y*E6QQAThZ$NWv28L=1($&a+`%Y2;ip$uv!L@U{q%h<}r8UY=|_ zU3wFd|2jm?$skQx?kobSnfSd<1;F)vtfYp-rxR|#J^4;Y&vQ^l-{tt+WhXyN=^|X! z$1(C6=n{WuorxF?NjDgKohsix-mx8&Y|~K3)gU@LUKFRS^t=dK-VD)#v%)tWGjhfr ztrP0ahINX1%)Nj0Ku;NhIMZLIeTV_Yr`P&C{C`YVu9lRC&7aK}0vdux+AXnZufz40 zh>sZU5;+eQ1@kt&nAOq1YQ-fIlSa8vGxj8^2=WyMNtWIdyf8i=JjVUFnE_Jnk~RsOs{ro8^|T z_{(6S6NaS!7UM=i*msCSiNv+2cM+g z`xGbqT-BiYRDksERcHnORx7WuiGi>Se`I1kEHw<6Jy$5x|II)A-~h2b)HL59-pQZv(&ZBZeJJt0c88wt(wTOrHyUsgh${t%Y%H zA8sQ9rYPqW<_gc=1`#@iuRR`EA)A6&&`$;`o{4W$7?|m-4zX`ytQjKbIra^lf6fF0 zA^grDUigQpO!Mjr*#=n3&D0cE27lEnJvt-k%H8hUqmlkU7JVZ;O5;GQd>+rty6tT! zXf|G2fPbM=lC{-_WA7f9=#Sewil2i+J|fd++3|cDVyiG z9OPsCw|aWSX2zW3vT;a3!F{_PTrYP;KilCha!7so&a07kO#ig#%78`DK0^oN&6~l~ z%FKYb3Ms$o4(2Wy()OBh;1^VdXMJKq(M<7U$KtPJRzRv6NyM>;c0GNnbr?CLhFRLtz*Rcq}7|HE=z^BxKYDq1P?O$*Ykb$M1ka4bV9 z3fWgT0eJ7hN*#eTOAw@tXBC@;87p71bG^jZrVb){mT=lDgWSx-u zE8|N@wDgoQrhfEQtsxktD$T6@c!#R}AQl9xlYKKXUj6CkOd$r$nq?WS9y@ScjJ4{t zb?bbx{3_83?Eq3>%gQ7>i*H~c!#87FONHvcZaZmmka{`oHau_h6a3BfvgQiH)%WE5 za9u`{_=-8;i@~`-skfC~y*f7IKN-OVtFUHEFs;(=8!u52n@w15ATut{z4~yA&)@)g zhSUM44Hk7)+btN4-y2+L62SE#P-QX?vu;3nHUTE{l>dax!)8jHBT0$HUvcz?;!2rd z5mzLd_A6BHWy3XzAp;yr*{rDL9Dx70JPV^6i$#y)7t$)<;+qng z3DX6(PTj(%Xr7r?Vol+voFmn#4oJurHAC9?7ga(|63rmDy%sLxAL7*YeW1 z=}>fSQcU5FH*WWOx6Xv?#sdJ|8$Oeps^x@?d2ji6=*pkY8ft32L=&y5WkBl?pn{n+3`M z&aqv*e#ZD$+LA}Br(7Q}dYKLi?(=xb#-=gIEz{y>GM`8s+psi7S{}(x7k-T^W8`F7 z>555be)V|3WgJ@Y?oyDS`@OfU#IdiQMS?B3Jmq^|%ocT5=#^@MH#lX={NZe`qrUdD zZ@TaC74hF$PvBH$bo|)ZSerPnYW@{;p@`Lp=~phX#OJy#1O8})TFtWW=HTU76@ofcb(s*l}q^s9YF=L^$`9Gll~>qy3gbF_PRSh zCB-2Xs{!v(v7I~XA*ogcbnUsn#HTGh8Y>l7ye+#bdhpoWkpjN9ny*D8q@1+UJ)@JwXH75;-Cf#%q=0L*^Z2UoRa6s}Jmtab)st|ffno7jQ`O<*U<0C9Qt?5+Ns1|w#<*dL6F4IP2B2)bBNYK~Ic62cX= zS2ukS6lZ(6Exu5a6EKdH7W$P|rDpjc7rD|c5ept470fT1%Vkd-QiY(K>rsVi7hj!8 zA1wb1{S>YFKNj&JxL9lgk5cuVoqzi4ANCMK(E|L_#tUt?>oUB@6xDcdJz;tIUiZsq zZJsBJOs@GPYef;vVtDz$g&LP2x zGts(VuTrF#_93|O66V(O?FP?2`6DC-JNOZb<&Pt#cRIs<50iJd>`FNgSR^FGcT{b< z&3;$7F~6c)Fy?SEkv0|MkWEI@a%9X|X=1SA0pr>85oYC=&-UDX1pmd`s*yiO#qYg4 zLU>GC=`Qptbr1c}-aqh;R5yPF?+yKW&nvN_UvO@Q`*fnn_A|-*zZ>Vpy^6ebz0IFJ z4!9Tf(rzU3*nD7>UFK+IoHgxj%uBnkq;rw0;HVzUz+I`cDLGYxN4oP&8pn8 zyhS>U%`ap`KxWskoHgYjmmghN7$utw>SLL|D%oeP3oRosj!+?M1!<@YtQSs4 zzGk!7M6ShE`0MN}8bhl(*=alfF@JV*EG?n&MG!Z+1DlRB*lX6fO`DxykP_)_3+qP~ z^y3O560#AarW*n}+9}%e z&)bFau$2-l&bIjRO_);I@MpS>{7kzvMrj>2o+{VtAPxB*otWzRjEx-lxME@Be2L;h zlYPmNG?S5)0M#KYvkzwL%Wl2WRW1}3*HSS_88Zp&zMcTM$8}!yPKKO^9c|jr0I^)< z;3z+je~oZ9_b?*Kgx{{RLiNU)twpZRJT{~Txn^N2B1-m;s*>7a+C^IQJ`R-TbjwS0 zy=XKRB7jl+%_=TY$+tL7){q*BANAOo;quqI?Omy3VVqngk1m2}CfohK|L*G}ju%K~ z`uzZI`WK%U$4zcB;U5FKa0m<2iQ|tiboEZ3^}sLRo>95ZehwyHiZF{8NuI8Fnqa)a zqA|nl#{s=+v@)9RZhFIL%rVkcxPj5^7w{Z7I>|J*l`E6gGli`IzHo%*F1bN&*JVbg zqUlY$tE!G~z6hj?k73h&OuNbcy{jx114>BUzx zBfcZVpPFkn`7D*x_OLAHj| zYtn5!)_BAMb~GJJ|NT{?bwGE`cF9mYWY<;yec=gW9s}G=Wz5^7yjMTXYn)ZB$=0lCJE{A2_-3KNbw> zGf%66F@BulZ&Y*$YiZN6*harp4A^sgDW)DLUZSsL16_=$$`82LB2;BIV+=j^QwYyV zXS_&Dw2x4ERqvdO)t;_NKJcrDErO`1=dT0Og1!?5N=Y)BNJqnQe)^w=;Z(WHc%QLw z-2OmZW9ynGhx2w4Ls#2*+<4T92*-;7O-Nzt1(?zlb zUYOC|*20s+dHJI(V(s>~yNx22k>>M@v{ps1MvtAKIL(nsD5tFC=_O&7KBhSnuw8g& zK>SM4+o)=5nUuoyw3`J6#WPVoocMMCD(nLI7m!N>)FRRW%AVrVXO{{XsKmPK!ao{X@^O~9nxkZ z&08$w6?$hR8-)LCGy*F+pZqD~&|R|&jQh)UyE1ZOTvhi%v+XO*IDWMJ;3}g;S=Axs zzm_r&9+6kS%%s=b7ILz>MB5i0e(LfUEqJI&=QHM)lRHa>*XoGV71B`mej`67AC~Qc zC2bNW;9{=+gytDZYGn4(an-YB`375Vc$-@5S3LQ8<>Qw-$%+4sp>yUXYxj$u_o%zH z-9SxIIOmyak!`Xb2`yK*EF*wU-kNLAr#8ifmwe*gwblg!{Gp#>l%=7rwGzr^JqB8n z<(~d^XFdS>-R5PvLiZgBaWMt(o@1rirUQH%dEugWj*LC@2ZU!6X)TmKN*L}`<`8&Z zCueeVuUfy_5anRD^Cjf0+>RJenlhq2D!SyT`qsOOrqwl*lI7w7XsrVlDxwX6Z!@TF z{krG=Z98SoQn6cJ4R>CU8SF|8YUL&o5Sm(#}N@OnjXjsOcx(-NeI_q*L zn0{sgkkNCspR#p_tRA$863U4N&If8a4Uqq$9+i|kCHBZsm5cduV|uMr)?n&hYsB?sd?W3#&yI z#*4mXU?J`4vdg5zqnd+thLGO;S>Quy8>L9ZaBrYjJJyW431D!J6y#-yYJfv;Gv5W3R?aC>82od~-327_wn4N6aa( zRv6V)nhSLk>P!Wy-<0N(*h-ZJA_~p7M?5@BY^UxL4^sju_j&^{PAeuR$D!bw?8&R9 z$D3X{4apx_fW=TYQ}G>WWdyQM3uV!NSJk?qgD>|^xWR<|QiT~*kckp^CMMih<*8Hm z$Qt&rx{{BOm)X)JuW=#xKZ+iR9IfiizvUeg%H83gOf_3N2BWqI#0*s+Y3QqaH?T(+ zHPape(mkqp*GkG}ccrhMv6arh-^WR?5(fZ0(%U1z5hStl&)?Lb`gi$HXEE!vi2JPMfnn{ z4IPL7;{F0##NDe}p+Ff&Ht=MtbqVH?2pvkq8EGWq@$yd;&qC{;D-l<9-1}uUd;t+1 zw+6;uY4!8lbX)?q+${^X@7%t#AioXKZbISa%0c7Btv>zbF*Uqqx*I6G=dZXLL;jh_ z{#BjIbwq?oPOX_yR88PD>;8&E(Ve%W?rD)o#F{WTt!ry#fYMZ{LzE$^m_H2F_v-2m1G4?l72ts_2y(Q9^@ z?W+X5KbUE~6hOdI$QTbiq6eX z{{5(<*^4o0ZeIj{WeS!2_Df%7kOd@@2Vm=NQl4rNt1&GqerFy;efh&&U8gITiKM6Y z!FPgTp!$%+CPq=aF))XS(z)yr>X$Pg^Jl%yXpzd}m90St)J92K%H(V_?X~rtTFwhu zC%&dUxVzE{^?kmm0I)GO_Uo%92*=nrb$}JT4>g+qW%RP-^s&;w zHwswRb@S9fErLfrumJKZn z=Ug64D`oz$$4ZWV@6Xs+23Ft;Z8MqVGW81cWy*-R4(iWtbn5ox@gr4Z70eS+BG3Ft zoGv%a2kKZp?l}3>AFzITQGB_a3 z`RZ0&+m)Dc@`M6T&yD3s>E-00CX)u7Z~dd49{i8x9vLHgi`5#oNk}rJW}CV+3gWXv za`U-+&)lt#Zk~u#+JUjuc7e&U>od+y;MV{?b_}>-*Z|LJ&)|E&#yU^fDOy8Is$m@| zA~boXd-v*7k486N?UpA%0MhQr0|y|cJU;O;Wx*0%Ylh=9r8b_)oDUpfl{)2#+YZR~ zKAlxlXBllq#h+n+i=9lxG&7UGv@EaVEJm%44@5fHu{g;}ff`t?IO9%!SI*15N0Dl^lX~cjCR|m7G5naA!!x%OcDzP0wH-wAWDCespTuLp4B==r0Sk z`hkNhSId*QPfuvK3MZt*Gdzhc7)$X1nHi>uyYCtfU0474O@nft)BNyQD>Fw&o`7ZzW8GrfOt~;FG{^I z6Z-`>IbL6Wu}0*H9Fq&n!&a_;?fYJJnM3d*`#XVdK8O+UBeH5-{=;E z+ZjG;gPWV^*$GUuGgaLzq=Bzp&HdDEwypyx=4ZK??4(eT6I)e(ElZFNhCts zeP!;d6bnP{L8`k3Y{^N28c$N0oV`AR1v0sdE`_Uha#~?W zp7LB~f4d>_ekiZDa$%A?k+RaP=C9I;v{@zRBK5F$9GOi?4mjj2A^jx4C)4mZBVebT zfmsX7b%t?JBweLE!OO7 zW^FpCmtZHQ53akoV$3%_@xsACjfQclddlfLg%Qp!VT@^MBehMW1x4eJD`;|(naSPT zNPz+eqf@`qq0A_=kR3$4qnoRgk9$d4HOizo@L|9KH+qTA>IVv@u z{cvELt4q_LOvtVUc6s`YAv=YvU_#{6P{2cGqxVTmJ4F>>!o&v=tinS~hcstK?aw`8 z`}_fX-!kO+z~{xg2G`Qxo>a7P<>_Ct2yJj)g_ZqmwATodccpYCI=76tGGp08j%d%} z3lw@QA;P3@k49Q^{E(iuNAOXWwwC!&p8Hrf>My3Fp_jFG`EqP9*4pZ`d1}(1PJ1mK z_%P-b%+s&gb8p7JwEWha`IS0R)eO8dYAA9ti2M&4dE$#zw0nVZGdnu0+!xU9jYnm* z{dTFWdor7z0nCkdtv{2p%-?EM-k)p9DQLGBHn^2Yg=BSr)$HJC8*v4>LtVofHdnbY zNWV^Urh~&KO0*XXFTeHSEZyUU*}KvPXrL1ZzVWm>(lXJGBM0rBd=1WNKR7n&8E9^*v7wu?kttaY8~!#~p` z7D7eWIIpjjiLZO7MOo=PEk*U{CUT4jMA~RaUT1z46RUdhVDibk=k*UP`-khoFeqVR z_NrPxt)rETyV~EnYb=+>+h&S|NnRHzzJBaiJi1%VRv^+iFaB4C@Lof=N)Bd}M(^O# zdRK4Azx(*83f>rp-l~C_eZ^FNlFc*a6~)9&TS`=USQc=;eW)${p+F(%rHAW$V2OXW zg{_5txq(LideBN~FsaKm>AbSnZR^;WjBzVtegm-KSQmg4WKESs51j#{0x8 z24&&a`N`df^%N}_W>8V&SH$o1w4bk+CZ8n{#PAjSfmRzKv!pwf*dRA?5LoRO;jn)Z3chP2`okY(_tf zH)(C?WlB^%cERY26pbF``$DH)#EZX>U#secnO9GV$yEVMF4df`egjC=x)fhg-i>E( z@@?E3&c)K**>(Bury>OeTg+#VIEz0Zt#r}{D#7@bBal~jxzJIAKDI-kL@EutM0HwRn}?vi!Os#-Xg=%BOVztIX({+ z6nP!B>AFNgotvoXwz4|A+;g#&<{{tP`KO*)LajG+H_`G^rj@1YiwP1d>Fv@mnP#oR zO6hp?#7@$KBg69Mi;rOn<3(jk`DO|L9-*Cn&5dI~oKFVt_?8G^8KzaT65zE`gk%nq zZAQU`B#5OZL289VNkelwwI5*ESb&UsAynEoF1YB3KrHnpBDQ2hu~!!Vm?DF5)#WH^ zx!fOsm5H!-i|&m?nb@0utV6!Od`;QC&8M1Oc)TIol_hEGAIYir_Oqc->xmc^rX{tR z>+$qWQrg|Bb1{&C;qeSL?rt#ZvE_En=p3MqCr)#ZzSii2FN%F#|CDcb2lK&tG@>6Q z)ABx~b8q-~8{&Nbr2pOOhCc;{J=C~U+2ly#*n zGI19mgzxU+kmEdG_)8x5?ncN>%>41n5}wq#AEHxL)vzM{D_|r%_MSAScy3 zV^tND!9@H~b-Lvutvrf%3ciK0Q05>c$Y|SV^@~dkl&84AzH|#4$05*CT*!|~<^^?n zA`KR*GW)8!sI!?ko8I6DKLOJ{cEPgG$R*B$n)M1+J@hF#+upwU%v2^~s{WrFu6|Vb zc279MV4>+Q+ki|opugJifREXj{>sqV6KxyV9T{sn5CL2YJ8ObwZjyDXC7lRAo`EH< zL%9Q6FiKvk7le3|(eh;5VHjR1*%*97@{KEMj5Eai6W>`9$vNua4U1_XrbB#%G+~Lr zKU?et1~6=#=E)a|3`XP6Ug(DbNMCqG@l5H9?}wGr<_{a_X4;V%h}~Xn+#rs3E|u-76L&n8b5HTjRV7^k(91q zQbc~8Z}2c}K9{uY*oDIH(!{Gwt?`e`V>Ag z!|uj2Arc{9=IFXZ_>mTg;`roN3LHprCqQ$>NKWgwWH+WA{@L*f?R)1H@%cdVEI)cA z8ruIUi$IOQFRkig(GOwOjcG(6Ymd;_^|d6a7c(KeN!APXH~C~e$rae%vgg~v+q52{ zX5rL;ag`p+q{5G?t1BimIBQGG_|d1p@X^QrZz#2~>$TZ`{q`n z)D*etVpBfK1u^1v{Kq34;z}}${1Zd_CimMpzrSJ|R{459Kly!~yn@jR1%F^|i9<~| z&iKlKqbgn$WFQ`ZaQ!sOL6*z;$TW}u=k>>9j^8zV?1f9@Cp#pn9wA;z)F>2JWTp;_ z(@ivc%(cW{;0vLh<|D<94lwGjmE(Pkq8xj&DR>k|SUnfFrk~k)&1OEyZ5cQq;9d{=UzelMy!hfG!d4s6Rn|nye8K zfrK4ZSf^?3AFX@wep6BA)rdzG-0g>PWH2gSm4V=ch1OXM>?|? zmqLypgUcFqb2)rbHTiUfU0$Ur0oLOESiI`W1{-FVr5g>J^noBE8=){vSu@ z9>{e2|Nk+E$RSKQpTj6Q44XqvISpfTDyN)o*+OP0)4{pgJ#$vplEcQ(L^&qivhqM@uD8|A8y7-ED;x+6 zzvuSqlerd!=FG|cI{hD`D1!I=7kB@7fmSuUdz3tCAT`YvYU||`n)3kP z8&r5om-Z}r9CZcKod5%2n25Sn(SqTO!A?-r2I_@;p5!TISC&xr#NBJmt^}Jz=#iqn zHLnkqP(mh~cyHZWwj|R_(Qdj>W!!4DT@0r?^cRPFs;VALjesW@dc+C4;=2*`l0IH(2{ zebBX3Gpa;;?I%IpMGi!hofYdc$IuQNXBgvh$HQ*?NshwS#gC}9@hi>THw7P^$6;KE zyRL#IkhgbD%+`>$Yqf^cG-GF}!135a5O4;5IwM`JRHmfJV2N&%zN6oVRFXH@E?~fX7s*de9PXCb5;j`i{7UtYbYCfDQUnrn0_-qr?bGk9t z8B-j)k(~DWJ020~u5fyWr8YJ8Z<2khf=76EpJg4c!=Z9mJLj%R}QlnR3n|M+L zfKK+?DGAHQvZO?`0Gf3(e565Hv}uG`}_@-M{7~ul1n3%`;%!Iigr} z0~t*AyD{hmeK=Uy2r!rsOSQ5oe8|z2Mw4z&{H1#&mn0D{7j8BclT=YNFGegrrQ`cH z+f!le6)I}Y{T(n7ncv-5D5Vj+B)ii#kS;Dz`cSvr6G8F++FqcfAqNWb>c}_m40Cf; zO$+4v9?KcL-_}WckL|>SGNc;$W+2VHK zR-P!!Hc8SYzi$mt09&{pGz2 zxe4tCjy$3?h$`iqtv7IB73jB*x9cvKj&X+QayLpZv4hEAxTqZBI9~=eAy8YytYH-30ook*R^HqHq+VcKqDm&=%%)3AY7snKi6{97y zd(|dFW+g^0rpcQ&mD?;;Q>Ru6Bo197&KH}<#V3@0IFSs7twPdUeB%H*w@ld8(#O84cqv@|6q+rO=9s? ze-{%d&?JCE%v-j02_*7l-iFgS&k^60FIb^(7-yDiao2dIF z6U^LGj9PPX7-ML{eMil_LWtA()}Q@pH_JgWC0u8Xk}+c3Ek(0pJEi86W3L^oZ}o9K zBNQzYrw)H_!@gXOSJavMi$}cMXR|~-aliJ2nDk_`ng3AR%SBUT&bC)u`(MZBx-LCA z$W$0}@;Vkxiz*1=0i6<#9^x}JqAe!!kmikEUxOkq&6Av=Mc?8?>j~D9HBC*F;Lp8x z%z$s;%`$u!4~|f@B?SHQ|GIZr3r)z=D0EQeS{U}JU#vW|NGWxSZY@?YTeVi7!H!RLwW(f|+}oe+!P8WT8jnxeOK!ew#B__83y~p_qMqoPM+{Gmc^))QK*I^= zI0V?60D~t_nti8PTGu9AVe^d-o7m3YcdrxpEwe~ACR|N)Gd!jU4)*ExE89r<) z-b>mvwh~WNNnW1hUF}obvs0-Q4#9S|AkIcOWF6wr9rBjJo6a8UqB@g*DIg#}(vBny z#|f!{wuiJdM)6$H6&1C14Fv?4s@2{dKa;;C{1`-!4$y#)+OCJF?66tRCK~)|NYcV) z{-DemogcnJQep^st$NP*bx1}wEu7aEAH?mqeX*I*|5j8zDDs8LKNKtc^utSw0uP2u zTW1|r)NzR$Pa<7}YQNgXstLtFgetZZbV9667Jw0ZM4#*yUB0w&0LB zEqtZYFU#9=B6q(fMN2(>4$VQp1lo6KRGq|{QtjkP)qd}VecLtB`NOmaLHR0AzQP-B z2}w;^v^~r#LawPNf;HrLei(W+L9u^r()`A2p)XvwyAhPyiKiBhCN{U1z*jgnU%gD- zjpTRA{ny^IF5S&Dcvik1LW`+Md4MVDzNh*s(b(gA{k=}O(I9On$Pgsc;1@c#$fvqI z2?4jsZTO=eo#-%Ik9jyzvLfq+GTI^UU~XA7C@9!AKATQ&2_zxgE*P3pTkag23y-E= zy&U%@Dbe+xpqv>K#j!PqPR(o3QO-HY9ZYPyir~XRzpv*7A1Y@Z0;;5bR(|NtZL4U%)>aAUOV-vQCueRbu6f#YND6vd+Q-fTZAkQo zaL1xNp{O0j>Zjuh7@!9g*#qRA@I~2Zp;dEhQk29gMP|d1-W-2zhI>Yo9_)>#ULCZz z#SoY9Q@p>37WE*=518a&nBYf2Az9ZNO9PE_ZFW6>(WzHJQu-0){N6KfpTi!SI`v$F ze0mkGROA=m|HU)$nCSRE<2bL{dQrSITo78TxJ*D@!i_>dV1kcie7N#pw1QSO0_Y7m zeToXdu~oA5@{FgVcS(XqUg86d6kBLw>f)|jElr#;quc{2Op}*37!;VU_c^yyDGJ}G zi@U?#K7BYmk|qdf3HHs5^!Z= zexVflXj&ajSO6Q9FonPVy{g7twuAp?&VR-aphGehZiD_)Ggt;c!0k0S&en>PA7?#; zF4ctKF#;u_;sGv)(!MhpI!4%E1sYQA5Z3Uahq%!lSQc-X7yar1?_>OQ#j2Z6T2&{!>e_5n%0UBm?j9-dG9(uS`Sgo^0JNE{Cn?_rO&?h5 zk+5Vb+7xAO5*Ri5>)dvBkNnUtuRc@cARyvR;4}>(R#|Y$i&o?>sg;Z8wDq<{uysSm zf{zqf#@zsjljxtW7C*AWdubIH$LfYGN9optDowc?N~GBwea}reVyr(4Wq#|?H7t#2 z^FQNLFE%ERjhgk2qX#vp_!_=fhIYIEZmrWxI};pdvWB%5_Oevd%i5C%GNSa)YN&FbtplCka8MOBMoZ(3hd9l#y zt+7UvElbr(!s#N=0~Aj2f(1ivINVrYw&x#F1oYD@>l z%9!{#rJ-~OT{YzPFr8vJP~Ob0DO{3**AmktsQ8TZm_&!hkazHhG6v~2KnS(;rw z{JYT2@3qzR5s^~buG16AoKqu^ZbnG-&o>+!Owebq0fg2AYB*$PH=w*l(|QM~tctbr zaS`BpIJFc|a8Crik&j)8o)SA=XN-Kqai-lrr#$ms4Q!Iq^ zl#@+$3Hf%>GIjHq>8guCqUlAcix(dl7t>@D4Ozw#>64y^3scE}A$X_`kLfooJNq%= zS!LT^dzW+k8(I`2^?Zzd?O`%u$T|k)#)VO5l)GQ_GT!umJ1a=sXI(Trr&*ey$X9H> z^9tOeo+~JW}g4AR_HdAvqg zrOA9jS*7%8XkF4C&-}f?{FVpbaBsQ52#K74RNRZe?VOPx5KPmk%wydeG5;%S<$k80 zV>Czxlj(h!nz{hr2(TDmUPC_L%g#NhKl;O2=TTQ4f=LhU<1>&%%neD8AkvV_tx5xt zjKV7{jW%+&klMbf6N-&6Dlr^6YnrmXkT*fsm-?huMF>6OZ+DpiMG??1*{?^_VC@FP z>^UlS!tF1?fVlsGo`fEKU3`UZAPV2`H%OS3JiTJuL5sL&X9D;Um&>$my}T*dzKHHG z{tD0OA29#i$*aHhi^qNo0ej6^$~YslyXyq9z4ahV5&_?tocasdUc)#>b4CTEC{IzR zfN|#Jx3sklYA4%KsWELw3o)u~Qz{;vS_)m~g7sE%Bjj`5oqN4enE zc60@+!2b}BAv2xS@11a8tzw}>(Nyu}80z1_QY#p&kADC0n+kkJNJoboFIPnkH>@uz zQiD$-mZTap3|PooTP9f5pmwVi1{I_=x?UxPHMw^!HJ|V-H8v!ZN!S&tz^vGo8A?9D z@d(~kmt;0Z%$#%htk2d0oT;ZYFQe67E98XZ7itsjlnAoe{Mq}Pk}{sxgXsUNOsxS- z55MC9bA*Zf!JC6l2lY_!>3yMdVRa0<%Qln9fp#Fpzl-z^x`ejp>Ne-LRAqZ%`}n&D=huGJ3@v<%O~c>|P;> zpBQqK&IEqpiSt=UeXwf7VCEhpjyQemPS@NxN)q-96Rp;ss(h>$KAB|Vc2;WN;>qC< zH0=S>2PJ6+XY7gq@chrl9Io|cIJ1Aq&c;9Nbuh_cg&d9nb5G$=R#~a?EgVXY(j~## z7{p2z5a)+I>@OG@#RAiOxw&ydwnysG)>9x~@A*0~I|#D+JGR&{E>Xib+epgA>&&{S z6YbZ8CO~xKr5A4r7Iq3v>Z|PdM_3f;Er8n%iWX``RWO+kJbA&G^1O_pdmEm5pXye1pAa8YRhrdX)zKbZ<8I)EyWZv=KF2vaM9dSlc>{A`Q;EJc z26LVd@eJ+7N~KFoBp|rLlq*Y&4wxlkr6?E%T)spFn}34-V^?CkL42DDSt)%@hZDp- z2D372pE0CWlx0T6!p=thOs-XsKVlcMLVJxep{n&2E}D9QKDBysAYkOn{#Ijc1(63m zWIv6Ay@sbG?dlT-mg~|CgbVg&uVgFBXMS#?RcM7eK*Gim{Tj4x`%u~}ZAdq-3qx-p zJ7aR=-N6Dw`aoZ=sDKELEXFO4i&%5rr*K_29;mK6CtPncd2F9(f|6ITnal({rKvg| zU5msCGQYBIJkdoz5?|z(XXG7})S}&Mel|l20h6n2cj)@wkEWvFLq_l=s)&?p(4F+p zI&i%EKdSb0L=|}wI~QwK=}HvXaG$tOCSk6L0Q9=)RhE$nDlRf7qj^;)(`VH#=zbrV zamK}Jf@=P^y)Zn53sb?6#)4zR_;*+)tzDCu)p=Ivql0^xU%#fC2=)Z$ zegHpW4kca2c3|v+UdagS&wc;4&TS4*3jPsTC{yy*t}JD|V;>_TpemWTQ-03so3h5+ z;5tvWc?4$&KOXO0R#M^n%O!8z+h&3f#;rmY+CK4F#KKT%DYpbS1w6Kdr86ZC>yF4m+kG8bJHZQi=&i(9qnl$GDecV4J^z+<$T$tI#vA{D7>a;?`%JkNb^uHoq1IEsBdXwDH7(olZxj`xqXBqi5 zjN zy2Z@@uji$*DEL}tkf5FM?oZyysAI3X5c@*Y6wcXukn;axUNC*6&--GYZHgGXH<<)C z(l!;oI1b#=hRiKY%lF9V_p4Y-*E5_AJ&L1rh)a*|ojFjkaO_7V2+{QoTgA)j-)xi> ztHb0~-K=T=F{UY$<#FWIxL-tY@nEr6%vytNTU4#Ow%X!;-4}_p`lqJqI5MphRp$4l zjTBvpKHRk^u~gc?!5~y75WCt!t0kk*lC4FyVG_b7hBY*VZMEc$kG&+kwYdiM%d%cI zR}WBJq4RAd0$p`ZNESpC8Yl|H0J{x|!K*VtK2jHz$~_!AHT~=i<$q-IXY183SGGkJ z_1DB@?lsh_JrsEoRUagjA$23jv9H;Yze7(1N%pC7n4dxp9F~#dWt@%ayPE)}?(#CU zUh0@=$wsIbqftJudkw?XQ(%5$q~;np$rTr~UD=70gqF z>(&q+kH;4>{mw}xt+xB_9xf^3G%@7T*uI{z*>YqFwAlNkJV!*se1@alt-aG_YTQ~9 zVbMjJhziu>{SDWMd5{H#NNj1temA9zG~g3X;FZaVNl<%`#Yfs#{TscN*u$4TTd80Q zo*sp;TWHr685-Y$S(dYI zrqmniRpu4zTi{3LCqlHclJHz-vv{u48=#<3GaP^ktVaCwUnVcg47py)>S?^jCkM36 zzPptKa^On*qcLpaSa4^<pU>`)m`yhrLHfHYt(;=Ac6&n3O4vK zXBhfWprp@QT6k^RAXt8``Us(LVQ~vFwPsGd8e49KIT~1US-5Q+30lJ z+pz0lr2?HR|E1itGgEf@umTKIPI=?x{zUA-Sh-`pv3r3|L7z3_q*(?a2i<#QCcNHg zd{J;loAz_On!!oW%4b#X?O_lwjooW&Yvd6iZGzG{m}9&)Efo>Ec5i*(?}`xC6Y%!T^MKmFz# z+ox02gO;0rXvKSx4)h^?~UHMjQqH zkY!E`s51YsIWfM2H$Av5z!@@v3L6oSfhe~25tAwx+FN1r z8r`>C2KqPL&W01I;Rvot7wm_eU}D-{l}gE&ym%#)zu_INKPt8pjUmO%+-A0T~fn~5LyaMA6`>R$6>?UvVEE4_7d3X_i~ zK}C@T+6`3*TcY1L+%feJuxQ`I1QNM>uL<3;l(0N^fn|8ap!-sJ2}0cxiGL!=?l2p& z1QEO>tdnbMncG#hiont-PR{!(`2Fd&7YLC?PbZV?A&2BdlK_=M-2II*awlYI`WEKB z)97yxqf7L;cN&E^tOh_S`>c~U^nC8w&QM1kiVZi68^>LblV0d~A9yTVR~WG$ZAxIioVN(Iy34h9A_M%(Yoq^tCJsnqvLp5eaSMjytINu43$mmJS*GsJ?3K3DKZb zdqu`eT?I&nT3dopN|m{OlW_~92c1d98l;mcJZ9jUNBL_b>Hjm1!3qhLd3OLtK2gH+ z_e+q%SkMi%w)qd{LW`@s$$7!K#Cq_Mu}UR$nIv>@q=dwB<)ZbBED%uq(T z5YWpi6E~Nd--Zw1!vNQuKt5>F|0WEE8n~BPg0%AWz}w^9g=aQ>tbERE$P8JgSY-AT zuwM-+qu_K|0p7%u?+{i*f}4G$m<`Fw7fcGOYR_1O5!x=WbQ6g?PAYpf2Tl-v>^?)G z?x-StPHd@$oAI5kdc*1>V1Uv|D6L*&M9@V^B8S$ziaJm6y(BX;B)#?JWI@%5IN3jI z@4FO+&S~#f3hP4#HA;}ml-SnP;~|knd6F(HYU(D%%QVi-D!Hz;A5uh-o_+FI&X>Y>Sv((9vG~%RX5%0~@hM=D} z9k{gc%XO*7Ew38Fj%!^v(H%bNrEg+mfZ&HGQW96rf%nScxu zR2w`39aJ-!>^*bni?=TucGl?+Q@4akUn3_&PCB%@hEQEbU8|X|2-9Uca!aP_0muNn*kkSHs34=JaU zWo_fz!LSwc&s4>}bdm10uT@#O-?QN+W(pe8YE?Bjz4to_+Df-Op63mGz9`7ERKQfn z)rx2G5B`q~4n^1inM2`&ri%_8ii`N^+Ut_mqBi0eNuvYZhg%VitYQ?7Pk}e0@KCif z4;K&nD)F#q81clu6+pra{5lUjC>{5HmFYeLR*n59;_O9qw7n^d@`oJBH&~-Vu=N&)~gYxnD1>f ze)?M`cIzY7kaJX&)%f$as(oJc$mx)nJMA#FEA?pI@umm_s`upEqu92%AD^~2X zjwICty`{*I+)elGlDz;Hsi0mAZ`r5o)?hY+RK&Khb4G_&s#3KXhu(KJ&4MRzGK{=xS2>nSeP1V-%HV&8Y^ zvYPwjUGq-2^|bnI)vuZhab%&Zu-}W+{IeJ2wTh-2Ir+Ats|74gxY}NYU9KoYCuioZ zN=)rM*RZ6MnvLIfijBSd9QdO9N6mch^bcuXrTHzq2M6koDZ+AFyouNw;F7kQqF*;4bvj~Kajerq&tnNR(2>V69Zjo z_qJCX$aFw3be2lmJuasTjns{V8K`_UqZaf3gr!f#&rO}Yon9%H@}HosWai)01CcrR={#+Jn38OPrvA5SM!r2%hX3D zzVMmmoE(ym!*2sQk4gi`!xw}1zL`ox5)ec7r+srnuAA!-0={$ybls6|Yq~72A2|RR zyt*ZPKjS=Y4IbvBlj7Q9bW(t6k~Ir5;ZIsI&QbneahsG;PfRP#Fz9d$aRI*+F*?AM?% z`4m8b1vHn&BnZK?kP(+*4VABkBIx!O+%)xLLZn{Z$FS(he2>Z%U22ot<{e6DBPxmL zhgYHC9B&xxHH@yWzIH!1lbW{Z>-L)&w#T37D4BG!J|b_s4z;H2swh4oJ{jEk%J-u2q1DKWe)*D?M8A@CgAEsPo9RRA`>@mVFw&V~ zlP0TclgIu_GMRlWph@&A|MsQg3ZfYm{ifE{M;VH)yh87|_7z%Rls$~7SDcrN;E+Lf zK%-`P$A`aA*)9JF7GFih>uL*TdagqD6OyoO|Av!26u{#PtmC(U_Lqas?u`F1^s{yB z84-|L>FcY*bltmwHsiJ9H><;z>`Zk*f>I8gN7g&?ce63&=0X~4VTD&jX}cj~f3yC6 z(FsbDn%u4|`}}GDPZ=uk34EutmkyizIG%Qi9kK&}-18otej6i{ap}C%zkv@rzU=pW zOs`h?rTA5`;D4aT-nbXV4XD+M%*KzH*V`2cI8zVx<2NoP+|QCFktinkJmTF0uVXQP zxw+MmWp@1=0xyFIXqmPnt{QLu23{9Z5TTOs^f+{1-4A=RfRlxS-{*IV&4>Ei2_EbA zEg2}nSg(~&7g$A#_XBPNSl)}camDkuA8X0G!Rt2Xe)VG484n=eLz|s3L7|ZTV-FaI z2mep~I8FTn-w64I>lY7^kEdUAU^*2#Ryw=Eox@ToyqQwD9+oF2{ASnZy8LWl1}cGl z;d88n8&?`1qkDhLrfZD?ZGBvObeR91)Vv#!vFQzKEl=&+_W3g%@VT|EP}*~!@jjCs zbUV12I9b$MzW6JkARUtQ2X{wa# z4HhB|F0VPOv$!lVo=Ye+q1Fp?lXbNoA#dL@m3`*BeBs3w^3M>#)vUgfH3)gB=51?nrmK^uu>ah+GH-SEBo#2lI-b>nUHC@cx#RB@F)dU z?CJl3L|HECBwXtlu^m$O0d0Y7qAe156P4#AXnMt(a{H+kR&>*@!*O7`L)c2J4BWfYrramQBB>W~x)>bAH< z1qnR}3hfURtcL%o!u^s_9m<2tYXBRpXKFaHPX;q!%CqT&x8sqV-I8K~`ru}PF_ypA zX41Sgv7>7^eQG#${1OH;$A`QHTR)xjZ<(7YD$`8c9tyR#*pdj5tgosYmijpCYzP;{ z+L^3E#@!IAIK)Zol5Xhn!%;=EMQ5`HFRM(3d~}Bu{hph0ZS_8bOgaX;70jf6pzYNU zI*V;INQXMbsy>}m6xET!g{%~fpt)8>D}ex(Tyc{)sfPwGmoEh{uD)mwnmEVRJ~%(W zHS@zPBOhNf_eK`ja9qOCG1;|jCN_8L9 zKe~iWmwA92M&p8xj`(ctbFI~LQT>4(2D0yT{9lDClqhT_T20o5zjP2i-PV*fGsgEQ zZfuyjz&L(%i02Pkbv%aHKzD3{deYMBjQ6J|Hb9eBeD{E< z6(gH9$X7M!?_bB}8P8GL>3TD%tq}_FF{Hnq-o!m6A)iA!z7_5_?&LBrmu(*JN)Xke z-8Jx=NV~dHS{2bJ#Ct(qX?ZVbGRblwOi~M>pNSJuEB)p;tJ|%a73qE%YKLH!=sDlB zWupk&C%#-J%!XeNnScZ7$Kl`Qu;so2-IB|JNh=L`SS^@!ZSB`J=*_$^D^el@@_xJyNh`#?4$my|=QqU~ zPSsvv`%>eGa+Lf3-=&1jNQ91F53`zHn^&B|(XBesB>?o28L-+0=Dd9|l1i^DuUy=)}Y)8wf1Z$JL z_;4miBZj=fc=^JuR1GUO!Wbfv=jY zyp3#y+MNbm#}|wK0Y75Fp8p?L1?Ap!sY22a0G?{t68`n^t`9OR@hBg0%pB5IF%lNL z&o0KY0X`|tLjl2v1T98p(srh)t6))sJt3jYkf0 zZRN*c)AwHgQ?$!=@QeI4b-^z@fiZl2r*T|zmHKnmu$*e6#C_?xc~viyAX{ir=*JHoCWjCw+|9?!>cm59+{W z^$jB{cR>%|PcODX^utZfMsXvy20|O8`}iSC<~t3@Z>8`r7&RW_;#v0%e4vK!9hP3) zPR6$J}c!Mm6s=fq!&s1p|?{y>at5_OYrr_=9*+he&lOvoCG$bkdr0~9Hz0nwq9M(YJRcsERpd42 zV1xJ6p+GG!Wc%H{?O;PS`@uWcx0JD064>e`dx0TR@ic2d+itXs)REKuBJy74mAb7x zpaf?b);8IFQudUSOCo~#_s1t(%_Q%u<9o8lV-$TqV}Hyo@(jm<%24_k8Q`7wq20Dj z8}Yar(=@tERS`8JqDOJ1RHrg$CS8Uq(8qOtK(r)IMmgK$CzH=EHQo!<v9|1W8Hvj4YOkB z0a9RO>2F!26oMg{?X&g80e32*Cdr}N%TZY?V>zbodsO@FbNx0Kb{KPsqR78B8vffi zx>CnToGbH!E9J<&-)|6Lv~0Rb+V}>P68sD)Hoo3LVu&h<{py;tz$07t{`CJ2)ga(OJ1PdpF4hx^9v>1V8rqPQ%B<(-zlE_w?ddc#$tD(@Sl35pJpc4 zvg%&f*F@_FtWz2>h0&8en64nc0A~&92Bx&hLX_NgioL9Hx_MG!whi=^%9&9ET?J-o zN_VJ;ou_YLGxn@3e&KG#JQw-Ep?nEIv?*Qx+q@OpLjt-Qfk1HW;MJeKZkvp{Nf4tagGq@xz;QSUYH?J7t+CS7 z!2?(pKmmcqr)nL-CJ-l%vZpHwrF$(?gLUh?t35*9ouW#RA%4z}q1}4&HnV5NIzKr; zs-IGZtLA5Ey(rvdONBmcKgy@70YY9Xp1Z88$aSmFM1wJEhZOk#*czU3#h{&%o?$dc zmM5~Qj_E~kYrMbChPLZ$zf3uM1`N0=l3njLORhBe#wu3_!>YUNAs zj!%v(6$*O87ESROh!!Qmr&V1+V_YN{1n{1z{(YS7fZ3L_*AZYndDBHd{Q=rRLkR;J z*=kUP>;ibDr^~cxn4p#*S+y>@%H(5<{W?Ln!V0|+`>qc2({GR0)+{+{pnUgWIIu4L zr{51YGD>i8_q{pvdF0~esKGZIPZ7dGZSD*AlJS6!N0&Mr|BNM+k*?SUEf4A3AFCgD zHS23_d-}Y^yR$_=fI4L3teRTcKU1v=!@>!auKK+DKzC&#c^zg~wL<%l9L3UHmY&YI z*ozyr&^7I9wBr6Vds4?I(NX0ZK5%49(#h`iA@hgFUvA}$s=pHOlLJV4L3Ezn%Ss1| zrHX&Dbx(jf|8i1oYBTC4%`dU%J?>5SFV?r!jUl7!ag&!ypE+b|U(%S!Nq(a2>N{*g z_BkdW=y5mXUG3J~%)m9=h|MDJ&Es+IV39N$(=gPyJRpWWFW=&|GkI=I`d zzd0=a^bNCRp+~7;jet9t+=`1X=sWtg8)vH8BG4~stJ=Mx7ZuM1lC#J8EEF}$>I?j5 zc3AS;-e_#PVF}hO=12~3LVH8V<)Ygkr(ago2DhJ|b?fJwm)s+>!UNieAHf?0hP3M5 zc!x~yT#oD=1pdlhA*SKWG50%9xLje4fCi0@ZMd!0*(rsDkGo(wGeU=p&`;v!O%{Dc z1V#;Gdt6_8W2CwptxDBn$-{Hmzt?}*v}{k;rkpq(R?}$uq({!ZNiC4+^l9|h^(~w= zLITqe_F8%)^w{65!9Xp0yJ@2vN-KpK*EZH;-2>?ryD4v5o05sw?-_TuQ_k2KnFPXz zk`|<%%|i-Th0}&FGS!W_SBDM$uJ<4OsU&}m4kke-}io>m!6NFyQyQb?=$XRu`b!m$}xndZFz)i<1%&nX4kyxgrV>9ug)lwUVjV zcTieFKSYua*{-pbGr`n+`VUg}C{(^{rL%YH&9Ufyci3Eb2ToCCFt9S1fuN6?QHLLv z`pN}7nv_9lI|I<<}#p1#A!~=rBroP*U|&==%gf^xe&O&3UGkP#%7gZZ*LjoV6S6L zuSuRQ$fhhzJ@^FCeiZ}Wm}oXstx~xbThi9wR1=e6%_GD|EBbgpBKn^obY-u3Min{- zmlZn8{8C(bN@_V~KMvp_Hx`sirop)PyATvmUX= zZ@M42faWXP$UOy+(-5V|5our4XB{k=LYtJi1!sd+Hyr=Et=6`NIvuviTiA)WC0#^+ zi;n&dG(hs7Z)?%2-Beb0s%ly_$dtM9t%>M1^DEls1{p5}Hj|(kzw1e1N#ex@pOg)Y z+ZA3D-ezETEFU?!ar*V_?z`k{iCf8WqfiN$?$q&?8M~m|+uD%dm9F@0&y&CYxw9?) zrpYaEJnB>=)G<6mk@p zHWAg5v$(%hX~I*&eMLD7zfu%8I;5b&Ytz%*K5#HUH=@`#gna0jYZJ9lU6OFxx5P1j zCi8NHx5}=sEQFG6F57VEu1t zwG!>MwQVL-KR&);RSMn6Mvo!^HfwOGNVAlP$U-S_+(YkkwT!i?g{NNmZSKqRqW1W$ z^;L&lq=O>V+D}ABEl}TlmLSC)n2x;Aj3q4mHaC$;MX?eab=$md^&o?EpC{nyg!op(jF>u{o=ZrI+-jGETTL|r&= zftW_9OrEZ-=32Mv()8kocrF#_76-1Qksrm*vnmX|epO2_b{=)4cLI^fF zy6EMI*m>IjK<(UfIUV4GZGZnffMwqm0rl4a8M>ww*Mwdk(}QdzD&8LBzNa#KI32-9))mQ_Jwlg7)yKneR$? zUKH%Rf{%NhOxvVqU&bNU(H_#kZZ=nHA%o!M+w&Xyo-m9(chX@lAk5%sOlUvq(5fvi zlHl{0;^kSk@2ul!nx-<<=D?O$aZ)s7Pt-eo`*zW<+kcS#+}OZEs~iLmO!>w4)K_h0h{ zozai+G~aWh_H2bZlS{@?%6KkRQMaAOixm8EAKL#I+xm#h8G@gJt%a^bJ1$ zBGG;hMVNiI>0j|a`yUfpg*9gjH`VM!G3eZpM*b6>(GnH>QJuhRqI>;~&s8gnPLY=Y zAO7OYe$%_rjO|5#^uHYS6u|g!!Oi;HXO1%}@-t}3b=^7_RIvkD*k=5&e&h`KK}r2I zl}N;tpj-Fo^cQdC3#PM7u{~W3$%S@u>22IVo=FxI96o7zR59$oJ$m#t{nFfscZ=ia zLHHtc9%F;++C0 zTA&U?+8x){eJ=}{{E$D)$F5YaUUnLC(B$w*73+G-#(adfRz(kaq7yP4cM6xg65@IR zPS=^VOs;AT;rE`3z4uA==8pUCbIbvJ<=%c=y)BN#yGKfcsqnRGBZ-u{d^(?XZ1Xg| zDw8*nD23A-T{OjhmL`_IPmPQw0k9#sf+`d%8P_HoC_^#%jD_2bf9VpK@%07^-ahHb zS2>D!*z1K?78rG4L66VSsV}BZ)fOKUqY2ymTI#5KVA^`$?$qEfN+o+`?*4@6GMFQ#&@@Pr-%ut0|}3J`ko0X%p?k)(BNEA)p`*lWJo{ zXe3CUSrwtNPf~O4&#hGVNMKeK>G|Kz@=5ulr%OqTF%3PpWwSZ;BJ7}ye;CTYl#Vuj zvH(h232*>gnZTICx;n^~_b~$cxK0m(uyICae#KpK`-ZN**w*Q^D0ISP9D$p-FUD)gJ zY>%t2Lt?sYdKJ6s5{gQ^CCl_a$P0e;QvChItL^RrgSedu>knBOu^o(LZM{_N z$6tQRH_r!Mv5BFi3kDU-IxqsZ(XAtNuwXU$t_2EuII7pgj8mUt9whEGaJ7$8`ey*h z@B`~@g!TsJ%Q)Vdu}bpilgMg$^bkHNJv+LIyr?9tB94=xrl!@sflBFQ7EF`JiJ0)B zAt@)-{-A_OB$R+@9yI={Z$rVphSx>e8WguAYhK@%=o-cWg!im?h6~i1^eH5IvLxHB zwp{37i9A)G*lpy-a3}``KlhlTCw-=F;wPkOi;)$i8;GRt$;?^$ICNZ$Ii;CJHZx2VqSA+Q zuA!M@NDMhAB%Qv$`}Ys*@woSR-0%B(U)S||K7)(9Hm#Qx*0Cn45OUE=uC~H{-B#?r zw(Ebr&ZD8EnuBYja_BWL0+hMQAtMU@6ZJprq z6@{vBcYOOS;>wC2am>!bYhIBhtqN z``babU5wC&ap-!>O=I^E6W#3}BmV1W%Ks)Yg=~K_2OJOr@S6M=(t&^ie4}4siOL!# z{Tzu!;n&E8-PJk!y0r3TEf!DOYcq|>5+=FDa$nlR#^Nv2#O}^^D&~KyH`}Y@m0oEV z^@`~B`8(2bd^Y&s7sl=_mHgRdpPbAKOX}}e0HOevyBXz#m37+A*pr@tFN|@rVm>&m z%Y*Gy8jC`(?JU`5#{J67>GKOul%ZA!_cSS7Y=`6$9V9SLV5muD@2t26Wd}d(2>E|; zjmb4D-w580*CyB`9KKXL9jNo2>3qcoSl~(rj$x;t4tF*k22-=gkmRC|kcWorLeBZG zE8B_BRP&4^;2Q{~JIetP+-TFFhq)ZmlPe$d*}Epu`T5hB>Gi_O7!mCWj)OrASY>a( z_p;ec|r(tT+PPZ>40I`gs5xL?jaLD5KS zlmp_||E}F`qxItct%)@*Hw3Uh@OJuKOTe73Z%A%YH6WzBm6YuYMt2IOP}jJ4c=-*>1(Qb^KL{ zQNE^4HU-*afj$~}$qZibv&vNAo5m7Ps9mFXhajG4{neCEzMo^PJdznX!3szpQ%3I0 z4yAm!V5y}b53a6kgN+VC?Jd(H90^}ywj3nXGv#@E<^asT*DK6$QiHA?t)tD!#9pnA zK1AB14@zjIa>6O2hKD|pokZ#G?4#V;yHYMQ7={utW#s45Lt<=1^ygp&Xx1z}ewmQH zS6$E;;bu3j=w|2)oK47OPUG_HTlsM&N}&|)!y*63M*s~j0`{I2#{c!;J~yF0?DMls zGapPGHPkjOGKUh9HTJa2cF@#(y@fUU(4s)EH&p=*3Ii>Vm`tesUb|_hpa5THC72$$ zbISnVqesl-6+NVeyLxF}qPx3jo2Pm_zdmWQ+B1gKf_BbjkBDt&x%O$pMkt|P_SP2- z_DYYIW!zuOO&L^-np=qYhgnana#b&Q2LR)qzOpuIxr2oD{{3s;u!YV+!fZp8lU6Q9 z9$s!nRDOx1Qm&*nwp>|hc@&l#2v|^YpMl)u!~60pt-Rd9l4B9toT?~k7ep^uIKQgiWz+6{8-5L?BPnE_ z1iQmRSTCLz0YCz~uze)XWrO{Xu75hCs462n-|{DCb3RWox<8;;P4h`RDAO!IZ6y&h zcbsMLHKHZ6^*hhwY#alMuj@P3MuEqfxfz<882qmzKrsmD%Q<&mL`?JZx)0 z*BsJv<@!9jWEYZ0%!aGC`+vD6gips`#|?_>$#MOM9y zBm?v}enlD{Cm17z{TBMU6THn%(aOLrPxj1gv+b^0>3Q0`3)|?Mtp6VUSDo4*cp zafI;XwASmCXZum9yN~pAFHkL)fO}MGbuT9`8=*O((1W{d8$Ymn_VFex6d-yvL_bug zp^c1^f4b-S&OxNGi?tHK`X*0J(s2v@CVSF7A2YxgKrG~j-0ATeZK0-cZJRR3RfcOp z?0#ik;nmnAX5}Dg&0S8d#1Nt~YWj?O*@hIG1j~+zfo|u}D9Z#47`dR_5NRv>U9KCN znLN~PqvIGy+j58f9ct@n9px~I~7 z#f=KD%fa`mFE7X#hai^a!cbmWc#<0|s6r3~cJ>+=vq8O8E1`1t@@gsBfUD8r?)6=P zW`82GRVitIS+<=uOjd12I1~3!@+$Udv0LV-NNWe54Y))*ZqOWS+ag_YD9>!i`hnp^ z4fUie_;38U71!stZ8`;yf3J1an3{m^?^pcYmwWuu8r7W?*wNp!;H}~DX$5Va^2_5# zXGfi~dGy6Zy;oOI8y&yILVW`RcI6_Yx2#+MthRuF30B|eIbN$z!~4o|yV~8`eaynZ z;KDKnY`$*YxtjmjDX*sBYX75`t&= z;GmQd?zZ~^71RCZMZKhGx7hV>!Pqy54ToB4;flQBT%Z`%pugK`UjaL&r1P<}lP0Ls zgLrH=9fL1mYgq*9@;(-Q&>=Z4YY;HK9;l#iJ1+7)5*PO4gHj20W9ntCkT5d4wZMT7 zRLl_OO$1!OiCb~NWn_)zU4PpuJE;)T3oCslc`-|%b(z7kY1&$#JM62Y5;ok9? z@<6?jZ<=eqGff!9>PJdke#LE5mfdllN<#oay!gFZ&iwQtnc*D=c)&9Gm{P*NK(oQ} zHKh0T>6iBcE`7Y$51X^_pt=}>I`$Y@`3Xd@|LECOcWI@sZ*#Gwi#p(K^c7qOy?4Mj zzHYPRqB|oa6Terr`2HV*PK(>*t^$YKo7hv7}NIQ{B>N+PWe+Z|v?UA6*7LaEqPnKC7XP>Dx2$;F^ZwatOx+ zWEZCcc!4rK5;_X%6eE$ktxzpBaDs#v*^-u?EEi7`qd$VL_$4wR)q@zjmEsneLCtit zG%W9=@6{o>GLdP~Eg#l%zI+2c49w|N^pqJOE<7U)I~!faFK4Mrj8y8yHM#W6LPfvu zRo|ppOe@p41kr0)V1dhe{cJYgSwO3(0Dss#B2>qibO2; zo|C*6OxGCgoZ=Z$mdBb-W^KR9+Lf>S(mB(O#mpH8eqVa2V_*2Ce%E9{u$+-WaL9c} zaL*1*8C&z{E?yWligl<|h2X6E{&~PMX^W0%o-9p-q;hSajTH^8IrrGPxSBo=CTH(! z-PV+Z)}s)#(XlM~OnzlksqLC4_lScMeYw}CIg|AR7#4#s4kg8@xz{m63! z()$&&R$-NxJCrT4o@7z@AyHCfP%_2mv}TtS5NzF?iSb>khp;9E+Q!o!OLrC}rU;NP zb?ll9_+7de2K}U9GW-$p_>un@&OJq;YBR!qP#0GO!Mj<`QM`&2*qWRDz_DV7HU0Hg zaO7ZRifj*~!Fn8)V>;y5+!~guuJe(|896oy!DNW3q;c{0F`fE7iOcNt)H_i5{ zhH+W%6Q}0Z@F(Z|D>RZXw4+2!%1-Rm<{t;xx1vxJwe`4@?|PY41-{3pqRR6+S^x^? zOytvw0no8Fi>B$QuK1wFPP)&!-VkkDqO0JRA1XC7GHl2#;mW(%RKgVOWc{SR@Wh6tJaC*8Jh%!R~x?h${ zf5jJ(#Ooe~q1?!EEh+;HEA@ulkr_OT7I1J;Ma~n$jt&<9{bD`yIj_A?LKpE#|gAX5c}LlSMWugN1hogL=*iV zT!Z8e)~1~wt3=@(bNz7wD!U_n73NM6Bw;>XUU&=k{2;JaW(NQ~K2So*qxLT1Q;o>* zY{{mtl8EXB#5{d#w`x~V+bQSg5_Oszn;<9g$%;gNa+;3f5i(wf_zgW(P|T)6yRITf zEIa3^^3wfF%u5E-hHR~be0fL;x75fAvXm*DdLthCI&k`~a<6PFkXTHAl^r^ALGmFz zKBl<@WaKda=s1|1eGa~X5^i!(q0@Q;Jp0n{Y;RXiowk2%z-^~W;S$&Pn67OX^(u$N z!~X--_P)k~0lZslN6jXeTAe1M8KoFFIF-6zRiV6^yl%1ti|2)GGqSo(reNOstA<-{ z_wU}maE=G9;+c!?tT@p&SKJQW-AV8G3;Q3a$)+bX`%Kj)W-aD~2KgA-)g-wS43m`5 zJG-jhmDKG>5xXVYV~i$J#)^k8c>CU`JHFH=6Etq|S83>V9||&*2f^h50wMWd^A#e3 zQSQsq_P>`K#T`83l_($lZ-6IlMB;6`{xsoMl|vgo!~SDn?-3o9I-Cc_{Qd`-G-!-# zvqzepkf89py_N2BztAHJ(+lH^w8sT) zp|$DcDTkYq?W-nQG*=Jn6w!hV68f|pf8(H#(;e9W=dxJ7s&5#p1+wLh5JHQSjpG|K z11_F@c9gM-eU?GZtT;;Y^0_8lrEKW@fQZe0QDde5rqzPQDL`G6I*+;4K^HI~#=kmZ zs&ly)_PN$z(VDcX^Bp~n@-}HCfZq*9YX5RB60FvS{32V`>dgh--s+X5qulrJynpzt zACLs1nw6Vghgvm`WU-yv*{(*?MxHe|H)yw$S$H$rM@G{frHoi}&Upr065%ziEt=ET zfgh+shQxoxtQ~22FY@_zR50>Cfe6IyHBZBiZMGI}*xh9&!?B^EA0VSFA$c31@| zO`L}|{Y`h!+J&6AEW=VTP?=pEkarW^C~(0Z0Xq5Rrapu~h5lekTXUa7u4(dlqLRt9 z=~Q%Htc6GJWp1kg>*%;;UV6b)VN1lOfzB0}xj;~vtI45sCBnnj>WfvWV~J077xI3O zVo=A_Yqb3vfCynp=P>Gz0%swpS?5JTvyVTV$gdn-BJ&0TGQ~|^dg^`S)mdZ&#@d^*D!H=;>VF_q7cO|+HSVN)9ELWfka~u?cm3EeX_%!un;7_L>aba z?`zCsXQ&*ZR`ZNf{#(Vm&U>26V=vOopG70K0?7S4=_tPXJLe1HlGfN~5DtZ`w(2B$ zHYZ%ROlq8**plAQ73bb}6X4K>RL4m9!CET2i=bSmYzPoj0mb0GVxrvOOXaPX`X+zt z-r)8g+=iYF@IjQmyRIRSy=;=-cjjat4n(6lf*xnHZ1x_>G`LoG3m7Ay+% zI}?$C$73-s57yYur4Y3K`H6>O3#wU{F4ZRI-R_g?sklm;`x9CH;UTR#7qK#pjvW=a zvW*ttQg`2o?b7=D2LDx@8lNt97Di##GP(^VtzbL_M8#Ug*?fJ>e5It-LbJJ*^s;h_ zqO3Lhh;T>E{-GDfKxPo_0KmnYo;pa{_~eEdd@P`j5_q-3n-cLqbM8A|(W$v`+`lhP z%xBe_NZYH^wPm^26q6s;bs!MHvULj>J9<@l5PmMeW85z2&F_wQt!K+G1V8vVKYI5f zS9Ok}5?QOMQu1@`ydoTkynl`LZq5ugF!VW=pqHcU;(+MZWdww0jZv6v?0Ar=j{FK> zN@l9&0k@B14U8J;3>$y3`F+OTJh@eYeGZ`<1GV)lz#)2co4GeaucVTnCRa7E{f8Ca zPEQSJ#f$hAwRPK#JrK8=0x8EP*MEHH-FE};-rRI>n!h=5oA-*J*D`LrOL?x)Oxh-C3EFdUI9G9Q!4?w`go?(V}lYE;hCwiGI zzhfh5j2>3i=H$gMktN{U*2FBxG#~qn_SdRnx>jDjS)NLSa9$pio@Rg5M!T_FaH&86 z;{J)`i1o2Hnhy0qFy*gmqAkvP;2g2iijK6w5jG^-4S^h!)ESOJ$Zk3;*4kH6*pX=tY>^XK8);yR7*QGu2PME&Sx56VmNxUH*mS4WEFNZ9>saRtA)RJRTf zU)mKWqjZMeIk>97s9=`*Kw>3DI%yjh(!q$OJaqn8mq}ocPLC&*JBA!N1PN5Errl~& zLk4nqLLJpT4oeT{0QvV=ViX5hxefeP_pg{$KK{JlDXAe?SjnpvoiI?ktH1y5;opCB z-E-PO)gEKOj%KvaaIKW4WE&es#1MO{D{-2hJD5dI_%Shb^jof*G9i~;k$+x1Qfj#>X zJ0EU^QM`Q3Q|RQQ>tRh=^8Gb3&|rQZAK=i|Wl!wt46MGf6aGM1Dw9_$RbX5_u!F;( z-N}%luxqJOC}9zP^1vA&=6^C4>a+FBZ87a|y^aPYoZ#(NnZS2y9G10p+{sbCK~StwlpBtTc95N!V4D|&9C1y#HDodBb?T^Qy)Lg{mQr^}nzU;o zc)m6x-xgl0(~p$t=nke|i8J;~zoMFNQJAR?R)B9t$n(fv!S=#0uE2I>LL4_{(=WC% zaQ$%EHeBIXjJ>k2Q4Yw{L)=MJ-vGkaf7y_Yiss|`zyUX&YtXQI<{c`ebCw60u zRh33K=_l8l61uAetpIguJt(6Y_6?H;0*+QOL`fjStBiI-jDL1C zkVF(=n|lf&Km|^xX4mPB-XZ~Z$oJQ_2u=U3cI?vzXMZqigYeYIh|5kq?dsuI!y-y; z3d+W_h1Ay!3fDpS8wv=&los9WM}5v2u(IH8OhAIkPg+A`&A-I(XG@jrEfI3MBlIK^ zJJ{;yuuf0dW>pRI|$<@G&#gHiSQ^qCs@Sh~+r55Ip6GL;rbs$!^@Zv=6 zzV=-?2(?)Y^cyR!13J2b%6GHWprdm}KOPBoe6D5@MNMNqQ8{{-QfyHK?L2U-`z#Ts zzZj%&+?msqd^R1R(#Fq|M+9zN&SY-A7qAxq^lT%Clv!(pT=p6vXXeA1FDMI}v9kQo z%K`!)$10|som@}4_}`to{>r;$$@2T*jC|0PRMg1#Oe0rV>5V9Ap^AL!IFeRaccM`# z6rs5+`|XAmr({xs*h9UQ6`LrPQay?7ecfg22uHvwVh*&Z9~+YA$$YCAe47LIE#RpI zp3CAwEM_(c1jjf zkC1|kKK3yh)S@A$f3Kg3HRiNFFB|d^Y0}D_ZH_u7sM4k!sog5je${t#;$=E`>g8wY z`Ad&4d$7%IjhW1&Pe?5HMF+IQ{DVXV7{@gLUGQzRCEqZ`upZC0srIVV4((9 zbsGsL)wf=f+>6<8-d?qDJ&r{B2y6Biej6}1miD{M-g$HxzUJqD=Okh!VE>s?io!R% z+W-o5JO}k#oU8wmXnT!)g$d1$c9?&*6*@H`+!S#A@zW>5E5P97K9-TU70)PJEr;A)LEt;^}f)5szAgUY5MMOl-aq z`^QeV`Gbm|``B~zQsN0li0o^9VX2hWIQq=<_Si=Izoeo4XO~{z%?Pr|C`JsmM7F)O zTax}z`n~J!cD7gRU<~#}pro1C&ADuEx3r#n{~w{D_bSjerPutpFGgj*E0BJSNX90q za!Yj6sk{*>7W}D)+P^O%i?@A_uG?F;*4O{jnzoj^jqARh7_zLOGCH2|PrHv%{huD3 zP|O~a4hrzb=28GeB<7zr_}t`al-ARrw}{R>UJUMaBV zx%7Bl4;w(-7!+tgj%A*Ea@@biQN8!{&hlo4zx(S&K*gr?@`ciW=$}VWW}baXH6JK@ ztJu&L!sv{2Y|?E}6C-l{&0SzA`dHKv72bD5HITa9Gf`U=t>*DY6xG8v+!399T2x*j zS8}FSzcTciwxC!)b@j7fp#g|0sb>xB#jW^_3m!F>&~|5(4?n`R1`0TJq3fPjIkgE_ zeEP)6(oSh}y(E0^!oZ?q-gZATxHtr=KPi}vpQ?Fwz4BU0@iD$OnC+*SFpjBh{&>PgMCQ}XWsR4L?YM7t0n5s(8LfOzY4c1+mb-Ub@F@#Oba(+lq7JV5>_)uEzu$9I z5z&(WDzcxC;Br!vMsH8&c8%RGEQLU_WoDnvva2)csP+hY2i%o75O;5Dy@vKNY0$l^D7nK8)~4r>>t&Qu;PHjP^-1k0t;-8f&Z zzANi)uWYzIFjnsO%+z(~)Iv8rDi+AIx_!6%3+N87JVkIGN0PcvrF$bed-Ad$hWw4$ z66tZUd0PX#C345+i1MQyf;Ar;1}S*t6un-sW^HSPFp!^r9BsA7e8gx!-|+;@k_hnD zbpj!Gt8&Ypx>y8Wkan*P9PK@?b%6+-3&lBy^)0YOaN|s7YWnXGChg=IJf}dDh;jj3 z*{){-r`>=>pCPTnuWhigC}MMB>vzRo6Y)D>;+{r)HBGK?Ko;%cqrbyxSFiI8Kk6Y%`HNQZ2p1a(Ggc<39c_viCo!Hkn!GSA!a8{~ zcpye|EnVtc-Gw{4#%q^sK4z1+iWQ~>#eK+>u*T9$VyIqo4O6piKvF6cZ9z~{%936o z<36}O>CeOcK0kK-r*F%M!K-0|NW5L1}O?<^j1* z+i_wKDbPZ?BZnP&ijRsX)s?=(DB54mj{Vnc^*a+xbY-0nglyDfiI)zc;XTh`xgYjmEd-|I?(d_{m~JbgY$0+cWbN zkIb5HctYV+P%25TvlnJW2^F8Olk0>H>s6f6e?QBM`0uniX3pdLw(G}ld%st&auelW zg;8%(z8N}eQxX}c!E#l_+=OG=%>ooorYKFjfqwL725M>A!C|k)2tzVBt~$hIWwt7q zuhi+8-D^L5e&FxB=Yy9|TZlqcWjITmMuG=YYTveN$$t4 z4PdMn!En_P_jb&J+>OAFuW!hc05dBkjFRl((t{(otm=tF$u^3a1_oHWzCmdD69w(~ z3psni(eJa%#VsM|!X85o4dCiT&4^pwL__mijrma)K9%L!m|V+{4F;E-rPzYxBPdbatxek@+B>m!ZXY@ z_XprjYDCzyh&F!(Y|>lv6Ga@ifkNWOn9V%5-`(TaoC^r{T(y8}fqYx!G3eBob}4#k z!TOO0nPze*yfoN}k#4oWTk9|h9((5a30+@j{?s+f!-1}#894t?%MxB2**YSl$_cBS z#n>gWuV_(wiqq`#9oJCN>6uuIJyl-t?OlL0%{}Ixe0Kn)+d1cnrtnnu#C%|My|cjE z`;_RJ>wgb*q&YrmVEUXqnB;eazg4@!1SlN`xTHPV&>9<$mJy!JMZ0$+5w(`%=gJ+r z75LuFDb9M3{DYQQVb_;*ADx_15#c2=#QFYUlpe7J82%gn8U^L7L1;FnmsrvmNzj4~S)dut`QO^o0j5e08oi3es`_5W%{VLSBnQ5et9nDlM7S`deB zcm#UTx{6WA7=%|Ptg#i?o=u|y=U+ZeNAJmYuh^>+W291wYWY#z%%WsQ+$zR@$nAVo z5)bck`DmH?&ah{=stR_rxI?M6zn=z1RE2Xn{8rzqml7d)f4Dc5-vTOOU}+*{w2CHz zL(bGJm+;3LX9kqtQGIFRC$t}G+<)6OyO6eyQ-r)6Bvipw{Xx~W(=T)mJdv)6qjhei&L3dNQ2WT+7YckTBTnct_)xOWzpE2^^F&bC$2KE1g2 z+WkiAS9KyR+T9^K)Rdau zd?cu&S9`1o6xsvrYbPq{T(%+umiFw+6#4tt}=c3oQK#s=v2dETf|JhG~5uVp|MM?U69IN@LC#h6XTX1+? ziN8c9gx`@j&-BEesJbWU5OR>A{Twz^E{=9uj5Q_@^<(|+^#;w}ev#j-eOy)6Sf;=^ zfj_sT!Hp)_rhfOJC{oJLZd%%1_0MOdRFF&D+kEy=kmD=~Z_7cW-I`i;UA_kb&snJ2COLP&+BsV!ISQ+ZMN~9j<)5S9ReCYp zu?Zd_WAcue;@Nr*4*ig&hL~SgvU;X}+cB~W^~Me*suaBY5o5NG-W7H4f=qABXmL(G4Z8YY@I z7cfH$jv{<*aum%cOz%dlTBbl;t@PLb{BwLX)G1ztc%LQJ0#Yx_+)87%5+T2o=~^Py zY!>}qrMhui%*_(4TyvzmO_o1KzF?f><8jHsU#yL$aMci&a}BQhJVb`@(075A5HU(joy-yZ zrV|aP3oKPNp2)#}dx^zn|FN7m?e*`3&+3JEUIz<&(bLpl9Wb2!9y9RaWJkpWWNe1~ z+0eIm(ogv8*q`UqL-QtIuCbPq%AEy*9TKj-P$F9u0M9j7= zWa{AxLr28;rk<9;W`_3=TTfp~-jS2>f5AKfjP>F&)u^e%Uzyq(>i6-{dJ~IF&0+Ur z)8>*DHv9_woZd@a-`%VKv|jDVmym0j!Z{S$C&VWfYrJ+5ebLa#=L2Q7>uOyMc4io8AP}!4ynyV4JRM9zIkG~sHCMiZuVxwQ(wjG?9*rv?43)M+K zHLZ3Za=N?1T)f#IG|L+0rKsVlS0V+UXn7l@*~b5LMhkjfd2`z4VlAy(RI3%+R)_)%atW%6jQMsQ_Gz>H7FzOr1TNdmzo)GIJ!=EA+ z8MjNv0m7OL5BXNsdF%gy;+E;S8wT0~wyM(Hag6rQsv-aR>j7ts8j&i7TbF(ar93dK z-#8kp@laUrqDyx38{PO2znYgQm&l0K>x=yAzU+Q zdUfH@2tTV@x$l1<#RLCu`;(g-Z-NR!Hjo2_tHv=Ti?R|-rgNC03ycM)1299FY)Hi) zd^i!Oc|mH;LubAsHw%4xscLbGS0i%yzZ_&B$=PF#jYLN{$3z`5b^$yezh9x5Z+;Co z9eq1E{EBZV#X5B)5%j9SvU7{H=6w_1g4h7cP&H&Qpi$dZgj8jbMr0q-w6*A~hHo;H z<~ZSGk8Y4Ii5xkf)mKi1GRoDp_N!#jh6>dmr$`s25!Ls$&`;+}J}A>9nnP_}~}edCBYu>M7j z6nhrEA^Y$$-%jR?p7*D-UyTXmsX;Z#Ntpz*utyM~lt4Z^mC8~sbM;>3s_xZ}Gho8q zE*vVy6%<$hZhEK!D9am|V>ho{$iRP<@{A~_9 zKO|g{9lVTD|+Z-moP6Pdu@a8 zYV4$?KyJ!E>*EOI!iv3dYk{q*m9o&uz-N-9DW?oaaW4}sN|+iW-xsvov1JpbjbVJv zvhnkE+7g`#u+f}WeugJc?1P?>lAKgZqY8Y#Iw6qDBsuCeT*;Y`<@Ca`=mG+>IVIvH z+g^|(cyddBYglcO=KNz=W>!&ACi--Dyb9wCH!2nbS?!F#(XBt zj^j+-bI;=YF={#j{#un*3#;2S(UbqU?N~tJ{gr$A6Sb+tJHAfEgmBJ%{776Tx72Tn zIc~Z&qX#Rw3nuOIULd}yazclOKFZ+_cGZ?Bf#^T$d;8{Ptk?I-0hQlwcdfcFev^CB z2uor+1JA!*4VoHNe~ugtIC%~(n=Sl_CBPvKVedUAd5za&ML{Mp^(c|wSnXVG`FZ+< zO5yC6!#y*jc8+xx_bD-HwRK4XS8$zcWY%|)zCc<0C(Z+7OEQ9Y;*J9SoiHd=@k@7p zc%hQ5@Bs2_c?!A6bY|cMqDM23GT#(8vV-%#5Ssqk(~}vIzI<)L9}jbA#}Q%%zOSLx zJzAEVby`&K6ADcXeOSoTkg?|@?yP>RJ_aw=)&CBhA%o584_U-@)?JzY{Vnf2!(*j(52o`Y&NVy|w`mKlezfBuj*m8B7l!n!`a&~!cfU$K>= zLSiw(E^upbGzRZ@PAy=0Y_cUB18!GsiA{n?HV-$cz1XqOZwG-q{o16?yNy)p%;noR zM;IVMH=6d`%EiTrKbXhBtgCXten)3TWj8U)Pu>9;uh-2k6PE2*TR2>+l!%$=_DHns z4$03<&2>Yuq4)de+yQ1Y-!Lai z4vOV}uIC~c_y^7i&FDF&n6ugxaniJ;i-gk7hvsrJ^SXX@aX*mj8DQZmn*zW7rk;y- zOqA1nt$ly(g>27u`Cb_c-!Pvmm>lu3X@@O_BaE3nJ{=rH+2Lg6OygW6rXI}ROOWUg z6Ezo6{Y7w+FJOx}xH}{xJw(3%E=tG}a9Nv1Csh^P?uEU&3N~L6?W;)8iJo;ibJao8 zJ5Q`sZ-SIAj!rjpN@c3-P6u+nV;5Oj3cO)E$%rssFyQxgQcY)egEJgkDPrCl>5^$c zWWuJsORGrOF4eWNr8l??NEj&`9Z9C2S-nN zmix!LtF4oEs_6!-%)b2$PWV>C9m4^F6xK#-384YwIGAI))ut0cJB}T&k)i7&W^wdW z^8J!#+cs3-s_h7{NYWhdgDPc*dmhKemdDXG7hrAi!gml$h1a>CKCA5BoZI#YQg;d< z-+iu5Wxy7BTK%%XKlS@Dxw2g{MWyF1abNKw*_qR9(4t$~YJ%&Xm@lx{XU%j`GRF|rwnR{Bej+m@|Kia~vk?#ruhY;4fmvjpV*&=i~)}V~j#kc<|$ra9J6>HN| z+L;#TQ*+PSVKe{&L|*xaP;T}~PCE|io&?`K5VS<1Gp z*ocdd7!QwK^_$@AL(Fzu1(#vNLhv})X~T++?IHgV{bUA!kIoH{-f}q+TYTHDQ6z3= zC4f8g?B{sM_0svM_o3;TvF(b?a4VR7Bt0i!6B&1=QCA#@ zO&tH*Zoo^M#dOK!IyF71)%tmNPn<$1oqC*?z)uNDP<9ZN2Sz)&kUewV=I%G=yBY;l z_E48xo|o0oRPLDThKrtvGj=)NMn~@WeVFZGr^lv@zD%VRq+`8)Hr!KNu~Z&%BJ}~V zgDv|vH-{IabuH5*&eP(|SKjqtx?hSUZ)BnQ#pXQB{y_UXJGT67(}8$5rURgvObGHg zA>*=()ejX0mwF*7dsPOSo{SY|)%hCzH_h*V{SY4;ydyYHUiD^Qi|OOxMwHh^|GBwe zuheaNMQQNL@uaM#;P$AN=0|EvVY1g$Lh;3%17p1uA3EmP1sq2DcvAJu-V+1dogwv? zuA-M@epL;bOC&CN1~7Lj#b4KCxA~1hLYC&dFfZb2b>2pcR9)yBj9k(VYc~He_`X6d z*hers#ZzeF-Sgu*TRwzk&Ewd+)d~xUCyMQ``V@miA9)&hFg3U=tBG31HhiF$>wiX0 z$ZCNx)>@*;#yFG6BqP3`=v4B6=>;p8gCxG7?++I06SHb>&ioa7CXC#x z!T&tF{;YcIubI_QID$8FNd!cQJ8@rzI~KQ~AC7B*B0Px34xM)w_L#y7fRI_~ymN1T zjQMJD_IX_v^~M&HA=D4hwXSqJqbY%6)EB}xB}5IMGm)NB$M|9+EzOGN009P6DKRuA znKgatu#0+4_fzMkJGrM?ml)#pR(mVt8+>O|!rOzFwgQ{`#J)m7SBB)}VD~=QgJN9i zb_cq`^KTnjvgnD@0BeOdP=Qx;NHCvZt?==jOCC>^+2i!{lV_8(wTM@smu)V8nJBu+ z&~;iEyC>bLg$(?zp~djxZ9D3in;mEAT?;ycYdqR(E%h(<0l>pO7F&rA?{x(0{@LqpysCXWRC?LJ&x-jjd4tRkJCHj1M=z~<(Q{&Bgq~{S^ zY^e586Q);XS~sDrjEMPQExTCKuxe!H`82OOt*!D$5)z%+@^+elN;;JBdqus!1Gc0M zlrfm{!xQk|Yl$k=&X3@+&@1S7w_v0Fzj`em(lyl%`g=JI?xQUrDJ&l7L3G|3H137% zM#n@tMNd7w$jxT**P@nh$k6>u=I~y3-Hk zXV>y4G#AWu>tmK<9Fn-!(8eLEGQ#yH*b3}NpohX;j*8UCd!&ncz#X@!kNV}>c#Nm6p$2Tl z$8?dGNVLjV`B^F=Urj>LvK={AYJp&u>s)d`H7oTf(-CBE;2YvU!;(8PxccZN_ zpO?zGtr#>U8e%i8xA`ttNthmSDik7T8C%`Js-&&056B#=L2*!Lv97wZ~~sN3VN z7o)^GT+cHrYEx3JC+v=@P9u$yH0E|xlf^jMAo`_2zC2x;a40&)g2L(AH-|5?-&@7< zDV;E<8_W96E~B;g?Y{J9T5pA>3kwP;S2mlV1k|Vjk#>{dBIl9@qp1ZNn}3WQvBEm< zsfC192T(Y>oYJ3-rl{0Tm!>K)XnGt=?5b?2f+hm((RIEo4t!Gn_cUpAJ@o^bt!cK9 z{S7(-uYC!luQG&=r82a+B&6c%5`CVM7_#ft9DQm_E0AIap6;tJ9JJn0hD`S!pW!@) z4w-NI7-W^@13}%rmbovx7K`bTNy_0L?n9OX^uF9`O`2LAGBSTE_zmw(RXlNR(s4$5 zt+D!Do)%^SlG~inl>>biFP#`n=xzmhS071*6MwrU;M2U?tNc91+-5vXGvtKf43+S4 zRro~6?)6@K=}-EWF71g>X&OMLv=N|UKlX>f_j+Z9c#YFDA##x0_z&s^6mv?l`SOrZ@ z^VrzySiuyq<0Hp4uNHhV7!Ux`qCHdL1bKf&n`~`}xVaDbsTA3XqEN)P^TV3cAc6yl z>=?k17aScl=$cCBSx>HI7h#fDVYPC5sv|!FR78TP0VA7e8k$5cwf-%tBcIBq&x(nG z>Q4??6U@gQHxD)X0HCr5*)f|mZns;ZQH?ZT@OgFerw#E&D#_kb>7OmF+jq90Tj8k5s ziQW5ksO#SxA>uA$j48@_aYPqU--w0nwvcM%X=rW$!)B?RChUal7svF~oz|rqxa7sN z@G~nG;ovk-hzjqALNjIK3Ml+zs{d&dmYFiRWOO-2eL_s5+xb+oCDZwgkg z`ifcKC7Q_8fO0B;Mb74%!P*qt57eB;Vs>Cu?ZMv(8o|I4=S_ zNm$x+!huavNI{p6xCwLLt_R{$VdX$>-Q#nvl{u!z%*~#76t9-;_uF}fUR_P#ETg~b zsE6GF-#_u-{6ZATVMq*0&qkl^li|9AW)rgkn6U}exbGwni4pNiN*ug%;F6k(3X*P+ zRShF11zCh&jB z;ES%;6u~&0Kw`W=m$gC^qX9}nB9zx18yXq0y1GFnh+ue^ohL`6TE+Q->tT{hWj$21 zIV1dXzt{xSZoM{WoagCGnrfCaX{M|zkivQU9Tf>5CSHDaN=yKFJ#CPK-Ik{`!oyET zAOLMJ3afncVO0fow@Z-o$^`H9i-U?xWOXn{ZlQ?(>o|MY^(i6Md1GDmsUy-ShTmjU zS^1tC5LgmGFlVKdnuTfz^Wc`aL46&$u6ix{lr}h}oh`)pX*Q?Z^SI;uruBfO;7Up2 zmd)?(x~fGE-pMTDHE6BDZ3qX=80s^QX5=E)pB8c?A}))fG)@{PaG0Lo#w#7CikE7; zRhOY-MAyK}hLAtlJ_x2ThbA3IzMfhjmG?o}WLRV1TT>VOgvGs%nk2%u!XR zaRIc~J#98mA6|=KW;jHzRFX$kD;Q@|)9GQd)>p5{hp3&(PSUH5IiIuH2YgqJ*@eSW zr?kO;GpCM!zsg>omdX%PBaQ1-s;zChj4jowVv2yLr_efHdc6iy+`nn=C+^kbc}6wL z_$^?HpAfa+ZWQ1*t#@dySGwY>-9teU<8*kIB?Y!31k;Md%a`rReNa&%jjVT6}4OW055tm{X^yh33h6~ zadb6O&o3|qHB5H?WU4z;6_7towYoXs1Y-n_S<$%B=hAuA7*;(Y()F6?dlGzoU$NOv z(rRE1=!EWvnUuaHaA;(}gp<#QD=XtFOUw{u|J4d{j4wO_TcEl_eoiR5@K(&gM)I@h z`CUeQ1h}!{ll^w4Tw=N-I6$hf8He|@)G!LqV{Ol6lw-epO4=zTuKp$9+cjh@*x!7W z-{)-Sb7!8g)4D!OjdyO}4lH`Mlg9&$UHaWGoUs!eS|#rd>Y>Ok3uBt4wDPa|bJ=te zLj$#?CYu#G=Bg_Y&6$>JTS@#Y_(g$dZ4g$R#~NpHZXhr(g5;qB65RCp-iYi+B~T== zJyO*lTKqD>!5@2KmsWaii~jr2XuNf7c_iTk{J6p3pT9D^qnLl`^YZetj#@N4>C;#K zy#Psqpi#x1ixHu1yFLF46OJK_6P6_Z34J47;jz$nZmg4&+Bdo8^Of35ZVi{mk1MJf zr&z()OYG_a?1ozN{a~ugxHih1C3Ye^cAr`-_tg4Im`fp>YJ|xV!Wl`7@K5LGC3tAE zs?Vad_XnfHKdDJ&H4S80GAC^Gq^g>Tp0Zh}A>Pa1Q#9+QHWX~l>_Dp(@88-EUihI` zU*&ivpzGU0fPCl#el3{w;J%4+gMjE!y@IH<;5J&ExSif<8syOhA%j#795^mx*}p#6 z7r%XdXQ9^$Q_R-;*;csl{%HZc2^n+gv*!k>Z`aETYNU0Mu_M}zw({pk8tmdFkDpFT z>y4jrY1Md(vj2wja)}tg8zgbaPIxvwBe2XU5%1}^aht!M9jx@ZHY`f$ztGBxt+(!B zA8(E;eFZk%=;Ma8sj@aD2zD<}IqyOKtMX7`W)Pl89=*w$D;VHeuTtEPEaueW(VB3BtgAiugh z=H&Y9p3dpMBl#_~4nivT^L!gVRN+`I<@@BC*JR%NZzWWpCwNn85vPW#bgxJ@t>QjJ z(%mx{F(hiSP5!2RXSZ$BrFnS(81z;NAscjS{ihLY4ipD`ONMnHR) zzk4|Bb-|^lFkDFTjREyzIGdud@aP5mAGHku7^5q&&1 z9TF|?$j&9>xW~`s*`nP(F-$p)fkJm>?n+g@SzbQ7dxyI-oRFpljGCwgX2!4j@N6ns z2wqPU>u{z2Y;v$j+=F%_egImKev^=I^AXmOp|N6tuwSCLf)H*3Cf~=QDvBe+umhu8*3HxpuobFg2r0w1f1S2)n*RNW6{GYLbaK)RT5!_%c=wuAVVn0uFAH!4 zU*~US*xiqOR|GiU9b|4Ac1;+bHkzK7nN;4sj$FF@de~i2dijX1ZnL=WP`)tTxr!aO zKQA7O-uFXj3=7w@hKX78id@&XmfY{DF5&Xu1gh(bkNL*9-4bK2!{Ea8*}W1*Fe}`6Viwj~5i&RZl$V z{}Kvr`RS<-x)1s_?RoNMijZkWAzv#fS^d^P!pysD^yzyN0Te?t$dj9IelpoCVM8@L z928tn92_NlEYceu&lbr?t2?KXTZ9WDQOofx-T<0gl^3N5q{V+y56F0)(*l@9kgHOv zd+W5nFM1lpnAs?mpu7>|_QUI-So$qFa$$ktZ+DbakdDq=_MB^#J0YAirp~`HBSy(bb%1FFMy1B_{_rMq2FQ~hBext_#9Z+ zZh-&n2+A}TRjL;`Smm3$ly6X*b)M-~h!u@R{lVP03^X@}XDDJN-b+I7afYxsIjBAu`8-kUc-FwwAYnbZcEz|R8ic2*J zAWh)f(FMY*1sZOA>KpmaHPqG)TX)Fe5cXZRtnJ6rOl7sDEPm;`!<)05DA*ec^Y)yS z^lj1X19IWpGZ0F}kz*x|cN##AI=}d#_u|6B!}~nccwf$Y#lS)bxtvd{7Cj#Ps#9Xq z>{@37`Cf{8kkPL~i_?RYNOKmjLj0m!-rexT{w+lysrXi3u*^z9_=CPJjoQn;_8mj7 zJei9$&b##z!EgN#fTY^WEI8l*u)RWUj0;W+XHP2{K^&Uf&WT`!6{?c#B2ADE3-~b z)J6uGKzy z$tRnP88X2>nEXG`jiNjNQ4?|*^xf9>R4NJ%RDGnSd|oY*z1byi4Ka58RR^hL6}G}^ z_ogj@lw$JTF=zwK>s0C~KeZBxM}C?l$~;AGBjd9STE7wOBdx6CRti-sNUi^|@$LDX ziuV4z5V>^!GRMDa$FI0Js?vZ4=1cQ10TY(!<#@X35!90?Dgea5>{cFuiRADF_crT; z(d=Zz;p3|Zr;>h>55{AkKL|&Aq~5sKQhC^Y_9f=VkWX2#nD(4uX?DjMyz^5j_YBjB6-Bi( zPl-KM*XFxnw*|g3JBjEN9TZ5lJ;68UiB-g*F0ac*XESsejpBMnhTW+bn3MtsEB;1T zh`Rj}Elj2QtdwLF9b9kiS|K1Kpo=H3ar5vN0bS{nINt%@mV{{@I)vJ|NYZ!~a*3j$ zGq8>rgeh#ms9Q?Dv-{>@xy{z`GF6d=?+I$HN&qcIn)}`H3V_9X)`DG3xgY`>6agga zsbt>;&Y?U|9R*fv=KR%{Qc(+W#w!KSB|X%Rt6Dd0Z9neYcFALV%?0i1_?0S%G}miK zdQdHkXT-0jMT{YB;O3g&F!R`D?ro`Dhq8f}pCXMcx9@t?W|>O0MsV3@bO&Xmhl$Mm zaGQs#WZy*%Jw%@gb3qsVzWlzw?<_-&#^L+*u4|Qy)4%Eeij(}+rrGR%9S(I*_}$Q# zirU;0g|LWmeaBTwk){d1$ijD9PfplJI{yQleiqNz?{}3COHBVB$}f9~%Q6a6=}-|^ z+qVZct9~PW^Z$vG;j<%x{7|x2`NX}PU=C8UA6zPkw(l0Cp3}bFL+!R%>SrYJ68qc#S8H)=AJhBviOZm zlE$Mh0os4#rf3iLf>*>TyC5XfLW!7sK zZBZd;c7GK5r)g33H)~PL{B4x`Bnn!e$bU7KVOw=t@Tw0-d4`UeE1Q*7F$O5EN>r4n zQ46B!Q>2&h3w5wU`x4&XyuS6+)OT|=<5>ExH9mFQ$=!h2(<5sQp62}TPFg`NcsCJ{ z9dq68=HcF?fH#^wB0BWf&IAlwk^=~U<7rD2+7FBp!m~k-QSHE1pp5~a--D*>&Qlu; zu10OBkkLADW--t#4JQ4Xjyb))`K>@h$Cm3_AOan*>M4bzzjlPJiLzZv;s4e>ROk>R zEag*9p1Mi*^ceQC_$YPaYJk%MXz=FLTxk(&#sr+f?f6^Ft`1$n>qWVZg1Ce!PhRW1f2fAQl?Di z?^>#RL>$Yhl)~+QN-F%9ea2|{4-WKN3)b|$_K8``sKIx8X)e*#rUE-g@azDl3=gGp zjH8d40o$W2LSeq^Qd*nqtv7!7r8?1>8XwpD^~4ZEGQP6e@-o5cTwDM{-(8;B=_2Ks zu2OM0m}JX$4v#E-I;e$b*OtTtejG7jF1qmlB-j-`Z=M(k$u9%nUa9R@`96%Zpr@kg zbYYduL0}1QhLciJmx3ii=`H#Q6iOr7qycsleOU)(rf}qL_I~(jzzO>H2(#67RtACm$VmJx zau|ZvRs+D_ek&<2%bnWSXJg#EmTbIq?a!(;LvvMRV^l&$am7{!{FOA>v14G;jh_>0x&|%8aITwPs+tdILACi&^(|Pt$)DTiia)By2DUJF5a0y@ znHqm0YWPH>98=4w1itN}7S(>?RH5yApRLmy#}VQ)wFU8s_LDiZmw_eL{it(5p z`CcCIyVIy)F7^0QMU`4F_`Y)0O5Ti{+!rU7B8KF#gGspj`)&60B{(D4uCu;e2ct<(X3`uB7Xex?R9%946w z#Cud*m%+@7#J(oEJX{ub?Vm`*;`Er0fpuXmb9jA#1Z;PI`iSFFR*Z*-0E>HJcQZ6< zRF~4_sBcSeFC6R2`JOC}Xe8FeV4Wtf{!#-8(b1E8^mzSuHB~;HF0uAzyT(jy)DBU{sbDiw&B&SXDSe> z^>%Fv-8E{XlE{2a+;Q@yXqbP`w||^1hC|x_MfQK;-)Pf6X!zrSE%Tp1&jrsZI(=K! z2`r|y$V_rQn0fKhcWm(QHuliZYtkya6WB-;uA=x#X$U##n`qtRV7+%ITk68B_)ZhX z?O%Mul64ZXV_J!g@v2$275UaE4bv5RkTR7y#J#{$+_bGA!Osv1fR)6;@iW9Dbl;T9fH_c!3`A`|E>s5-~wKl1q%OUJWiW zkesZ~8@r)Of8ZDtJE|D7-X-VJ_PA8)!R{T)FQL{SKj9Zd^_PYNNu1!@%^?@BE6+Ub zC?8z6$}Swjt|n`^$Z!c{^V58*C!Q@<-r$huz_!(`&{eiJA_jvP;s>PsJ%A z`US2&0&-wI93ze-C;P*r&BtrL`w;w%!kdu=^XK`_75R64_qrFZ+;fT99UtLD!KtFh zcQK@Gm#b3W-v_+S#T7nPjC5V0N^j(oi;~@Jx0k5@K_CCcFp%-tT|ZwMS><0+GG{}K zlk0|s&kr{f#&jO8I%c2d88w+O5eeL6#HM{$9=}Wf zJ~^ihDCpIb(s;1;Vl3;(BBNv!6XxL$H3q1D9a1BC(fkzK3ZEJas;jSQ5*S~iyr&I9| zCjK(-BX2A06q@63HEGMcJ*qVmGVY2y0;~r^O9-}x{P;{zF;;gzv&Iii!x_i0tJQ) z+5uyeB76b-xO#LB1g{S!^$+*DVnf88`6RP}X77_L8sFJU2^#zC% zR3RA!8d`MlX&zW?gVi+u#Wwopq@|OfP!J%+$z1LPi5(fJLB5_eb-Pe~4f)2;nYA$e z1`;kWG=ZgaX|kCw&(E4Kklh@!*;gz~fJuWe!kZ}ei{Frp{TXRgXusq3FE_TTO?}?= zFXhxtUr37tr|gqU+%|wnghFWF59`Cud*Ef{ZJ7(dVwz@B9l=qFqDG`4s6Qm|Xk3$b zWE;T#W^L{0_2P${tz!y!CCA~c8#*C={Ui*EfcH3YMMbl~(4V!K{md$aHAEO~IM$fZ zG6NA%y6l~vq8gK{6Iiw_AYCw57*eLj-;W!Wvb!{V$6RsYCV z6&ULbeX=m#UC=V^UN3ujsc@TJxhA>+$YvfZ^yg`yUvx+vo+t71|4`)8R`qb|AI2x0 zO>pp4wN3YBHYHqx?=ndsX9#XIDW%if*Mjz5KlaP8Vr zLIJe*HS`oMo8C~DMu~28OtfA9c%Le*!86M8aLgs{o#cW_7>EFKEs4W%I0>H!ld^#yk#K$2Ot8Es+;%aT0K zN<*e*KqR^`CeEcGYUp_g?8u^U>g9<7^C6yXchGuG_J37wX>jf;b#HBIt+4B86LpTE zK}Oj&D@V7Ta><>dPP`~Q#UXg88V6K2dH)pqdev~H@}-e(kLan9M$L!-RF-G{(*x$I z6Sh)8Z#2Z>*W2q)DbS}~^miVece+dP5cg^f(K_iPP~Ur}|DXD->s!2}P5aV`kf8pm zLaz()(mY$X`^fp+A)1&+KH27+mPtck?~1jAOFn7aNlmq6;Vbl#o@U}8T6gwf+c9Q= zUk5=~Apv}axMuM4(vF*BkyQ%q!BVFqh|^EMqsx%w8TlTn?DEvZn|thrY1nr+b#)Deu<0ePE(N!(}Y0-M6)}0_ED@U z=W~jvl|sUip2ii(`@hi_`%b6_Y@#mm)J6Ma?TY=^Ew#$IFhT@QZkAgfUF8 zqfx~dhXjB!#4-8788huc-3}-W&n}{xL5ih~gZ0kC5p~dAR8lSY^5^r{|M78kfC5Cy zB0oTN?!J?`60~Io|Md>~>6%b=Re_PnuoVQI;pj}K{%Js_~ zI=zp0rPy%!2Dm3Z0 zLv|ElfoG;`(N47aqvPkyaW`Y9PM;@cn~fnv>q_F~^B1L`iTeLr>lx~OZxP?MJ8oHx zdi9A{g%n(4O-Y82nEZohi?oKDG~KjjPlqRJ=F?Ff&>^A6+`{dVwUbv2hCqbu8WpG2f0gq`m=&)#;t%a1ZE-)SYxxj1LYOoifUc+zU$<1ZhAl$X>{C! z{LX=Yu2x|&)Lsz`I!SPSZAkUxJZTDvLK?s!Xh}+ku;mutN;1LaFE!ZI#}Qavhb*TI zVT>*$jbA%=bM-`V<<%VcsMjk_Tm)xL8Nva5PK{ot-6(HqQE{LJrQZ#fl1PH`;%8`# zK!a{g14T~Rzv~T;c-yYp`!2YCWJIF4pMNqIoMx)5fsnN)uxXulF1R?%ru)cJt`ZBY zwvnw}cH@?ctK_^wGTHjoRGKyCHoWdBCRXAT!{-jPK+=x-;2yZFcS{AC^^v7ZeV`Ip zXxBqM<8%!;TR?!4PEXsQncWtgAv!u9@;==k{c+i4uEu==+usvZ-591~U$4YKodvnw zF)h9+CU{(}nWN*l?EmQ8B?xiK2|RBrCu<8h?-Vf;W=0LFVQi-^ZzkyI5px>R@Q)9sOtwqh`ZYvda4TBd;9zK7_BLged^R&zV0NdA9 z)CVKL~xoyye(;?p0H^FZ!zx7$JhbOV+Y?8Rwqqk!RK9th9V~@6{ZCCa26)De? z6GaX4?b2LK@s(aN{|Cw|oM}wmxA#`9aWH#E-}(=Pw?1&@b*L-@NAX^(exi$Vf8!co zEherK$ayU^#pNV_?`I|tnuIu&nM+3h|3F-===kOMm8KZgeKIPeL@Z>I5qv3{?>><& zYpt?UNGYu=Yh6nDQKzj;8iYeIfy%JY3q?AXG|5pWgk0P$#n*Ld5*PIpbmPBi08j6q zjTuEJMHG3P`$Te6?M)7lXu*|aGoZxtK4VxmC=#n8_elA1ubR2@%H=f50A!__xmI{G zGES`mXFgI}B9r9DAi`B_qjwDEU0O%=CM*JaKZf*a>EiS-U}Wq z0imcetgr6}WBl*S)IxvfcIk5D5Hbzf(+Yh^Sb;g?hLgQDcx5lkubX$>n9WkH;k`sHjstf$ z@r~fzj02>6BKwl`3@dR;pU`$7`Cph3nU&gIlp1&@+mKfbC-f^@mR6zhVyVjQN}Plj zs#_jsOq-r>!Jbv{Lz|6TK99M0dab)kK@9u*QSwQHwQY~K%L56R6bs@eK^mbZtR^&OpxuNZ(V`? z7Uc2n^l@vr+py{p)V2!S<;-v^y?l7tb-q&tDiFXB4;$QcazXY~`xHS$c+oA|;~vuW zEIu@{#+y@|wJN`P**xntUjots;&~?UDyfdObOhI?-ojskWbTy$l1u zEwdHe(m~bu|FHbT=@OAUb>*{7#x#hmSsd)$G^}dS1E{ z5WHn#(%vCedb5n!NQ#6GMo zD|vT@kb9G&3slEII>(J?Qt_$J#NVG7eF$#gLLPZ#6KY8?M1D- zRV!~$i)ZR7Q-RCB(4CIcDD(bJl$xGP{$EyC_y>o$(yA7yEB|F&GrB4@w>hNDB4RZrk1$tg z9H;;tq<|Fhb5xX*Sxv*QElnRYe!;p^@yeIxHYg+lnUwxJ_9ZFka7C{_u42k6GEi~F@sH-ze6dpZq{Lj)!_Tb_yuUmc$;~@kDv<%uPX38A5Va)D zuCF=$)WzDE&!+obgOL;I(j@O2a?iCeL6};!b^MNXsiN8{;EA`^fnRr)?Y8ECxFf0u?s)*;ROQRHE=2 zPlmITOucQloH=moZ#g@KQRcgKA2)hq<;ew?Z@X&Gpi-F_G6mT^X+3T%TDw&E+`pCF z_l-D3Kka&`T9SDpe}dpN;v>sy=GoJ?(&!VRS{X~SX;G7-@H*5R>7lqf(y5N08=YVv zW=}k3q&Twrmw!#u3Iy)rU3bc-L>(iA_OI1ym>Exz=}#);WYAbQX?eCns95Yb**2vU zTIWC%aoF(PK#G;2l^94$vW5R-=$piJaEoJ$mM1Sc;G4P3P$KT+U41*ae1qFPSaPkf zfa!W!uF@0H*<(dDAB@BkvwoFnT1`rmZXSLITY^5@vUh0Bwm9+8Uwi3MjJiqyZ?jef zhkZo-lNhTXh{j={8S_BT;bvOx36 z?)46j1kude_3djV0OV!s0xw^LJW{J-_nNn402l5DjS}3arnO=56z!Qx31P7V>iKn1 zUY+8fgilQ7slcxT%5xRov}k5N$iFWNSD0&teKH1U7y@8)-Vvp;cV>uj4XCpip<=1H zh_NqT^Jj3%x$hUmxhxGk*WpJ<17hQXgmpFdiaUWM& zOFEuGsOSa`E3Zgs1TQsbNXsTE^m?b-%{wZV73~G#3kG+7NQte)t<$(UFOrQm5G+bg z9Utw)V3fx*Y^63_W#!R@pCiL2UxGHTZym`l$fZD&|5?rdls#RVZ1FmnQdD{YoK3C= zA4_`3wQqF7K1N+l6K5FODAFoA#JnTrd$`j%a++;*+R4DAIrpv4>3Tht0Z_QW!u!Z7 z$xnLi%JP=s=56hrMB*5jA2xZh^_Oc{X%l15exz;>TJn@z(f+Zd7;O^I(B>u4&UsNo z-kHHSy@uX;3q@=wE45TZ3V+SqjS3GV7uZcK^C$jWYc00c+@GcAwdZJzOXG5Bu0bv- zM%3u%DIZNsny{mPyFByk^nXKHug{he?NL+f^~iemOk*zZRR^v1LbZH^a_~8g)a~ab zO?}JXMC}9k%F|yOnzt|WjNf|mR>x!kK%siCndnjpm!b4M_z(Khv#zKwCx1NCrcKih z$oij2H%j)mkr7TNA>1cZl3fv+!2kHF@$|4T&LB+Kr&GrL%TYtj$meg;B+OfbHbl+U z#m|pq8gsbqn%BHZHYXdBdNp3C6pfxMzMd0%8UO3uXw+pTQja`S^Luay!VEKh`BdPg zpfU?-elZ*rwQghwKax_GujS9+@=Uq;F0H|IF0S%3C>PMfDo@eSJ`iR;ePm11w*LlK zyE>B7bgI1ZLo+md;kd5hv)v@-Iwx0sPp`Xg-!U)JC<*pe=e-v18J*s zMTdimLr7&v6fST_rO6yIvgtXOlFjR_$xX_v;VvEmb*?{`m=doy5@t2 zT!7tZ9W9mYoP@Jc^so8l$+vmLkWteEKTVTiruS`9OX@kLf1NW)KnL?uTQ1u$|HF{W|N zX26hBhq2gUD&va33D5`>BCS`41!f0tql2YR>3i#GIQRu#DrRPGP|GJ!;uyEl?MY%O z;GDz@kPRdzbdh)SzkLV5i&XlwKV+AJHSQZAkpr|eb3U4Eoi@KK>2{$dJ>(r6zHe7Z zb)={h+S891Zy0H_UtcSz3kXo1p6ehr#i=Z-I?aONkwex8l5?H41{yvx=#wv+ne`XB41Q)djR<)`-}cU@k}LoLw?hn(&kDQ&rpjdC&l#;G?5%A5PN`rK#)e5jK$~pla}5eJkM6_#lPe`74`(cV7tq4+li=LRIHy4G>N{+NxEz zKBcQj=ChxlGP)W5*OVRKdK27D#@OBWe=PYfJcp7B5D=H}Yqwn(!BL6UcRWjsu8fI$ zeMjE-+@hy7kU#f0RJN(}QhGoqLaD*?dM_vQb!_u_hmV?V2(`9%A(__{4MaKQ^`rUR ztIowwhvI&D+`5hXYH{kam|;-Y{2$X5hfj;whA-vf)HyfaEl?b45{+Dc8y4ht{8OA{ zLR^h{_z1C)@78=5aj|U9TJvecV`BMXjBRJwz>f`PbN!8i;*#z#%6-R~w=Li&&kwhK zjdcX9l)J{`FEv%TZT(PO>6J9^(s{*m*w@Ii^DY%K2^+79f(k8YFBOS66N9>g1KagN zZW?2N@>Z5yZnHKnaLmD6u5hLph1Bbc5LJ%U-L{x=LZdlTado`;q?uyFb4184b82-G z0FXk^k7eld)GPVE8zxLn*pWk@cu9DC&&EHg;+A7#U9#(YA{8v#{l2e3Sz@yYam{?4fT!x|Z`~K`C zbNQ_vipJ~v1y&x97${QI(_mxtZH*|XYGN-)rmmKY$$oyq>>LYLwL$d}K?j_2iqN^Ss*>r>At~RMuY%z{ML<=zIzxvWua~S&H(%11&!o%Y_<{R)@psae z5$8;>-kBXuiKiF>HITjmX2PW)GnbUEtx`ir!2f;hKdg_b4Vi@9_uHOk$anvmGJ)FG zZH%S+Nsk^gq{pp$NE^L~q+`VPINYczaEs{L*vABKC`+$11jq?m3#I2On{9cNYHnzw zzvn)rdYnGFUQ@EF48%qv4LRt*)C%k+>D{OYFW;K!jsM$UxzpIus$(GT^+oNcCw1+G zZeTWw2ns@J@!`7n-Z-uoubQe4VKviM13wo zy&0(XuSg4VUf9KM$L9>8|C2emAC59)L3qam`QUKmT)A@B8>?F(Y z4!A@1j3E#rU2p82%{ohdL@_~H_DCPsXH@TKFaBYf9|C}CUIP1(cNW=Bm27#;oQSJk zk-gai{!3*&19aYG6F9GkxXpdRsv264yFOxgDt`dl?_s={gdV}5uQY1t!t2_LeZ1S( zkI{L}ob|S~;s?)&L`iqn(65y6vT>G$bo%HJDgpC1I#WLi@ALB!#cF6j}TXqliXJ-9zH)~J?m1@n~1ehDtm93&8{nzvrPR1OEee`(&vaj_O9NA3UY2Pt|;P&j5 zZcCkZVSDggTg2@;8-KB=D3eC7oztE)f@kNyL%4na8tcv{u82!*ygK>v=C?QZmIEuZ(w{ zee@%sDTUsk4jP4sxC}CS&l)B)7ND})~o4@qj20d`1Euw0;^v}+@iT0141~!O0N&Xtumrbm33vE|R zzeh8)|C%IFLLbt*eIKlCVJ=%x*4tq$Pap9zc?}8N#{T)Eai{Q5m8iyGWz(X?YpXZ+ zqVqdP=u^WqGUbEm4e?d<5yV|Hk&k^A(41Kb^eTxzqI!M#*RD;285U8sXM95YknTg8 zBm!qdLuam#Bu~D*-5?AijE?F(8Olhzws_#PS1;U7!BgVK@1&is=Y33MTw>-GSlx2z zkQa7`&u3mY6mI!Uj?`>R5Ul*;&(Hkiki8rDcgY##ExB*A%#H*=wtHS0#092D13|Zt zPuebxPIllfSDr~N8r3uYEB|#=CeMGHzN52pmWw_NX3EOT5)Y)m#3*r&R!esWEP21B*$d}Et>Paq`0V)|o^Il_}Pi+6u)D}-692o(EFo>0^%T?9TQ$?W(N~bhSF$1>wsB4dKA2> zl?&Q`n_)PrcY0L+b%0D1MQtGy8<;D^-d)0PyDa?74V~-dAB*y5ouq@QztzV#f5D&i7N#`sGi@BKO!2E}om&Q8&8! z^9#b*MLBhAd^4mY*J$^JcDRQKHwkGULfVVFcr3!3dG&XD#3hPq7HTr63QuS7tm) zM3vUNgb2t4lU29Kv5fF#-BV#B7LdDq4+4N24$qm07)m9hvgt?{j=j`o{{1e2KTt&F} z%r!M10bB-EcDzb>ZgHAaAq;;U{4qZtEi~m3-_|*dzN(Z5(1B>jd%en-o?%_+`a8eC z6qWjWLz-K|T-J8b<4f z=RfFsr222)ydEcCX&#YUp9ayA#!>H!+zu~S+}gcGKryTp?9H`y7TQ_vI^$jK2Im!} zGhsZvWFuo-fB)0S6^(WggyRn(!75rs?=T~d>QE&V9H`eG+`W@zaqTe2@or4^zI>Dy zD`pT@f8uz=*^HD6`r&<(X&Pop^Rkqt%i#=hGqk%0Ac;+g>Q#tVpd#Y@&ra2E@CwoZGlt}UmqooV<($zZ+ zr-40gN-O@`tfeLF=vi%$2B@-s zvM8%we|AEHOiE>E)Y)o@%AU4uKZimVO3zjFhdROcmOwIxtkBm@s@Jt~dQB%7LeWepAe=Anh4lIsN9HXXof z?p_8F>9x*7+kLZNN<{AacK+xA3iqPO3(i`PiR+#e>q4S;@BsgKxSefYxn(o6;K;?W z6|6xaa*di>v5^2+X-9u7xAhbMgGWkkOoqHpA)S0-bqz!CT=Z&z4=KkOr7~g9)qJ^c zKs(w8Tty14UY`6zl&$#%=fjaj2vTwg}vuOKzwArCY zw4}ycZ5A(wSYP=8N)fM39sRBYsB!Vd1Xy*JS{66#v+fM>v8C_v$1OUT){|v=S{*sc z+;9|A)Lt9TYTd&@Ki%Xy2{}X9QmGrT3vHnksFl%&U;ABGr{@ zzFp@&yJz(p+Q+ktk)qUeuL!xP)Zs3Rs@qEmDG?v0iV28x%tM+`L=E`5%Mr#ULSYew zW$Pa}A_yP{N=Rk7e@M)bI|T~eWvsmHW2+#{$m4L8d2a~O*#Bsk?WFkEWHo)-u1&-1 zQ9D2eHTz?l=4GfsD>o!t(JV9AwxY2mr>|Z!KQ>g2!V9*4+#Q47Hxr`O-2^uXxD$({ za#M+oZ?=d*WmTa& z+kC`zmP|WZ7_~^cOcVa4`+qF5pKJBlm$fQCS++EpQuf0Icd?(=($~NpwffKe%5<{b z_$Fb`THrJLSaPDM&dJ`eSRXPZ#<>j9Yn0kkbWR?b7fsRF>570{mUu)NGas%tBs72l z8I$~~6J9Ne`!4J8#dR6g1HeW8ulZgwdioH) z=C2!W6RWYaHBI%pV_W-4=c+wgQB`);tNr`Xu=d=e6EIvJ!p5MQ=i*T6+}(q5lFb{k zZNKm#2&)D;4o+5Ceso%H=E)+x{eH~52PV|dtcEUHhZWCum7$X(nEHyj=u8Z<%&ek* z*8GGI9PzBgoJ&$&=Av1oY&D4i(+rA_SYg|{E~`Qt&pNYbkj0JV(!6GyJOv>728BYc z*r~6J&-^vcX|*smueoy9ZWO8Y^uMs12Hl%VE%}fEm!Pd*INn1aU8zQPYo& zT;Cw|r= zi5I!I9?SoO%lGbyWfu?i*6aM2)Lz#gQ*+iVwpC??7J$otNSg4`)!Ei+`~G#tC>XDO z{O=dj-mKNv&tKda`EEkN3=*Y@zpZ5ioHT_#Bl!vHr=~A9gGa)40SEG2MC%(Iwyt#g zkHOfN62^mXs|+|3Zn7;skL%==;@7>=rS%&zKdk~e1EWA)j{V=4+C^++E!>|K2Kwb> z=l|QF9_(||w_4wUwxss6o}K^n2F5cYPp}yCpkh86{(KtyF_~bYAt|EOdG}K+$L=3- zMazJck2gjfOyzmg=AQ@t8+~;?;WC=Ylkp4^SuPn~?mD4*G^EfUHXvb4hs-A=;4HM; z-8ZtAqEkYm7&i|8RjIdMCG1PnM&)QIgSN6lbEX)BEwTh&+SsZH#xoP7bQs|MG!M|<} zx^;Yu>~}-RjtG>iU>8pgl|H`=V>PET5oVYuPPV`-+uiXr5kq%&*gME`Ew9iLx;hm# zQ0qQwTZ3zUvpZwyKGWW0u@Y*r^57gmINwH6jwQ2)twi6%<-BE@b{bGCr%P2l$H$|5 zvP$lw`^}2qfbu@xTcYbCf5@$@bgx=x=d`)vT;?y@Ia#Fl={b$&N?Ne zOsj9haOIju0SCCm9yop6h|kC%(bZ+ z>T1NLN_7~c)9TqqtkJF&!V`TbI*i56_=Q3sX76+K1cIDmg(9DjUxeN~?OES%?ODL$ z^hqPWN`Bx(hKV>={lK^+uYTYwa_>#Y5PzdrMHyn#@l}E1Sb`8EsfbF zSs*A(Z754HVqTr!`>SZG^OBOYPN|cx$$)RBLC?LEjj{AsosWG+CD3=YpXeKLWz{NG z^(It3=JM{Wn=+af5G$;9lTU%ji*vRaa;tCoeu)>WxoUeR(fSw0;+5VI z_ats(e5z)ps_vMfrZ9R~uIwG!yERq3EdxEALaZju zXORBP6&jz8HOs-go8jdBqj|aEj_~kzM!$Xf{RwBc^6PggiCsP+U%6Rf^t>n72%Te_ zO=;VEGEMKYW>LM$(pR25j%m8s+6VezOkUuGyfZac4KAUV2Rgk27u$p2At_xd6dHAc zALXNU(gW4hs`0~K>%l5=m_QCF3WB${1Uoj2!PFsN((1=cg-$$>@9DH+B$J`6z}i+G ze=So9ulp3!*mC4u8YFML!;=}4u zMGBAm4DkhG`X1*s-7nc4^vsC>@<|Ix;1{4$CWi{hW=+B zdr4WJDSwP}_R`<{2C2Ga*OK!J6im%TYZh19<=PG-DMd*}1CNGT^J!7EM3)f%2j_2w zf{%6c@9`@&Ot|nOYu~yktIrlG*1n1ZI_6=v<{C^QxXGZJ*cZqqLe(d`!w%L8qC;Rcbk=o7J88!L}#YZ~0nrJGb;3jf^ zfFAG+@@J1>O`dGH(!?2;!4ykq&U*zO3N~lfJj?l)3trAdSxcMoTu~e;hr&(}Yn&Pb zTeV-EqMm;-C^iVX9=XdshJ+N)2sMt}oWzGzy77Jc;0dvJS-QSZu z3`GU0+l&EOixd@`m^rg=en-ZEg>5Xdj|lVjlGp7gH<2ZkVp-JCPxh-+f9NafsY>Cf z|2#A8WQm6h^kX5c+Q_e-gXanJ2o!b|zn&}g!8_RQ8xnzipN`S6oJg;}As>NuL3`|} zL;C0H+PGoD$!EKYAYTXh04QN! zAMc5&(bZXjR_#xKN<1~%bFOq#Kf~o=JFNfbBTm5BzPk$-K# z6l2>ZaUvb}{LkCL*U_dg8Uhu8xG8_J!dT|@=2F|}LvpCLVY^jNpk}7YH}BgvrY4B5 zav9T@5SCTU-x`@m{g&_2h-f(}USP%V`H8^N-e``>a^6|kw?WX?J`zA3+bjmt&Z6;K zx1kk_bJZ92RoVq1o8(P9a}mn&JIqo%rxGPA#}nrx5U+N4D$CcqguDQmY}CFFh`zl! zch{*24bs5=+s89^maNhL=Dnfo53UQNOxHmp)kt=MJ72IZTj9ksBbnFQ8V(*BIu;~} z&-REhy2%e0G2; zm!>H{Kx08GhI<*}xeomp;u+Lf z6%*xQN%X!qXw~Av#J&>hwtGOtDe7y|pv8i#H#D*t6c0D=9jcDhJo7Dm$Hw8T>0!TL z?;FRGV%!2w_awe~Q1vnvJCb_0+{%`4Nj_xni2j=$@B_QY;lm~40phw|`{~V0{e`U;E2f-9Nvvfh^wZ^{Px5y6tqU zvlQs*L&9~+aM_O%?ap${UB=d(eb>Wl&YiV=&j{UxHc3g?4|XzNyjdT7z_Ch@g4K7o zzj)s!I^zdy;aX(NVP6m+(pw%h2BlMv8PHh<0qhKc-c^iMpyl$(e${PC6SfN#!KVl? z&in)R*#m-sMC|bH=J299C{9e#O0a3HG8QzDxZCt{OGVdVmfx5cl0_muMwoDQLiLY@ zOuPx?ZRjKHjZCkmFi+?nmK{Z$J^FeCeKa5QVpcw=z%^QBz{MOMvRoUv z_pm)7qy$@bZ(Gq^;Yv1wqCU(EIwc8j_>^dIC{xz0=W3&oD`F8Vr@6H6d+Jx3dPBcu zZbRSU2w@A^(sxAKU+tW<$>~xU?_3dFcGbJ4p&78cifK;XoLCKdV?S%5RZN>F9gI+^ zt5E1YG!|6ol{}xs4rvYmww?+`>Kvltb?0hs#C0Ixvo6rIrr@mJriQ-12>!c~^S@bQ z<}wAj;U17Lo+=G@bT;6>YK!HAMl9S9H<>EBMz;rlsa2NoXi@?!k!T74@$9ROHTaBM z$u@|<1ZxrW`k+16EExfb(AG^{Ttj2p;$&q+UPi;js8sFtqJKCRJ+RG*9(Oo463JSI zv*LlpcyBU=>W>??JqI0$wbvO`Q5j1=Bo8}zM~8gWOA^j855+JG{fr@{h?FxnIh)p_; zuU~BQ*|3G^r>^|s{mgKrZ|~5oCpz`45z!m%0t7X1A9YVX{CTJNtqxq;;xbRu%R`uG za4YpXAeq^(!oz|QkPblvEs}cUKDtaX?Z2`?ZJRFEMqSl~MTJn>a&2)`Q)q-W1{zvu z2Zha9_aic#h@HfLCrVt8d9oW{GhgA0^=4R_4Ldv{0Ul>ne85z4_F8H^BcDJM>?%U; zNMHLF;_LRS+rLopQ@3dI^UQ^6EQ$conPl5;h^)DLmH?jTtj$j3&e(`5-5AooA4E6F zG;wfxcR(K(Qx)?=O8h?mi4MQuMwb>|;7#cb-oA9qyo!Q%fIfBv)#4ATwXZ?9+5kO>|YW@GeB#vOOTjsT1S64940t+}9nxLmYxsS`RQoi39rni^{5>Jk@1m z>uzS0C}nwd1eL7-SsLv}2NFGr=R9`RhwhW=E+bd>CRczb+2^-30BeE6gceu!9f+=N zyBFx`#G97EuIN8>$c?@ zlVZAnq^5&`vqKHOE7roL#()Ej9B?J*Q|p+)W9++6X^q~|J@$&fYYTDw)5`RlE$O9) z=>LK=U^aT|NO#>>5M{QYK@0Cw;*D&F1RB|&ME$J)i$uQw;5y8kZgE{v1?5JnpW>z@ zHv2fg%Ac2zdY|~8ZkyJ=wo`&HZ-c37~ z6aND&&Rg`H7l>fo?U~1;HB-#rBSKn@**%5*NZ?B`%G47u0_1kIQ z1ReZ;CurC8-}yKAs&?EPmhzu*>SrS)%j@`m`X`P^qI z;ba`YKYcJ1iRY!HpK*V(y|d7T|M4tu2KHX~6EuG<%9dH{le5D%b_of{`!h|PYB5>S zs*T$Kwp%ALkyi~Y3?*;O(8%6Y>^j#9Y)lax3gUcniau#R|JnJhan?8k7xDya4$TjBWq`?mI824J?h6> z;`;J#Ng&z7$ITRSE_s>oyQhrS=A7ycW|y3Q|9AaA$>wt*uhy>@2q>e@mkBYSM^g38 z27u@e$@@nispsfc526PGZ%@^iD-#NyVo(VSZshIe=)ks8m0P;HvpWwQ3a1avZ#NuC zC%6`aB59O!IYD+9W@2aTKZ!isB^%_n)^*@0A5@hXsPK@{2P322W=QHp6haMtd z6wYuKZxy(oa?HKA5%JkF?6zOYP4E(4NELf`Bh*i~BRzW#(D@tybd!EsOHOY5S?JMQ zK6qA^E5TLad$n^ z{k^*dM~!qnIeIWAw-gTDXD1(z>DLjmhe2IzvmEc?T@PG@;)8HW7;vu971Q+hR9d`UspA&1udsBsa{8VCE{J|3>{iZ;hx>|$2~rc>4bMZC|xQcQL5VZ2|;CUKlN;&Q^L4w%G!uIpS%3+22Pgzn_%+>3p4dIoR zavS!||1atTgV1PY@*@83om#a?=L8d<53QOJq|vzyYCtloY~s|05E3^hwcW61+BuUl;{koun;nPR zLNhQGfeD)5v6W|9c$iX8`?sIp^KDmpaE1}9Iya4la0ls`RUe!4{ZSsYBsK!qGAiN0 zSfTl$Uj>{XFA4S*bG%%#eB_*^Ee~CF27_ED>W(wpu~(%HhTsbg$mH8Y<_R9mh7rqO zQ6IUQDgm&oEauFjVB8|s>s&yy@&S}K5;+6 zM%|-oui9P1bInRUAORE}WU&r=LU0NWT6~++2O1x2*G|Nhjyn$TJ!`u=Jj4KNm88$_ zLM;+S?ZRV`58N~!V&uNf;6;{6@hybq?rTg{5q0bSi%nhB%{cOknjlKaJ_M3$Y z%ZYuGyHtxhybe4F>hBY4R{?W9^$VZ3q(Dbk?(@qEx1W2Y)`iU?;-YGZ)HF33HL^nV z){N+xKJzeDLbEZ^FT&~(wdJ0K7_zN%;eNO6jv{fcZk11Qt^X>1*`~qndF^N_D-*{k zeXWQz%lU?)?aUVn#7K$OlP50AC(805FlMwkUy0uKpnfn1MW#)-*g%L`{uNY(9VXh; z#I?JtmgBT@QTgek9IB$kO3GHF+GVb|?3*!jO1_!+i0O>B%*JT?vheg+rl5TxW1+pM zBc04~ye0WH>P$r!K%}V7UAa_KOssIHDsvpjTMu%eA`jd?d#5PKE32}w+yo5XVRm@? z*VMM2N|^O2lQ}9257ehkLe<4V^XUJeBZ+X9L10XV@F9vvb(5ot3Hpco6MDbMdvi^S z5B0L;wJL`&!1S9Zbq2t_D?R45LqAzXXs=Z0qG#~UhuUDZ@ay(NJ8VmSw#YvJXHbFc z!BGhr2*U9qc2IoFV@hETS*H$>50O3?y3qXd$O~8o|1_LgYJ)XZ{(kmo2+y>3zQVKiHD-&i}6{q z2f2D78rW)K-0}+jx^L(E^7gDN}B+cF+z$UkO2-3MpP zJfZ+1vjR=pGI`5yJnl}4kQfQ23+4nhPl^WE)E1TY~zBPH@eYv*>G!)Nr*G^?LDWYQW<<28xbV zlN55f<%44Bd9;g{L(Uhb_&)wITMox${A`LUzTKy?KkZk~s(5ru@7E9|e| z++ugQ{adMCn=dwkPr6Klf9`5H-L8EkoPI>6Duuga{rQa(_4_tR=HUf8v#qCZ13*L= zqZqpPabl55?mAIBk#1F8=30pe%W;4f#r7W7=6r>shMc_Q9Z>&N!6f?3!Ot>@*M8dc zU>SUkV2+`IMWbAfpk(#m*YvjM?5P9q6%k`fl(NA-W1L|uC1|6%htc$Emf7YQYbivwumIacdD8JyUeLvqNKb> zUhWAGY=h*6yTMV{umtf^l)l~0x*O2Q!^)dR#h&n-D&0+rNZ1zvCYk?$xNad9dJnAy z#l4sr_+-bx_p1HBHu1oy8J~7GfTz$1ha#B#X>0mEVL7H5Wbaa917|@6gP)`Fk|>h!>e_)u@L_+n;Fby3$=g z(+W7cPj`LwrxeokRM>`Sxqn3uHKfgMbSes&9uVYl%vRYWt0;xe z6;f7b+$2jasu4+u9Uj2=+vuAmD-`rbj<5Z=!uZ<~8~?!&W-DnhTz>L{g=5W9)JYjR zNvq`&<6tm5C;781G#+7PwZpj_)G}EVj#}Y3wVo@btd5=krMIgES0o68n!~xp}@ILk$NJ>>T8sq z^*-$@D@^xoaFlydgkwfUYuoHk-tbh{#}QF!h5D~r;4G0$Br`JCI&|U2U!Rr;*k4xF zHiOPD1*LKaz9G)!h2>9@7g={<^6)637DsI7yLRH976XYH`5 zQ>(Y14g&#;b((Qhz}rq6EQxh?sxl>rOi}kpWv*lF!J`LsQfg(}3SRILfCDaK94E!f z@iPvrm%S?*ZCzHazn}O7W=etUie&Qn1tEKO_@W1FhNhzE0$qjnz4NaJCyVDb>#yGFiC`_1_8>xG_@C8;nTqQP#k$M(3e{-Ip%KH+?_g(E9PQM#+qZ!8H*$+;88lMD}}i3fsa65xvoxl z2eYiU5lHCmI%$fq8%yUH_Ai=HsK+Wc`FD>>s1wh*zE79;vg4JMT4-P+Paw>OSjPcW zf548g12eKINPeV+wa^5^M~Uk`j&0>pDj@C+r7V6^oFCc9(uaAw`ecyL)9;r2yss|i zUdTNO`S#$yx@jwOt+!uf|M_w*Q14{*>Dfr>NIqF+MY$}k^pUDsq_inE+k3fW&Fc;Z zk!a7VwrV-D$*Bc~y=akK0I*7teQ^_7@hlymfir&=P%BIWOYHfYpf7gbH`NN;;e+-? zb@sN2`Rc0?qYIuoQ{T>uyL~YsFHkw}__V}+Di*BLgj;Qm4Le7`%4>rL38v16Y(LrV z)afub95qtG>iTfRL@y6nCGJh@NJqRh88vZgE2%*ypuD--aww- zaT=H?CL-sPzG3FYP;E+E{%!NrZqxW%^3@D5mK4z*c1?ns33H_djs!`J`rC!N$vM!H7UL zMrVmM;J-IY9P7b;F#_HD5H$LR5@O6UN{E>2$BMqP-g?_%s68+R?C=a4cs$Yx@c&e+ zA!#thY;MMfzlpM?@mHu)3p5ilUC?Ee76*Dg?gdv-2d;V~b z;Kte8L+9-PB4Zq*i75s&X&yuQs?|7PO3**kA%T!IO&e}xB&;Dv@cc(*mbtGc;#7)u zJ$0gLVxh+$*0ejUz*nIB3gLPw#x)B5u)sz5Sn7*#rn*zStXK0vz92Qz(B8Wk8{CwLB;^uVd33_9aoa39>wfOw zqAzP=*Y!SbR?oinCC{}s+CO9JYST}X;X{L+L#C5wu8tFCK+uwn*Y}VAala)A_A_lbi z^8Ln!dVYGj(n-3Da+~_Auf|5Eb}Z>@BA`s7`{Nm#>()CASgpaZbByWAomL5F}3o>Q1cpkuNDk$)^>wk93-B9Rw|VbtZH`aV>HKSkMj=>*_Qoz zmumrA8n2RB>`CR&8^Wjs4`p3RQId(m!`;Dv(3$8imLjZ|D-_cG51{a0lA7z7m{m~)VZBRj(vYPK=G0qrPr^m_1=K{noLBRt;-J@^P zAISU8+LE9?f|}6*KnDL*1cg+rw|uW7i>Jfsyis;ovSjfm`|(%xzmI~Vp?e9?AsJT( zr><2WWrmjs+shRp?|p5xmsLYSb?8!4=kdNhQ%A;Q=K24i!NqXl{nVclZ%~C^a*7n_ zsK1!3YMZ`*&Ni^#=Kf1#b`eiIq>N)lK;sSy%jexC7Nm>-8U=0EFi=?da@XrXakO#fbNyfXp(0Qe@E+Z6|H>lg5XMirf!flL1bJR0h^_{(jZbv5fDQv6qd=Tfr}$diSh*IVpy`1kr;2fR+` z+#vjQ_Pw?;D_%qh3BDGnOE1^7@2DQ^iK(2F8txgXzb=Qf>tg#^384rA{&)Z~E>yst z%LRjKsj;CwgLym^W@sMI;PO!Q<18Bl(!$s9=vU36UcsQ1{mybRIWxx7UG&r88ybfj z-p|~zZ@cnln3H5bBwDHU{j7K3kH-NfV+H2jVuy=e!tc3A7G9xl4o z?4JpXmmEQ>jU5Mzuew85NeZC}n#3JW`vptPfxgjnA75JF$>`vjJr~G3c4N31-PyB% z1^NUaPZb^!RFV%Zg4S!TeV&kjL5!?yQQWcCHn|Af(Mi)c7-MXV9u5SRM zDzEB~0K_CbgC5YlJlqxf2c&mC#zi( zHa}TMNYE$yWDYZc+0F(4^r1nanvHc87?vtotmuI_0J^?Vrr-&swgeJ7z=MnSHteeX zaV-2eE}v;3LnZ~RxvA@onWsFfok@0hO_L6TLl-BY7F7@Gb01CB{LR02TpaIB8L;x* zQ8}21^~;rCcT14Gx;heYaHedYV8v&{xyG04LMCPP#*#AlhF&;=mq)x6A3O`FKfAPiJ*cK?(2ktLEJ!BXvL zLEFKi`O8dt8*fIVjlbkw*KGI(HYh~x=Fo8`680D$@@&ftj89xjcfeNe%8(qm9`RVK))v%v=|oX3B$mR9;5a%Kn(=mjV~PD6;t*lEtAyAtTp3_)<{Mi(#)~Pv{oE z2H1lt)qf(ln9tFU6eS{qD%RgJ_27Kjv>r5RKtSvk64>0{v)cpbDf5hSZv zYKc)AkZ@o@n`Q=kqQ@?~&Za9!4Fi6Szxb&FeQsx+#2B_opFn>yb))CqsjBZFdb~#s z+8cbe7RpfwU|(&zERtrVm*TDeeB}~45vEZ#-V-wz;^%x`@vAmHjd^&vB#Y~yrf4@B zGfAdVlkG0FhjegG&U*?=!{GN{w4&o867;ZUnFv{jkleL@eVp=pAZt~8-S;Iq_L^kD zNjo{c(`du5vLVGsLzaFC!np8YAoR@C4a0DI`lQaaKiKLl(X!BJF$!wn%PZ9q zw4sqQL}Y+2RF6Q~)h5^rZ&*anig+@;-H*1=+}~;fHCYN3q>UQS?)xGf&%Jyfj(jB8 za-Tn%DU3M~(Z`yvnxRHUxhLI%OGrMHsjBxR?~~3!xZXFgOX&nsvlP#R!*wmDbZHe; zzGa9gjLi4xYnUuEnEld&QUo-03{Ed73Ji3B|);?AV?$K2aD9);`%s;c%wQa zNg;T&an)jvYkJHPRUzi>Yv^)uqJ15F)LzqfaLDrJDEv!|S`tg{9@cEle`99j_^=8y zy8aJ#X_IsbJOnyXucbR&U#S_@WHMmpjWqMX7S%hfXuR;r+GAI|)dOG2qFYWGejqxe zM+m>N48F2zn)M&7jij^XwbdJIq)*Kgig2Ci3I3BQ6|izvlaunWuI@h|W~IN)DG68f zfDaIAr2;g4^RsEjjpMi0G&R=f_QRUqx2*xnz`inx`?dPfjG5Q}!e<7A^ z!oN3(i)d6*$du6U0Nq3A$##I(15_>_vwyQkoU4$srV90P7Hjt4&q7aXW6=cQwb~aCuVt#zOqxJcK&+c5R%Ytz5Am07(67~)Fd$Gd?X+V*pob` zd%d(%`NddSgfKO~|H|+$EXrxG$qBA+_U!xn;nEqg$yBW;8qztWd24uTqkf}O=P&9v z&E&Y`od>{U&J%Yx=9ll8hXpQ$HyZD?`d38Ke2wl3CH8Ib+x0toBd@Lxc;`rnTU;5R zk6(GfL21Wdz;hk!F3*CGZhqNQzd7rq!Wcz~=I*)lh_s}s#~!?FC=1x=TSv=}WzCiU zeT&Y5%Jyf`dz?dX=Cz;_<^Hnce_LjsJc${kpP3x~2#ie#fB!?jhWUy%zCo{Q3KTD2 zBwdNNPN^UNO-q7SBSZ1Dt-hx4Z&qbr;WzvedT=(vC)2^s#Z87u5$yhG1FCD*GyKVX zBCPSy$_b%#!rL_5o(ogz-27MIiz%!s?`47?uF%^~xvdu?fIZe0U?{O$+WE4f)An(N z1o7MOu?R#mntEps&N*Zdqp z7tIYDZaFM`9k!1U9OGDOc4_w@8xkAvg?kJyF+~6rLnxTd_P^aPQ?LyBPng$9G)2s} z>-j~?l8@mMy#lvKttPoKGq*Hl04~s4@BoAamw19v@h#kI_{ZWY$zkczu!2UfP?7`-K8*%T+^5UC=2KZ|wdDSQ`gO6MO4C4#yYtNE$%wbNkeX z);xz{t0V{0-bl(fMWl9BGwf9Ljk|x^>pv|LuRFCklZln@W0x|8o=5&lh0p-{`!#Epih$LAorv>_RUW zd-v#Y_@FZGY^k~TC@|=~_^?_^l2;9fyi4W!dPHj z=!6ah5MFiu+i~rhUlSx!x9lx#9iO_lb%_WZY-?x?&N?*vv)Y$XP%I>ZTsef^zEX7< z%94HiD0e|DfI=;F>w0-+;xjPlZ}>tUCNNrMe-cqA+}?TTy*117)C7jj`hYH8i^~I6 zv33Xumz~CJ4-2z5H;*n-!ApnMkYs}LlN8&wirM6CZMt4Tv;W6YzQ_WV02AZb_zH!s zv!zEmIF2L&cpP}!W5ZsQ-ed;`aWxZO0xahzYL90DGOxy3mJmvjl`~jvd>yQB;r^$3 z8-k6qqmkG##~_Y+Ui08_YZ0gWCc`VrQi*_r?il3C*^nKUo=|HqkNl20<#82zNAZ+q z!kDf){0M9%yGS&^UQuAZ3F8vt70t(v>vbSQ!T*YVj2S}Rl{5> z%}lF_Tm@Ndn%@CN%_;$T7D>)Y$$JU8}Hzp4B7Q%Lz zIVB{j6q^0*9Ti{c82%(TjJ`bxCJ@mtI(*zqkONi%IPuKugWkgax8O7I8V)uQv+5E3 zywK9W#9gzqwg<695iHzE-mqUNu^-KlzR8@+taxtffyF;I28d~tl|&w%B}jdnsyj&A z_j|lp1C}|gbH;^FNe%|^=S8MThY%=sce*eZ-2rNNpy9&pyNkktuY4>?qt!ACdnI@JFTy5b%0reF{=XSsW#C(h{G9dpfJRax%N(kyN0 zdav|YWyzcC?F!jASf3pCAL*6@@2FX0VL{H$1`m^T`b{L#G|D3~fw*i_JJ44l6ezSq zRlQp+igD`%B17OlywdJ|M7u8C_k0O?*lwGBMAHYf3m0VoNt45~y$SG@9>=o)(p}+k zTiD@IMxD9jj*G;J;lX2W{)ETJ67=8yZhDYu_D8?WQBl}4;hq`0R@x@38Zw{ZztcJ^ z+}iHkis|CU2b1+4An3)`PlLO4xv*nFF~0;~(jwD8-bPuzT0Bx zYSEeu$hw;QB*#)o?AkCFsKO0z6U689D}U=?Iy@}L59pHSjMgxSqHd}LY~KgZb8NZL zH-kBok_bVq?hz4k_L6nSXJZo~q5@iqaHlwG^QBaL;NcHIRlWBrT2lTjM}2r$>%RVH z-Q$uHszh{uHN&US-SB3okeSz`>r)hjG3lU}%`w{x`_pd;Q&NG#3^X-Ve0%xP@@~8G z_0V@&$B62<^3~_Gr2WaMU##hN?`~~u#8jJq9A@U@Q=faQoj+j8ISN)!@N2;rbmQg< zGvv4Sr<|f?`Og}q#MuTKa*$`lzueqP&W}?6`COkiN=R!qa6N0h(0$cR>jQkAx@C5P z{Vpfyi0=w1B-E>OZLU0Dc>%S?{ygip$+J+8`3ztf=D7QQ5>($sgqYyRzK@fwk{C%V z+Rz*SSU_hh1&V^ZC|zm=(c2L94Kt$~Cd`r9Pi18i(Y6uXBa*W8K@dbddWTh54h~7Q z#86@rNlGl7oJ)}ZB8WvhdKdjU7Jq~VHLeqn#L&|k@_M%;>{mcjKrM!}<e%O2Iy$)m?ld~OX=D`1_29H%W+S&ow_5uTIE3zE`Yf1CVU%t%_!Gp z-70+Q{iusEi?yI|{jST{KZs27{yx7y zVcX~P+57W)J)e&UF^}|n*+I3Nf}YtvLQA74?eZF@#8x*5?sKZ#ewz-(+)R(Zv=m@e znu%B`Nh+YwJtz?po5Tg=1xGXpo#|zIxmHaTo>us)EnB@E6xQwPc?_dAdue zb(b%g{OW3b5s=z`qjG2tqlZ;jAZsGIvS9WO6ty(Mg2vhsIBG#R2(oBrAe&C|D|`U4 zrz&HV5wr;xFO%n|)$UG>U6GgT(;K|!(nq`DH~SGXSDGye=PZ^Vb0K(yqzoHoPUhfh zK^A)twpYmR+H(MMx1p>~KASa^yp7@*XzcRY^w;=2h6@RMh%1!~xTTKS(w$M>=({!Y z-N=gL7U9CX$C7wU)DXSF7xFyDy{?Yq!2L`ni0NajTG;gJd(rE9-W&4ruy+B)@>=9aOCjxKxTB-{8S1~l#{>*s7ErpA`1 zb67Y^UZb9@WIDrB@hvrYNh^VS?Wy`vSsE@&I}T(pT{^E8*Qjd~HB$LgY4oTlv=8ss zSK6u7jW?$rlro^4Z%ZW_gtL6SHHa4>LYX3NbHx`8z+F%Qre^)j&NbGg448*RKJN8~ z4K(Uh{*;+79r&?I`#GH2#WAoZ-KUT!)N{&;qR-JQlS;xvu{RnH_AC}QN_n)%us9J% z&^PN!>%sKxxr>4`#aRS0-J6mYmn2Bmt%)+=m0H_udiP4Z(v;vHF_5A7emxrtZG^)5 z7l*}~%Wf|zWJh+xNKaXi#20LQQIOi>@IJ)%W#+vs!fq!1vuU4=!XPwD3VTvTbB%2j zW9iAcQfeZ0L2|zUPS*o^;mlA2m=B68%Op(1*>86mNM?={buZWfZESwONKUD#O=HWg zyH*)eA*GCu!Zg&HmXj`P78u@$Jw?6qNH4sR5_hpk7%^4!j+z)JV|2#if`K%~Tc^U& zl;O3~dFjB?z%5kFP$$Zl>c1KorOgm<_0;aUO=Y58ZLoUi@Gg}4pRmD{fhDTbDBvyE z$u@~Gfm>63V&NPXkVw^*TV+DF-17j(N)!lt0(eU^AYL+=i}}+?UnE%s4QF8AT_e@c zZ+S(|mM1LJw`G@@70U5WPf6{+mpeYWqJHoqBH|bCwJ{%QD@~er8pD+Fw{zWFcwXp5 zqmIsOqUUcQuObcF^p6@U8lQhp>K}9=F=-aIH$rJcTh{q#Wej0$%4lD5n?PbcP^MP< zY!iQS9>?f~KWRglOooP3e&is*7JL7CFRk#824U;0Ob55AZ1N;dx!(`{i-AOpUJjux z-fr1YUppIojX(U{bdth`XIyEE%&IJ)kL%#(} zkX?*JC5AL`b2sbxvE8(gL`2LSvs%esg!p8jqA0_u{LMVS`^Ep^?WGY$GPm4Oc=u?% zXxaXOtr2WftiLr#^VZC1|nM%|V9m-md4vDO`|QVlPdzFqVDgBnd@-ZYKubbG0QH5faTw!Q^|$HtkN!MVWV>w(_v9rxpJ z9n1O}?Sw|O{a<{Zyp2uS!j*{xxL1$!^Z^2iVIPHRy5(2T(!AvMD#AD@ML}W}(+ByG zm&`?QI&R(wgbk}^qr?~VOG_j)qBCDKee^~yGS3}P$2^R^DQVun>E*mwpLgZ6&sr+k z{)p+^{Th!n2*V3keD+QoWawOY{gF*F&R|Mxt;ILaP)3!8Xc8}PXn^*2x^MG;NTyc$ z@048?08UYbYl4;t`I~ACTjS_b;@l{*0(kIUrzWkK`!PL_oj@+KO=&pOWmj1ytTv;a z&f4K>Wt=|cm<&nVa{K^3JpI5XWZ>j9qGlj3v_*mznYEtTw!>MshxuDwD>X4-%AE3% zMI_F0?dI^b7!16+=?gAi?9$Ehnd<*ZLw>=ybgQVYqHU}6?;SXblS$&S-OFDoBE#zO z?{Mp-le15SMZY_csxi$qu0ZzkV(Q;p? zgws}#iqp3c^h;b`SoV|C|59$m!SBAFO(WssA=&jy=`MqBG^eCh+sm3Cn{7DtpurwW*y(-?HCPO%t9h;+spp-as@VRIwim) zl0Qiq$;~5n+!G_82dcZc0@)AX)V0T!c;R*#hn@Oa!3_+^hr}Xq&E9E7;L);90Z_1% zwoXF>vEHn(4vQ?AzG^I(*jl5(zE~IGQ)cBx4_mh-~rTD!s?Q!c;bn3b6qw!7|y%3Oi z`NQ`!xyrBhbSarLePUC>mpvMjP~tOY6)NzF0L*+-WpD8vjY`ptI3gSxF_ZoXPfoOF zG<6u2Dr^g+ZgD=v%7T6lnPwSzdkn$>U|-`Og8Te3Q1j&8Fk?K!Xw9w;r!<){ti< zv=*sZV3k;R(D=%(TTdrk`<8F+_ngD`Yl56^soD&8o_L%GvzIshz5Kq4#`YdyzD-y{ zq<`;bFtMDu$}u;`?!@c9EfIv+ahxrZg1 zU)Q%1D=7oXJ(Mine<%Bep(&4(dXxL`xKHO~iWdB4;`xsfj~PuopREr$*pd#=l#FBS z3KTpS975ZdeNE?>y#eUYq_8itxh%CODD4*{+EDXu&`*Ek#$zwzx$Z5KT>j@Cg2asi zBTMx%uwJ0PzJ&m4@b+v+3if zGS__$HvglSLiJh+3faF?me$?}8j1Z7bji^Z)Gc)b(f_wyDm?d0LP-UPJaW_N|FZ}3 zqf!|4MEgC0GvQkF0&HA4q1RkgMapx1E2lXJ8CaMsKF=s;XP5H1+TDFUVq2XAn;C_u z8iY}uQ8J{Apx-r|q5W+MT4iW&4_azFKqYtj&kwx#j-u+GOSNS52_AEYY_6HgvYw;G>GuS;+wpLB^b4+ zCf?|ER-fz^H^y%^1ElRDVY_U(ZZn%T)ft+*zY#1n)-;g@4jbc01l>}SGF-_5h;o1U z>@9>1)EO-FsB#pW9l)BU%-rYA((Wo;H+ajv{W|k=HYr1QMV(qu^0M!hIXbUS*Z{9@ zvG1bDL*cS8pZ5|vMRK1VmPVLZikV-gk&L|}HTJruD?ZY)RvMwOb++-uC9My60O4Ok z!F+_J_ZbA!+`cQsOe$>k&EZ9G^qT!2U=^rd9$~GFbp)+^J)GI{*|unb+&IpB!pI>= zh7|;!91-Xj6(4nK`ng!6g;bFuY>@(7VTn&Lw5#f@9lhszo?uM7tW?M~UYFS^va9wc z^#hlz*Lgjx(ydL>>n!8eqG0;e`mdLiKuujQ`U_*<1G{YxG=-3G{k)kQU*|?1X_}Zg z8)@_O7Tj868Skbk3>2&u~X zS8!XN#rhAiC8`RnV@f*M#B(~KomMup6}6oDz$`@3y6YD2n{um_hHKM*re0mjkYNp&zH?MLO)=jkLfj00~b3+N9s36~kv z;P$#}yxg&PV8002C@~CZK28hoGSme#am`ZHNK=fvt%KqbD?5NdZ+#=)a92=^5@3Ep zpu6`><~8BFZTjVUJC)dgrkv5$vp>^!fnJt9+w79H4-#C9T5Pz*={&Bad|qqX#DFz3 z5+Zvodi8Gc<0;W1U%OrA6)!9Q!`9C5Qv4NyE{$F;On5;_Kd`1(f$UT1Tn6RsSv}v` zC{hED!WLiBx-dVY0IKs-4wcc^>cZL2Oo16%ELeMxpT0TozT)iC2Ft`(#{CJI$Sv#c6FZVmOk$QKmGHVLHOgsBz9H9@#liXg#n#l7v_HAb|YQzVDr z_*IPCNs{}n1IGqCgqvYY8*eFEE5;;j_7CPq^t-?V^7A}pt}N!W!dR|i&lO6Tz?J`k z-n-{?2{=6`sWiuB&#D^|s$n=3mf5K-hE~K|oIL+}&U~cYAQPu~bI5BTtJ*YOmjTQ)CC1AcrMAoZ#dSfBv9X3d^Nc?9Rbot>*MU^Y*Z@Gt=*nxxuzeVVUdL%#1xUtoI514GDXdWhEJ~p$K+<832uHiPy`|kumk0 z5_LPcH<1_~t;r(6vuG}9f|D_+d zv>H`Uy#oXtm(qxbfb?%6eZiog5a+6;M0ooVHgu(rLTnVL_rl+%rXP3j0^-w_%6$IE zZyi*ZaN3V@_UzFkR`}rAs@?2Axo$^v0hD^UQ@1Kdzvx?>3>-TDn=>mgUO7?zbB>v$ z3l#&qT5g>~^=`8Z205EHyq`2WQlLckn{U2+{9_ak?x5#;xV}QBD+yY0n42A%o$2#z z3)homApuJniD{eaU)vVLfdR;3&en7TwLehbcRGJgMJ`On&;_8!3sOdm9|%r-1yY>- zOU&#WN+bt{MJ4=S6q6vSxE&4EAZY`w7yhNz;RYqnu4G26gD*DEtyjsGP^C5L z2OO5fS7bhzKv&()G4H?c(^!^hfBZu`+N&$+i<|qh8wv&CC#tCv#-94kMBp|MZIij< ztQ2{xes4$rWw9ZTEv>rE+dee+Y~4#FGH5kKs9hzjMY zQt44}#pALE86(A$1G+N7R4avn!b~?u`&G|yOq`LKy`x9KF^Ul8%8^aWY16&(tcJQdqk)-_8}(btRDx&aZlbv5fX zl5n1;K2a>cx7Vw1H6*9~Iq;9ts13-rYO3#u1g)}s4;R?& z=&JMyP3nx(J5iR~7oD~5^$oC04yCmzbM-&1n4Z-i$%rO18bXtHIG^DwhaB2vHMhfM znI6-V5a;{HdyxMLwe(1y*hej_!O^457BQ!y)ywXCf%~&naG~P!mjNN{bwQ`W-ugf4F=riPPcd)4MWL!!-&KglQGGR7 zHo^XNZssV0g$m&6$IBT)foe#V$)sHUONsH&||2YKI1(saq}w*B1Da%ScZWHkKj zsnmCjtq^)a-MgTXfbcP5M6LU8MNC!N9=%Ec+f zD*NIM`tySCUw}^$O-xMSZJU16FZKZ8`4cjb+yG^Hz{b`|WyM!z-A?sPUeL<(LQI*v zrrFQ2;U}}+GX?~QK-7Zh2Ql11)Wk^Xr3^8>q_XAJse_)1nLGTrdXmdRep*LmvS0y_ zSw%8GM)q9}C}vAkf2sL+($Ns(pf_C9JAHCu-aBFH zVhi8!YKv0kuAn$lOAsrx+EXK)4BO~sPoVu0i@I9lc`@EU+Z+I`I@@TPqFn((fkm^i zeIM)_feu<^$+-6bJ2(;geD-sW>?_JZRS2$bSFq=M^|=Lnv9W2}{J;<16UfZzV?#Ur zni=fOOixlLvd8}%Z7}g->c7TU3b{^BCBxW5IQurcf;@-7Mw@d2jcdLg$iy zTd*`>1oViQbL7EDtKP=_ll;;T0Iu4u;pFjADmHOaRcmIy%Sw!)tV{z{*TEZ%NPk)m zw%OtK0$B6==-#W-{Z6+}-?BbkVxBwn0oea6Xq>oN(tZE^p!*y%T94|$+CQFu{SC?Q z0Aap>Ka@M2U)N`A?B?phAW;U=w-O+?vTg+Licpz{laADU)G>$jWn{M&!p)+Ib2AH4s=l;qnmL)Wdr$< z8tN(5wbgb18fd4MR_=Y@KQIGT=+9rvPhRxdF(xGHm`U`7`@YL~qib=uELinQ`O!o?)DlcBD3Vd2Gj&VPKwrpKwFgf&8^HsswNs09f7fzgfP_!M5p7ne=FYkBZ zpNhhc5LyNyX}_fFY5cd^!RCI$m{J8_$%2LN>=d7Ke`(=hb#p3l!v{9f3a%2p3xX{B zlm9ci57qj?(Iu@=mYCS+MT09}lT{pWx>pP{fYl%J}CaVg0+=_-JhF^Chi0rWLsj zq>Og!4H|AVmhPs}c||G@o0dI{{*umuY%j77FNnhy^ta*irBO1)Iwfx%X0H9c>&%FYjd|voKE?hPV-Eyy#Z0j-h?2-fy_2z_ z40Lhrro9slOJb(8V?f3dnCX60+QB!+@FMERkBZ9cH({C7u97c;l*`U)#wNMV77^c&Jf2k| z@7eFkfV{j#heQ(I%nda+P_nS*qMMf7X=xej4ZaeP7a5gvGFIX{V7&BW-<*7up=4LV zbc;m+4Cg)zN$qK?gI}2OZ356is!xT+m8NOV%zwWOW3Bru{S(S$^W1k9%L5oki%v{Z z!Z>Fkv;}8Z;qYU>%SbI>d{gVMg`v+2=Cu=w)&!G5N2}_sKsxG@xi1WfsX&g zgza)3cvN`lQoZ|~V>d$7U-;&NEeC0-(NVh;+=*F-3(Bp2!-W~mS2Fk@C2!a;K?j=# z$E-!bO-#1td}ZO5lEx|W6c*hG4t4D{cGll^fMC9X(p`_B_cyXr{3DOn z5gw;LX~;XRB!mg->XWIGN_Gu9kMyLWVn5mVl%oEpA=k?hj`;C2#NfP{2VJf_XFDZ# z1Fq9y&pFj9tQNKnY{NLi{UE=V5KXOY|~}8B%}c#c#EPFEj}lPlhqCc z8l1n=AKI)cTQAsGdnznvpP!$>(Vt(9{w=pJxNGZW%Bn#7U-l_WJYo`|hP(SByzotE z$Xh%sBH*Y!YNylCxJLt?scP_Z*l}`n?^&fkim7sY+Yo7aQ)xd3L8z)95o0;)ZxWjq z*=}J-jzp~cs+Vf}9Q7@_&#_jvSpzQ7jfdnp<|J2`zRr>PQ(icUak|~6VeYx$j#|ZF z|0)A(0G#*J4*0IbuzG~6fv(Lk=hrY^JK!*Cwl(OF2Tpm9TQu!Ir)+tvei8A~d%aGq zJhZ)b!09NU8*$um>TZ{~^~a5@r&o{cU1rYJ7)ST6nZ3-tr+cw)TRRap>k*H!7y)T?i;CvFifrVwM{_Gb@>6?oU zV!TeI;55fnRfv0IR}A$O4uEXQ*c}VqkR9GZdV!*)zSR|z8A{|MAfubuODr9EkDk4T z82LB6;+HN|t-uKf+XW|+OO)v8ROxPwOZAQCD^*^M9x1GWKd=Cyg|57Q5Q^&BIahvwfFG*_EN>&*bQxPty#3Q z7K<5)Nv|A{q45HW$2I4o+FK3(Z(zAALX=ze^2L-M_7j~GsA5__k0%;PgB0!e{^`u1FFu(S@`*Vz*s?~8K$QZZVM{kDmA zZ|lPg9}ijW7dvTh3yNZmUW&I;jgAi=3_H*f$$To&w+SoP@dwBjHaqen#NMTUvH*VuOc0{Gi{Db4*}EsH(98$95kY0Ny9$Y}JFM z@r>UW3C-s}Ds`4j_<{vMxSLQY|p zX{QWR8KgXt4;#b{`h=n8RPc_@K{44Ql|3oGPwVzSSj;&sJMx$eEHcUMvakVK^&dv{ z(Ut`BtqA`=t!Us(N0HEbHqEW+eN5LJx`D+zr7iBM9`!QQ(d<7}?IwHkzwu-==_dre25>$>wRiM)`NrLk2 ziW?lB7b6316`LB}C5uQSdHs+yr|(Er$c|Kmws-ndaMyb-VY$!Rm)(N*cM*@z*F(VK zh^45|@%fgo1grUN9xSF;+DHL5BCe>zccgu48N9Q!iZxx#KQwMW@c5^sQ+vCp;){qc zhpd2q@jBX6E&3mb%1#sXz#dWV{XuW$DoivjpG9NloHI-2rc0)avT1|qU;J`nJlGT; zXyR5bhM&N#|E^5 zEmZfj6-uK1KhvU@rNa%giUR0?WM);>f#FUCW#}SXNzt)FhApu=F0d}Go6}b^)Qi~f zrFR2SlD<=&fA0DlP11N80HIctC*k>m&$nX#_!)&*3fu|12tM`^Z#E$(v=o z{+gNJr*!e@M9OX7JF{GI9YJZu+{FQMo9xca?+kV5#*@M@gv0EHd+j_Sq!BFQ#CRiQ z)}112SMX9nnk;`ptb{<+))~Nxh)w;BRhz7x)2FB5TEc5wE~=+bf;4&c3(xvnlrMNA zp7i^?Y&lc{J%;$A=9(AO#vGVd0j?0;#w7M|N(b4J7c=Lk9Y zlQ-GtZk~(lLcsD^f<@sqaE1vX0GoGd|Hf03mpJZ+@3}0xhM+$$ zS`Ijs3;36U*_;pm4r>-@U-xqrqKm5Bk2^Q(9Kk;XB<_^$iYJh(o=>9iReej}q7}-_0EIeX-r?7v8(!IeoMKS$vnX=N>&j`B!LFaa6{J{Yu!| zMu%D|+YSGvbp55K&}tNSw5cqC7RG**1Y93vbXB%~?P!FK!wAP|{GkY@FgP4bLR(?h z67)SaoegDCyp!)(zS$1v;ea}=EB~t@ayI+B0KF#NC)5JmZtEUBRa&GSC?`DEQB#Q| zmh!_m>+1stAZr*vwt-_3hRS$w6wJq4GG`8kJ3<`LCYg}iPnRG{-Y}D(kk@hD&@Q8M zuhL9!gRU)&mq&gV?7e6iPH*P_W1#ZLjAHJl)F+vL;4oD0pjQ_VIw^e6KN!1;K9t^8 zjwnuqoekIoYuDnJ6Fis4)K(+^$p4|=+=@AQT-1%frqbst;d@R+hXDv+oUd8NsM$nB zHbYQ3bfDOHnIW!b`F2W2e3Y z&wLOvaH;ArTw9-oQsw{fX(e=8Zrpj!X>YY-Kur5_iyj@Zgn_yokK0!(s$n_4Nfy%9I7&&b3DRtZz2@#H3w## zVlGM;eH2q<{<^w2A-E8SNo}ex>f1zA7&=Mzn!84<`#Ww)}OlXD(%ZYN&{oxmd=pUSAD-G zOO_RpM`3}v)^Xq1Le$wD^UzLY$QI{i%v?Bwg_DQVL z8`eHi`dOx;*~bO9HHY&e1;NRv^5}6Q^av@GHCvq}0j2ae9IbJq9$FG2ja|~<66b_= zh~u3ufVz4|B{oUonNLCg@%EvakbzqlCmL;b5Vb(YZfrrZN2`)WUOl6opp5M}nDd*N zHLF$0wHK}W$|}sWZa|(P<=Vu7&j`OBV>C5|a4Dbt zH|&7d?#A>?L}kr`^`tk>Rp_GRQ$MrFARk&v$G)-; zdr1k1yV9bqn0NH=))d-6XHmQ8^{=5!JsD1Ww+-3pf%b*yhqnz;y#&@}fO}(ym(xh9 zDc5T}=;web< zqfbWiV&$)Av&de~)-t5C82QWj-H2Oh6F{oxk0P2<>ax95Nd4Y*wBG&#Xiu+Ea`Gvr z-Wiobt2P(_FoLX)OV0m52_nGijS3V$4A(xiM<m)pZ?p-;)CH?d6Y8br5)qij+J zKR&NctTk@n7-_hP^c*1;*s7qrhMCP+1!cX6`^;uKTl3ODnyH2HzJ2zTSMk2U_Khw$!GDkUGxxf&anJmVchyGu&^}bF>{vu(+dv0d!VZUbEhcv z79>3^3nZ;)e}e2~Z*|Cac_ItbkAf~{Cm1W`Zf5$38ox+Pa1}^tgtHmxj`ztPWAXC# zbFIfdt4IGP>g6vjAbDaHM6PraG*LO#fh2D`?)+71;P=gkDfjA}4- zz0JJyfkhoN&m!Wen@EZ_=vcJbFrO&6-kwGlJLbLOdll-$n4B8U>)dy!5^Lu$6SeE# zuK)S#&^DvK*b&^c_#iSU(%E4H#cy2qZR<_?=~qs>+LcP^vbucLIrPc5Id%$e9%#A5 zTc-ozdR#HN>kHZoktLsb6%i33u=yEzQ+*->^n=%9s=ZkL@w1+2&s)BRG|X__Gw^e1 ze1&dEJy1!Tdu!Ps`I4#^@^YsfwQ?GNDGq=#qm^dIZsz^oF2mSiaqk9gSCBm@#k7yV zS3QDLT@UGSXkcKqTT8+H+h#sQ_3*N{Y&<$)Fy?!9!WPLfBhjO2S)hW;YG@*{&8-3k zB;6ULw%$}ikKfYZbdi#mlG2G!aelf2vHt8I+HT&yUMOTYai0W}9aH*2TX&P|m@qRp zUQSNW9e<=QA*vyyyj{yG+6j@x5K0#Wo|$#3KR6f1DI0wjmd_MjL1}sAj1kU-hdca! zg>OWhHC*=dC5q1)9Nm%2ZY6dkb)yzbY2mBBC&(A_)$99?i|BjWkcihLw34E(rWw)b z@=*aS+g8c=z|K>pOBW|(YeJ`g*OI4S?(*g-L2fHiGJ0F9fmibL%>DiN#1GFUiuMn* z2!8Ru)NWg>VfIDr4}@g;oQrMR5xmgMTs^;^VEn9|zY}`DXt4i)mxZA1dsTqhBuYig z$Mtk?(Hq)8h!uYS;TBD0t$_?Vy-4Qc2g{CO(Ju2_nB(+@Oukrg$ls#0NJh4f3rd`2 zM4!F~U$~{`lqk_h!2xbSSA5+5XPN~8FQD0MTY|Dw2<{Q_l4SdhFcb35W9vKjLvLwr zx3?{_FeG~Zy#WDo7b7a3ww4TozTiS!e=11^dICV z$&qE{*)MKVCI((k98%P7hn7bCYv`{x0|-Vu98JWaaH`x<2g%HF!N=Q*USTT@%N?myC%O%^-KUs->p%P| zn%otg;N*c-N?={%C+;8ND!6)537`QfM{$~0_)3LIlc;@Fd`X<9WPH#sBj zlg33iYRx&{o2~x?1>X?DoE9O$2ZBGuh+irwfdB9*WF9%~dsgE_&R>ZwFr`b+?%6FP zm+IDoZ{%62yq@2weQkB3a%_I|7X2^ON~nMCiP*{big}1mQQTps#2j_&Vr%beFky*$ zDK@zxUa)P$y@$5H=^n^4~e}{ivse*sXbe;Nd-?nG%xsWJq12 zO)C)~IU=qhIb9V0KT2~dY7k^GDqDkKw=A7XKD+UH4&zX zIhijqWL_)ddyNZj-Rc@3w9Qj|ZDdm4u z0wf8&sRCMx+QSp2f#GRHU6CLN_Kob*D8=lFzNBf_5OK^NU=7MiH(y94V|0l z)4%gLfR>L0r;9P>UBst5;vm}g^yHingAzMv zE%Meg@C6I+4j5H8cgu3|g;nnHBmx-0|Lz}~P21;eBx#qGYYzxYOGwKYW9-4MObZ*NFKyFD z3n}o~_g0yVcbw2sC3wT)%X&d=Fx*KnBx*D*dHRODJr#7xv;xjzs;@iSD-;o^8TfI=f zu8jbV4@gz9R`;gwnPs}^?x5PNdH>uh#wRwg?))LBqzuq9r3-!6joYT~6CY{>El_;1 zae?|Bw{3|RS0t9PK&t&hfji>xG1niJ7j1^4dm&7=nLF%SO=)d)l%Dql;^f{wd^A$5 zUhkTt5Chn-NgU_R}d*v!WjrC;R{$8UXh7QZH} zLhO->z&0)zAgk;7k|t)S)dK(0P6FMqC6*oPuIB~X>{R@zG}syOKTx#gWcd~S^y_2q zOt0c=-6bPy9XHY5n!^QGQ|<5U9%(oot~RqKNbtXj{bgDq7pf-z$c(X7dl&>y`=Jn<49=ztUAX zG4^6a?8^aW%&9x3Z@A7{owj68a;N9(jwGGOg`7B&4@$(jMUrbX5TY@V@YXXok8~A` zfztz@?hTIldQLO{_g5nXHZPTk8G2k&ZCMS@-Qh9BMoqmYL<al zp{Z!AG_z+FTNTB%F$Lbd+S=Sd0!jgaJU=u}c`KYA&Xtl( zT~WJe>r*9EL@QL58FM2>(fZ>G8lSEIm^C9w4F8rv6n4LF zDzmf_pc6&at9R;5h-9wuzvWz2-+W1AAIeZuBqH>;~ zcB?2<fbh1trso0qStIIfjc(24(<`kdd|KQ3omk3TxB2-}&9h+jR6 zX+zai@yBQ(JJok)!u|(3iNEu)rM`8~$21K>k#rmsC#)Xp8r%OKEHU;wTHD{0IdcQaFJfLL$k6(BVQZu@#QLo*G6@jyqoR8-o?}~;! z;UkPEFQP`ZMy;!y9z=fcjZ0X`@SJb*}eJ+P1qbNXPxI`M7=YtqxJx-x-Bi?Bd2d z9@J3A`@v?brRFLi#i-dAIxOrVPhuuDm*RUr6fl-6u?B_xjr-yV6xblC7v6Eb!ML?8 z*Dy5GEjtbF?aMAGAM;vqGM&nii8Hoc+fP4hl4|TJ(K2vL{Y6gd>e0%2Eal;&5ZT-` zSH3_x?~Yt>`f6ayKyHCJj6dO%l0PyCOCzliMx2~`oK4L(=#KhOn6Am#R@@Ii}P zRcCs2FNbC&%1`O}D>}POQ6fp@NSae!*X@wOmZ#t38zgILVA!fyyXwt@ZD|s3Y8E$(#4=lxGg)QfMQ~y!S^! zm)PFRo)bc{cZ?gaC(d-dA!g!$Ywn9o(GMOU{I#t32%hcI`l)`!+DA-(>36I<#-a1X z+UD-yy;?mX?3^U)UVa~uHcxLT?s;8rpeZb8wiW?CHL4Zm2mj%J!Ha2eWE`gm|0@rW zZN^&2p>!<_rjTOGjW>lIcSrIY5gi7)%p2xnMBbsfbF6RXo-@|~WQj86-qv_=7-)A% zsLd!Toyo;2A-Q@{x!Ar)|2qeBQu)Ws%pi{_k$ZNt9SJg?H+^G%nwq&oU#S+8|7@Z8 z%8t+_9}#27J!QXoU!S4NIP?(#fc`S|_JM90w#)~>+-2q$`y15uqlYUiQ*?8Eh44le zYOw6pDasfNUXsjR?)VNFow-j59uM-s-aJ5PdPBm5vh#=a;IcJH>jSvIZj02zkKBvJ z?=)x3Jo-YuaQD;#nXVYe{P#J|#fO|e-Fp4iU&nUOcHZOmsj~`Rw&>v~5s@u_DNiNW zfiO2>?22lo>3cz^SdlMIDhKDsdw#VJEPLp?lx_Bz6k-(juApRmd$v3$;(+0uZ-6N4 zS6kRC?8jE`8w%;FSqq`xzH@Mux6(xyx;O=tZasFp&L{TeFTYnI$Tt48o%?43B+hiO6_=8##4dlOPbL; z!JC5_PP07hnw!>cO4N9s)3KdTU|`+VXePnGdRCsLs_guQzljlaDB|X`pc%a=XI7=so!n+1b!~@%x?j+7|c8rTi(%F!_>#c;_9cli5$tS&|F}rZMgpj+A$H19lLyYa`DC6`l zZ+ybc8}=jo3e7K6VDu|DH~l}zKLu&(_gB39G|_U;FS-@>-DTLW~d$h-Th8I zl}oXJdMLaFlvtVZ;r7EIqc|h;_=NopAPkB#K4z4fO89VwV}hF7;oqDa$~TJXMpe{0 zeDUsnH%JXP<4ffj5xA=6F59|CU-olCuC4mcX@PwX$$01AYa=lkf4)anyyvZ*xfAl* zJnhu4!6HDOgvOBR@T%tL;BWOS61_(1cW=*?!9)KUiUEhGyPs50+z%7}&-~5M+L~o+P`|Vii3OX30i_Qv3}i^1@`Nsy0FV-4IYs)dg(8 zLCWn|7rD+eknG;%$7h4A-ZijU)Z9~&lo9z;(^|zVdujWol<_$y4jZ#@dw#$*8{%pj zbz{u&&g7ai)8+n{N%rg7fgVHc+pxO?v#<;?t8X_R5n5qbdgv z$l4r1U#lJ%ik%b~Ulc+1am}DHu>I4y`7zz-bhD=@1HF;l`$jJi7cOS1-IB@g@%C=< zvhR#Nr#sEmko=ZZV{r6n`Oy^-WJ7a%Hq8Zt>gjY?GW;`tf9FZ|RGQc`T>syGfJW<7 zMam(2HNP_jaIA7JUnn7e7MDGKT#(^;hGzIq9@`MX0x-S_A>Qx4v3Fq68;%NFqjm+% z)>>SGhEbMQ4Z=>z)K_OFwB9GS<`KniKx11^q025-mKayA*xW8#rV>>6=HeYu&rkp2 z02}bnL4mr?<+F6VmqQimd%zHW^ZYelk21R5;P|Z}j53}KEA2G&JmTb`Dy1=Va6+aL z;~rGF@piM&#dfP(zrx|sCnZ_{U+HfT<75B7Q^3|Au& zXJjNqkbk~H0M`C}!U{q^LU7 z>xBhKJp}oSJ}Fmo60H~W_e9Njm{7dqR_)wH>cldH!LK}qc!c#6^)Q?kS^y668DgSR z4ayOmpzr5*Vj@wuy@Z{{wrhS#<;Y?36{gl!?VB%bhavV#ycao110^~fE^*K))_-w+4$7n3pCN`b!R zbHVxPbx-dwmmPG&B2I{-&jda&b9b{B#{>&1t4KV|=HR#G_D^&n;haStZ3Pz*zB`q) z@uK+KpViZ76$4T`%e|Ysja}9+%{ru$0px>v`qt9pE#&kwfnaXXQzdjE8C~FZ5+hli zCVAu~ANHY02pD3yE>29Z*(e__A@Aj(Nmj(OHAMf&+#4DV_z5>zzgor6qwhR)kz!IqsY+jM*(e zmCA}mTSL55!8P4g!C}vM!0Kt|Oqni3s;16iJ`|9;@?=}IiXLo2(JR$@hGR%wuCBUy zp&bYe`>Wct3oq1No?*%N-=<-VUBq6VE}As3#!YlA(Vb@IO!U+*MM*fEZh1lC-x`6D zEhXh&U&E~heQ5nZkk(d07Fy*E=DibqWUW3BDVwHrzC`r{VF~`;9}FE0d-=i9>k&`}eQJK*HGD%T%@1D5F)^+|=cw*He%SBwu^Gj% ze4}{9i`i0EBeX<$`w*F6rOP!2eIa_q4i`vPF`;Ce`DPmC#Sd}DP0>PER0{0#dBJX; z95&JF8NV1HVaUp$ESKTQ?N=Z-3gS)OK@=)pevbF|!k#;71#_~)ZR+ytUXed5bJAM& z`l)PGN|iEQaQplntsPTi>S-(qa3+L*M=z@9Ide=5miu57UMAIfDR;xI>PWA$l*Z%M zllEg=VDNllT6Qn&*Y5vrpv?=swH}qW3Fo8(JGSs&f>;X(|A{m9qq#8Dsro2{Om}Zp z((L}lBTUN>Y*Ucci}{p-l!~baJE^gMuFoz|aJ)YMvdhZZ1qf7BbnmE7$B%l4Lf#|1 zlzd8E3sy0(^#4GYmZyt1<{&BtEB+3+He^+52WWw=@=SK=*UaWTE1TT+)Zm)U;;%`8 z+Th69TOF4iZ0bzo+DCkGnZEL6mGFAy80qFRF$9H1x%(ICjyp;4Krch=ual>G+d{Z~ zX#KQ_0y8(id|@EfI2sZ4;KGG_7cfk$vJd_+%F>r`G6~)xdZ(q(ht+w2pZygZ)CQSU z`K>skMIaT8IQ%1`8ticu7cRhwiqQL#j7*sX?U9dNcn!(A%G6d!Sd`e4asKqb9iz$$ z{l;Y<>?m|v_|c}dz<7>KfaWnJHD$=e)Hm6Lq55>ITe;D0s++2a-Rd@|*wjxI?JpTj z$2HGh2ZsfmqJfgENzd~=?*4jrzE+f7M zI^LtcJ?U}nKQF7PwuS{C>;~D?da2SlAE5aCe81v7`|i-woSaS?!l6IC&Vl!>QRvyE zPJ_SCRNRe(p*{BNM-ATeFNyg>T`6n0irw0S;Jq+w^{zu#={a};=D0%wFwq^r3~C>$U%>VSE?t>;Ro?IB_uECjJ_YvvPXW=#=T?yVG?Thu56o5OAUL;| ziLuO9&*dhz@8Et%6?9uEI`&+^tJA#ekjegsrp80_jY=9h(JPzQ-GG?BkT+-%F?=|% z%tPfI$H?3IE~a1BjnZ7jcIQ$;>mCyd4d9$QY;1tmP7=$Gh7J`Mn&+OlnB;OET@sdW z>Z3PgJxGMhl|&Y~(WRa8onAs^eSfy{7>4<_-h+BLL`ZB3duTn(BVv(Em|V=748=k z@8+65zfmDE$Q~f6?ul$y5AAQ;`A+#7Pz2xS=$!gApK7Xom|Dw@c;|iHwV@hSQoNC< zrVz5vUE?h~TEqWR6zUvA>Yj#h1=f6wL?Z^`?#4SOFx^aV>J)QN*bG2^Efwtqf+l}Y zu}5V=gB9tcZlG8L1LexbAoOHD0R0+8l;07oI#!=pkSYcv1{w%ZKQiObql)Vf0v~Pu z5*CbeU5j5P7i?8ucPWT*b8ZPSpoIi{=aBe%Y< z_t|#cI-EWX$Jwj(^@yk(e{!h=eqP;6ZR?w31>6iDX}o=Dcb;Bb`b0dc$1rLDLK3`G zU1mFmfr~X9rb6hAZ?-cKb<68#6T?CgHRF+7EqBlW4y(hUt(;XU>+iGUF}e5mI2(OJ z?yK+96%0#}-Run>{W&ggu=aB!O=C_vY`Z>h!K##M9ykUZ^Ybc(tV18IN67SXJ|A_2 zy9QdtIT&-~GiHVQU^ZaH(vwbG_W|SMx2ZEEzLH1L<6+5$)=S%hy%CvMivp`j_w_cb z&4gd+rFD%+Fhu?R)}W`QU`@hn&w-HWJ^XcHvVi(%$>>%S{?I0$GKU{?a8`!HF7N4g|_gl}WMSSENt3Ze`il2*OE4m`bK1oDJ> z44aYE0WVV|Vhp2~Clxmk=zzj2Sx=^QiQi|H*(g63)7s&cH^^v%dk}A|u5wPC z`E-foAZ*^<#L`D!q)@X@;|Z@4OcuA@^eW^RX8LHpSbU&Ww9c38`N1+cgXu7?J5oS< zTC58Zq|CZ&p9F|q2c?shC-?o8#`(XAUXWI|0>Rl#0W*zfP9#SNFBUoh48n$Ia?L;9XF(PO;gEU4rl zfRr&RRTL=CGu-hvw)-Fy@6Nw$8rNkyx_^yJ!f@{PIOmM@xpcfYIW|r_jc3}Uioz!Z z+{W5vi9_oFfi{9|U;vjpPd;}mHSkV`$_cAwl>=KcQ1{_MtwmR}cNHmmi;V3dc39?! zeS71Ymz;UjD#r9JumuvZJjpI}EF8Q?maCDV2{&Az)D)sd=FidC5)G zRpLUGikG{DE;o90Ts-LBN`Od>c*l2>^>o>TK|7<_uElYl?$PJk`x4Y+KF2DX25BKT z&YKl@D-7;75X?Szjh)o+xPP|HQXRd0$`I?!o`d8^zsaVwT2G!yhD`$c@CDf27ZEM@ z?)SnRe@0Xef|ZwIP8osEoR%Zypx`PEt`Zk}AUs7Ojz}9H_G1~WI$!W%;e3uA#-m!f z$LVJ1(Mh^{BgYCvl*1U^~ zm>oJ)6&MeQPe>Hm|5`o?7Ky&BhJ%gV5yuRp3t(R5HBRlnebM=63|JB2EYpWq&LIU>d8}2?k~f#wV9lU zN_wTYLh{Ygi2C`~_KYiR1GrYaU{}1R^_ga#U)5v=rf|hoZ4TFL10oYk8}o!9yj@L8 zz8pxa=v%zlQM15xSR_Lb>!fL9cMtj1)tZ{B(q`1C5PPi4K74iZL%3p^aP-9=1;UG3 ze|(~gWRz;Y_9cE=9_E|XK3015wJ`kksc$kKVHSmErq+=RpV|2L!}(_a@|>1i!(xxL zZ~WyU_krKEz13w|j52m9afy*z9{CHjH5*;@?epkgkc^)TD7P!O_EjOozl`%LUs))9 zG4x&{hX-xGQp7hmcr)iYu_?ljE*g-xh_Ir24_2_Wzr-HNyob&Fd1*b*xpEPV__He3 z6Qe}lKI)uk8P+x6oC|@F_(ycuh8P+ZMR?S4XY`D&=blsY`d`v);4-kla9S>&NX|u? z532ULu1gHAojc*bDQA076^jGWlT6x|C<~16@t|G!?c1#bS_|31p^t*kvH;m1Lk>&g zS+y0}DYPW+)@#HUxL(>-pSm)rx~$xtX-ZCm7>O;%4bC&XA(7hiZN#Hyr+lFq{*k{q zoCEJwISWvxow(|9tML~2_(Q@QH&l*5Li<~a^5vlcg3~^Z*}?9%&h~t?C(a8Sm@RKm z`at(LDsY1qHR^4jmoGk*6iu+lof((NjFv}CgV(%Tdu&fFf2dcMWr3~>`Or@m zB9NMQf~Og|`ET@>kY9Oa5=f*qUl)rhkb?)GO;|a*ipsZAGz4>?eNQRU+nDP)KDHF% zYC1k(6m&Ro()!u&*IsAC3)*#6BmqcIp1YB}4BlPq=UZZr$vadU|6-vWIWhC$lJ!ED zOaN7>kP-S_cs!OLs7Vol6r;IX4yUL$+)dt`uRo7Ea7)#S!U&R^;^&ytO zR~*i&x-Uu}_4<6Da`1&|H^e*EMKMn3&&u+0Aq{|P8D~jUq&>zKwA->y0$5{?InB+% z=NK!WNOKxZlAh>91OW-!dxtnMOwne)lN^0YIm1zhjb3^LvPT?Obk%rT`R2(%=m@EiHIaVG#d_|fm1SpdlS1)VbWKV|r5)Dwdb zR?mRWTq8JGIf=B_ZuTY~zJsAyH}^6P8Sl@on>ME+4+oMuE})mnte{eU0Nym~naIa| zEQk5JYp|>|ZmD!TY)M3i6KB?PdR!vtF!!(HEZ3*f$Leo{2pu-rtC_c-LDjZs7w**E zpUXu;ybzpSosFn-x2gYd;mr^lTJ#Dhca~rAHQ-D<>A3hAVggf0MXB!K9KR7g$IG4K z_PZNx>Nyr123N27R{nlaI}M$z4%5yaDZhDNlnJe!*%|0E`Gw8-U=pvY zUgJ_6cb2OUMy=dhPB?{xO&&faW?+>1C0cEGtLZ%WiK2}#?UiAl{&v2S_CldcC(5Yw z=`BA|Yz=eAq4V1QGWR4w(kh;Cu3#cBM(6Lp$nl>UkyWIOxOhwceNQV0FK~EW{b;x- zg_pC#alD_D6iN!4^3Fyqi2kO(>3=U=s55Z-VIUZ+U#5LU&%`s~-4idTsURgk)rNC- zn(c!Fn%03ureFual0VxN;m2%JSZ+M~V@iN23qW@hPn>GKO zp}D`%8hid>ezv~_*y`Eb@3*?X$tZ^QPY|*{`ofS|HMEHD+%rI^K0vftD8S1F;>Ix1!Ls;|UM8`JJ_8*!|2wZ$627EERpaCc z;K1TEst(h^5^Jby%{ygI_XZb`aO9^I!3GDM#6OMb7NU{!T<7DxR#lh?d;%Gv-<;41 zjRNrlhP35Pkd-xTT?2A^%Nw&9eCWp%X}*VW_88j9QN$WM?kh9J$sU>u|BcNYfvTzj z0*DN}0Y%-G^xMyeG~JRM*ejmDkU#4(ubuz+;%nenF4jT|-txZD>TggVLz0+p1OhmYmw}tO?}*o68PuI-$zpd^y)&g8GCE z$-|hun;3kQh`S@)2xqgPJZDZxvgUt8&y+ynI%VyUrAKm^JeJRlIj^Yr#Eo4DX<1nq zT`okCx+eZ<<1o3lVAcsa|8=;s1NcBOyXU{%bbX~8)#&iU=> zqW1aR!J5CH$%V+kKnX64MpgC~H~kWsAYl)ZnSZ=V)Mc+p$^zHII4UP%PkoLYCNFO8 zew9Jb5hwsN^kT0Ty_-}(SfK)ANO28r!{d7w=d9wNO=}#kg*9W4$7k|E2 z8wgUs>3vvwYI=KnGB@Iy(WyaTM-O@&_$F=iMO&zMs2{#Y<$F&x;PT!5{qYVi=&_f- zpap6Cq3y`!VwJIXhaY&5W+{oB$r~saueR6Xh&oed$5$Vnn8*x5VyuanyqiSxO#_Hv zKvWKst7AIiBukj-NRpXKce4dp@{(hiB0)Svj%$}}JXpQR$hV>ro&$A1_JhVLa8+QI zD-DyTQy{1^8AR4wE&P7rc4>5=E966#|0MSQGv!CaH*z)c7StlKm%%*co|wd1GT#d- zo$%ql_^XKglPY@9mVCzx(P!(8OP?M)1u|a?q{$lV^hj`T*=WlJ=EWYTSu)5?T7h-q z-N38vi<7R(Be!+8R~V0k5o`53va7fO6?|*?O>f1A`HaMx1YSi^fy7>Qp&zt}V;$_{ zoN;<0K4Aox&rl@zzGhKM-%iUKL;kd@a7oX9`<|~HeYi#%9kz|c?TGfuj_e+ zq3m(DU2}75*68;I49c#`K@{N}@g}ze=PRbMdU@)44c5Z|o^HAHBt~xYr>3!+II%BM zWw^(z8{vMV@B^FjJ=^Q?OrNuwsI0^l+vZly8F4(Rc1FE08 zgl%c5W@q6#j9CH>MYdOSB(Rg>K~l!H=Wpho=GyJ_t zV}Nq1Wx9kDY3|3fXKsamgT7Cx@jc|%?O-q!!Thc;T^sLw9*k{{CGlu`RDS);R~U^s8%RoH3P z_hn6jt2aU1jJsR43{1FWq)4}VH{k9e?F{v&%b#m`vI%QA)Ibv!-EVwq!@&ft)5`v< zNDenyJ0cX;_VapKNHVeCLa==CmT|aLeZ1sQ1N9ubB?rv*{_oX(^H96ia;yGsCoF1U z=)jsA_wo9NQw?!x{BYis_7RWCTNA$HF6X7+$GP6_OPn;=(@t6mFqvuxO!JolZQt~Y z2(3-lUO5*iIcs$g)IHC_D4Y)B--uyp5r5$>Z56!HwkBesBM!GewmMV61fJqE`6U3^ zQ^%vZov_@-PGp*djn1f(z8M`U7|^{N7#BmFto&)&H#)WXChgtt<~~&frc$> z)$o;PJmi}Gj4i5lhWx0WZTxSiBdfR0S1H>^Iy=Q3CR2NLIuMHfy?f zTRt_-Nr#~Xh6Ac%ODU!wxW-OnnkIXg?hEV$2S@O#Gnc3$NLV5)V=gq4GErAm0lf=( zGhNyV!RF5TF8;~`n&(dMj=AH-ufG02kPP^1zA^Gk!_7n^YU+xcp7?wb0}?^Ej41RI zJt2;_0oul+QH~#wgH^ApKUCf-r#cGf#?cR{(w zZVb7DR-uw&39beJJR8A!e_I`pAyE-k@cvTL@nl5-j{(mF|~mUMKgfq!tXM#kSts7uRO?_F@e^>hH@ zdI;xOdsnYo-M1iNBk2_N>x9-y@xD;gL5>v(S9(udaCyi;**VHM4@e`1Q+lfH8Vwl# z!L@tVdTKfO`Y7rlawy$~#1kLD^~odKv>jXu?K~{Bqr2$NQ zpZF23cp4liBAmk3r=87da=$?G4mbuhLPg2M^s__Bmz1~C3MU`=g2{y<5c=`tkQTMC z4k?wbx)5paeMyS$@yWtCu;xlVU}PHFt9y5sxDSh+^A4wU-0^w&4>C;rz=DRq3ml6Zv(xAfMK9SVmrTc)Q+BT!gRXw?gxgfn3RQG`{$vG zqGfHqh@uraAMzN6cvr-VT$S9?GA`|~t)h0VHMF~}k(W;Ph%$(Da^t0_u`m%_h3}gO z5n#|VHJaO6Vwp3BXg~(t)JVT>xdK~hQ(#tgrEYAE1id{hm$cMAhien>o)*&Fo-Da( zWd2t9TgnItwmvZ?v}y6T{h8`+<=0Ea2CY%88v|N6v}+leSk&M zU)9(V_q9E{us<5fPAkVhas8B=hVwtD3Rcdfe&ilOd@(wT5?jTjod0{*@JmXycWfA6 zYxjhMN#$Cgqqnin#gI1kNv(;4>vDe)NLe6#hGuEUG2&tv1s4ZG0#W*(DrN#-S5_(`gip8N@?OL!FWHZI}Iw`r1_+uEl~iWfBu+^(DND?eecH(RISQ$1r4z zZrCnjR3>iXA*{tx@!6>uy+Q3$=9J$PkIbTthQ2viPSXDo(WUnc^PcE9OPNX5RBAs) z5#*P5qCZ z#{tv(%I;%b1r5yLS5AXJ)otW+&ME@va9_-!JQzIS-Wu99N^r@OdTjl#TNr{>2>sF@ zEM{ayZ8g*ro2gHRgnLWvAme)*?c3es2O zVx%t5s`6h3lU0=pr)mF%pXS^{OSY&FoyI39zEe{hU?Z9!yA`Q34V3^uyabd%3ZvJ& zD%U@&*Pnc?i0Tq&DIj|;=9@B$nuQqE%WFPbKJ4AYCB0&fu%FGiC6KyxQP{+J+ z?U{?-!y9VAoFJ=L*xe%mt8=xpsfRT*Ju(&6McfMXGqf(RLJq3vo0(?zIX#!M%i@9~#MSHFaYQH7B8%LgCCDfEYZ^&I_qOAI7W z5>$yKSHJ^?P?l1YX3jHO3l+3%%D+715=WQz^ihx@nEXIPTRx?J4UUX%Ixe%dzY907 z76l=?Il{>b-4{Nz6uiz`^;6;#xB0L zmofh+zhLx5ytrE=FNYY7iX1|qp#5gDR=9ouQ*7pDzke}F5p*-c<9eX*mPu5qh)`QOr@Cit zvZmT1NfHJYyQPL$>oaOdQR}He2Sv~tB-|=Nq|hgY&zd#wFGg#n7-Vl?jplBEv-z;@ zzMFwzrgM)kw7Oh!_V9ZBk13~)v9X{$(ty5xq4lC}5ae15-}hv?FjV++oLSn$V98E* z?U1~v;+eqq+Yem@qi!vfvO>L>jp~8nOvj)?oYRes_X5F12?G>Cuhgc*vEZk*mo|!u zM=xkXiJ25&XM10U{H;JQ_(lCGqL-FL_XsqE26z_SU#lL}PGoB^g!^fu6QjKAY>e)7 z7xJr@VQcMCQ}BfhzDt_dktqvr`#oP;K~&5==Zn&wC)>;8X7L9uSvk+C`>H`A@=m9V zzSPdlBnQORN-k9fRreszV34}{&6oOSi%J%8KwOn`jtFbSDI#you^AkqT3`ZCG z@#tCqx~TIR!Y0tgkS4E}8Y!UqVD6RimdY^b zee`~=`G_k5SfU9QznP!!g#6BgOW&jyF=fsUWRvIXyq=DPwwhlq$skTPZc1JSnV$38 zczKx6=k@#LnAUC)YAG$nBlmL&_!V`xEgXEG1$>Dr4~fvuCFQkxC+$48HEoG`ZCZF- z$fI8jmj20O@*&00_~UM2P%zs5?D*~+*hw0I#m6Ydt|>xE{GQ?O6>Ux^g#;xtYy>q zO|%`3dC0&nduS#dIuzfTtywtc)>1OJM9ceM841_bYcyYs9JR!eD4vMTYeigccifpW zi<$-Q38E9=u;;nBRG|96WE=ChG^YXW`C?U76=+TaOcQhhz8w9oARMo5nC2Z28#f zEL)sLftx7bd7c_k!t1#3`5JEU&syPkjSz9; z0m@;_{)}s}6>9jf#GgMMmAZJ5Y}b|UrJ}gBx5}K&f>XCU6{s@iXQ0;ft2Y$*!0I~WU*R}omQP!qKeLs>ek)RLmwEkLM$N(y=7Df zCwGC4-_v^8XbKe4A>$fn0)ZyvcefbWChT+2hF;QqQ6%uUuLYxOi~b zeL(FfrFS_}#c0Y(dlW42bG_7N8uZ=$R5nFg4nvPGAjv&+fjkdP$XS%XE=BV1JT1(i zwhGc8`1~DgI(@Gk^w|-{_zVrWgOb)rbM{=u_Yq!dToM7piNV^DlPt3K^Sy?D@)T;M z@mpI)7lWkvPx)C3y@fn5H{t2w1UKHJA(J6YGa2*I%`@y;~!stFB!@y!F7WF{N| zNHqGa_-|6V(5FAd8;q`Y>{ZP*E%MI+0`qWMUr#k1L95jI9%>THiF|0dem#isQps3K(^Ffxv&u+dwT$(p(YNr=bF{q~}` zcTHYe(6(~vaMAw*-O+U%Q#tbarfLmHwf=aLcYxo}XjDq~!u~|Db|PnEP#Qm6vgsF< zGN}CN;GFV;*6wM$6Vnc73|{R$^CjG4R>ZfrdB(L`6jQCRP)IC9Kz-*$ZtqD{N|rwf zk@D^TNQyU+N|>Zi={${VFVzA~gUW%eZ=Y4;GTHeYntN8{&W9GLZU-wKq{_1Cy*go* zF5LS-!-<6>M`u#;eho7Avzx;AS2A7lWh^SXSp$JpC(4~92Hf$ItPSeT27Ey*V%iOR zKdVtb!DmLW{u+e%HIe+^75aTPtKL>pGfLLtO2u|t)q=CCR>0s`l}gpgQ;TP`L%YA> zeaJjr>1{iPh|f_CN#iE3zk~iOy0XkRGylae%|fji)~)-$18b(T#T?9?4S;xod&nzE z9bi!#z?IS$+#{!xs;sc{XeO!si>YSyk&Yey+l%zPd{Q zspZU(xn&idHpC#ua4F+-48Qf}c-gsQ058<*Rf4nD86~tTtguO^O<9TNb}Sx<*|lV% z*fp-c%R(gH0&GH0HtKk`U0~LftvKFHsC+AGHC35DIS;8~;+?B!@0A)s@8~-{+6#VQ zMy*0c0XILIi#V6L@QId^z{S_5qo2kImh|knP#MHiJ~OrYb9-R#NGA23Ld0>}np?yO z=m%?J>WItdfYJ8H@4(vtum6aLK1~a+K7~XKVQ!g)hEHLbEH$&Zyz7x?g($|mk z7>MekKQmgbrl8#o?E5rY+^CQN86TVe1u>#q4c6Ww6fBM7B_#A8v@dJcNG*3LkK3$G z=GOZ`b%B9n7Fex%*5^CpKk@svp#3!8*vgnwb|n;^bm${&f`@@h;80L$z+H$)p~L!* zJ_n8EO?$ECIP($sQ?{akXhFQ;8Q^pW;E<7nEK$hs$@smT2w=@0!M^Z(f|ySTMS8yRE;j2}UC4i=G7I)S8$HZiIxY1IBqYHZpRoKz8Cp zl$%vSmK8nD+UE)q9)iiF?l2}APJ69nSnk${Ib@jr!i}}!4`#h6kPD>Za^^E6Mm>~G zhIjkZzs!QMD%Lw}xosR|1FmpY-BGQRs z@%{i_@0=(D=Xbn{sStIV;=aBvR7q(`o&f~m&^*4z%=ObV69 zbLNx{YzHac;=cK!$%IqZ3z+OIwEl(K5q*aDb4we$%&A2W*6272(ZLKlJT!G7EYr${ z%~7;jXticS?YB*1dROh?caNf%yAbzQNj$~0Z9BiEn ztVQg82va^~p#BLoXGY!TeTs}f1z+E(T+@zwjJ&hUa7V!kk~YziOf^m%aV zUrTktnjrb2|4?)I3~}4944z!GK1nV!e|(D)2|qFvB-`qHNME-l zJlnUBo9LD7dph>f6VWkOsZ>!d295-W#!#*_unPPfoGF*-%~zE5?F##i!!%d#{Yk3~ z1;emO0uP7yulM350Yl+G+HaC+$9)||^Q)`{^BOUoGf&4>CRtDO_lKBbwko!Z59ut* z2C~6X|6ZoXH~Cj>x+sFXN+WuOF>(B~+e>CEexF##BdaL4gty=6f?)U0ZU9;27u2^E)IQFNm@fbp5 zdv`C05l7-XpF9%1A8#@2)IGM#y`jC(UY}AKei-Y94~)EwtT$?5X2xD}N%N)w1E#nb zC@3z<7|6nGCA+6>;Jk;Xg^Jdj{e){0J!@W~??;@(o!~L0APsIL zy;7%WEkuZ#~u9e#$Gr{G%S9R&w42>eBIh7+WE;rxeF5(zst${ zmfzz@TI*K%g{@61c3U^C7elkUoH=TzD#qBUJ`2f7BxTm{n>tAeUACoNzWL9IRF>XF zXYh2HQj<-Ci&D@PoqN>V7Io?o=VzPzLX8_0cux$_8VUWWb-v9fM(T;QzOy*2EcVSy z;RH7kCP6I!1bS4)MY*)uX~o@_WI}kIj3(PLpW~hsx`7%8w(E6@&fnNo`44L@Aod~u zUWVP34EI!}kdisbU?lR9*^;db*2n7!077jwX`0JQux*@{?P2Z$s=XFSLkZP6TX#4tihz;1Fo}pn5(@;Ck_EY5q8GcHLvGG3fm811e9y_8W##z=y+Sp z-LHOztiUSkGC`2 z{LE@|kHrCvj02a|e8)J1DscO+gAW4jGW+q~G2rX&`y8Xs6Ik z@K<~{jTmutKKp*0Z~LiT*-d+K=SO|z(e$L_b?b;h031cGNidYQ`Ykwg2#g%@!?)#I zPX3wBL(eou9_vhBoqdvTo5|dDP+4YH(%WKsFW$uUU52t1;FlB<;?9_k+S?@ntpO>y zFah7?6671arXePub*HbzbV}GxU)Tx&rGl%W_15=>)QE6jQE9 z3;AoJWXOe-{{Wg)kt819P-4sq&hSD{BB{xt3vZv__6Q zcT03=jH^pMheFp^DYFwLn@g)S#f=QQ2MEtoMc{!~hUK_H5tFy-W`ggjnfNX3j@b5; zly%u_#Qj`WZaUpRir9hUvYTm6Hm76MMUP2bTD)tE56E5Lsk+>~!kCOb#tcz~1Ycph zTrU#0{>`rpdP)ecmz<@@VIa&ww=XujdJ714IOsdpRLz?2pV&R1>4qPHqHOZm3V$k* zr;GB3lOsj%y3Xfw&S`JsbPQu;jUSoVweLop+!j{;4^d}06$))qnHKUISi_lMlR@I? zM*4-}T~4ed*?&w2*iPZc3kCdep@*=Z`}sFSX#yeV>9=Pq#`Hf-92fU&Az8E)|p&|@*bmA?9D*st1!Z#NS&89z8rn1?qPArwKt z@?@Fd(gx1rPkFtKf*DhDpNRz-Xs{ zT!7!={Po<{-`O^P2B?)U?GS!C&~0&=S;$e2@946jWf5t_9xw#;k* za&*x-L2{ZbI!lgl-vRqvme729T`=%l#j=O?tsf+wz7I%F9XX0<(h# z*>_2_c-zeB3adI(l$rr#N1X01#J;$!onS|idSFlejC6br=ISVP%J91mi8iSYJ%TNK zXt{ChrhdR}5!4f`ZB^3sKXM_uj6XW`Evk68tlVIQ@MdaF}lP`Na9c z@#WGE%abZ6@U$%idoH;luPsb(9kxsxu|El-;Y>y7kD;qp3-Ff#b!E!`E`<{=-};H# zum3Xk8nrrE(Lr_U_rTQ2PruZqk7lo?75S7$O$(Fa?Jos99zGxq4+{u)a+ef;T7g7g zD9CPFntvDGAdVMWDtcHH)}=%30PbDv!$$3HUTB$1^FEtz?^K58`sT(sYRbkrlA;Xi zAaBZElsdN^gyjh>=$Ga@TMGh^Yd|p74%<86@1tj-t2@mYp&SmRG>ygL{R=6FdAS7! z#NIvj*gjl-zZCQ@zIz!)cZETwMouh{DKxVE)kW{2k0G$31HrrOFe>A>;QY$#{l33? zTNL!t-7G8Aj-7h=7`DCl$k9#GwZw|dMJ7T1=V+7x)es=QMOg!Zmo6F2r`vQhjV5n!#UiG` zYHS%M{szBjE>Zk;ja-Ox_k1a1+vzoES%mK8%*s*F5Dl#yBP1m-C)5i}|0Q5M{MP+C z{}1H*vMXNw*FlKFd7pi2pkUVUx1`$F3k^bP(~uPQ<`d?S4EYVe*o?@S49#AGOpcbE zYSihX|0B83bG|H=Hf|iL%8fHNcMuaa{r5vG+R4O5Gwto`w{9addxj?ygMqeIVINGc zlpeRN%j;lLW{qX8()wVhRIwc#kZ=L15Qn;QAPAQQxSpC8sYWV`^X%J4#@Ls@G{Pg@B{C13c%G1H$Ygp!$|uQ z(_`51N0Q++M-py>_ejsv|JNJm_h{3vV|Fg%e5LzKOyaXV{iy?mt`P=YWUYm22-yvl zHEWN1KUvfWQ4c}r&`CZhF+tn_S5FYA(@*4K;n2zD2gm7Y}?7`tstoECfyhc&pq^CSWW zW-sHi0ku9TT;a~RS>iR*kCO}yJ%Oq8@-!2Hth;fxWLcCCO!`xR?PZ*d%uKSfg*Crz zzQR}U3QKQUr&uR;u1(+fRf5B{7;gY?n<4rG1}!IFHF4I* z92HrQz-!4qJr<3#`9DVi^2lsWnYfrqfpNH6_pieDfRd z?+{nmxZyZ@4J@!ZF#l-U z0sxr>$ck?C9mtmmqwCE{*~b69TjtUNFRzW;@BSZS$r>xPrD(}VBiO3%Jr6U>cd8#G z%Rc8V>larH!3kr&$8Y_J%yvt98Jt|zDKn*V!8I2QH}|_oi^l#H0yw1mQ)`<>wn>8T zjP@|z%>$Cg2R$DKHffQzJ>_D}v4+SVjPKT}{3md9`kp4*QAH!1?mHNaPdVP*hd(-@)L5yx zqLw$8SS~U?S7_6%T3KYFMuGO(7k=ar90msf30foIjoy zS#!VM>6LF@NUwfse9PbX;xnIQBvNxVz^R{5XFB^{B_Un>q1W%h3dWqkotQmvdZ+t$ zuCYaJ8MS7LfI`$_!F!)3mp93Uk2 zBmwf#sNv7Ypvx)%&|RRJzIvr!)&moLzc~p>WVog&;tY4!)_a1sDx`J z(EUU-Q#o3Q`bfi$C{sHo@S;`A-avBhd;VeGGdxoISijcni{2)5LA9pX3b4bcfG3NZ z#wMQ>jK5h2-dILH^W_fOg71wHYRb6ru^Q7aCM13l&fV1Mrc7oaJXNMkvJo#Xq6M{3 zKUCP~vw5_72&hzMm^uGh6;wsRY1iXcwyNBBoD)oYTVCG;DLf3?Wd(q&Y1#hq=bOJ5 z?h9N%LXn6exu<*;SL${}pad4@*il$b+?97f#^<*?*5#LOaN&gWy& zO_@_pF_MrRbBJ=NTXo;x-}U=v6dENK2f2vxR&>xc8@415tH>vTZ z=kC6bqeUfX@j5nYs(BB77*0rk@m}780R;b?*Xv!^ zQ7F~or-qa}@Xwl6O}LOI)ML(NkDg^@<-kk^d7I;1Ci8)-IfI+xfP4tEnh{Qg^sWe7QKGNz%;$NNcpE)De2!O@lyNv;Swf= zGEFU$rc6s$w0@BE6<&>8vBRjrzf3|WGo96n*Isno*fw<+Tmu@m41A)adswNuY+`h% z%@6s|9slPASjm|S;p?cioH(BmSrsZ}pL(*|+E-6TwAZ5qB`a9n3YL*N+?p<+kg!kB zrCx}Ddbs`EqF(NAR{cDvFkPUk!|;sj69^rB);#ylP}<>x8SmV0LUJ(yC8Kw-6js4k zYHpy>sk86m1*(o5gA_mbim@F5obT%`C=S~n?t(Oh1`w<+WH#nGR>4(2;7sqgZwI;=0|K(ze+A7RlPAYkD@>N9C#*_|sd=!<)B{LaBwL;xbYv zM@6FueyA$u6WQz8`MQw`_|L|TEBiea1$=eHM+N@g&e@X=O@_1=XWNstXOEO0G*?M} zGv*iTW9KC%*LVM@w8xl9jOr~gzWNtE`QZKLkvk)zyY!Kem6S1*YWEM`{_|mMU)W$L*pQ{c9E#9f&`SaQ_e3xjO!-~@< z8y`hasC-3^EnAzutM4AG^>YcaL2usHtaXG}E8Ahm;ElWqf|-y@7_;2Z#S6T9BhJi=7?k-PPTTUYA31zhdH11Qs+shDXuVFRhi20h-_T}a^_ws7( zPyn{Q!)lfv_Yxszj+nm9;z9CHH3u*mgzJxk~Kk!*X3t37SG0`Dqc1^@-gr+)vZEE#ZC2*{`-$glP4THln(y(4HjF% zpu5yRB(C70b{{zUJ_iEQdS7LOJ1uNuCdYL)qY!du29-l#7!$97vn`M9&HNkG2?_vj zS5jv>?!@_OPWv{DKv-=Z|D^Zg+?UJqVi?U`dbawg-?-vH$PD_CrKZsPaVNb%U3{lf zux)Xv^S>X0S9IHK?Fod(jTsM!(FT1ik+tS)#?e{B*OU_I?y27**B6Q;Z-49Gpm%`h zmH+h{5}O+coH0(49aGA#YF4NR6qwi>e{1RVtu9m7X=^fxv_t@rT#i+JK47H;d>nPF zRv4*D9SD|+{Ea7Z_G!_R5@NbQBuS}cIw_wZw$oL?%6(nW2CehQVT2b1wb=;ikSqX~ z*Ug`qWl4z{IbNR17BT5Fz~8Xp84Y!~;s6>bLk%p~IQkScU}b(>*kN*i0zw<?kn7+u&cTq%a;$-Bn8J*N^vG&zT#4KL03fSiOn1om`KUehs)M(5L*p@6~wRt~!$|9m8ULcY3aJce*lh)H%Uvi7!a!2KV!Q zE9hWm8fXwMF``dP#n)T=p>Ftk^Go#bR=UyR|2o#VvO;s*Npq&Imp`9o6NEOsZt3re zQ5dwB%MdF9_M|?6g_e+b>)73x&a8yi_ zyP!r(dHT}I0N)gc@v}9eK6>8pdf~YaxS`lq!A^`k@idiQMt`zo@jLlY)@X^@Pfgwn z#a=52J~-z0xluzbf;^FBQT5oW5DO0Q%tnqOghvHMfoj=txqTZW3h*fO*C)ELj9V7XpyvJhjKSey7Z!UG{hfALzGNX(f zA!o+ATprVy2dL11b8D!`64Y0d5k1Dcd-X0Bzv2$dKf-{Gqg$+yYE@_0k8*l_{~g}= zknUfO0lhWaa_uc1lDTuh)=li>bN+kFaPR;}vmpp0)Uz_7RBer+SC3)gMJhfm`yp*apdP&`*S>wJLqIz=|{tl)AH9k zH7A5s_?@Ndbgo|y9e>}D+yAMfCpG-BZibI7X?D{1JQ&yeC~foOq_9}arl%tCsW<&v zn3fgieyn3OB$Nm`5qkX>=>Qe5e0l1=t4f*X+Sc1o=q~{pE8{}*K)9A2FT_$|iiYa@ z5S>*#_32OYGO14dN&?FKG%Sfa6K1@^gYW+mi4YpVQ**@RAw6vCIcu6l2{2Gt;|nh9 z3&xhZ?LdEhccNcS`y!_PAIP>=orTuB&c0V+nn0JQ2JIkAH+B0DD*dgGwMUeWnfj>@ ze02CKjq?-GWpda1v%-@A%2x}p*a7d z0^g|7MH@2J=H;Zqp79D^o8z)wmiJ`K3ma@v ze6uCMq=oCJ?5yH*6!%|P@jmD33XN*@Xz@;|y3Lkdre^D$XY8T8j!G(Cn%-7^&f8{1 zsvqYE;@%$hFcd0 zRlOD-4x+wp*(DC5jPNC%rxLEwKl1otwX#U2JZ>w5Fck1>Ar&Sn@saSk!bkOckxNBS zk0zg~#rmbqS9&izmAh(|2=~eB_fw^3@kTx0ndLzR00Rs#CAEHcfqn}F0PIX4OL@a*bj)Z83w%?#ZhU}U6}geoA*)F)#^ zXD1CUjG5=t;Ic5;@&vCgi3s`e`qQXBzm9c!@+S%9RpcL>)F4| zQ_UF6?yoVs=1qJjwZ0Jlkp%fP{p54y665-X-k}dgtvfKSnNs}7WuN)(yjBY^NqVUS z@4&`AJ$K(Y$FF3&-lUHmGmK#XA>alXbbcjT5<&!$sB!Y1h)fBP6N*D44h z$wNf+1JwGKAv zscyDe@{)=V#aLKhbn?QCJ>nc2ndj}01xb>8pFzr#`SHuL07JrhuC%q31Ks1PlE{ie zIGhB)$HerVcQW_L0WK-Yc$(=74QQhww1CQ2>Jj`7UAs5!AXFWeEs=5eZyO%va)o*9%nxDCA(_F*Rhs30r+lj3QL&M7&zmFgp zdm2g5-vqUCZkP&?J0kV)DNH#pW->K3x61nrB}FadrP&o_I;D7XG7E{~pi_>4`VlAG z%8|g2hF%SCuLWY0e^a0IkI~)kloH3o+e?4rx$y@3b`8LI*oGok;8#RHpRhNXLF)n3 z+Mdh~s8@0I(#P>@roCr^Bext@!em@xYGSQzWna_Zg}V>x>Wo-+YW)m(b+8&Z29s}iDUQk>75|JtXY$qXea7Xb>%|q)u|i{K zOEMeTid)6H-Y@b;b^q9J(C@wB$7k_W57z!@8-CqL50~qNW7b>Iq)Wjl1mk_5HsthE zqwj>Wu85m9f{`+I?BR}lY+FO^&ts`PoA+V9EHT@dP`93rz-4GA(MjsUp{FpoRunc@ z9**c&Q+B8LFit^FpvtO5qU9okWi7p?8|;G&gc}wY>2%dGmBVs98V8f4s2Bp$esL@HdBzZ|u&d36_s=N*b^t-1)o5lW3Uwn~XlV{2m%6e`omGRvIY`37+mK`Z#w% zNPEgX`aupaQxC84g=g_+%~BROsr_5zN+|B(|3HTorfInSwB|+2&z9(g1b>qcUu^*i znT4Q+$p~@A%nfX3OYGy?{XkzK&h~`}*m2Jei&!pOuSW7q4ZpJ&4S>vGza zr3i&T(izWQm)UH8h>{cm30#wcwJWEII*PUfc_%mUQbYO2aF{_;MQoxux`6&v;oHm~ zQf|I_)|oLC>N{f)l-ehU$@f)WDotKS$o=`)H1ploEa8UrJj-}L3k_U?B=)mh!~Gs7 z;G}&RISUUD&$&raY1EX+ic>|>)o(l&moi_79H?d-c9+f_TSgdl4M}T{h`v{LfH7ZZ z|8n|)6?}SPXV=0;90?cg{pK6i?I!Ybu-y8R#<6}FPrvl*j{xc=G%sQBdp!w%V}zU3Tlp6u<$wqi`mfm|aV zBvyaZXfCTx(ZrtA?p+l3!kx7rN|h^2bLIn2XNXK6lMIl8P(hc=SYIwTw}TFg4r&Pc zKX3si+Zw%MIviyH4zi027PlvwpiUGP_O(Xv4Y0L$W383{yNENz_P3S#=Hy*lfZm(! zNkmEO@RK=~Ol`mDV^v4OXXf25SXjf;3z*!leJWH}s{yw5-TP?=hZ`fNkkl30j_;E}qf~L?$sZmi z<9V$UV8m&oOq?w=Gm~odrzj!8S^WoS?qi4vz}#kxy13JN8CQys9*_Up>?i}hBQxK(O!I3s&R7(5+cm8L@fv6{`sN@97k$=%;rf4_t0O% z=i=tMVwy?qOAf3E4#kFjI-mD{pvLI;qBW)`y_$;Dj^4jpJ)|{@t0)R~eSTrYfr7~K zV*YC&b!>+PNR)uglz3I6+RZHoPYBujUXVP%X6M+O>=qiRsLi>(39i zwwz|o!GZ9ckMwmLgPG=S-HSBfon1D~S%FK{ebub|Q9@Q0{C6pt>tH*t(ODcE$yb3a zKb{Xs_@gGHE|5*jh<2#HzOF3sexa5g-XzqZ0zI>ZOIQn>6R}HL0XLMr%va`lU*qP< ztsSJKi)Ih@!CEHyXV+|RxzVdyzT3KSN1h;SYA;{MkHwdOuszd^XGDEzp=Ln;{Q5FU>`D9<@*)&6w^ z5z^0yCEYXbq}HG9$lj?YC5uEE9V3`xA$GRbQyPJ6w(67acK$tBl=G$M4GQ*udg~P; z%7?y&FQcmdf<43e9{W)Gw&uCvOqJXpHk#zl(+!_Cy!`{96l2Gfr#=ki>!RB|OG-7b zb|&r_1D%6%^SSG3wzjyZ$53EYwIiZa;kr~AWJ1-}o`YGuCm4^lk6Xxo`S4IB9Hfo< z0~6hx4^4M-Y)akhQYQ#rkcUO}`D2E*9Oa6uvC82kLF2ZzlpGlwVYmO_7@h7f{wHe> zU~4f)i+dJ;^5pqR{?tXnk;>_ahNX-?V-+=-;P=7i=kU)8*flCrADN^8-JSU{Bl2uU z|L>RIiI&-cm-@;V>-(kSKmh5h@7QO|D60I%t-G*Z$})8dXQ+M6erU;pUmNn(+2d|T z^fX13T|c;1m*%QcYJP3(s)l6F5bf%<43po_=^apag$OmOf5!(#;8+)OJmF`pRY3#1 zG_reRq4;hd)%#+XWtWW#v_er=&&AOx!t8OQ{Ex8D?OMB-@9tq+PB!!XeCd=Y143fa z%QE&;ZY1Xu_s50UGDGY9$8=sMj@eJ-8asks{tHu@mbfu~S3>nqA8?N0zS+GjX11)q72<%$k)v622*{_ zVxxN4Lz9}tMt8fCm4kI*D}gzv%GU4e%qwz@8lCKtIqOZ-b>n`DFbY}re4W94n3f|w z8JG|*FMIR^ndM5gihtX$IDqzpe7&2^Ex$fp{2_hG~9pNL{L zg=wFn50;AQ#HA{DsaL0{q7~M5w}7u=j7S%MrF#Wdr#95haHls28y$3S+0bkqqjjB9 zs=Prl%QDrhuf&lCw-;H#MgQF^*GbcS*D~R3WMuX;NgsT=#y~HZqrF!&q0wKrjteI$ z1Vr6v9$pP$pJmSL(LLk)`Tq;cYFs^@9P%K$pC{Bd1PtO@ebSL;CSM~z+ySL&WGNZ5 zYjw?ao{DFV+>vk0D_X>xE!UiZOB~@>&#vT`1@XZr017pBpeCr!`&x(UPSSJ|v{r)^ z3o7!aD;(CJt1bDN(R?QyrW|TxMrW=36wEXV023JsJP9LC$x2v768Q~bt3m6YlFLC^ z1E1_JZeGu-B8wVfde@91|HC5W5N8VYh1v`v7IDw z4|APFzkgnjQ|#Z~x1&Kq+xTj9UhNJGK4|vxGoms5AS1E}TN5Je0M@xW2U9b0&PFEZm1kt_ z=FZRvBTS{{-R$+4`XV$bJmxeheq0Iy-KVw|iD`?*d?oBE4W9-aE>v+v-_wy3ZHOm@ zhZ+*OTUMeY0uM-+zQPTG@Dq8O?K3d;UG5S1a?2TL7J0;JK-S2sj3P(gvM;k0f!zdE zUYi#yaaraEOt^6)DqbqGV-qF8;Yuj!SoaA9DUOO#>>cPtr)xU7zYW>*XG8d~R5No# zg&YS&-G8T4@g6Saq>s?=+Lo#ZByf(Yhs%6(rlzYXQ{D|giUrjh+iwm;m}+?622p5K zFC{J?R=KOUpP1;hRCXQ^j0S-eHL$ISVw_c~`yJInIhnVTzIl6~qO4Oi{MQTBhLU&A z=A8!f(bI=#QDupCA({k)r^ESEW2zaAw7qp1u|Iqq!w7}xN@vrVf?!4UIX!w^dnVNm zSg(8S?3~=Ta>)|&lTREmSyKpS@#iXVaT5S^E>j)S4P7gpC%gwy^G=9a!>_5~_wb1t zGL6}>T=-F}1DXCLXhQO zt7SGirX3352%+C4OpW9Fgz)*9e0Un+MXG})!>9O;Rvg_FgOqum8?QDG*j0{xartSV zGEG~B(EUc^g>8a1r^U=QC^c)hkJ!1=@VKkl3g2LkU(8JlUpNkg+~1U`75D6o`A>Rz z6ozaV1;(b?X*`uqbJv{opsCFGJPVkGLMVn4DfrwrUpgn>$)@?WpIa8@0Kwl6o8w%mIAMOoqweVvD)%>r#tVrHsN%sjQ6OQjx;UHkf4X3=4=%UV?3S}GObC*MFYiY?K1#RZ24Dukv}=}C z{EnG#cuhu}pM2|M=L6mSpc6|So7OcFEC*Gm!8OM4rG3I%{52&#`h-4FSF6J7fl%pr z%zOehmQl|++kqO5tif{=Q-<^T`BKLr+ec}(HO``$91Yd75c7`?x3d+fArgsWH>Vu$ z1I%9ers+moha<|#5@-TFLm|YFD>hOvNU2H86uqWqR)&s#8*sM-*;P+F}%Mkymp$UyT(j^J?aWt0lR>HN-TS z2l_8b{k@Mcl;+_5Ys!M?l4vC6Ck*;MQNe=7NBc19w5Y3_>S$|KVKAKf2FY#%BWQPv zt)%}HiDg%V&LvUq0%5bzk%0X39_uw%-(z6xG6tH0f8_b=G5iUQ zM!&I;o!(PUnrKq}S12)>*_?GT*snK+JH0H!3dmRvJF~=k(lGlxNB|`cK`@?~R$u+&`8e#{NtqNB2WLQiM6#Z-a}=Rx>)t~e{bci`{$_CP6*6pz zc_H_=oE70`c0_bdHn2aj=#BehMDea;2E6iFHh#-HlhV9VV@e0?8iy(AV^@ffA0-i` zs=@)^sWpPDGp0Ov#`IeDUTPCU=u@mF$fweioQy~r&BJG)9mNpJRf77#_r zz9><1eD!-Qc>u_MwQ0*R@A4pJ|QDbJsFqy8w8+Z+l*-t!jsm!h#Ounv#P<556 zBKK*0Z?m_r;F~RkY(`I0-3A^@if8k@Utp>5(cKkz{amsPzB|!;iJ7)T3Sv2hA;zcm zDHGx6(3-G=Adyh~s}fs>?6yup-h^Gdme1#fyr>nZ4-DoZ(PHQurV{H`C1)MI&yz6L zrE(Lb%U;_NxGi`TSJdiC^>321Xx6{|@x1?y;DIjx{FYz^?>Oq0z+2i0nb(KVNo$W` zmzH1oZLSrMlBtpCl(She<%J($j07i%IN4povI<0jTST^wp3T&H3(gr}fmcC?Wo6+9 zTQ;{|npC|jzQpm``@WDua6EAZZ_^EEBQh+}K#?^*9go>dtp{)W)ru{GSewzUqF(j-q)s-5&z(jsvbE8{&+6=3 zmcnQ@2H9cXMY~UkeIjOO7)(W9y6oci9WV3tj%wp$Uz_1vJ!X!<_mQjZ6(=k8?>e|% ztt7dJ=!%*Ok`o-<*IHLGPtR=p3^h}-pxEV)ifXKfTjJOauwFcS=+ZK8LyJp731czS z6`hQD7A@<+>`T_E86`9_l$!f8Bw-`7J{J9+=JH51lAEY$Z$Y0E{&z?fc zOK=%ZPikF-b*)SIemNEe15BOo4!!dYS5;|EXMdiv5CBk2U+v2|m@ZUJZs#$>WE0t* z%J)J$4+*ch)5?4cm1aOz$u8$95>W`d6q=@4{dbe(^Bjep!C!>a+Xv7)>{1WZxrXL& zZCPCEI+cpv{8wyp{Jj;NdmDPD8@Xlu->8u8DgGbTBu9T&UV4YKrDt5+=rx}g0!GJ5 z13kTFf`KS+s?G^MeWjdi=xTY{q?gwU!!gcpO9@iX78s~G^wz0liPsq2V|yg>C`jO> zdC5#`($Nda*tWAQkWw(9>&WY27k95Ek331k)0j()U=#F4TzPS;&`nCbDzrhAzlj-}3~UBLDsS!%O%ap@qAC1SqX&?Uk?6JvAo zQIJp(1D|ouqx1WW-NM`inR~!eOEa)PRip+8hamvnEoIQ7pP0R8BcT1Ao{xEVjCl|n zGw(aVfv9we*>JK%?m+%%++xm@|6*!%D}>IL_UBAEA)`bmA9yiVkFjHWK>#l7dg2-$diEcHhe*PM>AP<8&jjTvcdLMTv;9 zT1VyhdDrofs<%yG^A4-Rk&rD@F@U9AZ2>70^=_!CiUKdsxo+QOg%#cC$tYwJ& z__GmW3<6Hj_D&s_j0?fS-G^mT@s43&*~8LLnQ&Hn(o{uiKNM_xtg;}_t zDpl`H>D2Ku%DLRUM;^adRv}=bLbn6;`6Cp~^2{a$^RCE|JzmglN1RVbC6!NvGeU85 znQ_(`Y1_uTR6cK!u;NZpWe-{!U_ur{YcTY|)0yo7;(aCbUHiQcS)Bsub4(5C@3}^f zUWOr*`+kp-L3|v)k@6bPHz#1){{x}ynTC_cy)$u@(UY%Ob2(y^$+pv0HT<$^eABE*Veva!5f}(-@ z_eUy_8WDH*!@3;C{pF7jY0g&zK0uXnL=qU(oH&KFLqg#j1(Dx!`#L&)b33J)RT6LC ztI+J5S_KUV`B1mm?)$Kp&vYBiQk7cPxCU9{F_Pa0))AiO)T@IrCqmoq-s-DVYf(Y< zg^;gzY+k-`+|+hH)>8S|Q2tA)bYk))3v1_`Z`gqHpEakus3!)=9(V{FeH;UqD3X$SwX zyckMojrS*3BqPh+&*?ntV}8Z*-foV`5SKx^8|>Q)@!0hSTSUUQ!o&&^$veJ`8Z=K2 zaV732*Z%H;S>_<}7kDG*a69wn3QIak=1bkYth-&LU!1kwIQaNlJj*UFqP zj!wMltIO2)rxJAu#ua_{D+n0=)uamP*S!~XDHFTvcfCxhEwPt&02Pa}00-%=&R43E zsul9#_3Dm=!FUvk<&~&Fqeq>I?dF(0g{{e*0STh;BbuTm&sKq}hW{bQ-zI{X5PpV_ zPc>gXAlPPf8NGQu;jieG1CALq_9{TkBd5C6oH1-EcB{Df$c=KE*m74&YDB_94)WnW zSaGx0i&WUPdBkd+$qfJVP@6w`QdaCTK4FHtE-z?%g?Lw>9lli8#Q!_^@+svgjjLzYOyzD|Ps#FlNEcK33wyZV~=c z49xA#ri%jbr=34(n1nMML8^$v$}4W-zlci2?H^QJnXcsy$gV6Uyg6KBKIBV_J*>gU zw4VD3`5&m$zK@L4exuT*>kxGS=lF~Y>Ks<&KE7dcTzN)pNA%8|9#%!bqiy`xR7VQX z>(4Hc;{A)rnwaV2_ciI+!k-W92g@K{dI_Y9rixLxrQxw+SNP~Q*74ig7jrw{nHV#L zgJ17daZ?VQyhmW5)Kh12{iF|V)zJF#=}ww`Ut#Q08H51xsj$qMv#s9)k^ssN9+V{o z=}-w9^yHxn#Oz!;pN>d7yRVlbXnMG<$y@kBg(cT7#LNLrc zpjKz(66%spKQX7W{Y*qTq+gW|NZQzd!j3zkDLHdc)q%-~;VyA>X7fKPFVX)83XVXo zjJI;1`lnsY5UcX9Rm*4OZc!=_A`ckPX63p0l z!%s2OVrw z4r5mi5K)mb6O)gPV6}VFhf54U;Cv%$-SZKFxH|;Deu`4`>lzh3*EQ&UK7?!?)S{Ux zLVc8ot#<9y5V@i;RwG1twr&y1F;|gU3}c5Sj@NdVqxbCxgHMQn9<=Z`27>9M?d|-_ zS89l)Yi5_WNsn_>z%^&uZwmU0)^bk>EB~6j{9#|D&1$@;Kxp$WV%RHJB_3vPAd&I9 z!}W1dq*_`FR4#s5T#x&QtGiylmK1T4 zUow{RPT3x!0v%s$C_~PG5hrqU<)$8Yf{q!#iQspX8tt?Zge7 zR|++h%c6fxUzwddouBpzC%VH4>I7Vf(@#~bvTOY{!B=p)ykBKf{wbjyMkJm`_q&lZyEnJ+5r<4u&%lM*T&6sPA zNZ+n7gO7I)H3s<8ay%k~D2^u!!htY+#s2h5S+(I0+iyH91Z`^sIw$TyN@GAgyLR($ zuSOlEe6`l1eKj_Eh6{>9=(pdpfBRPCpu(gd_qe^nG3L$W*42o5Oule8yN$P?U4p}x z+cOGd753&;ZDF4kNUs5(ZZPnw@*{EegBw0ALje5D7CI6dlT%YX8qJZ5!^PNST_F>Q%M z!xu1h<8+6pUtIZ~0PoNV*3I^_&3HeO@I0*#xm3-`c=@yP-Je>a(JKZmQaj5s4mV6O zIbwpaFhk4fVmH1KjF1WgpITR}m6FLku;NYS8wd=|Oq$hJEuUyN);u>&}NgNzdV@=QL`IlL?~l-!=!X zcWK`M0m5FVh<19%ZM~ONS}lw{OGq^7Bk6>l{VCmXbDQ;eTl-B~b7d6brbcf<+Mzni zD6IM!r>KBi&z>m5XA)@B)fRd-T5KO&*WvkIZEaZO`w-d&;RI8tN?CN+WO4eJaE&Fe zft>ftuw9ca`<=H6T&&>}7pjfHlwVZUDW#H9$NbhB^8+p`G3aA=*eOgkF3hMyc0pP9%6*u3jTY8wM&uMDfgbW|lJVOK(qR~9 zw9MrWhKnn>PyIH08tRP!28iNgjy0?W19xhZ>|2pv?~MoxMYf%)WjDd9MGN}g$1)JE z0R?W&u`=K;qyocHC(GJKXUnFbojz{g57&n}24;}24IoH1Kjf6`PIe=UvmcFhsS3MO z9B9ek=jhEDzY-&*JC2h3Wt7B1kboIQM%P+Ph}eKxiIDz)6pR%rpWCP6cF8k|__%?} zYMrqf;sZUxjU?2FX&~BVN1s8Z`JxWXcE0!#dW?AQ`}=A>>iyz36#1k0n|9=S3n-P) z_fhvopTgbcF2mG4lF{c^+0(y|z%`+S@R?Vx>F4zTL9f@A_03Rg(GGKUK;&a#v2A`? zud6Y#tX?@@xYP#5K((HBczrsLkT)PYU8xdZ(ln%VqYSdM(;FwOa zx;*eZYAwpJgTn8wA$y5SJK(f~Crs`m(BRmrg|4o@20HBc@hnjPGQBQX9AVgcD$Wik zCJcSHVXK9g5v^qWk)Y6+$U&dzMWlb3|=S(`&IzLKh9kx$LecPg@f)=;EL|~ z&0z8=G|N`H*4d=i1S0b^vRyPSr;GyJw@k!_L7~&hvqUMS^($c=)f@8s(=QwT^eSl@ zY%061_5+O2Da^YdN44)|NrP+gml_1=cJ~es+35J*AM5Mj)adsnJ|8nA+*baIlv!$R zUK`2~E?;Y^e_q#7pK#m;s#6|kXpSjC=w&R>X?^5$V!?2~l}{021eFtq&#-K$ED6^* znUg4JjS)idYV*-48O~{%=1MGmPmct9gJ1Y=;K?Lb+OIkD*WS5#!9I42+Mji{DB*^{ zP>>M;+@^a8vIwX<(qH%qzQ_ywNqvAYxXN_GtPnZ^693RoN;N@hqc^FULql(XQ}4V z@@zrHaEHUpQ+eTuQoQw5;5Os3*Ydn;koZ{MBZ(5yasD9ib-IaZ@hnF1K51?HQ1wlg z+28yk_?dVfzQeN0?=%O2#qW&C$D7yWdyM$TYVhqAD&V^5+C?5K@4>S99~u|fXtHN- z6AyRFgPnCb7@$?Bsv%XVcRz6V%suR}o!JGb_JirMx73V{-@%ZTb^ci6+E`chb3dpt zKFH3;53_h}ZW!i?geJ}?OKY0O5*>6vdQdao z#sygWknO|X8Bkfjyw^%WiFT)y*Hxd3M2O>PNOCG;3J%{9i&}cPqi!FIl}>`F=Dc3| zck-iPrY*9hMqN<@zH^EzNAGUc{tFi+{jR6@V&n;)xDlgROPr}*!a~MM#Mw%$nSHYw z-a00TbEVbqZ;b%jKzZy$gH%P&$LYLfkmI~7uz+XK6$0K`OMIVTurH3`yuLjsdkR71 z>IkU8g@6yfwjKcKZsA!t(PqmM3oPot2ca?CE$4DK-FfiKd{?F+DgZ-_rw5pxKyW{voA$~_QQtIJcBwJ)TfupZEAi0S#mXTWj3&6V|5BlMY z4;=1SE^RB_c77u|!$O6L=wObvX2umjppAvb&LEB(zI`!V(N8yeF`dE#c`Ikf!$u5s zO_Y?!eh$_Km!4s{NA>L5^hJKP7uN64o#PYzZ4tHWpfO+Aa^grH8fvU1A1EJe6QwX! z;cI(=Rg4Yb#(Kp4DCcH6^v4Us>pZ@IQnSo8J(Aq0cW-95_ah=+tu&+tYlQBlGX1Vc zL;!(W#j!5OlKXa(Dj6%$Q<{gv{5bB zx;Z_*m-BJdsq?s>(ZJJl$tu&Y{*t%-V9gv=!r8Z5b!Nj_bxn}vRFLgql{XJJlu&l% zl6lnBDY&a;AnJN1+pEe43bMt`J{>)+~OTbJlaaH-*Z+spDXIc?K9Fmn(b) z5&RTi_IdW-{Ta%+b9T0b0l|y>LAM+W90k ztM`PSgKA6<=7hQ$u(b*^Tl?bwVrW+PMXp8UsO>Z})fk=r zyQYprn;$Ry~^K##rbbDNJ!6?0xSC9Nh6{plu~A)P@?z0^sG{cJeqAE{q)YfvlCo*J%4|ngd=7m4h)?T{)QGZCv||9r!ou3iu&pS_y8hHrzwGHJ zdLb2Sd2Z`;3xPyTpSas$ZE|~!%TK~0h*ri0d_vZX&m-!oHJ$}-c zR1XrT00mqP(1lA4i*_LVqtOQ~BThzxaLt(;Z=z&-iZO%pRzV6<(@YyMqM4W)rdWFh zRELl{yW7F40ZS%zMAr9<8cO$2cSl+kh~-e?z+Jo zzUh^Jt#O&hc!eGg@<`KY3Iw(t(>c#lsYxTkzN)q7(;psLM6FC(=!@xDJ1J*~6C?RW z5(bxA5`dC%ZvqvGI%EZP@AnhU27gpnnp>DzxvwUbs;F8jHGkicEzsezF> zWU&=@9X$9cO7iljoptKNzlTGx6&ZixD;bU%bsplwAJBfmg1UYsDi!5FC2bL9nF*c& zVKu1|WAKN!|5za;^CeDYcEY^_ z`$SRR;l{DvK2=qx#!B^uHOKdz$L`BI+<08c*32;2A3=Q+6Tr8Hcnc&xXz{Q0hfH>k zXCH9Q4PA0ZU29NzakxsEzRj4&`*&Kzm~E=RavsM35kSTNfi4NS`0h{SjR(3%Pw9IT zT9ne?xt3}V*=4ZO{2-5V95eVR+z26OwbC0cYceg+1x};*G@~PCQ9%q_S^nE(klpwD zmB#=_@|WhHV;S?j)UkN#|0h zlvvM5RF!tSoyjJ}u}W1`QW-T^fmvKm<-)LRS+f(BQJa3|`!^Cxrm(~(jbbpo>ZM1r z;2M?sQ81J{KX+pO5h*g{7;Sv=RB&)LSeaXn)_jphm(ZOJwt%^ZQWGU|{@=RBGjeZc zjmCYTb6D1?5W`CNB$%ya;|KAoxdWdaCx3Ea{khoXdE?bm?;)avJQ~_veSC8NvyJnX zo9^7YY}l{UXtqJkeF_sZxrmQ4vQR$Tpcbh+ zjHR-n<*Qbh!7^NAh4+;Uugo-)UAZg)Ro$M zazTnuUoiby2{~&W^NNBim!~F-wbdDix*Z`rnRxZ`GuyT`*X*^Q~8Kqg!e{Y{+|D@rkurK6(wqzT9{H>KGYXNEUYb1{pbCfVH&a~`6Kf9pRH5Y#uAjZ zmd^@~h$wN-gFr6Q?!z`IMt8sczTR|IZ}B&A85G)tBWf9RtywqkKKo4sUBiy#Dm} z?x)nyiLUBb;p6-NN71?XGu{7he9n5gYe|LM!}RnSMq%ajt?rs4Vt+#1ke)#WmxM*I`H0nmgdANgv`!HKd zKi1#uPaPTMn3}|~)ubmiI$MdQv$5i99l*bzW7ncb-$%DO8ZVH1Z+$EVMXSZCAU%DS)d>4&u}*_$eW2^J-G3?zNM7Up1Aqt z?5dijTpthl4?xTkqh}bqnP#F|KX9H$&$7aE6?t|HW8PT76oxi@0^hW^)1cs2ZMPgK zI5X2>TFAYu;>Rh;%<7fAcY=&s#vRjKv#aLv2DZ(vv}DY($0ep=`sr(||F_!ce@pdU zWC~(f-Or|=li#+O+ly7UX!!uC>B%$2Wd#}jgS?os#SYIf?TeI zQOPo8vcl)3xTa?g+{IwiS&f2R;>`4bJV2sy`scmF)k5PWYkXnTAu%47wG_rcpz0RA z`aV2tn%{e1j~hsQEiszs-LWop=+tBd!Nca1wu2v;&$ZRRVjAWCwk7K2vV+pl9OvIt zYtL9CQie40$)^MlH?mhMEU^6*1&@5w%ZJ{&&=(KAFa2Wkbm5MI%Zou2K)O7)511l~ z!qgV4G4^BsIKzTF8uqXQ7Jd`AMA9r)F#`z6ze{l#&yt*(eVllg%vI!Xb+-{}R-4g% zJy|C1ou1vSU%MEq&U9AkOvguD$cq3p!URU=;+}6y?AZZ#yb2|LQ`a{_$Re3PVOzcJqW+gTA#O+P@ccp|#S{->*WV0e!rS z){l6lA$$lxcwSxk$)CpwL+O6C??mfuVxK>FapmphD<((c@&Q&Mq+;Y0kmKp#^O%Jr zm&f;U=_>tFC$GzR16ZNqtJvi;;}#eC37&TKDhegK)iJHFR+~h?`CYQnnC&#u8I_`A z?n?KlO{r0Gy9Piim|hTf6tu)c1m2Zu?{>Ub0S@h*v}3Cua9KPH4fKEoe`8fi7lwrTj9W`H9W^Vgl`f8mvu&E$R0o9KLuRkhX*%CwdH$<4Rx!SJWYEPPUWpocYZ zniSNri|(C@kYGjU@-hrP(WXvTUr?uyNzG|9Vs{Bp5)B*)T6~aVis4P_lU|lGDK?o4v4`CDTZoxyg1Uf_Hz+W|9PJA zDosPfN!5K2iO`W<_z$YV&cxWhDy|0ih;<+I??kw6#fbl!GOK-Yx<|fn>aS-Z-r$iL z!WimsjI0Vhsg6G8A9|A)_VEC+e*D;EPgBO*SNb~UOWmiAm2sL+_pYw87X6MS2K(*8 zzC)fK+^MN-iDA9T@xb)Z7v!(DE{-G5G4A$)NxavY9>uXNq~pCi|A3nsMj3@#-Nm=k z_WfeCC4@UT4MZEQo=m>TY)X~M6&o;qsRcVI#VCA?yp^^ftcO83`_UkJBu@!HQ{*mn zAMZp3gg!KjLY@Xtw;;^=1#$Ja8v?bKn>xdSSOtyiv~D_zH*~d>*!m;AB|T{I=oT&N z(aQ+!jFvj>$V-G*6or~tzAr28M|fm(g4Unt>I3sh&X|2^gF3h^n>MYllyJ|p`v!@l ztq+x&?0-$(%LPfP)|L?U4#EdxpL>AbihLm=M~(ShbW2`ImyE0Cq&aqX)tvi4VGO+#46rC2$PZA&Pvs+SCJZL&41#S$Jtu#6E2oFt2V;=VZOK5uWJn| zANhbZhmF6KqkssJP%-|_77^%H2@s_Z!7s3@^SfIU`2HdcnYtD1U{SRyy zzqh>icj@Cia9CAa_uvIw=q!!OUaU65KPTU`lq8(O>Mw0^|1MCVzBUydB>~GIC~6^; z(tbT0vqF2Uisua!(ntmjOiK9L~@p-*c6|t@@&0l z2VkoLC<7NkrjD6jexsZ5@rk2)Ew@Wem%RfwwlAY%r6k!3P#;u&^J345*34X2i(w=H zk@N13JQ7)fnkjJ%w|?KbpzibpTX5Bn69EztWoFvEW?`ls5U}d5@PDlF>vO5JH)5h` zs1<_jT`?L$XMT$dosM&UIr={kUQAQbxbgXJbwk2V-R%>Vi$~;!jcXh_AOdr9Edt(& zMB^Uw{ld?j9@~Z!m7lZ6rxsU;!EI9In_Hx^RuNBZCR$E#;m_=21B}glw^1y71sv1f z=IIbR**?}AThWyuf|I2${5#fu(%lc@W6^KdR8f2UgSJp*s9fo7?iQMQy^$YjeQhg4 z!uF{#Rg>zU8137NViZ@O)CaD^+60)Urh0W}yTPoJjA+@3))^8*SROGp?=xzkcljUBd#MqPzH`dh54@#H8&mW$Qo!}!+QOg*_8p3di-bDsKaT*U*a zV46GV{mmiEV*#{ivCRCTIyZcH2HMLvo?6UmObyVhXf*x_9VdnsI3VIvny94Chi_Y& zT01vFKPMM$Kk%!PK!K(_#KIg?r);ZjC?jfXA+jf-@x5=6^8*8G55`o4+VExMjIS8S&n$e;XcQJ2C` zn#Oy-H>9;uIpGK27-yURs(B*0rU!7}tZk3M zG}#$2^!W-YhWX>qN9yi_UypXZ^|ZX&UpZF^9?Zt-%dEF9zn%-BOY`-{o-C?a7}fxQ z^dxjYZq1ZY9=f#ZVOf>%>Q;~Nam!ejO1s#j6Kz^OK6hcm#;dwukaCdbcyL}SW%aCb zG;ZXq{a4?kT-4wQu|~h^kj}i_u*t&muya2y%0tZ_1aEl7#%aLq6QkN=-?b;g3HvWk zk3dyHhH8II!q`jQDQz`P*OdnMEwv%~X?dN7S|*7uXe<6$ept=>n6houmYdh}vZ^rg zrb9gUmf!S%@ix~u2oPJtcA(aqzpvwR6@t}0K1|TCLV&&-!G5h<6xhR;%g;x4J8909 zaTF=^O#Jw+R&R8R9!LeWSaFVTeJ%I5ddgl$f9zOo(=kqrXc=|FG>5&=q);90JbyG< zvOLf1Wv&&i%%h9r*J_nd2FgbB{)h8i&-Y!Fs&!nvr)vSqb;%Ucv?Rxz7HbOs!i-zL zN-@lNg}M1(G1oHIE;!P0vGjKW&+bhyAq5!6o}nU-Fb*38D1~xLTUd8pY6r>8GELvmJKJ&sxXW|p^<=fYwYHW zuj1!}|7E!p&yswf)V$(DYKC;|^wW3haTBcYsE}7RTDKk3b5n&*pVRF0+F;rKdSDqF z{|Hn9I4h;%>AL+Pyk6LB9uQb6*XGV8NdbRwt*5;)9NNk&ZeW!-Ov-Zur-(=6D7FeKmRpthFv+yJhiAh0Y3H0tscH^$AymUM|-odwBDhcauf1w)v_V7M=>3$Ki z+K?kw>Z4(s#DkfLc!HO$23Uwo0LY@dV9nW1eTH$shq5qb^P#zd1i~c)JotR(rDQQ4 zO7@&z0f5+i*iO0b1F8-UuQ}1yIPplLiC&M5Rz@JV>xZwGu*P*rIqnQ3|LnHGSKLKq zdi0h&@x^_?hUc`?(HY8E<2k39lclB!;qU1eLVF@Ycj^=o<}ZaiwVo9v_uT!KdwIf` zR$bSMJis|zl|16Rahfaw+syiKl&^H^&@=R7>Hq3=Rr2{V0)XOdHt|J3w+RVTZco>ETN z{+Q0ulN0D&g5G*k`fTv__fzV(bZGgdoweC}$x_x6`9jE;rJUd0n;>Qm4>t5**92KUBITdG4y)yPHm+Zc z`tpMJZu~^s>z-FWvZ4Oxubn*ZK9!9$0kD6xPV2~)qbcH4zk;jNwTcv0L4=ZTB`7?< zcd(otuKFalXU!{o91?Szn9#8txvbnzsawhA8$zDMPVJ=p{PVhPJ-*FxJA1rf_Hiwi{P@)HfB z>`-k2Ji*}0LnR%+p@n|(D3G$|Hx7{WUINAy72#Dfp{7Yfro%cyat99qP&T; zyq?`E_GRYY1Yt-9Spg+`hWNYMJa36YolbD3fjivjF82A!v%n%CA(qFaCbs8;el(UTPkC)f=cw)7t(6Po_9p=?avGPz@xR-Qc;J0o_r1ln7gH%xVo;spvz#+Mwr=(8R@e4a3cd`5qNS{X#&H^R**PW@Q^b;!q_A1(zy6p6Z}}qMNYRGZ z@v`)GACfOj9GhcMUa$k&t+Zjxd$gRLcOaV@{LIh)(8kfJ12g~r{tX^=5e5#+Lat7- z_^M;im*N+5?}KYBJKLR2s!@~bOY^mG%xY#P{RV$_gcIwQ*<7p)P9jE&9Zq&iY z^RU{_!Tm?bB~Pj2XC8EbRRvi+wSAAg!HwZp=a58tv!Y$7;**FmvxcGo z<_1RR*{m>%Y~qHYxQf89 z`eQ9DDJt6nu;qmFhL4%eo##iqLR_ZwU0KFuxY+oE$yu7G} zub~JxZ9(DZXih-msS#mUoro|Yf#NV|cVk7^4qUAXZyVBf^*R{!ufd43co@MWG7C4S}gW6t$^6cxGZ`*!T%CcTCr(1wITy~zjF z*P27+O-*9Iw|G|GAF7e^fi1h`;eG&Iy`TisAh+iG(@lR_*R5gy6z)6xFsH7f{QD+f zb#64UEwXp9O>vg?vh_%|SX;D?Mv|rs_Gz|6+ff8rq;4KKd7lW-x_!n;q>&d%$~QcP zt$2}2#R0p-vcjn*k`RPdlpZ!7(!N z!pfW?3X*ntSY9s3=%oD0L@!2>Oe)(!C%om4HF{nRmf_jBe#VBd|3Mjq? zSU_uRy7ND;p86k1!Evq?Gw#!2Cq9ew>(Alr z(21f?H}zjSHnkzuy-TA7*?ygKtYm!} zT@z~ePn$=VM0uM|zsvti4c(4RUN;+JFF{l z@uAYihBW0kwto15J!VDj7CRovdEdK~KUR4ZXhWnSEbS-j^gSY8cpHl4OlG5I89N8Q z8msBS`}g$>SWP`8M$A1DhvV-gj>4)BuObI3XFZ>T!PNZvMifWg%?Uv}Qwn{XzGIjhXHq%cnWX0Nx4KTuUC8cZoFbS~^*ydnnbBz#Z$yTIH za!i65@g_EdgKMWtTol_u82KA&{Lb1pX&auhrxsKgbNNYlxrY2Wh;`K?s|_EO{O_Z| zv)bG5CZ7-3o?f6cmnYd(aFgcCDk}t~Uu!S!QCv{#nA=PT8wkk>Mgsnv40$iL^D!Bg zrp9J&D}m?tZq^;tAo)}sP=gZ#H(NnQzMazYd`}$Brj8F)o87L{+lF!SpH`QoJIX&{ z<-_I;a!D-0l`3fc6O?vwzwsP1MfHFbef;)22#stXI%>Db5ON}Xrh`v}O`nyn2^VUP zQ}U{4E-1jgHU7Fn-(wpuD<0ywy;IFBYQT(&WT72!WHELmtswq`a8j+Y zqCr^MB`Xt+dr+gPZBiT4yj|m)U}n+77B=jxdVZo}XfI3dVBU6YPBL?RKa}pK*ADH} z69!S!_w81LKd&h1$tEn(Rs!X&%__Truh$;iuPn{C?!>jj9p(JF;WmONHF}96j#H?b zr%vMkL0>A{u76G8@oZvMY4h>)^OP<%Z_mR09`1O9ccNy#9 zp)}Q5$_^*^-eYOC#atU#lLdK5`ji@PZJqhFFJj5z@6z)j5n^~w!U%QvY0kntITcycd6}=#JKwBB zNvB!({bXb32-D#IDh~8@Z8hB%gs;drh1E#5R)1~N9yulV&0(zX@E0lk<+^`gsj%o; z*O-%?CLV>;?=Io5(>k=<9*SHnkC>E=A$3f)U90$UJywC*kBnVYSNb2QjpdR&KbgO{ zBC<*!tL>Yed>uP=cp6*UE$0|{;vBzXk%`n)_XqBStAb!+$h23^fQa?aDN}aF6~bw5 z))}0NFhO9FYX?RV4fN=bsJ`u*Kdfc**W3d&jl@2*(i;ccvhsVy(tXYMQVckbbdjIq znq-lhs-zhETz9eK;8)2RIvAAb79+Y=FFI6=_G&_J%ioE=AsaE3sC{2Q9|8XKisktI zRLkn$eY=Our8*jKyV@WFv=s399=X|~W$@LH4Umb-^%QFjE{0zjG@G6|$+M)3!k~rc zEG%mEFM&BJeuq2n=l}mEYq##j%IB1f&v$;-*MY?Db+blInRzMoW3^bED94X zOBr#$%`WNgxqKrNorG07-a8BelSuA8tuxp1?hn-!c`CcTQgck&FU|2Vr!V|Aw}x5)G_4IE_HKxOibewrGI#EtI|6%?D}`ka)k$kSkb3FI%Re%-0w+Y2 z#A)Vxpknuv-5fW^Dh>6w5T9dz|1mjDzi0>MRH!!H=sW|?LakztJJ|_L=pG~Pcfzvd za-HDOs_zmtTXmy;a*hV3y2zhf0u5_rz3e0B$_Vj7`X-}lrDr6)HJJMpHxW&apk57Jdgs>>x)P%yLa zBJ5pYCxp;cVP*G8i>NgudONl4ieqUdaiVvX_zJm@S#=WRtVyK7w(^I5w+qL5G{yMf z$V7xRN2zJRY=?XPsGD;cxqIcX*&IIZNZojQ#q}?n#}ez77*UhjJsimg@MtX7&v&*XoX-@}}VR}H_< zL)@_5vlajAj?NBL-2jqHmJ7!izj%K``Lq`CU@oW2J@09ol~xt)+OavSAQVR**@%J& zOtsST8Qp|^rfEde46S{7b{k&^h*KVzzieTmxr#XY7Vza!E>mimqAFC)56f#Y7U#E- z?gftzzBC$96-x$Q`6s&aSdeu7fPFlIm;@1nyXtseG@QJ5{FO*$9^q+N;4w>u``vi--TJ|< zI{=+T4|AYv8S&)>^#Ja2RawC-A$weWk=?mLdq1>oH44ck!t8O+=PC+5CpVfRHcd3{ z-f4RAF-cErRepAh`Qg$1K*;p&uqk-(LO1G)=XblY@}nFgVK zaCr_p_x+XJjv0R;3?vQ_-`CWIKU%T5>yCkZ_a-^fLuD^D(AD7X@uyXE!~zbA z5w`_)&qbs($J3g!4T_ugb=cJ;Rp+@`Ut^Dd@oGZGCoi*Z#LB~J4&f0nP_784Nm_BR zFMggDo=a(`6;2simjwJ<4&3yQ_1gq|-x{I#pbpuc3wX3v6-vAzn$j3P^Db^sw-#01 z9Fv8;H}+UEM_(lWkMVseNA<;0n_K8#R%Im~a$AZe-6UF#O%YNgz-)CjgxF(m4%x0o zMeR5C6#2kfOa-S#k-}Zye!82;{%(qx@>EKbI{Rem^u=apokPz!L80A*MBV=NoFU`d#rDz0SH{bXMKTQ>-zIr_ZZYu$T2@HyMTfXt!dg<&dinoHPMS zFMnvu!F=a_v}j|F?ZFcP6~yPCZcIMz)=@yWy*Q)5zVNu){L1)gel@K!OQ7ooFWE7avPQvN?USLM_;kU_9PXnsKW)ziTnBgEj#dpi|39kFLx zXeHkj$bL(@oSW)dn#}xuPflh(krm}h&F|PmtIeQ*+ts9+PUh(1y^jD&ahfkVLR8H# zCv@9mcz%uP@KcW@bRZC}suJc7xkP>6N&MOO554#`)U(cuT*TMhVf4P=1hSjEH}GYK zdN02#yYOpFG({g%rzK}9LigJuw^&0TxLPv+FV=4kmc+_#Gs`?zzP2=3sYi<0#9q`w z4VYL7+=Cy>{{piWr?plL)C`*JASc@P1uuQbj=~hua5k}o*JVxZ?-5|{S(+>tOHLV&s5*P=-9m^pzL@K~3ng6Rv0Wo!e_q=&25uxk3!#mvZR8 zaFJy5K}w3!K_qzgT{`uRB5VaJ!Cr z`lmnd!gEvA8UDq>M$(+HWe8H!-TCi}yLL;WkEM@(mkuTkOB_v%1QqtyFSS3uZg|C0 z;*tJ&9DVEx`^Mg#^(mJ}(}uK^Hu(UCRsII9CVqlQFAg_tW%8Zzq{DN(Vvrq(v_{J_ zBBxZnb(k(FS}@_zFV)SxXr5=~zgP&n*S=i^j+tk6Jqb)Jlv*S!-r zv`&C%O|PLPyg#gsv44m*W@lU>HV%4=-fteNeIp{Egbb+`Ra*~|UruTIsa0Gy=Sx05 z1iUP2KYS$V$Y)yLNeuZ)&Jt`EY47L;fwfF4{?!o4la%HhNYP6&d|PQ5g(?=+b$$Vu zM44|txp{Nr;LS0yYu-V~-%SCAEe#jp5|jfPVfHfr#L3&#!HHiJUmUD~8r_r{1amXK z+}Au$6|UTcfOV_Ab<3)xSQm*%<9F$M!n?ETu`sUVqD_?$rI5ubE$S65sqe@n+|s zO_d)4##Ix?Ff@STil%>V(y5r_d7d@s`8a|iI0@liaaMe=Fng)m8m7Z)HO>LLE8vAA zGn~=$H^peTzE&B2Ud9uEL)%6q&M96B*~Ox$Y=)=imcl2e{jDCo5<1NJHya{}rsw z%wFQbVoX;+=R52C6eIIl;h~|7*7ARaZvaZ*1-pKrg`x^V>S+2u@OQo_PNXClFmIqK zo@yfo%`Pn(p<8~je;%v17>WZJx?B~sRaeW|^B1h+;QQwCy#L|52Y-&b8zO-bS!7?0 zN%zTu%E@6tBJTE%w`I_CiT{B2VTX_w;X}Llh_A}-xVxL^9F^vdkk6G@F z;2RPTJU@5y{RrNdv7}Z#zsT(YX1#J-Q75fUj4e}>8jJ-2a+#y-&3Mxipt1 zxR-20uC2D0(O0=kl1I|T(%lh?bxYO_8Sf~xQyKP)+4yIv^kJ#)W2xi#QhF1ds3&Q5 z{Zp3QKG98g_XD5^67BYolve%B#f~D*%r{Gdyltv5br=D!^N`JpDwV`sdz+XX zJmHI2R+J+q=Pq^23)VZd^p;&Zq<(dmt9S3y!aOTlp7Nn`;oiL*JnGFG#+1IAA*0|c zkg_ABs00V^$!yM!hBlgt$f-*ou}ziFf`*OZ-X`oG98KO-6oyZ$Ey(g)iHodkvsqtHjknEAvnl%9;7B zq*xPkQa`drN~k`7{-T(cAr&)z1VCQtk8?g}iKyOS3haq&yt>KovdNdsPEs1nWmAA$SgrbD#HJv?tdObSLr?uf zux0T4o)@oB$Fm1{$1h;;c}4KYRG%7Fm<8XiCQ^@9v~JsZE|8h&Eh};;bu&h&$ZkX1 z3lZ)Mt;Vs!^6>j=OSCw(-8vDCj4dWU#PGraT@r(+rcq|^mn~10@Mm8fFx8Hu_Fh56 zInsO$>~?Bjf~mj>qXKZ=Tp6|V5or@)v z5z-&P$`cw&PydkjM{07Gq2qLZKo1`d*Gy=NG?g>WYZ;ssW^X0b=AKvGh3a7G z>4Oz0v+H4@<@6=hhIC;9th_BPY zv)GAl>X;&Go@>-2HCeiIq%s2b0^srg9QxvX2%j!51+~;H?O|iD?dm@7-dn(x2CmJ9 zm0#)mABcyQS5&}z1dww->r{OcCja7ukC7z@F#OaEe03HGtaxKz4Yr( zQ@|&F)uv)ef@7q6B$`TqVxy%51Ol1MPsA~{g@(B(Zv4#E+pG8}Cp zXqSyVi66^>sh*2?`|!loCr97t^o&s41>eK%;PofxxS@RJSoglJFQm2$cH0^qQj_&( zk2x><7k@H;e`Q4t*F0dwdTT{bko-!1n_)6Y5^nkVyW9X*)w-M+3C_X4dTYf>`0K>y z@fmiWJ3vHjmkkFiFa0E*AJUvMG}MDew{Qstq+xIB)1c4VJIp9|ZAlalr*Wt3X+|X= zRoX%?q-}H02Jx&#@+kdcM{Y{7CjVr2+HKo$b(9zdX_vcEd@7YrpNKI)y>=ed-*U#J zs2;OnIVJv?{~u_Ihk4rQulTzU?EXWiPm24On3Qf6%lzfw-2I|eU-&Q{ckb}BM-3h7bvhg;}Zh<`X&&kSn%wZwE!1XFnzBxHmKbbFK%=i?yU^AeqothdUaUl*^O&NN)C6Wy(`1cA;PckF#r zKvVGj$If*r3;_0Zv&nn^105YmsYY_$JjtzHbi+2ct6HI-BB+Fw?tRp)B${uTTzauKT0Bw|o4 zE2i~wyLMp!cK_IvTLo$b%XAv5$Fdbq-f*OK#;5dSqi)GlSz9aPt$)TJIe^pj^kAw# zZA|A6!4|8($AdObIo0>>z4vv96{vKE861hXj4D_UK7Q1GT#=1^o+1uhX1UGK7wd!K z#g~;Zx$Y8T^u?PMAs@|$cIz^fbaStz5Aog6#!(xxJ8l3}Nbrjc|Fr;wFBL^tL)cW2hFRo3_4FqszLX z(N)PQTAba>29%NkGLljhm*Yi&3@ao`XANNMFFszp?|sU;4N&v_lJBe&fdD|%|ADM5 z09{yMhGeoMGw^jr_gzd;nq?5zPV64lyVynwy~r6cWIXZr1*y7S}(4dGE*HC-6Qlq z|E_z<%y4zb(lb>59bM*2K{W+k3gm;A*X;(bm^@TIKgTN=q^_wFOD<3wbGB-_nM1O>G7zbkfp>0Vx!?@OQhP`tU3 zL%cU!*H^C|Fe8?Qy?$;TSsh`aWq~;1D*pS=Hw#~R5zzPjnsIDjz! zYpi(>Vcc)j9DXDQ_4s-&d&!QIAp0(!vg)p=%Vc{n_~^-`e|sZRc}gr8gb@Qr>&4gx?L{2 zWO$+=yX}rVc2~1oG_t&%HTO=%s;8?13h=6CBqYveJ5X;XvJuVBGKlW$ zo31h3u;ku#!}zEEZ1^V6 z5VPupzn1gw!*o_e@NqanHs*yDjau%!;Zpln-DTq_NdVQzvjR5!|Mu|=gY%;831{b& znw{%ZFX`jl5h*(jvWOnyVwfN0nk<{NiGNyA`U)Q)BC^ufOW}-y&zD7?tpCE2rOxi$Vr7m( zl@Sg}q2b-SY^5@xt)A+$YqWy=(Ci-%wB9+3hqKZdUY`8)HQy#_J07gSIYyT>-tGQc z(Gmq)qY;k_FkP1X5j)Oj-cTx2kqjR;G97Wmzs>ad|zzmyAlB-OI>L6)+Eh(PGE=&U1f5|OG>0(}k z$_I9EnTcY&lbQj?=W13fjYPfMjjB8jDPbvXQL8M|wJwpUd?lJMSYDScV6VwgRueRACya z-<+PXfyUD3ZgN^3?^>YdST(F9u3mgH*JuSfdBhvGFwWP_NCqxg2n$@^=@(x__Lo^X z!&X1!GDmj=8d+AEy&Hb|9Q6Fpw-OeAQh#AXvc<$Ut4_4;T@tE%Fxh-!v)}US<@p#`1nDr6 zp$3vxC}wl`Or&klzcPX3R`omOjJto~06)!xG_EQu z8~MFj()tj-;k|O7LlDy)vZG}TS;z#+9fC;1OV&*WWXf22U#$K-*V7C?j(mafz(tx&$P}GuXvp3l2Le1 z>_cwkKU+0M@88J5p&E}$S}BE4bL|ViRT^=*t0atlpQXvw~nluYh3X? zMKq80G~?8n6z-cDOg`F8gV>l$)J^~Snz5}J;UgH9IOSE|@qyBBw?%UvG$?z*dQIra zTG9-w8Upy-Ckhr}C-Gp?;No@di!Y|5Qc#)&mf z@~b_gx-hP;0<^2em&bDRy@K8FX!Zf2}tM(b2;af82;kt0CT5=*osc`osc z1P(-WADfY=?6hOuzmPf(Cgo9uw^EiDHgA1rND^L-L)AhR3<_HKY83|jF#I{aMC0;rB8&O(74~0F2H35{-vmoQ zgCOyEd{nuzl}2`M<~CocH8fPy!Bp?p94BoZ!VhyE%Q>XYj(@ip><1|4V3jfgxdM&~ zhXv38aZNIcFqaBWgKGrv+ ztH)vk=rDweGqaJr zu>>~?-YfW!NfW!+Yi(w`KbRS>VK#1kyVn7^G~Q-S0mjCw{yQ!n9dnkjisVX`B?_#C z$aWC(f*sw*4bG&QgF80dE3b&oF{on~SIe?kNs;#@3vZj{vLcR}qlpH+;;hp8#`n^y zRr-%ri>|w#gzY6;i(~-&&bfT@?84S*Y;HkYbDHdT5*kapeY1y8OiXT|n#wgjv%ax7 zoBvML=o}>MjR4YbVkae4ZEAQ#;zBRKnPyHwt}EDa-@By$R9C&PB|exFJeDE7#ML`4 z;Jf1n2p>IUW7i&p%A348t?ccdMrS39ABv&ixZE3I)1e*Eb7(ZN@l^VU#@Z!G_LVi% zD4Q~52pEm=^d&l0s3~(pD;CZ??(6N#^ke`a_I}LUg_^{}b_TMeGtE-7}@(_QrI7JWKil1QugIQ+XlG^OjBn#nyO^lr#h~!zR0hWP7T|O;3Wzjn5 zxg|L-3bWrLE2u?#n=_ZienHJqRzYmwZ%~&$11z?$Wz?iSn=IRYGPsGfZsAEz7A{%HV{l2ca(YIL)w3k;fE$Md*o{j+UDI#alb$;?#< z_YvcFyURP(t%kZkqccd&E@Ke!EeWQ zuSrwE|3}fehcn&(e|!#ESw>-~AXp3leQs)-M^=8D{{4e#i_NaZ*! zbuI+8KG#0x%A=M>l^^#vENJ*#9SA#l8*Mr)>iSP#J9XT{4)+TQN-cevA1$aa5_;V< z?4Ygy7p(zKo_sJFD9YmAWqm^>{zf~(8MT$JU#COIBgp->Z1+q*`+MteGDc&bfidrm< zeHA=}6ywLTd0kM>k|)p5#!7*$=Vuf&=M@NEoAhiQ$d* zCZ3%Dy>^|Px%N!6z?g*nOHy^Gvoydy@^Gk*!W~0!!*ZEJkceu%Rh9+bWrXd@eaY_Y zV0LtrM#k~#+Pd&xola8$>{|c<-=MF~Eon$-V(P3nPK^CDRIgNLa}W$?_t=ihgo zgx$GDaWmgpeu!S>vuiJeO3q1Ncoz??$qqY^{?6nNXyfjTGz+(c2b7fl(k6b0lLHV( zP-82mQlGX>mJ0chdcQLS+}h5Qbrxq2I<(N+LRH{X9Z!pGT>{sq^);3+Lgp>ZI1Bnc z@=STyz=#y?y~KTS$1eROtcwVReO}kKQ|MZqqJ=Go?UQ&I_fxlmWo=jv^glSw~`V0OPuzh77 z74v+X3(EAqTab?yCx{d0LqeNV>nvAn30q*=2RUYSp$2cKz_QaD%bmdJR0d(C-2^IAHxwEB=dX00FB#sx0+JB#8c+oa9>+EnMiOE>lxb$HdGR`>+*+k{4snUqaAD$mbg}C_=JfyYH zi~X}22)z+!cRTE%uhFo68Mk(gvMW!6Kawh>ek&s*hv27oTplot)to zp<=UNPWp1ebi~7z^l7!$7_ij9mRSxR&i29YUV9b( ztJGWKQLzOlT_uhtZ|D@OIz62_gbDOAw@(~(R$W+2zR<1(>i{XnJg*MzU`j4@|lzWrM* znfyNhUQv>CQ0+KuF;u&5F+B5ag?{;OCACJy&nte&9-yA6_`B6GU8lY!`84B5);PY1FE}O zlcmJD;1O&4uKeqHtFV;{ks(yb^Sn~Sm^Y;~Vzb1u1(?Tmny3HHp^^~jB)dZ;%YVG& z)s3p3LJ#-)e8E3GY(1adCgK*d_v~x#o>Nka%{pf%({Jui3~hZ}o#l@gjs~_Zl;_}h zN$(Rz+%x}q5y15_`CK^r@uuQpmEI$Qvc>7rxmJy{w(m#1YYp4aty>N5&kK8Wa}5r? zGBf2#eKt02v~8K*D}x-?puw-FXOHt137+dG-1=AV&bHokiG*m|+QmsKZv^NV456)$ zb7de#fPAF~{c=9su78=cm9cD$kSAr5!k>Sj!2%xu7HFO9l!Yh}1s8i!w**wjscF4F zJ-4@pB(BSS$Nijxd92`!)0yqmG1AW)HJ^iDNKRID3AYa$u%)iN7cA!sHJ$fV{7jan zCg=@mm;NS97^wFt?%TlHS$6U#8t*Am*vh1(Z{MIU%c@y~+|ycI>+m`?kJaweejUJz z9izUP2Zx%DS(dt(MHL{jFeTZ!N^wVyi`1~N0|a_IP5)DRNTP@kd_HV4Z*#IDEIkJA z8n<}n4VtGPW83dv`xH4~Eo=Eb{ySSo;`B5nJOH9AB!G3C_T#hm$sy+O$aJaa<+O-f z1i@6Gd6n@>!ZVdS!V(D+e)J&Z@oMKK;jpaNbq#_0K1jp-A$314)D0StF(gi9N_;-5 z%We>e5s0jym5vFXl3b~a?BcDn)%(yHn4YcMB|hD;hB%93cjPu0CXDCp5;5~!!L2~o zuoz^yLMhsImCD3T)u9r+bSgw6iS%}4t$2t21v}Mdpa$8-BNO*Vw3=Gz_G=Ru$k7AO zbEV_52?`vQh{Dg8^Ph#swAI(y@6GH67_KGh>PL=en#WnQdz~uJCT@CkDN;jzSLMAF z9N4(%f0fp62v~T?1w}5iAq}^NH3=OjOYUkAgKrxm(CqF(E?*Vs zueYE=G@gwwT7rZ9NVLtAtj2&!m9}z!Ecb=cI!N3_`s%s$NY76f5z>GD)R?uNcK$iG zt)YX5;ox@8MvE1GLDr@Te2a;MDl=9t3`mwpWs_y!q}gQUvHLHDbBGA zlv+-UM!8Zqs5YimVh`9z(6<9hZ@K8?2OsqUcAZBcq!<_i?WZXJofeW;Y7b(6vPb+u zTanBDpl!7}QxoS2$bfI`ES@^|lt$5Z1jd+PJtw zRE}2y20{`4vF3R}ubCXr+wd+XCep+W=7t178L<6mEfbZ8ldqTU2cweLJ*&P80U>W2;*sX%2Z-PW=B$xjb`5*&Eqs_ zy!$Qbz1l#7?P82B)&<_DHML5-JW+h59MC0QrVAi(7nSV2abMDnYS3hN%+8t%PT#;@ zI{cx=+yMReYqQXgX$Y;_cn$M=5E?1243+XC?V~DDh}V8&jI>g@4rc%xbmAdT)zs}r zy1I9)VZnbVE>@GZ&LAwizg4rbbkl5u50J880>=*Fuu{^I?B}9ZE4>n$B!Ig`7q;x) zL_gFhUvp?HQ2k#2XXV7ZN3j8r`=uDD2I%W8z#%JiMI8oKz`LR>*><_NszvR_N*dJl zZI9Bl=7RZ%R+aKx?jpH`HkN-M%Sf{~T_Gjua&0KyP`PM7xFYjRJ}P%s!l7*sk?=kj zHteETob1@29jSV#z0}(Tuae>E0uafz{8@RL->Py=yqW9biGx!sDHi@DqX99NQ7qmu zdb>L^cYBegK97S-@tDU=jlV2Gv-l_JjK{|BJBaCqn%ryQ6~uwIzw(V}&i+`rw_Gzx zHXBU*5Rv<)yQ*Lsy^YNx5Z!yjXOo47rFWh2G`F&U#UK;f{mY7fp)Hs4yJEO-M=J|B z$RNl=R2LVi5MJ`OSwz#>4O7CrSZ!))b zZkzb#0Q_SSQkFw2MXVcPyS6ciH>GWL#koJ+Y~s#d-K&h9&|ujON{@iX?nIF}9}I%t z!?3gVBP>U;q5RsVLK)`C&sdk?=@Vt2zdv!Bc-b=1ryCL8FVLI^Pb)GJPj)xBJ-<@= z`#gp>o(=Cjd$*O7_e`N8hxRqz&E;Za;kWAMnYLj)N8^gpyXigH5#{_TJw)yEW?>w9 zi4=CTj-1lAnBR|x@F?hmLuD{mALiN-aF4W~pOCD(O>&K%Yw1WE))%qv05Ou484gIr zl3wf9qaCE`5(oLoeo^szwSh-Lx_@peg-8$H0~ zG%Pyj|994c?wqDt+H$W;ddD&vu!BVO6cxsz=dbcs$bi1S0qa^iuLRrfgeD?-OWAUW+vUrzdBF`}13)^`aeGBs(C*S?(@@KgZiXk`Im=MD@=es7%ra^XyZ%u(&!E(r_{UVE9SU0fxmKRS6)W!C5`h8ElakZ z?kon4S+%t+{jMFBd@4+)d9?ObpgK#%gsJk~z?iQIZ>wY}&Kch9Y(yhXsHH z8*r|%yPrBLB#6>`9@|YnV-~N7dj6Zvu?)beHS{=C85)J%tc(>faqC%OYuxCUiVODq z$!UIyc_P`yGs9x(VYWDojh$ z%s7&+qdEjiC|&I#!=MU#zDc*L2J9(du8e29=W3@W>%_%-PnXColS-BF9p|%7ZmyMDT0!$*_-9C@HnZ4bm zUbW>l*d+|F)7vu%5*qm&65aDb*f^vb7<(M*XFp5w>B@(Oyv9uw^cA#aPzn$ZY~lE_ zYyv78aLA>CP&yyH&*Do$cU^<;xSx8vJCVQOqMtK9FH{eZ4Ce`EeK3;4n;xtyxsf zb+H%F_HY*0UzO>-FxR&YrwfDj^tF6oThz(Pi+W>#0N%2^d}d$V6GOnEdRZI7Vh8oX zuqo1!$?Vxz0K3pwu>1(9Jr3m5!wE}NNy!+A?w@oVkM9V)Cd{D39 z)yX~=vV_xBQO!AI!8Bfzbxui=WgDkosel+7YS>Fg_-pYbg_Y!9eJ!3q4{r1=_x3d3 z=tEmO$2+m)yT61od>b#PF+3=}f+jO*gPxM(t#CNJO7uQevi!_2Q-{*7eaN6ZJ$78T zMgDF5@op8;WRrK$H>I{?U0w5{k-SItIBY-b23*bFJTnZVb_&jeiW9~LT+&B1XHclI z+m;Az!!8v>?I}uQpr?bD9A-%0A=_s~W?Or^^ew#r&JNAcFH&atI`m2JmgZ+U@!Gix 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%0DdGcb=d zJoRwJ%94KVyxT}A(rE_pWnS!%HdRgTBh!Na{XwIgdcUKtX z#$ddr-G0gST%#01u3y)C1{BXs1yj0=I#%rS^}QzEZY&S%=A&R05cAo!L6V`V4w|XX z^E9R3H-6vP`|DB2T2x9*z5aapx0z!1*&y8EAvJI0Gnr;ovuMx?VXa*V?3%G zjFtiRAi(*Z$7bVUN>jH=I~XE_A_Me)6rGDd)BXSd$1vm+Q^Uw9jFd6iLOFyPhE0^@ z5{ga9wsM&2awyfBHB4!i9CmP8r6`gC%f<*l2opVWU|)UP-fk9nX2Me&wF|V%*eHzUv9T8mvPdwt)_*D$Ird( zb}8r*om5GJIt|*2mF`z_T;s;T60P1-&_-l_;HqAumnIc5A3eFQW()9+ujTt^2>@`k z1><=Vim9aZ;2&c859lsSMo{(@7R;e&wD{um5M6dE>|So004P%LB_T^B8niPiOBMn+ zGYlj6T`iPiPfo;%l>N*Vx87F289R}j&~C*f-q+{{E`RSq<8pC zBT%!LyqALR@9_Cob#JrN|82h_zIhA6yneFIEhbMsF9K|9E7-I>Lt`+jj=e$RfO}2@ zURI2)8F9L%Qb@7(t`=YV7&f_kw;#f`1)cVEtul{XYs=b;7=6TMY&+4r#fWq@{9`dBlC!aQF7c*1SWceKKJ%gupo zE@c7dd~eBdmkA!x)*J1WHFMehtHq?3`8Px>MvBh=hrqgxBSz7+)hDyi&_)n|kUUSR zSOcVn3$+Emei=tp-++gk^ak8hGF<>oOv#O@w`wMaDk@FU!rWEOwB-S6vWHfQ#9-5%3WB_|22NBbv0%OO2@ZFd2r4sD8z-bLSYt@fEt+8$t+r>@8^A&5@u ziPIsuShNSRDUd~8(n`@GbrNQQXUGZT0S#M9M}dy($dF?zwf zm#l_(eC27R!=?>?)lC(`{C+U%BW$K-Cfz5VfxM1h@YUL!&trraNmB5U(Ro{i7!m6x zbn40QOPxuFp!Y|cTq?8yWGHB+q)q@0q;1Y-@GB75PG~*w$7A~pDb0^ehA1Dfd^nSM z7&Ab6DHCxW$JPBzN&Wp28#++tC@wA2D0<5*?gWtz!)&*eI%V|It>tAyU)PL*JU^;2 zOLQ!yM1IPhYuarXa@kb-ywp?l*`ImIQ`I0H3t#LN{vo)I5dixod#&D@vOM2uQxNvk`4;%n| zo8fJ8F#Pg+(bLExE=<3dwEnN16?e~>23Gy65OwuqgVA9wOdjDJVzMs!E!cM(2&gCl zvx0YcKgeC20W}g*SqAzo6YqA_#LUUdjAkxxKc_O*14C68Ec)pA54A$q$5b4qIB72a zI!+kW?QW^2%~+h-gv($H06^C9cey4$ zjGMa#UOryt@3+fSTNCTcJ0o1`JYa>o_#mK_kM8YA2p^x+dGz%&C-j~$eC4l;okPs$MsVpv-Yfvh{|@SsUL(6a{Mn)X za&{Qq82%lBm2NJMcILvg(M0Ur>-I_s`hVGBaDP%^j#nSRPF)ikIPS|BKx5R62tSO|IO$kp}@*KE-9C>CoI&ELUP=HN!dk;ax+`I^|ZNFvWe2Z z3CL@x+QxDOnGJKT7pymTRb`xyL9=jS-XgTa1p?owJ^b18 zvI%n}qweGMNXEk9wnO83lYO_pa_{W^8b5BvlfODo2-*KaeQ;ah;p@V9t&D|`Y4}}V z?BXzh0I~PdL^3WqoNzy5v|i&eeZ2JA|3M9MAkdK@v3HJd*AjULm6WmDXZ_bOc$LxG zUUeFNO`Z;2UEKwf_+$@=^Y77u5gh=`)D$1`5>1_!`0kK{_FA`RVL)j98-Vt9WOAK>jqJ4 zCfwiZ_&UW3y-W}SjB1zn+@fu^+}PnN`<-*Y-A?nz5Y^$l<2<+-IcD-D1s=tl;YNAZ zO{INBhDL$l8TIq+@^URCouIxV!I@Zc5->Ft%igG{WZ+f(-O0XRSb=0bJ?W~_7==8} z9a@dNQD;+Ng!zIucnr~h(4zzs!X8Avn3J98sw14da=+-RLSpq?edg{(NUadMm>Ve= z+eJfG4UV#(K@2MsjHJlfmq{?!O(Eg_luOpUjGC97=mse;QZ3Z0?`ZK(aPQxK+47p* zyz<=(d?a8JxzQ0PAN<~dP}wFXJuyEQ;__lvpntt8RYB!&N>(m@NZ&w@QR}AHjEj_iZN&Qc#liCpnBH&jA6^%{5^?n zab<#`z2IvZFW9Cf(zmlWTKifV6=<8CaBZ_S@%OAdTPP}#96*q28;^Rj2ZJMY6SIEe z_q_4?@wW7qn&E(|g{PAfV13Ck_sHFN8Sd z&EBzJ=D6ttFVnwvsU&PG3@R)w^3yK|sB4<{8_Zh%j-OQlb3FtSzmdk?6pq$Gm10Ci ztiRu1$xWTY#)HIOSA#%@yhsG>TgzWBUXEV5S`p&4a%&=DAb9|{bSFWJ_6GVa|8HEg z2%=?&Oii6?p0&-^==FKvS0wS#d(;uTiJ8A2SxX&rt>?5A>qq)ooyx&uYM(r~UA`&~ z2&1t$-8um+B!WHfPITexn{)bU2!dmMrs7WJyIkLZ)}i`3=j{d<_WZUN+yv`L&cnpQ zu1@fJEpxwFX?5LTt2M)NhZ$d1RFY#qc!NQ%B`zPLA!573A6O)>bXE3f%9(D;G%30^ zR%5WW_P~+GE99j+VF}Pd2L=30gP+5X>cPkPDkWWwnCQ|M6D@Y|h#gOeFAKm{Twfj~l6N;T&}{H}4dtzf*lSr+ z7DqXPm^3)vVlkdu0&HiAgPy>Ub>=|^_QsZVOK?T<(V|=etW7P4w_YD8I307gkA;Ty z*xAB~<6b~_m?lN+tX`~~0t!E4XhohA$)sc$2bV6eX-l&8<77_%R=UhV>#1L52HODMUu+ustMstZ;qxiimF>eg-wYS-3%psm^BNN=T;Hv@K z`+CiUb&lRmE?fYLi&*Ze)cL#TK4If)PYdh?(&yWG&LxYS1i36n*UB~JI(1i~&E8Zs zAO|Y&%;Z~HR!0WsDCJ^c%Th~W*6i(Qf|KVb@JH))DCP&kQMH%sE3w54P(phmipdr> za|j1@beE^QEG^Jn&n1X=7dlb&jxm~^trBojY7UFn4fjFYVrH&Ak>)Ztgq7DnobyX) z4Wpt5Nc_#V+cLI^-9@f@U%SQ^*g{a>0x<$BORlrY+Xo74yc@=nW6;d?=E<4pI+{FW zjL9qty2h>8yI|HV`It43T)KO*ck5{fT7b9Dn&Q$N%YJGm!Nht)g3V_*QGnGFZP*Z* zN53dR??_*R_Dmb6r+LkqN*zF9tI>8Z-uUeIHP-@u%S4ktgX)ZEdD_Qdt+?5vxvT)_ zfRI11cLO?r>GgO`I#PK=V(MoK+vpSR!o?&KKb{LrFa~1tf=tX}$UIz2cKsSBeMr4V zB`x#UFe^JuQZ~0`&4U5X z3G)*0jg`h`=TuvGzze+_0_Pg3bhri%Y zI!YAgsG5?B3i(Bf*FHBO1k-+L#YF+Tg?qI5&kp#e$dttsh+E=|UnM_npe##KkQ0s&8wL6ur=0Q~~DaOg|=PA`w)vbbLn0jnbY!vH+_ z))*JcE0sW)C3qvq#mL!z>b9o+9@~bKk(wSI1sD(f61nU)8Ew8&tQ~|O^(q^}F3LD( z1Xl2&EJbl`b)%EDL6;~_67p!irX?nfBiJV$=6PZPuWgJZfe}q8Y ztat>S02FYL%d<7A63msg!6j1E&Mc8xC)a$<^bRPVb8piiE+yfcKxMNuI>Ydywb><0 zc8=0UB^$2_5nKN|{Rxb!sUW%F+_~^Grp?gb!%@rG;XK)Q>{`vuI&F(k9QNrC7hI-r z4Pz*BPJLA*l_34q|L<|ED9JE&u<4ljrQ7!<0@e0 z97KgBZ-sU7H6gR1MHUvjKPHDkMl1Hjv*RC-#JP^XO@en4pv6cQSwGrZ`6iq-UX#OH z#r>3+$A|-5u6O&`4MG?h;UR$7Ttc||w6fPug-QuN8rlmTQZhe)x0V!wx#=#Q0`}3? zxp0=wo?oLWP4Sy0HniL1zf(!*1y)O{z4D1T2vqAjM8=07FK6aC>^$sHWdWt0`?Mf& zSEUT1%4{+9%rC7ipiHwhg$b!`n!+HCjSjJqLY7Fm^wM7WC8n{}_M_?npyI#ngL%V` z5@kthO;6jQmy*m0oAXPsfe=eBttTbQbN@QrL@m$l4ByHVksV)JdS?^GMY`j{xv%*h zZcsiYJjB!I@MVmVDPnAfeR@`)h5j{K%qVI7>bR3qOs5lc&T~WpTN6*^H>PrBWIk|y zWl9q8Xx*KY7tm$^TdM97_w3)!%6sHKvFq%z^`CxbBBL6QL|JO5nDeEz5vycYR>RA& z8^o`f>2?s`d+T^2YA#yOi;ZSDyY~>ze_C>-hN6~!2o|L_m@0mYK3G;VmG|T~fl>Ga zc2m%01uev)!fI#TX{Zt$u`%bcTXp-i*4SfZz`bS7rTV4=8tfBPsXOp0q9DG z`+SGp32tVERGgCda5@k$P7xY3ujOOW(N3KL~p5+)!EI- z_I3d%N%-}P3f>JU3G3|DvSopybn8y$W}F`a0}ur|Y`0Si-zxQ)CYvAURAli1mV8op zLktNb13ZunjK~d|5`VC@7s`3P(dI$y1FiH`J2qWL0~9Gykp!_2rD}LuEBIquRY9fz z46R&Yt<`LLF+En+FF|P$f5GX)*xu;JMTe`jV2(IsK2}vF$*7iUzXMqjf@U4jXP6VS{1f3!ME2K?N(5SXA>Mc%dQs5bJ*ILniS@KW%+8mup` z*R;6*4~NX7$OI1A-Nu<7vfS^o&5ORfk&Ls_DyFR|i6(JBWn{w@3Uyw{lwS7pPXLxU zC3}*nn9Q?WSGlN_ttHE4san7!pg$u!`^n~TVlJErTV-r%%4T&xSdEik68OGHP0#V- zABj}nARYD3Kzr0~*rEs3xIoOJSAZ!@b~obN!i|;Y7(N)q#!c z*F*l%Do#hAwqX+k2XTO0+8ui$jT!|{SO|fPa3|4?A8Iky&@%h5ZD$dPgiTz!5N?ow}>>PnXLgBjxY#nxh&{iLlXt+Sg%1?5= zz7xGbXzW~-qCPfhaP5JmjeQvQEK4Ih+HM zZ0=rwY0f{Cxp?U5saIa89le#V&ZUi=a{b%US>?Hhs?P%8qMzgS9S>FOY9FY9N7=8C zhYC&*u3Sq9Ew2HGB&r<0@d|Wi+pVyu&bc93;iMn>lWo(v#5Dzf6|6H-cArh-mJD<* z64P63B-7o{nHN!vN*lqU`{(Lw95uroR~W&&=#7bs(oH)v`$W={dC#l7J!E>I9(yZu zxFX-8H=2BMzi*!e6mdS;{FkgoPHQ)8{Sk&I?Ph>inL~$VErk2>NJBliqU5D1X*w4V z!PLC9NZsEwJ$%UijFGjmKYXTyJ+3z3!tlRVQJScg1T_?CXtnQI#>4npIYWw-fDF0yQ1{tC<~T4sv0yA zci_GCygSxxtqLUGz3B{Md-cN%{k^4I$DQ80g_1|Ue{;szj^3VQIqRIG9jbF}Me%9( zNz=?nG3l;8hgJVtHlsT2i8{Rf>0yiXYqSH$u3-1=T8Q>*k1;?uT&3RMe1M_n!h93* zcXG9_9lS`I@N(-^=kos2(Q=O9H76WU9(#tVSQ%Prw+h>H`+%(Db~^pRv3i4-U;SKC zWmNmK`P-`ah<4H9p%?dy@4ZNUT53=`D>!_n6A*O%v&mP;L>Kj+VS>6TySg%NxYFO6T z_1GPICa=F~4Oeh_E9`i48;;Mb!_)@sBHUXSBFCMbRCiGR@TZ3X3mhjkN|Tb0T|p4P zuksX)7rLoBp)FXV!vUkuNeRveFU=m%yyj#eYn~^*4sgX|VRI|Dai1>`H~SL@4bA>s zi;1`aCe;Qi>2`!flkNB;R}3G4|4-fh7iT1G&e%WR`CL|GO@sa$pWja7j6&G)`bPd; z+jYKfGnFhHrf)jAi9Ci;<6l$Q3J6gzW_ZP$hel~nyD4qQ{#zI%*Z*PJQ*7pH$0^ao z^3+!ZM$;{OcCY1wum0N@!>xTbbvPv=d!O+VHF&;-k)t0VaI<#%M_vo6eP1Uz_}1)h zzVx7ePJqV&gW^5IoC;@jZJM8LLSUlGH*#j|{n-<=$PaA8x!gmw<5%vF8J!X%hmX$9 zf2&5QQ9?QMb@lvFi8D~gf{AiVJ4J>+o%f6u)*)>Zz0Cs6WoY*v`_nxDrm0?Of=;;g zrAphiE~ZkOdo*koP-oqwe+4tV&}M5jTOJul%EiqmUq*NoNMbWvtqhfWVDmEZc0(uh@$T~Nds8`YBV7t#8v)fkWF14#PYv0Qt_>}n5Cae8O~WX7(zPCT zkr$l%Gtm8O_T^1SJC%7D51D@2RwKoY8u*AmewWV<9VCl$siHa$BSqBZot%VP#U;)u zeMK1DAz{%9rq+2BH|<#J1$YxMeRikuHZUSR-?O4ciJi)MSC234&S35_Y}(%DvU%5# z(#;*-mD;WA8zMWv^|~0n{=l%sSSJJ~K`3Q`zYCEb@H6YR+>fudQ!S?T)y~!ZRb}de zy;QqB5b}?oLqaN*njM+CJZTbTGG_Mlzh;?kET>*$hSv$sp?an`*nKtIe_~=5wt=eP zzzw)D6$rmoGUH)>z*$8_duA7kse=&$0cCs&SEh0Y(<^1J^Fg_Qw>XP$s{nR7wWW6o z?%um#9K+6s8%%NZT!2l-021%)OTQc{mDt6L%xV4;1_7tU4h<8Wf@1Y)0>T`yTe~pB zD^m8QkjPtFJ5~T}8QM$)t-dBmo_nlpfIb!NTkNa~I*t01hi;TFJ2Fg|T0?DCMj|&$ zpqnmDad%6@&E`mv5_iY<+b+TeQHVoi6OCr*^wFk4RNgJ-f2j8C(+y#d^)BrltJF$j zM9vB{m5drceqB;}WXVhryQ87E{B%MJE%*Aa47!@{+e?B#8!MFtp))c%>#&lMrycNL z2#?^GJu>)&@U#CA@q6gWD7jjpb|H=;)pSAw9TGUJyt`Uw~vO=dC0H?Pqf zX34i&l$sMqt~h=s@3rK@K=Av_AHV}$#$gWUbbg7b{8d~wKp932iEO6?DtcMU+@Je0 z7=>nC6ax&b2XT1W0NZiVgXKrsA~1nA!$@7py|!;llSkam<6cCv&C>i-pOT6FQa6Ve z&o2jobJVnLCcY!)nTcokF!*rs=gzdhuGcuW00N>0U}MOfcXhsjz4-V_zhGWD7nrw} z7gK)9n2%A)dZ9$zR%PCMJD|vb^aS1qIy3Nmyk|$9J7Ib{vN(Ons$r|xwP2rd7zH=M z8X?ELEv(AFi#zh^`osVnguSoPoN$DDeW*kGb6k)~@u#geeyc2svs91a@?;62^|NNeKw4S)?5wmN!;`su=k@g@^_)#oI1QV*fUW%E zG3pX%$*zC04*llzM4n(-p@FI!ET7zT1{7drnmwdyi-XOGlb>6eC4)^v+#ize1VW%V zj~Acfa_pWlm1(|O>(#sax=axN{Ze|+MTBpLd197d)*K1SP3w)Uf;{PK$y$e zGJE+g#dmEc&$}!2X)}L*A!2Qaqz&+d0LU(Iz-EC^Ra(l?zrt%!z-jzN%zcY@AMpm8 z408#(l&-2KS$RoCOZ4{IOJ6_+!Tq9nMyl6h(6MxNB9DORq4`hy`)PXD7JjTU60<&`O}=xfsokEY1;dL(lZ;cLEAC`(;W0BMp0k< zFsCz-xh4ghA|?uYzsZ~wJmLvo{|NTjA`bG3gp`85lVfhX7O)F=Xg-{KfDqV=yJX^g zXV;10%*83T)3Kj)LhamYl=WP9r5OikH7w!>i7fXKeod9egzqp{W2OMpgW!+S0v%Yd z@YS4MU@oA!gYsS*B|AWjs(xwu0ws(t*YqXj>ZX2B(R*m&Fsik4Q36i@3$_Ms3cp1% zF+YC$S}X_dWOc8m)S8gso2X+)rrw3iJc)U@5AsvK_%Fc&i0AUv?~*H@pL-&DD~0)N zG@#a&*aaTkVJ5$|@Q!+}4iNqj=`keMWGB>&W2aWyRAEowR9lNyR9vt#C(;-YS3ars zcjx*x9+RLXwXXo7MVloW@543sB%#V5EOH@M;B8j~VH$Js1(R#A8WHXQw6P0fwO(o3 zosa)Q?r-ftV}#12&eeSHPBA>If-h8&nSlf_{yrzmnj4&^P+JB>c5!f# zKUFKs?7;|*Ph>(XlTc+{0>>jSd_dlVVnn|Ok#|~x$`Aq+00V&9xPY6`S!+bk2*X>4 z_2M*rHaQuA2p7>cFhj!YWDDc~0x>T5!nLY4@k-mHb-Zlq)@NUq2A`_rxY+A@wqw7_ z*(XF~4{2eQKy|hY>5a6leZ?E@)JjVRB}|q4Q(zxcPS@-VV+5yr5c|=!D_wK{xq3W0 zW^LmV^a#RL3y_sqKN{t3oHotTLG!~VzKXQg_$OGU^^9!BY$&SoM@{m(<&fo={_iin zo0gmqd`13?*F&@;I#JsT6M!fbg7&yvdi)3M0-TV`Tq(gz++5-P?pkVCn-UnbLshMr zl-i~3p$Sc791+2XM2!B>se8YaY9Oc%IzcIaf5*mA^Invh9R|vnSS8fFST~z(?E(r1 zp*Zr~nz*ezQXiT<B%AM zJHS2K{{Ohb?`*A7l>800<(@n|WB+FJHMsm(L7JcE*qQnP{7kpth`Z+%_P((v@aG#jk+%e~yf->)E5??@Jv0#~t$SmHC$AR!VQ-*K zQ*N)~<{|ln?eAd|=UX;c&Xnulre&o*O`VX>e4(uBc}i(L^Sn8E-pA5>2Y7;DSK=^S z$aTB;TIFQdU(vLf)NVDCi?o^PvTwa?s(omSo*Iy}IQ}WHQZe+&vb`s0bxm}&=55;t z>fcZH?J3O=_ee~dx+hryU+=67o=pw^-)3C+3Cv@Yz3IBqf9<2dwiPBgj(%8m+uOX>*5m(o z^rO>_gyVf>^Cez4j1>2`e97$U5{bLsLXJ*V^}qB=ca^14q=EBFosFk?J9Wr^c@&dt zs`ZOee)JUX3nR=kr(IwJoT_m=;gkh1RHwI?K$8LVRsm6Pt@9jyRuR~1812^LG$frXdm|CI6oYZ{6r- zm>HiId|pFxVg_JI9-tNFkuK7catY42*q#8~JT;@$ zQSZ)8;$np8k_u(xLDa+ta&yjg=^3B;&kjazPWfzqzxdd9Uwo`U2E(qh3G>OJBsllQ zlMs=W_ynK3v7b8e`1>9?zV%lm=Myx+<^gXtCi8lE)BU(m3egN?1kWKWm8?nZzuJ0C zN9`a{UlQ(&Telv2*Uprojkfzk1S(pI!w@f{7{WtGs6&4~#Z#5$orGG&n9iAZb`Fx*qmx~_^)ts)h_!$t};_qG1H`Dwz z;N|*EZC~ZC*wRVO8w{7gnBMkl+Qn3R&P|)*kh%_VZ^20j&kX3dD3_E09_H&Ea3!0>ooU zfwdYSqVKWCS`p2&b#Cn%aOaW()|lw)#Jm9Vo#zRL!y0Jum12hnG|B!@DYxv7aYO$` zpCSLeV{k?LruMgm&r5oZX7ZVYySQfk6JhUnxyEl*0>a&O739QIGQq;V;fEier@;;g zjnLAt!Zygyky_psMN<%=?aoV$o`6N%-UXrBTAfl%9Jl$By9R8~lpF;RsZ$P{|;}R zzzF-d;Jqvx?c5nd{z}qd!Pm)4gc7ZIjtxFb!GEiv;47D8>|Y=H70!WEll`O)gsOSv zr>SAVKjOzWO8^y6cOp9!Ro4w)cV%3?ez~Kds1wls%F+daafhJWUI^m&w?wFJcIF*=VQ>81H1m0e57nKJkA;54EQH@AS{HT*IotRf$=yjyQ!mD@ANE#bik2E!&R<^n6)-E zmPbNQLua|rwHXe>B~Q%(-FqY;ZSR`Q2PkP;bU|Mo%dxzLeg6UOr5o+#!lg_T(;~Kj zZSU32DWda+!rBA7riU*@``{t)Uj(IM`zk;y%nHS2Zrcf=BmE9DuC|qd+;m9pTs%EL zXc33|Wq2=<7-*5Xh>L24X9z%N8o3!Ct>K$VIHe0r!4%y5`{%&zzyYi7;$i09L@kD|lh2#%eif6A`xg%2Ic4Cnp& z!M7>H4tAW}{`Hfc*pIfFeMaiRV`UFxCt5}JvmJIRm2);OxWHcUx}ZmcFTQ>u)v5Ax zvMFE`!BiFOiPW@(ogeP_;l+jNA%5R0`b{%K`R4-|hOh{Yw{_s6GdorFjEDG?A7* z39`eFSlXr#%v&!;gR@0!D(=6&PCAm}tI% z%Bq0)DU$1j&uqlpD$v17H_0x}iqSZ&s?!tzibgWQw)TSd860DW5UQDbHjDdwJSG-Gjd$(1Zyp4ZipVH8g%k9vg92j z9R!`29`1+n%h_L%?HTKWW2hyiz&8R?hTV8coQmRxTy{Fzi{wZBYQpMC26kOWm1$X` z_HADFNQns*5!zzwi3oAHqFw_%DFrA*VDmZRg*$GQ-CYYMLBLbKQ)Lwk@rXce__Xqp zAVz$L9xu^}m&e(+M34?*AZupxMfh3ypYU9Eh|1h+*Rh>$X3dq~NU-}kN-)n%k!md? z-5@?bcla%DYyzNy$1z^}ciO^cSOK_L5TFW(Sv~Yf+*$aBV)O~XNtX>@HnsaA*+oxi z?Q|Jj7i}Y_tG%a_rZxE=x5h>1fIG}RW^MrH^6$W>hE(ZfWGx%!0Fn-z)FChK$qF0c zGRjT^UPZA1xU&AGuuA5v5dbH!+g4~nEQxlvwn3<9{gTDaZ4QmiG2@&@QN`nSDf)+D zRlwfNB~DSQ<4-xXhx-Ys^pj<0HD^UJ`Zu}9nGz5lQ4&|cYL5F4x;A~9pKuWsy(>_y zn!?aQhy>;s(67RiE}ddGU^Cr;77Rkm+Z4PSZbM}07@~lfanAS@N9b$d3rgC%7yBX{pN^~xBs}3cZ4t^61ezQE0}PLC*lSAM}7Gx z$L)hmPvsU)>PUJ$*N{MRM{*yc^Sx6Ul#Abu;7K6mL>5v<9qfte>hIeP$p?;I@A8q zbm@{>a>Glf@{&_&*XYCn;%Cy~kHTE37S>}#Msi9{bFckT<3aIZu2-L$dc37p+csR{ zz74^TE!}!@EIyvIDr3n@g$@2&p)7=v_h0mwl_5`9IkJ1 zrW)_b@Il@;tn@IxEA^Qs{-z*~;srJ=DQwxsmSLecfw_bl0uq~?a`>_z4E4m=he~=* zS+8fN7W5?9LPw{+A+WtT9fZHV`^Cmsp$Cb4p| zM+c)`TZ=XmUZhH^uw(7@=9+H~B>lZavR@&3JQi-R&y~};nmf8G?h%40b&gn=JTLtD} zOb-fQvT7p>9-{tyA4e^FOv6X%{mZz&Sk3;7tq+@oJDo8e=SVa2$)8iqgSY1RllG5E zqef(^VdHLRDL;p0vsTO06j)4Q)!$dAN|Vgl+Q+{wJVcK?XllM;?Pi-x*go!|@37hS zCtX&ar{0sI@j+aV`f=scsdFM;i8NIEJ!A*y4khVlt~7Y3t~on^tSH@@qK%vP{c#Tu z{qC+{$CTVIJAQAb6|SFV?@jf1waZnEXeyRHx^k?z}yv3_g`W}69?!V*0f)Ane`HN%6Ob*@- zUm$p=XMsiHW3H$r&7NNaO0(;tn*$ivi-te^HF+%2sBmlhCGzbA+uEOvCwGi}A}LP5 zsUZp5hip|=360aouFN#!!sR0CAFjm-JmQ7cRPAFob3yr|6(!$2Nqe4QM@jd9G3|ma znET?;we6QBq43$9?BQ!q9LOj9cDj!gnNMd}xfW`*S~r=Eq$2`UGWdeyHaCTLAA1j- zBXzOJd}xz_M*?B%^-@Im#ywi# zvn9^bsa~gJT~;W8Bu+3!*z`Ye$DtsJRXX+Q$jjXyno=TTZVg~Tk;mTYfFoo_9JF+v zuKR!N2GL}X5pP1hTM}%ROrJ+4=(LF)n%-~+Z+!F#NwKSQxEilN22?0N{XdYcXGo-D zQN``(1DHGHtK|{NeD03KqMU&F&;c*QgWz^cq5q#n%~HB??E+;QG$C8f2V!Tm5_|&Z zvmG(yU`i{aE#_|Oli|=;ZLw?SFSz8i?g|dS#`J|E0kB+uIDbUW8MXG;K^}TW*2)OZ z0*PJkr@4p0vd*4C`TOh8f4}j$-d?i(#ycae$!sNLxl-cM;8UcGRTUjtN!H6Suse{m}DjnhNv@jPwGD=FzANf>Jb zq)ZSn|25M!YLqV(NCrMgEvAoBy!(F*LBNoG(GQoJw`=4N4SOr~q@64DxQ2tq&A)vh z+O+rhk!}p?nq((PYGY46f?Eny2OtLtmK>H{OukHPezbWuH>3yg)4dmdW&jYRN%4bW zZChS7p{HfV5OVg4tcKdDrL-I?xXzvNGG{)mjE+wVRPG_#X>%t8m! zS7gn3A%~!2Or>c59!Sh@;yoP*K-cLZnfrRF<}QbNYzS9+#qO+IpREo&Bu0bN5UoEE zy#gace!U;kS`(~GPlc?UF|-^u%A65WsdDe$@StX6FA81~!Dp9tpF(Yxz~0%+&6Ke#$l`Ahw#X4#`*TKEF8S<)P^}H(ZuT=uzso$_;;V#Q^ZvlI8#_ zRHiiIhdMJ2uvmE^UZlz0VxJffxOI$;A(f~!#x`x(Tcs1fWU3HPKl}Vn&j!EHo0Fy4r1!Lt6}gHLNWe2&F?4Y=Ls87S|ppd#t~N(gO0kt~OJMc4r;0t_GIG z_BCtpWp8wfu@!vtSU3yup1b>s<3S&1Zvn(Ha7@N>a8)bq5ySy=u*Q0wOa;5BD7UZb zN~idGZaOGVwubRUJh|qJqZ4GCyy#ckd9$m0DLMf@M6BwCHokogPpJ=`;KU79zmI*o2V{y^wIxXc6lKjJm`C9V!ibK^2b0cW0g&KVb1_zZymr` z)tNQdTu3!2U! zW$T~;Ca{_Gd!7NbW8t$iqB3r1hI7KU79dp{

dVu+a6-OVJ1q*u8s&s^CC+yuIhR%L{#=TCW6 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 z zrGL~M2K-=C(R%gk-r@rfHKQS&PhA=jzN*Y1|L`{z<%rsuBA(w`RW%&ESRHwXCM^a1 z9P19($yG3#xD(ZL7dR`M`=}WB#@o7}MJ*hc@2+1eJTKisd%B!yJm)1k?P(uyQiWZw zzu06sMqVICK(2_f~t%*JATmhHpz#*o4pDi0=Pr`qp_sF2VB ztK`B|Bcja`xn|%=`#uxH(}wB`ZM|wQ&vSJr(zwQ&5UII_HZ{DQZrR8f9ruHf*%je; zQNe83MF_5bM;T631wP1ABo1IJ6 zo_?KbD5Yz=p6#LH{i7yNyeR{`i*(Y~qhn`%+(0yzYCmAFK36jlgqn`IRqrTGT>->B zMtSi=5}J$8n6-vJ1dLBNVx0nNhjwcSML%cSm-7#N-n>3yDh>G2!%KqS|AzW%qST4d zz>dQCv|Z(2KHe?j1Nk4H$9V-W14wk1_(|{|%=Cyl%Hux zEj6E3kM-6Uv)%PcJ}m~r|9RO7I9~pqV0KUR-=W@y^Phe7NMnsIQIgKYiP>IB>(xff zoq8R}{OhJg33nhR_@QXq=QdL_iZ`{;WNf%)U&(J(v*5dS?)RFVLkxuNy245}S=hHF zlUyGZ`_oQeCd`U(P2e?R85meohMLC*1^6a9U$B)%zwJ#mw?OMYA`;9F?x{avAEZ)9 zGz*E2J3(P+cil?N+a*2hQIoQ4=6BGU6`!jy>^gmO zi8o>CgzZn(8Q!wTw2tb6({_;Wx)*lwuEwJHqNDCH3i3LC@%C$_SgtAuPtmCOkYwfJ zHJQacpFWVr8_635hi%uH%U;u`9L!SN&{~*IeTL-!FPs0nzBV_!Jfak1L8i1>jm;sM z-mCPO*$1=Hq~}^njz_%mAN3ZdiUB895*zVPPt1Bw9XA{JUK1stWC)M$e9xvI5G4yR zctkzB+pL$smC~ok;2!05|>qL56cV_|Xo}EW>UBCB}h#=9eWiRE|im=0Vi=PMU z;!amvNY9jEAA|XMqRd}7tBKi3{?47I`}qP`lx`cRuV=AAirs02?YL$6L}hcHNuqgG z6+A{grK+nmFdGzf3KlC8r`=Jx?8^Q6Cp+Y_BXpe*C@hh z%}GRKP!l^JTY9Gz$SBYZ*A<8g!M}5NvZyb|dJT5*?@%)P z5c+K=4;O)beqQB2Y>Rkn+G;Akw}q)<7zGs$v6DAbRHMvs1-h?{6|wz6L-^_31!X_A zQsuLk0gErMJIyvEC&GVE8at*w*Lh(KJak+vf8xpKu~>+$jNpaw`K64}u9Gl3Bt0bb zikou&D9r)E(>e=bvr#kj)dzaeKiHcdQ9fn93<3qtmLU0g|DLX$jfyhzu2!w1dju!v zLT?$p9Ql;f6&}enlSJsk$^sw9T+G+8lvG48O%c6gJmP^-axEMI{3N^IE7N#YeBZvs z*(@z1cB1i(D)*8pWp5Lue1k~1Z>EcB!TrLeE@pV`E2|(X#!{DQ_E)eH7pUnvw!|~o zSZZrf?lxCfAE_!@d@6nADAw5n=go9pzS(%?G@|y8{7%;SkTBA`AUw;_)_%tWIYk}` zZ>C_G=SEuy0qWQOKqVY@LA^+?iGzz~UKwm`X**Ujj9^8j7jxiS4jjpC=S7ZCliY{l zU5f32JxY$g3uEcc=y;sF^VQItt2RrckH1KZzEpeqW5$+FFsyP?VcHVhokTl! zIFXWeH;5!KIm*n#fj(Fl6t#Ddt&07EC#x{hh5#OioP6U)G#yubtmT8Z4}v1Tc4j|+`<2*AO3J= zX_6I?j&AHsy|sDD6v3Hr8-M4nMVk&!aJVMtxBqK0@bL@SRjrKqm+vo>)Tc2b{u&i1 z`$LW=MiXmx)M?L7lU~orHI9-lFquuC=2Swb5XkT#+q~V=L2nnO zTv;z^+R-COZG~J~gW9`5(};sT>*%QjS_V1th(pWsQI;Ep^oyTvXJ||&$WsBz^f+l@ zD0iyrZDX&cl~4oLdhf;{o2x4)Bt>CfNbVaUZwIXrDwDp~`-|9GpugQ)rMAQnFTGna z8_lk1FxTXF0z~QLLxtZ-t~vOYHIap7TznYay(A#bD+^{QB~;0!rAtCS*ab=wdZwsV zODigybZ3nL-F1|Nu2^64X;O=QcLvXwG_c7FxY~EQRar})T_{8=mQvKNDG+y^xDL;x zfGKvYfI6>TdXT%((%U~}@3G;wkZ(l!hY1k{QMQ{oliCO05TKda-q|8C$&Tz8rPiPD zK4Nbjv}O=%ksj+)^}C~1cDE1pM`TaHc+XtG-<*)zezpr2rXXdzK9cL&aASuU&~^s; zP;wueJn0+x;m^~_i+htZT6X)>gtz9t!M@oeTnzD|Jqepe5yKk&;*(S9gP2!UYxcm= z%vCt2yVuF&U8$e1TDz^2TSghq+l=p(u>(+q-I6&W6y<3x1ebKx+1nD{I%>Z3a<{-K zQRfJy?(Qylj~H^3g}vrDoRTZU3LhdCAI-7{CgalgICnzewzh;BGcH^#R2=*T^1g>7 zcMf=6aQ7&no`+;EhfuI0?f?Nj{(M(o1`qz-mIL6OMiJx>q5GhplRbqu13EnIJ_ase z#L^?il(0d&u@@)JzS*D6Cc1TbBo95R+=nr?m)yDLrpbch+Ma4KHm!Tzm+#@ZAt{A& zC`4!wx`nG-n^F9ewmYG5(7}BOd=taqqqNdo@N~IYp)ma(7(6z-%MBfVKk~&W@o9>; zUkCRRC9*EPZLxJABnrW?=bcv|tP6Ye&yOypszTKqHV6(sYM@!G6D9l~JM@T~`&Hfd zkV2_x4(jQum}V;~0YIa(H?kT0i4?MSr6YH$KP@ z$i#WEyHpQkj^hVYo;nN+M%YDA{e&u~3$l}Mjpx?FhvE~?d@#SYkujSq-Cq}}tqVK! zz7MwMND0oWZeno^R&9rp(^#AIhA}Zuw6<0%@xY}clC=twd(6nHQ}y^Cps93K(@D`` ze)(0{(0|bBD+Xi=xQza1kspa3usmn!tgr$dm-7dJy=Nk@iQI69K$j0*e`d#eHC5dw zbf_wIyNd7eh%^6a~V7hVrEV5GSKU6oBA z&s&gm8@WGG<%bvk4G*vK%TffH)-Fl1a$ZFs8>NFmwR+;pT>ni^RCR7j8QBM`W-)|M z_~2_~L2cEe?QWs!XC?{@9Fzb^L79l;BMLZhtl6~_pta8#OT$$0n{zG~BxUC}ncA)| zWuV<~zrbVoBV1tKtyx?aq><-U5>Rg-T4`WQ{P19QuU0m$4@AbNspu_-0qc@8++|H~ z5kzAx9fj~I`_)E-h=xOD=Vz!JTMJ+m3J(C6S$`$aHQ;)EaseV;2o{}VUY`|1d&bq1sw5>@(o)!)5wB;JCV6iNBf&z z_~cY?+C(+6WDlk)$n94p2~8(YhD58^g@n@V!{bAaa8{tapT;$0YdqohP4iA@G|{dV0#g2B7#gP&tl&G5L%csFx4etK z2-vF?B1ea$fb+{^Hbd@vTeF_uhh1eAlD+y9SNCgu)3Dk@Qj{@Y<@20Lt!1zJO^hgj zZ4$rF!%rc7dk`SJ=b5iQQe7@O>GJXcmry&oG18UyxC#I`lqbYTLqB7Kv(_N9vN<-R z`#SWXAdhtq+$?2G9$CFIP)~UwL-jF;zXfOY66#Se^M!*-EoqRl0x>YfE3&5^DO|N& zdP81;&7fxjH6TOEB0vyKmOCi+e8~P+h)r)`aZkWTgCXe6F z*67h?q^Qk|m|Sos&)IX6|Bs_{@n^dK|Nop1p=2wEkq}18VPp2ip)<}f47h?p5B3XyaXbEt-9B!`k?&gD?)>bgF^_xJZ7%x!P)y`Hb<<8i;6zqrGP zew}^o@dFnXhSXamX204ih`W0*aV#?fNv?}kw36Qcy}SST{T8+mr38Cw#Pk2PSQ+j3ZLrhv6Au-0l%Sp?U>UXi0m0p+ zGI6`0xKFGcFaLLVr8T#6znD=nql z%n-05Q0lKyo2m0JR0L$Z-I|YbzyPKLe;3vgUb1@Rnfg=;{Q+&47ogWx(|i6=VmsO= z!v?3n;r`;gSFxdyy9GlUoqAu~$VDGZC5L=7@p=?}X+d3P)IX3mA?S$Kg9%wlxACSk z8tla#z#TyT!~s0t#U-@1qXP~#?l+;{rtlCsi4KBbCHfr#uDc?_p}H?LzPoyUi7ho( zsiQ-_zUpy32n9Ia_tEgXfil=IGMfWGVSr?3$Fr6f5x_s|-SztJ7NXQ#hRFAd4w4J; z_h{$)lbC5YaaiRd6xUtXnR|jLxkQ#l7=V=s(bd_hnoL3IfN z-VHs(2VcX#;(v7m)IfKG*c0JhX87`C!8aS|C|Y#xZgX3#xH(uY-w=vzSBYP}P?%`6Z&|+a^tQed@BMM<~D`vE`D~HOX6lj#@ax-0sOK z{!9MTs|ZSx?C{qT}1 zCR)O=|GVv!lxWjH!$Bm2{;RfyaO)E09uujrW;W?Rgf4J}?jq`_zY^iP(vW!_8ZYkQ zi@zop^TG;nsS}ZVmln+y??XDTVN=~R?N7Pl3UB#*v9+BQ8j8phylELU`gi(H%ZG^V zpitBl=$p-!|K0CLw3gcO=yuYxTe^?U7gYiLOm;`IDfWc^af43{VIpL#YtgvAQ|?nJ z>4JP?p(Yc}cn(j=G*|ta-mhI;1>^(~OH5nJ9l{f-ljX5>5g?II?X|Cm`Ua~rYJf6V z_+VBeF*|Wr9;-a^o6PHY25|_{`1UYp z1@&NHw~pW2P%aPy&3c!w>T)&j_pK*Ve_>JLdIr71mZL9Hd>njdj+EV1^IFMI{NPgE zz0il;^7T5Tq~pxiw63cLn#plS*%o7SOeQs^5UcH;y+tYs6COM}qw|<@QO;qIy)ENTs2snYD(J@(`Z53*09`* zLoyj;J5eVB-4e?P$YbhD=^`3cSR+THCf=F%^6O&X@Ti3xM;egps)%3aoUj(sP;cG~ zr~=5v*@j8%`RZ`&sn_!opQtIKw?^}?R!z}(VM?ugCS{cHOJeFurpIUbeN|1n9G$Sn z_llI?fw+gpLI|F-H`x=hkH6@YWo)Fx)%6#2xH#y%<>%291U4@P1LdQh7+!w`tNeAU zr2ueH2$_dqb^pcJzFeyE>~VY2Sa5GjI}|7%#f09To@?S1F7s}z^!(J(>5S#)r3&68 zKK(5R+odK=5|yA{PZRy$Ocvzr25I@8Avb`UhSj zz`afy`Ky7O*nlE0c;!7M)jFd5?(N5&0}Vb}#Q75qcT+m#oha_l88_E3t9qgJ3GXl@ z?kQmY*=?J5S7zDnd-5-wvYyschZZe>~5yH5BsjMbn=hNsO2Z zS^a4t`89rL?%S6bq8KS!q)(xn`v#LCVn zv5h;_4+4Cj(K&0AEzC8a-|Q(B`TgHsf`Y{gQ!}fdp0uR(a>neuDNsFvnjutI(+77> zsb(AV=pXr-vvMZ<6FeZag<&*(DZqOaP*k+kkD zq!s_B$P}Da9ic^Tlapk-U02$xA@ZC{5fvXP#32&)_&&bW9#~XDJy^uMgZW)cZI6yl zp85E$CQbTI$X>%ndf?i_xd`77D~Z{;CU$4Hn%~i&UG{@*>+n|(-W2EV+4m(8R6iSX zR)%XneJ}`IiO}cPfatbfd;V=>2pP~LOZiZG@oh8Z zgJ*d_K_T>;x#&&K(ay(U>R0Q8>SYOXHq5vdJ!G@8%X%i{zv1IOLR_L*jowtPgzlir z^8QMs%?J@=gQGG7KARB2`W|XP5Tog z0meuPZLnrLp_XX9#wg3_oIZ<{|0^tXTe_aT*dFke>md-7q|9OLC3`1{gFr~Tp=0{0$Y_vySA&~)x4=tD&1-mz|YKhr|=-9^?%oxmF~Kho+V=!LuLCZ#<|uo}1$c0OL14v1&%jWy=%YM{*pU zXWdlDteSOQ==bxnbGcCIbD59)E{gT*N~Af?^J(z*+G~m+BTUV2HT-NEBMJu3y_cP@ zz}5K%EPmW?Wm;mF;jvIRvE!MroIy3gZ#nCx<0%Ei01fmc4X#<=qW>d2fl~q7|&7_Ygdsg%cxWr8Fno0`;szVL87D#f>Cjr z@Y<-?_txk!fw!xEnv&x}92X}X96OX&JT#!9L{CzkvUft8@ z@R78BM?BH}t*+axM~+|{>O`zLMD&9Su%E=Cq`2d|JrwYQo>Im2 z4%@%4s{a%$aQmn~eS1Q}R3>M~!`NBk?GWK;?tDYino~I3MXSx6=baZ!uwH25dB+`p z1*o&}t5$P}Q@y9P)$lJ?k##jnnK{*z>emLqm?F1lD9 zR~lTV`H%L-*k1SP%Xn>n&Un_Vptbmg4a!`E#fj{>YHV(bHyE?GP+lyJdzk9jcl$_4 z_&(^EV~1*OZBC(SMEC)&xtxB%V5_LpF;k5Od{FKhYs5|p#1*2^c8M_R8-^uKPi12lo5g9XpF1TG!kG@dZ;v)hU zddPOQnNIGt2ri?_b|UIdM8n#;D?W<%2A?eg3e5!`LRc|qtDI}6x*~K;y{)!93Ew3x z#L6|4oE_N|mXT}DQ`ab^kO2l=>Ak}p_AskPy&?1J>r1pvApPW4)-2h+f}5whPJPPT zQ3+MMj9`heL0ny+1w=HqzDMyW`U*oX6|(2rWPvE+rgHpQxPoPMMvmkMGyv$8+Nje9ojlyT!muTu7 zm(4zHbMf3qZwjs4DHQBQFt9dNiZXE&mnvsagq&)O<#$BfsRMOFQPG4mO0`$G)UYL{ zH4KDc#VXZwQeCKw9pC3`?eU!0+Cnly9b5RaKK9EpUbB#>b)(Gak>iKa>Vc(aH~Kyr z>s_}%KKidSL2h@ojO)R|EIXE3vllilhj?->N2g42{D$<$nfjH>wXffWFWOsp;9%^g zKD#qYYZrZ$Cf=6Ht=@N|F-U${hYT1V!SZx$j>!pQx~BY^m!~-dL6J+%*FFl5rp4LR zMj^HSnTM!5$FRxY%$ZZI^oi?PBH7J#T+3qy+MgUcjSlRbgA#`wLwmCIkUb&h+R5So zhSE{@O}k$MuG-u*sgh^%W~pJ2QeOj5`rs78AZAD13&kP zQgy4+5d@&_jeCz|9<8Bk2FCsA4A(DEV)504tRtMr3tBSDteE!m*)35F0rnJ?l}$ghhcM3Iy=|0Ka_@Vurd6v#h@*5VezvK~B0x6_LI zfz3ds%DPwuQsx<6+SDi?9V@7}&7H;g2{PvJGi!fSOn9a8lJSAVQ3Tqv7{J(f+U*52 z%=F=^$LAaFJYnsUBWBswTN$NMxjhJ=ssp}F zfc395c7Bb1rl4O|T^aPL+FVo+9o<$-xn47+-`FjlJIl|V7LEspSnqSD6JihhQB++J z7EpdVXa{-B%+iAy%$LuO-|!4ICp6FNIsP!kgsj+2Qd^X7zY8g=G(9ZxoQ47I@NC~D zdht7~6QiDL=I2eQ>RBA!$ngN1VE-R@7;t9#9%AsXcw)?I2OKeM#~o-=b~ zn`mmqTgb0@nFru zT3Mner{r1om_j*1RaU+k+rH-4UfpoPi+Oc1Y31nV5|e7gRlEF_ z{3OE)=^08x8w z;!RfQs#g5|YrKKEYy0eq1`EN}NJZDBo-1L2v!rCHo=TP?c1Lpnr?TEc4RWs1h=Ik$ zwU?y0e4vM4rgJ2pVvtovW26Il18GV%Zx~})9i+bS1JsLs=&ys`6SW_~DNozBa8E-= zg>MT=A48vqifHj^RNPY`eq}${D7u51@(2JqkrOC)=R0*p4LqtePW-HlJP4jMG{H=5 z<66d3TPC`BszJfk7yCu5us4fcV?c4Yy=h?-d5_;1+v%eE zvW>L8pg{4?@w6yNaOXgh91HXIw`CN@pKg&;?F~sh^b#GY>_2YSs_5RIPV!ZIa zh$F%`g)YX;8>OxJc)qy(Zj#;}EI<6b(|GoFHRt?xAcN$&nL+Z8u6YvT^A&f#P^k`i zM%d0RSG4$``aioI#YQ#*pd=2O*O7k)_g0;@#&dMN`v}u0>CiEJh1j-u!a^|Z=J~d& z(7@$$Ow09mwr1bJbcXuJL8hY7#th(RdhOf*QF=D?1!d#kr12OqC&if|>VLLTmn4-S zw;sZA)yuWesixa6j_7F7y;O2k^_s7^#mWNP6D<{2@P0yAkR3R(TY}71C@^0(y|eNG zG6sulxZMAJACZzhV6o(Qr#(`%w>N1=9`7*Bx`Ryn+?zDpez^C_J6S= zGAYRswP*hs;Tgp08){!$m}9x;fyyr+mztaZG2Rb0ABME%3cLiJRegswPz&P^H|nzc zDp7Zxn$>hQUhaEFx|H<6H0;kESC6Sd&sF1+qi+F#C<>AO#^nu)`02IL;4HR$A+8$M zN5bf|aSr3Za}%A@ zw!rz2ux-bB_G%^;f}0<#>NKf58Dt2|fw=8*HH>M`PtwQSNp-b-y4TM%x<4d_a+MG+ zN{$rW`#t(#N!d$GwzT~F7HUBu+0X%pmEVanuNbYUA-pS8tI|PKWFdZ)>%wT>+Nvm@ zNGMKP4Z$X+Ch2NFyFOj#gI9!yM6oo*C0O9=U2`uG)FT3yN{G^2{uwRh2$8P6$Hq%z zSzq;jj}D8hp_7~I_q$oQXtyea=V`8rx)=Xu9=8HU(2~XaGD?dIwS6C50}3?3mA{#N z|DNc5OYX-6C#(NAPV$dl-%xXw;?)0Hd}H{Ww-x?n;;{3<$%ctI-{^=7n>qHS7Y4_j zDV{}))8cF$h(;^Pt&%-b9WEg%4KP6<=wpg?O#_mT-8&jb!7?m<(c6NbY@y{8M+bBE zb#9SoRjtO0U2Aq1l*mK99g@JgH%$^<%a*BFN~Ok?SvOaRRBnpnF*xgLvk9SVKF%Qo zTc{;FQ7!I2-+A0>9=@@e{Zre1fO$I2tyyA(FN zO!c$3Aeh~M`7RYUV7p=Yw4dQ|o{7L%j3(vQJ8#iO$#w{<-5UQLs%uuEgf#&hUaaNl zv$Nugc{vuf@9#mLZ+|>AyKDDw?%}y2fzZm=DVGSkG>qvuTf5|&z8DIumCxAppI_X`#de6U^t zJ_5#CFO1#S3zd#sk7Xq}fEjn-v!^Pf4$j+e8tN{O7gH3rT;p8b_m3m3|NW|?O^4wx zy(?^2M<_DgBocEJmr5CPnh`IIa)n+>bfS-~isb4=8* zQxs9fpNVD8D_P^K=IPaY0?~ioZrMO_e^K0c-CXB@3Az7UZ$gxx!|U+~{jW#V5^)}X z1SO5SXCG%rCZ`9R3@3s~=+a(Xf2aAXjM=Ojz6zHid&**T;^DvvsFzyfujj-)PWv!q zIO5vjkAsM{fFhqycty{+2j<@Y16>^UAODfbWI4-l0vD`4HqdMoWAzYAozsqs)d^tF z)$q6x*o4VvdcMbz{cT!VxiUkx`c>qO0M|H6xmAI5`PRD*d!~QyX;lJ3XkZhG*?xod; zqW3zm?4+z%$uA>n#Y**S;hThDHc;(Dc_{=`G?cird2#aHW zD1Nubo2>LIQm?X6;b=eSxYd)+%e2n(h0 z?2ZG0HA}JHAC)zFatAxl07;6g(lg<4;fKDA7i4lBI_M@m14Uy@vjXKRodeuk*p8tj zHiw9|hZD&UUJ*j!+LF0uh^iUJBR>ztB}y`0Cr~5T<0Pu?aP-+rExtp98&N7{vW9=F z$L>{3=~lhvro_99~}y(IN{tt#dnb42S2`?#^;ETD^+HR zxP)#GnhUMNV6zHe;9x}`%KKIeZT-x-Izxyk?YMt-Y!pL#*xl4*I@f@?(^44A)fb(iNJGrVsjj^!JKClbho4@(uqoBwdBrs<;Ay`O0&rgZi>Oge zfqKVU$lt%iEIx6PG+8&OEqh@n1mcIrM1+M(mZ4uz1O^DGr*EkGcjxGf5~g}6CHRxJ zQD~VFTG3#X-XhkV7owl$>-gBV9sNAd(0tf5$lxtxK{{{rLBBJu z=>I|HyXf;I`C%lp0a@Ux`poa)Bq~_ZsC(V+I`eUcScU`B?@%oW9Hmbk?@%5Ye*Vnk znoxhIpAY1(yV9lkr>tFc{JMFq!g{k%=|DyEWr#U=++P{{!sd)7xRMEy87-0nt|BDC z2mA8ByI|2)OJ#<=ax<%;vT~PN)UCx#)S+^M&E4b1SJ)m`A7`PtJ_pDJ`j%1vy>P{B zR6yiY`^`CsNG-cAaPp2z2q1yQj_`XwRx<4w%Ge1F8st8BhvsU)wPkTmVZ#4L`YNP# zo!wn$cpL{V`6aBRPmd^{xCA((04CP5s@|oE+V|y}k@oni@2*xv_n-AY1IJS{7Uok{ z99=bv;#cffTkmWA+%1` zK|fsA{9et@5We>ZGb|8lamZpMJ1W`&=aIrM>)q(u8fQ9orB6G4x6S=a+761%?jL8I z4|4GHPn4DeU!|5TDoR+B?7JpPq9>{wC#RJYDbct1)&|8Wq{UOgc1 zzM-B=!0{_JMaXvA_V~(9V7`#tU31sE)}rQeKB^;su39vviW+TR#bmq1g`KOhm9!%H zjz7}R?)BQ+)mkR^g^QB%9NZ*L`|q=ElBOz5b$vcI(xSsg$$Thz@LAwds8^NMi3sFJ z{jx}HGeB63rAWt_mm9?CB)RwYUIB$t-5(LCjrL-8IVEKU-WTLRrGGn0^@Hou%JT2Z zwVb&rgj@z!7e6Y2hiR7%1aHn$MvkfD97OpsD>$v6x&=2yhD^>Y6O5)!K69)d(b*je zK^%SwRykyz%r}GVi8yPK1G=E2(dQJLiVcJ+ZXNRzstQRp`Sh@&L+(p9(b@bDenw~* zFdn@BVDl>Vk)M4xxb#;gyRJz@k;t{(U)LK{Tyr=4Q(LLBc~p0%zfHkE^0^T1Z&ifp z^gAI@As=Nf{iREXxn@hExg*&`u*}6SXWu)=9B#cJmIL`P`F82F)d$J)9E7X7)U!BvwvJ&scxCZuDiq@SXhi z(A{8JI3tYX`|up&mcY0H9J?@2{#Kiy`YkU!XtH0wf1F--x1Z^JDCAR7kHnf2@>-^^ zjbD0lA7N0Hpizvqla=y+lGPPi8R$>L?oj9vf8GcI0Gp8->UFIJd9v?w*$(fU^Nw|? z4r}(a<$3WC`78R*D`f5|4MWiFOC0~w&siQJX=J{^8PaGE7Vm!pQ@W}ng3zdj)W=+ zRdX!vATPThyxJ9>61V)RC88iecGW|EUJ3esQHYV z#STh=+|+nPX#-X3@yL-+dm%XKxt+0!Jj(MLn2s+$O>nGqe%Rn?BtPPD=dwzZw@+A# zV~CQP*qPKMRT<(QL{@*Y=cgcmH)u_6h#FyoXBzG6Z5I@_v zv0T~}_d}X%&SfA@A7QmdeRc=w)}zC5EGT{3RI<3kr+-_ZNRM2RW{J>qA`>{rvF{G+ z!sBDX@K6P+cP1zXq9%l>^^6=0A9{H9-<2#ig!Sql>S2uDnH-8&F7=c}zOr?tsXWlk zp43cpuhL>`KeE10SUi1Nqzn)A68+RJD{4G8`caEpbass%rsl>WwBPYz}q!gR)o7e-1zN@yx%b&o!zDn6TKtv7(hxR~-w zNHU2=$qZvvZ(O3z}7-A+hrB?fGSf`WN`>eMLG@m6e(g*l6#DVb& z$92y8(aDGlX5(7(3G!o&2Kc3sz#QQT*1tEyPlZcOzV*+zS3ytdA*W+Sa^?`MC8~IPm6YASeST)|(s_Qjt!*08z=gq6n|YhP4An>sx^=y?UpGPu&9439Ls|FB#UVzuMGz(`@> zGLFJ|-O(7L-*C|Jxnu=z2O*w0UkX7?>&J*u{lGa>L zmCKa57(&SrGTA_~?U_z_ed#bbvmarN7e{wnNn_d{yFVR4pJD5p{SM#Sa9>E_A`U`F z34?GbN6vumcIIkE-=y6@?R&aTxf~2Sm#@}5y#VFYI+`@TPnL8nEfCQITuo)@$&|D6 z0e2!T1t*z=+Y97tm8><-117aucf5n4&{&qXIFhH$w}`0{&wqH2i6LB6$e4$ml=E!Y z`dQoc9cz1sAm6eceqmudQBbj+v`QcR6W+o`(rK!6E-2GhEfI1qec_w~v7r zMXgaQ3@R7;@^yHi`49n9juT#PAcS7h+a(JMVtN;(V=g@6m^aw#MZ_oxlL^~xQ)bOR zzcd9)FCc^Ur7*J^(qkZE^fthGa5{v@9nry>$q(cdwTDF$|%AV ztllb-=(Mj?{X_L%f{WGR=-2Ire?f+$r<-|i!9q3?Dc(e$cS`{KU&4_7*i6}pq$|W# z5CG~39|C~^2+cZ4zU}oK-NK{ZLJ**L&Dd;ELe<0tF;}(WZnQ@BMtP|j!p@L9CTBAO z2}aRfvqI;i?PQ7=WJJIVr^D3kfzQD|)iHE*p4 zyC{)HMt{tDe5pErp6NzkNZ*hDS^eOBs?WSC9vM-ie{}jcwlBVW%lGpQQNZq*s7$vk z|05@hebC9(KWej7hFEj&AChAK(h7{>oIKxgNPW#E*k(5D6I0VvsSA{d^GnaX>Q5nmL9Rxcuwx%h= zTJMU+^Wca2lvBV_f^Dy-j$kMA9FSknX@bM3sLB=)3EN;C7;Ol9@@6zYq$xe*nw0({TOV|4pSe&c$IPuTTnt%+W*jAF#8Dz!gj zw*Gu*p`K-@c0Zx+uw23br+d2wQc~^;ZOm;Sm@ivuF21*n^Y#wbF#R8>)aV5^Z)PgH z2RyyhNO)H#j#gB~CvbIylhGSo^NutdMH(54U<&7kA=ubwhrUe*Gi}7J_1YxFS*|bi zJvRHC#mupx#OF+XAxd@&Htx{4j&}LgZXF3apwKi8Xd?4EQj~yLh&Q0Ka!rJ$NOjPq zG*S)2x3C!_H6PuQ!VTzlE6JepXu^|`lh)R0oum;R z4~(c@&WEOFe~;b#LU;?(tLjTpy?<^Vbg>wfLmjC+U;h#1a06n-L>7av=*u|FiXJLvhgU2zsL9*H6Y* z?1G8p=Bk3)sORQ&gwH2#C~1>-pjmxl{w>!GYn}Sl1>?(0Yd)XeMSDA3VWQ%6#asKL zO#B;Y`ZB5U8vz&oGM4%6?NM6r{>@mip*jfGMZX)$z@;4T%nELpfID-r4H$Ett(cRF zT0ex@>vKMb>0Cw6IBVy4j~-rf_?w-5{}lOFsGOd$dF`vp^D6Xv$-Tb?*-;ZU6Sv3c zS0)1f%dfv#<^Ud3)FFczzj4?TGzEKnGGmm+aT=pUAy^seM2g_T>>Tq_i#z20i{0O& z9n!(H0c%)~R+Pz_cZBo@HPCOjME8_F3u$}!i6DX|_V7VR*GuP=ZNdRRw5IIDQk~NW za`Q5c>p^QEsB|dnVGv7|zdfE&fCFvFB5s=8(wI?$Saa;!WC`^<%7UINC*sikehELT zEya`~^H0PXAGJ=>J2Ja>EXx?*$B#HWx26~6y~Fup_r^{;ymP1vEX3I3dAtxfb<|wb zv1y^1{;+@lVVv!RSfDJAcdP`CZ_8K2)|fQyC!2RIx47MUcv6l~*RBrT;n%%nnL}oj ziR7oYQ)H zS>;k8{q8_QCEma*sP)v*<4;{3m+E{^#Q8P(ACGLYihF7jWWU9Xm|W@Z(vn}f==DRz zGb&A~!GYXluvU@7TKOAL759-YnoY({A5s4gQvR?uImq6{*K?|$u<%gBW#S=HR41OixSE*YocIiZIQTHD??)8>Mv%m+2GvIbYeOh@ClD&Vt7ZAA)7;4UJNQ z9}~H-j{5~q9l&!$l*2H}^{hbW>hZ7mx82&0WqIci@cDM{V;!RN{|7{gv0@0m?@YnB zqORQ4I>_kwSm??$ey6j~RvJD8~G#UP=tw+=( z61;6agT`q$O{HnW)p*i`$7gpAIxV>BJYy_~PE`?RUxQZ7m+5&Z)*M(^31-=2mWUiwwFz9b_?nzs5Lk~NTe)NxUuh>`r4}2Hch6|Dx{=r7KnFa?; zL{7k~s6)5r9LQpZU-i7n+t z^E~)y*FZl_*EfXOQ>8?)dt-pPp?wFu^zF;RY4BxP@Ncb zlQqoi#O)x_L(0EnpN_!8^$(>3@ z->;Z@DiD@hs+2I;W6A0L%q-T3HUb`>YWptbs9}Oy&H3-^e_7nmCXsU$7|Pd*zCJF} zxJNH{TpKS^5vK^zQ1KP(vOZBEpD6R?H6PP;BW1PfyN~~Swz}|@ ziz$Xkzv;))xOVzeb>qGZ3g`#uB{M=bk+J^a9*6GTTz} zm%-bOrP7Kaq=+UkLA_XaoXxN*n`pQ+X`k^EwDIII^TegB7iFs9j#-yN6Tz}e_EovA ziP>LF__Zqv2`LVj{&?L@hJHx7pNehTbbAEH8Eq;^oGrL`?9BL+8H%UG+SVmG4RY4U z75+rX>32kzJ|g`Nah#5EU`F-aDly6vnk-5r@pBn!#^I3;ic1ZyB_2mcGH2OJ3(8sf zv$zoe;$&iOCFsc3P|K)8#cP@ddk?H}vH1&WE8dDK+tk+I5MJL`j)q3orOrQ$2(+mSY|8KmV@QZhz!Ncm%Z7 z)SdE(3fA_0kSvC7PELY}gIFRTM#hZ_y%O@0GSd3N^SKG&;;C-%H_vw7;V}?E8z!cA zuh~LxR=#LKj?-Go>f)Fn0NISqu~bQ>VqX&8Uq(9Trl=bY8N}lnvWLPy zQ?qvkxnXCUs}`Ce>DYuzx_TrR(W8SanA0@6<9eiZ#`-e6)*o+pJHOiaTWSluW1SLu?OL#VXVdh@CeHkKSerq@o9&)RCR$UiC>>TPz|0JZm`HYB&ymWFt$JA zIc{T=mIvsNkC{dn)ay@ho{Q(7=Ftl(PuybyX5^}{7_EXmebnEEKdaownFWY>j*y^vxvS-tz_U}R6+-M_nW$^%Vx6FLYaqeTTXcwH{Vk7}k8Zh;amO3#KXv7401N)(+!+W&dtp5*B&^M{VCBO&J#Xt$;;7E;oI*NT zWXJ2wb!B^thd*;)ju!MQf~OQIKO~Cq`)(wX8}RI1Ub2{*oBux_T)wQ`R$UbOsnJ>&j%;DajrYBj z*YcVb8B|)K;F5>=RaeXx0_j=NM^$<8Z?1P@ia267@)g{!9bPyClsH-b3AbFN(?oZx zs{}1aVMByVswRW4BrXsIW(l?KzY_n`@C{4d2*UIRk$7hc4+&V9c6;A{`%S^xVybl332 zpk;Mbzo+2x*-OjkKM=m}kIK;V+b8qH&K7(=FRU+iA99qXO1M3HT}M62#G?sZ*duT5 zRA;sQ89lbVPd7U-rE_e&`Q%F@tDIL$vF9#5<-K@at z$2)#jr*{v4m%FWEIRgIlnTedBDf`b48FCiA94rJ>9Mf|4(N5ycIwD<%o)+sIV-2 zZ;lPQm94W~-6V?3!4OO>+rU$;nT54rp+`v6JE<<_mqZ{}GW*@5vOMOfA_26N8@k6m z_shkO9+LVh)lB*uVl!NX>MWbxxzbaXkv|G9XogOk$r_#mSl-W-w2L;Uj>%w<~>p6k&ki51{iErc`u+KoSMM8Air+~?UnUt$X~z}(9vR^Kst zYgiq*>x!@2L_;{H_Ix=DPfD03L=l>cHzf@|L2@&ucbVPb@BQF5wXyt5EQ@uUFPU>y zlvdES|KN51esLP5Kfh9QW`t@3T%(TO6M>h9Uac#!Ra=N(CKn$C-5T{E(y8`D8g?=G zNsM-vR5wpA?Nb?hhlouFg@DmdFDf-d)%GI!)_jndm-@7Q=Ie^Yi?fa&CC4$YpkbhVLY-bsw8FE{K+}+qyt9zOrDXBsQ)Wh z3FhU|LesM0r9p<*t0IPWQbKL_d8cO|dT%wFQR8X_JrYbqnYk)=@>ZIalx3p`Jq~69 zAf5qnbbE<{#5Z_}i1Hnn4ev8MxlEiGG>u;5P;qD-ur}c)se@L`L^9U-FpyS zr42{%BL%-x6mi)|un;{rbVS0`DT4e{a|&o3e3b;Y98Wj=%Q6_{*H^G3KDG6(C0F}w;JAp(dy{S0N>4z2!%KJ>!-YCxL0azWeF$om-@vfH0;^LGbm zj|*D??m-)0Kq6l}iIOF%Y5%pGj*T{sZ}_w(gjl)s*BtJ@;ttcVvl=t!hx=BX+1JVk zta-7Mhohy`Ubi1Oq8+OECrSVLx8J43o3e59o7Dc4Us+?&5IWTZ8w;-cFX4$;<&?9- zihBz7IeZ*Kp`wBo0%O^gD_;pv5>9Ak{BE;oi|Q!NWd=BUs_ni5y{;op7m*z0;;Y$Q zMEtQVCnS+c;@VvAj{ImEPW{ElWxR%UHhOlucMr_9KRVp?c&1o^M(c-sly7$lSskfr z-GqkDbDTbS`7Y8@UB~P3y$uc(%aG{*-u0Wv5E)}A_lH>brZQQ)luo0|CmrG!JfO@2 zXG_gnw*fkvZT1cur6a7r_DO)(14qWZ#^?0gf)f^`Q*8*N!a{505N-4vJ1f6ca7%K{yHy4! z6Ea1A)8)R+JAR)2qG<>9o-#`GI*{MGlLCQ^Va*OK^*$1Cy^en zl8$~xjzX5{Ha#-z#+G+6QQz|jc9(SDQ#=Q(JnG7t$DqXVs!RDlCLWsa>{ahHCysWE zIGCd1^am`-VcMK)qPV!&nnn^N+r`?U#c46dn%!;l6&Agx9I8<$VI}el=$5xLvxtLL zG}VEw{X~-MR2K`ppTY`mb{z1Qv$r6*Ub2Rz*jOW2VPwUIQ>!K}poMLT@f=4*Ng=J- z@AgI*C^q^|zTa1ILmpBid%wUz@frhA4z6bDU0#&{NUEr+j8{eqTkNrO>k& zLY}O4Pt}9Jysj*Mck_s`){k|>zL$C5)-G)^ew{Zyvw0D;Lw?i#lGGiN=5eCn=}iRU zXTzj9X0APPZm(Fv&9!39gC2|=78PKf(wFL*KUz_gcQx%Cg7b9n5{@A#qv6E*D}z64 zv)T00;SG@jY??Ds8C=dM^QIvL$w}sUJ+BE3#p;F(n_ksb#tM_) zc%E!Iiail9@w4vGWXG$6A`oT>^G)wjf8DLMiw_fnVV4Uv5r_uFoYLWKBLjFfO++^1 zKXv`+w@ze3&}GAvv3|#Kr@-XvLdbQ!*L|P{y@Cd*aL){$X5gE@F9A97N`9HS6_)D1 zJ(iU~F|RHo*yg7s-Qv6J0l#xLmcIqBe03C=+gWF^DDXBR{)4(2{7R8RA^rAPFyVY(>yaBcj+6q`|V@=yHG1C+@h3#iJ)u)@y!db?kK+%<8W*;uTfR+v6Q`mU0 z^~Xf4-Psg-(#MZ_r_ogxs-W^}NpJbyj!KZKtv(5cu>?C4YcDT0d833)^ZW)&|Ah-) zM`wiLRIX*c_)nZYgSTPT4urqR{z0L|9w41wMg7JaNf*4xznMrZgK3j}A0iYxT61YwQxj)wbD#-ORTF#_JZP^hYbZA0m+Ppoix zM5A|zKyR{ESwbH3)9H}+AL~QDFaMf88@x~Q0-wA#$)7&{#UeA%@va-aITaB(+`V1< zP>-|G=N3r(-t-Rj&h%uT@j5{gp&s6vd57fzJGZo zskAZk`a^|u;Y7#Eo&2b8CZW#|xD;LL&H@)tBSnt0Wf17=$fPuG_(SG+krJSA&vY$U z<3LsW0*;JOqnlop4{86Ly!b9R(WJB)r@d0StuDZyO-QZQXh59|mbh;QY?J*X8Pc$P z5AY5+L{3H*-vtZ_LD@L@t|^>z<_0U4F+aYz#r=f&dG({4tIHzmW~SuNh;j!BI%~p= zQya0~^4Se3AluLlVRG;2Z>mGhmclN#4{tp9$IMS6yEt~TJMjK8lH68NXleQ{_2NZt zzV6RAflBi9B&o#xW)Yo|Uj@mJ;^rde7vWp-ge^UDL_+7OBd^lbnCH3P(14}K*?m#} zz(#qKPpR#PknNHGaBaa?dq9;>x1YbK2m+XS%MXUZRV=n4(u zQp6i}xs(yo{)j)sBYQt3t?3%q>X6h+GWJB5N1*^^<||*X@7nswh|n(<9{MUX_>jpK z;(bxC)9`}DsCK;^G7KDs|8eoHnijjAn0|}Dj;xe&wYvQA*I3XBYtbNreL*xrRcdpZ zVNE`CsJED`3of|Rrg!4#cx&v<^)&ybcZaC1aUgQWC1P{RWq1YSas;T)`F?=A{neDL znp{rihUY938_Dc5 zFE&Y-GVoL~k%Kf`icz54UiFMCwjvC?YSX23tT2OVI2$&_6Dr?uwRO40nCJjGP~i0I zo*Y!OU}~lKo8D5Bu2H)&rTde=$2Nao3#xv3Oy%%}ek|yh$nmG}*!)VVmNUA1-rAes zX2kSqSXvT(OY%T9JjfU~aG$3|73B1L2;fCxpF9~I1M*mU`uWf;C%z=NfCPQZrqY3Xn1 zYP+Fjs@>#JjJ-`>0P>?1nx|W~;q+wy4mDmxSO$v9v*~vUjb0`xKoBn8wp02ROJp4t zXKv}Crpjb9NH1=gNP`#aJCBmB7;W^KFkwYmzpc;!=dMN$oH~6+U7R%nmbQ=CGop-u zK1rkoFau|<+FG1ilZYDM$MkfZY@?d0+|-9|Z+H&a2`O6&xM$#Zk4zn-;v()CtQxXk zS$M`V2Qa?LQh37PHriy=;BD zBj>VrR#;Dz5szpD3C*_>C7#-Hd;PK=m=g!)po6B5I=UP=~&?=Ze4Bf z)u@e>VU?0^W5P9RD?CwDrnMEz2PHsq4HGS}T}3s?ZoS#QVl+0;WxGcq)ONZpB%@jy0b7&O-CyNd7hu@RkEP*6c{M7X1KD5O24So0(GR^e> z;^f7<4(iD5?qOV>yAJD^o04>8bbhQCJMq|{y_7tK5|8D1r!(= zeGRM|Dbo}YGx_fA&6cVZ#8~~s3Xho+w~`i2-qz{IIM-!`4rtW%UhL24I#6W6iY@7w z*L+{sX>^`c{-4BU@TY$@>`jbIB#W^gbfAsF_PbO5&cH-T49S(t9Kf7=^}=cqDM2e$ zs5LpSqOYrF1jW<#F)VPBT3+Vv)bymslQ_6ip!PgHj1c(XYs zqEn^Xag-V>j_PUn>tYhD**veZ9X}o*#rHXAL`xR%P)nMnW|NX^`NEv=lF7FA=hLzS z4F~wOC`oaXXj?beK<3rBN$Vf&QgsQ4!%=6AN_-_soR`c8FprAvb$m(&ki?^oz8<>% z0{aoXB*h11Kp&gC5yh>uT4nafM0j4jz!|_4fqGVv!nJTYfqToy^_FtsvVPYEcFu4Fe)tx3Z=~+_YV)Ekc%AaPNfd= zZ&$YOVQb#X&9zoMrn}dkXsM3+>}W*(Xj0Yqakv<&BnHrb9wdR*yduA4I+?9XJhcj# z?kt~uS~^>Cf5fC`z%x=L1j$=C3H{7)iWQIWz&}y*nD-L|)0=v+mtZMvq$3&}5#o(HxD`vy{#q+T0(}vA{}_vcG(0waHlGN$7T~Hd;CbKeWb5K7MiBQl;mCx+!y)kT6HGYe``HA=j$h15S2Hm;QcU=4U=iwb4YyDFsBz zCv5oIhy`@K^J(G2Nax4v7o0Bp_t`6hZN8SEW!1>Z?$us*Sca0yO`ZmSrh(O8z-}HF z^B3*6Fw1|=hs#kwvc95J# zk4iFHYvrA%f)xh5s>gmf<}13fhS3807U1ZLf<L14kt(^g(USK|-y zyy!-3$x#7;O1Sku5Mj7rKpPYhWvULFVR{I{9x5BxtllJ8EHxsHRSO zoaMRBzR30F0E>sW-a?a`Zd%-HX?NFi#WOC43)23*89KFXPJT?YUduXmp*ichMP^V@ z*dWk-p)Jd3+rDwzcO2iKW$N-6DBCE^`-Sbp^_wTfHn^n5g?1d@ew>Q}KiTE>sduW2 zf_5V-OTWk*Z_Ag#Bz6zlV`E+)c90>2L^C+JLQDnl(f3xTbOQK(4QNY zlZUps1NKR<;l!EMtp>)=qKRBaTJ1IzS3e&C1oa3>4&6t=8NiD^UP>Nql1ot?BZly0 zxPTS*^zU(oyIQb}<2~4UF%LX@g_XL%83k7)Q9Nv0w>2IVHCuTboTYg;!4fbow&~-0 zL8GLbt!z9bxexwMV-H;vE@tQ7)B&E8vi+`l5Ty+(7=rMDRbs`|#0xXrv$%q)%ZSy> z2M@Jt*h|YShyGV%2L9rjHqu~m{X33a(Eo(qdD^|AF!`$Ct^Zn}foW9=4jz(Gh5a3& zhf8!JKi^alCHCjrMpQ=6HZm^CPp+``(GtOfe@q;^1*yf4nID^^Gn9yQ<>RH_b)oX- ze6vp-;(Pm6Mb|?8Nal$oM*&`@iq{UhI8~zoj1pOxwGfa(*!XRdliOx0_#-{aZ|g6| z0?_6Po6L?bu^T@YB5c1R8BS`N&Q`tnc%pHohMj^V(fevT`%8S(|1N)(U43JUg$pOOE zVAkc$0SND)p>2wt4s3plb`7GzQ)-KupiPxwC7M4I90xGC7|cr_^+fPkk`mUUAFVqk z_x%Jxf9a$;KsotRWAp~zo#@Rqj{E90Z;Rx}0CC|Rozl)lHPfUVNnx(C%;)HGU_K1n zeKav6C;AS*^1j|0E{^6V5kxoc8fFjGRxh#w;A092PeoUbiBO1-_%J zLu$iz_hER&}r%SWlg^fng@rNUvb7%~sd*GEvG+>##Q| zIni7y&@yT&-KU|)?h-6xeCwI+_kI{*IVkN;5%98T1DG{y@C8l+QEty%g?^onvr@Y6 z{_hamiyQ@t|Ct+5KdagLsI$n%Sb>Mz{GLMY`R64?jiFtST#SHswswQc%BM((jKP*) z!d=flDSPc>5i5uPHM%R_MGQaEpg~>OeW|8E&itnd7h8C{(lzk9mpe7fL&=KunXVF` zauq&)mM!wuHTCx#NLF-<2J|~%Oe_4}U5B*#Zy1V?T^@NAp^BQN#lM~6MtPp;S-F#T zOi9uC##vojt6Eo=lt0RTaN&Mw>4k_S-D$yiZSJ&3KK?nwLlFCx$a&~x%X-%;jGVLV zD*gWB?(y2A!TT&P3CN5dZIZtyAQd#dIW$xdbL^!IGjqF&zlJjwAn6Jb6#!covTgFtlk9Uyo*M6LH762_K1!Bf67vR$3E(=$BWcwn z^#hX}ZP+z|2R+h$Jw9wE2Kv2U0|p20oXchuY_m|tqeX26{4fEipb-|w+pZ5 zRR`z0gC|eJ=FeCC6cUODA4v3YzUA5HpwafQs`-U$Rp=OpC$K4<(vDH^SxLqM*K~b9 zxbS+Z60&x)>Nerxq^t5mne35I8=e7xhFY}ihV@Lp7qmFZO6Bd_eLY>j;1bu>3IE49 zg4-?8B=6pINc)2JAi*pf{4@x>GqT_TJmcR3!K#U%$mB?__S)NS5MYn4AY`ZPjbNuP zU8v#%zhZWi?ZJyBD3G zlqKc1(X-|?Bwjg-0vE3n6*aD2+W&jC)>Ku?VBO}8NAhhW>grK2r-}(gyqoO;>Q_6n zZ(FuLtbKLj8vAF!i#SD!W?bih9b;nb-2=a~cd0>`=~HavbU@0Hhv4TFmM1W}l+Z@q z#h88ABA5?{DqMg!pVaE-j4|Z&n-kGB~nQ3Vq~qIHSF4uS7AbO4rDUD=$!~ zFm;#n9qifWLAsCcgfT2_aOSVFkC#qnb}EfJy3Oe9m}}Rq_0(!9I5@Eq!5rv?D(dU7 z8HOYK3#qZ?`r2HZc3RzAvWJ1;tD2aT7bK={eJ9h!Xs=C2Vy0xFIC94W*ns+=go5yQ zvzN(S-)yC5_A%K%q4yb1Oao|G%lj=S^1xyq0}h=^Bd&(W6G-8nXIA*98szR-uOioc z)fV}DZwVTG^$RcER2)!=jKrGyWuI4a%2Jko5X@?_DagwV_NmD3v?{c0T~%-WSe`lX zB;iAfZA(GHKO+sX->;l0gnnfjz6C+;!%nphjN&H*=J8Q#jfwAu*s*+K>~ihDa_BgxsEF)^-{`e zkN!=)5wqtX!-|JblDba6di?~=PC<_G)t-){78JEahyO92c2>BIIOaG&2$%B4q#umC z5<*wS&JOX(OsvV@IZ32*(Q^6beqS+4z4)#e#-#oZR>##rUHt3L6XApPXo)oRCL{bOn z@XUKNg09vp!jv#vYab#Fh+3%SMLscou*8W3_B;$5e^a?#d5}IUJT7v)QW;b5YaFxT zL?DA7c)2R1*4=DD@?gU&EGbhlxCD)es)l_vjZI#A+`IMpF_4vKAbmJh!P_+ z+BFA8EGC=oWr=b9B}ETD9`~cINy{41{p-vhYswDRE=p=1c#;tQaR>^~(22Wl$^-{A z++rpvR>SMtSm(ixL&SaF)O2WO*5%T3^5p}sNUS7SlayYuXZ#=^yey_GN(zJZ9Ww3O z*Q#*zss$n0=jI`wCzPPC;=;3Yj|B2lAGc)Z4~#rIwCQ~F+NFYPw%#yR$+J*eXLc7$ zKRlBm8hcy1I{w&WcFx`ZW22b!iC2jxunBj4g!xF?hG$vo(n?ELdZ|;kx_zaXnz_R-CeIwLHv6KrfqR@yS}Y{oX*>ztsji?F z_3HWyQ=+EY43#>7eix*f#5vb?pvjn7>AAEB86X*H*;ciZj?K$E&20I|Ob^=wMPemy zA5`Ub zh*}dMIzfjrN}Ka&>Y!qxbNnYJCMjXCqidhJUJWzJk^eAiTzYARt@fXuR?0zO$%1;i zIp>PpC&IDM!Yh1}wVXkGvCt{q?b;IhBKYVlNB9h9@=hGi%6Ev7Rg0{(kf^*_NA_|J zY3>+-y>ll~dBfh3KZTCX*O}Tb7d}V@l%bIg2miZB^|QPsa4C+x34XoDco97LfilMp z7Z@HtO&x2OsXwSs^ON#ONOCiALV_7jOQ&0kTla4gS4;J2L|?YgTVIymyD@`biUUKH z+cOL7=0w2z7XJo;vHtfez4M`_Xwrumw3>;vYpLZXz58gd9#b{1E)^Kut(&VkH z{^3xxuVtrpbEWimZ)PSoJV$^_DY!D$)hW*I)%A<4Lg+V;^H=r8v5$&fXS zdMdvQJ#Mu`RZ|1jh<5l{z$yq8UVF;pyWO?y_}Xvs;vCaIubRj28E6XaWKMC<$Cyey z;27EYYfp9CW4*QF^$~VWO>Wn87g_F0(WSS#BPs)z)Uvv)*nZ4Yi^#z>&$&Q}_8@zQ zTI>N-AE_Ag>RT%$x!r}h6~#*4%CcgGAtiBDt3Y=(gr~?lpv4yDbk@4bz|Bz$rF#!0 zW3~2e^ET@u?eIMVA^7E$WQUi@y(?+3$C~ikGie+5|@Bqxk8xFz7G*sG7I)aKuB; z@of%d0G?4iRgZa5Vs^p?KgmLZcQhow_64W740?t!VD1<(fm!Mr-l(bwz%SFh+Frk5 zF{Qo1cNDyyGiq-@3~z|vt=3a@*r3U0$O$AgBvmm#w46Sz6w&aNZB-K3r&ofMtjC)z zSmy{nQl?LG^>JG#3kkBvCp<_Bbh@=GOqWK6>Hw@sBVv7+n;S4ewztzQ4W#swYvV`D5x#&UZ;W>gl|J5v7e@sy=9I}KaMXvrJzg4;s4R+0uJs;Y-Y`ayZewjBE2n#kYY+V?@`MU$?n;b!5`J`%O~HkQb<=C2Rh#D zl4XAFKoyu4SB^H$ z=$_zPR;qk6eg|Ocmi-)@oKq9djzp>5ZGO$PfZj%*}MIPnE zen$-_GfKK&>_shcx*r*4sf3ODApCTxY4l0tpe&&sIBipf^xe>_tVj0pLqFVjsP4W{ zoRSQ+cieE$-{?VXl#ZooicaH7Oe=FdgY09vm*msU6gYoVIpjQwFb5u`K&1uzxr(rq z@BJPKpS!NPQ_o=?Wz*Ks$^vI=E1&yO<9O|>J)hm}NqfneUbEAD-2;zq|JMB}ipr$F zepH$hz6;@Mo0umlDZ@XBid%-%@-QK^tND@<<=^Ue5V3((7Y;|WzDb3Yoca;Crb546 zwZR&GI^pA5(osaoh>a1R^FgdUmbLVvjNdzlP_EGE))=*0X=!dh#!M9RQHIz}riX4K z&s9A2CVl2+r?(JTfvlU9dzR!G)~oBw?+)eH8I-EePo#0B$d$2=Zb1g3{2Q;*J0vI4 z3MdS2Ccr17mH(=2$7o4db=EkOt%P=?pVkJ*0>ZXue;u6w0J0}+^YTMLi! zWEQ3M@XKzEwaJGc;evXJrT0-jBv@$ZTM73Zz`THJ-miuH=qe&HW z==iM3c@T78pRwpS(ktNu2z8tj7S21&BwdPGsbEobtT4a3x1F;46*YR6R#-um zRW$$ArqhEms%sbAjv?KesjP*koaz`vM9)?9N0|?>=+k-iIcj5IE-&KRJ=-~M1WpYrtwGGrKSiIU! zIQ8{p)km~;^5Qe9XSUBO3s0wcJE|VBt*$GbUu?&O?3K3NX&_{Sp$wu7;dCJbAfRT& zEK3efZQ6aspnU}voqbvze8^TmQ7*Kj-@C~zxUk7oA#yG+3c=UCY(bBlV`?EF8(s=x z1Ju&DN0d)fyteHN%ymQ`DSlVb6x!)}WlTb1%uKKDb{$z%+oy;@YdZoW(#$z_s_tFF z>!6r`PwY#IMpR|pO}jB!eFhP&scJXo1+!&2Z;@GboFaQk}5aY+wZ@#Yy(Yp0$H!fk~fs8Wo)svSuzmiRFf~hDG{^ z3p44H7hqd1+lgf%QDFq@A<&T8_}aH~20wwaS>(ObsVfiQos8xFOBSa?t@)#6x28I_ z+{@=q=aymJ7^&R?bQ|g+PidkSGz@l9zOH^Sg@S-(a%ceMsiNzkF<>e$+>FLWbZB zlys%dS4W-pV=YsW@O~tc7bQ_Lo}H^(IGN>^&BRCFdv`NnzW~T7>qXSh^`Vx%$nzsgi}y^=Tzi z;E=Dc%~uasUi5|c6K}PQ^$qWY)5D;Cn<+{r;);X>8y$}9vqIpme-Di?J*u-4de3CH zOYK-y+ze&9$*D%~PKNrfJK^E-C*RRUyb-t1be}E5uzdJbrZy~u(q}9QN)PZoYyDiR z7e5mT&QKM=RuR}x8Q<!xJ=tyyqG+Y5{8SgDDgefZ`{tXxPe zSq38w(ua?y>5{P^VC?Z=)0X6s0peNm8RbFSHLoNfd~l8l7{poa1W$>S+N8TznD?|; z4-E|-Debww$kks=hIM^O<@{&I*hvT^T&?aFCkBEvua@U_L#d*AB^1{*L0j4~k30mz zha@G!1U(Dc%n_K;d26@763mUSJGhYr3Rb@6M%jc@Dm5vIhUKFFw%?XAzwPi|eTv>M zioG;VDme*_?^^l%+1p?1(ZoMar}OCwmBcIY0Q`i-Pfb#+>i_q%#1_^L+XA;v*&lfGn#d4E#(Xf8i{8Cm^mzNg5+Hu zwNO5Dy9u2d?%T3^A8QX+O@Z`|vr(QAWzs7g{aB_`vLrkaaA;|g51eRMvJ${2HV0aD zD9%v)a0ZOGq887$mlM&UtPo9~j_S;&V~0Li?CQhW@)Sntqz2S)Xx+6<>z`?Me-Rsp zn^-qH+tT|6Af|H$D4q*#^vc1&&7+W7^FhE3SX%yrA6#(D1FC=*XRok%8GuScbIC^3 zsQ3;X78b!8P?ADz71{dS>b)fW$(BLP{;XMEgtTAZi{eiV#xO5$y22MxJmcp zs8n*2jD~~0*G5J1q`8S0{-|x*?{#xt0@jB1RWUcix>#&>r|voPO&007v5X<}X`pgO zV(L)iTKXfo^+0`bcD;BMzEI#qSBgE=9xMKOAHVlfOurlDq?rZl;>7`%&^Gm(8uJl1 z4=zDhI3*H{9aVAi|1%?yO0ao~=V>?Cx;H4ZFQRrbvjNh*strVrdcgD~tX|7MZER@t zBb5Ip-0GYWI8UPr0C}yh&DC5^TfzrK?LaMVlTsjc_Zg+agG11W*5#F=O|)Rm<5?zy zv^Nz#`#Vbhwb9Eu_^BDI9=q`aHy=&-QM#%(@D{shHS2YQ0a$#F$D#o(CQd;!Uqx&P z-n}c)Y`^~B;Dy6CAOlTKRlC`ekxxvD0s+^xc-eG->PN&^=Krh1ugd7<;m~>j_Z+13 zTbR&yXi66JE26sCE46xPlmJwUR-Z0(EbCgkOXnq~j@YjouGAELk@82RB;%o4t?;*6 z5}CdUhjKjVw9d8aTa73Feo1resXc3?{UHtj2KO=+y23LyO5EL6vpsc-mANpxB(Se@U?Ee5@I*}JlrW% z!)_94GbRH+xWk2L!#Yn*#rk&cew}8^4T2+$GQH$e?LW{0MeS8;1E)*l1j=t{>IeCA zzvOJq!!t8IL5q_3(IX`|D3t889OiNF(CGbDUoT)Fk)vY%^AS~=bNhO-X{3;Nw(mLxZl zNUSFb~AlrPN6m~L_A)6G~`Gpm4f_8*mftwBd_+alWQjt#nzSwlV-du9UF z4hd}U&pdB%5DI;6;DcX(xpS{=83l+-9S8KDxNNtsEG&Np8Hg$_VJ(Qi7jEElG9h{# z|B$E)b%O?5-XBbMqLh&}+J0wQ=j_7Reg&fvaAE6V&v+exkp|;Lu(fo3UnUzEhm13` z`z)>skk-=%AGaZkL!9HHvH9`4+Q!VIWU7LugX;(${V2~t33b-$J(q~{#vG;fpAn-}YU+X}S>*c^z$^(qhA%%s#7-5g0R zb~v&Gf|emxt26#?N~whD5{}FL!;nf0CLde;%k{>FMBl)PIc@d4ZWV={Poc|Iwt*;} z_TJR<31#lp%|Fc?>^JhvSu3{YCua|V#DNlZ=>(XELav?m<4|Qa?xlVLZl%Do7jS~v zv2NT^aq5?Y`n`NNd2=rgJ(Gm$!>AV%Pfsf**kdLCYr6`JOX|3t4h|3ru8hVa%PIM* zJKh;oe5FP zOY*53U!%fAJDo9$ZLjZxfY7ANc0@#|AkF50$_WS zkKneMhMgx3|87?U{Pe7u-`OWd?%*E5^e7@+)GA|JsqKkk^k)CSCF;-dqXuJW-cii{ ztY9U=O%qAU_8`X*+X-&f!$XC-_@M<>XAgMZYO9Fk#?YmdVJ2O<$O6?P@VqN{FX4(LooIDi%!Jk5EN_v&&3jo>4t zzsbd9TJ%S@yl*5rV2u@i*?2~2-WG}z%PjFfG)0t!R<_*~0AI3lrw{FdYEM1~z(?^i zP5QO2p_|t_M>i~Pbv7HWnBTXiOg>S^Wky}?&}!{LbgvIxo!K_*B*kpTi?{v#H?4F3 zF@*`)U~SUJvnv`6SI&1KX0D%h2VcLN`xAdng6Vtb{Wnus-@u&1 z`A}oGiWnf`<1ZL}X?`S*DVW7x;G!geS-TCgj|{;P#^31|Hqr^Sj~LaUZ9s74|`*v@|8~Q`?UurE#hA zHkb4FX7^ex>V9w5EE7ghT1VHWJxg@{I^Zfef1PS-_WDich-vb4x7#o#XFwlB30$Nf zb<7MYZj7FNdpkCKxy}ix{WYK_-yobU;7bRG=aoSJtyoD)G-`g(wiRAuyZU z{vny1Jw}6(_U|^cl-``OiXp;IFgG^_LDXC^@NZ6JF4#y-{lfB zd}I(F63)FDmPB_u+Bq*NRFciua#L1ce%?zq?Usp}Wc?~#^x?5TOe&8L#RJqdFxhKB zEmW!#d`r=f5@;ZUtS`=H`wi_#=AWeWNqx{~)2#U$OdoT_5}MD9P<+c#53z~fzpFM4UI$IDb6xS9B$mI_Xu z0*b82ek|+<2j{p@N~dd*17}LzR`sf)`O62)r0{VowU=ED(aQQWLi!a^=+jb~GK&A? z`BG0|$hb5}c#P~I$vQL@)7r(}=2aiw<0moB!G9AnvSLb2t^U4eE6g1HUe{Y}FNK6| zbC0++oC(m#ci(HK**&wY67Ro{Pj_zchEGXfZm(5JYaYh0xaXXP-it}Ld<>k4Ty=pe z?FSmF{QT$>#62`>fi0a1uYa8Ge=trW=jV7`b;ov1YyFd<2puhPzNK}{6HXTfE$ZTbz5Yi3IkCs(5Co+= zCS#wT_JxU!BFt z`w}bDv>;|yg(F?sddp{W+%6~l+Z-F1;cmVB86We;_Kg4Cv#L`09F`s3?n%yR{QV07 zcvhcCug8Ewc(7^U<&98W3eQv9N}}QJA1^LtIK79oF8#v$d-&M?oY;^NK=93tk;}LfW}|ceh(gHuwEFI z`ZAuQ3=HB*qs{_6XzRLZ6ukL?n@dKb{aQgkpztmjvG6Pk6U|PkLY3S!Z|y@Kbojll zu*x-2X<}9UMZTU1>7|_PA_G_2$nLnY*?dk(r;0Pfd0%!RA?eab))mx<)d2SdlR+Y+ zTmDqF(0M|nPt_D(`RQkQj0%8}K?Z|Kt_LHrpIO8>){#px9rII?KWa+ zLS}~V5KpB_X-BKL?$V`oyCPc=QqEMR12Slsqf3u$GLNFU+Ip<2`L;JI#@P7C=+)>a z3KVbHd%+xZGyN4)R4#I&t-OQ2ipD$ia*QPGNu|w=imf?`6B=IFpdr+ViKQ~+03mkP zX@Xfp3gZq*Jer-e%aR_oUvi8_`H=+6Ax}0k+llwYyTkC;9vKG5 z1YRa%&yPr9m&0y7XVrTcOc-8o%+cCc^$z`#J?}@CCHcP@=Sna38nwgspErW^Asof;k%kwYZx`Fc zWc8U2$J_o)srg>Qcsn8A>8@0|!}TKU#-$|G*kup2n~%!Nt)UCIR4dy~u1yL3)4F-m zLJ`JBB}a0i>m&tUFE{TWB)b1eJGT0Dlh_3!=sEifRoJ8^OOf<{+eDOQyiM1uD4t@&>PHpui_Us;9OdH1@w%wE(Qp&`4x$*YDw)Cs2vXohB`#I@!Q@#67b22?XLl zJYg920W%XVw=rEBrG%_@H_R@Msm(JQb6Z+sC3mNd0=~z`^m);>f`RO8LDc3t$=M}1 zd7C?(h($|#x9cu3y@t9JE%(}LI%Qa=|D0fhO!Nh@u%rexK~k4^lB)})V}cFPB%#-G zf%l8yv}FF*ab^ih%?t&Gy<={;XyLkan**Ufdn48KjnCbnFOgZXSxp0^Y21oxO0wR! zlm{qITy;-_OBmUw<>l6?>Va3+>UtK+)#?6OkNwU#!i|P|>p^C9`KC_hXy-$*XKSK9~!9IHBe2iI<9N4o*E6+Afp@uhfV{ z4`*@@^B{dPw@F?#EGIxEC)ZL#lcu2AbXIzzo2kd0%Iw#rdmC*k+f5b`GFq+PqX@;2 zn9z(%#wO~LxJvgY#}0MW-re`a70QxZC`G8tHX9D!F7=T^B0hDrFHgYwd8b!YO7^mxw95_GVF zN$`C$RpL#-ttor{i_8E{-m5r9yO(Q^-Xqvc=W#A!5lC$QnbHS(M;ExCo!mpB2@EI2 zAUDaxwEEaj-i6t|2!2h>vwZ zKy<1THcB@~j5?24;``9ECUXCMN(zW~of>C#S+ocCmVW-d&M`?+JbBsKt8*mgLC6pz z5lB1gt=xM1xi1NCy}f);Iz52J{^}nmT#^w*Hyxoqet0(LbYRgARLIXp@v^M^W36s6 zHZUE1$BL1@8OA*8HKoh6TTWYlK#Vkb^RhIJ-YO1nr z-Kkz}ntQWZ0ddxQf&PL7>zJ_t1yC&MLp4vj?eRI1SqvP**#}lVM8aGv+Jk1pV+NgY zbI1?wnS*?bli@*OGATI69ZvU7jeSgHAN*k6lfd$MRs2IWh2ON;#7C$D;AcN=niGRq zi~E#smh8R>U08T|-&9z=(;P&}-uTNS>rriLd8ZL>;N<(Fl)It4xh}NdCykNg?L(=d ziGE>WjM^@#GyUp_rN#fO#(Lg5TsDWfQ)QgdVk6kJPazu}j6`JZT}f85*yyeRlxU0d zu9{rTlhLbGhHxBNsS-%uu)266N9^QpIMAS7WaA!{HWiA63hHo&ubHwLtG7j zH9gK7d~=~_m9Dz`TE#V-o-Rx$yTh-1#ZE7FoK?fErN9~_qpM5Fc;i`x<%G!dk7lNN zHK)*ff{&y0S=`IFA8UL}YtC~jhZ&y^@_o&|a;ErehD>ard$f14sm}KU zdLOd8cYeqIte|91Q@URj1>JqN@^8(j!Su$p zhsSpmXn*G&z;w1*QH0~A{c`hRzAvjf=`+?Suz2!q!kGC^Hzz1pw$Izh2WPDKBFX%c zNz52iaB8pO+t1$UmWhz-6NRiLG1+sZn|l`##-JtNmepp9fSZTaJdnJ7nGW;gW%eYU zWj!Nc|6rL#nzZOg)o}oPkvEQBm#$<_+V5nZKADLrxHGio@x1SJe}e3&c3REt=WQ1= zq~H!Vi?r+IyYywr2UOAUWB(p;4J|9I-t0i@C_m3~NqH4f%+O<; z&l}ad-2uy9HniVE=D!#M z1|tA2;wvk`hB{t0xKh3D^TtjyGqXVw7cVgLHHzS$u!iL@QX7)`ZFNizs)q<$graqtx6`_!ylqcGDnk$gBAm%q816Y;pL{xYJYbqj>%w;OE6jZ?mlaS zjPw7st7_uV^FXeheClPWdxZ6x@84?Z8NbNpSnEdxD$R+u{+v-L+5e7i39DV5FhQ8! z!?!$Q?~c$^;rtS{R`MqK=8<1nvI}e!s?U~3Qf*;EG{9ZNd8$t@_;!(EzoSkW!7B}j ztz`PzPz1{1wP!IFKC0OS%jZFC`KzD4q(LVWerONpbZ~H#$_eB{dlY=cWddX#3jQyM#2p3=B{QOZP0p6Rc zv4#ziwpqSs!)mZB@**upT_VBM^>X{^D{-2{uoh-=ZzXox9iP5vgmqL-LP>8LQmm znU~xX;5s*X`}&UAyBhY~k+X@KIQG7?Nd`~%Kc)YYa%%Wk3iM1wYohF$z&2Hbra)@H#B_$^({TuZ5Fnoyq4>+!P=ocK#FW_wFd@~6bFdU8 z(dz?7G`~U?b|cEP_z2qO7t60u{MLO4f1^57jO36WT~w#hpZrT$8a1)ASKJx@BckAO z=7zhc>fngU=dtUSUS4E>&OEDQ_U8o3F)qXO7$1G*sWSXeuS8{=P*o`%2i6B-`9!*p z^Lc(Ci(x$U@^2+F>z1_5*uoq)6odqlmASUtRhbSUIz(=i;mHXy#?rh>xe1X9|MRxK zRsH`MI`crL|38k;eJe~2BO#2EV`Ib0kzvfSxe|R{VI!HjRbNtK&D^D#MQjWcLL^0U zmLoFJy8HfqpMUr7{`kD!uh;YWcpQdO{X!T~3muRu*|zd)2gfr8-&4tb#8MSH z?AS%D>ex1bGn76d3sM>!+;Fy`cue1<(1{YgDow6nAaH}*v=G0_^oR-B<2uDkON_FO zehkZQ+2kEmQqp0V?}S_8C3|a4JgdKUjhp`-2boiCaOXeka7(K(Agv=jN&<==NoVa( z&2Z)tq15F#@g(8+;g}$=n=NVFxKO|Gde{8a2g4({sJ=ONOgvtM?5|i6)wN$2-Ey*g zl+Nb8j!X7PXB)=$A|?0D)tttz%EmaByMnKeUo$xqInYoO<4_R|G|#OD(Oghh7to3~ zKpu1$K8jjs(KfPoAvL#FQbD4OSI=H8Zwsr<3Rx$RMs+BR8xq0nBiW zFJ$_}9%rB@^|Ug%M>>oVYygWyEE$a$;m~3{%kRU8Mq2Wu?29OXJvqa1FQfr>14uvc z&KLjrupb*OH;{Pk&5!3_U6874f`Vfs*Z)mCz)nbJKPV9wzFfI@CE{*di_b?bV9EUI z#JQd#R;cEIq}`IoA=KA&4Cz&c`jl)5rRBMiKu%TiN4%OPb;l@nhUB-^!++w8!$seu zw`8t51((&czNrtznE35KzxXdZ$)^pznd5tXuhBmX(9!a5vW@t%xL~Ze7aD6`G^5I& zQkvt_%nN3VyVP1rac5WTgLKZDlikZ+rV;jkl8y-@dsSWx)s8&_y=Ua6Cc!b*?)_2C z?RL~ z!Te|9HMLUhFhhylYoF;v)uh@C>Oy!BhrEI_0>udY!TGq5U3HCYFU4Yd)vuf4kg4Rf z-7rQ;sN*Qs&b631wjAoNqH`5iuNQN-kH{vHTI53{6FD`lvZ#G71n4z`BsNnfb*`MT zd0vdcIrNLM3e|AopV=8jeKlb%$a+fG5-U}j7Fr|=S!QDs#{3;517bP%n;yNw`QFJj z6xGv^71;1SAw2p0XyBTIeN^E$G5FWig<1B1*Sc*#TZ;tAr7-S=&WzumV>t3|whOW~ z(>qig)Y{j)O#eIqG=3(t-0)+eXE1i!uLy4ns3`_wVBCl7TDi>s@UF=L{}kq$c~mkf zj*#b*yYEbOf<#s9k>DQMZ^q?{%Pc;}h&j(Z9CN!CF9<7lMC*+Ra2CXp#iA-K9Jkhc%$BLjrqu6iQ0E+ zC-D@#+xW4XQoBczX=TPcdSu5(+%5d)q=WM|LjvD84PC=N7lx?8RWDr`BhTISlaiJ) z&R?qprMsMOA;q7ly>CeYysp}ucP=)r;g6bZBCc8IndwnLyjICuDZ>XZ9*{0|E#o1-(ilNp(RR+}Foq^;B!ACI!x7V(*Gj!5-r^ zdq=~iMeW3dUuzpNZp@_jN?JZ}A6zLvj@vET-@>jWY6^Pem$v84*83i}7pE5D;pH9tLkpd4Hc{ zGy@dz8dL4Z@8^o54fR9c^WA4?ve7Wq0S2YCy^C{L#RK%7m& zk*VB+=2Ks@-)i0pVpQtO0}psZM`SO&pK$reh=lY854oWj@H=3STHo$ za;ai))R|D41xg#(=Y(m6@%#>(-j5gfzU!>NTYxt^50f>rjUT(7A;-8B8I*yn93eg$ z>yXKdMk1sLm7ybg+Jgb2B>xG8c*Q$YceV&FK;5u1Z_KMU@cg=ebKg&`uK(gpF($M3 zkwFfXr7u^wN*CWZoi_LUWYvrAn~@A0KA&Tw66txq9ZnS=fOq~Zf9$bSnf@v}ZB-Xz zxkxCv4wRP_KSMM?iTZ<`xHBzwk*nsa23>&pUCmvl$EdLlZ`3_nd zL;TV{h)`a>)ahJm@)kohesMy4QMo?E z!Y`NNa-LWgaE0idiqjF^mp_vlvfN@|f*|QL!ZZ!}MESNu(QSuljSQ@omU}QrVFb_aLzIevSI6pJqcH2-TIg~K*SHnX52Q@F==h)BmLqltB zEA`?Ih#?rEZ|oM4en2L|T2;Iz$c5PZNDxg#k-~KSnhsMyq!;d&7X)iDGt`bSZNTmv zrW!%=9a`Tddl)=Ws2=x@1ToXcTQs4e4`Y7{^?~K`eDl)iDQ`R&_P3DD>%G7RSBf)T zSv2r#l3s-U*{1$&seN1C9aHGJNR!GqMcf)bH_^AORC9OcZRGNJbL{6=x7;&)Kd23R zlS22~pG)(n7Z8#lutyDLs^k9K-QC&6yFX#UN|gie&@0wm3)G7bO@*`+9ArgQS~+4o z_`N&yX5WDlfBBGKjLR2NftwtvO3ZS%7hg1X^ER5B5L-R@*Y0RQGQP98&b6acvOhtG znt8-m=oeu!AJ_2!95v8u!Ub9qFbN5vrTbb1sI{q#z_c7cg2~tzd5^pFJuTe96^f5iCr=fh6HHBztXxMA znwcgquVMY>D~5$qQzreKth)}DH7;dX2Dc#o(YQw1DA&Zo=AL2Cz`9MK=%biuP=*!Sjg_*24$m$|q?3)XL-B~Zj4E5r5-CcAT&f8XN zjvdnWk)Hn|4|OdP>Q$7M9%?`KId>c&p%8G>xO0TS11`k5Da*%9_oSp;nSRJ7=>zZG zj3|sLL?^XFi+YNmB!}icLX)11uREuYc81K78oQn`qRWXGpV^fv@t zWUqa7c}Si;*~j#aC=3$D+{PARCel^wHqTF14lmLvyQWs?n$2v3==KGr|AE%LPsg45 zDS;+^%TYIeFx6U_@1ixh8n@jVZL!bo{^^RqAASx>;_`FOx5%8mk>&A~WQSUDOBhD~ zBLsddcubg()(>RgHA9&PhH-`=Rk<+o&bZJ!rc1Kh8}|-Tqa3V@gcjZi4Xd1UEA~0h zVVd)gJ{;B!#*uW&^^v~D0*FJ_NciRw>&1-hJZ2WPyn+u2=A2f(l>o23y~uy`3a=%4 z2ccv+U&w-8EbFI*7T!BwIEDnP5t}YnSME*~|H)%`q57TqVFfr^QvYQ_0&GBOZUVZH zj+G5xQV3!m;yhxTX+ghj*+Mtezbz`mgJ(RuEXPsOIKyQf7VIXx-q;y1Jx3d(EyiQj z_NFWo?z_AfskcVXET(lq6i3(O77qadIGET_gz2jKs;%y6-=WHL-g*Z84ALi@WMek$ws%y6Azdm@Y zY22;bXXvIQ{A+Sc(%(K(A$rIlQ56?SdUu`TYvlQy-oECK%(T{8XdjhuiceC&e8mdw ziz(Gl^!%m;l6SrQhaY#`4w*?1%ISNw_vJ-^u{3mov)5K-QDVfD_9*)`>9Zr_GYWom zET1ES6(9B-MRHA;k`QedBUe>DugSejnFc6eM-?qv4+A z63^ZklMc9)OgqHOnfIR8_PIXra+0Jp(JJZe4 z{Y&yBu=Ls=l$$|;1za0G?TzJF`(90oxMFm(Z1|`SviBr-sw4FyDPkY|XP0WD8*J+h zz7a#QB|H2>*L92nRX_PPMqt5Ei{sqyWnO&APi^e?4#UHs#qj_b1o)1DC%VgBPc^^w z)?y2F0%`xx@PDkeRUH8vA&{KG2Lx;FI%4NAR`7sWb|3DTuYjpEA#-4vVUsK=Rd7(nz)JiuR-8MMa5a%WxqE{gEyO+5qWd&mCbK zvWOo0HEl+Jtww#VX=LXalPy=g5oTT$n7)k##t3O;OsZq%tsoWvDZ{RkO*?VK=~M4S^#HY_;l|^D)eS;0xxLQNFIq#+Bipl;we?W!=T|q3YsK ziaTu?NTQ@#v!n2kCuzXvt=H6kpjR?ljQ5X;_H#fru;SqAJQg0*(BAJ$UQ~E@f5b&b zpuJbh8g4*Lkhixa`0V!sO%uHmIWzJAYOlNjXXFa5{OzuEqIg}bN)=YQ?ZjNF2c?AgkH+_mNi2Q;!=)`RjWR4-i{@jlrDyfYuffkyR6B0>!n+>anX9+RBlUeIVC zc2@##La8es3(hJ(Irh4B2NxGu(_*4W-A4YXmz>phRh%O3Udl;l%o_;MqpU&7vttk1 zclz<<^K|n&aPaHpfVGq1^CKCN0r~o+lN!HYc%Kbi4Y+ri?Cl&#>G!Q)Th*t7XU?ISaDFB;j6Nx}4;<2g`d7E*lzc*174C}_)RX}I zJrQrZeH+4MUsxdiqNYB2bp_Tbr>HnAeoun-ea(6hrCpwy&Dw`)MMvC@THjf!>qjjB zBxC_G9Y*F;V_h$#76V7okTX5ydkMXg`9F~1sPnF^DTPLMF&OG`!dsdC2dv-J_T?L; z984H7)2zxiB`*2KDCs)XgS$)f!X2yDFJBb^S4s;29fG7aoSuw!v-0iAkgL1t_Nv4B zZ0(-3759k3>0YFEXewUU8faFsb!;n=Mhn6aKY?u#{xiK^B zhyz4>!QvOW(L{C&ZsW5W7k!*F}o9^36~`~n+@sN;^uGjJW# zzMbM(VriJ9`OF`|qsy*uXP{GDl4+e}M`1qEi2AQJeXk>?g;_Lv?U{{bGTv~_#XWr# zYv1RB;uSQBs2C&gQ02Uv@YFDRDxYeIN&3YfEQ`#rgNCV30Q3LZJX?9I>TAC|EAyp3 z$lX7Qg8t&;zGpkfs34@4b!P8bS8DXLt`JS<^6;>(UI_PkONWMcyMW&>g1@Qy`!&-FgZvf=XA)QSLj7VZ(Xe)j zb*mu}43c!)de~k~qPt4f`e@aba+LAR#M`SuL~Op^PkG}!aH{A4M?{#BSGYfXCLvCE zV##0dq_ydsa?qk$%EWuLjHRwR+2-B6(!1inu)W#l4gRHp92GL=wX1s6A_20{;-@&v zxwxt~;h@C!1bRFvlcv{tAZZM$70CuoGQ3KvY;G&%l~JdK&?^sKD!a9F43E~@pE#}= zOMcJDDqJcpV1DC5rW6u<594T>Kn){R--%^3n^$rV-~kpw7LRtT{_C4vc!1|%{|R>i zxzE!%6&67B@pMnULb6+K;FLd4wMS@O!8u*szn(i+o~g*=yj3d2%={089ZeH5-kyED zp@*QV_hMXm&NX@t)ttBS$X5~#vEYp-RMi~3)v%_6QTGEQU+*x?02vZYFWl%z>t2BJ zwXN*M)^PSeN8ttTuW$LkHW)*44uZd$PZYIrjG#*oZ{g!XsyNFl6P}jipn=8T{91MW ztrgGpcCU)47ui6?$xZJ7;_iDL`tyPj2*PO7VkX}XslKpV4LDhz#w;%dh;hrc&buml z;Xa7tlO(N|veTp0nPU($c)gWoLE-#r4CZEGhWnK|1VN}!2Pi97$Dcd9WP?bj#sd-t8C&AF78!!i&3MM z#NfqRi=LM)lusJT`s_~K{aBEOXWdm)k><(0!TZE5x9Bse#)dGZwk~e=`vzVN%qMRm z&nB$X0<=5J6ty#5U-#;=(%-Mr1FpmbB~8T90YPT76zy$+i-gM&-{?iJ%OmqHJ&H+H zI2K{J&Y(W7RsaAmrgv*$v1vR@}@;?PQ0Og7u@)Ai|&exkVYxWtnGcH-$}S*WL-NN=j+pR#MY)h2CcU> zP@ho)-!oP=f%LQ0q3ON_&+FQcBv(5r0RDvfh!=ahZ=Nomx%`vsnaME{4#6LuzujMc zIM&5+9{~@e@;VkpE4>zjZh*Z$zlchW<9>=nS$aaIcapfTcSsYB24-f*Px>C70Ser! z>rvzL2whjr&S>{GA+>#WaO~?(c|#2VIFo3v6xLH+wIB$*cQM_NjM! zuF3_E;!)jO9&x5K;CL}ach;??hp1@&y;GcI`H*)e=NLg0)_$Jg=3?9kiuVCwD!JK% zd2L}7^}4Y-U89ol2m<1hf!KJ`@0OPJMEqoG7b!`t6jt0d$krm`nl6(6NpqLC2QQ(y zb>T6a+A3}A5B-X2Nh?m{jQlgxc`nK0>4SsS-J{9w6Ywbg{6l|<_G(2C%X#JjMSxeT z^}&Tu;P#zsr*b1ppz6EuSlLC<3@Bbf`49i%IMWpi=m=fQO-0a2z=x1S4VITd8ER=W z*%9UvCuHxSks27HAmX`y=3qK-x8A1CyegOIGtZfc3c&&ikA@1>1)3joEUGpW32xm zFHwE!!r#Z{I~CNSsRR}N+6>QcX6ZlwaoA=3hY+%3Jdn z&FBa?-=>N9aO9JJ#p&krPjhRS%AZ=Ko*DniPt<|bKk_>9xwMQW6a8GGvTf$zvgI2^ zFdM(r)Z|;z+PYmR_U0?^+&SIdq7S2;0g(FOESJ;2CQset4&{7q58qBjjYO~`bb=9$ zZ>?B+T)Naud&h5nG5Rs)<8fB0D#Syap)CYNqHeGCdfSMdFR~1Y2a9Yv zS8k%9@$6B{2@fVA+gA&N0&1abQuc_5lin{OwZw`9MFQY1b(ktLf^nh(KK7FA?tW z93w$sWQ~Z%kizCXjAM*!i*5#9U!+(C2&^#zFOzY@5)_dvR~J~#Z1aad!PHPJofOwL ze(c2GiFEgTYfe-zDigU>KL9bMI8zvAVN_ft1D9I&jOWQRX^S=_tw0H?F)(d>*y(?R zj>+VTla~K&Ql1UH&}BWdU;laj1EV}na6^;%n?I=AQU0Mhq(A9foYyRI&lEUaXMbK`6 z7jC8q)3tFSCZd+IZecpe?4Wg`~*hc zm{{^mFNLlr)MqCX4!10z!|KQd&L^qC&mOpvN@(0Gx^ku|+kWSHMkyKkbYy*%+hwj= z%do$VKNFxwlVcLBDTlm60SmQHVP3(n$#!1rw?Cv|_M^Ku_N!zdD5V1F0JVJtJ1?&_ z^#zc$rlJwHqVG)BsAJa#Js-uPhvT2uP#YrJv%@Msy`DaJx-{yXZynZ9_6i9obYe@v z$zH&!v&^SHi&2QNs;Z$(AWVB0Y1&pbWLLldb3-uu2^sSXJb>k!$Wq4ZjVI3*?$<4= z90lKfdg+00o(dzof7pe_?^4Zr6ncZqJV;WXhJSiVelt~De6a4L8Td`)wu7S>8&NE4 zF?DfOCDTP*tW$WmR}8{Y*iG@&iEgdjrg(qa@HiR>ARzZn6JE*D!suj$!CPCnU3*T@Bn~eWf6_FVTfzwX;QsOv#{Z?bs>MRg{l=hc& zNLVfWVY{PL+uV3m*Z1l{ohodSM)r$-;B;S?DD08cRo3F0LzV^J9d1?&fclO-vU=NS zD2WTIe%NQhFI%K|jz3pS93dXC#21WW1J?)<5;DOPq9q+n0yBl;o}tpz!}i=$tw%re z4O(U&4ZvwfCn63t^l$b`zJ*R$_T(EHtuf9Ub>IIMbWB(hW4X*WZ1pa1oT_#%Ot~8S zc}_V1ZRASWrHtp#5XEE8!R3njdFYPdPNSPVlw^Oi@LRjEygbwTWlXHYgo7XrEEr#i%8h9>MZNMH3#D(VmzCE?R!VWv>C}c<%U~Mw0VXsv4>44 z+S3Zghfz}k_;@lEB^jh9HdXXE&3&1LLo&ywZSnz@LgDb+%HSJiF=s z^eu;BRw3=`c@d*?RD&U{(~0sa_;hEPVK~#U%n5^|jfYko|JOWvWsrSQa3O7QDeWae zLZi@V)qLFLl@r+@)aP}7wMN5ci;%&CwDHEhE%G#l@AVD}NN@f6N}?+l!qw&< zBbyFN-qqeydyz9XU$KJsh$>sS_q<@jCO5lZBL|DI1Y(Val~WfVy3c*9*{u$^LW)ye zp|_9dwz9k5GH0tG1EXT7Ua#hYkedynEnA<272YUbpX=9|6>KAu7ccjB+WmI$Svy`5 z>q!(tWU*hirRQQqBZ#um5fxJ244oX{Cv8hS?RIws68t>cWH_$(JF;JK3pXMLZ~uwn z9P#B0K+i2}(D=u%z&>|)tVIX0aH=Rym}o(K3Zpjl&oVV0Gr=MqoMA2i*9`8G_KSh8 zRNy7L=ovj*1VdW76-`g2?^3g$l_DvO@GY-Bn_!9VGN{l9F~1cWJe4;fP0p`kJD+Je z98at)<=cFNoR@p2Nt-!?3%lZAjeNi@D5nKDND?Z3}#eR`GMPH^2O1$ z^>27Z3(I1i(Uee$tYy^JKi1b7JX|kJTkq7!17o!O$i>&N5y}YhjZ|A``^N*T&V!Av z{NP`2u+NO+lpd7!PQ=#0Qxb{0c931Wd{SYLY9cS|jWA=d!; zd>-Wq-{^|kyZ5AvRCb~O=OMi==F(!qJx{##Qa(KDiwd7sg+{VLY8D<L?PFkFhal{?A2o_ZRn}}vo~By`&);Es(5;Wz!=HD-c!y(DG_>;4 z#wOzVnH1*y9jMpESv#HAK))C*y9ujlD}e9zFJQedS;ZgZj<#sfgj`2?hO8F1f=h0; zTE3y8WGc|1VWjoHr0?zH`Mzaw?~(~B_jtNm^)lK?RS{nf$=l7>7L1TE@!AEKkO(K7 zNRy`R?w_uGcAkJ%8a20CyC_xI^Rxzj)%$JtFlNa5TdlLeA0pjCviW^{aOaToUDBD% z#mQ@i{b*uWLQTx)X_wDdZIQ~(0r#+_eMb-~GH(%%t#yZvUKpA%ooq;b&!zXGx9rf1=y~*f6X#SwK8uY;ekZw%m#DYkv$3p^jY zcd)un(gGqyL3dyO#yYY7rXuoucpSXMUo5EPl`{Av+R zjI}85K0T4+)P+=H!)BCE-d_y(UUgB@5LVJ8YB5nfUl=f3;cU|-J#L`%aLrca0tkwy z>9Vy;MCvQ^gTwnp8L}cu!f~963#nW;?{+UWQ5TZW8~7_|p4Z0F_$Yh9`oc@v(|Z_J z(S@gW!KJnSl7J|c=3ySIa^k2kh|D7WlzJ#F@Zh8h;p1mG=W(Id&opS7d-*A^v837) zkY%u)d~sI)aNbXEJ-oXq(O7H75ecu61>8?e$ykz<9N>A5kbq%EW7Mwc9c+h&@2c(CQfQQY zuI9j+`{TKkiI?(v3nwC-Y~LI){WKcv?7k$O`!apDR3!{0e1+scmx_k{GaE0H2~oU6 z!gci7IRN~B`waV^$wzz-^>hxrH8gR%VVR)_r%7m3*!ToKGk2e)>sR;eJaU0GYfoi+(KPW*f3L8f&hk6KbR1}=){z4ebFM@ z-(pzc+DDBO^San?Qw3^r9$!BbQvnw}>Z0eUV2RKC4=7#h zqpcgW*6?CO^NfRXX-*AkeW#W2A@9#!+vjSmQ6q!nuhiJ#WzN)7!=d*~gvLwL0o~K= z5)-1(UGu>Ye8&0S6I4~LP~L35C6kE{$QTaz_(bMx&RiUu+-HYzIj7cgR5(@SqPDgM zlohVEEXdYF&gZJn;({9;oLM*F0xoEZl^FbIayD96C|55ml5S^DQ;wIw+sXM(yL!iK zLZe|H>;zoIct|Q9d-Uq_Y848LNI1qV^T^AtV5l@Ti6XZhstjUWVCl!-ZnyxAZp&X{ zx_SqS8FZiT1|m)!)H4=0bO&4UQRc-vHrwq7ekdPi>3hu|K^THYlBX_zwX{bf_Z6G3 zER2_DK7Od-w+G*wFFwMuK8=l`Z7x$UKD`;K?VL?z8S6FW+&NWr{9j*odqsjlU-Xrl zuINs44+!k~pX^@$sG?GCqfa1PVtQNA}k`d0bM9y6dh{y5v<^q%f+ zpV+cLxga)j&=KW#;o}F?7gFJ&uO_0N_$zk4{MQUI$f=fBJ#i;0*TvNfm|k$z_jV)w zws6VnXc3BXquf7bLe~V2l!p7S**MV1Fxh`Izt#PA2zlE1QTIc0aL%%)_^Fi6OlBRu z!YXb@D@^9uXTg?!8`oqu`&@B=(yG-UPv(jHS&BuueNacWVo{BaRyNS;_jN89#y@t$ z=ra<&km$yVrmYiG)pZw+AbEc=st=<(Nw@6sn4ZsZ5`)SNyKXs5yONONgtdX2H1yXS zrGR;q>D;bAt}yLdY6S6A_)NMjSxev@Q9)M+@V%4u+>%WD<_#oqasvBx|QHh}v?`qhBGR>h>T} zfTH954fx*$dPW}ULG>?L9jeXj-jv#2Pp`x(E(?uwl0(bbs`+wqQ1d0Xq~xoYiukZz zhr^wS+swe~NY6MSHlfXVso6i8RJTx#U=C%yB)#58uKB(C_F@Q^a5z&O-5aE0Hxiw+ zU&lXL1H<;ppv2Yp`$?-jSrw`8DPA6i*VTa#{Uc=HxtiNvA!z^MkSGz$ry}+cVIh0~ z%OVURBG2~8sV9j)^KH7uJGFEv=5ii2IX#`Z_-n%LklTHZ=2ZQc<2F5LQU_Fl(KV7GHPf zWVlaeH-0dm&_aRdV?f}3MO@ZFRChICwc%bE7*+IdhkCR}RF5Bdro%(3O&%O5Q%fH2 zOpkHiXCLVI_I)j!UwIX2$g4Lr~e|iJ~Ui)zoE#b|O2aA!u_%&n>aK z0u)!(*gc;L#R-$Q9I9BbWQH|A!}E9*b?8~MiehW3!^Sy(isxp=%uHjZarEwf&8?B=mg&!pdWBY%6Ax8o0|^(tMA2Zn=JnlKBX0=TL|M@K3k! zvaEZIba=6M)@TZ|)po}n{s%&J)#i7!JFuIa!iMtEl-Wn{j{kv-TJwccyrQZswN2m6 zF~c+(o7eJBQdAn>znOhlK;~zxk2(@^4+PsrlR8`DWfN;5Gq4k$Z`pm(=a4H-Osbn9 z1rtN^izF4Fv}O2_9rvnqH_l-00v{ZxtmB#=05o%48AVLJN~Ly99zAv|INc}c=&-_M zx97vgLyRS3(M04(M0wgHgNVG0pq#Yny?XldnAIl&em-YoIu6sT_~R~)P|DgnI)ygj zF<;8h!R`~{ExlUAKy;k#QK1_v1R&&&nIp7oSyX@Ml{F;ZT~Eg2(x;OwLuqq_Xw&id zVY7sWIHCWPc=<5{lgmOQFtO=fdG9HZZdvjQKE~)C8-l_Cf7=?Q0 z)HN+I{ZybsWiV9&HSB-tx$>kmlYe~zy6yWY(03{BPXKq$oB4zOap>`tPKkjBE_ZDO zWn$D|&0e^Hbp6@Rm)|*Ic8}`jJ!l1M z`ohYe}!f28?C0876hl;=bv+xKH zZl89Ig0u7_VUGn!0hM&jIi5)Z7EgAozs;6>JJ9Rc9F{hEl~`j$1Cq-{z&tbckj3*+ z0o{zZ!`8l;s>psCMVt);)d1XqtNZRbCVcFAiX2U@*YFAedcs@V)Fty%Cas|bb`C8X zuZ_Cn_sT$r-<3&=e`iaRseW8iR-wJ)AOsF=P|~61BxtZbRe$r*kn``Uo4rLt7Yp70Xh9B>i6qGzgTa@6v5i}e;jj$$obwTo^RVB7^C(rFPnb=BOB9glm^ zewMBRKJ@-gCr&G{IQiFvzvyPs{rH*io2LzR*rsmh*gi(r-X0mb^HNibf*abhiPc{p z7)=fomPIFr*4^Mh{v)vs(pw(spE@8~p(#Xd)Y2g@0IW<%FSLF1E42)rXEr z_TBfK@4@MGy{Y=Sd3a8tWbjc* z@%~Q)Ga)SxlC_Si-poa=c@qFEEL?`yGYeeKY`Lrjp2+l<-Tph_zG1QL^_cI|6Uz1d z795_g;t0Mjh~hE<>pT@%{^iyCu{?;d@R*kHpGnXlR1Nl}Q*s)x|uns^G@JmfORq`8y^p zV|7Nww^3h+D(c(g_a14K{7{ab^e?(1%E3^^nc}1H>@J`abkBEE=c4th!;EgPfw8~> zyer0`yf`flt2b)x8W`*^3Gx~qK4F+ zB5I6em*@a=2AIl~l~)Uv)H~W~8ixW>C~FP^n(EL5PUE1Kq|YMg@{A;>zE1nbr^38+ z-0zwzUp}@4#FpjauRN~`DYSu%%`Vb!EvjFxTdcJp5*GXUY195@X0&^4Vv=R7_PDmi1vtGQoRB-I! zio*woelTsitCu(&;F#ZMcT%K@q!oFDr!Oy~1JpH?T_jLjcuhg^>QPN_X8f}$_W5_< z=|2?Lxo!8unsEpzIjobl-CC$mmkoN=#q{^2@pL4=WB|lpoxBx7(aJL21|mMB|J6U<22icHiC;?tv~YdR8J{$GzDO z*Q;lGcIsL$?36Fko(tP3=&2Ysl{uPTi6t0PSu+UFiVpoq5d-OZh`v0+*UgPX*FYud)O`ZG2NYquXzQI!Q3W?q6~$@n7+75kQix%5+V=rI$}2>>#_#<@y1qALuRK?7{Jz_* zgd+%=T}!N+D2nSPA-Mqk&hsx`lpg;XbkBex#ptuX(RIZ4wyx7bOoY>*jn##Lsyfu= z1yIU9FHpGX#iAYfg2M>uIld-UcMJO*EQ^zF)?FpLs=K|`I?_ucX!)@wPnj?RK}>#I zq1T0ZuD@3Hb6H28w>#how|shKwUd#2j=Lb_WNHwgz!KK zBm4e`H+f!47!0fm6hn0K@71B4s0$9Y0H&6+boHzoo^BQbUN(zk9)e<|gr+9tu`0Mq zpLrN{@ag!cyA9i=JuI16AeNZ;{a`dq=c1cwO!lV%N9nOYombBuSo3Z5jWq4XzNkrA zXycI~Y#3wWorMJHOf|P(2rZ&{lIH{ZJvP`EzEXB#h@hjSN-7+1B~6F_5UmJTd`unW zNwp7uv~H*5^fkQ_<3hbJ9J@Ui9c|)XBJxgPF&Xb3uW^p)nD(MfFW(hA(>P0&5)@xM zCslRrcl@U-IG0FpwbIDHl5HRKWi~yjHsm!g&!^|jC!Y3|rKYPbPF_zZ(RS}){c^~= zN6TVl%_pySce5S(lM{2q(yi){Czar-QI>mLw3shpf;thReWnM**Li?#WR^p=+zYjq zstObIo%%=*2RycYPXO-A){aK{K67ri*ROUtMmK^MCZx?Vy}EpguX2!lja2BXIN-Io zJb?&0B%5S8;rrrV`>U`f`7ib!5ook_ zH3`!l%2rlJ#(Pc`#s#yBZw|Z=7s+Nbb39I7Vw1(qNa-8*#4Q&Y2M}@lvL3 z;|(H61%GSJgsAFDrQ_3j4ZMR4 zFtsdVH1V&Df!>=ynv|{dy?=OED^+f#TTjfvvh+3&1)-eVywl_5Me?;d797jY>@Ls(O9`>r9}2xQIs2uH-bC`QJ%V=TTAH+|BVhLv$V zZg=C%?LW+MVvdve1@L`8M#QCoA2r)*{fG!b9Wl6 z3tRfkmNf=MZ;YDBxg6KE{EKq!!vnwnf#O^1bF1GS5x;wngDeFMA3jzW%ErB?YIz(L%qtRZjKYEyJ zzvdzpJ6&c^%_XD5KsY8AVjhT8^YMOI8MwOBa&%>i0C@HTT~#Vz}eJK9i(`X&1`G-3ae{5TMw~0N*z{YCQWP z_``)DkWe{L;XX%eG1?TPVOY!w9#kdH0|ftTUfgqc?T0LY1uYlIUGt$fFuj}eD6^+Ix`xsk+}5{Q)eji&!x4mF!jEirk`rbZ&U zWXAiuR@UC9l5T{2hWfANrPToZ3pOQfw%?%s_D#+9b>4kg)L3~P$4Exfe9NnoeKsnw zQkCzdw}EHOdtWJ)c^a2dKYd%Xo$;k((@L_axFoG-#Aop;Vhep#tGv3ZKvF}VsGa)s zuqzB<6RsO>M5f(fiy~}@*-Q~SL*CGP>Qz8Bt5zg^2o;ZL^xDJ-?^6?(s&Kn_HXMB? zf7nI{$6Wb1YSsAGj2WiV;A^Th^TTsuNJFMJP);*}Ys$F;c_R~^`Yh&FF}=(8q|T;_ z3R~_KpjV)pRo%<(9ev5i_P$TbM}OtW zP)#!7*0C2mpAJq5ZN2{oQl1WWj;@Kg@niDTZ4vVaX964laP^6<&w75(ItQA3*+t(Y z{zjUgSk}^GW?ljMyiL^Ao;5wdGW5bm(aWf2Pu5ry$#m8!WW?7&1WeUjPf06%_?xRR zo2$X_vsSPI4X#u2rh&tKz!ka?X365BEo>W=22Jl#TJT#|DrW+y2_<1TuWQY(UO8i${NGA{W51`OGmcd6xt@O&KnLvsl5P&i;c>=ebX}2*F zS)7;k-NX?2K0d%;20cXzZK>CF?8WARMXi?@(oKRJa)S;3L=!XqN!h~gFBRjDaIZ?; z2*r(OEbh9Kv$$x3bs8^nSmYUx{-PQ)of8l(MTp3%_cGO=S&Y}Kn5W=f(IT%m9v$BM z+6X$_52-awncA-h*)`~s2^*9Y^9mwT$TF8(k}pdVWTcppt{!ide!Wnw5sS?;&mSe} z`D?a)|DKv_lur+FA?F$T|3hq=(tz%Cz+CD8H^yV=8sM@=RNWZ@PsizP3LQ6t&TB6) zp663zo1LxW2@>r_ZV;`j>vQ)5dnH-kpIzT{FGb44cB{_N43}AE=fuB2=L3IYzb(}o zN4~r?jM^SBtQUhrRWNe!XCaeqp*gtRc73(vH8cCVZ_0s5`1VRON5mLO?I}rYU$cf+ zsG`10b!!DSybH8>p5&&SA&o&laj2!gJ6=qeXZ2&b2j$BUxF>4;SYU+m4$gS5fPUjE zgA2uOoDLv5rz+KRVfP3RIVQC((GrpOtve&(M{Rk48WJqFd&ofRu-n;8cjXG^(|Z4y z!TcBd?)GEg!4;Q8IP*rlQH(TXK6gTT727r3%RIQVJ8(F-ghr~c#@+dzymD7uJ)QA` z?0|r1n0v=Z`1y2e7wWS_T&A&zy3&?t1Y3;>oP(Gll2w7qof^bl`DhyfN!mZYAw}-y zPi&nS$8^N_DZ8GTpRT|neX3(PY!|ND3pMv4fTvItqAB3i9hQxyhNM!xN1~9+(-p66 z-ZjLBz6ow|-*JWu7ixb{#vK|nn)gqfWBwIae$XVjbKwDGF_tmW<~-y;UvE6BksI!I zL(_CFORODqqn44S{@&6Ec8qqq$4#^Zn4T(2O}3p33hr$8@nZfX$bQuepFS{W2-XyTT798~_J?^Z zF=yIi{GICO;l+Ctmq-bf+N10F`4?gXoUS=QK8;#qX?wM)17}Q<7~?gGeomUUfw_D6 zr;h2f(5Gfj&q+=36QnAN8~mFrWoT%#eycJvofa0+wtw(h zh=YTMcAb6Vv8WG2$}#W!eN;C@21Jth7M2JVoeD!gk8ghwvcD=fWlsgBrz3|TaC6~P z6s`H6nPA2hev5H-E<`xV0EsU{>OL9>0Rk|_ZJFJJUz2FIjb8j(DO6$V)#U9Vei;%4 zx|$8Gudm^!A1eNOqt(_r5~q9UR-2J@w?cq_ zR=^^2O+%(J6mM2tq~mves?{{fMT~}%34tx{k6+D8Pp9#04t3Z6JQEn6T$4V`enZ~b zS6PyKuwR!tQeP_RA3|HI`M7(f_;bx+ne!+%H z$O~B-gszzoUj_0~^Sw3VjY1LjdKJFfnd)Mwnfz7shm|Z>;OGP!m}l_c+W_UDgF}%^ z#rvu=@n5LUC;dXIU>i4?sy9&}u=9+^IphO743yGg0M0G7#akTJRMU!MZ+EMFb`SVa z*_cc#~@%aB{?d@4gdD8nYt){=S84eN)iug zM%i9Ro91V2knpQGsbrBC)dr)`6PbT##d_$<$6~TCcUHsrc^@P2!E+aFoo=0R`k~s; zIRyXc5dP$x_dCC1TfT_K)xlAZ*~Z7mhLqa^`A=+G{w>XzR_NI^K z+>W)^5XF=1b@GjN8Z(sorx*6AV27@YHN#K@skbK^q3gMVg{ucN&UmO-u3-5ntFA1_Q_EHy61+_7XM0C9wXf1RXOX5jW5-TzK9__ z`P(ry^?#uEbsmIRjT%@v; zueP}D;2o+bRE>)Mug*OryKjsXVKC|}&QPqV&KyNF=!&L~fIKConZ~0AScfykW~xWQ z4JNVfW3Z|xZb)fh7A?YsnQA~k^p4b)_vIes8vOWueP;0rL*CiOFT_9a3o$O;DTD)i zYDW}P%#w$a>BOky)mV>cwHBrGEiz8;sp#3&D6yBhMS;+T!hd7kD#FiuI(3e)MRr1R zZ3ID&i60j3Xerz9+O>Ccp&JIM#afr=bo5`Q?EJP+eB{iP3{#7JrlL_O-3*AjMQzYx zpiid`u^dVi^nvRBp^Dc^%*L=~cFUrf>3%n&a8U$A9xhmO%Y)x|vq`fAau!eB{x!~6|Iv#r8! zotgkM5@p*eI;sNsb`n`M?RQZa3{iD3SK`F+Xo$RkIlqnL#uT)C^0sqh4Jv?n4ughH zX*Idww6d8pIZ#0YYgjxCSOqJ03?D{2D$*UHLlAYI@Kar6lHx;DmOVw4LA|r~C^==c z(;pbupKF#k!pzI6R{e5?H8-2qZ01v=2}&xkja{eY)EDVwx7;pv1;~y_p_XN4e=V@V zN7~>!0sFY*w?5{$w!tWJjMRQGb_m63OZN#}c;Xc=xO((+8NlNX%TF_G?;L5g`xjoV zXn5GrA2?vpOJ!*jyZ$8xO#d(zbc}?VuoMtwX13jbKEG0daW>~qw#|kckxuB%&eji6 ziMrS8$Ac3S^a0nFy@YK?xNdOD%DH!9=Rb*XZF=ORGoSD|(zDqh(Bh5Cdu8jWjHu;cJmj@V?y;g&c_`(06A?dnn$S0C;qzfIt#j^``Sj4dv@>2@)DSgl!`t+6XLdTTLR)+X zVC?zxV`-|lYeZ6`6(%c=lrw%{Z?KbEj$Q+2T(%I>mhO{}p@_HkvC2atg&1JREICri z(3I0~kVzahIMc}rD0(2tuJg|+QXCJnBb`1O2Exy-SXI5bC~~X>Bz(kCgU<7owLF_l zGo!<`LgpAA;M)?hfbJ7yuRiYL3QpI(&IU505hSs=d9u9}f-UMna2O|OU=#$QQB>gB1^r!Ty1O7y2Cbn6fexE$y#*_t+wCoq<1ix7A#~y(n_fl?7H| z-~bd~Y02GZMzz_E9Iaw+dmVcY{jikTC~)`fC4|&cuG{iI(t|?2dq*C~sfLVENR?dV zt9`rGy9^#B@_=JHN1P03XA=iZmhI}N;*V;Knme35rGQd?Y-eZ@neSLIrMd7I2FgxN zpJX8G{Kf~<*U>{#R0Y@wWY;aCg|KL*n)7`G*g6))6w6Y98_7-e)|b>Jg`0~(78soeQyn~gGX3QZaUHahECw*}%Ku?W zNT6+E5&OUDm(IkVyD0fXb{g;?%F6OIt*YGMSpR30EAX0ET{`I=T4Asy@suPSrM{`C zqA%iZr^s|3$XB1`^6K7AK3_MGAwv!_7FPu3*ev~USl}Y)&mViD(stZS6Yc8PCDiN} z3%5L?Ra_ykey!D2q~G?rhtCdnKImI2a4L{f7^&4Xt$481`WUM!@X5=SBIJ~Tu2i@p zHb~veHwafv2ukUL#E+d^Ut_?|FgyU;*wou}F9=QLzlilXsUq)Jpb+bsKcHP+$q0k} zQO6t4dx5CECd-~Iv?-w1(3Li&i7}UhzTPabq~PR{kWI3S)go?TjODm_+SG484~XsP zYfc!+B9;;Rbra_mwmFH-nGqy=H$D1To+~`CQjCuLN9rlK&?!zwN=wOQ#~PnoDg?hf z7>$-W9sQ1EZi`E2P_Ng&%m9+{+72*dzpd*q(>|_Ahdl99!m5MUI-Pwq#wBX0=&1@9 zrVxU{^DbrOH30A=U1lRqJ&x&7oDwXVOuVdC(pI}+)R>f9K`V)%GJ(aw}K-x`Yqk{RF%_YH}>QwQ93J`3DN`BGPC&kp^fzP$zTW+jksxQ67RSnO6bq55etBM$*r zdj;eoejgYEzxQ-L6CZSmiN${>mdXFgxdhGF@@&}WMs)=j1``_d4Ko)Qx1yi}iM0(6 zO#-*)SZ^*q*4;R$IYV2v9iI;_zL+3qyDN~2I|uE;Z>X!^f@iGG5#(}?#j{Z9 zqBUar9D@^XBMZ$?J$rLe3fZlqZE{44s567}n?FXHeEm(u&;l_8F0l9n49GyikkBv0 zjf0_a>o^=by=38ZkL=Gxri{ZdkoV?2zDrCeD0Uw?3vgsB1iUjrt2j#?ts9($iRM?Y zj2XeD>$_>;;lnDwPouCOnr6E0v}Ylm4%shcTCtpGq@~#4c{TA6&EM^)!~d2Fo*jA~ znmR;qtVw0i8Bmpxx_?K7laI>HN~*6e6u1ocYCsp$7L(8BOyvI8)L;b_})UH6LER2Kv(aZX6FE&H*+3+ z`&kM*l?zxn+JJYUIaM)K{Oe`O*PS@3K?R)tHheI?_ zsyeG({Pl+1@7e z_(Gcx(u-K-V(s}{mLj+cIBEYf)riGl9~(}d%eIFMXk3Ju{94iZ`w{EZ#P(QEsyr*jHZ;=YJOyqvQW5)XPV#ksSESs7oV%IWS5fV#f%Hs~EsQ^YRHW zu8h-GksCr4AC;u{B-Xpmvh2KH2S;BN#|ga{BIqIaZ}r+QJBZyM9WPftm)+)Cszg?_ zb*a5*TT)rY#VIOD6c(6c{6qOl$8#yTT^hanl3c3r5h`C2A^KoMT~M|I>Q$zlD$Sc0 zSt=_?5FR7owbIPdUTOBL__Czj{$8DW{dEr)5EiPTK(KgsG;ju2U{(LwbIU)sT{f() zvE*(+jWYjs&ZoF@pF*!*G*C>XUj6j=jkLII#XijGfMIY~Km=RS<@f&E8tmKo_GF8Q z3+8Rbi;OsBXW;UQB42e`LvYS)G0&Co&sNhMPk3eKxC$tiD$LocU;k%YeZ3gayBY#% zZj5yptZNA5JrW-8To9UOihK2m)Va#FgB)4pd3D30R-UP~tosBN7fSK!jTU9`4Znh) z5hsX@ot)8!=U-fb?4Ri|x^cqS9=|-xR2UAso36Jbw_Lqd662uC~%jIQ6PYy$!Ueqk5Y5! zDKosQm7xy@&X4`$RsVyR7VDc-brI{pd(gSLREU5n<$E77oh1&XdhLnL-H%t6UK4wQ z73&>@rqe0>)}vrqIuXL&{P+c<17*Chot0xdc3FKV@VGm zOkM@VHcO1>Sp&90(PDXXcjH_G$$}ZB6Qkh>aSBdMG}@ewnB7(FDBqJC5z%G_kWSbx z)Y>bcd_^(6So!DJ9oH&w3ea!4AgbCA*Gy!$!WBnNNKr?Q3B=sGMawEo?d@`GW~2_I z4TjgUWs*5wn(apNNdn_R5@hpKxYT=gyNMz_YChI;>fLb|fI7c7GDI+ohSsVT zFfv9~8D9A`dUnWP1jzW*`0{|Y`5NhrpoSKlX?*UD^du7w@Z3umI0aeD)H~nd(Ekke z7OJOc+%5Qw^(hJ-GsvA+m06^L3>w%E=# zI$WH3CI}l}SD0c)3XDBpXX?u`SRqP4Z6~76JK1yP`U5qgb9*6-2~pKqL#ULp>AKgj zv}n=Q=&73Mc(LB5rO~yCQc-D*15K+|`WhsE?@gP>CegFdS+o=|YjrWa7TA&zDul&> zuq|WS#h~vm06^9$?IdbMjDmX@HTFwFttP{pRfWvS!jO==^dR;l!YIMC<5Ftwt@apG zT3CHU^gg69V)B7Pj03R1T8FedvI}uy6$xOTFJP&YhpHBZ*z$52?~Fh*f!OOq?z{q5 ztt&LL0s^iOwJ0f~((%{}9h{me*e)Ts=TUpI^t?$`&sRMTY-m`vEQT>4c8LBq7ZQ}~d zhIYk@xkZmNiS;rMTqwD(DZHaruhB8jH%Hxy>M;oSaIvZ|cd=i3@KJ?@8?zOlKS(a7 zY$JzQuFn|k8w84ce<6aMKc)<^;-1ZOP~YWc?4QW(_5N17bE{}+#1?>yHN6zZ{orST zn9Jd#=AX|~GaC(}=FF$|D(j~b=W+L>q}pW_tQLbCUW(qbm(ZGD+}&sW@k~x-4CSPl zW%JuxMO_gS^`UAAP@fMv`byHt(+`iYQm;&_!S5=&EyK20T0<27;Je@lgeBv(hzdbf z|MtJ{y-v3WlT7mbXusi^sGB3TlmzIs%T?MNwT-|S4{_P|ZjnDTV2Acemo6e-AkQ%)o_zQ{#e?k$=--y|3vj zI*z^tiTy=+a=NP-7toy;MTdthHk;UaaENMAKQt03nv-rSPrpen#07(-QmO1V2?*=z z&|k2n04eyAcUf87nc8Cb0p@K32_l;|t_FUuD{rJ5{!Ke?d%(N=#UHUa8wq_xLxD+b zTC|ayNleSngy$cm?AEKZ6HPOPT7i=RWl`jwTc5*A-~(P=$Q?2q%nCi9THc>V;e!i2 z{D1PoK-jd{LA$lc(FlKZ#tRQZo}L49w#0a5{H?Fme?T-tvj!}AD?{}@n?MScrF)*2 z>1H!=>0?O&yb$;jAl>X@6{k&r-eA?k$Mi_MLn6W&(_c^=@eYKd&ttMTs& zR_yBHOK)-$>Vy&>E7}9~-f^9ZKPqj2zKGPC1-XskFj|HAywV|C6V?^1c2Gg5D8o{0 zIyD7j?dcF|H3s(?_wYHD_^rz2tg7gbnDC(9sxx@KtgCNSMJeM6wpg8`V|LKLvWBHh zR3PeD>#v_NGA`zr8;d>{!R6VEXepNCnlxm;(N#*fnb;k@xcx-KZtZijTkC;)UD`Dw z&xM(~n@fvvrjdPtQ4JS#lI^CjB~HeY&-pd%g{HLQMxiIq3MFfto%dENPGU6qnC z_VEsKDYc^Q(Yv$|nfYC;_P5%HrAthjP>bHdn>y03;j-~R5Fwamx=JlPo<*dwzckXS z@66zi+49pwdYLL(S1L^N9De-7@~hnZa|!`9V`^f(+cN#kr5Q~_{PfI&L#4ep(_)fW zy`#y)^&g`^weo&Kmep(FMa8zjQ2F9Z)!rjw;u9s&&s8JSA$B=%%VhD24kPVP#J8Q= zETNPbO9yBrbPmUB7nqQHYcm=TLOwFCGsVMnudv!uIR^+Pa;9U-`fuNQJZd)!bkj_y zcEa}cMuj+81ArA+d{m5@2;oFNH417-NhXSb9+Hag6)B?gegOx>o-h@5m+@?|nif#Z ze_x_A*JOE9fKF}8W$smVZ+Nci9C!GP>}DzQJS8VuOeSVoV7o6g}Fyc7{B9>acp zvXJ^B0#MqE+>2BVO;Os}V>d&9gq(?1ey$y9k0R0R(%&FB+3ky1$1&(x4(%;|`CD$+ z>V6;Aw)@TsR*V(!zW^+gAVOQc?pO2V;Tl@Z=0&?q9eHOredBzzS3v@t9GG#c1sE-iSrnUEsH82kB8hRS50a%dBFcw~ zRh>yBqDg_g^(hmhz}tn3;^|X@lJRVzOpl?9|1ru=0|vv+=Sx&wB#K3-(}T2H#!!z} zsX5wKYTFh6HsP_C{bPfw*9WY%WdniGaiwcZUZP&v(bv(|K6hscIgg!Gg7^15zSM@M8S>h1dSP&dL7m zOsl#l6>^Bbc~$y(t`uXU#E`Z6=h|Oy28pUJvL^OF_@R+E8ZbW#lig|}b3KH}Xz4BQ z{?A%rh1erwH~C&j<9e&v{+-zHkLS6iYpuvD^$@{N$&24|T8Ic{=cc>atF1 z?p}>rPrd#0ZMwIZ3jFz{Qn!4B%`-C63P-=mSSZT_FJ8HC-uX<{?l#Bt3v{Xvw~Cx$ zOk8NM1ljk)1~p8=FB|}fkS9hdp1;*hcUp%w1x{%(&WKzysHLp1=je-+J&g$@0E8F{ zZ~*QLED;O0ZvfaueNPNA?$<+9(y2M1j>cXRm+cvVr9OpQd{PnLubaIUVC|EiGeqve zr~f^f2c*CtVuh3Wx0i9l%#88gE|MeYOc5u~q4F4^leF=YyLNmuu~yU2r%y#3XJ(Bp z_;mS|dnitgmOEIh70K+iRlV3Fvfd>lPo}DIQ2pS^f%8#c4+Y*f}UGUfx&4r*NM;i?t1Z75)GSO(?K z<)u%v+@>;`Q=kW_?wT(v0M#7FyAfo8|~MLV(M zIB%Ik59h(~STCOwIg7j0d<84m>06xx+PUU9JLSO#I{GS1;k5wbTZ}2Pz5*>hD=j~0 zUnzsfTJ!Q9eH@;scBx3!vHa6w&p(BHV{0_YEY*~q2Osa-W7pZOf)-_E@!bxUeWe2piX=%+Or@gi+4#4;AEWwDEUq}@1Z-nZyoZDON37qyO)>O5o}*JK>W zLvY?`YIsO?%#^nm*0*|^jz+v4IA6RH|IamU)xd~!&KS4%Y`H|Lm~u^QBqYkVb#d}y zmYazK&EKKsY8^GoKEs|L0J#Y@a4+t_3n8;qut#0CN-V3vogZt`8Ag> zF9T%4@;D9fVKZ0w-?u`W6Q-!@%`1}uMfzx+M3-RX7L9LUHxfBJLE=4zt|pJTXu5%-J0a-UxwYy3N+A{ zqMuH-_Yr$aK=d+)r3x`PuA;kzuEPK-LD=JRTZ(!shO{vE%5Fe6xO8qpM`XHYZK}ck ztI^0{tiRr~Pg@_gK#9$3TPLD>e(VPP+0bgqV-$`e9^pU_P5WuLR(;HF_JYIC6i@wo zm7Mlk8njq3F*NWhJX_61fMKQD z_d5JOaM1=UPym-HUPW$@ymgcV&U{$Mv6Y*=$0I#7Yz5)59$G(mk&+ed0bV`|>Ubq} zuOwp!W2AXHSLJ&P26{r{K%E;maE>)q%1E=a{Z@$>f~zuQ9Aij@<3)Fzb|)F!3X;Un zSr=l=2c34C+*hn;_~9-cMl$JH>|~R^y|uUVrNi&csChBa{2%yYA63V=y3jw01h4S8 z!>$2Pq_f*ufVl_$9wSeZ1gic|$@hGJ0xTEZp@3q^&CYcU782`Nya&~GTq^%-x9*86 zf%G!8uSLR6o+Q4U?sFV$)S>6+MZ@u{#JXz5xX5yIydG2?e-%s3#Xv2SvwZXB1@^lh zMZ2Fpl}74QHtouq<;jyd-);F0--+gPWr0KYS9$jlde!T$PLtI*@jJIyvB&%BaC#LA zZ=uHakJ)go^||T*XH<=HLvRbb9nq;$sXqUM*D^dr5-)v+nz;o_uVZb|;{_qHT+=Zr zdfozk1}|MrOW9bQP;rqXj*6)JTwmuN?fj}OR>c;Zq&MChEYG!SXfcg3-9qaMseg*N z*mF-=u}{>dMdoC}wms~~=s@yk>}#DU1@Pi3(ihga>Nn=1R>B!mv6bmk(PsmUjia-o z%}xV0*$;sZpaT5F(6S6&3|#yamyVmO_Gh9uQH32Zht!ZkuM=v6E-ksZ2_PrEH9y7M?Z08)!uH+ct|{ncf^*0BjgTb z1`QH>e|^A`4lzx}DEZEqw9*72-5c+h`_DgY4m_Cr#{|HTD6 z4#sqMOkepQh;m_w?5V`nHx_->U3YrGxo|oQCVM|Yv@mY^wtlp5n{7d~tgOiR**AzB zVdoxbSRK}EKl_LOc=;<-EfBl(yxI0?onR!Y-v4Q#@x_5gak8hC$|}m8m>(*;>s7Mu zcKmziqUvRrdAFrNkoCLnuDT~&*=T1YIb%0r;6=Ji;j&P|Rr!z#*kDN6?amPPb&J*y z{tzlNxgm7WEd1bM*L1G!{(7ocftf`GbbSm?3_s5KTRFf{WHEN#N3-#Dmr8xO5@c+e z-u&U`3_cQ3sTtmr&uaGgi=#!#-gR-as*60=UGLpO(jt3cJmBZ?x_*##jDBbBX(3Sk zY>hHlT<&56nhUB4@d6++;eZ?wxao4Lw|cDo5G5&6jJ)m=4eh%XH34}eFZdz9&}>ST zdJV-$LfQOwBjy43FuFQ0ORev%t!VqBa?`YXulANQ@E%?3)7)c3;r&XNVGRz$!1FYw zKF;*_&B4GcNrD8=f_O<70*GGuP;O;6T=FR`SiKZX>f^Dd-x&Rgj z1aPT!_?+vks?l#M$A<^(Uxm@j8>Cd=W**m(k_$QCtp?1k0MZ#hePwW97JZs~d>vSp zy?ZPqo2_=7Z7qP|3v4k8$sB1lL9n$;^zERH!^&DV6r9(1zB>LCqW+$pAwo*oD?}?~ z)m?6~uzZH6bYWzQsbfhoA2_ZupcAbCm-(ETd1bG5nI1&WpW&sC!Owe{VbVD!Pr(4& z_Ow3Ic-qa+Fn6i#Zg&d+;HDBjEr0mO+eK|^p0*>!iHYGZ4bR3FPCl%gY1?U|y(&l; z3-Yc3bO%o!d7qBa=gmhq(4RlmyMr&}!#?o1Zc-w=I+=O2K%B}0 z-~7qSQ*P@QnWaoKr;?!WxDDeo6VXa+9sO~<1W>|q)mNTM2<8U4Fq&2VUFJP5OH#Lb z_Ip(OKbo_Qp%8Rqzd^#W!}QX*VHFeS;JMyIpxrTu>+Hwz6d=F0BzwCd_d5DA`L<2t-pGR2R$Mw!eZLu8d z{Fc8@q=7uXFd>iulusTX;#(mBzZF6)|0tL51<>4YaKKnfdgmdrSRc#u+>8_IRiN)4FAxFl+zh%_b31#K~gAZz&;ZqK`9Y`4kEieu&Vnsb^BJ>N$ z;dxPjbEVc@o&60gC4Tr%84(dwE_11PNTsd}pqLvFTUm7+dI4PL@$Q&jKJv0ILlJ}Z zK%EXfQzKZ6fig>&%dp15aMDUv_no6o6-6`U%Tnns2|89>ZILDQFo;HSc(L&Cxbk%0 z6DP)wgq7ToUP_lO-jWW(rIPdH0Ru#yQCJm1nPexjcFJsub+B(4tQRMb z2@gh9bk$B~RKv%#c5yeWa%Y4cq(hEhC<1D~=>1bqA?gO6(2H`Py-*kzsHK-dmF@=< z6^;6%Aoci$RlOx!{)6ob;%f`%h@>MfJf>#5(tq=Yil_A_EB-i3AlVK-(8G{-glG0v zRea7^|3?A=a4$zU+>8?a{y{sD1H$M&wy70!M3_o-iQN8s^<46JMXc8172LS4Ek(XvxY$fO$M&d4yXieH z%0b~FAtb$f9iuAqDn*9s`#qa=BhU)2DgOmyIzwMc>+bx{=`>h=1g3RGQQm3)`XC;h zDMhGhLS-p4lXs=NX!tg3?pk>61uk z@AfBcZF27dJKTiIDr$MxM)WzBw=g!mG$h0dPHTwK4y9bn+`ey zL`wUM9Fvhd4w|K~C7+R6v)>zOh^mQevj_dig(sz~s!dB`k`wBxrO3lN%7KCOh`Dji zjL=^K8c_T%1|Z`pOnK6$>X!R4$038lZ>jri1dxPhD}TQ@NB_%UiKTnA>tOBDI@j#b zfUg}IllgX1MowIAMO@8rryR4m>x3y z3^)WX==y^Ut+G$LgkN=Dk)Cm!B87y$a29!LvaGpKAvw`^qG$bFb33>^15lZ}PSWC8 zQU}pekHjB3_@NXYn5?+!04Y{AYNCpm&N4vGn({rrdC;=}Gb?fK4;qDEZb{kpDzfVP zwT4@AXvr~45gEPJ#@B-^Q2(Owcldsq>I@ zWg`u$yU@oGj~jxej`@e;{0|eo&B6=2L1A3&k$kE~+z9$(I-O*^sn_iOSknQnhLCeH z=P{0+C1BsJVEX&XbmbA;ZRx|z5PH@F4b@?=X^)aX^cVvaa&L39N) z*Qj>cMA?{x%7>-9p6`QJMnsqE*b;-*Jf(5mU$^OXY(e~Zyb7e=N{5%lSCJq0bh!?KJM-vrmI48tk{RX{?`3GYvVCOyQDxzjNLpVO4uhF-9*rv0nIVJSnM3^agmt1C{^AB>^Uf1Eoy zo+K|ahFJB$jY7+MVG}VPuz%F-92!e}X(E&Dk-gq3>lfk{3(V91^_hM4(11Lwu|Cdb zM#hf0_}%NU5%l#qo0-y7ix`ts%X5ma-NdBU{pfe2@8V>-Il1>R#qU0MX3J5&y7vm{ zg-JT{(Q-b%{j%PfSNrn`s5f)cN4!P=`pkYC>j0u@7}!!?q;{f*mmATrD5r##QYqTf zokt&#z53ft!=Zgcq)w`?aI*0MJ2cVz%hw6nLZ9+mDWJ45dc?}_Zc zUnv~3iB8JztvmbAiR2;E&EcOP>Z01zp4wVh{|}VJ@%}^p4EhoMMX@00La>R!ZWW2dMLI)1`L{J%V_wa9z0D z*7?4rba(L(#3(V~t))@GA?=tXD1147Q**I+Yp#11i&K|1M@^7vQQ+ARie#{+&aT8%~z*elg~H~A=VCPdR4s0GOU z;WUHGW_2naigkMmoKW{`dvHDN;@N7A6yQQ&)R|y~s5|ioifer1pxaNNlbhU55J2SX%pSg}?1{cxP$Bh)vBI?vQez)4i(}{Hv z*lOQDOX%?K>9+ONGGcwnji1+ya@ z3hA>mv=>>uuyXlk3gS$A@ZWDoE&fBh+x>Ith(PoM5d5z8k6PuT8kRR{_c+&%vNEru zftSUL4_CeZjV+t*=&PpKEjS#DW8mG*NCB19djMj1dliQ?ktY@R7x`1msrqB!lu7sd zvI;oVsZjAlZm?8hJ!j{KjEVK6S9f9Dfx*Q2iALi23Q|d(?`bxnC7oqoE`c%ktyZzU z{!4%~^h&3mLWWVZ9Oz|Pt6n4h_^1PH!+fsKme2C2srQLte*x#v*F!g(l2_e8OHV?d zU5~N*51RGmOEiY4Unj`%r}1ywZTme+`1z$tp$>jU`lD3WnWE3hE~Lt>0e41lqf=KQ zW7p??rq_E>`tgGF0aUq!>!JGloQP+V>Y#+Wzw^fkMSL}>e6J)CA209Hz=?XvSUme$ zksx3?M?vSB?)G_skNf*m5Pj5i z*o%dZl1@i=mJc%{vHSX9p0sw^c(s&9#F@oI6m`mESuQ5RdN&v7WeVI=)aiuKKd=83 zWJ@8q(rrf$HT&GR0&muq(UzKg)cTh4Z~yrgw@oD~8{4F+%`3G8(@ne6D-f_9Xb)n` zZ4Kt3K$_aZ5oUm?yQc;1@U80d3KCzx-XhkOa)`ov=!GvI2U*n? z4p_>{%8B)?i2c!>${L`J{XqmuuK9PZB%; zR5^k&7gA^w4E;CNF**X;eDHAP@?_DBRe;EVF5j83RC$vT25i4H_X{=NK9I^`bHYEq z_@y{5KwMYy(FaCPI=OAV2zF@dfYo}v?&~C+U|vAvG0yB0kLZn<(?h;-&)N#x;Xn8X zl`o6sO4z@W|21)!kqN(NyIBA*OHaLX)(uw=L4cW}9`F)A!ZWU-P30r|Ps)iaJ@4p& zv<0T<6V9avT^!|+-ui3{gtcIuCgeD!Nw^&gi109tI^PC3FXR z*=!?95t1V2Pz`M(3Ar6ZsE|8%-QVBm_XoHx*LHb%zu&Lt^YQrdR|ntT>IfJjzv->Z zkUKx8eB2P>$-aaI1jI2WaCkejexfWVb1ZstAnQ*$7Zc6zLL5DM8d`x5zgVlSZ|=J; zwt=?E)v3J0uX+OuQ$FcTYoc;Kt-CK>MKz{f zDAPY&WN-YaW+rdJZvsjWbQ2>&GmV4wkH|uzvle8vk#}MgNG05%h`}=i|fx)7l@y;X%0) z(C?vP4=lNRyLs@@!DsnIPJd;Y!K&wRw)r>DMKxq@dvXxZaVR;pZ2QsVob)_e!T)?M6EmCa>EMXTH8O z?KqiYyBRu~I?jyGZZOZc+Z{0tyv`3zI4IqJywpo483heMIo!Z)nN|blU~IL*2b6M{ zq_$%{#F%gRY{zkQeD=+YR__nTW>0m)r!iJB=H9Y@Cv>sX&7QjEOMgVJh^tk%WsSKfep`4M4BDT%vM#p4erX97$^tb9&Y z&MyZZDbldPWFAa`ojtcJckNZwSW&CgJsHz~K(sGL+|}xXbW(@rA<;$Zubw#i+6#M& zw~4X_dF0@|DW{>jvBwCf_Z6&@Q}%$)N99$Fe#N|na{u+zooi~R*Pr>=ADf!8=eM!x zf98B#y_7e_scvVm7`et6J9yRe!QUq6%Z&neuSmzL*#^GmyY#x=$T`Gp5Zc0acKur5 z1g`h;Kav;uNGdtyN{N;_A+#msQM85PSH%_^79((Q`n`s?9EKHP~eU9br7ssug2PJr}wCL-;%9*8e`=zLsZJDY?OM1W#;AzW9 zLCgh!lcU|wvfF0r>gM_n{UWI~&yk=?Z5zI1AY^_PXqs;~l(bh|1A0;GiS)7y-WR!6 z`54FfOKkVN57j@pw6X3is?Gg&o-?>Oy*_2@SH@zlrZjjdp0oyj@dD!jw5V_VI0X_w zu7|0mz-($ky?&31dzoycQ4BKB6XpTryyV9F?7=f3*SGFTcC>BF%cSF z;NKBH`{;gHkEnirW=`)>BdkyBR_+8d1q7S{J&z>UR1!l2Do-E|M=RCn>QIXgL6pyy zBryX)7w47(y&jOH8kz#5Oo~MHieeD1aDxGGKpBjmOVc+!2frAPvlq-_`oY_`bg4m8 z*7Az7wRPVqutDV29n!7+rmlAGYgnTz-{$40k0CJ)M{K|7w-{xF(<vyOpFPlB44%K(m*5RL2wC>8P}6^s zem!BZ_`$P1H}ul|KtR>1w9n9_;y&z6ikZ#GG@Y(z=VoRTfOWIPY;<+k4t(^d0ScKW z_?u!Fq}E1$Za46S6p~qd?5--O!#srfU5QaqGCpIQYiAOE1RYEkDvF6S(oDxrIQUOt zj3RSzAD1dhe)dgLYKwzMd@*J(=&nOEGIO1VNOld3XM?+>A93OWWLSBxL4-{p*TWD0 zs=T19R^Uw#>Xiw+k6aO zN6U2zC<|~A4pKx?lvq38g|xUR>3q5F!5dUEEsJ?2Kv{+4 zUcK7(2X`Wpf^sOm_$zR}cRuhgG&c4RtPVZ#q=#br-5>I1?y9TT$y8&iG2puJH!hQq zzR-Dcp|IR8%TG!e`0lyVj@qkNc+5PM{JvEy2NrO-%^v4UY&eN=Hd<0xMMnaSPt28Y zf5s#5WXZ+-yofAe>6LRxBKnkrqH_NkEvkwYC05^toA^cWqVJ-r8c!im z;cAvfbE%Wi+XG(Ev8xs&f) zI4)s$)P9-gW@Oe&9pEaU%*_wx3ht|^_veyA#^skfjlOw`vriT))_|^}*fAvB>u-vl z%!psy%BcEk!X5U$5+O=~=aHEyvaaUjbHxVx8*Gz2fJY|aMa%S*EE6eih8qaIyN-g) z7HC~uysxQCg3zLEtTjsNWZ-L`ax_ZX_j8eMZD2cT44NI45@j-ANzIn(j262N-dgynnV}6h>dw8lFmKHxZ+TDMn&&<`k z&Pzxl|A6&SO6lC}ZW$72dAPwIEANB2DR2IdD7TIEZlN9HlDD5g&(MqfIlys}&hs@X zmd00{HXYPMDGcFK%#s})W(z+W*e^3v>#r&~gFFY>Rch@uEF*bg0Zlq(^zqxA8g9er zkyH+pJ|K+#)xEB8p1mjAvoG6tjJ+qOqH+F>gTI%J(E1|yyP$o+B=P1=h0nWBhY`cR zI`BeDOY4v2gHL(3vX4HPcK{U2Q?D9yV9&UqAE87(tP#>`pzVqr)c2 zyMXNmB;Oy_XsMRSrzCiu{1s~ZOS_EC&LgL=lPVK(&C^xCOwITsz8M=Vd$(c5+t#UuCZaovv93=LaB zy?91ln~p{9Z7-r$QZuVy1E0}1DPpB69FWNwkRVAK;m>!Gyvc;11# z=z6o)!f%Fn|+Pdk7e@yAl&IT#Lq7iUOn}BY(%|!JnV0H zazrwy57qeJfotkNEW>}5Yy)hU`g+P&GNq6 zs^?#@Os7gCR4;LhGO@l+<5VA@y^s{J-|9PhS3cmGp0=LgkyIJf|1_p z5swjLcCGr@%H%&#Yx3`WULgnQ?(2`H9mpjs;&7pg3z}L>dW$996+J)d+f=|Y`gL#S zn@PAte@e1@4CbNZMPT>sr~+P#j3*mZalw(;>yTy278BFzw_h<{VsV}xE+|rjxt0`^ z4twFk<#$B|MLBMkffprBAi4&f!FN9W<$WbEkt`Qz7vPzyQvMS$MM3>!TU8!7-T|d# zbTvqUb}=(z0mUzwPZ5dQ1{Qs)EXok_AE(>g`ur4_6`6tpH#;RIPka@CU?EEhYD8b&u=V`&9+sf(t zy!`ff1w{st)LYE__IVW<&VdOXEpVX}+yt40{bo)_zwi@3CQZkFAngms$d8Ph`%1vY zhH##9;PYM5TBMVXE}2k_2JGVyj?F^Z79JR|j+2%QROvDz29FcA>#&^uPJ_o`3#Ns> z5|#LPNK&a5{Djm@fkR0R3yIDCLi^x+Lca(QREuX+CBv$;qx>r@6ukQxq{7`rn$%4# z+u#+vC@{!;B(SYb7yN)^ddyqZ&kc8LkWK2m=2e5@BeyuB3U_=uYW5m$QJsTg*&~^2 zn0dcRDo^se(-6+h{iqZ8QIx!{E;W#OLn+y2^tt06#72@7@go;yWV!17uUt`9&^@tn zlApQTjia%9wahydFf0zX2w6W*ba&#zi$ZdvB{*!zADe*tKDJeSTf8arlsmBA&~1RR zmig-jfyM*HKkOYT$WOd0d^aOHEHK=#w-kZn|i$MQ>dyCM;=<=96Him^!x_ zcGey1(S>k0F|P7@#C!<$?Ng$`0)&4WBzBVWrxO=-DwrupTvF5kr)YlBF)lDr1cp=_uo5D z&A9mT42V+l-!GsWkgQA~Ihu)4N@g?Ws9WswDm$!Cls4vr=b$_eQ){t6E4p%<{U-3u zru&O%uKiufL#V;61~--3?Ddc0Ear~XJ7K(e*DUR8OtJ)H?4DQ`PyZd1Qc|NlB1bp{ zvJ8^+0`;G1@XW2S!B9yrPvj<@059Hud=L#`4M?+mu5CpI$hk^4n7X^5QR={7S5)#K z@XUmppMzqTp^Ao%BwA19<V5Q-go4!WNI@^%?#07x|Cf zbk*M6|L_!WR-Xp)f%G6d@(xQmD*V=YBakmb8+>hF*t18RaDOi(Q~-Rkz^jW?Z$JF& z(u$#7EM;qgvvO1Vzl&QC@cRKis?mdndEB!J)pEVAR$?;if4EWHvkR1Qv=#YYBV#8l?QUzk*cXDvqylX zx6>Hc0;C16!id|ZRaIm#OW$Z9!M6ppzo330^XKkA)Pe2Scu?Q@ywz^8@iG5II(#eZ zI;J{DF&QQw0u8JoCH!Pg6$JnIo?{bu+G{54RJqKMqC-nca6nKT(m&j)or@S9bR{kv zbCu3R9~yo7NcQ?A_Pn2{u_9v!HKM2pZaLGTVAGgK7tr{HgcR*eseW2 zltQ3SC%djIW{T0j*dbWuv;PL%Y;m75Xy>0@wld*NGrhXR-X2_zxE_;a(jYhjG9rtG zI(eZ7zHdU^jpk1=f^Rffp#_A^R{yf^2cslJy16620eNpdFahNcj4V__HKH zT~@Ok zKbJ9<;a~Bw;S(=h1N9JBWB6{mWnq@f&FW`)1&=&xZQPfc*=XiDBRKZXLI$CwmZQ8# zv~CiO_C1>BUe}d|zuRXfCSU}cnv=5=Y(2m9-Gp3zO+QS4f8Vq=AcaT$!|^?37Hi6q zLCy%o14K`X(Xs>ToRs#x)ATUPLgF30eGxdwfw9`7*170Q(AZ0Ln2yJZfrVadbcQZt~tv_`jm2|KFEYm&Dlx40gopnUSl%X5;qnH^V#b zF(aYiZ8C3LX&$}cA>8#1q8C)GwbRg8x$Ol|5ya<;F4cAY|IefP^|l(qJ@j-T$lvjk zV!xh#f3^xmPVGYO-IyKD1oXyx!KeE6Qpb#=B-e%r;u?d*5Ny^G(6M zc}b7pE3GwKmg;5{7Tk7+9Od{X6Pxj4U~pA9cE1hA?AdR|%UDvj@N7Ee7v4{up!XB+ zsPx$ipErq@x>+cgL~&$1k{(k*Xf&qz`SP)b;ppWiZr zKE((7x%LtH@-qFMYS+V5qsSUYM})bsXSjge=+(=l;h;I|b?Xq#EQp5&o?D7EOX`}Sf$TM40&?Y1NSnUD^> z1m{IVfD%=HlE;S6zcm%jp0Gsk(xO>F6LXfY72|k$9ZER$9N+Z}5}=`gXj{gd7(eRk z;y=*E$P4X+G^E0d4llB$<_#q(wq6G|txgxIH*DAC?@IgW#qMx*|7FVMXfo)8>^cvf zl3>d;qt`Px6@A4Szhfjf{Wolhp09N2Y;fs_r#0u7%!H9v?o)bjq+@sO`d-ody(WWc zk3WPTSo2A|FmqtV$BvQb9g{n}S-)^HVDCGO+gLyT)*c#LV{3l3;#C+1hx94Wx7Qz(ptYj5L;^t%A=F9d9V~S0;Rnc(1_00aGsOPMgp?Z2ib=P zYY)wk2&LQbm|rlO-;5@`q(f|Qmac$`*cEqy2AFgYtYYTpcU8|ERW|4hb6yEL7wy;$ z5S%uA_g08HGT8hPZv2h$;;J;(r%;UBcht2vmWaSv!+?D>T3Ps3CM-C<46-s{@j# zPik`cF?yd=M^d|_JlUztxg^Lr8fqqp;9Y-vjR#%4b2Ls;*zcU+>Gj$LG=y6*cNS~| z?bg}jT4#;PX|*&ehRQSV+Pj`LmLmBzKcZw2DtBU8P%;Xq9~8MlqR=s4akix7?!=(W z&tP)3!o+xE-YR;5NS8)%>EL@K$ zrIkKYitT<2jiXZ)70eIreO{4gM}MB268k0y0iPjOj6Tj&2z?&CU`a9dw@(mJZehz; zkX(CMPyQm!jzIUmT-&}V7?lkCSjn|sr|kPM-LyZ>;AMgf=6|3NnIRebm8+LuZu3um zzQb-WxP4SX9kJKqr~PV`e`~Jb3A}VYy&;Dv=+p=*y={GHLwg28r3$VlH`f3ZU$okj zmUps8y^9UcBKq+^rBp)t3Y#|>gww*>Aa2BK{oL8hYf<5&xPK?q!3oGtU;FV-eRIMV zPf;M>ZE&qoQOqbqid!5oTirMC6E})+rkGByv1AHM_ zEn(?^P78V6KUGCG@facr_VcBXG5cgr@8W8Z^#L8tp%UZfwSy|%_Cv+5|0$5D+8x`n zEH8zC97=ooEhxm1u~OE@>5kAR`@BC?yFIemX|;RjcEH|$95#cc*r>jH{L-^BM*LxB z9DO8ldr7&*j_btxSa`0BHN|r`+J=+o?BoON_eA>wf@!FbSdq^9VkA5f@)!31w|*?X zZPnwyy-=%yyI~~=bDWbEDJ8w&xN=Zpewf&`dY}YyVa(nmB##yse%I`~!M~5cI+|NmbgqNJFq>{1j zUTG~ECSNk;6Ark!YOCXbJ6poZ;(qtdgA)%Gjlhs)tk(7ed0g?g9=g9r4V_TiqULBJ zh3u|*iSrnky+;vEa~$2Z1WTJ$KY?u}51BI&KJPDj&(OTUa`C?4FWawCa)3Gn^BR$c zKihwe;A4kr>i+q&wlXXzX1}Uiim#A_n-M6=A_!^9H<&*BA;L-dlS)uUHbQ%qr?Qw| z1DP3LL(hvY$LV3L`D6j@tF2P(<^UU@#JRBHUj?_?=$g+dxGDj6Es)OvPDs53A6)^N zK}3hGXxkk0Ihrh$&Vu*t3VlL=k>`aOuZ6s zju?PH{Q$+>84#}-z9KrrKix&Je|nOB8>Lc3Tg7HQZZeHm;Ga;v{|P?PZh}9aDqD51 z$kmMDUx9=R9}lJ}WpEGGbLS9dHB}+uGb8;_I_`K_0^LO_af>NEeNRBM6TFIS(zS-i z8IWSKCtRZqeK8?lXBLaLs~!($Ug%U3F+D2`r)b_&JVTw*d=br#6gVH?^!PQ?JC|=u zE`6L4h8E?KWUJSzo~ecdHw(OTPb$vRIlIsJIQ(8aGwHbM9*5Xm?G-myNeYggThS}@ ztj70nwcrx;bJ;i|&qWxihZV(<#Fi-~T^Xz)Ltn>9+H~o4Z!7>vL~eNTn?n5iBbu+x zMAH2%GFVy%!m11VSvq8T@(y!ASw}as9ywQ0+hA=siYvI%T*1@1Zd(X&(+ESE!VF!K zNtAie{fQzXPhkz1pr=S?u!axdj+FTR2Jt2p^*ZaBfNRh#&beU@muA}YAgV2PlxJ@q zN-Z1?^S`usZKLT}%6uG&h5%oJ)lY#vnwxvMS$^00D9sNEUdUA^6%A4RVbu&>@WHEw z8y@5RowD&_-Md)GHYgIqtwk*sG&~kdoEs|?jhKC`t?cxVnk-_FEP3vXts4EtUAehU zx8HJ6@I1P%G3A4LN2lq=7#*F?+#MO^J)Xg3LU(Fm{Nr$whYFM7{{@WwWX;eM2+oez zOsHe`Iz&QZp4VIc;i#xy!6Civ+9mNKDpnmX?mX@%JGjkM@Rn|j4?o8_l(&=YD(4EP z(p}FEDQHcWSfi?bbS;r00Uy90*jFuGdzjd->votNF`yv_d>tY2XJ(m6Fg0~9c`|a; zElBw$Ot#;DEyQ1(nxJ-)m`k^n)<%-q{ic zr`9qS6Su%~NFa?JsRgus_Anb#(u!~LWY(XrK!ru;!4%Dz*3lro;wAPQ1~k}wT#DQX zCn3Mgrs9LniY4s<*s+;0g1bxNWq0AoHaY1`A5k}78;L(QX?0{6xZD5pA6!869Ex}J zkcGEHc4`kXk0x8)ZtxlZsfRJ&a2(36)B0?U6uQ( z!DF{r&|SaG?_S>L3wH(INs5-V3K&G-1jwy;3awg#b96$OmH8=BJQBQ!~cxPrA+~VOl^{nYZ^pkH1Z+ja9K#)E)WFG zLfb1XpWQCMZ=dNwjU;5T`uL67yv_nZBcWhSVmZ%7m z?$idWo;*Dm?`B|!k>6nrt1x4zJWQma9Y&*_X)+8Zr@)->@|O(lL{4?C^+k7oI&2?I z#=XN8@1xl-Cmw?I(_@~Y_Z%C0a_Ns}V#841pVeghx)M{IToSY0-=#N<4t0{a-1U1t zSZ`^EQ3Tr@Qop&RH!pCu8wBl^cJjVmpKl2Xo>tm_85ln(Y2!Vfi_pC8tSUY;)fa$6{kY>ex@Q(diS ztC29?6@X8*`x-#-I#arwDQS|kfqK` z=KwXC$3oZW(}i=r92E~;M$nO!(p0JE@@I*m^b*@~s^EoD(PClw8uotqH3#opkH(O7 zxwp3o7`}=;?v{$K_zT>lbHiRr&)W{^$qTMb--*9=>%&D=GbVFM^T;8lC_USTvu9JnDH{<_klAqMmZ zaQ@F2*iKSB(X1$Xz$~Kg=p404@oMdDSvocWH!5j|Q$!=MFQ` zUP0?zpj_r+8H0Yhb046zJpqFLi+Se}C}D@GTL5qqK`Qvc4tsa-QC-mdCOQtKBKZf_ zX5U_AZX$#{xbm~-@n+A=MYf_Ff$ELjREi&z_=NC(9u(Vb;o3D&3yrC0v6UB{O`hDT zoe0yq2?@WNHPU{7K#mo|>daM)sy$nn072iY5bGr-uT|?EL?@Ev;}ABD>F^FOYFGbd zVb)&yyZkchjx)sv-Utzq^Siq?ocrU-fxJ&1tP@zKZu0WEn8$(1m!3Xe?VbXHWs z=S^|C?jhRuPviJr)Lw3b(=p1I*glAraR55YsId#UC-uG`-qg4kdg-AcTQ>6WLbXuF9+xro zSu?Cm(*)OXsK)~)!g>rs)N!Al)KarlhnSbz!ecm)i5ENU>Nir`%*nKaq|=kcKy`#` z$PxLO$0{6@R=_6;vPNT+fd3HPSpXtjm0?LU4){h}(QiP5lFpk*PVGR)ja=Q{05~vn z^?myHbR(ndlp-4o@&{O5;xwe>h~j!iJ?(txzIQ9Ruc4Qil84pGDYh}B0Jn2}nY+-% zn$py~K6L!G;=+f<;rAVb48}?sfdp->bM2$;Hwx9y3Ob zlS`e*SLu+C7HtNdu1kLdRZ#ChYv<5hC~1`MW+m=cMt3baghGfF{!+(vs5o!ZCdV)f zsgE~O2G9N?^uacCo*EA0>jpeHzuYz|S@`?qhmZZDZWy7Rz#ai+64iC6x3M&y=?`DY z%7*YGvL1Hpo&b)s|XvvUJ0rP+ATXP5b;)BvJu`2zBN3(in*q~&kN`1ISx$Ya8o4I)aYo8 z!B{2ZnEf&&Hgc)b%Rs*XK{>4KS1enPiJA9qn&Wa#TMpFU!UV@Q$iy5;!NblP{6hhe0 z-ZIC<{n=eUy8HRL!%*z~bP!ffw!-59Avq`~Z6T&B5VJm(649c;OSVj?OHh zY!8+NQhc!+m>O;F`FgidE_{9QY8M56cok48Ed9o>RT&?=uvqybPNKm-)!?O3z-0;a z#nI*?4W8|BdUM}6wF3w+4NB%ryP%RajLMX$i5{#3lkv_ISZc1PZc zM0EBZt>Z9*2BWr5By>wqj-<*-LVU&{RATfNvppx zx`(8xU3{J2Z?ZXWV|TNS)KX!_q}-q-OW;<1wGtW(K*icx`P-Tj`9C93QDWD>MAzQ^!i#p(Kq@a z7a~D=RwJRT@cha${m2nACWgfw3wexm) zk$W3ll{q4v89pDB6wWprP27#9=D-j5AQU#m+yHMI`Fi+=BY&Oye%RJVW4d$-DLIzC z_TU}!BBC&U!rJ|`+~gx{!RekyAQ36WaeKCLdg6s?;0KNCW1N|*1ZpUgZl4(lzFuH2 ztLBaeTxRV9>fBVucfa>7qi@a9_#T=S_y?9r+=An(9G(j%^z4;ys4hgb!La&DadGmV zlY9T}!~bEMJ|MK$@9DnHN(eop>}TO|rM(e%*7iofMvIMiD1p9SgDuAsKJ>tJpA?); z2I<-p=vkWR(RZg#M-}{>QLJq-d1U=adNtVC^Gn7hvvpfl(nmW{ZZ0Co;LTMd51>PF z_}O*in`ZFezuP&!`lXb^;5nV6b{aSwXB?dS1bOPkZZ0)r$LnsV(9aAg^=W{rzogL?AOK^_u-f$nGaW9nAHsV|M?mmr#S^#4lm2cTF$r1*#t+n z_3cS-CqKdrY?~R0c$((j-Rx(sh+u~B<|CV_p}szI?IsG$R(NwbEP9(|5UEd|Wl2^T z!9k+8xdM8oxC_tl4-QNzSE)IUFv*lS0`BQ%6B$CnbZM6&ZmP)*=25rU6eN~AO?_Tj z?I^3*&5e;~X6uvjy{vW#5@fdO+&t#`q#MC+T&X^lWzcYZn&s4?9-r4`%7ju&6 z*CV8tX1*86Iy$`Y%a-=CfLYQz@Dd?20igzsMnTGZE4^;YyV=dFo}Ss_q|u!xZ)1Jn z*WRkkfe&^4540-M@p7J8KI3;{W($6BbE(0lg91~&P4Esr3goHxAvvwd_A4jWd=z(% zK(V`W(IlD{NrJ#;xg1-?%8{IweZEM5??B){pA|sv{j-6wy<;sehr5!_X(hPLxZ2Aa zNW%{e@=maG0Z3dCRKp0NiAf=Nv307ZDw_XUxl~B)r65{_y;jnO2j1^g3d%)#tuyV~a+Q*yE+fW^01#sjbDUqIFYd`&Lbcu6Rw* zEG_LFY8egCEw0CGGqJ@!?k{2m^{F*?FE~fN4S4Iv#+SNf3B6`DY=|CHuzoi9F5h5Y zf8ZVomm;m%V9#^>9dObOb6AhuGz3c%#eR2O_F0iE@aa*9P1S)M*~atH*RH+SPcb~| zuB`D@HFdq@PL;hUdkfr!o72M*L{{p6tF{K+{JRMM(EMXpjUMR&mXwNQWy#7oZt(QQ zSgSr?d=#d{Roz)Z_i8f_1l?AaWE9JAi^7MJ)BI}Gal*JO=3O;*m|!WbRaXgi11MJb z@y212>|$9h(FY*09rjnF;8hL-!HRpNLSWYVx2I_rrar?@W*|Z&=m4Zjx4YHUn+VnGDXyn@U$@m`O$o|JcWGTHwz39Z_IthNa@0 zE@R1e_tKf&#RcF8Ri9}*FLs(VSZn;gir4n<6-VT3bs&Tb{>kEJ%N=G}N{aF-+&62X ze_)-SItIY@;@lwoGC$WW^j4C_Ws}z@-_f5eW98!rYFif!mWj0*X-n(KNs$*78dvf zG#hXaAmQW;aPc;WT)y~VL1_!VsEYt4!S<@=>+QvKWhS|q`xWqDiNs)j72JCt{QDRD z9{gPmoW8A+n6D%;*Pk&b(SS_0Uv9btMXma`ab^0wVlD#ky;$$@WuG`cV)#siXllAe z$?@bXa1!6yM~o8x<&gf=$&Q5qPB}MVKBiNDYp;^AlrCAd6m10Ic{j`LQigo(xxus% zlJ~`~4YbDZz(n(pTTJNpNk1n8fL)PM{V62`xRdo#EZrjtit?IsvC54#P7Dnj?5S-Q zIvs8;)lmOLc#t6uj26MVJaXBmdkwP{X&k9~^#ni@GE0ZHoY&%kQV%hY^@B9~r~{x(;ohJNQ-{75A%_&; zW>fy_DqYMCm+@3lRx3QW4rQ}QOSKv8n~fzAF+0j~Ge2N|Y%7QEf113fR4U(z>y(1M zA#QQjV?&~FP#`T?`$)um^uP#jZ9Z`dE_e(gY(KIStyir4T}$nr5<(*b`4_OoKNohO zZfv>shlL%V#A{p5qOI(IODSW+1(PAd3_gCs@s;)`fHFgR^C7+8Aenb6n%kNXsW`eY zHJWC-V0xqJwf3;`{Vc+b0T;f-k2S9t$DN&Sh>m|(O4tyuYI)S8A?GjT&?Tro|qh?C6bBT;>9leR7!38 z+u+y|$bZ|}N35E_m+XvgjgQ)US+-m3QwFcdF*XA)Cgdl$hBs;br5tf~s@QnRxVtYX z?v)#k=h4%CYsofX_Q8*5nqk6rwKS+IpE`_~k6z}yjCs#;h`Q&CTt&yuMBR{PqFaGPSnzC%9<9x2KeO+{w zJXSK6{6CP<8|%frU(8U`L;)T8^lZL|-%qwtR6*v*d?WlTy!ccu?->5d6f>^Vylz0cydAqkZTn!PlKL1qc@!U(VrXS+aoLkd)uSU(l_Y-+WqPZKA$3|pBeZI z$0~ZN5NG&WSNFh5mh5q|`-*bREdAVvaD08DEv7)PP?9||tj%gmt zY|+vMVIk308ZD1bS;7a-I%hEbN9g4xUm-O~jt@Vb4L6e=(N zMu4JuSyFuT12?BZb-W`1KsTk(zJx*|`br2zxHdQ^Tg`bxM28mq!GqCjpStKx~i1tK<2|sj8NO8FT$2PJe@)Jd6(?xT!&? zYzQm7Q?vN8*IZh1t1q3a@+$3levdT-{B+L`5+k|+VYu9W+M{)={|7tH9#u<9+3zXU zH2)O*)y6fl2G<4e2MNpn;hD{EEloVT_3X|ObMwlGl4DTpD6u~?rtneda|(LFI$QD1 zXm=!jDUFUZ=wJm9q zZ^SgFbBzt`Ev%BNJA^WetIW9 z4eDI2>z7B?Qj6`m>rzsdl?_-=d-;+6z0_erxfXv<-(jfm{Fq$uR zrvsDQZQsqg*tn%XpO~{>hUKSg+tdv~ZTPN^(Z`XJv2p;?d{bA387oKT?NDq)U(w=? zpkX^q z1%oWTr&(APl`BzK9h!fk?h2LAUe>^!LK?N^W3=8=EPbiAv?mSd0~+EFgKIl;bNZ=8q+=WTNh(x^wA6&<_u_9}=MQ@o zS|fNSg6kOn+4vG ztn@c_9w`?(TfTUIw3IaUr*E)Q?M!e>>RyN+* zQKkN8s;Hpft!*g&?2+y@xBr1kG{by;Z+aTE(L_b2Zg?%v%P}O{m0*cZvqRxC+p9kA zr=HNn&AR4^pE{4JJ;6QnjyUPx7m$S zI*llt@tl1P8UM6qE7E1#bt|L2uL1d?bE3;#fqq>M`@%+q0d@?aF%uONn^k(c>OvUk zpnBa%BFNnDb(I*YBsk&x*UNu`Q$0{%Lsl4Q@qS~ZHMmcGc|B8TNp(&g@lJBUuKHWq ziV7=6_g>mflzn0Z_ovm62ct#f)*OYKok>?m~ z<U`iJKfzVY-ng*&ZjI@fRve;X&%fGxZboLEdmeW#142G-%K0LJ zy>6HJ!J7EcN9IkP#$P1vK5$bCRO{0u;a7lraE;y1uc_uV8eQ7pdn5FpM!%Ha^Z$L( zoC~A7we2{iQd?6YW{c15X<4!z>JAx;Os_|3;vTC(HOtOHC!PdiKY(jMn*zWb_@cs+ zgwVa4^fUekx-mYOt#v#Dz3OOw`J9z!Q0Umv|NWvx9So9@RX1qFMmOOGl!JuAsoN7tKx;Z3m^|GsmFJr^x zOS5hLR%|amD9h{K@TGSdqCoyb8LTb{&!8dhSjHEte3m}F&7p%k>Ki3{)q|Z$injx0 z`Hxg)Djl4(^qi)c1A%^fueJ}%{x${ufcM>Qn{zjE8v>V`KM`F`A zCS6v2REB~2Qoh!Zf-TclYzaOZk&=mhHm4;>TCBxL<_{yQGmz}uzI9mD{1(_PSo!8i zG|P#9;>8xXj1~XlriOHbB++?E8tyl~!Rh~l?}$xNH0s&r=tGnh3QGt2!z}5tk~1U7 zc}yoyn8)A7IP?h#0k0M;45HP~V*A;R%X?aNZ~5=D(BfyA@QlbC{BI75}wZSs1Bg!=}hr-Bv3=oUH9xR!MRO z$4`7x^tmmBu@hTE92hGRn_zjQ?vK61wS-|9SZ)axa7wquuQFa2G83Gy&m=U7j-fSus zHoyU207ZvHk(aebuM*Vk|MSdUO0ah* zzO}S2l!oPeH3ZA&p(RK*6hr*q(e~p=)FM+wr%3E`=W!s3q5|)(9{hl?`DP^ZBaHpC zp`=BZu>64?mhFaI_Eq62OvXH=i}9>k>MOB&hO0cp6SO5M;y0$%e_*k2EhyB;(6#zeHEub|fPdo)_?dgF>M{Y+)qhpb@Iy24dQsWJ$-`6T893O?1`K(`SD zH@RrC!99$CNyX+qbzJCr&MkYs=izWsl99*1a^-jnQS8ogP%tZy{JTr;NvE-g!>k_Q zzS5D;#%pD8T?4P#c1qLHTkTuS+#7ooeZaA*2iy7pI{9qHD70Lc{N0fx$XZb9+rxQg>%DQ0PynlpVznjCO4fQeuYQ)l4{UtDB z|x|=+!FB1kI_{yQG*=wyr9|${L}sW z>;ejPwD#!c_A*31hF=uUjkXwC$5MU!-v+)IVK&(XUd!$)Zr6QE+rYZhZ(ns< z!ybvZvVG-MZ1wBcIFe1VzIc(W5IfNO8%_*mx!lq=F(^R)ZRBM=1X_({8p*a*Gxo;|la%h&6LvBRQ z3AuIp{;uC2`_mp=u50^z-k;a&`E<{RxmnlC=y(muBFb%cR7&D$aX=9)j20z<F%n=?pj)@uCI)}yw`zNV?6mmQSu!v@Ys`*Y-}#%cJewY{nENECfrENm*Mt8 z?TTG6g6eprY$mS8Q~Y*k`p8brd#=2M#wMX`o@mviv#ZJG(gV;ziGW&-)q1nMaSQuW z#}+=41@q92@!LlG92_+aJRzC|QQ}5DieAkxslg~NT+<|rMa!l8uzZ6v z-`#%Hi@It_pEApJYuUf6X(Hv;@+R}qY5awXJk$jVt+8j)hEbbI($w9$#{|P0I^Q4Y zs)2&l6~v$4YjeXC`O4$sO!CdZ_~CsOjQP11xY->4$Qr4aI5i zm1P>fGg5{gnI0Ky=!sti&Hr3@oPYm;@=z-6DOMda+P|-6{0;01deCo}<92D>Nj57@ zxn@SF%DTCF28oM1dBShP^1iYikptvIUuo zg0|PG?As0A?M|ba+?EFc4L|$uwmmt}w157{$GV=e`YL(dH${`hS&^=;de++XQ<@?} zR2MUT#GxTEkAxK45B=x7hgh-djN~1jYR-6%)#?plPq!A&T}z!6VQz;=nui^Dx=yF5 zYRo0G)~_2>?msqM5ai*S{6$y&g*VZ+wIoV5&-@E!IN0xvLnXIfGzs=hf&p^?~ly-1Vh?Y1Kax=B6J(B zM%z6sAS`4Vp8o@TrV^Nix*XyesFdz?3 z!~RlW^6PSBbj49s<$s`jCua5`vl086N_TCL@|NXZ|6COuZ5n<;x!r6BA%>a&f(?rt zV^aq?d-ENNw_mElDE%^5l23IW!aI8hOTROq-HkLTIAiVX%7_vt9W_Y7%Otwp{?tM` zyKA#*>#U$Gt$I1+yNYo2lD-KsfBzTk55+6@tj=Cp=~l-qaYVoxxf=vjcbB}1{be_5 zOT|H-K=Ty}j<3#i!Vt&uk{R@mdateY)~$|Zk_JkRA-|*niaFgLWhT^$i#3k5Q#E~T z3vW{wjh4pR{>wT$6T>?)a^jYmRAvkK>j%xM0P zWt-o(*AZI$-V_VWEX1kA&}_~qEJ?oqH>olweu)r_5Ce)LzGLm`l3k_$1J!9T&70{_ z`=gvM{}kl*nv7){drLMYKXXfs!~#c^_hOC4iO{re^fu?%h%ro{{BmRz?-2KkMA#=P2(2_z%(&aF8ZxGj`z~K^a=HB2@I0wfj#@It%yEeXItjTxJ<%P~Wy(W02_m~y z{|u$Z8ad@s%u<2gfYX0ny;Q6F&+a{F-09+kbycB1jO~ZtiB*%XG(kz$few3S;ZqB zil8w!bi;dO93$;e8;)@=u5kM1!H(MYvyUmBhr{Dv%290p{fExDbde`RNp<2TN*EYK z!f(+7uinqchtCVeBu;1M34YDqj*_hAPcN|EE*sZsgrXtu|83u}1h8$duJ#z$HAzYh z&EdqCttu6nQrjz58T2NlGp~~!L9>tAEIQ4}q592dCyw&u6=YV00}pYu`sM6n)wP7b z8TMzbp=P@a?AMv3`70Qc(WGJTyTD$=MY$PbrdVuIW=M6JYEgjBye(1$C?{)U1r{3m zRS&tV7Pp&C6v!l>3zB#5@3(%iTQWQ-xwq1wss^4xo2xS%8W%!y^=b> zjE<(gC)l5M-iKd}QpuA_wOGL!u}NDRp$6@1P8hP|mIM8MOIx494HKc*e%QOONn1`I zjj8r_)eXUl3lec4DFEC{(n8U8OK&Q(CH!rEb zr$@b2$v1i4OOlB4-NL(@ja5`mh-b(vU}pm_4`eSRT%$oo%Z zN&M((te(h<>m=4Y;b7QC$)a=1=k6Wkj{YA-^Vss|^>Kd`U7iMP0&BMkm3O)Sem(a@ zCUD$l#rEaq8^txAyu{GbMQeDMl_T1vTR#igzDOC!bK~1L=o+s(>f2vORV$ zQ}?Xr!{SrvNG)ZZtnatdXrRQ*4?LfH9u#2ClIoCQDdwZa9keO5j{NMrrloArzg=~2 z$#kZKKFOk zs@FY`$S{>v$@(B^SV%q$X7VM*xG8&;6Ytd-3zb(CV)Mb-qng}%_(S?#$Gtsr?{|p( zJQ^IdY?$bNXOzs?Dc9a-_X!A&c)ycuddb1wZmPPnmsBGQ&LsK2Jj!HC16AK$psDdg zxY2f^BgI+XBRIL|V&Ibd;NPC9pIFyhl|nJX4TU{}ZKT}axj#GX7QKzU#L-&Z6_?+4 z6QyK1!2>UTK*sjw)$Y7Jp!mc6l2{)yeu+L=4aS5k(jvtkocUPi4#5XG;H^JheH4)Vfl$lvJ zSCh$weD;Wv`aVt-&U$#0Enp$ zVI|MuVvUHQ1ZWpy)V`}nH|7NMtM-$&4@Wi~Bo}$oRxz{Xk#Fqp2Wq^l+^u~plFfd1 z2?L+%0IQJQt2=v8D&*-I#|k<=J?#XLiUNrNA;>f7GAtuKDDGxKb=R(mNFPATpkql<1;Y007D4Ykx#*uR7PGtNt!l-0s$_ zdgE#MXCe)%#ZK6+8zVk+PXMHw75IBmp&3447@chz(Dov2-#ycCRo!98=OJ<+bgrH> z5plj5Dm;D`Lz-Xf0mb#`8TE6I1sb@86bX#2apFc!OH6W%qFP=^=;MYEoh}eQ;?e`8 zze7y$KniC0k!jJy(9gT-SsYK+t|$oqm*N-iSBLF~1%==B>qW7)wCoFQ#*Mx&?L+=z z!cxatPQ6V3UUx63{p4+5>U5RYzBv%_b8ORT#sL(!2H?pz%^@~U1>K9zoDYD7jTMy_ z9W7=^x%Ea*@NulALux_xfh5Gx4XInoY0%?&>z#^(4tyJov(6l^r-YEW*|>ql>*C40~c zPuY~gYvMho$ypRdmvb`NMzz${<3|=^W|He(^hH@{xJ@ zD6=uqHPu-EcrAtc{LxQHZwL2idj*7(>4kmz>LjIoh>Yj ztC%@X@I{uj=VSR6NCSipH(J5ZoPo58+x}iY+T$=}7+-xcB}(k5)3HP1&a^1R-42o# zv=UnFttg`2_@*NrOgTIzZoZJPQN zjyt}`s9*0A5j=n67PDZUC3}X1=U=>}`Gsg!MD?HyhAa_MlEB_8LXWnDc3l-s9av8A z9T0VIbpHlHF%UWVkl*g{*;-E~f-Y>9^mZCKH{fjhMfbU?N{c9yalKABM#qnxtSiDi zy?crP8Xw+G;)ORaU~Ro3#h;zg1w$(aKpr?YC!CR(7-lB{i{pU`d{?@;0*@aw(#Hehm_Ska| z+8dk%*S@TtR!=dH{l*vm7$f99XqO%~RiL|g_~dwheB@f&s}BK*dD);BsxlI|a>kyQ zOkzFE6maXSSyvG=&#BHUw$p}A5xV2R&g6$HqX>Xs&oYA%&m?M&nbvU9$sWD5Ek|8; z-kk1w`grd`<8$lF8m(7emsl_PywS%j^X9F*o<5C=sJgYM$2{TH9_T!YzxvS3B-M6My9{b7KJ6=KJKO1tV zIn57-87Qa(7elrmrSGw_KS!SW;Z1OM3p81y{y`Mlj;TCUfLAd4ollt-JEH3q zaXvSUgZH$Sk3y|EyHDB5$h_-Ep0Y?tz(fGjHpJyjrc_Z-Wq>IG-d*l*afd&Eg?zpa zly3u$^?|~8V!-n2f^ORSS-U+Hzti{>C=l4BxRjh}Q3t)?^sav{R~=V3n-4ANP<7Rw zNCL#{;e9`ZeyxFsb7fUoi_QwD9c}=X6`g|hgc`(pI=8z!o&y z#QH!MEsZo+~OS$g7>7&)oUzXxU>3KpdhtAEaBE2Z(9x`E^TU%$wf?Bokpl z1+@?rd-H8P_iXj)>d85trU)W{=}bNkMeI!g6YsBpH)7$B9;OX3hN+pEKQKTzd?zj1 zR$|V{JkMN2VP&WK^(c{aL9N{77Wn?JEV2d2#pJh>)o4gi!ISIbeLP>5$KlgWzeyac zOw!-sAmXKx%wlp3%wE<^z$QQbr@cqr$@*Td(#fDWkO?s*XM9KpkX~CZt~hUrPcE{q zCw)-evllPykctwQ^$r?PYOB;>-fS_Leg)(T3sXl}wC$>Yz&!H(G~d{1Beu>73d{W_ z1!w0=&kDP8zN}nG_q_Qg*&NOoZi5SZ@lE@imW7UqCQQ#|N(iqSOd)3r@OZNkvKG=)`o zgK6nY#t~OVl4+CQ14C1SejguKdD0Z6nbsE67TLB?yVmG^|9idQHj}T(gcH%+; z?8ibGa}MO8=Ndh7_NXm%4$<|h0r5|KM)TN=M~11`ZMJ6vLQ)){*1JiUGm~@Td4xu_ zV*3-7Lt>f|WS3*2VcA~BBlmZpA5H_93T-V&S?g9S>4(6eue*xgCb$hsbqt^_f)uk0 zlamLJ=&f5oE8Jcz&pXD2G3GigoDtt-1Y%Y*nH30(7fmK~ShFZ2$u=G-k1V_@|IEXx zWmi*1A!%*JQq8C6ko&!BE7s^odwa#{k9;PjHH}r;jt|wUf6n5WzEK_fGw5~qu*s<8 zJW*==r?9YFoi*f%{|u}uWwh}HNH9(WHhSycWYJHebHP2Yzm{Ac|Jz;Tn{k^_M2~p8 zD)3w;sI|R3Ylll79wavQAo#$~3)u8Gt|PaS>EV5dZw4Rp7!3MTzTRru(07n)-wa?# z2f($1s7!R_^3<|}@D2=#yA?cL*ev6u!=$>cwR?q z>CMl2os1_o3sx0GuOZ;6;Yn~acJtSEL`{y2jj0%(%!|dz0nr}EV7d(&vDh~s!@1(n zl0K)!3P+I%&NrK1*xhU{x~R=uG`$TJ-Jw;HqQM+Jot);&y0VUuVAas#BIJ1#;!hjr zWa%n)F&14(O@bRRfJmk~fcN>nKPUIrpovjZG^uFQa%OA#Nvr<&+IS?~LUex9^*)%z zWK-NlP3tTCEY4}eMsAzAWu65}!LHfN@RnV%>QbrEyy6d)%Fd9w_wteOG6$<5!{$=T zhQo;K^y8^>0W`zF!HUB-uU|^-#^)RkAri&_dUb%!7a4Y(UsAIQ{xZy#o$Z03VPy=0j-n4 z$mmC(sK__VhLO+za+HavYMVW~%}2iWGsq!KMCtPDHYdMF9a@%~IW)RipK1@RW|hX; zSN?j~#g`W@Egzk-yFUNEAze_gDR``>t-#&ZEGWtyW7{DUpS)T=m<0FQ#M*`jP^@vg z;-J|ybQP5)qI74&X?Z;@`qFh6;hZl$%+mf@@wWU9%t@ye@gh2&Ly++HlS~9C)Rr}d zvVeFQ(cUHRiVb1hOR@9jB!t0Ma>j$#Jo4Dvhh-v;w&)o~5c8jnP8;_@mH&IxKXO;n z%<~E&FGDV_QWIjBj4=w7r9(33>hoEX|5lU(of#W{DQk`{Bvs-~O?XDr<= zwVmV0?1vOB(htItQ|!3|EX1Ac!@N|X@au-hUZ&-_d|O+zI_uC-lr!?J++}3Te&xW&Hi1ybnv*T(ttNRqcZ7f zpBU*hVYJJ~t80Eu0U3kW{k(GBsl?6!TlRa&i1Aa9X`4uZ1vO1gj$c9R=+oTpz2_Z0 zq&>88k>{9F;Ty_P*0x}l&V;f>R z3mkNW9=I1p%NC&U?!F-3x-Qo8jjxXQ&N|f}$lC7$egaN|_`Z%~e+9vZ4mDzZZ^6 zF%D%mR?4;ljAVQ9k4(Lr`OrxC`G?S&aOkh=9f>hzcD_RLuhEy8q>C1frBa(X8~s*Q zdhEJR>tPs*gYMp~O7E+ntYWzVSjjn2f(T1mtgD75^I}e!1PMy|nOp`{JTcbQ)lgm8 z>!i0@M7+?nYfEOQwmnK!SPuV4U2`ZpWEsdNaVMF9*;sM-htd`${l-%8Sl*8VkrZc9 z`9Vjfq^%Ji+Fi9sKV@K|C~K8Sh@4}ArJ}>d)8|^sQizf2$#{icR$BFbKz# znjG3>X&!+AI>!4G$T`8{bO$Rj07g%;2Ee^aB zp+Q+l?(VD95@ic3q(9N^P00qZ^@Va~QOM|Kk0DR8Um zRoAuuk9WDCYCmKLdK6)Mj9Vcy;v$2Z`vaAiZmrkc-B%tsM6PFUP%`L2?0D`uNDoTY zBYKizbEjaD^^_qA9;+$aYw}cIhHr@&Vp^B~LB5^_u6 zGcE?(fuz}nFFzkm6!tedxOxS143bn~i%a-ZH%Q8lB`cq*yu`%~iirQ)OK}p-7u~H4 z-L3ok!C_%`SAQ2|%s1Il%3uR8i!(_o1)UYRa2Sn-tg@ziIpXsd1RuZ zSm1AIL{=dk$O}tj;^pltZ$WpeW&kIn(W z5z8cvzhg%9EPlZl#fwwe;mf)QEFc*flY~%a`{`j^W*Ft;+&f!z z?~0UP!b;j`bmE-3u&}n>YXY`^NX$&mB-f=#k;ouAl8%HS(hHP0s9ZV|l1wLIk~nKv zet1=-NYPH!Hsa6Og>o&eR3}r=5C3;i6rw(Uw%R(2OLj>lg2BBB5Z$#%pav93u@Ox{ zS2gv&ScIfCQs}oJ8R4xavwIT-F_3B6 z2yaM-_QlX?E?hJi;CqXhg~_WVa3vjfv; zBdT9T=fi$@2J5U#AP1K>p_P*f(qD9Qj~wh~KfUPbPr&Hic%l0oS5@DPC8Y&Dj=DwTunw#t;;sRv&a zvc3ns`J8|A3s3#ZG(Yr+)QUqNr)D{N`IxLm1?&nyYd!sn=#WG0g{M7xk61yMIN%SZ ze7`SyZhQnZpV4i>zBWonAKtQ2hV+`LN9xn@5QB3KzNSwkOta|CkY8+0FLN%DXR@h%hqAZY4v;&q!& z+p-gj1ewR!PRLA&u@t-*c04#bmm!o9@u#^xzOUnsm;6n_F{s`)Uo36j-c~OwH`vzX z-QMRIY3O8~iMA!AnZ4Le@PqqTdDDDeQ2(dZXa6z&rW-91+G^ zxVoYTv4=99Z6IU#mPf>8_r7n(8i2(2URoiH@VdKO!W{Tz_@Mc>@N4ovWDj4N!;m&x z2m5DBv3J$u#JLmAb1hcWpAk6c0r)LuyMOapDkFBqL2-UGzah#oBq>je@eZ5!t84zy zV0iTqz^re8US==wn)8{3O_o7Hh9)EGftt>^r*i)T{aC7h$P8u(2#=NfaEA@W%;h7i zxD#mzI=5eXykwy2*T8(Xx$ox3Y)EcqiFfwx<66Fg{4SN9tF{NNP!rq3WyUQ$M_L{x~3sZt#D|MiP$x~uzaVyZL`K-YY{Gu$r13%RKs<&@II2+xpRJ9Ueylk({~zJy(}WY* zfF43rk(|vK#ST%KooB>xQSQF`{!+a2y7n$v^}`Yf zp@Mln?_A8XZq8MdYQS$2c<%E~m4WUGR>lXxHT`n39i=MbED@^@s=ke%6wKGmKK{>d zTodytB6))687In4$`usZ`k<;z81wE{ae+6i&Pq993Pjc%QI@^p;r}KPlaoC@5jcSl zB~XZ77$FagLTYxogr(w)o~QKHLl~PbCRbJ83CwrwlC!<1O1+s07xm}p5xsV}rxxhr zL&+^k&|Z^~)@NFwMC=er!x8pwCJEeQr*YkV%j;CDc5`B;GcJP&rg!KB-l#pxs0jHj zKp`;h*`zPT5Yt9WZd$jzE*D+)fFa~h35$E56w&RKz=#}}c6Eqpy6HRJ{>j*pDAYpo zD1c}A%lj`>uc2%wfkf_U8@tXRDu16-r^imyh?gAe4cy-pN=B5v)w8q2zCmGXY7_>vwn62`VYEP9G+R5tCFSrop8gRhqzM=qzqQxy0QjaZe zHF&Bw-b|2C6wE=`Qk}jHk&!;Np`PTy4bmnmGAFqjjb`!(_RT;3Mx7sExLB9-&b?bT5`{+VZ6qCx4GI& zPM^uxA?Lvh{hutikDyS99`w~f=SwGtIa+v~!$REo!Y6|g*{tviRXLqp-Iz;P+!WpY)(d2;VZh`n!x3{T7 zG`IGP=l#|(27@|91`rBErkK>7Fc^|6mx*7E|m!O5FZLjZk9b->thdy0i=v1)%{tfM)`d+<7 z4?9~tLOjl)zRT&nt$cy#dQ$CjW^KfST=PKXjBARyhYo2hw9hzv6H(Y{I9X3(f0sF% z9QxL<+g7Acessd_F;Y3Aa8#}z?RaCAy5xt`J4XLr!@sXR&wuT67)Wo}qbgmKSqUpn z8)ct&4%zc*6tke*C41Y3=<_%81o0|DBRQZ#6bBIQzRTa;aQMi2NvT{!^-7Gf8HI-% z@L0{lWm3f`qJ0rE`gdw0c#C*fbfzfmt z?B$839UC?8mLK%jLbv?u@0G8pq;H$+!k$kWKy2eV0BJtWAlhqlI$uGnecdwLxrkj* z*{k%i0IVy#H5#=_PVfJi3ngFUebdv?mvnI=IoL8eO%(z5*`S@lm@%z+dH&Mc&u+ia zl4QB=g-+cIDo2exE>5L750UqMIKd(I1mAGRWC4S#O{NYKsSP-z3!iDuC0Cx#;)y1a zlvpPmgu!$FwH^2MM9xkgl&;V);A=i3MCnK5Z{9ollp#aM{#t1e{~w5!i{3OLhRHd< zvEzl4-mXWLe#7gclc)IJV{cvme30Z1Ktun&U&XxqwX{Klb~^8--*fWKudb}-PSV}v zB$I0kC9FM@jHfpgJv=o29HQGUZQx9ZijS}G4qDULdH?P{8%-Q72fxu+-(tzIRglIE71+d??hz}qbgsafWad$gnq43I>P-tABNeov&N2bDf;7*L9bT%keQV2p`KUq(i^-H7 zORs{-)|8P?SXl-n5>%o|g>97!=>!#7C`Tfb)UL}UNp}4h4Zm+cftZ{bHA;a`wAbvj z+$r5>!eS`;?Um1ILOG~G11D3+`pGt)E1M>~HREQ-BsI20c5#LTom)$eK$x2$c>Lv9 zhgNV3ymYqUVksaUpxPlvR7d0tZP|9!pcy40S*Bc~}g#sU~_tQnZL5&l>v+RT_ z_wF@ocx2VSmpWa@;a#)$nnm-bw>!hT zxe@oG{^QQT+Jx8@Y8Ke3BOCj=EiiGlz_i+HfSm4|8HFnFhK9WSoKs8~Qj z>LsQ8w|BZRq$HK!q&c+86ggL}`~lO*KFPo6<>#KWV=o%Ju~YG!Zpi4j-(+atL^g{N zBMxL*5WQxEl^X0rkOY!!)I+dl>IiSX^RT!u>;Ue! znN*8i6=^Ao>!OS#%*98Yceaam2p>GGTze8#IkiPhyp#WoIJZzPf#Nneg6S}eM1t`Y zu!qR&ohL?Ep4C@@*Wb{NG;&=Z2FL>Cx_)-iE|&AKk^RF+l~szx<g0{L@w65KuJBSD7#6^j%lTfeO{{#=Cy2ll<=a8y5;ggaInKzqdS`-4THv71#*~w!yAJnq^ zz35R31*iqKO#FsR%G?vW|8s!SdyCmyT<_p$1#md$K-(2syn{*hU4ut;X3wb7fU;1* zGD)OIGkph=+QA?Irt2IQw21LGLc(&t*_M-fBR7dueDAn_-m8ZP>m|RhI4+aJjwd!C zWmRXNYSiv*tu&%!(u zuRnI2a~|j#o4#!xt;7rQ?trtnK*Ww{Aj<}l7K8-a`PD9t?O~G9C~s!h%^pf za_NokB-=>HFA;Mo3+Dcm=CnBlh2F$bC>7|ZMM)}SmJ)-WdNa4xqCm5C11pL~?ILa= z?`kX#com5VS+l-bHNW*+2bj2|zKIB?~OH^lFPcKPkQF~JE&U%k2T zjCEb`1Q>(Yzd0};;(=WLC+)biZ4OsS?Hf$BI!^H*W$^r9=CAj#$P55*&G-#ZYlOpQ zZjd!Ko73l?qVM*cfb%hMwT$EgAE@~!~}NxSG2^=EGGhI7qfxG;#p=-qo2SrB7-!Uw5YHq4{8bu{PFn@i^HMa zsQ%uFvajzx_O2c;`l>tr23{-N%bpL=HHkroY?~VO&EIUX{nwyKMrZq!g2)PsereAc zwD5OO)!=b^yho^mo^2x0LF{K)(r(>hO$l65Dr@iK+nhp-Hc~^nUz8Pbz48c444s!d z7_$B$PJPG|F@rjXvm;c178n%5dRijmz$+OVOh~ugVBK0KU6A}2JKSlk+mW;yLOc$d zW#1%-+o`;R@jq9!cq#_t(On$aHiseZ%c3~$Xt-%N1}pSh70v%7XhoR{8;$}eQozU8 z;6ZPul1$-cM$6tbUQVl2JdL)H%8+w6{VQ-2P9N;!Y`=? zlvuMU;A*pxNp2^q-tP`+(y0p$F5#R73=`U*Ghh}ezyjdUeSRyQaObat{*@K0R}+sd zREe3k7-{rlklAci@zna+JH=rAn3>&5buCf14qTP}Ao4bvqeGv2nhFigw^Y5)&3a~Q z7!Ho6jtXkehFg27NH`J|?r3G|_)>vCT`BWz5}By;LMCAld3O#|;~o#;I6E%X>lPA1 z>|X1G{!J9j=qi^IyZDje(V#BaBG1v=dmnTze3++pPP@w7QiCB(Kp|s24`xY$V=7|@ zt!8o^1I9%a?PCJ+TTE_+qP3t)^vi|mlVK|D93UDBP36@ox>L-M=4g ziRsjFf56CfKNQPxQe1~D>n`7&e4N4dV6F34Smb&cu$+!xshaW%>V+iL&_7k~&$5ec zd|ws#+q}SxE;6iHMoN_~odc%qthi?feIM8EpZWY)A5)_NI_vD}{-y(J;MWx^A+I!i zzklYq_dDC=*(ax;?iXiOD?E0_)rP84?7yef8t{2GIl>zU@ggW__4t~2>5&bQczlq6k_HdHFQ6uzw$-8I?GbqO;yGjU7L69@ev_)MjL2fC^|FU9RF=%H+N0W zR_W&mCEfos-xee+6!?awt2W3JoEolG3RLhUuA0*c{Vyh&WbC9lg--FXx(qb*2i47i zWJ>G4@>qr0{6gA3VSb}0QpOTB%M!$jXX)26WsJt^4=IjlsLGJ)Eicm2set~q?gy*& zVA9gD6rBz=?nkHOo$`7PbPbEnq5< zP}4V`KeO0^1_f@-yEGs6!^Y0c7JQMa2shs`NpgZK6*l&m`Va&{245&p?H=Yi(kQks zJk4%i+rD4=;RuW^rcM*mi#P3)bJ@+t19$#@wm&JGm3v$-JS$m{*Gf*G%)b{NesQew z+kXp5CT_Vm-hor6Tdqz$KJh(RPR^NgPJ`$sybXOcHG0ND^0=0U+d#z?t9tl~s+ouH zWc_^S+2gG+VX+uOAFQyDH1W7|#j|u*<(5kGY!oG{w<1epYhtXV17lJ9H05bUqbx4x zY7-*@O^b2$`>#J{<6S8{vMkLb7Ti4Hkev@=_H z(tg9WpZ@vP1)KbXlP|}nZiP!w=>zH<5;+nbMmduyY-bZv_ty zrx>KJ4PMhW_Z`!tcjOgaTaO68@pe>x{hD1iqXfbK3GPu|f>3(2`^x?8ply{)EPq-M z^QW-c;>|uovb;t}A}cW!XcRJp)g4J|S z1J_VClqMYTl)oLu`s=b#YlSFdgPJ-Ka{I8s#syaPtB^S~PxJWcOUqij*R#FcpMLrB z@|T@Kw1F|Cu4~_Y52+6uR>@wYnGeERmG2&il14t@0ki%q+f~$@2)m;dWtD!t!Sg)^ zk0Ak}4`QcfaTfmroi!y^^HhWdLtos6;cPUH)mD)9FTzU zxhbITDwU$K=t;RGso4_6Om>UXjeiNHqMNwE%c7+-^hPed9@JMe5oX!wrfH9`Z7@MD>sE{Q)q(?&zeSr*)y%P&QuI5qHM!7!Zer%#v(x%2 z(KcA;K*xE3#fKwDn&)`u2S0MJhspc9rcj8wDROOdh}xY)-Zm?&8~a{yGPDCKShp5= zYLV}JyMv;BZCV1S6soh#v))hebJ%9?!G7);$9GZxKM9kiN6DN;1mr(YPf=bH6bOJ8&;Q=(U`wKzz4$Emyd; zf|G^lmM%MYu$@G1qpE>v*>LBvMlWC|Ixwl2?6p|N=i%B;=R{%1vsz`RKx;wHH^saZ zCW?gnEr(3pmd#zQX(=kGl|f`ON9%J{Q(tX_rT3g9XrV6sb%?N`s~Wnfh0I?ovw9*e z1gE;crtOp!)czQCJh%^!x0B!~)&9LfizVq#7Qq;~I4F4NFO$?af7X!pngx$8_>-|e zez;$|45PhEQ$|-6eAM*MTmLocsf^;fPtRA0&H$r3aS9P>F)wEcQ@ndx{JfV;`1H90 zbX@q7y?JU#7elb|QpL%FmpXWcXz#0Vc2!2&3`S3jpG_G@DqDs-DrI>`pT+CQYr%vy z?~xP>d@*ek|6Kv{CYXbAO>AuZHRC!69WoWn@-UM7s6Akw=v%gqPk1cYwUvj;%@hiv zQLwiWDe9DO|BuzPjoxp*lh9U6+^PA;lF6XwLS5pkx03PFY%#?DQFPu9N$&p}#!2op zEC+5=(JTk3 ze7?{3AK<5l_w&48ulv5PLK7tyD(t-I#Y4u7R}k)yq1^Jsbp^_K*80}gwA*&ML!%h| z!f67V`~T0A;DBp}-{L2CP#xA8An*>!>iL-jgO z{&YpOsXj{Uz4PBmtQ>+T-oDq!PAlFV{pBbb@V&r}jxY;fJi}jKr(^-W!ii~y_kiA& z`?XrP++G~f<={OjwWs9kGIBajoP%{6UD-+Lr^k0@_OUgt8vlI2C+I5@_+@#5q{K&x-z06 zNOg1nkQ~m?mHl4pzd$axu@o^fA^Aic>@&ZS-HqaHek9he@z}38ak|H6Ya7k35?F5; zGoH zfOD&_z8{4{3A-7@n=u7?s)FZ=4mG{TB*sM3qK3x;{lyAgd=GDq1y-a^X-O0vtLlPe z>u;d05=lhkOT%X@E?AJgRX03=`n2weE`GPSwX)5g>tIK)sNbL`sxON-d|&&v%Y)fI*S666ywn_bBwZp8@D#yN1;#|@ z_u1LDLa^}X53*(;OJrq_ZE=07OsT)Z0&i+cd)~PSH3g#@cWFsl2uh1EceAr zXO&)zs=2vjk*wwL49-g6d8c`t7`lcXlwq4q>y+%5-{CFg<>JM zuIKz*=fV@@wTYw0O>ZGt6$*d3?osv}Rexg_`Ys|DNj_;~PQN02+-5Y`_V)ub$;nnN z1HC$0Hs zo+E0_DWbGXbZKD7XQKM0$DDUFZ{yjW+!O%%^G3Myy}}|W%(7GVANgV7dMUl1%=;wT zM-%56Kxah3I}%1`5Yo&`UF(v`0{={R0}Ga_5jmu}#)W~vH*Fd0%Fwlc(B`6hZz-Lp z$JY)lu{Uf#H)IW_USS%PG~4$M;K4iKvwm z_ujwj{16w08?YP8)l=a1wuJyS& z8$}e|?y8LX!U`HZe^KratEr9Ywl}>pLkj8lH+=TH%o^BeIUgM*kN9XeW1>$e?A7jD z74y67&vMJ@l}Z043_`gRnrP+Lg*^D(2$1+b%PlbESl!d7jY&|?eVDm03{p6A1dve# z(($eso{4e5JD29&1FhK3N>dB2*P%jc!UpQ>$J3Sjp|d>V>Hhctsa6EDKSu;D%}`!)M2aXnP>T1?Dc=ooQ?}u zfmz;J_StWLd%nqH?fDm(cOv@NV&YHb>D`+TE0A4&C%a$aoJvTvN>y~@)Q+9tz&C!q zcKQ(^uJBCt)p|Gn*2(8G_N&8Ve>Yp~Z(K1kG7J_r%76OM_50V-G#Z3>Lf@|-TfTme z3Dy>v^;I=;-Uzl*CpT|-k!M2&xdUpk`=4nJ9$1ia>FU^}w@RlJ+&=;y9$i~&Gr)Qz zxe*ZURoAhW1)v*@WcY%!*oF?qm(m_e2)^xEtGFg6KkiK5WFpWX?`{M-d~BD2P{ zeogsmTO?K8+XyPuc?uO?mt&5o{|_V(`L!-)z;?Zs(Y9nDBFmLkB(AQOugY(^VH{Gn zE`1yB{fhTk7-A!5#r}&uF*|uBKq|1B7-&<34YmtM6qmJKY`gTcL0IGqYJQ(pbzL<_ zlY4JDZ{IROsAJLyYh)E8*%}&W)sm8u*2g3yu9m*idm72U_*JG)_C|&`_Zv+>>UkYg zH%wP;Zr0OX3K6RA`|-FWVI9e&L>3_F!*)ZbJ6Im?!#k!Hxx1q2n9+wI%{&YxeBo|= zb#S$ly!DWsGv`s}5YWoFRC~H(@~&9Kx%G>8LeWl#NJia`rZR|WbWg;?y;V0p=FjeI zKbe(v`0Wrcwd=RQa-ZFb6ITbV2X5Smb-FDu!`96+cE33SWCJTpVv$vPE^$JtwG6{S zd-o1$Qem-IlZ2`OlOTKhP*M530_L>hsu}aEhzc8V*Wz$2>OIjmv;wT(yT0YpVy1(q zc8(#h#xE{I9*7$0S;gKxdnSFKk!=ydF;?n*{u5nh{yfAt6`r}=b1ZosewNSjjvQoi zQ3da`{)gF?%SV|&;;+5A8f?(B*q$F@WY2V?lrMfuY+P$7C`?2NGu&frG|F#22fBl5M5x5+IV*?3d}&9yF~jn#ErUP8H6=J1>#>- zNfIs9YEe)f(%>&>N2m#k^6QYA>zYzXmNvpAg&jqBSE%?pbRRwgXVZHv9iQQCTUD=_ z0VOCogwN`mEJEHg8+ljmkVV^eB%qCiko8sCVfb_hDaeo+&3kvxjaAfnW7Fl7fbg9d z@?9%uEeg|uv%2Y$czV@mIm_W=2DRmbG1wA7bv#haStjkXm5DvAD)Nf}nBv@f*1yo} z1;dWA63wq~2-OO6dBm(+5*HG8fQALLvLW$>`J~t%6IfeQlT>axUuQjbIZ@V8tK##x zkX!F97+Y@MS*eyGIgI_5g_Z?yC%uO_fP?9+f4sBN0kSgyTU;jMiw9v2qI*Qv+sf{W z$wb_im*G*Jtqphvp4Ty8mz1bne)2rdmBJBH6)k{jcb}!JnG|NB<{{b)OwTvh@Z!L$ z-X@L6@?tm5Ofa@sl{FFQAU_B*WvR>1+6DM2zHMJq#$3B`MA5y0Yh$N6ejMkYzfKLv zl*HO*Y`=B=D zX&h9+r03Swx8TdOerwqk_x7;7%g5YsMN0O>2`bi`Q~d{lS}nIQ zBrCtnHv8s@`d|t{RI)=|_>(PsF^!3aqJJs;c_(ZQP#fKgJ+Cn0v7mVFuPEI}WSAx9 zj_>WJb%Cvbr=79(e&J(5bsM1pABuhM5ljVYnR6c+=0PcqeoL{I&;0kVhi%ShP!Ha? z8)BDkJc_w$Fy<}{S*m^4JQOt5kA%=uqqOwCsX(XC(&9;RNs-g7tD2d5C(x(Sw!$9R zB?`NWd&mE}9^YCT2JE`$H0pYrM{GevDbFVe6lU11Lzr^%3@D|TQ*Q1BlkQNIVmq+2 zvZg61%a$9BeK@*&tG>;4P}AJCc}Icngv6Qe-&o>+5^KdSM)CPt-NO5)A@#BX-2`bC zGa~uljw{qVH)=1tohv`Fqy0{woWI3;UgM?w6)F{0356@p{`NYF1feU9H5%aG(fA95kc6eGN z+K)Ga%P#-2%ToUAzJ@x7m`OgbdMG~_cjs#(N~7?~g1PhO+^J zfR0Uw?)9G(=_Brepw5QN5cZ<#pfNxirMnGgBr^fpVmqYM3=jb40GfmfZmRbk4fT75 zcOBf!aL$fiWamRMJ_~Mg?*TJhy&}2lMW}=YS98((VTM=nz%})4JJp`0n!)qDr;-v5 zV0NH_6Gk3cNpwCPFz6wB{JC3yByl1{YjD$$c>nV;5yfonx$t+C|70=u@?%PenYM4Y zyl8bj%Vr48aH^h@Gu-vQZgOqGH&51}Ziv0xc5k(N33ot1tAIM?&pS4YFZNxvn7W7S z_-x^uG<1tm^494tbgi5X|5l_c{9N=SZlpGze`JMgebia^@*pCpb{Oi}9_8) z>sX`^(EH!(26qhNo%w0be#;em`2?IF|IO8WM6>|OH^2cKhx2Jaai(gG;(-c-a=*Fl z*r&IB^c>;PBO@AFm5Jz}hW)yZ@XGJyh>5hkQ^)eD@` zfAC&`Je`E^>WOTkviKRf&w5#0Ii|Db|MxD z&+@c&(s?CiN0#l?JNY~TfD0j<|2TflF|aMa)28k{=d}fdy{5C9_j)t^|rc$VaZj z9|>t~Yc{GKFuv2rZI&S_T?3~S6yEj@5pGj>OyqagEZ>;xV2)a!FKvjxs*w%#aP?u^ z-*CCxx#982n&n9$DLmA)(sQ{axk5}?dJF_}ZJNhiCG8P<0>@?Swak_t|FZBlCaM%X zgmAtCofqH52+sT&Q@Xt_$!Dn0HIxe57b}SnY_r!m$3E{r+fVQnIX8uGiTI%~R{yjx z24{ngvy8U*klVRvLh!zdjwgKYLFk@;&sSNOga#%IWQ4X{a82hI|K*3HUV(@kcD3q1 zq24_`tYRd>h;mSCOE3!f)bTyb(PVjj@W*EAYb{@5E3)sF()juet7*lH^8rnnb8C+IL6tr z*kVZGwOih3(L1-cm31$E(tY=$KL%y!l3|_2&NU-TFa zspKAi-h34O;Bs3~B#>EauN?L&O}AKYwQIMj3GLA;h4~1tcyswuw#dB8YM+wjYmJGw z#S78rx=%ejp?SeboWLRR{lCu?X8ChUzrVsnGP%yX!x6dRKl_d3XT|PMdH0y$ZZXO# z5~-Q^0Q$)#)j4Y3x;d7z!!AZE-V+f#M2MOYWK$oBzRD)-p{s=A^eCs!Xv$gmb>DtB z6f_-=J##krJ3Uqy1CgXn-a7o#w^!t;=X^*WW{XoTphXveIBXDSl%)W)kv!{2xEyZE z;%L$j!Q|`P#N(v3+NcrPTtL3`0L+>IpiVvw6>7$0uMbFgh*WLmiujx8<^#nK5YAAB z2k68OEPDoSl+z^0bA`S8t!tEqi82%mS%%c-?Z0$Lfz*3XPRZo-s3y_$#!MeA@RkdV zw>%4oGsoESg8q87pl59!8pN%~bo`IMLBr#qMV~3=Xudz+_F@b)4NcO}F4_T4!+q1|Kn%9^po?HaEUg+z8IuCS!sCOxO z760^fYg^f7C{(X=j9_}Fg~nwUgd4S=S!li5ciwb1R3>Ops1JJZNw4b5C7aa9n@=q) z{9t3d?0b-K@H9guDX;X{h?j?Vx=^C6iN)tjI$L@Bw>ip{+>8lqt&AYfU$HEgQ~j~j;&%i+ptHkI&r2KIyie7G64!Zgk@_ z9J3G??LMOy^p`7|>Hq`ljpmIH>z%VV87N46**QudZQd~6=Lk1 zQDDO~aW`K|*VEh6D{p%Et&|o@E&2S9fi?yGAOAD2ucQEj z=@i*Y`+P#nSetRWOX7gKo^EI-`?S(ovx4g5eGs<%{4vCJ1CZ9kmXqIUHLvSM^ty$0 zk6WRIF@iBtS`B9ny;j!A<*Zh_K(gf21`f5M^;d@6pUOBs%+K>J+_rc|)Q! zBc{@a**U)ZpQoqmLO z{O&R3{awCbN2`|U@oB+q`3coMYi-&1hqKN>q_a|Rnhf#_nk5)(#%Q{puY;_^P1bK3 z$AYTz-zxzMQI`DCy-x&hZ~X~`^x9jA%{!{Y8jQaJ&xgeJ?jKY;h;ho1eYhTW0`ZVE z7vc^AQMmFp7Pnf~1_@dFG!>X&o`kJ)H+U?~9&DyuavLCnfkEGFtXh4Q%OrZAg2qg2 z(v26WkfssU@K(g2V{obAqtb#?Gv>{+Dx8Ls>w@Bv6ug)2;<`3uM=nzKt$t&6blyDQ z5|xwAM2=ZI3lw_bI`KoR0lmR)&GVSyl?2(~HGD??5b@cef7Xxd^~2P#6+DoD(q?fx z{Xe_y=s52(EyxmWHmdvU$}Lnoe#4$2BwZ|cTcPRS)x{rc_pS{evdXlU;pzfflLYDk z+r=_WT7)jAT=FkNkaQ?3UbrIdWv2*z>|P3|k^$ptMxYI~aT^?Rf0-=h29Bs0orY1cDJEhSDYIXG-ig12uYG|QB&ea3$}#%&u!}>CQEWcBWH_&^ z6D(;?#oCa>CGFwI<$g>z--zlTp50B;3I30_biUZ@*^P~bCl?P+89eDyOg96TyYqi@ zGq#A~Bp>>yze$#7;cM=F@yDoWsiKD}3-TKmi}GksQf}voW-DR3(~k9LAx) za-WmtZy5g%bnTH1GqLUl9B%i4> zrhzTDf{1TuvmRP-Ke?V^@+c?!0I~`tm&U~l>so{qlFvK|tG2ST*J})rwk3&*G?1}@ zC1o`w$9ss$&|KcsU*!;)W9*cM+XvzRjRwxtkYhxw6J_s(AqP`=V|#kdmoF1n(j`nS zuG0rUy3Ls^5-Zwo2%AO;XmndBy&hgGd}=R{;eWkIVFq_3$TyEJ-d(Ep9(O{h|9bn` z4mGX&9a^IyxaZs+HB$N5z2)J3U~R!0KZHmgs7v&z@)SFUYeO&SOT3pTiaRd~U_QHE z#3=9677rV*om{BQ7N-8q_2+h*hYE&}eBa01sr<@#)Sl%OuaNyG#czKmULKyT)w)mn zy__ogDkJ5`^nWE?UL9M(*^m;Y(K=&ywJq=EJYAicZg*p^=o-CEHF>kTz^ohhGaZua zhq40ZK3btd3Iqr@F9fa(wA4i0{1`sw1*F+_-JR?G!V7et?qV0Hq&*N)a5_Ne%6sa- zwWw!=`9G^0u0If!^^`yf5j=nnz)ru?FkSu=fs+APMv>KPK{F@dgYp(cv{eY6H+eLV z9A?9tO*JBh0T#bC`6-gd|8%uW22i4kxSk7S%;5xO-cAG?5@+9$4YT~Wm)c~<32w>` zG53!1r?4(G-xpT5>uQH8Y_y?E1rq>;lGYsZ#79oRNwuGg39|G^dW*H8Mj}x9Z+j_< z6G#UMw`Z=}{c*We=8Qsu`%8Dfp5$-~H)tGu znbn*+5^C?iyDo6p#t?c%neOtj9AMJ&EDF^Sf z*XO$M+E~Z4!g`bs*0w9$$%6@m98zw;sfK*i7(Rcz*i{3e2Q1%u2eIcj;iCN{pJ8L- zT@X?h{-^lV+$ZG~7SUtW7#*V+_m9qZhT0lkTfO*xQ_lg&QwS6xU^C`EDx)-s_B3u6 zPR9)q{_u(cvQ_4C8*a)i4bIipFv#tMo=WKjQZbkKAnKTF#xTudGOgA!Wy6QubW?*6 za#$OHzR@tJG%U5SPQN&$y2O?h1Te=E75sNg!si`0O)94Qi~(j>xKwKzjy#)p8YJU? zA+SKFb~PmYk(r@<;ofKWv+-|w81enebo_vx$tlB&F;phGi=QGsRhI1$>Iha(usq0>vFYT4(@Kpx*WCHI<+pIl1Tsx3d$i%8rnAw+S&{u1Yb#MTZo4>P#NTn zjAG~d=J{%$&sI4sH|);3l4UfeM*fI^P6_dWPv3rDapCQF$DExC1NNF}Wi*;Z(ElSP z+!FTkY`j?=DZ*qY;( zb1U}9b=Dabk?UP+w`k4-(WPOVLRU4~(%(L~A#E>!tk>g-wuF*G(&N+qrSEe8a8Fh6 z(+)$dtTC<DGT7@yyw&S55h!tBDG0>XHtY z+3?HShXe{IE=g%rXDQ^po;y4(O9}faJ@ylTS0^aY6{E7#M85$wsVUN;sF$+Tg>lNs zoK{T;&I6iA8-zKclAiK;AO!DIcuP4~2X7PojMl_$6y4M6YTGeJjdc9wYbkQjH_yQI zi{%Diu7~C#`CjelAJhsJwb|G_{$3wcIf3E_c__K#J>FKvuEEQ$IZR!BIQKxJOE3G~ z2l9IjVu(8?{?aGCPqyjnTJ+#nRn(PMza|NO!0rP-hq`6R$$4I6b`x2XMAwQxPX<9L zQ?dTmhIf z%pj4N%C8^1Q7Ov%Uv7YK;l$WY-;FWY)myDb)}RQ_sFei99u?be>l&>PE~)Dv59!Me z@^E#0+U&6(*CNx+p0?_?Y>3T`7mJK^`4S@|gUQ4jAiE#vb`TBn=NA2w{nC{?WN z9k91=0)n$BpjxI7)UGrhwXxgs&}<(03&v)mj9*8-BX5d+BYMD`hJhgMxohnHx37no zR$q;hZVnn=HfdXfd%jPd+U>O1bDz~&y|JnJ>c3#Z%}SU=mY?Y2TJGPGoy=&%ZYOJ1 zUV0?)*tog(R2;UbgW3aJq6j~^`N1$-ipsjJO<2pD%=GYfM6o4}w47(|_YFkMF4kaG zJ2@I9U{2tUQZ!e*B@1Scg7O%c8*=PEb^7&z9W({EN;-ld&l_v&cv`fRsu#$0?zcEZT*Ne#tTu)?Y%O8lR0Z-s}?1IId zdh*`eG?sea95B8fkL%fTX0?IM=8pSm7WDt;8#d!A{lXppj?-?EF{a~{Cxl`=6x{aB zvp8!$8TNgx;j=vO3Kr7C`VQM}i>2e;ZOG-Be*=3i9+XT-(1e6O$GKa4%fs{)J9Won zpG!!{%PY4A?x>i_&Utjy-$>^JxEMj)EBCI8MX@+C@BRT!4|r6bO|bD;!Wq7;=?X#^ zvs5-sT%#s12Ov%Lr*_u+J&#EoNMz}4P^KBZ?QmH++G54=>Kode+H5v%;P%P>@z+_ z;zlHO`0pyAj zyj`;am?i&@f}@m5mW59x&P{;q5^CaqZLNU6#`*Xg}*n#oW#tP|eDC_4gvt6nC1&K$kncO28zLD$b1 z(xUiIZl9gI@}fGUck3P8aLmW|go8T={~TPy~9qP-8_5f2yjCEMr2z|bQhp%mNlrLvt$L+hR`;Nu)Ohf*R@y06h zpY+VFLR?+1;l7ZQ*nstZg|BCQni8^dN*!HUNX4jVL%+F;@fNRV5^fC1))1RMv(ACZ z_($(>@4DgQ)KqQ(NmdCAscaNK^#n=x8kbPB;H+nC`7npI8Vz%}?wZt>1+cJqoXwFn zf1}a!E{Qugmh(z75^E;{JrhaB$E7+Mc_RBXx=M>6cBo@O4GCXcCxbrc4>m_X^zjaZ zje(I%g%3(ibS|W7Q6B8ql#TjJzav_|rGFXI+WzO2RgmY@?RUzKbkz&0NJ?vu85RZz z=&77wp9YUsXir)j;V38EZGH9u&=CAc$$F8*ZL0}09LKxA+vSDJok^}0Pd_JztSKGA zirWkc(BW--0;EYr^*bw~jhOgZzoyCCl1}i^(s*Iqey!N9kdY%_jzh}Y?aqj-IHcey z3k4COTfz1Q9brbvkgm4EVbwQYdryldz2^!?LOLu6UL7alb#^kqS0l7;yWm>S`1vHJ z%N<>B?F=%}t~1WV9rLDB0M0wddZ3#JD;8IaeVMzT*H1=Xjsl+v$+?hgg6N%)gMS)P(MzITTM=5S?JEsJCxx{j!}Ej;y#+}M zkH_b%b^ZzB#hZMO`9@u0_#)LS09?5EiID--zK9i3+XkP^_%sYn7NuUCBw1Y_+G&Zo z7AFTXs~f#+o|6V!k*PdH&^rBU)_8>hAPnSS=cFkdi0|B`emCB43uO!)q`$f`js?wf@7ji8FO2*@1<0o?mVk<{VRZnEi zkn=HMab`Fi0zE)1mfoO23oc*L_?>eQb_3uvWbEz%tT zpj(YB+8Ol<1U)g`=J$sUJ^s4dL-EJo-xzgfVNS$p~@et=>ml(yF3PDs zS)j>kyEmVV%`t}a+*Q#O;hOLQ1A?zPv+8nHKqUMwwN;IZMf2 zPr8c;sVHl}!jNf1xUTG}H-z#yOQ&aF%B zqdR^ybN6^y94fXJvX(w8C~3KQR4kk`XjqH_BWuHL^4#4-LE(i1E=iMTO-aks58l+p z5nYt|pu1Ru`$h9RRtH|C*|>-CfEiRf$_&08fwLopWaM2quP8BCU~GFZgbk9O&IVDP zWW_PFU~wF$&|T#l(_p_6a8tJIgRTjF8|u~#bsm}MRzErKC`XU=koB7Ts5WY?%FXzM zsRMiW06UIFANOBX(RqNn9Dt)_WV!pXP{SUfV~_f{-AHQ*vg}i1+h6^DC5N&PVnHsV z8{0F7F8ht~W6p&R=6hExpMKQi5?Aj5f%<+RZ=paFvRvNRhl)Vx0NFEe_N8R?stNQXK3;=N7jqf;M zO+Y<&25|OZrBrl8B;>(xZ=IVaD!d)kQKQ=C2IpQTC%ve2*QiesU?l?nub=w3Ml8g)gY#*aqMsu8~GXjOEi~?Qz}hc1-h#CRy%Rw|kVO8N)n;&*xRM zqxX$A&Iyu`_G5ZV#P-0f^tc=0dfU&0jeDvQ;q;Um@L7@7`VX&`ciNIWA5N)9d$sU8 zzuySH|FQoa^T~}_)zrU=gOg(DG|!J3z-ROS$wI9!%Q<%$HnS2a= zGeF=sK}$Uap@`-~uT%SUZgsMDQ+?XZCFO^eTSFb?>UxUbH2d+bD3r_wluFqw&;(?m z$(s^Rl5Qf+o8}gtMjirW*EgiEuojWoM8n?2Nzg>M7JpOkILv14QU5vDA81t&->;2$ za1i%aNh};T0NS&mS(-J>&N9gM<`!t&LakURZPH1s*l9aSsoRMb>qC^09TI@?eL%!KoG3CTVc8SRD7nd~T`Qrs!j9QZ1Bs}@hxu&8!wlb4$-b{3xvI_$ zw{z*|y_3AoE;YmCl=rjP#<&5+JZs38h+_qNPRW4mz)FPvp>QIwY~Y!!y)*HC;xYOe zKp5At>i~w_X-u7TKA?fMRoDjIck=c{Z3Ykzg{v1~%3Ez<}_Fx?XK=wAr zf7s$+NgXgLFG`Cn2?Gpo!bTnh??HSo%0rG-IhDb z!+(M$0&vCAHy!)h@DCMi)(;Uz*?`~=9_^K;9IXdFzh~QO*%#&-mXY<@^&Az}gR{FU zDg@$Y3}Q{-s-IvN46I6aY7ojhQ4%OOeL)M!D6N84<0OQi0F5h*{PofZ-blpc-_|EC8rLilGo_>IVLNDUtJtn?A`7~>{|g%-@dJoGQ(!*2I&YKb>q^=2Qcbq9zRiwi@JWZL}@ef>%hjw^v0s=2IxX`fZ?YeN*8?x|NAqOaf)PGJPX}G2 z6uLgSWk>CIZSogR^_ch&D3LZBJG7pMiRZ_A9(Z-EmF9sUr*Zk3;c#Kbi2@;Q8@s?y z;>8x+d#u7c%KJZ@Yz-OhHbkjFMPj>jmk3#8%we3bCV3t=TpLy99U1nOZ>cZaqPi>s(MX0Nx)%;M-jd-3i^%dU#B}LlF&JQA&1p3 zBj^qo+EU>?O@Oy81#g$R_=my!408NFV7pv<1n6m6j?jdXN7?Z>V(ecEN>BZjDQ~Fz z6&d%yt!EvCoxlqfx4vp}9)}Z;@0{IvN&5AYdnGU!Z=8kaD(YS{-G`E#<_ zgDI7{Ef0E^3Oj4<)xF?B`K0ZO~aom?ClpPx7`L#Js{hF+4V( zKno^J&QrKHYt=g+LmN9-PV$Gf4-sOL65a&JqpY|IxQvJyBP_4<(O98|N?Gj!N;R7n zZy=1@@_PzyI%rfJc;4rNTYYz2!(C*;JCJk7gz+ySmexSh#~$r8QiB#xYD%GowG*A0 zt}DeOED=>@H~e(0ck_PS9o;7O{CC!AO`q%+!B}}o0{T9$Z5uA_c#%YJ(Bj5LB*WtU_2}?Hqaa z-tX7NtzIraqmP~zBqI1AxG(;EAa8FqzRzE5wywZ8>aauES}VHC7Xtsnh5$bClWXm( z7pri^&I{#n>kAJHkKUY=xZedPd(LweshE*rR*Z|SbyP5eETNA%E`3M1M)?3Ht4QV1 zW3w)cbxjwm5@Rs|9|`E#m04GE;v#5dz|f=V7bYq3vzxg@zW0U;#V6#i+_T$c=8McG z06v`*>Ixvzd|s#Culz_|h6qfTv#faUneqo!*prjTUhR3A4G*B=Ppkn%zhSmggCrX_V7RM;wa_hsZXy(th=l`cEd5gI|tzjGIqK zx4lgA`#X#C?CkQqbAr8^O+c50oC0fn zU<;BChl3_`f+|D0PUpIo+(Jh;Nm%F4PJ^*Rs9 z4hk!sd|*a_sXZH0PWIJbsDE0-oA%~5H{3YYaj1Xh$TQ7>z)9J3?DoGWY51?t4dn$e z3TtZJeom~!*F5{;(;a~0>t|_b4aTrfIOlE$o)T&Q9r9mw@woWE-lbb)+N&O3Q(iQ3 zb7!#a>`}$WL?@@4_opLZ((;c$SHfXUjY3xUygRBEftp9Ayn;uQtOeX#RiqvjQ3xdp=K zIfbMUzc*9zG2$*4f?@A~Vu1Soq)T4s8Y8|aP;$8R;VR8Ju~twaJTk-C#CBbfv*zJv zE~CNU2Z-G(U!?7M#r9W9vGojpzTccGG_sq`BzSJhgNE$Lk*70;0*e*v^dsZT`atiq zHeA%^9*j#kuO3B{)@sU2HC|vkleBTUEd@PAz~k5=?WT=g{H-InPSzG<3lE0ZGM;|p zFab;2_<7F#Hj+%oOnyeXp{wsvGqKdk@|nA3a>MFreSxxmSE4gG&r&DA$~T;{JpG7D zAScFS=lwqUfATlji7A{eGixgYeZ|J!snXyS?-Y0}2jb6O5n3^Qz58E?`7&Kqw0XIj zSWu>`hSKObZ#b;5JR<|*@TH*?f6Ra{Wk@T4DZ&h}B-r-OQLn}o> zVA|$6l9=p68F2U|hGr||_uOq0H>cGMv5fq{Xh})K%i56Ev(p-?#Z=ykYDmb+0g@@z z)xPk!DMI@3U@bE8#KjBH=soS4Vz+7ymv)@=oq4ETtKwe&Cv16u-%VIcS)>=W@fzP zhrpzwDx|!2)!5bZ;n;W5Da^0T`ft{^59tBT4!QHKmBtbADYeHxD`63LyKd6+^{E|T zSq1zRiTZ6P&7r{L(2Or$MiGaMkeVb`iQmfZ%`>H6tZnCsPP0ub(g0XQ$o@-547`y` z5e6+2oxmi|(oT~y^PyiGsGW8U!^4aZF89dVEd zywk8VxQW?lXl*vkDt}K;`Q{Z`arg&WasgB@|~2oHL`z3(#Rm zNZo~msGN9Tk&Quo&~I+Bq4HE$^1HAb3#Ak1pBXi;TSkxPGPMZ*p1y_)mB00%G2hLz zfWOXK+hQ7OZr2!H{S4i#qpi_O@G0_~BqcO9cofcM^p0s6ya#YSc_kAXp_a!gDHN{) z13s($g?+A8&nrlT!tLS(dia1nRY=@VVMwcl8?*>iK1$Ba2BgIDatj>Jd!_qpW!~~C z_W3SU8Ee6b?4-YU>QN}$X;5>Rj{v$67Tys2n4Z_@WO-=MI?+KDHW7HSI`{#LI$-B_ zJ-G8&H09Cj&P}QASga#xZwN8r-1plJZ<;1`SwaacFl1?Ob^&rWk&Bxiv;OJ=%CBOyKZkpk7oz zwk70kcy)|j(C9W;s!i=_G5Gtk+LbfaH<5_-P9*4{@qeHJb}qai&MtE6-H#dmKJB=J zu{34>U&g(ot&d(y!z={G2(c9%ZTE{0?Nizw=XB;L51%p8<80dm9G7$u))VJk)(C1- ze7d+rjDJjr<6ZJm-}0}hJN#@_Ho&}VGUrNZJu5+VbgVIKcGtUYkL}m)^$e&5l^Jd( zGk@!v{aXuGdOm4R1Y2`9F%z#h=Ol|NnCwa!4qLIfO7eIE*$-D2L5)b8I9bY$T(|l#f%=nlXnkBZtk* zDddk`FPy#@vcXmOvj^HYw;4iiQ#x#e!@+h z1QIGCySL?1cj}fQRY14s-#`40ID8FLzh?eTO;442_>rvCHn5<6bR{-_dN8;IM$Lh^2YSF+Fa&x+S`7&0Jg)OR={PX>5NS~4ed3ad5S8wduxDQ6dPxFl;qsqq(d-~I%UFVD8D(tru=YH z#*I(;oiOFzWNc$4hpanysSXm(^1=fL#fKAoM{Qw2^lSi(xipbIFXg<+58~Z;M=F|dM$-ZD)-vhNaiZh1PN@w1EwribAr)M`%P*F_mdcxxMU?bDQQVH5~9CD9(@$%=3cf%Y^tnSbjD_x??IT|FA%o^(m$LBll8;uqIObCb~AQb-R=E zK(O-X#ZM{tG^~g}#KntGVJ^N?37?kn;k$!rMkMAGSNO=SwV|`nq+;foVJP5HiHl)< zDuOb9Kv@sM#0+)F-AUxAzuV(w*hsp%<}cD%89&-dt{AeA=On$i#>Gy9fs*)#g*-9% z-bju6A_&2PC+J43E zT()>5PTk?H#HjDCz51xQ4bJ_mmMsWE&5mBlAdV-Ry-HKp&?GtTmC1F%naJRq#Rq)! z`vaoFs?5NZ693&O*2@L;P^G_0dv7}DSLoh>bX;=pn2LII@k>V&?#bV5a4*S^bF-q_ zuAPimV^HY6LSeo)-p?q_3Hbc@;3=^0*4~Z^8UK%?aQ~tQ(favf! zL)WZvsh4&w#^rgztCc;$ysPx!m9jiZGYgIsIC!zfvT$9Y4?M{{u-5usH)2&i?cqLb1*);QwQ*(ZhnlhPJ{Hx~Mf& z>y3phIUwn(eLY~4w~b#MUwrKWVBU_{U!i(si^W4bNZ3{r6qDi`Fglq$o!=*zcZXfi zOCJQ~V93DD<%R@@lZxM8`PoB6d`BR3_TCU-|645R)s@GkOtY za&a1yRvpi*Y%Rk3gqE3 z|6S(hS+VZlP=&iy(_@$qS0FhAZQ_lB|0KpTXXZ=>tb^|6fPdMb*W$aFu0kMZT|qb- z*cZCsb`3hK&TB@&iawOR>?zqGAZ842FGfuY2NannVvsq8zZ<;dph$`>@7Vn#anB z&)&~akuZ@=D0A0s0y7==g+k`L%a$E!EtlLfhgWCUcE&A^E-=I$^>s~LFHMwfxyk9Q z^AAF&SEYL{6q*%qb6d9udQ9-;P>mua6ga-iM`oJ1hMBnDuXi3$IsKMuV~CGbnfCu7 zRBP9J{H5RNc_Y`wspp-{tXAL28 zDVFXiQHy^UMGrGb)D<`x7UB_HJWJ#+BDu&0jLS(_IDFcTb&rf5jcQO=1g*k)WyA1) ze#=!9wn$;1mpw00!8i$Ya41L&{-hl0a>a9cyz{K>kU$-LNg3@}oHS0eMy@ZP3OQLL z;D@KaNa{1&*Dy$OJd!X%Lg`<2PHI;wla92( zg(s5$t9<7Y2#k}4q;=riu7IXTkFVRX(9@uzH}pXCasE}!rjz$NhAf}^`FHa3ngC*# zW3vl6C{6XOefBx)ez_6cC$rln$JMm?BGIq3RBkafpX7xHhu;59q7RuM9gYd>rIRGh zK}9dKB|9~rk|dM(hKcBi2$IMfx+&;W0o@XWI~p!XIs~rhiB?yT$*JLOOEkyp{E7L0 z*S>^XEYdA4X%srEc79KQ|6B(|2{1FUs9R`-L~SEK%j8Z?`pr0e=TXGzxF*?wP@aL> zG=vp5MrDuXwrHsEBV3P8%A$ryyR%Yda|R$qrPZ9l2yHEw<$f&BKF8_Ec+0P>dg#$c z|17G5P<73L1=e__sOIrv6Kbzi;uE+0lJWMXZeJcpos8+q9lpyQ0u^OEEy^rgHHkzM z`C5bFZ%+sfRHOOZHG~NgN+|0s92_rZZ9SKx@s}dv)S++`Ap`J7S;encA>_0}sVA=) zgA!_p!*PHPPPMu|G?sYjQYHZ5K*=x1tQ0iPyFT)eGpdG)#odwdx%ooCGgn1|6xI`= zTijA}O6i7iqN*DYY75;qjACkD`)$eiKah-;%92!%hpHWBW|2n@&Q{K4_S3f+u$OW>!S6&=)<1R#-zyhQf6pryt-2_lDg;c|5vQj`2S8#YAhUPI!W zT5~3a2e&heRll|~TBcekCo2AhEN8jx36#5|MlGR6DPdL`i?3u^;%=#m|0)v0EUq<( z>p~ZFZQ%2mmgu;~eg0!QfxkWHy01mfq?o%(_SlA}eZ#kB$4mQn1pa<5MmQ>=RoFVP zX^lT_DAyNBC#7f8(>@kyv0j#3Q-0trI)PJlG}l~n`GH`o`6?MtW!e?j_S3?V0CY=G z93LB)y|?g;;qz6BixT|im;06)h~K8};A_Y^o32M{;wl9q~edCV0b1k?8*3|DF5^LD~rHzr;MiM|Gc= zj%h*XJTMex+$u5T3P!JFneLSvDDM5mrX`OSQzY#Xnlni~iWRFCz5pm*^fr?>BVI80 zW<_7th%|F=rSua$91_Usv!mTWS)7R{+ULc;+*iFd|Uo_aV%+YCB0@Ef_-ea(V79K6oEn&9~U zWCDmBLcvm@nMNecaqziCDEPxM)1B@m5_!>vkB`3oBG745AMsYy<8&G0{lxsOQo5<> zt&Tq@_8PAdg)v#Jx1OSsWt^FNiaH6Sl1uFrEo4N%?HOaxGW=g_+Hmk*r8z}BKbA5g1B=_gV!`jvax9EQ zYk$ieRBBvC$Q;|zw*4hrqf~mLq`cjq?(!b?!PvF@xJvdx#XE+`E1l zW4@9b*5TTa@s!_AFb%O|H`V7yWvQRm0h>F}*lZgz`H-akc?by+?^p*?a?o}=49uxF z(uq=J-eXzvY*-Ilxu;eh%-ik1%m%RA;6F&H=g(3zf3?7ht1>!!6#;*m&bs>tg#Kk< z1xIlHk-x@9U0W(>8vk*_DlAyDMny4umDr2*y2QC0-HSox+8}_E|Fk&o->l0bVgn=I zq#vQ@5|X9i81GLeWepQxrn}fNUl7s3^dEj2kd#P2y_aHjvf>dST;ugfAFON!rY}qF z>Hh;F6bWPsgzlIxm@HK21xrqmISSi{L|T&4BOGRVP?BPr`$9m35{6W4N5y3K+c?>!#-!1Jj9OLMDhqCrd^c+qQAvwHKpdfK26t zEOPz)61UpCf;k_U(!~4X?Oat6f!i0p=B7Z-PPR?r&7Sa}N4nUD8f4i~@m0OS14AZ4 zvb$t|myelx4*o+&T=_%8+bSO5XouX(Z?L3b_`3b09H@_Eq{6Z=JHWpf9^6;Bo5qE#T9J&der$o9>-#@Lbi4ZJ` z^Y3J88KmPd7q82CascNHB`FE(4dtVkGdJ012ETfW6L*g}oV-gl9&5R+WiL{&QGAO> z!=91HNu0sjbX5qTOG^*@2;CokbH3WnGw5m72sUSx4hYdba~#gi z!R8WkkPbStl0K_&)n}M`H4$#!s$qe)pQVipI{M9V>2=VAa> zrYuOhE%^c8Om;Z;o#c>h8SIRC4oYp5JKZ@<(CV?(&ezHj4^{ytQvC6EIAFdaF=U>1 zK)#Ad)mgCO`r$kL>d!f|JcYmx#%_Wdgo&6UR3b}D{Ak)(2enjRwT@;M@YZx}CHjzoltf#E{t=wm! z?nTwbTl$~ssN#ORF+Mc|_j8uChRY6JzY{iS5^^s4?3(z3jko*44;?KtypqycCi{$) zCcF>rG9e92T^62K*Ahjq-3L-VlS%!mb+@Y)1J`?t5q}zLl9+YEzA9!lD>sr7B-!W*uD} zb^klI3^Kp{i;MV5uu@Yqbk3Per0Iqc=ZdsXT|lU@&`mdE^)cG#a5i$V$~!QB)5(ei zAFDo%Qq$X2ClGo+jQPBWKFwxqIxGcMRJ7Mk{xqUIVg$H65*4?OYZ@q66Ylc0y4=(r zx~cZ$DXwQA>=AzY>yBp-#rYMfxG9&Ej()a<5#BvEx(}Re@bLlr9BZ9`F%zm2>5d75 zwqY;*HQsGt!%c?Bmyk#}H8UWB-yZ`DNMgxB?2VdF0-ls~T3`iOGKMDp|0 zg%@5o>%f@!h~Bo?C|>iv`lnX!YaDu*Oy3;uU7tw(7;FQz_&s-d63H?#SltzIltIuw z{~~=aZxr<^DhvtuJ19Z;VybgbJzDiRg7U{Bic#E$-Zl_%EOaO3iL5hE+;VTVXi=+i zyOt68d-6}h&g6+j!-a)4j`iv@YY&~}<{|+jeH&cdV*iNrXn66VN6OxqV$?VI?yvD% z-qhv|sXU97a0gZu|Nj(hRy#;4pK=i4tFrsMKo2*bldh52h~l8 z9CpCDyDRoD58l^&UjzM9Oid|@@Bl0Xt;!k14eU2$U&%st3!32T{FmPRDOu+lRU2XE zEpl;(aZu9mNdmEk*%o;RItn?_}UZPl@F_GGWeZ7%yf(rV*)h54g>AZm7UuK zN=u$E6YKX^3JPZzr71+TglzSq0s$?v<6a=kCkIU9-|So#0 zZmL$se_Lzz*8NLAVy9*~gr30xk4@(XuSf)VFQP{+LpJ9t9$t=6wP<-N-8UTTKfOYe z4HC@Z&9wc`4bqW(|B(u0)DiLBGQx>JaxU+i&EV_OahwFvYeh{_+am3a`ZlKOdaO(C z-}l1)hrkj>)_@?@mU=|NK9Y=bd?xh*yGn;tCrMzOI`?8Xqr) zt-R*+Vf99&S66GaeA%MH2gQq~?qgW;dq4Lw(O3_}JYBA?O!{Cz`i+te#I1KocwH9J z=kt$9Px_UrW*G3}h1<;q&8gC`cT9a(g$QVKC7+%~xq8?~E*6l@cNuDjp}SKR@C0l1 zvk~})qj6ssr)Xa4BoXJ#b$y3l-|Z9vB*}phv%t`$`31I76vd*}H&C zk3AM~LAx>A6XtoYb^d3?rTn|pz9toZUet!OPEN))HMqIuNW(n_?bpOn#o4{X@!wC( zoY28p;OWujVhuYLh(KA?2{p|YK0_%$?_mGf*SRtgOv3A|n;gqIg5t{8tlsF2k>w;8 z|1kflGV#p5Ks3j^N7q-JfezjSTlPsW~?clV3S9*ZZ9z7q$TP9kmzpRo=C4q3wLnbP8MjZ?C$ zRn^oQLj{F)3UzNlLZR;7y5$RJxGWMH`5|$P;v5}0UKHm-<~>l+iEzy-jKg z&GVGNGYp*`s9~7|CnPAuC_=047(h%E(F=zaliY7`2$t^tyoDe9hje_O zkiwBx3bu0J(FM<-^<^qlg0~b#3&EM#+_k#==S|c_xkxTnRXnlC3*QC6baTFHVV?;H zr?hG5@*v6s#MyM(%TW1{i>*7h2QsLA%T!*WEsNj8ulVj85NxfSxmjZ~fA3?p8pCDn zcpj%)OIZ6hOoD@}JT5i!mW)3fz=W#t3Vp{4YBVrvYh6fL(LHAo64QJ|g;P75ZsDY^ zlyfvmaYBBxt=HHYBIWQQX`)73Ltkj1211e=M4g=X%V+qyFaq_B<*)U3?UkV4*jZlh zv$(k0VPN980OzCMEv{1lUJDM*`+ zrZZhsp~wV}n$opl2UnlOr=I^dW45kL2e*H{u36G@Go$#HVVI#}FM;3Nf2u}PlfIsX zm<9yRo?r0a%<>MoQbs&IM33ClF=^2CZvli*)1kK28fWj7YM;WLdbOe){(DwL=NHTZ zP~515{xt#0w8B`E&abk8Bu3_>Z6AO(2X$(2?k zu4G6h>V3a_U~iBZF5qLzcNv%U#f$qM_T(Z#Z-tgnQEyNOPUB{r96<-X7)0$?MRoGf z%RAndeWa4R6NI`t59RN&kDyUQ7U8QhLzT1Vuj`bra5618VZ!1|(V|G-_RF!-SBR5t=r{oul&A39kcC|Rb?sOce!5|?<>LbepFw9?sd3| z#W?l~;@gS=1!&XRQ>mgT^j`V1(QB*$5zeR zB+(K>ggpadJ-EITu9;^4lik7;Ubuf5w{#K=*EGxdXmy}N{t@r~;=0P-a7a^nxj@Wi zN+!pDtn)5^@fQ?(vtO_TvZRy^{P;sJAKZCwx{}bpSR;-oUrOq+a1EtRQ#s#w)%wFdTs=osqHTXu$ukG!0HR#!{L$F3w%Z@fTpyiPG@m4=!-5ceDF zg$fN+_*lNEQ;8*euCA&`Z2`gn^3pqy8XrBPh-feIis4t(W;*G8u0(&=UCJcVZDOuk z)5q9-eZE?DB?Y#CPjlY0T(=}~u@qoC1JyK?j;H3F`FTcPe-=0gS1Fl{AC1tyF7El= z@&mAR;gfNMS^_wA>9($iFH4yr_(xi<8g#$wSlwVg%4AFZb6=6pC8_tSWsijcS~{-X zshn{3K!78EO#Au;EgwBh#RzYazK(5!&(ha8;DRaMBp)QpW=yu+usCBQg=y=tBd1vM ztURa`XyboCuAwk?-Emd*T|cXtH5^+Ta8gl|G}U#X?1{6dx0+g=+Q}@M+t5JXk`Cxz zF!uSG;|l})t548{4j8I6pNeGBzUuIo=I@JB*|h_+&98GvZns*`sPMZLJI;!yaCC$- zdm~-WnQOne7~;BEq+_Qeln;nPmGG6ifJQXS+)72ANUmI(Y}RBGo~o=nYRgV72X5Hl zPzvBAN6CK6&?}vXuH`2{ZEKDn$d485TKFrq`Zyec`vU_e;l>MDxCGC027m^%(2%0$dxpgoiFAe=z8G~y;F z(J<#RBRG3ii*uheJ3RO$hj4Mpl22;fbSQqAbDh&=Gli60+m{_3ct_xCECL_Vlz!nq zN1w|%7cN5u{^|me7GUXQzsK(a?nMq+#td-sw#iR50N$tF73-Xb3rIb8Ov5BrJa#hg zaO@taLEAhcoN)9GyF_j!c~dnM@SizJpmg2|FB#b1e-*2>i3h{K(!P> z&j-+E<;5+Qwq4_WDlJwG`8%_E932I$PJ-mk-LLoXgTNi;JI8vgY@45|o)ERMm%t5% z)Z5in>(4r)wbr3eLo@@`4kvX|^Lge-%D94Q>xVP0zTDILjyn3MAM|hGh!IJ!$?55N zIL87m*JGgKYB20~T@l>j>Rx(%(xsWf*e=R(SID7-*F3?vt7$gj{i08)-O!DsV^?L% z$qtSDQu7q~ce@zb%~1FI^Rtu-qEnZCUjJbMGx20zq2B6$BNAT7clRCWaLTtOU>#+a zl41=ZaeD}&T!XIk{R*f0k^q+jTSMA%h7)A6>c%`IGM%IxaH8RyD9HWNz1v)8>MYT#Yc6TDzW0rid6{VSWpB-@6j18qb+h> z{qqOa7YUt2I(_CSdUKz-EIIwT{~B#P9#sBja2E(I1bc~nwM}7y4Ua9kjQ*Ye?sm*e z9oz(mBGf1Ju)IJ|6S>wz^t33P<$AzpP!QK{*Yi4gzae8&o%!izOd2X)-<7N8@v*Rm z@o!VRxs1mnLi+oegG#|?vq=EFo`eLq-P^Z_H|HRWdE}z3Fwq&JDPIKmo zq^P*oq!8^n_tM=OdR7TA#kC<-tP7s{H`WpdGPGU4L~CWlDrx`Z5CT-R)#N}W*YWs-Cm?IF^pd_ae^yHONuhxB27cNEqq4_Z0M!F_Y zC@bB99F4Ib85DpkX+O`@-nRXKBu#i}vNRT{_~shFr^I~r(!dQHr&KDeub zdCeC)NB?KS7L&QO{E9244bS?!+Zj(tr9)Y$vncf)2b*@q5OR|ZlyFa7wX{+4kb64P zDR97$PpQcOMSplwogB7Fw00uVq@q>nfnlg4qSsSvHjX&gZ)HTzl>YchKZxefFwO2= z2)X=aXS$*v^j=A|%5hAeO~?$o2;B8BsJ9?v_nGF9?D4avoHjK@iK*wQsX#Sbo-B2@ zFPF-CtB(a}1MSO)6VNxT=nvDovU&4U5)W%|v6lV%7AwzroJWLc=%SS7^51UVx%t@a!;~*W5%hnQN8w8F542ncP~4DR zD7%xOvb02UgYJkQ&d#en%b{KhmDq5fZ^{7ihdGV6OSf1pX&o-o|Ch;@^QL*n4SLVM zAFYkei#pohD$0s$;?&ItR##t(b@{m*8|TIh-g%UtJ#IAH{U5NWBR9|}jD4mKcac7k z<&_nou4qHJqsXyL#1oTns+Yoml?WmgQq(x^V8n;ZcS7D7_zRV|cMIoH;vuAt9!Zv>z^WukcdA7{hbMXDYvE20c2f1MM?? z&%&R-N@z%nm*oTUicfWi)oc4+pQyytj3^LW%$h#aG1v#jrr(;`>c8bC`r9r(sll|$ zT83OYrq@-OOAc^fL~bk-&R!3^2RRi~@_6UFjA-U#ASzNm%Mt6bv<7#?$f%TEz3==ZjXV8d|Y^tV{QZIZMi@wYdguS{F>dcC9y(+}d8HSJHR-|DS1t z@|%;@IjY6?KBu8GL+_z{%->MC2?O4)TFK4U1kb*qB==Hot=LzDw_09c0w zt^C;i-;7dxi=b`&oom?n%*g&3E6e%}bJ-s3K@sb!d7vh3CcY=tQ0*MQYpfAfP(V{K z|3vH0c|J@V5X8Snu>V5PXB*ZaqZNCr6uWP`Y`BDhe2JL*zd0Xub>MI38YJ|p-{58B zMT3BkiEWu$ExtR{KC9;jw5eD_YZzX9_jRGrEYCN*OnCS0>N2w%J=d!B#tXr7p;;7? zGhoe(bD`mOk=>KY;zB2<=_rtY1_AkkG4EQ*R(xeVFp{5m#X2Ct;uGb7qnCs_=c_l; zfjn(Q9(u9;qy{A)_MiR*;3j#%bXQpnzV;bexfPs*3szC^P8vFvSuL_E$eb2QQ4~{u zP+WlpmOKjWs&qEMhuQ882LnURh0Nzs{JPCkBN$uRmyV9mkEnGq6`vRxB4Nt^VooaG zg&LFhWPgb~2{dN+oDA?`b65SmD>)%^&hvTJFYXQHci}NxPCh3wjF$fmH#H>`6qjgw zg^ygEq00s#pOFVq>hR%3nxlAUIN|5rMD$l~AWz*LHm^ai*maZ%!@vlIBrLb7OX1*+ zsU43b`beo-T}TvL^E3*U2@Mz|7UfquRmt(Cy*Ma^8tekB-0PG*P4#{DX)nu)B_+0D zO0Iwo-@SK~NKDMd%*gg;2^k%m<)w4zz;9Zzt5f%nf2>1VpT)ck4VvaQ1XP&qD-HGC zwvE>9)KsOGcH}E0fBS`;q8r8ESxIrn3!Bo_`EPAFw6B{?KT=;E&uc~OS1H8#WXE_f z+rV&tc%yYpec5vWg$l@KU7i-!+@x_2T{GjIz%aD-44*-H|HgP#Ucs4<;N2Pz%CTh8 z?IAU*R%Ozo<|d^o|Fc#R@gjGFFZm-0pC2nEYJH&Uk=wZA{kc)t(EkiioJ!roX;;cF z@!nf&$3zP_AGr;)n#JUhALjg&F^bxrE7VTw(3Z-2g5#WJv7<~;DXY81@Xb4wLq*I9 z**b{Zz^=~8O|Ph#JFuQ`g-pc0;pNNe8i_p*yDi;tPxQU}6b?lx{2CT;-t`pUtLtCNbg+AL ze0k^M8QmJo%)j08#O$D&vsbKXDrVI=MO0&MM1s2z6Nw|p5&d)6v zzT{|+js0?T3`i6!Rd<_nqp8^HD%MYMHmW>&p)^MP9hu^2jf765B-Q&Cvf=Dnk$;5r z8M#N`wV6WcrTsOlO#k2(SrPqMx<|OpTQ_E&uO$5#z!!T@A9ij(r5XEJ?bE;zBKHC= zLGx#^!*0L?c@!|9^HE%$)1R*LeYbCBdu4nv3%0j=cJ+iGcP3Pn9gwAm39Dy8`217 zdE0pRZQavK`qtl&)P5P*WD{s4jO-VDJ1%8W<>BYZc5OpU1!vWEhNJcFsdHE zw&wL(ey6m&h7&0J*3f~7N2F$_*!&;pcBIQ1W~){1t6+FY~(1{M%Mmajb-c)D}SS$>J>Qa#nR1?^<8258T4p;<0ZTF z;V4RbtOE&>g5U!Vgls?~2NKQYz6NI;Q-XqPp$+Gi&ta^$rV=E?x?}-1#VTF6{Et9V zIGBGFn$Itl0kx@d%IJ=ytP~IQilI*S_m_)1Xz*W}-?k4_^kQAs12n%OmO_27HtT$` z?BJeM3;+)_yr<@-d^`MJrBJD4R&)91^ctfqKYW;D^IY(mCR;_SHcCywd`6F&_Ln6h1Q;t$oZX+gDxH&e?ivmq4S86(pt+;+H$BWD+}p~qnfOsYqRD0PKIScauxg+qgAWbWDn&D#^OKE z^~r&0F3&RJMYq>3_eQHN`;})5f3sdhb)NM)FCHzfHzAXMH#x^7FJY#97u{@wqnckI zb~Lcdb#{<(o(Jq0(MpY_r(6<+*{QEHoqgpeFVV)*(X?FHbngZE@B!A1+aNhU{w&O3 zd!2yYM2+kzkXI0Ig0w!Ms7CA#bD4=b8kMO8Yv`>*SZ%#tC>)CKJNihI!bsxkPQy z2+KsE7b+_UH&ng%Z6et}cyXHronW|~x^@gY1YOsLCwQmqa}1~iW|vr)fLl(3*yRhl zBmNFM+#lwKSr+%~53nRCVz1_m#uUoK*H>s&og3#o4Bak&cX&7^`>^Gn81beGNKk1N z)|Xmpa(uCMD6mdc*G3s9EdX(C{pjvCkpDwpNEz4v+%NFcRO2J1>A!@!`}X;2DsJ%g zyiId$*J1dElaPUv5E#b1Pn1^LS51UUyL7F};2W$q#xv4$Kf_)uWJC|0>GjB_S4Vhd zc`T=^DC2@2!z(cD@@Kv-nmmB`wVZ6->C_vPd1bsREe-jfaW>jwg!JJj|83pbElSL@ zgkfDUj>T!uV{m4{hLo^?k8eb3Cv2CNpD3DbSIgIXwB=?_9RKEMg%e|tCSKIHlcTyA z6D0D2xT692j_d^-F9myFt<}(@UWaJ0$EFet)ukr3*=*3#WJv4WVkc9b+W7j9wda(~ z|AA7!qy(m^MysWLZ2t%K>CLV{S2bc@IKh;}!gqhA{D4$V8Z7Aa%%hhMOe!L-T%Ktd ztht4hkdsj$lE2tIyeVgdQj;vIoMu0fx;l zBWqIce?jlPy4O(U$7f@z`M0$}aihSaUUy4+`>Ey94VRW0$oo$jKMb>eIqZDaD$k<# z$$xL1pI1KM2)2VlV{YzmxUz29OcGu-3~Bf}$?*TyR8!h7{MR13v|oA!C+O^Uwa8$G zOe=AQ$)I;7cf1Nq-j=S_5QMP>Ij^pVAz)~op>bXO3X^} z|73yKMd7V|FD4vsysu?J~LKu1&7PI zHcMKlRXtj$9bVPAJxp4O*UovK)CPX+sFkU>k>m~zgI9 z87D;yCN`X|(cVjMzfN$^t5(n(&xjX0OSC)~lH&TSo4=tkCh;mK>pwPmbq%SBM>>}k z|I})#UC<+6YefD!s1e`;_)J04ze(hk;D!-}VI+QG;ONq^xTafFe7F&0ztpZSA9Rsh zgzq(r;Sh`T%;n%^*JjgwdsL|em+9zYH<rtJOYpp$qG_}q`y_`>5-|y$L)(Q z#^va3knya00^E^U^|Rt2SjvF$s`3Nem`)LQy!4S+wpc~j2bSF>tbWo?)u8eGLdMdf z<~Fmq#jjme5(F5jyC?c{OpO$G7snUzT1afSL3l+cE1Nj0Xj*U!K;B-n?bR2 zAIiKHTh%&naQ=C$zeeT4Nl$ZiYDzZS(8x-#d}cP<-(BxND;Q@4ol&Fv0iGduU zHiI^xds^yQToLc2UoPnRzOY$?q>I!$YYvLgm>%`&fdKo29ifVD-*D{#_+NrqN={pT zKpc9JrQ|HzV=t!n>!#1Xi1uMt>v(noAYQlil)ov9FuYrsfD~*UL7NLLaq~b}DRS6p zKRzcQ_m5hIRonVNVS4{0a93s*@(fxK(gkg$Q%A033U1K-f3o^323A-p@4UwWSX4h# zEQwr@4R6w$rXp551fD0kZD}5zL4QxrL9J9mJ9zb0g47oNInX0-ND9J0kCmEwO^yRf z&2uZq^xgyww`o&)Verf$nS!|P?T zWoT?Bp13w;DJmEdZ9<~=O?mXwsPHohSA6+o(rRD(h|c>ev779nKE{k+#zU^}Im0$O z(36hBiXn9q%e$)fw>nqaz^~#Oa5f!U(e)-ry`BvQCevI_>pD1iW}Y{0hb znUtcq?*bh1^aFKdvRVd72kQ6IqrYqzKO7q6?ldbBTab$(i+omxfmHA`Q#1V zVvy#j7;YoIj-C99lCMP!sVvfCCy0kGsmY<|0VuFYY~+yjoyv7FA+HuVQw2-2_>wvt zj9XU)^E2G+D!MZo>IO3`M$peYgXk&NaIHsOi}a~;IkS%EM|aQojMd!qG2#OrM>4D` z>*lQofL^xc@3rfHau^c%juPW-@Q-gZoX%-#OUXBpP`t^VqC z@hcC%O(M=Rlv!aNcWVf7!(~8pyu_nO#9DF5GlEb)NAx;RTXyiz`MpckdE47{?#|xV z5#T&0Ez1jgBLaR6>aH78RKg#L|*`;=ft$rP}%Evyl^~6F1%xIi9utBN((l=yp|D zLg$D-sxFB9xcZyb=3s(85zFc9L1t7PonFWavrv85Q{#L9BKDZ@Ne^`(Im@!vUQ@NG zQ(>iQ`~maao2RTToJqU(CwKJkaDIk7UUb6V@}<=SFrS+YsjPlOK1jTYOAz)1FmYpr zpObTqkd<09&*SNrDN6Ma+i+B8+^)RgX_cGJXA6n$s!TpA(IH&4UqBN3>LvS;FDacR0lKsjEsp&Xa?-{C&+s)Ldw(wc#pAIXP zwljsF%yO&^18)|9g6QGmwC}#~E%)*~EnrlnMpqjA27u!?hl=czI^0f~;kyNY)^ zZK2d;JJ{(@yGSPq$K=`ytlubcRnmbCyClsexBpK0dw&FnZFEbfMPPwaQ$AdVKi70Q zMlrnxb|vk_UWsjErY6D%+SRPdopf*GS1hJqG$AGp+2blvnj_MUm?0K9z%%uYMPeCB z`5L(pKFS|AXtaF0+Wr52n98u#0w9#wl}xL*OA<9Oz7f7duI9UHF`>l{8+n5 he5 zyHKy0j1ob{ji7J^ivLt;4zSs%4i(kKi~n5wWo31KaC4x|dog%OGk28Yzkz)o>9{jk z*z_!VI>fTdDyyI6>6X1}csf}ry9W+up9s{s>Zh#5*BB(-o6LN`r#4k1vxNp0iW7yK ziQh(IZ+ye$_J8-#qg!3g3vjgv3B2+dn;Nea>yj+DQ1enBssP@c+CO#gejBEETHn0K zx;`=kUbTK+3*4dB*Ftgk-U`(5EK%2t`ZD!oi8gHF_W7Kw2CeI3yV7LA4KahW=C<$= zSeKma27T1CiWKbQ#K0g=xFkK>qK&Ve9gKM>8R6qVdiq6H6>HYuXbIBr?+{!(< zUrNTt=9XI+<}#OrBoj80S?=k$gsi#Fb!NG2X08b#>5#jc%iKyxBSMi|x}NWEzklJg z?X%bW^?p7dkM}gCyPvf*F-P)CO&(avzckosf*^L=EllC&gngEjd_N)8$$lYyHRVvM zvY1uKsqT~A+>XQLNO{lw1My)kYoha#`uE28E99`-*KDk2B_G&^3xO(*>r*+rF|_Z# zw%vq}QuuCUPJSfLUXki5Kn#!aQ z%eCFDIHp4~ry5IqsAj0n%lcP<-bGiFj-{R=9x{3|y3brLxl2>T$KPGg+aKWiQ&;YE zYs?v`XH1F!{F*L})bJ%TgH@__#_m{D_>=C2&MW2RQm)u#@H552=cR_Ez_k0m)6dek zomQpfHG1Z%P<$Y~U9Z0#RN`A|bUYpn04YmB^zKxIYi;1pm?)%V|8eW=?W4Nb!q}vE zjFnskn<5M}Wt>$cMJVoV!$-Z)S*YxC%{U%Td5f{YSr5_`11G2Lzg&!P%{P{@>J$?) zg{`N{;jx8>r?^q%?{t(pIGJmrNps6sru~$zN{1ggaE?j3slV{FQeHcJQYfXzSFg

bxAA`)r%Xm#r@<*x>>R&6$YSWQ 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 z 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

ReDfBHHauRb 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ʊ>@2b~=J02E5ckZ_GuZ@5-4r@hkLUJEg6+=f_O&)mOqkvXToAPDh zv+h2PeR^0rWCWWej-iWx0$p=f!0ozMMct1K^dq9uMJmo$bX|8v3}aDX!y|(jd#aw~ zxYjLH4$47NRFW8d>oj>4L)UwbL%-|ITcz51L8{}YAMMyJ6hgVJ4Czuq!sNV9%6ej* zD63S-6g0-8QVi3n%-4D4jw6ytaviNS_YiK{pl(jh>O4FsFBLmn@(-|8TENfedXKuN zvL=;3s5WF(u+*!g>D&FjlMe^7)7)|hZ12HFRaqz_Oszep|C_>V;sZFFnyfS}z4P|b zGxe+@MI1^y8FTeNKX;oPWs{?1@NoEa!oKY{d-g4 zbN;MVm1JG+XFF`>-h{6R0x+sJX*~INxk#am(r_x$>F zz{3mS$R`zynU~J8>E*^HTS+%}hj6fKz7A(lzpB!HqCYq#MMUb#szR9WZ6e_F6*ktN z(-`R4PZ#%#IjJtIvZJ4UU$q>i>J@nPZg@pK+pu`dfk^9PlX`x?eHdUcj#6n5?BB9m zvU}vpy-s^-({*koqmXJmA}jdi=9j1&QgwA+N?%1qGHNxb;?Ra%MbN9WeHTVs1r{Ab zxR9ewU@&k9Lc5lK>1=hqxm)JY zeFsj+-f+8>YvH!@cVH!NUGvAq9{bZ3>}-VCkyY`9iJ+x>0Hle_r8U!Q8Sg4cgm z5Q%ODt;HPypKJg9<^|#ePbn#hnC1%0%SC>@p6Jm#>-r_$+b3EO z@l0gz{;9Aoa5ADkW5*dhDIQTBYcB*jIu#fzLAb4D_-vJ~+qS8g2+=<8ns&8!$vg9& z_wC;|8)5ZYq?=X1ACw#r1lKt-9Mhc0A5?9<2??}JVUgAL_AEV5f!k#- zh)k(CF6BR1?1;NAGB5VKIS77->~r!+*DnWpgTy zKVYNCw=L0+yt(GMm+h;XAElh1%)_u!C!YFf&~vP4b1P^m{^nr)ow7^Ze~L}h*H1BS zTl=(63Q8+%v1)^tTcfTyc0Nbaot_h8_2-uBOz(xMiONY`x(V^l?CRaju7&XzUswJv z#kWmr($!zuWoAFR^6ErG2+JzY^|)q!wB)!^3HPTW)_gsARH^vn{8++*#rJk(6zpzr zCw}r^p^A&V=sA77PZD|iur>s`DhL0#x8xqZyU);l<9$l6uT6VOJg?8$^?kHf!%~(5_Q0ZK^Y)@IBE^Xn0w3BT05!0F4 z`r($afmXlZLYGmQ+eZyvb;q!4wVt$(S&*ml2Si5dQg^hXw&nR@h~%_i!ciyU9hqy%#(jP9vk1?B1Pdk@M=DX*y5*9YX%gC}EpPiFzNV2uc+i9e^G; zc}j$5sfHHb73M8le{RNXk?6lN8ayP1kyjVTbR5EJ80T|LSoFT&JPf>$jEQ|2bf;SG z`U;2KKFnQ&2oA-B|1zKiaFK`k*lHiqFb$b{kSeh_@cm3}L}*~KrE^zkU3+6$Q@(dM zaPm!j^OX?XYtfKU%Cj?9PUgPh+(&-4_!Um=MT0rmv3Z9A(Ww6*SLXg2I|mX?QquM^ zJrU;>o0^t3$0C@auwus7T^#L{`WwXyaViB(62DJMoxwDxaT67cbA|~V@)(}@9;ISu zZV6Q!;Aj00(E0ZH-iHC0;L})xpKQs+&2JQPp6#to!RL^v3n#|}M^}htzr-kje1+hR zZF2Mh+gbMPQRTzRO7WXst zjakh3$Dc&WpKMc865MdJP`a6^(A&HMbM%x~_o`?0%-W0F#tJG6j^1hV60sl~N`|ei zL}k16e{^|V4&|8PAf10EQ?zRIc>n4z*paQH=FCAw-Jj;yx72+(F&<#v+Djc+G6!uO+4Qk z1zEilzwdbG0suxj zlQ6DLD|jCRmGY19oRAUGZYn>4zgFcSWwv?Ju)<;vnDP@{%^FxRuIM-R^1AfTm3RnG z*Pq=h4FG_#S7f-`^6`#HUgvvO}1u(L%3ET#l1A(ftfT&bDi8Y9UH3L)P>FZ5OWZP+j=h z%e_6)eL!T)1#z1$vsco{OU+^E8i`I%{&Pu-gtK;wggx@zyZ^#)icDA-t~kZBr!|&C za3@wjHnNOHOOF|AN?k7AN3W7y^xSF-701@~24pJjXg{a94U%9kGfMn*mr+BZ>giON zg4+|(BTntUJy|k|H&{vlgmlqG85i7nwW=$?NA^GB5ZpT!LrudMB>o5RDf)^@41>d@yc``1;oK1>c@yp;rr96Ii&}JDCIdb@?SPJXoSgI=h?a8z zfPiMJxh3dzh32lqWN6jiSut9A49Fgw%%)>SCHPY8Y(A4cqFRKvD=;-w-=~x2#)k+l zuB4{IbSqlmQtGP!kcI-;aib7cC;odfE6}$cIK>dmQ;@sgAI+c4lk1}^;e&y*xYuKM zayZ7jWE&v?p0vaI{bY9s5ON~pz*!Y`hjoSdNT|{gn|3}YkS;S&SD2QA=fW*~nwJ*C z0jApsDy(wa)IxZs5YEgIQVbsnRb>`>^2p~CgVCkGhk>umm5#a)L1`%rgUTNm-+V`* zj)tHem@l~UzngTZ1{XbB`{|itm)ba#A$weR*^eBfO!2VTjtzmv-qD1kE$WqUKH7R! z07VRU$G}Sd?6MxXXT80Tx(?;kt#zGOn7%2=zVF4q+7DG1yn{6_-}ZoQQjzwp7R@JW zh_Rw+4wEiC!$3}+ShTTQ7_jy~8uLy=*O5#s1#Q<`dx;!4ItuPBm^{<-Q&(8_Gm3we z>@HJdAAZ6O5S&vKwVFdS;w^;HCCt0h^PMIouq$wU?P-%G>nyRf;a&gCx%U%3HBAc- z`iwF%?G^CX5{$=5tl$l<22CtpUhs-fWB1H+(@=Wr^?Wry{X)OrS^Olg=*@cotLgD<*t-FjCUr~23=EFk^Bvrsaf+X zNVxT7{zJ_f-tM=@?dVkV9V%i_cGo}BujAir!?2W`s<+zJD{GTWn1E}#*N5QGUEYod~BP!q_9eO&)8O#dm zc}06gVZYfRziOpTp0XbSxCMU?Q^W1LNo}MiA4?T?vAa9P-+kjH+X^_jvm+nvdX6sU zlH`Evf6L+g^&C$U$D%%1)LwxCg$6hC9fR}fI(9Nm8z&|FH!37#_gxL5&iS~Q1ImYI znN$<3nCx1HQ2nYo?ETjjiJ6)Oqa^mDO$E*ikoHcJiY{y$AuiDcn@5aoJnGrRC>>)B zXL0J#Ji>9U=Y$|x9F+Y%OD(8q`q)N1^hep`U0U)Q+DJFL9w;j54W{;t8oT(etHsp@ zlOtm8G_Ca-Dz;^CmD>J-;sh3AaG)v+xe?#>MkuY2yR8N2AHFAJAo0)71hrE&Wk>45 zfR*1{_7+<*Wd_GlvZKm!{{35g>fP)AJco1*J;|SWs4t`zw(B(R-DVO7);ivlf|$+* z)}CbLBXz}~q9T@p2KJ`>klrIC?}UNd)JQcjkTO+Tj=@jjWs{{}n@PFBuB1N=D}#ostRbY1yDs)6;;DH3wG0 z8f#2J=CY&B8;FbA`+*r(vLVldf4B&bf1D)R?j9_Uv+vs6sSV(dR~(~EOd%K{&uhybF8j}%(1kU}Q> zIz(MH6)vX3DyY6$P*7|=z=7YbtesU;tLS06Ub+qXMny9Fo4s2wj=y6G&#l$93i^IAl zFEBc?kKoz0jadvTVn2H>i96e>ZWioRMWC?9T*GU1lbC;C)EFUESY4y45cQPjBz#y} z(S&HlfaHSf>$E*;cxoplWb3&4a!&8}_`pE>x=+yR(!WR^O^sOTUX_ZY88G96=DzJ6 zY>iS}3_%>2&fSgX6b<}PMpy@Pd61MdS_k2x?in$b;-4$kl$RfQE|G^Xsw zYL{kRUbh--2$S=Q%qX0xiGDHNJbEU}U?ohpl2QSZO?D9zPRsW=u_T4#0<_S=tH7l> zKM{vJw$L>SA1b<<`(|TZ>zp8rAqSIkZy+sik+>E&PNFGFcEX1#))k^HXb+!yp;V4( zdEHrMC)>R4;JWCk#uOZ~B`}p}!4OI!ZQ(Z+SiUA1M(`=F zS2Aj@h_0btV%ob=Y9RyLA)qJxK}+3%TY5Dko2{;WU2f3NjPTJOp3koO54i&Xm2V-vn5ZxeZFIZ%Yoq3*XF%Y#-`B>lpn{(4b2z%rVh+}GwVn{6 zdy-+&7mm$8S*c3Q<^V#JFt=YBpmcDB?yO$Q*w?sPG3UEj4K)wie8uaxA!q}lWUHtd zZrg)pVW_QS;JBk@m8zwWqnkV%#GVH~f>OEtrO067bSwW50Pl7gm_-FsMCv=*;9chf z5WsQ_5YLd_aZsDUy8Oaq%@j1YMqe5=x@pRQLo96tF}65z3`Xx^FyWC-t&6*fI6eFqCs@-xoT0 zY*c;IS^sn9602de@LI;d@3Fwxq#220>qKH0Ge zbd*Z!4=FXRlb*QS4KqIr=3d3difdb(RS;<-q3e3Xj-dtffNSeLoUg4z5?`288fmZU>2k_=#%6jT) zAzkNDFO)LxgV)@qPa8S1ssiq4xlqs^h6TDX>O_3t*DceMILIs?(cheYa<-xv6|U_a z=0xMz+92Fda}lw50&4wBB94AyJ$0Olq|j;&A*qU2T?6Dmg~{OxO?XhNLr;64@KGgz zK(>sXqe5;y6_Ve9el$NxLf@BZKq#{&Lt?QS&FT!%;6l1i49FJ9DYcD2VtiIRzSt|E z0UF@r6&D8WX4MZK9w7=-yofVc)>Et6Q9b@M)ha=Ob&v-VNshr}uA z&$VH*XP7@OJh{_s2|GKAU^Tdssm2CM#jj=BLdT0cEnN#e+D-tXnhWaR(%nv*C?w7L zMcyko?_wzz?k|q@R6YX&ENZotvD5Fd($G>mnl879`4;xDeT7B=-mn-f?IWkk3n@O@W&yzcqRq^pNgCEWfW8@*Ol#6OpgV zo(Ky3_ZdRP@Lm-8FVy$>Dm84oR#sl49zJUY&}T?S{dpfpkB7};W4=CnOYlD@a8JSW z(W?gKRf^=c3o0ZZ?DneCP91;TdNTZ^^_zTJtWDUZ$T8o!Yqpd06EGdUf(ZSy0}FS# zGMR1)LJo8{1nwy|DgFH&$;|Qt=vx(it|s207`Gml&!iQ3nO(U#H7b9-DD7CPSM;rl zpzU~47&TavTYwV2Cdtpg@wl68zLJZKCHu-nXUv%dgR4#e%Xe(x?x3YP!J?WmnQb?| z3iiQBt6v{){P|P7W?QPu`Bh4kqh?Kg(0fcht|;Rfw}o4&*lZ4(=+f34RKFiBMtS(6 zS@cp)bzP7VOEkm*T{ z#;4J|Uoe}QoXYGJJ}F~RAbH4ja$fSXDVDk_usYMa$@>%{nRlnr?f;o~kGiu9aLlUi zEtKI^v)c;6{Z38R)(uiywbePu^n5e!FKh9lz7+M|h}(|@@x+~@%*A8?7n0@S^qSab zn=btpp02<4ozrGlZSAhPlJY&d`KKe?fV2v2Emh@D$!(2ocCaPfJ@U-b2iu681)TGX zqvl%J@OOy&vT@fi-JV>n+SSZ)!YXmz^}%doTC*B1*ecsMBA{`{kdwQonfKp5blB?J z2u(PzCT)g%(WN4d+>7??lsK)LX)JoN%`KUZZYwifJjW*MSVeS1e2(`@C?6O|Bde?+OA#`8X$9yu>2KxQ$g<{LDfB;YaC&_ngB7c~l!bqFJ>cYGk^Tgt8 z2|Hn$#rp3vuI5Art5@H=fxMTgh#%ec+?xl{BCKK!bFgb?FXVk1_Sb&wrG~P7W(Pg?IVv);?oo9sH|axo?9;4Je(3h; z^VOcYCsFeZ69^#kF8KEhibp4*mJZkmO~4W z)`0lt;a!gUiMW-oli>Nu0Yk?CUxfr8q3c_afqyY^LkOD@j;>JW;o3dg;<)okh zpL*fcmKvBeX=mX;(W62vVvQ8okuMJ1xb*TkDd~$TB^5exvaLQ0a!FtW zQGXff2CK`ns1n9PW3d7Y%y_yBZ-xw ztO;3$#y=LsN6kBD<SB5hSxykk-rn8S^j|joVTPqs;Xh3!q3|k3$uxJ$cc^9P$ zqr!<|VslZaJ2<7%bqXxMpoc5dBhTfWl5W;V%8uJlwCd$XJ!i!YdbX~Rg&3Xve< z#kOpuULuO~aPmk~cL$%X4lhj*Y>sRBx{)Qj43AG~4U@X~<)XCw&ki{l-+#KK8Uvj^dP?fPV&%nemGy^%$ zr^SN}KCeM(++}8_-&^wsr6j-_M}CMWp*_r8oP8el35+0D&{DRE%{B>8PEGj12Usf* z&DOC{$y7cZ?w1{CL=52_m7^MQJ)iNq`4!?e3QDvre!gL54q~8PDnd~rXk}3xR4E-z zJMHWtkH7l9#N3G!H4J`bFx%b*?_PH;;NlWtU(eQ@CE@K!ZmX)ic{veK?VSvqo$}G@ zajmK{^GV9&aqR#<&xcl#=!K$-349;8w|}*-put4yundIq7wpp2Y*7h-+i9fx7aQo| zupcXC-EzlP@NUt%Pab!^l^{6PI0t1G>)0X|PC)CqdBFmSz#L5vQ_P>8ndih+ml*s^ zc19WBaXlv)woz2mI&YQY>l4I0_vF8$JJslK5UV$PIi8G#rPH%XKgX8Ag3C$B_sZlR$XF2 zla=M0$pCWeh@{}ho7O>}+g?QmQ*LsVL=5;!MNw(PKW48jPZ!cP1(G-N!s0|v$oiZK z>{?h(n0OJn+prJZ)!Q`tKznI;CFg`OH>23gmQ#}5$;uuc+uJ~r{j)7Y+Iolbc{A=35 zTGaE34yX@NUxCs#OcFQUX+aG6ACY1~18eSaphYS0L_+&*a%|^R?sRLO>>t z`KS*-&iZ^_B6NfNdE2$Uy;U2kfcKKBG6X6KAAPTj9$rO>jdJp{-Mf6mwE2t(j%y<4 zQe5?}3kkJq)|I!(7Z_acTqshw+0Z+5=gzhZ1@B|&_goEn z?)sduRJgg~e(w4vh#vQs|AT)VBO~16?-X-AJ?; zO7gHb*iblXeloNbGeFF=kx$%-h|;kxCLXB&Fy}3gKUb`-i;d8G=0|?n9R1(l3&1m8 z>t@H%P9~>Xj`Z|;rc0|lEfEdHckwB7$NF_us?U@kZYp1w`y6zQd4WzhCqJrrb>R1P zdaZPh`dkIow<>gKQIoz|PpcCk16qqwJn3RL`$zjtRRt}lthRrF|<#fqLGLyqpmqVzeZv*x`HE4h|54`Kp3B8Oy=TDi>IgDDW5IwsW=~L$a1IsD>YH%q4VV- zY#JQz3Z;^ z*YB&<&8J@?(i$s4YDG!Q8fAgBv|;$x5a*L0oM<*_nWuoxwac~D$p1A|afC48G2}52 z{OHH;Ik%x>P(V>8I;0EN?_+BgQ~i6Voc9n6YF!8L8$MwVmYqVLXLz^C3eW3 z-x;T9iL=CeN9HuH@6NPSKNvmKF}f^=_mT%|0zMPyv2T?l$3Rn-vZHk)OSFm{FAOo~ zgQ>WptA}GLTa4myCiwD&+ot&v*fVW;96P&5SPLr3JLKq-j0L`Uf{Wy@S$2lZXiaQ` z<+)2#&nY_okC_rGmg|wMG7F5t_~k}`m&5T$)Xj*7Gl2=M{r7DkN*;K73d*+<+qG*) zPyAT})Iy4-%iXYPIP5q?6pUYvadH}B1N^KCIHc|`Rn1?oSYpV=9q1>}J*Jc;G9>66 z^?*_SuK!-=`S6MO_6MwU$4lNkf4ARk0RW5S_n%s2;GKUC0WCP`mUA&pVCjASVSDSm>xNR<^%R z9dqm;tqa?g){h*|4m_nMYmNZw~w6vsrL3keaEdaBYiTvH#~ z2Zx@{e^6~w-e*&8kaPO=Sd z!_EPgVfzY;f&>Siu8txxn*K+aP0L?{N7-Y>Y(V7=TFrdaW5(0CuO;Q zuDfay+&}KnbY6oh?lxYgu^3-J`kA5D4W_?W*^S#xo6^2}d~0%llK)axEHWK){|ItAa7JoQQOdTiY!P?q|d z6^jnMwc7Q1c1Rge71`C~Ccf+aB>#JmK3$G_(GI07ga^m(JUoH+7gH!RhBly$GGO4^I6UNK63ezJc3AQ^9p;Kr_GR~1a{lGd`IY2F-=oIwS zTSswvX>Q76T~o%C{c~L3MR4azRiK_6U=1xQJ^Z(A!!uj#Z1mOIJCr{uGNOC?(#?s! z4|NMmX(w$0Nue5Tdn#e7*KKMq8>_Lj_YC-lF0W)fr>%c~PE#SNv_8GH;5(jH#n`X4 z_xmt(3KyNaLc;Ld$;>uGOE5drn`ab^l)v*?kCgVUPJ_1CN1@pZDP53nJcuIL}zCzk+zC-6U@E#db-`2K`xYQr*)vCESeF%o=RrW$6hr ztg(1Nv>vmkzfM{fSUUGYn{hbL+vInS_I{~)?FM=F)9$NtU2v-l7SSk4u0FvsyZO+h&k!Dt; z6t!~E)?JMi4^}Xoy*Xh&DTt(_t(KZzYG@$9%{J__C@^3|_&6obOb4B|SEt%wL9*K$ z<;dxp4(pXKW=d~i%!MK^NV7+>zIerGE$}U$dBsnzijCI1)I6#Vtj%s&?`fRYMEH)fTcl0i? zq-r4Cwcdf`Zp6&f(OD`)O6I5mzXea>xpzoL)AoBe(Y3FX1m*y#N?VMp5m4D%y99US z;GWbnagretqUh+RGKETxj$HHnBF8F5yKZ>VSq(jIH?R_Gv%#lNOuX>!(X5XjX#I~# zoC^Bl$b}KV)jhWu88Pr-;jc6y0VR#}nag}^;4;;M=*enb}yhJq$L z)unrES~cju5~Wq|k(}g@^_Ms*@ENr|cIu<>170a=poq=~$2ONDI09o!VD2~Qyd1k> zp7|BSEWbRqxzwG|4zD=(;?8=Cy~c{YvP_?}RKufR(;bb$Jw1YlFIYhjVP{IHMlWJJ zAOkKpzQDb!`~8LIBK2XP(0?hZie47kftki{wDaTlk0W{;-u8j^8%b|eZ9!py_S8hE zr_%)Ndur1muUD2Mf2S$BLS56vrBa(r5Ffrav(q6XwD`i1SMe@9hVm8Z#7oeYa-G+* z%Ln_>u>og|{z2`}I|_FDT0jOp6@dqjow~yswZ1LDyVL)2^nE>9zX(FkCd6aY1y_b- z8oYyZn+*^4v6~btHjk=v?f8tyl!T+1qtywPqFP7(4#I-p-ac90HNpbPIZpDA^x7~> zW@Qx2h!~|%{Ne zo25>unprsbq&4;wT{U;$8tV`?-Cibw=MiG6yG7mb1_dKHxDI-CpdS96Wh8`cp%q;r z>1V=O5#~xZn~pwdkl)pg!vv}uB31m+S9b-4O*aM8Y%gv zYvNQ^KDrn^ot3P{W}qt-!O5bpC1#|)j+34r12_f8_TuRmy43co%OtRdw6u!vIf>T7 z9JLYlf&S$^o)K}Z4Beu})%ErWFqkTonCtL(@y^+CrSci+HcE!QKMEg@J$}$*d6+H1 zg50N9Fw7j6r|?rtjVTf2tlF!33^o}{7Ez`TKmLbAN*2bjAL?lFB#qZZY7GV+kzm6K z4Q8(zz^`dp?NhP95pe9T;713H^LVHzMbXR zS6VPIqDsihot$B?6fIxg4|gU`yM`4XL&MB!9!`%g%5oIxf8WE@sz3ptr`h2JO+4sR zc@eOYrsBEKAr$KsmPr@%+pVh0uO@39fh<=3264Wn^y6* zQ_|H9$0}(Hk@P1|0c*f8VF?kFadL_i{PkHF1}urZN4zSAByHl#7vu zyr-F7AnT}b&3|b4+=%aF_Kg|{W<0Bc2PPG9)*$}2h{2ROl!yf5+B6)LfCUpCSfi`p z_ZH42dttgG>P&kw_QDX~oPZpO1K9fag*sA;q={&mYoI6$C>b(29|AS8CKgUo=GE#R zuF!eis)rNZ$1Q@#Vs%eh1TC*&Ji{>R8K39{_w*i616imzk+5$+Y3`c8;o5qqosSDYn0%`FWusi9jgt$kh@kPApOHs`pn_=VCr?( zQurtrT7G1e1p(DzWhCfL$LqP#HUP|!Bk<+g289$*BqF@H7!J-GT+$`v(+g0C|qbu>ueJ18p8oR#3i^eqdBlh6fe1 z|5{gSGmJ|MlR9AdRC(ShUuqF~!~2h+q7A*0AJHWr8>OIy&I}TIzON5}78{1#$)u9o z(S_E{k|HH3Z&w+tWW$B})g}@uV_`;(CWF;vtS6z8_9|b+oifwnlRO#Nxvuj>sSc|p zwzdJhJGxRSN1I!iNyxKq#yJ^D=(8+ti@48?PWhN|0LP%{ZH=rjmao971A(1FM#vlG4vkUz?bX%wrc`NFb%4CMJLEK0fjLrjnYpd5R-b%z z+#EOl4{aK&N>es@-LzCcd zAVV*TO@!iK>xG)VEA8Hkdd5-88J4(yw-z?kk;VotzLX{=cm!KC1U5G; zDt+{@J#ecPJGkRnDQG?r%eyQa=^{B*gg#6~5%qxaLn?GcFzo^Bw5l&ragL(c_B)s9 zw}$r)4`zqEAC}~LG+KE5cfzkXiDi4c;M^T)eN{s~(oRj3SH*kYccQtyawQ`A=>$en zebnWlR$8~*T(Oj};JZ|lmH8(6|9Xe%wIS~yRQf@@XzCYh80+S4a4EdWBhW}MQ(aBf zq*|IjXZ7@`aX%Zl;P*iWBsdQc{Xu9&i_=VOd-!>PPfKd3_BoHR@@Nd`eA_S+bGUI3 zrRWU}3_821r3m;GtRc6u@Hetnnm#^#@7kyR2luJM#y1~)12Pd-rCb!_x{1ux6(dfN z%R*{Rava~de3%jD-xP!Y1^JokQNI{KG?Ox=vpi!$Tx>F>NiE%X$;dxUl!CKk#<5QC zjyK4)^rtll;vFm7)cT-?i&b*niwDEIZv@DS46DgFAlGgIM$IVTsx& zABNzuO(fmmrtqWmOg&t@a zOGF#|({L;fpvJRyEM2MGnv|owUY8VB!^KRC07&~BUvJ00mFfg{y%tOF#0A&5K9)ol z*iXfibaP)LMZHbf+^3DrvUGq(gCw$DT(7&R3T_Ls2>Jdn%(o5leyz!l4_DT*kYgMF z{v}#4|M*W&AL-DDwzj=_CBe7mpQ$o8mCbMTxZs)_4m=C_S2FO7p2-}rSj(~!P;YQ? zI$b9t)n?64C10LAJ#b{3a`~!d3t)?kqx@0c9)s$NNcTIe_xRU>+=n`T#6!0h0@t{3 zGMeLdr!#X3vY_bD$6*D`=_VGXIm1nYRwXIqk`wNXRqAG-en(hsYM=e%YCO_845%Ixo6=|5-<+#4tGYJ4#Pk|#myx?p@HK3f^ytp)J)3jL`S0V8jtoRmCB?fQEk`%g9eNdp97|D!BS~gO~It zT7R$KJ;Ev@fe^eCMhpljw^j$d8-_Ni9UM;svQ0f!*S{g>uP9%T0GTbTJ!~HpcAqpF zJTV&YUNrJQK-w7nOL|uC-J@A1+jlsYOD1lEI@`!(ej~HpRVx^YD-3$=MR@aM^G1rK z8Z3T@NOc(fnvx~ZxNumUI-GPVCARhxTGfzH#ilF^^P~?gm zD=Tx3PkMFD8r;{{*f>kbM(d8Qt*{_RPBf^q(<&bOXGhXs{ymM>c~MpNkrW>o;6zEm zJoii`uUHayLrYoLg}JaTeiQC!HRDU#+KgX^-91jM+LxxH`6!Vt#;yvY?6$yTIiFt|{Db)G%@FR>^#hOX z?j^l6eGL=ll#orwQ)Q|}i+-v5?RT9pjS#xyen1WknU@!JnU8EaFI&%Z)`$$p1> zfszqEO{31PRT$o}5mI}gAahZ*jX^&ZspzRV&xJM&z|PRbkk9MgR7k1XZT#96tgFZ6 zO}w0OZGFwHTbLjGs~;WV4PqQM>aj_@*C=EK-zR#?_dMA;rt8!MJWR z(pzq>(3;763mF59AAVP4KERri`0XC?D>37h$AQ&);OeO}*mr2fC~;KU)fd!3JQ z2N@J<25t`{FHZ;^DbLR41!sL60_a~MZd90RIMuN|K$i?wAEEEq-e)(5K*lpnlFT5WzsfSvY)&Zcy@;D z(q&WmS99bx#dc4}ZD}?nLxq8+4nt-DnVasdt*3#>%;o!k1qW-2)zC;jHcX>-L~~_L zN)<^u*knqCAK)6=u<=VYGOX^Vm3oyTHo=NytC5#9BoC|Kp%*cxQX6BWv=!vtRv4>{ zDTO1g@{l~1DMkUZCnmkbj{jQU3rVVv{}79IIhzCX!(pA5S8{d#WnKiIPUl~O%)gU( zOm!UD9A%CxNUjMRO_uFf+jZ4JqJn)b>DrSNF=+{rQ#4hi?)VpYAx<|?Ge~7P*Z~2y zl|%i@gb)1x`NfJwzDDd--nr>=S;mwSkVz>9_Z&51(A)N;bPPK5Dv;w?1d*PTt~ij% zwKKrj(hnZ<9%2MRMBiSe33P?|KCP+CT1EZ6$WbYxse)_aIKOr=2jE+z<99x_ZEuD1 zUi_OdJ4?_!kOh|gp5yT}QkBRDiHjaBm8sQ*>W#t_fzy?_8*RlZt_F&3%=mUi+uO3p zGi@2mn2^%t9nZwP42w@52_}}awaGY6U2T_fn6!Ao60LVO6qC2u@JenVW6@cxcyY6F zmbGEO*Vrv(tS$}Veor+rtW?sMDqI;ip&pu1ufh}f+gvXK5qf4dV)N%VvISD?PQ`uV>?53FT$MKYLw$NnbSI zc~}{5X#I};r*6hb>C)t0g8zvRe}c$J8^kJCS-Jwm`%|AuOqudraITxa)(Ph#I4Er?79-Qv1B7dl^Tmz5V$ zZHlfpaZlcly>2>fZL66oQIkcr1CD#5sxqOI08 z?xG^#0kHs;YFJnq>uXJ>eSQ`tj+Bh3$Z#;~=(*5xRI}~sHg*9Z5=nvN5E~>`Rgk4O z>VW#Fkb;u3^BL~J8imWbvJivR%%y^1cq)XSkop@3Z0}SIBe>qcR`1M++PvNGEf5xr z{Ha`XcO%0Zn<2*^{Gm7FxUS~gp1$v0iDIMrz&r-U?Plgga9;XCotfpJ_QIqqu)Aw> zf^$mRex)sbZFWOF+uDZb_KYw?-%z4ruCGscd>>iF-TinPUs&ANig(-;VI!ogSTF-6 zT%L{T?2%Q3@ed!w0li53y-!Xhr7SVc=WQfA%)cjs#DUtsHxFs8{Sa{98%m-xQR)g5 z59tlxMyiJX!5K!q_%IKoS5Tq?A+k>KDf?J9&Q5rM>Wn$Pw8Lz$ZkiVXeXE15x*cougJ6@OR@P zYJ>zmyN<*a z^bIB8w;a^Nz2nP&Vb$>GB7gPaL41TL`;d`VjgU3C&ocNh93H|k9s*lYdEgCJaQC#z zja6@>xe}4RAlpM4)yDCEZgE6ZLA|tB)MBuH^LD3ms|{#XjC5rkla__A|Zwpj3qbdmoC;-1T-J7FBd&1 zb?y_<*n4lh)qcgo1}?bb2P0XCU@D%;v$^IVFUa^fu4G8(Ws}0;xapaG12Ze$IbOCq zV;31tonc+{_VK##>!$`n=NQN0GdQQKCAV~-eb_F#{CfA4`)F-yfX!OKNyEX4qP%Q3 zf(Tq@BXuu3!;w=`(_(r{tz@F1&MGRh2W*h9EhrEfO6}*e9J@&cYV};*2q`eL$O?73 zv^M!1t8<0kB5PBp?4Vtjk=D0`0e){+9oF`4*VWo|lz=SGazcTBR&{0Tpe>~9B{q@a z`PxX+1kt$uNsWrGs}@)yDoNBrwD(a|`^oQ_?jxxcIleaz(9DS6Q^}-9zb#59m2~na ziTT>>9cGH$jW*IU8KD3jT1D|&^DgC21!nVL*XIff?fnr)O-_{E0AJ%R;*_t~V|ae7 z7lW^ibvoeS5cQQB!1kIbc_S}p);}<6fIbC6%kw)p%B1!|yKJw&XhmQvQuuqkD|DLV zlv~TO)*Y4R*um>>#`QfMN$cBm+sd-3Dx|4yp~4x-)#EP@N$}))m1Ts~JnX zpE(D~eYWw)8af}?w*j1i>8n}=rZ^ZcPd&04vO-?O&W`fnYLmhZ(haG9h!KaEa^q39 z=#rZ6MITO@@s;2>o#FohUVB@{$I%nl%bqDYKEk_a4A4RAU);FhxB%t6uy=u}W%zkF zF$pytTMitOLg2d*Y_;;&6jW)QIkYMW{rnVD`V9ox1xS zq#G~E#`*_&r=yO>-TBiPg>%s%W4AggZ3UbQ!>%ID(=5)_d>C*tL^(?ecS|}M_qFo0C!e+vwS6d;og(h~``(ufyPbs@N#^>y65ZI9_wq@++f=(jOX>W7NvF z*9IHFe`|*qGUJ-d??Tu$_* zf&{Vn?tC%Q6XcI0V+HJ)8sBG(DTz{G{`myImFm9s>cA&iV@LS7Lw6@wL1?}r(ry$6 ziB%Z!_z9GeT=rQov-4X*@rl#!j9k68fOI+3OCLPy15zeOppg(-tPq-Rc|{OC>0*H| zwi7h7Qh_;mK8>^x1Dd**$+cGm*K(kyC!J}x$b=fW` z^^PAfldCj2{z-0*QX;(n%RYaKRBYwc5_`1jm9~sJL~s+jx2;OmqY;Rqbg%!=ulczkwbWk^L2kYtea6YJzcRL=`DpqU^Dp(Z)n@(^DL< zBt@~!HE6**AlBNSVv4f6(&lhFvrTdT0OR6S{;#e+-sOeh@2}JbR58DoOi7$reZTz9 zk0Ctyn?+IaqH-BE&grh%)(-m+H+znZ3a$VhBf{p zoBXGzSbe5?4LJx|nAVPKX-=OL zb`gt;A1W982k*pQ8)iATHqUpVjr|`*N=WWExIBL?Es|H~gnYa3-tASH-BZDf;Gm|^ zus$7_4II33BAU4n+E_WQ8wysnALWS8{Hd;m(J4C9K6WA6^NoSMIDz!xh&D6xBYk-0 zqdRrn?*y-p8=Kqk2}bp`3ms~W(AwSN#tsc9yF_8Zv*F zMo}Aa91s_!yR6~CnzS!Vj@{n{DT$hH1C751id-XuyV-SXAzj(c*e}84G{*({U^$+0 z;mg0-sAp443LboYYraI}bKBR_iB-lj(?0QkC?7i=@$|99cj7d+yVxSfjvx>=IhZS) z|7qv0X7VECQvNQ=*Ec1?yX%I6%c{#*>9;LRMWV~X(U>!xTS03wv~6e!bTV*xH^|^_ zimhouaGL&{nlbz*eXQ%bKc@KnZ};Y|D~m;q_1ZTzUUpW{9e0o2h>hXG-jGiA@DP_O zzNw6|zM$T2`d_Ytsc~Zl4BzHy#g-EAlXDt3Bh`UL4ZEKYARo7w7$3XbyP;Y!@6t1R zW%Udy)^d?>JPv2o6jHBsySY9U$G3di8q}d-Wi2jjqgWf)H`AeNiPw;cP2$KwQG0zCH49k7w=LaIM%5I!9IhMTy+Y_~H| z0}%Zx_vN%<>@_kx)}W<8zls^9;dQM}WTe|~dY-e8^ID&EZmi9}2HcV%NHmPq$dOf1 z)w~3{+BBg}^p8fRskNkG)@L^h&W#Kl76=}WWtk|q4SjdxMmN4V(c-TktlnoJL8^$B zdYE05x`i14FY=NQ4=g5Z4WGKdLxBfBU*9?d&LvJ$jN#lkCfObHFg&fcQZNWvx1YIP z7dD-jJp?B3%=sHV@IxIS6w=TY7mo#uqhba+}H!o~O%%xTG9&IEgesUorwd^9^%4A_qPlrZU_C z$FfWH?q>Al&Cp*-1cK6pbRu6lMs4_FTTze?)^Xy>INjSTnW^Akqaq+`EeU!yyX%dX z8r;0_;?zo-1RagLpCleB+FE-ES-upf{L?eH#zan>^Q$8hxXe|B`O4`u@^*FxHb=}} zq~J}HAJrXqRJ|DFa1kKtPE?wJ^&}HbiC0g&Tt^8t2MNC6l<&M)&m&@7|5QtN&hMJ^ zyBSK}wkVKXv<&cjq@D^s`eV zvW&eS>A&1ocN$8h#-&X9;TAXheq-ZhQrAST)vtA;s~sJiqA;k>F9V@fNVbA@e4W;T zYO!v3Bf;&}pGn}iV4&qnRDh0)=AM}%I z;{osj@FpVh046|dsKW!RN87La+t;T(4EmZbqS)Q-+VpK@_TG}9(h(p*XPxCP33%S^ zPxbvx)V!;+%f0Z{zASgN8{7(YQMRroZW%;MUP`T*%lIFFV|2|YRjsZqlQ_*BgcZR) zA%0zLM2F_YZEyN$_HV$?wAZ3~aZ;lz6-CHDS)=1tGn_t?oe3z7u5PEYN%ATpY`KqW zrEk!syMXbgcZxw48$G(ZWURM6Uu*&bKPQRzg?+@BO9H@5%$*SV{Hww;c!QhzxEo8t z1`^UbIl&Uy4`uq82HBW3>$90|?jMV;yFiWwC#SL=sb*Mgqpojm4y9lmge>4{OAQgA z&jH)$Weva&=+*{3Jf~?O`fppVJ?g@S&?-np1HsEk__aE=OM)z-V?B}vequozS@GG< zf8}Xy=HLs76aLRhit=on`e;y5h)Ewfo!`icLD^Yw7y}9c0JMVu5(S%Zdx}eG`ctw z;o{+yE)fMH+4<7FW-1Qg-K32&aF*`4i^F7s2g^S*Y9XEAE6~s{Q7w7(d@D<7^`hfS zlk`JDbbiL6`$azkTd%6?yjIzf8?kguRH~1A%_$YE-`9V0&$sMEOIp%aAtw-}h>W>d zcTBuKk`Z82A=4k|$`5C~Y}e*d++^iNcNCk4g~Xj?J71Fy7!;Ctd8M&>l;^E->CD|` zMzf_rVfPX%`8nX3*!Iav#Aw(HC2tm924NaI5UBS$fP`321pL@ICU~uFW-s`Ma9>qB z20~o(l4iMfqt$HfEb;#N#Ro*hJ#OsCAg`Yo(JrFd92+9WD76KO4TlQ z;yu(FnuzZVhoy$qer*zlXXs$>i?-*tBsrL4gL8zB+tT*L#0H3h z@;>3+!h0;qis2M*T;070ZNP#fd$c(CSlo4y8Xk`x8n!Lq?d7 zCUmobQ@)YyTs8#>*ztx-bI`?|^wzuf8+89Qp=gej>SOB%owPoji{J7PQ{&l5aJ0O& zOwxkGc~!+pbz&5r2VikG>08|sTe+quL$`J&zy6=3qdCSvLqE3)fJia}HcV-k-b zk{q5T;+_UY(6QQW$}XVGTT~}@%graJ)#^Hy*rH7UmEk5{nt z4vhsLLLZ38-y!8|g9oU*L(ggxVtqD@ApfjXJr6EpLqVMP^4NH{&41`lFzFe3?-3rP zQUGpxk8FmuLl}IU-ugQlUDhw0Uvr?tkf9qg@b~7!RlPs({#R07mZcY)Z-~a!q_8-7 zjmXnb?3)WYc}MC>xfb&ha2`U|@L|RGJk=^;M34vz3(U#z6}fyha2XgO7k97tV8IEu z@A&UigbBThUf$_sAyn2J*a5k;l&gdHO75SzA63=_AnY^GrR(!4Zq~ol=focH!?hME zf;ZfxYW~~Jp?H&xPJJMIdrDI?6LN)zTzV@A*TjyqJN_VQ3iXOq#+4vWC##=i-j)-q zGdpXGPE>pk=%22C^Zra0#fx%FMIQ6Gh+Fc5~mY#?YjKU>|qi;#`S)~>UqSb{*U$(1sLO0bx^keYzu8V`2`8c36| zT_95A>2UWVC40VS#cW{fuI@0u=sChWII?w-E0QRupH7$irp2Hio5Ub&`DElF)G6QA z@wE81)24mQBEMS}0(oE9QsBX$LWwJoNsIe8_I1D0CL21_XRve5ZxsC52LRhT8bmgX z3sV%hjJ|l62Sg{04nN>nddjf84k_(5Vb1-NhPvMH%1#Eg{w}rU-@t&!mPzBm-%y9W z&RrwbT>dYzL?8MF;^b9Xf?gR74ZjWB(MU1bDgr^i{K%(0}q?D{?~3_R>HjvApj0oo6OK!Rth zbdKJWv`viaG(GrT;676!)8S`l9gGt|ul}RfAYhbjv0v{K=HotY^4;(5kq=&f_DO0K zdAM!OG~G0iD_Mz}Q;-8yRScJ)yFU5SntTvvZzW*MaCdYMGalf06H5<6o7o~pHgb{T zem1x;1-NS3eaM58Ns3Jp-lM14`x{tPNsO`^fc@9OV#BJ}p2~d#iEbwzPH=3kJ|syo z!hsM>xBMS~36^+nYI&R&{|^6a`G>~Dp^uu6mOq(lDc1cD@a|8b7{9gl*jXs6@r8q& z-Hhl6d!T)aFts#D7KfjILP<17;M$&j!D&W#mAI#K9zBRo!u`yE9vIchp2U32ja-{D z%lNWGWqfUMW3C0fjsFFr7cWa_eCUg0&^aeA(kS!q&~@00C{*l1sM zK#6!wP|-13n6K>8TDu_Ec!d2Z%&)j8n>70O)9Zcyw>B95+{HJ*pL9~KL`;+3363NC z*DLYqs#`Kz1%%hsxXxP3_b2bdnn(4P+&S~(H!kiwzp$~#u&q1vdYEA%6+{yGcss+nt}F{isO>bZ@4^z~>Sy!;Cp>egDWUVj(mCLv-Zdit`iyRACh zXlt%Y7S`Q1e>UY*yrIVur0aM(USlj%oU2Egd=cElH`;@k7s~;t+F2VjABv(WV$||> z<@2^a?R9m~CDj{4N|x)sN6GCSZEfN+(L##$$eq>VR4A*Pl(lpi6cYFvYTZu^tgzX& zT*-b3x8OQkT1=ECAiX;>xuyVVRXKOJrkIEYv(dvB2%W32I?sbG!0Z2b2mm9Afohv{ z(m9c7NyrILGB&s-cCN_oB}>u!n%^2IiRTvar_Y-$L4et1YV3h}of3F~yK#JPQTo)! zsYGRq%6+iB>jck#jC?a8{up@E+c=0{vz&-L`+DZiyQ3NpfAupd34q~X7oOQKvWt;+ z|E@kDQWdmlk%2^ZtQ&Q0`2zckZD(-r15Cb|x3mdwJ*!oZ9ye(|@nSVg5zmYLXCW>2 zHZXq=dKa{lXIGHo6gueXbm=-Ld+9OzvD42oIk<^{f8xQHB%tlD+NFERR)5AM+>+&? z494V0Z{-ju1D$6ckrn{5o$Z=WG8qtqw$797D?L3eZa~ z*SmAyzGnUL`kKSkt!HhHzs~22o!??_-?Fh$4Tu>^`{@1}{Wxag4YW&jyxO4K87vKA z2yTQ}jGHW$JR^AKs&iwIaeDS*=chSpV~dcS(}I_zV<)thqh>5%j7*rEbzKm{^Q0;t_qQzXw&Y?I(=i4S!6PE`u{G2;j&57Ap1#EE4qzLYPFu;G1DnhU!YIWR71b{rGNlG?#XnmVWavrV8kErej zRNP`p&_h#dS%&+fr5(>AV;FTEhk*1anz~r1R@%2H-Dp>FDKi2{@E?E<`xe=(JYb+s zTN&PrWJ7(IS6Ol819G`;u`zxz<31KqP9|quaPCq;#U{8*n<1p)(D1wLK-s!a7GtJ!iaB;Z~yew;YT zp>jfdwFEqO&=-S{OM7{TcznkFM8OeYQf5!fpMHs)j^H$txIiMD3geC<#*23yfMRO2pz{SJIZ!xTf!AQsPq^ z%M=0jD|JP`@{H8gc+pEGqi^mvK-*3mu4~@yjk`p@eaUW^O=P9$Du?ZVa*uca%jf!g zoM(t06{+#c>vR}}-T~_DQ>{2;#PKe!(hy>M4)IbqmP9Vs2FZYPmWNzfq33%+JAN%~ zl6RQ9ZWpe*M0+PWKT&!CQ?I`@R)@hAs?DZ{rtV`e%nKHnSGVf+L|%cLH)} zx!;lc5zM$t88Kkr<1II<8=qYjMQr%@vr%$@Z>(;ONgo*NBLdGg^7ZS`x;bt0^yyvUGjG62!sEUT2|XFLhJ>*iUY4R&oAj_EN&(u zX6 zj|H4S^j2xTUu=FJ(v%XQ@I4^OBxQ&6h||X<_~%x`*wr72=l;R9=C10SJ)6nWwrM%r zo04_iq89CbyVVgc*3u;vd+z||&BUAMc`qY%$E-01T;O|`-uw;`T|(Vp76j09QAb^HBcd)-t85U1Snh){Nx{B z3)Ek>u2L1Fu(<@guT@{b{k9iqR_&V4(codWL6nWvtUM$ez&F$TY&Efg#117efrdwqg3C+U75|*YHXp# z!@VKURC$IamTgpJ$l3)fdCIu5%oarY5O^vxa#+$nM z`Wu)7j3dX9aPh;hjkJb6Zlm0R>uOwsnZEiDQlaEFR$|wJ)hE=kV6XflTmHrO2NxWB zfjcwhH`-L%V_{EN^&jk)KV$Dbnw6pyigk)ARqoyIO@q{yDI%*fSpA{HCjDK3=Q{(7 zPRL}MuyU*tE4~{vedBA6QIy=YnJp%nJgrw)+EhBPJj)0B`Q=z37W|BVzK-<5eZdY( z?(nl}StiQ?ubm=oh5^SoZnkI!nO6Q{cOcy_q&`%}hMnX!MezPlgMa4h%>sK7Lpy=M zv$+RQ=w!Z!zoVUiSagX7>>3wEnoZo89|W>XKbnaO7eQKLqfUueo2@>nMJNR)PATH~ zmC~x7D_XaYWD(rNw6J1d*}hLcm@)5si;-Lfnpsz3t=hgevN2WV&p!5TA$79pR#d99 z#tXb4#z!sumX7w`%{7q`Rez3Z^Z@sFuI+*DLN#fK$`H{ny=#M|4>MTa@h(4*C{~wE zLg3$XK>;NM@qP!o9Co&8Q`f`HnaK`A zF*lxr722`KFU32gg2@AY7%Ut-;*0aFLgtyg_Y=;Z-2=_xE%oxK`f zb?8CjlzW|pJ^JBt0(KZ-msR{`Lh4>c9Rv9IvX3WGEm+eV1iKBF-!Z6Em!BDA5E5blLk^C zuijx(mLq}vZ&qrUS|o$~o6Fzo-2OEJ&e)@sH5#cuPu!Ce4Q>zFaJBoXEbQ2IsXU1< zzq+`muZqBeWXCTJ7rTTs)>zHK&>IU=o?)vXjC1Q1j=Uw-o!K%_-`%011nEv@pgTYL z9+?d-EJ}qm-?%6?!GT3)l47>cY9K9rI3uc>7Vp4YpWHKN+S-?LGM1yu9zgOaqy(SZ z7NkdKkIMvTvKGL-xOkpV#a8Op2x~kXI_ax+Tl%V)8h# zkJ6TueUjp(NXcgvc?%z3YFhDjelW#bGwqJZ+Keg@lmmCgS+!+9g@;%-EVHl9{6|0D z9ahpdtop!KF+%>R=8NBi6`Yj>S?^8)y=6_6G$*kk%)VMCt z%#NEj_3Ztgq&LlS`feMyE4`Px0ZgMGYf66^Suqm@2SbfzBcCR#P47tcv{V^N?77$K zWadQy<~H}+!)|n zu87@o+BuxR_#nznKTl?8XiC^gF9~H3R%X!fZ07yvR9_7B_Eanlfajg7wH5vm*uq77 zH!{tnfdweig*=sL@HMgYMw|Eyw^j}azZz>6*Pz_8L;M`N_I_>4lM^Ivz_aQk5>EHM zq@F7er*}^l2=9R+YjP|-BOM}g|!*1;2BTBA}NqtjYh&?((RoHKg2aH%Ig!4pPcl%8gQR~$c1GvWVVKhwwWl0 zs=5U~J^zp0Ig}yyd{R~Vd?~U?x#}-8c+LaOpI_W`y)R_YNn6teT{zSufbKqKrzD37 zNKcbt*=s2JIX&ysHf`}|S3$0WJ7(QJoy@)$CyH*l=Wm?k+U-+mcq6cTIx2AmbNfxV z-le8k2KU%W7M})VeDIJiFW#Dep#@a+6Tbd34ZiO71l&s{ zc@W`H=i48hy?W_^-DVZ$$GPlP+TEhqC7SDm8DA+kRCHFVNNz;cX&csUTP-B^Ly_RR zt{o+2vucNO4s>jA@;dYI#@DvqpQFY3*d57%a`I3XPdSdCTzI-Zrmdc1gs)Dwb5sFt zab~j0;)q=|TvswDh!`_b{6)G8@)@Z7c7Dk}K??Mc+s28=$)71lbS(TCo~gENJNe_gp%5-ut!+sDkmnvRLmf%Sdf}DiH=@P8QemayACVwRT-C$ukFDZ6LENs> zbFVA%q8i*uF4|Ujj04_u&=5?7YN$w^1r`5ebbC|je(I(!Zj=^zW*yNhhjS`tj;k2E z-=F%@2MS!4R{36Q`{YiM3VGW{XSjF4T_srv|EJSOtgNkm)$4;pok)wca$R}(X6Hg& z%`XN}>C0F8q&w#`&$EP`2-<@{C02gV_E-{K|Vv23EZa5_`Ov zzVYW9oB4HLg-vBEPDV;c83j~*y*%(`UhVbVV`K1Q!?BW2<)+%7Z(ri`<~CKEqE2g^ zU>rcdu7sTaoIe#%UvT1qRW)2lm*t&yu1aOzm8YWwp+wRDfO@sl5gnHUV zF)@|~=8MF5;q-jLI#@qPr?sO7i*`hZx@hXEkSzK#S&qtFBaNCi*%=pa)o+_uvmk+g zDe|S;7Wy>Pj%dDA3neGrVW?&IE=e=o%(x=o7}9>V^VDogSd~-((RQeTejRUwuX(A- zFGv@w;0<%%#uD96-&+Rq@TD1}ZI>PuZrzxZK6>f67Blk{@7%%ixo!>~eD~7{Ms=Hl zsQ`c9pcLLs%?KKPF!z*#T4HM7y%+g+Rguk~&&|+I8Ote+eA=B?F+8lv*YIyQPyw=v>w{&`V$lRpX(H5M4CT$S1Sl{sgPdR$KPo;}vSr^cJ=?Tp zXCyBJ)o+~U_{8i}6@RSSEib{~zY*74qB)f8uUvkv;5(KQ@R<^xy&kfOzj;ad=1RCyh&0syp! zdi%i2Yso?blR#Alv(&J$Gdgeq*&9@&JXJY3Tg64BO~wN%+^_=sHR|W>B|8y zasYFWojzK;ag4q&8~JIb3Kir0{wkx|_$4i@KV{Ev9lv`2IJy7hJC2oN)9_S!*0SmkI7p zZEAk!wRK}U!zULrYAqHs^TedYaJ1ah)ds%q;W9IC^R-zY;DQFV3 z&kFLnrl}}tklqIs_BoBxCyl$St~J*r$JSTQWc;+K&bro9*%j_}jn5na?e_NB+w^*! z@>xt*e=o3BTPM|(K~z5xL0p<}`uZn{0vph0`Fl-YoDqSU>U%{E5a!!shZ!k@r)lb^ zeVjxuzmgKxWk|I!BNsLZiQzi%KH8@3SKz7i9G`7wH^uZ@(FmF z&aK9L0PhivhCO~%%tPMkAxB17kGabeb$o}8IbYUrsx@4C+SvKlF7x~<0i5@+oDq^B9QEWsM7kLae{lTnVC5; z&Ceagz8hOtZ360+KLkfn@PR2)Y?ZVMoN95wSR~kY+VECjcXE~$eBA~PVQYSL^v@HV zeLN3m`AXB0lM%|7@DjWv?5@O-|XJ zjqxkacx*EIc*sz;|M-H_G0kH+{CFoW;;M+($;MREVsCTZ&d~ucZmQXoVljIXlz}*w zHh;txlg)rH-Ct7+=B3CwA6BB%2~I-OS>4)8iDx-K%DA`#-yWKh46VlxX}TI+$>jTa zk1uyOhFBo+sBaVL5JFa-jB^OL;O(pA>>>T6p31HAC}f97x1`nb0@FlpDWbSQ6vYKs zJNqIFK6g1-xgtSg^l|8={d>G=TUb;|ccyR^UmAd}X-5c7DEY4WzCy~Y(jy4V1KI3A zd*k&NSXo@Uph7edl1wweDEpL=faOhoYnr||Rmt_->9|*E> zFy>tT)hVuzQu?IkhuK(`cJYYh?UGk2mTL$TLOQWv(aBPWuYtdmcIF)Oy*){5mh&M{ z#<%gLII{6yFpr^gmr+DTW$1X?>};&b@O|l}r^LjPW=CMMH&}N*2W!>M%MyW=#8%nT zqNb8a9W14Fa;PGRO?*=CHm( zG_PkPMIL(81JplWRSU#yWjJbuNSj;Y8MwVOhVn~X-c?`wj2&RWAS6?{L& zBN8;6rSGL`oDCOn{trDR%6VsnrPglP3|&qt3F3a87%v(Ifpdv;Nl^*AbCH_oQX4m- zKz}w|Lh{W&irN0wl5LaZ@9Tn{1m=vAO;^;37~{(9H6_T9o<0&X(%Z|AcYc|aQ$n-i zz7c0A-hBDZVcx2Zs!mgT?4rNZnl*p!Dy8abUN?Wx%S~@#+8C<;*p2GNwSa9|P;!ws z9uqz)3qPKG@|cx38N*$XiD9Yv8VM%Fuzh-prfVDO)F9An-CQiPV0>V9ri4wjROAVf zs(Qc|3%UCOJd*){sXfWn_+0ws9=yU3K=xPFK|u04_Iw7;DWf_r{@bph+uVjp&q~Dop#&G+NVm4AT{uJ4_$ZK86_XlE#Pv{NZ8W#o?o`HXk8RfUQcvCuxS%mjK**>Wx5pMI;Pw;aAkF7 zo8T&GG@lT30MRjrmwvaDZHg5$kOerP`U+L#x-qvS`Hnph!6Pe74OW$@d^6eyM;Z3)fNk4QHz89&OHboY2(K9|6Y@vP6fZ*Ncjwm; zxsuV*2<&5nlA;ayR%-5Ex})<qox86Ov1$X|+>yBQv|DwjcIT+76#o zo=@)Wjsm16)U5xCYMJcZCU40?RkkvpV+WtxoDs;i+Ugh!s2QzUj6LAY7e>L?U3JVw z;)r3XhYopsJs8DXa}CAH>{q_+>&^K~?l<(@#`_AN!c1J_R4HyX_1Pa}(>&n+6y*4Z zT|FYnZa9&SuW5ltnGSg|zg{WE^HmipwN_DID+kr|_~ma}GzbtmV&agy)uoL^Bz3Pd zOx;VGF3YN)BdNE}bE*q*7e;%xoPIRIUB7yh^mc5&N@;U~;+X*(wS73% z`?p7iSJ#d;oBtexhqpri^;=Z(8}GseOoXnNirO7|>dD90%4l_PYTBmA*IH`TozDfu z?KW!VIYKd9XQ0+=Mw~RrjewQV9T|knc3pR_Zkab3C1@A*>{f-|gZD_8=xs)Wk4A65 zS-fz*WI4Yoab{%BdsI8882i)8iC;-w^*?6PK+Ku0`UohWlw`_?J5%7S|rAbj5P z@CXO@p6B6bI&i@+&b_mCRl2q{rwPnvg%BQxo7~*f-x(x8nu=F6Q-^8_NLq%dO)4?% zZVLW&yn;I7QC!8xv?yd-?bZW|H9hIZl4>1dxGvYYnJ-<(>RUml5EgmYq6LYcVi4q>bgLWS@8487S+^|U|=w!I9`x!Y1{ps9Yh zf`M|3L9yg#&t$iE9dpsK;g@=BsM{Y|qvq3WJ}(u-QzSZ5+R{c)a)nJL54sm#8ix11th(Lb8DAV`^ zt_)(SWN8uDqv+ZxkG+~Uk6&Io{OCM{pAg+(5^c8K=kI~Yw54!>GR!2k@lHlGHex#z9rzRP5VG!wCLsntg;H)wZCyMY70RQlPBTF75>g=# zDYw?I#?|XJO}9KgmZLrBTHH2cXhb-nfa-G zUdS?5qx=7OV9a%mryCEoC9*bWT0cA(HEWpwcuhQY`Xb=0I8oJNa!^L~nE=W?D&M;I zsU#NqG|u9clpZoD--P7g=J_${*ND~gm*YN%a={uB{#il?)dJPC$s;nZ`NbTD5=wd$ z)fRt(9G#{tRYXdBC9Otp{r4E(Tv^lOWmWuZ%)9foffmQFMq11KVA|BHz@@T51Rs*u z5X@swdDk+A)7}#%V^k~+qPUruRVy$tU(XXgNZl#MZvQA%zkcYPb;owi+w!6uy5-tE zQl|T+7!u%vj`W|hh29DNs4dDAj+>;a^0H~6LXnh_Y)wALJY8+CuuxmksbB1>MVSXy zE6acTCwIK!s#N%+F5iWZTp_jGpb`YVwCsy28y?3imL3=TnpFDZ@#WZDZ7Z&K%X5>* zP4OS2fzvIM!xq#{mA*Im=`OFfTAh-~oE9gQ%XWPa6)*xnpsU09B+731)_I_H(3`kF zVG8JD74xOg@(`ua;{fHCTi$xPVa1eItZr!WyYriacH594$x)MlR&9@ht5hB#snH41 z`m%I_FuTc8y~OfN!44On9Z0?dR({qJK-&!XZ1gs<;`DyiT9jsgw3bUvqo8A+8A}bR zW!f`Z09KJK&y=ZyhBHN++Jq!e_YZSn)UvhW zz~76Z(W71BH>eZdB_?S58;|3RWI;{!!}VjnNiGgg)=>v0sCnq^$|hr}YdlpOE!Avw zsZ(l}fhh9IO<|fzVTEc7Lp6t3DEOYdSP(2&6RSpjNE!h0IZ9#A=CZgx+L}CrI$*;m zm$9o_Eo+}>wve0FI^N``34d1xYr|yJRex7VMQi75r`~D|j>Qe+U(A|&)@I`Bu^>>K zvbweaGp)Y5K}@_#F@VuTSzzx(?hO{Ud6L8Gab9dd3YPyIO5{EnRWh2m39>lTN)w}- zBz{A#${_GRltRHDjJQwIu!EPd&yS_YxAaYM>*ll01AXVtTk_16y2B0_LcLP%a!qpF z-}fX8DoK$~LT$;+F6D>Io)abRM-I{~ENy?AvSh>UK%&|%p_qj|m)eYX^X*(F8vYo{ zqW;?z+<)vKSy9BZeg|L96M?{-Zn7hgjbov*n@-7Ja_&;ZMutjH79SLTP)meNe=QUs z3_Hr~mra|YLe(dVx^s)+!hz()EhSkQsDu;hVXFp>T0*Q5P~UIHnAQXc!9`G4OHXo#6c&M z$Fz@4*1<32pxrmOAA&y~bNEN17W0kUz%CsURC`uzJQ{B3mv%z5qNN&VPa2Fo_-GV& zV~2#X0n9vWE7^1%c^?azo#H?lK_3W91#P$Gf;XOj zL*J|uV2aV7cxZedo8x8mN8@IH?jE8sEBD^S(<=r>!~7x83&uY7xa*nD;H4)fe?1p& zyr{caB(ZlgaRuit8)=hbKX!`8XvZUd@6Vjjd}-;nNLt3F)|$4X?-h}b&=)?H^0b(Q zt2L@B#TnF7kEI^sV(zK_VE8?0&JdUS==>_y%W@SN9pkyF-<@K<>E_UjoXVal1XUgH zrN#H>E73h)zV3xydlP!1tb%j}~eA%59H%+`>LnI?_-B{&Nf<`gf=(g68NmTKKl?h20t40iY?& z5%_l4WNqA_*_c=3JQx)TP-|Vexf>PZ{;k~&*4Y*RuIdqCw(xYeZlcV#U5|oS<;$#2 z0RGAK_|!t|v`Dbvy{&_7r2k!N@Y$GRO~VkpEy=d%ihTc{l&Y%qN30JG#Q;b?d5 z-}H*vEq+4Ma54$aK|D-f{59+{yI=Yr6&0nARf#2l{Oo2$hWT(_k$VNJre>;Q*Y4$28=2}4WDTk#@!SN+^Am^xv zpZ%EYhkV*h1i)!4a{ODhpVtwjm_{-#oE(<2)f5pUX=Sd?m&;g3&1xK)u5_s}OE#`X zBb21!a@+(fCm0!a<}^x#uuNfRuG$ilP#H$N|BYy@9Ivjjc!}BTp7eN;wVksMc{Ng7NYUHs?MhDcX^aYSJ7Y_EnITk}woHB*CAfjVLo{9Q>%Ni~ zpCMlR_O}7k(C&v~-?FX{0g+!Tp-c1JUVz4kbzzaYouN^o3{ZC| zPru7{qMdSnUc={TRa@`!Yq(sf+OurVQ=E6ZCGOOv#*+LAGQb4gmY2Y?=V0*q>t;ue zUKRe)t~a8 zEESRpnx}TiW~qULUZ?V+wc)?2K3%}oAis5U6E*9do5&PuhFR|l=HdGr6eh67X->>4 znVn`B6i*La>ZMKZ`R&&{b)J$8PwW@~%-inM^>6V}1T}AJdz@GQ-|Tc=lMUiW+}7kD zy;HLVzMiXDVXSM!-qcEsEJ$x%{co7^`q*92GUU#UXB2*005)4m@%zkalmmRqynH%SL05dJ9`RfCmGq z1#RXBtP`WpJ4{aP)3#ouiJ_p3D(uC2T3e2)p<7RSBKHS8L5+EFCL$ z3_egSv6?sH3mQ`CgE9xqkP}KoQ2H?} zhxitsF!|{i{GfCZ9GxRiQD^a@hpmG3r^@*DH=w)M1kbBFr8DN2LeNFcr^tsBrasHuIe7xsoScN(<=w0zXle zPDmRCuZlAt{SQ=-$3$BF?L2K}Gxury_yJk%<6+t5_{iDRGD=Sa)pFt2DCM!6g^b$S z68h}?r9!ot9-1OZHk1|s9`xcFk1|5%CX>tsmdLgbe(EY*t#MS&fC0?N+oY9e)YF?+G*e%+$boFws5ZW)P1Xi<+1_+E!XwgwD%S`N%o z8|`6TosaOy7hJR+EkG%OGVP4W&XLODF4Fv}lq7cX{*w(Y2fjDowabvJ;CSSj|UgI~T$ zBCrdt0CK|{Walz*pO7(T;p|iE=HFUY9iPxmKcMWB(L?}*5N)OD8ZCxJA=X4axJ{$4 zbDc}n6O=uCK<$^-g@C(|=`77}38lP8wiSWoBtpFtoEe#00}(H#PjVSS+F#pE0V?r! z%a6NCF5Gc~1Ml*SC&lmuolQ76qyfqC5~tFt)36s!dNOz}d)1q%tkzVoc-Kwd6s#yA_;Ox^{ZA%wM=c=QdlTDpPw#$GgI|NYa!Q%hjYi>dqNe)(e zF|9qMbH21ypjU6EwZ^+$v@GIt#`|C8?eXY3fto-KD zg4$&*cjxA=2CIx#{>#!-F3^J6lhyQI!Z(6ue^5zgDpK?xY5hmi-1DRGgyjG67}{;3 z|F`jZ_yuUdt~_AaboO(s>!4h_QspGBBgx5{QThJlmra!ZjZ*DM#FkC-Cx5+*=B^6| z)e^m(ahbbhqU-x)x0L>?+T>`>m@X}1OSQol=iLm?7M}R(rq8ya?piK;Xs`RWf#C4K z|5C85Ka|m$j75W&wX<3^##cbY2-r0L5Z-}H=v8C);7KFy>G;^=p5HaQ?LL@(G%#3f z?MWK5{Bl|xZCUv5V`+7!{j1n}6K~d2B zg{dS1H_IjxtLs0Uo2P5NdncxqoN!vDW0pdGPu@mbmMY}m?S@Mozo!?={XM?LJbW7fWY@I;HNx=1I;zz2)iu4V%osDua$*yIr_8Wud>d z%Kje)6y&$_A1Al_TB>vLNW|`4?nl~iNy{5_qv^ta&+R9FT{d_ZM*iEF^BA!Zt+t=2 zEq_VM!2|@UIl)#Bs$Y2D?U80i>jC6UwPa3lr6ji^KQ1;rh!Tz&n`m91%+#jjX*VSZ zZp`N-eH?)l1)t40IUQ}}wjTmKIAwh?Qiej<@p3j864dh8ugJ3SNNZg-t>QGRTD}HT z#HQC1U5P7w*4JzT-QuKWsu|MKs_6a6I8}XIdT;fv*FEk=!`-;8FhD~^de!ar%QSG8 zLjx7dN66=Jo<(UazaFAV3OEkXEw_n|z}~@a5BZFm^hO@|GIU@K`#FNIR?DLk7)TiQ z{IP?$wxy<>$#LT80|0=PN1J$*)f#Z)K=i|vOkxzK_1FX8Qnx0McbEo;nmQ?7DwOVp zf;-{zg`nrLKgk1z^X|k!BFjvP_5;8ISSVO7+rSK*iK+#6saAglR;f?{zx#&%&o*QIX@pS~VrnR$4Y5<*wbsz6LOKkFVC7k4a)jHG;;RjI%f19&hTr5~C+M}=)C88dmc?74Ygf(S9n})G z+(Y#B3%6f*pLy{6=APBNaI-6UCF!~DIH&vGl262nqHwclsOF!MP^`dTb-HWNSxLm;u`C98Di$~Z_ zp$;9Mw*E!wyIdHHeUIy4=UV1M!$5~ZOyl(M`kT!9@Si!SJ{Q+fP?a=7bTvaY-gv0?x z?_vqBu!wQS(i{AF&4Y?Zpny_zVfmOEQ?1-WLN)PeUhST6d zPsTYFz*lGLfGUgI&M*A-8BuNxZ?J_jPsBm!yc=8_!8xCF*C+5b%a}epos}M?&~h|ZPpz>L2$-^=^kdb_~cUgUq)`QA| zQyJ!<;fFC-_#6VshB1ig;>OIp&=yHPaWC{3K09f+gXP-U(6PgUr@GEAuVJ`J+hOLp z60*E$C_pVgs!RO}$z?ph(E)DBq~)KgQH8#@RXEX3L9Vs+A+vz|O#KGluj60p+(0r$1d2NzXTtAT!RJ6l59Rtan(?w5H@D4A!=$(tgEh@EtDLO^8cO0(rx3Jtq%*3# z+V45q4dp;yEPLbM_iLnF^zT-OLTwn4Cf~iohzY-huwjx1vR2}^v~J}}_z<6ZlNqNU z0NS;{OV!o*#Bgz@ebd8MU6odD>#H)oJWf=212BwZsjZy|D8B(#AU|l4QaNc|Eu8&# zl@(q%(${M7-*?fN_^qpV?+J&|D3L5b?8#soIc<+VRrMG>W5OYQDr1GqX*zH4W`Pf0 zEqb#FH`;1i9ev?~Sinyad94$kc(8A^*F@umJ&C*A%Nfghr*Yh#YrlcJ0E@?nG_+@T zPNQQJAO(>qT!sszx{7|(T96kF2~jUGun6i=Z%4g;@^ZIW>!z+vRL$|9Y}<(96bu9A zGn&_?w^)!*;FupN*E)s~C?L1nCDpmwWYn_h1|-kT;^iKy=VAcPNuo>ZS>|1sjvfV1oLVH+-|MJ}^XI~(EMt|F_ zgyR7#08uDEWmkyGAJKR^-_~-8d6Kk5%X}uw!#)kkqwoxO`gQ(4CxZUb8qRc!3p{RzShAYcN*p7M7%E;wpe{mIIgzm0p*AZ}d41Ydj-lmgY-;HzRhv;^p!%7US zGe_U-_565eYVN%>sg);GXT{Zc)auV&1#FC-(g@ruxRe&q_Tr0I({r?)USqyV|C}k6 zOx@7;I#Zsf4ef!-Fx4tb_aSma_^G9WpLitS9}JkhTYCD?IAF`}9)TPc*rr@m&JUcm z3Nzr?Pc=n$5gqOJFW(z}qS*Rs@aLP$ayZ|3Uf!(BUYnQX2O8G$yAv>F@BV_uo@7@H z3PuMU&$_rk4k3G)Hnd7;Vpy! zz`eCl{za&Pn}AixhU&1zG92Xcc|Uv@w~BN|V1*iV&3mx9I;jQyBuD8=oLi$6j0mGn zu3%bCSsLN4v{=MOH=!8Ur7i1(`)@d2?rBU=TbT7cIQ5n~=(`wZ7I!sZ{zBY2Q$ZsI zBt{hgA}8ML&f-E9S>vJi_v{2UXK`fAw+EY7kaqL0d4R<+c4l%KPSQhGS}1#G)2ls@ zR@e%78!5kEosrNf#bo<*E@;SMdhPfyRD+GJc{b(Jwpv;AVeK8o?#=PDIZ4NRLC)-4 zLl~sJ{Ha`SjGe9Yp$tn24yn@b5>oBB_GR7Xt8Nb#GbjyN49pN!+u%yq(*O$Ogx&%m4jx!SJr6+h#lav>;$Thw*3o8wh*M=*T7xbcZPk#px8rfM8i zdD*L*YC3CC-(?tQ#AXa6@I4s_(}uMvvn^W@G*X zdfz+JpKmNn8we-k$4L-AWCuM)M}TvnWmqpEQ%jya3@?>i$|_ee8IHbbzF~7V6QQm$ z!)2>rsD*G-aXaVRaf}?M>!d$Z%iD5imi^CZ z+?5!XOlKvgHIaV^b;$=+XBP&Aic2*H6=%H7Wa-KyK=WTA_l5%ZstRl61Q+tKdPpG# zNTOR8arOP8@{7o=4mGhU{!xi558##i`(16kSLt}ROUT6YmWy^)CTYhm zp2f|S>3mWJAHivEFdp8qT1*X`<}2P5I_WLh(|Ux|Qa!B5olKXWoFTp4fptI)Qg}sS zKt3>X@?V~ldRWtz^ZLa}_{XtZPNmjf=3~Iw5;1Y##*#oN6@5zfy~<2JOd2veCA4m1 ztEIp0$?`BuMce1L9Lmu15Yp;0Wd=4nGR80TGZBG%G(tj9uz_l%OS$hjF#4dJpW8u7_T{gTbG*@G~>3M;mJPmF{>mslSl!EDNJ`i}F z2Inc}G}?gK1i6AuR;dz2gmX7jLz;{3yGI888pihb#;eL{ddp=i&2j}wRyfNy_fIZ} zHI~ek-%x7DOk?5U4-u05c`*)sA_+i#;xQ#|1cD|%*HVSad32Me7=Efa#dW`+BSVt?k(SiKooM63}^@jEU(34 zZKpy*(Qo49=@ct*pW(ZLfuanj$0%SNqx*jtx$*OdZi zDGRrNRhMEM1HHTU6x;9YvovHNQ@=TLQI;X9Lp9nv>?iri0i@=gG^0IN83SX%4Kd9M z9Q?1uXl}+a{E59_3%5zst~n(!2I;#Y*2@@3 z{qfD)TH@mc1NfrF#nR=3;QVDYX$*2?Kq{PTJMl+ZoB7E}^8n;-oI*bv1W>O-``$IN z%YO+EMs%$ayo=^0>~w?{Mw985k+$LPG7GX5=UPOfz}KQG3DnvklOVBB5P3M+fON@M zi~6WeWS6(z`vRE#LFk#~C-v&T4nJsLBp~4)I1<%zPU% z`tYs)=P#G@JL%6T!z0WmNJAyls#ge6<1;4SRibVOAu{~M;@B>?>)q6%NZ?91jdVh5 z=YY!CwR)G-mb>}U^^eZi+w*ZaTd9W)3xPAu7yM7oiqTuwMi+eOjjOFT&HVxia%-@B zQ5NErDK??pS3JhohsHTjuDOc`Q|6dg@8qXD+NAL;%g;1H>^qfPmnJPGdK65x*oxe4 zn}!U_&Pop}|2{ZG01RliY9OT{9hn~J_SSXB-S6*Vv=hE_;jZ_qa=iS{`G|GXF+5WI zEha+;LlVFpnV`;dF(^-~`bZVtDxn~)F90~t0vd&~R%6=rzi&wRRB5X3%}YTt)ejo=6({$EzXPp{rKsrOeL}d6?3%U*h=Y zLk}2Cxd4@P@@NhQ^n&=C+>d@abeeWNwxuxhbRhAA>%v_iQ|7zfi zDfWx*($oJ@3Cn?#eE>j$+Ay6HzeYxvL81=A51pY|07(_ zO+D+00c1+A={nQ_{TGhXAWXh(#lTVOuX~E9tXVSZW&l2i_bkDWpD^-56I}tR8)ZPl zWDcZxOk|yOLuL9{7wMYU?ZswsW1wNqPqr>~+pe$RiBiBZ-IO`Ru?8E>K}4F{JWVIc zl{ldrL@fSI)W=1L%;pd-Ye9% zYFFI{H~CvoH-@(?ydt&jT}o6$mqt>D?#L(MQQ+RW7r7T~-AN9Sq1ijT#f=dnU;J#O z?9RBK9&}b&!yqw0c}F``LS;lV>f}PPF^YHQnGDbKq_~N*x8JFt^pRY|8WW-;Tku`m z9>V)>f53G0TPEM}%9pv8it5}3J2b+Yi;OKqhCP4N_UHtm`+exI4q_7%r>0`;OdijmTNwK2{wVR}{x1F224N{f&?v-3BhMXxTLblOaJN3Nha zgKoicNK>tkHX_($_S6fT7=3;cmPgcD&b>yQmV?p@sBZdZ`+|4yV*h(AqrC&ZwsP>vw;m7p|$q&`_^6|PdL&Hs@k(=!uXEdx6-*5p}yX`bo! zDzhIX86D%EPa0Hphg!XUY8h5yQKGdBSaxHDw*ou-E1k2BJ`+-68yfw%L|Y;0 zn#$ixi7TQ1qNEQYuVIq5q)q{MI`vN>5wmjhTHgyDN7!7$=I&n5{vgw_(q`e-PtIxn z^C=jM+oT3jL&orGkX*~}^%7rLZM^NV>o6~{I;?u=T<=z8m` z$%I~v_E_kSVN=9G9BuY9@&!$-tePDX(?8{M?Jn%3ptcSE!_#y~35i`gAbJ^Ih5X5P zwW~c80F{ris{mG%4TTr!Ldr)=0qo~(Qn3>@S6k;uUS*<#kcBnu@R&2iWWgD6USpbk zR^WkD3w^7vOL30ix77H#L`}2@a;nQpjEjOOeW28zOt#QRtRq)lzQv*n?>{lc0&)PO zwYt4@y&#t_P(}^bqf{B^R5`EQ=w(8*v=}<3pwUt5i5k0722Cz}(+v_X*6dxw8szZ9 zD~nEIbyincvM8uh3xF`vOXrE{tr3X6b1L6$uBD?7CN*O9It(pbl)MrCXquf>B?P`4 zyR)YC2^F*(7W%Php->0qgb*Zo$Y(t#XkF)ZNE_48<;1{_~ZPgszdk3 zQ#Xc@+yML35BhSLEM^ULmAbj^FyKY@hSN}BGU9DX&mK$8Qr8eNYbiW;=2BzZpqZeS z{wPJ%?Y{I}3PTSz7-QoIDH%~O5l%EtLQ6T$BX1m4qReY%+KzqT;>9y7flC50>xj|| z0+&n5^xI6F-qH(grmUH;wg1(dmw_EZCMYggq-~$q8X_Ax2k>#yM~b%;wE~pMQ$r=$ z9}Xd>NXSk<9$AdZu(ekhcv%i}z2qMFsHH+bQc=N|3!>ZqAN~aAl_75yK36mzE`n}j z%fCSszZ-`LWq|3%kkgpcT*Y)w@?&agmfc3i24r zKKK1h4M4z6Oy~SG#QxuOJ8`IlKT$*7gk5m!M815?y7Nm}ztlwf%a~5;qMzMD^ub)^ zl$q^i9p36cNy9!tc;})`M&1S21asE;T+ui9p`h-B$|+pt?Uo4fzsjft5o zqMtXD`>%FxPDf0e-?>RtZJy-a7gKH+`zfb6!l@+iEA+YPN3aT9^#F?fF?n%uvsVQw z5~mZzH+s9D5*~VRWg~Fr-7A&mJr(Cw=P#35dYe80&1DZ4R(+fzsZVc^4jt^DbP%Re((9QTOne~tRAxtm16o=?V{ z%ZZZTP80J6zK1Bi#eU9oJ^DV-hGVxLU-BQC<@6aG?_*G>t`Y58Tvgf{M+6stbvg!w zxk7n61NeR}y_qq7M>t{FZ;Ji%w&MPPUTP$)gYT8c1CPD6#Xrug;DJ1i3GD4%ZTyQ7 zSE|^xG?l`^rpSq}M|g1+xjtt3HE%Sl`d)#d)esC$Rs6GY02O^RcXd!^8-4m1?ix6( zbYO01E`g;h@|>m?t)Yre&Qk&{@Ne5hTf%}uCwRE51+Viu*_SIY;c}6eI~ct0@~psJR+kPTwNrs6w-^;A zg4_u|3f9wZwO#1k*~!w5HlKBc*iR*{+W|qp$lM2XrDH^u-)2Mm*-oQ(W6|s7Ps*>a zbh3i}t2tHr$<;RaV^G}OYu%V8kCOH#6V!&p^Q6Ii!KNmY#4RhHz+7#a9+q!0M($L| z(CqXa^m_|UM6*WI_{Q64_jb~XW%a55HDlo6L+u(oOE15y`NW;K{te|M=-t%*aQauP z`!N7#?850Jx3Blkoy7hi&gLqNwl;`Q$LUuUlx!t!sB5#l0TtNt$m7|zv)n`JY|ZYf zmGjUMcI{JsC5tE55(1J~MXE1Julv^Nk9Wjve&Dx%Roq%Rj_a}!i?R$|3`oLjTJcZ; z00@%^D>W{i^5wbI$N{LwX^!{O#fw0D7BA#_;_1sWv`q)qp*tHqd+CUa8Riv144zoi zwbLr9e_gx_F#Gb9 zN)E%8Lk?jR!{*ee+bL`$Gsj7{L!>prkY-pXF@&U$mA&M_T3BornB=l@$Hv%|uEnRT)q*6%lVz;wtilFUN=pCPaL9tBRN?FDw@&|DKdTnw8Mb1E(nvC;Fiim2&BDllL zyDtXIHHfPQW~?%0YAq7uxnusKcJu(MY9l^xLS(}$8iw@c`R^{qk z!_^14-Qs77XX+jv22{%Ysw~4l5HBPOc0Fx|!NYAAr$r%c1>zO@DV1P5<7Mb5|2JOH-ZZWk{0`AO=z#2NOyMQ3Ofy0o zj%v@2M4UjIpuhw0DgQnwjl4rJ+HHHlxs(F_DSPAkj!D$5R5uy<^rYs zkg-Gd0ZpE$@6ZMkW-&47)?AscHm0d(p(-Sk{> z-|TfMC+Y`#g$NrPAfX7i>{rxN#!Y`Pt(~CEOHVu|o?XBFvESm_k*iN>2cFI2KbFGU zh?fOJAYJj=ywGp|p8&E@(y8W;UJy#Oiet+UnjL{FvQIg9uxk8bC83IgWQ%YuaPAo3 z))BGf*X~3dbr3l>Pju-?v+J#xhfMf=Ci?KN=U!5*xqwcpb)W5rG4C$MPKz74IgOP+JXvGxrjTkQ0Wv*^w7}ixzv}VlF(&(Ky(jl056=Z zb62;D~BmDu-Tqn;8SWA zbr{VKw!SCJd4Tld{9ja#-n`@@oON`w*0(*khv~Y)5-C!X^19j5KYdtopZ%4YLFQfP z-DL&Q7{G4fd%Z;8uS|*`Z)1g{-Rnd3^KF|Bxocs-q z09T?Au*HTJg$*Ux*WasD8CY-e>cx)>cYFxOZ6p*r-9Ywd)e8dAkuenaCw*t*R7Fmol+P@=Ft zccq2KliKHUZ^+UE0x@Al<=IbC?mUJ7)sB4C8HwAlPcN3d22PqJig?mhsvRw?#vj3T zstQnPl|b5qh)^_B-WgV8g;0HN&5TLaXT}%6t3N=cMHIjnQQ++O5RJulgn#*U2?7q09Ss&)AmCv6lgU!)kUI8J6?qXwMz>L4N1^ z2RqtffkuRT+?=bhC{d1=LF=BVBV_iC)*H)YRf2}BZu*74ek27IMqEIQJ*q+OagOR+ zn8uY4tt_P%3EKUs>*q8-RyaWZjqQ&Mag|9owB4rA{mgYHNAyZe?N>*O_e>VtZob7m zxgs0#oS)T3OYjQ}YaRn#7aH|FM0on&xA$UtkDn$CxCY)H;W$TycmPSoZwgdFV+tz# z-(`V?M=guBoWc3%!*omn19~jWJA8WP*hv0xmaf^ogL?%if6NpOuTGczBXIu@`N^LN z#`0aAq_l zbY=6#G+{ZRJACGJ-BS;ST7)(Ubs?+eNb6sjnVwsSeq^6uS(*sJr#fSN@Vn8qMLJcD zJq2wbxpn6q?7uj})Midgw{O}G?^_BI2UFoYM$N~Lb zQUX_3A@Er>(^cX(FQ*Uw7B}So@Z`vL$2yw6drCi+%s0Lj`&i^1HXP!Wgs4-#w0q}x zaj~;Ckje;SEG%rjI4Px?Y=s&4ixIxV9B_Au5f-$JZ#c*vfWMAgD5J*JX3K#27n2&6 z%Mz7U7?QHc_tXB=RQyEoY`SN(aBzKMs5b2A?54Zaj)aI{Iih;y^FBw>uZS_mn2e__ zf51fdvdrE-n$U(xh@#2k(Q8n6mtQdQ1M%$H<^0D>VXP07dW%Cr@yF+ZF7||JYd%9F zNSpUOo@rQBx@EP;97zJd`JTE8*;L$iyV&zGYRl%u6YcIoC@N`R=;Qc9rG&OOj+l-@ zlk@)f1AHF&fXlDb;};%HZ|=l%?6S}3>K?pz_5$@UipNvy8x{;BuK)?&KUfC%lt8 z*3I&8$8FEC3|(lw zL^T@zqF;ZOYOA>ZcD(TvP^BAq*5Z?``8us*aFo|-Zi7}$$s2gM7L(l;3|A-mjb3yY zTRbERU%lYD&(B7i&paEc2af?(tn~mcFV@`qT3|>0leI(l+Jp+p^lS77k(s+A2Hq+J zx9!UOJa7HU<_`=#2z{o^Ei-ZUb0^<>GSlB?DTKO|pvf6A9TRsPjO}T{+Xnj5e)8`4 zh*(~VW+%wBIJ0MASF)FU7T!v}vK0cfCE{H6D>F5=bu|Px*t7=5QvASVk!m*T9m|WBbBBkSqSxL79;rk7zj9#2xU^m?%eML{4|E-F+ zar70AGvV|*;XWq}Y?|S(Yc@(St}>btuwE-NUlZuzRP44h8!z=o1KzNymZD^>RgcmR z^~t1Is?dFjzHE_OCU`KVt(#j{tA)tI~ajmgIZOC#z!@4s47>)@Oe7EDk3{a&OS z@sH#SR;SEU%&`yryKMG$t{*Q?t&Cl1=r2;KQ_DRKpJ zAn~vsrx{FU|CP%EQKxC zK}B8to8PN@@0$sJZ!Q6E07vyj!RB(=+awPw;XnZz>ct0Dqq@6t=vn=j*y3NxwNG}c zOAPvhB%a>JqOchA;CuGGRl`qwz!0;kbf#LLXPWZPH4^J&m702lCkB368f=<;I5XVvX(Ei+hD@a}F+cj+Lu;0Ai{=z_GK6gRR;*7%D| z)Hns;u2+nAPWh<0gDZ3X2T~4NE~$tQHtzBjR;#Q94%X)bU0!E{xP~ zXeoUN-D4PQU9$_X5-E1qtc~)xepC^c1PX7_hynl!B+tudd*ZFeTP0SWbBu&C@D`yy zB?;|q0OS|?et{MvM2{xX-NZ<0r_+D(V&$6^bng?Kd)8e=^Pm86l=q#4YTvDSS%=X90C=CGLbkczD8AIZ5V-5i1 zzXyAR2+_9#SYz#RR^`?P_K~S`4{A{2E0onA6f$H>F0a4cu;&X2cXYp^QR(IxS6{2K z&N$}zyD9m7-EJ<#kX&EYk!MQTVYERx;EWmm*6->`VB;%i*ay%sgd04BbDL0?QF6JNh2*c}m`pm&PhUA^2U zEYOdxPxo=5VkOf3zQ2#aqz(l{L%i`?Zx!piYyrsR9qn{)CCl?gcT0ctECKhHsCNtj z`qcY=CoE$;A$p*x%t`o%diF7+kk#{T2|}XKp9`HoZlZJ*Bum!%@}=Aknm4XM9GnGC zG71n@$*FZpRR=N;ISCfz5QTYac(uXl6&D0tS8)S>I{MGhCX4ExK(dS}g#n_T=IE$U zA0hl82b*+W{J_22!8g&;JM>4e&>)PJF#$OOeSUSGgoWyT2{;~WKSOjm)YpK{0)=AXl4!;^j zsTHi#O6#!z|A=;)E5-(Ns<&`eQd&P`4=Pkj9Z0fr3<}m77FfoBji0cHSm`|DEz&FT4;1uyU?F@P2$Q-|pa?ub08;l=2H#5A8X# zsxHMMfad^_zSO*l6*`eI?&v)pj z_Qs+{Qun|Dy=O_eDAoiows3vwuB;M_{aIDtVVdr=#*P%6vb`2CaX5rQr29aE^K7-c z4e5Ccg~;l0b~hB<+?pO#zXkomq>lfSDD>P6`lFUwrqFV%2MoOZF$LTHn>EqLu>E04 zS>C&4#o8Gj59gCOk_?i^MaHyy*6{Za2i_jVbvjyoduk!aleP95e23P18#8{&m^(r? z;eR3}=C2;?Ka7O!SKNF1kH~m#j_F&N&{>8@rn)cJbj$~G7rsIvo=};lrs+vq2vA0d z8f`SWDib5BHu)77fZ9K-1t!_4!#W10}1#R z@h@ja-xO1vsVMmAld;^g*_Ie;*T`xR)8eETrGJWFKDY=VbJLe86w(uN?t1}FqrN)4>F}BGd)Xsg=KIx zgQb^?olxuNx^z`*%?rlU5KF!z&xr)`r#afsK?tT`CtMVK{T=MVR^-t$88HC#wRs`` zm`JqmeOpEjX7j2HhUjekR#Np9|V`+O8BYi31`yrmwI|da{JU12M8S< z#ig0i0knP)Bz~FhU&F!|UDP(2IO!rnmZ1d1|eeCk7y7#j##BoC`^zPWX|rp}JH#M?I@! z@+HDv0~^)- zC!Eo{$|h2(tLLlFh1_t-En5c5C907#-L-Wl_}vYjcBM%^9=RK>AgDN!|@7_+)QEhC7X7y7}R4P_zPPv-bo7D zu`e%|s;JgosJPmDQ-={)UNsf5NQn&3LqmTj#;x;dm+jH|8>hm|vW-$#S*ZN1-_?xw zBT(%V^~Fjdzq~Jgagziweq+S~jnLPMwJg+jsU54BvZ=EnnJzQC;62y)ZRAfb!WyP` zBT(0R)n#d-7ku~dTTXyheC^4Ctk-gSLH30mtoqBxLycdVbX4yNV<)ri)I$?%1`%8b zonJXph9rKejG3y3Jkm6nak7!{WV8RgRkLxiM{g_`{z%Gtb7WJ zCrdfCnvCFrG(#kFc854e(@g-jEP*0Q{ZP+GB#Hn~hP!v}!>sa=z+afm?D_C@q-?Ah z+dxmKyqJk=dzy32{>jl^b(tX7lWo=b_d_~#G(qi`psaspd2{Y?*O66_@qZ(cgLrfEUjn4@vJt$@T)$QD&8{w)k{4&@mdkoz4>xTg zJAU2Qt0TSqq1L= zC{;9BVbP{^#YL9W8;g)(%cN=zEz2g*`!qEpHpF+dnpj3#SK z;H@xfww2j3IE^^B22rU2qD#dho$wG*8*832UKqu0Qu{BaLwCFwg<#GfBPYb5V1L`% z*Y;?2gMgAt?P53L?Q0kPbr1PO*bSC(yZX4X_BT{Y)r|c)`KK%8fcfgoeiG|iCjWsx zVWxSM(33Wiu&8qf{-auCk1aafj$15oJw{ON)y_9@(l<%oqyVYfnuV>Kabx%6+e42# z${)F|*230=3eS6AQID^#>qag$p>;Je?ezss@QRleOW`m+2FPF%6YcbL{0oXs;Tjcf z2qsF|rU$@k6VBW!e)aj$vWC}$asbEb1xmQway;ksFAQTLzrofo--vjw<+hmx?SG)P zTFFpJWx`|6h^s7nHf-UB&>TmshZQlTo)>v%Ist}kctoa@!$n3?yn3!u-Veh#qa@%8 zhOoA)6t;_Tc1c#pT4at+93T0Vd4S31p^g=J{*ohOXz5(oS0?Z8N~CHRB}hqqVnD1q zujO$-!SVFr1;!!hg{Kp=j)n)~Uz|Xi_o&z(h0-(OEpS7kTNm<*XIG*`3`nLl>>f3) zqBgq7BJ7-e#Zc`zfV^#FY@b00-mX%%tglS8ndh5YvGYm@p@~?kcp=~v6g(1`&WZCj=z@N z(`j~mb?j~cDDuwxwZF|?w`1XNk*k*1g7xBa7OaF z=ZYv>LA_6M=~^6B-?yt>%qFD&kdu^nF|09(bE3Q=r@)Cg$MzClE|4hJ`uW%xquvkO z9la|trMjBe%;9Iimv5z3KB#hRhfMZE6GmM0Wd!enz3@cD9n_WTBG98UJ zaJFf1CtlK0!m&?K-}bv}z9(qzL>)pFboh(kB zlxuE;b>%Dmy$NbGr*w7z=44bD;DGSkuD}I8T4>v{4=%SMwLh<-DWBcm1h!k_tMy9ea;@>TymHL#>-o zQ9M5XsZ`*Dm9J+!sL(_z*e%TWiWQCDmgP50;j2W?g=9rD|BJ6V`D(xkvCEp+%ot!t z%x|sFahkM&;mysF@yEiABzl8fG*)>Dz@Pr9Y5oZQ$EcUnnscnQW|3dJcJ1O!^(b+= zg?;|@Oa$6IvE!a;QxuIcQLz+jyzOPO@pHLF!@fyq#L=5maZ~UT+1sGZUV0;*1JBVn zMa4Ndr}H0d-?#I3kUA{VTmNJH(~DpH)WI!Q@4VVxf*{CeD}_Ia-#K47H#7xN@Au$A z>W<+$Ip4n%vLC!|{w|Wjhb?aBZp6|vw~AJ}qaxtI(3LR2bKbV&Sj)LpO?N{LoK{RP z&H5fY#R(YW!8CIA6zIU)GIk#4ZJ718NihA8d^ zQ53MA7@IwLge;cfAUXYK5ill$=*`{A;1#tgvSxc~ync=EnK7=UP+l(41?DHf43Z1l z06Dv5;?1V@+lsHdi&{;xLv@CQh!jsCF{8u8q9TO8qL%OF>09OFKRmI=NW+ z8RdIE@9d(iloLL>pv}MW8Hl>pjAvDlu)9wT@(38blljEsh<5G++6z&BJn}3nc%76DluTj55W^FanFCsdqd0dUbJ093R z3eZniQ6DLKQ_AgO_xSXP`tJNe=-^ckv2_$6^N_|PNCw97+J9f<)!Bp~i`8-eNC=u? zM<+6N&?9;S?qCa|w$>>QY+f49MUqLb2K4F;^e!$VF(hhs&pNIvEuc+FI-JFdmx zb`j?UL113UTjz#W-d-IzM5m&_BuOFQ$6wH!Cxn00VLq%NRxd~vgia=_3#o&WmOC|k zzPyNQ9JyRv@JPJhO<~wGgYbucU0@Jbd6G%-CqT&W?CAxx%v+s?c4SeX6$n4KW##pL zwq?FSNqp!Eoo-NqJML)hQRU4U=?(W)E8o*I<9_&C2NdfZZQx=#sc%lZOFP4el9w*VZK-`EI>R?KZ`z0YiLi$4jqyUAY4?s(M=1P}6iL zg8b$8IYA!XsHO4Ki!DfJhq>$}3BvHygJ-6m`9dTgvv@9ssrhHt@kn(%w%@Tz zyBx2$!gBrU!c3REe)|VOLq*(V5x>ikA0PD6XV*#od60n?kur#N-(yq0`B)OlP0q@$c%5dtO}k)tr*5h4$i{zF>=pm9mlhoh z!A9uQRUE0jGpAJw`n_7(Q6lFg%O|gBMLWA}cpE0uax<0Ikxpahx+u2q*Vlc+hRG7w zKAYkZ*7^aA*w|}DAIVpr4xP0`0j`cefh0`kCRgVp?gS^eBrP*K7R5cO+JtmGSsFlu zQTy6paW%s)7(U~=HOvfCk2$EhuYk15>!@Qd%F%}$W00+kymJ44^yBV4%T8*n>h&0x!8Sau!nQlJOmaf`Q0>N)4&``NHH&| zz`f{G!5M$Fn%w)lUPceYvB-$;d zj4=e#PtXa&19;AOT}s;J!4atVqE3FRsFe&kqzP2O zmEGv2G{lm6_SgcM`Q#nf6B6@@tYL7xK?PfvLW0aoXXMuXWwipN{-mH?rj~jC85V65 z90`f&eI5C-hC;TkW&pLtLlVgE-2#Cz6@o zJ7V(B=@`}I8lG&SJNVChaEJHO7DcU@DS7GkCuCLnI$DdW))Mfv^A@ox`cpdQ5-H6I zPifyoOUQivGuIL$KZ^H!+pQiTLr4iC(|vo@rHiULkG5d3AeNO-8gZ_~n15q+kbKAR zf}OEMxjP4dfD|nS7o-cp*r(!QFa+6?cLXI!zrN2J(dRb-8mJfZVRR>e{<_!#Jp<)B zc7M3xS%GZ}!fQpR)&ylzzv8jEEutOjzzi=0vf~yu=n@z#Y8{E?y+WTmKASt zP6$XIwBjq?9i-OGK9(|+3d%D&WT}N$RAP>#2)LclM|fT6tLW~iZhE!YqSfjvSS6Y- zWwtHSs~g??CN?Gs_Bi~Xi+ZZYbInhX{<*NbT!R>B`=Z%BWGhU%H(erm9}MhRLKo?g zaIMeFg?EDKYPft0QP^}YH-bs)DBWM7N3RJS;2V+_>V~_DN^j@(SuN5Pf5lhR^4t(< z^OW4^b2GQ{lULDjs|nQcZ|(yk5tPeomLG#WmSUt%MdSa~2oa>qcsSd1JSdXlO<(@v zY^M-w?Dm_(Fa8c!sx}%@JZ4c_=eA{;2m!Y){3Br^*7H`aIj#!g)loll!r~$LdJK?z zjG0*xVf--~)VyO>YFta>dAg+5wp$aTwu%0>T2^XBgNo7k`5im`!MQeyk8Utj%#t{Y zJr@iAHD0_lZVqbDPf#9>ZBx|?>rvG=iZLO$hGN+%Lhi)+*K%Zfp^=C?$4D}sT_2d@ z)4Va-awImX3PQ7s{)1I|hC@tD)mt7e6x()>3NCHhTuR?#MHfSj0}@s6IRe^=tQGL2 zusO+B@gwnpt&M{#c%u*sUqwyxb^4wR=xfIQ$D2>_a5giKGKavy<8}+hPg+a+D3~&g z^u?+iz$ARyq5W7<`X2aJA)?kYnA2Mukl0RzE3&4M3k7HsDX1>Q^L68cK&@^2eU^_# z^7^Xl#nSEbuM)^oPG9ai+4bv!!U`1Y=1KG`vkLCsL~W$BKP*0k9=81=TNhDFr6q(o z^d8i{uSrzShb*eDasE_Hb@VcYbh3rj@MHN#f3sXQKeTsbgbBczbLNt2ZbtWB?iA4N zACzT8f40sVfmbCU!BwiOje_Q0(vdci#zG-*<{^KUx@gjJd5=LL`_4Irwbhr#;;BG3vUw6=f)S%KC6r7Ev^?mr&$o7=3%hbfWPbCMx8 zyWbPdB^GZ7OqlLqn)<;DOT7`N^nvbUoz6*Wrfaxvy4y*o_fSo`|M=a}SbW0=CucKR z-21FCgM0P#u=zgg+(W!-RLy|+LR~_R5JafZy{VcC%sRC(dRiRUW5y`Z3dh1~qQ|nk z4)NDAhow?^aU*FUf#wFkcnDtjS7kNGxIM$vtB@K!*v^#h0fti0B@$o*C3%#&EVYC= zJ}$3M!!HFA?I2!rj$M+VVj)%Nf9J)d;jnoly=@2lmeT|M7`PHw`tBkeIB5SGm9U6b zYWTc_x!_bVomt$kpHCkBvs>rk(>`FVQ;HI$xkq8OKP9ma#aAH2RPvz*eepHDYDI?x zb|`qAjK%u}NKpb&NmwG_YK7MZCd778@ZMua{TxG#>$?2@#1)&~9z3 z7<^xh1Gr#<q>a*fsP1 zWE*oM?|t>X$(*p<)>`e$pKA{UM%D>xyIBbF;cY2~ct>w78Lps_j zzOLYzh#&pRU9Afn)74rGqY(nLGq1m7-7WVfWZbx?qTPFTWF~ZU?oJSobV_YcP(y}Z zeCfQGiG1cdN?l9p1Dti)&|nRE5neYQ&b5lskNF9Q4PF{nmyYmRGta|(UqfzNJnF?V z`Z83xJ3YgI;)`i|z#DNi`0q)YJFa}@RH;OHD&a8W@w|}RBN1`wfO~zFss<75 ztlE?3>B+K#8A){$;3(xL1h8e5)Mo(_#a4aj`?(Lr#4&_3!0350;O3DD*{avbv#w=@ zzj=AzXt?^Ye6&bM$KmGdZDt*{=32rjd@Jo|e(C(q6L+57B)st(4KX8#7l~kbSYH*D zg5A1D`Qt;rEXRWud2)$%CvpU#pibl7j$IUa5`6s=^I(s&MP`VGVlm1OJa`IKsPwmkA&gz*j|)!_8TrjG|o zA!hQ6+|=hiNc140zVmF9)(Ns&@qO|?<3`TpFU{-mNA(j)s}~;MX(w&G`Q7yFVx&t? z*a@F3JbAt)%wWB86vt3k2$jtvFm$6wPkX&dnt!MA^VV@tiA~X` ze%ssWnEIo*f|h*>8^)n@`2}c22m~%WYLAUnTRB2cVz6+I_)4TW}bJV2eAJ zD>6%Gs2> z)TqO6?j+zHovIm}8K2Q7qlRZ-UkS$CGt_vN;``h}p+acl{DiZM%S7od0@8YQkP?=} zj<0u%&6}n`k=3oBb*|nL26>u#NkP7mFk*tJE)uEsOoUN4JPJ>!8FPJ0RQo=1B9j9t zIWJA@8p9pkX73qsLXJgBkX?ry1Co+#TD%|p=qJ5m)LyQgRI1(b%UiKtTk-`o?V67h zHkV5f6v*w@{KoR*?66CijFLeIa9W-_?BCuTwU%3w2N%&&7c=7j)8A&B9k1-iWI7Hg z0xbi}Y-nZg6%NX4Z)&CJa{HhI<>n$nNg?oGJV4GZVvzG+Q9E??4pHy5Ji%Of0Qm8mX0OKT~3r ze@N-iYS~ZLTaMR-e6c<{aP67OeYQJlBHpkUB~p;-M&w%UfvF~u$bRd=SSw5oTLDI~ zc2|(=#7Qgw_72wJUf5@xXX1=#mPCg&{w47v-BpOU<8ClutzXtYu&LOy3WRJme_`^C z@JwW&tlKY4UIwij<1?ekU*%V6>6)FwIiOxY($o}V9!3X}Jp{I0EZ3w8j1=TgwecH_ zmg$Q+jfO8SA+&^J;B}8bY@w5^BV7$m>A4eDJ|k$2*QER9AGKJX2xRl-2}GWtC19~DhBVVt?ZmK`RCvGO6!NhM!H}0uk)uMf`{UrJPV&7mRNtq z;c>H>O9l!1L3ZoGKWw-!Ye1s*d+BnLx8b@p;~ zWS#!P9_;QxEh+m)b(Y5ghPZ_%5iq-f3KExx^`n=<@4cbrf9lHCfCX)sWGmR z%iB8FB?PYdPw@!+grw%dR&1Y&Wmthtgz0mcKJ=Vbi^RN zh(4RAAaL#7-3BhVm6`qs(NHB)APv2jcc)>q;4E{V5lHsMhF{CFzhAl{B-)Z3N>T`P z=0r}dxeI}e93YGp3gK$rN^wpvbX}gO(5I(W39jPA{z`b z-R0A(T>;qsRF$4YbcK?J^ZmQ^NGO;`Hjd_=0h$zb|s!n**o#6Zo8SuObp|Cvw zzZStYAiBYYY?_%my^r4zT|=_i(bIN=7va@yR+G9!*^X^*GbLmbL;5fjG&yk|_q%kr ztQFhR8k35sV<&nlkcQ3Vt_~lLpNTvgjZWrVK6~G&1o0NJ*KqT#_PeIsLSoZaP#l2x z#QH54Q74QqD)=O_rxF0aM0)y&{&C2^gtGx=q0G_`I@e1A*;IN*D5}d*(n;)$hm?0t zP_F{J`Yi50Lz|sLfKg+m>@#|PGc4sKHP|xAD@39~h83YPwC;5|`KEgysJ@BnYbX$X zbv7~C9O+B{2YtZA(lJ0<;~^eWMHWoO11)eWLv}jD$#{-kBMGzMoI*GA5#X((n)w;+ zObEqc_$eFE)PRcE9#zOhS=_i+`s?X>Y1(&^}h=SkUm68^sj`GGBKiKl+ z`ivXFv`whDLFMDoO#+q)sI0I+oXnSfO$K@|-I-h|lp}J9FU5T-d zdP?9w5J@kte^9j<@LKK|!6$rrga?+n;X2IXzM6PIK<<@i$E?!QI^iU<;v)S)rY3hM zfh{l?fGGh5rp~O;gQC2dr7$>F9KrJSxtwYF>vwSe_o?mk?iWO5Um5epp97n1P(Nt7 z*3pq5wT2MoXsp2Gk#B%M887yw3Ob177QVOYCM^d47q6)Ll<#8LV~Dg;#-tL={_`^2 z{8Q*Ve#_#4GUPxN-@q$`ltWd_*j-X8%DxcJ_tE5jGyH4s!)6twdum1V`o{NWu<6Ui zj$z_Js>05?6N_SNDZK5z6rG?V5O^AUo&;FVO;H)K-8ayL&zCBsu6ls1$)0&``nT^C znqtx4QzUIgVNXNm((TqMtgTs%rglWl)V}U_w)}9-M~0XA#G{2qc^wPJ2xF=_fl^_E4;SufsThTeeV<>A;UTRX*tJ3wQL^uy{@mfnduhiXv*eMe-pc2&w?T>UJ#9 z<8ue4Q#=6u&*!kCM>3qeLVron@P`YHQlVNS6C3!$sxK3&mub?Oos5OjKLzfhLf{(@ zU2IO~_$twf0jF3nDhY|G^Za7IW$Y^o0x!SXNP?V&L0rD^9ambF6~=}Oj>Zi<`ST)bvg%VXI#N!8Idae znH2@phaipE(*V3!pdF@P-rNo;n9EXG(=mRhJAE&|o;rcXyZpHeqqSy6Ijh_Nr!9qa z>n#PwS1V{%8$VGPjH{-GPu~&#H9l~CCr^e$sMS@eBwd(FF;*vIiSJ;41bSE9rjmQP z_)9@~9^hkSTakzn5zFzoCI00(AGw(e8Pq@z0mO3tSACYs*+iZQsCs^x-l4-BIdoQ+ zbwk^1SaF{vNu++8!61ggd^oJm+KzAo;BK$l4h>uDiHes4OK&%W53wONU!CxF%Vh)8 z-dYL-?o6!1ZL4uXfr@Y&UM|1dYXT=2k_K$oJ66vfbI98}`UfI=Hg#69bYE$(MZ+2n zAcnn^lxm1>Utk+I%;EiK7*gGYQwzQ9M+e!F1pM(DGvbGv>n{HTnd@6v`biIzcO$kv z^_q9(M$rt6B(^ledNmV(1o=Lza+o2yCcL27lXu(@@Ld+XFGK(c54dTIW-$A@GnrI(BM+`XPvCeRft-A z_l+i~6;^zO9&)Y_@2*+r5fSN`C=mkiN0Wv39{9W!EQ~&_aoa>t1X`I*P)9O_8Dnl2 zag?*4)4}~q^SprUb>LEN5in8sM7a2de0sm;3Tz}m&ET9H7ab8m({I5}^M;}>*dq9slr|-R3dp+MLR{F8{f2+b z$drX6mXyS=6Q~2C9UO#x?-wkTjuXDWyZk5zD26bmis4Yw+ia{Ynd!A$B1j=;P&`!X+6c2e(=FsE;oG^bm6? zhwhi@KsPDmQtep%Pq~NdO;&97=wtVK7ArZzeZcG*0|rotbN5r0pJ*2f3@TX@CISW} zE0u1aDJE@3OIkig)%eEYhmVuS9~J9a#7SI0_ay}yk+wZY{s;Q<9RxU^ZZkiM9yo-? z{fP{?_d3nVEkyt7V;-W>tNG^jD0gihS137}2|^B<8EjHcEX5!i4&w0^^QvPjihFge zqo3pC60{!|O>dq@J6nZS7yf{+Q00q5_)iRVeQEme`fY;Y$>C|+0Ruw*XI^R79bFAZ z@izC;Te;LK;_syuvr8AxT}`b#cbntg9ha;XdLXV<+pyZ9GpIv&KiDeU@tDx?y};mv z_6^ZO8C=UH+EI71cDn3zAVP?~g4zFI;D5wTlwV&WZ8n)4b8&Hd#l&SMgsSX*GEq)krz2qR$w|Y-cLm4| zQGT)XD9O_t*iHQ1S0mt|CyIw)OQq_p4`A=q_Km0w-c5@w@`E(IH zT=jy1p)ZfgFCVYUs8F-63oG_ZQ^}9C;WAOBLna;n>Wg;V)OnQ+ng8aJ*Z87?qdwCC z?D2$XJ@sM>jt7L|vFRB7D~Vy|!Gv+xSkXmmsnC8QC2)8lkv`Fy9{?|~Tc2xmjB@=j z6hNEq)|;eigeW;J{rIk^B<|s4yvtt04z-q5{61LS#16_WZ4Hi>X}iRV3bvPZbr4n~ z98{;D>M7Z`fd^1(@t1<@%af`v_&@V_*btEUS&f8Jct?M5qJ9&m>71rApG!&B>{MwnmWES0xskA6OJF=)Wx%y1NO zu-iY+ZHb0a^Hr^@RB}8|@t+xzgGGJ#xk9D;dptLlSwPfd2dX^;Ho4f&;y@K_V~X$D z;0`2>*K{JN>I?iw4ehg{f+Y6o4GC0j#-n3qEH>9HH2Whx(gPrQOiwd-Qr!MJv88ZE3?f2XbQtZ(2PGRZ2v7S#+ zcc{ke0dJCidkk{o0@DTOe>_ChYm+!{Y86|?xRLLV7_UX1n1AEmeesrNM9*IBJtv*U zt+<#+vJV^e?e^1aG>_?Vk!;H1I_cu|8%nx-rjH_s;ibM(%hD#!Ray{RDh&#q1AsWX zleD7*zWJ9}{{8#Y<^IbG67g&~UwU&h@0^qC({jAh!3*kt*3i25HUoDc-+YBT?6#~$ zNoY|BB_a^c0$aujeCo#cKB3%(v9q|ilJr>n)YVs03P%tK)(C*e>$WYTP2Z@3y#xo zL2Y3`1B6YK^ek{T?-akSrBmK6_&`^OfiO$tovrNh1V-(;;JTzb+Oro9X|Q+f`rv%t z$ycsfyb$X(E$Mk2=l?-33zdV|2)Dc6``=L-#ulyD1FFe98MUMaT}R6=aW9(g0{8tl zz9Os=*$go=9CB!tzD!|Amq)xMIUQ!)CU-!(5eWjATgU9?&&l@X;q?n1b=5H=w{F5gLassUXwh!r=*pM<)z{B%qiuMB=}zLr zRSMGq9P6YP3R=R{02lYSu+0j(a)d6}hO~+7qa^Z_M;+e5xKnKT?+c|yNw6|G2>Oh2 zG|Fn1d5t$d#flV~Nm@rsp7wIgsW4ys_?;s^;pulrTjmZ2k(UhXzd|o6bd!mJ98yh< z5CsdpgEay`&6k<^(9;ycHy4BU(ysz6^)R}$DD3kJrMWj9GjmFN!aVr?Z3ckq@u{BI z1UbSR4@sQn(}t0dGuToP z5v3!d*WGirr@Aolm`jY(a`phC)|02AjK(XM+XB$XdF4YX1#LLIf{rP_;Er(g>RH+s z6Rn}@8kLS(&_S(VSo3mwK!)AhYXqI!nhgtdN7zfxQ1#`y0Njm{SQ4(G%1nNcRzB%c zZL|KoF)+)cTR+`>4?Wn&BFl9|hf z&81L>2%Af0<<{l6M73rZqM7Bk%{@esbg1T5F3m`8iRDfSb?Vgl{yx9|V2?d^`Mlrn z*X#N0T%l}n?-0%c$um~JHLqgjZ+?UGwSb&7g~`Uz=)43(ow9?2QTG)ns?x%zP^s}! z%B)7W*4WqGJnZ%80@=6EvBX!0OUTrB$AV1?#-0KTw&12F5%C+Bm3S9;H>zbbOr11~ zgy9jLM$SQ6`HcMVOb4j~z--kdy)X_Ss_bfK$bM!$3gBDn3wRPmy5GP*QA4%IK!c#Q zc1DPUEQnAG<{#k*Q;mIFJd3*Xzs3`V+VO<0$MABVKI|u^T%;cc2%B=vn{2u6CEE7u zs^7VhH0aSWbrV4v<+e)tXLqg^P~$pesAiZ^L6Zt3UKu`Rzg8RM69em$<^?b&)V-wa zli@Ms;p3`xWn`9JN))bnQlKT4MFjPeDn zAvsu0#!8u~Hl^&_ALgd1pSS4%Nwq}KIl{{u?JpX?}K?`pYx9GFdv_aZaa+ZwN{ z?MLW0?PL&Z-d)u;(-&X*QkJi;&(C{oYW>dpYzA{{)ZS#*dNZKvfRSJ~SR*ypD86O} z7B}Oph}LJH+XJqjJ^SoYyYHNxr+E)bMAjJoBA5%wjgMCoGJnM#K6UGVpuoqE9_%!E zEQ<48BQHT*9Bs=UZH=qGOV5QzmHTwrz4&y$u;5*HgvW?WRItUgS7XGRSzt-w46g-m z=B8$}>it{2>nWK>PpJ<4a*5nDc@*`d&NHHN)v>nltEpjQt!07HlaWpBqV9^y=WOB` zW%0DV?+u87gLKo{FTsxcQKuik!mVPzi*}L%sG4AQ)Z^5fpeubME80a@QV=!z-XKss zqFx5&s1HXH{oj#S>bhEHtZ4+tJ{NtPkC<7j^Nr&XdiTUKF{305@VtA$;baEG={*e= zMghj2PsK%u;mGKgS?Z4KU&NF(jLz8NrXFD3mQSgbVMLpm6LH&zpJ!+!kRAVYkNV-r z`QW%Mlgej)+W=6)Lc4!2lx^Co4y~{R6S<)mu;gL!d>$fFEBa;D=>pf5Q12Q$N}=aveeb|=-Ai@P}0`y3>$(4mqI$$7CD>NAm zK!dv-IZLA*Mxg;}BiJZ4DIFFeZGnu%1NNB1!a%Wr!w9=8TuH;KxVBF}CyYirwnA4L zjqUIl^?HhmHYY#FVpgnQY`QX{-^pvTQ&_frc-1{<8C>VM0#`Fgb6s&9Sg~WQ;=ZM3 z1RM=Z_Z&nFgXl=Zv}kK)yQb5r^HAmrBV|FTfvtj7#7@P)_7|Dl$vlcYy7r%@7mLEA z5h!S21UhAC$7(wsLZ(a}`th0ddrUP^Hd9vO^1W6Kpc*rcxRcf+AXGOAFHi?W$ zki*lpUpdI`dQcw_@tOM-=H|AH8-Q=bLSE8-?F_zDy&AzYq3kHBC_*Ju^orh**b8R1 zlfLH)I;J(>wHum4`|>+f6EZG1lky!zi}k^iF_#;wF1M=yGHZ2_5DcQTUko<)yGv02 z!7=BWm2#@U(}7sj#ki$!$A1z(<<#@U6YphsC!hkHen-rR{byUNz~%_U37b+ahXzy| zD)?D97<9P^Wo(y57()K^$4$IHG@lVW2;$dBJpK-3KM84|SHify6TUD0wMYAic?%neh~8ZIFwK>?2wl&lB^;39p|vl(Y;} zagBh=2C<-BPt;An-Tr88kkXQ5hWU_d@bbOjB?>Vu#ooo8fonaqy?{NyRv(6f-sT~e z7zu<`i}GJTVCd^m2d!a=zf64mo#^^Tc@{h~W22}gM!*qh9ra49lIE3R;O%nIXSFTk zsZ>AikZFGQbZR85Y;B}tWwJoMp4yPrr7<@HU+WpGs4hu4Ni-fBkk5#=cF-&9q6{6s-yGxY z*+&>2!=Jh<+V-b>c~(rG1xCokx1cQ{KLczhrr706lgyK=oXBJD!!(o0jM?N%#dc#a z?Fp24=u1``*>+Wz+#HU-u`3DN%#a56$VXlBo|8|IQiF~C6Cz<8Lk(jDi?|*u;Thbk zHYgaZs#wfc=gGBHB+p^vBv7v4Lx8_5cr@We=C3OI8fUtkdCMyBCT+cJcbR4R^+J5#hC$WXXox%B$3c(WPO8L4{XXC&#GOi{2mrncEUJc7Im@0DS_}cm4DnRx#5Jev4M~uCWEdJnI#N47`A7zHCy(TNGw8+@PWHU zf&1aS>{&_q?Wi>$8_A~W zjIcquG2ay394L@t|9rmf$BV_dA1(9M1N~T{&M6AB)9_Kpd{wIz#y;NI#BG4x^Xs|^ zJDMmfy5RlyRd8BCFM9@P{vQG#AO1}c{n#SF@1|qVPvCN<40W|?L5NyrI8`PLgjiz? z4;s}R)P&GJ1O|-kjs_A2`eAh`Kk79%;$!j(Fl#ECKTXw|Yi zdFong?5HVmA=$yUYuqD}Lilt&2j}n9K2>E@%XuON3lpP6rW!TF5R6MipBzqpinvCJ zt!(Z;wGAhUg~ws4QgEN`qa80!I%6F32ycvCY!8gW&UH)fIXfx2OTo&&ea0SSBt2>| za4`Q^a-^JRN*X2RWesSpg*#mDt-JduM#Wh?WS1hdw7r8p{}TK#X9`@{rgf|Dm9Dtp z+j@0^rAe)nXtmQzuIho{;re?Y+o9$m4#D3Wb%t){063}gM_LpGqwYWWQsLohJ-wBQ z;a{gZyTgxSrGXmgU{_1N*{S%fN_&gxhV5xGtNjlfm(k)E8S#O2Rzim*vOxxuF~;A9 z41W3_NMz8+-sEa&luJWX$_&4P{~`^&9_?y#ELE}SK5V!8PQPARY#e=S7i_*U9O2n| zuvlvQNLTtWa1t31Xp_$RCc5y>tq0!@35kbR=e^Q)tD=YB;4Ip!bJgQkv#-C`eYgR}1#5X4UvV>X^KsM$!Kxd}A^@xZOh|eQ?8#XMZ*T za)Ocb4|s9LZPY!7sX`OjC#v{EkfH^b0uyRxc(RBZ=JikUUXJx&cd;=_K+T*bXR8PQ z!vV2L+*wVRCP&zyWb5YW-iDG>iyDmFob7*~z_h$(tPSt5!dSc0hoIR*|T|NAE9;sjT zVOK}~pKnaB92hx_fO`e#J~%iwai=mwEb?!6%Cg}!r!c&-UqBg8_C~@Ey~pRevP*m}oV&I^x8K|aB? zkFEcu_mI@)XoMG+2Yt$3+;cJ2w(#ShVk){WMirI@oPKC&dh7SchOWoDBYy=>l!1i# zjMoCtNGd6ikJ*kiY;wDJqK;ZK+W6fmmLcNCkKmzRnB^w{Xj*Ze|sa|mO`NoC=1^E zYdVY&X61{{S&c)+zeGPMnqCU0+OEJTR+FXARMK%G={^!EstGQDw(e#IK()yQcRgOX z(8i>{)m=yDWO_wt4Lj3=Hn2L3VYlW_kRzXZ7TNwi%N6H|*!^n#@{-R>YTG7``96;> z_pi8D7YzG0yS%{oudV$N!`j7{DhY=TV!KIP#<6rpHBj!JqABtvX zPL}=>Eg9rN|rXT&E*Q${=geMzHJTw;dUXV=Kpn_yz{kD zhg+;kpWWq&sv!!Vg7juWzbnZm!6BvA)>k(j_G>qA?uz11uyBWGZY^g=!fUB*yUoBN zO3o~?jfoR&M=NwSTQVsY`4}m^!Vp0G=XP%OKsGch1+MoX&|hn{d!Bu+Qqspyc$c&m zP(t>+*f8DI(m=E_^SI#!nFzQ|`)xb{Rg-jne z`5;PGrdS$UpWhO9`F?wq_Y`GC=i2OV;`CsVWT&uL47uFoeC2Ce&@R0F56s;CVZ7Yb z40U^hU$$v-(+0G}Xl)gvYHTcfg=P3ohgW!=EL6%zomq+wdpBQPq1T>&*I$hQ+{BW# zTy)iHr%uP1LvM!r_SB3SMlIlhYywFM%i2 zxbk~$pc3Q=v|sRc#MlUS?>5?b)IA;&pHeR436hU;-wbhEi2NVup(6wrX>g&eYr65I zutfv`TA_%rx7=thr_3Fa*>S#cq6O+;MU)k8uH==Jm{_+|dcQb7pP$_ao%QdyJHTmv zEfa5tlZD{gryk@f`LMj;Q2lP*o?{>2NzF>K-mb7Z+dS>u@o$~a@k>MJPHNiW-KOi8G0b~V$t~B;pJbqgBXJ-NXIxXxC-KO_{ zp#6!NtNs2jmma)m@`_S0@V_#bfBYFp&Hu}%`-230#IwUavEskD6^&}!&Mez^dS@5a zq_)4;EB@JPuH~o(FA6?o&2>5PZFb#xmpcAk)*l?04T4vw4kY$`4yIRx)xmx5lVMyn zAST-Oskh0^XL7mrZa&2(tlgr!wqH#cA5|FJ5|o)(j%z}I%^MgoX8Q3_T4Yp|5rvd< zi}W$;cxrAt!p6N=JNERQq!7pzEy)j{L0`tP#*e9pj`GRFxD@bj#%R<%kY^hu3=O>8ZjqW2tR=4ZNb2v@nauKY zyGH|gJVR&7y%h{+9f*l{xsOz-`)`{zjJNZQVp>B|Z7#7>=tJHUT~`~QRp=EzD_e|z z*V`BQ(1i?cG1bqI!#3ubzG>TvZM>iO_v?`)^6=$U*E{sY(?w^53(N~o4;^bX$Tew_ z^q$cA)7~rf{N2&OD!E^BZ+lPnHT>AgYka0P_lV!6Yj%;G;Z30Tr3x3H&Gc(f=FVFh zhbT%2{|yLxxS=!^80+eF!aH$$@1c?4`1zEx)u0wT#)qC+064alU>EP6&)a5Xc7`i#|{@is3>FYmC}}%BsozEsZ55a@5tdKt@oI; zd69*D24Y34<`M(*CV`aBdQp(4(0y&r%~X3x`%ID8?*H3Tb5lcRxw0pA89>7MX0b!F z&>Nh&dvzQPA`H#B=!fY~*7;8H>l z7auo{Gqj8fOQ!_q2IFnymusWT``UHlqQXX?Wk|N1R!N+Gq>&CKff2gG6!L2-hr4vU z?*K8j|B|_)##7RgIc4i}oj0?Fbw|Mx$3_VM7&Q^d_3y>>FD{n25{uccMngB+Y1;!N zB{$JRCPT`r(IhwU@g~q*3&=+U5SS&Fv7P^5ly3F4&b57RR*&}YHL&%pHQy?qLZ(Sv zG_Gk@q(L8kk4M0E#=*1>@U&a76ZA()H9nIko@SoRIdadbbHsN1_8=jrx7^}0I*8$? zpF}dSQcp#lPhRta9BG6?{Q5>ot)d-3#X*d1DxXrlVsDE0_o1T&nvKX0;_+tX}`F%0_GE{A#~_{!$#9> zx!D4{aWtT)BeMwPUbbrDQIZ>SK@i!z$Nod)^Ju%KJdxfdsb4k)=0D5#`ZLut^bsoO z{q3mpg5AS9`>^sMyk4-U)Ust zR-4N1vwIMR)J#Xn4!_RqRoCr)<~X^7?4^%f%u{-#rixjW83;S2*1v>CZg`|K0La(N z>A=8Djh9+bio4hcSc98ARAf}LjlAjCq@Om}A3W}t(hL5g@DOYv{5ermKbs9t1E{{? z`+X)(*HZ;CU4V*^?iEVADDJ(KCZUvvuwT=<9TTEayESxks;_T8nP-;J!Grg?y8k7S z@{54N>hv{==OxTpP17x11If(2I{H&ZTS*9Mzh)=THT4E5-Puf&R)m{4Cnt+f&z53k z7toVyu|a^QJB!}Bept89VKh)}2|~h43=FEl`n2lCeJ;#V?U?*M?Y1z0VfLv7^SVr; zNB%~e1&H7Jv4e9$IEjmerN_au(fy6~w8Ipay{dZut+NMm5>T^yupFxFUaeXrBUd+F zZI$Rx)vs9wQOvDZ*awFV9$2>0ey>k^_+p=k4N-_RGS61c!FJp?jZ=`HsG&yps^uQ( zcKadYGV*iO#gv+8E6(_DOAsce{s}OgHXY!?E%TxaWk>v06ywbujk3>;Z z700`}`vktH`rD0@9pOrLyMb8i302kEyk^6SnBoPNaiZE{Y437j<;DYlhKjJ5`4nR$=C|G;)!)` zXRO0WlmywgPtx6i9u>WHjMEQF+?~t<@?=VL?=mpDmr61LW-|7>WYeieU0D8OdHMLL zxMzO8u@tj6DafDrGbFS^qdq;=-@7%H_FX?wC*+V;A5?{FcXhe=Nw==LYOI0noxfo> zm(x06iyhoC&rpQ+UY*T#f+N5K#Q6k_Np7u5uMH!@t*`nBa9N1gcxr&p=7G-}9-rvE zE_{KQ5wN_o+u;|ut=dvS`KXuFZ`^x2B2RX>%GUX3p=WPL8~2pwRi?>9)nwXcv|rQ% z5i9u>^=*QJB*XCoFMMK3m-pgHFkh%~`+GIc1JJR+GF?oxzlKnQ%f@JKOiQz&no2(`UkLr6?h zup7?|(+4kFTAjTzc3%Bzbbc0SXELwP(Fml1 zHvy5cJ(t)Q6Z0nCib7>XHt;5&vd}eZ3%=})#W(?b4s9RZz~tOGg>&#xNM^o zx9T9tx|F?mr$qDQ?zZsrtq;^Z=j~X~>#uPJ%iP4-Os$b<$eV%s zwjKY5IBI4XmE7BuGP)tcvm z5Y@D=%V}r;;S%hLuOS^gBhC`7ilbR9TKRtXj1+7Tu{K#(cG|b7KfR5_FKq57UdT2@ zyQBC_ZsniQkw{(Ma z_Ibpje7TbG`Zi$}0!ju{CYu`n~GH3l~X4%>nZO}=l6hQCYf`e#|HcHCnoh8 zyJ@Czl0PI)KOWLo2ThcW8LPr0s<+ckiKfisU{u9BSb>dNO+{&xzScVUb^BYbSDpp~ z5dZ7{0%GS%i#xHIOOK=PPpX-@rfyaW+QNqonkb3K{-bl-iD>ef$xH3&eJPEuc^A=5 zw~k!nVTH|222$`^E~G15(ec;D$+7I^wuS)tl*LXWaRy2xK!JQijU)0KHM-%GBf9$5rwJ*jIduX z6ue!94SG{?%T*&P6kLiJ``lK&iXlFK*eu=!#bv}J;mY4j@_zTjwtka6r6BvT()4=4 zX-ew9p{=HnuQO916cxi3YE+q%(1e};mOzL=VNXBkWmPp%CRG$}B-mBg-pe_g* ziJwaitBkauZg%1RP4=hn>k#7&GDr;SUbzJ?a(Jxqty!`tQ$dUP2bJtDFJU~?Gq~Hs z0||)lYptf6PW~JVQZ^O&{uDpBSA(+N#rh-byvpH%d`Bs`PK+RAx!B-xofi;`Ekh3@ zp1|d!{vf;6+oP~;U#2#^>r(}3RKMN&;8NwxzNjU*_U0Et&-Xfvz4Han|9n+O$ir4Z zNZRDyVpIu)Lqfk=h|KgHkwEC zO|@(wTPEqxKXksFpb)o@I)moaLiZZN{Knrh+?5z7q?=Tm9T&N0#gtFsgZI1Ny?JRT zMk8(psINvpXX#l6Ac&!7>*NVR`Tc>7;MW31OCOoBhVclact<;|K=@0r>WBii;r#eMq?lD_JWE|>yDqZxt)?rd;z?&aHsX&6_{=MuKI!GM$y{AS ze7>f;- zOi26>d}x2egW>Ruk%*g;SlC6s?ABRW%zxh@N-sto(#kDn+o*95^?a)WzsiP-liWe0 z$YJ;>V#|A`(<`(*9%CrN7L(G-F_r1Q;}Foi%y^w9^4Wv+Ut#|RG(?tmaGvX0yktX>f2Kwu*`G085>4>z8|||B3z6!zqp-;l1VjLJ zGmqlzT-xCIGCnNpBv=HdE8OT_qopZdedlWmYl<9vLrzKzFKB}#ji!#!r|Kax8-~=@ z$McJIm?(>$rn=t%GhlDDB3o@ZE9yuG8jT*8rexK@iM1Zrziys-p%DQC3C?fPxFf$b@{UFZ3- zb-f!zE#R{C)VX``V?td*Ds!SFa+)jE7+E{2s&}nQRXG5Kv(cR}!cgcjKBKQU0%%X- zZ-WX>qIBQJlyUp4Ls9xt}Xz$iX+D0Ifz z76v^zaREZN@-f*~CC(){@FLn%bD4a8d35POC{^@a&nfKw);<3X*^6LVS&>}F^Vh%p z59Fad`@6m8>zHEIzx|Wl+JB^Pt)2JRtE~T%exf>lasBe?G;ImH6-2do82?^(s?w*N z{7+9vS77 zF)WeC!0R+m&(P4KfcbfL;W8&9!T9c`!M?!=5PVM7F%!)N8WfQ6reWu<%e9t6AVb84^tVq>dc13KvVC&puhGP~^UnInAg6hk&Hm z*FK#wY`E&t(RJ7OGfmFeZaE7iib7V0KDiYCm-{GvTF!hWsogZ8hbHKYD`ESuo7&n+ zWF9O>sE0p zm=UjbTL=|@SHux8j<|hy8^uM*ZA`Lf?spZsLtRb>f&VDkz?{oZz%!4e`d*Ni{?3U6 z-_m@v<<35NG2Zj4qL(_SWea@-ficdbgnal#eXqQ%Mg4rR>5oJ<`lA zvG!3#tSWVSnP|Rh7DA!AZ(gzR|M zPdQL9*=^(_Hsq?eRAcaT_U&^h0OdJgBSQ+_aZgJh4mBS7HE>l;^kY0OJ~> zqR&CQh<(aZTNv8XyUaYCxrR9~%@P(+Cb4$+B>R>?lrw!++t3qN*vImz0d}!Ud+HNe z9s>*GAT=O*qh$$r=kKhWF5ppWU!h(){BmE zCw1YmBXTVv=hGlNDhDy}yY8AQtndAm({H z_IrnciP+!JltG1!F2nTVTus%gL2avM###_XXIIr_1gXvyfFJN&Rf#U zlYM+DP}h&Q47nyWqsgBO3gsu^);*ZR%pT*0guxoFQNB)bNsesDGfSoR12jU zflG6=2vB|)z_AcsS^|EVsI<1X)D^Y5vchzGDY)5Kye)$OD3U7r?N;U=#clraDy~X^ z&rTGMYZfqY`@|FLrrBsI%7rIQgkc?19tw*>bKy;CcMiz$f$}bRZfea_ZkJLE`=(XG z%^+GP5Oy_kES|H6c-#s|Sro)a_eTfV#{GHpx&hBfpOSN9XYjL=SOLWqXb84-1a7}< zHt}{))u77acY5jy{Kqh7qJO=@(Tv3m%bpl=0$>;eQ6}=FpiBahV0`bU{guNYnFMO1 z4tVn$nBLk^(ii+6ICg;h#R}t-+m{sqGg*))SYb(7ob=won%egg{VOtZMg}Sr>@7xs zfv8BI%TX=3n!L1LHuB`&%_TKXK|y}N;m8Y>gNI80UIrQ~gxYtESZ>E1H2~AI$>)cN z^e#7(x;oN+PkZJ`oB}jh^aCqwr0(rA7pTJP1P5`zJN|1*jFP0ixV6H-NiSwx7pY>j zYnsX(9K&TYd`1KR0{LS)()b-bq`Gs4Yr9cg)a+rk4d(!XREy?q&MDFC5J&xosbP=t z^N)Pi&C1mZDCbt+p9g#c_}HOxNo3`n~j8!Jks7*Vn=woT*?F&<3Eu>-fxw?r^)JFD4&# z0mMb^xv7w78fq(MpbEwp7xYR0H`0T)v(BuG-;u~Wni!wN{Z-Y;@r!HC}9;at`|Cj znZ6fODXn!NJG1Rq-#8_MN33nG`t?;Dwaz*t+^_lcM@wGkg5PAWWR)>;L3XnCz4~Ax zK*gq&yLa94WKEE0gKrCKyoi-xBS$_xGPeBc_!U@l!s;c3QbvA?1o}u0?oo#%h?j;C zs^E?dZ4c_mPTJ9qJ94idRC?h9%oPyaqgVhZv#?x|2-R~O&oEXqSYg~MiaUX;wI`r7 zR&D96=>r>RBzV$bvC!{b;CneGjLz*y^+DcAyL9GT9UPJivfklW-~rr0ybPI=#eD4a zptRlYJj&vsBOPC69*>n=-p)eV!85kFRb~}kDDcS zJ9~}ChfOUH-3*8_z!DXC0hD$pYxsH8ubnwiYN-pNf~kR zwu*3M{U?~o3UPoRZ3`_me2Of%V|v{q{GyeQK?#ERH^lk1=?AU#`%hj%7%O)LoTjsA z{%M_b)~gBBO;e3$iVbH+Om4Pb>nny&#h|}7rvzGc$M{+Qm5EQ+`hkp*6}zQ`LZN z0}ch8ugdy(tAbDVuBm{h<9K6W(b)XU!tqDxKHcZns~T+A{$rr4iK@kK0*JC06fmd##f z6XIS?eVroS*rXAy+(l*>9iEukJcu%sO!Y<2GAa3J!#2kY4)5*82PG>Y)`VBzD~1OC zaO)DyBHq5ZLo3|Z^fIh)I~e+E7e{LIJxyI^-qI^8kaMjSgYECvyo@yh3*jD^%!FX! zc)FI{X^moJ-KVEV^7S6exj*bjsGdtDdr48;V0wNAg0jvU|FSN_(q}y-Hm|+>2WlJv z)xfv01I~~|R%3Q=%`GW|ae&m^whFa8GXrSZ-q)lr76WYYM8~UisA0A237Ojv8Ii%^ zWBZa=Ib8%?d;Q#dn9(f#B5d)!T8;hMi~9TWFLP{T%^~CIoGIymM${V5t$=j`S2R%b z!D-2`-MB49_1s5smZ>Lj?!IrqGDW`iB3Hui)4sIQNxk;9nWvJBjs#9vkVZ_Zo3G8P z43n`1wEox=b%7RRvl7!~QjP&1JG~PNhC_#_-3ll7T0DDi$1E3G$jcAkT!n64-obRl z6GMTl!+hsd+>MLpm?FmCI+`d)==Y3P~LvV;U#ZaCwt2k+Qfgu7C3dewAi^^m{amdxQ4J?3ot234=`0Pcp zKGg`jHV3tMoZdfIhXHNk&;1pMXNFUpyukL>%Hf{nS2!m~{#a=tUQKq#iz)jf6d(~z zKCs?C;opU_;#s2mEGW}(jiWqxSW#CiULSOmy22P>O`|{AX|dX8o@sXUYt^4ze;vQX zPUOG(j*N7KhbKHIpFY9#o56TqdZ{dxK={sxx`>oGLuM6~d>d6f8XsLxR}HvN@q>2R z(^}_$pG`ZKhjOgn36|^|@7)LnC&{T~7VwDgiLQ1mQ(DtOkE*7kE00cW^^6yPjx<_3 zYdu}r+1Ddg3on0EpTMQ;uKSS2*8Ecoz7HeFKHE|i3*+fMO)0L0^>hfnnC+wh`^EHq zekpI}=y}X3xG0m1Q$|Ue=xytHyMaH&7@sU7>cm^&6yge}w(T?${*7eBIY4l=b!(SB z!UQ|LT&VrJ`Bi)o5RR*9st6T|dFrvMmCz_x2)}#kJ}%nP!nXNF`|IfWBZOB?X<}15 z8PRP%{cz1bwUEg#bxRfTrMWMXCo4jaGO2X2USYnkfw;)|?%Fk7lFXR3CpC;um|*lUDZwT@jL?@0@+OMaF5(a9q=gOz%7tIXF(?qdh|4ufn!d zqENpQd?6}$SRjFN;3vP8-0{6;qIFh4d*3koM=-l7qh5CWdqjC~II!?^kI!LMD;Mxi zdxg%^QTkGom4om)y60W#DXHbiz%{(P=rYJc*lQ z`4Q%5`Y_guwB!mh-An9=R`m29(t*07MWD&cBjGv#p&wV2mX!?xc6cP7$2+@-(l)W| z#iDlcfjcV<+Z|j{56AdN*KcBCBD5uml<6S$aKC0QJw|qC3oG@Y(YVW2?3|lb7bT7l zMWI}PPIbaTnJVT5mMi#vzh`a**L4JCvgi?bhbfO_Zyu>~StAheC287wX^7MR{3QXofXHzj12ha^2&>E1DH)utEoMm?IY!J=c!V{z}ExvoF-@JKTbIS%xsC6Oi_%Dc>L# zx7*Y<8Z1t{(&J$1i7Rx2W#0ytXeg+{+%gL# zVKzKKqW<*l4I;HryRZs@IfWwg>}v%~;8=@0s0ikuE%xBH`wJH;^1^+)cypraRO-%; zF-ZwSsY`u%PgEPuwJYc*g*FrB)}CpThK&cr6Jbch{lh-*2ebuM496bBLO(~3Qh&Ks zS<*lJ@Ec(B6$arO+vanW!JeWjK5GH5c~7`Fa zr^%A`#yN;1wc^nS=r7EN#g9Pek)2Bs9y;6&nvx%BM!+(CyNf)Bw;LAc9vQ|J!!^#OSql6RV?b+rv zoaVtboO%EG%F?H$o0+~A*{L|yg$RxsPfD}6`%rU}t9qY{jHR1lwZ*SjD~(qF^so&- zM;y4K3W{r6O6O-m#-_ND0=gyPrDif%`;>;KhB5}M7j{Dvh7hZ$mLccK>9b50-yJJC z-{U&uR#ViBahG2Y`{Jc_b@H!+Vz)*l!Q@vN!cD6*yai+&K3@i`6w0;dtC; z;+PE!F={v7T+y)vOUtt3+vw{RUi>UGc|aZ|fvSSw`whH*X%rg>5vwp7bXEl8KjH|i zy6dSbf_zJnjY&poCTc;U7RDX7^X-C4^wle3bdB`E9m~KV{g^^qXcr{j2qf5I{(fb@-kE`VQ60c}yJB<1pJGGo9ANV2VTQ%8hGPXj8}1|0qNOYeV|66#6X#~P<1HyIjGMYh zycb-9*&^1Ch~G2ihTI5yywZ)f@QKt~l~VQ7jddpd+U6!8IVqVZ1($}M5)WFu0tEKb zHQCa&qI*2!t}aU8!Mv4x%ndo&sh{IED%8n4=ho3nck2;-2ntYWrLek&*2lt+Xm^4_HDnpY)VjWlvBG+il2ZRhK50%gPf}Tjen#kAk2l zL!&#ckGqfNI|C2x;o-Zy6OUt(v@Jfc^%Dq9sSV+gWWbr zBl#gyFb=;*%%{QCk87 zCu-R;E3X@8N%QQXrKe8EiHY+6G4bdbeC#v|iuxuMS}pbE}m)OKbM&S9ThgmUJNSMk%w)yYJbbi+0jgW+mtk@Aqtb#q^zI(CR;voVbW~| zAiWSX05+ffE6Bnkt9l8n^c4Ws%(ZNqcZ{~%7YdIAhJa)tzFm(foHj|D>0+@{feL}A zD7Cib>xOT~_?x;IvlB;B^L}1#pvPwF9^{E~X3{4aJrbOErYeHF;&h_ufjDA>t*h2r z=O{kVDE_ojtgD`ojBCBt&j;GPm-%!^yKz?jQBBvO)QOH#I~#YW&Y1CVFK55eu~JQM zcXiix>=AoYQD~r58YT$i;wZBe1u$drKCyAPu4*jMTuf*rU!86@dB=?n|5rV-6JOhF z<>(@#utgIklSf~O{&8|Hn6u}kFUH4(;Mf zFKf{V+(yf@)~C;Aiy(li3*%YIRGfMr(UhLZ^h+_67PA15y%K!1wHO^mTxzPWmsP0< zwwYIrRZ}CgqU|fSLqj))v7Jlei%p5``97y}zaOaCDtbYmv-Mqw!>0OT;w!9KeVxLs zI?1=1**SMrzOGPiY^J^bwOUd=MkC~3yYsmHZ=W+Xg1I>{=c8*3bXK~aUVDM$JFVjd zf2K^_9EtXsTxbQkYSm50y7Z@pOM_)%XGss-vl z6g5!lwO7)8TC67*Uu~aY5zny;n9BtqQ5SbQz&rFm z*4}C+G?RJQ9{H5sf3m&8uBE64X;^;Q(A=MGYCXkbo8J8WL3MQfEDH1vZ{QhbAiLNZ z8@XHxpU86SmL*#JBuQXzwEeqS>C(HRD%W&6?A>H#SKj@A#-xsa-=UyU(QEu`4@RCI zj7bThWp|e9w>#KxRJPgXC8}+mnFwY(9(u%sDESmj7oRM8okWh7AELDbg*m@#;k#II zAmwent>lrjai+Z-PrkaHWPPBAiwx-w^gI8G)`t_(;D@t5KG8bg-m5P=B zuGL=v1P0XdGx;S4bi&8)tV|b`24-!$sV{*6`w1HnMyOtxe-j``c!0<0r}wCWv`kzO zh{i)NI}IISEjHpBR2CuZ-&g!V+Z+`Owv=eqD7c(1LF7((7Fw)ffqJTVrk5lqseABr zMT>j&eoc1jH?FCFUVsbyLOd3l6qfF@J-}Xq@V$a`%Q=X;Mi-}blh>OFwCByV0gdFKqE0KQR8&^jt7+m zOYBHQq!zV6-*OxaI(Y1>2g_B%Zx@o;}J}!OI(EUx9W>8(TuR>ES-4bt0V*S zCdQeOfY%0Lco}xfxItQGrk4>sN8+sxWa6JV80yiFIC zFz)A`{C|@g%8Oqc2h*1wPg@ux*oN?9XEC$Jc91bBU=eB8yg)h7TQy%gXhh*0t)W_> zMcClZK`}{ss+_D5LkhMiVWU=Io0awuR4}_@ALiBpB@iBpU?aKe!ZU0mr@%Zq`#p((BEzmW=V3~*HL(k$xMxHaD0T; zbJ55$eTPc(|B>@fFTTi2 zmQJ8K)i&WC+yF<5USPdMRtf!f@DcIc_DvrCrFK(;_U9+g=9yLvW(pH z3l(ztu+G^Cg(zB%`%?&SXXH63oo$xm8auOk1HC#}ChZE@W7lB0{`O4DA@I_fb-Gwt zd$MzGw0Q+>V?s|%`u@%F)U?6^SMo$1rJdQH-L$?eE;(U%|L4}$@x76{)zTg6NWmY2 zsNvDY&Zo~WX-bNq)|bLh=stS#;y~VX z4go7?7zS}kN_krBYWamc%5S>Qk?QGQ8;r~UM{%95p@<=1s>J?{X2J0X;ByOTvsW@&(*}l=+OhO zfy_Nd>f|iECl}=k#vwo?AwhVu=Pfzs>hjE2i1jd3OTEzwe;GOXS9jl!xRfsKIg^zi z?+$U7$`5|kd|Ub#X3vB3rgJd->36NB6FROpHGmc9)C#sT@R1q&*X={+kGNv2F;-sk z>z5xWSQ~r9*3o|pGeUIj3SJ$^+&M%(yrB?chfe6Qw8Ng_`d;wk|LKPpczprH8WwT| zkCQU7{leA-uk%-3v)rKfF8%BGe%HSk+1=*AeMzW6jVPP27P==@L7KbyYLb%g!+OoS z5g8(HV_55M4IliO-URoHj<*GScz*%jpuX=MH?=t$*E@6}IaPdvx`c6RlQ7+VJ{5KS zj!Qi`tp87Wc(A*p+C~4|A7=@9&pdP&Z%TWPB)CKCPcPA-Tw-yxvXg5 zOBsD1am%owSJQX21q2Ey*Sg~MbE6K33xpDH3f#j{OQr79khM(1-I?JTV-+q zOzFGduzIzsm;A~0;>Y`RXI3-A6eX@Zx1 z*5O8vAH(1iaQ1BD%lTBzrEAlgV-+V4p%3yI|AeeTY}dndd1xbI-B5c6u1 zI)1YPX!ajPE0~zq2YlVe+TG1KkYBaXBvqF)3+NFbxOrYv9m{I1N|I=TL1;PLSi0ERQme*S=yIC5%kJ4RYPjb zURyDHc(f(~fF-BRMNnbFr!u5APtWQ^WO6zp`=OXbyoXLqe$UNK-g_z|qVO}g!{R5@ z-V6%+cceqBDhniM-&~>AhuF_IHz-BkA0Ngo+ui6zvVkkAQ0qF>EhH==N0unQ>VYua zw$M>UvTN@0til`U08XwB94hZ*ibb7`@x|Ej5Zj$7*4R}fs}sl`9j$FQL;_=3Ru^%r zRuvW?z9hJ4u)cWw8QCxJ3mW%cquz3bPZ<1?;tZ5#cUz$%`Nne~7pp=uUu@Hv4rhEa z&}Y9FYg**)<7yOZ_|XCA3!tjLOVivC4dTtwCX?o-?yCDpChKB5T^#kVh${@|H41e2 zh!?Nj1^koSSZUsSUzSt4%5g`oSebTZbRx=|f4u9d-llI7I9^!4uEOMKWx2|l@{M6y z@Ub;_H;cO=k;CD00fo~6zR-P1NlCGF{WVygS1&ZH*bp@Yy>OT6m;h=@0s_L&TeNf) zYYv`O)zypDkS%Rn^5Uq7|3Huf`fPC4^nmQ`MrgCjH5r=xrVr@b#tM46PV)Gsb%yX5wwvIq2f*D>(i2y%N6ud7&Fr z}n znv&kH_|GtuZKbS4Wxqo14D5k`^* z&TS6Mte`n0%yap0Rl(V{1Nl~%mWt#HS(J^@ED{|5%+OxURT3zJaCF0HL;B=;=jb8O(! zSv;;`cQbF=VaZJsXX-?z^~9ZZ)cNrm@2vRTk6Fjg@sx1NxdW7vi5RP;;IY* zbM+J7QSB!Mw>)N`QcKA>dV9WKRiHNcPHiVJHW@eQv~@qBsru?=s38yyplh&kH$Jp+ z7#RWH$E3YnZH1R4*V(9}X$>!&4($KxSnb;fVuI;@$=3dJXLpoB7icNT4w~NPwwP+2 zuW%nrxSiZS#pm0sbMzgN?x)8YqMNFHOPI=$J9ci$J%$3e_N1AtkCuvorMY;1vLf;T zRK|%0K1T9@C(1loa*OabrA+*bG2WP|sqqZ2ep~ozc-hTPDbgwO5ocPfd8xT)vZ5$Q z)}x;pIiCO16<59U8G;ME9pdgJo-s{a!ekbS!;HYUlB7lTEYxVWJ;^5>zI>z#$R-!M&5OVfm1cCT<4I z+4TW|H%$Fpu5UOkNOj5I@Sog>X^8kw=OUjE01QJVsj{--zEl$P8=~ISN0&_uD3KrZ z)<1aYf~@zSHiYrJ{Rm6ki~JcL$eijM8p(2@2Rz;4pVS+!=tUy*(ZZ6+DOy#X_HfPI z0O$@9u@9O6=vQ)h_RU6fBZxAxx@rS`Zkw}P7us$@{DSE*Q*w%l-BEd1^gtlcFvGp? zj;I_5`XLugNda!ynC~^msv@;27PJFc_9dfp7Wjt`-01}iXhUhk`HYB~^V4rX zKRi<+x^l7b7ct_2V>-P-nN}atRvX@>+ZYF*JaxzAP<4j}sSwQRz&WSr-B|zhB(#=q z__rzX!AkJ4L^bzKq}|GC47vD`(c;o4?Px}ewFli51d{K5Dh>)w?3UUXtvou@Z;pH^ zO^jv{dhSLBxQYv!qqgeHm1S??Y@;pCNqo)p&R?NC58C@W>+K$~Y2;|*(M&&|`BAN; zaSfUA+8pq0oOYSPu0WzknCpM`El=lrq+9JTFXWz_yl14xJ+jFIoRR$KhV> zZg#QvV{}stHuW2CSk<)s`~2|BmQv#msef|Zk{a9oCeZ?whtMtG(z=TQYVc9NHkCgo zLz$Pgand6;cN8Aiq3oV`np1mBaNK`&e`ZB)oHbfD+#luf733Yr@I7|JpwWTajvA6d ze7h|um9v!@;?+^^-n!tS`iJ?7r#8HIHn_FEs5vY!IZK#iVmit?JDH=QaiGJqt96-PrGH(Pnv353T0I7 zee(jlxZ$a=-V`hGn%HNfzSQkBUaS5r=5)TTwhCtX#8l9ayK=NT<8|AecL^x9$G?l$ z3*xGqy_`CT!4O(<(ABuB9x{hngm<*}6#3P=unR@N%2tDn+0a#aoyjf}rwR)dXf6i8 zUtbc~E>>@3-H-X}Ii_m2Z==;C&Y$xxZId@U3a2eedpG^tZ0en?!vY8HVinUVU_E(4 zfVCC$KEVg^Z{c?s2l}~I4Jw$0R?P*!O~L7`dr0tPf_DUgFE5KrjbtT$Q(2YAjVbsd z`1Z}wD1OB6k(7f+y`)I0o8IJXv8V#?gl`!>gYn8rW7_7DZmV_)>{LnK9o^y6mARt; z$f|Z0FhZURn^tdBKcL_Dfp3KvPUGk+=~K>v{C*rM=tZ%gwxCQ&l6h*1W;1VX?i)us zm?lr3ZLzV*OKg2umis-r(RQB^Y$nGymgalb)yoGyK=50imA&^|iXUfu^T?GiK&I9o za9JSC6_kM*&ez+c^G+u*g?Y!9yG4(l?EvyNZKPx7jR;sgRpg8%1Mj-KaV(fGo zP}M?l{)Q;Jwae(z(t(RmNA_(noCJ`@$?AW{hK?FkAE6U`CK)XNejFic=UvYx0r*CM zTT``(jTy;DWr5@idc8>0Mt!?wjYn}#2SaD28~UaC^_yl2DaHp|EDAi;4jp_C2IOYv zvrF^e(iYW{iGgNLd+b~CysW8h@6j&^2P}&%`vqt6KYy0%wa{zjfN%Fana`flRqJge z3`#*#i} zGyG{QEwcj^l7Cz2AmIuW8ATj>Q@>GvNSj(w262LR}Unl*ijQ4>bO< z$9xESZCXfj1WMKUTaPvNZ3_?wPUZRz*$Sf)k?S~C_#Rvv=rA^5l=ffA+3GA5w4lg) zPzh=tHFC7tN(?Qw4>NbP6-KwlfTC&1sm@-mTBXVgq;eFLla(YJdxZLy%w6HTzUH4X zbiibg;uLZW@$T+S^FcRaaNVzeVhv!U36Gzussiy~ET$?_^Cx?{3^97GqZi(j&YEy% zOQEgz2k-U&@YMuQLfXLrl#`YIWw;FZs16^D=!}rwsaCKS#hO*$2+rH5r44bi_gXd(; z-!QTsIds6Sz16OvnfDa3M^}6FGCzl>vnjY7&~rAU_m9uxld8cxx#WX-k+~aZf}c?q zf*?wfYp1Q$(?jzXrnr0NukFu4*}24sjT%^WbOYAYb9Ly|@_uzdA4Y=-Hv-r4i zsKx7WOJHzaQ0KJR@cqHpM%@71`gTk3WM5rS*O6*tGk;SxSYU1*w`kKhk{{sA`=lk%C4rkjP#Gx^VxJun0mNEpM%feBusOM!&4=jXi3&>piqcc9&M^ zoxhpA>2ef@=M1?u>~FUY)fswpmBGOJZF}+aqepCW%(HKoki*^?r?Sstb0s=G_)WzZ zbt~rv`>B1uVmk!a2z73L0~sdu&x*w>9CD@Iwk_KIGsMl}6rUm+H}c?$!TIB}FekHK zls`FGb0K%`YwDT87yiY6W9KW6B~o~iHB--EM>yxUUila^%ezCqD7PAvT%Ks?T?!h! zc?D&1@Oyw0{vQtd6@T@O;yu$NEXpw;Og47gxx)-EvoH4d(|n7A+7-6VcBgODCzF;> zHk_1Orl&6Ec$%SK1bHWuGOYI# z;3t&kk-_wt{jXve%ISmu4i#nWw*Ajya%ty^Wzn^~v~&5*NAmoD?0<_#i`(S=GWEvv z%|MjFx#hm-Ha1n@K5_i&vM!$(xRl%oxvVOPH6C=DOw3COy|R>PVt`p zbHeI=wJHdzO1^qb<2v7lgSe)!@B(eNhh=kaF_>rC*~h#x9Yr9yF0DD*+&Gbk*vWNv zlR=DTn)`$o@lAPWn@=5NLGknyppb`BtDj!&g(+kHR!j>*V6_IY69ki8GTZD&y=dI7 zZzr%$4ucsX*5#P%a};l#1zK$JB#P5yx^=%;QaJut)r}a0S~f+$I{b`4vJ|^|+sMCD zb%#h8e`s9)-K1t0wQX9|4hyt7ddaVC zVCHTv&7}{KD5+5QU8e!KMK5$Md(eGh#c@}VMS^4ON&D>+7xgP2N-?(T_smh6XX6x$wC#ov zU(G(E(^SEm?8L6RA5yWlFu*ahfHgchkjdA3TgTpqf=Un6@c_C_HjO`tvh42bPt?AQq?Njw^*3uK#B6@ZZLEX$i# z6f#WyOcaJuGSmy3d{KuRT^%*k>*|bcP93azT^OSlBu$^(t$>1x)3X(p#jNxdzD|!@ zsAz{g(%^BL^h&`#a?Kr8XWow(S077!MB!!=DYb(1TS2h$J3-=%;wUH#k0VQbm=`Q5=hC2P#!lU9a@I|{t z$L7tc%8y`{+AacJQoY!nWQ6K5_lp1Gt4rPysn<1^zNGgJ%(F9=t_; z+pp$RSsDK06%e=x+pOc!#acFVv#XPXuIB7cPzg6}&qlHfAwJfaA_1a^9&DPNk(K+X z=Y&@Cuh|X+eY*#4`Vq0lRT=_Y0R8jM1;kW7Ju=}H!W57UFL}q8sY0t38gYW?um~xd zDQ~~Gf$ot!;EwNmMp15f)(*Z~k@{!LpI)PWxycfZVQT$ttWU{^Ex{SaFmCc$yw(Dx z7Lnpie=RX9e_bfglv0({GR7eiN@}4sQ z&y&vnUs7A>SsG(`ttX~aV3jh;H;m6^Y}I0R_6?6pRqPj%7qW=MCOjD=LgHm-RPO22 z;Xam7E!QQ>*n$FEE61xKSP>~S3ZU>q!$fzHq<~j_9U73I>&q21-%BMW8Kk1k%s1TZ z%l5THrVPXRwwB3uaE)vidIgn7GI=iQVi(JkF@;Y5jwI_f>9_2^jdl`J_{yGa7 zpH0KXi5WX@8MwnT*-nh~`wuokn{Psu1}i&lMdn2w?H0^>gGX?i;)W!g#{l3A_J+r2 zd!*myzPNO0#oHFPBYHL*TULvO%!UCv6)l205*myt{kEI8t#KVO$vOj2=6CD=7iV3r zc|8dQZ4;OEK_=Qx+HSUw#>6DbGO4ltOuZaYayzqR5%y^L*p)jr9 z{~6B;KTQoFbAen%-0`XpKVnb~0Kl+qd|@So}^?y*juARaUiw z&^~-z@kpd(SLCqd$>eQ30ia?azM6l8=J{N$gP)!V3oHcO9rM!}qAXpRr=i2LSSqkl z?!FjXq%3;}$maVPlGpW-VaoSj<{MMMh|w-q5bS_?FrzxWmLew0MGk>mPUP#U{KnC9 zPdBgcA(LSdMO~e}=<*zbms*5Nz*EaAbG=I(lW9zzgfYv)x|g|v2_7T$ep2ibkc8D9 ze^BFTF`>uEd<`=vyU<}#zH6q=y|iubWfcw1Pfykmu5B?=Iw4rNjqSM#mt#>0>pt?fj` zb~%jPprYS_dq+=MdZ=Ju248=3w5JEPFj|~j%sZr#$|k8)ei;+q}(I6k7j7pgC!BP&}R?Dqq|^NCUycb zpp$1+UE8s8Wlp|tg4&IYJi|x=gByQ zBf~V3Pc$*y_1nl2som(oFgiO7v8C<%bORsq&=S8J?HqUniV_t) zi>Lw9CFLnb;udkiY4d%)P}yF)dW(1l{6m^81!oa`>0I|~84_6k&hSjRu*oXU-@PJ9 z5ebv>D^4;UuPk=B-!_q`QG9`ZT}3S(lP`!nbeYSz_P&p`>$X=QN}C+;8ZXcrn5bw4 zmYJJ=x>2I11R8Vw*v(!P3rn&DfY7bx-UhF^=jQ(90T0G}uA{)l4sH=&%{EFE|eTjb;IpsLI_j8LzeJaXC|Pm^^Nn9()JL3O82 zX63|0Qb4}|sJZAa3(2D~z8yQ|o*)I4ptrII(Q*y}M*8AG@F#s(VJ`4yucFuGD95R??~M2AiI=`T$Av zJ!|g+@NMX4*J*gwIasNGPEwEL! zN>Z3jm;Z~kmrT1Ede+s9F`}%0D)LL+O@RS{bYz1UA5xSqTk)DQ5}mkQAkrQ|lACaT z@GB5|cICtMI?NvgN=)py-1?E@XD$+pT;*6nUAqEWXZ36BBQgqfDKX(gEt+_D!DbQG zEeJmWh!pjU>aKk$a``Y8dAQ>wQCu)ptGP(J>NLX`+i;g;;m+&|I@Ujin@?lPAfC_A z6hq8-!(_X9eYIIo;6^7q(n86tiouF#LvrV?7w%C>V#CSLMWl6&I|VWK1-;mzwueeR zc>cxa%gWA$>HLd64diC?%A9s+rZK<=bm;_1mE3|yOdp}ua0v8 zF)+~FaK1c4kyB%7CpH8x>hI3PUYLLwxlRXo@G+FEw}(ofmZ=A!Lf+V**!|#-B+ZE2795@V3~0E7`@KWp2{Kq1Qs@i9#w_{ca3s-qG%f z|1)}$(FH+dxD0_t2yj3A=R;<|5c)N3T;}ZcXqw-w+L||_cDE^s_a+#I@7k^@l-0b6a3675r{Z-z9sMtsVe-oIf|MiLeaH~;Q z(?U6%-U@e>Q9_3ywYI7xxAtV1{NbSb%jlr0t+;A#Kj56bTr+ESvyYFIX{G%Il0}9F z)|(6eN%4LiIWD#2-v>#n3qm3FsIHxpO4xaST4}y12)4!AJD~;li?Ree=lb>_8`Zt6 z$>5e<$uT|VXw#Ob`^?uuze?g8uYD+@IgXZ&L8N5wen8e7_JXK{-deOr26nvK3=rfBbR(NMb4g?;uYuH!iE^bv(QEghtD5=7`I#F;RS8s*y z>FdF7v22xC+9*jrN)X^<1AYF=;7A2-Y^I_!d;2~;v~*0T?dMm*e^8~-%6DojUh$;T zgOy{U`?dG`1P@3_J$SGXO!-0hw&>R8@38!Z=#1)bGm2eYA()5m{eGX#nEG zP5Nvv}<_@up6y*QLI+(;@<|ATf_iQ*#|Hl1bedtFnKx>*l?0f4; zN#mGw3d{>VhOkFfc$SLZJ#dfy8QOapz=b=(@K=HfVa28%Vp716kJ0hDtz)LI3%w25 z(jJ_|uF&rswX0=1O>#>P!1z39?mU{}+%Y_Adx;4KC0y(ieNbZ;f-Uf8J$S zYyjpF(%0D#W@K^tbMJ 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]NoCy3&lE1q07Et`Zc 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%0DRssM={#Jg{_?%Y>3mt+0PW^X>XlmHBpI>Oieh&1 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

gC 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%0AD_ z$i7#NAQ<4)hXScS7#|!;bO+T%&YVi@Vc6ua$x)tgZ^|qO(2#8XEZH$$2B>umb&@}1 zK8|fYOte^!A#p3m8;2fecJ5$DK@)ev8hu^%2E3y&4{yg(&wy~TnDaxc*fQ%f}I zN1D*N&))cp2WDcX)RWxbAB*|6oDJ`mNa0II`Cn$#m*O;Uk)(Td=>Y9hfyF%bv~%5+ zcWvNv@u1aWMFFbQK7U?YER5hWE85QYfi6aPb3gy&-C2d0Il1Rogj;OujsPSoO2ah) zUs!ee9K7n(OsAsEg;u?b3N)~~S={e2R5;eq=ZZ;2A?;~>ff`LQ7hh+cL^|oa9^Yg8 z@ZYmp5roCR;}&0*FXH;DVYe@CQn?fG+SCT54^)Pr*Mr-x?Ebr*=+p-~D31nmRaUce zyCG)!Q$>_jS^XiwpG=2`aNbK@FRCM8Q`9biD(G63*;|Nip@l71pAM+YCM5Fum1nH4^zovS`SQ1D`B+DoOkR9H;mh}P_7zUdrG9+y1rPiIYA+4ba%gQIHsgx}n= zyiI{_4$m2w`(4K~+E^LSQ}nn9!6+c*#k`=h1LZ%*X9udQ5D{|*q&;U6EjCQ-y6(ApP14|4tey-#|_4i9GNgo(S4A3GCOo3>0oUIQhzkl26ZL z$dq?J`Q8Uyr5WGWsB7o19X#gufm7X8UaDWmvIlVQhZ_1#q{3Ae^WK$gFG20+xR3Ln z+>Myi4q26uvRB?8D!Y==^8?OQi!f1p=J6|~@P?7~WyoSu=`+fKYjdhc)^)#!l54Ms?2@v*<{l#l`G9bhx2+*aO4nIEE54XVJuf0>Y5*++Na;WK20}Dx)kcM) z=POP$xvA0h2+l9@A}vq1;U z*;8=gqL$SHe;2!LRWe2EmLC6`*AwMQ#ry9rb`!=|WUr9_1o6mG7U1ikiKw(Kj# zu^yLoF5J-&k(_U#mHE&*)FQ^navcZwK<>X>_~h|>S7jlib$gQyH!J@Ue5MYsP%o$N z;ajr29Rjx09{UF<=dM$DOy#_NCrigSy!TS9avo>0XNAZCExRU}M}49t!Hv)Fco$xI zu6<0TK`8ia@cqR5DGA~5y8{1>@~0kR5%?Nl_0SQ1=7V_iOXBmX&Jo$A>s%BEBoLf7Ph=)c*j_m1>_S zMxM9WsDAb6b+B;bfBi$I`6A(Q>|5Ao0y}pp02K-HI$+)`&;+}EU_Nr{VBTC(O;FN~ z`*%j=GwpY@bF##Zw(>J7x4Z}2tO2zf5z#{X4WiXX-rQW*!0~RVZ4_HPvPVRayW0`| z`bK?Q_9je*KH?Nvd`}x^=@3byShXUMYsK2iN1r;bPRqTS`ZK6h)F_{m7%mrzPsmSn%q<_(qN~5!3*nDRMe}4AIW$JdQKwtRDd#Q9P|2b zr6Uc~Haacu3X zQI5%uXaB{6{?EZHT1E*%i0E1X){s-!`gTi1xb{l=&xUt%i6driHQ_$F%U9kGil}92 z1@V6A@W~IdsQz)fG&1~=-+Q0E8p8KJ9F)A5Xg_?+SNS>VrHlK&>(|s{-hA)4V4KXZ zS9MS)x3nusF~~*+vTa52*vTFc_t{clnw{pXliJ~j^8odd8uz?#FqYzlf_~LNNC{bg z%m)gm321lrYBabwy9<>@1cnTtgF1R(C+<~=S$W5rN6nXg3IwuW>971PX{nT#D}{}p z$VfOYC!nr>Xcua<+^U+AK_n>z7aoCc3q1G6o0;A1FHrPZ-PynzgwE+$^|t>zD@Igf zo*Q_vepyCK`7Qk`SREwb+CA1;)S|L*U;%mEw8U_UZ_=D|8K^f^WGpQ3ZVBw&Zn&It zR7TVH9Iv0BOJJb#jC>g2+*>NiIlk1#9#-7cA~WTCRt&(a2C0j!5`VW1H;{hHozg_+ zU2il6-KijuDs13z`wWJb=uvQF&oy@ z*b7+9ZkPaZo3SMTl9=cF(?h+=`4uug$v@Ox#uTW;B)}0NIz?YF0>GS~&0*QuM`}id zQBuaA*yQj|l^KbcTX|e!`Zq5beo;2`;&vpbR=eOnT+o%Q$BO^$X5w4njS%ZNfW9RT zQ1;1EU!K)N(~YHHE}vo1p3J``pHbTe9uZDGT!n+k`In_EM`CLoWi&2>B!Xyp^(BS& zA)*;k&Zcr}w6>b#!}2_TFz^L@-JM>xjmh73a{|)uK;OQeXr&k(b}fj9;XiH$3^efqkS86)`h%oMiXd zZ%8Th&XqQ^r|0(Uy1)zcMaF5V6G0L8LY?Kjtr0{ixa<{cP-_2iPJ8C%5Jw{h@B#p+ zLZ!P6&JKEnD8-F3^v`)*(l?72BfZE&Zh5|s?DV#<|J!p9EoAF^OQRyQIizy?K*K{o z{>JE;O!!IhQIai@cw7KlPG}GYlwI9SjcHs+zJ(@0=Ekew4ELc8T!{eH>(ZUsT0Pfu zD2-xSgB-4lsD%jWiGHGWQELEU`Nmvi4@=vQ2Mi7za#J#+I^63`Kpe(rd3(I6BaxdL zh0-o56!5j}CR6UWybC)oDX#JMa!?k57u9lf9(gZi+RiD%r{AoIAVfZdd)sH)@JFEP zHotayOUAmEfbSes{#&HfGdR%d8PblZ&|hi~!|^pGTHw)yUjIyC4!@L0xA>2Ps)rwl zCRL3%E0#3DTQo$iy5Annn;J#KpdFuCh^GSN_a9tg_XbDAmGj1xm-4rMb88alv}fV0 z^~p!I1l&D|&bp%!gaC=tcT0O&bz~mJ4mqKiNdFh|l|SQ-@GJj@x-$WaDIK#-2N(P4 zTUvIw|6}M(9GPzXI6n80qnH}zh&eVX$A&q|k!vw*%w5j1IWlss^tjWS`>1BgIflu7 zBt4Wnw~>Toju0i}>HPinKYX|E=ll7*->=t+lSo7W|Am|+YevcM5l(h%oT&22^}vc> z_e;NyyM>e!ZPS?C(y+%Vg?6^T(?$wRKk#_Viz=xRI>Q916(4Sh_%3vBDPvAvAZ5sQ zfh2mkI>_Q7oHSw;OgDM%q3_K{#g=Li*-V=sRr#`RF+27l2^ARr;TV5 z&MljNV~J?ZTy+Bgm!0(3<$-%Prn_?~JkoUkNSOlX^n>?^e8`ITfW90|qw_^|?_R7F zwAXkVh`aeHz$L1I?6f=-o^|Td?nc#>#N>_@u{G9!id;vveNE%$B@|PF<=}mPHQ(^h zM{>4;h0E#p;9G~ar%Ek*IT?$vdbor1P9ADE$1&}wYIA+dzRKq|xi*oC5i_Yls8NY` z2T}^xzHJ*oP3+Y_R*Uwl;VKSE1-^sNx&g#~(FqhlM4aJ{HZ>+0#F%PD54W18{KQ z;Vp{?-WQrw*h!trS11 zrmeQ9P!6`7&*upw+7G3Sc5U4axsin$&0eE+MajaGt6mZql;iqG2%komL_(6YLG4I) zqthE{$i63(a6#D!Kc;88d=&3Xe*sxZ^n6YwFFd}de6b~L2)X0B%tcu({dIA}pr^(K zYxX8S{nR^t9pYQyddDLX2&Mc_9yw!=Le=@DGG`fAU)lZbL zZar$DM`{=+P_hepk19@WFx5T2OFgc6zB}x9?G5a9Xum;h0{01X9dRB6#ovU%tuf$# z0Po>lEOSlP;IViWqNgn;TU6ECL5^`nR60a{s_!tWSc(7L$-KX_V*3pX?r0OyxXI2( zCu4H3=SztSKRewC>#5!#wo!44Z20#Q8X!2?-f!Ldjk3ru*5po%y6vLd(=WIyf?qn2 z^Se(57Wb)VN)SW;1Kb>1)ap4hW=;KfzhkjFet-~|Tn+xTbwxYAtYTQ1=4x~%{j6qg z#vs@wr*=?H!%0RmX+F%h$n;jf)mUNw^$b6$v+ka1lSxo?Isf=Ii7@bO9H#VQI(~jy znM}}HdVGk6dyf!fM)X<+$3Ck z!HMl)!T=kEqcM|l$eSp185QlR^l)@u450bN+=1xvOUz{(I^S7){*1tpndB%vEzC=bqbKL|pGD-yObY1; zuF^P&ap)EKf|+=sMs*~;aMy|3(&)*L2`NfmYjX7l{J$ZWi-+ScCcBZP_LaU}ZbTCf zNIi%Hg;Gtg%@z4@o{x(I%8mP8DVkXjcB14nOdagVnhlY0?0wD}3c~Rw{+woT2&}zE z)yCjthnx{T-uq~q674}Xa!BYP{9YdFN`X5-d$@|fACb1KzUx>}TzWf8a|G4P(mk(3FgKJiwwR zyz`y+qGk4fs&RBS)lg|)kymW+Aa24gAYbjR=AFJ=T^!0u+Hh;_F_W(k_OULTI9J3Isp)5Cau zFckg?rmMc$!t0;@IcN?v|1^BX#w&(_4@-JoaNqc_>U#NABz(1pL+Qwy@;bTa%H;bR zVK{T;dV*Cv<9W=TzFdAK&YsR#&(Rt3^H!zi09P3_Oon`ohS@{z^i~h?3hQR_!P@fV zKHH!jTJ@2aP+@;tCYK0)i?>dAXgai#{9Kn`}EZ(c*zTvLPFOOIj&A zXlTsbZFAvC*LrPht3}9dteJ_e+Kz1(#Bq>@N$wu@f0#F>XE6ah!_GV$-9xnahhA=1 z=mHicey11bFaDg1eDcn#JaO%K%;-M{ralK>qLnv^add@B6b|*nFB%?JcglV8L!X&z zU7E+8)5di2Zq5Mvjqu_qQ{6mlGpnHbH)V1#(`W`15P*&O&WWUT+Paa}gs-la#VFQm z4-dls%rn-X^AAcUemkNw<*e{riu;#+o|8X=_szp~Ex@hP0PL;l7%rhV*Pr}rjI{;P zC3CfH%L*$C)}qR*d#e9ih@7L2oA1xvJ6$lD{q-Yh($koy--4s%&G9H__GXIaQJiv$ zp)XgCEBuqG%g5#o#|9QQDWTGwTN$(jQMb@oE5FIe58%IQd*VV$yA(L zaoWRVh(!>Xp>Fr? zO>ieI%7jH9R!p=7<>#8(%5pPl;n4Cq>dSl%e0^MRF(@vCiixeBU(Kh9?Bl36owj^O z(JN-~mBrgLuEjwUaKv@f-Nl*qs4>g4ufA7m4)ufE)Z@afd4J6eFVK#q_~Y2!&~w-D z#<;Kx0YU^+MQEjFCLbrF>ROE7k*d})@4Fxul)cVnf|tHG{a7Q=V8{8PZbzH6@Je28 zBo4UmqS+KlZKlbLJI&q?GGbJQ)QUvf3sAuaW2ahT_%yP3zn4clv|a`!XA@2RBFF47 zi?!P}$Q|^U^^AZr2Z!ayAj}tabSQ4ZSKg-?I){YwaV1J=hp~gQ6^aBZRquv;gLaMt z$eUFe1&9Tg!k5c@lEdQ8nb@DV)S{Zc1ATGAltF_~CU}?Tq3W!q0laRjmf=Q|{i3}@ zV|nzHy`L76eor8C7WHlR{>8q=4oK_S&{5khJCTc@s<`s{9W-7h`~B`oAVuvs1P(1N zl!eSpEDjKl5M@cZ4Xq922%D;dOc>v<*K*s}bT>38a}jrvgHCV`8QK&Mt5Hz8v`8ao zpr z)jkoi*2>Rv*2E4HE1CDe5vpWHbM9((`Fg+GY@AE#K};@M!+YpQ^Pp4~Bwae6mWQkO zVGm`Z)&iUo+xhGI(pUBjfJMOM%z~nVHbh&6UNAZROz+z$wQau+&xN9* zDM!_-4tl15HP(1#7GN4;omA(%iIggPQgENxd^Yz(w2fjsL0tV{$8~YVhlOv+jZn8w zo~&;e0zfhgq$O&@b-#E7SzxbIxN@))^<|6oW(%B$fqcB*PIzv|>zj#J*SQh_WpSSmo+BjvG^owef3 zd>RPOIWf+qjdWhz>WVsopB2NJ|Fg9EjaCuu7@l$jwHkVXIHlY462NRA|- zlA#%7g3XM8nhnmCi$$Wwisz4O@__}z58Bpp@~DQ|hwy$)j6P>?`lN2p4a}A26qg)j za^E)z-!#y{8^w6ed+&xp#U6(yn(<;LfsJqqZIsZ5l@%qD@eo>OzE}(WetZtBDfRvM zwrSr>0hE=&*?T}`ZWHJd#QU-K$5dp#WG)Q8c7PE%-g3DcRjTP`(=!ZkP826y-s!h< zsy!bXk}~r7#VV~4itPx%zS0)y@qunG)2amc%M8O*-_PF*n@at?g;N0+2wbEW?~GY@ z+?#O1?RjLp5hQmTVjuE*Wxj0newW@e4&~7rG^pD=k=lab_AgzT*5UgU0V_i<>DnCI zF_TK3-Q9ThPFrK|>iq~I#$}&_T=7=ND=iw|4tAI8RK~?&_=xvTT`g`f9&TM~q(2XG zxH|Q--9NE)M>4ub!Qz~Um+XzK`rx)9|6bss+W9humHavW!X?3E%uq#)K(|e?`&v$MS@WDtRVTNB6J_le74ooDjk_Xt zGTS^8ua}r*;SplLH&FMwdQGN*BK(VW{iL%_&RgD?s(fhbB@cM(qnUt4scqJ`*PNOu z8PRJ%&-fh9@uyyXs@hW-|3=K=YuohgDc%&CZSPMOvF?%4&>$h-T-pr0x!kzX3`O`h zbIWFVgnZi2>T#~Gj72Ca4sh+D##cRoyT_uhOo_Ou9tG&i-~1GR;G{opAecnVD|pVg zhrD)S%%s9)C&_4|T zS5#juFDg;uZxi7PT)73WmEbwHiYJWLgZO%m=z?a_ zCD#|`?(D--2|RBW^31gSH{r*v$x|?!&uhBs*XF2uvLNIjDao=RM$E=w#d&f-k2^y2 zh5=*`3$#@PCuWhFd26N^c^XeqHIoe?_xuD1cL=x19nMZt_czoOG$ELJ!LV*oLG zQj^i}=L;(LLqzs%`IbEM3}}4CrDy);Uaz_-iD4;wj^U*11);sZgFH;no&kR7$y7)2 zYu7x`ppwSq-8 z6(61n-G12}EbCTb2_d*~8yI8#TCL9s`-r8?3`4bU2;4wF-l))xGWkb%j`lfQr(&+d z(Tr0`mTnJ}Ex3{{eqC?sbAfJq6 z%KbuvM53$RxvoRRf;B!|5g)C4Xy*K7#Xrw>!}{#|Yb#u05lk2^Nb}dUk(RBX`l&4)`oW2ET3Un7UCC+kP}u>tGykQV=qI7RMp9 zErb>prdkNYewS>rW`KO=go9VI$u4&%V2um6iBzQ@SIaJQT_%r^w3MiAznlP&(9f_S z#rz=)t^#S}eauUjIDmXwYggWE=GDt8HXPPdOwVyGw~FGaMT{V@%?+oU+X>CC=zb4y z-v9SaEFqDyzvvR+_;ry2xZ4U7Yqh`6{{%d?NTW{ccwe4p7oYw}sd!4XQci~n2k;u2?tg+2RY=dl#Tym6oXl;g~W}$SIl#lh;>qv62bs^@3 z&rJ5;uRJbj{YAU`Q=LDj2gFgij={u_obVBsH=xLby$!5@|Ivmo~oV0Ayo3 zMMbVFe*4GJCt}pJ>d`P{8WsvTuI|c{OL53A)^@-d81LIPwd!5%-i>^*9&BrRv zbRY-K9K|fJD2#M)H$CWTykPbkRDs-`oN+#I!0vc%HOqj&+@?ELLdbsTC4DJ1UpIp* z)K66j>DI*;XDVC=#v{cA~6;;$5C;V zdCylqRSqOJe#6z?@@glrs)~0bwG!ggR_)*`6lMYi7<{kF%x7nG$JIJU#6a%BD`Uj) zM3&>rv_f{ntcyS*dT4lphsu3tQ1q#j*;T0bBHh)I&Rxh>I{^gBxlla{_hv*Y#>?aJN&St z>+<`v3fScu)H(W9<>H`0V|m!ag|(c5J1>nI`0Fal0sG{FGx5B`phzpd1P7A+yUn?@ zH&LrCt_|(LP)%A?WylS(p9mGB-BZ*3YJq%DlagtIU*{NrM%oBw;Zo?x8Aa9z4D~V8 zT55>C-$re3yi>9Vp=?%O8nwCv9XhJc(C?V6v=TJ2RP-P!HX7epc=8)T4Abm;GPDH1 z5GZp!9~+BBl3e36634G%`> zwVfUG7W0O0{CFhB2W{pfoeZuDGF=f)SO~k5N1npb+D}9wvl?;-gSr00ik7AsaQKChdBT{*WYl{82(vXM*O}SYXx}(3WQgK67z4PV;Wq6Z}Byyt?dnc8GDEa%n2b)~fOh=JlUSVcLOX8B#@IPDZ0Syu0MjdY zDR&F>Oj6h~{Ya`^uHBd{v*<%{I!annmiASYT&9(##UaWRU;7Aiip{Ikns>sd0|npp z7*l9zdfYy^5z<4IPZtl5W?egvBr z7N;l2WN+@BskENm9C6jL+BX;~{|AJ~d_LQ`)-3Y9-#Azg?eIl7=g&vVANB8I3yP6A zJ>73JoW(%%rPf_B!6)IjCCSaAOE0R{Iuf%=vTS-y?^$fC8%;o({tizoe@1wS<< z61|k#i?EH7oSJ`Ze^yZ*CKWkuuT+e-zuX$l9eoqsQZp;TfuD8#fz{8*-RI%B6sv7^ z#^5quGaF7Z3OQ%}Smbbg>G63}0|9>OG)HQ31M@9L!c_&l$;l}N_}qn$&C?6l99NIU zuCDbtP4Vf5E6%t)UpuTQd@k7xSsD-5HAN1aY*kgtHuvL$x06;kjUB5tc5K89kIKPw z1bmlNC+wnEy&?9|Y63HMCt3Ha_} zqT|EOL>nQ8f%d!Hz+2m zjyM&D?`>X4%k}M8M=DjQQSaM`qB%;pVBgGfhgMa98n9=6H79Ef^>bUWNReni0e{S& zMQT?gibeJ-U4OJob_wST?9lO=(GP_$ttC>$5%Ij)tERv4$wmhj+1g{OdzO&BdhfdX z5B%~n`dGLB1PSn{GFoPHPRn;frnTAJkFE(Mn?Lo)U$m$`=&4vFnuU!A+BbSQ~?9@~ftneJkVjJPZGXs^^|APGMcU#Wk12*<00WHGE!+L>Wj) z8}ycFZz43i(mp?gcfAZ@aUk`-WF8H_!Q{$|c~W^kb~DKDk!;nxO9<3k4#5QzIaGba zkCB79UfPKSF&9IF1#=hIxsDj^Y=p=iMQ)k^2{W~=R(*)vDCneftlV9_22y$SiW6od z;qxZy5b!QXfl3uR+`>vt0@`E|8VdQRocJd^BK6H&q=p84y|THEN@QdUj_LesGi~ki zpRyZI994;(sUEIw&glp2_rp1UDjxqY^6D7f9H+3OjRHYH78Y%*r=ertNBcQ_T(N-4 zHFP`!Jmjlhy%^R4Kn?;^_H7)bFs-dJIKP}^)H8BcG(X;YY`E^H8y(#jy2<2NJqUpE z(J$nO(R{eR&l-6-$<{{CS+|eDj-EGB12|G+ncV^Tt|_ScBZQVWmw!}~?+Ob-+i|is z$OS8CV&hyvQ=AE`fE7P!YHLgm4?CQ#9IOPkl9E}N2ulH8GGGu{36P}LP#eq(*kqS5 zPP&oi_-0(xp4NJ{;F)^P%enRpz+~MF&6f9g!;+`{;^8*p_QSD=q><6i0r76nBI!s;3%t#3>k4mM*U^XoJo22$Ky`u^F!Q?D6u6 zoGUg}B=)PQHMo`Z9akKHDDugb-nqa)lbXf{LCmdxNw1~~jx#=Fpr#dn{k}aJ+JtuC zFV9_M2VHvN{CPb%+1$S65Gmg>)ZlRSFhf#ZW9)JRs$BV!$2&_EUxU2iVpgKAyn{zQ zBrh7Iz;x%$?}wV4OP^cQt{OF~(($21m&AXbnP1~_l5?v((|J-Z$TX7UleuPf9|8|u|ZzD6~w#;r8W;gUy>`YhTY}P;NnsKsmp*AX@lkVL){rk6ubUn9G{eTFzMs*zq4e!@JF?CVtAa%Az=7>jGGXiTg+c~L&%XibM>0H1Zve51x&X71~(ndAp2eKC-~-# zd04Tlr1Cu|_gf#ujXJLQJ$YJy*8O4^(Q!#@f*x0*cbdjnT9m|1#z}h+s-y{+cf7(* zg+SH9)X%A~4$zoMISz?+3R?(AR#~k{78i&Hm+HwYy(Y0Xt?e(= zocCHt9aMUjmuvC^c+RMqhNarIo_nnEjr#cNN;>AlC?sa<%6I*!v#12aJd9Pp72tP} zYk&!9x(M%{`tHPg(11R7JflLVV0iVJx&#>P_%$^=hFe4So!g!9zPmPm&;P?z>PcyQ zpM@s;^MYvh<6?0O!&}pmNv4Ygu*qg&Zijzh>^6V+`dNTUq!ZL?0a%~oIvnVAnmsuk zht*im8hTBMu1#4V0D`|WWJRp_z&p`=KA9!w-P*g2m22u(^!=&L1K&7~1fIEPk0T{= z>>-6JF2aJtiw-2*!}sz>w+1Q#{K@xAEsEcj4(k*r`)BhFE8ciX2wHdSMjlnm`MRUy$P>I1zeQ|I+;J)A#=@i+j{;d%lG3k3cS+<)^va zX@eZ>I22uJ)a-j;B(`F}IBh9xJ1#(CtlKoJZiH5;F>T>tLjXViIO$61$h3#@VJ;I_ z`81Z!DH9iBs|%L|dFUi+$k&hBb7dN6yi{;*zuKc;&2PIs@Ex+THEo|xD~f{{&gybz zRhr7T%ojuQhM2u;zp$6fYr)PR0!8#sb8d6-IX0V!@R;=XZGHTvVio`rtHy$%m^EI& z?}LGl{gC&(+N7@3s=J_yP?eW@+w=70C5-8R9z;v z%NHmyq=yly@1y00{!Z^_OQA_CtjMdQsO%2p+HIHL{J(l`yp<9u>|s|iZ&^J%pER{? z%FhEnxN<^6dl-y8ZK>JPP!eiZd_;~QcR$d)Q?9~jLREo`#s0PmkK}T58T4)&&FrQ` zh-?ZJ!`P>1_v}C0%MYj&(J(_JuCOx#3pJE%w_Cu0q9A4Iu^`$_JYNw+xW>Xj#6+mt zJHl!)av>vywn+{L=#ROptL{B`C*l@v`vqI$Bb=!Zk%%XnJ+>?2MR-F#n)uI^l(-!JnV?y8BIxi!r#w zep>0O)91#Ah(1}$a~F~KfUxeChPw`shrSTu2V{|`UfLq%fEo92UB@rPg}#VX9e*B0 zHd)2=&Ge&tn`-zmH{SyO2kzVUKc!U_109*i4*po6$nUnPquSA~{k-X#i7*gF41Yj( zH3KDlyp5$7oC1tp4z1+v=*1Y`pw`0l!XuD1WV74N=FnvI0q8KO0R5Tgiwm=n#N=U+8)(Zml^Ip|-EyxX2{c&I^MSjCv?{J~Rdxo1AOvmEe^pn6{cDP4A=)ceHMJJx$0 z$_r0q%YD`&-R}$Wrt&ipEjcCX0w3*dHA=5;BwiH4zdk;E*?qH^z7X^p8}gfg=s?O zZOGq@q>tVWT(zDNqPScY0gbs_hluPj9<|mhyosy=q?D6lAEn2q-6NG<2;_2a{u~^O zB`<p1yGb>1a=f_JUP1vtYrg{=L9l^9-D^LHxfOf#rrA5(jSsjA(tRnMh(@?r~Z z9VnYCp>3PIP>%5gF-&T5Id(6?t6Tv6jH519+Ezdc7kJ&fIy{~LT!>DeKCcXQ95MTe zvH1^>JlC|0bh&F~9GRJn;Q#e#Kt&n9Cp3mdq1eG#0=Pl5_z1~!(_postkXBUE`Gbu zBiUSh#QiC94C!90B)>tQDb^TW4tIU&S7*l@f zyuI>_bFNk}GU!m@(SGt}GRSB0Ott{Yic?ywA9>wDPJr^1(jQ4us*N{jOmcKYFe-8_ z+taMViRD+^gW2ufB2Py+u`IO7v77Le>xtO}xy#%@K1Qw*ThYH2UBNR0e|w^fS`b)W z@1nPAC1ULZ75%r6xxT5k%w()l9AiuEIn-Wz-Urgg+C2Y~eB%<uSLsq1B zmfz#YAF2mTwrwia6j|$MZlcVD<>$vByBdvc2ymMzuqoD zHRyd73D>@PvAbr-^kU1OPR8b3&*(d5;w7!>)3Yw$Op!-&8t#(;*K;^MH$HteISUIY zeB;#bQ3bVj;L~^e#r&pBMX{+r&{sPAHg%hr&`;p%!Fc17;amvZ6>hDQzFj|YpA--# z_uf##g9%Xqg=LGIs;#H$-)`S#U4Nygps)B-=2Kw1t(Lp<>Z7yLKCYRprMMFh8^<%w z4OsM@P>ox}UvG9~w#c_mG27pyf`9{U0C4ri)~m~2z1JiBW<(FT;|(eb-&0nf`v;Xa zl?$|L*PY<$qP(@J4MidEwJ1WJ#>_*9q!Dx7nP-FzZ#!S0|HB1VAUW@geOKae>2m;& zCsb?GZB2B&y$1^Q@4OjwA}6?utX$x3D+oNHZ9jblZfD-8+`{R~#)fjEo$D}tY0ET{;sPgtSQ6RksLaA))S@rW*e z1A6?UOw$^dJHr&aA7vwJ!u7raAn@Gl{%>prj~h9egjr9;aE{t_MGSA8`bj{F{{4qn z&X|?IaEEa`p}Qe5C7-9DgDt2@-%|kXALC6TmzmG5dzy3uu-nHS%tbgYhqP4EiG1hi~0AZ*X_oB zH^csI{WogzN8<1P8`DzVW2s3KG;~&j-zG~(8SJ((FQjh{%z!VGRyLYs#9#^+`12^L zOy5rU*nhvxd+tn~RW9KrHyB&UMof0_Of`EA7Mj5U9M?;rC{-q}d%XVANl%?`(hgM~ zxh7$6)kd?cjAQD}lsE}mjN#lRTov(ouF>VWbB_vsneQELQlDJdZB8pjsLeKdoq!Hi zG5oab6N!?|L$sA~o37fV=g`04G9ci#>j z^1P@X;DkNzC3YOwOK1!aUJTwlnm`zP(6*jTcg1@mh`sN^wZ}-=!shh7?Ttc9-J?){51UB{r>^Dr2Hrc6fR@ z=Oo6a6y^DDtz4b=rR6P*DwA+cdsOyfQs?q%VqtGoW98I=)t4fvE4z)Sp6q0H6E1gH zjIaD7GZLPgZDrF|WsK48t(Ndw$vj-${v&<|+Z=3OpQnP+Mps)TSi*+i1pI+5-ja<` zxoXRw8EG$`L&GRLGvR6xKKT0oj74TnBo?=f^{^oUbCMC=0|iH#`{Ve;F0!vb1*@If zgLtN|BjHh~+jCqwK}fXa0X7a7ixY0Gw97qK=0=u!WVaj8laugQyt&!ECip&@h;zUJ zZMrTQzvaAQ*E$~=X-)7A*S63DvvX`Mt#QJiqw((<2?t}!v|F|7IMCGblhc1xUx%d9Hx2qt5_pi(a5mp*p4-!#{6)+8t2GPBBr>8yKXY#YS@PY=;4 zl2-h|`m%&%AE&oU1*TimR9UKHPd3TLdwFHgm~G4oL4P5f;EoXF{Bv1M*U)QL?#Vx{ zgzS^AN2rVN`3pgVWHKR%w#Cr8ADn%WD&y*Rb&S<2KPieKxLA}}Z7o36u|^lv5L2Q~ zM9ZW3&JH7`D;7nep{@C?QxfMt$KwUpoNssIw`c2=LkAnm|6F&l!#;>G1(Rm1gvPk; znK_o_N%|d1S750bACNp`-2}s#Jp1`dIU%&Rbr^>nNY&l49hi8eH;I|Ax?n;$Jsycp zpU!WUy_{(SuS^a%!h#d$avY4YQ+a+?V4^uKif+@#MdnCIcU<7i0P~RSHdzyf^f!FU zx;;FAJffeO%CtS6ab9mW|FcLX9MI-!o;p4UkbY5Ps}s4C&wj~#5f2OdS@71}s%NuX zjA*}>I03A)01M-nPO+j_tidzo#s`ixMpfzB6tLomzeRpgyAqrU(?eEblc~0z;jNQ5 z#Gvo*p)wrCrXPZ-s?Vxtj@mDMkTAEp=TDc{dnl!t&%uISmL7cLQbJkh&->jqlIdcko!1)KD@ReznpC)VBsy4}UzEOr zv02Vf2#4C&E~wm6pvj!LK{mGmejrsE1=**1g;l9aHO2j$riAVcmvGRZ<M-ifyGnK+(k>=5b$)D_(3(%2? z{noUj656dQL-L&Jn1s4=c2KlR8alQTn~#u@aV%%Jcx>y@?_OcbNP{?zn(;-^*1`VMWw+;gM3QHep4U~>+vPc!PoK&nVUyeE zH=1#~ZzK%GR$SVOj&JYJRn~i_hOO1D?7h#)dR4OCg@Np}6V;x26e9in^cpT@i0!&n ze7@||JpH6AsCNrXyP?b(^;mi1_;2qWH#!F6Yu_e2HHwtWxBOt8BB!FtDU=*nY5G8} zdGkqw9UBE2HQK_zRo+dMwMt*CUu%!np4Z(3cJk7`LQ^8Cpcza|7w8erw+mS8wrGA> za^691+kke@Cz3YTcxMRLsnl2U`!%w()KNeg9%gV{TC_fatjlZWV*m@^-;?rsFY()l z%k{KH3x#SKlIzj3@z%^^v?4T@$!LIDibOoR*da!lHeMXW%bEUL3Bk0Oo& zt2c5^l#~tEc9|%7#(1)!r5wIN%MJM5O0da4Sk6h3%m(~)G4l9S17TP%E~QP{=5rK&$z^i; z09VjNw1xPe?V9eh+J5QT&F#=A@(zdaTY6LdC(xjHkRolhLPTKt5jIlz_F%p;9lxY{Vl;Rq8{ZQcp&s
I=u#7CB&$Zj)of#?HO8>fSBKy${l$ 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%0AryVkgJpwgmBI3RZ^rYyaBU?5egMDX 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%0AiSpAPC7M1n9hFS?ZQ75t!ybIv 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%0D2R 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 };GGYe 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 Date: Thu, 23 Aug 2018 21:38:56 +0100 Subject: [PATCH 39/82] Move docs up to root dir --- Makefile | 2 +- {src/chiplotle/documentation => docs}/.gitignore | 0 {src/chiplotle/documentation => docs}/Makefile | 0 .../_themes/chiplotle/layout.html | 0 .../_themes/chiplotle/static/chiplotle_logo_2.png | Bin .../_themes/chiplotle/static/default.css_t | 0 .../_themes/chiplotle/static/ga-1.js | 0 .../_themes/chiplotle/static/ga-2.js | 0 .../_themes/chiplotle/static/ga.js | 0 .../_themes/chiplotle/theme.conf | 0 .../documentation => docs}/chapters/about/index.rst | 0 .../chapters/api/geometry.rst | 0 .../documentation => docs}/chapters/api/hpgl.rst | 0 .../documentation => docs}/chapters/api/index.rst | 0 .../chapters/api/plotters.rst | 0 .../documentation => docs}/chapters/api/tools.rst | 0 .../chapters/configuration/index.rst | 0 .../chapters/contributors/index.rst | 0 .../documentation => docs}/chapters/faq/index.rst | 0 .../chapters/fundamentals/index.rst | 0 .../chapters/hardware/index.rst | 0 .../chapters/mailinglist/index.rst | 0 .../chapters/plotters/index.rst | 0 .../chapters/resources/index.rst | 0 .../chapters/tutorial/images/arches.png | Bin .../chapters/tutorial/images/arrow.png | Bin .../chapters/tutorial/index.rst | 0 .../chapters/tutorial/intro.rst | 0 .../chapters/tutorial/shapes.rst | 0 .../documentation => docs}/chiplotle_config.py | 0 {src/chiplotle/documentation => docs}/conf.py | 5 +++-- {src/chiplotle/documentation => docs}/index.rst | 0 docs/install.rst | 1 + .../documentation => docs}/scripts/compile_api.py | 0 src/chiplotle/documentation/install.rst | 1 - 35 files changed, 5 insertions(+), 4 deletions(-) rename {src/chiplotle/documentation => docs}/.gitignore (100%) rename {src/chiplotle/documentation => docs}/Makefile (100%) rename {src/chiplotle/documentation => docs}/_themes/chiplotle/layout.html (100%) rename {src/chiplotle/documentation => docs}/_themes/chiplotle/static/chiplotle_logo_2.png (100%) rename {src/chiplotle/documentation => docs}/_themes/chiplotle/static/default.css_t (100%) rename {src/chiplotle/documentation => docs}/_themes/chiplotle/static/ga-1.js (100%) rename {src/chiplotle/documentation => docs}/_themes/chiplotle/static/ga-2.js (100%) rename {src/chiplotle/documentation => docs}/_themes/chiplotle/static/ga.js (100%) rename {src/chiplotle/documentation => docs}/_themes/chiplotle/theme.conf (100%) rename {src/chiplotle/documentation => docs}/chapters/about/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/api/geometry.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/api/hpgl.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/api/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/api/plotters.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/api/tools.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/configuration/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/contributors/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/faq/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/fundamentals/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/hardware/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/mailinglist/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/plotters/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/resources/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/tutorial/images/arches.png (100%) rename {src/chiplotle/documentation => docs}/chapters/tutorial/images/arrow.png (100%) rename {src/chiplotle/documentation => docs}/chapters/tutorial/index.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/tutorial/intro.rst (100%) rename {src/chiplotle/documentation => docs}/chapters/tutorial/shapes.rst (100%) rename {src/chiplotle/documentation => docs}/chiplotle_config.py (100%) rename {src/chiplotle/documentation => docs}/conf.py (98%) rename {src/chiplotle/documentation => docs}/index.rst (100%) create mode 120000 docs/install.rst rename {src/chiplotle/documentation => docs}/scripts/compile_api.py (100%) delete mode 120000 src/chiplotle/documentation/install.rst diff --git a/Makefile b/Makefile index 00af1ed..cf62100 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ TEST_FILES := $(shell find $(LIBRARY_DIR) -iname test*.py) all: test docs: - $(MAKE) html -C chiplotle/documentation + $(MAKE) html -C docs test: compile tox diff --git a/src/chiplotle/documentation/.gitignore b/docs/.gitignore similarity index 100% rename from src/chiplotle/documentation/.gitignore rename to docs/.gitignore diff --git a/src/chiplotle/documentation/Makefile b/docs/Makefile similarity index 100% rename from src/chiplotle/documentation/Makefile rename to docs/Makefile diff --git a/src/chiplotle/documentation/_themes/chiplotle/layout.html b/docs/_themes/chiplotle/layout.html similarity index 100% rename from src/chiplotle/documentation/_themes/chiplotle/layout.html rename to docs/_themes/chiplotle/layout.html diff --git a/src/chiplotle/documentation/_themes/chiplotle/static/chiplotle_logo_2.png b/docs/_themes/chiplotle/static/chiplotle_logo_2.png similarity index 100% rename from src/chiplotle/documentation/_themes/chiplotle/static/chiplotle_logo_2.png rename to docs/_themes/chiplotle/static/chiplotle_logo_2.png diff --git a/src/chiplotle/documentation/_themes/chiplotle/static/default.css_t b/docs/_themes/chiplotle/static/default.css_t similarity index 100% rename from src/chiplotle/documentation/_themes/chiplotle/static/default.css_t rename to docs/_themes/chiplotle/static/default.css_t diff --git a/src/chiplotle/documentation/_themes/chiplotle/static/ga-1.js b/docs/_themes/chiplotle/static/ga-1.js similarity index 100% rename from src/chiplotle/documentation/_themes/chiplotle/static/ga-1.js rename to docs/_themes/chiplotle/static/ga-1.js diff --git a/src/chiplotle/documentation/_themes/chiplotle/static/ga-2.js b/docs/_themes/chiplotle/static/ga-2.js similarity index 100% rename from src/chiplotle/documentation/_themes/chiplotle/static/ga-2.js rename to docs/_themes/chiplotle/static/ga-2.js diff --git a/src/chiplotle/documentation/_themes/chiplotle/static/ga.js b/docs/_themes/chiplotle/static/ga.js similarity index 100% rename from src/chiplotle/documentation/_themes/chiplotle/static/ga.js rename to docs/_themes/chiplotle/static/ga.js diff --git a/src/chiplotle/documentation/_themes/chiplotle/theme.conf b/docs/_themes/chiplotle/theme.conf similarity index 100% rename from src/chiplotle/documentation/_themes/chiplotle/theme.conf rename to docs/_themes/chiplotle/theme.conf diff --git a/src/chiplotle/documentation/chapters/about/index.rst b/docs/chapters/about/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/about/index.rst rename to docs/chapters/about/index.rst diff --git a/src/chiplotle/documentation/chapters/api/geometry.rst b/docs/chapters/api/geometry.rst similarity index 100% rename from src/chiplotle/documentation/chapters/api/geometry.rst rename to docs/chapters/api/geometry.rst diff --git a/src/chiplotle/documentation/chapters/api/hpgl.rst b/docs/chapters/api/hpgl.rst similarity index 100% rename from src/chiplotle/documentation/chapters/api/hpgl.rst rename to docs/chapters/api/hpgl.rst diff --git a/src/chiplotle/documentation/chapters/api/index.rst b/docs/chapters/api/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/api/index.rst rename to docs/chapters/api/index.rst diff --git a/src/chiplotle/documentation/chapters/api/plotters.rst b/docs/chapters/api/plotters.rst similarity index 100% rename from src/chiplotle/documentation/chapters/api/plotters.rst rename to docs/chapters/api/plotters.rst diff --git a/src/chiplotle/documentation/chapters/api/tools.rst b/docs/chapters/api/tools.rst similarity index 100% rename from src/chiplotle/documentation/chapters/api/tools.rst rename to docs/chapters/api/tools.rst diff --git a/src/chiplotle/documentation/chapters/configuration/index.rst b/docs/chapters/configuration/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/configuration/index.rst rename to docs/chapters/configuration/index.rst diff --git a/src/chiplotle/documentation/chapters/contributors/index.rst b/docs/chapters/contributors/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/contributors/index.rst rename to docs/chapters/contributors/index.rst diff --git a/src/chiplotle/documentation/chapters/faq/index.rst b/docs/chapters/faq/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/faq/index.rst rename to docs/chapters/faq/index.rst diff --git a/src/chiplotle/documentation/chapters/fundamentals/index.rst b/docs/chapters/fundamentals/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/fundamentals/index.rst rename to docs/chapters/fundamentals/index.rst diff --git a/src/chiplotle/documentation/chapters/hardware/index.rst b/docs/chapters/hardware/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/hardware/index.rst rename to docs/chapters/hardware/index.rst diff --git a/src/chiplotle/documentation/chapters/mailinglist/index.rst b/docs/chapters/mailinglist/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/mailinglist/index.rst rename to docs/chapters/mailinglist/index.rst diff --git a/src/chiplotle/documentation/chapters/plotters/index.rst b/docs/chapters/plotters/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/plotters/index.rst rename to docs/chapters/plotters/index.rst diff --git a/src/chiplotle/documentation/chapters/resources/index.rst b/docs/chapters/resources/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/resources/index.rst rename to docs/chapters/resources/index.rst diff --git a/src/chiplotle/documentation/chapters/tutorial/images/arches.png b/docs/chapters/tutorial/images/arches.png similarity index 100% rename from src/chiplotle/documentation/chapters/tutorial/images/arches.png rename to docs/chapters/tutorial/images/arches.png diff --git a/src/chiplotle/documentation/chapters/tutorial/images/arrow.png b/docs/chapters/tutorial/images/arrow.png similarity index 100% rename from src/chiplotle/documentation/chapters/tutorial/images/arrow.png rename to docs/chapters/tutorial/images/arrow.png diff --git a/src/chiplotle/documentation/chapters/tutorial/index.rst b/docs/chapters/tutorial/index.rst similarity index 100% rename from src/chiplotle/documentation/chapters/tutorial/index.rst rename to docs/chapters/tutorial/index.rst diff --git a/src/chiplotle/documentation/chapters/tutorial/intro.rst b/docs/chapters/tutorial/intro.rst similarity index 100% rename from src/chiplotle/documentation/chapters/tutorial/intro.rst rename to docs/chapters/tutorial/intro.rst diff --git a/src/chiplotle/documentation/chapters/tutorial/shapes.rst b/docs/chapters/tutorial/shapes.rst similarity index 100% rename from src/chiplotle/documentation/chapters/tutorial/shapes.rst rename to docs/chapters/tutorial/shapes.rst diff --git a/src/chiplotle/documentation/chiplotle_config.py b/docs/chiplotle_config.py similarity index 100% rename from src/chiplotle/documentation/chiplotle_config.py rename to docs/chiplotle_config.py diff --git a/src/chiplotle/documentation/conf.py b/docs/conf.py similarity index 98% rename from src/chiplotle/documentation/conf.py rename to docs/conf.py index 91b9eee..ba949fa 100644 --- a/src/chiplotle/documentation/conf.py +++ b/docs/conf.py @@ -19,12 +19,13 @@ standard_library.install_aliases() import os +import sys import shutil about = dict() here = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(here, "..", "__version__.py"), "r") as f: +with open(os.path.join(here, "..", "src", "chiplotle", "__version__.py"), "r") as f: exec(f.read(), about) chiplotle_config_dir = os.path.expanduser("~/.chiplotle") @@ -37,7 +38,7 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.append(os.path.abspath('.')) +sys.path.append(os.path.join(here, '..', 'src')) # -- General configuration ----------------------------------------------------- diff --git a/src/chiplotle/documentation/index.rst b/docs/index.rst similarity index 100% rename from src/chiplotle/documentation/index.rst rename to docs/index.rst diff --git a/docs/install.rst b/docs/install.rst new file mode 120000 index 0000000..356deb7 --- /dev/null +++ b/docs/install.rst @@ -0,0 +1 @@ +../INSTALL.rst \ No newline at end of file diff --git a/src/chiplotle/documentation/scripts/compile_api.py b/docs/scripts/compile_api.py similarity index 100% rename from src/chiplotle/documentation/scripts/compile_api.py rename to docs/scripts/compile_api.py diff --git a/src/chiplotle/documentation/install.rst b/src/chiplotle/documentation/install.rst deleted file mode 120000 index d93234a..0000000 --- a/src/chiplotle/documentation/install.rst +++ /dev/null @@ -1 +0,0 @@ -../../../INSTALL.rst \ No newline at end of file From 4133c2bf03f5f4514da24c87fede765125702d16 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 21:40:10 +0100 Subject: [PATCH 40/82] Attempt to fix circleci failure due to no being able to import chiplotle --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 09486db..3b04dba 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,6 +28,7 @@ shared: &shared name: Set up chiplotle command: | source .venv/bin/activate + cd src (yes || true) | python -c "import chiplotle" - run: From 279d757cddb756aed1a615a90d840891b40b6055 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 22:08:57 +0100 Subject: [PATCH 41/82] Fix print syntax in dynamically python code in strings --- src/chiplotle/core/cfg/_run_chiplotle.py | 10 +++++----- src/chiplotle/core/cfg/_run_chiplotle_virtual.py | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/chiplotle/core/cfg/_run_chiplotle.py b/src/chiplotle/core/cfg/_run_chiplotle.py index d73dd81..470e7b1 100644 --- a/src/chiplotle/core/cfg/_run_chiplotle.py +++ b/src/chiplotle/core/cfg/_run_chiplotle.py @@ -14,11 +14,11 @@ def _run_chiplotle(): a plotter. """ python_code = [] - python_code.append("print ' '") - python_code.append("print ' +-----------------------+'") - python_code.append("print ' | Chiplotle! v.%s |'" % __version__) - python_code.append("print ' +-----------------------+'") - python_code.append("print ' '") + python_code.append("print(' ')") + python_code.append("print(' +-----------------------+')") + python_code.append("print(' | Chiplotle! v.%s |')" % __version__) + python_code.append("print(' +-----------------------+')") + python_code.append("print(' ')") python_code.append("import sys") python_code.append("sys.ps1 = 'chiplotle> '") python_code.append("del sys") diff --git a/src/chiplotle/core/cfg/_run_chiplotle_virtual.py b/src/chiplotle/core/cfg/_run_chiplotle_virtual.py index dda1b22..a4101fb 100644 --- a/src/chiplotle/core/cfg/_run_chiplotle_virtual.py +++ b/src/chiplotle/core/cfg/_run_chiplotle_virtual.py @@ -14,11 +14,11 @@ def _run_chiplotle_virtual(): a VIRTUAL plotter. """ python_code = [] - python_code.append("print ' '") - python_code.append("print ' +-----------------------+'") - python_code.append("print ' | Chiplotle! v.%s |'" % __version__) - python_code.append("print ' +-----------------------+'") - python_code.append("print ' '") + python_code.append("print(' ')") + python_code.append("print(' +-----------------------+')") + python_code.append("print(' | Chiplotle! v.%s |')" % __version__) + python_code.append("print(' +-----------------------+')") + python_code.append("print(' ')") python_code.append("import sys") python_code.append("sys.ps1 = 'chiplotle> '") python_code.append("del sys") From 9e4aea77fe549430ce0537a139a245ba39d05c20 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 22:15:37 +0100 Subject: [PATCH 42/82] Print __version__ imported from __init__ not chiplotle.core.cfg.cfg --- src/chiplotle/__init__.py | 1 - src/chiplotle/core/cfg/_run_chiplotle.py | 2 +- src/chiplotle/core/cfg/_run_chiplotle_virtual.py | 2 +- src/chiplotle/core/cfg/cfg.py | 2 -- 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/chiplotle/__init__.py b/src/chiplotle/__init__.py index f7e4c1b..5b59387 100644 --- a/src/chiplotle/__init__.py +++ b/src/chiplotle/__init__.py @@ -5,7 +5,6 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.core.cfg.cfg import __version__ from chiplotle.core.cfg.initialize_files import initialize_files from .__version__ import __author__, __version__, __license__, __url__, __copyright__, __description__ diff --git a/src/chiplotle/core/cfg/_run_chiplotle.py b/src/chiplotle/core/cfg/_run_chiplotle.py index 470e7b1..44b7a8a 100644 --- a/src/chiplotle/core/cfg/_run_chiplotle.py +++ b/src/chiplotle/core/cfg/_run_chiplotle.py @@ -5,7 +5,7 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.core.cfg.cfg import __version__ +from chiplotle import __version__ import os diff --git a/src/chiplotle/core/cfg/_run_chiplotle_virtual.py b/src/chiplotle/core/cfg/_run_chiplotle_virtual.py index a4101fb..3f86045 100644 --- a/src/chiplotle/core/cfg/_run_chiplotle_virtual.py +++ b/src/chiplotle/core/cfg/_run_chiplotle_virtual.py @@ -5,7 +5,7 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.core.cfg.cfg import __version__ +from chiplotle import __version__ import os diff --git a/src/chiplotle/core/cfg/cfg.py b/src/chiplotle/core/cfg/cfg.py index 88cee46..afa151d 100644 --- a/src/chiplotle/core/cfg/cfg.py +++ b/src/chiplotle/core/cfg/cfg.py @@ -7,8 +7,6 @@ standard_library.install_aliases() import os -__version__ = "0.4.1" - home_path = os.environ.get("HOME") or os.environ.get("HOMEPATH") CHIPLOTLE_DIR = os.path.dirname(__file__).rstrip("cfg") From c01fc1b9c2cb098b289a978938c9bb3558f167ca Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 22:16:00 +0100 Subject: [PATCH 43/82] Specify serial commands as byte strings in what_plotter_in_port.py --- src/chiplotle/tools/serialtools/what_plotter_in_port.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/chiplotle/tools/serialtools/what_plotter_in_port.py b/src/chiplotle/tools/serialtools/what_plotter_in_port.py index d682ca4..dbece5e 100644 --- a/src/chiplotle/tools/serialtools/what_plotter_in_port.py +++ b/src/chiplotle/tools/serialtools/what_plotter_in_port.py @@ -29,8 +29,8 @@ def what_plotter_in_port(port, wait_time=10): try: ser.flushInput() ser.flushOutput() - ser.write("IN;") - ser.write("OI;") + ser.write(b"IN;") + ser.write(b"OI;") except serial.serialutil.SerialException: return None From f09e60bab81a6912ce63493337fb0aef97cbf9ee Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 22:18:55 +0100 Subject: [PATCH 44/82] Add future dependency to setup.py --- setup.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index b1f1b7d..3a09cb3 100755 --- a/setup.py +++ b/setup.py @@ -40,7 +40,11 @@ #include_package_data=True, # XXX: UNUSURE package_dir={'': 'src'}, - install_requires=["pyserial<=3", "numpy<=2"], + install_requires=[ + "pyserial<=3", + "numpy<=2", + "future>=0.16.0" + ], entry_points={ "console_scripts": [ "chiplotle = chiplotle.core.cfg._run_chiplotle:_run_chiplotle" From eb69e7c8fa823708fdc3e0ead4d973dc04247e22 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 22:19:25 +0100 Subject: [PATCH 45/82] Bump pyserial version dep to >=3.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3a09cb3..f1b997a 100755 --- a/setup.py +++ b/setup.py @@ -41,7 +41,7 @@ # XXX: UNUSURE package_dir={'': 'src'}, install_requires=[ - "pyserial<=3", + "pyserial>=3", "numpy<=2", "future>=0.16.0" ], From 99bd178b8f70226edc47fdf13a8c8ac2ed47d15d Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 22:22:30 +0100 Subject: [PATCH 46/82] Fix __clas__ typo in _ChiplotleError --- src/chiplotle/core/errors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chiplotle/core/errors.py b/src/chiplotle/core/errors.py index c7a14b2..7914627 100644 --- a/src/chiplotle/core/errors.py +++ b/src/chiplotle/core/errors.py @@ -15,7 +15,7 @@ class _ChiplotleError(Exception): ## OVERRIDES ## def __eq__(self, arg): - return self.__clas__.__name__ == arg.__class__.__name__ + return self.__class__.__name__ == arg.__class__.__name__ def __repr__(self): return "%s( )" % self.__class__.__name__ From b4c826492b7cfbf7700f9b956d08892ef205eb4d Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 23 Aug 2018 22:59:14 +0100 Subject: [PATCH 47/82] Add warning discouraging usage to README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 55b3d85..7e5290b 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,9 @@ [![Documentation Status](https://readthedocs.org/projects/chiplotle/badge/?version=latest)](https://chiplotle.readthedocs.io/en/latest/?badge=latest) [![PyPI Version](https://badge.fury.io/py/Chiplotle.svg)](https://badge.fury.io/py/Chiplotle) +**WARNING: This is a python 3 port WIP**, you should not use this fork until +this warning is removed. + Chiplotle is a Python library that implements and extends the HPGL (Hewlett-Packard Graphics Language) plotter control language. It From c4cece27caf2e65195000af0dcffc7eabd3f3f86 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 30 Aug 2018 21:49:00 +0100 Subject: [PATCH 48/82] Move examples to top level --- {src/chiplotle/examples => examples}/README | 0 {src/chiplotle/examples => examples}/__init__.py | 0 .../examples => examples}/abstract_masterpiece.py | 0 .../abstract_masterpiece_file.py | 0 .../abstract_masterpiece_virtual.py | 0 .../examples => examples}/importing_an_hpgl_file.py | 0 .../examples => examples}/liveplot_data-to-path.py | 0 .../liveplot_virtual_generic.py | 0 .../liveplot_virtual_specific.py | 0 .../bird_by_brian_whitman_and_kelly_dobson.hpgl | 0 .../examples => examples}/media/douglas_repetto.jpg | Bin .../media/foal_by_douglas_repetto.hpgl | 0 .../examples => examples}/media/indoor_temp.txt | 0 .../examples => examples}/media/square.hpgl | 0 14 files changed, 0 insertions(+), 0 deletions(-) rename {src/chiplotle/examples => examples}/README (100%) rename {src/chiplotle/examples => examples}/__init__.py (100%) rename {src/chiplotle/examples => examples}/abstract_masterpiece.py (100%) rename {src/chiplotle/examples => examples}/abstract_masterpiece_file.py (100%) rename {src/chiplotle/examples => examples}/abstract_masterpiece_virtual.py (100%) rename {src/chiplotle/examples => examples}/importing_an_hpgl_file.py (100%) rename {src/chiplotle/examples => examples}/liveplot_data-to-path.py (100%) rename {src/chiplotle/examples => examples}/liveplot_virtual_generic.py (100%) rename {src/chiplotle/examples => examples}/liveplot_virtual_specific.py (100%) rename {src/chiplotle/examples => examples}/media/bird_by_brian_whitman_and_kelly_dobson.hpgl (100%) rename {src/chiplotle/examples => examples}/media/douglas_repetto.jpg (100%) rename {src/chiplotle/examples => examples}/media/foal_by_douglas_repetto.hpgl (100%) rename {src/chiplotle/examples => examples}/media/indoor_temp.txt (100%) rename {src/chiplotle/examples => examples}/media/square.hpgl (100%) diff --git a/src/chiplotle/examples/README b/examples/README similarity index 100% rename from src/chiplotle/examples/README rename to examples/README diff --git a/src/chiplotle/examples/__init__.py b/examples/__init__.py similarity index 100% rename from src/chiplotle/examples/__init__.py rename to examples/__init__.py diff --git a/src/chiplotle/examples/abstract_masterpiece.py b/examples/abstract_masterpiece.py similarity index 100% rename from src/chiplotle/examples/abstract_masterpiece.py rename to examples/abstract_masterpiece.py diff --git a/src/chiplotle/examples/abstract_masterpiece_file.py b/examples/abstract_masterpiece_file.py similarity index 100% rename from src/chiplotle/examples/abstract_masterpiece_file.py rename to examples/abstract_masterpiece_file.py diff --git a/src/chiplotle/examples/abstract_masterpiece_virtual.py b/examples/abstract_masterpiece_virtual.py similarity index 100% rename from src/chiplotle/examples/abstract_masterpiece_virtual.py rename to examples/abstract_masterpiece_virtual.py diff --git a/src/chiplotle/examples/importing_an_hpgl_file.py b/examples/importing_an_hpgl_file.py similarity index 100% rename from src/chiplotle/examples/importing_an_hpgl_file.py rename to examples/importing_an_hpgl_file.py diff --git a/src/chiplotle/examples/liveplot_data-to-path.py b/examples/liveplot_data-to-path.py similarity index 100% rename from src/chiplotle/examples/liveplot_data-to-path.py rename to examples/liveplot_data-to-path.py diff --git a/src/chiplotle/examples/liveplot_virtual_generic.py b/examples/liveplot_virtual_generic.py similarity index 100% rename from src/chiplotle/examples/liveplot_virtual_generic.py rename to examples/liveplot_virtual_generic.py diff --git a/src/chiplotle/examples/liveplot_virtual_specific.py b/examples/liveplot_virtual_specific.py similarity index 100% rename from src/chiplotle/examples/liveplot_virtual_specific.py rename to examples/liveplot_virtual_specific.py diff --git a/src/chiplotle/examples/media/bird_by_brian_whitman_and_kelly_dobson.hpgl b/examples/media/bird_by_brian_whitman_and_kelly_dobson.hpgl similarity index 100% rename from src/chiplotle/examples/media/bird_by_brian_whitman_and_kelly_dobson.hpgl rename to examples/media/bird_by_brian_whitman_and_kelly_dobson.hpgl diff --git a/src/chiplotle/examples/media/douglas_repetto.jpg b/examples/media/douglas_repetto.jpg similarity index 100% rename from src/chiplotle/examples/media/douglas_repetto.jpg rename to examples/media/douglas_repetto.jpg diff --git a/src/chiplotle/examples/media/foal_by_douglas_repetto.hpgl b/examples/media/foal_by_douglas_repetto.hpgl similarity index 100% rename from src/chiplotle/examples/media/foal_by_douglas_repetto.hpgl rename to examples/media/foal_by_douglas_repetto.hpgl diff --git a/src/chiplotle/examples/media/indoor_temp.txt b/examples/media/indoor_temp.txt similarity index 100% rename from src/chiplotle/examples/media/indoor_temp.txt rename to examples/media/indoor_temp.txt diff --git a/src/chiplotle/examples/media/square.hpgl b/examples/media/square.hpgl similarity index 100% rename from src/chiplotle/examples/media/square.hpgl rename to examples/media/square.hpgl From 1d1c52f2b4dc237ee282210a98bf50a6e34f0b49 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 30 Aug 2018 21:49:18 +0100 Subject: [PATCH 49/82] Correct some spelling issues in quick start tutorial --- docs/chapters/tutorial/intro.rst | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/chapters/tutorial/intro.rst b/docs/chapters/tutorial/intro.rst index 9756416..c1b299e 100644 --- a/docs/chapters/tutorial/intro.rst +++ b/docs/chapters/tutorial/intro.rst @@ -19,15 +19,24 @@ Start Chiplotle by typing ``chiplotle`` from the terminal:: $ chiplotle .. note:: - If you've installed Chiplotle using Subversion, make sure the ``chiplotle/scritps`` directory is in your ``PATH`` variable so that your system knows about Chiplotle's scripts. + If you've installed Chiplotle using git, make sure the ``chiplotle/scripts`` directory is in your ``PATH`` variable so that your system knows about Chiplotle's scripts. The ``chiplotle`` script is a simple convenience script that does two things: -#. It loads the Python interpreted. -#. It finds all the plotters connected to your computer, instantiates their corresponding software interfaces and assigns these to the ``plts`` list variable. The first plotter found is also assigned to the ``plotter`` variable for convenience. i.e., if you only have one plotter you can call ``plotter`` instead of ``plts[0]``. +#. It loads the Python interpreter. +#. It finds all the plotters connected to your computer, instantiates + their corresponding software interfaces and assigns these to the + ``plts`` list variable. The first plotter found is also assigned to + the ``plotter`` variable for convenience. i.e., if you only have one + plotter you can call ``plotter`` instead of ``plts[0]``. .. note :: - If your plotter type is unrecognized, the function will display a list of plotters that Chiplotle knows about for you to choose from. Select the one that most closely matches the plotter ID identifying your hardware. If there is no match, you can use the generic Plotter, although you should be aware that some HPGL commands may not work with your hardware. + If your plotter type is unrecognized, the function will display a + list of plotters that Chiplotle knows about for you to choose from. + Select the one that most closely matches the plotter ID identifying + your hardware. If there is no match, you can use the generic Plotter, + although you should be aware that some HPGL commands may not work + with your hardware. Chiplotle will then print out some basic information about your plotter(s), including drawing area and memory. Now it's time to plot! From 3c984c4845ae3205be8dbf250ab1b7110ee273c8 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 30 Aug 2018 22:09:23 +0100 Subject: [PATCH 50/82] Spell check and code fix shapes tutorial --- .../tutorial/images/{arches.png => arcs.png} | Bin docs/chapters/tutorial/shapes.rst | 11 ++++++----- 2 files changed, 6 insertions(+), 5 deletions(-) rename docs/chapters/tutorial/images/{arches.png => arcs.png} (100%) diff --git a/docs/chapters/tutorial/images/arches.png b/docs/chapters/tutorial/images/arcs.png similarity index 100% rename from docs/chapters/tutorial/images/arches.png rename to docs/chapters/tutorial/images/arcs.png diff --git a/docs/chapters/tutorial/shapes.rst b/docs/chapters/tutorial/shapes.rst index 62c70ba..42a8b39 100644 --- a/docs/chapters/tutorial/shapes.rst +++ b/docs/chapters/tutorial/shapes.rst @@ -54,18 +54,19 @@ Groups thus behave just like primitive shapes. Examples -------- -A set of achs: +A set of arcs: -.. image:: images/arches.png +.. image:: images/arcs.png :: + import math g = shapes.group() for radius in range(100, 1000, 100): a = shapes.arc_circle(radius, 1.0, math.pi) - gr.append(a) + g.append(a) -.. note:: Remember that to view a shape you call ``io.view(arg)``, where `arg` is the shape object. Here we would execute ``io.view(gr)``. +.. note:: Remember that to view a shape you call ``io.view(arg)``, where `arg` is the shape object. Here we would execute ``io.view(g)``. An arrow: @@ -75,7 +76,7 @@ An arrow: :: coords = [(0, 0), (0, 1000), (1000, 1000)] - p = shapes.bezier_path(coords, 1) + p = shapes.path_bezier(coords, 1) a = arrow(p, 100, 200) From 0c35f4c3697af9fbaac15e98fcc2b938f3342b26 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 30 Aug 2018 22:13:34 +0100 Subject: [PATCH 51/82] Spell check fundamentals page --- docs/chapters/fundamentals/index.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/chapters/fundamentals/index.rst b/docs/chapters/fundamentals/index.rst index ff1e24b..7453bfb 100644 --- a/docs/chapters/fundamentals/index.rst +++ b/docs/chapters/fundamentals/index.rst @@ -7,14 +7,14 @@ In addition to being an HPGL plotter driver, *Chiplotle* is a vector drawing lib One can think of Chiplotle as consisting of three layers: -#. A high abstraction layer consisting of platonic shapes, like `line`, `circle`, `label`, etc.' +#. A high abstraction layer consisting of 2D shapes, like `line`, `circle`, `label`, etc.' #. An interface / communication layer consisting of the HPGL language. -#. A plotter driver wich manages communication between your hardware and software. +#. A plotter driver which manages communication between your hardware and software. HPGL **** -How does Chiplote communicate with a plotter? +How does Chiplotle communicate with a plotter? During the 70s and 80s, a variety of languages were developed by different manufacturers to control different brands of pen plotters, but the one language that gained most popularity and eventually became sort of a standard is HPGL (Hewlett-Packard Graphics Language). Chiplotle supports all the standard HPGL commands, giving you full control of these plotters. From b96529c452f8eda6585a8704876c4a37301083a3 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 30 Aug 2018 22:19:05 +0100 Subject: [PATCH 52/82] Replace windowz -> windows in docs --- docs/chapters/faq/index.rst | 4 ++-- docs/chapters/hardware/index.rst | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/chapters/faq/index.rst b/docs/chapters/faq/index.rst index a1e1b52..69d2173 100644 --- a/docs/chapters/faq/index.rst +++ b/docs/chapters/faq/index.rst @@ -3,7 +3,7 @@ FAQ *** **Q:** -I'm trying to use Chiplotle with Windowz but it seems Chiplotle can't find my hardware. What should I do? +I'm trying to use Chiplotle with Windows but it seems Chiplotle can't find my hardware. What should I do? **A:** No communication between Chiplotle and your hardware could be due to a variety of reasons. Check out the :doc:`Hardware ` section for some possible causes. @@ -50,7 +50,7 @@ You can also send HPGL files to your plotter from within a live Chiplotle sessio chiplotle> plotter.write_file('my_file.hpgl') **Q:** -I installed chiplotle in Windowz 98. Unfortunately running ``chiplotle`` from the ``cmd`` shell does not work. Windowz isn't recognizing the ``chiplotle`` command. +I installed chiplotle in Windows 98. Unfortunately running ``chiplotle`` from the ``cmd`` shell does not work. Windows isn't recognizing the ``chiplotle`` command. **A:** Windows is not very friendly with Chiplotle! diff --git a/docs/chapters/hardware/index.rst b/docs/chapters/hardware/index.rst index 51d29d1..04db9e6 100644 --- a/docs/chapters/hardware/index.rst +++ b/docs/chapters/hardware/index.rst @@ -16,8 +16,8 @@ We have successfully used this cable with the Roland DX series. USB to Serial Adapters ---------------------- -In Windowz, Chiplotle currently only supports **COM** ports to communicate with your plotter. On computers with real good-old RS-232 serial ports Chiplotle has no problem. Modern computers usually no longer have serial ports, so you need to use a USB to Serial interface to connect your plotter to your computer. Because Chiplotle only supports **COM** ports, what you need is a USB to Serial interface with drivers that supports VCP (Virtual COM Port), so that your USB to Serial interface shows up as a **COM** port. -You may want to get USB to Serial interface with the `FTDI Chip `_; it has VCP drivers and works well on Windowz. +In Windows, Chiplotle currently only supports **COM** ports to communicate with your plotter. On computers with real good-old RS-232 serial ports Chiplotle has no problem. Modern computers usually no longer have serial ports, so you need to use a USB to Serial interface to connect your plotter to your computer. Because Chiplotle only supports **COM** ports, what you need is a USB to Serial interface with drivers that supports VCP (Virtual COM Port), so that your USB to Serial interface shows up as a **COM** port. +You may want to get USB to Serial interface with the `FTDI Chip `_; it has VCP drivers and works well on Windows. In OSX and Linux your USB to Serial interface will appear in your /dev directory as:: From fa5b0635252c0d127d2208f25d251b6f60ef5fc6 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 30 Aug 2018 22:22:38 +0100 Subject: [PATCH 53/82] Spell check faq --- docs/chapters/faq/index.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/chapters/faq/index.rst b/docs/chapters/faq/index.rst index 69d2173..1587893 100644 --- a/docs/chapters/faq/index.rst +++ b/docs/chapters/faq/index.rst @@ -15,17 +15,17 @@ When I send a text file with HPGL commands to my serial port in the following wa $ stty /dev/ttyUSB0 9600 $ cat bird.hpgl > /dev/ttyUSB0 -my plotter starts drawing fine but will eventually just start pausing and drawing random straight lines. What's goind on? Do I have to be concerned with overflowing the plotter's internal RAM? +my plotter starts drawing fine but will eventually just start pausing and drawing random straight lines. What's going on? Do I have to be concerned with overflowing the plotter's internal RAM? **A:** -Yes. The plotters buffer will fill up quickly, so you need to be listenning to the plotter for any buffer overflow warnings and errors. This is generally done in one of two ways: +Yes. The plotters buffer will fill up quickly, so you need to be listening to the plotter for any buffer overflow warnings and errors. This is generally done in one of two ways: -#. Setting up hardware hand-shacking between the plotter and your computer. +#. Setting up hardware hand-shaking between the plotter and your computer. #. Querying the plotter for its buffer size before sending data to avoid truncation. This is one of the tasks that Chiplotle manages for you so you don't have to worry about these low level technicalities. The easiest way to communicate with a plotter is to run Chiplotle by typing ``chiplotle`` from your terminal. -This will run python and load, Chiplotle library, and instantiate soft-plotters for your hardware plotters found. Once in Chiplotle, send your HPGL file with the ``write_file(filename)`` method of the instantiated plotter(s), or send newly createdHPGL commands via the ``write()`` method, like so:: +This will run python, load Chiplotle, and instantiate soft-plotters for your hardware plotters found. Once in Chiplotle, send your HPGL file with the ``write_file(filename)`` method on the instantiated plotter(s), or send newly created HPGL commands via the ``write()`` method, like so:: chiplotle> plotter.write_file('my_file.hpgl') chiplotle> plotter.write(hpgl.PA()) @@ -76,7 +76,7 @@ Another way of adding variables to your environment is using the set command:: To make this setting permanent, you could add the corresponding command line to your ``autoexec.bat``. ``msconfig`` is a graphical interface to this file. -Viewing environment variables can also be done more straight-forward: The +Viewing environment variables can also be accomplished via ``cmd.exe``: The command prompt will expand strings wrapped into percent signs automatically:: echo %PATH% From 672450f9bb06214200c358b022e19c00d0936e54 Mon Sep 17 00:00:00 2001 From: Will Price Date: Thu, 30 Aug 2018 23:00:29 +0100 Subject: [PATCH 54/82] Force bytes not unicode in serial and baseplotter --- src/chiplotle/plotters/baseplotter.py | 14 +++++++------- .../tools/hpgltools/inflate_hpgl_string.py | 4 ++-- src/chiplotle/tools/hpgltools/parse_hpgl_string.py | 6 +++--- .../tools/serialtools/virtual_serial_port.py | 5 ++--- .../tools/serialtools/what_plotter_in_port.py | 4 ++-- 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/chiplotle/plotters/baseplotter.py b/src/chiplotle/plotters/baseplotter.py index daaabd4..d69c966 100644 --- a/src/chiplotle/plotters/baseplotter.py +++ b/src/chiplotle/plotters/baseplotter.py @@ -12,7 +12,7 @@ from builtins import open from builtins import int from future import standard_library -from six import string_types, text_type +from six import string_types standard_library.install_aliases() from chiplotle.core.cfg.get_config_value import get_config_value @@ -91,7 +91,7 @@ def write_file(self, filename): ### PRIVATE METHODS ### def _is_HPGL_command_known(self, hpglCommand): - if isinstance(hpglCommand, (string_types, text_type)): + if self._check_is_bytes(hpglCommand): command_head = hpglCommand[0:2] elif hasattr(hpglCommand, "_name"): command_head = hpglCommand._name @@ -100,7 +100,7 @@ def _is_HPGL_command_known(self, hpglCommand): return command_head.upper() in self.allowedHPGLCommands def _filter_unrecognized_commands(self, commands): - self._check_is_string(commands) + self._check_is_bytes(commands) result = [] # commands = re.split('[\n;]+', commands) commands = commands.split(";") @@ -133,16 +133,16 @@ def _slice_string_to_buffer_size(self, data): def _write_string_to_port(self, data): """ Write data to serial port. data is expected to be a string.""" # assert type(data) is str - self._check_is_string(data) + self._check_is_bytes(data) data = self._filter_unrecognized_commands(data) data = self._slice_string_to_buffer_size(data) for chunk in data: self._sleep_while_buffer_full() self._serial_port.write(chunk) - def _check_is_string(self, data): - if not isinstance(data, (string_types, text_type)): - raise TypeError("string expected.") + def _check_is_bytes(self, data): + if not isinstance(data, bytes): + raise TypeError("Bytes expected.") ### PRIVATE QUERIES ### diff --git a/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py index cc1c6e6..b73741c 100644 --- a/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -3,7 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library -from six import string_types, text_type +from six import string_types standard_library.install_aliases() from chiplotle.hpgl import commands as hpgl @@ -31,7 +31,7 @@ def inflate_hpgl_string(string, filter_commands=None): filter_commands = filter_commands or [] - if not isinstance(string, (string_types, text_type)): + if not isinstance(string, string_types): raise TypeError("`string` must be a string or bytes") if not isinstance(filter_commands, (list, tuple)): msg = "`filter_commands` must be a list of string HPGL commands." diff --git a/src/chiplotle/tools/hpgltools/parse_hpgl_string.py b/src/chiplotle/tools/hpgltools/parse_hpgl_string.py index 7768292..19ef20b 100644 --- a/src/chiplotle/tools/hpgltools/parse_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/parse_hpgl_string.py @@ -3,7 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library -from six import text_type, string_types +from six import string_types standard_library.install_aliases() import re @@ -13,8 +13,8 @@ def parse_hpgl_string(arg): """The function takes a string `arg` of HPGL commands, parses them (separates them) and returns them in a list. """ - if not isinstance(arg, (text_type, string_types)): - raise TypeError("`arg` must be of type string") + if not isinstance(arg, string_types): + raise TypeError("`arg` must be of type string or bytes") string_commands = ["LB", "DT"] numeric_commands = [ diff --git a/src/chiplotle/tools/serialtools/virtual_serial_port.py b/src/chiplotle/tools/serialtools/virtual_serial_port.py index 3a90f43..89b9747 100644 --- a/src/chiplotle/tools/serialtools/virtual_serial_port.py +++ b/src/chiplotle/tools/serialtools/virtual_serial_port.py @@ -3,7 +3,6 @@ from __future__ import division from __future__ import absolute_import from future import standard_library -from six import string_types, text_type standard_library.install_aliases() from builtins import object @@ -47,8 +46,8 @@ def write(self, command): gotta iterate through all possible weirdo commands. """ - # make sure we received a string, not a tuple or something - assert isinstance(command, (string_types, text_type)) + # make sure we received bytes + assert isinstance(command, bytes) if command.startswith(commands.B().format): # let's say we have 4MB of memory to avoid buffered writes diff --git a/src/chiplotle/tools/serialtools/what_plotter_in_port.py b/src/chiplotle/tools/serialtools/what_plotter_in_port.py index dbece5e..752131d 100644 --- a/src/chiplotle/tools/serialtools/what_plotter_in_port.py +++ b/src/chiplotle/tools/serialtools/what_plotter_in_port.py @@ -3,7 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library -from six import text_type, string_types +from six import string_types standard_library.install_aliases() import serial @@ -20,7 +20,7 @@ def what_plotter_in_port(port, wait_time=10): Returns the ID of the plotter found or None.""" assert isinstance(wait_time, int) - if not isinstance(port, (string_types, text_type)): + if not isinstance(port, string_types): raise TypeError("`port` must be a string.") from chiplotle.tools.serialtools import instantiate_serial_from_config_file From e6767973ca73a08e5f956eee7bcfa42689629fc2 Mon Sep 17 00:00:00 2001 From: Will Price Date: Sat, 1 Sep 2018 22:23:30 +0100 Subject: [PATCH 55/82] First stab at python 3 compatibility --- src/chiplotle/core/cfg/read_config_file.py | 6 +- .../core/interfaces/margins/interface.py | 2 +- .../geometry/core/hpglformatvisitor.py | 2 +- src/chiplotle/hpgl/abstract/arc.py | 8 +- src/chiplotle/hpgl/abstract/hpgl.py | 2 +- src/chiplotle/hpgl/abstract/hpglescape.py | 4 +- src/chiplotle/hpgl/abstract/hpglprimitive.py | 16 +- src/chiplotle/hpgl/abstract/penplot.py | 8 +- src/chiplotle/hpgl/abstract/positional.py | 6 +- src/chiplotle/hpgl/abstract/twopoint.py | 8 +- src/chiplotle/hpgl/commands.py | 164 +++++++++--------- src/chiplotle/hpgl/label.py | 12 +- src/chiplotle/hpgl/pen.py | 3 +- src/chiplotle/hpgl/test/test_AA.py | 8 +- src/chiplotle/hpgl/test/test_AR.py | 8 +- src/chiplotle/hpgl/test/test_CI.py | 2 +- src/chiplotle/hpgl/test/test_CP.py | 6 +- src/chiplotle/hpgl/test/test_DI.py | 4 +- src/chiplotle/hpgl/test/test_DR.py | 6 +- src/chiplotle/hpgl/test/test_EA.py | 2 +- src/chiplotle/hpgl/test/test_ER.py | 2 +- src/chiplotle/hpgl/test/test_ES.py | 10 +- src/chiplotle/hpgl/test/test_EW.py | 4 +- src/chiplotle/hpgl/test/test_FS.py | 8 +- src/chiplotle/hpgl/test/test_FT.py | 8 +- src/chiplotle/hpgl/test/test_IP.py | 2 +- src/chiplotle/hpgl/test/test_Label.py | 7 + src/chiplotle/hpgl/test/test_PA.py | 2 +- src/chiplotle/hpgl/test/test_PU.py | 6 +- src/chiplotle/hpgl/test/test_SI.py | 4 +- src/chiplotle/hpgl/test/test_SR.py | 4 +- src/chiplotle/hpgl/test/test_VS.py | 8 +- src/chiplotle/hpgl/test/test_WG.py | 4 +- .../hpgl/test/test_dci_sethandshakemode.py | 4 +- src/chiplotle/hpgl/test/test_hpgl_repr.py | 7 + src/chiplotle/hpgl/test/test_hpglprimitive.py | 19 +- src/chiplotle/hpgl/test/test_pen.py | 6 +- src/chiplotle/plotters/baseplotter.py | 63 +++---- src/chiplotle/plotters/dxy1300.py | 6 +- .../plotters/margins/plottermargins.py | 4 +- .../plotters/test/test_drawingplotter.py | 2 +- .../plotters/test/test_plotter_write.py | 12 +- .../tools/hpgltools/inflate_hpgl_string.py | 18 +- .../tools/hpgltools/is_primitive_absolute.py | 2 +- .../tools/hpgltools/parse_hpgl_string.py | 4 +- src/chiplotle/tools/io/save_hpgl.py | 2 +- .../tools/io/test/test_import_hpgl_file.py | 32 ++-- .../tools/serialtools/virtual_serial_port.py | 36 ++-- 48 files changed, 293 insertions(+), 270 deletions(-) create mode 100644 src/chiplotle/hpgl/test/test_Label.py create mode 100644 src/chiplotle/hpgl/test/test_hpgl_repr.py diff --git a/src/chiplotle/core/cfg/read_config_file.py b/src/chiplotle/core/cfg/read_config_file.py index 858f692..6d69a45 100644 --- a/src/chiplotle/core/cfg/read_config_file.py +++ b/src/chiplotle/core/cfg/read_config_file.py @@ -2,7 +2,8 @@ from __future__ import print_function from __future__ import division from __future__ import absolute_import -from builtins import open + +import io from future import standard_library standard_library.install_aliases() @@ -15,5 +16,6 @@ def read_config_file(): globals = {} locals = {} - exec(compile(open(CONFIG_FILE).read(), CONFIG_FILE, "exec"), globals, locals) + with io.open(CONFIG_FILE, 'r', encoding='utf-8') as f: + exec(compile(f.read(), CONFIG_FILE, "exec"), globals, locals) return locals diff --git a/src/chiplotle/core/interfaces/margins/interface.py b/src/chiplotle/core/interfaces/margins/interface.py index 0a5a270..06bfeb5 100644 --- a/src/chiplotle/core/interfaces/margins/interface.py +++ b/src/chiplotle/core/interfaces/margins/interface.py @@ -16,7 +16,7 @@ def __init__(self, client): self._soft = MarginsSoft(client) self._hard = None ## check if hard margin (OH) is supported by plotter... - if "OH" in client.allowedHPGLCommands: + if b"OH" in client.allowedHPGLCommands: self._hard = MarginsHard(client) @property diff --git a/src/chiplotle/geometry/core/hpglformatvisitor.py b/src/chiplotle/geometry/core/hpglformatvisitor.py index bc54d3e..3232135 100644 --- a/src/chiplotle/geometry/core/hpglformatvisitor.py +++ b/src/chiplotle/geometry/core/hpglformatvisitor.py @@ -44,7 +44,7 @@ def visit_Label(self, node, formatters=None): @property def format(self): - return "".join([c.format for c in self.hpgl]) + return b"".join([c.format for c in self.hpgl]) ## private methods ## diff --git a/src/chiplotle/hpgl/abstract/arc.py b/src/chiplotle/hpgl/abstract/arc.py index 00ee8dc..dec6055 100644 --- a/src/chiplotle/hpgl/abstract/arc.py +++ b/src/chiplotle/hpgl/abstract/arc.py @@ -31,11 +31,11 @@ def fset(self, arg): @property def format(self): if isinstance(self.x, int) and isinstance(self.y, int): - coordinates = "%i,%i" % (self.x, self.y) + coordinates = b"%i,%i" % (self.x, self.y) else: - coordinates = "%.2f,%.2f" % (self.x, self.y) - result = "%s%s,%.2f" % (self._name, coordinates, self.angle) + coordinates = b"%.2f,%.2f" % (self.x, self.y) + result = b"%s%s,%.2f" % (self._name, coordinates, self.angle) if self.chordtolerance: - result += ",%.2f" % self.chordtolerance + result += b",%.2f" % self.chordtolerance result += _HPGLPrimitive._terminator return result diff --git a/src/chiplotle/hpgl/abstract/hpgl.py b/src/chiplotle/hpgl/abstract/hpgl.py index 9f65d91..56cda70 100644 --- a/src/chiplotle/hpgl/abstract/hpgl.py +++ b/src/chiplotle/hpgl/abstract/hpgl.py @@ -15,7 +15,7 @@ class _HPGL(object): @property def _name(self): - return self.__class__.__name__ + return self.__class__.__name__.encode('ascii') @property def format(self): diff --git a/src/chiplotle/hpgl/abstract/hpglescape.py b/src/chiplotle/hpgl/abstract/hpglescape.py index 75700b2..1f3210a 100644 --- a/src/chiplotle/hpgl/abstract/hpglescape.py +++ b/src/chiplotle/hpgl/abstract/hpglescape.py @@ -11,13 +11,13 @@ class _HPGLEscape(_HPGL): - _escape = chr(27) + _escape = chr(27).encode('ascii') ## PUBLIC PROPERTIES ## @property def format(self): - return "%s.%s" % (self._escape, self._name) + return b"%s.%s" % (self._escape, self._name) ## OVERRIDES ## diff --git a/src/chiplotle/hpgl/abstract/hpglprimitive.py b/src/chiplotle/hpgl/abstract/hpglprimitive.py index e43e25f..74742bc 100644 --- a/src/chiplotle/hpgl/abstract/hpglprimitive.py +++ b/src/chiplotle/hpgl/abstract/hpglprimitive.py @@ -11,22 +11,22 @@ class _HPGLPrimitive(_HPGL): - _terminator = ";" + _terminator = b";" @property def format(self): - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) ### OVERRIDES ### ### TODO: [VA] make this simpler. remove all but the name? def __repr__(self): attributes = [] - for a in dir(self): - if not a.startswith("_"): - if not callable(getattr(self, a)): + for attribute in sorted(dir(self)): + if not attribute.startswith("_"): + if not callable(getattr(self, attribute)): # if a not in ('x', 'y', 'format', 'terminator'): - if a not in ("x", "y", "format"): - attributes.append("%s=%s" % (a, str(getattr(self, a)))) - result = "%s(%s)" % (self._name, ", ".join(attributes)) + if attribute not in ("x", "y", "format"): + attributes.append("%s=%s" % (attribute, str(getattr(self, attribute)))) + result = "%s(%s)" % (self._name.decode('ascii'), ", ".join(attributes)) return result diff --git a/src/chiplotle/hpgl/abstract/penplot.py b/src/chiplotle/hpgl/abstract/penplot.py index 6ad5386..9dfea16 100644 --- a/src/chiplotle/hpgl/abstract/penplot.py +++ b/src/chiplotle/hpgl/abstract/penplot.py @@ -59,11 +59,11 @@ def fset(self, arg): @property def format(self): if self.xy.dtype == int: - coordinates = ["%i,%i" % tuple(p) for p in self.xy] + coordinates = [b"%i,%i" % tuple(p) for p in self.xy] else: - coordinates = ["%.2f,%.2f" % tuple(p) for p in self.xy] - return "%s%s%s" % ( + coordinates = [b"%.2f,%.2f" % tuple(p) for p in self.xy] + return b"%s%s%s" % ( self._name, - ",".join(coordinates), + b",".join(coordinates), _HPGLPrimitive._terminator, ) diff --git a/src/chiplotle/hpgl/abstract/positional.py b/src/chiplotle/hpgl/abstract/positional.py index b232476..00bc69c 100644 --- a/src/chiplotle/hpgl/abstract/positional.py +++ b/src/chiplotle/hpgl/abstract/positional.py @@ -59,7 +59,7 @@ def fset(self, arg): @property def format(self): if isinstance(self.x, int) and isinstance(self.y, int): - coordinates = "%i,%i" % (self.x, self.y) + coordinates = b"%i,%i" % (self.x, self.y) else: - coordinates = "%.2f,%.2f" % (self.x, self.y) - return "%s%s%s" % (self._name, coordinates, _HPGLPrimitive._terminator) + coordinates = b"%.2f,%.2f" % (self.x, self.y) + return b"%s%s%s" % (self._name, coordinates, _HPGLPrimitive._terminator) diff --git a/src/chiplotle/hpgl/abstract/twopoint.py b/src/chiplotle/hpgl/abstract/twopoint.py index 01b7af5..313103d 100644 --- a/src/chiplotle/hpgl/abstract/twopoint.py +++ b/src/chiplotle/hpgl/abstract/twopoint.py @@ -33,8 +33,8 @@ def fset(self, arg): def format(self): if self.coords: coords = self.coords[0].xy + self.coords[1].xy - coords = list(map(str, coords)) - coords = ",".join(coords) - return "%s%s%s" % (self._name, coords, _HPGLPrimitive._terminator) + coords = list(map(lambda coord: str(coord).encode('ascii'), coords)) + coords = b",".join(coords) + return b"%s%s%s" % (self._name, coords, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) diff --git a/src/chiplotle/hpgl/commands.py b/src/chiplotle/hpgl/commands.py index cb3be8f..885e8b0 100644 --- a/src/chiplotle/hpgl/commands.py +++ b/src/chiplotle/hpgl/commands.py @@ -96,14 +96,14 @@ def fset(self, arg): @property def format(self): if self.chordangle: - return "%s%.2f,%.2f%s" % ( + return b"%s%.2f,%.2f%s" % ( self._name, self.radius, self.chordangle, _HPGLPrimitive._terminator, ) else: - return "%s%.2f%s" % (self._name, self.radius, _HPGLPrimitive._terminator) + return b"%s%.2f%s" % (self._name, self.radius, _HPGLPrimitive._terminator) class CC(_HPGLPrimitive): @@ -119,9 +119,9 @@ def __init__(self, angle=None): @property def format(self): if self.angle: - return "%s%i%s" % (self._name, self.angle, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.angle, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class AF(_HPGLPrimitive): @@ -172,9 +172,9 @@ def __init__(self, n=None): @property def format(self): if self.n: - return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class AA(_Arc): @@ -228,16 +228,16 @@ def __init__(self, accel=None, pen=None): @property def format(self): if self.accel and self.pen: - return "%s%i,%i%s" % ( + return b"%s%i,%i%s" % ( self._name, self.accel, self.pen, _HPGLPrimitive._terminator, ) elif self.accel: - return "%s%i%s" % (self._name, self.accel, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.accel, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class EA(_Positional): @@ -306,16 +306,16 @@ def __init__(self, vel=None, pen=None): @property def format(self): if self.vel and self.pen: - return "%s%i,%i%s" % ( + return b"%s%i,%i%s" % ( self._name, self.vel, self.pen, _HPGLPrimitive._terminator, ) elif self.vel: - return "%s%i%s" % (self._name, self.vel, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.vel, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class FS(_HPGLPrimitive): @@ -336,16 +336,16 @@ def __init__(self, force=None, pen=None): @property def format(self): if self.force and self.pen: - return "%s%i,%i%s" % ( + return b"%s%i,%i%s" % ( self._name, self.force, self.pen, _HPGLPrimitive._terminator, ) elif self.force: - return "%s%i%s" % (self._name, self.force, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.force, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class EP(_HPGLPrimitive): @@ -627,16 +627,16 @@ def __init__(self, length=None, width=None): @property def format(self): if self.length and self.width: - return "%s%i,%i%s" % ( + return b"%s%i,%i%s" % ( self._name, self.length, self.width, _HPGLPrimitive._terminator, ) elif self.length: - return "%s%i%s" % (self._name, self.length, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.length, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class BL(_HPGLPrimitive): @@ -655,9 +655,9 @@ def __init__(self, label=None): @property def format(self): if self.label: - return "%s%s%s" % (self._name, chr(3), _HPGLPrimitive._terminator) + return b"%s%s%s" % (self._name, chr(3), _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class IN(_HPGLPrimitive): @@ -705,7 +705,7 @@ def __init__(self, set=0): @property def format(self): - return "%s%i%s" % (self._name, self.set, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.set, _HPGLPrimitive._terminator) class CT(_HPGLPrimitive): @@ -728,7 +728,7 @@ def __init__(self, type=0): @property def format(self): - return "%s%i%s" % (self._name, self.type, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.type, _HPGLPrimitive._terminator) class CV(_HPGLPrimitive): @@ -750,16 +750,16 @@ def __init__(self, n=None, inputdelay=None): @property def format(self): if self.n and self.inputdelay: - return "%s%i%i%s" % ( + return b"%s%i%i%s" % ( self._name, self.n, self.inputdelay, _HPGLPrimitive._terminator, ) elif self.n: - return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class CA(_HPGLPrimitive): @@ -777,7 +777,7 @@ def __init__(self, set=0): @property def format(self): - return "%s%i%s" % (self._name, self.set, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.set, _HPGLPrimitive._terminator) class CM(_HPGLPrimitive): @@ -798,16 +798,16 @@ def __init__(self, switch=None, fallback=None): @property def format(self): if self.switch and self.fallback: - return "%s%i,%i%s" % ( + return b"%s%i,%i%s" % ( self._name, self.switch, self.fallback, _HPGLPrimitive._terminator, ) elif self.switch: - return "%s%i%s" % (self._name, self.switch, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.switch, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class CP(_HPGLPrimitive): @@ -824,16 +824,16 @@ def __init__(self, spaces=None, lines=None): @property def format(self): if self.spaces and self.lines: - return "%s%s,%s%s" % ( + return b"%s%i,%i%s" % ( self._name, self.spaces, self.lines, _HPGLPrimitive._terminator, ) elif self.spaces: - return "%s%s%s" % (self._name, self.spaces, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.spaces, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class DT(_HPGLPrimitive): @@ -849,7 +849,7 @@ def __init__(self, terminator=chr(3)): @property def format(self): - return "%s%c%s" % (self._name, self.labelterminator, _HPGLPrimitive._terminator) + return b"%s%c%s" % (self._name, self.labelterminator, _HPGLPrimitive._terminator) class LB(_HPGLPrimitive): @@ -860,13 +860,13 @@ class LB(_HPGLPrimitive): def __init__(self, text): self.text = text - self.labelTerminator = chr(3) + self.labelTerminator = bytes([3]) @property def format(self): - return "%s%s%s%s" % ( + return b"%s%s%s%s" % ( self._name, - self.text, + self.text.encode('ascii'), self.labelTerminator, _HPGLPrimitive._terminator, ) @@ -883,7 +883,7 @@ def __init__(self, pen=0): @property def format(self): - return "%s%i%s" % (self._name, self.pen, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.pen, _HPGLPrimitive._terminator) class LT(_HPGLPrimitive): @@ -914,14 +914,14 @@ def __init__(self, pattern=None, length=4): @property def format(self): if self.pattern is not None: - return "%s%i,%.4f%s" % ( + return b"%s%i,%.4f%s" % ( self._name, self.pattern, self.length, _HPGLPrimitive._terminator, ) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class FT(_HPGLPrimitive): @@ -948,7 +948,7 @@ def __init__(self, type=None, space=None, angle=None): @property def format(self): if not None in (self.type, self.space, self.angle): - return "%s%i,%s,%s%s" % ( + return b"%s%i,%.2f,%.2f%s" % ( self._name, self.type, self.space, @@ -956,16 +956,16 @@ def format(self): _HPGLPrimitive._terminator, ) elif not None in (self.type, self.space): - return "%s%i,%s%s" % ( + return b"%s%i,%.2f%s" % ( self._name, self.type, self.space, _HPGLPrimitive._terminator, ) elif not self.type is None: - return "%s%i%s" % (self._name, self.type, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.type, _HPGLPrimitive._terminator) elif None == self.type == self.space == self.angle: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) else: ### TODO: raise this type of warning in all other commands where ### this may be necessary. @@ -987,7 +987,7 @@ def __init__(self, n=0): @property def format(self): - return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) class EC(_HPGLPrimitive): @@ -1005,7 +1005,7 @@ def __init__(self, n=0): @property def format(self): - return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) class PG(_HPGLPrimitive): @@ -1021,9 +1021,9 @@ def __init__(self, n=None): @property def format(self): if self.n: - return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class GC(_HPGLPrimitive): @@ -1042,9 +1042,9 @@ def __init__(self, count=None): @property def format(self): if not self.count is None: - return "%s%i%s" % (self._name, self.count, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.count, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) ### TODO implement these: @@ -1066,7 +1066,7 @@ def __init__(self, tan=0): @property def format(self): - return "%s%.4f%s" % (self._name, self.tan, _HPGLPrimitive._terminator) + return b"%s%.4f%s" % (self._name, self.tan, _HPGLPrimitive._terminator) class SA(_HPGLPrimitive): @@ -1087,7 +1087,7 @@ def __init__(self, angle=0): @property def format(self): - return "%s%i%s" % (self._name, self.angle, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.angle, _HPGLPrimitive._terminator) class RP(_HPGLPrimitive): @@ -1101,7 +1101,7 @@ def __init__(self, n=1): @property def format(self): - return "%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.n, _HPGLPrimitive._terminator) class SM(_HPGLPrimitive): @@ -1118,9 +1118,9 @@ def __init__(self, char=None): @property def format(self): if self.char: - return "%s%c%s" % (self._name, self.char, _HPGLPrimitive._terminator) + return b"%s%c%s" % (self._name, self.char, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class SC(_TwoPoint): @@ -1172,16 +1172,16 @@ def __init__(self, slot=None, left=None): @property def format(self): if not None in (self.slot, self.left): - return "%s%i%i%s" % ( + return b"%s%i%i%s" % ( self._name, self.slot, self.left, _HPGLPrimitive._terminator, ) elif not self.slot is None: - return "%s%i%s" % (self._name, self.slot, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.slot, _HPGLPrimitive._terminator) elif self.slot == self.left == None: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) else: raise Warning @@ -1216,16 +1216,16 @@ def __init__(self, key=None, function=None): @property def format(self): if not None in (self.key, self.function): - return "%s%i%i%s" % ( + return b"%s%i%i%s" % ( self._name, self.key, self.function, _HPGLPrimitive._terminator, ) elif not self.key is None: - return "%s%i%s" % (self._name, self.key, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.key, _HPGLPrimitive._terminator) elif self.key == self.function == None: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) else: raise Warning @@ -1244,7 +1244,7 @@ def __init__(self, thickness=0.3): @property def format(self): - return "%s%.2f%s" % (self._name, self.thickness, _HPGLPrimitive._terminator) + return b"%s%.2f%s" % (self._name, self.thickness, _HPGLPrimitive._terminator) class SI(_HPGLPrimitive): @@ -1268,14 +1268,14 @@ def __init__(self, width=None, height=None): @property def format(self): if self.width and self.height: - return "%s%.2f,%.2f%s" % ( + return b"%s%.2f,%.2f%s" % ( self._name, self.width, self.height, _HPGLPrimitive._terminator, ) elif None == self.width == self.height: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) else: raise Warning @@ -1313,14 +1313,14 @@ def __init__(self, run=None, rise=None): @property def format(self): if not None in (self.run, self.rise): - return "%s%.2f,%.2f%s" % ( + return b"%s%.2f,%.2f%s" % ( self._name, self.run, self.rise, _HPGLPrimitive._terminator, ) elif None == self.run == self.rise: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) else: raise Warning @@ -1368,14 +1368,14 @@ def __init__(self, slot=None, set=None): @property def format(self): if self.slot and self.set: - return "%s%i,%i%s" % ( + return b"%s%i,%i%s" % ( self._name, self.slot, self.set, _HPGLPrimitive._terminator, ) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class DV(_HPGLPrimitive): @@ -1392,7 +1392,7 @@ def __init__(self, vertical=0): @property def format(self): - return "%s%i%s" % (self._name, self.vertical, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.vertical, _HPGLPrimitive._terminator) class ES(_HPGLPrimitive): @@ -1418,16 +1418,16 @@ def __init__(self, charspace=None, linespace=None): @property def format(self): if not None in (self.charspace, self.linespace): - return "%s%.2f,%.2f%s" % ( + return b"%s%.2f,%.2f%s" % ( self._name, self.charspace, self.linespace, _HPGLPrimitive._terminator, ) elif not self.charspace is None: - return "%s%.2f%s" % (self._name, self.charspace, _HPGLPrimitive._terminator) + return b"%s%.2f%s" % (self._name, self.charspace, _HPGLPrimitive._terminator) else: - return "%s%s" % (self._name, _HPGLPrimitive._terminator) + return b"%s%s" % (self._name, _HPGLPrimitive._terminator) class LO(_HPGLPrimitive): @@ -1446,7 +1446,7 @@ def __init__(self, origin=1): @property def format(self): - return "%s%i%s" % (self._name, self.origin, _HPGLPrimitive._terminator) + return b"%s%i%s" % (self._name, self.origin, _HPGLPrimitive._terminator) class EW(_HPGLPrimitive): @@ -1472,7 +1472,7 @@ def __init__(self, radius, startangle, sweepangle, chordangle=None): @property def format(self): if self.chordangle: - return "%s%.2f,%.2f,%.2f,%.2f%s" % ( + return b"%s%.2f,%.2f,%.2f,%.2f%s" % ( self._name, self.radius, self.startangle, @@ -1481,7 +1481,7 @@ def format(self): _HPGLPrimitive._terminator, ) else: - return "%s%.2f,%.2f,%.2f%s" % ( + return b"%s%.2f,%.2f,%.2f%s" % ( self._name, self.radius, self.startangle, @@ -1514,7 +1514,7 @@ def __init__(self, tp=0.5, tn=0.5): @property def format(self): - return "%s%.4f,%.4f%s" % ( + return b"%s%.4f,%.4f%s" % ( self._name, self.tp, self.tn, @@ -1533,7 +1533,7 @@ def __init__(self, text): @property def format(self): - return "%s%s%s" % (self._name, self.text, chr(3)) # no terminator?? + return b"%s%s%s" % (self._name, self.text, chr(3)) # no terminator?? ### ESCAPES ### @@ -1556,7 +1556,7 @@ class On(_HPGLEscape): @property def _name(self): - return "(" + return b"(" class Off(_HPGLEscape): @@ -1567,7 +1567,7 @@ class Off(_HPGLEscape): @property def _name(self): - return ")" + return b")" class ExtendedError(_HPGLEscape): @@ -1592,7 +1592,7 @@ class ExtendedError(_HPGLEscape): @property def _name(self): - return "E" + return b"E" class K(_HPGLEscape): @@ -1631,11 +1631,11 @@ def fset(self, mode): @property def _name(self): - return "P" + return b"P" @property def format(self): if self.mode is None: - return "%s.%s" % (self._escape, self._name) + return b"%s.%s" % (self._escape, self._name) else: - return "%s.%s%i" % (self._escape, self._name, self.mode) + return b"%s.%s%i" % (self._escape, self._name, self.mode) diff --git a/src/chiplotle/hpgl/label.py b/src/chiplotle/hpgl/label.py index 87cf227..e608307 100644 --- a/src/chiplotle/hpgl/label.py +++ b/src/chiplotle/hpgl/label.py @@ -71,18 +71,18 @@ def _subcommands(self): result.append(DI(*self.direction)) else: result.append(DI()) - result.append(SI(self.charwidth, self.charheight)) - result.append(ES(self.charspace, self.linespace)) - result.append(LO(self.origin)) - result.append(SL(self.slant)) - result.append(DV(self.vertical)) + result.append(SI(width=self.charwidth, height=self.charheight)) + result.append(ES(charspace=self.charspace, linespace=self.linespace)) + result.append(LO(origin=self.origin)) + result.append(SL(tan=self.slant)) + result.append(DV(vertical=self.vertical)) result.append(LB(self.text)) return result @property def format(self): - return "".join([c.format for c in self._subcommands]) + return b"".join([c.format for c in self._subcommands]) ## demo diff --git a/src/chiplotle/hpgl/pen.py b/src/chiplotle/hpgl/pen.py index 3d77a94..2a557ae 100644 --- a/src/chiplotle/hpgl/pen.py +++ b/src/chiplotle/hpgl/pen.py @@ -46,7 +46,8 @@ def _subcommands(self): @property def format(self): - result = "" + result = b"" for c in self._subcommands: + print(c) result += c.format return result diff --git a/src/chiplotle/hpgl/test/test_AA.py b/src/chiplotle/hpgl/test/test_AA.py index bbeeaf9..5d62bb4 100644 --- a/src/chiplotle/hpgl/test/test_AA.py +++ b/src/chiplotle/hpgl/test/test_AA.py @@ -13,7 +13,7 @@ def test_AA_01(): assert t.angle == 180 assert t.chordtolerance is None - assert t.format == "AA0,0,180.00;" + assert t.format == b"AA0,0,180.00;" def test_AA_02(): @@ -21,7 +21,7 @@ def test_AA_02(): assert t.angle == 180 assert t.chordtolerance == 45 - assert t.format == "AA0,0,180.00,45.00;" + assert t.format == b"AA0,0,180.00,45.00;" def test_AA_03(): @@ -33,14 +33,14 @@ def test_AA_format_01(): """Ints format as ints.""" t = AA((0, 0), 180) - assert t.format == "AA0,0,180.00;" + assert t.format == b"AA0,0,180.00;" def test_AA_format_02(): """Floats format as floats.""" t = AA((0, 0.0), 180) - assert t.format == "AA0.00,0.00,180.00;" + assert t.format == b"AA0.00,0.00,180.00;" def test_AA_angle_01(): diff --git a/src/chiplotle/hpgl/test/test_AR.py b/src/chiplotle/hpgl/test/test_AR.py index 35470d6..7f7c77e 100644 --- a/src/chiplotle/hpgl/test/test_AR.py +++ b/src/chiplotle/hpgl/test/test_AR.py @@ -14,7 +14,7 @@ def test_AR_01(): assert t.angle == 180 assert t.chordtolerance is None - assert t.format == "AR0,0,180.00;" + assert t.format == b"AR0,0,180.00;" def test_AR_02(): @@ -22,7 +22,7 @@ def test_AR_02(): assert t.angle == 180 assert t.chordtolerance == 45 - assert t.format == "AR0,0,180.00,45.00;" + assert t.format == b"AR0,0,180.00,45.00;" def test_AR_03(): @@ -34,11 +34,11 @@ def test_AR_format_01(): """Ints format as ints.""" t = AR((0, 0), 180) - assert t.format == "AR0,0,180.00;" + assert t.format == b"AR0,0,180.00;" def test_AR_format_02(): """Floats format as floats.""" t = AR((0, 0.0), 180) - assert t.format == "AR0.00,0.00,180.00;" + assert t.format == b"AR0.00,0.00,180.00;" diff --git a/src/chiplotle/hpgl/test/test_CI.py b/src/chiplotle/hpgl/test/test_CI.py index e005ab3..dd9e469 100644 --- a/src/chiplotle/hpgl/test/test_CI.py +++ b/src/chiplotle/hpgl/test/test_CI.py @@ -25,7 +25,7 @@ def test_CI_03(): t = CI(1, 90) assert t.radius == 1 assert t.chordangle == 90 - assert t.format == "CI1.00,90.00;" + assert t.format == b"CI1.00,90.00;" ## _scalable ## diff --git a/src/chiplotle/hpgl/test/test_CP.py b/src/chiplotle/hpgl/test/test_CP.py index 44c5024..7de5efd 100644 --- a/src/chiplotle/hpgl/test/test_CP.py +++ b/src/chiplotle/hpgl/test/test_CP.py @@ -13,7 +13,7 @@ def test_CP_01(): t = CP() assert t.spaces is None assert t.lines is None - assert t.format == "CP;" + assert t.format == b"CP;" def test_CP_02(): @@ -21,7 +21,7 @@ def test_CP_02(): t = CP(2) assert t.spaces == 2 assert t.lines is None - assert t.format == "CP2;" + assert t.format == b"CP2;" def test_CP_03(): @@ -29,4 +29,4 @@ def test_CP_03(): t = CP(2, 1) assert t.spaces == 2 assert t.lines == 1 - assert t.format == "CP2,1;" + assert t.format == b"CP2,1;" diff --git a/src/chiplotle/hpgl/test/test_DI.py b/src/chiplotle/hpgl/test/test_DI.py index 62c4c58..709a18c 100644 --- a/src/chiplotle/hpgl/test/test_DI.py +++ b/src/chiplotle/hpgl/test/test_DI.py @@ -12,7 +12,7 @@ def test_DI_01(): t = DI() assert t.run == t.rise == None - assert t.format == "DI;" + assert t.format == b"DI;" def test_DI_02(): @@ -32,4 +32,4 @@ def test_DI_03(): assert t.run == 0 assert t.rise == 25.3 - assert t.format == "DI0.00,25.30;" + assert t.format == b"DI0.00,25.30;" diff --git a/src/chiplotle/hpgl/test/test_DR.py b/src/chiplotle/hpgl/test/test_DR.py index 2251741..3ce8965 100644 --- a/src/chiplotle/hpgl/test/test_DR.py +++ b/src/chiplotle/hpgl/test/test_DR.py @@ -12,7 +12,7 @@ def test_DR_01(): t = DR() assert t.run == t.rise == None - assert t.format == "DR;" + assert t.format == b"DR;" def test_DR_02(): @@ -32,7 +32,7 @@ def test_DR_03(): assert t.run == 0 assert t.rise == 25.3 - assert t.format == "DR0.00,25.30;" + assert t.format == b"DR0.00,25.30;" def test_DR_03(): @@ -42,4 +42,4 @@ def test_DR_03(): assert t.run == 10 assert t.rise == 0 - assert t.format == "DR10.00,0.00;" + assert t.format == b"DR10.00,0.00;" diff --git a/src/chiplotle/hpgl/test/test_EA.py b/src/chiplotle/hpgl/test/test_EA.py index 0799e7c..816dc67 100644 --- a/src/chiplotle/hpgl/test/test_EA.py +++ b/src/chiplotle/hpgl/test/test_EA.py @@ -24,4 +24,4 @@ def test_EA_03(): """EA can initialize with a list of length 2.""" t = EA([1, 2]) assert t.xy == Coordinate(1, 2) - assert t.format == "EA1,2;" + assert t.format == b"EA1,2;" diff --git a/src/chiplotle/hpgl/test/test_ER.py b/src/chiplotle/hpgl/test/test_ER.py index 16bef28..d964795 100644 --- a/src/chiplotle/hpgl/test/test_ER.py +++ b/src/chiplotle/hpgl/test/test_ER.py @@ -23,4 +23,4 @@ def test_ER_03(): """ER can initialize with a list of length 2.""" t = ER([1, 2]) assert t.xy == Coordinate(1, 2) - assert t.format == "ER1,2;" + assert t.format == b"ER1,2;" diff --git a/src/chiplotle/hpgl/test/test_ES.py b/src/chiplotle/hpgl/test/test_ES.py index d73cf5d..fab0a56 100644 --- a/src/chiplotle/hpgl/test/test_ES.py +++ b/src/chiplotle/hpgl/test/test_ES.py @@ -12,32 +12,32 @@ def test_ES_01(): t = ES() assert t.charspace == None assert t.linespace == None - assert t.format == "ES;" + assert t.format == b"ES;" def test_ES_02(): t = ES(0) assert t.charspace == 0 assert t.linespace == None - assert t.format == "ES0.00;" + assert t.format == b"ES0.00;" def test_ES_03(): t = ES(1) assert t.charspace == 1 assert t.linespace == None - assert t.format == "ES1.00;" + assert t.format == b"ES1.00;" def test_ES_04(): t = ES(1, 0) assert t.charspace == 1 assert t.linespace == 0 - assert t.format == "ES1.00,0.00;" + assert t.format == b"ES1.00,0.00;" def test_ES_04(): t = ES(1, 1) assert t.charspace == 1 assert t.linespace == 1 - assert t.format == "ES1.00,1.00;" + assert t.format == b"ES1.00,1.00;" diff --git a/src/chiplotle/hpgl/test/test_EW.py b/src/chiplotle/hpgl/test/test_EW.py index cbdaf90..ef6ad35 100644 --- a/src/chiplotle/hpgl/test/test_EW.py +++ b/src/chiplotle/hpgl/test/test_EW.py @@ -16,7 +16,7 @@ def test_EW_01(): assert t.startangle == 0 assert t.sweepangle == 90 assert t.chordangle is None - assert t.format == "EW10.00,0.00,90.00;" + assert t.format == b"EW10.00,0.00,90.00;" def test_EW_02(): @@ -27,4 +27,4 @@ def test_EW_02(): assert t.startangle == 0 assert t.sweepangle == 90 assert t.chordangle == 4 - assert t.format == "EW10.00,0.00,90.00,4.00;" + assert t.format == b"EW10.00,0.00,90.00,4.00;" diff --git a/src/chiplotle/hpgl/test/test_FS.py b/src/chiplotle/hpgl/test/test_FS.py index 341bc73..b8277b4 100644 --- a/src/chiplotle/hpgl/test/test_FS.py +++ b/src/chiplotle/hpgl/test/test_FS.py @@ -13,7 +13,7 @@ def test_FS_01(): t = FS() assert t.force is None assert t.pen is None - assert t.format == "FS;" + assert t.format == b"FS;" def test_FS_02(): @@ -21,7 +21,7 @@ def test_FS_02(): t = FS(1) assert t.force == 1 assert t.pen is None - assert t.format == "FS1;" + assert t.format == b"FS1;" def test_FS_03(): @@ -29,11 +29,11 @@ def test_FS_03(): t = FS(1, 2) assert t.force == 1 assert t.pen == 2 - assert t.format == "FS1,2;" + assert t.format == b"FS1,2;" def test_FS_03(): """Setting force to None formats correctly.""" t = FS(1, 2) t.force = None - assert t.format == "FS;" + assert t.format == b"FS;" diff --git a/src/chiplotle/hpgl/test/test_FT.py b/src/chiplotle/hpgl/test/test_FT.py index d792dae..32eedd9 100644 --- a/src/chiplotle/hpgl/test/test_FT.py +++ b/src/chiplotle/hpgl/test/test_FT.py @@ -13,20 +13,20 @@ def test_FT_01(): assert t.type is None assert t.space is None assert t.angle is None - assert t.format == "FT;" + assert t.format == b"FT;" def test_FT_02(): t = FT(2) assert t.type == 2 - assert t.format == "FT2;" + assert t.format == b"FT2;" def test_FT_03(): t = FT(2, .23) assert t.type == 2 assert t.space == 0.23 - assert t.format == "FT2,0.23;" + assert t.format == b"FT2,0.23;" def test_FT_04(): @@ -34,7 +34,7 @@ def test_FT_04(): assert t.type == 2 assert t.space == 0.23 assert t.angle == 80.5 - assert t.format == "FT2,0.23,80.5;" + assert t.format == b"FT2,0.23,80.50;" def test_FT_05(): diff --git a/src/chiplotle/hpgl/test/test_IP.py b/src/chiplotle/hpgl/test/test_IP.py index dc62f6c..a8a5203 100644 --- a/src/chiplotle/hpgl/test/test_IP.py +++ b/src/chiplotle/hpgl/test/test_IP.py @@ -12,7 +12,7 @@ def test_IP_01(): """IP can be empty.""" t = IP() - assert t.format == "IP;" + assert t.format == b"IP;" assert isinstance(t.coords, CoordinateArray) diff --git a/src/chiplotle/hpgl/test/test_Label.py b/src/chiplotle/hpgl/test/test_Label.py new file mode 100644 index 0000000..b797f62 --- /dev/null +++ b/src/chiplotle/hpgl/test/test_Label.py @@ -0,0 +1,7 @@ +from chiplotle.hpgl.label import Label + + +def test_Label_text_only(): + + label = Label("hello") + assert label.format == b"DI;SI;ES;LO1;SL0.0000;DV0;LBhello\x03;" diff --git a/src/chiplotle/hpgl/test/test_PA.py b/src/chiplotle/hpgl/test/test_PA.py index 9967d6d..554ca7d 100644 --- a/src/chiplotle/hpgl/test/test_PA.py +++ b/src/chiplotle/hpgl/test/test_PA.py @@ -14,7 +14,7 @@ def test_PA_01(): assert t.xy == CoordinateArray([]) assert isinstance(t.xy, CoordinateArray) - assert t.format == "PA;" + assert t.format == b"PA;" ## eq ## diff --git a/src/chiplotle/hpgl/test/test_PU.py b/src/chiplotle/hpgl/test/test_PU.py index 8dace25..112bfa7 100644 --- a/src/chiplotle/hpgl/test/test_PU.py +++ b/src/chiplotle/hpgl/test/test_PU.py @@ -66,16 +66,16 @@ def test_pu_init_06(): def test_pu_format_01(): """Empty PU( ).""" t = PU() - assert t.format == "PU;" + assert t.format == b"PU;" def test_pu_format_02(): """Floats are left floats at format.""" t = PU([(1, 0.)]) - assert t.format == "PU1.00,0.00;" + assert t.format == b"PU1.00,0.00;" def test_pu_format_03(): """Ints are kept ints at format.""" t = PU([(0, 0)]) - assert t.format == "PU0,0;" + assert t.format == b"PU0,0;" diff --git a/src/chiplotle/hpgl/test/test_SI.py b/src/chiplotle/hpgl/test/test_SI.py index d26a087..0fb8d97 100644 --- a/src/chiplotle/hpgl/test/test_SI.py +++ b/src/chiplotle/hpgl/test/test_SI.py @@ -12,13 +12,13 @@ def test_SI_01(): """SI has default values.""" t = SI() - assert t.format == "SI;" + assert t.format == b"SI;" def test_SI_02(): t = SI(3, 2) - assert t.format == "SI3.00,2.00;" + assert t.format == b"SI3.00,2.00;" def test_SI_03(): diff --git a/src/chiplotle/hpgl/test/test_SR.py b/src/chiplotle/hpgl/test/test_SR.py index dc87636..88d05a7 100644 --- a/src/chiplotle/hpgl/test/test_SR.py +++ b/src/chiplotle/hpgl/test/test_SR.py @@ -13,14 +13,14 @@ def test_SR_01(): t = SR() - assert t.format == "SR;" + assert t.format == b"SR;" def test_SR_02(): t = SR(3, 2) - assert t.format == "SR3.00,2.00;" + assert t.format == b"SR3.00,2.00;" def test_SR_03(): diff --git a/src/chiplotle/hpgl/test/test_VS.py b/src/chiplotle/hpgl/test/test_VS.py index fd7720e..bb03da6 100644 --- a/src/chiplotle/hpgl/test/test_VS.py +++ b/src/chiplotle/hpgl/test/test_VS.py @@ -13,7 +13,7 @@ def test_VS_01(): t = VS() assert t.vel is None assert t.pen is None - assert t.format == "VS;" + assert t.format == b"VS;" def test_VS_02(): @@ -21,7 +21,7 @@ def test_VS_02(): t = VS(1) assert t.vel == 1 assert t.pen is None - assert t.format == "VS1;" + assert t.format == b"VS1;" def test_VS_03(): @@ -29,11 +29,11 @@ def test_VS_03(): t = VS(1, 2) assert t.vel == 1 assert t.pen == 2 - assert t.format == "VS1,2;" + assert t.format == b"VS1,2;" def test_VS_03(): """Setting vel to None formats correctly.""" t = VS(1, 2) t.vel = None - assert t.format == "VS;" + assert t.format == b"VS;" diff --git a/src/chiplotle/hpgl/test/test_WG.py b/src/chiplotle/hpgl/test/test_WG.py index 1af68a4..f7b5e60 100644 --- a/src/chiplotle/hpgl/test/test_WG.py +++ b/src/chiplotle/hpgl/test/test_WG.py @@ -16,7 +16,7 @@ def test_WG_01(): assert t.startangle == 0 assert t.sweepangle == 90 assert t.chordangle is None - assert t.format == "WG10.00,0.00,90.00;" + assert t.format == b"WG10.00,0.00,90.00;" def test_WG_02(): @@ -27,4 +27,4 @@ def test_WG_02(): assert t.startangle == 0 assert t.sweepangle == 90 assert t.chordangle == 4 - assert t.format == "WG10.00,0.00,90.00,4.00;" + assert t.format == b"WG10.00,0.00,90.00,4.00;" diff --git a/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py b/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py index 963243e..29bdd0b 100644 --- a/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py +++ b/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py @@ -12,14 +12,14 @@ def test_dci_sethandshakemode_01(): """SetHandshakeMode can take no parameters.""" t = SetHandshakeMode() - assert t.format == "\x1b.P" + assert t.format == b"\x1b.P" def test_dci_sethandshakemode_02(): """SetHandshakeMode can take None, 0, 1, 2 or 3 to set the mode.""" t = SetHandshakeMode(1) - assert t.format == "\x1b.P1" + assert t.format == b"\x1b.P1" def test_dci_sethandshakemode_03(): diff --git a/src/chiplotle/hpgl/test/test_hpgl_repr.py b/src/chiplotle/hpgl/test/test_hpgl_repr.py new file mode 100644 index 0000000..1ddde3e --- /dev/null +++ b/src/chiplotle/hpgl/test/test_hpgl_repr.py @@ -0,0 +1,7 @@ +from chiplotle.hpgl.commands import LT + + +def test_hpgl_primitive_repr(): + command = LT(pattern=6, length=5) + print(repr(command)) + assert repr(command) == "LT(length=5, pattern=6)" \ No newline at end of file diff --git a/src/chiplotle/hpgl/test/test_hpglprimitive.py b/src/chiplotle/hpgl/test/test_hpglprimitive.py index 60e686f..6718420 100644 --- a/src/chiplotle/hpgl/test/test_hpglprimitive.py +++ b/src/chiplotle/hpgl/test/test_hpglprimitive.py @@ -9,21 +9,22 @@ from chiplotle.hpgl.abstract.hpglprimitive import _HPGLPrimitive +def teardown_module(module): + ## Reset terminator back to default ';' so that future + ## tests don't fail. + _HPGLPrimitive._terminator = b";" + def test_hpglprimitive_terminator_01(): """the _HPGLPrimitive class has a _terminator attribute that defines the terminator for HPGL commands. The default is `;`.""" - assert _HPGLPrimitive._terminator == ";" + assert _HPGLPrimitive._terminator == b";" t = PU() - assert t.format == "PU;" + assert t.format == b"PU;" - _HPGLPrimitive._terminator = "@" - assert t.format == "PU@" + _HPGLPrimitive._terminator = b"@" + assert t.format == b"PU@" t = PU() - assert t.format == "PU@" - - ## Reset terminator back to default ';' so that future - ## tests don't fail. - _HPGLPrimitive._terminator = ";" + assert t.format == b"PU@" diff --git a/src/chiplotle/hpgl/test/test_pen.py b/src/chiplotle/hpgl/test/test_pen.py index de87cca..a350fb2 100644 --- a/src/chiplotle/hpgl/test/test_pen.py +++ b/src/chiplotle/hpgl/test/test_pen.py @@ -24,7 +24,7 @@ def test_pen_02(): assert t.velocity == None assert t.thickness == None - assert t.format == "SP2;" + assert t.format == b"SP2;" def test_pen_03(): @@ -36,7 +36,7 @@ def test_pen_03(): assert t.velocity == 3 assert t.thickness == 0.1 - assert t.format == "SP2;AS5,2;FS4,2;VS3,2;PT0.10;" + assert t.format == b"SP2;AS5,2;FS4,2;VS3,2;PT0.10;" def test_pen_04(): @@ -48,4 +48,4 @@ def test_pen_04(): assert t.velocity == 3 assert t.thickness == None - assert t.format == "SP2;FS4,2;VS3,2;" + assert t.format == b"SP2;FS4,2;VS3,2;" diff --git a/src/chiplotle/plotters/baseplotter.py b/src/chiplotle/plotters/baseplotter.py index d69c966..c87741e 100644 --- a/src/chiplotle/plotters/baseplotter.py +++ b/src/chiplotle/plotters/baseplotter.py @@ -11,6 +11,8 @@ from builtins import range from builtins import open from builtins import int +from collections import Iterable + from future import standard_library from six import string_types @@ -63,21 +65,23 @@ def write(self, data): """Public access for writing to serial port. data can be an iterator, a string or an _HPGL. """ ## TODO: remove _HPGL from this list... - if isinstance(data, (_Shape, _HPGL)): + if isinstance(data, _HPGL): data = data.format - try: - self._write_string_to_port(data) - except TypeError: ## must be an iterable... + elif isinstance(data, bytes): + pass + elif isinstance(data, Iterable): result = [] for c in data: ## TODO: remove _HPGL from this list... if isinstance(c, (_Shape, _HPGL)): c = c.format + else: + print(c, type(c)) result.append(c) - try: - self._write_string_to_port("".join(result)) - except TypeError: - raise TypeError("Must be a str, iterator, or a _Shape.") + data = b"".join(result) + else: + raise TypeError("Unknown type {}, can't write to serial".format(type(data))) + self._write_bytes_to_port(data) def write_file(self, filename): """Sends the HPGL content of the given `filename` to the plotter.""" @@ -91,29 +95,29 @@ def write_file(self, filename): ### PRIVATE METHODS ### def _is_HPGL_command_known(self, hpglCommand): - if self._check_is_bytes(hpglCommand): + try: command_head = hpglCommand[0:2] - elif hasattr(hpglCommand, "_name"): - command_head = hpglCommand._name - else: - raise TypeError("Don't know type %s" % hpglCommand) + except TypeError: + try: + command_head = hpglCommand._name + except AttributeError: + raise TypeError("Don't know type %s" % type(hpglCommand)) return command_head.upper() in self.allowedHPGLCommands def _filter_unrecognized_commands(self, commands): self._check_is_bytes(commands) result = [] # commands = re.split('[\n;]+', commands) - commands = commands.split(";") + commands = commands.split(b";") for comm in commands: if comm: ## if not an empty string. if self._is_HPGL_command_known(comm): - # result.append(comm) - result.append(comm + ";") + result.append(comm + b";") else: msg = "HPGL command `%s` not recognized by %s. Command not sent." msg = msg % (comm, self.type) self._logger.warning(msg) - return "".join(result) + return b"".join(result) def _sleep_while_buffer_full(self): """ @@ -130,9 +134,8 @@ def _slice_string_to_buffer_size(self, data): result.append(data[i * self.buffer_size : (i + 1) * self.buffer_size]) return result - def _write_string_to_port(self, data): + def _write_bytes_to_port(self, data): """ Write data to serial port. data is expected to be a string.""" - # assert type(data) is str self._check_is_bytes(data) data = self._filter_unrecognized_commands(data) data = self._slice_string_to_buffer_size(data) @@ -142,7 +145,7 @@ def _write_string_to_port(self, data): def _check_is_bytes(self, data): if not isinstance(data, bytes): - raise TypeError("Bytes expected.") + raise TypeError("Expected bytes but got {}".format(type(data))) ### PRIVATE QUERIES ### @@ -154,7 +157,7 @@ def _read_port(self): while elapsed_time < total_time: if self._serial_port.inWaiting(): try: - return self._serial_port.readline(eol="\r") # <-- old pyserial + return self._serial_port.readline(eol=b"\r") # <-- old pyserial except: return self._serial_port.readline() else: @@ -188,16 +191,16 @@ def _send_query(self, query): def id(self): """Get id of plotter. Returns a string.""" id = self._send_query(self._hpgl.OI()) - return id.strip("\r") + return id.strip(b"\r") @property def actual_position(self): """Output the actual position of the plotter pen. Returns a tuple (Coordinate(x, y), pen status)""" - response = self._send_query(self._hpgl.OA()).split(",") + response = self._send_query(self._hpgl.OA()).split(b",") return [ Coordinate(eval(response[0]), eval(response[1])), - eval(response[2].strip("\r")), + eval(response[2].strip(b"\r")), ] @property @@ -208,20 +211,20 @@ def carousel_type(self): def commanded_position(self): """Output the commanded position of the plotter pen. Returns a tuple [Coordinate(x, y), pen status]""" - response = self._send_query(self._hpgl.OC()).split(",") + response = self._send_query(self._hpgl.OC()).split(b",") return [ Coordinate(eval(response[0]), eval(response[1])), - eval(response[2].strip("\r")), + eval(response[2].strip(b"\r")), ] @property def digitized_point(self): """Returns last digitized point. Returns a tuple [Coordinate(x, y), pen status]""" - response = self._send_query(self._hpgl.OD()).split(",") + response = self._send_query(self._hpgl.OD()).split(b",") return [ Coordinate(eval(response[0]), eval(response[1])), - eval(response[2].strip("\r")), + eval(response[2].strip(b"\r")), ] @property @@ -243,9 +246,9 @@ def options(self): @property def output_p1p2(self): """Returns the current settings for P1, P2. Returns two Coordinates""" - response = self._send_query(self._hpgl.OP()).split(",") + response = self._send_query(self._hpgl.OP()).split(b",") cp1 = Coordinate(eval(response[0]), eval(response[1])) - cp2 = Coordinate(eval(response[2]), eval(response[3].strip("\r"))) + cp2 = Coordinate(eval(response[2]), eval(response[3].strip(b"\r"))) return (cp1, cp2) @property diff --git a/src/chiplotle/plotters/dxy1300.py b/src/chiplotle/plotters/dxy1300.py index 05a91ee..c5c7fcc 100644 --- a/src/chiplotle/plotters/dxy1300.py +++ b/src/chiplotle/plotters/dxy1300.py @@ -16,8 +16,8 @@ class DXY1300(_DrawingPlotter): def __init__(self, ser, **kwargs): self.allowedHPGLCommands = tuple( - [ - "\x1b.", + [x.encode('ascii') for x in + ("\x1b.", "AA", "AR", "CA", @@ -74,7 +74,7 @@ def __init__(self, ser, **kwargs): "WG", "XT", "YT", - ] + )] ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "DXY-1300" diff --git a/src/chiplotle/plotters/margins/plottermargins.py b/src/chiplotle/plotters/margins/plottermargins.py index d48ff40..c5b62f9 100644 --- a/src/chiplotle/plotters/margins/plottermargins.py +++ b/src/chiplotle/plotters/margins/plottermargins.py @@ -71,8 +71,8 @@ def top_left(self): @property def all_coordinates(self): self._plotter._serial_port.flushInput() - self._plotter._write_string_to_port(self._queryCommand.format) - m = self._plotter._read_port().rstrip("\r").split(",") + self._plotter._write_bytes_to_port(self._queryCommand.format) + m = self._plotter._read_port().rstrip(b"\r").split(b",") return tuple([eval(n) for n in m]) ## METHODS ## diff --git a/src/chiplotle/plotters/test/test_drawingplotter.py b/src/chiplotle/plotters/test/test_drawingplotter.py index 1296156..c002b7b 100644 --- a/src/chiplotle/plotters/test/test_drawingplotter.py +++ b/src/chiplotle/plotters/test/test_drawingplotter.py @@ -23,7 +23,7 @@ def test_goto_01(): def test_gotocenter_01(): p = instantiate_virtual_plotter() p.goto_center() - assert p._serial_port._received_commands_string == "IN;PA5160.00,3960.00;" + assert p._serial_port._received_commands_string == b"IN;PA5160.00,3960.00;" assert p._serial_port.get_received_commands() == [IN(), PA([(5160.0, 3960.0)])] diff --git a/src/chiplotle/plotters/test/test_plotter_write.py b/src/chiplotle/plotters/test/test_plotter_write.py index e73c190..f887356 100644 --- a/src/chiplotle/plotters/test/test_plotter_write.py +++ b/src/chiplotle/plotters/test/test_plotter_write.py @@ -15,9 +15,9 @@ def test_plotter_write_01(): """write( ) can take a string of raw HPGL commands.""" p = instantiate_virtual_plotter() - commands = "SP1;PA0,0;PD;PU;" + commands = b"SP1;PA0,0;PD;PU;" p.write(commands) - assert p.format == "IN;" + commands + assert p.format == b"IN;" + commands def test_plotter_write_02(): @@ -25,15 +25,15 @@ def test_plotter_write_02(): p = instantiate_virtual_plotter() command = CI(1000) p.write(command) - assert p.format == "IN;" + command.format + assert p.format == b"IN;" + command.format def test_plotter_write_03(): """write( ) can take list/tuple of string HPGL commands.""" p = instantiate_virtual_plotter() - commands = ["SP2;", "PA0,0;", "PD;", "PU;"] + commands = [b"SP2;", b"PA0,0;", b"PD;", b"PU;"] p.write(commands) - assert p.format == "IN;" + "".join(commands) + assert p.format == b"IN;" + b"".join(commands) def test_plotter_write_04(): @@ -41,4 +41,4 @@ def test_plotter_write_04(): p = instantiate_virtual_plotter() commands = [PA([(1000, 0)]), CI(500)] p.write(commands) - assert p.format == "IN;" + "".join([c.format for c in commands]) + assert p.format == b"IN;" + b"".join([c.format for c in commands]) diff --git a/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py index b73741c..4fb3422 100644 --- a/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -3,7 +3,6 @@ from __future__ import division from __future__ import absolute_import from future import standard_library -from six import string_types standard_library.install_aliases() from chiplotle.hpgl import commands as hpgl @@ -13,7 +12,7 @@ def inflate_hpgl_string(string, filter_commands=None): - """Reads a text string and "inflates" it by creating + """Reads a string or bytes and "inflates" it by creating Chiplotle-HPGL class instances of the found HPGL commands. Example:: @@ -31,23 +30,26 @@ def inflate_hpgl_string(string, filter_commands=None): filter_commands = filter_commands or [] - if not isinstance(string, string_types): + if not isinstance(string, (str, bytes)): raise TypeError("`string` must be a string or bytes") if not isinstance(filter_commands, (list, tuple)): msg = "`filter_commands` must be a list of string HPGL commands." raise TypeError(msg) + if isinstance(string, bytes): + string = string.decode('ascii') + _unsupported_commands = ("PW", "PC", "LA", "WU", "BP") - comms = parse_hpgl_string(string) + commands = parse_hpgl_string(string) result = [] - for c in comms: - if c: ## not an empty string: '' - head = c[0:2] + for command in commands: + if command: ## not an empty string: '' + head = command[0:2] if head in filter_commands: continue if head in _unsupported_commands: continue - command = inflate_hpgl_string_command(c) + command = inflate_hpgl_string_command(command) result.append(command) return result diff --git a/src/chiplotle/tools/hpgltools/is_primitive_absolute.py b/src/chiplotle/tools/hpgltools/is_primitive_absolute.py index 8ec75e3..cdc72c3 100644 --- a/src/chiplotle/tools/hpgltools/is_primitive_absolute.py +++ b/src/chiplotle/tools/hpgltools/is_primitive_absolute.py @@ -15,7 +15,7 @@ def is_primitive_absolute(command): if not isinstance(command, _HPGL): raise TypeError("command is not an _HPGL") - if command._name in ("AA", "EA", "PA", "RA"): + if command._name in (b"AA", b"EA", b"PA", b"RA"): return True else: return False diff --git a/src/chiplotle/tools/hpgltools/parse_hpgl_string.py b/src/chiplotle/tools/hpgltools/parse_hpgl_string.py index 19ef20b..7a9169c 100644 --- a/src/chiplotle/tools/hpgltools/parse_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/parse_hpgl_string.py @@ -13,8 +13,8 @@ def parse_hpgl_string(arg): """The function takes a string `arg` of HPGL commands, parses them (separates them) and returns them in a list. """ - if not isinstance(arg, string_types): - raise TypeError("`arg` must be of type string or bytes") + if not isinstance(arg, str): + raise TypeError("`arg` must be a string but was {}".format(type(arg))) string_commands = ["LB", "DT"] numeric_commands = [ diff --git a/src/chiplotle/tools/io/save_hpgl.py b/src/chiplotle/tools/io/save_hpgl.py index 76e27c9..c2ac775 100644 --- a/src/chiplotle/tools/io/save_hpgl.py +++ b/src/chiplotle/tools/io/save_hpgl.py @@ -27,5 +27,5 @@ def save_hpgl(expr, filename): ## create HPGL file file = open("%s" % filename, "w") - file.writelines(hpgl) + file.writelines([command.decode('ascii') for command in hpgl]) file.close() diff --git a/src/chiplotle/tools/io/test/test_import_hpgl_file.py b/src/chiplotle/tools/io/test/test_import_hpgl_file.py index 2d681e7..a1372e3 100644 --- a/src/chiplotle/tools/io/test/test_import_hpgl_file.py +++ b/src/chiplotle/tools/io/test/test_import_hpgl_file.py @@ -13,19 +13,19 @@ def test_import_hpgl_file_01(): path = os.path.dirname(os.path.abspath(__file__)) t = io.import_hpgl_file(os.path.join(path, "hpgl_import_test_file.hpgl")) - assert t[0].format == "IN;" - assert t[1].format == "IP0,0,8128,8128;" - assert t[2].format == "SC0,10000,0,10000;" - assert t[3].format == "SP1;" - assert t[4].format == "LT;" - assert t[5].format == "PM0;" - assert t[6].format == "PU;" - assert t[7].format == "PA0,0;" - assert t[8].format == "PD;" - assert t[9].format == "PA10,0,10,10,0,10,0,0;" - assert t[10].format == "PM2;" - assert t[11].format == "PU;" - assert t[12].format == "FT2;" - assert t[13].format == "FP;" - assert t[14].format == "EP;" - assert t[15].format == "SP0;" + assert t[0].format == b"IN;" + assert t[1].format == b"IP0,0,8128,8128;" + assert t[2].format == b"SC0,10000,0,10000;" + assert t[3].format == b"SP1;" + assert t[4].format == b"LT;" + assert t[5].format == b"PM0;" + assert t[6].format == b"PU;" + assert t[7].format == b"PA0,0;" + assert t[8].format == b"PD;" + assert t[9].format == b"PA10,0,10,10,0,10,0,0;" + assert t[10].format == b"PM2;" + assert t[11].format == b"PU;" + assert t[12].format == b"FT2;" + assert t[13].format == b"FP;" + assert t[14].format == b"EP;" + assert t[15].format == b"SP0;" diff --git a/src/chiplotle/tools/serialtools/virtual_serial_port.py b/src/chiplotle/tools/serialtools/virtual_serial_port.py index 89b9747..ce52fac 100644 --- a/src/chiplotle/tools/serialtools/virtual_serial_port.py +++ b/src/chiplotle/tools/serialtools/virtual_serial_port.py @@ -17,8 +17,8 @@ def __init__(self, left_bottom, right_top): left_bottom = Coordinate(*left_bottom) right_top = Coordinate(*right_top) # print "I am a virtual serial port!" - self._received_commands_string = "" - self._next_query_value = "" + self._received_commands_string = b"" + self._next_query_value = b"" self.commanded_x = 0 self.commanded_y = 0 # pen_status: 0 == up, 1 == down @@ -58,7 +58,7 @@ def write(self, command): return elif command.startswith(commands.OH().format): # hard margins - out_string = "%d, %d, %d, %d\r" % ( + out_string = b"%d, %d, %d, %d\r" % ( self.left, self.bottom, self.right, @@ -68,7 +68,7 @@ def write(self, command): return elif command.startswith(commands.OW().format): # soft margins - out_string = "%d, %d, %d, %d\r" % ( + out_string = b"%d, %d, %d, %d\r" % ( self.left, self.bottom, self.right, @@ -81,7 +81,7 @@ def write(self, command): return elif command.startswith(commands.OA().format): # actual position - out_string = "%i, %i, %i\r" % ( + out_string = b"%i, %i, %i\r" % ( self.commanded_x, self.commanded_y, self.pen_status, @@ -90,7 +90,7 @@ def write(self, command): return elif command.startswith(commands.OC().format): # commanded position - out_string = "%i, %i, %i\r" % ( + out_string = b"%i, %i, %i\r" % ( self.commanded_x, self.commanded_y, self.pen_status, @@ -99,7 +99,7 @@ def write(self, command): return elif command.startswith(commands.OP().format): # output P1P2 - out_string = "%d, %d, %d, %d\r" % ( + out_string = b"%d, %d, %d, %d\r" % ( self.left, self.bottom, self.right, @@ -116,27 +116,27 @@ def write(self, command): # this breaks for buffered writes since we don't always # receive a full PA1000,1000 type command - split_data = command.split(";") + split_data = command.split(b";") for point in split_data: - if point.startswith("PA"): - point_parts = point.strip("PA").split(",") + if point.startswith(b"PA"): + point_parts = point.strip(b"PA").split(b",") self.commanded_x = eval(point_parts[len(point_parts) - 2]) self.commanded_y = eval(point_parts[len(point_parts) - 1]) - elif point.startswith("PD"): - if "," in point: - point_parts = point.strip("PD").split(",") + elif point.startswith(b"PD"): + if b"," in point: + point_parts = point.strip(b"PD").split(b",") self.commanded_x = eval(point_parts[len(point_parts) - 2]) self.commanded_y = eval(point_parts[len(point_parts) - 1]) self.pen_status = 1 - elif point.startswith("PU"): - if "," in point: - point_parts = point.strip("PU").split(",") + elif point.startswith(b"PU"): + if b"," in point: + point_parts = point.strip(b"PU").split(b",") self.commanded_x = eval(point_parts[len(point_parts) - 2]) self.commanded_y = eval(point_parts[len(point_parts) - 1]) self.pen_status = 0 - if point.startswith("PR"): - point_parts = point.strip("PR").split(",") + if point.startswith(b"PR"): + point_parts = point.strip(b"PR").split(b",") self.commanded_x += eval(point_parts[len(point_parts) - 2]) self.commanded_y += eval(point_parts[len(point_parts) - 1]) From 30e96651a1ce82547c54f37f920ef16def9b1759 Mon Sep 17 00:00:00 2001 From: Will Price Date: Sat, 1 Sep 2018 22:31:19 +0100 Subject: [PATCH 56/82] Fix python 2 test regressions --- src/chiplotle/hpgl/commands.py | 2 +- src/chiplotle/hpgl/test/test_Label.py | 1 - src/chiplotle/tools/hpgltools/inflate_hpgl_string.py | 3 ++- src/chiplotle/tools/hpgltools/parse_hpgl_string.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/chiplotle/hpgl/commands.py b/src/chiplotle/hpgl/commands.py index 885e8b0..9991f62 100644 --- a/src/chiplotle/hpgl/commands.py +++ b/src/chiplotle/hpgl/commands.py @@ -860,7 +860,7 @@ class LB(_HPGLPrimitive): def __init__(self, text): self.text = text - self.labelTerminator = bytes([3]) + self.labelTerminator = chr(3).encode('ascii') @property def format(self): diff --git a/src/chiplotle/hpgl/test/test_Label.py b/src/chiplotle/hpgl/test/test_Label.py index b797f62..accf836 100644 --- a/src/chiplotle/hpgl/test/test_Label.py +++ b/src/chiplotle/hpgl/test/test_Label.py @@ -2,6 +2,5 @@ def test_Label_text_only(): - label = Label("hello") assert label.format == b"DI;SI;ES;LO1;SL0.0000;DV0;LBhello\x03;" diff --git a/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py index 4fb3422..b1e09f4 100644 --- a/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -3,6 +3,7 @@ from __future__ import division from __future__ import absolute_import from future import standard_library +from six import string_types standard_library.install_aliases() from chiplotle.hpgl import commands as hpgl @@ -30,7 +31,7 @@ def inflate_hpgl_string(string, filter_commands=None): filter_commands = filter_commands or [] - if not isinstance(string, (str, bytes)): + if not isinstance(string, (string_types, bytes)): raise TypeError("`string` must be a string or bytes") if not isinstance(filter_commands, (list, tuple)): msg = "`filter_commands` must be a list of string HPGL commands." diff --git a/src/chiplotle/tools/hpgltools/parse_hpgl_string.py b/src/chiplotle/tools/hpgltools/parse_hpgl_string.py index 7a9169c..14e54d3 100644 --- a/src/chiplotle/tools/hpgltools/parse_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/parse_hpgl_string.py @@ -13,7 +13,7 @@ def parse_hpgl_string(arg): """The function takes a string `arg` of HPGL commands, parses them (separates them) and returns them in a list. """ - if not isinstance(arg, str): + if not isinstance(arg, string_types): raise TypeError("`arg` must be a string but was {}".format(type(arg))) string_commands = ["LB", "DT"] From 23007ab82ffa81a684ea0f5a8d7158b7276cb57d Mon Sep 17 00:00:00 2001 From: Will Price Date: Sat, 1 Sep 2018 22:54:49 +0100 Subject: [PATCH 57/82] Force allowedHPGLCommands to be bytes by protecting with property --- src/chiplotle/plotters/dpx2000.py | 144 ++++++++--------- src/chiplotle/plotters/dpx2200.py | 144 ++++++++--------- src/chiplotle/plotters/dpx3300.py | 144 ++++++++--------- src/chiplotle/plotters/drawingplotter.py | 23 +++ src/chiplotle/plotters/dxy1300.py | 118 +++++++------- src/chiplotle/plotters/dxy880.py | 116 +++++++------ src/chiplotle/plotters/hp7475a.py | 118 +++++++------- src/chiplotle/plotters/hp7550a.py | 176 ++++++++++---------- src/chiplotle/plotters/hp7576a.py | 144 ++++++++--------- src/chiplotle/plotters/hp7585b.py | 162 +++++++++---------- src/chiplotle/plotters/hp7595a.py | 198 +++++++++++------------ src/chiplotle/plotters/hp7596a.py | 198 +++++++++++------------ src/chiplotle/plotters/plotter.py | 122 +++++++------- 13 files changed, 903 insertions(+), 904 deletions(-) diff --git a/src/chiplotle/plotters/dpx2000.py b/src/chiplotle/plotters/dpx2000.py index 967e9b5..644560c 100644 --- a/src/chiplotle/plotters/dpx2000.py +++ b/src/chiplotle/plotters/dpx2000.py @@ -15,79 +15,77 @@ class DPX2000(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AR", - "BL", - "CA", - "CC", - "CI", - "CP", - "CS", - "CT", - "DC", - "DF", - "DI", - "DL", - "DP", - "DR", - "DT", - "EA", - "EP", - "ER", - "ES", - "EW", - "FP", - "FS", - "FT", - "IM", - "IN", - "IP", - "IW", - "LB", - "LO", - "LT", - "OA", - "OC", - "OD", - "OE", - "OF", - "OH", - "OI", - "OL", - "OO", - "OP", - "OS", - "OT", - "OW", - "PA", - "PB", - "PD", - "PM", - "PU", - "PR", - "PT", - "RA", - "RO", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "UF", - "VS", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AR", + "BL", + "CA", + "CC", + "CI", + "CP", + "CS", + "CT", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FS", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LO", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PM", + "PU", + "PR", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "DPX-2000" diff --git a/src/chiplotle/plotters/dpx2200.py b/src/chiplotle/plotters/dpx2200.py index 5c53df6..60ee136 100644 --- a/src/chiplotle/plotters/dpx2200.py +++ b/src/chiplotle/plotters/dpx2200.py @@ -15,79 +15,77 @@ class DPX2200(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AR", - "BL", - "CA", - "CC", - "CI", - "CP", - "CS", - "CT", - "DC", - "DF", - "DI", - "DL", - "DP", - "DR", - "DT", - "EA", - "EP", - "ER", - "ES", - "EW", - "FP", - "FS", - "FT", - "IM", - "IN", - "IP", - "IW", - "LB", - "LO", - "LT", - "OA", - "OC", - "OD", - "OE", - "OF", - "OH", - "OI", - "OL", - "OO", - "OP", - "OS", - "OT", - "OW", - "PA", - "PB", - "PD", - "PM", - "PU", - "PR", - "PT", - "RA", - "RO", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "UF", - "VS", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AR", + "BL", + "CA", + "CC", + "CI", + "CP", + "CS", + "CT", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FS", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LO", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PM", + "PU", + "PR", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "DPX-2200" diff --git a/src/chiplotle/plotters/dpx3300.py b/src/chiplotle/plotters/dpx3300.py index 631eedd..ed77d08 100644 --- a/src/chiplotle/plotters/dpx3300.py +++ b/src/chiplotle/plotters/dpx3300.py @@ -15,79 +15,77 @@ class DPX3300(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AR", - "BL", - "CA", - "CC", - "CI", - "CP", - "CS", - "CT", - "DC", - "DF", - "DI", - "DL", - "DP", - "DR", - "DT", - "EA", - "EP", - "ER", - "ES", - "EW", - "FP", - "FS", - "FT", - "IM", - "IN", - "IP", - "IW", - "LB", - "LO", - "LT", - "OA", - "OC", - "OD", - "OE", - "OF", - "OH", - "OI", - "OL", - "OO", - "OP", - "OS", - "OT", - "OW", - "PA", - "PB", - "PD", - "PM", - "PU", - "PR", - "PT", - "RA", - "RO", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "UF", - "VS", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AR", + "BL", + "CA", + "CC", + "CI", + "CP", + "CS", + "CT", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FS", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LO", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PM", + "PU", + "PR", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "DPX-3300" diff --git a/src/chiplotle/plotters/drawingplotter.py b/src/chiplotle/plotters/drawingplotter.py index 07000cc..c0fbe6a 100644 --- a/src/chiplotle/plotters/drawingplotter.py +++ b/src/chiplotle/plotters/drawingplotter.py @@ -9,6 +9,7 @@ from __future__ import absolute_import from future import standard_library +from six import string_types standard_library.install_aliases() from chiplotle.plotters.baseplotter import _BasePlotter @@ -16,6 +17,28 @@ class _DrawingPlotter(_BasePlotter): + def get_allowedHPGLCommands(self): + return self._allowed_hpgl_commands + + def set_allowedHPGLCommands(self, allowed_hpgl_commands): + def str_to_bytes(str_or_bytes): + if isinstance(str_or_bytes, bytes): + return str_or_bytes + elif isinstance(str_or_bytes, string_types): + return str_or_bytes.encode("ascii") + raise TypeError( + "Expected HPGL command {} to be str or bytes but was {}".format( + repr(str_or_bytes), type(str_or_bytes) + ) + ) + + self._allowed_hpgl_commands = tuple( + [str_to_bytes(hpgl_command) for hpgl_command in allowed_hpgl_commands] + ) + + allowedHPGLCommands = property( + fget=get_allowedHPGLCommands, fset=set_allowedHPGLCommands + ) ## motion ## diff --git a/src/chiplotle/plotters/dxy1300.py b/src/chiplotle/plotters/dxy1300.py index c5c7fcc..beedd40 100644 --- a/src/chiplotle/plotters/dxy1300.py +++ b/src/chiplotle/plotters/dxy1300.py @@ -15,66 +15,64 @@ class DXY1300(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [x.encode('ascii') for x in - ("\x1b.", - "AA", - "AR", - "CA", - "CI", - "CP", - "CS", - "DC", - "DF", - "DI", - "DP", - "DR", - "DT", - "EA", - "ER", - "EW", - "FT", - "IM", - "IN", - "IP", - "IW", - "LB", - "LT", - "OA", - "OC", - "OD", - "OE", - "OF", - "OH", - "OI", - "OO", - "OP", - "OS", - "OW", - "PA", - "PU", - "PD", - "PR", - "PS", - "PT", - "RA", - "RO", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "VS", - "WG", - "XT", - "YT", - )] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AR", + "CA", + "CI", + "CP", + "CS", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "ER", + "EW", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OO", + "OP", + "OS", + "OW", + "PA", + "PU", + "PD", + "PR", + "PS", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "DXY-1300" diff --git a/src/chiplotle/plotters/dxy880.py b/src/chiplotle/plotters/dxy880.py index c12ef6b..faf498e 100644 --- a/src/chiplotle/plotters/dxy880.py +++ b/src/chiplotle/plotters/dxy880.py @@ -15,65 +15,63 @@ class DXY880(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AR", - "CA", - "CI", - "CP", - "CS", - "DC", - "DF", - "DI", - "DP", - "DR", - "DT", - "EA", - "ER", - "EW", - "FT", - "IM", - "IN", - "IP", - "IW", - "LB", - "LT", - "OA", - "OC", - "OD", - "OE", - "OF", - "OI", - "OO", - "OP", - "OS", - "OW", - "PA", - "PU", - "PD", - "PR", - "PS", - "PT", - "RA", - "RO", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "VS", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AR", + "CA", + "CI", + "CP", + "CS", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "ER", + "EW", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OI", + "OO", + "OP", + "OS", + "OW", + "PA", + "PU", + "PD", + "PR", + "PS", + "PT", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "DXY-880" diff --git a/src/chiplotle/plotters/hp7475a.py b/src/chiplotle/plotters/hp7475a.py index 069caad..4c493b3 100644 --- a/src/chiplotle/plotters/hp7475a.py +++ b/src/chiplotle/plotters/hp7475a.py @@ -16,66 +16,64 @@ class HP7475A(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AR", - "CA", - "CI", - "CP", - "CS", - "DC", - "DF", - "DI", - "DP", - "DR", - "DT", - "EA", - "ER", - "EW", - "FT", - "IM", - "IN", - "IP", - "IW", - "LB", - "LT", - "OA", - "OC", - "OD", - "OE", - "OF", - "OH", - "OI", - "OO", - "OP", - "OS", - "OW", - "PA", - "PD", - "PR", - "PS", - "PT", - "PU", - "RA", - "RO", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "VS", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AR", + "CA", + "CI", + "CP", + "CS", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "ER", + "EW", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OO", + "OP", + "OS", + "OW", + "PA", + "PD", + "PR", + "PS", + "PT", + "PU", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "HP7475A" diff --git a/src/chiplotle/plotters/hp7550a.py b/src/chiplotle/plotters/hp7550a.py index c8b848c..3f06b97 100644 --- a/src/chiplotle/plotters/hp7550a.py +++ b/src/chiplotle/plotters/hp7550a.py @@ -15,95 +15,93 @@ class HP7550A(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AF", - "AH", - "AP", - "AR", - "BF", - "BL", - "CA", - "CC", - "CI", - "CM", - "CP", - "CS", - "CT", - "CV", - "DC", - "DF", - "DI", - "DL", - "DP", - "DR", - "DS", - "DT", - "EA", - "EP", - "ER", - "ES", - "EW", - "FP", - "FS", - "FT", - "GC", - "IM", - "IN", - "IP", - "IV", - "IW", - "KY", - "LB", - "LO", - "LT", - "NR", - "OA", - "OC", - "OD", - "OE", - "OF", - "OG", - "OH", - "OI", - "OK", - "OL", - "OO", - "OP", - "OS", - "OT", - "OW", - "PA", - "PB", - "PD", - "PG", - "PM", - "PR", - "PT", - "PU", - "RA", - "RO", - "RP", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "UF", - "VS", - "WD", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AF", + "AH", + "AP", + "AR", + "BF", + "BL", + "CA", + "CC", + "CI", + "CM", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DS", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FS", + "FT", + "GC", + "IM", + "IN", + "IP", + "IV", + "IW", + "KY", + "LB", + "LO", + "LT", + "NR", + "OA", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PG", + "PM", + "PR", + "PT", + "PU", + "RA", + "RO", + "RP", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VS", + "WD", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) self.type = "HP7550A" diff --git a/src/chiplotle/plotters/hp7576a.py b/src/chiplotle/plotters/hp7576a.py index cfc988e..ba74dc6 100644 --- a/src/chiplotle/plotters/hp7576a.py +++ b/src/chiplotle/plotters/hp7576a.py @@ -11,79 +11,77 @@ class HP7576A(_DrawingPlotter): def __init__(self, ser, **kwargs): ## allowedHPGLCommands must be set prior to base class init. - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AP", - "AR", - "CA", - "CI", - "CM", - "CP", - "CS", - "CT", - "DC", - "DF", - "DI", - "DP", - "DR", - "DS", - "DT", - "DV", - "EA", - "EP", - "ER", - "ES", - "EW", - "FP", - "FT", - "IM", - "IN", - "IP", - "IV", - "IW", - "LB", - "LO", - "LT", - "NR", - "OA", - "OC", - "OD", - "OE", - "OF", - "OH", - "OI", - "OO", - "OP", - "OS", - "OT", - "OW", - "PA", - "PD", - "PM", - "PR", - "PS", - "PT", - "PU", - "RA", - "RO", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "VS", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AP", + "AR", + "CA", + "CI", + "CM", + "CP", + "CS", + "CT", + "DC", + "DF", + "DI", + "DP", + "DR", + "DS", + "DT", + "DV", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FT", + "IM", + "IN", + "IP", + "IV", + "IW", + "LB", + "LO", + "LT", + "NR", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PD", + "PM", + "PR", + "PS", + "PT", + "PU", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) diff --git a/src/chiplotle/plotters/hp7585b.py b/src/chiplotle/plotters/hp7585b.py index b901a77..71f55ba 100644 --- a/src/chiplotle/plotters/hp7585b.py +++ b/src/chiplotle/plotters/hp7585b.py @@ -12,88 +12,86 @@ class HP7585B(_DrawingPlotter): """Use with Houston Instruments DMP-60.""" def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AP", - "AR", - "AS", - "BL", - "CA", - "CI", - "CP", - "CS", - "CT", - "CV", - "DC", - "DF", - "DI", - "DP", - "DR", - "DT", - "EA", - "EP", - "ER", - "ES", - "EW", - "FP", - "FT", - "GC", - "GM", - "GP", - "IM", - "IN", - "IP", - "IW", - "KY", - "LB", - "LO", - "LT", - "NR", - "OA", - "OB", - "OC", - "OD", - "OE", - "OF", - "OG", - "OH", - "OI", - "OK", - "OL", - "OO", - "OP", - "OS", - "OT", - "OW", - "PA", - "PB", - "PD", - "PM", - "PR", - "PT", - "PU", - "RA", - "RL", - "RO", - "RR", - "SA", - "SC", - "SG", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UF", - "VS", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AP", + "AR", + "AS", + "BL", + "CA", + "CI", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "ES", + "EW", + "FP", + "FT", + "GC", + "GM", + "GP", + "IM", + "IN", + "IP", + "IW", + "KY", + "LB", + "LO", + "LT", + "NR", + "OA", + "OB", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PM", + "PR", + "PT", + "PU", + "RA", + "RL", + "RO", + "RR", + "SA", + "SC", + "SG", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UF", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) diff --git a/src/chiplotle/plotters/hp7595a.py b/src/chiplotle/plotters/hp7595a.py index e09f631..9e3ab3c 100644 --- a/src/chiplotle/plotters/hp7595a.py +++ b/src/chiplotle/plotters/hp7595a.py @@ -16,106 +16,104 @@ class HP7595A(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AF", - "AH", - "AP", - "AR", - "AS", - "BF", - "BL", - "CA", - "CC", - "CI", - "CM", - "CP", - "CS", - "CT", - "CV", - "DC", - "DF", - "DI", - "DL", - "DP", - "DR", - "DS", - "DT", - "EA", - "EC", - "EP", - "ER", - "ES", - "EW", - "FP", - "FR", - "FS", - "FT", - "GC", - "GM", - "GP", - "IC", - "IM", - "IN", - "IP", - "IV", - "IW", - "KY", - "LB", - "LO", - "LT", - "NR", - "OA", - "OB", - "OC", - "OD", - "OE", - "OF", - "OG", - "OH", - "OI", - "OK", - "OL", - "OO", - "OP", - "OS", - "OT", - "OW", - "PA", - "PB", - "PD", - "PG", - "PM", - "PR", - "PT", - "PU", - "RA", - "RL", - "RO", - "RP", - "RR", - "SA", - "SC", - "SG", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "UF", - "VA", - "VN", - "VS", - "WD", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AF", + "AH", + "AP", + "AR", + "AS", + "BF", + "BL", + "CA", + "CC", + "CI", + "CM", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DS", + "DT", + "EA", + "EC", + "EP", + "ER", + "ES", + "EW", + "FP", + "FR", + "FS", + "FT", + "GC", + "GM", + "GP", + "IC", + "IM", + "IN", + "IP", + "IV", + "IW", + "KY", + "LB", + "LO", + "LT", + "NR", + "OA", + "OB", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PG", + "PM", + "PR", + "PT", + "PU", + "RA", + "RL", + "RO", + "RP", + "RR", + "SA", + "SC", + "SG", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VA", + "VN", + "VS", + "WD", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) diff --git a/src/chiplotle/plotters/hp7596a.py b/src/chiplotle/plotters/hp7596a.py index 5c153a9..14d642b 100644 --- a/src/chiplotle/plotters/hp7596a.py +++ b/src/chiplotle/plotters/hp7596a.py @@ -16,106 +16,104 @@ class HP7596A(_DrawingPlotter): def __init__(self, ser, **kwargs): - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AF", - "AH", - "AP", - "AR", - "AS", - "BF", - "BL", - "CA", - "CC", - "CI", - "CM", - "CP", - "CS", - "CT", - "CV", - "DC", - "DF", - "DI", - "DL", - "DP", - "DR", - "DS", - "DT", - "EA", - "EC", - "EP", - "ER", - "ES", - "EW", - "FP", - "FR", - "FS", - "FT", - "GC", - "GM", - "GP", - "IC", - "IM", - "IN", - "IP", - "IV", - "IW", - "KY", - "LB", - "LO", - "LT", - "NR", - "OA", - "OB", - "OC", - "OD", - "OE", - "OF", - "OG", - "OH", - "OI", - "OK", - "OL", - "OO", - "OP", - "OS", - "OT", - "OW", - "PA", - "PB", - "PD", - "PG", - "PM", - "PR", - "PT", - "PU", - "RA", - "RL", - "RO", - "RP", - "RR", - "SA", - "SC", - "SG", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "UF", - "VA", - "VN", - "VS", - "WD", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AF", + "AH", + "AP", + "AR", + "AS", + "BF", + "BL", + "CA", + "CC", + "CI", + "CM", + "CP", + "CS", + "CT", + "CV", + "DC", + "DF", + "DI", + "DL", + "DP", + "DR", + "DS", + "DT", + "EA", + "EC", + "EP", + "ER", + "ES", + "EW", + "FP", + "FR", + "FS", + "FT", + "GC", + "GM", + "GP", + "IC", + "IM", + "IN", + "IP", + "IV", + "IW", + "KY", + "LB", + "LO", + "LT", + "NR", + "OA", + "OB", + "OC", + "OD", + "OE", + "OF", + "OG", + "OH", + "OI", + "OK", + "OL", + "OO", + "OP", + "OS", + "OT", + "OW", + "PA", + "PB", + "PD", + "PG", + "PM", + "PR", + "PT", + "PU", + "RA", + "RL", + "RO", + "RP", + "RR", + "SA", + "SC", + "SG", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "UF", + "VA", + "VN", + "VS", + "WD", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) diff --git a/src/chiplotle/plotters/plotter.py b/src/chiplotle/plotters/plotter.py index 600928c..4b4857e 100644 --- a/src/chiplotle/plotters/plotter.py +++ b/src/chiplotle/plotters/plotter.py @@ -11,68 +11,66 @@ class Plotter(_DrawingPlotter): def __init__(self, ser, **kwargs): ## allowedHPGLCommands must be set prior to base class init. - self.allowedHPGLCommands = tuple( - [ - "\x1b.", - "AA", - "AR", - "CA", - "CI", - "CP", - "CS", - "DC", - "DF", - "DI", - "DP", - "DR", - "DT", - "EA", - "EP", - "ER", - "EW", - "FT", - "IM", - "IN", - "IP", - "IW", - "LB", - "LT", - "OA", - "OC", - "OD", - "OE", - "OF", - "OH", - "OI", - "OO", - "OP", - "OS", - "OW", - "PA", - "PD", - "PM", - "PR", - "PS", - "PT", - "PU", - "RA", - "RO", - "RR", - "SA", - "SC", - "SI", - "SL", - "SM", - "SP", - "SR", - "SS", - "TL", - "UC", - "VS", - "WG", - "XT", - "YT", - ] + self.allowedHPGLCommands = ( + "\x1b.", + "AA", + "AR", + "CA", + "CI", + "CP", + "CS", + "DC", + "DF", + "DI", + "DP", + "DR", + "DT", + "EA", + "EP", + "ER", + "EW", + "FT", + "IM", + "IN", + "IP", + "IW", + "LB", + "LT", + "OA", + "OC", + "OD", + "OE", + "OF", + "OH", + "OI", + "OO", + "OP", + "OS", + "OW", + "PA", + "PD", + "PM", + "PR", + "PS", + "PT", + "PU", + "RA", + "RO", + "RR", + "SA", + "SC", + "SI", + "SL", + "SM", + "SP", + "SR", + "SS", + "TL", + "UC", + "VS", + "WG", + "XT", + "YT", ) _DrawingPlotter.__init__(self, ser, **kwargs) From 0db03e81dbb9f37cada8c280592b452a1231030f Mon Sep 17 00:00:00 2001 From: Will Price Date: Sat, 1 Sep 2018 23:51:47 +0100 Subject: [PATCH 58/82] Add DXY1100 and DXY1200 plotters --- src/chiplotle/plotters/dxy1100.py | 7 +++++++ src/chiplotle/plotters/dxy1200.py | 7 +++++++ src/chiplotle/plotters/dxy1300.py | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/chiplotle/plotters/dxy1100.py create mode 100644 src/chiplotle/plotters/dxy1200.py diff --git a/src/chiplotle/plotters/dxy1100.py b/src/chiplotle/plotters/dxy1100.py new file mode 100644 index 0000000..e87306b --- /dev/null +++ b/src/chiplotle/plotters/dxy1100.py @@ -0,0 +1,7 @@ +from chiplotle.plotters import DXY1300 + + +class DXY1100(DXY1300): + def __init__(self, ser, **kwargs): + super(self, DXY1100).__init__(ser, **kwargs) + self.type = "DXY-1100" diff --git a/src/chiplotle/plotters/dxy1200.py b/src/chiplotle/plotters/dxy1200.py new file mode 100644 index 0000000..1e086e8 --- /dev/null +++ b/src/chiplotle/plotters/dxy1200.py @@ -0,0 +1,7 @@ +from chiplotle.plotters import DXY1300 + + +class DXY1200(DXY1300): + def __init__(self, ser, **kwargs): + super(self, DXY1200).__init__(ser, **kwargs) + self.type = "DXY-1200" diff --git a/src/chiplotle/plotters/dxy1300.py b/src/chiplotle/plotters/dxy1300.py index beedd40..1395a07 100644 --- a/src/chiplotle/plotters/dxy1300.py +++ b/src/chiplotle/plotters/dxy1300.py @@ -51,11 +51,11 @@ def __init__(self, ser, **kwargs): "OS", "OW", "PA", - "PU", "PD", "PR", "PS", "PT", + "PU", "RA", "RO", "RR", From c1db469784092991237967b7b6e7a481f9f3bb9d Mon Sep 17 00:00:00 2001 From: Will Price Date: Sat, 1 Sep 2018 23:56:07 +0100 Subject: [PATCH 59/82] Add pre-commit hooks config --- .pre-commit-config.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..a8ce699 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,21 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v1.4.0 + hooks: + - id: trailing-whitespace + - id: check-added-large-files + - id: check-ast + - id: check-case-conflict + - id: check-docstring-first + - id: check-symlinks + - id: debug-statements + - id: end-of-file-fixer + - id: trailing-whitespace +- repo: https://github.com/willprice/pre-commit-hooks + rev: v0.0.1 + hooks: + - id: black-formatter +- repo: http://github.com/danielhoherd/pre-commit-circleci + rev: v0.0.1 + hooks: + - id: circleci-validate From 026e70e61b31bd9883cc00a6c6ce95803aa4ea3d Mon Sep 17 00:00:00 2001 From: Will Price Date: Sun, 2 Sep 2018 00:06:46 +0100 Subject: [PATCH 60/82] Fix DXY-1100/1200 config --- src/chiplotle/plotters/__init__.py | 2 ++ src/chiplotle/plotters/dxy1100.py | 4 ++-- src/chiplotle/plotters/dxy1200.py | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/chiplotle/plotters/__init__.py b/src/chiplotle/plotters/__init__.py index eceb2c5..eb2f0e5 100644 --- a/src/chiplotle/plotters/__init__.py +++ b/src/chiplotle/plotters/__init__.py @@ -21,6 +21,8 @@ standard_library.install_aliases() from .dpx2000 import DPX2000 from .dpx3300 import DPX3300 +from .dxy1100 import DXY1100 +from .dxy1200 import DXY1200 from .dxy1300 import DXY1300 from .dxy880 import DXY880 from .hp7475a import HP7475A diff --git a/src/chiplotle/plotters/dxy1100.py b/src/chiplotle/plotters/dxy1100.py index e87306b..620faaa 100644 --- a/src/chiplotle/plotters/dxy1100.py +++ b/src/chiplotle/plotters/dxy1100.py @@ -1,7 +1,7 @@ -from chiplotle.plotters import DXY1300 +from chiplotle.plotters.dxy1300 import DXY1300 class DXY1100(DXY1300): def __init__(self, ser, **kwargs): - super(self, DXY1100).__init__(ser, **kwargs) + super(DXY1100, self).__init__(ser, **kwargs) self.type = "DXY-1100" diff --git a/src/chiplotle/plotters/dxy1200.py b/src/chiplotle/plotters/dxy1200.py index 1e086e8..52d065a 100644 --- a/src/chiplotle/plotters/dxy1200.py +++ b/src/chiplotle/plotters/dxy1200.py @@ -1,7 +1,7 @@ -from chiplotle.plotters import DXY1300 +from chiplotle.plotters.dxy1300 import DXY1300 class DXY1200(DXY1300): def __init__(self, ser, **kwargs): - super(self, DXY1200).__init__(ser, **kwargs) + super(DXY1200, self).__init__(ser, **kwargs) self.type = "DXY-1200" From a0f2843f6c001c8dbb08df29cc1d4d53848e1b8f Mon Sep 17 00:00:00 2001 From: Will Price Date: Sun, 2 Sep 2018 21:12:12 +0100 Subject: [PATCH 61/82] Fix abstract_masterpiece_file example --- examples/abstract_masterpiece_file.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/examples/abstract_masterpiece_file.py b/examples/abstract_masterpiece_file.py index 9485418..01bb031 100755 --- a/examples/abstract_masterpiece_file.py +++ b/examples/abstract_masterpiece_file.py @@ -12,6 +12,7 @@ standard_library.install_aliases() from chiplotle import * from chiplotle.tools import * +from chiplotle.hpgl.commands import * import random import sys @@ -51,7 +52,7 @@ def generate_plot(): # start in a random spot - plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) + plot.append(PA([(random.randint(left, right), random.randint(bottom, top))])) penNum = 1 @@ -100,7 +101,9 @@ def generate_plot(): # plotter.goto(random.randint(left, right), random.randint(bottom, top)) # plotter.pen_up() plot.append(PD()) - plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) + plot.append( + PA([(random.randint(left, right), random.randint(bottom, top))]) + ) plot.append(PU()) elif whichGesture == 4: @@ -111,7 +114,7 @@ def generate_plot(): firstY = random.randint(bottom, top) # plotter.goto(firstX, firstY) # plotter.pen_down() - plot.append(PA([firstX, firstY])) + plot.append(PA([(firstX, firstY)])) plot.append(PD()) xRange = width / 5 @@ -131,13 +134,15 @@ def generate_plot(): # plotter.goto(firstX, firstY) # plotter.pen_up() - plot.append(PA([firstX, firstY])) + plot.append(PA([(firstX, firstY)])) plot.append(PU()) elif whichGesture == 5: print("just jump around!") # plotter.goto(random.randint(left, right), random.randint(bottom, top)) - plot.append(PA([random.randint(left, right), random.randint(bottom, top)])) + plot.append( + PA([(random.randint(left, right), random.randint(bottom, top))]) + ) # pick a new pen? pickPen = random.randint(0, 99) From 9aabe97e28d6d7209bb3a3da011fd99768037bec Mon Sep 17 00:00:00 2001 From: Will Price Date: Sun, 2 Sep 2018 21:12:45 +0100 Subject: [PATCH 62/82] Fix io.view to work with linux versions other than 2 --- src/chiplotle/tools/io/_open_file.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chiplotle/tools/io/_open_file.py b/src/chiplotle/tools/io/_open_file.py index 51ea702..b24d090 100644 --- a/src/chiplotle/tools/io/_open_file.py +++ b/src/chiplotle/tools/io/_open_file.py @@ -21,7 +21,7 @@ def _open_file(file_name, application=None): if os.name == "nt": os.startfile(file_name) else: - if sys.platform.lower() == "linux2": + if sys.platform.lower().startswith("linux"): viewer = application or "xdg-open" else: viewer = application or "open" From 7a701cff0cc9467f34430fc358a733b4743f0a2d Mon Sep 17 00:00:00 2001 From: Will Price Date: Sun, 2 Sep 2018 21:22:45 +0100 Subject: [PATCH 63/82] Throw more helpful error when accidentially instantiating coordinate array with flat list --- src/chiplotle/geometry/core/coordinatearray.py | 13 ++++++++++++- .../core/test/test_coordinate_array_creation.py | 8 ++++++++ .../geometry/core/test/test_coordinate_init.py | 2 +- src/chiplotle/hpgl/abstract/twopoint.py | 8 +++++--- src/chiplotle/hpgl/test/test_IP.py | 15 +++++++++------ 5 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 src/chiplotle/geometry/core/test/test_coordinate_array_creation.py diff --git a/src/chiplotle/geometry/core/coordinatearray.py b/src/chiplotle/geometry/core/coordinatearray.py index 3b5aa58..5713e64 100644 --- a/src/chiplotle/geometry/core/coordinatearray.py +++ b/src/chiplotle/geometry/core/coordinatearray.py @@ -4,6 +4,8 @@ from __future__ import absolute_import from builtins import zip from builtins import str +from collections import Iterable + from future import standard_library standard_library.install_aliases() @@ -22,7 +24,16 @@ def __init__(self, coords=None): """`coords` is a list of Coordinate objs or iterables.""" if coords is None: coords = [] - self._data = [Coordinate(*list(p)) for p in coords] + else: + for coord in coords: + if not (isinstance(coord, Iterable) and len(coord) == 2): + raise ValueError( + "Expected coordinate to be pair of (x, y) values, but was {}".format( + coord + ) + ) + + self._data = [Coordinate(*p) for p in coords] ## PUBLIC PROPERTIES ## diff --git a/src/chiplotle/geometry/core/test/test_coordinate_array_creation.py b/src/chiplotle/geometry/core/test/test_coordinate_array_creation.py new file mode 100644 index 0000000..e128b76 --- /dev/null +++ b/src/chiplotle/geometry/core/test/test_coordinate_array_creation.py @@ -0,0 +1,8 @@ +import pytest + +from chiplotle import CoordinateArray + + +def test_coordinate_array_raises_value_error_on_non_coordinate_parameters(): + with pytest.raises(ValueError): + CoordinateArray([0, 1]) diff --git a/src/chiplotle/geometry/core/test/test_coordinate_init.py b/src/chiplotle/geometry/core/test/test_coordinate_init.py index 9187aaa..0e59315 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_init.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_init.py @@ -51,7 +51,7 @@ def test_coordinate__init__06(): def test_coordinate__init__07(): """Coordinate cannot be initialized with a Path.""" - assert raises(TypeError, "t = Coordinate(Path([1,2]))") + assert raises(TypeError, "t = Coordinate(Path([(1, 2)]))") ## attribute assignment ## diff --git a/src/chiplotle/hpgl/abstract/twopoint.py b/src/chiplotle/hpgl/abstract/twopoint.py index 313103d..28f6227 100644 --- a/src/chiplotle/hpgl/abstract/twopoint.py +++ b/src/chiplotle/hpgl/abstract/twopoint.py @@ -14,9 +14,11 @@ class _TwoPoint(_HPGLPrimitive): """Abstract class for commands with 2 coordinate pairs: x1, y1, x2, y2.""" def __init__(self, coords=None): + if coords and len(coords) != 2: + raise ValueError( + "Expected two coordinate pairs but got {}".format(len(coords)) + ) self.coords = coords - if self.coords and len(self.coords) != 2: - raise ValueError("Only two coordinate pairs allowed.") def coords(): def fget(self): @@ -33,7 +35,7 @@ def fset(self, arg): def format(self): if self.coords: coords = self.coords[0].xy + self.coords[1].xy - coords = list(map(lambda coord: str(coord).encode('ascii'), coords)) + coords = list(map(lambda coord: str(coord).encode("ascii"), coords)) coords = b",".join(coords) return b"%s%s%s" % (self._name, coords, _HPGLPrimitive._terminator) else: diff --git a/src/chiplotle/hpgl/test/test_IP.py b/src/chiplotle/hpgl/test/test_IP.py index a8a5203..f3f7d9e 100644 --- a/src/chiplotle/hpgl/test/test_IP.py +++ b/src/chiplotle/hpgl/test/test_IP.py @@ -1,12 +1,13 @@ from __future__ import print_function from __future__ import division from __future__ import absolute_import + +import pytest from future import standard_library standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import IP -from py.test import raises def test_IP_01(): @@ -18,7 +19,8 @@ def test_IP_01(): def test_IP_02(): """IP cannot take a flat tuple.""" - assert raises(TypeError, "t = IP((1,2,3,4))") + with pytest.raises(ValueError): + IP((1, 2, 3, 4)) def test_IP_03(): @@ -29,10 +31,11 @@ def test_IP_03(): def test_IP_04(): """IP can take two an only two coordinate pairs.""" - assert raises(ValueError, "t = IP([Coordinate(1, 2)])") - assert raises( - ValueError, "t = IP([Coordinate(1, 2), Coordinate(3, 4), Coordinate(5, 6)])" - ) + with pytest.raises(ValueError): + t = IP([Coordinate(1, 2)]) + + with pytest.raises(ValueError): + IP([Coordinate(1, 2), Coordinate(3, 4), Coordinate(5, 6)]) def test_IP_05(): From 37a4062f0fc44d3cfb1082ee3dd2a4054e16b068 Mon Sep 17 00:00:00 2001 From: Will Price Date: Sun, 2 Sep 2018 21:54:47 +0100 Subject: [PATCH 64/82] Revert raising ValueError on CoordinateArray being passed anything but list of tuples It's valid usage to pass a flat list *providing* that it is of even length, this is interpreted as a sequence of x, y pairs: `[x_1, y_1, x_2, y_2, ..., x_n, y_n]` --- src/chiplotle/geometry/core/coordinate.py | 6 +++--- src/chiplotle/geometry/core/coordinatearray.py | 4 ++-- .../geometry/core/test/test_coordinate_add.py | 8 ++++++-- .../core/test/test_coordinate_array_creation.py | 2 +- src/chiplotle/hpgl/test/test_PU.py | 14 ++++++++++---- src/chiplotle/hpgl/test/test_penplot.py | 5 ++++- 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/chiplotle/geometry/core/coordinate.py b/src/chiplotle/geometry/core/coordinate.py index c3d3b64..932f1c3 100644 --- a/src/chiplotle/geometry/core/coordinate.py +++ b/src/chiplotle/geometry/core/coordinate.py @@ -25,10 +25,10 @@ class Coordinate(object): # else: # return super(Coordinate, cls).__new__(cls) - def __init__(self, *args): - if args and not isinstance(args[0], numbers.Number): + def __init__(self, *coords): + if coords and not isinstance(coords[0], numbers.Number): raise TypeError("Arguments must all be scalars") - self._coords = list(args) + self._coords = list(coords) @property def xy(self): diff --git a/src/chiplotle/geometry/core/coordinatearray.py b/src/chiplotle/geometry/core/coordinatearray.py index 5713e64..5b341ed 100644 --- a/src/chiplotle/geometry/core/coordinatearray.py +++ b/src/chiplotle/geometry/core/coordinatearray.py @@ -27,13 +27,13 @@ def __init__(self, coords=None): else: for coord in coords: if not (isinstance(coord, Iterable) and len(coord) == 2): - raise ValueError( + raise TypeError( "Expected coordinate to be pair of (x, y) values, but was {}".format( coord ) ) - self._data = [Coordinate(*p) for p in coords] + self._data = [Coordinate(*list(p)) for p in coords] ## PUBLIC PROPERTIES ## diff --git a/src/chiplotle/geometry/core/test/test_coordinate_add.py b/src/chiplotle/geometry/core/test/test_coordinate_add.py index 143ce5a..2ea97e8 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_add.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_add.py @@ -1,6 +1,8 @@ from __future__ import print_function from __future__ import division from __future__ import absolute_import + +import pytest from future import standard_library standard_library.install_aliases() @@ -22,13 +24,15 @@ def test_coordinate__add__01(): def test_coordinate__add__02(): """A Coordinate and an int scalar cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, "t = a + 4") + with pytest.raises(TypeError): + t = a + 4 def test_coordinate__radd__02(): """An int scalar and a Coordinate cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, "t = 4 + a") + with pytest.raises(TypeError): + t = 4 + a def test_coordinate__add__03(): diff --git a/src/chiplotle/geometry/core/test/test_coordinate_array_creation.py b/src/chiplotle/geometry/core/test/test_coordinate_array_creation.py index e128b76..2dbbc6a 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_array_creation.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_array_creation.py @@ -4,5 +4,5 @@ def test_coordinate_array_raises_value_error_on_non_coordinate_parameters(): - with pytest.raises(ValueError): + with pytest.raises(TypeError): CoordinateArray([0, 1]) diff --git a/src/chiplotle/hpgl/test/test_PU.py b/src/chiplotle/hpgl/test/test_PU.py index 112bfa7..9371e26 100644 --- a/src/chiplotle/hpgl/test/test_PU.py +++ b/src/chiplotle/hpgl/test/test_PU.py @@ -2,6 +2,8 @@ from __future__ import print_function from __future__ import division from __future__ import absolute_import + +import pytest from future import standard_library standard_library.install_aliases() @@ -32,14 +34,18 @@ def test_pu_init_02(): def test_pu_init_03(): """PU argument must be list-like (list, tuple, Ndarray,...).""" - assert raises(TypeError, "PU(4)") + with pytest.raises(TypeError): + PU(4) def test_pu_init_04(): """PU argument must be a list or tuple of length == 2*n""" - assert raises(TypeError, "PU([1])") - assert raises(TypeError, "PU([1,2,3])") - assert raises(TypeError, "PU([1,2,3,4,5])") + with pytest.raises(TypeError): + PU([1]) + with pytest.raises(TypeError): + PU([1, 2, 3]) + with pytest.raises(TypeError): + PU([1, 2, 3, 4, 5]) def test_pu_init_05(): diff --git a/src/chiplotle/hpgl/test/test_penplot.py b/src/chiplotle/hpgl/test/test_penplot.py index d72efe8..f89f541 100644 --- a/src/chiplotle/hpgl/test/test_penplot.py +++ b/src/chiplotle/hpgl/test/test_penplot.py @@ -2,6 +2,8 @@ from __future__ import print_function from __future__ import division from __future__ import absolute_import + +import pytest from future import standard_library standard_library.install_aliases() @@ -12,7 +14,8 @@ def test_penplot_01(): """_PenPlot cannot be initialized with a flat iterable""" - assert raises(TypeError, "p = _PenPlot((1, 2, 3, 4))") + with pytest.raises(TypeError): + _PenPlot((1, 2, 3, 4)) def test_penplot_03(): From 4006c592d26a3fcc57df8fd4a4afbadeaf3adf2b Mon Sep 17 00:00:00 2001 From: Will Price Date: Sun, 2 Sep 2018 22:26:08 +0100 Subject: [PATCH 65/82] Throw more helpful error message on saving hpgl --- src/chiplotle/tools/io/save_hpgl.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/chiplotle/tools/io/save_hpgl.py b/src/chiplotle/tools/io/save_hpgl.py index c2ac775..063d27d 100644 --- a/src/chiplotle/tools/io/save_hpgl.py +++ b/src/chiplotle/tools/io/save_hpgl.py @@ -20,12 +20,13 @@ def save_hpgl(expr, filename): hpgl = [] if isinstance(expr, (list, tuple)): for o in expr: - assert isinstance(o, _HPGL) + if not isinstance(o, _HPGL): + raise TypeError("Expected HPGL expression but got {}".format(o)) hpgl.append(o.format) else: hpgl.append(expr.format) ## create HPGL file file = open("%s" % filename, "w") - file.writelines([command.decode('ascii') for command in hpgl]) + file.writelines([command.decode("ascii") for command in hpgl]) file.close() From de06b96c02412aa44b2782a14df9e098e57422df Mon Sep 17 00:00:00 2001 From: Will Price Date: Sun, 2 Sep 2018 22:28:54 +0100 Subject: [PATCH 66/82] Refactor abstract masterpiece example --- examples/abstract_masterpiece.py | 221 ++++++++++++++--------- examples/abstract_masterpiece_file.py | 170 ----------------- examples/abstract_masterpiece_virtual.py | 121 ------------- 3 files changed, 135 insertions(+), 377 deletions(-) delete mode 100755 examples/abstract_masterpiece_file.py delete mode 100755 examples/abstract_masterpiece_virtual.py diff --git a/examples/abstract_masterpiece.py b/examples/abstract_masterpiece.py index 53c3c99..812c879 100644 --- a/examples/abstract_masterpiece.py +++ b/examples/abstract_masterpiece.py @@ -4,6 +4,8 @@ from __future__ import division from __future__ import unicode_literals from __future__ import absolute_import + +import os from builtins import input from builtins import range from builtins import int @@ -11,102 +13,149 @@ standard_library.install_aliases() from chiplotle import * +from chiplotle.hpgl.commands import * +import chiplotle.tools.io as io import random +import argparse +parser = argparse.ArgumentParser( + description="Draw random shapes and lines", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, +) +parser.add_argument("--output", type=str, help="Path to output file") +parser.add_argument("--view", action="store_true", help="Show plot as well as output?") +parser.add_argument( + "-n", "--pen-count", type=int, default=1, help="How many pens to use?" +) -def main(): - - plotter = instantiate_plotters()[0] - width = plotter.margins.soft.width - height = plotter.margins.soft.height - left = plotter.margins.soft.left - right = plotter.margins.soft.right - bottom = plotter.margins.soft.bottom - top = plotter.margins.soft.top +def main(args, width=30000, height=20000, left=0, right=30000, bottom=0, top=20000): + pen_count = args.pen_count - print( - "width: %d height: %d" - % (plotter.margins.soft.width, plotter.margins.soft.height) - ) - pens = input("\nhow many pens do you want to use? ") - numPens = int(pens) + print("width: %d height: %d" % (width, height)) # start in a random spot - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - penNum = 1 + plot = abstract_masterpiece(top, bottom, left, right, height, width, pen_count) + if args.output is None or args.view: + io.view(plot) + if args.output is not None: + output_name, extension = os.path.splitext(args.output) + io.export(plot, output_name, fmt=extension[1:]) + +def abstract_masterpiece(top, bottom, left, right, height, width, pen_count): + plot = [PA([random_point(top, bottom, left, right)])] + pen_id = 1 while True: - plotter.select_pen(penNum) - - whichGesture = random.randint(0, 5) - - if whichGesture == 0: - print("circle!") - plotter.write(hpgl.CI(random.randint(10, 5000), random.randint(1, 180))) - - elif whichGesture == 1: - print("rect!") - plotter.write(hpgl.ER((random.randint(10, 5000), random.randint(10, 5000)))) - - elif whichGesture == 2: - print("filled rect!") - ft = random.randint(1, 8) - if ft == 1 or ft == 2: - ft = 1 - if ft == 3 or ft == 4 or ft == 5: - ft = 3 - if ft == 6 or ft == 7 or ft == 8: - ft = 4 - - space = random.randint(10, 100) - angle = random.randint(0, 3) * 45 - - print("fill type: %d space: %d angle: %d" % (ft, space, angle)) - plotter.write(hpgl.RR((random.randint(10, 2000), random.randint(10, 2000)))) - plotter.write(hpgl.FT(ft, space, angle)) - - elif whichGesture == 3: - print("draw a crazy line!") - plotter.pen_down() - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - plotter.pen_up() - - elif whichGesture == 4: - print("draw an abstract shape!") - numPoints = random.randint(2, 4) - print("numPoints: ", numPoints) - firstX = random.randint(left, right) - firstY = random.randint(bottom, top) - plotter.goto(firstX, firstY) - plotter.pen_down() - xRange = width / 5 - yRange = height / 5 - - for i in range(numPoints): - plotter.nudge( - random.randint(int(-xRange), int(xRange)), - random.randint(int(-yRange), int(yRange)), - ) - plotter.goto(firstX, firstY) - plotter.pen_up() - - elif whichGesture == 5: - print("just jump around!") - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - - # pick a new pen? - pickPen = random.randint(0, 99) - if pickPen < 25: - penNum += 1 - - if penNum == numPens + 1: + plot.append(SP(pen_id)) + gesture_id = random.randint(0, 5) + + if gesture_id == 0: + feature = random_circle() + elif gesture_id == 1: + feature = random_rect() + elif gesture_id == 2: + feature = random_filled_rect() + elif gesture_id == 3: + feature = random_line(top, bottom, left, right) + elif gesture_id == 4: + feature = random_shape(top, bottom, left, right, width, height) + else: + feature = random_pen_move(top, bottom, left, right) + plot.extend(feature) + + pen_id = randomly_switch_pen(pen_id) + if pen_id == pen_count + 1: break - - plotter.select_pen(0) + plot.append(SP(0)) + return plot + + +def random_shape(top, bottom, left, right, width, height): + feature = [] + print("draw an abstract shape!") + polygon_edges = random.randint(2, 4) + print("polygon_edges: ", polygon_edges) + firstX = random.randint(left, right) + firstY = random.randint(bottom, top) + feature.append(PA([(firstX, firstY)])) + feature.append(PD()) + xRange = width / 5 + yRange = height / 5 + for i in range(polygon_edges): + feature.append( + PR( + [ + ( + random.randint(int(-xRange), int(xRange)), + random.randint(int(-yRange), int(yRange)), + ) + ] + ) + ) + feature.append(PA([(firstX, firstY)])) + feature.append(PU()) + return feature + + +def random_line(top, bottom, left, right): + feature = [] + print("draw a crazy line!") + feature.append(PD()) + feature.append(PA([random_point(top, bottom, left, right)])) + feature.append(PU()) + return feature + + +def random_filled_rect(): + feature = [] + print("filled rect!") + ft = random.randint(1, 8) + if ft == 1 or ft == 2: + ft = 1 + if ft == 3 or ft == 4 or ft == 5: + ft = 3 + if ft == 6 or ft == 7 or ft == 8: + ft = 4 + space = random.randint(10, 100) + angle = random.randint(0, 3) * 45 + print("fill type: %d space: %d angle: %d" % (ft, space, angle)) + feature.append(hpgl.RR(random_point(2000, 10, 10, 2000))) + feature.append(hpgl.FT(ft, space, angle)) + return feature + + +def random_rect(): + feature = [] + print("rect!") + feature.append(hpgl.ER(random_point(5000, 10, 10, 5000))) + return feature + + +def random_circle(): + feature = [] + print("circle!") + feature.append(hpgl.CI(random.randint(10, 5000), random.randint(1, 180))) + return feature + + +def random_point(top, bottom, left, right): + return random.randint(left, right), random.randint(bottom, top) + + +def random_pen_move(top, bottom, left, right): + feature = [] + print("just jump around!") + feature.append(PA([random_point(top, bottom, left, right)])) + return feature + + +def randomly_switch_pen(pen_id, probability=0.25): + assert probability <= 1.0 + if random.random() < probability: + pen_id += 1 + return pen_id -### run main if called from command line like so: -### $> python abstract_masterpiece.py if __name__ == "__main__": - main() + main(parser.parse_args()) diff --git a/examples/abstract_masterpiece_file.py b/examples/abstract_masterpiece_file.py deleted file mode 100755 index 01bb031..0000000 --- a/examples/abstract_masterpiece_file.py +++ /dev/null @@ -1,170 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -from __future__ import division -from __future__ import unicode_literals -from __future__ import absolute_import -from builtins import input -from builtins import range -from builtins import int -from future import standard_library - -standard_library.install_aliases() -from chiplotle import * -from chiplotle.tools import * -from chiplotle.hpgl.commands import * -import random -import sys - - -def abstract_masterpiece_file(file): - - saved = False - - while not saved: - plot = generate_plot() - - io.view(plot) - - saveit = input("\nsave this one (y/n)? ") - if "y" in saveit: - io.save_hpgl(plot, file) - print("saved " + file) - saved = True - - print("bye!") - - -def generate_plot(): - - width = 30000 - height = 20000 - left = 0 - right = 30000 - bottom = 0 - top = 20000 - - print("width: %d height: %d" % (width, height)) - pens = input("\nhow many pens do you want to use? ") - numPens = int(pens) - - plot = [] - - # start in a random spot - - plot.append(PA([(random.randint(left, right), random.randint(bottom, top))])) - - penNum = 1 - - while True: - # plotter.select_pen(penNum) - plot.append(SP(penNum)) - - whichGesture = random.randint(0, 5) - - if whichGesture == 0: - print("circle!") - # plotter.circle(random.randint(10,5000), random.randint(1,180)) - x = random.randint(left, right) - y = random.randint(bottom, top) - plot.append(CI(random.randint(10, 5000), random.randint(1, 180))) - - elif whichGesture == 1: - print("rect!") - x = random.randint(left, right) - y = random.randint(bottom, top) - # plotter.edgeRectRelative(random.randint(10,5000), random.randint(10,5000)) - plot.append(ER([random.randint(10, 5000), random.randint(10, 5000)])) - - elif whichGesture == 2: - print("filled rect!") - ft = random.randint(1, 8) - if ft == 1 or ft == 2: - ft = 1 - if ft == 3 or ft == 4 or ft == 5: - ft = 3 - if ft == 6 or ft == 7 or ft == 8: - ft = 4 - - space = random.randint(10, 100) - angle = random.randint(0, 3) * 45 - - print("fill type: %d space: %d angle: %d" % (ft, space, angle)) - # plotter.fill_type(ft, space, angle) - # plotter.shadeRectRelative(random.randint(10,2000), random.randint(10,2000)) - plot.append(FT(ft, space, angle)) - plot.append(RR([random.randint(10, 2000), random.randint(10, 2000)])) - - elif whichGesture == 3: - print("draw a crazy line!") - # plotter.pen_down() - # plotter.goto(random.randint(left, right), random.randint(bottom, top)) - # plotter.pen_up() - plot.append(PD()) - plot.append( - PA([(random.randint(left, right), random.randint(bottom, top))]) - ) - plot.append(PU()) - - elif whichGesture == 4: - print("draw an abstract shape!") - numPoints = random.randint(2, 4) - print("numPoints: ", numPoints) - firstX = random.randint(left, right) - firstY = random.randint(bottom, top) - # plotter.goto(firstX, firstY) - # plotter.pen_down() - plot.append(PA([(firstX, firstY)])) - plot.append(PD()) - - xRange = width / 5 - yRange = height / 5 - - for i in range(numPoints): - # plotter.nudge(random.randint(int(-xRange), int(xRange)), random.randint(int(-yRange), int(yRange))) - plot.append( - PR( - [ - random.randint(int(-xRange), int(xRange)), - random.randint(int(-yRange), int(yRange)), - ] - ) - ) - - # plotter.goto(firstX, firstY) - # plotter.pen_up() - - plot.append(PA([(firstX, firstY)])) - plot.append(PU()) - - elif whichGesture == 5: - print("just jump around!") - # plotter.goto(random.randint(left, right), random.randint(bottom, top)) - plot.append( - PA([(random.randint(left, right), random.randint(bottom, top))]) - ) - - # pick a new pen? - pickPen = random.randint(0, 99) - if pickPen < 25: - penNum += 1 - - if penNum == numPens + 1: - break - - plot.append(SP(0)) - - return plot - - -### run main if called from command line like so: -### $> python abstract_masterpiece.py -if __name__ == "__main__": - if len(sys.argv) < 2: - print( - "Must give output filename.\nExample: $ abstract_masterpiece_file.py myfile.hpgl" - ) - sys.exit(2) - file = sys.argv[1] - - abstract_masterpiece_file(file) diff --git a/examples/abstract_masterpiece_virtual.py b/examples/abstract_masterpiece_virtual.py deleted file mode 100755 index fd771c7..0000000 --- a/examples/abstract_masterpiece_virtual.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/env python - -"""Same as abstract_masterpiece.py but uses a virtual plotter to view the ouptut.""" -from __future__ import print_function -from __future__ import division -from __future__ import unicode_literals -from __future__ import absolute_import - -from builtins import input -from builtins import range -from builtins import int -from future import standard_library - -standard_library.install_aliases() -from chiplotle import * -from chiplotle.tools.plottertools import instantiate_virtual_plotter - -import random - - -def main(): - - plotter = instantiate_virtual_plotter(Coordinate(0, 0), Coordinate(30000, 20000)) - - width = plotter.margins.soft.width - height = plotter.margins.soft.height - left = plotter.margins.soft.left - right = plotter.margins.soft.right - bottom = plotter.margins.soft.bottom - top = plotter.margins.soft.top - - print( - "width: %d height: %d" - % (plotter.margins.soft.width, plotter.margins.soft.height) - ) - pens = input("\nhow many pens do you want to use? ") - numPens = int(pens) - - # start in a random spot - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - penNum = 1 - - while True: - plotter.select_pen(penNum) - - whichGesture = random.randint(0, 5) - - if whichGesture == 0: - print("circle!") - # plotter.circle(random.randint(10,5000), random.randint(1,180)) - plotter.write(hpgl.CI(random.randint(10, 5000), random.randint(1, 180))) - - elif whichGesture == 1: - print("rect!") - plotter.write(hpgl.ER((random.randint(10, 5000), random.randint(10, 5000)))) - - elif whichGesture == 2: - print("filled rect!") - ft = random.randint(1, 8) - if ft == 1 or ft == 2: - ft = 1 - if ft == 3 or ft == 4 or ft == 5: - ft = 3 - if ft == 6 or ft == 7 or ft == 8: - ft = 4 - - space = random.randint(10, 100) - angle = random.randint(0, 3) * 45 - - print("fill type: %d space: %d angle: %d" % (ft, space, angle)) - # plotter.fill_type(ft, space, angle) - # plotter.filled_rectangle_relative(random.randint(10,2000), random.randint(10,2000)) - plotter.write(hpgl.RR((random.randint(10, 2000), random.randint(10, 2000)))) - plotter.write(hpgl.FT(ft, space, angle)) - - elif whichGesture == 3: - print("draw a crazy line!") - plotter.pen_down() - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - plotter.pen_up() - - elif whichGesture == 4: - print("draw an abstract shape!") - numPoints = random.randint(2, 4) - print("numPoints: ", numPoints) - firstX = random.randint(left, right) - firstY = random.randint(bottom, top) - plotter.goto(firstX, firstY) - plotter.pen_down() - xRange = width / 5 - yRange = height / 5 - - for i in range(numPoints): - plotter.nudge( - random.randint(int(-xRange), int(xRange)), - random.randint(int(-yRange), int(yRange)), - ) - plotter.goto(firstX, firstY) - plotter.pen_up() - - elif whichGesture == 5: - print("just jump around!") - plotter.goto(random.randint(left, right), random.randint(bottom, top)) - - # pick a new pen? - pickPen = random.randint(0, 99) - if pickPen < 25: - penNum += 1 - - if penNum == numPens + 1: - break - - plotter.select_pen(0) - - io.view(plotter) - - -### run main if called from command line like so: -### $> python abstract_masterpiece.py -if __name__ == "__main__": - main() From a61e2c25406f014621c9f8d212c4f2ba3b611f15 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Mon, 3 Sep 2018 08:42:37 +0100 Subject: [PATCH 67/82] Pin pytest to latest version 3.7.4 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 986b566..2614140 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -pytest +pytest==3.7.4 pytest-cov tox>=2,<3 numpy==1.15.0 From 8e4e917384c57eb8c0ce890be67fc737738a07b5 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Mon, 3 Sep 2018 08:42:39 +0100 Subject: [PATCH 68/82] Pin pytest-cov to latest version 2.5.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2614140..0cebacc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ pytest==3.7.4 -pytest-cov +pytest-cov==2.5.1 tox>=2,<3 numpy==1.15.0 pyserial==3.4 From fea28649690f779a5b81b8596aad1c57c5ccb08c Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Mon, 3 Sep 2018 08:42:41 +0100 Subject: [PATCH 69/82] Pin tox to latest version 3.2.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0cebacc..997dc6f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ pytest==3.7.4 pytest-cov==2.5.1 -tox>=2,<3 +tox==3.2.1 numpy==1.15.0 pyserial==3.4 future==0.16.0 From fc0906647201861228d79680d762b574018fa4d5 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Mon, 3 Sep 2018 08:42:42 +0100 Subject: [PATCH 70/82] Update numpy from 1.15.0 to 1.15.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 997dc6f..b55c866 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ pytest==3.7.4 pytest-cov==2.5.1 tox==3.2.1 -numpy==1.15.0 +numpy==1.15.1 pyserial==3.4 future==0.16.0 From 43988994a496cbd3ad9968f3f39f04d2453a1d24 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 3 Sep 2018 21:28:22 +0100 Subject: [PATCH 71/82] Clean up imports + delete some dead code from interactive_commands.py --- src/chiplotle/__init__.py | 50 ++++--- src/chiplotle/core/imports/__init__.py | 0 .../core/imports/get_functions_in_module.py | 21 --- src/chiplotle/core/imports/package_import.py | 34 ----- .../imports/remove_modules_from_namespace.py | 14 -- .../core/interfaces/margins/__init__.py | 1 + .../core/interfaces/parentage/__init__.py | 1 + src/chiplotle/fonts/__init__.py | 1 + src/chiplotle/geometry/core/__init__.py | 10 +- src/chiplotle/geometry/core/coordinate.py | 2 - src/chiplotle/geometry/core/group.py | 1 - .../geometry/core/hpglformatvisitor.py | 1 - src/chiplotle/geometry/core/label.py | 5 - src/chiplotle/geometry/core/polygon.py | 4 - .../geometry/core/test/test_path_add.py | 3 +- .../core/test/test_shapes_group_add.py | 13 +- .../core/test/test_shapes_group_points.py | 1 - .../geometry/core/test/test_transformlock.py | 1 - src/chiplotle/geometry/shapes/__init__.py | 57 +++++--- src/chiplotle/geometry/shapes/annotation.py | 3 - src/chiplotle/geometry/shapes/circle.py | 1 - src/chiplotle/geometry/shapes/donut.py | 1 - src/chiplotle/geometry/shapes/grid.py | 1 - src/chiplotle/geometry/shapes/lock_group.py | 1 - .../geometry/shapes/random_walk_cartesian.py | 1 - .../geometry/shapes/spiral_logarithmic.py | 1 - .../geometry/shapes/star_crisscross.py | 2 - src/chiplotle/geometry/shapes/star_outline.py | 3 - src/chiplotle/geometry/transforms/__init__.py | 19 ++- src/chiplotle/geometry/transforms/noise.py | 1 - .../transforms/perpendicular_noise.py | 1 - src/chiplotle/geometry/transforms/rotate.py | 1 - .../transforms/test/test_scale_path.py | 1 - src/chiplotle/hpgl/formatters/__init__.py | 7 - src/chiplotle/hpgl/label.py | 2 +- src/chiplotle/hpgl/test/test_PU.py | 1 - src/chiplotle/hpgl/test/test_hpglescape.py | 21 --- src/chiplotle/plotters/__init__.py | 24 +-- src/chiplotle/plotters/baseplotter.py | 3 - .../interactive/interactive_commands.py | 138 +++--------------- src/chiplotle/plotters/test/plotter_query.py | 1 - .../plotters/test/test_drawingplotter.py | 5 - src/chiplotle/scripts/plot_hpgl_file.py | 1 - .../scripts/plot_hpgl_file_max_size.py | 1 - .../scripts/plot_hpgl_file_virtual.py | 1 - src/chiplotle/scripts/view_hpgl_file.py | 1 - src/chiplotle/tools/__init__.py | 18 +-- src/chiplotle/tools/geometrytools/__init__.py | 5 + .../geometrytools/get_line_intersection.py | 2 +- src/chiplotle/tools/hpgltools/__init__.py | 26 ++-- .../convert_relatives_to_absolutes.py | 3 +- .../tools/hpgltools/inflate_hpgl_string.py | 6 +- .../test/test_rotate_hpglprimitives.py | 1 - src/chiplotle/tools/hpgltools/transpose.py | 2 - src/chiplotle/tools/io/__init__.py | 14 +- src/chiplotle/tools/io/export.py | 1 - src/chiplotle/tools/io/import_hpgl_file.py | 2 - src/chiplotle/tools/iterabletools/__init__.py | 16 +- src/chiplotle/tools/logtools/__init__.py | 2 + src/chiplotle/tools/mathtools/__init__.py | 25 ++-- src/chiplotle/tools/measuretools/__init__.py | 16 +- src/chiplotle/tools/plottertools/__init__.py | 16 +- .../plottertools/_instantiate_plotter.py | 1 - .../search_and_instantiate_plotters.py | 3 - src/chiplotle/tools/serialtools/__init__.py | 19 ++- src/chiplotle/tools/shapetools/__init__.py | 1 + 66 files changed, 189 insertions(+), 453 deletions(-) delete mode 100644 src/chiplotle/core/imports/__init__.py delete mode 100644 src/chiplotle/core/imports/get_functions_in_module.py delete mode 100644 src/chiplotle/core/imports/package_import.py delete mode 100644 src/chiplotle/core/imports/remove_modules_from_namespace.py delete mode 100644 src/chiplotle/hpgl/test/test_hpglescape.py diff --git a/src/chiplotle/__init__.py b/src/chiplotle/__init__.py index 5b59387..6a25892 100644 --- a/src/chiplotle/__init__.py +++ b/src/chiplotle/__init__.py @@ -6,7 +6,14 @@ standard_library.install_aliases() from chiplotle.core.cfg.initialize_files import initialize_files -from .__version__ import __author__, __version__, __license__, __url__, __copyright__, __description__ +from .__version__ import ( + __author__, + __version__, + __license__, + __url__, + __copyright__, + __description__, +) __doc__ = """Chiplotle Python library for pen plotting. @@ -29,37 +36,32 @@ ## IMPORTS ## -from chiplotle.core import errors +from .core import errors -from chiplotle.geometry.core.coordinatearray import CoordinateArray -from chiplotle.geometry.core.coordinate import Coordinate +from .geometry.core.coordinatearray import CoordinateArray +from .geometry.core.coordinate import Coordinate -from chiplotle.hpgl import commands as hpgl -from chiplotle.hpgl import formatters -from chiplotle.hpgl.pen import Pen +from .hpgl import commands as hpgl +from .hpgl import formatters +from .hpgl.pen import Pen -from chiplotle.geometry.core import Group -from chiplotle.geometry.core import Path -from chiplotle.geometry.core import Polygon -from chiplotle.geometry.core import Label -from chiplotle.geometry import shapes -from chiplotle.geometry import transforms -from chiplotle.geometry.shapes import * -from chiplotle.geometry.transforms import * +from .geometry.core import Group +from .geometry.core import Path +from .geometry.core import Polygon +from .geometry.core import Label +from .geometry import shapes +from .geometry import transforms +from .geometry.shapes import * +from .geometry.transforms import * -from chiplotle.tools.plottertools import instantiate_plotters -from chiplotle.tools.plottertools import instantiate_virtual_plotter -from chiplotle.tools import * +from .tools.plottertools import instantiate_plotters +from .tools.plottertools import instantiate_virtual_plotter +from .tools import * -from chiplotle import plotters +from . import plotters ## shortcuts / abbreviations ## CoordArray = CoordinateArray Coord = Coordinate - -## remove unnecessary modules... -# globals().pop('hpgl') -# globals().pop('tools') -# globals().pop('utils') diff --git a/src/chiplotle/core/imports/__init__.py b/src/chiplotle/core/imports/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/chiplotle/core/imports/get_functions_in_module.py b/src/chiplotle/core/imports/get_functions_in_module.py deleted file mode 100644 index 2106dd0..0000000 --- a/src/chiplotle/core/imports/get_functions_in_module.py +++ /dev/null @@ -1,21 +0,0 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -import os - - -def _get_functions_in_module(module_file): - """Collects and returns all functions defined in module_file.""" - result = [] - module_file = module_file.replace(os.sep, ".") - mod = __import__(module_file, fromlist=["*"]) - for key, value in list(mod.__dict__.items()): - if not key.startswith("_"): ## if not a private function... - if getattr(value, "__module__", None) == module_file: - # print '"%s" in module %s ' % (key, module_file) - result.append(value) - return result diff --git a/src/chiplotle/core/imports/package_import.py b/src/chiplotle/core/imports/package_import.py deleted file mode 100644 index 7c4e00d..0000000 --- a/src/chiplotle/core/imports/package_import.py +++ /dev/null @@ -1,34 +0,0 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.get_functions_in_module import _get_functions_in_module -from chiplotle.core.imports.remove_modules_from_namespace import ( - _remove_modules_from_namespace -) -import os - - -def _package_import(path, namespace): - """Non-recursive import helper. - All the functions and classes inside modules (leaf-modules, *.py files) - found in `path` are imported into `namespace`.""" - module = path[path.rindex("chiplotle") :] - module = module.replace(os.sep, ".") - - for element in os.listdir(path): - if os.path.isfile(os.path.join(path, element)): - if not element.startswith("_") and element.endswith(".py"): - ## import function inside module - submod = os.path.join(module, element[:-3]) - functions = _get_functions_in_module(submod) - for f in functions: - namespace[f.__name__] = f - - ## remove modules - _remove_modules_from_namespace(namespace) - ## remove myself - del (namespace["_package_import"]) diff --git a/src/chiplotle/core/imports/remove_modules_from_namespace.py b/src/chiplotle/core/imports/remove_modules_from_namespace.py deleted file mode 100644 index 1a50a40..0000000 --- a/src/chiplotle/core/imports/remove_modules_from_namespace.py +++ /dev/null @@ -1,14 +0,0 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -import types - - -def _remove_modules_from_namespace(namespace): - for key, value in list(namespace.items()): - if isinstance(value, types.ModuleType) and not key.startswith("_"): - del (namespace[key]) diff --git a/src/chiplotle/core/interfaces/margins/__init__.py b/src/chiplotle/core/interfaces/margins/__init__.py index e69de29..9ef0bef 100644 --- a/src/chiplotle/core/interfaces/margins/__init__.py +++ b/src/chiplotle/core/interfaces/margins/__init__.py @@ -0,0 +1 @@ +from .interface import MarginsInterface, MarginsHard, MarginsSoft diff --git a/src/chiplotle/core/interfaces/parentage/__init__.py b/src/chiplotle/core/interfaces/parentage/__init__.py index e69de29..f637c47 100644 --- a/src/chiplotle/core/interfaces/parentage/__init__.py +++ b/src/chiplotle/core/interfaces/parentage/__init__.py @@ -0,0 +1 @@ +from .interface import ParentageInterface diff --git a/src/chiplotle/fonts/__init__.py b/src/chiplotle/fonts/__init__.py index e69de29..2d36f71 100644 --- a/src/chiplotle/fonts/__init__.py +++ b/src/chiplotle/fonts/__init__.py @@ -0,0 +1 @@ +from . import dorkbot diff --git a/src/chiplotle/geometry/core/__init__.py b/src/chiplotle/geometry/core/__init__.py index 99858a1..c1ffcdb 100644 --- a/src/chiplotle/geometry/core/__init__.py +++ b/src/chiplotle/geometry/core/__init__.py @@ -1,11 +1,7 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() +from .coordinate import Coordinate +from .coordinatearray import CoordinateArray from .group import Group from .label import Label +from .layer import Layer from .path import Path from .polygon import Polygon diff --git a/src/chiplotle/geometry/core/coordinate.py b/src/chiplotle/geometry/core/coordinate.py index 932f1c3..6bee86d 100644 --- a/src/chiplotle/geometry/core/coordinate.py +++ b/src/chiplotle/geometry/core/coordinate.py @@ -12,8 +12,6 @@ import operator import math -import numpy as np - class Coordinate(object): diff --git a/src/chiplotle/geometry/core/group.py b/src/chiplotle/geometry/core/group.py index 85f0828..9262dbb 100644 --- a/src/chiplotle/geometry/core/group.py +++ b/src/chiplotle/geometry/core/group.py @@ -7,7 +7,6 @@ standard_library.install_aliases() from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.shape import _Shape -import copy class Group(_Shape): diff --git a/src/chiplotle/geometry/core/hpglformatvisitor.py b/src/chiplotle/geometry/core/hpglformatvisitor.py index 3232135..5787997 100644 --- a/src/chiplotle/geometry/core/hpglformatvisitor.py +++ b/src/chiplotle/geometry/core/hpglformatvisitor.py @@ -8,7 +8,6 @@ from chiplotle.core.visitor import Visitor from chiplotle.tools.hpgltools import convert_coordinates_to_hpgl_absolute_path import chiplotle.hpgl.commands as hpgl -import copy class HPGLFormatVisitor(Visitor): diff --git a/src/chiplotle/geometry/core/label.py b/src/chiplotle/geometry/core/label.py index 37e7467..6b6de60 100644 --- a/src/chiplotle/geometry/core/label.py +++ b/src/chiplotle/geometry/core/label.py @@ -5,12 +5,7 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.hpgl.label import Label as HPGLLabel -from chiplotle.hpgl.commands import PA -from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.shape import _Shape -from chiplotle.tools import mathtools -import math ## TODO should a Label be a path? Probably not. diff --git a/src/chiplotle/geometry/core/polygon.py b/src/chiplotle/geometry/core/polygon.py index 4fae7f6..d3577f4 100644 --- a/src/chiplotle/geometry/core/polygon.py +++ b/src/chiplotle/geometry/core/polygon.py @@ -5,12 +5,8 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.hpgl.commands import PM, EP, FP, FT, SP from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.path import Path -from chiplotle.tools.hpgltools.convert_coordinates_to_hpgl_absolute_path import ( - convert_coordinates_to_hpgl_absolute_path -) class Polygon(Path): diff --git a/src/chiplotle/geometry/core/test/test_path_add.py b/src/chiplotle/geometry/core/test/test_path_add.py index b7970f2..cc0e231 100644 --- a/src/chiplotle/geometry/core/test/test_path_add.py +++ b/src/chiplotle/geometry/core/test/test_path_add.py @@ -6,8 +6,7 @@ standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate -from chiplotle.core import errors -from py.test import raises +from pytest import raises def test_path_add_01(): diff --git a/src/chiplotle/geometry/core/test/test_shapes_group_add.py b/src/chiplotle/geometry/core/test/test_shapes_group_add.py index c617c62..eb0f8dd 100644 --- a/src/chiplotle/geometry/core/test/test_shapes_group_add.py +++ b/src/chiplotle/geometry/core/test/test_shapes_group_add.py @@ -2,25 +2,22 @@ from __future__ import division from __future__ import absolute_import from future import standard_library +from pytest import raises standard_library.install_aliases() -from chiplotle import * from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path -from py.test import raises - -"""A Group is offset with the + operator.""" - -"""A Group with paths works as expected.""" def test_shapes_group_add_01(): """Group + int is not allowed.""" a = Group([Path([(1, 2), (3, 4)]), Path([(5, 6), (7, 8)])]) - assert raises(TypeError, "t = a + 2") + with raises(TypeError): + a + 2 def test_shapes_group_add_02(): """int + Group is not allowed.""" a = Group([Path([(1, 2), (3, 4)]), Path([(5, 6), (7, 8)])]) - assert raises(TypeError, "t = 2 + a") + with raises(TypeError): + 2 + a diff --git a/src/chiplotle/geometry/core/test/test_shapes_group_points.py b/src/chiplotle/geometry/core/test/test_shapes_group_points.py index 71ba317..c3b5f17 100644 --- a/src/chiplotle/geometry/core/test/test_shapes_group_points.py +++ b/src/chiplotle/geometry/core/test/test_shapes_group_points.py @@ -7,7 +7,6 @@ from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path -from chiplotle.geometry.core.coordinate import Coordinate def test_shapes_group_points_01(): diff --git a/src/chiplotle/geometry/core/test/test_transformlock.py b/src/chiplotle/geometry/core/test/test_transformlock.py index df30c43..8a7fbbf 100644 --- a/src/chiplotle/geometry/core/test/test_transformlock.py +++ b/src/chiplotle/geometry/core/test/test_transformlock.py @@ -4,7 +4,6 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.transformlock import TransformLock diff --git a/src/chiplotle/geometry/shapes/__init__.py b/src/chiplotle/geometry/shapes/__init__.py index ae11314..5b06ff4 100644 --- a/src/chiplotle/geometry/shapes/__init__.py +++ b/src/chiplotle/geometry/shapes/__init__.py @@ -1,22 +1,35 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], globals()) - -# from .arc_circle import arc_circle -# from .arc_ellipse import arc_ellipse -# from .arrow import arrow -# from .bezier_path import bezier_path -# from .catmull_path import catmull_path -# from .circle import circle -# from .cross import cross -# from .donut import donut -# from .ellipse import ellipse -# from .fan import fan -# from .frame import frame +from .annotation import annotation +from .arc_circle import arc_circle +from .arc_ellipse import arc_ellipse +from .arrow import arrow +from .catmull_path import catmull_path +from .circle import circle +from .cross import cross +from .donut import donut +from .ellipse import ellipse +from .fan import fan +from .frame import frame +from .grid import grid +from .group import group +from .isosceles import isosceles +from .label import label +from .layer import layer +from .line import line +from .line_displaced import line_displaced +from .lock_group import lock_group +from .path import path +from .path_bezier import path_bezier +from .path_interpolated import path_interpolated +from .path_linear import path_linear +from .radial_ruler import radial_ruler +from .random_walk_cartesian import random_walk_cartesian +from .random_walk_polar import random_walk_polar +from .rectangle import rectangle +from .ruler import ruler +from .spiral_archimedean import spiral_archimedean +from .spiral_logarithmic import spiral_logarithmic +from .star_crisscross import star_crisscross +from .star_outline import star_outline +from .supershape import supershape +from .symmetric_polygon_side_length import symmetric_polygon_side_length +from .target import target diff --git a/src/chiplotle/geometry/shapes/annotation.py b/src/chiplotle/geometry/shapes/annotation.py index bcc08af..9aebff3 100644 --- a/src/chiplotle/geometry/shapes/annotation.py +++ b/src/chiplotle/geometry/shapes/annotation.py @@ -11,9 +11,6 @@ from chiplotle.geometry.shapes.cross import cross from chiplotle.geometry.shapes.rectangle import rectangle from chiplotle.geometry.transforms.offset import offset -from chiplotle.geometry.core.group import Group -from chiplotle.geometry.core.label import Label -from chiplotle.geometry.core.coordinate import Coordinate ## TODO should this be a decorator carried around by the shape? diff --git a/src/chiplotle/geometry/shapes/circle.py b/src/chiplotle/geometry/shapes/circle.py index 64d72da..f08ee82 100644 --- a/src/chiplotle/geometry/shapes/circle.py +++ b/src/chiplotle/geometry/shapes/circle.py @@ -7,7 +7,6 @@ standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon -from chiplotle.geometry.transforms.scale import scale import math diff --git a/src/chiplotle/geometry/shapes/donut.py b/src/chiplotle/geometry/shapes/donut.py index b9073f9..6328d1e 100644 --- a/src/chiplotle/geometry/shapes/donut.py +++ b/src/chiplotle/geometry/shapes/donut.py @@ -7,7 +7,6 @@ standard_library.install_aliases() from chiplotle.geometry.shapes.ellipse import ellipse from chiplotle.geometry.core.group import Group -from chiplotle.geometry.core.path import Path def donut(width, height, inset, segments=100): diff --git a/src/chiplotle/geometry/shapes/grid.py b/src/chiplotle/geometry/shapes/grid.py index 1c701b7..8ee1497 100644 --- a/src/chiplotle/geometry/shapes/grid.py +++ b/src/chiplotle/geometry/shapes/grid.py @@ -6,7 +6,6 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.group import Group from chiplotle.geometry.shapes.line import line diff --git a/src/chiplotle/geometry/shapes/lock_group.py b/src/chiplotle/geometry/shapes/lock_group.py index f9f6710..e4be881 100644 --- a/src/chiplotle/geometry/shapes/lock_group.py +++ b/src/chiplotle/geometry/shapes/lock_group.py @@ -6,7 +6,6 @@ standard_library.install_aliases() from chiplotle.geometry.core.transformlock import TransformLock -from chiplotle.geometry.core.shape import _Shape def lock_group(shapes, lock_transforms): diff --git a/src/chiplotle/geometry/shapes/random_walk_cartesian.py b/src/chiplotle/geometry/shapes/random_walk_cartesian.py index f228e54..688958d 100644 --- a/src/chiplotle/geometry/shapes/random_walk_cartesian.py +++ b/src/chiplotle/geometry/shapes/random_walk_cartesian.py @@ -7,7 +7,6 @@ standard_library.install_aliases() from chiplotle.geometry.core.path import Path -import math import random diff --git a/src/chiplotle/geometry/shapes/spiral_logarithmic.py b/src/chiplotle/geometry/shapes/spiral_logarithmic.py index bcb1c64..9ec57f5 100644 --- a/src/chiplotle/geometry/shapes/spiral_logarithmic.py +++ b/src/chiplotle/geometry/shapes/spiral_logarithmic.py @@ -56,7 +56,6 @@ def spiral_logarithmic(num_turns=5, expansion_rate=0.2, direction="cw", segments if __name__ == "__main__": from chiplotle.geometry.core.group import Group from chiplotle.geometry.shapes.line import line - from chiplotle.geometry.transforms.offset import offset from chiplotle.tools import io s = spiral_logarithmic() diff --git a/src/chiplotle/geometry/shapes/star_crisscross.py b/src/chiplotle/geometry/shapes/star_crisscross.py index e7ade65..28bd0d0 100644 --- a/src/chiplotle/geometry/shapes/star_crisscross.py +++ b/src/chiplotle/geometry/shapes/star_crisscross.py @@ -8,8 +8,6 @@ standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon -from chiplotle.geometry.core.group import Group -from chiplotle.tools.mathtools.lcm import lcm import math from fractions import gcd diff --git a/src/chiplotle/geometry/shapes/star_outline.py b/src/chiplotle/geometry/shapes/star_outline.py index 2111f55..da1ebb4 100644 --- a/src/chiplotle/geometry/shapes/star_outline.py +++ b/src/chiplotle/geometry/shapes/star_outline.py @@ -7,10 +7,7 @@ standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon -from chiplotle.geometry.core.group import Group -from chiplotle.tools.mathtools.lcm import lcm import math -from fractions import gcd def star_outline(width, height, num_points=5): diff --git a/src/chiplotle/geometry/transforms/__init__.py b/src/chiplotle/geometry/transforms/__init__.py index 415957f..0539111 100644 --- a/src/chiplotle/geometry/transforms/__init__.py +++ b/src/chiplotle/geometry/transforms/__init__.py @@ -1,10 +1,9 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], globals()) +from .arrange_shapes_on_path import arrange_shapes_on_path +from .center_at import center_at +from .noise import noise +from .offset import offset +from .perpendicular_displace import perpendicular_displace +from .perpendicular_noise import perpendicular_noise +from .rotate import rotate +from .scale import scale +from .transformvisitor import TransformVisitor diff --git a/src/chiplotle/geometry/transforms/noise.py b/src/chiplotle/geometry/transforms/noise.py index e627bf9..584bf02 100644 --- a/src/chiplotle/geometry/transforms/noise.py +++ b/src/chiplotle/geometry/transforms/noise.py @@ -6,7 +6,6 @@ standard_library.install_aliases() from chiplotle.geometry.core.group import Group -from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.geometry.transforms.transformvisitor import TransformVisitor diff --git a/src/chiplotle/geometry/transforms/perpendicular_noise.py b/src/chiplotle/geometry/transforms/perpendicular_noise.py index 639cf49..252a1ec 100644 --- a/src/chiplotle/geometry/transforms/perpendicular_noise.py +++ b/src/chiplotle/geometry/transforms/perpendicular_noise.py @@ -7,7 +7,6 @@ standard_library.install_aliases() from chiplotle.geometry.core.group import Group -from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinatearray import CoordinateArray from chiplotle.tools.mathtools.difference import difference from chiplotle.geometry.transforms.transformvisitor import TransformVisitor diff --git a/src/chiplotle/geometry/transforms/rotate.py b/src/chiplotle/geometry/transforms/rotate.py index 1b86bf0..5138b09 100644 --- a/src/chiplotle/geometry/transforms/rotate.py +++ b/src/chiplotle/geometry/transforms/rotate.py @@ -5,7 +5,6 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.group import Group from chiplotle.tools.mathtools.rotate_2d import rotate_2d from chiplotle.geometry.transforms.transformvisitor import TransformVisitor diff --git a/src/chiplotle/geometry/transforms/test/test_scale_path.py b/src/chiplotle/geometry/transforms/test/test_scale_path.py index 1fc15f4..ab2fe9b 100644 --- a/src/chiplotle/geometry/transforms/test/test_scale_path.py +++ b/src/chiplotle/geometry/transforms/test/test_scale_path.py @@ -6,7 +6,6 @@ standard_library.install_aliases() from chiplotle import * -import py.test def test_scale_path_01(): diff --git a/src/chiplotle/hpgl/formatters/__init__.py b/src/chiplotle/hpgl/formatters/__init__.py index 18d8713..d8f4625 100644 --- a/src/chiplotle/hpgl/formatters/__init__.py +++ b/src/chiplotle/hpgl/formatters/__init__.py @@ -1,10 +1,3 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() from .pen import Pen from .linetype import LineType from .filltype import FillType diff --git a/src/chiplotle/hpgl/label.py b/src/chiplotle/hpgl/label.py index e608307..ce46c6a 100644 --- a/src/chiplotle/hpgl/label.py +++ b/src/chiplotle/hpgl/label.py @@ -5,7 +5,7 @@ from future import standard_library standard_library.install_aliases() -from chiplotle.hpgl.commands import LB, PA, ES, LO, SL, DI, DV, SI +from chiplotle.hpgl.commands import LB, ES, LO, SL, DI, DV, SI class Label(object): diff --git a/src/chiplotle/hpgl/test/test_PU.py b/src/chiplotle/hpgl/test/test_PU.py index 9371e26..70452b1 100644 --- a/src/chiplotle/hpgl/test/test_PU.py +++ b/src/chiplotle/hpgl/test/test_PU.py @@ -9,7 +9,6 @@ standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import PU -from py.test import raises ### INITIALIZATION ### diff --git a/src/chiplotle/hpgl/test/test_hpglescape.py b/src/chiplotle/hpgl/test/test_hpglescape.py deleted file mode 100644 index 9a67156..0000000 --- a/src/chiplotle/hpgl/test/test_hpglescape.py +++ /dev/null @@ -1,21 +0,0 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle import * - -## No longer the case -# def test_hpglescape_escape_01( ): -# '''The escape class attribute of _HPGLEscape commands can be set directly -# from the instances.''' -# on = On( ) -# off = Off( ) -# on.escape = chr(1) -# assert on.escape == chr(1) -# assert off.escape == chr(1) -# off.escape = chr(2) -# assert on.escape == chr(2) -# assert off.escape == chr(2) diff --git a/src/chiplotle/plotters/__init__.py b/src/chiplotle/plotters/__init__.py index eb2f0e5..321f3ab 100644 --- a/src/chiplotle/plotters/__init__.py +++ b/src/chiplotle/plotters/__init__.py @@ -1,30 +1,10 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import - -# from chiplotle.core.imports.package_import import _package_import -# -# _package_import(__path__[0], locals( )) -# -# def remove_all_but_types(lst): -# '''Keep only classes.''' -# from types import TypeType -# for k, v in lst.items( ): -# if not isinstance(v, TypeType): -# del(lst[k]) -# -# remove_all_but_types(locals( )) - -from future import standard_library - -standard_library.install_aliases() from .dpx2000 import DPX2000 +from .dpx2200 import DPX2200 from .dpx3300 import DPX3300 +from .dxy880 import DXY880 from .dxy1100 import DXY1100 from .dxy1200 import DXY1200 from .dxy1300 import DXY1300 -from .dxy880 import DXY880 from .hp7475a import HP7475A from .hp7550a import HP7550A from .hp7575a import HP7575A diff --git a/src/chiplotle/plotters/baseplotter.py b/src/chiplotle/plotters/baseplotter.py index c87741e..3e4e4eb 100644 --- a/src/chiplotle/plotters/baseplotter.py +++ b/src/chiplotle/plotters/baseplotter.py @@ -14,7 +14,6 @@ from collections import Iterable from future import standard_library -from six import string_types standard_library.install_aliases() from chiplotle.core.cfg.get_config_value import get_config_value @@ -27,9 +26,7 @@ from chiplotle.tools.serialtools import VirtualSerialPort import math import re -import serial import time -import types class _BasePlotter(object): diff --git a/src/chiplotle/plotters/interactive/interactive_commands.py b/src/chiplotle/plotters/interactive/interactive_commands.py index a6f172b..3fab144 100644 --- a/src/chiplotle/plotters/interactive/interactive_commands.py +++ b/src/chiplotle/plotters/interactive/interactive_commands.py @@ -1,3 +1,15 @@ +""" +Interactive plotter routines. + +Note that these routines may not work on your plotter. They are +known to work on most HP and Roland plotters, but they do NOT +work on the Houston Instruments DMP-60 (and probably other Houston +Instruments plotters). This is because the DMP-60 interprets manual +pen moves as attempts to reset the origin, which interferes with +these routines. +""" + + from __future__ import print_function from __future__ import division from __future__ import unicode_literals @@ -10,18 +22,6 @@ from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.hpgl.commands import SC, IP, IW -""" -Interactive plotter routines. - -Note that these routines may not work on your plotter. They are -known to work on most HP and Roland plotters, but they do NOT -work on the Houston Instruments DMP-60 (and probably other Houston -Instruments plotters). This is because the DMP-60 interprets manual -pen moves as attempts to reset the origin, which interferes with -these routines. - -""" - def interactive_set_plot_window(plotter): """ @@ -56,6 +56,11 @@ def interactive_set_plot_window(plotter): def interactive_set_plot_window_and_units(plotter): """ User sets window size and then defines units inside of that window. + + Example: + + >>> from chiplotle.interactive.interactive_commands import * + >>> interactive_set_plot_window_and_units(plotter) """ plotter.write(IP()) plotter.write(IW()) @@ -76,16 +81,16 @@ def interactive_set_plot_window_and_units(plotter): print("new soft margins:") print(plotter.margins.soft) - """ -from chiplotle.interactive.interactive_commands import * -interactive_set_plot_window_and_units(plotter) - """ - def interactive_set_plot_window_auto_units(plotter): """ User sets window size and then units are automatically set to user's choise of inches, millimeters, or centimeters. + + Example: + + >>> from chiplotle.plotters.interactive.interactive_commands import * + >>> interactive_set_plot_window_auto_units(plotter) """ plotter.write(IP()) plotter.write(IW()) @@ -144,102 +149,3 @@ def interactive_set_plot_window_auto_units(plotter): # not the margins set via the set_plot_window() above. ARRRRG! print("new soft margins:") print(plotter.margins.soft) - - """ -from chiplotle.plotters.interactive.interactive_commands import * -interactive_set_plot_window_auto_units(plotter) - """ - - -def interactive_define_polygon_simple(plotter): - """ - Interactive routine to define points in a PolygonSimple object. - """ - from chiplotle.hpgl.compound.polygon_simple import PolygonSimple - - points = [] - - print("Interactive define PolygonSimple:") - print( - "Move pen to each point and press enter. Press x when finished adding points." - ) - print("The final point (a duplicate of first point) will be added automatically.") - while True: - input = input() - if input is "x": - break - - point = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - points.append(point) - print("added:") - print(point) - - poly = PolygonSimple([0, 0], points) - - return poly - - -def interactive_define_rectangle(plotter): - """ - Interactive routine to define points in a Rectangle object. - """ - from chiplotle.hpgl.compound.rectangle import Rectangle - - points = [] - - print("Interactive define Rectangle:") - print("Move pen to lower, left corner and press enter.") - - input = input() - lower_left = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - print("lower_left:") - print(lower_left) - - print("Move pen to upper, right corner and press enter.") - input = input() - upper_right = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - print("upper_right:") - print(upper_right) - - rectangle = Rectangle([lower_left], upper_right.x, upper_right.y) - - return rectangle - - -""" -from chiplotle.plotters.interactive.interactive_commands import * -interactive_define_rectangle(plotter) -""" - - -def interactive_define_ellipse(plotter): - """ - Interactive routine to define center and radii of an ellipse. - """ - from chiplotle.hpgl.compound.rectangle import Ellipse - - points = [] - - print("Interactive define Rectangle:") - print("Move pen to lower, left corner and press enter.") - - input = input() - lower_left = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - print("lower_left:") - print(lower_left) - - print("Move pen to upper, right corner and press enter.") - input = input() - upper_right = Coordinate(plotter.actual_position[0].x, plotter.actual_position[0].y) - print("upper_right:") - print(upper_right) - - rectangle = Rectangle([lower_left], upper_right.x, upper_right.y) - - return rectangle - - -""" -from chiplotle.plotters.interactive.interactive_commands import * -interactive_define_rectangle(plotter) -""" diff --git a/src/chiplotle/plotters/test/plotter_query.py b/src/chiplotle/plotters/test/plotter_query.py index 6276c71..b07de40 100644 --- a/src/chiplotle/plotters/test/plotter_query.py +++ b/src/chiplotle/plotters/test/plotter_query.py @@ -5,7 +5,6 @@ from future import standard_library standard_library.install_aliases() -from chiplotle import * from chiplotle.tools.plottertools import instantiate_plotters plotter = instantiate_plotters()[0] diff --git a/src/chiplotle/plotters/test/test_drawingplotter.py b/src/chiplotle/plotters/test/test_drawingplotter.py index c002b7b..0f1d3c0 100644 --- a/src/chiplotle/plotters/test/test_drawingplotter.py +++ b/src/chiplotle/plotters/test/test_drawingplotter.py @@ -37,11 +37,6 @@ def test_goto_bottom_right(): p.goto_bottom_right() -def test_goto_bottom_right(): - p = instantiate_virtual_plotter() - p.goto_bottom_right() - - def test_goto_origin(): p = instantiate_virtual_plotter() p.goto_origin() diff --git a/src/chiplotle/scripts/plot_hpgl_file.py b/src/chiplotle/scripts/plot_hpgl_file.py index 4cf1f5e..c586389 100755 --- a/src/chiplotle/scripts/plot_hpgl_file.py +++ b/src/chiplotle/scripts/plot_hpgl_file.py @@ -8,7 +8,6 @@ standard_library.install_aliases() from chiplotle.tools.plottertools import instantiate_plotters import sys -import time def plot_hpgl_file(file): diff --git a/src/chiplotle/scripts/plot_hpgl_file_max_size.py b/src/chiplotle/scripts/plot_hpgl_file_max_size.py index 277cb53..ea1152f 100755 --- a/src/chiplotle/scripts/plot_hpgl_file_max_size.py +++ b/src/chiplotle/scripts/plot_hpgl_file_max_size.py @@ -10,7 +10,6 @@ from chiplotle.tools.plottertools import instantiate_plotters from chiplotle.tools import * import sys -import time def plot_hpgl_file_max_size(file): diff --git a/src/chiplotle/scripts/plot_hpgl_file_virtual.py b/src/chiplotle/scripts/plot_hpgl_file_virtual.py index 456af53..b61b50d 100755 --- a/src/chiplotle/scripts/plot_hpgl_file_virtual.py +++ b/src/chiplotle/scripts/plot_hpgl_file_virtual.py @@ -9,7 +9,6 @@ from chiplotle import * from chiplotle.tools.plottertools import instantiate_virtual_plotter import sys -import time def plot_hpgl_file(file): diff --git a/src/chiplotle/scripts/view_hpgl_file.py b/src/chiplotle/scripts/view_hpgl_file.py index 0173548..a9c83b4 100755 --- a/src/chiplotle/scripts/view_hpgl_file.py +++ b/src/chiplotle/scripts/view_hpgl_file.py @@ -8,7 +8,6 @@ standard_library.install_aliases() from chiplotle.tools import * import sys -import time def view_hpgl(file): diff --git a/src/chiplotle/tools/__init__.py b/src/chiplotle/tools/__init__.py index bbe22dd..1052fa1 100644 --- a/src/chiplotle/tools/__init__.py +++ b/src/chiplotle/tools/__init__.py @@ -1,12 +1,6 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.tools import geometrytools -from chiplotle.tools import hpgltools -from chiplotle.tools import io -from chiplotle.tools import mathtools -from chiplotle.tools import measuretools +from . import geometrytools +from . import hpgltools +from . import io +from . import mathtools +from . import measuretools +from . import shapetools diff --git a/src/chiplotle/tools/geometrytools/__init__.py b/src/chiplotle/tools/geometrytools/__init__.py index 37859c4..43b69f7 100644 --- a/src/chiplotle/tools/geometrytools/__init__.py +++ b/src/chiplotle/tools/geometrytools/__init__.py @@ -4,3 +4,8 @@ # from .get_centroid import get_centroid # from .get_line_intersection import get_line_intersection +# from .get_line_intersection import get_line_intersection +# from .get_shape_intersections import get_shape_intersections +# from .scale import scale +# from .split_coordinatearray_proportionally import split_coordinatearray_proportionally +# from .split_vector_equidistantly import split_vector_equidistantly diff --git a/src/chiplotle/tools/geometrytools/get_line_intersection.py b/src/chiplotle/tools/geometrytools/get_line_intersection.py index 9c2d992..0c8fd65 100644 --- a/src/chiplotle/tools/geometrytools/get_line_intersection.py +++ b/src/chiplotle/tools/geometrytools/get_line_intersection.py @@ -6,7 +6,7 @@ standard_library.install_aliases() from chiplotle.geometry.core.coordinate import Coordinate -from chiplotle.geometry.core.path import Path +from chiplotle import Path def get_line_intersection(line_a, line_b): diff --git a/src/chiplotle/tools/hpgltools/__init__.py b/src/chiplotle/tools/hpgltools/__init__.py index d1e6247..c3a6bee 100644 --- a/src/chiplotle/tools/hpgltools/__init__.py +++ b/src/chiplotle/tools/hpgltools/__init__.py @@ -1,10 +1,16 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], locals()) +from .convert_coordinates_to_hpgl_absolute_path import ( + convert_coordinates_to_hpgl_absolute_path +) +from .convert_relatives_to_absolutes import convert_relatives_to_absolutes +from .get_all_coordinates import get_all_coordinates +from .get_bounding_box import get_bounding_box +from .get_centroid import get_centroid +from .inflate_hpgl_string import inflate_hpgl_string, inflate_hpgl_string_command +from .is_primitive_absolute import is_primitive_absolute +from .parse_hpgl_string import parse_hpgl_string +from .pens_updown_to_papr import pens_updown_to_papr +from .pr_to_pa import pr_to_pa +from .relativize import relativize +from .rotate_hpglprimitives import rotate_hpglprimitives +from .scale import scale +from .transpose import transpose diff --git a/src/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py b/src/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py index 06b7b9a..a0ef4bb 100644 --- a/src/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py +++ b/src/chiplotle/tools/hpgltools/convert_relatives_to_absolutes.py @@ -10,7 +10,7 @@ from chiplotle.tools.hpgltools.pr_to_pa import pr_to_pa from chiplotle.geometry.core.coordinate import Coordinate from chiplotle.geometry.core.coordinatearray import CoordinateArray -from chiplotle.hpgl.commands import PR, PA, ER, EA, RA, RR, AR, AA +from chiplotle.hpgl.commands import PR, ER, EA, RA, RR, AR, AA def convert_relatives_to_absolutes(lst): @@ -21,7 +21,6 @@ def convert_relatives_to_absolutes(lst): result = [] last_position = Coordinate(0, 0) - command = None for e in lst: ## if has absolute position, keep track of last point... if is_primitive_absolute(e): diff --git a/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py b/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py index b1e09f4..09f86a9 100644 --- a/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/inflate_hpgl_string.py @@ -6,7 +6,9 @@ from six import string_types standard_library.install_aliases() -from chiplotle.hpgl import commands as hpgl +# WARNING: Do not remove the line below, it is not dead code, it is needed for inflate_hpgl_string +# which uses `eval` to construct the correct HPGL command. +from chiplotle.hpgl import commands as hpgl # NOQA from chiplotle.tools.hpgltools.parse_hpgl_string import parse_hpgl_string from chiplotle.tools.logtools.apply_logger import apply_logger from chiplotle.tools.iterabletools.flat_list_to_pairs import flat_list_to_pairs @@ -38,7 +40,7 @@ def inflate_hpgl_string(string, filter_commands=None): raise TypeError(msg) if isinstance(string, bytes): - string = string.decode('ascii') + string = string.decode("ascii") _unsupported_commands = ("PW", "PC", "LA", "WU", "BP") commands = parse_hpgl_string(string) diff --git a/src/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py b/src/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py index 7002475..318fef7 100644 --- a/src/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py +++ b/src/chiplotle/tools/hpgltools/test/test_rotate_hpglprimitives.py @@ -8,7 +8,6 @@ from chiplotle import * from chiplotle.hpgl.commands import * import math -from py.test import raises def test_rotate_hpglprimitives_01(): diff --git a/src/chiplotle/tools/hpgltools/transpose.py b/src/chiplotle/tools/hpgltools/transpose.py index b0011c5..21bf90f 100644 --- a/src/chiplotle/tools/hpgltools/transpose.py +++ b/src/chiplotle/tools/hpgltools/transpose.py @@ -11,8 +11,6 @@ def _transpose_command(arg, val): - from chiplotle.tools.iterabletools.ispair import ispair - val = Coordinate(*val) if is_primitive_absolute(arg): arg.xy = arg.xy + val diff --git a/src/chiplotle/tools/io/__init__.py b/src/chiplotle/tools/io/__init__.py index 415957f..7cc9f12 100644 --- a/src/chiplotle/tools/io/__init__.py +++ b/src/chiplotle/tools/io/__init__.py @@ -1,10 +1,4 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], globals()) +from .export import export +from .import_hpgl_file import import_hpgl_file +from .save_hpgl import save_hpgl +from .view import view diff --git a/src/chiplotle/tools/io/export.py b/src/chiplotle/tools/io/export.py index b803489..f10bb87 100644 --- a/src/chiplotle/tools/io/export.py +++ b/src/chiplotle/tools/io/export.py @@ -6,7 +6,6 @@ standard_library.install_aliases() from chiplotle.tools.io.save_hpgl import save_hpgl -from chiplotle.core.cfg.cfg import CONFIG_DIR import subprocess diff --git a/src/chiplotle/tools/io/import_hpgl_file.py b/src/chiplotle/tools/io/import_hpgl_file.py index a977696..b5c9173 100644 --- a/src/chiplotle/tools/io/import_hpgl_file.py +++ b/src/chiplotle/tools/io/import_hpgl_file.py @@ -7,8 +7,6 @@ standard_library.install_aliases() from chiplotle.tools.hpgltools.inflate_hpgl_string import inflate_hpgl_string -from chiplotle.hpgl import commands as hpgl -import re def import_hpgl_file(filename, filter_commands=None): diff --git a/src/chiplotle/tools/iterabletools/__init__.py b/src/chiplotle/tools/iterabletools/__init__.py index 415957f..654fc18 100644 --- a/src/chiplotle/tools/iterabletools/__init__.py +++ b/src/chiplotle/tools/iterabletools/__init__.py @@ -1,10 +1,6 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], globals()) +from .flat_list_to_dovetail_pairs import flat_list_to_dovetail_pairs +from .flat_list_to_pairs import flat_list_to_pairs +from .flatten import flatten +from .is_flat_list import is_flat_list +from .isiterable import isiterable +from .ispair import ispair diff --git a/src/chiplotle/tools/logtools/__init__.py b/src/chiplotle/tools/logtools/__init__.py index e69de29..0792877 100644 --- a/src/chiplotle/tools/logtools/__init__.py +++ b/src/chiplotle/tools/logtools/__init__.py @@ -0,0 +1,2 @@ +from .apply_logger import apply_logger +from .get_logger import get_logger diff --git a/src/chiplotle/tools/mathtools/__init__.py b/src/chiplotle/tools/mathtools/__init__.py index 415957f..8a604dc 100644 --- a/src/chiplotle/tools/mathtools/__init__.py +++ b/src/chiplotle/tools/mathtools/__init__.py @@ -1,10 +1,15 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], globals()) +from .bezier_interpolation import bezier_interpolation +from .catmull_interpolation import catmull_interpolation +from .cumsum import cumsum +from .difference import difference +from .factors import factors +from .interpolate_cosine import interpolate_cosine +from .interpolate_exponential import interpolate_exponential +from .interpolate_linear import interpolate_linear +from .lcm import lcm +from .pascal_row import pascal_row +from .polar_to_xy import polar_to_xy +from .rotate_2d import rotate_2d +from .rotate_3d import rotate_3d +from .superformula import superformula +from .xy_to_polar import xy_to_polar diff --git a/src/chiplotle/tools/measuretools/__init__.py b/src/chiplotle/tools/measuretools/__init__.py index 415957f..5cbe290 100644 --- a/src/chiplotle/tools/measuretools/__init__.py +++ b/src/chiplotle/tools/measuretools/__init__.py @@ -1,10 +1,6 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], globals()) +from .cm_to_pu import cm_to_pu +from .in_to_pu import in_to_pu +from .mm_to_pu import mm_to_pu +from .pu_to_cm import pu_to_cm +from .pu_to_in import pu_to_in +from .pu_to_mm import pu_to_mm diff --git a/src/chiplotle/tools/plottertools/__init__.py b/src/chiplotle/tools/plottertools/__init__.py index 415957f..c735148 100644 --- a/src/chiplotle/tools/plottertools/__init__.py +++ b/src/chiplotle/tools/plottertools/__init__.py @@ -1,10 +1,6 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], globals()) +from .instantiate_plotter_from_id import instantiate_plotter_from_id +from .instantiate_plotters import instantiate_plotters +from .instantiate_virtual_plotter import instantiate_virtual_plotter +from .interactive_choose_plotter import interactive_choose_plotter +from .interactive_plot_layers import interactive_plot_layers +from .search_and_instantiate_plotters import search_and_instantiate_plotters diff --git a/src/chiplotle/tools/plottertools/_instantiate_plotter.py b/src/chiplotle/tools/plottertools/_instantiate_plotter.py index d926c70..aaf4342 100644 --- a/src/chiplotle/tools/plottertools/_instantiate_plotter.py +++ b/src/chiplotle/tools/plottertools/_instantiate_plotter.py @@ -8,7 +8,6 @@ from chiplotle.tools.serialtools.instantiate_serial_from_config_file import ( instantiate_serial_from_config_file ) -from chiplotle import plotters def _instantiate_plotter(port, id): diff --git a/src/chiplotle/tools/plottertools/search_and_instantiate_plotters.py b/src/chiplotle/tools/plottertools/search_and_instantiate_plotters.py index fea99ab..6d192a7 100644 --- a/src/chiplotle/tools/plottertools/search_and_instantiate_plotters.py +++ b/src/chiplotle/tools/plottertools/search_and_instantiate_plotters.py @@ -18,9 +18,6 @@ def search_and_instantiate_plotters(): instantiates all plotters found. If a plotter is not recognized, the function interactively queries user for plotter type.""" - from chiplotle.tools.plottertools import instantiate_plotter_from_id - from chiplotle.tools.plottertools import interactive_choose_plotter - print("Scanning serial ports...") ports = list(scan_serial_ports().values()) print("Found ports:") diff --git a/src/chiplotle/tools/serialtools/__init__.py b/src/chiplotle/tools/serialtools/__init__.py index 415957f..8be4563 100644 --- a/src/chiplotle/tools/serialtools/__init__.py +++ b/src/chiplotle/tools/serialtools/__init__.py @@ -1,10 +1,9 @@ -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -from future import standard_library - -standard_library.install_aliases() -from chiplotle.core.imports.package_import import _package_import - -_package_import(__path__[0], globals()) +from .instantiate_serial_from_config_file import instantiate_serial_from_config_file +from .interactive_open_serial import interactive_open_serial +from .scan_serial_ports import scan_serial_ports +from .scan_serial_ports_from_list import scan_serial_ports_from_list +from .scan_serial_ports_linux import scan_serial_ports_linux +from .scan_serial_ports_windows import scan_serial_ports_windows +from .sniff_ports_for_plotters import sniff_ports_for_plotters +from .virtual_serial_port import VirtualSerialPort +from .what_plotter_in_port import what_plotter_in_port diff --git a/src/chiplotle/tools/shapetools/__init__.py b/src/chiplotle/tools/shapetools/__init__.py index e69de29..63a8010 100644 --- a/src/chiplotle/tools/shapetools/__init__.py +++ b/src/chiplotle/tools/shapetools/__init__.py @@ -0,0 +1 @@ +from .get_shapes_with_tag import get_shapes_with_tag From 53a012f870d4883f3e7c77f03490177f991388a5 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 3 Sep 2018 21:56:36 +0100 Subject: [PATCH 72/82] Update pytest imports from py.test to pytest --- src/chiplotle/geometry/core/test/test_coordinate_add.py | 2 +- src/chiplotle/geometry/core/test/test_coordinate_init.py | 2 +- src/chiplotle/geometry/core/test/test_coordinate_mul.py | 2 +- src/chiplotle/geometry/core/test/test_coordinate_sub.py | 2 +- .../geometry/core/test/test_coordinatearray_add.py | 2 +- .../geometry/core/test/test_coordinatearray_append.py | 2 +- .../geometry/core/test/test_coordinatearray_extend.py | 2 +- .../geometry/core/test/test_coordinatearray_init.py | 2 +- src/chiplotle/geometry/core/test/test_path_mul.py | 2 +- src/chiplotle/geometry/core/test/test_path_sub.py | 2 +- .../geometry/core/test/test_shapes_group_init.py | 8 ++++---- src/chiplotle/geometry/core/test/test_transformlock.py | 4 ++-- src/chiplotle/hpgl/test/test_AA.py | 6 +++--- src/chiplotle/hpgl/test/test_AR.py | 4 ++-- src/chiplotle/hpgl/test/test_CI.py | 2 +- src/chiplotle/hpgl/test/test_DI.py | 2 +- src/chiplotle/hpgl/test/test_DR.py | 2 +- src/chiplotle/hpgl/test/test_EA.py | 2 +- src/chiplotle/hpgl/test/test_ER.py | 2 +- src/chiplotle/hpgl/test/test_FT.py | 2 +- src/chiplotle/hpgl/test/test_SI.py | 4 ++-- src/chiplotle/hpgl/test/test_SR.py | 4 ++-- src/chiplotle/hpgl/test/test_dci_sethandshakemode.py | 2 +- src/chiplotle/hpgl/test/test_pen.py | 4 ++-- src/chiplotle/hpgl/test/test_penplot.py | 4 ++-- .../test/test_convert_coordinates_to_absolute_path.py | 2 +- .../tools/hpgltools/test/test_inflate_hpgl_string.py | 2 +- .../tools/mathtools/test/test_mathtools_factors.py | 6 +++--- src/chiplotle/tools/mathtools/test/test_polar_to_xy.py | 2 +- 29 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/chiplotle/geometry/core/test/test_coordinate_add.py b/src/chiplotle/geometry/core/test/test_coordinate_add.py index 2ea97e8..c661bed 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_add.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_add.py @@ -7,7 +7,7 @@ standard_library.install_aliases() from chiplotle import * -from py.test import raises +from pytest import raises def test_coordinate__add__01(): diff --git a/src/chiplotle/geometry/core/test/test_coordinate_init.py b/src/chiplotle/geometry/core/test/test_coordinate_init.py index 0e59315..593b48f 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_init.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_init.py @@ -6,7 +6,7 @@ standard_library.install_aliases() from chiplotle import * -from py.test import raises +from pytest import raises ## __init__ ## diff --git a/src/chiplotle/geometry/core/test/test_coordinate_mul.py b/src/chiplotle/geometry/core/test/test_coordinate_mul.py index a56e3f4..d455c89 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_mul.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_mul.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle import * -from py.test import raises +from pytest import raises def test_coordinate__mul__01(): diff --git a/src/chiplotle/geometry/core/test/test_coordinate_sub.py b/src/chiplotle/geometry/core/test/test_coordinate_sub.py index 8c0b115..a95bf4b 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_sub.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_sub.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle import * -from py.test import raises +from pytest import raises def test_coordinate__sub__01(): diff --git a/src/chiplotle/geometry/core/test/test_coordinatearray_add.py b/src/chiplotle/geometry/core/test/test_coordinatearray_add.py index 4531d36..e2a4ff0 100644 --- a/src/chiplotle/geometry/core/test/test_coordinatearray_add.py +++ b/src/chiplotle/geometry/core/test/test_coordinatearray_add.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle import * -from py.test import raises +from pytest import raises def test_coordinatearray__add__01(): diff --git a/src/chiplotle/geometry/core/test/test_coordinatearray_append.py b/src/chiplotle/geometry/core/test/test_coordinatearray_append.py index 50328f0..04cf1ee 100644 --- a/src/chiplotle/geometry/core/test/test_coordinatearray_append.py +++ b/src/chiplotle/geometry/core/test/test_coordinatearray_append.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle import * -from py.test import raises +from pytest import raises def test_coordinatearray_append_01(): diff --git a/src/chiplotle/geometry/core/test/test_coordinatearray_extend.py b/src/chiplotle/geometry/core/test/test_coordinatearray_extend.py index 4b3d21e..2ea12c1 100644 --- a/src/chiplotle/geometry/core/test/test_coordinatearray_extend.py +++ b/src/chiplotle/geometry/core/test/test_coordinatearray_extend.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle import * -from py.test import raises +from pytest import raises def test_coordinatearray_extend_01(): diff --git a/src/chiplotle/geometry/core/test/test_coordinatearray_init.py b/src/chiplotle/geometry/core/test/test_coordinatearray_init.py index ea4044f..94bbe50 100644 --- a/src/chiplotle/geometry/core/test/test_coordinatearray_init.py +++ b/src/chiplotle/geometry/core/test/test_coordinatearray_init.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle import * -from py.test import raises +from pytest import raises def test_coordinatearray__init__01(): diff --git a/src/chiplotle/geometry/core/test/test_path_mul.py b/src/chiplotle/geometry/core/test/test_path_mul.py index df98e21..aaacd21 100644 --- a/src/chiplotle/geometry/core/test/test_path_mul.py +++ b/src/chiplotle/geometry/core/test/test_path_mul.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle.geometry.core.path import Path -from py.test import raises +from pytest import raises def test_path_mul_01(): diff --git a/src/chiplotle/geometry/core/test/test_path_sub.py b/src/chiplotle/geometry/core/test/test_path_sub.py index 5302ac0..692c782 100644 --- a/src/chiplotle/geometry/core/test/test_path_sub.py +++ b/src/chiplotle/geometry/core/test/test_path_sub.py @@ -6,7 +6,7 @@ standard_library.install_aliases() from chiplotle.geometry.core.path import Path from chiplotle.geometry.core.coordinate import Coordinate -from py.test import raises +from pytest import raises def test_path_sub_01(): diff --git a/src/chiplotle/geometry/core/test/test_shapes_group_init.py b/src/chiplotle/geometry/core/test/test_shapes_group_init.py index 82a6a74..7b5b593 100644 --- a/src/chiplotle/geometry/core/test/test_shapes_group_init.py +++ b/src/chiplotle/geometry/core/test/test_shapes_group_init.py @@ -6,7 +6,7 @@ standard_library.install_aliases() from chiplotle.geometry.core.group import Group from chiplotle.geometry.core.path import Path -import py.test +import pytest def test_shapes_group__init__01(): @@ -38,6 +38,6 @@ def test_shapes_group__init__04(): def test_shapes_group__init__05(): """A Group cannot be initialized with a non-_Shape.""" - assert py.test.raises(TypeError, "Group([1, 2, 3])") - assert py.test.raises(TypeError, 'Group("a")') - assert py.test.raises(TypeError, "Group(0)") + assert pytest.raises(TypeError, "Group([1, 2, 3])") + assert pytest.raises(TypeError, 'Group("a")') + assert pytest.raises(TypeError, "Group(0)") diff --git a/src/chiplotle/geometry/core/test/test_transformlock.py b/src/chiplotle/geometry/core/test/test_transformlock.py index 8a7fbbf..072e648 100644 --- a/src/chiplotle/geometry/core/test/test_transformlock.py +++ b/src/chiplotle/geometry/core/test/test_transformlock.py @@ -11,7 +11,7 @@ from chiplotle.geometry import transforms import copy import math -import py.test +import pytest ## test construction ## @@ -33,7 +33,7 @@ def test_transformlock_02(): def test_transformlock_03(): """A TransformLock takes exactly two arguments.""" expr = "t = TransformLock([shapes.rectangle(100, 100)])" - assert py.test.raises(TypeError, expr) + assert pytest.raises(TypeError, expr) ## test transforms ## diff --git a/src/chiplotle/hpgl/test/test_AA.py b/src/chiplotle/hpgl/test/test_AA.py index 5d62bb4..ee94dfe 100644 --- a/src/chiplotle/hpgl/test/test_AA.py +++ b/src/chiplotle/hpgl/test/test_AA.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import * -import py.test +import pytest def test_AA_01(): @@ -26,7 +26,7 @@ def test_AA_02(): def test_AA_03(): """AA must take at least two arguments: position and angle.""" - assert py.test.raises(TypeError, "AA((0, 0))") + assert pytest.raises(TypeError, "AA((0, 0))") def test_AA_format_01(): @@ -45,7 +45,7 @@ def test_AA_format_02(): def test_AA_angle_01(): """Angle must be between -360 and 360.""" - assert py.test.raises(ValueError, "AA((0, 0), 1200)") + assert pytest.raises(ValueError, "AA((0, 0), 1200)") ## eq ## diff --git a/src/chiplotle/hpgl/test/test_AR.py b/src/chiplotle/hpgl/test/test_AR.py index 7f7c77e..dcfc9c4 100644 --- a/src/chiplotle/hpgl/test/test_AR.py +++ b/src/chiplotle/hpgl/test/test_AR.py @@ -6,7 +6,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import AR -import py.test +import pytest def test_AR_01(): @@ -27,7 +27,7 @@ def test_AR_02(): def test_AR_03(): """AR must take at least two arguments: position and angle.""" - assert py.test.raises(TypeError, "AR((0, 0))") + assert pytest.raises(TypeError, "AR((0, 0))") def test_AR_format_01(): diff --git a/src/chiplotle/hpgl/test/test_CI.py b/src/chiplotle/hpgl/test/test_CI.py index dd9e469..b0d203c 100644 --- a/src/chiplotle/hpgl/test/test_CI.py +++ b/src/chiplotle/hpgl/test/test_CI.py @@ -6,7 +6,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import CI -from py.test import raises +from pytest import raises def test_CI_01(): diff --git a/src/chiplotle/hpgl/test/test_DI.py b/src/chiplotle/hpgl/test/test_DI.py index 709a18c..1cf97da 100644 --- a/src/chiplotle/hpgl/test/test_DI.py +++ b/src/chiplotle/hpgl/test/test_DI.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import DI -from py.test import raises +from pytest import raises def test_DI_01(): diff --git a/src/chiplotle/hpgl/test/test_DR.py b/src/chiplotle/hpgl/test/test_DR.py index 3ce8965..9907d83 100644 --- a/src/chiplotle/hpgl/test/test_DR.py +++ b/src/chiplotle/hpgl/test/test_DR.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import DR -from py.test import raises +from pytest import raises def test_DR_01(): diff --git a/src/chiplotle/hpgl/test/test_EA.py b/src/chiplotle/hpgl/test/test_EA.py index 816dc67..3cc6556 100644 --- a/src/chiplotle/hpgl/test/test_EA.py +++ b/src/chiplotle/hpgl/test/test_EA.py @@ -7,7 +7,7 @@ from chiplotle import * from chiplotle.hpgl.commands import EA -from py.test import raises +from pytest import raises def test_EA_01(): diff --git a/src/chiplotle/hpgl/test/test_ER.py b/src/chiplotle/hpgl/test/test_ER.py index d964795..f7af378 100644 --- a/src/chiplotle/hpgl/test/test_ER.py +++ b/src/chiplotle/hpgl/test/test_ER.py @@ -6,7 +6,7 @@ standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import ER -from py.test import raises +from pytest import raises def test_ER_01(): diff --git a/src/chiplotle/hpgl/test/test_FT.py b/src/chiplotle/hpgl/test/test_FT.py index 32eedd9..f52a258 100644 --- a/src/chiplotle/hpgl/test/test_FT.py +++ b/src/chiplotle/hpgl/test/test_FT.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import FT -from py.test import raises +from pytest import raises def test_FT_01(): diff --git a/src/chiplotle/hpgl/test/test_SI.py b/src/chiplotle/hpgl/test/test_SI.py index 0fb8d97..5f6a683 100644 --- a/src/chiplotle/hpgl/test/test_SI.py +++ b/src/chiplotle/hpgl/test/test_SI.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import SI -import py.test +import pytest def test_SI_01(): @@ -25,4 +25,4 @@ def test_SI_03(): t = SI(3) - assert py.test.raises(Warning, "t.format") + assert pytest.raises(Warning, "t.format") diff --git a/src/chiplotle/hpgl/test/test_SR.py b/src/chiplotle/hpgl/test/test_SR.py index 88d05a7..5d6aece 100644 --- a/src/chiplotle/hpgl/test/test_SR.py +++ b/src/chiplotle/hpgl/test/test_SR.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import SR -import py.test +import pytest def test_SR_01(): @@ -27,4 +27,4 @@ def test_SR_03(): t = SR(3) - assert py.test.raises(Warning, "t.format") + assert pytest.raises(Warning, "t.format") diff --git a/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py b/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py index 29bdd0b..46fdcd9 100644 --- a/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py +++ b/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py @@ -5,7 +5,7 @@ standard_library.install_aliases() from chiplotle.hpgl.commands import SetHandshakeMode -from py.test import raises +from pytest import raises def test_dci_sethandshakemode_01(): diff --git a/src/chiplotle/hpgl/test/test_pen.py b/src/chiplotle/hpgl/test/test_pen.py index a350fb2..cc61de0 100644 --- a/src/chiplotle/hpgl/test/test_pen.py +++ b/src/chiplotle/hpgl/test/test_pen.py @@ -6,13 +6,13 @@ standard_library.install_aliases() from chiplotle import * -import py.test +import pytest def test_pen_01(): """Pen must take one argument at least.""" - assert py.test.raises(TypeError, "t = Pen( )") + assert pytest.raises(TypeError, "t = Pen( )") def test_pen_02(): diff --git a/src/chiplotle/hpgl/test/test_penplot.py b/src/chiplotle/hpgl/test/test_penplot.py index f89f541..2998531 100644 --- a/src/chiplotle/hpgl/test/test_penplot.py +++ b/src/chiplotle/hpgl/test/test_penplot.py @@ -9,7 +9,7 @@ standard_library.install_aliases() from chiplotle.hpgl.abstract.penplot import _PenPlot from chiplotle.geometry.core.coordinatearray import CoordinateArray -from py.test import raises +from pytest import raises def test_penplot_01(): @@ -54,7 +54,7 @@ def test_penplot_06(): ## FORMATTING ## -## TODO: these two tests work fine when py.test -x is run on this test +## TODO: these two tests work fine when pytest -x is run on this test ## flile only, but not when run on all files in directory... figure out ## why. # def test_penplot_format_01( ): diff --git a/src/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py b/src/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py index 5f3224c..88be209 100644 --- a/src/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py +++ b/src/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py @@ -7,7 +7,7 @@ standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * -from py.test import raises +from pytest import raises def test_convert_coordinates_to_absolute_hpgl_path_01(): diff --git a/src/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py b/src/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py index 5f2e04f..20dfbae 100644 --- a/src/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py @@ -6,7 +6,7 @@ standard_library.install_aliases() from chiplotle import * from chiplotle.hpgl.commands import * -from py.test import raises +from pytest import raises def test_inflate_hpgl_string_01(): diff --git a/src/chiplotle/tools/mathtools/test/test_mathtools_factors.py b/src/chiplotle/tools/mathtools/test/test_mathtools_factors.py index e4da54a..753541d 100644 --- a/src/chiplotle/tools/mathtools/test/test_mathtools_factors.py +++ b/src/chiplotle/tools/mathtools/test/test_mathtools_factors.py @@ -5,12 +5,12 @@ standard_library.install_aliases() from chiplotle.tools import mathtools -import py.test +import pytest def test_mathtools_factors_01(): - assert py.test.raises(TypeError, "mathtools.factors(7.5)") - assert py.test.raises(ValueError, "mathtools.factors(0)") + assert pytest.raises(TypeError, "mathtools.factors(7.5)") + assert pytest.raises(ValueError, "mathtools.factors(0)") def test_mathtools_factors_02(): diff --git a/src/chiplotle/tools/mathtools/test/test_polar_to_xy.py b/src/chiplotle/tools/mathtools/test/test_polar_to_xy.py index 4d3a7eb..610500d 100644 --- a/src/chiplotle/tools/mathtools/test/test_polar_to_xy.py +++ b/src/chiplotle/tools/mathtools/test/test_polar_to_xy.py @@ -8,7 +8,7 @@ standard_library.install_aliases() from chiplotle import * import math -from py.test import raises +from pytest import raises ## arguments ## From 7ffe19aeed807430fd3d5ff4d8f7eee8b3487c47 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 3 Sep 2018 22:19:17 +0100 Subject: [PATCH 73/82] Convert old pytest raises(Error, "python code") usage to modern with-clause style --- .../geometry/core/test/test_coordinate_add.py | 18 +++++--- .../core/test/test_coordinate_init.py | 45 ++++++++++++------- .../geometry/core/test/test_coordinate_mul.py | 3 +- .../geometry/core/test/test_coordinate_sub.py | 18 +++++--- .../core/test/test_coordinatearray_add.py | 15 ++++--- .../core/test/test_coordinatearray_append.py | 3 +- .../core/test/test_coordinatearray_extend.py | 6 ++- .../core/test/test_coordinatearray_init.py | 3 +- .../geometry/core/test/test_path_add.py | 24 ++++++---- .../geometry/core/test/test_path_mul.py | 9 ++-- .../geometry/core/test/test_path_sub.py | 24 ++++++---- src/chiplotle/hpgl/test/test_AA.py | 6 ++- src/chiplotle/hpgl/test/test_AR.py | 3 +- src/chiplotle/hpgl/test/test_CI.py | 10 +---- src/chiplotle/hpgl/test/test_DI.py | 3 +- src/chiplotle/hpgl/test/test_DR.py | 5 ++- src/chiplotle/hpgl/test/test_EA.py | 6 ++- src/chiplotle/hpgl/test/test_ER.py | 6 ++- src/chiplotle/hpgl/test/test_FT.py | 3 +- src/chiplotle/hpgl/test/test_SI.py | 7 +-- src/chiplotle/hpgl/test/test_SR.py | 9 +--- .../hpgl/test/test_dci_sethandshakemode.py | 3 +- src/chiplotle/hpgl/test/test_pen.py | 3 +- src/chiplotle/hpgl/test/test_penplot.py | 9 ++-- ...st_convert_coordinates_to_absolute_path.py | 3 +- .../test/test_inflate_hpgl_string.py | 7 +-- .../mathtools/test/test_mathtools_factors.py | 6 ++- .../tools/mathtools/test/test_polar_to_xy.py | 12 +++-- 28 files changed, 167 insertions(+), 102 deletions(-) diff --git a/src/chiplotle/geometry/core/test/test_coordinate_add.py b/src/chiplotle/geometry/core/test/test_coordinate_add.py index c661bed..e4fb23f 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_add.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_add.py @@ -38,25 +38,29 @@ def test_coordinate__radd__02(): def test_coordinate__add__03(): """A Coordinate and a float scalar cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, "t = a + 4.2") + with raises(TypeError): + t = a + 4.2 def test_coordinate__radd__03(): """A float scalar and a Coordinate can be added.""" a = Coordinate(1, 2) - assert raises(TypeError, "t = 4.2 + a") + with raises(TypeError): + t = 4.2 + a def test_coordinate__add__04(): """A Coordinate and a tuple pair cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, "a + (3, 4)") + with raises(TypeError): + a + (3, 4) def test_coordinate__radd__04(): """A tuple pair and a Coordinate cannot be added.""" a = Coordinate(1, 2) - assert raises(TypeError, "(3, 4) + a") + with raises(TypeError): + (3, 4) + a def test_coordinate__add__05(): @@ -83,11 +87,13 @@ def test_coordinate__add__06(): """A 2D Coordinate and a triple cannot be added.""" a = Coordinate(1, 2) b = (3, 4, 5) - assert raises(TypeError, "a + b") + with raises(TypeError): + a + b def test_coordinate__radd__06(): """A triple and a 2D Coordinate cannot be added.""" a = Coordinate(1, 2) b = (3, 4, 5) - assert raises(TypeError, "b + a") + with raises(TypeError): + b + a diff --git a/src/chiplotle/geometry/core/test/test_coordinate_init.py b/src/chiplotle/geometry/core/test/test_coordinate_init.py index 593b48f..e4d3953 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_init.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_init.py @@ -21,14 +21,16 @@ def test_coordinate__init__01(): def test_coordinate__init__02(): """Coordinate cannot be initialized with a duple.""" - assert raises(TypeError, "Coordinate((1, 2))") + with raises(TypeError): + Coordinate((1, 2)) def test_coordinate__init__03(): """Coordinate cannot be initialized with a Coordinate.""" ##In this case, the constructor returns the existing coordinate.''' a = Coordinate(1, 2) - assert raises(TypeError, "t = Coordinate(a)") + with raises(TypeError): + t = Coordinate(a) def test_coordinate__init__04(): @@ -46,12 +48,14 @@ def test_coordinate__init__05(): def test_coordinate__init__06(): """Coordinate cannot be initialized with a triple.""" - assert raises(TypeError, "t = Coordinate((1, 2, 3))") + with raises(TypeError): + t = Coordinate((1, 2, 3)) def test_coordinate__init__07(): """Coordinate cannot be initialized with a Path.""" - assert raises(TypeError, "t = Coordinate(Path([(1, 2)]))") + with raises(TypeError): + t = Coordinate(Path([(1, 2)])) ## attribute assignment ## @@ -61,9 +65,12 @@ def test_coordinate_attribute_assignment_01(): """Coordinates are immutable. Attributes cannot be set (rebound).""" t = Coordinate(1, 2) - assert raises(AttributeError, "t.xy = 2") - assert raises(AttributeError, "t.foo = 3") - assert raises(TypeError, "t[0] = 2") + with raises(AttributeError): + t.xy = 2 + with raises(AttributeError): + t.foo = 3 + with raises(TypeError): + t[0] = 2 ## __eq__ ## @@ -125,27 +132,31 @@ def test_coordinate__div__01(): def test_coordinate__div__02(): """Denominator 0 raises ZeroDivisionError.""" a = Coordinate(1, 2) - assert raises(ZeroDivisionError, "t = a / 0") + with raises(ZeroDivisionError): + t = a / 0 def test_coordinate__div__03(): """A Coordinate cannot be divided by a Coordinate.""" a = Coordinate(1, 2) b = Coordinate(2, 4) - assert raises(TypeError, "t = a / b") + with raises(TypeError): + t = a / b def test_coordinate__div__04(): """A Coordinate cannot be divided by a duple.""" a = Coordinate(1, 2) b = (2, 4) - assert raises(TypeError, "a / b") + with raises(TypeError): + a / b def test_coordinate__div__05(): """Division raises an Error on wrong type.""" a = Coordinate(1, 2) - assert raises(TypeError, "a / (1, 2, 3)") + with raises(TypeError): + a / (1, 2, 3) def test_coordinate__floordiv__01(): @@ -160,19 +171,22 @@ def test_coordinate__floordiv__02(): """Floor division does not work with two Coordinates.""" a = Coordinate(1, 2) b = Coordinate(2, -4) - assert raises(TypeError, "t = a // b") + with raises(TypeError): + t = a // b def test_coordinate__floordiv__03(): """Denominator 0 raises ZeroDivisionError.""" a = Coordinate(1, 2) - assert raises(ZeroDivisionError, "t = a // 0") + with raises(ZeroDivisionError): + t = a // 0 def test_coordinate__floordiv__04(): """Floor Division raises an OperandError on wrong type.""" a = Coordinate(1, 2) - assert raises(TypeError, "a // (1, 2, 3)") + with raises(TypeError): + a // (1, 2, 3) ## __hash__ ## @@ -200,7 +214,8 @@ def test_coordinate__getitem__01(): t = Coordinate(1, 2) assert t[0] == 1 assert t[1] == 2 - assert raises(IndexError, "t[3]") + with raises(IndexError): + t[3] ## __len__ ## diff --git a/src/chiplotle/geometry/core/test/test_coordinate_mul.py b/src/chiplotle/geometry/core/test/test_coordinate_mul.py index d455c89..b65417a 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_mul.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_mul.py @@ -21,7 +21,8 @@ def test_coordinate__mul__01(): def test_coordinate__mul__02(): """A Coordinate cannot be multiplied with a pair.""" a = Coordinate(2, 3) - assert raises(TypeError, "a * (2, 3)") + with raises(TypeError): + a * (2, 3) def test_coordinate__mul__03(): diff --git a/src/chiplotle/geometry/core/test/test_coordinate_sub.py b/src/chiplotle/geometry/core/test/test_coordinate_sub.py index a95bf4b..0db1d7a 100644 --- a/src/chiplotle/geometry/core/test/test_coordinate_sub.py +++ b/src/chiplotle/geometry/core/test/test_coordinate_sub.py @@ -20,34 +20,40 @@ def test_coordinate__sub__01(): def test_coordinate__sub__02(): """Coordinate pair cannot substract a tuple.""" a = Coordinate(1, 2) - assert raises(TypeError, "a - (0.5, 0.5)") + with raises(TypeError): + a - (0.5, 0.5) def test_coordinate__rsub__02(): """A tuple cannot substract a Coordinate.""" a = Coordinate(1, 2) - assert raises(TypeError, "(0.5, 0.5) - a") + with raises(TypeError): + (0.5, 0.5) - a def test_coordinate__sub__03(): """An int cannot be substracted from a Coordinate.""" a = Coordinate(1, 2) - assert raises(TypeError, "a - 1") + with raises(TypeError): + a - 1 def test_coordinate__rsub__03(): """A Coordinate cannot be substracted from an int.""" a = Coordinate(1, 2) - assert raises(TypeError, "1 - a") + with raises(TypeError): + 1 - a def test_coordinate__sub__04(): """An float cannot be substracted from a Coordinate.""" a = Coordinate(1, 2) - assert raises(TypeError, "t = a - 1.5") + with raises(TypeError): + t = a - 1.5 def test_coordinate__rsub__04(): """A Coordinate cannot be substracted from a float.""" a = Coordinate(1, 2) - assert raises(TypeError, "t = 1.5 - a") + with raises(TypeError): + t = 1.5 - a diff --git a/src/chiplotle/geometry/core/test/test_coordinatearray_add.py b/src/chiplotle/geometry/core/test/test_coordinatearray_add.py index e2a4ff0..17fc844 100644 --- a/src/chiplotle/geometry/core/test/test_coordinatearray_add.py +++ b/src/chiplotle/geometry/core/test/test_coordinatearray_add.py @@ -23,31 +23,36 @@ def test_coordinatearray__add__02(): """Two CoordinateArrays of different length cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) b = CoordinateArray([(1, 1), (2, 2), (3, 3)]) - assert raises(ValueError, "t = a + b") + with raises(ValueError): + t = a + b def test_coordinatearray__add__03(): """A CoordinateArray and an int cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) - assert raises(TypeError, "t = a + 2") + with raises(TypeError): + t = a + 2 def test_coordinatearray__radd__04(): """An int and a CoordinateArray cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) - assert raises(TypeError, "t = 2 + a") + with raises(TypeError): + t = 2 + a def test_coordinatearray__add__05(): """A CoordinateArray and a float cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) - assert raises(TypeError, "t = a + 2.3") + with raises(TypeError): + t = a + 2.3 def test_coordinatearray__add__06(): """A float and a CoordinateArray cannot be added.""" a = CoordinateArray([(1, 2), (3, 4)]) - assert raises(TypeError, "t = 2.3 + a") + with raises(TypeError): + t = 2.3 + a def test_coordinatearray__add__07(): diff --git a/src/chiplotle/geometry/core/test/test_coordinatearray_append.py b/src/chiplotle/geometry/core/test/test_coordinatearray_append.py index 04cf1ee..30eb35e 100644 --- a/src/chiplotle/geometry/core/test/test_coordinatearray_append.py +++ b/src/chiplotle/geometry/core/test/test_coordinatearray_append.py @@ -11,7 +11,8 @@ def test_coordinatearray_append_01(): """CoordinateArray cannot be appended an (x, y) pair.""" t = CoordinateArray() - assert raises(TypeError, "t.append((0, 0))") + with raises(TypeError): + t.append((0, 0)) def test_coordinatearray_append_02(): diff --git a/src/chiplotle/geometry/core/test/test_coordinatearray_extend.py b/src/chiplotle/geometry/core/test/test_coordinatearray_extend.py index 2ea12c1..b244d32 100644 --- a/src/chiplotle/geometry/core/test/test_coordinatearray_extend.py +++ b/src/chiplotle/geometry/core/test/test_coordinatearray_extend.py @@ -11,7 +11,8 @@ def test_coordinatearray_extend_01(): """CoordinateArray cannot be extended with a list of (x, y) pairs.""" t = CoordinateArray() - assert raises(TypeError, "t.extend([(0, 0), (1, 2)])") + with raises(TypeError): + t.extend([(0, 0), (1, 2)]) def test_coordinatearray_extend_02(): @@ -26,4 +27,5 @@ def test_coordinatearray_extend_02(): def test_coordinatearray_extend_03(): """Mixtures are not allowed.""" t = CoordinateArray() - assert raises(TypeError, "t.extend([Coordinate(0, 0), (3, 2)])") + with raises(TypeError): + t.extend([Coordinate(0, 0), (3, 2)]) diff --git a/src/chiplotle/geometry/core/test/test_coordinatearray_init.py b/src/chiplotle/geometry/core/test/test_coordinatearray_init.py index 94bbe50..0a894c1 100644 --- a/src/chiplotle/geometry/core/test/test_coordinatearray_init.py +++ b/src/chiplotle/geometry/core/test/test_coordinatearray_init.py @@ -46,7 +46,8 @@ def test_coordinatearray__iadd__02(): t = CoordinateArray([(1, 2), (3, 4)]) tid = id(t) b = 1 - assert raises(TypeError, "t += b") + with raises(TypeError): + t += b ## div ## diff --git a/src/chiplotle/geometry/core/test/test_path_add.py b/src/chiplotle/geometry/core/test/test_path_add.py index cc0e231..3380aa0 100644 --- a/src/chiplotle/geometry/core/test/test_path_add.py +++ b/src/chiplotle/geometry/core/test/test_path_add.py @@ -11,17 +11,20 @@ def test_path_add_01(): """A Path and an int cannot be added.""" - assert raises(TypeError, "Path([(1, 2), (3, 4)]) + 3") + with raises(TypeError): + Path([(1, 2), (3, 4)]) + 3 def test_path_add_02(): """A Path and a float cannot be added.""" - assert raises(TypeError, "Path([(1, 2), (3, 4)]) + 3.2") + with raises(TypeError): + Path([(1, 2), (3, 4)]) + 3.2 def test_path_radd_02(): """A float and a Path cannot be added.""" - assert raises(TypeError, "3.2 + Path([(1, 2), (3, 4)])") + with raises(TypeError): + 3.2 + Path([(1, 2), (3, 4)]) def test_path_add_03(): @@ -45,26 +48,30 @@ def test_path_radd_03(): def test_path_add_04(): """A Path and a duple cannot be added.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "a + (1, 2)") + with raises(TypeError): + a + (1, 2) def test_path_radd_04(): """A duple and a Path cannot be added.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "(1, 2) + a") + with raises(TypeError): + (1, 2) + a def test_path_add_05(): """A 2D Path and a triple cannot be added.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "a + (1, 2, 3)") + with raises(TypeError): + a + (1, 2, 3) def test_path_add_06(): """A Path and a Path cannot be added.""" a = Path([(1, 2), (3, 4)]) b = Path([(2, 3)]) - assert raises(TypeError, "a + b") + with raises(TypeError): + a + b ## in place addition __iadd__ ## @@ -73,4 +80,5 @@ def test_path_add_06(): def test_path_iadd_01(): """A float and a Path cannot be added.""" t = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "t += 3.2") + with raises(TypeError): + t += 3.2 diff --git a/src/chiplotle/geometry/core/test/test_path_mul.py b/src/chiplotle/geometry/core/test/test_path_mul.py index aaacd21..53a27e2 100644 --- a/src/chiplotle/geometry/core/test/test_path_mul.py +++ b/src/chiplotle/geometry/core/test/test_path_mul.py @@ -29,16 +29,19 @@ def test_path_rmul_01(): def test_path_mul_02(): """A Path and a duple cannot be multiplied.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "a * (1, 2)") + with raises(TypeError): + a * (1, 2) def test_path_rmul_02(): """A duple and a Path cannot be multiplied.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "(1, 2) * a") + with raises(TypeError): + (1, 2) * a def test_path_mul_03(): """A Path cannot be multiplied with a triple.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "a * (1, 2, 3)") + with raises(TypeError): + a * (1, 2, 3) diff --git a/src/chiplotle/geometry/core/test/test_path_sub.py b/src/chiplotle/geometry/core/test/test_path_sub.py index 692c782..9dbdd90 100644 --- a/src/chiplotle/geometry/core/test/test_path_sub.py +++ b/src/chiplotle/geometry/core/test/test_path_sub.py @@ -12,19 +12,22 @@ def test_path_sub_01(): """A Path cannot substract an int.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "t = a - 2") + with raises(TypeError): + t = a - 2 def test_path_sub_02(): """A Path cannot substract a float.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "t = a - 2.5") + with raises(TypeError): + t = a - 2.5 def test_path_rsub_02(): """A float cannot substract a Path.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "t = 2.5 - a") + with raises(TypeError): + t = 2.5 - a def test_path_sub_03(): @@ -48,26 +51,30 @@ def test_path_rsub_03(): def test_path_sub_04(): """A Path cannot substract a duple.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "a - (1, 2)") + with raises(TypeError): + a - (1, 2) def test_path_rsub_04(): """A duple cannot substract a Path.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "(1, 2) - a") + with raises(TypeError): + (1, 2) - a def test_path_sub_05(): """A Path cannot substract a triple.""" a = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "a - (1, 2, 3)") + with raises(TypeError): + a - (1, 2, 3) def test_path_sub_06(): """Two paths cannot be substracted.""" a = Path([(1, 2), (3, 4)]) b = Path([(2, 3)]) - assert raises(TypeError, "a - b") + with raises(TypeError): + a - b ## in place addition __isub__ ## @@ -76,4 +83,5 @@ def test_path_sub_06(): def test_path_isub_01(): """A float cannot be substracted from a Path in place.""" t = Path([(1, 2), (3, 4)]) - assert raises(TypeError, "t -= 2.5") + with raises(TypeError): + t -= 2.5 diff --git a/src/chiplotle/hpgl/test/test_AA.py b/src/chiplotle/hpgl/test/test_AA.py index ee94dfe..f7c1b32 100644 --- a/src/chiplotle/hpgl/test/test_AA.py +++ b/src/chiplotle/hpgl/test/test_AA.py @@ -26,7 +26,8 @@ def test_AA_02(): def test_AA_03(): """AA must take at least two arguments: position and angle.""" - assert pytest.raises(TypeError, "AA((0, 0))") + with pytest.raises(TypeError): + AA((0, 0)) def test_AA_format_01(): @@ -45,7 +46,8 @@ def test_AA_format_02(): def test_AA_angle_01(): """Angle must be between -360 and 360.""" - assert pytest.raises(ValueError, "AA((0, 0), 1200)") + with pytest.raises(ValueError): + AA((0, 0), 1200) ## eq ## diff --git a/src/chiplotle/hpgl/test/test_AR.py b/src/chiplotle/hpgl/test/test_AR.py index dcfc9c4..5b8ea55 100644 --- a/src/chiplotle/hpgl/test/test_AR.py +++ b/src/chiplotle/hpgl/test/test_AR.py @@ -27,7 +27,8 @@ def test_AR_02(): def test_AR_03(): """AR must take at least two arguments: position and angle.""" - assert pytest.raises(TypeError, "AR((0, 0))") + with pytest.raises(TypeError): + AR((0, 0)) def test_AR_format_01(): diff --git a/src/chiplotle/hpgl/test/test_CI.py b/src/chiplotle/hpgl/test/test_CI.py index b0d203c..0ac8515 100644 --- a/src/chiplotle/hpgl/test/test_CI.py +++ b/src/chiplotle/hpgl/test/test_CI.py @@ -11,7 +11,8 @@ def test_CI_01(): """CI must have at least one argument (radius).""" - assert raises(TypeError, "CI()") + with raises(TypeError): + CI() def test_CI_02(): @@ -33,10 +34,3 @@ def test_CI_03(): def test_CI_scalable_01(): assert CI._scalable == ["radius"] - - -### RADIUS ### - -# def test_CI_radius_02( ): -# '''Radius must be scalar.''' -# assert raises(TypeError, 't = CI([1])') diff --git a/src/chiplotle/hpgl/test/test_DI.py b/src/chiplotle/hpgl/test/test_DI.py index 1cf97da..ddfb60a 100644 --- a/src/chiplotle/hpgl/test/test_DI.py +++ b/src/chiplotle/hpgl/test/test_DI.py @@ -22,7 +22,8 @@ def test_DI_02(): assert t.run == 23 assert t.rise == None - assert raises(Warning, "t.format") + with raises(Warning): + t.format def test_DI_03(): diff --git a/src/chiplotle/hpgl/test/test_DR.py b/src/chiplotle/hpgl/test/test_DR.py index 9907d83..2637b3c 100644 --- a/src/chiplotle/hpgl/test/test_DR.py +++ b/src/chiplotle/hpgl/test/test_DR.py @@ -22,7 +22,8 @@ def test_DR_02(): assert t.run == 23 assert t.rise == None - assert raises(Warning, "t.format") + with raises(Warning): + t.format def test_DR_03(): @@ -35,7 +36,7 @@ def test_DR_03(): assert t.format == b"DR0.00,25.30;" -def test_DR_03(): +def test_DR_04(): """rise can be 0.""" t = DR(10, 0) diff --git a/src/chiplotle/hpgl/test/test_EA.py b/src/chiplotle/hpgl/test/test_EA.py index 3cc6556..abac00b 100644 --- a/src/chiplotle/hpgl/test/test_EA.py +++ b/src/chiplotle/hpgl/test/test_EA.py @@ -12,12 +12,14 @@ def test_EA_01(): """EA cannot initialize with a scalar.""" - assert raises(TypeError, "t = EA(1)") + with raises(TypeError): + t = EA(1) def test_EA_02(): """EA cannot initialize with a list of length > 2.""" - assert raises(ValueError, "t = EA([1, 2, 3, 4])") + with raises(ValueError): + t = EA([1, 2, 3, 4]) def test_EA_03(): diff --git a/src/chiplotle/hpgl/test/test_ER.py b/src/chiplotle/hpgl/test/test_ER.py index f7af378..131200c 100644 --- a/src/chiplotle/hpgl/test/test_ER.py +++ b/src/chiplotle/hpgl/test/test_ER.py @@ -11,12 +11,14 @@ def test_ER_01(): """ER cannot initialize with a scalar.""" - assert raises(TypeError, "t = ER(1)") + with raises(TypeError): + t = ER(1) def test_ER_02(): """ER cannot initialize with a list of length > 2.""" - assert raises(ValueError, "t = ER([1, 2, 3, 4])") + with raises(ValueError): + t = ER([1, 2, 3, 4]) def test_ER_03(): diff --git a/src/chiplotle/hpgl/test/test_FT.py b/src/chiplotle/hpgl/test/test_FT.py index f52a258..816456d 100644 --- a/src/chiplotle/hpgl/test/test_FT.py +++ b/src/chiplotle/hpgl/test/test_FT.py @@ -44,4 +44,5 @@ def test_FT_05(): assert t.type is None assert t.space == 0.23 assert t.angle is None - assert raises(Warning, "t.format") + with raises(Warning): + t.format diff --git a/src/chiplotle/hpgl/test/test_SI.py b/src/chiplotle/hpgl/test/test_SI.py index 5f6a683..1ad6b1d 100644 --- a/src/chiplotle/hpgl/test/test_SI.py +++ b/src/chiplotle/hpgl/test/test_SI.py @@ -11,18 +11,15 @@ def test_SI_01(): """SI has default values.""" t = SI() - assert t.format == b"SI;" def test_SI_02(): t = SI(3, 2) - assert t.format == b"SI3.00,2.00;" def test_SI_03(): - t = SI(3) - - assert pytest.raises(Warning, "t.format") + with pytest.raises(Warning): + t.format diff --git a/src/chiplotle/hpgl/test/test_SR.py b/src/chiplotle/hpgl/test/test_SR.py index 5d6aece..d7d696c 100644 --- a/src/chiplotle/hpgl/test/test_SR.py +++ b/src/chiplotle/hpgl/test/test_SR.py @@ -10,21 +10,16 @@ def test_SR_01(): """SR can be initialized empty.""" - t = SR() - assert t.format == b"SR;" def test_SR_02(): - t = SR(3, 2) - assert t.format == b"SR3.00,2.00;" def test_SR_03(): - t = SR(3) - - assert pytest.raises(Warning, "t.format") + with pytest.raises(Warning): + t.format diff --git a/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py b/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py index 46fdcd9..2f1d47d 100644 --- a/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py +++ b/src/chiplotle/hpgl/test/test_dci_sethandshakemode.py @@ -24,4 +24,5 @@ def test_dci_sethandshakemode_02(): def test_dci_sethandshakemode_03(): """SetHandshakeMode cannot take a value other than None, 0, 1, 2 or 3.""" - assert raises(ValueError, "t = SetHandshakeMode(32)") + with raises(ValueError): + t = SetHandshakeMode(32) diff --git a/src/chiplotle/hpgl/test/test_pen.py b/src/chiplotle/hpgl/test/test_pen.py index cc61de0..1c8d76c 100644 --- a/src/chiplotle/hpgl/test/test_pen.py +++ b/src/chiplotle/hpgl/test/test_pen.py @@ -12,7 +12,8 @@ def test_pen_01(): """Pen must take one argument at least.""" - assert pytest.raises(TypeError, "t = Pen( )") + with pytest.raises(TypeError): + t = Pen() def test_pen_02(): diff --git a/src/chiplotle/hpgl/test/test_penplot.py b/src/chiplotle/hpgl/test/test_penplot.py index 2998531..8d37d4a 100644 --- a/src/chiplotle/hpgl/test/test_penplot.py +++ b/src/chiplotle/hpgl/test/test_penplot.py @@ -21,7 +21,8 @@ def test_penplot_01(): def test_penplot_03(): """xy cannot be set with an single number.""" p = _PenPlot([(1, 2)]) - assert raises(TypeError, "p.xy = 3") + with raises(TypeError): + p.xy = 3 def test_penplot_04(): @@ -38,8 +39,10 @@ def test_penplot_04(): def test_penplot_05(): """xy assignment must have lenth == 2*n""" p = _PenPlot([(0, 0)]) - assert raises(TypeError, "p.xy =(1,)") - assert raises(TypeError, "p.xy =(1,2,3)") + with raises(TypeError): + p.xy = (1,) + with raises(TypeError): + p.xy = (1, 2, 3) def test_penplot_06(): diff --git a/src/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py b/src/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py index 88be209..da4c452 100644 --- a/src/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py +++ b/src/chiplotle/tools/hpgltools/test/test_convert_coordinates_to_absolute_path.py @@ -43,4 +43,5 @@ def test_convert_coordinates_to_absolute_hpgl_path_03(): def test_convert_coordinates_to_absolute_hpgl_path_04(): """Argument must be a list of coordinate pairs..""" c = [1, 2, 3, 4] - assert raises(TypeError, "hpgltools.convert_coordinates_to_hpgl_absolute_path(c)") + with raises(TypeError): + hpgltools.convert_coordinates_to_hpgl_absolute_path(c) diff --git a/src/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py b/src/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py index 20dfbae..1fc768f 100644 --- a/src/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py +++ b/src/chiplotle/tools/hpgltools/test/test_inflate_hpgl_string.py @@ -18,7 +18,8 @@ def test_inflate_hpgl_string_01(): def test_inflate_hpgl_string_02(): """The first argument must be a string.""" - assert raises(TypeError, "t = hpgltools.inflate_hpgl_string([1,2,3])") + with raises(TypeError): + t = hpgltools.inflate_hpgl_string([1, 2, 3]) def test_inflate_hpgl_string_03(): @@ -105,6 +106,6 @@ def test_inflate_hpgl_string__filter_01(): def test_inflate_hpgl_string__filter_02(): """The `filter_commands' argument must be a list of two-letter HPGL strings.""" - e = "t = hpgltools.inflate_hpgl_string('IN;PU;PA10,10;CI100;', 'IN;PU;')" - assert raises(TypeError, e) + with raises(TypeError): + t = hpgltools.inflate_hpgl_string("IN;PU;PA10,10;CI100;", "IN;PU;") diff --git a/src/chiplotle/tools/mathtools/test/test_mathtools_factors.py b/src/chiplotle/tools/mathtools/test/test_mathtools_factors.py index 753541d..46ee36a 100644 --- a/src/chiplotle/tools/mathtools/test/test_mathtools_factors.py +++ b/src/chiplotle/tools/mathtools/test/test_mathtools_factors.py @@ -9,8 +9,10 @@ def test_mathtools_factors_01(): - assert pytest.raises(TypeError, "mathtools.factors(7.5)") - assert pytest.raises(ValueError, "mathtools.factors(0)") + with pytest.raises(TypeError): + mathtools.factors(7.5) + with pytest.raises(ValueError): + mathtools.factors(0) def test_mathtools_factors_02(): diff --git a/src/chiplotle/tools/mathtools/test/test_polar_to_xy.py b/src/chiplotle/tools/mathtools/test/test_polar_to_xy.py index 610500d..e577ff2 100644 --- a/src/chiplotle/tools/mathtools/test/test_polar_to_xy.py +++ b/src/chiplotle/tools/mathtools/test/test_polar_to_xy.py @@ -23,22 +23,26 @@ def test_polar_to_xy_01(): def test_polar_to_xy_02(): """The function cannot take two values r and A""" - assert raises(TypeError, "mathtools.polar_to_xy(1, 0)") + with raises(TypeError): + mathtools.polar_to_xy(1, 0) def test_polar_to_xy_03(): """Three arguments throw a TypeError.""" - assert raises(TypeError, "mathtools.polar_to_xy(1, 2, 3)") + with raises(TypeError): + mathtools.polar_to_xy(1, 2, 3) def test_polar_to_xy_04(): """One numeric argument throws a TypeError.""" - assert raises(TypeError, "mathtools.polar_to_xy(1)") + with raises(TypeError): + mathtools.polar_to_xy(1) def test_polar_to_xy_05(): """One tuple argument with > 2 arguments throws a TypeError.""" - assert raises(TypeError, "mathtools.polar_to_xy((1, 2, 3))") + with raises(TypeError): + mathtools.polar_to_xy((1, 2, 3)) ## values 90 degs. ## From 12b9251affd132f52001cf8d8972257d05d9a430 Mon Sep 17 00:00:00 2001 From: Will Price Date: Mon, 3 Sep 2018 22:32:48 +0100 Subject: [PATCH 74/82] Add codacy badge --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e5290b..687cac0 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ [![Code coverage Status](https://codecov.io/gh/willprice/chiplotle/branch/master/graph/badge.svg)](https://codecov.io/gh/willprice/chiplotle) [![Documentation Status](https://readthedocs.org/projects/chiplotle/badge/?version=latest)](https://chiplotle.readthedocs.io/en/latest/?badge=latest) [![PyPI Version](https://badge.fury.io/py/Chiplotle.svg)](https://badge.fury.io/py/Chiplotle) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/ecede0d540c64622abab25fd79e8b74c)](https://www.codacy.com/app/will.price94/chiplotle?utm_source=github.com&utm_medium=referral&utm_content=willprice/chiplotle&utm_campaign=Badge_Grade) **WARNING: This is a python 3 port WIP**, you should not use this fork until this warning is removed. @@ -20,7 +21,7 @@ Chiplotle has been tested with a variety of HPGL devices from various companies, including Hewlett-Packard, Roland Digital Group, Houston Instrument, etc. It includes plotter-specific configuration files for many different plotter models, as well as a generic configuration that -should work with any HPGL-compliant device. +should work with any HPGL-compliant device. Chiplotle is written and maintained by Victor Adan and Douglas Repetto. From 48036c34fab1273a9f5fcea94e7c4d76c5baa2fc Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Wed, 31 Oct 2018 02:59:19 +0000 Subject: [PATCH 75/82] Update future from 0.16.0 to 0.17.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b55c866..ba96de7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,4 @@ pytest-cov==2.5.1 tox==3.2.1 numpy==1.15.1 pyserial==3.4 -future==0.16.0 +future==0.17.1 From 78ff9a7c43a238eb740dfd29bfaaba91b74bb9b5 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Mon, 7 Jan 2019 12:32:47 +0000 Subject: [PATCH 76/82] Update pytest-cov from 2.5.1 to 2.6.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b55c866..a6b945d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ pytest==3.7.4 -pytest-cov==2.5.1 +pytest-cov==2.6.1 tox==3.2.1 numpy==1.15.1 pyserial==3.4 From 766eee6bd081cc996221c032723175e0bac53cf0 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Sat, 12 Jan 2019 12:22:06 +0000 Subject: [PATCH 77/82] Update tox from 3.2.1 to 3.7.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b55c866..6793ccb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ pytest==3.7.4 pytest-cov==2.5.1 -tox==3.2.1 +tox==3.7.0 numpy==1.15.1 pyserial==3.4 future==0.16.0 From b161dc3deeb1ad97389161be07d8e0715c2e95a9 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Sun, 13 Jan 2019 13:36:47 +0000 Subject: [PATCH 78/82] Update pytest from 3.7.4 to 4.1.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b55c866..a6a87f2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -pytest==3.7.4 +pytest==4.1.1 pytest-cov==2.5.1 tox==3.2.1 numpy==1.15.1 From 855ac5c321a48a924d01ecde0f93347db397b61a Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Mon, 14 Jan 2019 07:51:46 +0000 Subject: [PATCH 79/82] Update numpy from 1.15.1 to 1.16.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b55c866..2bde365 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ pytest==3.7.4 pytest-cov==2.5.1 tox==3.2.1 -numpy==1.15.1 +numpy==1.16.0 pyserial==3.4 future==0.16.0 From 9be9b0ae7b656a7ddb234bc89aa042e61e3b35fe Mon Sep 17 00:00:00 2001 From: Will Price Date: Sat, 19 Jan 2019 23:10:55 +0000 Subject: [PATCH 80/82] Remove WIP note --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 687cac0..e4d7ea2 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,6 @@ [![PyPI Version](https://badge.fury.io/py/Chiplotle.svg)](https://badge.fury.io/py/Chiplotle) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/ecede0d540c64622abab25fd79e8b74c)](https://www.codacy.com/app/will.price94/chiplotle?utm_source=github.com&utm_medium=referral&utm_content=willprice/chiplotle&utm_campaign=Badge_Grade) -**WARNING: This is a python 3 port WIP**, you should not use this fork until -this warning is removed. - - Chiplotle is a Python library that implements and extends the HPGL (Hewlett-Packard Graphics Language) plotter control language. It supports all the standard HPGL commands as well as our own more complex From 6cd1c8d37e56391a2aa4797eba8f4f51abd74b09 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Wed, 27 Feb 2019 00:36:30 +0000 Subject: [PATCH 81/82] Update pytest from 4.1.1 to 4.3.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b68bcd3..a3f91a5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ pytest-cov==2.6.1 -pytest==4.1.1 +pytest==4.3.0 numpy==1.16.0 tox==3.7.0 pyserial==3.4 From ba7c3a2cefcf0d3ed4b6b4a5ee71ba0af7642f78 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Wed, 27 Feb 2019 00:36:35 +0000 Subject: [PATCH 82/82] Update numpy from 1.16.0 to 1.16.2 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b68bcd3..3f23397 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ pytest-cov==2.6.1 pytest==4.1.1 -numpy==1.16.0 +numpy==1.16.2 tox==3.7.0 pyserial==3.4 future==0.17.1 \ No newline at end of file

R~EG&}(JnFCP6y6GIni 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%0Ap44X|h{^mc0lrhk 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