From 505875d72bd938956e1a0a9768ee2fd00b869f01 Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Thu, 3 Mar 2016 12:09:13 +1100 Subject: [PATCH 01/13] Implement changes suggested by @sdh4 See this comment on Github issue #54: https://github.com/CellProfiler/python-javabridge/issues/54#issuecomment-120068538 --- _javabridge.pyx | 58 +++++++++++++++++++++++++++----------------- javabridge/jutil.py | 42 +++++++++++++++++++------------- javabridge/locate.py | 6 ++--- setup.py | 9 ++++--- 4 files changed, 69 insertions(+), 46 deletions(-) diff --git a/_javabridge.pyx b/_javabridge.pyx index 90c67a7..62ca675 100644 --- a/_javabridge.pyx +++ b/_javabridge.pyx @@ -17,12 +17,16 @@ cimport cython cimport _javabridge_osspecific cimport cpython +if sys.version_info >= (3, 0, 0): + # unchir -> chr in Python 3 + unichr = chr + cdef extern from "Python.h": ctypedef int Py_intptr_t ctypedef unsigned long Py_ssize_t unicode PyUnicode_DecodeUTF16(char *s, Py_ssize_t size, char *errors, int *byteorder) - bint PyCObject_Check(object o) - void *PyCObject_AsVoidPtr(object o) + bint PyCapsule_CheckExact(object o) + void *PyCapsule_GetPointer(object o,char *name) cdef extern from "stdlib.h": ctypedef unsigned long size_t @@ -601,8 +605,10 @@ cdef class JB_VM: if args.options == NULL: raise MemoryError("Failed to allocate JavaVMInitArgs") options = [str(option) for option in options] + optionutf8=[] # list for temporarily storing utf-8 copies of strings for i, option in enumerate(options): - args.options[i].optionString = option + optionutf8.append(option.encode('utf-8')) + args.options[i].optionString = optionutf8[-1] result = CreateJavaVM(&self.vm, &env, &args) free(args.options) if result != 0: @@ -713,10 +719,10 @@ cdef class JB_Env: address - address as an integer representation of a string ''' - if not PyCObject_Check(capsule): + if not PyCapsule_CheckExact(capsule): raise ValueError( "set_env called with something other than a wrapped environment") - self.env = PyCObject_AsVoidPtr(capsule) + self.env = PyCapsule_GetPointer(capsule, NULL) if not self.env: raise ValueError( "set_env called with non-environment capsule") @@ -739,7 +745,7 @@ cdef class JB_Env: version = self.env[0].GetVersion(self.env) return (int(version / 65536), version % 65536) - def find_class(self, char *name): + def find_class(self, name): '''Find a Java class by name :param name: the class name with "/" as the path separator, e.g. "java/lang/String" @@ -748,7 +754,8 @@ cdef class JB_Env: cdef: jclass c JB_Class result - c = self.env[0].FindClass(self.env, name) + utf8name = name.encode('utf-8') + c = self.env[0].FindClass(self.env, utf8name) if c == NULL: print "Failed to get class "+name return @@ -800,7 +807,7 @@ cdef class JB_Env: '''Clear the current exception''' self.env[0].ExceptionClear(self.env) - def get_method_id(self, JB_Class c, char *name, char *sig): + def get_method_id(self, JB_Class c, name, sig): '''Find the method ID for a method on a class :param c: a class retrieved by find_class or get_object_class @@ -814,9 +821,11 @@ cdef class JB_Env: cdef: jmethodID id __JB_MethodID result + utf8name = name.encode('utf-8') + utf8sig = sig.encode('utf-8') if c is None: raise ValueError("Class = None on call to get_method_id") - id = self.env[0].GetMethodID(self.env, c.c, name, sig) + id = self.env[0].GetMethodID(self.env, c.c, utf8name, utf8sig) if id == NULL: return result = __JB_MethodID() @@ -825,7 +834,7 @@ cdef class JB_Env: result.is_static = False return result - def get_static_method_id(self, JB_Class c, char *name, char *sig): + def get_static_method_id(self, JB_Class c, name, sig): '''Find the method ID for a static method on a class :param c: a class retrieved by find_class or get_object_class @@ -839,7 +848,9 @@ cdef class JB_Env: cdef: jmethodID id __JB_MethodID result - id = self.env[0].GetStaticMethodID(self.env, c.c, name, sig) + utf8name = name.encode('utf-8') + utf8sig = sig.encode('utf-8') + id = self.env[0].GetStaticMethodID(self.env, c.c, utf8name, utf8sig) if id == NULL: return result = __JB_MethodID() @@ -896,8 +907,9 @@ cdef class JB_Env: if m is None: raise ValueError("Method ID is None - check your method ID call") if m.is_static: - raise ValueError("call_method called with a static method. Use call_static_method instead") - sig = m.sig + raise ValueError("call_method called with a static method. Use" + " call_static_method instead") + sig = m.sig # m.sig should be unicode already, no need to decode if sig[0] != '(': raise ValueError("Bad function signature: %s"%m.sig) arg_end = sig.find(')') @@ -1285,7 +1297,7 @@ cdef class JB_Env: jdouble jvalue = float(value) self.env[0].SetDoubleField(self.env, o.o, field.id, jvalue) - def get_static_field_id(self, JB_Class c, char *name, char *sig): + def get_static_field_id(self, JB_Class c, name, sig): '''Look up a static field ID on a class :param c: the object's class (e.g. as retrieved from :py:meth:`.find_class`) @@ -1298,7 +1310,9 @@ cdef class JB_Env: jfieldID id __JB_FieldID jbid - id = self.env[0].GetStaticFieldID(self.env, c.c, name, sig) + utf8name = name.encode('utf-8') + utf8sig = sig.encode('utf-8') + id = self.env[0].GetStaticFieldID(self.env, c.c, utf8name, utf8sig) if id == NULL: return None jbid = __JB_FieldID() @@ -1588,16 +1602,16 @@ cdef class JB_Env: raise e return jbo - def new_string_utf(self, char *s): + def new_string_utf(self, s): '''Turn a Python string into a Java string object - :param s: a UTF-8 encoded Python string + :param s: a Python string or unicode object :return: a Java string object :rtype: JB_Object ''' cdef: jobject o - o = self.env[0].NewStringUTF(self.env, s) + o = self.env[0].NewStringUTF(self.env, s.encode('utf-8')) if o == NULL: raise MemoryError("Failed to allocate string") jbo, e = make_jb_object(self, o) @@ -1628,7 +1642,7 @@ cdef class JB_Env: '''Turn a Java string object into a Python string :param s: a Java object - :return: a UTF-8 encoded string representation of the object + :return: a string (Python 3) or unicode (Python 2) representation of s :rtype: str ''' cdef: @@ -1636,7 +1650,7 @@ cdef class JB_Env: if s.o == 0: return None chars = self.env[0].GetStringUTFChars(self.env, s.o, NULL) - result = str(chars) + result = chars.decode('utf-8') self.env[0].ReleaseStringUTFChars(self.env, s.o, chars) return result @@ -1926,9 +1940,9 @@ cdef class JB_Env: cdef: jobject jobj JB_Object jbo - if not PyCObject_Check(pCapsule): + if not PyCapsule_CheckExact(pCapsule): raise ValueError("Argument must be a jobject in a capsule") - jobj = PyCObject_AsVoidPtr(pCapsule) + jobj = PyCapsule_GetPointer(pCapsule) if not jobj: raise ValueError("Capsule did not contain a jobject") jbo = JB_Object() diff --git a/javabridge/jutil.py b/javabridge/jutil.py index f30e1b7..82695f1 100644 --- a/javabridge/jutil.py +++ b/javabridge/jutil.py @@ -9,6 +9,8 @@ All rights reserved. ''' +from __future__ import print_function + import codecs import ctypes @@ -31,6 +33,12 @@ logger = logging.getLogger(__name__) +if sys.version_info >= (3, 0, 0): + # basestring -> str and unicode -> str in Python 3 + basestring = str + unicode = str + + class JavaError(ValueError): '''An error caused by using the Javabridge incorrectly''' def __init__(self, message=None): @@ -82,9 +90,11 @@ def _find_jvm_windows(): if os.path.isfile(os.path.join(jvm_dir, "jvm.dll")): new_path = ';'.join((os.environ['PATH'], jvm_dir, jre_bin)) if isinstance(os.environ['PATH'], str) and \ - isinstance(new_path, unicode): + isinstance(new_path, unicode) and \ + sys.version_info < (3, 0, 0): # Don't inadvertantly set an environment variable # to unicode: causes subprocess.check_call to fail + # in Python 2 new_path = new_path.encode("utf-8") os.environ['PATH'] = new_path found_jvm = True @@ -140,7 +150,7 @@ def _find_jvm(): # Has side-effect of preloading dylibs _find_jvm_mac() -import _javabridge +import javabridge._javabridge as _javabridge __dead_event = threading.Event() __kill = [False] __main_thread_closures = [] @@ -375,7 +385,7 @@ def run_script(script, bindings_in = {}, bindings_out = {}, "(Ljava/lang/String;" "Lorg/mozilla/javascript/Scriptable;)" "Ljava/lang/Object;", k, scope)) - except JavaException, e: + except JavaException as e: if is_instance_of(e.throwable, "org/mozilla/javascript/WrappedException"): raise JavaException(call(e.throwable, "unwrap", "()Ljava/lang/Object;")) else: @@ -649,7 +659,7 @@ def run_in_main_thread(closure, synchronous): def synchronous_closure(): try: result[0] = closure() - except Exception, e: + except Exception as e: logger.exception("Caught exception when executing closure") exception[0] = e done_event.set() @@ -672,7 +682,7 @@ def print_all_stack_traces(): for stak in stal: stakes = get_env().get_object_array_elements(stak) for stake in stakes: - print to_string(stake) + print(to_string(stake)) CLOSE_ALL_WINDOWS = """ new java.lang.Runnable() { @@ -1156,12 +1166,10 @@ def get_nice_arg(arg, sig): return make_instance('java/lang/Double', '(D)V', arg) if (sig in ('Ljava/lang/String;','Ljava/lang/Object;') and not isinstance(arg, _javabridge.JB_Object)): - if isinstance(arg, unicode): - arg, _ = codecs.utf_8_encode(arg) - elif arg is None: + if arg is None: return None else: - arg = str(arg) + arg = unicode(arg) return env.new_string_utf(arg) if sig == 'Ljava/lang/Integer;' and type(arg) in [int, long, bool]: return make_instance('java/lang/Integer', '(I)V', int(arg)) @@ -1210,7 +1218,7 @@ def get_nice_result(result, sig): if (sig == 'Ljava/lang/String;' or (sig == 'Ljava/lang/Object;' and is_instance_of(result, "java/lang/String"))): - return codecs.utf_8_decode(env.get_string_utf(result), 'replace')[0] + return env.get_string_utf(result) if sig == 'Ljava/lang/Integer;': return call(result, 'intValue', '()I') if sig == 'Ljava/lang/Long': @@ -1313,7 +1321,7 @@ def get_collection_wrapper(collection, fn_wrapper=None): for d in get_collection_wrapper(list_of_hashmaps, get_map_wrapper): # a map wrapper on the hashmap is returned - print d["Foo"] + print(d["Foo"]) ''' class Collection(object): @@ -1423,11 +1431,11 @@ def make_list(elements=[]): Examples:: >>> mylist = make_list(["Hello", "World", 2]) - >>> print "\\n".join([to_string(o) for o in mylist]) + >>> print("\\n".join([to_string(o) for o in mylist])) Hello World 2 - >>> print "%s, %s." % (mylist[0], mylist[1].lower()) + >>> print("%s, %s." % (mylist[0], mylist[1].lower())) Hello, world. >>> get_class_wrapper(mylist.o) java.util.ArrayList @@ -1496,7 +1504,7 @@ def get_map_wrapper(o): > d = get_map_wrapper(jmap) > d["Foo"] = "Bar" - > print d["Foo"] + > print(d["Foo"]) Bar ''' assert is_instance_of(o, 'java/util/Map') @@ -1540,7 +1548,7 @@ def make_map(**kwargs): Example:: > d = make_map(foo="Bar") - > print d["foo"] + > print(d["foo"]) Bar > get_class_wrapper(d.o) java.util.HashMap @@ -1586,7 +1594,7 @@ def get_enumeration_wrapper(enumeration): >>> enum = javabridge.get_enumeration_wrapper(keys) >>> while enum.hasMoreElements(): ... if javabridge.to_string(enum.nextElement()) == 'java.vm.name': - ... print "Has java.vm.name" + ... print("Has java.vm.name") ... Has java.vm.name @@ -2008,7 +2016,7 @@ def make_run_dictionary(jobject): while jentry_set_iterator.hasNext(): entry = jentry_set_iterator.next() key, value = [o if not isinstance(o, javabridge.JWrapper) else o.o - for o in entry.getKey(), entry.getValue()] + for o in (entry.getKey(), entry.getValue())] result[to_string(key)] = value return result diff --git a/javabridge/locate.py b/javabridge/locate.py index 93be62d..46adefd 100644 --- a/javabridge/locate.py +++ b/javabridge/locate.py @@ -26,7 +26,7 @@ def find_javahome(): """Find JAVA_HOME if it doesn't exist""" - if os.environ.has_key('JAVA_HOME'): + if 'JAVA_HOME' in os.environ: return os.environ['JAVA_HOME'] elif is_mac: # Use the "java_home" executable to find the location @@ -66,7 +66,7 @@ def get_out(cmd): o, ignore = p.communicate() if p.poll() != 0: raise Exception("Error finding javahome on linux: %s" % cmd) - o = o.strip() + o = o.strip().decode('utf-8') return o java_bin = get_out(["bash", "-c", "type -p java"]) java_dir = get_out(["readlink", "-f", java_bin]) @@ -97,7 +97,7 @@ def get_out(cmd): def find_jdk(): """Find the JDK under Windows""" - if os.environ.has_key('JDK_HOME'): + if 'JDK_HOME' in os.environ: return os.environ['JDK_HOME'] if is_mac: return find_javahome() diff --git a/setup.py b/setup.py index ac83c3b..9bd0f18 100644 --- a/setup.py +++ b/setup.py @@ -8,6 +8,7 @@ All rights reserved. """ +from __future__ import print_function import errno import glob @@ -152,7 +153,7 @@ def ext_modules(): def needs_compilation(target, *sources): try: target_date = os.path.getmtime(target) - except OSError, e: + except OSError as e: if e.errno != errno.ENOENT: raise return True @@ -259,7 +260,7 @@ def build_java2cpython(self): self.compiler.spawn([ 'mt.exe', '-nologo', '-manifest', manifest_file, out_arg]) - except DistutilsExecError, msg: + except DistutilsExecError as msg: raise LinkError(msg) def get_java2cpython_libdest(self): @@ -314,7 +315,7 @@ def get_version(): import subprocess try: git_version = subprocess.Popen(['git', 'describe'], - stdout=subprocess.PIPE).communicate()[0].strip() + stdout=subprocess.PIPE).communicate()[0].strip().decode('utf-8') except: pass @@ -334,7 +335,7 @@ def get_version(): if git_version and git_version != cached_version: with open(version_file, 'w') as f: - print >>f, '__version__ = "%s"' % git_version + print('__version__ = "%s"' % git_version, file=f) return git_version or cached_version From a4d1b32adf05c668c0682ec1a19918dff71ed799 Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Thu, 3 Mar 2016 12:10:42 +1100 Subject: [PATCH 02/13] Add Python 3.5 to build matrix --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 4ccae98..3248653 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: java env: - PYTHON_VERSION="2.7" + - PYTHON_VERSION="3.5" before_install: # Get the tag if it wasn't provided. Travis doesn't provide this if it isn't a tagged build. - if [ -z $TRAVIS_TAG ]; then TRAVIS_TAG=`git tag --contains` ; fi From 314f1a8ce9460ec9fe4ca2f2b849eb112600d94e Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Thu, 3 Mar 2016 12:10:53 +1100 Subject: [PATCH 03/13] Remove unused imports --- javabridge/jutil.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/javabridge/jutil.py b/javabridge/jutil.py index 82695f1..4426b98 100644 --- a/javabridge/jutil.py +++ b/javabridge/jutil.py @@ -13,7 +13,6 @@ import codecs -import ctypes import gc import inspect import logging @@ -28,7 +27,6 @@ from .locate import find_javahome import javabridge import weakref -import uuid logger = logging.getLogger(__name__) From 5580c8ac4d944f1ca346c3742a113ef5f1077fab Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Thu, 3 Mar 2016 13:45:46 +1100 Subject: [PATCH 04/13] Fix call args to PyCapsule_GetPointer --- _javabridge.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_javabridge.pyx b/_javabridge.pyx index 62ca675..3da9bcd 100644 --- a/_javabridge.pyx +++ b/_javabridge.pyx @@ -1942,7 +1942,7 @@ cdef class JB_Env: JB_Object jbo if not PyCapsule_CheckExact(pCapsule): raise ValueError("Argument must be a jobject in a capsule") - jobj = PyCapsule_GetPointer(pCapsule) + jobj = PyCapsule_GetPointer(pCapsule, NULL) if not jobj: raise ValueError("Capsule did not contain a jobject") jbo = JB_Object() From 642729d3484f57f9e8015a87844e1fffcca2c066 Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Tue, 8 Mar 2016 20:49:24 +1100 Subject: [PATCH 05/13] Fix tab indentation in .py --- javabridge/jutil.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javabridge/jutil.py b/javabridge/jutil.py index 4426b98..ce442c5 100644 --- a/javabridge/jutil.py +++ b/javabridge/jutil.py @@ -180,8 +180,8 @@ def __del__(self): class vm(): def __init__(self, *args, **kwds): - self.args = args - self.kwds = kwds + self.args = args + self.kwds = kwds def __enter__(self): start_vm(*self.args, **self.kwds) From 790950585050d9f4b4d22017576ee24fa20186db Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Wed, 9 Mar 2016 15:45:29 +1100 Subject: [PATCH 06/13] Remove unused import --- javabridge/jutil.py | 1 - 1 file changed, 1 deletion(-) diff --git a/javabridge/jutil.py b/javabridge/jutil.py index ce442c5..053feee 100644 --- a/javabridge/jutil.py +++ b/javabridge/jutil.py @@ -12,7 +12,6 @@ from __future__ import print_function -import codecs import gc import inspect import logging From aa818d2708915a98b1b50526397f58bf17b592ec Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Wed, 9 Mar 2016 15:46:49 +1100 Subject: [PATCH 07/13] Alias int to long in Python 3+ --- javabridge/jutil.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/javabridge/jutil.py b/javabridge/jutil.py index 053feee..99863ef 100644 --- a/javabridge/jutil.py +++ b/javabridge/jutil.py @@ -27,6 +27,11 @@ import javabridge import weakref + +# long and int are the same type in Py3 +if sys.version_info[0] >= 3: + long = int + logger = logging.getLogger(__name__) From c20f6dc17a45203f29dfebbfe6b9e308afc127c7 Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Wed, 9 Mar 2016 15:48:05 +1100 Subject: [PATCH 08/13] Use items in place of iteritems --- javabridge/jutil.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javabridge/jutil.py b/javabridge/jutil.py index 99863ef..3639983 100644 --- a/javabridge/jutil.py +++ b/javabridge/jutil.py @@ -368,7 +368,7 @@ def run_script(script, bindings_in = {}, bindings_out = {}, scope = make_instance("org/mozilla/javascript/ImporterTopLevel", "(Lorg/mozilla/javascript/Context;)V", context) - for k, v in bindings_in.iteritems(): + for k, v in bindings_in.items(): call(scope, "put", "(Ljava/lang/String;Lorg/mozilla/javascript/Scriptable;" "Ljava/lang/Object;)V", k, scope, v) @@ -1558,7 +1558,7 @@ def make_map(**kwargs): public java.lang.Object java.util.HashMap.put(java.lang.Object,java.lang.Object) ''' hashmap = get_map_wrapper(make_instance('java/util/HashMap', "()V")) - for k, v in kwargs.iteritems(): + for k, v in kwargs.items(): hashmap[k] = v return hashmap From e206728167b6e0d500e0585482f357d6b7a3793b Mon Sep 17 00:00:00 2001 From: Lee Kamentsky Date: Wed, 9 Mar 2016 08:58:08 -0500 Subject: [PATCH 09/13] Passes unit tests on 2.7 Use capsules to pass strings in cpython bridge --- java/org_cellprofiler_javabridge_CPython.c | 4 ++-- javabridge/tests/test_javabridge.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java/org_cellprofiler_javabridge_CPython.c b/java/org_cellprofiler_javabridge_CPython.c index 14cdb59..11fcf74 100644 --- a/java/org_cellprofiler_javabridge_CPython.c +++ b/java/org_cellprofiler_javabridge_CPython.c @@ -158,7 +158,7 @@ static int attach_env(JNIEnv *pEnv){ javabridge.jni_enter(env) */ - pPyEnv = PyCObject_FromVoidPtr((void *)pEnv, NULL); + pPyEnv = PyCapsule_New((void *)pEnv, NULL, NULL); if (PyErr_Occurred()) { throwWrappedError(pEnv, __LINE__); return -1; @@ -272,7 +272,7 @@ static PyObject *wrapJObject(JNIEnv *pEnv, jobject j) { Py_DECREF(pJavabridge); return NULL; } - pCapsule = PyCObject_FromVoidPtr((void *)j, NULL); + pCapsule = PyCapsule_New((void *)j, NULL, NULL); if (! pCapsule) { throwWrappedError(pEnv, __LINE__); Py_DECREF(pTheEnv); diff --git a/javabridge/tests/test_javabridge.py b/javabridge/tests/test_javabridge.py index 4a443f8..898bb1c 100644 --- a/javabridge/tests/test_javabridge.py +++ b/javabridge/tests/test_javabridge.py @@ -41,7 +41,7 @@ def test_01_03_00_new_string_utf(self): def test_01_03_01_new_string_unicode(self): s = u"Hola ni\u00F1os" jstring = self.env.new_string(s) - self.assertEqual(self.env.get_string_utf(jstring).decode("utf-8"), s) + self.assertEqual(self.env.get_string_utf(jstring), s) def test_01_03_02_new_string_string(self): s = "Hello, world" From aceaf2873c3e425acfe4850668a36d47e92a2622 Mon Sep 17 00:00:00 2001 From: Lee Kamentsky Date: Wed, 9 Mar 2016 09:46:42 -0500 Subject: [PATCH 10/13] Fixed some 3.x bugs in locate --- javabridge/locate.py | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/javabridge/locate.py b/javabridge/locate.py index 46adefd..851dac5 100644 --- a/javabridge/locate.py +++ b/javabridge/locate.py @@ -19,7 +19,9 @@ is_mac = sys.platform == 'darwin' is_win = sys.platform.startswith("win") is_win64 = (is_win and (os.environ["PROCESSOR_ARCHITECTURE"] == "AMD64")) -is_msvc = (is_win and sys.version_info[0] >= 2 and sys.version_info[1] >= 6) +is_msvc = (is_win and + ((sys.version_info.major == 2 and sys.version_info.minor >= 6) or + (sys.version_info.major == 3))) is_mingw = (is_win and not is_msvc) logger = logging.getLogger(__name__) @@ -74,20 +76,23 @@ def get_out(cmd): jdk_dir = os.path.abspath(jdk_dir) return jdk_dir elif is_win: - import _winreg + if sys.version_info.major == 2: + import _winreg as winreg + else: + import winreg java_key_path = 'SOFTWARE\\JavaSoft\\Java Runtime Environment' looking_for = java_key_path try: - kjava = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, java_key_path) + kjava = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, java_key_path) looking_for = java_key_path + "\\CurrentVersion" - kjava_values = dict([_winreg.EnumValue(kjava, i)[:2] - for i in range(_winreg.QueryInfoKey(kjava)[1])]) + kjava_values = dict([winreg.EnumValue(kjava, i)[:2] + for i in range(winreg.QueryInfoKey(kjava)[1])]) current_version = kjava_values['CurrentVersion'] looking_for = java_key_path + '\\' + current_version - kjava_current = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, + kjava_current = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, looking_for) - kjava_current_values = dict([_winreg.EnumValue(kjava_current, i)[:2] - for i in range(_winreg.QueryInfoKey(kjava_current)[1])]) + kjava_current_values = dict([winreg.EnumValue(kjava_current, i)[:2] + for i in range(winreg.QueryInfoKey(kjava_current)[1])]) return kjava_current_values['JavaHome'] except: logger.error("Failed to find registry entry: %s\n" %looking_for, @@ -102,20 +107,23 @@ def find_jdk(): if is_mac: return find_javahome() if is_win: - import _winreg - import exceptions + if sys.version_info.major == 2: + import _winreg as winreg + from exceptions import WindowsError + else: + import winreg try: jdk_key_path = 'SOFTWARE\\JavaSoft\\Java Development Kit' - kjdk = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, jdk_key_path) - kjdk_values = dict([_winreg.EnumValue(kjdk, i)[:2] - for i in range(_winreg.QueryInfoKey(kjdk)[1])]) + kjdk = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, jdk_key_path) + kjdk_values = dict([winreg.EnumValue(kjdk, i)[:2] + for i in range(winreg.QueryInfoKey(kjdk)[1])]) current_version = kjdk_values['CurrentVersion'] - kjdk_current = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, + kjdk_current = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, jdk_key_path + '\\' + current_version) - kjdk_current_values = dict([_winreg.EnumValue(kjdk_current, i)[:2] - for i in range(_winreg.QueryInfoKey(kjdk_current)[1])]) + kjdk_current_values = dict([winreg.EnumValue(kjdk_current, i)[:2] + for i in range(winreg.QueryInfoKey(kjdk_current)[1])]) return kjdk_current_values['JavaHome'] - except exceptions.WindowsError as e: + except WindowsError as e: if e.errno == 2: raise RuntimeError( "Failed to find the Java Development Kit. Please download and install the Oracle JDK 1.6 or later") From 521dd9070c6f36656919c3c78538fb0f5bd7378d Mon Sep 17 00:00:00 2001 From: Lee Kamentsky Date: Wed, 9 Mar 2016 13:28:43 -0500 Subject: [PATCH 11/13] Passes tests on 3.4 / centos 6 --- _javabridge.pyx | 7 +++++-- demo/demo_nogui.py | 5 +++-- javabridge/_javabridge.cpython-34m.so | Bin 0 -> 487440 bytes javabridge/tests/test_cpython.py | 6 +++--- javabridge/tests/test_javabridge.py | 7 ++++--- setup.py | 10 ++++++---- 6 files changed, 21 insertions(+), 14 deletions(-) create mode 100755 javabridge/_javabridge.cpython-34m.so diff --git a/_javabridge.pyx b/_javabridge.pyx index 3da9bcd..c9c9ae6 100644 --- a/_javabridge.pyx +++ b/_javabridge.pyx @@ -1072,7 +1072,7 @@ cdef class JB_Env: free(values) return result - def get_field_id(self, JB_Class c, char *name, char *sig): + def get_field_id(self, JB_Class c, name, sig): '''Get a field ID for a class :param c: class (from :py:meth:`.find_class` or similar) @@ -1083,7 +1083,10 @@ cdef class JB_Env: jfieldID id __JB_FieldID jbid - id = self.env[0].GetFieldID(self.env, c.c, name, sig) + utf8name = name.encode('utf-8') + utf8sig = sig.encode('utf-8') + + id = self.env[0].GetFieldID(self.env, c.c, utf8name, utf8sig) if id == NULL: return None jbid = __JB_FieldID() diff --git a/demo/demo_nogui.py b/demo/demo_nogui.py index 22eacf1..ee7240a 100755 --- a/demo/demo_nogui.py +++ b/demo/demo_nogui.py @@ -11,12 +11,13 @@ """ +from __future__ import print_function import os import javabridge javabridge.start_vm(run_headless=True) try: - print javabridge.run_script('java.lang.String.format("Hello, %s!", greetee);', - dict(greetee='world')) + print(javabridge.run_script('java.lang.String.format("Hello, %s!", greetee);', + dict(greetee='world'))) finally: javabridge.kill_vm() diff --git a/javabridge/_javabridge.cpython-34m.so b/javabridge/_javabridge.cpython-34m.so new file mode 100755 index 0000000000000000000000000000000000000000..9f7a240f3ac2f54cd72f6563da463917d367129e GIT binary patch literal 487440 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

RYf#tC_+E<;Rt$uI#S#?Uv7Ek2mH65zCA` zCbfY8;_ZuS0WZg05S7}RT!PplR&ZS@XskO_>_DwGiB(tz)#(72z6Ra7bGda;?M3VDj^)XAbbyEqfGyVtI#&j4C5TX5GC6sIbA z?H~`nWcpS7SY^?lMKX0&A}a(XV()}BPO}9njZspFo8WJz#yDuTpYD(TzB)} z{OB%ESZOWLx3ioAw^L``SQBjrEz0#$_e#)4!cF3|N5gB-Uk}L2(4K#Cb+@ZZ=VUVU z0e(X)neOnJv={r9m~SI#^sI;(oT=!xeCk{zPSNid;Ae3am&Ih;RQKdE$s8UeY4M$`W53DZ2ZY@eBZs$*D z09`8|^4p#jrgB&1DO=o&gCN*TZt0)3QGGtnRU@3&*yXOLkScpZo*fK6%8zW)=(u zVIi#DQ?!X|V69q-2|}B0tXhp)MHYDAM-UeDBNlp*$nu1)rgZ1gAV`fQV>^KJJC!2_ zD7*6t&8&Ckl*tKCbHr7IxuWj1fo27gVT5U(43Q~=B-lqh%vCg2xIR`4p_MuRrp<1ZxvyI9cG~$b}JOsr% z^(<-)xlJ@F+I0RZzkxP2vyI2Y7@w{eGV4HQ*Jc~*5aX(famyISd}8e6Y~$tIqO*;6 zZYKw6?}&AyvyH|xqr9yJOx-ctSeu7+gR_nFt%2FbLHjJ*Y~v#U@!rJV0P1Ps8Bty~ zCNGiM#&az35S-ELX}8O4=**W04Go&ZPhGR*&`~WJW@r?b7F#xZ ziwZvLY(p*VuS$fV8dM~v7VhZMQ16@RU^{AI|9qNb73oY5@1FP8~#<0L>3FX8g^xkSlB_^zA`zftYi|VOuvAIeLx?PO)Hecp8P5GL{Gn= z^1)fy_ua{li3@QiH)vt+nwzy{Ogz;|9Vg5v^+^;`2NrhKzuCe*C_x^(+rsvGQ!f8e z7WPQB))=U@CJ8IhZt%T)}nx z`}|^qP>d!eK@{RQhaLXzkKZ-;q3ihP-ES-a3qOlxy}hVAw~oK+gHo&pU?P_FCPI?> zv%L~7^wu;fq~l+3OyWKL9j)V^i4!;8Ch+GeN+tF_L9{5>@sANLI={!p(4t?-Iz_?4 zzfxm4GEY>D6hqf6>%};?;ytpaU~E1pa$vnp!G}D*hFrRbN zy9ehiP}$Zd>GY<+p8>?%b`7b5;ut0Cl9Gs-ek@D$Ju+yfuN5n}p%e_7=}oXX>hU-L zrBqERW!@B!ovli_cp94mW2w?Ar;L#ROInC!*%Zj;s%)02P^B<2Qp1PACK8}>=uelS z#1kvvuMamCROWENEC$qjE;59??3mfw5(oXXF`LJN zqEuoZ{&cp_j`AVD?YE*{av$V5(p2JN9I6f4K700-*5#pfMGv=48Y@kSZqr!hf$cN* zXw*a7U$kXIeaq@%1{Z1PD>dLgQ68CqZ|eic5j_Gwm%ukv;8;)-ou_KY$prl&U%CZS zj7*RtYIe&SAoig3R!2jh@q#kTbQ&`&b=n7O02qH({OE#2B`F3Kemhk7tV=kcRBwn< zV~F*t_V@ChA_HJUY;a9+ft=~3>?fkemj8rV&{ur!Rp^Q(qtPDh=`UH%RCg%zijAx) zPLK|?;?{_*8~G*kYpA6v^{{E>V`poBmBn7?e3WcN9+J3-Vb#nT@+BWo5}J)+q-C^=sl-aOP4_1B#z-v-_A}aOGyvtqUQky z8FSmczgd2bG;N2077>a`-Q;LR>@vZFkNcLTocyD80;$Bm3@c z(}+4%a4t{I+uX8mmw&euC`EzN;M6j&{CtvCc1AOO*=LE4Fj%Bq%Ux0qw4lL7hyUhG z?(D+-PGI(ePs#*4r4NTLE^FX_ ze;0iFn^^6M6L5?-Xj07oQT)6cQ8m$5E_NOxO}H8iqK!clTsL|X^oBVbv4tgrw*(2p z=*^e?hHXFD2u>UI)j17JJJ&=G)#kGp2Hca>Y<9q&B2lv{*QnA=+z;evRRL4+mO_T%AZbKNR92;)uxl-Y6m)ii5yGkv)lH zq@W~|$olxeuTBGY`jkZDCW;df4C zhMMz8&1yo86&Z)CMyWJs!l3?8N32FM8V$JQqP^-d2;^kAM&?=095YK~;V4JL)hZF3 z!^vs80w)Hr^m`G{SOb$dm6_8w->uzI_1zhRhvQf9a~F6dc?G|R;@ZR~8~{^BYJABh zafBQ!mXY_?+hyd<)Fi$++zH?s6#(=v7A0}0QE#lc^j4M?H3Rt6HbsHioH%Se6oUbK zCZ{b47`6!2u-ee3x+V*xRN}mC+tD+d1TZrZZ+^}KMm}e#-2WhOfmFiQI z?ASKlv{H?_R;u}=mHK)$vo6_X1GFjCCHf}ia=&0{ReCCM>|xP5!Ky}1+qbwJ3x?Ih ztXCPQrEW{q8p~9->-camGo~(ifN-V>oZMHTYNc_b(?H~Mw5$YI2`r_uXC3N@GeEHw zl+!jwfJzG=PE&hDJg;M#iZ(iIm9tI*170e3u=G#)Am<+q7a!iZ)F!+55XS}9XDFJd z$i+3d-_f8eV%0xLs`sWwQI92KoR+rLnl>C0#3ML2FI(F7cRBU z9TY?N3enA5m*}L;c{(_0V7tAakB$|iB#!O?1YoxCpU4_?dW_br+{B}cF(7oFDQw4Bp=>?Kr=s0_a2 zz;TeK#*u4++OpY&OX<>I9^_Es<~gieHeT4|MW5ta|^vBDa zp^J7rSX}BOyFrn)5n2BbGI&$^$Wn>NKi`Cul$#pGq+>n|5abAg)ao+5L8~iAtIJGo zDqoe3FjF-!-rro^)>kr<`XxRre#q?;a~QP%?`8n&Zzzk&V5(JiRY%W`?aGn~a<3fsy%9q43#tIB== zY-LV2%3p_Iy>o7mN))FqvyK6ZQl-O0e@@nhtP8oR$7DGwCF?CX=UlOl4rNjn z{ptE^@L*1915@?P@;2Va0OfCxCI%uw&Md$FS>($sCS*23&-y>d$6u9?gUCk$e5iU$ zwqjN%qhZ_8IQe80>&bk_6%9~liWJs<2cfGQ4KK=m5`Q1ud6-iq~m`t**`J5lWrf`1EWpU1r zTO~8+Yy05w8VNbSmEa!$B<1{Dqn0#dPYgN6zdv1N~KXn;~#y z4TXs`HdkSpx)s7^l(@7iVQho9{qt%;8)$&%G6 z9WEZOxEH+YK^qS6qJ`-p@qy?vpsE&PuMMmivwjbWQS~XQ`Yd0l!ZIDtUeM4o>prq{ zM|S1rJ3(ZHk4qeame*CdqcDpo-rFxKigqGB*CMsgj+r|ItnJgpy4B?Xsb#16<%8Su z(0c}q=GWtFu6e*Cjk5<0EL@2RT$^r26pgwOMe{{%s)!;PAa5||9>GJ^k&$NIl`<=m zmy=E$_iGx<4|9lD_;=6=W1%n{Z%z*2XnLH4zM9qSJ%_&o^z6hKne z?;`7~Lhqq})J9paUMlOA6?bYODGOGIroeehQV~1t|FSYZ%%|)TrR-c%_KH5I9At30eZ{5o=|CEC7y*a?24@k;9Cm7y<$-?}EDD$mL zXTAvBqxR3%q5=Wz?+iIqp*2V{^ea}{zRt^+&?`pE$RdpGd}?PZwZlkl6K<1<38PRG zv#*ri2p7;ScwQLpr1G@l*^hX}3dr1fB_iL(pxORX56Cy`LiYtRctwPl@93^L#fVk{ zI}%8uj0F1GjW8N@BZ1}%%<0X#$+*>Y)g7(At%p=q2Mfnn;AW95;&^J$s5lNL`G>4b zvFGlXK^zS^9f{-g7`#IWuZO^6o30qE;?Tf~Lt-Khn{Eb1jXH5?zJNHK6tqbnnLv}? zUs_qk7$bKv>cLH^9EVMHG*be3Bej$iMr%I3f~^^sCL-AwG!QwFjoYFqmEf+eb4p0O z$r!mvyd=MH9=Gkhl_<$62CQzP$W2g#4QGZaRs|+@!5UsYBZ)(~Eum}l9av>40 zWxLmW@n^D07?x~gwCm0OFGbN`MWKOhgc6fRXwyw2)F|m6J_L2C`2vlw?Qr@N!Oa0p z4Fe%60g`$6a?y2}raJrW7L`^brS%>fua?%=AMvWZkZI|Yn9yg_4SgDQ^l82TeE?do zji$5}Iv@NGCt&NBA#P)uB(|)RuT(~0m&Dx+G!cyoq{2GK`Zz&pIY>BU_q&^cLiwC~ z$q2L^b2HEmyGA9_M2Wo6n{pKtKuFPXj9)iHUG*x)F{>op3at3P)!zft!H{ zeTYKWz(SXpK)2}zx<(yz%@=?kpx!$k%VH?Tn}H^>g{;D5vQ%Q&E>Yf_$@?ql`4F$p zHj`LCke@~jXv#S4;;wW`9Q7unsNLDolUD81PI~qb zdUE^y311^N_kGx^%|1eo@!>ToydMbf3lL%lv-7-bVMIar`6_&W&ar5zW(Z^?r6ACm z7mMkUIOq*X!*=_`aK>17iQmdE976q2pjOD58Om*jasbmJ{sNeSrV?wNPZ@}w-U1^4 zq@8KXa?vm+Db^MYxP1nJv$epPZaU^(DrFTREXszf@Ve*;5vT{h zB;fWU*#tmaG#^QmtM^!(!%eI1?;}Vyw++;8M={hZ4Gfe9Nx+lX zN`nTL28js`HrS8B^@ zMZ!RlNCKvWibMm8L}G%(rW+(0bx1UyBEh0i#Y9EIK#@oS-mg|98dxL}6C^g>AknBp zqWKgF)M>>8MZ!RlNCKueibMm8L}G%(rW+(0bx1UyAStd+jk+_HyiVN7W}HY@z-`bq ztS1yyDu_5miC~~aNCJ#zB|-yBgv5jhn{J5Es3Su22@z&jsA7!bVW4;<0oJeL(ZJ%7 znBcML29HJ^9?ho`T>xf^6bS=GA_*`)6p02FiNpknO*cq1>X2wYMdAU;Fh#;Zkw^lD zaYdqmMItdlV$%&0jXETnPm!SiRt!=k3>1kZzAknBpqWKg_3y}0z zBn%XZBw$QbBpO&G5)&jg-5}AZL!$W_#jlAuGOwP);d1#D?*RB=pW-$-ih}0@-{~1R_CufI zvtsxgfPaPg6gTs5ZqTRr5*!0`$8-9^cnwZf3iRSr{N|}5 z0pF+ix}XI5U>z_Z0r4q*Z<{DDuMyZr|8AdRIDk_D>E!0I1vI=Xr|9CyWO3;AeTw^1 zA5wT-_bJZti|YQ7-CJ6kPqEOI(Wh8Q)r~_vmk{wO4)`38mBoOFPw}Ho8)Kp-uF1xy zSXLITH&oCI#NDj*{TZzGME)sZ7sKi~S#AGMw~}h77w3E}o9d9Hiod3jXL3JzOe8H#Hcxx)btc;tnm6nF*OPWcGk-Y z7Zno%s4Z6)9V`-`=w+42^;t9En|(!KzZksJ2ygH& zpiEbvyK!=KZzsQ(Q9YVXlW zK^md)Say!fdV5+6xt5M0ztDJ1$Iz(j7@9BKF?z%py@ZUmsdw>VIBo#U7_p^pH@qNg z-9EXQ6WBLew<*H8UA>D_P`c8%p-nJiiFe?JFHrg&R`v-oppyyoz;5&|HdWh~A`P6x zN#!;}^_kU>;I`H!XDqeJ-nyw1%|aE;P2}P-^$b>oX|Fe~w#?qwe;t9Q4cANOfzE@;TM7C-O8NG`gvQ%QsOq!O<;axnKPJUSb-^elggW_%_?ke>z zK9|!!yS6I5sP>elvNOsD`7Z_eIYI93dl#GD&>8RI;!kaT!Mcf`r)w*8% zFDEb|^JdHHJ|8`?EeK7#&6eQfhfF@Uhe%@X+C1bO5!26DE6F6LNBF{q9(?Sj;CChX zn*d2&3+{&M@#dc@V(P0?J6}xAoe)#RyLj~zAtv9ucr#ubo|*G?e9~4@(#|4jOT>{F zeIV#vJX*brci>s#2^Nb(I?A~5F7AMFsL(1cC516qynVC`9?rXX-o{xg{e!g~@BNjyYf0R5 znY@cPQ19Z6dDb|>`-^X7=KW$H{JIMMc7i`S>|OliAB6XbQQnPraR2bW>ad;{{$>RmiA25)o1 z>+R_N5AZJD`n9a$IC@Pdb|a3#BtN+_#h&{Xk3&bqaqQfV#E~0=H-zxM?Q5&?7w|4_ zlU8QEi~aG-co%ojq|shSYDX9&trvHw9KqI{)w}qz2RDX*IK0E3C^3OC4)2LG4=yt>*t2?_wig2?DEZE7-fZ9c{;W z7r(h$R3i6KA~VtYv4l1pospv;Di712U#)j>0?T5s_nmj~w0Y8Z-pP&f{t$VeCDV3o z(6W9ISV?444tW>-hvC-AKIlxE4)e|9gK7OiiLh9mt zx^*TN*Fplet0%r-Of>O4`Q>{Q3q%;Ha}P!Lv^S8+M&qmzq*HYBTTuUyaHeU>);>4e zDmOj00XM!!@l&IuY^Evjf>oR(Oxa#6+kr>%OdiRNcogsbP}YItsu+U4L=f;O7DsI3 zk1f)o5F}BirTW=z@@W*xRgYC@KHXrbH61e3rsCzWn2e(BtHY@Vb{Z@(!DrLWG+3h! zpXLi~Xe1u!7nNZyS+pL-wtBxE$?6r4;vAAt*1$l$_9OvED0J6D15293gfyFONYkhz zP4khoPI(kJ5?5IR1EoO{jHfZq;tDC228js`Hr>#mQAdO36B>+~P!Hv@hB}9bzo0T} z1%U}H9!V5D`q@>xMjal_r@T`C)(}`(0|RA75{#!Y4w(uri$r3A#HJf&H0qFOK1D*0 z;wnYLK#@p-@ib1U!?A0?6Pa0%$Sid|Umb)3z^q^{ZYo<%@*HnEg7Fi=hGyiiCkmOcIQzaY`MIUE3JO%z{LI`E5g^4vFSd zB&|R)M3FF1B$8k}jbYRBvqK^=L1NPlCmMA~G@l}A0g^&R!a$Kog7GxQQ`R9Q5)&jg z-5}AZL!$W0v!x98?P0e*`|Z_LxckMiKVU#MIQVLFlQ+S959_u=lhi`+g01VhZ;AVU~tk~e3MV>tF#M8iA>;S24@rcyZ{yn4hR6$-~i3Ohq zUYR9&;@((sU6seWR*Mx(NkMbF?tkRdz*q1@z$n|>94tZSPdBAG@!*0qPU z;296GJ-v(HST9;h`%LJuu50fUbF~>8Rk$?UKF%N~>{@f8z#b;BD+L(ekmatN-I=2~ z2g4xWra<>)d0xO?VJzk!9X{-ETX37SoZw?!wTB6-nW)>_r*2PWbtb7>p!1+jRHuZV z2CltBSZx8TEfH3~UBU@Tl5#V^8VQWoWU(pZlWG<_q97`)%JPL_6~C>H@8n}$`>p|N zqY_#!`dHU~BfvI#i9P)w)p3YV<6g?}%cK!EHIPOOylL+n9*DJ%1^AUY)cdw51HhaZ zz*h(`<6~V51j~QyV_mo0g!+@p;X>b4jIn+a74i$y%V&lD+@E-8G?jQ0Cu)Q4pjY0W zwPn1kPhqfS?5k4$l0vG~Q=sew^bT%u24iYe6>eMtZgamCjVaJ%8a2BI{91(z4N}7-HzA9@N0-VP9C3br^qq(Bd z5+N>CLWDY3xhADiM}+26yOeVUxs?%jTR0?oO=CrWjzyvZvD2Iey&2~ zsz)xCfG$YZRUuMM72dw58QclNy~43e+daUK1^W4-z?fA`fysMI?mCnX8KHUQ#Q|IS zPdv#k@TJfgEkyi0l;`*u7kPdQDlNM>XMft7HS!gwV$Lf zYbeU_vl>P^Pi_I}Tz-#8=dSOg(m9WGM=aFaSYj-OR%ujiR|`{#Q)6ZSjIw;AXU7ec zaQ{`1O8~*0;M*@uxSU@b7z1_zfvu0D5>23nVnLq}uY5S_u|`|vJ&aaF*k)|^xn#cF z|5@44#O1om#~LM=QqRC0HA^m#QcHicqKWy^$=N2mu%Av&muSjdC5WDcQ4vecYIz7I zzJryTEVxtW@TX9d8i7tX2Wx#{Q>rpKwX9^SK8*!cgNM<|N~&_?38gATCxSct8QsF! zCje@SG3fBssuaF)FZv|0{WVgvUQsGBh(84YjgA5GA;0Yn*;E^a#;A;FN1gDm9wJ=O z&>FEl|NN~$tcN^COHZ0U6IImqHh!}Ll!$^|uSTxucB1{b8F6zvaV)!^+?)`4kwesy zzMxgsFa|m`a#@ii*~^N`aW+OSD`Ki%R>WWIpf}+YSWPdCQv3ob=4L3k)?<5=T)|~k zVWP(s`roPcury$^v$Hn0Z|W!Xr)Wc2kOHXMmr;^62f=e9!kTOLQ_vEa(u(nAqzoW| zhq}0MD2dGC(#<%cxoxGJH@H~uX83K}g^dx19|4sU9$-j&E33wCLe(}!s`l1zqJsL6 zg2HWLrj~HXnFpO+D=byYCB?Kt{I&#*!sh@rDB7eSOIy)(!0iN*zyfuoPt( zn)$f>!dlT_q7g#*BhxN-8&L?ZyN&26G!C<0c=y*)zCR=1eMEYKLc2QXUtxBz8OYlL zw-FKgDcS%uFrD2TIA;T}>81f_)XG~Q-!mc?orT>_%9zx9Z#236!dkY262yyAiTl2a z^8O`x@25QzjWsl3V6_CMz=^q&*<+FmbWk=b%tR^<1nRN|{?Cyc&KG1jI&vSL0tFSD z_*5LBN~PbnprV}ZL?(;f{^~5}Ikt-~(q@ey>9tMwb<_}6PIua|5O??6v8coDw`19s zb5vXm)L51TY?W~o#ulvvwv9_nl$=dBZCsgd+gsQIbnd!nOnT@Ni~L%8YyxC$Pk{gr99e+}+Xv;C-TyV@*xOdZ-8&34&lAH{Prtfx8vz@G(Z4TU%YR&CXLh>SeHptc%>M(3UL{;yhF9k^wO+NyZtkmC7b>&|Ga79Q^QjkhPYP}jB9 z=LL{&pKGN*Zt{uikLRkkN}|3yqpj`)l(4pHkz+b(Z}jA-wwn2I6w3&dcw3PlP&sUU?_&u$R_?biAuYI(=ev|4w^DNL$sh#4|Xn7t&TQd=%yRD3ld# zburJ_!cKAP${(*8ApD-kLxhXADv1F*n!viOtuC3L!&!A@Lw`;YD<8|3U`k&G)->qk z^?bfoa7*YqMb)gf^R`7@G~hoe6`_V!|X=lG_Z@ z-Vx!5CoX{##=Ci`lqTTs^S%a=rDR#%9HeO)0I zfmj1D?+L2O|C6_vlC3}+U5owahf%bpLJH9NL{pN=s2j==F&eHW4I3&A&9L}eun~Xwc83+cMp>6SqCMkz^@#T5PQ zDA1^*K=Vm|7ItLSAMUFTi6q#kz;*Azu{lNvAe-{bXH%mNiRM!zs8C(5hx@8S!e2-) zVgUD52~4GEOgORWMwS|NNF=J7iF*m%zc7jhq|Y*T@H)1CsL*gN)OEw_-c=#r$(4|ADseyG=g@ue5;eR&r0(d% z0@(3@5;nXpmZLst?*ojJ{)?B~7f;5pd;%=XYk1wm!?M8zuwE+%?3d5rQyQ3Ub=vSs ztpe$s#W5z8nA{ST&H~aMSpYkWC5m2+7+#0O%6^BkVtDmY!hOT*)P4cN2Zsq4!>e}; z*!Kk1Wy9+~Y5@#$V+gr}1+Z#ZKQ*6Z9QU}S^(7y{fCm7Uv@X+0;#xz0=}F>wXmZ|x zyqWdatE)C2*rBc(#FPKNu6llh&giN~d2-t?be$IJx~}>y))Ksr%B43hnd^GvMAcQJ zP~V-=RSQ;%>Z))0f<82_?Jkb$svBcij$o@=&Pn2rJfs`cRik?cy8N#9E}O3E55Bx- zIW0*gK6*VWos+aTgeHkU;<-d`Dm-sOlf=7XW&en>qN{$dg!{UxArT<_(%KN=qN~Ql zfSo~LziwSsxHMgbwsbx&i-A6hPE4q(_I=H%s;gC1U7?lp3$AD7pyIsSd6((0S5^IG zoeou1Nq$J{Y%riRs;aNHa7?5ks;V#MM6t|at6EM~HIm1EgR1HQ`0Ts&tSTJ9SQfMDj-HTCe`s6u zhTq2MeouQtNL7`x#8>Hvs`}R}QJz0WSy5FF@i1?2J!_2~0af+Z9U;O+RZWWl`-H%L z-Kq-Cp%6m{W);W1Td_`~z&s)m1s${nBPtc@FCS+rR&+byf2k9qOuAwVPSB zb8bOrbk$MX#BHJ7wNTe})qd#G-W3;0Z>)XM^{87_SM7!R?u@R=0hF+=dQZ;iq`h~? zM|IWSF)T^8s^!#GclL?ss+=DKx@z8Sp)TL)Dc~S@JbHhGx`nQ~;)SSm4%OZe(p9Un zMDp2)t~w}Ib_~jjuIiGrwwOwee~lDyvOal743O&foJpqpTiEgbGz@p{^^d z*Zu|hzJI=S#~+__-SJ*kR!^Y5JEN>70ZLd|9sDC?*e^(C-__~i(xhW2T12>=vyeO_x~Q1PLuYAkg~dgC92^F9hw8)9xM9_%8Ii3 zof7UVt0%t?5Ps23A;Lvj9UcQVhroW_%4*osl$CdMuJnscifZrKPEkFgifX=A%`d2^ zZbh|ux50fT(+qHS>3`pq4#g`wt=8d{4#}RJw2#Yd8Nbf z7^Y#s)E!qkT)7xD1QqS)IJD+wu&+!B>8rf*%ODzeU=EA>!}EDyE+(~d9BlP|ced2i zxW=f|_9riqje(O`V%sOJqWu_nActYGvc;4*l`+oDea=BCIEgL(IzamxVcJF4dQV4b zISBCDPY19H1?E2>x9FPyu)kjy5`+M|IR@-t0>kEdaU&*`O+~5k%^(kkK-%l@1YX(v z;m{{7IKYbiL;Am>ymjeFC8iz;ns-h%nm5ss^UF%+=iuO}S($3*t#-f%mkDkXs{?K; z!WK!x25hQyxN2ii#8YR0F{KmAcU)_M(EVQ|cRS{2}Q zb`GNe?+TN-hhnS)^T3C@TtUK1YwB_B;5W0m9b`6D|tt^S?z2d7Z$PMPZGE!h)h2-w1_O z4~11{)sfX(=44SiIS-7G&N`~Wg)j5Q>{cAF^f$eCgNQ~dWgbeWr76$*%81BIjaraO z&J&;bOTU1KR)NQsMb>^g{k+EYc`o^VkM`d9pOg1^^81O&4=ER4{S`s|c1sF!QqC(22Lk*aHrS4i=^FI z1Mt%xozj2WSZ$#?E!1`WcPAYDyq`{1{a5dr^9!o~hVKy2e_=BBP>fyIf7=mbN-^I1 zL=kxOqB z)H?Ow<58)NAukdA_dZJuekiK{Vr7p(S=E0WJVN@<3lP3mm~hp9k3|VNmcW)p|D7GW zaip@i%Bm!U;!BE$rbY3^^k5bB;MqT!z7{&QEq6gBl}M<iU#J#^k(l=C zpaLf*-zqJ6Yf11XsP>-$G%y7daNkWAo&(@6Cb-)iI4Vj#izQxy_$i*gNOgym@Y}l7 z+0$8uOQ_qoCMMH>fUXP+RIJUBRJSvWk!m+qa50OjTjVmg20u4a=%TuPia(vYohBdh zxtKzqJ?f&8di6`jK!ag~Ly6>uUm!;nVAT}ko{6uHT6`84!(t303+*s+9@>dF`vHF# z0RVTj>c3I5pZi1SH2Z0)3apY|Ww8`P-6cDi+JC!%wZ}^~WJ~zXAEgi~x{Fi$B~Uxw z#>a`q*y|B#96XTqhHCZ~*=UVr`(l{P6BMI1j9~Nk@4U%8wVzCk4@32$4bFKuim{m( zJE__C0i>{IzwIA{m-c=>GOF26jA5D!Ox>Z`ALZy0)a-d51r+2r70agCM}G>bT{u>x zc4J*sYM+poh-TlFB@Tz%j;^5^%l7D4**26F&Ax^b?ysSa$2mwhB<&I=Tr_)r4A|!c z)^*K($^0s6#>x`3=kcX@czuGnAx{>+YU>M<#m04-f39eLz2|MOdN{M^WVp>?^)n&D zxCabKPVD`Vh_waA^ZU~L=dQdX8Y36f^hxDc7fC0}bh@HXtn4Z*d$YRKd(g=Xj7$9j zr84o}=WHg$ArJa7hh`=2E`4AlKwLf%>|zlt<8fdACIZk0S4Lb_cv5BZxs%FDo(m0f zeaL#Sms4P?$7ouUH1SzNbN~RvC?aQWtye!r5)K-#=2S^>uN!C z4KU)*5?!N2ONtrm@Y@lM&(3Ebi%z`9Oio}|0}{Gq*H4vTfhaXflj+)!XFr5la-7#vGd@42L-yrukTov8m({RzUjhaV%0I4O9ka{})-l)_j zkeA4)xjRd2fNS$YqvqzZvKOJOjGFJw6T{^-raG0H$Wl#bd?-wUR$dl*Zt@ zq;XKWx2tk*XR9^Jy*^ClA&Rl<%Do-B&bt-b7j1CHol%Snh_RE({dPbKEBBY=U=yxE zJt(T&4~=132u$6f+-o?%1gAucadgfp_tpu^rraOH1EAh1hl$iKyCW*KUcZei_iC2d zYidNf9}p|MGRlf_U&52J!NsoQ-UtxBd6;lf?mzuCN=QEf`!^`}vd^~T=9ZPr4XO5@+cT*4m1E$xB)D4~xaCsqw1kthL03Srp9011 zEA`;TM1Rgt70;H9)pvK7nxI~9=1-^BXUT`|)ayguL_2%?#{Ylx`sM%VoL;|J6@k_3 zg>9YD>;1G7+CuG~6zaNOe`+pjW!S-@FMfBM>!#nSUO%5r*68)tFqwZ=j9u63BZ%=i zC|;FfGfyoXVU>KjbYt>b_cp0_1-AT{pX#8Q!4jw_|qx(Pvt{*D)+KxG`7Xp zLX7{PtjOHgY8u>9cBucVoyzLzeLj(5HK^SVR%EtmVeL7ieKjrAb>*Ii4(uHXU5FO( z=NqMQ&}i?0CuVW@y2nnwa_{v{2;*J_Ru*Qt|;E4`-{|Gy&=lW zy5uFI-2aayCc&>Jv?4PlR(3;_73F?_67DPaY0n1;KNmh#P;>5GCfo&+D2f3qB(P;s z?qjoi=q!XiOr;^$%LF}iWHGtmj_n|gz}-jiHIyCJ;rZ>W%P%asd~r0ET=W_GWXsoi z`H8i^L_*$RJcN65quj;A#2zj&IV&!D=Iw53 zAh>h;{EMi8epmS#ult81|M%}uq>ekEAVyxkOPngW%im~gu^#Wp?tQhaVHi~f)F?Le7 z4gsXFZe8zr!b^Ma>>kyvd&MwSu{X4(bs`JJgoVYjMZLyPKvgi-A8ohB{4T_Aik9hv z@S9B6AZ$ihix6D^X|Q&XVaKbe--EifeO5q4&4JrfKt*+0x9$rC?Ty}B>S_EnQK{W# zdUnwJadVa!0-v3bZrwRn_AZna-TKALLb$J651AbxeC;sdVmQygI!egh1oq47*8R5u z5lhjn*Nlni*1xr7(5-j5#DH$~-pQa_zo`<&saw}l-TJJlfuL@^>p9fGgOvf@dKy$X zmHX<_bkJ<uiT6@B#Mx=@hux%})`{`5DS3%lu02@dHTccc)AEz|Qa_j!6~b0h zFr93bJUD(>+=!J;bbJ34%PRPUk)svx1J6el()FXVVUfJ!@R+_CF-4z!m@JPw*y(A+ zZw3~q;6m6!oCup4X1k`e;P)?3oaW^T@isgDL({L~OAtS$gh5_2x{0*l83%(w`(Em2 z+R;Mqr5?X6L~2$fB6pV7#ef|`VBPm#>RHlqg72kH_&`{d^^yp6YxvY{s;nME>K2Ha z&h4$NhTcn^Fj!b^!QxBwz0|*7;pAq3jU})<1eh$7sAdrzP8UpQ`FshGV%$=YV|ZWu z4M79KXZ59#xf>5TTj%1QgY!|h2thRY1&F9Wsr zT&nXK;CA}X&{X1#P1#B8*{x$4WBnvX$uIxC)R(CrQ;EBA);4%|>M>hqZ5j7ZbVAxf zrG6EK^dJ0Q>d;NdBTVI4J+zU+0vTQiX`iCEifUk`EiuZ<-J5D|71eCEMF*aa;$gc~ z!HXMHF8_NkwOijy-2+Fly}XOjIPIuG;dlRStMnf1{&%LJvbz7BDf{4K)LX}1Ui_c- zUg}dXn8BUrTjTGgF6J3&|JuZ(UzXf;ND3LD;rCMapA{-JNDI}YP}d$tdhc?>&H7$y6`+Kz*8QI(thD#sHbJYE_rh)y!_o&> zmiL~G8)k|;d~dg+M*|k>oY4^rwG88zJN{k68DYlvQtRs>ozdHgbjDvAmCl-^J7S^U z#u7s=wDbR~Wt>dx94osn%E~<(Uo;5ef%*UR0O4zg3D^1mB~d~K5LlP*+4%Rpm&%(w zVQ$pR6KVhc_fmVUF9P+@I2R3MZCIn@bH*yOy_Z^4(SzNk6@8;MVCvDX8&N6{`CjVo z(vzkigDQ%?m%0kU2i8!=_eb|_Rg<&eJM(dcyq9|T@3Ov^dKx}~;u|iGQhXXI-dt+R zK7a~SxZro|g^B*Jd@uFw=S2r+dN1|Ni=u+Mn1cFQP4-qah*H!d{){z-pE9kG6f>>B zZ)=48XTO)4LgO&+rJi3B<@<8--G_YpFOGusCYS(n%0$nNI6-Kln5FtzW?6hVK%-V7 zQzUBUTJoalFZW*RU5An1@w|xw)4jA;j5s>S1%HY1eieD|vqvbW6vw^Y(2Kw%$Bve)m(^-NBc9tM9sScZNW(gW~)uH+HLOthD#gM$u`(+A%CY0n74E3rZgmdHB-zs&wrRnqICJd{-%O-)%=uC2^xGvqEof$mbayZ3kRJq~a0bZx7+Y$f ziInlaAf^4sM&T6K{A9y@Q(6za)3qtv&_u7EH$M z8y;#odS#sOI0Rb8I}yqmy)?SHKJODhJ9>qf+$+!ly8Y1+bZBH%<+K{Tsnz!i`F+RYnVa zV2~3A1Ns3;-z>*6`U2rw>j*zO&?FAxq~JuB5Ggdjdjh|6CfgmN`&#%U{TbkN7Ex5q%eJxN&p0wGv73=_issRk@P z|Fka?v z$k%Upy;bA0UrxXt*d;N%3PG3mA;*|Rq+bZ{^@w+1r76M^^KgHW%u}?Rm8R!U3esGN zvSN5mzfBNN8D9Uvc}jO?cqaB?`4AVw>(WqVLs(gl4X>Y-OIhI&47uC4xY1M5n9e_t)AtqMX=Vw9>M=_X!6 z?daE5!>;vp`UkM5)Ys_)`{HY}x{3GU`3G+l9g{?4+;KtfRB3NWa}%#)iGfE2wAGMM z**~GIXsefb=GH#}wiB*FciQT^9n%mOZMERoAR^bXvSnLa)%}pR;(MtR&&aB)<{l$V zp{_bjb=53wou5!w-G~9w8^oKImR-y0e|L1Lt464_TD5ciUER@DvGhX6YoVU&suQjQ zfA7tc-uV3QT_-q0b=Bu+@9yZT!Kfu&S8Xh3*^*x0RfD?f=L)#Omw{wOQDYD+~t zWm#3?aHT{1pzYES7hN?pRM`MlwruOF`XAC&P*r;!pH)?@HO{H3^Hf!Bsg3g!sw$3- z-dVhORzxuBvLTW?f0|ut-ob0xE z9d8xk&PpM?FVfzSW>z(^#G?lVRMpdm2Wh?(Wkpq8QZ0z5RMoo)AL4gzlZLpcs;QyM zVytZ0R#go@q^c-PXPl5#S4|iz9Hv=ysp_g)ZJnP`S3QBz(R;FVnbuXcH+QM4-r?Ek zl&;#nwmZ6ND;05Tiw)31J=ay0e*k}vSV?;0ltW#Qny$L)9kh3Mbk*LdC0$qbuVh_G z@9vzSu394m9Zedm(Q5NLRC)yj* zbk!j&QLukNS8W(7+ljKGtNv9bh^KVb4ww57|9Xow#6?%Va7Yl5FIm~Lt*e@TNLR^w zsW0CoeIvL&#cd4_A1qvNwf0D{dVfM?br^;jZ{V0^T3LNs)1|WdorbbHS0{g?er;l{UXAX3|;3`#ChoQZ@qpV)92r8>fX0R^Y|NnKL!0h@7 zAt*;us(z%hdY;F5{mQC*ny=5VyjfbG@3yj90d#p+LEoY`=(`+p%EfSJg7$_qW%cn4 zl$fwjKv|tt8szL5C@acpGetb5tST<`A-?~nX^4xm+9XujnXGKtR#weFq^!KHwHIYl zRBId{?4_crQAKs7HqB3{sJ_79=$*NDW<~WxIj)322cKMp=fY;dN7S>x=D-=^P2Bu| zRV~>AVUCG|8WU|ZVXX=4OsG3fV^e4NcbX2+69riIk)5Wh5_o<4PTX&LiR?7px%~|0 z;?C1`@c#;vBJJZ+#fBE^r75hU5WnltvG{u+e%Im$?+8nJ8(izO8lI>@{l%;=Z#t1G zh8GiGS2nX2l<{zO>cX7+|0Km~kyOiU)lGUaQu_7qwdsYXX(1xgv-eUHakR>F-}GSz zUOdKi!W&e*Jr60d7v`Ly{Sc(d!TLOfSPzJ4r|Ew1z0`FH@hF9OK?vdkLhR<14$n^y zD%E{sq#)_t^@U%l^1amj5TsW2fTeI@&WV>xbEbC2u5*!3U)@rermwpFUh2PN;M!&w zD?rPh`vu$SKiZqq6zy{?!K;vT8S`CAT_TbjD*GWh&OEs6=b_64_mr;PV5$%IcL%58 zF1og1-ykj@p+32Qr%WqLy_b6L1-{CvGgNkJsIre)*^*qqQv`j|3Vnjz4x#r_PkVnO zo*QYhNAH*5z0?-f#?4*6m%1Y1aHTU5`SLydv`0K5ix`tr9>3`KQU_htJq37(3X0V% zv#;)s0{nA&p>i$Ma|QTfIl9TS|C5fjXm2OXe^mu|$ZjbGIGGk(N>8t*5PPlw#}nd_ z3i139#KQ@(n+kAk)RgW5pL{VXNP2bu4JyFA5TtQ{v@{gp2|SbQw=~y2&)4s7UO!EV z1T0Mqo>?A@-trP~ZByuV^rk)b3bxZ}q$RMAqktv8!`(ru0L`mXD~HOSjk2P!=J5Ql ze`R#=6d&RX*GofOwBJL~AR_0mvL#VirP*&|l;Z)gfkL-2qM@G{oB6%eLdDF3sdSHs z^1`bPi*TivdoT49sCV!6k$v5)d^g`qZH4;#!S_-l?}+;AM1y_R=2w4<8LRl^-|02z zif-yZl{=^ZuI!fnOD|Neg?g_4)`xZCJ^P93zulcU*Q@?(gV0z5a59Z6pZ-&bJ=cGC zVFR>xq(VGD1o1sW?56(vJ!(qVe--DG0_eZRA^jJE)XomE6b!%9C%f)@4vGmcR&chrUbCF9*Fcn5{yy)+2ireYGF!>IUbMSb_aFp znO1vVwS)a;-%+?oGSjPi^)o=a&l{CH*B{<3$grWrX{o-d$0we;^QzwEues6ZBK~y7 z_ZjkGnR!+3x^vNsN9@qo4bf=jU-VnF?_b)zQFFr!*nix0?3cv5GisikUT9w}REK(c zHf^%yWVFh4i$ojG-bH!=_gp`$qvmAx0`ow}C{?OdryhE(WBfF=}pmt~6(A+NA9i-{5l+Heo^g*sIXH zJ!)Qx5zPCzUD|0th?Yvy67U*MVu|M821d;nb_(+0k0>jn=4F!w@zk72`>8&}xgFJq zxQv?9LzP|2%6dL(2Dg9r_*K1Crh|eBZ2jV^;nfA)~zB^`oWjxLf z92_dDLeU#+MCzDR~w#`(nM556)!et{b%%J|a_6MM^trTIF? zw-X_0M-Th;X!ib7jkNJDwJs*a_vC5ulxF|yB~q*wNnK2cUzJ{Hq8948X76_0+_U|qhG<&Yuug6k@x1T~hIRr66h~3oe2cV{O&HmtN zq#)_lydBi+-~TR1+bV#xG&FnJL}|{HW?$(9pMtDhB~3wgTeBZ`I=EJ_P}*s`5G?~q zOF*-iu*64O1vLBrwhQuMLzETGK9k3B{r*tii9W;^&L6s) zE@fta=#AeBYv>O>r~c4xpvLD9oqCaod?tUWHdMBVWxMc)&gEg>fIsxfOIeW{6#@_? zfL`{8c7`F4(I2Y45TpkOxx0r48CFc3eir`FdC$6m?lk^%1KrW`VVUuVEBAV$&YU8}YP%ja4^J<&vli<4sCmQ$w94ggi8lW0Hqr~| z551tHW;J_(@rSlmrE1Y^K2Ol>`KalgME$Q2w+lhMfe^bnYTkmH(nrnPP9OzI@7UJh zsQJ{^LE3Hsq@^)x4(3T-|14q)HXyiJ#KZcg4L;o-HSfa+=Dq!fw9~g+1!=j5v;;=Y z>sX=zyKK@{Q63GI{U^%GsCh0A+4@J#S8p(I0wM{h=3uWZHv;3%8cRBK*quIqbs0!Q$djg$r0=Z4OuBf4oPO@s;ro zx}^*;1^w zYvq1XdZBSzsOQT4kz>&+e}gWBOVm8nDUCN&xfhO3Dffd^X<0NEoh4}YT)B@S#1RVd z&=AB;39*~Xy)SA?SMKl25xb-pe=(@s7jGVx<*TTyElTC$UD))t|+{XdQv{%O4U~*=7WxR$R zIH=lh3sv`fR(EsnsP;^+jCVq@<6)5+vmdF}JZ6Z#o_b|`@}o|#pTeI`uOB5JmZo06 z1}1=a&IZ38y*}g=BWpjP*AG8N`jb_d51l5((0pA@b={s`D6WNiuGcq#Md`f=H3)st zv61WZ|53euH$~PM?H8!NvS_ZU5PPoI@54O>-gt$0aR_2PA^x@xBsuL-guLk$(s4=} ziYv>=ni*p%2TVXs>3V&eBS=BgyJvn-udfw?Gz*ZHhF(8~CvE+DeSMrDbn5X|>|XMz z$8PKOi;e`>wtPX_sdz}RogODG0lj`KORRtmOKEz&f2izJC@XsX(W3xHg#olB?g+UKxMnwtPc1O7<(+kyUp`I)E8L%k5&!G#U+}GT|_0>;Q zx$m%hO1a;xO3Nzu9TZ~El{=qQ@nQ<`FN1;*cOk@XD);$^29^6+hp@h+*D^1t+;g0iCA7xMJ0e@15S5+CCI(-9Zt{_c7~M9Ns%k|_7_+4r^nz$@b;?}r}q-EW%d zmGK$x^htkZydHb)La&V9=n{P|;l6cTK)>^q@%D9vaO(H3big>p>o@uySc4f5fazh~Avx_i2{ zP-WUGt!c+}N4K7uUTBOK>bY(`9af!peNy`D1M9f1@~!IDIgl7@IFIIa2B{(7wef;x z&von92Lj^e3Nadj_$VQEQ@7rWn$ivD?d5P_(wp>XP`AFmc96Cw*&CL^p4s6C37=BB z_1(RED(Ylxds-61nRhsN|9w*0DKA9J0@JhoduH!tiKnq=C(UsFS3!^uuc55y))_pk z>({M|_VyuO|3Mn!qFXNuRrWe7`)PISJM}-TTere8!HLCr7dJs6;gRqB$RSuj59!uX zF43o3FJ&+G&x%mDR<0#nq;8F@#KW8mJ53Atb?deVpaqHt_;hR5SH|$JsU)K@f4;nl(wv-R;Ly?8iqEVbBNX#~RHsB)ub+DQ#}bGLnu zDWB&+FCOV0Xe!0XAm1M8%i=I|t{EqKq7#mAr|$){%~UF1mzQ=UTkkLYE{xy*y$~OaJ~6u(z6T{ zDR+~W11`YFFI_83nMI>UH=umZgXH2v{O=K=zH;PBuy?$6s5h`` zj$fzl5BQg_9)w>C_*LzX0a%L36p=m`pPot(uBW1=O~60h_l8*;gP+g1eTAMRz z7eKE?2295C&+f;s(f#<6V)o(>r;=H6<54hJZ*6yWRK6Le=7>8LxO5g zg32}q$!L{;PsVfb;-mgFZ<}=UC3RHMY|1s6Q23mT&N9(DhRNvd5>3Pf3q3fm{Se9k zyb-J#AP(lK8al0!|DQ^MW@MoVx!-Pn_r0~IPdoKWv+nc^lv>xJr z+Sj3uUZV$^`H}X1t4TxGfw~Q(@88~phHigu0A*@GwF*wlLo1-V;)>^}hzC61C#NEQ z6i`mc|EYVhF~sAcv8L?vEPFM|qJ7Xo%0Mu1acva2sTd^^CC$=4hM|S^SzG7y5P$^) zFw6p|i0iwiCa~O;MB%1>cHGpcZD-l;UEQVht=GBqn^Y>4py)b$rl# zX?%dR;DJ6e*Q%eyfRm*6Nve$9MqUOUlvN-{rtmIQCVWD?a};lYNP2f*$tipH{bm(M zxT)Y%Rxo!JBhlvF$AmurXcf76#GKu?NciFePNR-+iTa=0?4tYL8zm~zeZMHnO7VUv zgoh}_-x1-}fUtJo*OXhCL?$m(HfK+ieKFUxa)Kwqr2CrA5qWb@icv|L7#%Y+s~G(~ z*KyMz7a@SNEP#r5vvwy9tQbj5#K@)_G192xrsfNXQHJh&$BWW^DPc_tPXh~2Vgk>m z8+aOZ@HAhVx`;fpa*)JTN#Y+?1`lJ4bBimha|C3x>XbgGvyy=w!f%~rFg{&ji$Uq;Hk%Wr4KIUWsD^HRr@}!@g zHqfY(C(TEBN<w z6J+auS2Rs3re;A$Et|5%nFaDRHU@9vS@1f+?nU)7S`zULHU%*E9o!YG(wBl-kqu&s)?h=z-{gP~oz7I7(qvE2R>a$s3mVv_mzXrY zO*g7Uqps;SpHG#v!(ZeyK@B8~{t@_`^d8w?dMoz$PHhMb_Xn>KWYkPDYV8$lZ;j_m zMJBNLNuuDVpPguG)ZwT3eE0#S1{I0&Hg<~&eT5eYBZihM!&mb#FH41t?Y#H`=0kqb zcH#U@AhIb%WM2Hv4E4I%kfR|k=CSO3`UW{Mi=5~${1lWFLwf4^1aQIxmMJ;plrTkp zp|MS)Y1A=A^C?rrCGtO(&DuLvBs8$KOH69F>85s#y4p3LuXa53oeRu}y*C9L-%yN? zW!F$L3Uwn~NuMC?b4Yu>_yQDPJZ0yMZ^&^)v<>klWk}?_o7uOcZQ5hgm7me!bS{iq z7aiV~L5J_nVJi`NG{@nxwJMueh|6>U1Jq zQO7pTN4Ci`cr4DY>uEm0usBFeaIonH2aP%$G@s&t zjvKF0APf|UBviz!6o>{Eh{OblO*cR^>VRlI1%j50&rl!?6o@2L#LE?k1{R3K1c*&H zKs4%rXg&o(iJqcB7$^`)fDf-gG_XJq{pAR2W*G@kwAQBTGHr)Wxr~{(;6i6F@ z3{)Tt6o@2L#Pb!11{R3K1c*&HKs4%rXg&pE=hkA23$ZK>x+YUacB+ajYg1Jsh8CR2 z9H^5{B-z^*rY)XG)l$(|Lv$);S23`qmvFu<8J#1*&Ex3FDCc6KLJO*RMm(WPME%0+ z)jnv&(Ak51GXQ@s-ms_>458R5j!%Iqxk+; z!OBLkvh&sRfNEc|iOp0m=SW58#Y~ED>NM#!?J3qz6{xH7ZNuU$TUiRB-ITg05%TaG zWK}scVdlU3(ZtwX&rB-S(`35#muT-zv}Ui=X;^-~2?`mGYD}N={_SSR(_2NJacK8E*MMX7t{Y zW*>0%E^MpF**FI5Z>|q+%Gz8zrm)^!u|ADhKP^~goZy=NI4aW#E;R&u!ECe>Tz7Rk z9vW;W5}RF>N5X}Kj+iRcWGq3>I!wU+p1;C&`V?Xw* z){oYof#jJv8xx2>GeX;jLBOApBSs1 zA{a&b)IX*pE&h!8J`n7HV`vd9M6_A_8TTC~Yg(3pQmd{5p(OPqjUx0^`ZMtDYznLu zrjQH61Q`=pjVg(vQT4MkjWy~ts^+6cHJ#Y{GqtFd{tO@_y^lsqj}DmnqOW3K1Q~TB z8D;z#;x}IL)4<{SsaP?Jw#i649CB&pfjg z{Fy53_kql|v426@JAp*AvXg;QDha(dIgOcC0BKMl3>1hYRG5{kAH9Gj9`@4rrrXTQ z_Yzv?rD~lk>9gy}k|ngxlhG%n1(VUV#qdPIS6kCOQ+}!evjQzi&a}j)w)sp<+LJeb zEIOqDwH+urW!8p!L8nYrtNb6sSyi;nZ|1G=M~F{o^pPR6G*nq3D;uU(ITRFBE7hy$ z5RSpMszW3N%C|tjT7`{sG-hSW$}03r()&lBzC@q~)YSN>8SdRXB7?y^=c6Ej8xyCS zKrEOf?cl8B5fLUxt(X2=QmM3-5M=YS9!!1HL*M@L5NkR%tDG z4%W7gPLEBUp0cX<8%AD725p&cRbP8`R(8Mhp(E{Jkb?~aBS_k#LPfMS!$7hP_8ut} zb}3>gM+{4gCdx=^)6Gb#QA?E0`KQs9h#VZkW>;dfonTW2<|(sPB3JzcoX#vn{ZjQD zqEzk0dKRt7wxQKYEDD~T0osEmwf)#op&zYD&0$F_Cu2bA9**o%GV_V;x|R{)4<{!T&lS<9!?``5)@OwEm25E)VHoM7;NgdFT&ZMq0CUr1>z$J7hby_}WQttwBF(&n99|SpZCONT^E)ft*#gMBm zx(mr{Msi(s0x1!u$S;J`x$d>Iv+Rr2HSTtk@hxp3GOPgT;H7`wU>%1Ql zN9oiuuTi4LnBEgii8b>7>c3PcimZG}qKC)K`>HPVn*AZpU9C2y8?9VKebLo=GsPR8Yf8^NnJpHNcLkSKd1 z5uGK*^sPf+Oz-hFq{-~12Bl~~bq`{VZ4L?kLV7EMgbA!}lSE;ses)M`)Ui|ZDLZLQ zx3IEUBLk&W5_)a>3XExI=MJ;4lw{pHZsw-9&*j-&H1}w+NQ)~6{H4&hueTUyjQzV> zH-RqLP#zhHdZ_wv>4giQK`*QVN2Sh17~`;GPevA*@y6aUsPSlL6?yIUpw>#N>>tOJ zx9FrSMm6^Hi(WANOC-`Mrfi+x*DA(2P+gT8m`-S5 z@mc#+r(-MoFdG9wv}4hc_*H{nRS5BCtF6*Jl47dGZ&xiotG;MWlr7{{7(9^oC+zd{ z*5s}dyAGp3W`KYhO27<2DhDL|SxDsyNm2|X{C1G=*(il2=&xgW#tRmfb>HvJ?*bFk-!FDe{13Fyz6gjeoB9922-0rCjKl_ zo0O@NVwj5Gj;Z)8OpW~KB9JSk*xz1dO#0jN@(cY9Cnu1>n5|ZJi&b_NMd@#1nL?4I z^*7Z4=vH5D&TcgiC?cugRMfps#S5xK#fK}d_{41-Z+Z~&Q-RJC?t(AA?YiI;?SeP^ zx?n9z)WX~BstYQbmWL*q8UF>w*_)7ksnFT`;zIJO*`eesZlHYAr_s?-eGa zZ>WA2eW?D9^r{x{sTr8#&$b9U8e2qCOpD;RYY}|bhOR>*GJ@{%u_9xz$mL|#%1^7!qL$7dC%wnW+DMDz{O==lR7PNRAKt5shqt0cB~Shww_79N)M z3&FkX_=F(;-mnn7|GE=`=_&-97Wdq462}{7cfNrxt(e`xz!GBnhc#{Oe6d~Yunw8^ zrIYbu9QF}WNydv(KQSd|QuPc^mRUAgKQqZZ|a=#{StXE`DI2jT3jao}wGx^lpyU@u-^AT!Nkj{a?H zF^B@w1~S*NXQ-avvz`~^^n(~bHK+)GRsg%F&rExGvp30Tijjh+Uky@lEFm8T$lTY2 zZ47NfePI1iu>M1+?C~tSKFaFm{S7u2xT*-;23;w8P^j#QEc-TgsZhAly<5%Z{Z>^e z14>2tiGlB#qZE~(%gmAV4b^ul>$}RJp!jDWeUECVv<>|zs zpWsl?$_hxDPHNut8{thRzU~mJ=SJ6MncC1QgT#QncwjYA=Ao80(~_@WkX6ct zhR~TrbY|xYH&8+E%>%ZnsIkMDbE76OlxmEs-=%|Io^vx6W-iDc1_w~0hH6hMjWnMP zw(b;dHT|H5Q*fhU!nLk0asj@ImiYG1qQGU2idoo6H+?zSB2&nM`&JefuthKys#bjoyw4ez>K|ZuCcWHrMcu61lBZ{My-TaYd#sWWjF$yQWlLhGEg{@ z&}(zziMTM(Y~G1A7CAWl1^6QvAeRJ|9*GG(Hr>#pQAdyF13g|58go%0BvQa7w7nAk z_BwyPRC^_girA|$F+^q?iAofW(8MMr2E;*B`Q`r#O6Lqp=UTMZ?1(RuGGbR5b&lU0 zkkcnf-I&9fqGQq3YA4)97X4S&G9oWi1EABMJ6V)qCIeyPPz86hf_kZ-;7uO) z7G)}kj8;T44N};5W39JZ#7`v^gpM*Q(|=P7};b1;>IxGO`WVCh%*v3#&l8V zIZBpfsUR-8#iZA!lx49zu9#XIMH=IU^Rtd@`?r7-@GW3H8mV}gje$uYvIB;K*@EJB zqUdsqPE(U$`IXXY8g-4K`Lr=)L8N^J)T~FDV(W^m>cmI7W!CU~5UaVwDympDW8en6 z31?$Kf57AqmH?nPnqihQMMQdVzsM94321_zrOJE>;sY7z ztqgy?9K9o5V0M*#d|D)-MH2oZ4RIDpTV#4^WlS-=^#sz5M-Cz6RLs&pY_lY@Su69z zu74uK!-}@MT6S;jObyOvZSah!CJz(Jf7FSL@1ZDqx&YL~PFT^X2IXwAV0%81Q7?Ty z8LvSbnx9pvpEJzQWOTlMj5aZJXCvZusl2tRpShH7{41`EGZhV&L$NpZT5tkGFxLqT zp~XKN7M%&J<6=1=pY%37T~u!-!{nK#griMB^cLahoE`Ro>g|(DJyj52Rayw{kPKz* zgJjUiWS_)B^^9OW52}ZP3Zk`WYWx{Ji=Q$yOA2g>ted$+w|bwgnbovfB?NgFLLLRk z+{g%52v>^$ekMoz+2$biBUyF@l+_80qt+0(nJlTRLuE&?Y*K91j1w4F<&vA$I1sOU zKIk%D_vlc4d$PXsY<){OrR_%K$V53Hk9E0Ig&&z{YLw?NqCRQZi#U8L^R5N!2>xyY z<8?X?nfW?7R8KMMxm)UC1xvO<=4ctPYeZP-pTL-grZTMjVqUOW_apeN6g)@i84yPN zSz(-^!YC<581dVV^=0_11HGM!iu2rRB5eX=y;HJE*-0UEN{G(Qx!H&`wHf26^Z{_sB&8+|a3@*yMCiec(-j8_ka^zN z*(fU06_e-*#`%AEx`GNB(-lbOyvhrYl+>3rgoPl+M-Y-55?}pD3G|VY*@{Yc}_Jh^R<{+0~WM*$k^9G$u`0 zC_+jCQn%0R`7fr^$S^x8y0BHD%) z%vB%^6o@4B+Jy(wo_fE*(mV%3N5!MXrgw=bC6dr<_ia>Gj};wOIbMSJgjCl!hAR{4 zZP|&{K+K#;k%Sh33Q853#K{TV;hZR&pNP(pWlFwyyu493N~`hj!qGV&QlT0jV)S>?Le_`)Yra^GnS6**p?W@MJ-y{a)UPa%Gg0v5 zoFE0C5OT_gc$j)JADy!B$~>w^1g?Htn9ll!1taHF`DOO(|w4S$7PkWjYH_HNOXSYKEz99pfQ6F z@gC2~%9t!Z#Hz8d5AoXvgZ$4W!Cm+e{qF|%LY91&K18JendhyAov=T`hq!+QNO1^q zmp;Ur2J#I!EVA5(pz+shK12x`vuhvXvTwg}?X_e+#I^SarE?&qv-f<6(q-F+D8F;L z4*`v!D{ypxb!pCdX&QB2n&uNnTbBL)|9prI&P*v$GdDBquT0ABLk#2Wa=H(3&&Ti~ z4&}wF%YqMa2@n1HeTeZN`Fx1ESeXf~LsZ`<-Jd?hKh=jg9o>Jq50S-(_@aaCN_u}f z1QLq8u~qF9ZYe2A~**$bJ$Huc=WdV0%;IPGhU z9GNMY7J_^iA*XzZ^Ek(u*@uXR%HGYgDIa3NmjXAFy}e4P>^&^og%7cE2f3N%L+lB< zjN$v>KY}fBAM5KqAHtI}_DOHXLBfwrG;JTkVHR;PKEx|L^DX-$#CklqZ&n}T!@mb< zxu5m)o)0mLhq=>zh%eDphLvZ8z&}Xvz2`%G>j`)d+-NiN+1DJHRm$GJC&-P5iO$d5 zhq!tlV4cB-_>0i))*U>bF1m_#{Q?yYk3 z5BU(g|2NfMOXfqA{w*k-&r>>k&xaVhZ2J(q-niU{u%3em@3P`Uyn1X(i5eeb;`L0* z?n5l*>~gvfas9vHL#%;KK+A*=vCF&Y%zhtY(7Qe#;zF#<1bv7D?~v|KAL4QKAvW1> zxeoy$$-EA6-$Jr0=^a!IiO6h$e}B7EsL!bnaU?iueTWBnd4TMd5UX(mY#~QInS6)` zLiLPeJ-y{a4E_hYkl|7baQ$9r1hXOZ~z5OI#!@xO6 ztl${V9nZ2|_z;it1b?~@kpsGn;X650-^r}6_k4)k+1(%wd+sIt$VAhBZw=CPDseDA z#Em?fp7J5`z7XDIT8FqRRL|+Gr}un_iEYA4|6ZoqXez_XEkocZ5`6FZ5D&f~;Qc&^sSmNn7${V;4l$XR45WOBS2^Bh_94y*)w34s=`9~(;kyDklMnIbbwLW& zA>@<~@iFH(Gy4#Yp|b0;Y|4ii^NzsHWN%Lkm0h1@yYL|{;lciNA7T#ZGKTN)P<@50 zulIb2@p9fh>E-M!{K!PpJ%0-FawFnke2A4ze>HoVo@p1}Wbz?S2-UL*>*+loVygwh zO1}?r7MjYi^8M-{8JiP)@A(juTLiq{hgfx|tWtJZ2%Rm6&d=P3SYdKngn;@Llj*G?u9J*F4rMOi;T_lil?LKlKT)Jyag!^LGIFr zNJ@Lo^Pa;tuH}1~dUY?;G&E+{KEy+*OwfmT zs#3Z?eTaXn4{;5;|8gH9ix08oe6lO)J-sa?BC`*1-jzw2BNI(0hj4h6 zI2a$|nP%ee&QxFirtl_{4>2TE&+DwG_k0MChqlxAGHs2fGOWC{BFM_O2)_4xh~ZBN zc)t%ZZ>y|Qwq^*OHlp)0_aUC#1T<#wAzpf%v^yW-E9~J4`Vbq<2=ad+3GTv&_(sn5 z>Cw*Aj-oDoh^ZoD^Sl+OfbmQ2L)`Hqq_}53#0m!T73V4B^&c1;?dw@VaP@U!yZeM$mR?^Dw6{W^?6whv~qn`qYgm76eiq06-;Q~J#|T|yH6q!y%tyCnD<25tB{+|KJb<20A>^9 z%9?7$Os zb5;JER{M&QjXZFPv?dApRtdS2gq$y5%gQa1THhIX11XCqaAvBW@3o$PvYz2m4~!kX z4s!VVfabdna`Hg2g!JPeB94##x7qZP5_7YOTp?P_IXAtOB=9yHzx1_lvt3YzfpA@u zQQu~hlCa;a@ToWvX}s7`ZZMupj4zQ^un=>>(2LefM_S%yGqr;41N3&kifmEB)q$#+Yq?aySK}V4bPVC!kHIxY9KbZ1; zv&eb_#H+z~pFWTLUpqC(s0C!yp?ake@tY_WxoeX3=1NJFy{!7#ZN%27+la0Ccpffw z0ZW6*OL-f*A?lyN`jgQb_DXmy_-d}!VJUJqHnlm0w0oPa20A8F{wCya^5?%ZLq7L5 z+n*sW#xJ_!q97;UAScG~uA`)&q!{9@fL^=x$7nbI+ia|Ttg>7Kdk2rigylBf?0wg$ zW4Y#2mW%H6VedVNqdF+Yx7ljw?jFOVJBi32E)3GXkhGWT-7y_NX@rUsBpDZDn%j)c ztvRvAVfd(5r0^GV4^;v*umng<2(amf0F62VG@lZngMnU*B{$&6>$!64t3+{Q5JANn z87z%UZR|Ldh`hKqHAU)CXDVi+p6xr&{UwS2XMfcB);)#egD!9!?}KqA8NK~`a{Mh7 zR1Ke$rqx-M`Lv74_AMR@omFRimP+Sad-jj7PgftMaZq{!7sZZD^ew zAPAN*P?kwTuU(*uN7Jb5Xqt~5Em2aJD4WG+BKTre-7FZn$4rErCZlae=|LLxY2jF7 zy+eY(kY2|iVFHVUBnlGx*&(4(hlJ)6B=}-Wyq1;48W||1l28$^Q6L&vAQBTGHr-IF zQ3pixDG(1psuTzV1tJONc2!)FCa^3Ji3t#!Zh&ai0nvO4u-oyYy222Kf9cokR=TO`@B^fH?Oa&_oc?VUZ zV6A^b4JG1&s_HG)5FWqf;Fb{pY{GJ~z9Ek? zurzF}6<{#Vg+Y_!mCg}?s0ZHlDN9iVD}HtmtLemQBgLv7_9=uyu1wb!PVfRuzKT{_ zh@Pe9R-y!H(PsaZ>GKM*@?p&o#48A~el_7kJ(_&1G`R_EBT1q(l74pTRimzvG#?wu zc6=3yQms@2TdBmPQk!lxokm@ynolb=7FxlYJn8LQ|9B#6?;mnjkjGb%;ztGu#Vw$? zSdr7fA}29H&ZZmWH0qGke2Sd8!#=W`9Ia1!Z>^cN9TF3RSY1P`h6+{%@3Ddub$30U zRf6^i)pITDY3uK(D^lt-u+&LRsI%#YI*mH&G@qY3cb6_ZHuDu!^#ih9DH+orvnrVp zf+5zjoRUGS83F>>Ka4y`8t>HU4}&uWF2)1Ls;EGtQuDpte`*T z4Tgc}u||HO4(0VzQ8GGwN;5*jX{3~6Y zu#42@3dm0UtmaSKn@>{K(YQ3s5O4MDdC^om6CC0?mpXZ7DH0-E8U}KyFw{|?l~w=v*UsJhE|E_s1WEjgBv$E6Za`p#?rKexOPVRy ziE0)0*_71u>zb=YhT-suFC+4G(&>=8(6pn-*Mt-*tE-$2H~^?b1Qj>>Zn+{5_Km(W z4Q_|#f{1>!)8L$?5HA`ph6v}RH`eiItdT)r8eEd>H267K(voR#rs_1fltgcs(a-mkpH-Q~1BvAxaKRYW|qfSsYpKq+N)8JKTf9g3vNP3<3X0_TX zPYg0@8!~E3`r#_rEsCE87C(szem32VWg2z(X+9r*s1zm)zn8Z`lYsta)}M@4QL)Hq zpU@<^@;kIa%T0rGsV!6fz+8V`{LT#d+%$L%#Kla5$4&@xVh3`fkW;~!6`-U^O~Aj` zULP{9iGLcLwKpisHLxs~n6TWY8h%hhB`Vej3yi<<_oqGTL_crorjK0ZkM zZlrw^E@z5$k$MygaR@IaqMg?lxi^P>C^bRs9}C6Qu87|RieioYKl=pnv~2{Jua9%M ztf|W8aN<&<%x?pGs>q&LBZH+giPe$ns2$o-5k%XntSMra(Z^v8rTs<9hwvy~u6Qv} zyd(ir7fiS7qP96DQJPafyB@Al*PNP<%_&}3e4+wjpg<%6t4Rt(0}DiA0>q{pnbD{N zqWKgEb<%hR!a#vY0z7gBqJae>F#%%J4G@hwAev8sGyzDd0%4#)Bmqva0@1(%k(dCn z=>~{K9T3f@Kp>~_A_c-gfk*<3NCl#S1tKv4V$%%}jXEHjPl2$%4pSfu6o@3i0aPFw zSRfJ;AU53q(WnEW`3R)4x`xAaWo4}d@j4l_<@KFmoM$rDw2{iBtZZqKgceEoi|nx; zisoew?h$IRS{p`ApMja5%r$9Ua$x$E-6o@3imRDy&0}DiA z0>q{pN;K+#Xg&p!n)n{p?RU^?dHB`8P35i|eA`rVe<#k|wM}{VH(?=T(k4*UZyhbl z(Ze>CwM98Dya~#&r(50Ysk15?$CCDn*`?|_b;|H&cK1LKJQHs-q1wULH8*x@*5}P@ zP^lJ__g&0SGE9C}+E-sX2ppHoGH~vvzI|RXmR5_okyLZYp9;jS_TCPX$lFH*N$gt+5-(PtFd&TT6KW!T z!jc+1GF+UPT$Sz$meH({TsqJ2``>5f@c0z?Au5Rl1pmF=Go!Px8+|b(><7XdA}0$5 z{7*kxKd==YQ0K8tAbwyG8K+N52mC;OaoeFz9cKJMrm7z(C1Kc3!zc8PzaQ=xW-uN? zj7!uHOiiE{oc?(_(&7i2?*k!lkWY(XA)+nf2fFX#2l}!MG=3nBHY9Ug;dUtWF|7AJ-RN`ZU zjM{;W+C=?8;x|DmGJzc_B~kFx&kjG0y3V8deE0z+Gc{1o&V>5Mv;JhX4l%SGCWsQ6 zWcu^TzDp8A2rQZbZ?-m%IQ4J=b6 zCQPyErqML&n4WAC#8)O&+YAF*5br>fwP-wY*C*^l(GIgK$P9AE1Nvw5huJpMy+ixCrY5E-`z1@RLvzhevg?~YB z|JAuPPaH@#%=7je4ROlk()_#BX+`DJtY&J(rR>t^a)UW4(leK4pTj^&W|wB26fN7T zhVLXT#-+LUO3F|f6sov17u=N9rFs4U#}iY}SFER3U7Gc;&+5{YhQNPI@Ljkx+wgdB zz@@qMldJ~!$NLBA>w6#o{M0VZf4I?LDY-QLLnN+D5;M9qJZ9p~E%m^qx$>Z_9Ih;J z93HNcxE{d=T$%&ghh%qYcK$#=_KHhWvvF3J=I{6f8}0QmL5w#e#$lJ{1}`1yU!+U3 z!F5?(n)~((GHMqx>eu4ZG(udAOH;RRkP~~56Td8%<`p;(ewW5L6EpV-(!L*Q@1{%h z@_XzIzmz+K4yWFLrk3cg!Wt3~w8RZg{DT@DZ zmuAzxl(aPWbj}DSWp`;taJpW!+gL_a2z{&*hQ@b>4^{48SiT8;zVb+VQG&_wBHer8~ zn9-%FSwffQ!Dvb$knAqaNpI@MUU6xjTsx~v^Ey7kI?4@U z{2O8%c4?BYrz8D~bZPdzBCAXD_HMzZEh3|SEiTOm5EtXpyfiY%iDGi%m*vu|xK_GL zW1NXscMZ~BO4_^W(yZ_*`_PYYXe6fxs%J&k)2lAcGAprde;HP$JMssW2QgUfd{9TZTtCPfx zE=}zcx-{>P$jagWZ0EoqsFJt|!3SKLyPhAC-KDvt#idyX;$mEyzQco@C?O|)SuV}+mD61s z<4mkHEJ%A9Y44^>Gi*Nl(2sCwR{DynGg7{-!{T67GZTr$&(NiL7mHoXU7BUkrMU#h zDgrLe+JiY_WOr$N%{9M~ z-cFb1P<3hQ(c6D@F3mGrkqz^_7qO6)(WNV3UKtuBqdⓈnK|J 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%0DrD;J5P1D^E%}p>)u!T?EmQcuLFNAcw7dGj5kvw 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 Date: Wed, 9 Mar 2016 13:43:22 -0500 Subject: [PATCH 12/13] Every cake has to have icing: Programming language / Python / 3 --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ce53181..5b218cb 100644 --- a/setup.py +++ b/setup.py @@ -359,7 +359,8 @@ def get_version(): classifiers=['Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: BSD License', 'Programming Language :: Java', - 'Programming Language :: Python :: 2 :: Only' + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 3' ], license='BSD License', install_requires=['numpy'], From 5ae5fa27902198936e347a8f659bd18f607c1498 Mon Sep 17 00:00:00 2001 From: Lee Kamentsky Date: Wed, 9 Mar 2016 12:24:56 -0800 Subject: [PATCH 13/13] No manifest needed for Windows Python 3 / MSVC 2015 --- setup.py | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/setup.py b/setup.py index 5b218cb..c321db7 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ def in_cwd(basename): def build_cython(): """Compile the pyx files if we have them. - + The git repository has the .pyx files but not the .c files, and the source distributions that are uploaded to PyPI have the .c files and not the .pyx files. (The reason for the latter is that @@ -76,7 +76,7 @@ def get_jvm_include_dirs(): elif is_mac: where_jni_h_is_post_6 = os.path.join(java_home, 'include') if os.path.isfile(os.path.join(where_jni_h_is_post_6, "jni.h")): - + include_dirs += [where_jni_h_is_post_6, os.path.join(java_home, 'include', 'darwin')] else: @@ -84,9 +84,9 @@ def get_jvm_include_dirs(): elif is_linux: include_dirs += [os.path.join(java_home,'include'), os.path.join(java_home,'include','linux')] - + return include_dirs - + def ext_modules(): extensions = [] extra_link_args = None @@ -108,7 +108,7 @@ def ext_modules(): # Build libjvm from jvm.dll on Windows. # This assumes that we're using mingw32 for build # - cmd = ["dlltool", "--dllname", + cmd = ["dlltool", "--dllname", os.path.join(jdk_home,"jre\\bin\\client\\jvm.dll"), "--output-lib","libjvm.a", "--input-def","jvm.def", @@ -202,7 +202,7 @@ def build_jar_from_sources(self, jar, sources): jar_dir = os.path.dirname(self.get_ext_fullpath(jar)) jar = os.path.join(jar_dir, jar_filename) jar_command = [find_jar_cmd(), 'cf', package_path(jar)] - + javac_loc = find_javac_cmd() dirty_jar = False javac_command = [javac_loc, "-source", "6", "-target", "6"] @@ -210,7 +210,7 @@ def build_jar_from_sources(self, jar, sources): javac_command.append(package_path(source)) if needs_compilation(jar, source): dirty_jar = True - + self.spawn(javac_command) if dirty_jar: if not os.path.exists(os.path.dirname(jar)): @@ -220,11 +220,11 @@ def build_jar_from_sources(self, jar, sources): java_klass_path = klass[klass.index(os.path.sep) + 1:].replace(os.path.sep, "/") jar_command.extend(['-C', package_path('java'), java_klass_path]) self.spawn(jar_command) - + def build_java2cpython(self): sources = self.java2cpython_sources distutils.log.info("building java2cpython library") - + # First, compile the source code to object files in the library # directory. (This should probably change to putting object @@ -236,12 +236,13 @@ def build_java2cpython(self): library_dirs = [python_lib_dir] output_dir = os.path.join(os.path.dirname( self.get_ext_fullpath("javabridge.jars")), "jars") - export_symbols = ['Java_org_cellprofiler_javabridge_CPython_exec'] + export_symbols = ['Java_org_cellprofiler_javabridge_CPython_exec'] objects = self.compiler.compile(sources, output_dir=self.build_temp, include_dirs=include_dirs, debug=self.debug) - extra_postargs = ["/MANIFEST"] if sys.platform == 'win32' else None + needs_manifest = sys.platform == 'win32' and sys.version_info.major == 2 + extra_postargs = ["/MANIFEST"] if needs_manifest else None self.compiler.link( CCompiler.SHARED_OBJECT, objects, lib_name, @@ -250,7 +251,7 @@ def build_java2cpython(self): library_dirs=library_dirs, export_symbols=export_symbols, extra_postargs=extra_postargs) - if sys.platform == 'win32': + if needs_manifest: temp_dir = os.path.dirname(objects[0]) manifest_name = lib_name +".manifest" lib_path = os.path.join(output_dir, lib_name) @@ -260,7 +261,7 @@ def build_java2cpython(self): out_arg = '-outputresource:%s;2' % lib_path try: self.compiler.spawn([ - 'mt.exe', '-nologo', '-manifest', manifest_file, + 'mt.exe', '-nologo', '-manifest', manifest_file, out_arg]) except DistutilsExecError as msg: raise LinkError(msg) @@ -275,34 +276,34 @@ def get_java2cpython_libdest(self): python_lib_dir = sysconfig.get_config_var('LIBDIR') lib_name = "libjava2cpython" + SO return python_lib_dir, lib_name - + def build_jar_from_single_source(self, jar, source): self.build_jar_from_sources(jar, [source]) - + def build_runnablequeue(self): jar = 'javabridge.jars.runnablequeue' source = 'java/org/cellprofiler/runnablequeue/RunnableQueue.java' self.build_jar_from_single_source(jar, source) - + def build_cpython(self): jar = 'javabridge.jars.cpython' sources = [ 'java/org/cellprofiler/javabridge/CPython.java', 'java/org/cellprofiler/javabridge/CPythonInvocationHandler.java'] self.build_jar_from_sources(jar, sources) - + def build_test(self): jar = 'javabridge.jars.test' source = 'java/org/cellprofiler/javabridge/test/RealRect.java' self.build_jar_from_single_source(jar, source) - + def build_java(self): self.build_runnablequeue() self.build_test() self.build_cpython() - + def get_version(): """Get version from git or file system. @@ -316,19 +317,19 @@ def get_version(): if os.path.exists(os.path.join(os.path.dirname(__file__), '.git')): import subprocess try: - git_version = subprocess.Popen(['git', 'describe'], + git_version = subprocess.Popen(['git', 'describe'], stdout=subprocess.PIPE).communicate()[0].strip().decode('utf-8') except: pass - version_file = os.path.join(os.path.dirname(__file__), 'javabridge', + version_file = os.path.join(os.path.dirname(__file__), 'javabridge', '_version.py') if os.path.exists(version_file): with open(version_file) as f: cached_version_line = f.read().strip() try: # From http://stackoverflow.com/a/3619714/17498 - cached_version = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", + cached_version = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", cached_version_line, re.M).group(1) except: raise RuntimeError("Unable to find version in %s" % version_file)