From 761c86a003b9e39e4e69e2d614919279321adaec Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sun, 2 Sep 2018 00:20:50 -0700 Subject: [PATCH 001/235] added .pyc and .pyo to gitignore and removed shapefile.pyc from repository --- .gitignore | 3 +++ shapefile.pyc | Bin 60813 -> 0 bytes 2 files changed, 3 insertions(+) delete mode 100644 shapefile.pyc diff --git a/.gitignore b/.gitignore index 8d5646b..1e2dfa1 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ shapefiles/test/latin_as_utf8.shx shapefiles/test/null.dbf shapefiles/test/null.shp shapefiles/test/null.shx + +*.py[cod] +__pycache__/ diff --git a/shapefile.pyc b/shapefile.pyc deleted file mode 100644 index e09312aa863247e68c3ceced7c79601ea2de8b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60813 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 Date: Sat, 8 Sep 2018 08:44:06 -0700 Subject: [PATCH 002/235] add pytest to requirements for tests, update travis build to run compileall and pytest --- .travis.yml | 3 +++ requirements.test.txt | 1 + tests/test_shapefile.py | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 requirements.test.txt create mode 100644 tests/test_shapefile.py diff --git a/.travis.yml b/.travis.yml index 84d37ce..50d8185 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,9 +8,12 @@ python: install: - pip install . + - pip install -r requirements.test.txt script: + - python -m compileall *.py - python shapefile.py + - python -m pytest deploy: provider: pypi diff --git a/requirements.test.txt b/requirements.test.txt new file mode 100644 index 0000000..2acaae0 --- /dev/null +++ b/requirements.test.txt @@ -0,0 +1 @@ +pytest==3.7.4 diff --git a/tests/test_shapefile.py b/tests/test_shapefile.py new file mode 100644 index 0000000..c2d6a13 --- /dev/null +++ b/tests/test_shapefile.py @@ -0,0 +1,21 @@ +""" +This module tests the functionality of shapefile.py. +""" +# std lib imports + +# third party imports +import pytest + +# our imports +import shapefile + + +def test_empty_shape_geo_interface(): + """ + Assert that calling __geo_interface__ + on a Shape with no points or parts + raises an Exception. + """ + shape = shapefile.Shape() + with pytest.raises(Exception): + shape.__geo_interface__ From be7b9d21d7b1015a89b681e97a58cb7ad8a70b48 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sun, 16 Sep 2018 00:19:32 -0700 Subject: [PATCH 003/235] test that the reader context manager closes open files; test that the shapefile type and length are correct --- test_shapefile.py | 58 +++++++++++++++++++++++++++++++++++++++++ tests/test_shapefile.py | 21 --------------- 2 files changed, 58 insertions(+), 21 deletions(-) create mode 100644 test_shapefile.py delete mode 100644 tests/test_shapefile.py diff --git a/test_shapefile.py b/test_shapefile.py new file mode 100644 index 0000000..73720c0 --- /dev/null +++ b/test_shapefile.py @@ -0,0 +1,58 @@ +""" +This module tests the functionality of shapefile.py. +""" +# std lib imports + +# third party imports +import pytest + +# our imports +import shapefile + + +def test_empty_shape_geo_interface(): + """ + Assert that calling __geo_interface__ + on a Shape with no points or parts + raises an Exception. + """ + shape = shapefile.Shape() + with pytest.raises(Exception): + shape.__geo_interface__ + + +def test_reader_context_manager(): + """ + Assert that the Reader context manager + closes the shp, shx, and dbf files + on exit. + """ + # note uses an actual shapefile from + # the projects "shapefiles" directory + with shapefile.Reader("shapefiles/blockgroups") as shp: + pass + + assert shp.shp.closed is True + assert shp.dbf.closed is True + assert shp.shx.closed is True + + +def test_reader_shapefile_type(): + """ + Assert that the type of the shapefile + is returned correctly. + """ + with shapefile.Reader("shapefiles/blockgroups") as shp: + assert shp.shapeType is 5 # 5 means Polygon + assert shp.shapeType is shapefile.POLYGON + assert shp.shapeTypeName is "POLYGON" + + +def test_reader_shapefile_length(): + """ + Assert that the length the reader gives us + matches up with the number of records + in the file. + """ + with shapefile.Reader("shapefiles/blockgroups") as shp: + assert len(shp) == len(shp.shapes()) diff --git a/tests/test_shapefile.py b/tests/test_shapefile.py deleted file mode 100644 index c2d6a13..0000000 --- a/tests/test_shapefile.py +++ /dev/null @@ -1,21 +0,0 @@ -""" -This module tests the functionality of shapefile.py. -""" -# std lib imports - -# third party imports -import pytest - -# our imports -import shapefile - - -def test_empty_shape_geo_interface(): - """ - Assert that calling __geo_interface__ - on a Shape with no points or parts - raises an Exception. - """ - shape = shapefile.Shape() - with pytest.raises(Exception): - shape.__geo_interface__ From 2502b20de8d3bfd842eb55f135621efcf1ce4804 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sun, 23 Sep 2018 01:05:56 -0700 Subject: [PATCH 004/235] tests for reader fields and accessing record attributes --- test_shapefile.py | 70 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 57 insertions(+), 13 deletions(-) diff --git a/test_shapefile.py b/test_shapefile.py index 73720c0..41f6e61 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -20,7 +20,6 @@ def test_empty_shape_geo_interface(): with pytest.raises(Exception): shape.__geo_interface__ - def test_reader_context_manager(): """ Assert that the Reader context manager @@ -29,24 +28,22 @@ def test_reader_context_manager(): """ # note uses an actual shapefile from # the projects "shapefiles" directory - with shapefile.Reader("shapefiles/blockgroups") as shp: + with shapefile.Reader("shapefiles/blockgroups") as sf: pass - assert shp.shp.closed is True - assert shp.dbf.closed is True - assert shp.shx.closed is True - + assert sf.shp.closed is True + assert sf.dbf.closed is True + assert sf.shx.closed is True def test_reader_shapefile_type(): """ Assert that the type of the shapefile is returned correctly. """ - with shapefile.Reader("shapefiles/blockgroups") as shp: - assert shp.shapeType is 5 # 5 means Polygon - assert shp.shapeType is shapefile.POLYGON - assert shp.shapeTypeName is "POLYGON" - + with shapefile.Reader("shapefiles/blockgroups") as sf: + assert sf.shapeType is 5 # 5 means Polygon + assert sf.shapeType is shapefile.POLYGON + assert sf.shapeTypeName is "POLYGON" def test_reader_shapefile_length(): """ @@ -54,5 +51,52 @@ def test_reader_shapefile_length(): matches up with the number of records in the file. """ - with shapefile.Reader("shapefiles/blockgroups") as shp: - assert len(shp) == len(shp.shapes()) + with shapefile.Reader("shapefiles/blockgroups") as sf: + assert len(sf) == len(sf.shapes()) + +def test_shape_metadata(): + with shapefile.Reader("shapefiles/blockgroups") as sf: + shape = sf.shape(0) + assert shape.shapeType is 5 # Polygon + assert shape.shapeType is shapefile.POLYGON + assert sf.shapeTypeName is "POLYGON" + +def test_reader_fields(): + """ + Assert that the reader's fields attribute + gives the shapefile's fields as a list. + Assert that each field has a name, + type, field length, and decimal length. + """ + with shapefile.Reader("shapefiles/blockgroups") as sf: + fields = sf.fields + assert isinstance(fields, list) + + field = fields[0] + assert isinstance(field[0], str) # field name + assert field[1] in ["C", "N", "F", "L", "D", "M"] # field type + assert isinstance(field[2], int) # field length + assert isinstance(field[3], int) # decimal length + +def test_records_match_shapes(): + """ + Assert that the number of records matches + the number of shapes in the shapefile. + """ + with shapefile.Reader("shapefiles/blockgroups") as sf: + records = sf.records() + shapes = sf.shapes() + assert len(records) == len(shapes) + +def test_record_attributes(): + """ + Assert that record values can be accessed as + attributes and dictionary items. + """ + # note + # second element in fields matches first element + # in record because records dont have DeletionFlag + with shapefile.Reader("shapefiles/blockgroups") as sf: + field_name = sf.fields[1][0] + record = sf.record(0) + assert record[0] == record[field_name] == getattr(record, field_name) From c76568a50c931103f0a814c5b9fecc61331711e6 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sat, 20 Oct 2018 03:00:15 -0700 Subject: [PATCH 005/235] test shaperecords, as_dict, and oid --- test_shapefile.py | 64 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/test_shapefile.py b/test_shapefile.py index 41f6e61..c2a8306 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -100,3 +100,67 @@ def test_record_attributes(): field_name = sf.fields[1][0] record = sf.record(0) assert record[0] == record[field_name] == getattr(record, field_name) + +def test_record_as_dict(): + """ + Assert that a record object can be converted + into a dictionary and data remains correct. + """ + with shapefile.Reader("shapefiles/blockgroups") as sf: + record = sf.record(0) + as_dict = record.as_dict() + + assert len(record) == len(as_dict) + for key, value in as_dict.items(): + assert record[key] == value + +def test_record_oid(): + """ + Assert that the record's oid attribute returns + its index in the shapefile. + """ + with shapefile.Reader("shapefiles/blockgroups") as sf: + record = sf.record(0) + assert record.oid is 0 + +def test_shaperecords_shaperecord(): + """ + Assert that shapeRecords returns a list of + ShapeRecord objects. + Assert that shapeRecord returns a single + ShapeRecord at the given index. + """ + with shapefile.Reader("shapefiles/blockgroups") as sf: + shaperecs = sf.shapeRecords() + shaperec = sf.shapeRecord(0) + should_match = shaperecs[0] + + # assert record is equal + assert shaperec.record == should_match.record + + # assert shape is equal + shaperec_json = shaperec.shape.__geo_interface__ + should_match_json = should_match.shape.__geo_interface__ + assert shaperec_json == should_match_json + +def test_shaperecord_shape(): + """ + Assert that a ShapeRecord object has a shape + attribute that contains shape data. + """ + with shapefile.Reader("shapefiles/blockgroups") as sf: + shaperec = sf.shapeRecord(3) + shape = shaperec.shape + point = shape.points[0] + assert len(point) is 2 + +def test_shaperecord_record(): + """ + Assert that a ShapeRecord object has a record + attribute that contains record data. + """ + with shapefile.Reader("shapefiles/blockgroups") as sf: + shaperec = sf.shapeRecord(3) + record = shaperec.record + + assert record[1:3] == ['060750601001', 4715] From a04f04011bc63f315f826b55b0ba86f35918233b Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sun, 23 Dec 2018 08:09:27 -0800 Subject: [PATCH 006/235] tests for writing just a shp file, and test shells for writing just a shx file, dbf file --- test_shapefile.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/test_shapefile.py b/test_shapefile.py index c2a8306..c27fb75 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -2,6 +2,7 @@ This module tests the functionality of shapefile.py. """ # std lib imports +import os.path # third party imports import pytest @@ -20,6 +21,7 @@ def test_empty_shape_geo_interface(): with pytest.raises(Exception): shape.__geo_interface__ + def test_reader_context_manager(): """ Assert that the Reader context manager @@ -35,6 +37,7 @@ def test_reader_context_manager(): assert sf.dbf.closed is True assert sf.shx.closed is True + def test_reader_shapefile_type(): """ Assert that the type of the shapefile @@ -45,6 +48,7 @@ def test_reader_shapefile_type(): assert sf.shapeType is shapefile.POLYGON assert sf.shapeTypeName is "POLYGON" + def test_reader_shapefile_length(): """ Assert that the length the reader gives us @@ -54,6 +58,7 @@ def test_reader_shapefile_length(): with shapefile.Reader("shapefiles/blockgroups") as sf: assert len(sf) == len(sf.shapes()) + def test_shape_metadata(): with shapefile.Reader("shapefiles/blockgroups") as sf: shape = sf.shape(0) @@ -61,6 +66,7 @@ def test_shape_metadata(): assert shape.shapeType is shapefile.POLYGON assert sf.shapeTypeName is "POLYGON" + def test_reader_fields(): """ Assert that the reader's fields attribute @@ -78,6 +84,7 @@ def test_reader_fields(): assert isinstance(field[2], int) # field length assert isinstance(field[3], int) # decimal length + def test_records_match_shapes(): """ Assert that the number of records matches @@ -88,6 +95,7 @@ def test_records_match_shapes(): shapes = sf.shapes() assert len(records) == len(shapes) + def test_record_attributes(): """ Assert that record values can be accessed as @@ -101,6 +109,7 @@ def test_record_attributes(): record = sf.record(0) assert record[0] == record[field_name] == getattr(record, field_name) + def test_record_as_dict(): """ Assert that a record object can be converted @@ -114,6 +123,7 @@ def test_record_as_dict(): for key, value in as_dict.items(): assert record[key] == value + def test_record_oid(): """ Assert that the record's oid attribute returns @@ -123,6 +133,7 @@ def test_record_oid(): record = sf.record(0) assert record.oid is 0 + def test_shaperecords_shaperecord(): """ Assert that shapeRecords returns a list of @@ -143,6 +154,7 @@ def test_shaperecords_shaperecord(): should_match_json = should_match.shape.__geo_interface__ assert shaperec_json == should_match_json + def test_shaperecord_shape(): """ Assert that a ShapeRecord object has a shape @@ -154,6 +166,7 @@ def test_shaperecord_shape(): point = shape.points[0] assert len(point) is 2 + def test_shaperecord_record(): """ Assert that a ShapeRecord object has a record @@ -164,3 +177,46 @@ def test_shaperecord_record(): record = shaperec.record assert record[1:3] == ['060750601001', 4715] + + +def test_write_shp_only(tmpdir): + """ + Assert that specifying only the + shp argument to the shapefile writer + creates just a shp file. + """ + filename = tmpdir.join("test.shp").strpath + with shapefile.Writer(shp=filename) as writer: + pass + + # assert test.shp exists + assert os.path.exists(filename) + + # assert test.shx does not exist + assert not os.path.exists(tmpdir.join("test.shx")) + + # assert test.dbf does not exist + assert not os.path.exists(tmpdir.join("test.dbf")) + + +def test_write_shx_only(): + """ + """ + pass + +def test_write_dbf_only(): + """ + """ + pass + + +def test_write_default_shp_shpx_dbf(): + """ + """ + pass + + +def test_write_shapefile_extension_ignored(): + """ + """ + pass From 4296b19780e09b107e21dc65dd60205712d6cc1e Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sat, 5 Jan 2019 18:04:41 -0800 Subject: [PATCH 007/235] tests for writer's arguments --- test_shapefile.py | 72 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 9 deletions(-) diff --git a/test_shapefile.py b/test_shapefile.py index c27fb75..79a0ea7 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -181,7 +181,7 @@ def test_shaperecord_record(): def test_write_shp_only(tmpdir): """ - Assert that specifying only the + Assert that specifying just the shp argument to the shapefile writer creates just a shp file. """ @@ -199,24 +199,78 @@ def test_write_shp_only(tmpdir): assert not os.path.exists(tmpdir.join("test.dbf")) -def test_write_shx_only(): +def test_write_shx_only(tmpdir): """ + Assert that specifying just the + shx argument to the shapefile writer + creates just a shx file. """ - pass + filename = tmpdir.join("test.shx").strpath + with shapefile.Writer(shx=filename) as writer: + pass + + # assert test.shx exists + assert os.path.exists(filename) + + # assert test.shp does not exist + assert not os.path.exists(tmpdir.join("test.shp")) + + # assert test.dbf does not exist + assert not os.path.exists(tmpdir.join("test.dbf")) + -def test_write_dbf_only(): +def test_write_dbf_only(tmpdir): """ + Assert that specifying just the + dbf argument to the shapefile writer + creates just a dbf file. """ - pass + filename = tmpdir.join("test.dbf").strpath + with shapefile.Writer(dbf=filename) as writer: + pass + + # assert test.dbf exists + assert os.path.exists(filename) + + # assert test.shp does not exist + assert not os.path.exists(tmpdir.join("test.shp")) + + # assert test.shx does not exist + assert not os.path.exists(tmpdir.join("test.shx")) -def test_write_default_shp_shpx_dbf(): +def test_write_default_shp_shx_dbf(tmpdir): """ + Assert that creating the shapefile writer without + specifying the shp, shx, or dbf arguments + creates a set of shp, shx, and dbf files. """ - pass + filename = tmpdir.join("test").strpath + with shapefile.Writer(filename) as writer: + pass + + # assert shp, shx, dbf files exist + assert os.path.exists(filename + ".shp") + assert os.path.exists(filename + ".shx") + assert os.path.exists(filename + ".dbf") -def test_write_shapefile_extension_ignored(): +def test_write_shapefile_extension_ignored(tmpdir): """ + Assert that the filename's extension is + ignored when creating a shapefile. """ - pass + base = "test" + ext = ".abc" + filename = tmpdir.join(base + ext).strpath + with shapefile.Writer(filename) as writer: + pass + + # assert shp, shx, dbf files exist + basepath = tmpdir.join(base).strpath + assert os.path.exists(basepath + ".shp") + assert os.path.exists(basepath + ".shx") + assert os.path.exists(basepath + ".dbf") + + # assert test.abc does not exist + assert not os.path.exists(basepath + ext) From 84238998815579a01290a53aeff3f7309df223b7 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 4 Feb 2019 19:42:35 -0500 Subject: [PATCH 008/235] Support for unicode field names --- __pycache__/shapefile.cpython-37.pyc | Bin 0 -> 51299 bytes shapefile.py | 12 ++++++------ shapefile.pyc | Bin 60793 -> 60816 bytes shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 33 -> 33 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 33 -> 33 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 33 -> 33 bytes shapefiles/test/testfile.dbf | Bin 33 -> 33 bytes 16 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 __pycache__/shapefile.cpython-37.pyc diff --git a/__pycache__/shapefile.cpython-37.pyc b/__pycache__/shapefile.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5564c30396f03241e772a4e6815a6d05587975b GIT binary patch literal 51299 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 literal 0 HcmV?d00001 diff --git a/shapefile.py b/shapefile.py index f48fca6..4323f10 100644 --- a/shapefile.py +++ b/shapefile.py @@ -856,9 +856,9 @@ def __dbfHeader(self): else: idx = len(fieldDesc[name]) - 1 fieldDesc[name] = fieldDesc[name][:idx] - fieldDesc[name] = u(fieldDesc[name], "ascii") + fieldDesc[name] = u(fieldDesc[name], self.encoding, self.encodingErrors) fieldDesc[name] = fieldDesc[name].lstrip() - fieldDesc[1] = u(fieldDesc[1], "ascii") + fieldDesc[1] = u(fieldDesc[1], 'ascii') self.fields.append(fieldDesc) terminator = dbf.read(1) if terminator != b"\r": @@ -1269,7 +1269,7 @@ def __dbfHeader(self): year -= 1900 # Remove deletion flag placeholder from fields for field in self.fields: - if str(field[0]).startswith("Deletion"): + if field[0].startswith("Deletion"): self.fields.remove(field) numRecs = self.recNum numFields = len(self.fields) @@ -1284,10 +1284,10 @@ def __dbfHeader(self): # Field descriptors for field in self.fields: name, fieldType, size, decimal = field - name = b(name, 'ascii', self.encodingErrors) + name = b(name, self.encoding, self.encodingErrors) name = name.replace(b' ', b'_') name = name.ljust(11).replace(b' ', b'\x00') - fieldType = b(fieldType, 'ascii', self.encodingErrors) + fieldType = b(fieldType, 'ascii') size = int(size) fld = pack('<11sc4xBB14x', name, fieldType, size, decimal) f.write(fld) @@ -1833,7 +1833,7 @@ def summarize(self): # run tests runner = doctest.DocTestRunner(checker=Py23DocChecker(), verbose=verbosity) with open("README.md","rb") as fobj: - test = doctest.DocTestParser().get_doctest(string=fobj.read().decode("utf8"), globs={}, name="README", filename="README.md", lineno=0) + test = doctest.DocTestParser().get_doctest(string=fobj.read().decode("utf8").replace('\r\n','\n'), globs={}, name="README", filename="README.md", lineno=0) failure_count, test_count = runner.run(test) # print results diff --git a/shapefile.pyc b/shapefile.pyc index ae245f3610e51918a8f57d9554561370059a78c3..f2acdc2872f8940527249d92b57d159d67c0d531 100644 GIT binary patch delta 1653 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 delta 13 UcmZ3&wuFs^xr~!(BZ~qv02aCewEzGB diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index cc5071c87af22b3dd711443772920b9b00058a6c..f213ace5646c771f986b1d0384f2a959d6cc0567 100644 GIT binary patch literal 33 UcmZQBXJTOh0!0Q!5QPDF0TXusumAu6 literal 33 UcmZQB<78q00!0Q!5QPDF0Tc89v;Y7A diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index 72790045798930337c5cb169660493b5435a1d27..70e336e713de8e23c0998353e1dbefb5a0a27984 100644 GIT binary patch delta 12 TcmZo>YGz_#E@xty$nqZm5lI6h delta 12 TcmZo>YGz_#F5_gH$nqZm5ncl) diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index d808be358111e5ec0d194d2f7a35627bc31312ab..be754ccc0b8cc0c8ba32c8860bb04c29286744ca 100644 GIT binary patch delta 10 RcmXRZVPP(3VwuQN000f@0&)NV delta 10 RcmXRZVPP)gWSYoQ000gD0(JlZ diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index 215f59464c74172e80b1a3c6f16e274b94fe64fb..bd73d05afd175914b27f8f900c26681958ef9668 100644 GIT binary patch delta 10 RcmXRZVPP(3VwuQN000f@0&)NV delta 10 RcmXRZVPP)gWSYoQ000gD0(JlZ diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index bbd55380e91726c34685ff2670269a4462e4c14e..b64a800eb683b29cca3fe7fa65a6c4d773f553e5 100644 GIT binary patch delta 10 RcmXRZVPP(3VwuQN000f@0&)NV delta 10 RcmXRZVPP)gWSYoQ000gD0(JlZ diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index af4049304af5cd3aed9f09c67ca736a56abc49c3..46f6a8081d6911f4b8911dbae455b1ed6a8db1c8 100644 GIT binary patch delta 10 RcmXRZVPP(3VwuQN000f@0&)NV delta 10 RcmXRZVPP)gWSYoQ000gD0(JlZ diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 0b2570ed59dee78c3bd67578d12ad20c465c5fe5..c0d96da22e8d6003fc13594c3d7a06a0aca2a80f 100644 GIT binary patch delta 10 RcmXRZVPP(3VwuQN000f@0&)NV delta 10 RcmXRZVPP)gWSYoQ000gD0(JlZ diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index cc5071c87af22b3dd711443772920b9b00058a6c..f213ace5646c771f986b1d0384f2a959d6cc0567 100644 GIT binary patch literal 33 UcmZQBXJTOh0!0Q!5QPDF0TXusumAu6 literal 33 UcmZQB<78q00!0Q!5QPDF0Tc89v;Y7A diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index 994eddce27d45153b824695cda5e37ee2df6a50e..296e4fafe54e88b4bf9751e18242f828f2df3211 100644 GIT binary patch delta 10 RcmXRZVPP(3VwuQN000f@0&)NV delta 10 RcmXRZVPP)gWSYoQ000gD0(JlZ diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 9729fad5d7a75dbde087ac2a3973a1a795ded849..1541e21edb298f380810b8c157be9187acf906f0 100644 GIT binary patch delta 10 RcmXRZVPP(3VwuQN000f@0&)NV delta 10 RcmXRZVPP)gWSYoQ000gD0(JlZ diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index cc5071c87af22b3dd711443772920b9b00058a6c..f213ace5646c771f986b1d0384f2a959d6cc0567 100644 GIT binary patch literal 33 UcmZQBXJTOh0!0Q!5QPDF0TXusumAu6 literal 33 UcmZQB<78q00!0Q!5QPDF0Tc89v;Y7A diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index cc5071c87af22b3dd711443772920b9b00058a6c..f213ace5646c771f986b1d0384f2a959d6cc0567 100644 GIT binary patch literal 33 UcmZQBXJTOh0!0Q!5QPDF0TXusumAu6 literal 33 UcmZQB<78q00!0Q!5QPDF0Tc89v;Y7A From 797e443e4319355c58a1d2654ee7c291dc7d4a26 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 6 Feb 2019 16:09:16 -0500 Subject: [PATCH 009/235] Fixed out-of-bounds m value reading --- __pycache__/shapefile.cpython-37.pyc | Bin 51299 -> 0 bytes shapefile.py | 25 ++++++++++++++++--------- shapefile.pyc | Bin 60816 -> 60940 bytes shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 33 -> 33 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 33 -> 33 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 33 -> 33 bytes shapefiles/test/testfile.dbf | Bin 33 -> 33 bytes 16 files changed, 16 insertions(+), 9 deletions(-) delete mode 100644 __pycache__/shapefile.cpython-37.pyc diff --git a/__pycache__/shapefile.cpython-37.pyc b/__pycache__/shapefile.cpython-37.pyc deleted file mode 100644 index e5564c30396f03241e772a4e6815a6d05587975b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51299 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 diff --git a/shapefile.py b/shapefile.py index 4323f10..15f8641 100644 --- a/shapefile.py +++ b/shapefile.py @@ -748,14 +748,18 @@ def __shape(self): record.z = _Array('d', unpack("<%sd" % nPoints, f.read(nPoints * 8))) # Read m extremes and values if shapeType in (13,15,18,23,25,28,31): - (mmin, mmax) = unpack("<2d", f.read(16)) + if next - f.tell() >= 16: + (mmin, mmax) = unpack("<2d", f.read(16)) # Measure values less than -10e38 are nodata values according to the spec - record.m = [] - for m in _Array('d', unpack("<%sd" % nPoints, f.read(nPoints * 8))): - if m > NODATA: - record.m.append(m) - else: - record.m.append(None) + if next - f.tell() >= nPoints * 8: + record.m = [] + for m in _Array('d', unpack("<%sd" % nPoints, f.read(nPoints * 8))): + if m > NODATA: + record.m.append(m) + else: + record.m.append(None) + else: + record.m = [None for _ in range(nPoints)] # Read a single point if shapeType in (1,11,21): record.points = [_Array('d', unpack("<2d", f.read(16)))] @@ -763,8 +767,11 @@ def __shape(self): if shapeType == 11: record.z = list(unpack("= 8: + (m,) = unpack(" NODATA: record.m = [m] diff --git a/shapefile.pyc b/shapefile.pyc index f2acdc2872f8940527249d92b57d159d67c0d531..0e8366afe1df0229bd449aebe005b5f370c92871 100644 GIT binary patch delta 922 zcmY*W2}o2?6usyDKVQsAozzKUEHtZWu?5MfXroOdEG8&wM|)Q zrLrJW4T}VMdTYOU&FNNhM^TGC#;P=VuXzrZmaMfRxme!uOSJhZ#O3nlWE3uLR`7yL0CR)mP2 zqMxv0kcwy(cJvko$GQ&+^x)Pd5ODIn94`>Z3At6kRDPH@L`Oawg-3x|T<2*83c1qz zR7V+SmV5`AICJH0;2L+WY69-_*|KDyldWrtfwx@lTLgUIj`A5m0uQd}XP}FdHYsX{ ze6hJfMCmeedaP{Save?uIAp=x6-M%9Wn?Ii+ICCB2sU=y1X8$d=X4;09lJINrRT`* zeLy9T-y0>cM`r9ljXLS5iQy>+Y{03XOo{O}nNSlh4^;bbP8Bbqkzdx#wBP~{J6xsX z6F1e)5(wv@V}*ej#J)4HfU~^#T%4{$m+fZ9qL8Ke-my_B<#{ik!)v_MQVc%V4 ztAG>RUIQgEu`Qlgw|_!_&!o^z3PVn8AI}XB#tCfVua7D;?BX@gbb%9G*`c1{Jg2^# t4}9jj&K3;=Wclj`#K;M6%F&X#}9EE7yAGJ delta 751 zcmYLFX-Je&6n*D?U)@doCymVT)luO3)TGEi=ko2h1@{$0ZBP8e37(dQnrh zKm}?Gl9xy{F(|bZMN?XEDNQhoC=2>gioJ;z9tZ9_mviqqw_;eS9#X88Z}V(pUhlYP zJ&>f;GR8C#>m~A^C}P^+NV7>19HSyG#Y2*EU%;3OE z>{%HY@~;1<^zMJD#2l%$V|s6vt!73?5u6%^NRgfz=;z9^Im^#cEZs$x+DJ+Xm_g0T zq(sBAnPfy=s(XZ7P_TeytC;boBI`{2ag#@iT=eg2*(CLj7O};UG`KauhiucH0Z!sw z`Z2Xx#tYC2V}?l#T5l4O`uW%{67;KGmT(({!VV7Hh1(%W!j}iZjT-dVI5ZTS2@Wrc z%gP6qQM;iESW5|egH^~RQ*J#FO~J+iAgi%pM1>+6EuI6KX!PKD;4u}Jv;ln-b~qjw zrcYvR6S6na=b8F|K)dQsFbLsf*>%QTeT0d-%{y(*)2+W6dj6GSI@dPgZzI z>h=$StC;TSf-gPnbOZva|EbIqN}*kMfK@co9b$>4>5&K9K&8FSKpchlg#){&u>S;* zMl;W)`#sb(I0@v5uEA*f@!~shfTmv^=P=R!p)v)P^mA0jQQJ5suiH$6IMd>fZ@E_MJjX0A(8kx!$_Bpxmy7^Q diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index 47b5b69088eac092bcd4bfed059eb38bbef5e977..dc94b63d265e846f1e09204e7e435953ec040b42 100644 GIT binary patch delta 13 UcmZ3&wuFs^xtxh@BZ~qv02ZqPvj6}9 delta 13 UcmZ3&wuFs^xtxh*BZ~qv02ZMFu>b%7 diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index f213ace5646c771f986b1d0384f2a959d6cc0567..e12c2fcef061abab283fb5a72eb2fdd21bf4f633 100644 GIT binary patch literal 33 UcmZQBXJTUj0!0Q!5QPDF0TZ(TvH$=8 literal 33 UcmZQBXJTOh0!0Q!5QPDF0TXusumAu6 diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index 70e336e713de8e23c0998353e1dbefb5a0a27984..c188039fc55a8d44de0db1ac4b7e0c0520b474a3 100644 GIT binary patch delta 12 TcmZo>YGz_#E@xt!$nqZm5m5sr delta 12 TcmZo>YGz_#E@xty$nqZm5lI6h diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index be754ccc0b8cc0c8ba32c8860bb04c29286744ca..5da6265429c8583b57864c2787a02fae5581a492 100644 GIT binary patch delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX delta 10 RcmXRZVPP(3VwuQN000f@0&)NV diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index bd73d05afd175914b27f8f900c26681958ef9668..8bf76becb906118627788440f5284158a3fbc142 100644 GIT binary patch delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX delta 10 RcmXRZVPP(3VwuQN000f@0&)NV diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index b64a800eb683b29cca3fe7fa65a6c4d773f553e5..70602685c409a14fac84a90b62e11f7069736452 100644 GIT binary patch delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX delta 10 RcmXRZVPP(3VwuQN000f@0&)NV diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index 46f6a8081d6911f4b8911dbae455b1ed6a8db1c8..742d7f099dda8c0355c9c6f6958a2f03a1839a58 100644 GIT binary patch delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX delta 10 RcmXRZVPP(3VwuQN000f@0&)NV diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index c0d96da22e8d6003fc13594c3d7a06a0aca2a80f..08bb8a3416817f47b1ad12676f5a2a54873cbcf2 100644 GIT binary patch delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX delta 10 RcmXRZVPP(3VwuQN000f@0&)NV diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index f213ace5646c771f986b1d0384f2a959d6cc0567..e12c2fcef061abab283fb5a72eb2fdd21bf4f633 100644 GIT binary patch literal 33 UcmZQBXJTUj0!0Q!5QPDF0TZ(TvH$=8 literal 33 UcmZQBXJTOh0!0Q!5QPDF0TXusumAu6 diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index 296e4fafe54e88b4bf9751e18242f828f2df3211..746156bbb19f31e59f465598d52f02e08e105d4b 100644 GIT binary patch delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX delta 10 RcmXRZVPP(3VwuQN000f@0&)NV diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 1541e21edb298f380810b8c157be9187acf906f0..d501d91209bfbb62b3a231c7c45ec10f51fbb3c0 100644 GIT binary patch delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX delta 10 RcmXRZVPP(3VwuQN000f@0&)NV diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index f213ace5646c771f986b1d0384f2a959d6cc0567..e12c2fcef061abab283fb5a72eb2fdd21bf4f633 100644 GIT binary patch literal 33 UcmZQBXJTUj0!0Q!5QPDF0TZ(TvH$=8 literal 33 UcmZQBXJTOh0!0Q!5QPDF0TXusumAu6 diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index f213ace5646c771f986b1d0384f2a959d6cc0567..e12c2fcef061abab283fb5a72eb2fdd21bf4f633 100644 GIT binary patch literal 33 UcmZQBXJTUj0!0Q!5QPDF0TZ(TvH$=8 literal 33 UcmZQBXJTOh0!0Q!5QPDF0TXusumAu6 From 4cebc4be76256a8b76f1bd7f9dcbb70f8912f0e3 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 6 Feb 2019 17:11:08 -0500 Subject: [PATCH 010/235] Fix record autocomplete py3 bug Also wasn't showing the list attributes before --- shapefile.py | 5 +++-- shapefile.pyc | Bin 60940 -> 60924 bytes 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/shapefile.py b/shapefile.py index 15f8641..fdb4518 100644 --- a/shapefile.py +++ b/shapefile.py @@ -467,8 +467,9 @@ def __dir__(self): :return: List of method names and fields """ - attrs = [attr for attr in vars(type(self)) if not attr.startswith('_')] - return attrs + self.__field_positions.values() # plus field names (random order) + default = list(dir(type(self))) # default list methods and attributes of this class + fnames = list(self.__field_positions.keys()) # plus field names (random order) + return default + fnames class ShapeRecord(object): """A ShapeRecord object containing a shape along with its attributes.""" diff --git a/shapefile.pyc b/shapefile.pyc index 0e8366afe1df0229bd449aebe005b5f370c92871..9d150cfda3a3db180e6349684ef6b618d934b20e 100644 GIT binary patch delta 1900 zcmah}dr(wm6u)O*h=xH50fvI&xC&Sz1YxO(;sb=`f*=l$3_)2@UW+^wg+K5-~D~(oO`}=PF;`k z(PgDZ`MXnp>%3;o{@@A0k|Y`E0m-0{R!CAMJbB89kvOAQN_v%4DL$2v2BZ}V>D4$b zpu?LtBeZIAAct@-N`eJh`Emqj7I8*JusEZnK+8YL0i1FmSdfu9zcAZi(2$+EbpDcz z0`&2T#NrTVM@~r&?%;}RLS{l0cKO6H|4;`26K)BMR!^m`J!pDsxw@LHOXv`GTWu!m zI{PDRx5I#1GUYlB^|))w4z+9~8p*cn$u#hMns3vBpXeBE<} zsF_m&Ynd`334D2}WKpCBZuxNFA!U)s+uX8YdEye-%zjRs1oYculPs{4wI&5AJjFTT zp@|EDgD7hQ_Dh~hna)m5hZfeH9IbH`+DTj?V%W7fI6a&0u_FB}v@_j;feKG?RYI|b zYyaaHi!*0H9e$bVPDxzKG{7Jhv(T4U#jq%!@YbR%7>%)6cb!Ejaqer zr$7iht@i-m7ZqG~mq4rFRse@u-d(86RzU=tlkKm995m*R@wDF$7d-o0D}O~ilN&{~ z9+VgB+(?ABKWBxjdNkx603Gws4+d8u7C(5H3qIyx!(|0Ekk?`;QEEkizc~AE05LQL zS*02F(ur2G;g+H*Xv9&)epJA?;#yeAt`_US-o920Djg1piKRxhiF~!;)zV*wy%735 z4eS|Q$DZh{V0xWW_uSGuRH8ZKh+%5OZmdo7=8`3?s@gmMZ86AoFG4ZUbyb)7QI zD))kFG?f>^9eiAVg_z3~9T?h42 zisd!TiC?CX&yd^K8LK~}81u~UCqzbTU*-`7xt?3&>C&FAn{^Gtz>NDFI%tC!t${!< z`)nH^0d;tS+Hp|hYIvVDHJTKV!@Spj2vEgZn}#c(39oF}2hG^DIe@ioq`BWGGU1D- zZ&MQ-rVpo`j#J4Cc(+Olxt8fa8mx5USqN%kmR!dyTZ}y7z^$9$B>Q~pNG0uruI=95 zVlNevRP5UPj3qhCGUOh5m&LG~nahsR01w!NoiPgVV3yBd>iVc-iF8HVj^)_fjkzB`qH-3!C0vK_ve>Zqq@KLQoEk^kic_oM z8q=Jv=ZoALI9DA^n&EiwOgs3qBVP>$7{|K4P6Y^MZ?x|Mn9Qzp1OUup13C);V%e&* ztpG_Z>|7W?IxFm|2FPNM&UXUjvi9y<043PoJ%c^`?mj>TyLYil0ky2?a;1_s-``hN z3fS9nV=ib!In0=Pvk*>T_svf!nbPl@;ZNq@drk>je0=LDjK#yZD_|6R=Z66R7MywK v0t{tdKYjtuqT6Tl;)yL-!*2Za3V0aZG;S)lKB-S~6WAw>cJzHo?Fjz>Yvnu- delta 1933 zcmah}dr*{B6#ve*4@9EC2P&e1v(^gIq(X?Pivo%Q3x0q|sSNR6k=L%uLlk-Jvakfp zSw~aS)KSc|k-0vSLet0$ltd|OR8(xnClfOo=4jcycT>}Un)&88=brC(&pG#Z&pl5r z$t;&;O4)tq!A%RAm52SqLj^%d7X$rK5!sx&}cf3Mt&BAIg@?L?Lge zP$CLz=qCs|nV^#k<$^FGMlIq)|K1RZMiSHt3I;iaRZ01JX)ZOSl?*Z%ET^EBG0T?% zrzIH-`3AO$8G7{c3P)XlixZ0=IQW59{W?|$df?80iBN%EUNOXTngf6lyBs2wQV1no z!s5VUMJ2U<#m9lS6een2CAX&UcW^ROQ>tNL!B6KjIr4EFq`}}-v`{SEX*DTB@Cu92w-5uIpK{k7q5ozhd5Fj@eM#NYPCN0 za(Q+WR%jPc?~mF=iVbv60`ZP=W%bR7R#8lfwt^0A(ocALp&!)X)|jyrTVuR%rnCrF z6Px4+_+;U1?1@=KRr8PC2UhHjwY(%qVO$~D$o;qkP%+6QE><10ycn>w5-(;3v#gjK zzXBRbPrL@`(Z?p#Koi-U;3vBCeLTV@Mg#_2+B*F6gAiKn%q7XtOtvr4Du;8fhB0^! zI~V22S@c5lk~`rC5|r|~=+3WXWUtM zHG8wt9R}<*N=q3S(P>>4+`xi$*JyG>RaL|V;t03H}w(<+XaqwBn>sIhd=c8aX=z{J>9O6e4h`!?BGdsOs(5qJl6YSnMB zl-#+ISySn?J)1nn`f*^w-Sr)GkmOsZ0A1{A*bH$PgePf7%4`*oM5=5i5weNP#*YCi z$lgukMc9aEHy?rnSoMi7Ik1I3|AV{|Hh+F^+ypK3$9K-hsOWmuu!1O=$@^P}$(&gg z+%+pxsv*VO%UH(0cQnFDvSsH48CdYdZck4>p4enIC@JKpuE<%HDqW_g#NWG#K+{Bk z0phbKN`#T5c(0!`E%v~XU>fYfk%!<-?tPgI^eslWl)_Qc)uNNp#-DL4p5Bq|SdP8n z$e`n2%UyVP@z4QG7AtmttD{jgZIdZCudM=l$Us{y8|v06ixvKqzDx#<8OlGH9EKnA&Y{wzQaY3aTR zP=GDnVdT!w0|2Gu`Y)9tm`VDjav2?dcYEX_d_nrJEe0jm!-U%2m2d*vdUw%kbT^ve zA@TU_oDAN=zMHM!i=W?G4{s9R+fD%07)sF;wcbtX VCU<)(JQdtHJ{2Z9s$Nq#!aqE!MxX!y From 309ea234e277c82a4295b08934e7ed10056aded1 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 6 Feb 2019 17:32:24 -0500 Subject: [PATCH 011/235] More transparent record repr --- .gitignore | 1 + shapefile.py | 4 ++-- shapefile.pyc | Bin 60924 -> 60941 bytes 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 8d5646b..27c11b2 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ shapefiles/test/latin_as_utf8.shx shapefiles/test/null.dbf shapefiles/test/null.shp shapefiles/test/null.shx +__cache__/ \ No newline at end of file diff --git a/shapefile.py b/shapefile.py index fdb4518..d4a9860 100644 --- a/shapefile.py +++ b/shapefile.py @@ -457,8 +457,8 @@ def as_dict(self): """ return dict((f, self[i]) for f, i in self.__field_positions.items()) - def __str__(self): - return 'Record #{} '.format(self.__oid) + def __repr__(self): + return 'Record #{}: {}'.format(self.__oid, list(self)) def __dir__(self): """ diff --git a/shapefile.pyc b/shapefile.pyc index 9d150cfda3a3db180e6349684ef6b618d934b20e..0e97f6454ad74503cb46fc26cbbbff98bdc4d2f2 100644 GIT binary patch delta 1448 zcmah}ZERCz6u#%)dWV~nhS&%tuq{p~o0uq?v1KqvJm=hHO#b+zPtHB( zd7t;3^PbZ?*R&(kny&qspIZ}{&~HCeXHyi#jlbA3gho&zit?tSL_mqFWb}g4t13R1 zicwGOVMK2z*wWru_*hqWMPXOBOCwh+L71RSm`~T+oadV$?_f&Q$;>mxIPCU zDW-C2#lG?$=o7cgZ-OCztC+~iOA&2=U{D<2bQ*fZ3vQo&m>h=8x^)#&;>_k1`XG5s z@$KgDL-8E61A$n)JrIx;TXw0C#=HIU_ifdx(%_e)V}wW5a77 z>JDaAQH&KWmaqlu9dycNr^s3Yd^xJMEqGmZa$A}IHhCB5i{_?nSky$*QcUAY(@`qA zvAG7u#M$Omc;`>e{<#AA&<}KcNNkKO#h5?R0mYopf*28QA@I0ZnWX5!WmR;y&1rR- zIQPm+)90`_*SZ5tp|$O_3p$=lUM^%%Hn!aY2h+HQPbf4_V9KVLW^=LXKjfHKjnh!a z!krDm5@NN*C}%ZmSZwV~;N)KEoGrMI{youI zhr2K=uXknPe@WxrK5!=SsEZQy@|}HT?IuXdytis;QyLDgfIiuA&_^HN^el4_$67e< zjm74L+LBlc$3;Bx1dNIkiIUIQG8*Do^djDQZKpZ%p%9*T0GCpkhPBbHYb-%7l0v8rSF2yvz?Le57&d05Kq&X z%pcj2i{tdl_#;|ADaYuaW@FepAiGXf0FL6h>{iscoBdp?o^Lcia6G&>6n_xe(U#zz zD1CW(?f0Q8t|PRE_O`qc@=l}a<&`rey!WLF8Ts{@Kk{+b&rZ6*5VMmdkP!vvOJGcH zKmULV1G4Vp8ye1I=B7zE4m!CpL+vO!H(((UK zPJb0$u5&Vm^!&0M-%mz=ZCMQ9JxjPa_VL&{0s12 Bh5P^j delta 1422 zcmZWpZA@Eb6u#%)_TnIfW?K{ObZ!x~g2wN_h|x`^k^y(@-c341k#wDH?S#=H2%=pH z^unlX`!ZTJLBXh-Q5W|9*y578>E;p>NsNgx0TVN0vaqo~nivyfJm*}pq5kNT_nz~- z&wDfnxc|YsAYC%}}tj zd(Vd31_n2<)$Af;L`*k4?~W(B+uP;QhyALaB)^Oy!hdXh}%r! zSvEeoONE@AZYZk0JUNdL3=-55)DWbl)mWy%o1)#Qc0ynsTO2mFq4j6uX_%BX+r0o| zqPe9K#$`qjmCm!x|`q>nE`Nc%o%*pw^Z&B7g;YKKmv*A1N;Y;Dx z?27moIV)1nnVA}k>|^TEN5QTyeNSewho1>i)l=a{1_LR{!-g1lI} ze}`v+u9uRPuV-Y>{w44-jng_su6GIYvNx`|{H*#X8Lp`&T=*G}^oN}4*D_no^bW&> z@b^_iTJG$dhr9UZf0P%A%W4%U=hRP#Kz|D7c)tI4$cfzGnlir0c?)@UUyFUrIfAsj`Hg1UjcD=~7?F0;qK}0GH+hNU*NDUUJ8WK|KaF2|?q07ve^%u}dQ@&1?EmTTqZMkXTrLWxz#j&%k*V)SM5e)pg$p(AvM z_I17zG8gb@@_yNJ^+)GbD99g=UMk0#K6|1bY~emx1qE>*Vo^SO(yhX{?D+h$hI7|^ zx)rPW!Rbz%4DT0bTpkX9^=c@~y!iF2C@Qp^yB`^;bE{RP=N<^irLSY_bPmRr?HAW! p59Powb2_f+w#D0FN_H*o26$V3bNL4FaPylfMlR8)ym+M={sB38gq{EZ From b792275a29b1b928ccd94c1f8124a964cc7b60a7 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 6 Feb 2019 18:34:33 -0500 Subject: [PATCH 012/235] Full support for geo interface, incl shapes, shaperec, and shaperecs --- README.md | 41 ++++++++++++++++++++++++++++++----------- shapefile.py | 48 ++++++++++++++++++++++++++++++++++++++++-------- shapefile.pyc | Bin 60941 -> 63137 bytes 3 files changed, 70 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 815dd16..d965023 100644 --- a/README.md +++ b/README.md @@ -229,6 +229,14 @@ or the bounding box area the shapefile covers: 663 >>> sf.bbox [-122.515048, 37.652916, -122.327622, 37.863433] + +Finally, if you would prefer to work with the entire shapefile in a different +format, you can convert all of it to a GeoJSON dictionary, although you may lose +some information in the process, such as z- and m-values: + + + >>> sf.__geo_interface__['type'] + 'FeatureCollection' ### Reading Geometry @@ -330,6 +338,12 @@ where lines and polygons are grouped for you: >>> geoj["type"] 'MultiPolygon' +The results from the shapes() method similiarly supports converting to GeoJSON: + + + >>> shapes.__geo_interface__['type'] + 'GeometryCollection' + ### Reading Records @@ -449,19 +463,24 @@ Let's read the blockgroup key and the population for the 4th blockgroup: >>> shapeRecs[3].record[1:3] ['060750601001', 4715] -Now let's read the first two points for that same record: +The results from the shapeRecords() method is a list-like object that can be easily converted +to GeoJSON through the __geo_interface__: - >>> points = shapeRecs[3].shape.points[0:2] - - >>> len(points) - 2 + >>> shapeRecs.__geo_interface__['type'] + 'FeatureCollection' The shapeRecord() method reads a single shape/record pair at the specified index. To get the 4th shape record from the blockgroups shapefile use the third index: >>> shapeRec = sf.shapeRecord(3) + +Each individual shape record also supports the __geo_interface__ to convert it to a GeoJSON: + + + >>> shapeRec.__geo_interface__['type'] + 'Feature' The blockgroup key and population count: @@ -666,17 +685,17 @@ None is interpreted as missing. >>> r = shapefile.Reader('shapefiles/test/dtype') >>> r.record(0) - [True] + Record #0: [True] >>> r.record(1) - [True] + Record #1: [True] >>> r.record(2) - [False] + Record #2: [False] >>> r.record(3) - [False] + Record #3: [False] >>> r.record(4) - [None] + Record #4: [None] >>> r.record(5) - [None] + Record #5: [None] You can also add attributes using keyword arguments where the keys are field names. diff --git a/shapefile.py b/shapefile.py index d4a9860..8ff26be 100644 --- a/shapefile.py +++ b/shapefile.py @@ -472,11 +472,46 @@ def __dir__(self): return default + fnames class ShapeRecord(object): - """A ShapeRecord object containing a shape along with its attributes.""" + """A ShapeRecord object containing a shape along with its attributes. + Provides the GeoJSON __geo_interface__ to return a Feature dictionary.""" def __init__(self, shape=None, record=None): self.shape = shape self.record = record + @property + def __geo_interface__(self): + return {'type': 'Feature', + 'properties': self.record.as_dict(), + 'geometry': self.shape.__geo_interface__} + +class Shapes(list): + """A class to hold a list of Shape objects. Subclasses list to ensure compatibility with + former work and allows to use all the optimazations of the builtin list. + In addition to the list interface, this also provides the GeoJSON __geo_interface__ + to return a GeometryCollection dictionary. """ + + def __repr__(self): + return 'Shapes: {}'.format(list(self)) + + @property + def __geo_interface__(self): + return {'type': 'GeometryCollection', + 'geometries': [g.__geo_interface__ for g in self]} + +class ShapeRecords(list): + """A class to hold a list of ShapeRecord objects. Subclasses list to ensure compatibility with + former work and allows to use all the optimazations of the builtin list. + In addition to the list interface, this also provides the GeoJSON __geo_interface__ + to return a FeatureCollection dictionary. """ + + def __repr__(self): + return 'ShapeRecords: {}'.format(list(self)) + + @property + def __geo_interface__(self): + return {'type': 'FeatureCollection', + 'features': [f.__geo_interface__ for f in self]} + class ShapefileException(Exception): """An exception to handle shapefile specific problems.""" pass @@ -586,9 +621,7 @@ def __geo_interface__(self): features = [] for feat in self.iterShapeRecords(): fdict = {'type': 'Feature', - 'properties': dict(*zip(fieldnames, - list(feat.record) - )), + 'properties': dict(zip(fieldnames,feat.record)), 'geometry': feat.shape.__geo_interface__} features.append(fdict) return {'type': 'FeatureCollection', @@ -830,7 +863,7 @@ def shapes(self): shp.seek(0,2) self.shpLength = shp.tell() shp.seek(100) - shapes = [] + shapes = Shapes() while shp.tell() < self.shpLength: shapes.append(self.__shape()) return shapes @@ -1002,9 +1035,8 @@ def shapeRecord(self, i=0): def shapeRecords(self): """Returns a list of combination geometry/attribute records for all records in a shapefile.""" - shapeRecords = [] - return [ShapeRecord(shape=rec[0], record=rec[1]) \ - for rec in zip(self.shapes(), self.records())] + return ShapeRecords([ShapeRecord(shape=rec[0], record=rec[1]) \ + for rec in zip(self.shapes(), self.records())]) def iterShapeRecords(self): """Returns a generator of combination geometry/attribute records for diff --git a/shapefile.pyc b/shapefile.pyc index 0e97f6454ad74503cb46fc26cbbbff98bdc4d2f2..cd33c7e55f380dd07409659a76ac871f377347bb 100644 GIT binary patch delta 6437 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 B!+ih% delta 5146 zcmai13v`WF7Cz^{xqqG-&xk}s2yRHc38EyT#49*aBoTSt8@YMs-W!rMiXz0Tl1;TW zMpe;KYp98yH%Rv&A0u-aL(s2b0iRv%{X{fDHTN4t7I`|Pv#Is5GWoqhi7 z_{OsSk|oq~w~gPF%=CG=qWM1y{u_@!cf^~ahqNVeB2NnYSg}HgbW0G+rH~~;*u6xG zZ36AR6T#1&pIv5DTf&Fg!f@z77mNf^6L#}|DOPAA%}b~h8%6CN2TdcMf~=8y+g_45 z^g^AGzB1Wng?D4S!r-`6AJXYkm(VoslD-NDSEO+;ai6z;9m;Ag!8&kG`9WVp;wmVd zTBiL|8edG^BqP~mBC$$k8r0t4^@R{*) zBOISK2e!w0>qU-|%*-*y`!juH_i@^zShWr^7XueM{=D&*h(GssxS{&aNE08Gyv6paKI1Lst+@lGPMbsdAi5f3aV5NL6*91m{868e4T@-i=yHyNdY!x*YQQ!kv zDIr~ah20zHaUmZuJjLdV+a)^@1f-9OndoVU(ga7gr^4k(EG;T>9)%xSmH4+pBA;B|t<1S1Gyp(!O;?uTnBJ>&rhnC0j^kXB*v~Zj^F8T%O&}ED5J|6?B?28MRq+W?MI-W18{KoOV*y!I`;{hN+kA)V@OS8U(Gb`cbyd?Q*bLoAoj-t%W25@IQ7x^mA+Njp575QlR z0s+mcM(8p>&r0HEW5xVb8A+5i&7UVJf`Bq&(vK-w4>GG*ZZk@=#!95z{_M5#bt5ik zs20WB@CsYVg{Y>O=e$-t4f_%7hZpU`Ft2Crx$>Yf*m2!Uo;Jb?aw+4>3OjToALfC_ zQB-8IKcSWL!NNYBnrM8EfG zGf4QZB#Eazfv9xnS1LztsmngqQL@03uQoz@sYiA&no7f^eu2E|;C|T@xdjr+dt=P` zM9zyq1nR}7M3H^v9&LtoE8yvRcRvp}Or3T+dWvm6y&=v)uwYRpFfwGO% zjcm7+QU7y6UJEadFnL;s`AfFm!0`m*ubybHr%Gu_n%5r@{Vo~bLvT_G`C8k8NoU?D zlFZzaw2`0zrdLgs_3)djnQZ|T=B4I)u?~K$IwEHnhpUIla5m;Ly+dxlCE%;i@!bdC zny$LQwUvadS_O-1{AIaOSL0)mccEd)ywTn?=YwDiAy+;#2lX8dQE#%68Rm9YJ4}{y zH>rodOIJ#O14{=!@go{y-$SS>Q-N@EX|Tzy)6A`7${Vtl>GD})!Lli`f6FGni2gcl z#~TMySX{>jxbj@BY=i~NZ$y93}`<1Tj zk_8Ucjncslit~-^6KV)S1m-Y9eg;QtKatmA^Qve1eMO}vQ(*}--wR3tb>l?*xhEkI z!6hQ>tqYCpNo2=F*(FgMpUy6Jel75A=(1dB^EFZ41FBaqi{tG%%|uc~XHhFrYT>Xa zfOeo8Yu-OM=ilYXh3v#B?R%labqbEoB`mtMKz-d6omi@R!lE?`bb1?ZTi~lTy*s@^ z+8qSD3HA`|h48h(OSqjKp)vJg^%lWN0&0UMTexU%(~$0k`kEkvfCJ|ZnVR2{j#8^? zN#Yarq+uih#mmo?4JXATfU$9j`f5~sCE?-PU>OL(>tdw0F=5>(ub+J-tlhXfglQj- z#wJHw^>LU|-!<|O%^W891Hm%{(-1uLG%a#DJq~pV*4B?1v597S5=0`{d`My#Hj-NJA{&(Uz+ybz5G}ngv6qB|h}k+PGz?OAb#2(RP2YhtJ-y)S^da!crpypZ zWGk}mB)``Pc5z#wf<%!k+?v;oU#_`UD!>3^)C+HElUuf@b&_q=k|LHWtZgQfyq3Ej8?&uFOBf$6LM)AVd+c5 zVo^@NWHUdjaAZD}Eop8GGq!e>$Dnwt!}@2OpADaGeXkcs%*~lDZ7Vuc8Qh+1mq!Ik zi0C*C{I_+GIY#)lAEZ8*LhKI_+dFo#kk}OgzqEuXt2F``H?;R%n`_Y-W3r2%_BQlC>8jp77UEsKBM@3~* zTrJv8orUdhgmfB8-rVNcrg?_)8M-e>o-hXQyQT%{WaL37r$2%lM>xI%gZ4+5yEDVK zK*s*iB)*9iIL}#iIf_dcHgjz>Iq~+RNa{#yq97CzOZ6h@@y%21pmG2B_TQtDNn27; zjGfM{9zf86K^^(U@x{43r=!R|s|wp-AfzA2(KTG@UtY$E12r<7?`aFkhtVcsw8>b4 z7hwLu89LM9CLB7LA-fpujjO)$BHa7aHZQ6vWE|~b9C>$*)`=6`!d=d9G|X-sDp$eU z#=cAVx)G^7Z4ff&P(N{HW)cHTb}*gzQ-pa>Ic!BoPX0~OjiDHcm?p73ruPKYax(Lr zB~Ev~%E0lXCW*y}gVNf>fXqyHewq0g^fQ(ppD&|0YQF!RUtG0yui^b@B~?SLZCGuE zc_;kk+eZG0(Ut*IaDqQqR4BS7+c@I?mQb!~J$!VsEP!i86kC{GM9+}57Uf1``v)Z! z8?C39M328YlrQN{qYb~I_}4+6@`GWgx=VkUeX2Ad0H;0p6SI(L=TA9x(-Y!P2aV^W zG3U6xv9!`--kEgb=kqwaGtZbq(eLlQT)AFCCRa5KH!aB+9SJ z)y^~#Oz;baPKSG^`?Z}*GyKI8N>WvGGO-@^oIJB0myPvjs-@1M#z32Mc~;_L52!qM z(prX6G$c0d)Xm-oH<}9NAeejpcF^NyXR;ukA}Tk#?nE6GL zvF!31Q(GvP8I@PNXlzoTRj)CA`m(o0bMdJI{m`MfqR8Vc%l72vZ#JI$`yLsvgtAU; zM4{E~b2ITT+*Q}YJZZ z*qy0z0~Flp5%xS8ayZmn$Cu{La=1OJqNK#(QpezTcY2RnL+kY>Xot4umvBW1Z)gVX zLvz~@_(TgGuAEZ0(^I8Zg74j_-j5=w_fNFGf(vwm*Y1vziE#Pulm7fc^Ch`Yg+BLe z@+FvY4?5S Date: Tue, 5 Feb 2019 13:05:49 -0800 Subject: [PATCH 013/235] fix small typos in README.md improve consistency of capitalization, fix grammar --- README.md | 77 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index d965023..7b10e73 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PyShp -The Python Shapefile Library (pyshp) reads and writes ESRI Shapefiles in pure Python. +The Python Shapefile Library (PyShp) reads and writes ESRI Shapefiles in pure Python. ![pyshp logo](http://4.bp.blogspot.com/_SBi37QEsCvg/TPQuOhlHQxI/AAAAAAAAAE0/QjFlWfMx0tQ/S350/GSP_Logo.png "PyShp") @@ -38,7 +38,7 @@ The Python Shapefile Library (pyshp) reads and writes ESRI Shapefiles in pure Py # Overview -The Python Shapefile Library (pyshp) provides read and write support for the +The Python Shapefile Library (PyShp) provides read and write support for the Esri Shapefile format. The Shapefile format is a popular Geographic Information System vector data format created by Esri. For more information about this format please read the well-written "ESRI Shapefile Technical @@ -55,9 +55,9 @@ despite the numerous ways to store and exchange GIS data available today. Pyshp is compatible with Python 2.7-3.x. -This document provides examples for using pyshp to read and write shapefiles. However +This document provides examples for using PyShp to read and write shapefiles. However many more examples are continually added to the blog [http://GeospatialPython.com](http://GeospatialPython.com), -and by searching for pyshp on [https://gis.stackexchange.com](https://gis.stackexchange.com). +and by searching for PyShp on [https://gis.stackexchange.com](https://gis.stackexchange.com). Currently the sample census blockgroup shapefile referenced in the examples is available on the GitHub project site at [https://github.com/GeospatialPython/pyshp](https://github.com/GeospatialPython/pyshp). These @@ -123,7 +123,7 @@ Before doing anything you must import the library. The examples below will use a shapefile created from the U.S. Census Bureau Blockgroups data set near San Francisco, CA and available in the git -repository of the pyshp GitHub site. +repository of the PyShp GitHub site. ## Reading Shapefiles @@ -163,7 +163,7 @@ objects are properly closed when done reading the data: You can also load shapefiles from any Python file-like object using keyword arguments to specify any of the three files. This feature is very powerful and -allows you to load shapefiles from a url, from a zip file, serialized object, +allows you to load shapefiles from a url, a zip file, a serialized object, or in some cases a database. @@ -172,8 +172,8 @@ or in some cases a database. >>> r = shapefile.Reader(shp=myshp, dbf=mydbf) Notice in the examples above the shx file is never used. The shx file is a -very simple fixed-record index for the variable length records in the shp -file. This file is optional for reading. If it's available pyshp will use the +very simple fixed-record index for the variable-length records in the shp +file. This file is optional for reading. If it's available PyShp will use the shx file to access shape records a little faster but will do just fine without it. @@ -188,8 +188,8 @@ shapeType attribute. 5 Shape types are represented by numbers between 0 and 31 as defined by the -shapefile specification and listed below. It is important to note that numbering system has -several reserved numbers which have not been used yet therefore the numbers of +shapefile specification and listed below. It is important to note that the numbering system has +several reserved numbers that have not been used yet, therefore the numbers of the existing shape types are not sequential: - NULL = 0 @@ -221,8 +221,8 @@ For convenience, you can also get the name of the shape type as a string: >>> sf.shapeTypeName == 'POLYGON' True -Other pieces of meta-data that we can check includes the number of features, -or the bounding box area the shapefile covers: +Other pieces of meta-data that we can check include the number of features +and the bounding box area the shapefile covers: >>> len(sf) @@ -270,7 +270,8 @@ index which is 7. >>> ['%.3f' % coord for coord in s.bbox] ['-122.450', '37.801', '-122.442', '37.808'] -Each shape record (except Points) contain the following attributes. Records of shapeType Point do not have a bounding box 'bbox'. +Each shape record (except Points) contains the following attributes. Records of +shapeType Point do not have a bounding box 'bbox'. >>> for name in dir(shapes[3]): @@ -328,7 +329,7 @@ Each shape record (except Points) contain the following attributes. Records of s >>> ['%.3f' % coord for coord in shape] ['-122.471', '37.787'] -In most cases, however, if you need to more than just type or bounds checking, you may want +In most cases, however, if you need to do more than just type or bounds checking, you may want to convert the geometry to the more human-readable [GeoJSON format](http://geojson.org), where lines and polygons are grouped for you: @@ -348,7 +349,7 @@ The results from the shapes() method similiarly supports converting to GeoJSON: ### Reading Records A record in a shapefile contains the attributes for each shape in the -collection of geometry. Records are stored in the dbf file. The link between +collection of geometries. Records are stored in the dbf file. The link between geometry and attributes is the foundation of all geographic information systems. This critical link is implied by the order of shapes and corresponding records in the shp geometry file and the dbf attribute file. @@ -778,12 +779,13 @@ even if there is just one line. Also, each line must have at least two points. **Adding a Polygon shape** Similarly to LineString, Polygon shapes consist of multiple polygons, and must be given as a list of polygons. -The main difference being that polygons must have at least 4 points and the last point must be the same as the first. -It's also okay if you forget to do so, PyShp automatically checks and closes the polygons if you don't. +The main difference is that polygons must have at least 4 points and the last point must be the same as the first. +It's also okay if you forget to repeat the first point at the end; PyShp automatically checks and closes the polygons +if you don't. It's important to note that for Polygon shapefiles, your polygon coordinates must be ordered in a clockwise direction. If any of the polygons have holes, then the hole polygon coordinates must be ordered in a counterclockwise direction. -The direction of your polygons determines how shapefile readers will distinguish between polygons outlines and holes. +The direction of your polygons determines how shapefile readers will distinguish between polygon outlines and holes. >>> w = shapefile.Writer('shapefiles/test/polygon') @@ -841,7 +843,7 @@ data lines up with the geometry data. For example: >>> w.record("row", "two") >>> w.point(2, 2) -To help prevent accidental misalignment pyshp has an "auto balance" feature to +To help prevent accidental misalignment PyShp has an "auto balance" feature to make sure when you add either a shape or a record the two sides of the equation line up. This way if you forget to update an entry the shapefile will still be valid and handled correctly by most shapefile @@ -876,7 +878,7 @@ You can create all of the shapes and then create all of the records or vice vers >>> w.recNum == w.shpNum True -If you do not use the autobalance or balance method and forget to manually +If you do not use the autoBalance() or balance() method and forget to manually balance the geometry and attributes the shapefile will be viewed as corrupt by most shapefile software. @@ -886,17 +888,18 @@ most shapefile software. ## 3D and Other Geometry Types -Most shapefiles store conventional 2D points, lines, or polygons. But the shapefile format is also capable of storing -various other types of geometries as well, including complex 3D surfaces and objects. +Most shapefiles store conventional 2D points, lines, or polygons. But the shapefile format is also capable +of storing various other types of geometries as well, including complex 3D surfaces and objects. **Shapefiles with measurement (M) values** -Measured shape types are shapes that include a measurement value at each vertex, for instance speed measurements from a GPS device. -Shapes with measurement (M) values are added with following methods: "pointm", "multipointm", "linem", and "polygonm". -The M-values are specified by adding a third M value to each XY coordinate. Missing or unobserved M-values are specified with a None value, -or by simply omitting the third M-coordinate. - - +Measured shape types are shapes that include a measurement value at each vertex, for instance +speed measurements from a GPS device. Shapes with measurement (M) values are added with the following +methods: "pointm", "multipointm", "linem", and "polygonm". The M-values are specified by adding a +third M value to each XY coordinate. Missing or unobserved M-values are specified with a None value, +or by simply omitting the third M-coordinate. + + >>> w = shapefile.Writer('shapefiles/test/linem') >>> w.field('name', 'C') @@ -913,17 +916,17 @@ Shapefiles containing M-values can be examined in several ways: >>> r = shapefile.Reader('shapefiles/test/linem') - >>> r.mbox # the lower and upper bound of M values in the shapefile + >>> r.mbox # the lower and upper bound of M-values in the shapefile [0.0, 3.0] - >>> r.shape(0).m # flat list of M values + >>> r.shape(0).m # flat list of M-values [0.0, None, 3.0, None, 0.0, None, None] **Shapefiles with elevation (Z) values** Elevation shape types are shapes that include an elevation value at each vertex, for instance elevation from a GPS device. -Shapes with an elevation (Z) values are added with following methods: "pointz", "multipointz", "linez", and "polygonz". +Shapes with elevation (Z) values are added with the following methods: "pointz", "multipointz", "linez", and "polygonz". The Z-values are specified by adding a third Z value to each XY coordinate. Z-values do not support the concept of missing data, but if you omit the third Z-coordinate it will default to 0. Note that Z-type shapes also support measurement (M) values added as a fourth M-coordinate. This too is optional. @@ -935,7 +938,7 @@ as a fourth M-coordinate. This too is optional. >>> w.linez([ ... [[1,5,18],[5,5,20],[5,1,22],[3,3],[1,1]], # line with some omitted Z-values ... [[3,2],[2,6]], # line without any Z-values - ... [[3,2,15,0],[2,6,13,3],[1,9,14,2]] # line with both Z and M-values + ... [[3,2,15,0],[2,6,13,3],[1,9,14,2]] # line with both Z- and M-values ... ]) >>> w.record('linez1') @@ -946,17 +949,17 @@ To examine a Z-type shapefile you can do: >>> r = shapefile.Reader('shapefiles/test/linez') - >>> r.zbox # the lower and upper bound of Z values in the shapefile + >>> r.zbox # the lower and upper bound of Z-values in the shapefile [0.0, 22.0] - >>> r.shape(0).z # flat list of Z values + >>> r.shape(0).z # flat list of Z-values [18.0, 20.0, 22.0, 0.0, 0.0, 0.0, 0.0, 15.0, 13.0, 14.0] **3D MultiPatch Shapefiles** Multipatch shapes are useful for storing composite 3-Dimensional objects. A MultiPatch shape represents a 3D object made up of one or more surface parts. -Each surface in "parts" is defined by a list of XYZM values (Z and M values optional), and its corresponding type +Each surface in "parts" is defined by a list of XYZM values (Z and M values optional), and its corresponding type is given in the "partTypes" argument. The part type decides how the coordinate sequence is to be interpreted, and can be one of the following module constants: TRIANGLE_STRIP, TRIANGLE_FAN, OUTER_RING, INNER_RING, FIRST_RING, or RING. For instance, a TRIANGLE_STRIP may be used to represent the walls of a building, combined with a TRIANGLE_FAN to represent @@ -1020,9 +1023,9 @@ the file. This means that as long as you are able to iterate through a source file without having to load everything into memory, such as a large CSV table or a large shapefile, you can -process and write any number of items, and even merging many different source files into a single +process and write any number of items, and even merge many different source files into a single large shapefile. If you need to edit or undo any of your writing you would have to read the -file back in, one record at a time, make your changes, and write it back out. +file back in one record at a time, make your changes, and write it back out. ## Unicode and Shapefile Encodings From 0a249823166ad2eb8ed1914f79f157ab51f6ce36 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 6 Feb 2019 19:11:54 -0500 Subject: [PATCH 014/235] Update to newest setuptools to allow pypi markdown --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e616be1..43df32f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ python: install: - pip install . + - pip install -U setuptools>=38.6.0 script: - python shapefile.py From aa9b2d3c076e66defc6162762bb7a744ada8ee40 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 6 Feb 2019 19:17:29 -0500 Subject: [PATCH 015/235] Update newest contributors --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7b10e73..989e2a6 100644 --- a/README.md +++ b/README.md @@ -1087,6 +1087,7 @@ Charles Arnold David A. Riggs davidh-ssec Evan Heidtmann +ezcitron geospatialpython Hannes Ignacio Martinez Vazquez @@ -1100,6 +1101,7 @@ Michael Davis Michal Čihař Mike Toews Nilo +pakoun Paulo Ernesto Raynor Vliegendhart Razzi Abuissa From 8a0b52ec2b9872d30e6aef1438bd5ef4c45a47f5 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Fri, 8 Feb 2019 20:51:39 -0800 Subject: [PATCH 016/235] use str instead of LocalPath.strpath --- test_shapefile.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test_shapefile.py b/test_shapefile.py index 79a0ea7..4b9b367 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -185,7 +185,7 @@ def test_write_shp_only(tmpdir): shp argument to the shapefile writer creates just a shp file. """ - filename = tmpdir.join("test.shp").strpath + filename = str(tmpdir.join("test.shp")) with shapefile.Writer(shp=filename) as writer: pass @@ -205,7 +205,7 @@ def test_write_shx_only(tmpdir): shx argument to the shapefile writer creates just a shx file. """ - filename = tmpdir.join("test.shx").strpath + filename = str(tmpdir.join("test.shx")) with shapefile.Writer(shx=filename) as writer: pass @@ -225,7 +225,7 @@ def test_write_dbf_only(tmpdir): dbf argument to the shapefile writer creates just a dbf file. """ - filename = tmpdir.join("test.dbf").strpath + filename = str(tmpdir.join("test.dbf")) with shapefile.Writer(dbf=filename) as writer: pass @@ -245,7 +245,7 @@ def test_write_default_shp_shx_dbf(tmpdir): specifying the shp, shx, or dbf arguments creates a set of shp, shx, and dbf files. """ - filename = tmpdir.join("test").strpath + filename = str(tmpdir.join("test")) with shapefile.Writer(filename) as writer: pass @@ -262,7 +262,7 @@ def test_write_shapefile_extension_ignored(tmpdir): """ base = "test" ext = ".abc" - filename = tmpdir.join(base + ext).strpath + filename = str(tmpdir.join(base + ext)) with shapefile.Writer(filename) as writer: pass From 3eb57df2f7b2aedee396b0c480373d089749d959 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Fri, 8 Feb 2019 21:00:35 -0800 Subject: [PATCH 017/235] fix failing tests --- test_shapefile.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/test_shapefile.py b/test_shapefile.py index 4b9b367..65707b3 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -185,7 +185,7 @@ def test_write_shp_only(tmpdir): shp argument to the shapefile writer creates just a shp file. """ - filename = str(tmpdir.join("test.shp")) + filename = tmpdir.join("test.shp").strpath with shapefile.Writer(shp=filename) as writer: pass @@ -193,10 +193,10 @@ def test_write_shp_only(tmpdir): assert os.path.exists(filename) # assert test.shx does not exist - assert not os.path.exists(tmpdir.join("test.shx")) + assert not os.path.exists(tmpdir.join("test.shx").strpath) # assert test.dbf does not exist - assert not os.path.exists(tmpdir.join("test.dbf")) + assert not os.path.exists(tmpdir.join("test.dbf").strpath) def test_write_shx_only(tmpdir): @@ -205,7 +205,7 @@ def test_write_shx_only(tmpdir): shx argument to the shapefile writer creates just a shx file. """ - filename = str(tmpdir.join("test.shx")) + filename = tmpdir.join("test.shx").strpath with shapefile.Writer(shx=filename) as writer: pass @@ -213,10 +213,10 @@ def test_write_shx_only(tmpdir): assert os.path.exists(filename) # assert test.shp does not exist - assert not os.path.exists(tmpdir.join("test.shp")) + assert not os.path.exists(tmpdir.join("test.shp").strpath) # assert test.dbf does not exist - assert not os.path.exists(tmpdir.join("test.dbf")) + assert not os.path.exists(tmpdir.join("test.dbf").strpath) def test_write_dbf_only(tmpdir): @@ -225,7 +225,7 @@ def test_write_dbf_only(tmpdir): dbf argument to the shapefile writer creates just a dbf file. """ - filename = str(tmpdir.join("test.dbf")) + filename = tmpdir.join("test.dbf").strpath with shapefile.Writer(dbf=filename) as writer: pass @@ -233,10 +233,10 @@ def test_write_dbf_only(tmpdir): assert os.path.exists(filename) # assert test.shp does not exist - assert not os.path.exists(tmpdir.join("test.shp")) + assert not os.path.exists(tmpdir.join("test.shp").strpath) # assert test.shx does not exist - assert not os.path.exists(tmpdir.join("test.shx")) + assert not os.path.exists(tmpdir.join("test.shx").strpath) def test_write_default_shp_shx_dbf(tmpdir): @@ -245,7 +245,7 @@ def test_write_default_shp_shx_dbf(tmpdir): specifying the shp, shx, or dbf arguments creates a set of shp, shx, and dbf files. """ - filename = str(tmpdir.join("test")) + filename = tmpdir.join("test").strpath with shapefile.Writer(filename) as writer: pass @@ -262,7 +262,7 @@ def test_write_shapefile_extension_ignored(tmpdir): """ base = "test" ext = ".abc" - filename = str(tmpdir.join(base + ext)) + filename = tmpdir.join(base + ext).strpath with shapefile.Writer(filename) as writer: pass From fd72895cd502f4f7ee91ca30d34c1e3887ebb450 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 11 Feb 2019 14:35:04 -0500 Subject: [PATCH 018/235] Misc readme cleanups --- README.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 989e2a6..3592679 100644 --- a/README.md +++ b/README.md @@ -465,7 +465,7 @@ Let's read the blockgroup key and the population for the 4th blockgroup: ['060750601001', 4715] The results from the shapeRecords() method is a list-like object that can be easily converted -to GeoJSON through the __geo_interface__: +to GeoJSON through the _\_geo_interface\_\_: >>> shapeRecs.__geo_interface__['type'] @@ -477,7 +477,7 @@ To get the 4th shape record from the blockgroups shapefile use the third index: >>> shapeRec = sf.shapeRecord(3) -Each individual shape record also supports the __geo_interface__ to convert it to a GeoJSON: +Each individual shape record also supports the _\_geo_interface\_\_ to convert it to a GeoJSON: >>> shapeRec.__geo_interface__['type'] @@ -488,11 +488,6 @@ The blockgroup key and population count: >>> shapeRec.record[1:3] ['060750601001', 4715] - - >>> points = shapeRec.shape.points[0:2] - - >>> len(points) - 2 ## Writing Shapefiles @@ -760,8 +755,8 @@ These are specified as a list of xy point coordinates. **Adding a LineString shape** -For LineString shapefiles, each line shape consists of multiple lines. Line shapes must be given as a list of lines, -even if there is just one line. Also, each line must have at least two points. +For LineString shapefiles, each shape is given as a list of one or more linear features. +Each of the linear features must have at least two points. >>> w = shapefile.Writer('shapefiles/test/line') @@ -1025,7 +1020,7 @@ This means that as long as you are able to iterate through a source file without to load everything into memory, such as a large CSV table or a large shapefile, you can process and write any number of items, and even merge many different source files into a single large shapefile. If you need to edit or undo any of your writing you would have to read the -file back in one record at a time, make your changes, and write it back out. +file back in, one record at a time, make your changes, and write it back out. ## Unicode and Shapefile Encodings From 1bd5f23cbcfd489c77afdf0da793f466ddb6434f Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Fri, 15 Feb 2019 15:09:00 -0500 Subject: [PATCH 019/235] Bump to new version --- README.md | 13 +++++++++++++ changelog.txt | 13 +++++++++++++ setup.py | 4 ++-- shapefile.py | 4 ++-- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3592679..4c81f6e 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,19 @@ part of your geospatial project. # Version Changes +## 2.1.0 + +### New Features: +- Added back read/write support for unicode field names. +- Improved Record representation +- More support for geojson on Reader, ShapeRecord, ShapeRecords, and shapes() + +### Bug fixes: + +- Fixed error when reading optional m-values +- Fixed Record attribute autocomplete in Python 3 +- Misc readme cleanup + ## 2.0.0 The newest version of PyShp, version 2.0 introduced some major new improvements. diff --git a/changelog.txt b/changelog.txt index ae1a02a..15b2969 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,17 @@ +VERSION 2.1.0 + +2019-02-15 + New Features: + * Added back read/write support for unicode field names. + * Improved Record representation + * More support for geojson on Reader, ShapeRecord, ShapeRecords, and shapes() + + Bug fixes: + * Fixed error when reading optional m-values + * Fixed Record attribute autocomplete in Python 3 + * Misc readme cleanup + VERSION 2.0.1 2018-11-05 diff --git a/setup.py b/setup.py index bc72c73..e6c4848 100644 --- a/setup.py +++ b/setup.py @@ -7,14 +7,14 @@ def read_file(file): return data.decode('utf-8') setup(name='pyshp', - version='2.0.1', + version='2.1.0', description='Pure Python read/write support for ESRI Shapefile format', long_description=read_file('README.md'), long_description_content_type='text/markdown', author='Joel Lawhead', author_email='jlawhead@geospatialpython.com', url='https://github.com/GeospatialPython/pyshp', - download_url='https://github.com/GeospatialPython/pyshp/archive/2.0.1.tar.gz', + download_url='https://github.com/GeospatialPython/pyshp/archive/2.1.0.tar.gz', py_modules=['shapefile'], license='MIT', zip_safe=False, diff --git a/shapefile.py b/shapefile.py index 8ff26be..248d8a2 100644 --- a/shapefile.py +++ b/shapefile.py @@ -2,11 +2,11 @@ shapefile.py Provides read and write support for ESRI Shapefiles. author: jlawheadgeospatialpython.com -version: 2.0.1 +version: 2.1.0 Compatible with Python versions 2.7-3.x """ -__version__ = "2.0.1" +__version__ = "2.1.0" from struct import pack, unpack, calcsize, error, Struct import os From 71231ddc5aa54f155d4f0563c56006fffbfc84e7 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Fri, 15 Feb 2019 15:23:16 -0500 Subject: [PATCH 020/235] Simplify readme TOC --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 4c81f6e..e5b442e 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,12 @@ The Python Shapefile Library (PyShp) reads and writes ESRI Shapefiles in pure Py [Examples](#examples) - [Reading Shapefiles](#reading-shapefiles) - - [Reading Shapefiles Using the Context Manager](#reading-shapefiles-using-the-context-manager) - - [Reading Shapefiles from File-Like Objects](#reading-shapefiles-from-file-like-objects) - - [Reading Shapefile Meta-Data](#reading-shapefile-meta-data) + - [The Reader Class](#the-reader-class) - [Reading Geometry](#reading-geometry) - [Reading Records](#reading-records) - [Reading Geometry and Records Simultaneously](#reading-geometry-and-records-simultaneously) - [Writing Shapefiles](#writing-shapefiles) - - [Writing Shapefiles Using the Context Manager](#writing-shapefiles-using-the-context-manager) - - [Writing Shapefiles to File-Like Objects](#writing-shapefiles-to-file-like-objects) - - [Setting the Shape Type](#setting-the-shape-type) + - [The Writer Class](#the-writer-class) - [Adding Records](#adding-records) - [Adding Geometry](#adding-geometry) - [Geometry and Record Balancing](#geometry-and-record-balancing) @@ -140,6 +136,8 @@ repository of the PyShp GitHub site. ## Reading Shapefiles +### The Shapefile Class + To read a shapefile create a new "Reader" object and pass it the name of an existing shapefile. The shapefile format is actually a collection of three files. You specify the base filename of the shapefile or the complete filename @@ -161,7 +159,7 @@ OR OR any of the other 5+ formats which are potentially part of a shapefile. The library does not care about file extensions. -### Reading Shapefiles Using the Context Manager +#### Reading Shapefiles Using the Context Manager The "Reader" class can be used as a context manager, to ensure open file objects are properly closed when done reading the data: @@ -172,7 +170,7 @@ objects are properly closed when done reading the data: 663 shapes (type 'POLYGON') 663 records (44 fields) -### Reading Shapefiles from File-Like Objects +#### Reading Shapefiles from File-Like Objects You can also load shapefiles from any Python file-like object using keyword arguments to specify any of the three files. This feature is very powerful and @@ -190,7 +188,7 @@ file. This file is optional for reading. If it's available PyShp will use the shx file to access shape records a little faster but will do just fine without it. -### Reading Shapefile Meta-Data +#### Reading Shapefile Meta-Data Shapefiles have a number of attributes for inspecting the file contents. A shapefile is a container for a specific type of geometry, and this can be checked using the @@ -505,6 +503,8 @@ The blockgroup key and population count: ## Writing Shapefiles +### The Writer Class + PyShp tries to be as flexible as possible when writing shapefiles while maintaining some degree of automatic validation to make sure you don't accidentally write an invalid file. @@ -536,7 +536,7 @@ one or more file types: In that case, any file types not assigned will not save and only file types with file names will be saved. -### Writing Shapefiles Using the Context Manager +#### Writing Shapefiles Using the Context Manager The "Writer" class automatically closes the open files and writes the final headers once it is garbage collected. In case of a crash and to make the code more readable, it is nevertheless recommended @@ -552,7 +552,7 @@ objects are properly closed and final headers written once you exit the with-cla >>> with shapefile.Writer("shapefiles/test/contextwriter") as shp: ... pass -### Writing Shapefiles to File-Like Objects +#### Writing Shapefiles to File-Like Objects Just as you can read shapefiles from python file-like objects you can also write to them: @@ -572,7 +572,7 @@ write to them: >>> w.close() >>> # To read back the files you could call the "StringIO.getvalue()" method later. -### Setting the Shape Type +#### Setting the Shape Type The shape type defines the type of geometry contained in the shapefile. All of the shapes must match the shape type setting. From 0d0a45425be39964fe967b8296bc953125235af7 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sun, 17 Feb 2019 05:31:55 -0800 Subject: [PATCH 021/235] use version 3.2.5 of pytest --- requirements.test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.test.txt b/requirements.test.txt index 2acaae0..ae28964 100644 --- a/requirements.test.txt +++ b/requirements.test.txt @@ -1 +1 @@ -pytest==3.7.4 +pytest==3.2.5 From 6ee77d229aaae8f9c8f78b8bd0e10819060f3456 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sun, 17 Feb 2019 06:45:15 -0800 Subject: [PATCH 022/235] trying pytest 3.2.4 --- requirements.test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.test.txt b/requirements.test.txt index ae28964..c088352 100644 --- a/requirements.test.txt +++ b/requirements.test.txt @@ -1 +1 @@ -pytest==3.2.5 +pytest==3.2.4 From f62698e08f8382a94063dbfd48572947ef79602e Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sun, 17 Feb 2019 06:48:03 -0800 Subject: [PATCH 023/235] trying pytest 3.2.3 --- requirements.test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.test.txt b/requirements.test.txt index c088352..447711e 100644 --- a/requirements.test.txt +++ b/requirements.test.txt @@ -1 +1 @@ -pytest==3.2.4 +pytest==3.2.3 From 116e97e4c6b8ffc8331a3b67782a7fad34e75689 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Sun, 17 Feb 2019 07:06:33 -0800 Subject: [PATCH 024/235] try no-cache-dir --- .travis.yml | 2 +- requirements.test.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3d2f166..43a3a03 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ python: install: - pip install . - - pip install -r requirements.test.txt + - pip install -r requirements.test.txt --no-cache-dir - pip install -U setuptools>=38.6.0 script: diff --git a/requirements.test.txt b/requirements.test.txt index 447711e..ae28964 100644 --- a/requirements.test.txt +++ b/requirements.test.txt @@ -1 +1 @@ -pytest==3.2.3 +pytest==3.2.5 From 2acbe60315451bb956038ff27e36df8a726ba1b1 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Mon, 18 Feb 2019 19:17:10 -0800 Subject: [PATCH 025/235] pin setuptools version for pytest on python 3.3 --- requirements.test.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.test.txt b/requirements.test.txt index ae28964..dccb985 100644 --- a/requirements.test.txt +++ b/requirements.test.txt @@ -1 +1,2 @@ pytest==3.2.5 +setuptools==36.8.0 ; python_version=="3.3" From d4ca6b43b2eae713ec98f7d5c2bff26d237b5ab5 Mon Sep 17 00:00:00 2001 From: Jason Moujaes Date: Mon, 18 Feb 2019 19:24:50 -0800 Subject: [PATCH 026/235] don't update setuptools --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 43a3a03..6994bd6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,6 @@ python: install: - pip install . - pip install -r requirements.test.txt --no-cache-dir - - pip install -U setuptools>=38.6.0 script: - python -m compileall *.py From 2f0973ca9fac784355462c00e2d9637d1bd8fccd Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 5 Aug 2020 09:24:54 +0200 Subject: [PATCH 027/235] wrong readme header --- README.md | 2 +- shapefile.pyc | Bin 63137 -> 63137 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e5b442e..9e63f29 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,7 @@ repository of the PyShp GitHub site. ## Reading Shapefiles -### The Shapefile Class +### The Reader Class To read a shapefile create a new "Reader" object and pass it the name of an existing shapefile. The shapefile format is actually a collection of three diff --git a/shapefile.pyc b/shapefile.pyc index cd33c7e55f380dd07409659a76ac871f377347bb..25127ac246ef9eed9316ef9a2f1e49a0012d04f9 100644 GIT binary patch delta 35 pcmZ4ZmU-b@W_IS!yj-2q=^NRfGBX?M8BBi9YyhG+E3wpn0s!Oc3 Date: Wed, 5 Aug 2020 10:02:47 +0200 Subject: [PATCH 028/235] Fix for #175 Handle the possibility of shapes with empty coordinates in __geo_interface__, and represent as null-geometries --- shapefile.py | 20 ++++++++++++++++++-- shapefile.pyc | Bin 63137 -> 57837 bytes 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/shapefile.py b/shapefile.py index 248d8a2..0650ebe 100644 --- a/shapefile.py +++ b/shapefile.py @@ -190,22 +190,31 @@ def __geo_interface__(self): Exception('Invalid shape, cannot create GeoJSON representation. Shape type is "%s" but does not contain any parts and/or points.' % SHAPETYPE_LOOKUP[self.shapeType]) if self.shapeType in [POINT, POINTM, POINTZ]: + # point return { 'type': 'Point', 'coordinates': tuple(self.points[0]) } elif self.shapeType in [MULTIPOINT, MULTIPOINTM, MULTIPOINTZ]: + # multipoint return { 'type': 'MultiPoint', 'coordinates': tuple([tuple(p) for p in self.points]) } elif self.shapeType in [POLYLINE, POLYLINEM, POLYLINEZ]: - if len(self.parts) == 1: + if len(self.parts) == 0: + # although geojson spec allows geometry types with 'empty' coordinates, + # not all applications are required to handle them. + # safest to instead represent this as null-geometry. + return None + elif len(self.parts) == 1: + # linestring return { 'type': 'LineString', 'coordinates': tuple([tuple(p) for p in self.points]) } else: + # multilinestring ps = None coordinates = [] for part in self.parts: @@ -222,12 +231,19 @@ def __geo_interface__(self): 'coordinates': tuple(coordinates) } elif self.shapeType in [POLYGON, POLYGONM, POLYGONZ]: - if len(self.parts) == 1: + if len(self.parts) == 0: + # although geojson spec allows geometry types with 'empty' coordinates, + # not all applications are required to handle them. + # safest to instead represent this as null-geometry. + return None + elif len(self.parts) == 1: + # polygon return { 'type': 'Polygon', 'coordinates': (tuple([tuple(p) for p in self.points]),) } else: + # multipolygon ps = None rings = [] for part in self.parts: diff --git a/shapefile.pyc b/shapefile.pyc index 25127ac246ef9eed9316ef9a2f1e49a0012d04f9..919a124275f8c3add3ed34086844668370cec7d5 100644 GIT binary patch delta 3274 zcmaKu3rtg27=X{YEu~lx5!w>0Jd8{Q(F9+M4+y$Motp&EC?Ha6k*_^ zk)tL)Hgvv*qSO7;E%QBmC5}yWqD~z$q7EOK=r)(Axc~NEXY^ban%jH+@BHuooU-+y z=3%2ouX*CvqhW58ctC$wr}ZU-uzubh@=Kh4q5N`Jf5-Du+v7J`U^FcCyuevQB$Y*3 zL4hpRFGUuA>vvocKXQh!Q~qvQT-xif=GE>v`haZ-Iydw_b@&rEA@c}XPKi}Z@&r{QRz#vv;j23(;+hZKkD}%bVWQjnE<0*dJ8s=|~HZG!Q20yRa3?zx>fw^D5 zBDn&w`VgyzjCAOUTjTNTMMkC+yr5DbTH@$U9D&3UL~=AFPe)3cHE)C>$7m6{iP6rs znxg3>)?|wH+bk#{mI=jW%-1|5;E?cUd}VBkc`$v#oaV97vo&rVnHNCZ-f{+dl0(T7 zZ&DniL6HRX9)N4sY7V8lS(iD6{tknK-xuV%)`tw3ia8J>1kqq2SkO>!YE-_XgkWma zYH=+|qqI7zqrIpvK6S!K+CvydC3(ObyJECp>eJUtHa<5zlm@dE;g{s)%7{>EWxFHh z_Ls({)Sgvjo12?&8&b45IUWUHNJ2e6bkx|}KLh6UyP`F5JKw_%PFOl%kTMw8qb#%v z{)u`=;P)=Xy&GUoOtcD{kE|Xp4IQAu79l&v;$zqICi4+pfRJGkug8`C!m5WS$SJ-U z9!xJY(}<6F%^|3H16oGZ(7tac|P>F?%Io=GKn$PA{d`bPuY=+*h$E#rlGY35iS>muP-F++@ir5m@~AINodxqNflV|D5uA zl39bmG7~oNOtRV2W0PmAka-ELaeO`RZw<0QI56Rko@Y{F2EmOF+Pf`zsRK(slNl1L z!rso(;e*E#XNzf?HJ6$l2W^CX}+yM6pPuZq$96% zgLEEy3!o`EQ>F4!8C>6ck*S`}~h zDB^mEOrNEqdJNeic4k&qcllXu`J&j!N;7`o4L6|j8K{`OQ8_9}nSJSxP?+gd)*;#9 z^csxG-X%nEwKt%yD3;obCfTyAwvu*;wWWA>7lh{~c?Qk-`;<#9DKpUE5l$|!+MMsf zg~FpM$z`CAG`LtiN`?K6%nnmar>L+_WQ*WeN2_uJ;V%~50*1wDN?t`xCbrL|qvdeW zRiVi8-4^;eRJ+$`U(G=v%PiN?FCnM=u!@gL^w9}9%ac`DBqiiIbX627wzpPV1RpIN zuN0_yAw8u?w#_Llu^J)Z$1C`amDn7nK{}HUcriE{7Eg~~?tqjodOgeB; zFs)XtYzL5i$WnJ$YS(7)M|=;`6fJ8@9L8GKs!ZvATe>!f(^?4obeu9stLx0P4tCWgQVTbtI?1Kz$}V&sgoLeE zyWKG#cbsF^ZN+?K(ur=3LIBi-_){rV6@*=nuHP^Qkgw{tf-; z6Nqh?qVi+vjiWRGzTa<9xl*L#F&TP8L{Igp@*Gcjs?uTk$#u$9O=+~ydth&TtkMZ- zsvkk!+0T^!4~m*Bg1-({HSJJo&1j4*nK^%|aJjG;3OCP~i%}!o@9KxB@qI!OAfsMiQYvX7ij(aJ5{svfnz2bj1xVAvj&21{B znT{6fS<=l(P~N&%i72bhL=S+oZLBi7S#3ta^&NDzkI;m3A-v8y%Q44(8kXHXq2k7c zWp0J4j@2rRAbSky_XAbfU}OUU9(@~ delta 8676 zcmb`LdvHuw9LLYOo9wO-O>7duN~HCwM2b{eB>Ip>WW%y#5^SxID>lhyH@jDCB53Pv zRKjT(k20#Ntuo?Q`Vg)d*Hf09a-nLm0S;fx9x5nk0G_+ALgrACZy-ey z@rF^SMDmR+#?(!^N7z17VrUwz3?efnQrexCc4zlZiQy9{8sO{64K^Smfv#awBH|K% zqAD_oDD8-1B1!})(2*iN@vhhX&(o4wLqt4{V)rBZg%wJVACo1OW=WO7?4c<>a<25> zCuK=FcqcWYCq2M6MW)0j=qmN3Fq~8x9{FP=1(eJ*kkSVdUQ%xu12^!0)+Q>3`dNHb zZ@LS{MrBG|;oBVDBVEC2B~k>9mZGVS8ffI>&tCW$8Mx9*r>A-vM%&=KUP`7RQc~c0 z_>*t+)`7W0=U^@$Qe$GMk=bKT+c^4$Z)%=Lp5iQ)6FuchC<+N&7*p<%N94KWG0Yar zRRydrHkJ;D3$bT|UK8}nmWEzUg`-`c)r}NHDXkIZa1_W&o}zdij_F|P*nRsZiLr0tDtlV^R?nMycg;k&W!XMVOR>q-GYL zJXDx84@u{tB>ASeJarXsGxv+@(ghdMrpo)3vOy_>h4n2))OGL=_*)x&4^W?#eLu*e ziN=#x=~uNXYM(k7GMFV}!3eK z4hQblWkhDPI~fOaM3KfvNWW8YIL1pjt?`eLAU3<^8Adb5a&_1Vnb9~L0raHixVX*#40&lMl7>k%~rc39_%>#IZ564qx-2X@w0$Kq@Y zgmvyg;wqI0XKh2o9o&n!4-l89)zFlS9S&gI#+(pV`U$$W3#zkM^X*F#b2`(#kd@=- zGe45sg&u_)xtk@8wxxKC&ye%-W$$UI9Y5NjQM?2D`I`_od7Cs!w7%P5z#WbNaac*d z?0+8a$a}<7>~+Lu!q){ah@<{MR4#-&E#jye6LF8uj`|)b;RE*>3TO&&P;2Lzv$tj_O7Uxdr}m4`1|e zRhXr}bPzH_;i#q*tCVCg-OSeWQ89WF4hU7 z)FEnvSxXj)=hR6=m9frCf8*MQMpkv9Z$WZZs$>zJQ+jm7;g~eZ?XQBWWmc*YumXXb z;QsP+S^-@M{G9#rPO0!Js+-#;W?tEwy;pNmn6?vX-?4cs-V`RCLedZDmpJJ(k}d(P z{4dt2XjNTa6mP?es)=Vu>Q(MC~r4qqR z&w~Z-igyupbYF(ipRMEj3A@1^WqdT>{s{)to=xJtXdo`qtE^$~eBl(HhNLW3xbJwT zXj=-#AbH%*5@i&O+#jJ$6AAEKx$wq;Ng4txCbE{VE^*~#bA2aT2oLMK^5tahp-!Q$ zQf%NpwTY7;J!`Z^vM%*WP;)Sv7ip&Dtl`kzVWJBdgdP<;OXN9l{%|VI7R9OgpyFJM zRJ|%()!Sq>!N{Xis3z&A;w!45>DWf`lFCN^RvR&Ct#xQokO8(?)qilm8L zl~?gG-1(+I-=VF!zI||>GI{DwNdI=fc*H8Obu@zcOqDo_AnFPnIBOC|B_Jvqem=KE zyzMVVR0dmeL4228gQO9x)5TQbe!Un;L!sp28u3VNLeyZ0z0|_jc;cG3((SCVIp$wC Cq9MBg From 04ce2a4fccad2308c99f860a797c16e4399762fd Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 5 Aug 2020 10:41:52 +0200 Subject: [PATCH 029/235] Represent missing shape coords as geojson type with empty coords --- shapefile.py | 19 ++++++++----------- shapefile.pyc | Bin 57837 -> 57695 bytes 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/shapefile.py b/shapefile.py index 0650ebe..9c52232 100644 --- a/shapefile.py +++ b/shapefile.py @@ -186,9 +186,6 @@ def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None): @property def __geo_interface__(self): - if not self.parts or not self.points: - Exception('Invalid shape, cannot create GeoJSON representation. Shape type is "%s" but does not contain any parts and/or points.' % SHAPETYPE_LOOKUP[self.shapeType]) - if self.shapeType in [POINT, POINTM, POINTZ]: # point return { @@ -203,10 +200,10 @@ def __geo_interface__(self): } elif self.shapeType in [POLYLINE, POLYLINEM, POLYLINEZ]: if len(self.parts) == 0: - # although geojson spec allows geometry types with 'empty' coordinates, - # not all applications are required to handle them. - # safest to instead represent this as null-geometry. - return None + # the shape has no coordinate information, i.e. is 'empty' + # the geojson spec does not define a proper null-geometry type + # however, it does allow geometry types with 'empty' coordinates to be interpreted as null-geometries + return {'type':'LineString', 'coordinates':tuple()} elif len(self.parts) == 1: # linestring return { @@ -232,10 +229,10 @@ def __geo_interface__(self): } elif self.shapeType in [POLYGON, POLYGONM, POLYGONZ]: if len(self.parts) == 0: - # although geojson spec allows geometry types with 'empty' coordinates, - # not all applications are required to handle them. - # safest to instead represent this as null-geometry. - return None + # the shape has no coordinate information, i.e. is 'empty' + # the geojson spec does not define a proper null-geometry type + # however, it does allow geometry types with 'empty' coordinates to be interpreted as null-geometries + return {'type':'Polygon', 'coordinates':tuple()} elif len(self.parts) == 1: # polygon return { diff --git a/shapefile.pyc b/shapefile.pyc index 919a124275f8c3add3ed34086844668370cec7d5..da6dd9ae5a80838ea653be443e3c11724bb61b26 100644 GIT binary patch delta 1962 zcmb7D4NO&K7=EAc+#mGf5|Dr?5L1ge@plm=MK&@8BWu`R~ z>=R7GoIf#J&D1w%W&T0N)D&?g+VBr+mOq%YwzBE^&f#9nMs029+;iV^p7(j5_j%v% zTC;YpNwaA;`}G}BvfZ{S*xR8IxrvI2bdWAc*QijVc{Zwego*?efC>b~>lPDar2>s2 z7OQs_iqG<;*+{pO9^g+~Y^Et>cUoaLy_J$@1d~UVP)s02F;h_a9P<8ytPkmZNq6|k zjzSMKEB7-}RPlL&Dw@m+HnW1FH?`aYvzssn4E^0ORke2^Mtws`m&tE*RY2qs2HK-h z)w{mp$up*rM=4i?WRfSrZ831=F;JIVqvHFF)_RI4qyohB*7Q`Un(8tcye36%F9a5f z?k&6CpKUZ3;CET&8~zyjT@K+JOn=gYNDuaVc|g0zq;4<0f#R-9|6yjH3G3sp*VAWj z5)*{dGRG(9uASE2?DYElTrPZmx0%3rK??4Cw^g>927QmfI4zSX+^HtS$aj0tFQdCCc+VF36|Hwha#9mB4$~TF7?Pu z2$lI!JK>Z;ljCGkbTFQmnbB`z8h1orwV;v@4Vk3jbqviT7miE<+U4h?X5fSj8(oXjyk&GF&>@{;y_n6dV;2FJWyZt%(Itc8^KogDD_-E1 zEKOi>8**Ht)B2VY{3};I8YD!3kYx$!^7Ob_aLC6JvmsqMtqQeTgsR9ug%%&Q}<_=VdV)Y=T;F&jQHs5&>6 zVFG7u%I~LwZQFi89@lN(30&e-wp(zGvv%#ZB9MdkDC3;+*xvUrRTl625i>bs|4753 zMF%`UiM-Qv2MhRib20*}ZEB3_R%5iuR%fVupm{9U9ZUe;;A3AqfLi{(B^QD92F^Gq z2CmH+!WoCumaXHq!=FKouMs@f3}*lU delta 2133 zcma)6ZBSHI7=E97_X7oVl#j*oV--Kp6e;qfbW#dOaS)9~F%e~DS6G$ZW%rVbyKIU| z=7=9hF^kg78ZAe(lTM?F0-{dN7}YRkIVq-Dpi{~Ze~8w(%dSG=Ofz@)o_o&oKJR&+ z_dVxIt$e#q*2%5m-48B4qTAlvcS|Pn5G^4Jb4U6|pfJ}+QY5l~6xlzep+3>2AlTcn z8d9{R=t$91o=i)17zwu}VmQ#v;N*ltoKpO==1e){T_zq=W{;s>r9t>4I^2 z?fjtR?B3)R=>-)?a4e9haGN^lNESv)I4M1XWGzs72BfG!4K0<(b(JhcrcMib|H5#n znL~X4D|HxxsRf%?BC$`eOe@|Eq)X18M_vti1R?p!v*FRGxWY*gk4L5@y;Loa2BtKzx^wTbxP{_PJCC`E5lB1rK?2JQP!?&MOt zeSM{;*q1M<8M+5EJW|%xrlv_E`{F?D9vi4t4fM75-V+X1N&yE;q{0%(qkX!APZ)Si zP1nJ|5-GEb_<(`F|8`kxFj}p#jzpx|#(5yGo>olvf9qB6Um#XLB0|4RH@LE-F%t7Khbs^oKhH z)MhuD?JJE=vrBP{k!7^QWpp}hcEuepZV;kb4ptVO5NU%Li;ICM)n>Pv6qn7O$1X${ z=w205=}GJZ!%#NPFo0zlVp*x7AFDI09w7RLNQy*^6eG#dBP#G7A;lm{qhSkUhCsvD z#pGx(gZ+)1G0JAfLj`@;1dR? z$SC9MhE0&Li`NXFEa3o`MoyGa%_hZvjt1TmKMDAmJ(rM;Mz$eg3oi3#p8piM!fIad zA)hBDz6IQ7wJ)B=9acJKKAJziI!3|+)-;ZT*ue?2wC{*b+~dvTdr1goZ7)}$hnUWQ zmSN&4MDUu4_d_t8pPX_4NMm_ZXJalqIrS6CDltP@BHKCbP^h@)$SrwPCM_?qQ;KpSsfu?6VHR~5$sQGEBR zDZsP*hG!HokVTZVz`*}0@oGguy=(Vl1RuIi@Xugn>&szc(Pa&IgWW94$3i~q?cFjK z@xM2I2(0IuH^l(k`2O-{70tF3U^mCsCBRX>Y+EaEp5<&eJz-B1E3X*EB6nQF4R&uw z1zN;+1^(hgcJ|YvmA_UgI%^o;x2H-a&DiTi3a{TgKU{naI(!{jTz}*!(9BPMq1WJV zUVp4wi=KS#*TTYdHo5wJ%x9OYZ@|oJPmNZ+x_jCSIGMBdA&R-9E*W8~b)u}|C(5d0 zNi(C^=DI|#uOAO=;FHgW0*t4g%S6~N6{iW{YR*KkoUzN8lraLdsmJNnX|99;518W>i;hr>PC|Q From f0670abf027fbc7eace7e8d40fd37457357d7e0a Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 5 Aug 2020 11:49:16 +0200 Subject: [PATCH 030/235] Allow null geometry in feature geojson Also clarify code. Also reuse existing code to ignore deletion flag field when generating geojson for reader class, fixes #199. --- shapefile.py | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/shapefile.py b/shapefile.py index 9c52232..eced695 100644 --- a/shapefile.py +++ b/shapefile.py @@ -495,7 +495,7 @@ def __init__(self, shape=None, record=None): def __geo_interface__(self): return {'type': 'Feature', 'properties': self.record.as_dict(), - 'geometry': self.shape.__geo_interface__} + 'geometry': None if self.shape.shapeType == NULL else self.shape.__geo_interface__} class Shapes(list): """A class to hold a list of Shape objects. Subclasses list to ensure compatibility with @@ -509,7 +509,7 @@ def __repr__(self): @property def __geo_interface__(self): return {'type': 'GeometryCollection', - 'geometries': [g.__geo_interface__ for g in self]} + 'geometries': [shape.__geo_interface__ for shape in self]} class ShapeRecords(list): """A class to hold a list of ShapeRecord objects. Subclasses list to ensure compatibility with @@ -523,7 +523,7 @@ def __repr__(self): @property def __geo_interface__(self): return {'type': 'FeatureCollection', - 'features': [f.__geo_interface__ for f in self]} + 'features': [shaperec.__geo_interface__ for shaperec in self]} class ShapefileException(Exception): """An exception to handle shapefile specific problems.""" @@ -630,16 +630,10 @@ def __iter__(self): @property def __geo_interface__(self): - fieldnames = [f[0] for f in self.fields] - features = [] - for feat in self.iterShapeRecords(): - fdict = {'type': 'Feature', - 'properties': dict(zip(fieldnames,feat.record)), - 'geometry': feat.shape.__geo_interface__} - features.append(fdict) - return {'type': 'FeatureCollection', - 'bbox': self.bbox, - 'features': features} + shaperecords = self.shapeRecords() + fcollection = shaperecords.__geo_interface__ + fcollection['bbox'] = self.bbox + return fcollection @property def shapeTypeName(self): @@ -889,7 +883,7 @@ def iterShapes(self): self.shpLength = shp.tell() shp.seek(100) while shp.tell() < self.shpLength: - yield self.__shape() + yield self.__shape() def __dbfHeader(self): """Reads a dbf header. Xbase-related code borrows heavily from ActiveState Python Cookbook Recipe 362715 by Raymond Hettinger""" @@ -1048,8 +1042,7 @@ def shapeRecord(self, i=0): def shapeRecords(self): """Returns a list of combination geometry/attribute records for all records in a shapefile.""" - return ShapeRecords([ShapeRecord(shape=rec[0], record=rec[1]) \ - for rec in zip(self.shapes(), self.records())]) + return ShapeRecords(self.iterShapeRecords()) def iterShapeRecords(self): """Returns a generator of combination geometry/attribute records for From eefc0ae36d64b6fad805b172d01ea1622a18f9bf Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 5 Aug 2020 12:13:36 +0200 Subject: [PATCH 031/235] Handle geojson output for empty point+multipoint --- shapefile.py | 32 +++++++++++++++++++++++--------- shapefile.pyc | Bin 57695 -> 57532 bytes 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/shapefile.py b/shapefile.py index eced695..929a581 100644 --- a/shapefile.py +++ b/shapefile.py @@ -188,16 +188,28 @@ def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None): def __geo_interface__(self): if self.shapeType in [POINT, POINTM, POINTZ]: # point - return { - 'type': 'Point', - 'coordinates': tuple(self.points[0]) - } + if len(self.points) == 0: + # the shape has no coordinate information, i.e. is 'empty' + # the geojson spec does not define a proper null-geometry type + # however, it does allow geometry types with 'empty' coordinates to be interpreted as null-geometries + return {'type':'Point', 'coordinates':tuple()} + else: + return { + 'type': 'Point', + 'coordinates': tuple(self.points[0]) + } elif self.shapeType in [MULTIPOINT, MULTIPOINTM, MULTIPOINTZ]: - # multipoint - return { - 'type': 'MultiPoint', - 'coordinates': tuple([tuple(p) for p in self.points]) - } + if len(self.points) == 0: + # the shape has no coordinate information, i.e. is 'empty' + # the geojson spec does not define a proper null-geometry type + # however, it does allow geometry types with 'empty' coordinates to be interpreted as null-geometries + return {'type':'MultiPoint', 'coordinates':tuple()} + else: + # multipoint + return { + 'type': 'MultiPoint', + 'coordinates': tuple([tuple(p) for p in self.points]) + } elif self.shapeType in [POLYLINE, POLYLINEM, POLYLINEZ]: if len(self.parts) == 0: # the shape has no coordinate information, i.e. is 'empty' @@ -508,6 +520,8 @@ def __repr__(self): @property def __geo_interface__(self): + # Note: currently this will fail if any of the shapes are null-geometries + # could be fixed by storing the shapefile shapeType upon init, returning geojson type with empty coords return {'type': 'GeometryCollection', 'geometries': [shape.__geo_interface__ for shape in self]} diff --git a/shapefile.pyc b/shapefile.pyc index da6dd9ae5a80838ea653be443e3c11724bb61b26..a687b6c2dee6aad8b856a06610743e287f19fd6c 100644 GIT binary patch delta 4865 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 From a64e7c264a40903df8a22d501013f29aacf5ab52 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 5 Aug 2020 15:10:24 +0200 Subject: [PATCH 032/235] Clean code for polygon to geojson handling --- shapefile.py | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/shapefile.py b/shapefile.py index 929a581..e9529a3 100644 --- a/shapefile.py +++ b/shapefile.py @@ -245,34 +245,40 @@ def __geo_interface__(self): # the geojson spec does not define a proper null-geometry type # however, it does allow geometry types with 'empty' coordinates to be interpreted as null-geometries return {'type':'Polygon', 'coordinates':tuple()} - elif len(self.parts) == 1: - # polygon - return { - 'type': 'Polygon', - 'coordinates': (tuple([tuple(p) for p in self.points]),) - } else: - # multipolygon - ps = None - rings = [] - for part in self.parts: - if ps == None: - ps = part - continue - else: - rings.append(tuple([tuple(p) for p in self.points[ps:part]])) - ps = part - else: - rings.append(tuple([tuple(p) for p in self.points[part:]])) + # shapefile polygon is a sequence of rings + # where exterior rings are clockwise, and holes counterclockwise + # there is no definition of which holes belong to which exteriors + # but it can probably generally be assumed that exteriors precede their holes + + # iterate rings polys = [] - poly = [rings[0]] - for ring in rings[1:]: + poly = [] + for i in xrange(len(self.parts)): + # get indexes of start and end points of the ring + start = self.parts[i] + try: + end = self.parts[i+1] + except IndexError: + end = len(self.points) + + # extract the points that make up the ring + ring = tuple([tuple(p) for p in self.points[start:end]]) + + # process the ring as exterior or hole based on orientation if signed_area(ring) < 0: + # ring is new exterior, finish current polygon polys.append(poly) + # use ring as start of next polygon poly = [ring] else: + # ring is a hole, add to current polygon poly.append(ring) + + # add last poly polys.append(poly) + + # return geojson if len(polys) == 1: return { 'type': 'Polygon', From a61f6098ed4ae7ad8c08d93b467764a41b1eee50 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sat, 8 Aug 2020 11:45:16 +0200 Subject: [PATCH 033/235] proper exterior-hole testing for multipolygon to geojson --- shapefile.py | 173 ++++++++++++++++++++++++++---- shapefile.pyc | Bin 57532 -> 66772 bytes shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 33 -> 33 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 33 -> 33 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 33 -> 33 bytes shapefiles/test/testfile.dbf | Bin 33 -> 33 bytes 15 files changed, 155 insertions(+), 18 deletions(-) diff --git a/shapefile.py b/shapefile.py index e9529a3..0dc8473 100644 --- a/shapefile.py +++ b/shapefile.py @@ -165,6 +165,85 @@ def signed_area(coords): ys.append(ys[1]) return sum(xs[i]*(ys[i+1]-ys[i-1]) for i in range(1, len(coords)))/2.0 +def ring_sample(coords, ccw=False): + """Return a sample point guaranteed to be within a ring, by efficiently + finding the first centroid of a coordinate triplet whose orientation + matches the orientation of the ring. The orientation of the ring is assumed + to be clockwise, unless ccw (counter-clockwise) is set to True. + """ + # TODO: handle duplicate coordinates + # TODO: handle coordinates in a straight line that dont form a triangle + coords = tuple(coords) + (coords[1],) # add the second coordinate to the end to allow checking the last triplet + for i in xrange(len(coords)-3): + triplet = coords[i:i+3] + (coords[i],) # add the first point in order to close triplet ring + # get triplet orientation + triplet_ccw = signed_area(triplet) >= 0 + if ccw == triplet_ccw: + # a triplet with the same orientation as the ring, means the triplet centroid is inside the ring + xs,ys = zip(*triplet[:3]) # exclude the repeated closing point + xmean,ymean = sum(xs) / 3.0, sum(ys) / 3.0 + return xmean,ymean + +def ring_bbox(coords): + """Calculates and returns the bounding box of a ring. + """ + xs,ys = zip(*coords) + bbox = min(xs),min(ys),max(xs),max(ys) + return bbox + +def bbox_overlap(bbox1, bbox2): + """Tests whether two bounding boxes overlap, returning a boolean + """ + xmin1,ymin1,xmax1,ymax1 = bbox1 + xmin2,ymin2,xmax2,ymax2 = bbox2 + overlap = (xmin1 <= xmax2 and xmax1 >= xmin2 and ymin1 <= ymax2 and ymax1 >= ymin2) + return overlap + +def ring_contains_point(coords, p): + """Fast point-in-polygon crossings algorithm, MacMartin optimization. + + Adapted from code by Eric Haynes + http://www.realtimerendering.com/resources/GraphicsGems//gemsiv/ptpoly_haines/ptinpoly.c + + Original description: + Shoot a test ray along +X axis. The strategy, from MacMartin, is to + compare vertex Y values to the testing point's Y and quickly discard + edges which are entirely to one side of the test ray. + """ + tx,ty = p + + # get test bit for above/below X axis + vtx0 = coords[0] + yflag0 = ( vtx0[1] >= ty ) + vtx1 = coords[1] + + inside_flag = False + for j in xrange(len(coords)-2): + yflag1 = ( vtx1[1] >= ty ) + # check if endpoints straddle (are on opposite sides) of X axis + # (i.e. the Y's differ); if so, +X ray could intersect this edge. + if yflag0 != yflag1: + xflag0 = ( vtx0[0] >= tx ) + # check if endpoints are on same side of the Y axis (i.e. X's + # are the same); if so, it's easy to test if edge hits or misses. + if xflag0 == ( vtx1[0] >= tx ): + # if edge's X values both right of the point, must hit + if xflag0: + inside_flag = not inside_flag + else: + # compute intersection of pgon segment with +X ray, note + # if >= point's X; if so, the ray hits it. + if ( vtx1[0] - (vtx1[1]-ty) * ( vtx0[0]-vtx1[0]) / (vtx0[1]-vtx1[1]) ) >= tx: + inside_flag = not inside_flag + + # move to next pair of vertices, retaining info as possible + yflag0 = yflag1 + vtx0 = vtx1 + vtx1 = coords[j+2] + + return inside_flag + + class Shape(object): def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None): """Stores the geometry of the different shape types @@ -248,12 +327,12 @@ def __geo_interface__(self): else: # shapefile polygon is a sequence of rings # where exterior rings are clockwise, and holes counterclockwise - # there is no definition of which holes belong to which exteriors - # but it can probably generally be assumed that exteriors precede their holes + # however there is no definition of which holes belong to which exteriors + # so have to do efficient checking of hole-to-exterior containment - # iterate rings - polys = [] - poly = [] + # iterate rings and classify as exterior or hole + exteriors = [] + holes = [] for i in xrange(len(self.parts)): # get indexes of start and end points of the ring start = self.parts[i] @@ -267,28 +346,86 @@ def __geo_interface__(self): # process the ring as exterior or hole based on orientation if signed_area(ring) < 0: - # ring is new exterior, finish current polygon - polys.append(poly) - # use ring as start of next polygon - poly = [ring] + # ring is exterior + exteriors.append(ring) else: - # ring is a hole, add to current polygon - poly.append(ring) + # ring is a hole + holes.append(ring) - # add last poly - polys.append(poly) - - # return geojson - if len(polys) == 1: + # if only one exterior, then all holes belong to that exterior + if len(exteriors) == 1: + # return geojson + poly = [exteriors[0]] + holes return { 'type': 'Polygon', - 'coordinates': tuple(polys[0]) + 'coordinates': tuple(poly) } - elif len(polys) > 1: + + # multiple exteriors, ie multi-polygon, have to group holes with correct exterior + elif len(exteriors) > 1: + # first group rings based on simple bbox overlap test + hole_exteriors = dict([(hole_i,[]) for hole_i in xrange(len(holes))]) + exterior_bboxes = [ring_bbox(ring) for ring in exteriors] + for hole_i in hole_exteriors.keys(): + hole_bbox = ring_bbox(holes[hole_i]) + for ext_i,ext_bbox in enumerate(exterior_bboxes): + if bbox_overlap(hole_bbox, ext_bbox): + hole_exteriors[hole_i].append( ext_i ) + + # then, for holes with more than one possble exterior, do more detailed hole-in-ring test + for hole_i,exterior_candidates in hole_exteriors.items(): + + if not exterior_candidates: + # check that hole isn't orphaned + raise Exception('Shapefile shape has invalid polygon: found orphan hole (not contained by any of the exteriors)') + + if len(exterior_candidates) > 1: + # get sample point from within hole + hole_sample = ring_sample(holes[hole_i], ccw=True) + new_exterior_candidates = [] + for ext_i in exterior_candidates: + hole_in_exterior = ring_contains_point(exteriors[ext_i], hole_sample) + if hole_in_exterior: + new_exterior_candidates.append(ext_i) + + # check that hole isn't orphaned + if not new_exterior_candidates: + raise Exception('Shapefile shape has invalid polygon: found orphan hole (not contained by any of the exteriors)') + + # set new exterior candidates + hole_exteriors[hole_i] = new_exterior_candidates + + # still holes with more than one possble exterior, means we have an exterior hole nested inside another exterior's hole + for hole_i,exterior_candidates in hole_exteriors.items(): + if len(exterior_candidates) > 1: + raise NotImplementedError("Shapefile shape has an exterior hole nested inside another exterior's hole - this is not currently supported") + + # each hole should now only belong to one exterior, group into exterior-holes polygons + polys = [] + for ext_i,ext in enumerate(exteriors): + poly = [ext] + # find relevant holes + poly_holes = [] + for hole_i,exterior_candidates in hole_exteriors.items(): + # validate that hole only has one unambiguous exterior + if len(exterior_candidates) > 1: + raise Exception('Shapefile shape has invalid polygon: hole is contained by more than one possible exterior polygons. Unable to determine parent polygon. ') + # hole is relevant if previously matched with this exterior + if exterior_candidates[0] == ext_i: + poly_holes.append( holes[hole_i] ) + poly += poly_holes + polys.append(poly) + + # return geojson return { 'type': 'MultiPolygon', 'coordinates': polys } + + # no exteriors, bug? + else: + raise Exception('Shapefile shape has invalid polygon: no exterior rings found (clockwise orientation)') + else: raise Exception('Shape type "%s" cannot be represented as GeoJSON.' % SHAPETYPE_LOOKUP[self.shapeType]) diff --git a/shapefile.pyc b/shapefile.pyc index a687b6c2dee6aad8b856a06610743e287f19fd6c..49a51fcfe8c567a90d00f681fe50066a4db7f67c 100644 GIT binary patch delta 19815 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 JA2~7ezW`#$-AMod delta 10095 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 delta 12 TcmZo>YGz_#E@xt!$nqZm5m5sr diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 5da6265429c8583b57864c2787a02fae5581a492..861f36f254c318800b1e539e5077ae2b47be4344 100644 GIT binary patch delta 10 RcmXRZVPUS|V4uiR000ge0(<}f delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index 8bf76becb906118627788440f5284158a3fbc142..503eff2ef68bf665069813bde123320d836adbae 100644 GIT binary patch delta 10 RcmXRZVPUS|V4uiR000ge0(<}f delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index 70602685c409a14fac84a90b62e11f7069736452..a69480070b44b14bdda34ae60e2ac38158dda56a 100644 GIT binary patch delta 10 RcmXRZVPUS|V4uiR000ge0(<}f delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index 742d7f099dda8c0355c9c6f6958a2f03a1839a58..ebfd7a50fbfa83a92ad3393e557ea6455cb69db9 100644 GIT binary patch delta 10 RcmXRZVPUS|V4uiR000ge0(<}f delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 08bb8a3416817f47b1ad12676f5a2a54873cbcf2..8a6131489fa88985ec0df01d86e97974ab9003bc 100644 GIT binary patch delta 10 RcmXRZVPUS|V4uiR000ge0(<}f delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index e12c2fcef061abab283fb5a72eb2fdd21bf4f633..675d6d3f860425d5645fd2723a35d6b313801445 100644 GIT binary patch literal 33 UcmZRs;9zF}0!0Q!5QPDF0TinMx&QzG literal 33 UcmZQBXJTUj0!0Q!5QPDF0TZ(TvH$=8 diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index 746156bbb19f31e59f465598d52f02e08e105d4b..e397f6ec2900051666bce17a233f27c0d6d722bf 100644 GIT binary patch delta 10 RcmXRZVPUS|V4uiR000ge0(<}f delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index d501d91209bfbb62b3a231c7c45ec10f51fbb3c0..a8b914b97b160cd9559fbba4056eccd9ea1fbe4c 100644 GIT binary patch delta 10 RcmXRZVPUS|V4uiR000ge0(<}f delta 10 RcmXRZVPP(3Vw=cP000g00(1ZX diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index e12c2fcef061abab283fb5a72eb2fdd21bf4f633..675d6d3f860425d5645fd2723a35d6b313801445 100644 GIT binary patch literal 33 UcmZRs;9zF}0!0Q!5QPDF0TinMx&QzG literal 33 UcmZQBXJTUj0!0Q!5QPDF0TZ(TvH$=8 diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index e12c2fcef061abab283fb5a72eb2fdd21bf4f633..675d6d3f860425d5645fd2723a35d6b313801445 100644 GIT binary patch literal 33 UcmZRs;9zF}0!0Q!5QPDF0TinMx&QzG literal 33 UcmZQBXJTUj0!0Q!5QPDF0TZ(TvH$=8 From b519a928d5218f2dfe11890e85ab42c173cf0216 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sat, 8 Aug 2020 22:16:13 +0200 Subject: [PATCH 034/235] Docstring example poly was invalid (hole was not contained but coincident with exterior) --- README.md | 6 +++--- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 33 -> 33 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 33 -> 33 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.shp | Bin 340 -> 356 bytes shapefiles/test/polygon.shx | Bin 108 -> 108 bytes shapefiles/test/shapetype.dbf | Bin 33 -> 33 bytes shapefiles/test/testfile.dbf | Bin 33 -> 33 bytes 16 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9e63f29..c7555dd 100644 --- a/README.md +++ b/README.md @@ -800,9 +800,9 @@ The direction of your polygons determines how shapefile readers will distinguish >>> w.field('name', 'C') >>> w.poly([ - ... [[122,37], [117,36], [115,32], [118,20], [113,24]], # poly 1 - ... [[15,2], [17,6], [22,7]], # hole 1 - ... [[122,37], [117,36], [115,32]] # poly 2 + ... [[113,24], [112,32], [117,36], [122,37], [118,20]], # poly 1 + ... [[116,29],[116,26],[119,29],[119,32]], # hole 1 + ... [[15,2], [17,6], [22,7]] # poly 2 ... ]) >>> w.record('polygon1') diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index 19f6d71fbd94731b51a6d977d7495ab5f0b50fe0..ebf7fe893ddcf5a8a4543770b1c4131cb6e31c1e 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq^dZBZ~qv02bf^yZ`_I delta 13 UcmZ3&wuFs^xq^dzBZ~qv02bQYGz_#uHfL9$nqZm5q$$L delta 12 TcmZo>YGz_#uHayw$nqZm5qSeG diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 861f36f254c318800b1e539e5077ae2b47be4344..84290392dc6f88cb5e659780ddfb4bfd07b43cd3 100644 GIT binary patch delta 10 RcmXRZVPUS|;F!o#000gi0(}4g delta 10 RcmXRZVPUS|V4uiR000ge0(<}f diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index 503eff2ef68bf665069813bde123320d836adbae..546d3bb8b7b77770ada6f0a8601da98aa9e41620 100644 GIT binary patch delta 10 RcmXRZVPUS|;F!o#000gi0(}4g delta 10 RcmXRZVPUS|V4uiR000ge0(<}f diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index a69480070b44b14bdda34ae60e2ac38158dda56a..48287d89102d04d9001c3c0b60c5dbd729e2cf62 100644 GIT binary patch delta 10 RcmXRZVPUS|;F!o#000gi0(}4g delta 10 RcmXRZVPUS|V4uiR000ge0(<}f diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index ebfd7a50fbfa83a92ad3393e557ea6455cb69db9..bf26a509d31e5d5dad477a9b4da09180aefbd1fd 100644 GIT binary patch delta 10 RcmXRZVPUS|;F!o#000gi0(}4g delta 10 RcmXRZVPUS|V4uiR000ge0(<}f diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 8a6131489fa88985ec0df01d86e97974ab9003bc..ac6d8974f420daad929c4c274014628bb5193318 100644 GIT binary patch delta 10 RcmXRZVPUS|;F!o#000gi0(}4g delta 10 RcmXRZVPUS|V4uiR000ge0(<}f diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index 675d6d3f860425d5645fd2723a35d6b313801445..a57933fec96869510eab64f237e687932d779cc4 100644 GIT binary patch literal 33 UcmZRs;NV~Y0!0Q!5QPDF0Tjsqy8r+H literal 33 UcmZRs;9zF}0!0Q!5QPDF0TinMx&QzG diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index e397f6ec2900051666bce17a233f27c0d6d722bf..e464bcd16840913b47e210ee5416ceb3a0326a31 100644 GIT binary patch delta 10 RcmXRZVPUS|;F!o#000gi0(}4g delta 10 RcmXRZVPUS|V4uiR000ge0(<}f diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index a8b914b97b160cd9559fbba4056eccd9ea1fbe4c..500b98361104ac168693768604f4c9320203e4e6 100644 GIT binary patch delta 10 RcmXRZVPUS|;F!o#000gi0(}4g delta 10 RcmXRZVPUS|V4uiR000ge0(<}f diff --git a/shapefiles/test/polygon.shp b/shapefiles/test/polygon.shp index afd7c363d63d098aec194750052f68ca9a51eba7..e6d89029e62dd812c9e4119a92f6597ec05ebe10 100644 GIT binary patch literal 356 zcmZQzQ0HR64mQ1DW?*22%jr2lnGm`m4oW*gXa>B15hzB15hzVO diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index 675d6d3f860425d5645fd2723a35d6b313801445..a57933fec96869510eab64f237e687932d779cc4 100644 GIT binary patch literal 33 UcmZRs;NV~Y0!0Q!5QPDF0Tjsqy8r+H literal 33 UcmZRs;9zF}0!0Q!5QPDF0TinMx&QzG diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index 675d6d3f860425d5645fd2723a35d6b313801445..a57933fec96869510eab64f237e687932d779cc4 100644 GIT binary patch literal 33 UcmZRs;NV~Y0!0Q!5QPDF0Tjsqy8r+H literal 33 UcmZRs;9zF}0!0Q!5QPDF0TinMx&QzG From b8d13d034b457e53a87402941a1d69674148784d Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sun, 9 Aug 2020 09:57:12 +0200 Subject: [PATCH 035/235] Fix polygons not being auto closed, as per the docs The poly() method previously autoclosed polygon rings, as described in the docs, but accidentally got dropped, probably during the refactoring for v2.0. --- shapefile.py | 6 ++++++ shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 33 -> 33 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 33 -> 33 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.shp | Bin 356 -> 404 bytes shapefiles/test/polygon.shx | Bin 108 -> 108 bytes shapefiles/test/shapetype.dbf | Bin 33 -> 33 bytes shapefiles/test/testfile.dbf | Bin 33 -> 33 bytes 16 files changed, 6 insertions(+) diff --git a/shapefile.py b/shapefile.py index 0dc8473..3175881 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1910,6 +1910,12 @@ def _shapeparts(self, parts, shapeType): polyShape = Shape(shapeType) polyShape.parts = [] polyShape.points = [] + # Make sure polygon rings (parts) are closed + if shapeType in (5,15,25,31): + for part in parts: + if part[0] != part[-1]: + part.append(part[0]) + # Add points and part indexes for part in parts: # set part index position polyShape.parts.append(len(polyShape.points)) diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index ebf7fe893ddcf5a8a4543770b1c4131cb6e31c1e..acfec83987aecf82f3a4c36ec80f1fcb1d8117e6 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq^dpBZ~qv02bu}y#N3J delta 13 UcmZ3&wuFs^xq^dZBZ~qv02bf^yZ`_I diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index a57933fec96869510eab64f237e687932d779cc4..4bf6de27a4b2fe0aae2c420259cf2d8a407f1e38 100644 GIT binary patch literal 33 UcmZRs;NWBc0!0Q!5QPDF0Tkx|yZ`_I literal 33 UcmZRs;NV~Y0!0Q!5QPDF0Tjsqy8r+H diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index e768eb47ede65978e15719a8baca42820e8646e4..19038e52a21a5f98aea4e74e61566fcea48ae101 100644 GIT binary patch delta 12 TcmZo>YGz_#uHfLD$nqZm5rG3Q delta 12 TcmZo>YGz_#uHfL9$nqZm5q$$L diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 84290392dc6f88cb5e659780ddfb4bfd07b43cd3..b9d47050fab53bbf04f3fa5f8cffc0eb300b8567 100644 GIT binary patch delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah delta 10 RcmXRZVPUS|;F!o#000gi0(}4g diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index 546d3bb8b7b77770ada6f0a8601da98aa9e41620..e4708f89e082fdc674fd1818bffc4dbe05357ed2 100644 GIT binary patch delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah delta 10 RcmXRZVPUS|;F!o#000gi0(}4g diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index 48287d89102d04d9001c3c0b60c5dbd729e2cf62..36b81a7c2525588d74f1e3827312c6af64317dae 100644 GIT binary patch delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah delta 10 RcmXRZVPUS|;F!o#000gi0(}4g diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index bf26a509d31e5d5dad477a9b4da09180aefbd1fd..018716395f57cf506d350ec5c4a232cd7f7e097a 100644 GIT binary patch delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah delta 10 RcmXRZVPUS|;F!o#000gi0(}4g diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index ac6d8974f420daad929c4c274014628bb5193318..7f8c865ac58fe8364119ed84303dec7a143b779f 100644 GIT binary patch delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah delta 10 RcmXRZVPUS|;F!o#000gi0(}4g diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index a57933fec96869510eab64f237e687932d779cc4..4bf6de27a4b2fe0aae2c420259cf2d8a407f1e38 100644 GIT binary patch literal 33 UcmZRs;NWBc0!0Q!5QPDF0Tkx|yZ`_I literal 33 UcmZRs;NV~Y0!0Q!5QPDF0Tjsqy8r+H diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index e464bcd16840913b47e210ee5416ceb3a0326a31..21630fe010c82eb759bc6f026273e0e29a29f1a6 100644 GIT binary patch delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah delta 10 RcmXRZVPUS|;F!o#000gi0(}4g diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 500b98361104ac168693768604f4c9320203e4e6..00c00057601743f137d5321a9c1665ea49f12636 100644 GIT binary patch delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah delta 10 RcmXRZVPUS|;F!o#000gi0(}4g diff --git a/shapefiles/test/polygon.shp b/shapefiles/test/polygon.shp index e6d89029e62dd812c9e4119a92f6597ec05ebe10..c7654ebccaa29fb19c05d8c330ac699b1588016b 100644 GIT binary patch delta 85 zcmaFDG=+JBG~=m>GX9KHCMu{*oWR1%&j0~zK#F_f!U!&h7zc=m#l+9xkM#qU|{F5^or2!qa3k(1N diff --git a/shapefiles/test/polygon.shx b/shapefiles/test/polygon.shx index e4108f41d68ac1e650c0607af7458abf6f865ef6..df6e0155d205b669599ecebb4f2b79ce7e8f7449 100644 GIT binary patch delta 6 Ncmd1FnUKvm1po-a0%-sM delta 6 Ncmd1FnUKv`0{{rA0#N_} diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index a57933fec96869510eab64f237e687932d779cc4..4bf6de27a4b2fe0aae2c420259cf2d8a407f1e38 100644 GIT binary patch literal 33 UcmZRs;NWBc0!0Q!5QPDF0Tkx|yZ`_I literal 33 UcmZRs;NV~Y0!0Q!5QPDF0Tjsqy8r+H diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index a57933fec96869510eab64f237e687932d779cc4..4bf6de27a4b2fe0aae2c420259cf2d8a407f1e38 100644 GIT binary patch literal 33 UcmZRs;NWBc0!0Q!5QPDF0Tkx|yZ`_I literal 33 UcmZRs;NV~Y0!0Q!5QPDF0Tjsqy8r+H From 92b1b1fc25a6f9bcf8cab634ca995b5ea00f2fdc Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sun, 9 Aug 2020 16:20:52 +0200 Subject: [PATCH 036/235] Raise error if writer has no fields, refactor deletionflag handling Previously allowed creating invalid shapefiles with zero fields defined, but should raise error. Fixes #194 . Also, note that deletionflag-handling basically just ignores the deletionflag if specified, and records should not contain any record flags. --- README.md | 8 ++++-- __pycache__/shapefile.cpython-37.pyc | Bin 0 -> 56438 bytes shapefile.py | 40 ++++++++++++++------------- shapefiles/test/contextwriter.dbf | Bin 33 -> 65 bytes shapefiles/test/onlydbf.dbf | Bin 33 -> 65 bytes shapefiles/test/shapetype.dbf | Bin 33 -> 65 bytes shapefiles/test/testfile.dbf | Bin 33 -> 65 bytes 7 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 __pycache__/shapefile.cpython-37.pyc diff --git a/README.md b/README.md index c7555dd..c75ec7c 100644 --- a/README.md +++ b/README.md @@ -524,6 +524,7 @@ the file path and name to save to: >>> w = shapefile.Writer('shapefiles/test/testfile') + >>> w.field('field1', 'C') File extensions are optional when reading or writing shapefiles. If you specify them PyShp ignores them anyway. When you save files you can specify a base @@ -532,6 +533,7 @@ one or more file types: >>> w = shapefile.Writer(dbf='shapefiles/test/onlydbf.dbf') + >>> w.field('field1', 'C') In that case, any file types not assigned will not save and only file types with file names will be saved. @@ -549,8 +551,9 @@ Alternatively, you can also use the "Writer" class as a context manager, to ensu objects are properly closed and final headers written once you exit the with-clause: - >>> with shapefile.Writer("shapefiles/test/contextwriter") as shp: - ... pass + >>> with shapefile.Writer("shapefiles/test/contextwriter") as w: + ... w.field('field1', 'C') + ... pass #### Writing Shapefiles to File-Like Objects @@ -586,6 +589,7 @@ To manually set the shape type for a Writer object when creating the Writer: >>> w = shapefile.Writer('shapefiles/test/shapetype', shapeType=3) + >>> w.field('field1', 'C') >>> w.shapeType 3 diff --git a/__pycache__/shapefile.cpython-37.pyc b/__pycache__/shapefile.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..224d32a2049fe89551300502ddfff485be22070b GIT binary patch literal 56438 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 literal 0 HcmV?d00001 diff --git a/shapefile.py b/shapefile.py index 3175881..475c9ab 100644 --- a/shapefile.py +++ b/shapefile.py @@ -372,7 +372,7 @@ def __geo_interface__(self): if bbox_overlap(hole_bbox, ext_bbox): hole_exteriors[hole_i].append( ext_i ) - # then, for holes with more than one possble exterior, do more detailed hole-in-ring test + # then, for holes with more than one possible exterior, do more detailed hole-in-ring test for hole_i,exterior_candidates in hole_exteriors.items(): if not exterior_candidates: @@ -1239,8 +1239,8 @@ def __init__(self, target=None, shapeType=None, autoBalance=False, **kwargs): self._bbox = None self._zbox = None self._mbox = None - # Use deletion flags in dbf? Default is false (0). - self.deletionFlag = 0 + # Use deletion flags in dbf? Default is false (0). Note: Currently has no effect, records should NOT contain deletion flags. + self.deletionFlag = 0 # Encoding self.encoding = kwargs.pop('encoding', 'utf-8') self.encodingErrors = kwargs.pop('encodingErrors', 'strict') @@ -1470,22 +1470,23 @@ def __dbfHeader(self): version = 3 year, month, day = time.localtime()[:3] year -= 1900 - # Remove deletion flag placeholder from fields - for field in self.fields: - if field[0].startswith("Deletion"): - self.fields.remove(field) + # Get all fields, ignoring DeletionFlag if specified + fields = [field for field in self.fields if field[0] != 'DeletionFlag'] + # Ensure has at least one field + if not fields: + raise ShapefileException("Shapefile dbf file must contain at least one field.") numRecs = self.recNum - numFields = len(self.fields) + numFields = len(fields) headerLength = numFields * 32 + 33 if headerLength >= 65535: raise ShapefileException( "Shapefile dbf header length exceeds maximum length.") - recordLength = sum([int(field[2]) for field in self.fields]) + 1 + recordLength = sum([int(field[2]) for field in fields]) + 1 header = pack(' self.shpNum: self.balance() - record = [] - fieldCount = len(self.fields) - # Compensate for deletion flag - if self.fields[0][0].startswith("Deletion"): fieldCount -= 1 if recordList: - record = [recordList[i] for i in range(fieldCount)] + record = list(recordList) elif recordDict: + record = [] for field in self.fields: + if field[0] == 'DeletionFlag': + continue # ignore deletionflag field in case it was specified if field[0] in recordDict: val = recordDict[field[0]] if val is None: @@ -1692,7 +1692,7 @@ def record(self, *recordList, **recordDict): record.append(val) else: # Blank fields for empty record - record = ["" for i in range(fieldCount)] + record = ["" for field in self.fields if field[0] != 'DeletionFlag'] self.__dbfRecord(record) def __dbfRecord(self, record): @@ -1703,11 +1703,13 @@ def __dbfRecord(self, record): # allowing us to write the dbf header # cannot change the fields after this point self.__dbfHeader() + # first byte of the record is deletion flag, always disabled + f.write(b' ') # begin self.recNum += 1 - if not self.fields[0][0].startswith("Deletion"): - f.write(b' ') # deletion flag - for (fieldName, fieldType, size, deci), value in zip(self.fields, record): + fields = (field for field in self.fields if field[0] != 'DeletionFlag') # ignore deletionflag field in case it was specified + for (fieldName, fieldType, size, deci), value in zip(fields, record): + # write fieldType = fieldType.upper() size = int(size) if fieldType in ("N","F"): diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index 4bf6de27a4b2fe0aae2c420259cf2d8a407f1e38..476afe308d144438ecb2180d53963bce0f1c2ac1 100644 GIT binary patch literal 65 icmZRs;NWBc0!Id85QPEKGE;L>48g+AAkqj;1up=Jk^{H^ literal 33 UcmZRs;NWBc0!0Q!5QPDF0Tkx|yZ`_I diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index 4bf6de27a4b2fe0aae2c420259cf2d8a407f1e38..476afe308d144438ecb2180d53963bce0f1c2ac1 100644 GIT binary patch literal 65 icmZRs;NWBc0!Id85QPEKGE;L>48g+AAkqj;1up=Jk^{H^ literal 33 UcmZRs;NWBc0!0Q!5QPDF0Tkx|yZ`_I diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index 4bf6de27a4b2fe0aae2c420259cf2d8a407f1e38..476afe308d144438ecb2180d53963bce0f1c2ac1 100644 GIT binary patch literal 65 icmZRs;NWBc0!Id85QPEKGE;L>48g+AAkqj;1up=Jk^{H^ literal 33 UcmZRs;NWBc0!0Q!5QPDF0Tkx|yZ`_I diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index 4bf6de27a4b2fe0aae2c420259cf2d8a407f1e38..476afe308d144438ecb2180d53963bce0f1c2ac1 100644 GIT binary patch literal 65 icmZRs;NWBc0!Id85QPEKGE;L>48g+AAkqj;1up=Jk^{H^ literal 33 UcmZRs;NWBc0!0Q!5QPDF0Tkx|yZ`_I From db18f4cd9a18c151a01a3070b86581c5de48bad4 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Wed, 27 Nov 2019 11:49:01 +1300 Subject: [PATCH 037/235] Start testing with Python 3.6, 3.7, 3.8 and PyPy; drop 3.3 and 3.4 --- .travis.yml | 13 ++++++++----- setup.py | 4 ++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 43df32f..02ad28e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,17 @@ language: python python: - - '2.7' - - '3.3' - - '3.4' - - '3.5' + - "2.7" + - "3.5" + - "3.6" + - "3.7" + - "3.8" + - "pypy" + - "pypy3" install: - pip install . - - pip install -U setuptools>=38.6.0 + - pip install -U setuptools script: - python shapefile.py diff --git a/setup.py b/setup.py index e6c4848..39ae7db 100644 --- a/setup.py +++ b/setup.py @@ -23,6 +23,10 @@ def read_file(file): classifiers=['Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'Topic :: Scientific/Engineering :: GIS', 'Topic :: Software Development :: Libraries', 'Topic :: Software Development :: Libraries :: Python Modules']) From 8315097cf2eccbd9674184de8081b7a9d564faec Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sun, 9 Aug 2020 16:50:49 +0200 Subject: [PATCH 038/235] Delete shapefile.pyc --- shapefile.pyc | Bin 66772 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 shapefile.pyc diff --git a/shapefile.pyc b/shapefile.pyc deleted file mode 100644 index 49a51fcfe8c567a90d00f681fe50066a4db7f67c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66772 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 (cQ-$s{0+DqRmFJk9SgR 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 Date: Thu, 26 Sep 2019 10:09:48 +1200 Subject: [PATCH 039/235] Remove .pyc file, update .gitignore --- .gitignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 27c11b2..fadf39a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,8 @@ shapefiles/test/latin_as_utf8.shx shapefiles/test/null.dbf shapefiles/test/null.shp shapefiles/test/null.shx -__cache__/ \ No newline at end of file +__cache__/ +build/ +dist/ +*.egg-info/ +*.pyc From 06276e08624996a328382407e3536ac77c0d4f31 Mon Sep 17 00:00:00 2001 From: fiveham Date: Mon, 27 May 2019 02:15:57 -0400 Subject: [PATCH 040/235] typos, grammar, phrasing, and Latin -> English "and allows to use all the optimazations" is not parallel with the "to ensure" that precedes it. Replace Latin "e.g." with English "For example". Document generator functions iterShapes and iterRecords with the less ambiguous phrasing from iterShapeRecords --- shapefile.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/shapefile.py b/shapefile.py index 475c9ab..443be4e 100644 --- a/shapefile.py +++ b/shapefile.py @@ -151,7 +151,7 @@ def is_string(v): # Begin class _Array(array.array): - """Converts python tuples to lits of the appropritate type. + """Converts python tuples to lists of the appropritate type. Used to unpack different shapefile header parts.""" def __repr__(self): return str(self.tolist()) @@ -250,7 +250,7 @@ def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None): specified in the Shapefile spec. Shape types are usually point, polyline, or polygons. Every shape type except the "Null" type contains points at some level for - example verticies in a polygon. If a shape type has + example vertices in a polygon. If a shape type has multiple shapes containing points within a single geometry record then those shapes are called parts. Parts are designated by their starting index in geometry record's @@ -512,11 +512,11 @@ def shapeTypeName(self): class _Record(list): """ A class to hold a record. Subclasses list to ensure compatibility with - former work and allows to use all the optimazations of the builtin list. + former work and to reuse all the optimizations of the builtin list. In addition to the list interface, the values of the record - can also be retrieved using the fields name. Eg. if the dbf contains + can also be retrieved using the field's name. For example if the dbf contains a field ID at position 0, the ID can be retrieved with the position, the field name - as a key or the field name as an attribute. + as a key, or the field name as an attribute. >>> # Create a Record with one field, normally the record is created by the Reader class >>> r = _Record({'ID': 0}, [0]) @@ -543,12 +543,13 @@ def __init__(self, field_positions, values, oid=None): def __getattr__(self, item): """ __getattr__ is called if an attribute is used that does - not exist in the normal sense. Eg. r=Record(...), r.ID + not exist in the normal sense. For example r=Record(...), r.ID calls r.__getattr__('ID'), but r.index(5) calls list.index(r, 5) :param item: The field name, used as attribute :return: Value of the field - :raises: Attribute error, if field does not exist - and IndexError, if field exists but not values in the Record + :raises: AttributeError, if item is not a field of the shapefile + and IndexError, if the field exists but the field's + corresponding value in the Record does not exist """ try: index = self.__field_positions[item] @@ -579,7 +580,7 @@ def __getitem__(self, item): Extends the normal list item access with access using a fieldname - Eg. r['ID'], r[0] + For example r['ID'], r[0] :param item: Either the position of the value or the name of a field :return: the value of the field """ @@ -600,7 +601,7 @@ def __setitem__(self, key, value): Extends the normal list item access with access using a fieldname - Eg. r['ID']=2, r[0]=2 + For example r['ID']=2, r[0]=2 :param key: Either the position of the value or the name of a field :param value: the new value of the field """ @@ -636,7 +637,7 @@ def __dir__(self): :return: List of method names and fields """ default = list(dir(type(self))) # default list methods and attributes of this class - fnames = list(self.__field_positions.keys()) # plus field names (random order) + fnames = list(self.__field_positions.keys()) # plus field names (random order if Python version < 3.6) return default + fnames class ShapeRecord(object): @@ -654,9 +655,9 @@ def __geo_interface__(self): class Shapes(list): """A class to hold a list of Shape objects. Subclasses list to ensure compatibility with - former work and allows to use all the optimazations of the builtin list. + former work and to reuse all the optimizations of the builtin list. In addition to the list interface, this also provides the GeoJSON __geo_interface__ - to return a GeometryCollection dictionary. """ + to return a GeometryCollection dictionary.""" def __repr__(self): return 'Shapes: {}'.format(list(self)) @@ -670,9 +671,9 @@ def __geo_interface__(self): class ShapeRecords(list): """A class to hold a list of ShapeRecord objects. Subclasses list to ensure compatibility with - former work and allows to use all the optimazations of the builtin list. + former work and to reuse all the optimizations of the builtin list. In addition to the list interface, this also provides the GeoJSON __geo_interface__ - to return a FeatureCollection dictionary. """ + to return a FeatureCollection dictionary.""" def __repr__(self): return 'ShapeRecords: {}'.format(list(self)) @@ -1033,7 +1034,7 @@ def shapes(self): return shapes def iterShapes(self): - """Serves up shapes in a shapefile as an iterator. Useful + """Returns a generator of shapes in a shapefile. Useful for handling large shapefiles.""" shp = self.__getFileObj(self.shp) shp.seek(0,2) @@ -1179,7 +1180,7 @@ def records(self): return records def iterRecords(self): - """Serves up records in a dbf file as an iterator. + """Returns a generator of records in a dbf file. Useful for large shapefiles or dbf files.""" if self.numRecords is None: self.__dbfHeader() From 3ddb13d2b5cc7df926775afc407c2fd74bfef2c8 Mon Sep 17 00:00:00 2001 From: fiveham Date: Sat, 27 Jul 2019 22:02:11 -0400 Subject: [PATCH 041/235] the the -> the --- shapefile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shapefile.py b/shapefile.py index 443be4e..0eee3c6 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1005,7 +1005,7 @@ def __shapeIndex(self, i=None): return self._offsets[i] def shape(self, i=0): - """Returns a shape object for a shape in the the geometry + """Returns a shape object for a shape in the geometry record file.""" shp = self.__getFileObj(self.shp) i = self.__restrictIndex(i) From 918b4211dda56de2aab212d8f2cc604d55e44743 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sun, 9 Aug 2020 17:26:17 +0200 Subject: [PATCH 042/235] Drop Python 3.3 testing support --- requirements.test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.test.txt b/requirements.test.txt index dccb985..b3eaa8c 100644 --- a/requirements.test.txt +++ b/requirements.test.txt @@ -1,2 +1,2 @@ pytest==3.2.5 -setuptools==36.8.0 ; python_version=="3.3" +setuptools From 70c15e21b1daecd7db96440dae25a887ff3ce321 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sun, 9 Aug 2020 17:34:52 +0200 Subject: [PATCH 043/235] Delete __pycache__ folder --- __pycache__/shapefile.cpython-37.pyc | Bin 56438 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 __pycache__/shapefile.cpython-37.pyc diff --git a/__pycache__/shapefile.cpython-37.pyc b/__pycache__/shapefile.cpython-37.pyc deleted file mode 100644 index 224d32a2049fe89551300502ddfff485be22070b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56438 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 From e0d436535ecf71fc22a7df61f38bd733e0f258aa Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sun, 9 Aug 2020 18:07:50 +0200 Subject: [PATCH 044/235] Change pytest tests to handle empty dbf fields --- shapefile.py | 4 ++-- test_shapefile.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/shapefile.py b/shapefile.py index 0eee3c6..f4ed043 100644 --- a/shapefile.py +++ b/shapefile.py @@ -747,7 +747,7 @@ def __init__(self, *args, **kwargs): self.dbf.seek(0) except (NameError, io.UnsupportedOperation): self.dbf = io.BytesIO(self.dbf.read()) - if self.shp or self.dbf: + if self.shp or self.dbf: self.load() else: raise ShapefileException("Shapefile Reader requires a shapefile or file-like object.") @@ -1670,7 +1670,7 @@ def record(self, *recordList, **recordDict): """Creates a dbf attribute record. You can submit either a sequence of field values or keyword arguments of field names and values. Before adding records you must add fields for the record values using the - fields() method. If the record values exceed the number of fields the + field() method. If the record values exceed the number of fields the extra ones won't be added. In the case of using keyword arguments to specify field/value pairs only fields matching the already registered fields will be added.""" diff --git a/test_shapefile.py b/test_shapefile.py index 65707b3..b0b7643 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -227,7 +227,7 @@ def test_write_dbf_only(tmpdir): """ filename = tmpdir.join("test.dbf").strpath with shapefile.Writer(dbf=filename) as writer: - pass + writer.field('field1', 'C') # required to create a valid dbf file # assert test.dbf exists assert os.path.exists(filename) @@ -247,7 +247,7 @@ def test_write_default_shp_shx_dbf(tmpdir): """ filename = tmpdir.join("test").strpath with shapefile.Writer(filename) as writer: - pass + writer.field('field1', 'C') # required to create a valid dbf file # assert shp, shx, dbf files exist assert os.path.exists(filename + ".shp") @@ -264,7 +264,7 @@ def test_write_shapefile_extension_ignored(tmpdir): ext = ".abc" filename = tmpdir.join(base + ext).strpath with shapefile.Writer(filename) as writer: - pass + writer.field('field1', 'C') # required to create a valid dbf file # assert shp, shx, dbf files exist basepath = tmpdir.join(base).strpath From ad7823603f980971d8925a1f225857cbccb90013 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 24 Aug 2020 21:33:47 +0200 Subject: [PATCH 045/235] Misc changes and fixes to multipolygon hole determination, add shape geo interface testing Move all multipolygon hole determination to separate organize_polygon_rings() function. Fixed buggy point-in-ring algo. Switched away from buggy sample_ring points, to full ring in ring containment test. Switch to simpler area-based determination for nested exterior-holes (which is how gdal also does it). Switch geo interface to consistently returns lists instead of tuples. --- shapefile.py | 248 ++++++++++++++++-------------- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.shp | Bin 404 -> 356 bytes shapefiles/test/polygon.shx | Bin 108 -> 108 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes test_shapefile.py | 128 +++++++++++++++ 17 files changed, 263 insertions(+), 113 deletions(-) diff --git a/shapefile.py b/shapefile.py index f4ed043..650adb4 100644 --- a/shapefile.py +++ b/shapefile.py @@ -18,6 +18,8 @@ import io from datetime import date +warnings.simplefilter("always") + # Constants for shape types NULL = 0 @@ -165,25 +167,6 @@ def signed_area(coords): ys.append(ys[1]) return sum(xs[i]*(ys[i+1]-ys[i-1]) for i in range(1, len(coords)))/2.0 -def ring_sample(coords, ccw=False): - """Return a sample point guaranteed to be within a ring, by efficiently - finding the first centroid of a coordinate triplet whose orientation - matches the orientation of the ring. The orientation of the ring is assumed - to be clockwise, unless ccw (counter-clockwise) is set to True. - """ - # TODO: handle duplicate coordinates - # TODO: handle coordinates in a straight line that dont form a triangle - coords = tuple(coords) + (coords[1],) # add the second coordinate to the end to allow checking the last triplet - for i in xrange(len(coords)-3): - triplet = coords[i:i+3] + (coords[i],) # add the first point in order to close triplet ring - # get triplet orientation - triplet_ccw = signed_area(triplet) >= 0 - if ccw == triplet_ccw: - # a triplet with the same orientation as the ring, means the triplet centroid is inside the ring - xs,ys = zip(*triplet[:3]) # exclude the repeated closing point - xmean,ymean = sum(xs) / 3.0, sum(ys) / 3.0 - return xmean,ymean - def ring_bbox(coords): """Calculates and returns the bounding box of a ring. """ @@ -212,13 +195,12 @@ def ring_contains_point(coords, p): """ tx,ty = p - # get test bit for above/below X axis + # get initial test bit for above/below X axis vtx0 = coords[0] yflag0 = ( vtx0[1] >= ty ) - vtx1 = coords[1] inside_flag = False - for j in xrange(len(coords)-2): + for vtx1 in coords[1:]: yflag1 = ( vtx1[1] >= ty ) # check if endpoints straddle (are on opposite sides) of X axis # (i.e. the Y's differ); if so, +X ray could intersect this edge. @@ -239,9 +221,120 @@ def ring_contains_point(coords, p): # move to next pair of vertices, retaining info as possible yflag0 = yflag1 vtx0 = vtx1 - vtx1 = coords[j+2] return inside_flag + +def ring_contains_ring(coords1, coords2): + '''Returns True if all vertexes in coords2 are fully inside coords1. + ''' + return all((ring_contains_point(coords1, p2) for p2 in coords2)) + +def organize_polygon_rings(rings): + '''Organize a list of coordinate rings into one or more polygons with holes. + Returns a list of polygons, where each polygon is composed of a single exterior + ring, and one or more interior holes. + + Rings must be closed, and cannot intersect each other (non-self-intersecting polygon). + Rings are determined as exteriors if they run in clockwise direction, or interior + holes if they run in counter-clockwise direction. This method is used to construct + GeoJSON (multi)polygons from the shapefile polygon shape type, which does not + explicitly store the structure of the polygons beyond exterior/interior ring orientation. + ''' + # first iterate rings and classify as exterior or hole + exteriors = [] + holes = [] + for ring in rings: + # shapefile format defines a polygon as a sequence of rings + # where exterior rings are clockwise, and holes counterclockwise + if signed_area(ring) < 0: + # ring is exterior + exteriors.append(ring) + else: + # ring is a hole + holes.append(ring) + + # if only one exterior, then all holes belong to that exterior + if len(exteriors) == 1: + # exit early + poly = [exteriors[0]] + holes + polys = [poly] + return polys + + # multiple exteriors, ie multi-polygon, have to group holes with correct exterior + # shapefile format does not specify which holes belong to which exteriors + # so have to do efficient multi-stage checking of hole-to-exterior containment + elif len(exteriors) > 1: + # exit early if no holes + if not holes: + polys = [] + for ext in exteriors: + poly = [ext] + polys.append(poly) + return polys + + # first determine each hole's candidate exteriors based on simple bbox overlap test + hole_exteriors = dict([(hole_i,[]) for hole_i in xrange(len(holes))]) + exterior_bboxes = [ring_bbox(ring) for ring in exteriors] + for hole_i in hole_exteriors.keys(): + hole_bbox = ring_bbox(holes[hole_i]) + for ext_i,ext_bbox in enumerate(exterior_bboxes): + if bbox_overlap(hole_bbox, ext_bbox): + hole_exteriors[hole_i].append( ext_i ) + + # then, for holes with more than one possible exterior, do more detailed hole-in-ring test + for hole_i,exterior_candidates in hole_exteriors.items(): + + if len(exterior_candidates) > 1: + # get new exterior candidates + hole = holes[hole_i] + new_exterior_candidates = [] + for ext_i in exterior_candidates: + ext = exteriors[ext_i] + hole_in_exterior = ring_contains_ring(ext, hole) + if hole_in_exterior: + new_exterior_candidates.append(ext_i) + + # set new exterior candidates + hole_exteriors[hole_i] = new_exterior_candidates + + # if still holes with more than one possible exterior, means we have an exterior hole nested inside another exterior's hole + for hole_i,exterior_candidates in hole_exteriors.items(): + + if len(exterior_candidates) > 1: + # exterior candidate with the smallest area is the hole's most immediate parent + ext_i = sorted(exterior_candidates, key=lambda x: abs(signed_area(exteriors[x])))[0] + hole_exteriors[hole_i] = [ext_i] + + # each hole should now only belong to one exterior, group into exterior-holes polygons + polys = [] + for ext_i,ext in enumerate(exteriors): + poly = [ext] + # find relevant holes + poly_holes = [] + for hole_i,exterior_candidates in list(hole_exteriors.items()): + # ignore any hole that is orphaned (not contained by an exterior) + if not exterior_candidates: + warnings.warn('Shapefile shape has invalid polygon: found orphan hole (not contained by any of the exteriors); ignoring.') + del hole_exteriors[hole_i] + continue + # ignore any hole that is ambiguous (more than one possible exteriors) + # this shouldn't happen however, since ambiguous exteriors are resolved + # in the previous stage as the one with the smallest area. + if len(exterior_candidates) > 1: + warnings.warn('Algorithm error: algorithm was unable to resolve hole exterior among multiple possible candidates; ignoring.') + del hole_exteriors[hole_i] + continue + # hole is relevant if previously matched with this exterior + if exterior_candidates[0] == ext_i: + poly_holes.append( holes[hole_i] ) + poly += poly_holes + polys.append(poly) + + return polys + + # no exteriors, bug? + else: + raise Exception('Shapefile shape has invalid polygon: no exterior rings found (must have clockwise orientation)') class Shape(object): @@ -282,24 +375,24 @@ def __geo_interface__(self): # the shape has no coordinate information, i.e. is 'empty' # the geojson spec does not define a proper null-geometry type # however, it does allow geometry types with 'empty' coordinates to be interpreted as null-geometries - return {'type':'MultiPoint', 'coordinates':tuple()} + return {'type':'MultiPoint', 'coordinates':[]} else: # multipoint return { 'type': 'MultiPoint', - 'coordinates': tuple([tuple(p) for p in self.points]) + 'coordinates': [tuple(p) for p in self.points] } elif self.shapeType in [POLYLINE, POLYLINEM, POLYLINEZ]: if len(self.parts) == 0: # the shape has no coordinate information, i.e. is 'empty' # the geojson spec does not define a proper null-geometry type # however, it does allow geometry types with 'empty' coordinates to be interpreted as null-geometries - return {'type':'LineString', 'coordinates':tuple()} + return {'type':'LineString', 'coordinates':[]} elif len(self.parts) == 1: # linestring return { 'type': 'LineString', - 'coordinates': tuple([tuple(p) for p in self.points]) + 'coordinates': [tuple(p) for p in self.points] } else: # multilinestring @@ -310,29 +403,23 @@ def __geo_interface__(self): ps = part continue else: - coordinates.append(tuple([tuple(p) for p in self.points[ps:part]])) + coordinates.append([tuple(p) for p in self.points[ps:part]]) ps = part else: - coordinates.append(tuple([tuple(p) for p in self.points[part:]])) + coordinates.append([tuple(p) for p in self.points[part:]]) return { 'type': 'MultiLineString', - 'coordinates': tuple(coordinates) + 'coordinates': coordinates } elif self.shapeType in [POLYGON, POLYGONM, POLYGONZ]: if len(self.parts) == 0: # the shape has no coordinate information, i.e. is 'empty' # the geojson spec does not define a proper null-geometry type # however, it does allow geometry types with 'empty' coordinates to be interpreted as null-geometries - return {'type':'Polygon', 'coordinates':tuple()} + return {'type':'Polygon', 'coordinates':[]} else: - # shapefile polygon is a sequence of rings - # where exterior rings are clockwise, and holes counterclockwise - # however there is no definition of which holes belong to which exteriors - # so have to do efficient checking of hole-to-exterior containment - - # iterate rings and classify as exterior or hole - exteriors = [] - holes = [] + # get all polygon rings + rings = [] for i in xrange(len(self.parts)): # get indexes of start and end points of the ring start = self.parts[i] @@ -342,90 +429,25 @@ def __geo_interface__(self): end = len(self.points) # extract the points that make up the ring - ring = tuple([tuple(p) for p in self.points[start:end]]) + ring = [tuple(p) for p in self.points[start:end]] + rings.append(ring) - # process the ring as exterior or hole based on orientation - if signed_area(ring) < 0: - # ring is exterior - exteriors.append(ring) - else: - # ring is a hole - holes.append(ring) + # organize rings into list of polygons, where each polygon is defined as list of rings. + # the first ring is the exterior and any remaining rings are holes (same as GeoJSON). + polys = organize_polygon_rings(rings) - # if only one exterior, then all holes belong to that exterior - if len(exteriors) == 1: - # return geojson - poly = [exteriors[0]] + holes + # return as geojson + if len(polys) == 1: return { 'type': 'Polygon', - 'coordinates': tuple(poly) + 'coordinates': polys[0] } - - # multiple exteriors, ie multi-polygon, have to group holes with correct exterior - elif len(exteriors) > 1: - # first group rings based on simple bbox overlap test - hole_exteriors = dict([(hole_i,[]) for hole_i in xrange(len(holes))]) - exterior_bboxes = [ring_bbox(ring) for ring in exteriors] - for hole_i in hole_exteriors.keys(): - hole_bbox = ring_bbox(holes[hole_i]) - for ext_i,ext_bbox in enumerate(exterior_bboxes): - if bbox_overlap(hole_bbox, ext_bbox): - hole_exteriors[hole_i].append( ext_i ) - - # then, for holes with more than one possible exterior, do more detailed hole-in-ring test - for hole_i,exterior_candidates in hole_exteriors.items(): - - if not exterior_candidates: - # check that hole isn't orphaned - raise Exception('Shapefile shape has invalid polygon: found orphan hole (not contained by any of the exteriors)') - - if len(exterior_candidates) > 1: - # get sample point from within hole - hole_sample = ring_sample(holes[hole_i], ccw=True) - new_exterior_candidates = [] - for ext_i in exterior_candidates: - hole_in_exterior = ring_contains_point(exteriors[ext_i], hole_sample) - if hole_in_exterior: - new_exterior_candidates.append(ext_i) - - # check that hole isn't orphaned - if not new_exterior_candidates: - raise Exception('Shapefile shape has invalid polygon: found orphan hole (not contained by any of the exteriors)') - - # set new exterior candidates - hole_exteriors[hole_i] = new_exterior_candidates - - # still holes with more than one possble exterior, means we have an exterior hole nested inside another exterior's hole - for hole_i,exterior_candidates in hole_exteriors.items(): - if len(exterior_candidates) > 1: - raise NotImplementedError("Shapefile shape has an exterior hole nested inside another exterior's hole - this is not currently supported") - - # each hole should now only belong to one exterior, group into exterior-holes polygons - polys = [] - for ext_i,ext in enumerate(exteriors): - poly = [ext] - # find relevant holes - poly_holes = [] - for hole_i,exterior_candidates in hole_exteriors.items(): - # validate that hole only has one unambiguous exterior - if len(exterior_candidates) > 1: - raise Exception('Shapefile shape has invalid polygon: hole is contained by more than one possible exterior polygons. Unable to determine parent polygon. ') - # hole is relevant if previously matched with this exterior - if exterior_candidates[0] == ext_i: - poly_holes.append( holes[hole_i] ) - poly += poly_holes - polys.append(poly) - - # return geojson + else: return { 'type': 'MultiPolygon', 'coordinates': polys } - # no exteriors, bug? - else: - raise Exception('Shapefile shape has invalid polygon: no exterior rings found (clockwise orientation)') - else: raise Exception('Shape type "%s" cannot be represented as GeoJSON.' % SHAPETYPE_LOOKUP[self.shapeType]) diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index acfec83987aecf82f3a4c36ec80f1fcb1d8117e6..ca42578569a40b1b0808f498886153d41c2f67cb 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq?GCWMQu05S_?k3jhjM0r3C; delta 10 RcmZ>CWMQu0;GD=}3jhix0p$Py diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index 19038e52a21a5f98aea4e74e61566fcea48ae101..d87330315fbe36e71f18fdd5475847656abe7bb2 100644 GIT binary patch delta 12 TcmZo>YGz_#uHX=z$nqZm5wQb1 delta 12 TcmZo>YGz_#uHfLD$nqZm5rG3Q diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index b9d47050fab53bbf04f3fa5f8cffc0eb300b8567..9862edecab63a8f665f220ef2883d3ed62488f4f 100644 GIT binary patch delta 10 RcmXRZVPUS|5S_?U000hB0*U|t delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index e4708f89e082fdc674fd1818bffc4dbe05357ed2..3fa78280e6d72fe54966be91780b071b8437e333 100644 GIT binary patch delta 10 RcmXRZVPUS|5S_?U000hB0*U|t delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index 36b81a7c2525588d74f1e3827312c6af64317dae..beefbcf58e6c667932e77fc3eb489f53fdbb6a38 100644 GIT binary patch delta 10 RcmXRZVPUS|5S_?U000hB0*U|t delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index 018716395f57cf506d350ec5c4a232cd7f7e097a..9e61732cb433e1b9361999afcf189f60f7da39bd 100644 GIT binary patch delta 10 RcmXRZVPUS|5S_?U000hB0*U|t delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 7f8c865ac58fe8364119ed84303dec7a143b779f..309f7536b6b80bf1189d257cf9c4d0ca717d964b 100644 GIT binary patch delta 10 RcmXRZVPUS|5S_?U000hB0*U|t delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index 476afe308d144438ecb2180d53963bce0f1c2ac1..ae9606627cd1e3920204270dbb2b47810b4e6ec6 100644 GIT binary patch delta 10 RcmZ>CWMQu05S_?k3jhjM0r3C; delta 10 RcmZ>CWMQu0;GD=}3jhix0p$Py diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index 21630fe010c82eb759bc6f026273e0e29a29f1a6..0cd509d2b953824e1ab77c9ab0d6ec8357c3b41e 100644 GIT binary patch delta 10 RcmXRZVPUS|5S_?U000hB0*U|t delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 00c00057601743f137d5321a9c1665ea49f12636..653b44bfff57f394c5d1361363e09e6175e8771e 100644 GIT binary patch delta 10 RcmXRZVPUS|5S_?U000hB0*U|t delta 10 RcmXRZVPUS|;GD=(000gm0)7Ah diff --git a/shapefiles/test/polygon.shp b/shapefiles/test/polygon.shp index c7654ebccaa29fb19c05d8c330ac699b1588016b..e6d89029e62dd812c9e4119a92f6597ec05ebe10 100644 GIT binary patch delta 47 xcmbQj{Df(OG~=d;GX9J;6BSe@PGI5XVSoTuAjLUxVZ>xkM#qU|{F5^or2!qa3k(1N delta 85 zcmaFDG=+JBG~=m>GX9KHCMu{*oWR1%&j0~zK#F_f!U!&h7zc=m#l+9CWMQu05S_?k3jhjM0r3C; delta 10 RcmZ>CWMQu0;GD=}3jhix0p$Py diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index 476afe308d144438ecb2180d53963bce0f1c2ac1..ae9606627cd1e3920204270dbb2b47810b4e6ec6 100644 GIT binary patch delta 10 RcmZ>CWMQu05S_?k3jhjM0r3C; delta 10 RcmZ>CWMQu0;GD=}3jhix0p$Py diff --git a/test_shapefile.py b/test_shapefile.py index b0b7643..0897621 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -10,6 +10,124 @@ # our imports import shapefile +# define valid shape tuples of (type, points, parts indexes, and expected geo interface output) +# test all sorts, incl no holes, hole in singlepoly, hole in multipoly, nested holes and polys +geo_interface_tests = [ (shapefile.POINT, # point + [(1,1)], + [], + {'type':'Point','coordinates':(1,1)} + ), + (shapefile.MULTIPOINT, # multipoint + [(1,1),(2,1),(2,2)], + [], + {'type':'MultiPoint','coordinates':[(1,1),(2,1),(2,2)]} + ), + (shapefile.POLYLINE, # single linestring + [(1,1),(2,1)], + [0], + {'type':'LineString','coordinates':[(1,1),(2,1)]} + ), + (shapefile.POLYLINE, # multi linestring + [(1,1),(2,1), # line 1 + (10,10),(20,10)], # line 2 + [0,2], + {'type':'MultiLineString','coordinates':[ + [(1,1),(2,1)], # line 1 + [(10,10),(20,10)] # line 2 + ]} + ), + (shapefile.POLYGON, # single polygon, no holes + [(1,1),(1,9),(9,9),(9,1),(1,1), # exterior + ], + [0], + {'type':'Polygon','coordinates':[ + [(1,1),(1,9),(9,9),(9,1),(1,1)], + ]} + ), + (shapefile.POLYGON, # single polygon, holes (ordered) + [(1,1),(1,9),(9,9),(9,1),(1,1), # exterior + (2,2),(4,2),(4,4),(2,4),(2,2), # hole 1 + (5,5),(7,5),(7,7),(5,7),(5,5), # hole 2 + ], + [0,5,5+5], + {'type':'Polygon','coordinates':[ + [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior + [(2,2),(4,2),(4,4),(2,4),(2,2)], # hole 1 + [(5,5),(7,5),(7,7),(5,7),(5,5)], # hole 2 + ]} + ), + (shapefile.POLYGON, # single polygon, holes (unordered) + [ + (2,2),(4,2),(4,4),(2,4),(2,2), # hole 1 + (1,1),(1,9),(9,9),(9,1),(1,1), # exterior + (5,5),(7,5),(7,7),(5,7),(5,5), # hole 2 + ], + [0,5,5+5], + {'type':'Polygon','coordinates':[ + [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior + [(2,2),(4,2),(4,4),(2,4),(2,2)], # hole 1 + [(5,5),(7,5),(7,7),(5,7),(5,5)], # hole 2 + ]} + ), + (shapefile.POLYGON, # multi polygon, no holes + [(1,1),(1,9),(9,9),(9,1),(1,1), # exterior + (11,11),(11,19),(19,19),(19,11),(11,11), # exterior + ], + [0,5], + {'type':'MultiPolygon','coordinates':[ + [ # poly 1 + [(1,1),(1,9),(9,9),(9,1),(1,1)], + ], + [ # poly 2 + [(11,11),(11,19),(19,19),(19,11),(11,11)], + ], + ]} + ), + (shapefile.POLYGON, # multi polygon, holes (unordered) + [(1,1),(1,9),(9,9),(9,1),(1,1), # exterior 1 + (11,11),(11,19),(19,19),(19,11),(11,11), # exterior 2 + (12,12),(14,12),(14,14),(12,14),(12,12), # hole 2.1 + (15,15),(17,15),(17,17),(15,17),(15,15), # hole 2.2 + (2,2),(4,2),(4,4),(2,4),(2,2), # hole 1.1 + (5,5),(7,5),(7,7),(5,7),(5,5), # hole 1.2 + ], + [0,5,10,15,20,25], + {'type':'MultiPolygon','coordinates':[ + [ # poly 1 + [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior + [(2,2),(4,2),(4,4),(2,4),(2,2)], # hole 1 + [(5,5),(7,5),(7,7),(5,7),(5,5)], # hole 2 + ], + [ # poly 2 + [(11,11),(11,19),(19,19),(19,11),(11,11)], # exterior + [(12,12),(14,12),(14,14),(12,14),(12,12)], # hole 1 + [(15,15),(17,15),(17,17),(15,17),(15,15)], # hole 2 + ], + ]} + ), + (shapefile.POLYGON, # multi polygon, nested exteriors with holes (unordered) + [(1,1),(1,9),(9,9),(9,1),(1,1), # exterior 1 + (3,3),(3,7),(7,7),(7,3),(3,3), # exterior 2 + (4.5,4.5),(4.5,5.5),(5.5,5.5),(5.5,4.5),(4.5,4.5), # exterior 3 + (4,4),(6,4),(6,6),(4,6),(4,4), # hole 2.1 + (2,2),(8,2),(8,8),(2,8),(2,2), # hole 1.1 + ], + [0,5,10,15,20], + {'type':'MultiPolygon','coordinates':[ + [ # poly 1 + [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior 1 + [(2,2),(8,2),(8,8),(2,8),(2,2)], # hole 1.1 + ], + [ # poly 2 + [(3,3),(3,7),(7,7),(7,3),(3,3)], # exterior 2 + [(4,4),(6,4),(6,6),(4,6),(4,4)], # hole 2.1 + ], + [ # poly 3 + [(4.5,4.5),(4.5,5.5),(5.5,5.5),(5.5,4.5),(4.5,4.5)], # exterior 3 + ], + ]} + ), + ] def test_empty_shape_geo_interface(): """ @@ -21,6 +139,15 @@ def test_empty_shape_geo_interface(): with pytest.raises(Exception): shape.__geo_interface__ +@pytest.mark.parametrize("typ,points,parts,expected", geo_interface_tests) +def test_expected_shape_geo_interface(typ, points, parts, expected): + """ + Assert that calling __geo_interface__ + on arbitrary input Shape works as expected. + """ + shape = shapefile.Shape(typ, points, parts) + geoj = shape.__geo_interface__ + assert geoj == expected def test_reader_context_manager(): """ @@ -274,3 +401,4 @@ def test_write_shapefile_extension_ignored(tmpdir): # assert test.abc does not exist assert not os.path.exists(basepath + ext) + From e5407f38c571029721d7aaa9cabca2aa7ecd9019 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 24 Aug 2020 22:47:02 +0200 Subject: [PATCH 046/235] Don't ignore invalid polygon shapes in geo interface Interpret orphan holes as exteriors. If only interior holes found, assume wrong winding order and return as exteriors. --- shapefile.py | 35 ++++++++++++++++++++--------------- test_shapefile.py | 43 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 17 deletions(-) diff --git a/shapefile.py b/shapefile.py index 650adb4..30ad10f 100644 --- a/shapefile.py +++ b/shapefile.py @@ -281,7 +281,7 @@ def organize_polygon_rings(rings): if bbox_overlap(hole_bbox, ext_bbox): hole_exteriors[hole_i].append( ext_i ) - # then, for holes with more than one possible exterior, do more detailed hole-in-ring test + # then, for holes with still more than one possible exterior, do more detailed hole-in-ring test for hole_i,exterior_candidates in hole_exteriors.items(): if len(exterior_candidates) > 1: @@ -305,6 +305,15 @@ def organize_polygon_rings(rings): ext_i = sorted(exterior_candidates, key=lambda x: abs(signed_area(exteriors[x])))[0] hole_exteriors[hole_i] = [ext_i] + # check for holes that are orphaned (not contained by any exterior) + orphan_holes = [] + for hole_i,exterior_candidates in list(hole_exteriors.items()): + if not exterior_candidates: + warnings.warn('Shapefile shape has invalid polygon: found orphan hole (not contained by any of the exteriors); interpreting as exterior.') + orphan_holes.append( hole_i ) + del hole_exteriors[hole_i] + continue + # each hole should now only belong to one exterior, group into exterior-holes polygons polys = [] for ext_i,ext in enumerate(exteriors): @@ -312,30 +321,26 @@ def organize_polygon_rings(rings): # find relevant holes poly_holes = [] for hole_i,exterior_candidates in list(hole_exteriors.items()): - # ignore any hole that is orphaned (not contained by an exterior) - if not exterior_candidates: - warnings.warn('Shapefile shape has invalid polygon: found orphan hole (not contained by any of the exteriors); ignoring.') - del hole_exteriors[hole_i] - continue - # ignore any hole that is ambiguous (more than one possible exteriors) - # this shouldn't happen however, since ambiguous exteriors are resolved - # in the previous stage as the one with the smallest area. - if len(exterior_candidates) > 1: - warnings.warn('Algorithm error: algorithm was unable to resolve hole exterior among multiple possible candidates; ignoring.') - del hole_exteriors[hole_i] - continue + # hole is relevant if previously matched with this exterior if exterior_candidates[0] == ext_i: poly_holes.append( holes[hole_i] ) poly += poly_holes polys.append(poly) + # add orphan holes as exteriors + for hole_i in orphan_holes: + poly = [holes[hole_i]] + polys.append(poly) + return polys # no exteriors, bug? else: - raise Exception('Shapefile shape has invalid polygon: no exterior rings found (must have clockwise orientation)') - + warnings.warn('Shapefile shape has invalid polygon: no exterior rings found (must have clockwise orientation); interpreting holes as exteriors.') + exteriors = holes # could potentially reverse their order, but in geojson winding order doesn't matter + polys = [[ext] for ext in exteriors] + return polys class Shape(object): def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None): diff --git a/test_shapefile.py b/test_shapefile.py index 0897621..81de1a6 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -10,8 +10,7 @@ # our imports import shapefile -# define valid shape tuples of (type, points, parts indexes, and expected geo interface output) -# test all sorts, incl no holes, hole in singlepoly, hole in multipoly, nested holes and polys +# define various test shape tuples of (type, points, parts indexes, and expected geo interface output) geo_interface_tests = [ (shapefile.POINT, # point [(1,1)], [], @@ -127,6 +126,46 @@ ], ]} ), + (shapefile.POLYGON, # multi polygon, holes incl orphaned holes (unordered), should raise warning + [(1,1),(1,9),(9,9),(9,1),(1,1), # exterior 1 + (11,11),(11,19),(19,19),(19,11),(11,11), # exterior 2 + (12,12),(14,12),(14,14),(12,14),(12,12), # hole 2.1 + (15,15),(17,15),(17,17),(15,17),(15,15), # hole 2.2 + (95,95),(97,95),(97,97),(95,97),(95,95), # hole x.1 (orphaned hole, should be interpreted as exterior) + (2,2),(4,2),(4,4),(2,4),(2,2), # hole 1.1 + (5,5),(7,5),(7,7),(5,7),(5,5), # hole 1.2 + ], + [0,5,10,15,20,25,30], + {'type':'MultiPolygon','coordinates':[ + [ # poly 1 + [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior + [(2,2),(4,2),(4,4),(2,4),(2,2)], # hole 1 + [(5,5),(7,5),(7,7),(5,7),(5,5)], # hole 2 + ], + [ # poly 2 + [(11,11),(11,19),(19,19),(19,11),(11,11)], # exterior + [(12,12),(14,12),(14,14),(12,14),(12,12)], # hole 1 + [(15,15),(17,15),(17,17),(15,17),(15,15)], # hole 2 + ], + [ # poly 3 (orphaned hole) + [(95,95),(97,95),(97,97),(95,97),(95,95)], # exterior + ], + ]} + ), + (shapefile.POLYGON, # multi polygon, exteriors with wrong orientation (be nice and interpret as such) + [(1,1),(9,1),(9,9),(1,9),(1,1), # exterior with hole-orientation + (11,11),(19,11),(19,19),(11,19),(11,11), # exterior with hole-orientation + ], + [0,5], + {'type':'MultiPolygon','coordinates':[ + [ # poly 1 + [(1,1),(9,1),(9,9),(1,9),(1,1)], + ], + [ # poly 2 + [(11,11),(19,11),(19,19),(11,19),(11,11)], + ], + ]} + ), ] def test_empty_shape_geo_interface(): From a53999392832825389563eaec33c14596dafcac1 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 24 Aug 2020 23:00:53 +0200 Subject: [PATCH 047/235] misc cleanup of recent changes --- shapefile.py | 8 ++++---- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.shp | Bin 356 -> 404 bytes shapefiles/test/polygon.shx | Bin 108 -> 108 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes 16 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shapefile.py b/shapefile.py index 30ad10f..9977dd9 100644 --- a/shapefile.py +++ b/shapefile.py @@ -305,7 +305,7 @@ def organize_polygon_rings(rings): ext_i = sorted(exterior_candidates, key=lambda x: abs(signed_area(exteriors[x])))[0] hole_exteriors[hole_i] = [ext_i] - # check for holes that are orphaned (not contained by any exterior) + # separate out holes that are orphaned (not contained by any exterior) orphan_holes = [] for hole_i,exterior_candidates in list(hole_exteriors.items()): if not exterior_candidates: @@ -321,7 +321,6 @@ def organize_polygon_rings(rings): # find relevant holes poly_holes = [] for hole_i,exterior_candidates in list(hole_exteriors.items()): - # hole is relevant if previously matched with this exterior if exterior_candidates[0] == ext_i: poly_holes.append( holes[hole_i] ) @@ -330,12 +329,13 @@ def organize_polygon_rings(rings): # add orphan holes as exteriors for hole_i in orphan_holes: - poly = [holes[hole_i]] + ext = holes[hole_i] # could potentially reverse their order, but in geojson winding order doesn't matter + poly = [ext] polys.append(poly) return polys - # no exteriors, bug? + # no exteriors, be nice and assume due to incorrect winding order else: warnings.warn('Shapefile shape has invalid polygon: no exterior rings found (must have clockwise orientation); interpreting holes as exteriors.') exteriors = holes # could potentially reverse their order, but in geojson winding order doesn't matter diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index ca42578569a40b1b0808f498886153d41c2f67cb..4c7e992712282cc488ca77fac663109d48414cfc 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq?GtBZ~qv02eR<%m4rY delta 13 UcmZ3&wuFs^xq?GCWMQu0keJ9~3jhjY0rUU> delta 10 RcmZ>CWMQu05S_?k3jhjM0r3C; diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index d87330315fbe36e71f18fdd5475847656abe7bb2..d65e8e6cb3623591f436dc86c87c84821ff646b2 100644 GIT binary patch delta 12 TcmZo>YGz_#uHcZE$nqZm5xoOG delta 12 TcmZo>YGz_#uHX=z$nqZm5wQb1 diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 9862edecab63a8f665f220ef2883d3ed62488f4f..7a9fb5c8b8d6d7688f2901cd9c903ec2f38b4d39 100644 GIT binary patch delta 10 RcmXRZVPUS|keJ9)000hN0*wFw delta 10 RcmXRZVPUS|5S_?U000hB0*U|t diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index 3fa78280e6d72fe54966be91780b071b8437e333..ddd59def48f5adc7c9096adcfcb5cb3f3f752b0f 100644 GIT binary patch delta 10 RcmXRZVPUS|keJ9)000hN0*wFw delta 10 RcmXRZVPUS|5S_?U000hB0*U|t diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index beefbcf58e6c667932e77fc3eb489f53fdbb6a38..46a339e4fb130f948726d5e97948487111a25b29 100644 GIT binary patch delta 10 RcmXRZVPUS|keJ9)000hN0*wFw delta 10 RcmXRZVPUS|5S_?U000hB0*U|t diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index 9e61732cb433e1b9361999afcf189f60f7da39bd..822cd313288e784de45e8f80c92324ab24d50c8d 100644 GIT binary patch delta 10 RcmXRZVPUS|keJ9)000hN0*wFw delta 10 RcmXRZVPUS|5S_?U000hB0*U|t diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 309f7536b6b80bf1189d257cf9c4d0ca717d964b..8b7d2e1850061f2c073fdf441c6b265cff7baee7 100644 GIT binary patch delta 10 RcmXRZVPUS|keJ9)000hN0*wFw delta 10 RcmXRZVPUS|5S_?U000hB0*U|t diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index ae9606627cd1e3920204270dbb2b47810b4e6ec6..25aa008de35cf680023fecf9501004211120c6bd 100644 GIT binary patch delta 10 RcmZ>CWMQu0keJ9~3jhjY0rUU> delta 10 RcmZ>CWMQu05S_?k3jhjM0r3C; diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index 0cd509d2b953824e1ab77c9ab0d6ec8357c3b41e..0bc56c52cbf46f6d24d0c79722df4368e91fcdc8 100644 GIT binary patch delta 10 RcmXRZVPUS|keJ9)000hN0*wFw delta 10 RcmXRZVPUS|5S_?U000hB0*U|t diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 653b44bfff57f394c5d1361363e09e6175e8771e..0427d4fc893974c401dd52aa4fbfcb7d740946b5 100644 GIT binary patch delta 10 RcmXRZVPUS|keJ9)000hN0*wFw delta 10 RcmXRZVPUS|5S_?U000hB0*U|t diff --git a/shapefiles/test/polygon.shp b/shapefiles/test/polygon.shp index e6d89029e62dd812c9e4119a92f6597ec05ebe10..c7654ebccaa29fb19c05d8c330ac699b1588016b 100644 GIT binary patch delta 85 zcmaFDG=+JBG~=m>GX9KHCMu{*oWR1%&j0~zK#F_f!U!&h7zc=m#l+9xkM#qU|{F5^or2!qa3k(1N diff --git a/shapefiles/test/polygon.shx b/shapefiles/test/polygon.shx index e4108f41d68ac1e650c0607af7458abf6f865ef6..df6e0155d205b669599ecebb4f2b79ce7e8f7449 100644 GIT binary patch delta 6 Ncmd1FnUKvm1po-a0%-sM delta 6 Ncmd1FnUKv`0{{rA0#N_} diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index ae9606627cd1e3920204270dbb2b47810b4e6ec6..25aa008de35cf680023fecf9501004211120c6bd 100644 GIT binary patch delta 10 RcmZ>CWMQu0keJ9~3jhjY0rUU> delta 10 RcmZ>CWMQu05S_?k3jhjM0r3C; diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index ae9606627cd1e3920204270dbb2b47810b4e6ec6..25aa008de35cf680023fecf9501004211120c6bd 100644 GIT binary patch delta 10 RcmZ>CWMQu0keJ9~3jhjY0rUU> delta 10 RcmZ>CWMQu05S_?k3jhjM0r3C; From a8b3b4a669338069150005f68b142beeeb922e9b Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 26 Aug 2020 11:16:26 +0200 Subject: [PATCH 048/235] Bump to next version --- README.md | 18 ++++++++++++++++++ changelog.txt | 16 ++++++++++++++++ shapefile.py | 4 ++-- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c75ec7c..bc633d0 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,27 @@ part of your geospatial project. # Version Changes +## 2.1.1 + +### Improvements: + +- Handle shapes with no coords and represent as geojson with no coords (GeoJSON null-equivalent) +- Expand testing to Python 3.6, 3.7, 3.8 and PyPy; drop 3.3 and 3.4 [@mwtoews] +- Added pytest testing [@jmoujaes] + +### Bug fixes: + +- Fix incorrect geo interface handling of multipolygons with complex exterior-hole relations [see #202] +- Enforce shapefile requirement of at least one field, to avoid writing invalid shapefiles [@Jonty] +- Fix Reader geo interface including DeletionFlag field in feature properties [@nnseva] +- Fix polygons not being auto closed, which was accidentally dropped +- Fix error for null geometries in feature geojson +- Misc docstring cleanup [@fiveham] + ## 2.1.0 ### New Features: + - Added back read/write support for unicode field names. - Improved Record representation - More support for geojson on Reader, ShapeRecord, ShapeRecords, and shapes() diff --git a/changelog.txt b/changelog.txt index 15b2969..56d15d0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,20 @@ +VERSION 2.1.1 + +2020-08-26 + Improvements: + * Handle shapes with no coords and represent as geojson with no coords (GeoJSON null-equivalent) + * Expand testing to Python 3.6, 3.7, 3.8 and PyPy; drop 3.3 and 3.4 [@mwtoews] + * Added pytest testing [@jmoujaes] + + Bug fixes: + * Fix incorrect geo interface handling of multipolygons with complex exterior-hole relations [see #202] + * Enforce shapefile requirement of at least one field, to avoid writing invalid shapefiles [@Jonty] + * Fix Reader geo interface including DeletionFlag field in feature properties [@nnseva] + * Fix polygons not being auto closed, which was accidentally dropped + * Fix error for null geometries in feature geojson + * Misc docstring cleanup [@fiveham] + VERSION 2.1.0 2019-02-15 diff --git a/shapefile.py b/shapefile.py index 9977dd9..bce0350 100644 --- a/shapefile.py +++ b/shapefile.py @@ -2,11 +2,11 @@ shapefile.py Provides read and write support for ESRI Shapefiles. author: jlawheadgeospatialpython.com -version: 2.1.0 +version: 2.1.1 Compatible with Python versions 2.7-3.x """ -__version__ = "2.1.0" +__version__ = "2.1.1" from struct import pack, unpack, calcsize, error, Struct import os From 2d207e2743bc85494d6248c5caf941e56e62922b Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 26 Aug 2020 16:02:26 +0200 Subject: [PATCH 049/235] Switch to much faster hole in exterior tests during geo interface Previously did point in exterior test for every hole vertex, but got very slow for complex real-world multi polygons. Instead, efficiently calculate a point guaranteed to be inside the hole, and then test only that one hole sample point. Additionally, limit exterior candidates even further as only those whose bbox fully contains the hole bbox (ie no point in testing nested exteriors inside the hole itself) Add tests for exterior-hole edge cases --- shapefile.py | 59 +++++++++++++++++++++++++++--- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes test_shapefile.py | 24 +++++++++++- 15 files changed, 76 insertions(+), 7 deletions(-) diff --git a/shapefile.py b/shapefile.py index bce0350..f9f5639 100644 --- a/shapefile.py +++ b/shapefile.py @@ -182,6 +182,14 @@ def bbox_overlap(bbox1, bbox2): overlap = (xmin1 <= xmax2 and xmax1 >= xmin2 and ymin1 <= ymax2 and ymax1 >= ymin2) return overlap +def bbox_contains(bbox1, bbox2): + """Tests whether bbox1 fully contains bbox2, returning a boolean + """ + xmin1,ymin1,xmax1,ymax1 = bbox1 + xmin2,ymin2,xmax2,ymax2 = bbox2 + contains = (xmin1 < xmin2 and xmax1 > xmax2 and ymin1 < ymin2 and ymax1 > ymax2) + return contains + def ring_contains_point(coords, p): """Fast point-in-polygon crossings algorithm, MacMartin optimization. @@ -224,6 +232,44 @@ def ring_contains_point(coords, p): return inside_flag +def ring_sample(coords, ccw=False): + """Return a sample point guaranteed to be within a ring, by efficiently + finding the first centroid of a coordinate triplet whose orientation + matches the orientation of the ring and passes the point-in-ring test. + The orientation of the ring is assumed to be clockwise, unless ccw + (counter-clockwise) is set to True. + """ + coords = tuple(coords) + (coords[1],) # add the second coordinate to the end to allow checking the last triplet + triplet = [] + for p in coords: + # add point to triplet (but not if duplicate) + if p not in triplet: + triplet.append(p) + + # new triplet, try to get sample + if len(triplet) == 3: + # check that triplet does not form a straight line (not a triangle) + is_straight_line = (triplet[0][1] - triplet[1][1]) * (triplet[0][0] - triplet[2][0]) == (triplet[0][1] - triplet[2][1]) * (triplet[0][0] - triplet[1][0]) + if not is_straight_line: + # get triplet orientation + closed_triplet = triplet + [triplet[0]] + triplet_ccw = signed_area(closed_triplet) >= 0 + # check that triplet has the same orientation as the ring (means triangle is inside the ring) + if ccw == triplet_ccw: + # get triplet centroid + xs,ys = zip(*triplet) + xmean,ymean = sum(xs) / 3.0, sum(ys) / 3.0 + # check that triplet centroid is truly inside the ring + if ring_contains_point(coords, (xmean,ymean)): + return xmean,ymean + + # failed to get sample point from this triplet + # remove oldest triplet coord to allow iterating to next triplet + triplet.pop(0) + + else: + raise Exception('Unexpected error: Unable to find a ring sample point.') + def ring_contains_ring(coords1, coords2): '''Returns True if all vertexes in coords2 are fully inside coords1. ''' @@ -272,25 +318,26 @@ def organize_polygon_rings(rings): polys.append(poly) return polys - # first determine each hole's candidate exteriors based on simple bbox overlap test + # first determine each hole's candidate exteriors based on simple bbox contains test hole_exteriors = dict([(hole_i,[]) for hole_i in xrange(len(holes))]) exterior_bboxes = [ring_bbox(ring) for ring in exteriors] for hole_i in hole_exteriors.keys(): hole_bbox = ring_bbox(holes[hole_i]) for ext_i,ext_bbox in enumerate(exterior_bboxes): - if bbox_overlap(hole_bbox, ext_bbox): + if bbox_contains(ext_bbox, hole_bbox): hole_exteriors[hole_i].append( ext_i ) # then, for holes with still more than one possible exterior, do more detailed hole-in-ring test for hole_i,exterior_candidates in hole_exteriors.items(): if len(exterior_candidates) > 1: - # get new exterior candidates - hole = holes[hole_i] + # get hole sample point + hole_sample = ring_sample(holes[hole_i], ccw=True) + # collect new exterior candidates new_exterior_candidates = [] for ext_i in exterior_candidates: - ext = exteriors[ext_i] - hole_in_exterior = ring_contains_ring(ext, hole) + # check that hole sample point is inside exterior + hole_in_exterior = ring_contains_point(exteriors[ext_i], hole_sample) if hole_in_exterior: new_exterior_candidates.append(ext_i) diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index 4c7e992712282cc488ca77fac663109d48414cfc..db4fab4dc785d8b02cffefe65b39a0c5d23a9df7 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq?G#BZ~qv02ev}&Hw-a delta 13 UcmZ3&wuFs^xq?GtBZ~qv02eR<%m4rY diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index 25aa008de35cf680023fecf9501004211120c6bd..15229fadec9b8fdded4f427e4e90141f3027fde1 100644 GIT binary patch delta 10 RcmZ>CWMQu0kebM13jhjg0rmg@ delta 10 RcmZ>CWMQu0keJ9~3jhjY0rUU> diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index d65e8e6cb3623591f436dc86c87c84821ff646b2..e753d24794414d1c6fc512794184f6a862c0fe00 100644 GIT binary patch delta 12 TcmZo>YGz_#uHcZG$nqZm5yb;Q delta 12 TcmZo>YGz_#uHcZE$nqZm5xoOG diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 7a9fb5c8b8d6d7688f2901cd9c903ec2f38b4d39..49a0ad0211bc5db9c8d4f595a8482eded44a1693 100644 GIT binary patch delta 10 RcmXRZVPUS|kebL+000hV0*?Ry delta 10 RcmXRZVPUS|keJ9)000hN0*wFw diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index ddd59def48f5adc7c9096adcfcb5cb3f3f752b0f..38ca81eca0b5e91327feb0b20500e38f7b5eb4dc 100644 GIT binary patch delta 10 RcmXRZVPUS|kebL+000hV0*?Ry delta 10 RcmXRZVPUS|keJ9)000hN0*wFw diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index 46a339e4fb130f948726d5e97948487111a25b29..dcc50fde0c974e454af00d69ea621107ad6103d4 100644 GIT binary patch delta 10 RcmXRZVPUS|kebL+000hV0*?Ry delta 10 RcmXRZVPUS|keJ9)000hN0*wFw diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index 822cd313288e784de45e8f80c92324ab24d50c8d..e506fd7bdba575c74bf8e9afab26f2cead8ae8c2 100644 GIT binary patch delta 10 RcmXRZVPUS|kebL+000hV0*?Ry delta 10 RcmXRZVPUS|keJ9)000hN0*wFw diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 8b7d2e1850061f2c073fdf441c6b265cff7baee7..9ddef881743ea795eb6a40b7d308495b619fc9bc 100644 GIT binary patch delta 10 RcmXRZVPUS|kebL+000hV0*?Ry delta 10 RcmXRZVPUS|keJ9)000hN0*wFw diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index 25aa008de35cf680023fecf9501004211120c6bd..15229fadec9b8fdded4f427e4e90141f3027fde1 100644 GIT binary patch delta 10 RcmZ>CWMQu0kebM13jhjg0rmg@ delta 10 RcmZ>CWMQu0keJ9~3jhjY0rUU> diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index 0bc56c52cbf46f6d24d0c79722df4368e91fcdc8..fa058bc0aa44b1607f070bc6151e1b602f931f66 100644 GIT binary patch delta 10 RcmXRZVPUS|kebL+000hV0*?Ry delta 10 RcmXRZVPUS|keJ9)000hN0*wFw diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 0427d4fc893974c401dd52aa4fbfcb7d740946b5..20dc6aeb55bfc6e27b7bdc6cba1ec5c9baf117cf 100644 GIT binary patch delta 10 RcmXRZVPUS|kebL+000hV0*?Ry delta 10 RcmXRZVPUS|keJ9)000hN0*wFw diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index 25aa008de35cf680023fecf9501004211120c6bd..15229fadec9b8fdded4f427e4e90141f3027fde1 100644 GIT binary patch delta 10 RcmZ>CWMQu0kebM13jhjg0rmg@ delta 10 RcmZ>CWMQu0keJ9~3jhjY0rUU> diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index 25aa008de35cf680023fecf9501004211120c6bd..15229fadec9b8fdded4f427e4e90141f3027fde1 100644 GIT binary patch delta 10 RcmZ>CWMQu0kebM13jhjg0rmg@ delta 10 RcmZ>CWMQu0keJ9~3jhjY0rUU> diff --git a/test_shapefile.py b/test_shapefile.py index 81de1a6..21a4217 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -126,6 +126,28 @@ ], ]} ), + (shapefile.POLYGON, # multi polygon, nested exteriors with holes (unordered and tricky holes designed to throw off ring_sample() test) + [(1,1),(1,9),(9,9),(9,1),(1,1), # exterior 1 + (3,3),(3,7),(7,7),(7,3),(3,3), # exterior 2 + (4.5,4.5),(4.5,5.5),(5.5,5.5),(5.5,4.5),(4.5,4.5), # exterior 3 + (4,4),(4,4),(6,4),(6,4),(6,4),(6,6),(4,6),(4,4), # hole 2.1 (hole has duplicate coords) + (2,2),(3,3),(4,2),(8,2),(8,8),(4,8),(2,8),(2,4),(2,2), # hole 1.1 (hole coords form straight line and starts in concave orientation) + ], + [0,5,10,15,20+3], + {'type':'MultiPolygon','coordinates':[ + [ # poly 1 + [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior 1 + [(2,2),(3,3),(4,2),(8,2),(8,8),(4,8),(2,8),(2,4),(2,2)], # hole 1.1 + ], + [ # poly 2 + [(3,3),(3,7),(7,7),(7,3),(3,3)], # exterior 2 + [(4,4),(4,4),(6,4),(6,4),(6,4),(6,6),(4,6),(4,4)], # hole 2.1 + ], + [ # poly 3 + [(4.5,4.5),(4.5,5.5),(5.5,5.5),(5.5,4.5),(4.5,4.5)], # exterior 3 + ], + ]} + ), (shapefile.POLYGON, # multi polygon, holes incl orphaned holes (unordered), should raise warning [(1,1),(1,9),(9,9),(9,1),(1,1), # exterior 1 (11,11),(11,19),(19,19),(19,11),(11,11), # exterior 2 @@ -152,7 +174,7 @@ ], ]} ), - (shapefile.POLYGON, # multi polygon, exteriors with wrong orientation (be nice and interpret as such) + (shapefile.POLYGON, # multi polygon, exteriors with wrong orientation (be nice and interpret as such), should raise warning [(1,1),(9,1),(9,9),(1,9),(1,1), # exterior with hole-orientation (11,11),(19,11),(19,19),(11,19),(11,11), # exterior with hole-orientation ], From db105fa768f91825db292b205f2319f3dcf35543 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 9 Sep 2020 22:18:45 +0200 Subject: [PATCH 050/235] prepare for new release --- README.md | 3 +++ changelog.txt | 2 +- setup.py | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bc633d0..39f279d 100644 --- a/README.md +++ b/README.md @@ -1118,10 +1118,12 @@ David A. Riggs davidh-ssec Evan Heidtmann ezcitron +fiveham geospatialpython Hannes Ignacio Martinez Vazquez Jason Moujaes +Jonty Wareing Karim Bahgat Kyle Kelley Louis Tiao @@ -1140,5 +1142,6 @@ Ryan Brideau Tobias Megies Tommi Penttinen Uli Köhler +Vsevolod Novikov Zac Miller ``` diff --git a/changelog.txt b/changelog.txt index 56d15d0..ed28f54 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,7 @@ VERSION 2.1.1 -2020-08-26 +2020-09-09 Improvements: * Handle shapes with no coords and represent as geojson with no coords (GeoJSON null-equivalent) * Expand testing to Python 3.6, 3.7, 3.8 and PyPy; drop 3.3 and 3.4 [@mwtoews] diff --git a/setup.py b/setup.py index 39ae7db..5728e3f 100644 --- a/setup.py +++ b/setup.py @@ -7,14 +7,14 @@ def read_file(file): return data.decode('utf-8') setup(name='pyshp', - version='2.1.0', + version='2.1.1', description='Pure Python read/write support for ESRI Shapefile format', long_description=read_file('README.md'), long_description_content_type='text/markdown', author='Joel Lawhead', author_email='jlawhead@geospatialpython.com', url='https://github.com/GeospatialPython/pyshp', - download_url='https://github.com/GeospatialPython/pyshp/archive/2.1.0.tar.gz', + download_url='https://github.com/GeospatialPython/pyshp/archive/2.1.1.tar.gz', py_modules=['shapefile'], license='MIT', zip_safe=False, From b13d13b7411bf41907c3cdef186e448ce6501220 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Thu, 10 Sep 2020 12:33:04 +0200 Subject: [PATCH 051/235] Fix issue where `warnings.simplefilter('always')` changes global warning behavior --- shapefile.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/shapefile.py b/shapefile.py index f9f5639..404cc81 100644 --- a/shapefile.py +++ b/shapefile.py @@ -18,8 +18,6 @@ import io from datetime import date -warnings.simplefilter("always") - # Constants for shape types NULL = 0 From 0672adf37dbd5263031a512cbf6d654bcb80231b Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Thu, 10 Sep 2020 12:40:06 +0200 Subject: [PATCH 052/235] Bump to new version --- changelog.txt | 6 ++++++ setup.py | 2 +- shapefile.py | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/changelog.txt b/changelog.txt index ed28f54..2615384 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,10 @@ +VERSION 2.1.2 + +2020-09-10 + Bug fixes: + * Fix issue where `warnings.simplefilter('always')` changes global warning behavior [see #203] + VERSION 2.1.1 2020-09-09 diff --git a/setup.py b/setup.py index 5728e3f..3c351e6 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ def read_file(file): return data.decode('utf-8') setup(name='pyshp', - version='2.1.1', + version='2.1.2', description='Pure Python read/write support for ESRI Shapefile format', long_description=read_file('README.md'), long_description_content_type='text/markdown', diff --git a/shapefile.py b/shapefile.py index 404cc81..2f4e27a 100644 --- a/shapefile.py +++ b/shapefile.py @@ -2,11 +2,11 @@ shapefile.py Provides read and write support for ESRI Shapefiles. author: jlawheadgeospatialpython.com -version: 2.1.1 +version: 2.1.2 Compatible with Python versions 2.7-3.x """ -__version__ = "2.1.1" +__version__ = "2.1.2" from struct import pack, unpack, calcsize, error, Struct import os From 19ae0d044d4930f612c7b75eef0b15e17b100df4 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Thu, 10 Sep 2020 23:56:32 +0200 Subject: [PATCH 053/235] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 39f279d..bf481d0 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,12 @@ part of your geospatial project. # Version Changes +## 2.1.2 + +### Bug fixes: + +- Fix issue where `warnings.simplefilter('always')` changes global warning behavior [see #203] + ## 2.1.1 ### Improvements: From 059cef1eab25fc881a2732dd07a38b545fb35586 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Thu, 10 Sep 2020 23:57:16 +0200 Subject: [PATCH 054/235] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf481d0..7629841 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ part of your geospatial project. ### Bug fixes: -- Fix issue where `warnings.simplefilter('always')` changes global warning behavior [see #203] +- Fix issue where warnings.simplefilter('always') changes global warning behavior [see #203] ## 2.1.1 From 69c60f6d07c329f7d3ac2cba79bc03643bd424d8 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sun, 27 Sep 2020 21:40:56 -0400 Subject: [PATCH 055/235] Fix bug in hole in polygon algo In trying to find a sample point, we iterate the ring's triplet coordinates and add add the second coord from the end to allow checking the last triplet. Previously the second coordinate was added by changing the main coords list in-place, but that messes with the point-in-polygon algorithm. Fixed by only iterating through the points instead of changing the coords list. Fixes #205. --- shapefile.py | 10 ++++++++-- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes 14 files changed, 8 insertions(+), 2 deletions(-) diff --git a/shapefile.py b/shapefile.py index 2f4e27a..2e83293 100644 --- a/shapefile.py +++ b/shapefile.py @@ -237,9 +237,15 @@ def ring_sample(coords, ccw=False): The orientation of the ring is assumed to be clockwise, unless ccw (counter-clockwise) is set to True. """ - coords = tuple(coords) + (coords[1],) # add the second coordinate to the end to allow checking the last triplet triplet = [] - for p in coords: + def itercoords(): + # iterate full closed ring + for p in coords: + yield p + # finally, yield the second coordinate to the end to allow checking the last triplet + yield coords[1] + + for p in itercoords(): # add point to triplet (but not if duplicate) if p not in triplet: triplet.append(p) diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index db4fab4dc785d8b02cffefe65b39a0c5d23a9df7..d6e56085f3c7109b4c42a692bb98d5f343256e3c 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq?%ABZ~qv02f69&;S4c delta 13 UcmZ3&wuFs^xq?G#BZ~qv02ev}&Hw-a diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index 15229fadec9b8fdded4f427e4e90141f3027fde1..44d20595cb1df0a58e88ee2afde0e99244721c84 100644 GIT binary patch delta 10 RcmZ>CWMQu0l%B|93jhjp0r&s_ delta 10 RcmZ>CWMQu0kebM13jhjg0rmg@ diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index e753d24794414d1c6fc512794184f6a862c0fe00..3c01c0c91d8aca77c3e10095e28ea9169ffbccb7 100644 GIT binary patch delta 12 TcmZo>YGz_#uHclO$nqZm5zYfb delta 12 TcmZo>YGz_#uHcZG$nqZm5yb;Q diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 49a0ad0211bc5db9c8d4f595a8482eded44a1693..7d392a687481c332e8dae84d304c8c106254fc87 100644 GIT binary patch delta 10 RcmXRZVPUS|l%B{^000he0+9d! delta 10 RcmXRZVPUS|kebL+000hV0*?Ry diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index 38ca81eca0b5e91327feb0b20500e38f7b5eb4dc..e7248e576ca5115a2895d24513c73c9365ced084 100644 GIT binary patch delta 10 RcmXRZVPUS|l%B{^000he0+9d! delta 10 RcmXRZVPUS|kebL+000hV0*?Ry diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index dcc50fde0c974e454af00d69ea621107ad6103d4..ed6e831bdf870921963fb63ad6d4a7a0db21cdbd 100644 GIT binary patch delta 10 RcmXRZVPUS|l%B{^000he0+9d! delta 10 RcmXRZVPUS|kebL+000hV0*?Ry diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index e506fd7bdba575c74bf8e9afab26f2cead8ae8c2..9c9246c830a63b2c8759ad5e05510ae397a8f023 100644 GIT binary patch delta 10 RcmXRZVPUS|l%B{^000he0+9d! delta 10 RcmXRZVPUS|kebL+000hV0*?Ry diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 9ddef881743ea795eb6a40b7d308495b619fc9bc..60f6ed28c9aa31873f5b742c86153db9f8d9ddaa 100644 GIT binary patch delta 10 RcmXRZVPUS|l%B{^000he0+9d! delta 10 RcmXRZVPUS|kebL+000hV0*?Ry diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index 15229fadec9b8fdded4f427e4e90141f3027fde1..44d20595cb1df0a58e88ee2afde0e99244721c84 100644 GIT binary patch delta 10 RcmZ>CWMQu0l%B|93jhjp0r&s_ delta 10 RcmZ>CWMQu0kebM13jhjg0rmg@ diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index fa058bc0aa44b1607f070bc6151e1b602f931f66..a5622d6668942cdfd2bfdef82d1a7f4b63c0c192 100644 GIT binary patch delta 10 RcmXRZVPUS|l%B{^000he0+9d! delta 10 RcmXRZVPUS|kebL+000hV0*?Ry diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 20dc6aeb55bfc6e27b7bdc6cba1ec5c9baf117cf..e1dcb771213f4a984f5235e8b51a30ea1d8a78c6 100644 GIT binary patch delta 10 RcmXRZVPUS|l%B{^000he0+9d! delta 10 RcmXRZVPUS|kebL+000hV0*?Ry diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index 15229fadec9b8fdded4f427e4e90141f3027fde1..44d20595cb1df0a58e88ee2afde0e99244721c84 100644 GIT binary patch delta 10 RcmZ>CWMQu0l%B|93jhjp0r&s_ delta 10 RcmZ>CWMQu0kebM13jhjg0rmg@ diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index 15229fadec9b8fdded4f427e4e90141f3027fde1..44d20595cb1df0a58e88ee2afde0e99244721c84 100644 GIT binary patch delta 10 RcmZ>CWMQu0l%B|93jhjp0r&s_ delta 10 RcmZ>CWMQu0kebM13jhjg0rmg@ From 2efb4d4e57641e7153ce93621c8ea3b323698805 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 21 Dec 2020 14:20:34 +0100 Subject: [PATCH 056/235] Handle additional dbf date null values, and return faulty dates as unicode See #187 --- shapefile.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/shapefile.py b/shapefile.py index 2e83293..aefea89 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1206,14 +1206,18 @@ def __record(self, oid=None): value = None elif typ == 'D': # date: 8 bytes - date stored as a string in the format YYYYMMDD. - if value.count(b'0') == len(value): # QGIS NULL is all '0' chars + if not value.replace(b'\x00', b'').replace(b' ', b'').replace(b'0', b''): + # dbf date field has no official null value + # but can check for all hex null-chars, all spaces, or all 0s (QGIS null) value = None else: try: + # return as python date object y, m, d = int(value[:4]), int(value[4:6]), int(value[6:8]) value = date(y, m, d) except: - value = value.strip() + # if invalid date, just return as unicode string so user can decide + value = u(value.strip()) elif typ == 'L': # logical: 1 byte - initialized to 0x20 (space) otherwise T or F. if value == b" ": From 7ef3456521be80c699d06d802adec176ca2b9169 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 21 Dec 2020 16:21:13 +0100 Subject: [PATCH 057/235] Misc fixes to allow geo interface dump to json Convert date vals to strings in geo_interface. For Reader, convert custom _Array type bbox to list. Test in pytest. --- shapefile.py | 13 +++++++++---- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes test_shapefile.py | 26 ++++++++++++++++++++++++++ 15 files changed, 35 insertions(+), 4 deletions(-) diff --git a/shapefile.py b/shapefile.py index aefea89..ac3995d 100644 --- a/shapefile.py +++ b/shapefile.py @@ -697,12 +697,17 @@ def oid(self): """The index position of the record in the original shapefile""" return self.__oid - def as_dict(self): + def as_dict(self, date_strings=False): """ Returns this Record as a dictionary using the field names as keys :return: dict """ - return dict((f, self[i]) for f, i in self.__field_positions.items()) + dct = dict((f, self[i]) for f, i in self.__field_positions.items()) + if date_strings: + for k,v in dct.items(): + if isinstance(v, date): + dct[k] = '{:04d}{:02d}{:02d}'.format(v.year, v.month, v.day) + return dct def __repr__(self): return 'Record #{}: {}'.format(self.__oid, list(self)) @@ -728,7 +733,7 @@ def __init__(self, shape=None, record=None): @property def __geo_interface__(self): return {'type': 'Feature', - 'properties': self.record.as_dict(), + 'properties': self.record.as_dict(date_strings=True), 'geometry': None if self.shape.shapeType == NULL else self.shape.__geo_interface__} class Shapes(list): @@ -868,7 +873,7 @@ def __iter__(self): def __geo_interface__(self): shaperecords = self.shapeRecords() fcollection = shaperecords.__geo_interface__ - fcollection['bbox'] = self.bbox + fcollection['bbox'] = list(self.bbox) return fcollection @property diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index d6e56085f3c7109b4c42a692bb98d5f343256e3c..7a4ab8119e6b079752fc5a60f5988571c3e5301d 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq?S@BZ~qv02es|%>V!Z delta 13 UcmZ3&wuFs^xq?%ABZ~qv02f69&;S4c diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index 44d20595cb1df0a58e88ee2afde0e99244721c84..4842ccae43ae5f4c7d6277e16748299d923158bd 100644 GIT binary patch delta 10 RcmZ>CWMQu05uM0l3jhjg0rda? delta 10 RcmZ>CWMQu0l%B|93jhjp0r&s_ diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index 3c01c0c91d8aca77c3e10095e28ea9169ffbccb7..153b45d3f427faf560a14282f278cd6de1a4cd0a 100644 GIT binary patch delta 12 TcmZo>YGz_#uHX@!$nqZm5yb;P delta 12 TcmZo>YGz_#uHclO$nqZm5zYfb diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 7d392a687481c332e8dae84d304c8c106254fc87..97ec7d5dcba40b1e0a42591a9395887bd2a91d2f 100644 GIT binary patch delta 10 RcmXRZVPUS|5uM0V000hV0*(Lx delta 10 RcmXRZVPUS|l%B{^000he0+9d! diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index e7248e576ca5115a2895d24513c73c9365ced084..d2fb6121ce7c2e69ea07467b1d7de05a0d637ba2 100644 GIT binary patch delta 10 RcmXRZVPUS|5uM0V000hV0*(Lx delta 10 RcmXRZVPUS|l%B{^000he0+9d! diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index ed6e831bdf870921963fb63ad6d4a7a0db21cdbd..f489275acf39ecdab636cb0b58a07daef6ca22db 100644 GIT binary patch delta 10 RcmXRZVPUS|5uM0V000hV0*(Lx delta 10 RcmXRZVPUS|l%B{^000he0+9d! diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index 9c9246c830a63b2c8759ad5e05510ae397a8f023..f6ed36931bed0920aa83342ef984837e76580910 100644 GIT binary patch delta 10 RcmXRZVPUS|5uM0V000hV0*(Lx delta 10 RcmXRZVPUS|l%B{^000he0+9d! diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 60f6ed28c9aa31873f5b742c86153db9f8d9ddaa..22329e0f8db68ebb4df784b7d9e773a6f6db1a9c 100644 GIT binary patch delta 10 RcmXRZVPUS|5uM0V000hV0*(Lx delta 10 RcmXRZVPUS|l%B{^000he0+9d! diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index 44d20595cb1df0a58e88ee2afde0e99244721c84..4842ccae43ae5f4c7d6277e16748299d923158bd 100644 GIT binary patch delta 10 RcmZ>CWMQu05uM0l3jhjg0rda? delta 10 RcmZ>CWMQu0l%B|93jhjp0r&s_ diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index a5622d6668942cdfd2bfdef82d1a7f4b63c0c192..70da44d38aeee2e6804923bb7a55560a5fffc863 100644 GIT binary patch delta 10 RcmXRZVPUS|5uM0V000hV0*(Lx delta 10 RcmXRZVPUS|l%B{^000he0+9d! diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index e1dcb771213f4a984f5235e8b51a30ea1d8a78c6..fb426ab7d649f3a2fd028225cf0dca846bdf1032 100644 GIT binary patch delta 10 RcmXRZVPUS|5uM0V000hV0*(Lx delta 10 RcmXRZVPUS|l%B{^000he0+9d! diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index 44d20595cb1df0a58e88ee2afde0e99244721c84..4842ccae43ae5f4c7d6277e16748299d923158bd 100644 GIT binary patch delta 10 RcmZ>CWMQu05uM0l3jhjg0rda? delta 10 RcmZ>CWMQu0l%B|93jhjp0r&s_ diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index 44d20595cb1df0a58e88ee2afde0e99244721c84..4842ccae43ae5f4c7d6277e16748299d923158bd 100644 GIT binary patch delta 10 RcmZ>CWMQu05uM0l3jhjg0rda? delta 10 RcmZ>CWMQu0l%B|93jhjp0r&s_ diff --git a/test_shapefile.py b/test_shapefile.py index 21a4217..232233c 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -6,6 +6,8 @@ # third party imports import pytest +import json +import datetime # our imports import shapefile @@ -463,3 +465,27 @@ def test_write_shapefile_extension_ignored(tmpdir): # assert test.abc does not exist assert not os.path.exists(basepath + ext) + +def test_write_geojson(tmpdir): + """ + Assert that the output of geo interface can be written to json. + """ + filename = tmpdir.join("test").strpath + with shapefile.Writer(filename) as w: + w.field('TEXT', 'C') + w.field('NUMBER', 'N') + w.field('DATE', 'D') + w.record('text', 123, datetime.date(1898,1,30)) + w.record('text', 123, [1998,1,30]) + w.record('text', 123, '19980130') + w.record(None, None, None) + w.null() + w.null() + w.null() + w.null() + + with shapefile.Reader(filename) as r: + for feat in r: + assert json.dumps(feat.__geo_interface__) + assert json.dumps(r.shapeRecords().__geo_interface__) + assert json.dumps(r.__geo_interface__) From 7b7240a9ae8cbe1281f3b5bf6a14b94d79a319ff Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 21 Dec 2020 16:47:38 +0100 Subject: [PATCH 058/235] Incorrect reference to polyz method Thanks to #201 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7629841..5bdf75a 100644 --- a/README.md +++ b/README.md @@ -962,7 +962,7 @@ Shapefiles containing M-values can be examined in several ways: **Shapefiles with elevation (Z) values** Elevation shape types are shapes that include an elevation value at each vertex, for instance elevation from a GPS device. -Shapes with elevation (Z) values are added with the following methods: "pointz", "multipointz", "linez", and "polygonz". +Shapes with elevation (Z) values are added with the following methods: "pointz", "multipointz", "linez", and "polyz". The Z-values are specified by adding a third Z value to each XY coordinate. Z-values do not support the concept of missing data, but if you omit the third Z-coordinate it will default to 0. Note that Z-type shapes also support measurement (M) values added as a fourth M-coordinate. This too is optional. From 10444f421ef4b5b774d68af39900bff6e4b80839 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 21 Dec 2020 16:55:50 +0100 Subject: [PATCH 059/235] Include faulty date in geojson write test --- test_shapefile.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test_shapefile.py b/test_shapefile.py index 232233c..bc5e38b 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -478,11 +478,13 @@ def test_write_geojson(tmpdir): w.record('text', 123, datetime.date(1898,1,30)) w.record('text', 123, [1998,1,30]) w.record('text', 123, '19980130') + w.record('text', 123, '-9999999') # faulty date w.record(None, None, None) w.null() w.null() w.null() w.null() + w.null() with shapefile.Reader(filename) as r: for feat in r: From f900fab4825983c30b93dc8380830594bb4944fa Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 21 Dec 2020 17:38:09 +0100 Subject: [PATCH 060/235] Add writer target typecheck --- shapefile.py | 2 ++ test_shapefile.py | 1 + 2 files changed, 3 insertions(+) diff --git a/shapefile.py b/shapefile.py index ac3995d..d10a0f1 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1305,6 +1305,8 @@ def __init__(self, target=None, shapeType=None, autoBalance=False, **kwargs): self.shapeType = shapeType self.shp = self.shx = self.dbf = None if target: + if not is_string(target): + raise Exception('The target filepath {} must be of type str/unicode, not {}.'.format(repr(target), type(target)) ) self.shp = self.__getFileObj(os.path.splitext(target)[0] + '.shp') self.shx = self.__getFileObj(os.path.splitext(target)[0] + '.shx') self.dbf = self.__getFileObj(os.path.splitext(target)[0] + '.dbf') diff --git a/test_shapefile.py b/test_shapefile.py index bc5e38b..026802b 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -211,6 +211,7 @@ def test_expected_shape_geo_interface(typ, points, parts, expected): shape = shapefile.Shape(typ, points, parts) geoj = shape.__geo_interface__ assert geoj == expected + def test_reader_context_manager(): """ From dcc77fd9d1610e050df7531dd77d83ee236a48b6 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 22 Dec 2020 14:11:40 +0100 Subject: [PATCH 061/235] Fix signed_area so ignores z/m coords fixes #185 --- shapefile.py | 2 +- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes 14 files changed, 1 insertion(+), 1 deletion(-) diff --git a/shapefile.py b/shapefile.py index d10a0f1..0515f20 100644 --- a/shapefile.py +++ b/shapefile.py @@ -160,7 +160,7 @@ def signed_area(coords): """Return the signed area enclosed by a ring using the linear time algorithm. A value >= 0 indicates a counter-clockwise oriented ring. """ - xs, ys = map(list, zip(*coords)) + xs, ys = map(list, list(zip(*coords))[:2]) # ignore any z or m values xs.append(xs[1]) ys.append(ys[1]) return sum(xs[i]*(ys[i+1]-ys[i-1]) for i in range(1, len(coords)))/2.0 diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index 7a4ab8119e6b079752fc5a60f5988571c3e5301d..d6cbb29db44f1c49a545a8387459935f484804a8 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq?S*BZ~qv02e+2&Hw-a delta 13 UcmZ3&wuFs^xq?S@BZ~qv02es|%>V!Z diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index 4842ccae43ae5f4c7d6277e16748299d923158bd..10f46ac8eb596a6ee4f2e5e140691b76f3aacffc 100644 GIT binary patch delta 10 RcmZ>CWMQu05u3CWMQu05uM0l3jhjg0rda? diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index 153b45d3f427faf560a14282f278cd6de1a4cd0a..49b773343e0cf491356f105eb1032db661f8bfaa 100644 GIT binary patch delta 12 TcmZo>YGz_#uHX@y$nqZm5y=BU delta 12 TcmZo>YGz_#uHX@!$nqZm5yb;P diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 97ec7d5dcba40b1e0a42591a9395887bd2a91d2f..00dc3918e23af15d28db8903284ee17809637133 100644 GIT binary patch delta 10 RcmXRZVPUS|5u3CWMQu05u3CWMQu05uM0l3jhjg0rda? diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index 70da44d38aeee2e6804923bb7a55560a5fffc863..fc31ad13e20df16b143ca3e4c156ab0aaf9cdc4b 100644 GIT binary patch delta 10 RcmXRZVPUS|5u3CWMQu05u3CWMQu05uM0l3jhjg0rda? diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index 4842ccae43ae5f4c7d6277e16748299d923158bd..10f46ac8eb596a6ee4f2e5e140691b76f3aacffc 100644 GIT binary patch delta 10 RcmZ>CWMQu05u3CWMQu05uM0l3jhjg0rda? From f2f91ce172fc0170d0ef8b138e0140d2a041ea2e Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 22 Dec 2020 14:40:51 +0100 Subject: [PATCH 062/235] Fix error with writing empty z/m shapefile Also added tests to verify this for all shapetypes. Fixes #188 --- shapefile.py | 6 ++++++ test_shapefile.py | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/shapefile.py b/shapefile.py index 0515f20..5e668f1 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1537,6 +1537,9 @@ def __shapefileHeader(self, fileObj, headerType='shp'): if self.shapeType in (11,13,15,18): # Z values are present in Z type zbox = self.zbox() + if zbox is None: + # means we have empty shapefile/only null geoms (see commentary on bbox above) + zbox = [0,0] else: # As per the ESRI shapefile spec, the zbox for non-Z type shapefiles are set to 0s zbox = [0,0] @@ -1544,6 +1547,9 @@ def __shapefileHeader(self, fileObj, headerType='shp'): if self.shapeType in (11,13,15,18,21,23,25,28,31): # M values are present in M or Z type mbox = self.mbox() + if mbox is None: + # means we have empty shapefile/only null geoms (see commentary on bbox above) + mbox = [0,0] else: # As per the ESRI shapefile spec, the mbox for non-M type shapefiles are set to 0s mbox = [0,0] diff --git a/test_shapefile.py b/test_shapefile.py index 026802b..ef4d554 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -492,3 +492,17 @@ def test_write_geojson(tmpdir): assert json.dumps(feat.__geo_interface__) assert json.dumps(r.shapeRecords().__geo_interface__) assert json.dumps(r.__geo_interface__) + +shape_types = [k for k in shapefile.SHAPETYPE_LOOKUP.keys() if k != 31] # exclude multipatch + +@pytest.mark.parametrize("shape_type", shape_types) +def test_write_empty_shapefile(tmpdir, shape_type): + """ + Assert that can write an empty shapefile + """ + filename = tmpdir.join("test").strpath + with shapefile.Writer(filename, shapeType=shape_type) as w: + w.field('field1', 'C') # required to create a valid dbf file + + with shapefile.Reader(filename) as r: + assert r.shapeType == shape_type From 050b62fe4490a5e16267c8d6c8733ed7bd85bc35 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 29 Dec 2020 13:41:10 +0100 Subject: [PATCH 063/235] Store count of shp shapes, fixing misc bugs if dbf is absent, add tests for loading shp/shx/dbf separately --- shapefile.py | 45 ++++++++++++++++++++---- test_shapefile.py | 89 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 127 insertions(+), 7 deletions(-) diff --git a/shapefile.py b/shapefile.py index 5e668f1..904abdc 100644 --- a/shapefile.py +++ b/shapefile.py @@ -796,6 +796,7 @@ def __init__(self, *args, **kwargs): self._offsets = [] self.shpLength = None self.numRecords = None + self.numShapes = None self.fields = [] self.__dbfHdrLength = 0 self.__fieldposition_lookup = {} @@ -862,7 +863,38 @@ def __exit__(self, exc_type, exc_val, exc_tb): def __len__(self): """Returns the number of shapes/records in the shapefile.""" - return self.numRecords + if self.dbf: + # Preferably use dbf record count + if self.numRecords is None: + self.__dbfHeader() + + return self.numRecords + + elif self.shp: + # Otherwise use shape count + if self.shx: + # Use index file to get total count + if self.numShapes is None: + # File length (16-bit word * 2 = bytes) - header length + self.shx.seek(24) + shxRecordLength = (unpack(">i", self.shx.read(4))[0] * 2) - 100 + self.numShapes = shxRecordLength // 8 + + return self.numShapes + + else: + # Index file not available, iterate all shapes to get total count + if self.numShapes is None: + i = 0 + for i,shape in enumerate(self.iterShapes()): + i += 1 + self.numShapes = i + + return self.numShapes + + else: + # No file loaded yet, treat as 'empty' shapefile + return 0 def __iter__(self): """Iterates through the shapes/records in the shapefile.""" @@ -1072,15 +1104,16 @@ def __shapeIndex(self, i=None): if not shx: return None if not self._offsets: - # File length (16-bit word * 2 = bytes) - header length - shx.seek(24) - shxRecordLength = (unpack(">i", shx.read(4))[0] * 2) - 100 - numRecords = shxRecordLength // 8 + if self.numShapes is None: + # File length (16-bit word * 2 = bytes) - header length + shx.seek(24) + shxRecordLength = (unpack(">i", shx.read(4))[0] * 2) - 100 + self.numShapes = shxRecordLength // 8 # Jump to the first record. shx.seek(100) shxRecords = _Array('i') # Each offset consists of two nrs, only the first one matters - shxRecords.fromfile(shx, 2 * numRecords) + shxRecords.fromfile(shx, 2 * self.numShapes) if sys.byteorder != 'big': shxRecords.byteswap() self._offsets = [2 * el for el in shxRecords[::2]] diff --git a/test_shapefile.py b/test_shapefile.py index ef4d554..ce56404 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -276,6 +276,93 @@ def test_reader_fields(): assert isinstance(field[3], int) # decimal length +def test_reader_shapefile_extension_ignored(): + """ + Assert that the filename's extension is + ignored when reading a shapefile. + """ + base = "shapefiles/blockgroups" + ext = ".abc" + filename = base + ext + with shapefile.Reader(filename) as sf: + assert len(sf) == 663 + + # assert test.abc does not exist + assert not os.path.exists(filename) + + +def test_reader_dbf_only(): + """ + Assert that specifying just the + dbf argument to the shapefile reader + reads just the dbf file. + """ + with shapefile.Reader(dbf="shapefiles/blockgroups.dbf") as sf: + assert len(sf) == 663 + record = sf.record(3) + assert record[1:3] == ['060750601001', 4715] + + +def test_reader_shp_shx_only(): + """ + Assert that specifying just the + shp and shx argument to the shapefile reader + reads just the shp and shx file. + """ + with shapefile.Reader(shp="shapefiles/blockgroups.shp", shx="shapefiles/blockgroups.shx") as sf: + assert len(sf) == 663 + shape = sf.shape(3) + assert len(shape.points) is 173 + + +def test_reader_shx_optional(): + """ + Assert that specifying just the + shp argument to the shapefile reader + reads just the shp file (shx optional). + """ + with shapefile.Reader(shp="shapefiles/blockgroups.shp") as sf: + assert len(sf) == 663 + shape = sf.shape(3) + assert len(shape.points) is 173 + + +def test_reader_filelike_dbf_only(): + """ + Assert that specifying just the + dbf argument to the shapefile reader + reads just the dbf file. + """ + with shapefile.Reader(dbf=open("shapefiles/blockgroups.dbf", "rb")) as sf: + assert len(sf) == 663 + record = sf.record(3) + assert record[1:3] == ['060750601001', 4715] + + +def test_reader_filelike_shp_shx_only(): + """ + Assert that specifying just the + shp and shx argument to the shapefile reader + reads just the shp and shx file. + """ + with shapefile.Reader(shp=open("shapefiles/blockgroups.shp", "rb"), shx=open("shapefiles/blockgroups.shx", "rb")) as sf: + assert len(sf) == 663 + shape = sf.shape(3) + assert len(shape.points) is 173 + + +def test_reader_filelike_shx_optional(): + """ + Assert that specifying just the + shp argument to the shapefile reader + reads just the shp file (shx optional). + """ + with shapefile.Reader(shp=open("shapefiles/blockgroups.shp", "rb")) as sf: + assert len(sf) == 663 + shape = sf.shape(3) + assert len(shape.points) is 173 + + def test_records_match_shapes(): """ Assert that the number of records matches @@ -498,7 +585,7 @@ def test_write_geojson(tmpdir): @pytest.mark.parametrize("shape_type", shape_types) def test_write_empty_shapefile(tmpdir, shape_type): """ - Assert that can write an empty shapefile + Assert that can write an empty shapefile, for all different shape types. """ filename = tmpdir.join("test").strpath with shapefile.Writer(filename, shapeType=shape_type) as w: From c68b2565c5beb89614a899646876cb1348165159 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 29 Dec 2020 15:41:17 +0100 Subject: [PATCH 064/235] Allow delayed shapefile loading by passing no args, and add to tests See #195 --- shapefile.py | 15 +++++++++++--- test_shapefile.py | 50 +++++++++++++---------------------------------- 2 files changed, 26 insertions(+), 39 deletions(-) diff --git a/shapefile.py b/shapefile.py index 904abdc..ad4f550 100644 --- a/shapefile.py +++ b/shapefile.py @@ -802,11 +802,12 @@ def __init__(self, *args, **kwargs): self.__fieldposition_lookup = {} self.encoding = kwargs.pop('encoding', 'utf-8') self.encodingErrors = kwargs.pop('encodingErrors', 'strict') - # See if a shapefile name was passed as an argument + # See if a shapefile name was passed as the first argument if len(args) > 0: if is_string(args[0]): self.load(args[0]) return + # Otherwise, load from separate shp/shx/dbf args (must be file-like) if "shp" in kwargs.keys(): if hasattr(kwargs["shp"], "read"): self.shp = kwargs["shp"] @@ -815,6 +816,9 @@ def __init__(self, *args, **kwargs): self.shp.seek(0) except (NameError, io.UnsupportedOperation): self.shp = io.BytesIO(self.shp.read()) + else: + raise ShapefileException('The shp arg must be file-like.') + if "shx" in kwargs.keys(): if hasattr(kwargs["shx"], "read"): self.shx = kwargs["shx"] @@ -823,6 +827,9 @@ def __init__(self, *args, **kwargs): self.shx.seek(0) except (NameError, io.UnsupportedOperation): self.shx = io.BytesIO(self.shx.read()) + else: + raise ShapefileException('The shx arg must be file-like.') + if "dbf" in kwargs.keys(): if hasattr(kwargs["dbf"], "read"): self.dbf = kwargs["dbf"] @@ -831,10 +838,12 @@ def __init__(self, *args, **kwargs): self.dbf.seek(0) except (NameError, io.UnsupportedOperation): self.dbf = io.BytesIO(self.dbf.read()) + else: + raise ShapefileException('The dbf arg must be file-like.') + + # Load the files if self.shp or self.dbf: self.load() - else: - raise ShapefileException("Shapefile Reader requires a shapefile or file-like object.") def __str__(self): """ diff --git a/test_shapefile.py b/test_shapefile.py index ce56404..d497727 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -291,42 +291,6 @@ def test_reader_shapefile_extension_ignored(): assert not os.path.exists(filename) -def test_reader_dbf_only(): - """ - Assert that specifying just the - dbf argument to the shapefile reader - reads just the dbf file. - """ - with shapefile.Reader(dbf="shapefiles/blockgroups.dbf") as sf: - assert len(sf) == 663 - record = sf.record(3) - assert record[1:3] == ['060750601001', 4715] - - -def test_reader_shp_shx_only(): - """ - Assert that specifying just the - shp and shx argument to the shapefile reader - reads just the shp and shx file. - """ - with shapefile.Reader(shp="shapefiles/blockgroups.shp", shx="shapefiles/blockgroups.shx") as sf: - assert len(sf) == 663 - shape = sf.shape(3) - assert len(shape.points) is 173 - - -def test_reader_shx_optional(): - """ - Assert that specifying just the - shp argument to the shapefile reader - reads just the shp file (shx optional). - """ - with shapefile.Reader(shp="shapefiles/blockgroups.shp") as sf: - assert len(sf) == 663 - shape = sf.shape(3) - assert len(shape.points) is 173 - - def test_reader_filelike_dbf_only(): """ Assert that specifying just the @@ -363,6 +327,20 @@ def test_reader_filelike_shx_optional(): assert len(shape.points) is 173 +def test_reader_shapefile_delayed_load(): + """ + Assert that the filename's extension is + ignored when reading a shapefile. + """ + with shapefile.Reader() as sf: + # assert that data request raises exception, since no file has been provided yet + with pytest.raises(shapefile.ShapefileException): + sf.shape(0) + # assert that works after loading file manually + sf.load("shapefiles/blockgroups") + assert len(sf) == 663 + + def test_records_match_shapes(): """ Assert that the number of records matches From 4fa635535d72da5f513e9a3b624cea2f3463555d Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 30 Dec 2020 13:58:39 +0100 Subject: [PATCH 065/235] Enforce writing the 11th field name character as null-terminator, incl new tests Previously field names that exceeded the 10 character limit were capped and written as the first 11 characters, although it should be capped to the first 10 characters and ended with a null-terminator. See #2. --- shapefile.py | 2 +- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes test_shapefile.py | 21 +++++++++++++++++++++ 15 files changed, 22 insertions(+), 1 deletion(-) diff --git a/shapefile.py b/shapefile.py index ad4f550..f169c84 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1628,7 +1628,7 @@ def __dbfHeader(self): name, fieldType, size, decimal = field name = b(name, self.encoding, self.encodingErrors) name = name.replace(b' ', b'_') - name = name.ljust(11).replace(b' ', b'\x00') + name = name[:10].ljust(11).replace(b' ', b'\x00') fieldType = b(fieldType, 'ascii') size = int(size) fld = pack('<11sc4xBB14x', name, fieldType, size, decimal) diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index d6cbb29db44f1c49a545a8387459935f484804a8..62417befe62b1e488ca8f7e4a699a5a618e7c231 100644 GIT binary patch delta 13 UcmZ3&wuFs^xq?S-BZ~qv02gKg)&Kwi delta 13 UcmZ3&wuFs^xq?S*BZ~qv02e+2&Hw-a diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index 10f46ac8eb596a6ee4f2e5e140691b76f3aacffc..359349d634cfa3bac853cf8877c521bf0f79a298 100644 GIT binary patch delta 10 RcmZ>CWMQu0k(CWMQu05u3YGz_#uHccI$nqZm5$OX+ delta 12 TcmZo>YGz_#uHX@y$nqZm5y=BU diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 00dc3918e23af15d28db8903284ee17809637133..4032db1181c078e7070edd8390aa7d29fda8de35 100644 GIT binary patch delta 10 RcmXRZVPUS|k() delta 10 RcmXRZVPUS|5u3) delta 10 RcmXRZVPUS|5u3) delta 10 RcmXRZVPUS|5u3) delta 10 RcmXRZVPUS|5u3) delta 10 RcmXRZVPUS|5u3CWMQu0k(CWMQu05u3) delta 10 RcmXRZVPUS|5u3) delta 10 RcmXRZVPUS|5u3CWMQu0k(CWMQu05u3CWMQu0k(CWMQu05u3 Date: Thu, 14 Jan 2021 14:41:01 +0100 Subject: [PATCH 066/235] Raise shapefile file size limit, and add Reader.close() test --- shapefile.py | 5 ++++- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes test_shapefile.py | 16 ++++++++++++++++ 15 files changed, 20 insertions(+), 1 deletion(-) diff --git a/shapefile.py b/shapefile.py index f169c84..4345e81 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1800,7 +1800,10 @@ def __shpRecord(self, s): def __shxRecord(self, offset, length): """Writes the shx records.""" f = self.__getFileObj(self.shx) - f.write(pack(">i", offset // 2)) + try: + f.write(pack(">i", offset // 2)) + except error: + raise ShapefileException('The .shp file has reached its file size limit > 4294967294 bytes (4.29 GB). To fix this, break up your file into multiple smaller ones.') f.write(pack(">i", length)) def record(self, *recordList, **recordDict): diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index 62417befe62b1e488ca8f7e4a699a5a618e7c231..333ec3ae2cd30ac4c594833cf78f3bee34ffeb31 100644 GIT binary patch delta 13 UcmZ3&wuFs^xss7@BZ~qv02bQCWMQskCWMQu0k(YGz_#u4Lq!$nqZm5qJYG delta 12 TcmZo>YGz_#uHccI$nqZm5$OX+ diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 4032db1181c078e7070edd8390aa7d29fda8de35..2b4f25f6fa126a04735610f4d8bf3486569a5b4e 100644 GIT binary patch delta 10 RcmXRZVPURh) diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index fed088e8b2c5a7c14f87ce5852c7149eae238c21..60b389c90c9d6be7ca16b9f2d359f0b72e43ee21 100644 GIT binary patch delta 10 RcmXRZVPURh) diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index 407e79aca79b9a5837b511d86283f739a8a6da36..453a77f28e43a1f98c9fd5de959d7edce0df7038 100644 GIT binary patch delta 10 RcmXRZVPURh) diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index 1a059d8aad7fc7f1aa8705a1906c240b33f788b4..2ccaae8f34b8e6a0b9e26f28d0680470a4783dc5 100644 GIT binary patch delta 10 RcmXRZVPURh) diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 6d408e45767f80031d4c76591f11cf3054993430..17c964218daa6c05ffb57fcc4aaca88a47ce0acd 100644 GIT binary patch delta 10 RcmXRZVPURh) diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index 359349d634cfa3bac853cf8877c521bf0f79a298..6ac08fa64e3fe3ae278958524a275e7ce363675d 100644 GIT binary patch delta 10 RcmZ>CWMQskCWMQu0k() diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 4c38185ece6385c61c2fa57a9e8d692cc7aa1775..5f736bfbd2b6c1e00dcb47fc15dcbb52ad319365 100644 GIT binary patch delta 10 RcmXRZVPURh) diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index 359349d634cfa3bac853cf8877c521bf0f79a298..6ac08fa64e3fe3ae278958524a275e7ce363675d 100644 GIT binary patch delta 10 RcmZ>CWMQskCWMQu0k(CWMQskCWMQu0k( Date: Thu, 14 Jan 2021 15:02:33 +0100 Subject: [PATCH 067/235] Bump to new version --- README.md | 18 ++++++++++++++++++ changelog.txt | 16 ++++++++++++++++ setup.py | 2 +- shapefile.py | 4 ++-- 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5bdf75a..096c6c5 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,22 @@ part of your geospatial project. # Version Changes +## 2.1.3 + +### Bug fixes: + +- Fix recent bug in geojson hole-in-polygon checking (see #205) +- Misc fixes to allow geo interface dump to json (eg dates as strings) +- Handle additional dbf date null values, and return faulty dates as unicode (see #187) +- Add writer target typecheck +- Fix bugs to allow reading shp/shx/dbf separately +- Allow delayed shapefile loading by passing no args +- Fix error with writing empty z/m shapefile (@mcuprjak) +- Fix signed_area() so ignores z/m coords +- Enforce writing the 11th field name character as null-terminator (only first 10 are used) +- Minor README fixes +- Added more tests + ## 2.1.2 ### Bug fixes: @@ -1134,6 +1150,7 @@ Karim Bahgat Kyle Kelley Louis Tiao Marcin Cuprjak +mcuprjak Micah Cochran Michael Davis Michal Čihař @@ -1143,6 +1160,7 @@ pakoun Paulo Ernesto Raynor Vliegendhart Razzi Abuissa +RosBer97 Ross Rogers Ryan Brideau Tobias Megies diff --git a/changelog.txt b/changelog.txt index 2615384..7a185c6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,20 @@ +VERSION 2.1.3 + +2021-01-14 + Bug fixes: + * Fix recent bug in geojson hole-in-polygon checking (see #205) + * Misc fixes to allow geo interface dump to json (eg dates as strings) + * Handle additional dbf date null values, and return faulty dates as unicode (see #187) + * Add writer target typecheck + * Fix bugs to allow reading shp/shx/dbf separately + * Allow delayed shapefile loading by passing no args + * Fix error with writing empty z/m shapefile (@mcuprjak) + * Fix signed_area() so ignores z/m coords + * Enforce writing the 11th field name character as null-terminator (only first 10 are used) + * Minor README fixes + * Added more tests + VERSION 2.1.2 2020-09-10 diff --git a/setup.py b/setup.py index 3c351e6..64c1f62 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ def read_file(file): return data.decode('utf-8') setup(name='pyshp', - version='2.1.2', + version='2.1.3', description='Pure Python read/write support for ESRI Shapefile format', long_description=read_file('README.md'), long_description_content_type='text/markdown', diff --git a/shapefile.py b/shapefile.py index 4345e81..eb8f715 100644 --- a/shapefile.py +++ b/shapefile.py @@ -2,11 +2,11 @@ shapefile.py Provides read and write support for ESRI Shapefiles. author: jlawheadgeospatialpython.com -version: 2.1.2 +version: 2.1.3 Compatible with Python versions 2.7-3.x """ -__version__ = "2.1.2" +__version__ = "2.1.3" from struct import pack, unpack, calcsize, error, Struct import os From bff30d0250813304d037ecfd840d0738f440c3a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= <6774676+eumiro@users.noreply.github.com> Date: Fri, 15 Jan 2021 08:27:05 +0100 Subject: [PATCH 068/235] Add Python 3.9 support --- .travis.yml | 1 + setup.py | 1 + 2 files changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index efe10ae..08d0d52 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ python: - "3.6" - "3.7" - "3.8" + - "3.9" - "pypy" - "pypy3" diff --git a/setup.py b/setup.py index 64c1f62..f639756 100644 --- a/setup.py +++ b/setup.py @@ -27,6 +27,7 @@ def read_file(file): 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'Topic :: Scientific/Engineering :: GIS', 'Topic :: Software Development :: Libraries', 'Topic :: Software Development :: Libraries :: Python Modules']) From e5edb34a1c053f70d6ea8fda9726766ad24e858d Mon Sep 17 00:00:00 2001 From: Tim Gates Date: Sat, 10 Jul 2021 21:46:38 +1000 Subject: [PATCH 069/235] docs: fix a few simple typos There are small typos in: - README.md - shapefile.py Fixes: - Should read `similarly` rather than `similiarly`. - Should read `appropriate` rather than `appropritate`. - Should read `elevation` rather than `elavation`. - Should read `inspecting` rather than `inspecing`. Closes #218 --- README.md | 4 ++-- shapefile.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 096c6c5..5568af6 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ Users of the previous version 1.x should therefore take note of the following ch - Reading shapefiles is now more convenient: - Shapefiles can be opened using the context manager, and files are properly closed. - Shapefiles can be iterated, have a length, and supports the geo interface. - - New ways of inspecing shapefile metadata by printing. [@megies] + - New ways of inspecting shapefile metadata by printing. [@megies] - More convenient accessing of Record values as attributes. [@philippkraft] - More convenient shape type name checking. [@megies] - Add more support and documentation for MultiPatch 3D shapes. @@ -390,7 +390,7 @@ where lines and polygons are grouped for you: >>> geoj["type"] 'MultiPolygon' -The results from the shapes() method similiarly supports converting to GeoJSON: +The results from the shapes() method similarly supports converting to GeoJSON: >>> shapes.__geo_interface__['type'] diff --git a/shapefile.py b/shapefile.py index eb8f715..1da9de3 100644 --- a/shapefile.py +++ b/shapefile.py @@ -151,7 +151,7 @@ def is_string(v): # Begin class _Array(array.array): - """Converts python tuples to lists of the appropritate type. + """Converts python tuples to lists of the appropriate type. Used to unpack different shapefile header parts.""" def __repr__(self): return str(self.tolist()) @@ -1488,7 +1488,7 @@ def __zbox(self, s): z.append(p[2]) except IndexError: # point did not have z value - # setting it to 0 is probably ok, since it means all are on the same elavation + # setting it to 0 is probably ok, since it means all are on the same elevation z.append(0) zbox = [min(z), max(z)] # update global @@ -2026,7 +2026,7 @@ def multipatch(self, parts, partTypes): PartTypes is a list of types that define each of the surface patches. The types can be any of the following module constants: TRIANGLE_STRIP, TRIANGLE_FAN, OUTER_RING, INNER_RING, FIRST_RING, or RING. - If the z (elavation) value is not included, it defaults to 0. + If the z (elevation) value is not included, it defaults to 0. If the m (measure) value is not included, it defaults to None (NoData).""" shapeType = MULTIPATCH polyShape = Shape(shapeType) From 66e983f2768b0422a65bcbde3c92823a874ad344 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 30 Aug 2021 21:29:13 +0200 Subject: [PATCH 070/235] Drop computation when calling len() on non-indexed shapefiles --- shapefile.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/shapefile.py b/shapefile.py index eb8f715..033daf6 100644 --- a/shapefile.py +++ b/shapefile.py @@ -894,10 +894,9 @@ def __len__(self): else: # Index file not available, iterate all shapes to get total count if self.numShapes is None: - i = 0 for i,shape in enumerate(self.iterShapes()): - i += 1 - self.numShapes = i + pass + self.numShapes = i + 1 return self.numShapes From c61689333a7ed1c805290c21d2c7e0b3448d7a54 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 30 Aug 2021 21:48:00 +0200 Subject: [PATCH 071/235] Set .oid attribute when doing iterRecords and iterShapeRecords --- shapefile.py | 2 +- test_shapefile.py | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/shapefile.py b/shapefile.py index 033daf6..fd1fdad 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1315,7 +1315,7 @@ def iterRecords(self): f = self.__getFileObj(self.dbf) f.seek(self.__dbfHdrLength) for i in xrange(self.numRecords): - r = self.__record() + r = self.__record(oid=i) if r: yield r diff --git a/test_shapefile.py b/test_shapefile.py index baa2ff2..69b4f52 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -402,8 +402,18 @@ def test_record_oid(): its index in the shapefile. """ with shapefile.Reader("shapefiles/blockgroups") as sf: - record = sf.record(0) - assert record.oid is 0 + for i in range(len(sf)): + record = sf.record(i) + assert record.oid == i + + for i,record in enumerate(sf.records()): + assert record.oid == i + + for i,record in enumerate(sf.iterRecords()): + assert record.oid == i + + for i,shaperec in enumerate(sf.iterShapeRecords()): + assert shaperec.record.oid == i def test_shaperecords_shaperecord(): From c695e3d05d9c70605bc485495b4930266c2160e6 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 31 Aug 2021 10:09:38 +0200 Subject: [PATCH 072/235] More robust+informative Shape to geojson warnings, additional geo interface tests --- shapefile.py | 85 +++++++++++++++++++++++++++++++++++++++++------ test_shapefile.py | 30 ++++++++++++++++- 2 files changed, 104 insertions(+), 11 deletions(-) diff --git a/shapefile.py b/shapefile.py index fd1fdad..43eea37 100644 --- a/shapefile.py +++ b/shapefile.py @@ -14,11 +14,14 @@ import time import array import tempfile -import warnings +import logging import io from datetime import date +# Module settings +VERBOSE = True + # Constants for shape types NULL = 0 POINT = 1 @@ -279,10 +282,11 @@ def ring_contains_ring(coords1, coords2): ''' return all((ring_contains_point(coords1, p2) for p2 in coords2)) -def organize_polygon_rings(rings): +def organize_polygon_rings(rings, return_errors=None): '''Organize a list of coordinate rings into one or more polygons with holes. Returns a list of polygons, where each polygon is composed of a single exterior - ring, and one or more interior holes. + ring, and one or more interior holes. If a return_errors dict is provided (optional), + any errors encountered will be added to it. Rings must be closed, and cannot intersect each other (non-self-intersecting polygon). Rings are determined as exteriors if they run in clockwise direction, or interior @@ -360,7 +364,6 @@ def organize_polygon_rings(rings): orphan_holes = [] for hole_i,exterior_candidates in list(hole_exteriors.items()): if not exterior_candidates: - warnings.warn('Shapefile shape has invalid polygon: found orphan hole (not contained by any of the exteriors); interpreting as exterior.') orphan_holes.append( hole_i ) del hole_exteriors[hole_i] continue @@ -384,11 +387,15 @@ def organize_polygon_rings(rings): poly = [ext] polys.append(poly) + if orphan_holes and return_errors is not None: + return_errors['polygon_orphaned_holes'] = len(orphan_holes) + return polys # no exteriors, be nice and assume due to incorrect winding order else: - warnings.warn('Shapefile shape has invalid polygon: no exterior rings found (must have clockwise orientation); interpreting holes as exteriors.') + if return_errors is not None: + return_errors['polygon_only_holes'] = len(holes) exteriors = holes # could potentially reverse their order, but in geojson winding order doesn't matter polys = [[ext] for ext in exteriors] return polys @@ -411,6 +418,8 @@ def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None): self.parts = parts or [] if partTypes: self.partTypes = partTypes + # and a dict to silently record any errors encountered + self._errors = {} @property def __geo_interface__(self): @@ -490,7 +499,25 @@ def __geo_interface__(self): # organize rings into list of polygons, where each polygon is defined as list of rings. # the first ring is the exterior and any remaining rings are holes (same as GeoJSON). - polys = organize_polygon_rings(rings) + polys = organize_polygon_rings(rings, self._errors) + + # if VERBOSE is True, issue detailed warning about any shape errors + # encountered during the Shapefile to GeoJSON conversion + if VERBOSE and self._errors: + header = 'Possible issue encountered when converting Shape to GeoJSON: ' + orphans = self._errors.get('polygon_orphaned_holes', None) + if orphans: + msg = header + 'GeoJSON format requires that all polygon interior holes be contained by an exterior ring, \ +but the Shape contained interior holes (defined by counter-clockwise orientation in the shapefile format) that were \ +orphaned, i.e. not contained by any exterior rings. The rings were still included but were \ +encoded as GeoJSON exterior rings instead of holes.' + logging.warning(msg) + only_holes = self._errors.get('polygon_only_holes', None) + if only_holes: + msg = header + 'GeoJSON format requires that polygons contain at least one exterior ring, \ +but the Shape was entirely made up of interior holes (defined by counter-clockwise orientation in the shapefile format). The rings were \ +still included but were encoded as GeoJSON exterior rings instead of holes.' + logging.warning(msg) # return as geojson if len(polys) == 1: @@ -749,8 +776,9 @@ def __repr__(self): def __geo_interface__(self): # Note: currently this will fail if any of the shapes are null-geometries # could be fixed by storing the shapefile shapeType upon init, returning geojson type with empty coords - return {'type': 'GeometryCollection', - 'geometries': [shape.__geo_interface__ for shape in self]} + collection = {'type': 'GeometryCollection', + 'geometries': [shape.__geo_interface__ for shape in self]} + return collection class ShapeRecords(list): """A class to hold a list of ShapeRecord objects. Subclasses list to ensure compatibility with @@ -763,13 +791,50 @@ def __repr__(self): @property def __geo_interface__(self): - return {'type': 'FeatureCollection', - 'features': [shaperec.__geo_interface__ for shaperec in self]} + collection = {'type': 'FeatureCollection', + 'features': [shaperec.__geo_interface__ for shaperec in self]} + return collection class ShapefileException(Exception): """An exception to handle shapefile specific problems.""" pass +# def warn_geojson_collection(shapes): +# # collect information about any potential errors with the GeoJSON +# errors = {} +# for i,shape in enumerate(shapes): +# shape_errors = shape._errors +# if shape_errors: +# for error in shape_errors.keys(): +# errors[error] = errors[error] + [i] if error in errors else [] + +# # warn if any errors were found +# if errors: +# messages = ['Summary of possibles issues encountered during shapefile to GeoJSON conversion:'] + +# # polygon orphan holes +# orphans = errors.get('polygon_orphaned_holes', None) +# if orphans: +# msg = 'GeoJSON format requires that all interior holes be contained by an exterior ring, \ +# but the Shapefile contained {} records of polygons where some of its interior holes were \ +# orphaned (not contained by any other rings). The rings were still included but were \ +# encoded as GeoJSON exterior rings instead of holes. Shape ids: {}'.format(len(orphans), orphans) +# messages.append(msg) + +# # polygon only holes/wrong orientation +# only_holes = errors.get('polygon_only_holes', None) +# if only_holes: +# msg = 'GeoJSON format requires that polygons contain at least one exterior ring, but \ +# the Shapefile contained {} records of polygons where all of its component rings were stored as interior \ +# holes. The rings were still included but were encoded as GeoJSON exterior rings instead of holes. \ +# Shape ids: {}'.format(len(only_holes), only_holes) +# messages.append(msg) + +# if len(messages) > 1: +# # more than just the "Summary of..." header +# msg = '\n'.join(messages) +# logging.warning(msg) + class Reader(object): """Reads the three files of a shapefile as a unit or separately. If one of the three files (.shp, .shx, diff --git a/test_shapefile.py b/test_shapefile.py index 69b4f52..9069c4c 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -211,7 +211,35 @@ def test_expected_shape_geo_interface(typ, points, parts, expected): shape = shapefile.Shape(typ, points, parts) geoj = shape.__geo_interface__ assert geoj == expected - + + +def test_reader_geo_interface(): + with shapefile.Reader("shapefiles/blockgroups") as r: + geoj = r.__geo_interface__ + assert geoj['type'] == 'FeatureCollection' + assert 'bbox' in geoj + assert json.dumps(geoj) + + +def test_shapes_geo_interface(): + with shapefile.Reader("shapefiles/blockgroups") as r: + geoj = r.shapes().__geo_interface__ + assert geoj['type'] == 'GeometryCollection' + assert json.dumps(geoj) + + +def test_shaperecords_geo_interface(): + with shapefile.Reader("shapefiles/blockgroups") as r: + geoj = r.shapeRecords().__geo_interface__ + assert geoj['type'] == 'FeatureCollection' + assert json.dumps(geoj) + + +def test_shaperecord_geo_interface(): + with shapefile.Reader("shapefiles/blockgroups") as r: + for shaperec in r: + assert json.dumps(shaperec.__geo_interface__) + def test_reader_context_manager(): """ From 103bad0402c1cfc2bee1bc5741bf0f43d344d308 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 31 Aug 2021 12:31:43 +0200 Subject: [PATCH 073/235] Add oid and repr to Shape objects too --- README.md | 9 ++++++++ shapefile.py | 36 ++++++++++++++++++++++-------- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes test_shapefile.py | 20 +++++++++++++++++ 16 files changed, 56 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 096c6c5..1656fb4 100644 --- a/README.md +++ b/README.md @@ -315,6 +315,8 @@ index which is 7. >>> s = sf.shape(7) + >>> s + Shape #7: POLYGON >>> # Read the bbox of the 8th shape to verify >>> # Round coordinates to 3 decimal places @@ -329,11 +331,18 @@ shapeType Point do not have a bounding box 'bbox'. ... if not name.startswith('_'): ... name 'bbox' + 'oid' 'parts' 'points' 'shapeType' 'shapeTypeName' + * oid: The shape's index position in the original shapefile. + + + >>> shapes[3].oid + 3 + * shapeType: an integer representing the type of shape as defined by the shapefile specification. diff --git a/shapefile.py b/shapefile.py index 43eea37..da9806d 100644 --- a/shapefile.py +++ b/shapefile.py @@ -401,7 +401,7 @@ def organize_polygon_rings(rings, return_errors=None): return polys class Shape(object): - def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None): + def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None, oid=None): """Stores the geometry of the different shape types specified in the Shapefile spec. Shape types are usually point, polyline, or polygons. Every shape type @@ -418,8 +418,15 @@ def __init__(self, shapeType=NULL, points=None, parts=None, partTypes=None): self.parts = parts or [] if partTypes: self.partTypes = partTypes + # and a dict to silently record any errors encountered self._errors = {} + + # add oid + if oid is not None: + self.__oid = oid + else: + self.__oid = -1 @property def __geo_interface__(self): @@ -504,17 +511,17 @@ def __geo_interface__(self): # if VERBOSE is True, issue detailed warning about any shape errors # encountered during the Shapefile to GeoJSON conversion if VERBOSE and self._errors: - header = 'Possible issue encountered when converting Shape to GeoJSON: ' + header = 'Possible issue encountered when converting Shape #{} to GeoJSON: '.format(self.oid) orphans = self._errors.get('polygon_orphaned_holes', None) if orphans: - msg = header + 'GeoJSON format requires that all polygon interior holes be contained by an exterior ring, \ + msg = header + 'Shapefile format requires that all polygon interior holes be contained by an exterior ring, \ but the Shape contained interior holes (defined by counter-clockwise orientation in the shapefile format) that were \ orphaned, i.e. not contained by any exterior rings. The rings were still included but were \ encoded as GeoJSON exterior rings instead of holes.' logging.warning(msg) only_holes = self._errors.get('polygon_only_holes', None) if only_holes: - msg = header + 'GeoJSON format requires that polygons contain at least one exterior ring, \ + msg = header + 'Shapefile format requires that polygons contain at least one exterior ring, \ but the Shape was entirely made up of interior holes (defined by counter-clockwise orientation in the shapefile format). The rings were \ still included but were encoded as GeoJSON exterior rings instead of holes.' logging.warning(msg) @@ -610,10 +617,18 @@ def _from_geojson(geoj): shape.parts = parts return shape + @property + def oid(self): + """The index position of the shape in the original shapefile""" + return self.__oid + @property def shapeTypeName(self): return SHAPETYPE_LOOKUP[self.shapeType] + def __repr__(self): + return 'Shape #{}: {}'.format(self.__oid, self.shapeTypeName) + class _Record(list): """ A class to hold a record. Subclasses list to ensure compatibility with @@ -1097,10 +1112,10 @@ def __shpHeader(self): else: self.mbox.append(None) - def __shape(self): + def __shape(self, oid=None): """Returns the header info and geometry for a single shape.""" f = self.__getFileObj(self.shp) - record = Shape() + record = Shape(oid=oid) nParts = nPoints = zmin = zmax = mmin = mmax = None (recNum, recLength) = unpack(">2i", f.read(8)) # Determine the start of the next record @@ -1205,7 +1220,7 @@ def shape(self, i=0): if j == i: return k shp.seek(offset) - return self.__shape() + return self.__shape(oid=i) def shapes(self): """Returns all shapes in a shapefile.""" @@ -1219,7 +1234,8 @@ def shapes(self): shp.seek(100) shapes = Shapes() while shp.tell() < self.shpLength: - shapes.append(self.__shape()) + i = len(shapes) + shapes.append(self.__shape(oid=i)) return shapes def iterShapes(self): @@ -1229,8 +1245,10 @@ def iterShapes(self): shp.seek(0,2) self.shpLength = shp.tell() shp.seek(100) + i = 0 while shp.tell() < self.shpLength: - yield self.__shape() + yield self.__shape(oid=i) + i += 1 def __dbfHeader(self): """Reads a dbf header. Xbase-related code borrows heavily from ActiveState Python Cookbook Recipe 362715 by Raymond Hettinger""" diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index 333ec3ae2cd30ac4c594833cf78f3bee34ffeb31..c0822b5f553df8467e6d1a7be3c6db2cf4d45a5a 100644 GIT binary patch delta 13 UcmZ3&wuFs^xspSEBZ~qv02f*U)Bpeg delta 13 UcmZ3&wuFs^xss7@BZ~qv02bQCWMQu4ke|q63jhj)0sH^} delta 10 RcmZ>CWMQskYGz_#uH=xP$nqZm5#Iww delta 12 TcmZo>YGz_#u4Lq!$nqZm5qJYG diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 2b4f25f6fa126a04735610f4d8bf3486569a5b4e..bf8459c5f2c29766dabb886a286d5a8d7141d4ac 100644 GIT binary patch delta 10 RcmXRZVPUT1ke|p>000hv0+j#& delta 10 RcmXRZVPURh000hv0+j#& delta 10 RcmXRZVPURh000hv0+j#& delta 10 RcmXRZVPURh000hv0+j#& delta 10 RcmXRZVPURh000hv0+j#& delta 10 RcmXRZVPURhCWMQu4ke|q63jhj)0sH^} delta 10 RcmZ>CWMQsk000hv0+j#& delta 10 RcmXRZVPURh000hv0+j#& delta 10 RcmXRZVPURhCWMQu4ke|q63jhj)0sH^} delta 10 RcmZ>CWMQskCWMQu4ke|q63jhj)0sH^} delta 10 RcmZ>CWMQsk Date: Tue, 31 Aug 2021 15:03:50 +0200 Subject: [PATCH 074/235] Faster ring orientation checks, enforce geojson output ring orientation --- shapefile.py | 65 ++++++++++++++++++++++++++++++++++----------- test_shapefile.py | 67 +++++++++++++++++++++++++---------------------- 2 files changed, 84 insertions(+), 48 deletions(-) diff --git a/shapefile.py b/shapefile.py index da9806d..e145b46 100644 --- a/shapefile.py +++ b/shapefile.py @@ -159,14 +159,32 @@ class _Array(array.array): def __repr__(self): return str(self.tolist()) -def signed_area(coords): +def signed_area(coords, fast=False): """Return the signed area enclosed by a ring using the linear time algorithm. A value >= 0 indicates a counter-clockwise oriented ring. + A faster version is possible by setting 'fast' to True, which returns + 2x the area, e.g. if you're only interested in the sign of the area. """ xs, ys = map(list, list(zip(*coords))[:2]) # ignore any z or m values xs.append(xs[1]) ys.append(ys[1]) - return sum(xs[i]*(ys[i+1]-ys[i-1]) for i in range(1, len(coords)))/2.0 + area2 = sum(xs[i]*(ys[i+1]-ys[i-1]) for i in range(1, len(coords))) + if fast: + return area2 + else: + return area2 / 2.0 + +def is_cw(coords): + """Returns True if a polygon ring has clockwise orientation, determined + by a negatively signed area. + """ + area2 = signed_area(coords, fast=True) + return area2 < 0 + +def rewind(coords): + """Returns the input coords in reversed order. + """ + return list(reversed(coords)) def ring_bbox(coords): """Calculates and returns the bounding box of a ring. @@ -260,7 +278,7 @@ def itercoords(): if not is_straight_line: # get triplet orientation closed_triplet = triplet + [triplet[0]] - triplet_ccw = signed_area(closed_triplet) >= 0 + triplet_ccw = not is_cw(closed_triplet) # check that triplet has the same orientation as the ring (means triangle is inside the ring) if ccw == triplet_ccw: # get triplet centroid @@ -300,11 +318,13 @@ def organize_polygon_rings(rings, return_errors=None): for ring in rings: # shapefile format defines a polygon as a sequence of rings # where exterior rings are clockwise, and holes counterclockwise - if signed_area(ring) < 0: + if is_cw(ring): # ring is exterior + ring = rewind(ring) # GeoJSON and Shapefile exteriors have opposite orientation exteriors.append(ring) else: # ring is a hole + ring = rewind(ring) # GeoJSON and Shapefile holes have opposite orientation holes.append(ring) # if only one exterior, then all holes belong to that exterior @@ -340,7 +360,8 @@ def organize_polygon_rings(rings, return_errors=None): if len(exterior_candidates) > 1: # get hole sample point - hole_sample = ring_sample(holes[hole_i], ccw=True) + # Note: all rings now follow GeoJSON orientation, i.e. holes are clockwise + hole_sample = ring_sample(holes[hole_i], ccw=False) # collect new exterior candidates new_exterior_candidates = [] for ext_i in exterior_candidates: @@ -357,7 +378,7 @@ def organize_polygon_rings(rings, return_errors=None): if len(exterior_candidates) > 1: # exterior candidate with the smallest area is the hole's most immediate parent - ext_i = sorted(exterior_candidates, key=lambda x: abs(signed_area(exteriors[x])))[0] + ext_i = sorted(exterior_candidates, key=lambda x: abs(signed_area(exteriors[x], fast=True)))[0] hole_exteriors[hole_i] = [ext_i] # separate out holes that are orphaned (not contained by any exterior) @@ -383,7 +404,10 @@ def organize_polygon_rings(rings, return_errors=None): # add orphan holes as exteriors for hole_i in orphan_holes: - ext = holes[hole_i] # could potentially reverse their order, but in geojson winding order doesn't matter + ext = holes[hole_i] + # since this was previously a clockwise ordered hole, inverse the winding order + ext = rewind(ext) + # add as single exterior without any holes poly = [ext] polys.append(poly) @@ -396,7 +420,10 @@ def organize_polygon_rings(rings, return_errors=None): else: if return_errors is not None: return_errors['polygon_only_holes'] = len(holes) - exteriors = holes # could potentially reverse their order, but in geojson winding order doesn't matter + exteriors = holes + # since these were previously clockwise ordered holes, inverse the winding order + exteriors = [rewind(ext) for ext in exteriors] + # add as single exterior without any holes polys = [[ext] for ext in exteriors] return polys @@ -577,12 +604,15 @@ def _from_geojson(geoj): parts = [] index = 0 for i,ext_or_hole in enumerate(geoj["coordinates"]): - if i == 0 and not signed_area(ext_or_hole) < 0: + # although the latest GeoJSON spec states that exterior rings should have + # counter-clockwise orientation, we explicitly check orientation since older + # GeoJSONs might not enforce this. + if i == 0 and not is_cw(ext_or_hole): # flip exterior direction - ext_or_hole = list(reversed(ext_or_hole)) - elif i > 0 and not signed_area(ext_or_hole) >= 0: + ext_or_hole = rewind(ext_or_hole) + elif i > 0 and is_cw(ext_or_hole): # flip hole direction - ext_or_hole = list(reversed(ext_or_hole)) + ext_or_hole = rewind(ext_or_hole) points.extend(ext_or_hole) parts.append(index) index += len(ext_or_hole) @@ -604,12 +634,15 @@ def _from_geojson(geoj): index = 0 for polygon in geoj["coordinates"]: for i,ext_or_hole in enumerate(polygon): - if i == 0 and not signed_area(ext_or_hole) < 0: + # although the latest GeoJSON spec states that exterior rings should have + # counter-clockwise orientation, we explicitly check orientation since older + # GeoJSONs might not enforce this. + if i == 0 and not is_cw(ext_or_hole): # flip exterior direction - ext_or_hole = list(reversed(ext_or_hole)) - elif i > 0 and not signed_area(ext_or_hole) >= 0: + ext_or_hole = rewind(ext_or_hole) + elif i > 0 and is_cw(ext_or_hole): # flip hole direction - ext_or_hole = list(reversed(ext_or_hole)) + ext_or_hole = rewind(ext_or_hole) points.extend(ext_or_hole) parts.append(index) index += len(ext_or_hole) diff --git a/test_shapefile.py b/test_shapefile.py index f3b9c7e..ef66153 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -42,7 +42,7 @@ ], [0], {'type':'Polygon','coordinates':[ - [(1,1),(1,9),(9,9),(9,1),(1,1)], + shapefile.rewind([(1,1),(1,9),(9,9),(9,1),(1,1)]), ]} ), (shapefile.POLYGON, # single polygon, holes (ordered) @@ -52,9 +52,9 @@ ], [0,5,5+5], {'type':'Polygon','coordinates':[ - [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior - [(2,2),(4,2),(4,4),(2,4),(2,2)], # hole 1 - [(5,5),(7,5),(7,7),(5,7),(5,5)], # hole 2 + shapefile.rewind([(1,1),(1,9),(9,9),(9,1),(1,1)]), # exterior + shapefile.rewind([(2,2),(4,2),(4,4),(2,4),(2,2)]), # hole 1 + shapefile.rewind([(5,5),(7,5),(7,7),(5,7),(5,5)]), # hole 2 ]} ), (shapefile.POLYGON, # single polygon, holes (unordered) @@ -65,9 +65,9 @@ ], [0,5,5+5], {'type':'Polygon','coordinates':[ - [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior - [(2,2),(4,2),(4,4),(2,4),(2,2)], # hole 1 - [(5,5),(7,5),(7,7),(5,7),(5,5)], # hole 2 + shapefile.rewind([(1,1),(1,9),(9,9),(9,1),(1,1)]), # exterior + shapefile.rewind([(2,2),(4,2),(4,4),(2,4),(2,2)]), # hole 1 + shapefile.rewind([(5,5),(7,5),(7,7),(5,7),(5,5)]), # hole 2 ]} ), (shapefile.POLYGON, # multi polygon, no holes @@ -77,10 +77,10 @@ [0,5], {'type':'MultiPolygon','coordinates':[ [ # poly 1 - [(1,1),(1,9),(9,9),(9,1),(1,1)], + shapefile.rewind([(1,1),(1,9),(9,9),(9,1),(1,1)]), ], [ # poly 2 - [(11,11),(11,19),(19,19),(19,11),(11,11)], + shapefile.rewind([(11,11),(11,19),(19,19),(19,11),(11,11)]), ], ]} ), @@ -95,14 +95,14 @@ [0,5,10,15,20,25], {'type':'MultiPolygon','coordinates':[ [ # poly 1 - [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior - [(2,2),(4,2),(4,4),(2,4),(2,2)], # hole 1 - [(5,5),(7,5),(7,7),(5,7),(5,5)], # hole 2 + shapefile.rewind([(1,1),(1,9),(9,9),(9,1),(1,1)]), # exterior + shapefile.rewind([(2,2),(4,2),(4,4),(2,4),(2,2)]), # hole 1 + shapefile.rewind([(5,5),(7,5),(7,7),(5,7),(5,5)]), # hole 2 ], [ # poly 2 - [(11,11),(11,19),(19,19),(19,11),(11,11)], # exterior - [(12,12),(14,12),(14,14),(12,14),(12,12)], # hole 1 - [(15,15),(17,15),(17,17),(15,17),(15,15)], # hole 2 + shapefile.rewind([(11,11),(11,19),(19,19),(19,11),(11,11)]), # exterior + shapefile.rewind([(12,12),(14,12),(14,14),(12,14),(12,12)]), # hole 1 + shapefile.rewind([(15,15),(17,15),(17,17),(15,17),(15,15)]), # hole 2 ], ]} ), @@ -116,15 +116,15 @@ [0,5,10,15,20], {'type':'MultiPolygon','coordinates':[ [ # poly 1 - [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior 1 - [(2,2),(8,2),(8,8),(2,8),(2,2)], # hole 1.1 + shapefile.rewind([(1,1),(1,9),(9,9),(9,1),(1,1)]), # exterior 1 + shapefile.rewind([(2,2),(8,2),(8,8),(2,8),(2,2)]), # hole 1.1 ], [ # poly 2 - [(3,3),(3,7),(7,7),(7,3),(3,3)], # exterior 2 - [(4,4),(6,4),(6,6),(4,6),(4,4)], # hole 2.1 + shapefile.rewind([(3,3),(3,7),(7,7),(7,3),(3,3)]), # exterior 2 + shapefile.rewind([(4,4),(6,4),(6,6),(4,6),(4,4)]), # hole 2.1 ], [ # poly 3 - [(4.5,4.5),(4.5,5.5),(5.5,5.5),(5.5,4.5),(4.5,4.5)], # exterior 3 + shapefile.rewind([(4.5,4.5),(4.5,5.5),(5.5,5.5),(5.5,4.5),(4.5,4.5)]), # exterior 3 ], ]} ), @@ -138,15 +138,15 @@ [0,5,10,15,20+3], {'type':'MultiPolygon','coordinates':[ [ # poly 1 - [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior 1 - [(2,2),(3,3),(4,2),(8,2),(8,8),(4,8),(2,8),(2,4),(2,2)], # hole 1.1 + shapefile.rewind([(1,1),(1,9),(9,9),(9,1),(1,1)]), # exterior 1 + shapefile.rewind([(2,2),(3,3),(4,2),(8,2),(8,8),(4,8),(2,8),(2,4),(2,2)]), # hole 1.1 ], [ # poly 2 - [(3,3),(3,7),(7,7),(7,3),(3,3)], # exterior 2 - [(4,4),(4,4),(6,4),(6,4),(6,4),(6,6),(4,6),(4,4)], # hole 2.1 + shapefile.rewind([(3,3),(3,7),(7,7),(7,3),(3,3)]), # exterior 2 + shapefile.rewind([(4,4),(4,4),(6,4),(6,4),(6,4),(6,6),(4,6),(4,4)]), # hole 2.1 ], [ # poly 3 - [(4.5,4.5),(4.5,5.5),(5.5,5.5),(5.5,4.5),(4.5,4.5)], # exterior 3 + shapefile.rewind([(4.5,4.5),(4.5,5.5),(5.5,5.5),(5.5,4.5),(4.5,4.5)]), # exterior 3 ], ]} ), @@ -162,16 +162,17 @@ [0,5,10,15,20,25,30], {'type':'MultiPolygon','coordinates':[ [ # poly 1 - [(1,1),(1,9),(9,9),(9,1),(1,1)], # exterior - [(2,2),(4,2),(4,4),(2,4),(2,2)], # hole 1 - [(5,5),(7,5),(7,7),(5,7),(5,5)], # hole 2 + shapefile.rewind([(1,1),(1,9),(9,9),(9,1),(1,1)]), # exterior + shapefile.rewind([(2,2),(4,2),(4,4),(2,4),(2,2)]), # hole 1 + shapefile.rewind([(5,5),(7,5),(7,7),(5,7),(5,5)]), # hole 2 ], [ # poly 2 - [(11,11),(11,19),(19,19),(19,11),(11,11)], # exterior - [(12,12),(14,12),(14,14),(12,14),(12,12)], # hole 1 - [(15,15),(17,15),(17,17),(15,17),(15,15)], # hole 2 + shapefile.rewind([(11,11),(11,19),(19,19),(19,11),(11,11)]), # exterior + shapefile.rewind([(12,12),(14,12),(14,14),(12,14),(12,12)]), # hole 1 + shapefile.rewind([(15,15),(17,15),(17,17),(15,17),(15,15)]), # hole 2 ], - [ # poly 3 (orphaned hole) + [ # poly 3 (orphaned hole) + # Note: due to the hole-to-exterior conversion, should return the same ring orientation [(95,95),(97,95),(97,97),(95,97),(95,95)], # exterior ], ]} @@ -183,9 +184,11 @@ [0,5], {'type':'MultiPolygon','coordinates':[ [ # poly 1 + # Note: due to the hole-to-exterior conversion, should return the same ring orientation [(1,1),(9,1),(9,9),(1,9),(1,1)], ], [ # poly 2 + # Note: due to the hole-to-exterior conversion, should return the same ring orientation [(11,11),(19,11),(19,19),(11,19),(11,11)], ], ]} From a0e8051d4d13c59e49767a1bb157c9e1df33e680 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 31 Aug 2021 15:30:11 +0200 Subject: [PATCH 075/235] Document the VERBOSE flag --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 1656fb4..0a55522 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,14 @@ The results from the shapes() method similiarly supports converting to GeoJSON: >>> shapes.__geo_interface__['type'] 'GeometryCollection' + +Note: In some cases, if the conversion from shapefile geometry to GeoJSON encountered any problems +or potential issues, a warning message will be displayed with information about the affected +geometry. To ignore or suppress these warnings, you can disable this behavior by setting the +module constant VERBOSE to False: + + + >>> shapefile.VERBOSE = False ### Reading Records From 75210263698641a17b7e47775e0331644f2402fd Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 1 Sep 2021 10:09:47 +0200 Subject: [PATCH 076/235] Fixed a markdown bug --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 23c3cf7..e985ade 100644 --- a/README.md +++ b/README.md @@ -337,26 +337,26 @@ shapeType Point do not have a bounding box 'bbox'. 'shapeType' 'shapeTypeName' - * oid: The shape's index position in the original shapefile. + * `oid`: The shape's index position in the original shapefile. - >>> shapes[3].oid - 3 + >>> shapes[3].oid + 3 - * shapeType: an integer representing the type of shape as defined by the + * `shapeType`: an integer representing the type of shape as defined by the shapefile specification. >>> shapes[3].shapeType 5 - * shapeTypeName: a string representation of the type of shape as defined by shapeType. Read-only. + * `shapeTypeName`: a string representation of the type of shape as defined by shapeType. Read-only. >>> shapes[3].shapeTypeName 'POLYGON' - * bbox: If the shape type contains multiple points this tuple describes the + * `bbox`: If the shape type contains multiple points this tuple describes the lower left (x,y) coordinate and upper right corner coordinate creating a complete box around the points. If the shapeType is a Null (shapeType == 0) then an AttributeError is raised. @@ -368,7 +368,7 @@ shapeType Point do not have a bounding box 'bbox'. >>> ['%.3f' % coord for coord in bbox] ['-122.486', '37.787', '-122.446', '37.811'] - * parts: Parts simply group collections of points into shapes. If the shape + * `parts`: Parts simply group collections of points into shapes. If the shape record has multiple parts this attribute contains the index of the first point of each part. If there is only one part then a list containing 0 is returned. @@ -377,7 +377,7 @@ shapeType Point do not have a bounding box 'bbox'. >>> shapes[3].parts [0] - * points: The points attribute contains a list of tuples containing an + * `points`: The points attribute contains a list of tuples containing an (x,y) coordinate for each point in the shape. From 2813ae8409d32977c3af0a33225503ad191c5217 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Wed, 1 Sep 2021 22:05:06 +0200 Subject: [PATCH 077/235] handle rare deepcopy issue, bump version See https://github.com/mattijn/topojson/issues/120 --- shapefile.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/shapefile.py b/shapefile.py index 07c8aa7..7d125f2 100644 --- a/shapefile.py +++ b/shapefile.py @@ -2,11 +2,11 @@ shapefile.py Provides read and write support for ESRI Shapefiles. author: jlawheadgeospatialpython.com -version: 2.1.3 +version: 2.2.1dev Compatible with Python versions 2.7-3.x """ -__version__ = "2.1.3" +__version__ = "2.2.1dev" from struct import pack, unpack, calcsize, error, Struct import os @@ -1093,10 +1093,16 @@ def __del__(self): self.close() def close(self): - for attribute in (self.shp, self.shx, self.dbf): - if hasattr(attribute, 'close'): + for attribute in ('shp','shx','dbf'): + try: + obj = getattr(self, attribute) + except AttributeError: + # deepcopies fail to copy these attributes and raises exception during + # garbage collection - https://github.com/mattijn/topojson/issues/120 + obj = None + if obj and hasattr(obj, 'close'): try: - attribute.close() + obj.close() except IOError: pass From 35908e7af4e7512b9605383d461f61e248f82b0d Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Thu, 2 Sep 2021 20:38:38 +0200 Subject: [PATCH 078/235] Allow limiting which fields to read in record(), records(), iterRecords(), and iterShapeRecords() --- shapefile.py | 161 +++++++++++++++++++++++++++++++++++----------- test_shapefile.py | 83 ++++++++++++++++++++++-- 2 files changed, 201 insertions(+), 43 deletions(-) diff --git a/shapefile.py b/shapefile.py index 7d125f2..00a3173 100644 --- a/shapefile.py +++ b/shapefile.py @@ -912,7 +912,7 @@ def __init__(self, *args, **kwargs): self.numShapes = None self.fields = [] self.__dbfHdrLength = 0 - self.__fieldposition_lookup = {} + self.__fieldLookup = {} self.encoding = kwargs.pop('encoding', 'utf-8') self.encodingErrors = kwargs.pop('encodingErrors', 'strict') # See if a shapefile name was passed as the first argument @@ -1315,38 +1315,104 @@ def __dbfHeader(self): terminator = dbf.read(1) if terminator != b"\r": raise ShapefileException("Shapefile dbf header lacks expected terminator. (likely corrupt?)") + + # insert deletion field at start self.fields.insert(0, ('DeletionFlag', 'C', 1, 0)) - fmt,fmtSize = self.__recordFmt() - self.__recStruct = Struct(fmt) - - # Store the field positions - self.__fieldposition_lookup = dict((f[0], i) for i, f in enumerate(self.fields[1:])) - def __recordFmt(self): - """Calculates the format and size of a .dbf record.""" + # store all field positions for easy lookups + # note: fieldLookup gives the index position of a field inside Reader.fields + self.__fieldLookup = dict((f[0], i) for i, f in enumerate(self.fields)) + + # by default, read all fields except the deletion flag, hence "[1:]" + # note: recLookup gives the index position of a field inside a _Record list + fieldnames = [f[0] for f in self.fields[1:]] + fieldTuples,recLookup,recStruct = self.__recordFields(fieldnames) + self.__fullRecStruct = recStruct + self.__fullRecLookup = recLookup + + def __recordFmt(self, fields=None): + """Calculates the format and size of a .dbf record. Optional 'fields' arg + specifies which fieldnames to unpack and which to ignore. Note that this + always includes the DeletionFlag at index 0, regardless of the 'fields' arg. + """ if self.numRecords is None: self.__dbfHeader() - fmt = ''.join(['%ds' % fieldinfo[2] for fieldinfo in self.fields]) + structcodes = ['%ds' % fieldinfo[2] + for fieldinfo in self.fields] + if fields is not None: + # only unpack specified fields, ignore others using padbytes (x) + structcodes = [code if fieldinfo[0] in fields + or fieldinfo[0] == 'DeletionFlag' # always unpack delflag + else '%dx' % fieldinfo[2] + for fieldinfo,code in zip(self.fields, structcodes)] + fmt = ''.join(structcodes) fmtSize = calcsize(fmt) # total size of fields should add up to recordlength from the header while fmtSize < self.__recordLength: # if not, pad byte until reaches recordlength - fmt += "x" + fmt += "x" fmtSize += 1 return (fmt, fmtSize) - def __record(self, oid=None): - """Reads and returns a dbf record row as a list of values.""" + def __recordFields(self, fields=None): + """Returns the necessary info required to unpack a record's fields, + restricted to a subset of fieldnames 'fields' if specified. + Returns a list of field info tuples, a name-index lookup dict, + and a Struct instance for unpacking these fields. Note that DeletionFlag + is not a valid field. + """ + if fields is not None: + # restrict info to the specified fields + # first ignore repeated field names (order doesn't matter) + fields = list(set(fields)) + # get the struct + fmt, fmtSize = self.__recordFmt(fields=fields) + recStruct = Struct(fmt) + # make sure the given fieldnames exist + for name in fields: + if name not in self.__fieldLookup or name == 'DeletionFlag': + raise ValueError('"{}" is not a valid field name'.format(name)) + # fetch relevant field info tuples + fieldTuples = [] + for fieldinfo in self.fields[1:]: + name = fieldinfo[0] + if name in fields: + fieldTuples.append(fieldinfo) + # store the field positions + recLookup = dict((f[0], i) for i,f in enumerate(fieldTuples)) + else: + # use all the dbf fields + fieldTuples = self.fields[1:] # sans deletion flag + recStruct = self.__fullRecStruct + recLookup = self.__fullRecLookup + return fieldTuples, recLookup, recStruct + + def __record(self, fieldTuples, recLookup, recStruct, oid=None): + """Reads and returns a dbf record row as a list of values. Requires specifying + a list of field info tuples 'fieldTuples', a record name-index dict 'recLookup', + and a Struct instance 'recStruct' for unpacking these fields. + """ f = self.__getFileObj(self.dbf) - recordContents = self.__recStruct.unpack(f.read(self.__recStruct.size)) + + recordContents = recStruct.unpack(f.read(recStruct.size)) + + # deletion flag field is always unpacked as first value (see __recordFmt) if recordContents[0] != b' ': # deleted record return None + + # drop deletion flag from values + recordContents = recordContents[1:] + + # check that values match fields + if len(fieldTuples) != len(recordContents): + raise ShapefileException('Number of record values ({}) is different from the requested \ + number of fields ({})'.format(len(recordContents), len(fieldTuples))) + + # parse each value record = [] - for (name, typ, size, deci), value in zip(self.fields, recordContents): - if name == 'DeletionFlag': - continue - elif typ in ("N","F"): + for (name, typ, size, deci),value in zip(fieldTuples, recordContents): + if typ in ("N","F"): # numeric or float: number stored as a string, right justified, and padded with blanks to the width of the field. value = value.split(b'\0')[0] value = value.replace(b'*', b'') # QGIS NULL is all '*' chars @@ -1403,59 +1469,80 @@ def __record(self, oid=None): value = value.strip() record.append(value) - return _Record(self.__fieldposition_lookup, record, oid) + return _Record(recLookup, record, oid) - def record(self, i=0): - """Returns a specific dbf record based on the supplied index.""" + def record(self, i=0, fields=None): + """Returns a specific dbf record based on the supplied index. + To only read some of the fields, specify the 'fields' arg as a + list of one or more fieldnames. + """ f = self.__getFileObj(self.dbf) if self.numRecords is None: self.__dbfHeader() i = self.__restrictIndex(i) - recSize = self.__recStruct.size + recSize = self.__recordLength f.seek(0) f.seek(self.__dbfHdrLength + (i * recSize)) - return self.__record(oid=i) + fieldTuples,recLookup,recStruct = self.__recordFields(fields) + return self.__record(oid=i, fieldTuples=fieldTuples, recLookup=recLookup, recStruct=recStruct) - def records(self): - """Returns all records in a dbf file.""" + def records(self, fields=None): + """Returns all records in a dbf file. + To only read some of the fields, specify the 'fields' arg as a + list of one or more fieldnames. + """ if self.numRecords is None: self.__dbfHeader() records = [] f = self.__getFileObj(self.dbf) f.seek(self.__dbfHdrLength) + fieldTuples,recLookup,recStruct = self.__recordFields(fields) for i in range(self.numRecords): - r = self.__record(oid=i) + r = self.__record(oid=i, fieldTuples=fieldTuples, recLookup=recLookup, recStruct=recStruct) if r: records.append(r) return records - def iterRecords(self): + def iterRecords(self, fields=None): """Returns a generator of records in a dbf file. - Useful for large shapefiles or dbf files.""" + Useful for large shapefiles or dbf files. + To only read some of the fields, specify the 'fields' arg as a + list of one or more fieldnames. + """ if self.numRecords is None: self.__dbfHeader() f = self.__getFileObj(self.dbf) f.seek(self.__dbfHdrLength) + fieldTuples,recLookup,recStruct = self.__recordFields(fields) for i in xrange(self.numRecords): - r = self.__record(oid=i) + r = self.__record(oid=i, fieldTuples=fieldTuples, recLookup=recLookup, recStruct=recStruct) if r: yield r - def shapeRecord(self, i=0): + def shapeRecord(self, i=0, fields=None): """Returns a combination geometry and attribute record for the - supplied record index.""" + supplied record index. + To only read some of the fields, specify the 'fields' arg as a + list of one or more fieldnames. + """ i = self.__restrictIndex(i) - return ShapeRecord(shape=self.shape(i), record=self.record(i)) + return ShapeRecord(shape=self.shape(i), record=self.record(i, fields=fields)) - def shapeRecords(self): + def shapeRecords(self, fields=None): """Returns a list of combination geometry/attribute records for - all records in a shapefile.""" - return ShapeRecords(self.iterShapeRecords()) + all records in a shapefile. + To only read some of the fields, specify the 'fields' arg as a + list of one or more fieldnames. + """ + return ShapeRecords(self.iterShapeRecords(fields=fields)) - def iterShapeRecords(self): + def iterShapeRecords(self, fields=None): """Returns a generator of combination geometry/attribute records for - all records in a shapefile.""" - for shape, record in izip(self.iterShapes(), self.iterRecords()): + all records in a shapefile. + To only read some of the fields, specify the 'fields' arg as a + list of one or more fieldnames. + """ + for shape, record in izip(self.iterShapes(), self.iterRecords(fields=fields)): yield ShapeRecord(shape=shape, record=record) diff --git a/test_shapefile.py b/test_shapefile.py index ef66153..37cfead 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -399,18 +399,89 @@ def test_records_match_shapes(): assert len(records) == len(shapes) -def test_record_attributes(): +def test_record_attributes(fields=None): """ - Assert that record values can be accessed as - attributes and dictionary items. + Assert that record retrieves all relevant values and can + be accessed as attributes and dictionary items. """ # note # second element in fields matches first element # in record because records dont have DeletionFlag with shapefile.Reader("shapefiles/blockgroups") as sf: - field_name = sf.fields[1][0] - record = sf.record(0) - assert record[0] == record[field_name] == getattr(record, field_name) + for i in range(len(sf)): + # full record + full_record = sf.record(i) + # user-fetched record + if fields is not None: + # only a subset of fields + record = sf.record(i, fields=fields) + else: + # default all fields + record = full_record + fields = [field[0] for field in sf.fields[1:]] # fieldnames, sans del flag + # check correct length + assert len(record) == len(set(fields)) + # check record values (should be in same order as shapefile fields) + i = 0 + for field in sf.fields: + field_name = field[0] + if field_name in fields: + assert record[i] == record[field_name] == getattr(record, field_name) + i += 1 + + +def test_record_subfields(): + """ + Assert that reader correctly retrieves only a subset + of fields when specified. + """ + fields = ["AREA","POP1990","MALES","FEMALES","MOBILEHOME"] + test_record_attributes(fields=fields) + + +def test_record_subfields_unordered(): + """ + Assert that reader correctly retrieves only a subset + of fields when specified, given in random order but + retrieved in the order of the shapefile fields. + """ + fields = sorted(["AREA","POP1990","MALES","FEMALES","MOBILEHOME"]) + test_record_attributes(fields=fields) + + +def test_record_subfields_delflag_notvalid(): + """ + Assert that reader does not consider DeletionFlag as a valid field name. + """ + fields = ["DeletionFlag","AREA","POP1990","MALES","FEMALES","MOBILEHOME"] + with pytest.raises(ValueError): + test_record_attributes(fields=fields) + + +def test_record_subfields_duplicates(): + """ + Assert that reader correctly retrieves only a subset + of fields when specified, handling duplicate input fields. + """ + fields = ["AREA","AREA","AREA","MALES","MALES","MOBILEHOME"] + test_record_attributes(fields=fields) + # check that only 3 values + with shapefile.Reader("shapefiles/blockgroups") as sf: + rec = sf.record(0, fields=fields) + assert len(rec) == len(set(fields)) + + +def test_record_subfields_empty(): + """ + Assert that reader does not retrieve any fields when given + an empty list. + """ + fields = [] + test_record_attributes(fields=fields) + # check that only 3 values + with shapefile.Reader("shapefiles/blockgroups") as sf: + rec = sf.record(0, fields=fields) + assert len(rec) == 0 def test_record_as_dict(): From d2b728d2bc8da40c2f52c34905a63bb7779c2c39 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Fri, 3 Sep 2021 10:07:43 +0200 Subject: [PATCH 079/235] Allow bbox filtering to avoid parsing unwanted shapes --- shapefile.py | 78 ++++++++++++---- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes test_shapefile.py | 143 ++++++++++++++++++++++++++++++ 15 files changed, 203 insertions(+), 18 deletions(-) diff --git a/shapefile.py b/shapefile.py index 00a3173..bba17e7 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1151,7 +1151,7 @@ def __shpHeader(self): else: self.mbox.append(None) - def __shape(self, oid=None): + def __shape(self, oid=None, bbox=None): """Returns the header info and geometry for a single shape.""" f = self.__getFileObj(self.shp) record = Shape(oid=oid) @@ -1167,6 +1167,12 @@ def __shape(self, oid=None): # All shape types capable of having a bounding box elif shapeType in (3,5,8,13,15,18,23,25,28,31): record.bbox = _Array('d', unpack("<4d", f.read(32))) + # if bbox specified and no overlap, skip this shape + if bbox is not None and not bbox_overlap(bbox, record.bbox): + # because we stop parsing this shape, skip to beginning of + # next shape before we return + f.seek(next) + return None # Shape types with parts if shapeType in (3,5,13,15,23,25,31): nParts = unpack("CWMQu4WS+=k3jhik0pS1u delta 10 RcmZ>CWMQu4ke|q63jhj)0sH^} diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index c1445f260d0cfc34974c1b5620f99d933e9f1812..216bd4ef6d35e33d75dcb8958a716c938bbdc6f4 100644 GIT binary patch delta 12 TcmZo>YGz_#uHYGz_#uH=xP$nqZm5#Iww diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index bf8459c5f2c29766dabb886a286d5a8d7141d4ac..97fac3c18ae09a69acfc78f3cbf01e0f0689673b 100644 GIT binary patch delta 10 RcmXRZVPUT1WS+=U000gZ0(t-d delta 10 RcmXRZVPUT1ke|p>000hv0+j#& diff --git a/shapefiles/test/linem.dbf b/shapefiles/test/linem.dbf index fdcb941e5214d3dff9686ab0be5ea311cda5f309..d87e3d3704b8d89dd61b9bd00af7e0069ebf83ed 100644 GIT binary patch delta 10 RcmXRZVPUT1WS+=U000gZ0(t-d delta 10 RcmXRZVPUT1ke|p>000hv0+j#& diff --git a/shapefiles/test/linez.dbf b/shapefiles/test/linez.dbf index 90949e5048dc1ded3d469d74d3e5331151e43dd0..d646266976f2faede8b895552caaf2aae568e20f 100644 GIT binary patch delta 10 RcmXRZVPUT1WS+=U000gZ0(t-d delta 10 RcmXRZVPUT1ke|p>000hv0+j#& diff --git a/shapefiles/test/multipatch.dbf b/shapefiles/test/multipatch.dbf index a80e14183d3adfdf617bde248e9da8583e5ac663..f48f6605975e5691d1a8dbd63bac4e1cadc8d5df 100644 GIT binary patch delta 10 RcmXRZVPUT1WS+=U000gZ0(t-d delta 10 RcmXRZVPUT1ke|p>000hv0+j#& diff --git a/shapefiles/test/multipoint.dbf b/shapefiles/test/multipoint.dbf index 4dd3f83e5886f51ee0344bc9120fe9ab9abb042b..59a3c816787bc105aa4199ccf84b60d95dfceae3 100644 GIT binary patch delta 10 RcmXRZVPUT1WS+=U000gZ0(t-d delta 10 RcmXRZVPUT1ke|p>000hv0+j#& diff --git a/shapefiles/test/onlydbf.dbf b/shapefiles/test/onlydbf.dbf index ea0b82c0aef11041ad65cb320a213188ea32956f..86296302004831280db5ea88dae2e3b04cbed3a2 100644 GIT binary patch delta 10 RcmZ>CWMQu4WS+=k3jhik0pS1u delta 10 RcmZ>CWMQu4ke|q63jhj)0sH^} diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index 3fb875e3118166b2d7eea0640f98aab82af5ed04..cbc654d1b63e769bb6d899df369e1fb43cffcb6d 100644 GIT binary patch delta 10 RcmXRZVPUT1WS+=U000gZ0(t-d delta 10 RcmXRZVPUT1ke|p>000hv0+j#& diff --git a/shapefiles/test/polygon.dbf b/shapefiles/test/polygon.dbf index 93b3be12fd057c5786d0e4824a32b2ed318a7b3c..c9ff0e2d5fad3043a94f5245b110b4426b08ea6f 100644 GIT binary patch delta 10 RcmXRZVPUT1WS+=U000gZ0(t-d delta 10 RcmXRZVPUT1ke|p>000hv0+j#& diff --git a/shapefiles/test/shapetype.dbf b/shapefiles/test/shapetype.dbf index ea0b82c0aef11041ad65cb320a213188ea32956f..86296302004831280db5ea88dae2e3b04cbed3a2 100644 GIT binary patch delta 10 RcmZ>CWMQu4WS+=k3jhik0pS1u delta 10 RcmZ>CWMQu4ke|q63jhj)0sH^} diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index ea0b82c0aef11041ad65cb320a213188ea32956f..86296302004831280db5ea88dae2e3b04cbed3a2 100644 GIT binary patch delta 10 RcmZ>CWMQu4WS+=k3jhik0pS1u delta 10 RcmZ>CWMQu4ke|q63jhj)0sH^} diff --git a/test_shapefile.py b/test_shapefile.py index 37cfead..e8d10d1 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -538,6 +538,149 @@ def test_shape_oid(): assert shaperec.shape.oid == i +def test_bboxfilter_shape(): + """ + Assert that applying the bbox filter to shape() correctly ignores the shape + if it falls outside, and returns it if inside. + """ + inside = [-122.4, 37.8, -122.35, 37.82] + outside = list(inside) + outside[0] *= 10 + outside[2] *= 10 + with shapefile.Reader("shapefiles/blockgroups") as sf: + assert sf.shape(0, bbox=inside) is not None + assert sf.shape(0, bbox=outside) is None + + +def test_bboxfilter_shapes(): + """ + Assert that applying the bbox filter to shapes() correctly ignores shapes + that fall outside, and returns those that fall inside. + """ + bbox = [-122.4, 37.8, -122.35, 37.82] + with shapefile.Reader("shapefiles/blockgroups") as sf: + # apply bbox filter + shapes = sf.shapes(bbox=bbox) + # manually check bboxes + manual = shapefile.Shapes() + for shape in sf.iterShapes(): + if shapefile.bbox_overlap(shape.bbox, bbox): + manual.append(shape) + # compare + assert len(shapes) == len(manual) + # check that they line up + for shape,man in zip(shapes,manual): + assert shape.oid == man.oid + assert shape.__geo_interface__ == man.__geo_interface__ + + +def test_bboxfilter_shapes_outside(): + """ + Assert that applying the bbox filter to shapes() correctly returns + no shapes when the bbox is outside the entire shapefile. + """ + bbox = [-180, 89, -179, 90] + with shapefile.Reader("shapefiles/blockgroups") as sf: + shapes = sf.shapes(bbox=bbox) + assert len(shapes) == 0 + + +def test_bboxfilter_itershapes(): + """ + Assert that applying the bbox filter to iterShapes() correctly ignores shapes + that fall outside, and returns those that fall inside. + """ + bbox = [-122.4, 37.8, -122.35, 37.82] + with shapefile.Reader("shapefiles/blockgroups") as sf: + # apply bbox filter + shapes = list(sf.iterShapes(bbox=bbox)) + # manually check bboxes + manual = shapefile.Shapes() + for shape in sf.iterShapes(): + if shapefile.bbox_overlap(shape.bbox, bbox): + manual.append(shape) + # compare + assert len(shapes) == len(manual) + # check that they line up + for shape,man in zip(shapes,manual): + assert shape.oid == man.oid + assert shape.__geo_interface__ == man.__geo_interface__ + + +def test_bboxfilter_shaperecord(): + """ + Assert that applying the bbox filter to shapeRecord() correctly ignores the shape + if it falls outside, and returns it if inside. + """ + inside = [-122.4, 37.8, -122.35, 37.82] + outside = list(inside) + outside[0] *= 10 + outside[2] *= 10 + with shapefile.Reader("shapefiles/blockgroups") as sf: + # inside + shaperec = sf.shapeRecord(0, bbox=inside) + assert shaperec is not None + assert shaperec.shape.oid == shaperec.record.oid + # outside + assert sf.shapeRecord(0, bbox=outside) is None + + +def test_bboxfilter_shaperecords(): + """ + Assert that applying the bbox filter to shapeRecords() correctly ignores shapes + that fall outside, and returns those that fall inside. + """ + bbox = [-122.4, 37.8, -122.35, 37.82] + with shapefile.Reader("shapefiles/blockgroups") as sf: + # apply bbox filter + shaperecs = sf.shapeRecords(bbox=bbox) + # manually check bboxes + manual = shapefile.ShapeRecords() + for shaperec in sf.iterShapeRecords(): + if shapefile.bbox_overlap(shaperec.shape.bbox, bbox): + manual.append(shaperec) + # compare + assert len(shaperecs) == len(manual) + # check that they line up + for shaperec,man in zip(shaperecs,manual): + # oids + assert shaperec.shape.oid == shaperec.record.oid + # same shape as manual + assert shaperec.shape.oid == man.shape.oid + assert shaperec.shape.__geo_interface__ == man.shape.__geo_interface__ + # same record as manual + assert shaperec.record.oid == man.record.oid + assert shaperec.record == man.record + + +def test_bboxfilter_itershaperecords(): + """ + Assert that applying the bbox filter to iterShapeRecords() correctly ignores shapes + that fall outside, and returns those that fall inside. + """ + bbox = [-122.4, 37.8, -122.35, 37.82] + with shapefile.Reader("shapefiles/blockgroups") as sf: + # apply bbox filter + shaperecs = list(sf.iterShapeRecords(bbox=bbox)) + # manually check bboxes + manual = shapefile.ShapeRecords() + for shaperec in sf.iterShapeRecords(): + if shapefile.bbox_overlap(shaperec.shape.bbox, bbox): + manual.append(shaperec) + # compare + assert len(shaperecs) == len(manual) + # check that they line up + for shaperec,man in zip(shaperecs,manual): + # oids + assert shaperec.shape.oid == shaperec.record.oid + # same shape as manual + assert shaperec.shape.oid == man.shape.oid + assert shaperec.shape.__geo_interface__ == man.shape.__geo_interface__ + # same record as manual + assert shaperec.record.oid == man.record.oid + assert shaperec.record == man.record + + def test_shaperecords_shaperecord(): """ Assert that shapeRecords returns a list of From 29b3e085704f7cd19d85d929a4b4a3f333043be8 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Fri, 10 Sep 2021 12:29:00 +0200 Subject: [PATCH 080/235] Fix dbf writing error when the number of record list or dict entries didn't match the number of fields Previously it didn't check that the record and field lengths matched and just kept writing the next record on a previous record. Now fill any missing values with blanks. --- shapefile.py | 7 +++- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes test_shapefile.py | 58 ++++++++++++++++++++++++++++++ 15 files changed, 64 insertions(+), 1 deletion(-) diff --git a/shapefile.py b/shapefile.py index bba17e7..b310ab9 100644 --- a/shapefile.py +++ b/shapefile.py @@ -2068,8 +2068,11 @@ def record(self, *recordList, **recordDict): if self.autoBalance and self.recNum > self.shpNum: self.balance() + fieldCount = sum((1 for field in self.fields if field[0] != 'DeletionFlag')) if recordList: record = list(recordList) + while len(record) < fieldCount: + record.append("") elif recordDict: record = [] for field in self.fields: @@ -2081,9 +2084,11 @@ def record(self, *recordList, **recordDict): record.append("") else: record.append(val) + else: + record.append("") # need empty value for missing dict entries else: # Blank fields for empty record - record = ["" for field in self.fields if field[0] != 'DeletionFlag'] + record = ["" for _ in range(fieldCount)] self.__dbfRecord(record) def __dbfRecord(self, record): diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index 30b6d4c79cffc6e426e71700fc5d426642f837de..5106b233c702b82062fd94d5044d008c0323c9ca 100644 GIT binary patch delta 13 UcmZ3&wuFs^xssD>BZ~qv02cQGzyJUM delta 13 UcmZ3&wuFs^xssE4BZ~qv02b5&xc~qF diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index 86296302004831280db5ea88dae2e3b04cbed3a2..f87e9166d25768318fad78d39e7d68bcea9da926 100644 GIT binary patch delta 10 RcmZ>CWMQu4CWMQu4WS+=k3jhik0pS1u diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index 216bd4ef6d35e33d75dcb8958a716c938bbdc6f4..effd19aa4777b9fc65a2593d07dda36f520bd44a 100644 GIT binary patch delta 12 TcmZo>YGz_#uH@vJ$nqZm5s(8i delta 12 TcmZo>YGz_#uHCWMQu4CWMQu4WS+=k3jhik0pS1u diff --git a/shapefiles/test/point.dbf b/shapefiles/test/point.dbf index cbc654d1b63e769bb6d899df369e1fb43cffcb6d..f2499e7f5daaa485ab6635f077556938436de11e 100644 GIT binary patch delta 10 RcmXRZVPUT1CWMQu4CWMQu4WS+=k3jhik0pS1u diff --git a/shapefiles/test/testfile.dbf b/shapefiles/test/testfile.dbf index 86296302004831280db5ea88dae2e3b04cbed3a2..f87e9166d25768318fad78d39e7d68bcea9da926 100644 GIT binary patch delta 10 RcmZ>CWMQu4CWMQu4WS+=k3jhik0pS1u diff --git a/test_shapefile.py b/test_shapefile.py index e8d10d1..6216ed8 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -844,6 +844,64 @@ def test_write_shapefile_extension_ignored(tmpdir): assert not os.path.exists(basepath + ext) +def test_write_record(tmpdir): + """ + Test that .record() correctly writes a record using either a list of *args + or a dict of **kwargs. + """ + filename = tmpdir.join("test.shp").strpath + with shapefile.Writer(filename) as writer: + writer.autoBalance = True + + writer.field('one', 'C') # many under length limit + writer.field('two', 'C') # 1 under length limit + writer.field('three', 'C') # at length limit + writer.field('four', 'C') # 1 over length limit + + values = ['one','two','three','four'] + writer.record(*values) + writer.record(*values) + + valuedict = dict(zip(values, values)) + writer.record(**valuedict) + writer.record(**valuedict) + + with shapefile.Reader(filename) as reader: + for record in reader.iterRecords(): + assert record == values + + +def test_write_partial_record(tmpdir): + """ + Test that .record() correctly writes a partial record (given only some of the values) + using either a list of *args or a dict of **kwargs. Should fill in the gaps. + """ + filename = tmpdir.join("test.shp").strpath + with shapefile.Writer(filename) as writer: + writer.autoBalance = True + + writer.field('one', 'C') # many under length limit + writer.field('two', 'C') # 1 under length limit + writer.field('three', 'C') # at length limit + writer.field('four', 'C') # 1 over length limit + + values = ['one','two'] + writer.record(*values) + writer.record(*values) + + valuedict = dict(zip(values, values)) + writer.record(**valuedict) + writer.record(**valuedict) + + with shapefile.Reader(filename) as reader: + expected = list(values) + expected.extend(['','']) + for record in reader.iterRecords(): + assert record == expected + + assert len(reader.records()) == 4 + + def test_write_geojson(tmpdir): """ Assert that the output of geo interface can be written to json. From ea4578e7193044c5590fcd90a3f38b44d6903d6e Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Sun, 12 Sep 2021 22:05:06 +0200 Subject: [PATCH 081/235] Basic support for reading from zipfiles --- shapefile.py | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/shapefile.py b/shapefile.py index b310ab9..f5c72d6 100644 --- a/shapefile.py +++ b/shapefile.py @@ -17,6 +17,7 @@ import logging import io from datetime import date +import zipfile # Module settings @@ -918,8 +919,44 @@ def __init__(self, *args, **kwargs): # See if a shapefile name was passed as the first argument if len(args) > 0: if is_string(args[0]): - self.load(args[0]) - return + path = args[0] + if '.zip' in path: + # Shapefile is inside a zipfile + if path.count('.zip') > 1: + # Multiple nested zipfiles + raise ShapefileException('Reading from multiple nested zipfiles is not supported: %s' % args[0]) + # Open the zipfile archive + if path.endswith('.zip'): + # Only the zipfile path is given + # Inspect zipfile contents to find the full shapefile path + archive = zipfile.ZipFile(path, 'r') + shapefiles = [name + for name in archive.namelist() + if name.endswith('.shp')] + # The zipfile must contain exactly one shapefile + if len(shapefiles) == 0: + raise ShapefileException('Zipfile does not contain any shapefiles') + elif len(shapefiles) == 1: + shapefile = shapefiles[0] + else: + raise ShapefileException('Zipfile contains more than one shapefile: %s. Please specify the full \ + path to the shapefile you would like to open.' % shapefiles ) + else: + # Full shapefile path is given + zpath,shapefile = path[:path.find('.zip')+4], path[path.find('.zip')+4+1:] + archive = zipfile.ZipFile(zpath, 'r') + # Try to extract file-like objects from zipfile + shapefile = os.path.splitext(shapefile)[0] # root shapefile name + try: self.shp = archive.open(shapefile+'.shp') + except: pass + try: self.shx = archive.open(shapefile+'.shx') + except: pass + try: self.dbf = archive.open(shapefile+'.dbf') + except: pass + else: + # Normal path + self.load(path) + return # Otherwise, load from separate shp/shx/dbf args (must be file-like) if "shp" in kwargs.keys(): if hasattr(kwargs["shp"], "read"): From 392ecd525a51bec33d28d3e91837e4f63e6962ca Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 13 Sep 2021 11:32:17 +0200 Subject: [PATCH 082/235] Basic support for reading from urls --- shapefile.py | 63 +++++++++++++++++++--- shapefiles/blockgroups.zip | Bin 0 -> 153734 bytes shapefiles/blockgroups_multishapefile.zip | Bin 0 -> 307456 bytes test_shapefile.py | 59 ++++++++++++++++++++ 4 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 shapefiles/blockgroups.zip create mode 100644 shapefiles/blockgroups_multishapefile.zip diff --git a/shapefile.py b/shapefile.py index f5c72d6..cbb8de1 100644 --- a/shapefile.py +++ b/shapefile.py @@ -78,9 +78,23 @@ if PYTHON3: xrange = range izip = zip + + from urllib.parse import urlparse, urlunparse + from urllib.request import build_opener, install_opener, urlretrieve + opener = build_opener() + opener.addheaders = [('User-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36')] + install_opener(opener) + else: from itertools import izip + from urlparse import urlparse, urlunparse + from urllib import urlretrieve + from urllib2 import build_opener, install_opener + opener = build_opener() + opener.addheaders = [('User-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36')] + install_opener(opener) + # Helpers @@ -925,11 +939,26 @@ def __init__(self, *args, **kwargs): if path.count('.zip') > 1: # Multiple nested zipfiles raise ShapefileException('Reading from multiple nested zipfiles is not supported: %s' % args[0]) - # Open the zipfile archive + # Split into zipfile and shapefile paths if path.endswith('.zip'): + zpath = path + shapefile = None + else: + zpath = path[:path.find('.zip')+4] + shapefile = path[path.find('.zip')+4+1:] + # Handle url inputs + if zpath.startswith('http'): + # Shapefile is from a url + # Download to a temporary url and treat as normal zipfile + dpath, headers = urlretrieve(zpath) + src,dst = dpath, dpath+'.zip' + os.rename(src, dst) + zpath = dst + # Open the zipfile archive + archive = zipfile.ZipFile(zpath, 'r') + if not shapefile: # Only the zipfile path is given # Inspect zipfile contents to find the full shapefile path - archive = zipfile.ZipFile(path, 'r') shapefiles = [name for name in archive.namelist() if name.endswith('.shp')] @@ -941,10 +970,6 @@ def __init__(self, *args, **kwargs): else: raise ShapefileException('Zipfile contains more than one shapefile: %s. Please specify the full \ path to the shapefile you would like to open.' % shapefiles ) - else: - # Full shapefile path is given - zpath,shapefile = path[:path.find('.zip')+4], path[path.find('.zip')+4+1:] - archive = zipfile.ZipFile(zpath, 'r') # Try to extract file-like objects from zipfile shapefile = os.path.splitext(shapefile)[0] # root shapefile name try: self.shp = archive.open(shapefile+'.shp') @@ -954,7 +979,31 @@ def __init__(self, *args, **kwargs): try: self.dbf = archive.open(shapefile+'.dbf') except: pass else: - # Normal path + # Direct path to a shapefile given + if path.startswith('http'): + # Shapefile is from a url + # Download each file to temporary path and treat as normal shapefile path + urlinfo = urlparse(path) + urlpath = urlinfo[2] + urlpath,_ = os.path.splitext(urlpath) + shapefile = os.path.basename(urlpath) + dst = None + for ext in ['.shp','.shx','.dbf']: + try: + _urlinfo = list(urlinfo) + _urlinfo[2] = urlpath+ext + _path = urlunparse(_urlinfo) + dpath, headers = urlretrieve(_path) + dpathdir = os.path.dirname(dpath) + src,dst = dpath, os.path.join(dpathdir, shapefile+ext) + os.rename(src,dst) + except: + pass + if dst: + path = os.path.splitext(dst)[0] + else: + raise ShapefileException("No shp, shx, or dbf file found at url: %s" % path) + # Load and exit early self.load(path) return # Otherwise, load from separate shp/shx/dbf args (must be file-like) diff --git a/shapefiles/blockgroups.zip b/shapefiles/blockgroups.zip new file mode 100644 index 0000000000000000000000000000000000000000..7293c09bcf33b7c35097273f62ef3343648481f5 GIT binary patch literal 153734 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%0A;+VCwKR*wqy6Twa9tAa7_4 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%0A~3M^R-+_q(b8@Y88fSLzh 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

App&B}Rql_> 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 S|N1~wFpLCp!EOS*LjMP@@%r)r literal 0 HcmV?d00001 diff --git a/shapefiles/blockgroups_multishapefile.zip b/shapefiles/blockgroups_multishapefile.zip new file mode 100644 index 0000000000000000000000000000000000000000..085b2e493e8d2b9415c73fab2651c4aa504658c5 GIT binary patch literal 307456 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%0A;+VCwKR*wqy6Twa9tAa7_4 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%0A~3M^R-+_q(b8@Y88fSLzh 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

App&B}Rql_> z?(D9EQ9nHUXq(WVj>%#Og)6R<{Slt2T!c8it%$7FS>%=!4g>SLB>I~m8i&YkMkU-; zN&C2psgrgLrF=qQw)zddHRvf_?oelVOld-RtLLJQbH1tp@=fDGTT21yrwffa94wnq zNcK`duaOKZD8+g~XDgFvp8ti$eEA(4;kdWP{E)lf4A5I0kBRsT>4 zt*V0Rq~yPEf->K~x@c)n!_33VjOco*V&a7GfrOTemnO}JnUxLp_Nxr-7jh4(s`Efo z1h)3SU>i9Jl=DPcIX9Ne&8z|Xd~QcKax?SbSyMqC2E2nDN#E~Q-4V~>Ia+&l;QDV? zdv;(zp7&Rf(m&|$b*14sSIs@{;i+hMJD~lMOG*S`Jxl!&f%?9+mNiI6rK7D=M2$CT zk@_!m0w@1!!J3$(Z*_}jFv3;LBMe-ScM|>|p5yPl;;4GoS>7YQW$u3d5y+=@NHTC^ z{kV=&g8=?6?5FQFtu7PF!*RxH83ZE2Z2_(G5Lcg}RClQNXvQn*wlMzZ=M+MqJVC89 zz=wyM=D6vpXz3HoQ*aW;lH2Yua3JZv{1e!{VCMmGIm(hVH7m z^@2&1@{TIjNeIfm&Z#YA(vg5 zk8e;!W79SC>9J1I*5T^C<{RVV_b-n z=e}o$`AMa_2 zyjS!4+WEET8=0hM@olnaLXxdt6JXN^$lIm?aa`f9o5+r>b9?J81Uk-G`!P@4rT)M+ zT(pUJqJ$P~l%5eqT7zcDoCPhswZ8VY7pQpsLC0O>x`I}@?~y| z@2v0wwDrdLtF8TwrhRc(I}LwRT-_i}-Xqzp?^t}vzCix(D~vKvKwK&d4Ajj4`v0m} zmcLzcAoXGmSH}oZB8nSXlGMc3L=sp~v{R5#u%-XlE5T$W0MKMYCKIu#k!eVEIp|Xo zl-6!;yuM~UyLM=AzVFYzZ$Go&1@3uPxK8*^Qpe%c%)a01))C6wWmqy;zOW6y+(fmL zRU>yQsi}#d>FKZe+GOZ=j*}BR`wC5#BxR%gd%yj^t0W${GfeYJ=WS79ytS{ zIqm~fGB=C9umnrW?!G)P!o%f^2sd=}Z+MS?@bHe4_nqFlc7{Y`qxkZKJGc5(3DfAY zb$(ghS_h9W;PLI$#x&4D;c*|^SN*Oxw0>$h+pTw6c(3X&9ak-U4@P9{GL_#v-!Lsg z*mdI}{Ll!nQE;%fforAja?Wc%nh2fl=?`5n>3a=g=Os5FGx!|nH^VN0)c!0z5%jOk zxdPXams{V#)}zz)9>BG|qp%6W=IR}5*~>-w+8(F$hHihn)tA;EAivHs^a_YkNtJj2 z!OtdsYuYjL{wLgH5+}Z!Xk1Ht&|fBbRm%zg@hYFoWe1vP5x$PQMyHH}T%|%&GqWQ1#Yv zP5$5exPX8`s31u0r3i=!s0c`Hq5{&=9ZKiu-bM&02vZOzty0q6F_4zd5rd7+1vzTl zm-pxQ*YE%PaX%h+oO7=0I_G&E%g}W;_qMbeR`&xsRkuy5F6X(4tDf!FaMy)BT8#+N-7Ai;RxJ29>eb|tSRpKa`Gl?8tNNy=+p?nE6 zLacQRrMSZlUqEg33S<0!Q3kn*IhS|Hb;<3IJvBRw1w`f-Q`|p^JxBgWYzraoj&T=s zw99yaLS8D29sG3;rhwg-pRl%V$EJPGxB~PDE$=ogH~eDX8%Q+51*xdnpxnEWF%clp zDO8#*J-|%z>v6*N*DpL+ML(IS&-4J(bN_Z_&$gvC@=iO?8ke{{ophkbfj!gn`OvYr zK;oY=5mZLI*m~(zO}dy8#SnQe1>4t$AEOMYZ6}JTh?4HDg!A~5ZQ{AbY#B~lM2ksW zkuS=(v+TnYkcA{1n{h4Y^`E$^WfxkcaI?D=LbFd9$tp4(wU^SE?D;_ z+}@K13KF@!%HVTbinM7UaacB;Rl0}VhMkfjxeBW9;VfFNKSBAn)jJ$KF#s=VcNf;= zw&FQQX_kD-yq^J*ILI5x2Jma9&xuTktm=8gvcOmeYulkCIuy+MogRqubRE0+=(^`o z<)^{f$oSH9SLsU%b^VKtvJHm&k^f2(K>A}dRBOxEmPI1IQskcPKFlg^Wmw>PrJSw- ze*UThr&o_ zIfoMVvdh~00GzjP3^zWt=h)3`vYqvy$ujpHkK5v5hu*W3G#P%-ApRtUO}%Wc>G1a> zVn)6XcTA+Kn8f*u6NGrt$$zxP(k^~TQEV``B5QP*zUs5OpQpJP1L?f;M(2aa8nnWG zaGxueWM-s`=7NZ%6e*B?$kgPlgGT6HMAwZaA9sJL#s|*ei8OPqPbjXfVRIT5)Lbi$ zcDmGN!VyI5;~J0nR3kT$ws~Es%8!K?BHr`;IEIwV^^IDVDb#@oC$Xel*v|V7XWU+} zS#@+}-XQa6XHfzps?H}eK1Qbh`qS>->QDZDCG#Nk%dOmDZS;P^^8&T*MnNoxx-ejT z-*3q2^MAm`ph3YUib_VF7(>ycjFUyCd*7+YR^hOl^ zU5})v!Y<&=l#nVlU^XUTK)_?(G4r}txw|vZ7NAaC)@S3SQmIEyjFEHN60BnZ&Potg z1W#?uP@KvQ@hEVowQ67|8&An0NPD>dsg)p(E)8Z%{9uxOHc$IrkRVfM9BEFG4&o)V z4&jJUj=pWIOfKwSy~7feDw&&qIH?l zI))6JUP6_52e+QKvFK-o=?F=kp58jIBw+++upXs^dm{75z!vGv=$y>(r|*A>Zl&sw zPkGO8xa`p!cS|2q46ZnuAl^zK z{*}$(AG$esc)=V?MBF3(89o~1NYN&MyOcQ7PE^51houQ2rf(3;4W6eQ`urs}3XPqZb+A zmfj~)oB7HsS0dIMl_3~;7bxx+>Iaqfk9I~jJq8JI`jS!io!8dzmEFWMFO?0=8)#?3-e+Qe6$i4EeGdj zLaqlWgR@aB)cWH*xQ%$lm zNv_X)`=5HE6B+0YkSljd*%s}&Nqz=Sl$@P6ma=rA_uEHP4*c*@?w`in>iAlpVeY+y z+?uA1f-$#J_x$*{;jKAu+v?1EO7nJ0Fk5}=eONA$W%oZ+1*T^UH-tf@nDkkF$C#{c0d76ItvI&m)BW$iPSwdmp&g^8Mxcc7mSj5`Z;r`)v^OI!PNqhu_pK za^eZRFZ%^MbTz=@BLcT6)5E`GCt1)hv_&m`dtqH|K7a31c4pSev)H{5#Fz(?noV5cE}kIJRgAW>BD*HURmIYg0}kMUS6Tf92&$b1T%V47sLK&t3)_SLIR& zT)0>J*7oha6YsDNAp*95$a(Gt@frqIkSF(xQycS>bC1aOA`saq$!<1Fe6ClUY``%re|~TpR1&2aJqt%ThS?-M%EPAmcHiUhbo!UXx%GQ1nc{a###y zY+ZUCKTE`MRA%+v^rts+8%`ls|(Ewww*I3N|af?{Jn*mIs-ZsrvZFeo7?T%CJvwqrGU3Z_S zSUVh0Pb?*W3?)W7qcUg0B8^>!0eI&IA&y3MPUkgnK-nr7BPnzB2Wwdl1&8!04T z;u=Wa0Ygt>g$LlY$SG5HXutA~H-TTUWH8l3?s5Y9_pKF+x0@lrM;{{S=MGC2%URPy z2_b5X#3GM=L{3=85tRQeUKLDz|E4CWe)j);TEBB(xqj8E{%?@J22ryEo|!{%ap@d#VOpaQVB!sX*X++< zm9;>IyT5+PB`!03A|8@4u(SFgPCHU@{(43P^?bwj8Yp{e@hI+VBp12gvmt;Q?ZEIv? za1siakT^dOveU7*PM-o!pFX~$>w9ib4DCtWV8bR(ZXR{g{euqy>G@wpv+s;xJNqQD zzy2}v{b|Nqad~`7B*pt_*ECZsWj|N8x+T&^j0%9 zOTx)AvKBJAZxgMFtyaPs?exaxz!nydliJCYGHiXs%$#I9IP~1;dpLs2*+uaug>S;q zgT7uhetSG?JkT_)J~`5z2~jshuVZfaOKo`lnLoGQH7M1s_fl}?_r7ocfovJ3p=1_m zWYe*hn5QTeiiC#eV?I)iIMKTke?9Gc9c&IIMWx!{D0`?8J<24#qKxY}2a}oV*WN!1 zcm}@CQK{f^=Mn4izm#zK$+n)!xJcgiG}gd?lelyFBY<56ce6y`><=BRlGRC&7uNrw zn03o#`I6>?8Yc8%-P*b;7T}m}8^13mRx1scPh>HY;@@xMQuw=z9yKUe{i8${#Ddkr z%Z7DB%3>_1S@f*FO5A4{5FRqA^e@-gpNM>0p)U?N5<%n1>__xi~RJxM*qk_BIOXw#~)smS9@Ld zuG;VbzKU??`8YCnt|~Oj`pVQ#mJSP86(0-mId-s9)UW+h5uEiSE#?8YkK>i&z7|MD zNLvPIs(Jg$LR~f4b*Y|5*i0)q2UUy-;3-M!7HbCCa<*WQ{>EcfG(6n?taPrxkYBI; zBRU~G^^vn>ufnmlUHow`+pWDjijw#;!62Dn`FQwZ%B8(!2Dr|G8Uf6eqj1g?c$N9_ z@zp%zhxHlCk!jx+TuIdeDK-s|%lURST(27+`5<8!DCO7Pa?G3qCS62!f1^2AhRidjKDpL zIv?=$6x~L&^bYUh4=IV)59?A6uk7uwNqn~ygh(H}**;m}6c5rbYV**^#puI1UbMSf zJu1=ITpmls@iIX-GC~n!)^P);k= z{D?(}c?>hX-}WyG_x8LlH32F`(IbhOv0=K$%Lyio-C=-lmO4eH*`muG{FG_QGa6GumslvRI;s_iOK4bUs{2Jiv^{_tE;h>U&ovtCpq|?kX{c+MfC*^5lo|iZCVNazz z?7AZ7rmYN~UO11`>MDkhA$fY5)z=McGMkA9q8-Nxy&B92oGi@1 z-zLr|d9Jh%X|N$J=(8tXGsAT76kj6u^FWmt;vCk!h(SRRZ%e{2NfCW8gz>Sq1krxJ zH(BuVk<^zb@%QaD)#4boOMSRslkMNoa6AuK%`}f`*K!%&tcg7E!*;h_XQ?V@ZSY`!IZ*75)=12_E_UJ$V$QO!^-J(C3a_I~E6sF_5XU6d3~Nyt zP`Mp45D=EXZsFleqd>`x489ZC9&q@#%BI1J7IXY;UG;);`t|!Ago<5ga_|VTxbNSh z^r#4NvhS615r5+u>GGZykLX1k!Zt2ACanKrxAjhj@usVI22C7Y0&f|YGVbbCXRhZA z3XZ?xWcub#1K@!8OO6Fod{kPrN5n#m5_T-{6G$AzYwgDtTe7a zTpGK>0Zm8$Drx&slI$SYq!BVWp6ax2v3NZbLk&DQt++VR~3@FZ~ z_S|sW%qi75avMB7fgK1u#LY~TggBYn99tl!r7D~lF69R+ zbfKPVHjh@R!3Y)2TgRi@t1R7Ew*Feqw`edgui>cd?=c{wDudR}RV&MlY?aMJIi}Wk zN;tnzn-|+q)r);C#q9{VB~gxP23__#iqiK_tWY(3D2ZJB8A&|7(z4`12BpilQX$AIm`g2SFe zTF1$Sro;n;#@zYtGvKm2z*UQuk)Ne%lW_{bWBu;B$M=b6g*+x9=)+;730Ov+Z#G5L zZ-E%G^j2f``DM@@CJiS1)RR^Xec~^)rOw7llT6)^5j~+IaLj}0IQrjRIJZHj|HxBe zVy`TJBj}G}rkAr%dn-%#5v+}Y{Zd3tWRewyfiP16?7e<&Ry0kK@5^_$yKaV>!UZXp zL@arahewJeSSQw2 z)E;GTKv=WFimE++`gc|ha+X7?EL~T(&)qTn0-16O8d+18F5|S&z|}?~y3Ijw?-U1E z)!8Go{n`Z)Z0Dh74SsY>?ltFRw$ieFpr*#bvne@0faX9CZsjt_nJvi{0N#Xv6wq;iX7`{kFb zV4~lis!pzY9Z&#=^-sQ8EfYTY?)7Zc(`>@!1SR&I=er>xYyXV_cF(dT@(-{tnnKM; znZPnjn#rC>Cc*fgFJ+bwVDagA;n=nXiO6pSz>a_%%iMMFvBH1}J+K~EF(^;$5OeqM zCwV=EShGiHIVs(7Yw;SstS+-~ES1^~C;03_9=GaruLBJ1v{H&wLy_Xh?sWRwcSPe> zbjrl_9*xViD8oOhTdHm|W!yeB%uy`oPbJX|dzi@`r}DJSJ(!K%IVys{nvEkT-~aQ? ziZI7;qugZzr`x**ABfMcmR3Kz_Q?E8tdVQ z9YIi~)J|P8|NJjO{?bCSOSa~=JOcB;^=+dGGRVro%9l2DSYTNehjG&-;k`bLIqpz2 z&!h_Nldf+-Dq5>Qu#0crb!?(F1Ek6Ctyjz^9-PiClT^a8#2;(>TpEA&lk$eUrA4am zD;jxec)#qcidTE-O|b+wI@a@}2T=!~Ev(w5Ta9%-(+St`)+4$h2H6B1tCGWQ z#AY|>bc)`Axi8@@);q+_Fd?RI7v%suRn$G+*t3_z=}ppX=nZ3dQ4T_A5O-j6Es!wq z;dc~vD?~f!bN*3>R{mjEwgbh>-^LrErlb5>_b}^49SR) zBfj13o~hLP>jBHgvm^UKLyCo?3I}{~Tnw#xX2j1&GOOFMiRV%C@vV|3Y5&SX+>UWy zZzi8PcLXR>UxzLZ%v`-oZ-{$V_e%Ic^|LUr5;7`nc5ys5V(zAgWBs|U`ov#_J)>^W zieoHx-@uo(U{?sKS6hqr0jtR+ORvd4SkqPP+s|f%dVtbSDI~TQDE6v5?VA1^q?Is5 zPzO$C#0@$R&1IO`j9pb&D<*l)HWeqoZPI5X&d_w{O>m4){wl-;7=Gt`&M?KWwkb7VVh~js9I$O@t z^+nwGBZGzeVDFtou?2qMg?8+rm$X$R`)pa6W;&i@@;-S|({}maFKk=_0IWCQsLV{S z>X>mpeXW?!+(QR#w;tQ)-o~TSC^{E`+5y{TvjQo0dx^5_L%4lValh?5 ze$joC)Sg)dj`a#T_-at`FpAcJJ0%o;x!+H*el%U{y2#NZ15wOV8if;Igbcfe9ElGT zbgy0kh&BB0M{VI7$AyC`Z7UY2&(`6K#E|)-UspBSxqV7OKMzD!e8W4?gP9{{_fc#X z@Yh-C?=^-)4nX7KdueZdj0c_(3(^{y{{UB2?aJ1|{9BS>hO z_zUp++Tf;;LkBcsm~^c~!xaw|QCGj1=v*^KCExx-O$v@&a1AfJQwCNWIAgU`cdT4? z;{AZZO1t8>p67h+%MR4;EPKXc7VCAxd9O++&>upG+N$Ye*%5WRIEwzZ=sTQa`j6{C zT@{utTD~;p&E6XDD#C&8`*0!u)p{2goc1z5qd(`)ascfFbK)sX=| z|JX~{Hy<|dvxne|k)FM;)G(hYN{Gqu`L9`C?6wcAVK2-a<$emxU~-{T`UjGjGcuDD z?{zD{EjO(Y@oGa}I)3DkD-&)rXMNxl&nj*GWCU^Gma@NL-``f^roB3L?g^9WfFFIA zL4Ja3(!u(U{T+m-xjk5B;@4`@<;3aXm3(_2PrJ@XyBn{!6&CsHYH3e+dsZOSNfQHewFUWmCx-+R|Fwz&ah+{;@)% zz1p|_a`WBZBKi_p|0cWlJC_#DUQ2~G<$w=Ds)Kp27|A}_EMTlxu36_xZGi>^S^XBQ`4Zo#kj$CicF9aDC2G?{4eDj;r^G=?GiNY>Zwk#=~nK2ZUo zq)0vszuNK8Qs=!_$=!@!M>Ag%L*^PcH?c`NFhS1n{k$o~)Ff*^=>Ey@Asy&?+baD% z15Q}!{eXL!Q%~+peK?|v!n3U#6^VSKA@>~qJ{=mH@?~)AL+A4lB5VH8CN?Lu0_ReP zzD$91(Z>+zWX)6l{(Z?Ri(zlYf$hkLg^N0^9RK;Yk6IvdDQ}8yR{Ok2%yDx;ME|yI zURavZD|;r-4XWtAzqhpiW7wyZu|5+U{Neu>qCv=guSFb!%sFMM54x5n=2o4Nvbz|5 zD@~hhqCX11Hy8*l1r7RmU>eBl6dHJTAoRgYK3G|S)n5lw?Rq{R?Wc~NyuX5-MYp=v z#}5pWz}9V%E}L3+LoiFxbv!f63(NC~A0-kLrHg4pi`Ism8?cY-xcD~RzPc-amWW4T zj!(r3BQqr9`IA~pmKDo9q__$6x~@*4!!-}pzJ>?<_bh)GfH~f=T*^;z#E)kNMaP)l zSCpWZ&^|}%bjb;pA8v#gSGLWNRUS-U24A%vOX;>%g|E$h5{2e9BtefA#wEk2?{}M= z$vr2u_FrC#%D87|+y<=5fKU9~8*7};uMs+Xb_S?vw>AT~s9TuH&lRQQ5MFx7hB~wO zJ6ViHEv!>6kvQu??PTWCvOucso2}*H$Zp+>l@_EFh-p|g_aMJ8r^b6p?jE^VFLr14 z(lG@C5_s8~jj(XXCh0}6DJ6|j&Fa(b;iDTpuX_+*EgQ_oP1O+R1g)4uR0PkN;`o>V z^~438{Mb`j+cb|R5MQRDM(`tY(!Yjn@H@R?56bA9=!;UGV~vD5fB8ld7aee9gRZzLu_zxJNh^yN}&K20qea`#l z;XW!cnZGE@!ExJC;>H&EdJFG{Rqw%VxRBJ1WkEN)y-4|++xw#SYP|`*&GqSG@`#Wj z?LB<4m8p?Wo8K$4TxM^X3oMAYYxUc@L{g0Bq`{xemkd$yw}IbA+6{)k#|C>-3++m_ zUhTm=j-|O9=`~eX`#`e_mD|ulQciTt*n`$s_mTWfZem%{WNTvUE&GhRZAH99{f=8a z>g!3Y;^T?cJgcuypJcIywtABP9ZH~vEnq(6p+is|D;nx~_7}%mr-O!iops{?b#OG) zn><7|#S^??Kj6aA^ysE3dRc5XZ4W(!(+UI*7w5^@P|_0MGn3e^bzgze-&*Fj(F$&u+!D;)|B{E znzSWQD%@4op~A(e#o#(zw$`YXhzc^5N#nz&MvlYZD(Km2wj@+%npxX_rSO(Nm?P>Z zYzvidA-+pGgS&lf)Vv@3;LmT#FwPkKcWbW*@4nk2QJUYtzkaBil!_frI#rq;IG|6J zP7?IHX|D^KFg&0GGdk!vhp$+AfEyIoLOeos5(qQ9{`=5Ha`#y>%J?Yj`a^{6;`J;G zzedT7Wp-)h=_>`iJ|W{S_8pN4HVDhU8skV1>p{bvM}2W+@;=D4IRTHddd20{Y;~<& zPEFhm=>UGd&KI+dtbn3X0`~Qz*SNRF)vt2+0#cr5Ed|CIU+fhCXHKa!KyvHnM9E-r zoI66^;iP^=6j~(Gcc!yMp7%BC^eXd{?K}Kvi?}rxd6r3hbWf3B|FtE4Nbb*pf9M@r z|MNuKmyXI?$>5Z7DP$q64V86#$`0QSME4xhg8`{%CfM?ytWMq=K1S8b6H%vX%A-2X z8KJHFC!KR$bAxA5BpwM?Lnm?l0iDrqQ$=a(U;8~hjAEZs#7CXSPWlcl2P+@Do@x!n zj(fn3)fS>^PNnIZaqkJ+qW6QgDHDA;n8)$W-qIf8fktm(bf@v(^45wSpf;ybvYX~7 z!GoaFG&m!QU_qt60@ZyHS-MeSEHG4a74UXI#F_Umx#LOX?CS)2HnmN*y-~^$F<`WxmKOdb;&G(1%P<+?;;}%`z3DQUF?6xomhrd#miq!^{@Cx{PFjTE7cT5%ii^^?lVPG3p2r9CokUL%T|oS%&`cT?)X`%$ z>;Jg>shtIqV}i{xHyAUuKm!c@!{ZU4%NBU;CrWQk{FNL%;{}w1I;%J)V+rcGxQ`_| zKK4}FlJWUA0?O?03PTe=60FGnD4QXyBh?Nn=z+XD`NISXpgSJfPP`PWG~{cQsJ^Lm zp{wsnjW1LPb!wZDQcEvqQFMKOoDL_jyd`J1-nqq>@^bx(?2YBnU~RV5{#!7sLZ8=W z)K1}i6#=c2!iCp+f{{r&eB3m(;91#4mOxc}tXl1fq5a4HJBSN>Pc(_>;YJ6ny0$mB zI=ytg+wm8cBg)ONZv5{jQMiH0hf6AC@$fq|TSn|SBG$6?eMWlsL0fH)G&aTe#ieFy zk2~A@6Yzukt6t=RLm3nTjal^x8@>sQ2_!dYdZsKs?XpkkzmG5#AGcULNyqv`4;R3C z%S$yY79Mp&D1VP;E6*>iPb%{Nvjnf5-Q2@yM!?*Q_4^Y~H}^MF=0u?Cg&(CEN&RYv ztPBW=k8Y(*EYA=0YpwM-qHG!82r&~Z+*tCmBdbBXevxaaZfu=$WesPWM6$bqe3-3~ zto;3O$1RzLc|~O5XK${xGrmyJ2LggfW^cv(or8-z3+PV^ziT>e+JHY*;^w0pNIE{& zJL_Dg*>zhdj<6cp@YKjw@+UU)2LPc%?7Ve<%4SB+3;h$zvWbVv{9xjqJ=J}*k9>8p z$T$7DgF5Q`UxRQcPXVZXJ@?$>KVsB;|9-D@FRV)2Ta%8K;;!#0sFWx}imS(Tk{{v& zypW%_>8(Hp4JDdJ?qW6iy}!=`-Ubo~%g>fpXoX5yl$9%`@1M9wnibeD!epX6T7uU={#tMKXr` zJh#pzr&A@%DqHy&v{K1eo5jjET@=gB%;JJ_gOU$rZ#OS_@IUu6aMtzl{1Z%#A+$lJ z3eIy+M~~i1AD?`oxgFmQmQlq(#e;zBF9wP7*y~#y9%eQ&W*fBG0g#%_lPMm7vhaDs zd@<+CnJ+-vm*?!Xp!qc7lcG#Ih+cI_bCtmj1)1D07R8 zqeG`pyIKoPu5ScDhzzOO_iArHLHJrv4*2z5my-{!Hhe8UC~=aZVAJwZ;H0JP$T(D$ zH+iKC#dUnjY7JQ0y$`1bq6aUKFn2GzSINg2Q1Q-NRS;5-^Xj}nylX=yw_z=$U65El z{R`C_qb1T<5jEtGnw1qptSygbdK6t34B9`WX@#~O@?WI?$KOPz+M`OL&y_Bm!_=~3 zf!|6a_bDEubLZnyw{gj6`8MG_3sceyBo8w8#Bk1orow zNH-q|VrtRaoQTR-j6F?h)8n6veRruPoN(75bpP`E|0~TnCAPVKc4+t)-Sy^2^NvBu zmG|skZEQ@6LYerAuq{PbCR%8Cei#K2C^aklJ2YrHq z9|T#JaVx57?4_zA7{WrVc<^dR+0K#X>dS2*p{mjz2x~v9eSf0=-bIA-oqg|d`z!o~ zO5qz;`Ek+VV5TB*H=gjoExW2*T84J+%0Ixn+zes{Wd*;xH~qNHAY&&_rEGQ0H$XF1 zdy#x}Vo1KpzfOGqu}4jTWzm)9e`!{A)Z=E|xKv8vNpfo~F(VhZ2CXl0d^xBiFN#@x z0<@;Xx?WcJzFHv;k7}?UCPVo-iKqW4KJzQV*3&tcnvA9-1S^H@)Cx%r7QkJcw|o4` zy!I4GdlU>>tG4htF}5-c=~?~O{{-P<#b0Q1Pk;K|JGQ0wNZ!KUqHj`n<@MwTR?EM4 z?Z>FzC;TfMga-09m)4pqXP*}yMW1b=;p^W0tEv5pWvqqMYI)N-w;D~(OOGykmgY@w zd|P}$YB>!Ly9@#A;rnbwCgjps7W76hNBHXK8pC>rnC)QRJ$qid#A zQlZ^~sQe|qcU){fOqf2K;B)GV_wPlaqw@tKFfXS z8TXC4u=S;?I`(iLBOc18*zsC}2{n{>y)l`kdG>E0)Wgb9eh8;f*MY{YP@Ha4zYdZf zp1u&;7V6d+nEb?r$=BNv^ld4>JGQ&*Z%rHQ#M<4Ei+6^PhM7EA%8PA^Xp32YQ``l(7Ha| zTXyXNbt>9jqgqvap;+U_=7N$dvP{^LPDu*lXg4{ng139(1PKq$lVBdWXb|N=WxnQJ z;g=|WQSi}X`s?*8d;-aArHF=wwbM`AWic{*h9&Jmhxa_tm%*g!-UT6%G)&jq)l!C( z0fPziUZ}HJuDseUuG>#VN@Nh$Cw%4D)6Ai#TW~+R?W371{+dibd~UlvnIjp0z7O^T z&8hn0|0ao7{40_p9EW08e_d;_yVh{Sr|4`wSnzD0ofNFzZS;`Sf~B*nTZ{w$>o6v% zwB^i6W3N$$ zMFq17h4XDDns^3dc!ZtFwMuhS z=0jnkYsF+zgjsP%vdp*oc!Yd?PIkDb)7E>-d{VOAHHdKN#r=evjMfZ??mkh?IZYTYTck@IK2~37G5JzybNd(~ zKn)zDL$j{@FX}Quenpy#0aq|h#y@beB5$&@<}qK7ujwIQ<;-V$$e;GJBjGpXEXAZ}C7+e) zYKBi++ETIf)H~&9umjr*ppvZG)9px9mi`r^uKa6!Rn*Fzh2ikL(EC- zJ`&3wpe^$S!1_!QQRGTCRcFBAU-CRd$X?+rqX(!SvUn78!D3B6`G2gq0g1vE zX93;3c114#`K*M9)TL1JV*GM`TgUr*ir>#|El%ovU`hR;EWkyraSqdbr}H5J*)nuK zvDU24w~Lg1W#p_=uZTU0m}Bz**8|s2W47}rOc63~c_*S-3c`dfj8w8%3@GBl|w#3g3z%) zPT{I%R=UY`;L`@r6ya&{U*EG~R+IAm#~BXiLy}NoZlq*9rl6Y~%FjrIE?-n<#<<-J z|KcOn4fo25mz*D)bC-J#Kj=ojw3ZVv^qI^SUBO6sSCK2#5;^N!(ReS#j(ydyQ^(h{ zgRk-VZ+L!Jj%ijmmk4Dobc9@>2S9nr?$GU|cHiW+hvkfxf3JINmt@rbr{fhP^aJR= z!a|vR4>?@Lnz!RnaC$)6p*JPCoPv%v7Hg|cS6dhO+ZbrVL@y74j;Ltq)x}O9&2Pns z;uD983SofY8ESA8X%!haSmYv8&xeI_kUA)fB&K$Zd;_NFkG$oHZlbI6C@z#Ocj-`+Fs%_Tax`PcF3B7>qm&E}2Vo60fdWjUV5B$Sxz!0GD#LMb(;O_5F zN`z5kdj6h&e}KOUD#~^9n#)g%L;m{zE89Q%%a_A=3sro2z_Xe1ihAcbJd1B&v-rco z=4ADd7=yeMbD+{HB;lWx0xMd0%I-l%Os{0%Gy>24dG2@qQ=_Lwp$d;*OFxauy65%? zA+qTDhRiMwLj!$4QT+l4<4i#8orn6JoPYiQjKYn-=Cu_3bp6&j^=A3{*Q4r!Zk5Wi z{DBG3Sa9Y!&&APY>#CwrnI~50N>`=5Z?~mal=##Zs#KKM#^yb^+l4|_DVM6u(WPEZ zJ-B;yY3S0u)8AJ+>|&2!Dr|dr*sJ@cJ#gigH28g%vrCUkTbePa9|nDCxl&=`++_a$ zRq<`p(wLx&x(AFDCiQ&KLHdu3okE;IyxUh`eg>#TUnH0c!EtPU`qzE!}tOaY&-PTXBg3<#p` z?=F)2a2yu^HsMQOVc)tcScmNK>M`P(NABopR$b=3<2zO- zYSO~LdIc%CKgud+J+W`|rsjd?NQN_Pur00GY#_gBSt31{4aFS#1oKX2eo}&J^qAC`ca#U?Vsz7aWb{=mFF| zqGR2VTY5gjctS`V1trWtd^Q!5hZ>l~lA8-pleeu)vl=Lw2M&q5=6%z?W86+;+Gd;5 zDb=yKI0WA4j3pDcw01cdgPI6-7kR#TAm|!vi|RbC3%&xZd2_-w!`MIK>BBA2BTU-X zrLamGX^GP!slP(Qm(Z_}4k4@IuhK6(vd(6Sjnrw)ay50#!Z+Ad3bE@xE9=~!!3<{n z^G$EoLTjByCn23(W`W0+mTKOQ;Hb9vIjWy8Eg&BEGngiw-Pbiqv3_-bK0hnmxOBU& zRpv*68jwb3b7`aiVwLN5l=Wm^d=PV+kD*wN2E%`HUIop3594mGF`Ec(G|%c69n?zs zOXaBehISB$2QL47G)k{WHP5jW)rtER+)EDjjC@-&)0q|AB?V^A%K~lc$!~h=5SIe1 zCG-?60tU>r&-%@*6Yv+F?b&VGdj5crrY~Jses#7;`H0nZwsuuKe}M{x8-7;5uoN7> ztysz#6kTa^#+tl)uZ`M)1|_=!?$v(j{u*le8fe{Sv@8mJK30Xuv`lARNK2oL z#>?TMQ{EO|?t`HLPvQE3ydBHD{EWNx5j{Q%{L6<3a)4qbn&p$!e+~F=pFiE9E8tsN z&fNs=O3X_Htm_pd$WBVyjh0xbS%pGAm9Y{1F1HS~t^QAio#|tzz{_>t7e|TRtTo@F zddg=z&aCyxmMbUvllrjEQAY93^8pK8K+Ep18jPa5Cg$=uem}27#H7yr#oH&-xS-A= z?I6R|&;57nve3vS3MWZE5Hfl>4b6^$R|c=CmK^P&(eXTMHLas1pCMVh0Q z(~^G1y=yB}gB_f%iL~CnX2tP+MSEY1pQ`?E=_qZ^8eg`zrz^<#1o~e4YTA8N!L6CE z2>?V@_}8?i5la5?QLpK`iEX3fXtsM6zg^aAt36E3J;E2kGiewj4`w>kn5lMlui|HT z&dz}#;$9kF4_)<<1h&@}0V{3O)+v1ZV|{$Sz8`nNSR_&(t5lo!YA5yOm!iHNRNQfO zZVIAG`3~nL}K?1cXx19$5M-b#8my`t-YDhWxAX zjkNcJ+v5Br2Dil7{|F1(UE~aG&PjI1zjl0z=&jmtF$BxZnYSt z`#NRAG3j6XIj28JbibGJbN2~*Cmn}RP$-KmA4vaM%EfQ0^+n_$am4hc<27sTX{!P& zZ$f^?t91<)LcMosNCK-&`5X$gHI1{?*uiK7@vNokeK_dOv6v?pLJt z+j1#{dwf8L`ru#5#HW{x>T`$Kel$z;ff&na-la@2-WxaMU+v+Ex8}~iAx6s1&H2vF z`OnP(7F2JtW)E*XQ2}z=_~ZwQ(a`s$g+!fz>ERF`Yn-q8iR29{BahX9fzE)gKb9)7 z{>htNhlNp&lRIUCnD(kcop|?L78d+oZ7|1k-Erif+sA$XRk@w!&AT=JpmWnke2yeo ze1vaZ?sk(?+BBME#BE#^A2R2LvhhBaXa)m3)ef%m1qBzeh#T2FEemMh9VRrGM)JgP z24wq1iX23~@Lc?o!FqvXw)bn{Gzc&bjo1rO%o$=~B=(H!t{x25sb#wvJb-YKzwqtM zFTcT5*o;S4WDJF^PXi3NSt%i7`OjE*f_lb*V6jjy;4V6w8ZN?ZDm6dBA*yD}5 z>(fs7{eo8PZMtfv{0M6XRy}?e=nScM&^@vBHUyG0rBy_S4KY5;aihn~x0cU)5pVbv z33SF?7ml$D+Z_L@ge{OX3;;2hhg7Gu(wq+luU6&TQ2*-t7)LPPPKjAy4ABf)Y+zSF zH;^hEu^|0n&FrIb|9dAAdxrqe!?P-@kWA-KAD{D2bGWxT3!~NpaeF=UoG~lk#oP# zs(OsJM8%`$c7h~=zJJ$!ld!2jZz&k`RW^GcNYl~`Yq@OR8prK&4O;%lm#bxXIkc6f z4Ry6XtB?HlBA91P^UAZ9Ouq`b{VosJJL|)(F4D}fJ#Evu1^DwN6LmDrpU4R0m@ng* zxoag}#!1R*fDPijZik2^X?+zry81fR*gERw+yTeU`wI&I`^L7w=}GHMISXRmA! zF>*4X6(cdkoYw`I`|(i!IQwNC2WHwktu^wbk+R505NtHwg2z@HSr?upp+}DDOIIxa zkLCwwoUQtbjR-%s+_!jC5ch!9(DSRv%FAZau@y&#`>o{$;upPvk86+uGU)HV_5yuR z3jUNr1gsK+iNSlv5oe2No%IXFVce#y@vVI4EI2A8ZjIn$qu=V%xWnY5u6Cru`n!3f zG(tMoe?*Yao9l&~m=x)S6~P!6NWNrI3G;IZc?|JiGd8h@hPtPeDel)exB3sFYENcm ztX+Av0Zz#i)Jb?fBBpJq-P%#tn(u1EC}Qg2@D5P&4@02kC$&p01kPz6Xym8w zRJV^C!v=Yw|qX8aC0y(q}pY1y)p_DPEQ<^ zeR;^*=Tv?pv}0>Bj>*#|KE8YZ0dl&`tggKW$y}X&={qc+51k<1_4}yWy!?pQ#IWO4 z7fo^U^8>LO@VBN)+}rZ=kYDd&F>YZe$NU=Hi{+daknY^%uhxBcI2SPlLJC9yYGkIE` zVik_VW>fFL)T}JJPk6Bvg4VW+7rb1O$f6NOn4Wc`S;)JdT)CvP%hrlmd$omlh@6ZK|MXYP}2G3;W?BxJmLrT*T=hoF}plZ1f% zA8|c)3J&{v2^Tx&RsJ7O-yPM|7i_H}AksuYl&aE2nsf-+z#yUx9L&YanM_ROq1riuJ1{LTD#TZq+% z{=w?nh#=#w4s}XSze@IW%l+eq)I%Y?W9R-QAy|%v#I}yQ>-UQdRbnf|wunBl`?(~u zT&~OT2}Jo+q_YD@RWhIBGTVb*Miy}vV%}$U6HFxP=KljZ6`#WK_s>;Vgy|7lXGWv= zHfXtRrU6xP@I|7sb|7Ow;+`CQD6XCV!wXCXae1C&qxk{uQysFqzrd1p|Av)h*SmsZ zBd}H&T*xVu(lw8R>xHysp{=Qz&n48^i0Gy5^dt=z!dK+?7xMJv(0SLoRrhY_^8-~% zpp>VS&GV7R-lIfW*IV6MtLH0)i#Yh2p9KSpfRjr!-2Pj-5!WxC>|h4`D{GjaqDv!W z`d2U~>Hx?wd-{x%2gQ^)@M*_?)$b`l*_V{R*wku!PK*SI^lAw^Z2fuf8W_c>-NU;* zOuK4#&VUR!ysS%BvHE;}dYJr9Qn&QHrf<3ZWh~gt;!RET&;&AIpy;n{E$^yd_!NhB zig1_iv@f=ofC?70y5IHWae#kgR>neowLtcjc7HOHc@VgAf6BW zJknS&e^d5A)6M6u@7}_@6|-fIU-6GKsrY8MIg~(}N0|^;j0}&=d~0TAGq+F^I~MhV zPr=nhM&OH2O45f{R4y(u+M$yVHPOuriqv}-vw{cW?@0@)pAo&Ra%qMUM4s^-S|Np? zb9{G{19FF&3F`iM=SA^qy4RaThg|+(?}3S{ws6j(XAUC#p8D}`e*+8@_!=eJBur`Y zb=PD0I8nD;w+pNtPk;=cvD6P?`>n}V6Ih_ebYpw)p}%Xpjk%vbluDthG?2dfPeuC* z-Pup8%#eq!crSS9xY=NWvCCKs(n)7NTTZFIT7qS7Re36LR5|d+8ThKn=i%lVe%Dw0 zTo=I>1W&%+ymQF$GKbIX!cS6MU=4Q$y>uRF!@bUFPh99Z?bKrGIfxJFgPoHc3B0x zI)h+34Qj*v{zg_^PY!uJT4YNNkf z9WD&@T?cRZiE3K$C+Q(P;)~Vy$?oH6-#rjo$EyKUII-HL){866NgWhQ@>U;3yxvj4 z<{mf1PW1iA6E^!sYlNw}n`5WeUwVOEuk>&&PT=sQedsi&6&}SExX4KQv{btDL1VGe z%zrR^3wEEQwzCBRFIQLNLQT_K%teZ{U7cg4bAH@~h*Xzo<7OKoM?75)!ol)Z9OI~n8D zuExy;Prvr5=ESo-`~Gb}Pq~w4#DoO%k(IIk;bX-Qk&n!CXPW1-yq*+@VHvE;BkK1%zp0&`ebTf+Rls9N2Dxf-fn<*b8`!@9XBfzapydzoxNA41=mjPk!W!TUVclp^SVmXr|ck zhG_S~1G-}s)#id895+5oV5wpqlID+$M~5A&=rbu(38YrV73GaFM%k%$bY33}83&7-`{f(c(D|A1KA6q&Zn)>8I zXWjc(B06Yu0*XtvZ4XMs=j6mFrN4*(!CpL0#d`va2JAE*OP@l5L*YEu*yJK3cxwv6ldS=Ag9NmvmW$CxRj(B(0 z$RyN@vqx%$Nq8m_I?6Q>NyI;^Mh-PiW4{r}OuD7DcY7T=f3`t-m#2q{FdEUdfrA$& zS)gze3H=V1``QVDL#cFp?>W^DW$da&g{!xN2It85%3B$H9{`~T>(2Gwep7N}JK7Rj z+*BP1d2tk&5rjz;Jyq3xV6(EGn-aF0oB^zznK3Abe?~Y>FtAdeyKtwIz*f$(T zOA#*|#*3b-mwi`I)Ln9-Kx-2gkEgq8$KY|-SmX^3*GcCsMCHMK^T5j>3FAiz1ZDfh za%N>gFw!f6&@A@M4HV!!fmLnR8QcOw} zR~;P@z!Fw_@^l6e$mDFY^d|FEnM-YO$Ly8&iuTc-MqMIg>z6Y6;^)Q4foE7st|M=t zThkC0SVKSW?Ap+_&s3u|@9fslMbQ%-C5I`qu{{<#AY4ih$>?kHDN_*0g!`KVYcZqI zMS|!)#N|u*h4ISE3#DRw#H(LRUbR1`1Xsv2AlnjdjYy)<+@eqNQ{WsC3obDwwexO2 z;SSClAHshW^3;!sx+tEX8t30J})NKos0j$$PfXfOPd0gj5oc9w1 z!AEED-NF8*X(+m4HDCPi(a)*1R+=mr@NK)s)Q5Mpq~GaXbajJ`I^ekA*66}~P8N`> zGiU7`f9cvR0vqR+p{X2B^LX<}5C#JK_icRdXQ#*qZj0#ui~phW$A>7N6@O1VAV4?U zDi&#whSE0) zbie4E3l%Df72Rz5p|Uy342uzBb`!J`$i(>rIxEK1hK`1*184m0d!QO-^;0&=D!H}! ziT!GSyHU}tZ#*ZDP7cG;yEflNL2CUEk6(YI*w4AKwAY8nP+PAlN^812rNrj!L&iJ| zj2N31WqH)vfS8smz&f(-qb5Hoi(xp`qFIi4Yx{JACljq~qV`_;JSis3{^ZC+vV78= zv0L~u+ZjmTa$!IT;VX6W4^?0MtKlg&Qq2`@nEI?Qw8Q#`@4@J3uxWTz>`VCKXGw5! zcNidg{bH~?m=ZlqMfhEZi@A?s>jm1|wl2*14E1ymn00?txR~6htW=(duTdJLB7I3B z?!m9hN*;WiZjq*uVT|=&Yma8J5|HMZ(BCTzmqp7q49X6@_$7=Qb@?P)#hc)H73WoM zR`D_}`M=&HQ$c})4s!*xXPNsgr(CV>&?oMC`9x3FGrYl4T`tTQFu3N#>vHVXIcxZ? zGEaFivygF2K9QnE<kmprFS%cIU^%8-0D)|G1oWr5 zSUftgW~B&+`y%}aX`7ZEbNHOcUpG)H7R1jRHUV*sVE^_t zzW+_jBOT264BX;h-Shdl*D-x9UBa=};GnjNZ>sWR0_WM=&aq+vHCb`lRzv8n*Ut+R z=8~M**>z^*?&JCE09&_`>JzSF_E^l)`!6tgpNvV`^X(cf)FL^CRYJ{V=!_tb15tSI zkikctg!odqw(1{B{MKgmq>in4Y`@vu=~vw>pSdxbSKaquUw6iS`7JZcr%q~EI1ohG z6mdH}Lu?#Zs}SzRcYH1X6u+Z83xUPvzjJ=8+`WGnrs|u~ws!kJJ^)?=?)wO8(sgsOD^4w5YxHoV~InRS-bdygk!XZ)?4;1%xD8*J>?`^)_KivLN*DT}CjpjNlq0IGVDZ}9(fp@Q--{?&qx1<=I5--cikzO#Pj{{ z9r5-wa5X0Qp3P?m6A9yX4K2 zH+F}!B}iW4SYw)(c>Rq=^(t9Q`sut=$7I|x;@&B3TZ^`&Iq{TkUef#z!PylVb-4r- zEVDUuR?pmc*n5l;T)se@f>f^YmQLCUset~eY2nVeJHfn%)N(cJV{s=&`D0sV*>0u@ zMzCX|ukFtXxl$uln6h~b+RV%z!t;<&e&&KXe|4xN@Kp4EX85ST zD^#wPmPt=VYnv7ZNk$gz6*^+S0~)rS-?;Xi<%;nMp!>HH*P#XM{TwWYQ@-g>{T`g> zZ(ZGmv)hVaS=1zmHGwz3-Pa(Jc@Y&TuIWC~AkRmYiRjM2mRr?4!fe6z;P_QTkF6xr zb6LT+xf_h!ibbt{r&wfaY z4c$FRPqWkkrX?L}`;P1K{JC-eKWmGK;-E5}7JZe*>iNryiOC~@42R$J#Xw6mr)TEz zfZ6V-Ev+x+^B-z9Y#+dZfa~0H-m}+dr?e3`SreLo@-@Fy`<4SLhIYwI$th9hm$=s4 zTi$XVWSXR@Nk_}snIM)H^F5)w!fcKI?H-zs5g3qDV(BH7i{K)aG~(jHH&c^0 zx04f28K)N?V_zvRyF0_;xN`nAH82Bz;#J|zdzT!~s}&Ewe`R#qOQ;t>3gTZI@jajJ zb(fh^#Oj*}_Q`!Rj&TCLb+#AYEE0i$ZYy@+p2-(+F?+~MgkP1<3Zv%LOg??^DSdcD zs|E4Vn7`TRIAio60sA!Mk~Sa5z=c#z$74&L-)qlywT|`T)Zzen>(Y76pYXpQ#bEp8 z+2_;&o4%2M2#FNZvgWvcu7y6h4lnIaan1%*^3})u>MJ*quyP))`nN8`@>;S;_cv~Za$pot z`ZtDlz(|l*IKw~Ew&dd}g5izg%eZuWunxj;;BknpQ;k6*mKz}`^N7)R^7+8?W#Pof zAf#bm+kb%(~Ish_8z>y#$< zURhQ-js2gnBGd05w7UR84KT+0!i)vofYRGwKo(@Z}-jTaxbB#g(C;Ar+Kj zgulwBPO6xo(u`zG<6qO|zqkZ*17I2Uc(;Yag^@9f_LW+jJ*dgrxn`8rx3__FqleUA zWHaVisFyrYkc6Ln#Am$e(C;tSi_rv+ge;^5O!0X+^`69rU^A1#{2w zf6^CRRU3VY6H;Pr%;$JQvalj?Nzqk zmwtRXC}`YT&n-_<#&)B(J#>%kzI`+B=5%`>&fR!9RDU5ok4mk&_{P%BY2U?%Po}tB zO*MTl1)yT8e^QrLAd)@o$D#hFIqoOtBVkkf%A@t~EiEinmrqLwOv2}aWyrSU7UO=S zvr+J>E2`=q-#yetbG4fT+sxd_feV7^_T>ADn`cnH(L`0m6-cA9%Ujypvkr1fule9D zrs>36&NNwue{D;&TmI2o@zRt^OHjS){;c`LMF<%Dac2$*)7QvX3n+o67rU z%wO^cTXhAqZ98E48^6o)Z9uOb11^T`#V11^Ksjm-TtT~%$^OA|Gi&{u%-DS5%KaI5QD+vi;IR@@ebhJ+9AJFG&K^*EKLn z8=w!_A7&Y;;V$W=;aw{IE@k$(Dv$5?@h;KE2B4dYha(PL^-C7k;kKA-77aiD3G{I( z#bV|#Z(H&XDl?v}VckYCNm@Z5`R{Ag=V}d_R-07Hd0l3COJq#r5`@`eO=0H>w!tAt zJU%&e;L;+HHA$>Xx3!`b@j8$TBOBCxa^`Y3YRX3C6gbW37)gI+Oo}f5=-s}@@*_XQ z%j&nc4{^%9bKAwlutYO#1TF95hYh15%WqP}pJiQw@bR!a(Ex}j;sVbbgi~LQG2dPD z23lg@E86eLGWX#pscGa-G>4G~EMz^Rc$PO&2W9=T^#tq*`gSz*X1Pu__RFB-lJbBc zG(ZGHdQ>Wp+s~nHfhKhfG-M}C)j3bT@ze1{BU`YH2>j^ToR9zLuxLxg#{n4;(0pvz7>(1Mvv$&qtc*RZI3Tmz&YZg*v`KG$gU$}*zOkg@y`ThR+s-E{w4d=E;O z|6z{#7cFdfhUew8{k+nzSC(VnLNY+K8FNDQW;$skabt@@YCOVr*smfRO<(UYJr^+B zbj_kbrE1FYC&?5w0p&kTEdgsFE-&q-_}kJQlJu;2wwoi9j)Hs?#IT@$=eql%Eo(9~ z$Ka5AW+*z$W8uT=b--YDOmf{S}sX9V8a-Lhm3n z^2fVTMfvu>(s>mz>%Q8sic$9kxBwh7!NnJGHCLIb)N**=o_4q^H7`gw8*_U!`rF z!%Rz&xtFUN=1I<1BNw1pM2lJPhNh2xpTuSjJ;ID|5yue|&aZ3OpNrUe{CTTLnL z&=wAxRV#GL7esu7yivx_^ME|ckIcb$5RA9=9L6k`iEfFuW|tP<5L#MAHI3#N+8>GP zT%Zb%^QVGfyv43djJ{(D$ibcxyu)UTfzProBtP?Rz^E_!QYpS{wm~b~S<^6ssj<>= zqlB#>-p$)ySW{VVHdQY`R@7u{Ew-fL10W}5etei(j5673t6rU%8)lL@)+=)r3H$&! zRaW0OJ5Whljs52Gc|wR>I;2WT3p#vlZ=S-HGW@5=VnbC$ersyXx zeDpxCjY9H~h4{?fWc9bFo{Kp%IK8dJc`|;XUEgQJ?@l-oJj$F9kbQ#5h2Gt#wKrEM zs`k;w;?|Ih+sP=P3h@xI1&-EN?%&=|Kn0zU1wnVG=<&dCz|Wl{d1wAPz-ZS!rM_Kv zb!bncF21-Do(mPED1m5?YGCWD?+@-;-M9=fo`U4F<*cWOE||X6PL4QtxZ^Qc z0d?N4cGm`1Hif2w+D+et~>p%xCIg&7~V!2~rP33NMlBzZ;W~z~J2>^aGj*?ogbhCO4db^uc z=5fb3*(7iMkswZF;{|K>VNK%fp#M_8hfIOVJI}tyxzZhVX(y0Bs(-9zXv<;iMEA&Z z&xfA83w&e36(6leKXt4Z3$3(t0X&w^;K2_i9vo{n>m9GhsU3);0kU<;W?)@CKT^WO=6+teDHV#^@x?$36Xap}W zRXWsv-OCh*cHQ#Nzv$fj4Zl2n{QK4$jX%blb3OjtsU`dvuyr$RUUDPg0nWINumAKJ zb*QY0d4iJi=5`A4Q*rW17d|_%%6P=(S^&!D^>+dLhN;_GUotjdBV(3Gg;kGZY!}06obhgN?c*KRfq* z)gi=0b)A!ct8%?bKvHNU=!aTu;B=Q&x`c{YnbN{w+kECM=-g2gifA_&%7~0Tehs0DLO^ObLy zFLSS!7WnR}v^GexL+LR1xC_Le-hye>&CwL|fX}|wcHsccZJyU3@SW|;)(?jqzY`%d zp6R0G9Du!DxZy#PlKGluNqD4z4Se*<8*b1NV&X?(&rs@f0fRYVm(_T;U%% zGl;p-%%mc>z!sM|AC(!)Yp%O3YPUMXdTL>jV?B)z?tqS*x#fm*Vg>6Ox0s<{E|zK{ zc4)XWVnNxU{T+5;$4c5HN_fqhMkxn%zWJ@E>j8A&alUuik{}UeH^WN5E2&BKf&P_j zB~R&6Asx9$ej6uq1zG1`+$3B|E2#cvMupeMEr-zgC_OOt>J9NT9A+B3^pFQ6Fg-s-fK& zmtk9g*fk%cxz(%RELDi&P_zw=03M@%#YcdpH-7jg(~v2mr$b{@&t zOJZCUkY3;#N(Yt__QQ>@cmA}tD80epHbp=6U%Wf$9wq&Uy54K!a+C^W0+tsi#S+R| zpt|nK6B|iuxu<#P9GDoIDIfOsiUWUe!|T8v|2Im-*5Kc(45)Z0)4#)tFb7LS67?QT??#M2gjVZK=ipW;z)f96I@!S&Cd zX_jB)ZDqZ`l96G>l|s+mpd@E^uS$7A@TLCj102|%R$cjNHQ$4&TCu?*ZDoW ztjkJcKTwGYw{coX_yAV0>gs%%+JdFAC9Auc_Ht>N8ATf_6;pP&@-M$+ZNTUbVkv)o z&?|PnFc`*9P0Rfaz-D9JEJWYDq;>}>wwWIpT2I`M72{4b2G0ny zfDO|fNlmi$rl>l^V78D9yYLOd_SYF@CEDT}R#WG`-4dl`&-_hDB&;oQ;+-w{3MKP( z6U!sFdV>lionkcc>yMaU?V2aS9!P#BkXq$E8qRKk3}o5drX2O-Ga3WcvmmfkY()CzQGWPM6ig`?603a6*>HBi$p9;ijdhimE>&7|dcq-o85Rj~QBfDwI%bJ0 zi6JCxUhJT`-<$D8g9GOGCoQeK0N}X}$yi5>V0;l}wBIx#NA8I60 zZmnj`W25rGPvrl6F}pTSP0`yfl7%bWQK5R`x9J{Cy}|iBn-H7S*O0h%3Y_3n{F9Eq z`aw7l?B}$5X*pBF19D?ZaxEclD;5w_$@Smm^fw=EwbzgVbj$62@}l6M>StQCmEO`p zYjm|}i}iOszapzz!Yj?_&-?n%g*xeRAK*m4m!ev;*ioir@86aBc|2m2 zc`D4$U#)w)?UmPI%D(>cJw5R`4}J7*-215F!}^oenQ9jOT?rcAkGJZ3Sk5BQyy;F9 zE0cJzmj9^u!CJBVe4m>*<)WODgPPiMg^AqgGgXSqY+B3vnDe^9*EHGtF4V;w33#RMrf?nG0RW?@VbRbP3-^T@o*7;uVDh z=+<|<9l3{!ob5%Wjk`?s<~>^YB8Kok`OMwBG5)tpGw&aJaadtv&=iB1IlSx7y!j_` z&+(fLr=)l%`Rb8r+K*f&iTVUJ8!mJLI>bjczIc+yO2iqh0eMZJr?_*98&FOI^1YwZ zHDMMoXptcbpDsou%ExB__|8(j-aj*6b)(8!lB{8`9Vd@?ZCEPVIGu-C-zbkS`e-fu zJl6D4oM7L(l?uUr>xkyCGMhX1Xtd>Kx|^S~-Lc|%<$cqt5Epgds7?3{6n9~Qyl6sV zAzQ??i!~n=w8s#1s1D~bbRipg@Gi`CP$_~^9yHsBeGkS&ypoa>%fw%hkH3i|mg(Y2Skf0^7B!ZRF|3H*oOY{ z$?_xu{w1&lg4_pYdGcv1qHV7?Mr{(6dxU$`rh#6m`F3E@-jU{XMcnVik;*MW2;-}Q z^*mRQqh~PMk!g3aX~b3o-5!Ee@w@mJF#;e*5N}WOdbyd8oHU)?SgrU0djOOf6C{`w zIXpo=%+i6bK10?UBm2bF(1eSfw^?}l3%(QBuz9Qh4FYN#nM01G{61zjCqzTi(Ye?V z)W+1rO{Bx39&^7=i8p!Ar#~>>Y(52vW0zw70agLP!g2P8&5VoPMtqJ4q0GZy#xm6p z`TZ-^)=>}J3O`&pnP{erm6p&IZpG3m>>ND`K{D?7!=?RMR!9gxlZQf%PVl#9{41td zbbYd*AGE*8JzO9I?9$!d7c%!|x;f===c(ykAPj&^@KwcCSLA5d8= zwsL0b6_HH`Ph}nZg>XJ_4Y2DYy^~eBFKuhHynFH2dD!=@Z|s)Q$+cs*D*A;{9oAxl znh-U*HeLzw&Bgl}x0>DkSgJN|XDJQ+bl_V16zTJZ>9tO2;QgIn*&7=h2RxI{Z_I4D zshjblcYb9(QTggegOap>()?Tca=}6evnB~9od#40pMvU@;xmE*NN&K0KBEtnBZvlB zPsXKCyF1TrI>^Gt+z_-F))Yhwwv7~)+Z~?YEm%<6UeHNjefe3$$>7=zm1xhu*yL*^ z`)G11HX6143+1yj+vZQbDdUkz@k+bI?;Y#wEG#FFvvTq-WC;nf(-6t1}$1=Up zl=R!gZ`FUNnWla<%N>(K{^WNTlS(Tm;ieJF-D#_;kqyHK9|NDa>AzTGJ;IxB`bP)6 zM9$`E&z9*c2>StB@$qDu69>w4;ziR(-$NgkNwj5PP;1_z4AXg~mLy4Mp-K%?2Cno42;*rfqJA|$_%fiy!&{2F99=%w_ z?dCpWU}{X;P0-#V@`^2*Oq;jcW%+dAyRog&jovDFIq z+bJM~KTveb5NXGYvoHy9lj!=B652xgaW(ip_I1^?{^?_Dr%&Rk&awI?xJkDK$Sukt zec>Xzq|jP>Yt3w(%Mo5L`{1}qbkOi+x&$Pha#}#cx?RxM0Nc>5Ls$5X3))Kfc6SaO z=GFo_J4y}TL})k{J`L=qeHhU;)>Z+~Ia-QY(tYg3+m2;aKHr=^=UI_!?)G+^s-n!2 z8&&GkT1%cy%&-3YICpMOaId*kD>r8ZQ1TtDkieH9nH#F^pKs?bAw4x-wS;ZfK{h+E zpV-4CHaFeEGOYY1$oq?Je^+_@aC1>0;ibEPoOiTa=^>aa(N(>}RZ&OWU69*LR_Cw_ zRt@BiPipr)rR9KNank^#)X~=tM?m!Mtm3A5rPH4*_9fzjnV@YwbjeMUz5Dwd$&-UC zuzL*!EX6ey?(^DhO5d84r4JTQR(C;k6%eS&l;PNizD0qyU7w6=g`ekCg*R^CdbiYrU}Lx|dn9fP)SfsKs=0sF6z(9?&s zdtKspxf@$YghE`|Q4i9$W1&rfh$2QL3t0Z-uJE&l9vbJ zHhTTt6I&#v?jV$B*m5A)y#$L z!wudge-GBM#MRO&YND4Mf#Ljv{#126pT=3u_Da@yz;G~2&RMZpNy(N%xp~`xx?$VC zLM_Y^3JahT2FrYqTYRKBnHNMiUIRd10-m$H&;C^wD zkYg`jV%(NTJ{@aXZ6#jZ1XkCjifl5J+JIy@8@xV@)az`?R; zJq-y#Jv=w?#O(UDd8I`bW`*J8z6QB5(73je)Iz9Arf|-B52C|y(9kQU$ zJh+N}J70Cw>!PLT)gA>HYY9d_EML$47ZLaYa|oB^K$cS1N;6oR2w>Qr>5 zWPl1_ed6N~C}`8`BloP^HZqY8)Kn^8%{Nvdj8|9UwGD$nF6f9eXmUJUQiT_#l<7J# zgG5Q6`i*7apwBg>?XkG%#$W6e30$x&0yBHPH;Fg;5%znakF3 zQ^{aJW#e_YT@FlQUcd6_{sa=bNwV?92AI?Nn97JqBplA1Z0k^mG>~g2tlnn43;p3b zuRx;!L?}6C8gou9?LcHJquKE;6OCICkBdxuYBiLCCE0Byqmd&7{@50BjQ?lFLApL* zjVN4;Y4y+AA{@`@j?$4!7Zi47SA?8{?!oBzjOM4%H&;wa9g27IG0!MnJv@DTkSd}6 z=2?@?Qg!_UkPsjA2akNo@4%A#@xSEr)D*&`{Kii7tNSI zx8yyp=>nubO?tKM+n&;`K7Kuc$Zc$n`vncu=r(>&=0H(dU0D2+jKqdw{yEWe(@8!6 zN=2jEf8*%rk~33kWB0ERrnUof0-fv78x=|+9-3EQ)#|>FGNuz|Ap5SmHGYuj8Q#0oE9EH%WM5zicxFk4-;dbov6p(HPpTnw4iR+pzaBIoQ zIQ6fiq*eZ$^BUw*wX#aY42gjuddcQR?PhHJ9~nB`@*=+?0ZUxCA}Nfj2_W<<{d3kuo^SPK^l%<33NHO1+`(}923($E-QvP3?LsKjM2~(YHnzz^ z0_+o$1^ysz_gK4ojDU@`-NoM{xD=8syQ@))rU!NPtZ)~sCl59pUWj`BzG%rtYRTs% z{we+$UKP*a4C8DClBZ0U=?5VF-m|{Hjxo?tSkkXBToigFPT;~-f)tO_@ z_+IqKUxQ_tHO_qVu*HvkLfuc=WNn|62x0zXZ+Z;7S9 zJpEjiDMfkRO|e;gS=vIk{HhGTSh_ILo(3}w?-tzZUPtWfce&VtXs0-~nD=>Rx%TKW zH^`E@_rMITsxA{SCc%s>|DtOCl?YYkB5T6UcFusgRM+3_$GFxIj=*Cj>DLPHxS1J` zDzf*D!(g{3{mtazzhdMP(lD+|)r=+*8 z)Mfob_pYN>LZH`B=m3z%v zKaKO~|A}?pig21hg$>YY+&aHld7B6tKT}XiM^e{cGju!^fnf%>X@6zDRF3xMz4#I; z=bW^rSn;lxI~gC6oEf%PopSi4?h^sYKd@1g?N!MSeeNEcJ!2nBy#mFT4F9be6H(hX zUsZJDjft+P5^WO(q|$e>2<;om>8sKA3HFIo4E|O;N#B<;gy~L0QEONUrF9kL7ofO) zw)Qowz=m3G4f928zZh-{E|ejF3;f$iJK%Ojgfa{Sc;=K0F`bRts3T3%LI1LtaikfI zgqIpm=utOaGq0_-&3HELD%FySREXSQzH@^l>p92)BrkKbXSL!#p(_yxhOo)qBbK57 z?}eqPi4oG|%<)b1+FvhEhD~B|tz-nTy0#>O*jy_aN$m19V?oNSg4F=bVOxSn0Ku%9 z4or%#8SDPTVm{25Y$&apovi@hW>;;1TOu^&!Yr-`1MgyKP3T`o|ew~y! zm7pDyG?b!zr0dL+P*H$RL8;k=BD2Cp--&6(HHC98%XOi)-8zOgX0oDtItpI|X|@?P z$Pz9YA5yypfz95&X)QIS_PgXY{1-gfn|)s*8nzi0T0*E=Kvkq(@q%tt=~>bC)GCSR0KG!uJ78Y*wKJ<-&#zw+bMS0&*kcxF5L!~( zjM;i|3K=Q(3;l+@b}wV1*yNdTn^7|Pb7#QrM27?s%qKEBi}mGRxpBQBgCXB9W|ZTY z_L%vYQ;8!IW143!JOS#Q;U=&!?`0ea(JKk+0O&4-0s8Ckp6c8XSD)N zaL~{87SA@P=@of9JgCiHhc@2i8v2KwEAocbtcx0m7Egy~#Itm(V%iLi4FYZ~qAS|S z_t4+one*Z>K93hiFjU1Q=L#f9x8|LbgR+e%E@+7ZstDKbl>w?ZIp{P_`d@IFpp{^} z?yxSru8^DDH7H6wF*JoBJF^99X-qz!RNs8>vgLO1QCQ6hs^+`RjO&*M2?$NUBT>Qz zDxLSUKqK&q7HKguXDdjzif#*!!@5{W!N^j;jx&}utrL$}P)uM9B8KehFRPm|`)-Xh ztar6f=o55EYKFT^novu#rVxo9Hh&8FcIp_=_5J%E;vrIO;w$bbU&YPdU2bw+L0{IP zA3Gc(KaXpNKFx)7^%{TNg-Vs}tj6~kX{W047R=MOdt_`Qe+GWpvOSy^u2%C*Osrjh z+aI*(7@WxpVTc&s;auT?ntb)M11J6_DTPd+scsBagcD4HX3Oav{2h2KyE(1Y3jKTd z_V@wz1b7jT7c|es$v@srpHzAuZd|Ha^|8@9<3*xCn~HOtxT~;#waC_+D=U4h3+U7P z{{p(hOWT(vl7Jz)hJOAhcUQOu`x&@jy`O-Gz=m8<>$<-CxqqtvNj?^3!`~pSPAZ=$ ztsveBI$I2MKV4)^s(U@9(hfidfo}}NTkuk29;SpoReGWHQb|qai{F(EhW)F>d`Fie zlKh;FhOTx_WkA0mZ~D;xT|E<>^tAbbe=;QAUvY;DiCqIXRd~L?H?=kBB4gKU+Lnqo zJou|t+tA(2QbWhlRE(Pcad^34PtZT>lWqTpWWqL~Jc22+bt}R~2v2f_AC^bbkax9G za_w)!5p;if&&->P0TSJN`yc_Wp0qwTy=u`^#}|{=+pYU01jBkJud&1hX!IE*J?(w> zXx#dhx;3nW;d)~E3E*Y9i&1{rNkj2g6Ox#LoAX};!bxWV2U{7$$5VAfN>f;sDJ7q~ zWV4gGWJq*CMqt8h{%II<+Adx_r6dIZDg_;af1M)v4R4U*@(uq!rQ{oiW=QO}?k~T4<(dUNkBZSKsp=nA*Efk@YQ|XT6Smh8AM=a$>(UTu>cbwKc>jM23?Jlp)q*J z<9s~#KP+8~KhyvBuY3wALMYczB$v75mdh$hC6sc%EF{VOZZ2D8CD$d1T(*#q`)zJx za=$O+ewi7Y>s-c$+4l2&Jbr({`|*0e&f~n!^Z7jIc~o1Aw0J)w*i+A+i@h4Lwb*8% zYc|7Cu=$7CSdL6{9QW}_dD&woA6A=DZtU!M3v2vAJ+;wa_e$vPOdplzmVGt?|L%B_ z<~>JVu+ic*Ki%Bs2b+(tyO%>wyD2jZ=@`>Z4FUD6QX4(2o?J@2C$)rhZD zySp=^tF2}|tQ1|=gJfSis$l1d8sE_~d5ROAM#XI%bsI+|^1W*CV~5vT@t!&TWnGIr zgt^C}fR41ie`_!=+QYSyuTZc2Cv>d~nSt{GbC3xT{UPy<&#@cIab`L>Y1~8KHusmAXi7#oz~LQ=U}PpeRiE5Yb}R+k99dxm-Dg` zMz7n)@6t&Dx<{=Xz(_Iy^L@_BXLn`RgJa}uqx{D$K6+AIK<&!nWzq5SHP_bCSAA1I zk9{8fOW2`pWV9b$m6u$6m&UOz60W{R1p!lH8Tdwzecb@Zdpn<z4kSt9sTA$lRDnB3Id zo=q5ZXmf`L+i`x_?K$GgdL?c{x$8N9>6yAr8Fb)ubP?!g?`$$GLDa5vss7E-PWA}= zf)Z4#K#%m3s#so*l@V=PB(EtXltxhdKOe5ZGJqm>^~qa{Vw~X&_-x05^Kk^ zr0uj;mc-1sdNiKrWn;$y_i_)}Z`ie;*Yaum`??kO%ST4n`BSfc>{k3<0=G|!@2eMW z&RcGHKm`;D zJ+jsn!W;rcd}7kJQXyuH90!CTSzFKLzi}UX-g(`RTf+IauS|t!Lu;d?-ZXa{A2zQm<#dyVO8WgH`z~H z-F;0E5_3r|D8J$G=x%_6OG+yz2P=QbZ{)yD{TA@ZUY zgtb2XQVe!bb75w=txLno{wg}89|qAiyGTv*+&2vqI<#Gmb2|4)Me6Y8GUW&QpZBlx zHQJ!}z_91zH)-YfLm*~be`matC?DMD!i!kR-WCx1 z$)H`EeUiOB?N^&}K8nJD3uH{tPpnD0t|kkZJ0$ND%3ys!vCuXOfBvKB3n-ApZ%A$- z)xFPhIa$EzF62QsM*uOGrA0~vb`J<*dVHyFfiE8suuXR~oN2pBRjLsYdn1Zs0 zI{c)(3BhSMHZIv~{&KsiSCtN__7`A`&0z*d24LVgIqTd^uPdU;9&KEuMSfyCyFVMe zRP8YO#&xtaWfv0#+8foQh3J&fCD#P(Z~sRkbY3moLPR`8qBH)|Gw1#o6}ishOCujk z-V8^|;Jb~~J?kPGHuo+=V06ka6}%GHxwuPi!!)q{T*3d z{oEl{N5D~PwB!7xf4d8<5}{1(Ei86?UnIK~+haltyO8|Dj`WoE58ip>TI!ulgRmza zxB>nz0~{hr0hj+G8cZ7+d!x&##k}}uppwJWd=OsGpRZWnM7d=7wVw^!{rrfSR<&oL zzs_z5EoBFP|C|P%QOaf;di7^IMk{^VwYb`N7iX707um`*1QnS5)1R15gXubLNYD9b$v3voENNr zFZ@x7K#G{rem6nvj6(Fc5!vFVfEeHPLON*f!dzr_#D7?RkQK3bD0%LK+xpfy@hSOc zz=ve=K^hTuDEKFG_`0Ah^3dNO${P+g4|1!;eQ@~eBM|}?N;2DzeKo=%|Atjn*|HDhgrRNPyIitYiFEr;}W^CoOE43jb_7%{DGip^H#Ym zp)NsQ(_+>?1}|PQ88n%CA-FLqi}n?qyLdT#lixIbc&Fc^bu45Ip&+eWfNyq(^3SCg zZPL@Xl7wpwR?Y3IacIf)7jC23m+?B`{7^U34MUFPm!@p0cX!^W1sFe0Q~&dR3x$^) zxxpzyP7wAsu@27{#((i|l%M6`n$qy{45@w%Jgpxm&m=x0U%8^I>Ps5- zfSK)wT}?^Sm$`MWq^|wY+TZQ`+OyrgQjiI^FkdMlZ=8AxAM;zK<}yeW83OaG`s=re zGlz=s4D^zAzzBIdTG}&tX$hLLbrSbZ48#i&b9&NZJ;67{HEHjmV#Wc{Sf~4{g%ob& zl%f8`ZAt9L2B%FZWN|ZpEMECjJ zW0|fTSuRn59O8Zg88#3}S*Yb~cGy~zk`YkJU$0fHoU-k(htAW2*+TVhdyChHFH)1} zUHgIrP&_FT3^ug1%6k1BI?|COSS{Tz>uc-|RyRD3DEt5NSTk@(f!?bg=p0R3b9O5ZlN z>FD=|th|OTPkqE}R~2J)kl8kSqCoR&^pxvE7S69xp=}_5Y94<{oPWrjErB6^*)W^N zA2=gW+h^{c8miH@`{$lZSa7Auv^anRbjxD$Gs$A()+1|I30Hei?v`pld%JkX&WBZ^ za+y9pM0$5q6_{2*ci~3zLdT}^)(l#!4og1~d|onxeA+gztqa97sz1>l6s8_trGaJ(R{g$iiL{M}k6&n3>m>`98AGvgq5Ni{)c@itx&P^B z>r{BZW|*}W+8Mi5fq2c!|M;^zVF|SG9ms$ASI9DGbl-}N3QS!rRWVTp4I##xd9ruo zu3(}fILTlFLW}%e8W4kC>h9Xq*|LecwhEK!fh9Xfc4DOLD|&o{NS0~ZMMp^fV1}Q) z-xYj1s@|@bFK|t2ihc4@ zzVhfj3_1-63;R&9(rL1`Ps>jj8>Pfqkv*@izeb3(r@7x5tLkQqdB#jOT0LV7s?Dgi z2eFL{*oXWtM0Hf)pTgD8;Sw6!FaiPZF41>%-&5M>zDazeWR(+De$mJI9lQBY;j5FH zri^&SHCpzLgj+{!zZmk9d(VHK`w$W~pCu70%Q0wtou{U#=@H)N^msL)jrbpe3#Q1$ zZ9??%o2h;?DYf$BxuwV^FQP5AjnA~^kxzTbR`d1sH@(51(1JTbT8X}yc&&E7Si+^H zyx@>0az`bfW-BAj(Vf3j!WB>}R8d!^AWgQz$1N2cmf!}|^4;r9H+Rry7x{Vfs&0|P z6b=u=damjAeA>#ec=-d?$8$+s(-l~34cJg{YI-MmzMm6*=*jowUR}N0a@rWoAU2|G z8TW@hC_d`te9*r>`4G(7FpQaKL>@o33+M zU`k}15%CsGGJ{&e9~lR5))rL^E0q8Zv9CUg6}e=OF~*2ZCbOzH!VekM&vH3=_PrlG zmc#FB9VV|b?WfwWfAAflJOtX9gGrZ?n%Pmze&h@G zE5dp6<7Fs~ziwVZzX&RcQ-RgsoPW{=tp673#xA+f)be)~4dP%ofBe&714d(W|`-Bz07QkS?#JTF_Q0KKuQjNiMT>17@X zJU^~tPx2LO58}g_ZInNiLw}qf6b*Ld;r!zHbOO=u@gqyd;%N1YO%>-pVeKK%VJZ(m_qcg$g?V7)KZtx$nHo!wla+v8MZPIWrXeoagE zfAtYqLU1oCLSVko>DYYT)B;??Wnp_3&M!p z$0icjy@^*-y!PC`oX4GHcuZ{+8gsx`TryhseX3%HJfYv0QZ(6p#+O`P%*6aZ4Lkvw zKwbxQ-M;a`N}%HBC$ZD)a&>CotqdW21k-rqq;UgB?&IQR{rRIr%%_@wH8QQt5PR#Y zY0xHM<5)s%7T|?)g54tD@G!m7Mh4ZmugnZy9k6IQ1PhYC~Et$U<)W zLpSi|V4C}^;hT)lhKYdk*@&x@kI$*m%yiNR*v8>>2r|16G5x6?o+c7=bZ+(Z-p4S* zCKt?)qo2{K+pM>cexv1IP@|Z5HqG$r_5j9z0oG z0ag3VVI77mj^jllhZ${edVap@>UTlyfV9+=!D#oN4O{0OdX&$9`Y%;#jsGB5F}W38l2>^NC<%b+4q&#P>RH4#aY-2M-&}CW@t&M}%3XUD zgB0aN>buP#Drkj6W2G?G@7OtD>{d(8h-3t9gelCL>;u1^L$N<1@~Kmp^g9ACtg`wB~^SmBCq2~Az6pZu}+z(|JyDU(282}ein*Thx#+62lE>}98?fA zcM)K);$`Fg+ruD;J}iSBf$m=mHA3!y12}QY>NXk=pGATMXbwZAPmjMI_2@FFRrdGw z5scow+_>xy006uUa_E*i_6s+*VEoU9ykeG_kXN}3auR*-ceeBVB@BW7fb4kJyW&2m z=uv_O!A+fbQS@uX4IA&>=nfx1%2&Z!Df{&!_XX|3Qdvh(@OG`01hT)vRojF`T=vr-TMg`Zn}OO+)2ZjjSA(m4FKAdl8<%|in~R~g&U1|J z{GZF=3i#@^&p7FzxvmR-PiuI&Py3QkVLt%V7dk!5ib0&NL+wwbBP{AciLZ|4c~WK2 zgU>(e0ek8Oheb$W$9A+tf7R{q`{7;NZwaTn_!Bin;W=J8B~GYx-H_I)NTJrrA{Q?$ z?A`DX5eAc)4bIgD5GM1eDJC3H%Z-g5T;iu5>R~Uo);z5pEXiOy3w5I3VSGl=3oc?F z`|^RjP}L>R*8*h&rRlESpevYn5yyMev*#*6<+vy0c&BJlJ`Oj5|7P~vbsKv2W{=4~ zR>2d@OZ}hC<0)0@#}Y$fq@{$^db`NE^i{OdPVfA3VnT{(23Uoe)Z~%SDUZ z7b#AV5|y<^EH3Ap6E9b|-Jss9q2V4iC+K27xk;!loSQ2s+C(leZ;+1--xUs@F1z86 z?}~XBDuwc$byKd(x}Pd9>3rG-nr5WpZ0rB}=W{{A#dw`^-JUxvR-4PGn*90Ij$s~8 zwKk3VrHA^-{VqR%ijbnzZKRARbkGZRYpXWQ&|!)JZe_1+1lxN2F6*l!X9GVmMULT@ z%9FgU0B3BOo%z~F%-=>*?eegc{cub_cImmdguorFRtBqL*KQ-r9@gi0rdUgAw8p8N z`RQEil+V|~qD{a8Q<`k%%zDAf*8Qg>o3f*LvV!#43ivm;$u>1Wl8UHzxc{h8St9q% zTINx@`6Ri6VYJF?%7ytG!iD!!91FcE+wY#2>4sBL%5MMa>)G?6PZzrYVJD9e^tFi3 zUNoO3y1ZyULkxJ)%ubAY(ab?ie$mWH%ze>(b`^g3$0je{3SXpA;NFD#aNmusH9ECR zeyZ!bi9@Zaxy^34ig?S;)#$iKnQTuYgw)`R#cpqAwKe{1^iage`PwGg-C0|;DwMVf zAg`;HepcF1;_6vqTf6z}a&$HhhL&oEFN*&(552$by{+Wr(TaMB;N7^e)E+z^?g!%C zxU?p#&0h3XE!KI{V14#j5_j`!x4HSPs!+=9-N;gO?ee4n5XqT5I!cT5l{k&9!Pjf* z3PqEMTlQjz#`voVXjx@N}a(_td1NB-nI5s%fo_`o;P0)+xNUjv_AX!u`mj)G~RVK5hB}Ap6fb z_sXjtV?XbVRep7qx!S9G@lE%)C&2=I=@r;+OPfdW*NlZ>k~Zd7FJ^l-siGu=?Sc=o zDEc@`_$H-?LeI@V<|%OD7}8ugxrr2T+`ewiSj`z3bHjgG$VkKsLdv_2XW~YTMz%!MWWj>u=9I3wTdThf_yIT=EyfowbWz z`#am$ER8-cI}5`Uk46gL-ZxktO*zlu#*V3?T|vuLzP{RZXP}F9>+|*pQzMkN{N}Ct z1>==c7$E@har;OSec^(3;#RwD%&0R*?S!C(R+g`MUo2K**?21CH7gr;j)1x}-cbkW z{Gj3;zmX3KOxYGhu2S+!qr9(2D!J^lIvZbDZK!cSnk@F=dc5zw#7XBL(8jPcu*(?3 z$b;Tc+K~IUQN_mj3L8U`VV8}mnu%#9kA#{a8g<3Kt7$fp2>uhnc?o|p6>Au8q*tNa zLAofunp-)snT)wwa}L@VG#wYq8PArSSiRbRM5hq1ql`BC4t?f*0(R|OFSk%1weNC6 zX)-g6JNFf6Y|*m&^&vy(A63N?dz&9&H!68J1Bau%hRG8cyDzmrpeGLW2YoyNdl?y~ zRYov_hu&3ayScn6>FYv7LumK!@hQ2Kgk-lUv9yC>lZ6jiiB@m zwI?5ztOK40r`K*ah`}0bS+85yU_Qw%u3D^$ILb6VlQhaWUe_U%5+cdE4SCB9Jm%|i zk-Pa5i_THTN_D<6H9!?J(T$Mm%_L~#HSCN-{vp2{K{?Xas0rDGz|KnR^2610#fPlr@m}i zZB=KGJrkgX^lipRv>(JCCeT5apEfmbwVJNqmWjBM3&**w#`R}*<-_PjhIJTJl z>OyH8w%XttG!bs|=y~@iNM1hjGHavh;VW2C_1f1Nq%u_^Au4*g#&`7O2ozavHKd2H z{OxFlnCdq-!k924GG~gG%3LSIs5lkQFB5sWpw9h>ZZ8RgR4&e`w74z z_F4na_boNNH0^vAsn7V7me4bQv3fD}>fjf1u9iz@xEwer>Zb!ZSzUpLz1}c2Tkzc3 zrQpQo6asqawb^R0y070%!EDxVbX=L(3;LFU<)oBOYotDGB5>ibQk=a;*0Uof1U7zE z%#`3GaN7Uwtz-S#DMqT1i(kLhrn#sqj9;V2(G_z%^?x+w4wJ9hfe4s|4t7k3AJ}V8 zS-qBUVhR!8IU}wUlbjK9#B6884Pu2ebfoV551^WOt*SgU9%1P6hWg@uT4@0Z!!Q1moQ~j-SWhL}CHg|P%QbQ@+N6)}@`xFS1}CfZs4s&fI&7XwbCe0+ z6TF4*n0zK*$qEVYoOadYU|$>s5J~N=`CvZB@ru2N`q5S?fSkV`G+s|-Dj`*M)azho zmOg{8hyb;;4)Kd`Q&dz|OaQ#!nr-eAIj8y6UQaIgu#4<4IpJE79p5$&CyzW@K25`X z6dIj7nQr-i4EUdML{~Z)?o+R2RM|@$W(-LrY)fZiwQz1t5t*-zw0br=oE&R&(uHnK z@{9XGikbecdNb2!0wSA5%zLBx9U;oDP`B1&5T=@Cm{#`jFh-ftI|)}#1gv!5&MK|G zW9I#`PEd2QVCnYoM0Il`nGN|)KmxE9ll)6|Os7qHa7c~isKlMLI~`AxW-T4n!_`Q- z6DIq4g*|yMTT|I09s~G@@`DH5J3;cIN=tmEUiY{L&um0UBY9$s3qsy)t&l8i)urk+ zXp{blYmK;K+v8?w^PYD+X1t}NUM7KVt>nxTW}(wbzwVF@OigKg-Ddjtmy7sZ^ntf$~jF(v3p9WLa0JpuWRh z{Yk~$^LV4+AhI%Rz;uGYEyR8H(-p&Onc6dZ#d3SIsm1*k%wkzv&{U^7Q#qsDH551J36>OybB%LpV5U5+r{KU#Tm3^95m(W*NZiO>hyai*q_TxhU#hr$qj_u zfG@%k7rdXNrZ^Kde*)qI6J#^@Txd6$R9kD`we2H1RQlFLC$BhhZ+78AYt}LU@6dO+ zJ<)?4XTe$}`S&ws-Q`lbDPcIZpdd4*UgPF>Ge$+wnvViV5&2mKO%8?WWI3AERg2k( zDqu~<(~p{izuQz5b3#FNGOva3`X{r2|E}6=%h4twtr!#gH$ELZhGG*3ns}=yEO*sa z(TY+psWt3$wwPW&XFhEB{i6wA02_WXCA~4zHB!}v@*WGwT6wwFb=U!ySQP0KAuC>) z8LG6D)`t$Rh%6Nz6?~NB%H=d`0?#a|>22OR9O-g}Ww36}AlIg?LKffqc50}(ka=I# z$`I;1B(XjhP=T5FLDI-3J+pQxqDxh@MbeY+CV`>ex{(Uh=_XCr&Rw2wA?2TgIJZ*# zg=vacb))zVINUB?)U3O!wHW5fg@Eg!0`04lwnEn5&c4W8<2s%{FqTH^;j>w`ty&oO ztV=&f*6p^P9?y)lW_sytyT`$w*7ywJA_+)RQ~Gt+A&K|QM+#>CN5vyY9yx85f_+o+ zDvG0+k87%>({-hU1~~l`S)_}8eoFMd*8XlLbYJulS6pNb7>yLGfuyoh4n9zL2tJpP zZFSO}*HpY?{7mA*ouN;BxX0X?>iCI|o3=x08k__HT*)dZ*)8Re`ru&>j$7EuXXA8h zjg*hND_uoLiqUJFr?j}ajJ*TpIgI)XkB7WEW**h=?OH}azqH9WTyMx!>cvp9qYyV?x>{voMZW2Wx4DR z?U@cb&=wNq3)N;*)IW!(&T#km6!gCnr?R~~lef)$OUfUDzlEIIg};crI{qZdIN~V$ zi2T?wN3-)+yHQ!MI%aS`L(v9vN~()-2m4#Ae`P)QYe(qGL%It2!(Nho+dZYBQNxs0 zVVKD>=8xj{F~kT)L#hZPQ)Q59q1m zv&`L6G&6Qy_9t3L{9fR9)xK)R#V8@nPCsXU@U?Es*PL{`MBM+848VU<4Ut!tSZ9`R z#CO0(Otnf2jO$)M9$Z(4nV~}B3Qg+dzsDuPJp7&0n->q<;x}_Kf{gm*O+%=1uNh-r znjq=H{!FLT*txrs{Wsy=_L4(*W3AWEuN^@gv}gYd0V#rHrn#2pRPk!)kEXZ?u>;+m z$X)gym=gzz2ugdvk5JQ#u14XaOZkvXchCjmw6-Nzpkq&NQ)L8Bd++^DLgsTSgdAOJ z3!K-72cMYYd~I|EXvmB`t_=Y@E{oXivLvW9(1@wDq#249ZYMDVKs9>U;9)X5_gI8! z*HVPF*f-6w8;1at4kN9bkJ=0#A&cS-1nzep@}oAttYqB_4ebSN9DwTyeg^y;>}ZvN z`J?jQZ13^l3(e2ojGXkw9o`ZwB5+{z-ErQ+c;C$@luM{KlULQQhz0V~mwmxr>a`Un z`%1X8;5(LUoKRaoO_f(s!DT%7T10NG*gVdv)<(=U^c1MupsssH^No^|=vw+qK{aoi zYcE``yO_HX6R?T9ei>%_*qL>1ZCHl5_(H|otv}Z~Y$AL>t;wrqP)2N4La^4<%ImJ& zEV%9o@Tnb+#mn6WpYyN4?;xUdIlz27*B5QN+dk(@!VM77x);DwI}aAWcN-+-OTi5h zak`hls)JBlqx-AXTImy(m)Xq7^Ysd-iiy@YqUSeWv70{lQE5~*J2~jD&=+^<`G>8a zF(FaGd>S*COaCPVi%!j21AA7AM%JHI9Gs(xj#TX?t+At?u9|N=izqt^wtXJ>{X`SB zL@ckgt}iZ!ctPVx7LEBc`aOUX7`iLK$@0ccHi&>?1fFrHp0mK!*we?y}& zb11p#DfMoUL`Nh)mX>{N@OI;ytoHr2>d5ELyh5ASri)eY7QzKVl@0J5(3HPV9ypql zqG%CeHrQHZU^;tcy?Os(!XFr5DTUlgqd%OzRNGQ_rc+N@>AfHSZg?(8ltH`>+-tj( z)hU0C`gixm-umTOrS6H}XuiFdO&aM<{cD}!=@oP{hp1*0G>6S7E^8yC?4ESA3CIcnT zTCU!mi}KTmZ*$7zCWL}wo+Ts)KTvoO=zdX0Jw^Zdv?R9kxtE)2Je}p7!7DK?(&sG7 zNqDTKuLaR+);jKDdJ~N_wR8I*lCE3yvQ5MI-&!rhO)j#av}yvkW7nn!*Ck_q+N@iy z+Ts_JYT@8Fe=lkhow^PD(B+UX0qEUY-)v73aZT)NL!MF%rs$VN1}F{^-cvTEMYWQK z-_=j>&z@;c(6dELM=b3peSOhdm3+e@%pk3LTe_?7{rLmm1{o znH4n)B~N5q!~1>A*UIkX&$NZmh&+tUYPHXKr*rp-iTwiKjGNVAlwQwQPt_7x_Da?o z@4?bzAGXEg*`3fFgol@WT0<`mdVGaXX+O*#FsM+`7-+B_czoI8vR#mPj<|L0cg#_Y zdGKTeBhC%xqhk?ApcBZ&9J^tr`@2IaMYFOn0d zGj@#$(wAr_107SfB5M>zYpzc+{v%xe)?w8wyejdk6_U5HJb5^*;7-`t{jn# zZv(QA8~eD4!-jBctd_i4t+0=NuBb zuHW|fC?}OcCn%iCxDym!Wzb2=Wo6t+ilj2=6h%%McZ#B-3}T~bH}mlz3P;whD+F+P zx40LY%eqX(JI0=GSXbvS)kf&z6;cK?3LAg?Hn-|x28dhA>UNf{TT;!k9b$v!r)pl) z7LJo-Rp1o(68_Rj;6+*WY&Qy#nE#(#CVX0wpnwL?A(|;HDv;&|1_FODA1f*ch2}t6_}!AqLHO#7X${CP z^6Wn9U(CHcg{huy{$s*J#cuJl`t7kxEBq^L7ToIqd!(=4A7=Z`)h^NB)QjT)x2n*% zTjBW`l)`C*5wb)Lv2mkBjhI4d`shzxzhJV2dEnLwv%@vt)2gDQCUJi^K}aUiTLYf~ zVd~kg8Y393RZgM7=dj-w6_FkoQpB@}~>O1;+%=T;?Uj9JD7Vaof z_4~p8K*My=e#X;7X&*N2`+Fgdv%iiKs)jAjs_t-%yR+Q+p!_9ojt=wW4mzs>hsE7l zx1-%OxMBH;+EXQ^!$3(*vdq?|j;P*5G$|9*Lh}5AKk`XFSx34%$;(Ny5soO7avyPzI?MtbjeB_{4|}vUt;5ZfLN|p{}4_a zse+j5d{YfEyY=R9Sqra=yv&#&D$u=$<(sRXI6uIj4`Y5e4&5T$HR^n5Xmz)Y*L35) zrDD@sL(@`hGz{Awl7N1=zl14)7UXsFZEqO}b(#c})-7|!6^9EN0>ca^AWKV}K^$1! zRj~n-{^9d&&l3o-+Y)+*TSHxNl@r6??AXC@M-N7G?c79&PHdybVhtBP?l2NzYG(j5 zBQ(KOKduU!zYlK<&DEdJiayTq93$>-H9t+-QZ3_Lbqv-|#fX%PzDgH;ZSYvl#8a&F zD|SifwXhA=5r$E593!qjXCtZ4h15-cPIF28sw&#CO1=g{Yy zYx0cf{|Rq|D3uGAaorH9hX6UB+dUSWmsd+vuO zdL^@H?|ES_S7tB=5-BLQ9C!F5j}(Q?(uk#G`Z6n1{)Y; z;QJuS7M4KAqK9?k(}e4R<4LQqrn?S79WcQ9`3iOTaPxVS4Y|gRUR;EJG7#Aw zd;($AK}ipF6s0|xaq;8nWVY({wGD=G5@M25LBfVw^)i>|VHnaqn^u#fSm`oD;Vz@j zH6rPi>?=OUzpR$8f-vpKAOSr8QkX*JwVA0m&)Xlh=EL)hw)Onvq?4$YW;LD*kMU&62V9xKpK@;8zes;uWxLrdrMxL%RIEsQ*&JpdEG>5S_q zKy+gG`My>L3nXfsmpRf8UWZUavRP~l>1E&@An*SoJs*Q$RaF)6D4`%D-8V2lxyxq~ z)a#dOhaP6I+uZkhWZL%=@Md`F2_RZA zhQoamcio5Z}r@2&lhaPS1FKl-alDmA; zw@r>wIy(ZW^c?#cFWKRV4_Chvo=PYY1uX4r1t=1o`$yCIDs*3`Vw_4#dWn9(G*t`F0D&lT zjqGNWf5dOx;Sn7eJ>3-@J3T?3KO?T%)L1dKHS(0G3>?*GW~G#(H8a(XVN`ZHus8jeFRON54i(R)@7E`_z@0Wm3u2 zA(MkI>klHkd4DWEp}z0y%&~K{-e?B8a;^E7gSHHp$S$?7H!C;(1gm3sw230Wpbp!g zgHp*Fi7BiG4bXgU%|lvQ0DZJ7?{_>>fE~U2bo(>G)&_CSNE>;ET4&QxL};qcjNVKA z6(Q~L!>KdLBL2#}?Bs?Ae4t<=w!3hlTeNn2wGJpJJ*Stdvt7IoozVLgKL3{R3`db`YiwPzTBU7%5{X=XGoO|WbfTW?q+}f$4T$F5zymYh z+3RWGGn5NtGqO)9k3T^9F$+^E|Eni&c7L;BdTObw z+Q*j0qJ%!dimy4gn2d={`<>*aRz{@mw*&t(1rpkf@N!OOeH#Ps8-!7cxMyRoDECm^ z?NGwuP~wM=myImyyS|gIB5Z$+=Jk#d3KWc*?u<4~orE^opzo;q+V>-;r`Tv^H`~nC zGFze`q*ppGvhsLPtLh!8rKVw4hvM->qgaYWctikR(NH6I92xP z9@|?Z9)+W)M{#dD;$0l0^~R|s8#JYx|j6FPd>*J<>WCd^5rUu^uR#s4ll$0)T} zi77uj$xfr7&4=G~uBh9{&jzBCdG>v8!?zGEzZH8i2zQu)%Jyu$BV$u)d$dO-nD#E< z}DWKK>G z1I~8}gF0&Ww3rZ{7_(Hl#i#dsb+&IQ*T%OQ=nF-5j0fq|FwtgD;?AofA9W;hbvC(2PQ9s3__`s@_`Op&;r+!+xTq#Xn|mPm;|)Kw=27cDA(ZUkbP>Gm?A zl+j_7UzfSy-N5MAEps1~rK!EyMCgKC;-h>Y;Q}{HPvM~7tn;pHeV<1N0qjhg&qnx# z4FeZ&l}mrvLLf&I76`ZIj)?dJVajDWpsqI*r>TH@!7@h3mCGQF#!OnQqJkj0(%2_B|YKj5ZT! z>Yovj(!~s*+t#8_Zm#LGoNQj$J+?SRPFd2PA;nDEHV)W3%0~Cc{+kE}rmL6C{t4!s z=JgDzbm$G1BuV=>OOe!=S8#wEECGK*jz}6?E%jT z?QGiJIMwMQIuabkm=9kZf}g||EV23TNIz4`cQ-da75^jd=}b##|Wki_?<9S zI4XU5tDDbyBX5MOd#7~2)RwzNyaX|eIw7>hP&Ct+hxBlbJDzI3u&yz~TSv`Hs!(Zx zH`+BUo>00RQ9~7c;TOW`C?-zQ5~`yUHjFag#%cKK>7JcHvAFl)>=yUWvynH?eLO!y z_=}qOV-8IgfnZ)YOiFBom)_iJadhblK4V%!_jd))OD?qnz^5<~jhMSZ^X`Tb$ZGaE z`)kVu?7r^W1;YEd9Hocv0g-1fm$Pf_+Z5Faw$w(dCQfqA&~UO|OO1!Bn6R?w9n7RA zW6B655OJ_koxXGA`nYWK-L-_K>}sfcg3^2b-f`{O6I!UfG^pBbq=C*o{jXH+?}x9* zZpKr7e+VDD1mHU2sk+_=IxbKhIsrNla&S+hR>wBd5iF*%K;`CxbDzQs53U4;r!y|E zPJTEk83iKD^0P@~_UEU#>R7Rb9!B9)`)o!!_a||Gm=~z2zKqvhH`?q||A|4mf{iTv zYp2#MgI3n~`Yc#I1tKLiAqV=mzhxXpf6;jg(JU3|`Stsn!*p#Mx$?uWxMo8U`iyHp1-bKN?)$PU5Ok<7J` zp?Hpn`s+UZFX1w6Z)rm9r?~q!-Z@I0KlWcup<9*hnx{_hZ;n;+2Kn5d7`GpayCsx3 zPQpVy4;ARQ=SrKEj}3<(8;3}*qX#Wzwk*qZ$L))$l}1N5eVz5^|9Dh+HnWMUp$Pt$ zF?mFN(KJyf1oX71UI303c%5YcfuD5FPhDPF`Yxb#Wp5XC)FL;DI2=7WS5LaV(%OOo zn|c^`e{9G4Lk548_~nh@S;k6T!Hy>qZxR7YP9_<&Zm<^`kV#9RH2cqm4AO_exLcbZ zZcrY2)C8#g=;HwoMVe^VUsea*PPljZmso)oE^5&vB*S_m)4?xrmiwjtrur@C0Mm_G z0B(Vea-wa@Q+`c`@{q{--!tHn#%x%&;wN2wkyx9cQj`^Uot#ZyORMdlde$)ga=s_> zZdDAjFvE^sR;51UcGyX|(;{Y7YFB<@-#;F@cDjYrr$YIZPS1Utd2PUPgBTma(W7i! zc>a&i*la3#+z&LxqgT@NP0zr(Os(YrZo1ZR%DShyes8kZxY&K;0SY?F`opv*I`sF| zG5!*4^SXk)D`eY)XCeX)6716zdhd_z6(9tv?j5bm(Psw3=g~I?*YIeGL9PX~Zl zTAIwWyLP_~4L9yM^>q`p#Cro&yIa%%m*4sqtG~T(mguhNY9gXJUw5iYOiSsHA6KG> z?@Sb9D|4h<8=lEu-_~@mv!n&Z;LQmkR9l_f>a)_YOvp6&kd|LR5CTbRW4c^1na?QCW`=s!P= z%6fJ>V&U~`PHk2%rKR}R#yfzOXON-4ZpZ96d!1EnoXveUtHE!T{^h$q_yR29Z3y%r z^asHAcA3ieCG>I-yjEXyD~d_Xd^#81Mh^^?;Mt_$BX9SordpllNujv8;ljU5Q3I>y zV)91_2gWQQ-b-6J+TC;|8_-|6V8M3OvcrMW*Rs0<4{umK z+;!~!r-Surlp#h|a@KX`oK;7$VZW^XcE2ej$2`^Yv*Y~hml22 zbH;^r_Up4G_$px*+aWvand4`jPRsO!tCQ zx1SfioF{!~32Ks+d6+pqUK?C{VLqe~snmNkD=VcH2(ANTzAWz<@8QOJSm#xePi%$; zgu^mxFPVGY&%n3zLG~n?B|=ed-;k~lH^*M;$!Q)>P&wldm2(=!IJ5 zW@DvAF`tS}9`pL%238NT_78NH>Uiio^W_^>8Hd;P92_B{U(aR0o~qTI^35*X3^QcI zlvI}mE6zXZ!n?wJrpT#7FL~^dyMZURF64h(GI)6u+`GPbKJ%-p>vF_=8N!$=@l5c! zG+S?BTA$gr?!fLm$^V{Q#9v^tOr;aBh8x{p3e38c9+ptu`(@|t>(AosmJT9`=w2w7!1U0@q6Mz*Wy7236N;)Hxo;+ z6{R_|fL-ibke2P!-hf>c`CTHs9uU0A@1uW3nb?-xQ3bEOWi zqD!Y2Ic%KnD&&f^3 z?(P#i!Din8r!@QJwZu2P3U+o~3H;T$N;l!%k#)=c9S)pj(V78bXO!%eX`S#*+x@q| z1;?iI7J2%3Id3`x`7b6MUK^t6mi32zIH3B0>sE8S;?{aU$ncl*WHQ$ImMtUxd)I7x zrD?z?AKW=Aazg5P(}8_6T>RZ;4+R}4697EU^8H-aAIQz^;&!uatT)yx>z(_B?FP0h zc-`W4jn_S17kS@wc{=lW=J{*~FmLDjAon4|oL>|NDR{2MyDXY4s&0LLVL5Gi+}gX$XEottN=TfnvB)2BEA`|NlA90v?`=;jRU z@8VZn@-Db8+kIxhx&6W>dr;q}}djyKU<%p8Zy~Y};0NR=xYPTzCoWb}q51++Uo% zPEgAkz)c5N7~>0k;z*hHfxy3DIhHdbZ1=DMdtNE&-wt@P)1XcBfwPQjAKM04jzb9t zzLy&WME08=Y1((2JTL1q@E~JT@>$^WaxgHkgr|~$Gwd%=SKc34*#G1g;87h0&lYUk zpJ+*ISFzp2b{X4kd?rLSxj+T@)0E?b599v_)tWee1AbS+HHY|FYS;6JOhFY!I|1Lw``5E_@(n(lT`n82&%ysTlm?cx zpUlA1CWjR%27KLN$s~C`J|xka8+hKV9n;bQdr#h*ITh`{VcEFl3hI;3@VVBvr)Cen z5d+*y5`uum{Wu%gqkQHZ3Ba(nBE|p*G+8q!X_?7Wf!$ZNsB|6pN#`m?XW(L$JshpT zKC;mWIC2jx{)KtjWS-iHUDoqr(i_kZVXXU4-rufpkDQUB-bXWcM>;CxPdl6>yDv+?}7~A6h zgb!31GlY3{)Fq+*3Uz1Z&pTYKM>zEK`CQ&-WWSVfVfymDfvU2K@=(3bOUnEbnkS)Q z5@i+tTRp$9Tv%?b7uFl~QmCgwy%p-Q@c&aiE=bD0E^H6)6@B|gd}pkw_jPN}7c*zD zy~TXLwzA!V_7%n_@!L4geX7pAFSEk%@U@sZ8UPasxDYws`o|ull3J+o288l*>6P8s`RYyI4fMI?c#dd zDfK?NyevJ8p2e=VG3!h3PQLPJ;1R<5oLq$Pu&ns~3E|3lORbWJfbibvoi}wq-#u;fQ*9-8k>~%e)-#C4?_+*4)Ss*Tv8G1bL2nLpVOT zg^>%_d!OGw6@<;+NJIF0`TL@i<BQut0$Dz#20p2f{(wVe>eL%sBTl*WQHd6`i}uIbsUl59>Fc@K7eA2|tWJ zo$W@L)6_Fg+w5iHsnz9_k?&6;+>QlIgjbr>wBh+`eC5KvNrY{@Jp7MnE9?GH7l^t+ z)D@!c5Os+duf}+Gm49NV>ku{p8bZ(-XGuTtbHH zv!3wZfA8&M?Cf9Fmd}Uk5A40+7w&hz#hv*4=#7_wy&Y7z`+^46tyTR}(D&8y`h*?E z*8ISF#1Sz^;!IRnl-28u@xQERT=2Dlkv={D$LG@6rG)>E?Qp<=aQVI8wya>h?b@R{ zgf|WCw0AAxz^J>a=7j$aJ{HgS;>i3U;UhiPr0*bn^HBQTQG^?DK$7t8UM4%a{C^vs zJkIyt1k7*TgZ1ie($n62PtG$3i}T~OI(_KVu&!kj32!*L)s^p+iJLUuhv((Pm`$ty zC2V@@MA&@78#iA(%lTPA+-BtNBFNDe$Psvmy_RJT3CL$nzo(j65;wZ*iXD zJjQvB>j173xQ^gDgX5p(&?QOn^M&ut>8Us-E%q+4x2pYo+}FNrF3C1l{TBUr+^4^@ zFJ6`udqDWY$TKl#$(;J15(&12FkVhCrSy8Jbp@D|(5Pu!m9XQLmE@i2^+ zVLT1_PUJ(8FU9gwy{|}0+;2nc(a&bkv(v*oW23aXvmb&3Q^)=AoJfq3qxnd}#+;yt z@STio6L-S$JvD^!+kv~Lf0)j=B4u7a;e7#X4>6y1eW!r~*8}-Ak>0 z1%a-ib}wNXy*|0yb!8D{3)L5+1=9sT2P4_l9b`@5}ep5ia$-Je&9RG?&z?tj}FD@#re% z#Za${dS29Hd`I7KT~gwY!Uul-TY=j*Dr-pa;vu;z4n!S)9QnAkuQ9zlsh{tX+Sf(4@5%lW)s<687DVdmK6PtoMj2s?r>}akAA|L!cDo_k zP573fJL4}^(dsxG;j60Kt^9Qp`&RUBh<-+SHF`Gx+MY)4s^308vnA1Ur_K(L@5LcJ za+QxGwr3sHCMj{b9(>4$=5%l$n?0kox;2Nn`;UEn^I=h0AyT$4A1yQDt|Vf(mk$;`lF z-cNFmPGNiP!C%hBj78aG{SuY6;)U%*SHic75>HwY9z3kW2DZmVU6{t7M3}G3Y#pv! zH{|?2g#Re^aOZx+^%UbA7ze>P3EE3&Pocf_9sA~{r0i#6k4fK?Q?XI28)L!-RPSdv z{`@}t8fK{aE$&xnPvY;X9O;s>j*B%v>g=XHPO3H%dxm-)$M&{Jj@b39>bD8u=HI3g zwoUqWn(cA)W6{q=KN$BP+@Em&!u<{RKinU2|HSct;|0eP)}Pw(mZb2H!p2BVy%Zau z>Lbx7YW~r3+U#-Tn8*Iv^BT|R$Suw_W)kLO(Y(%_QjyXsr=`C`J$&DYmiqpfVu zVE^OzI3AtY-+{1v9)K|Zf2zlANy$?n_EHfe6EP^UcX2&Lo&t=gxh&FmKR{Sdt8dKl zG2EAN-^P6%_kFYr&~Cte6?KKEJ49U~#@8_ZhVeO!-(h?Y<9`?*#P}h`7cu^b@kwlN z>bDF@$!{cL059j#;-%5~`a%Q6{U-7owdZN(_CM9?c6ri+*AAC;@R#R=MDSNvj?ZjCqxpqyZLwp@5^Wpp}mCm6xv&8kDjJJDxUOJ%sor-a#ZC}s9yG^SEWM@Cof#9Fe6^iWX5G94-^X>J$CqF$dX`r$?j7gn zxR@0?xg%lOpCr8cX>$+ex$OJYFRxBG;L70LyszW=3Os*-=QHs92A&td^KCU6(hfv; z?a$7MoVQ{xHKzyRi(l(^Wd8nY7CGL8SzgZP<@kErU4%z>vE12`udF`S{I5FGpU^3yDqBB+{)K*s~8Mfi`8KUjdy0uu!x>DJWBRqozK!n#v zUP&q?jO|DLa92|9?U8eK(=!)#+BLeI8-m;5erT!m1Lot13P?7!BJ9xR#evS;|IFL5 z|NW)0WqZQ4-YvG}d>zML{bSGnSLkK=+B}{&GG8C2YlAGV{WC)ans>q*9@ z9=p7l53z33=pOUSKl8;ugx#N&E#&=a%b;fsTnUFnJHO@mj64ld)DzCB^< z;?rhDye}?2zK74N_8GQo$aBISb9)cv=a=<9eBpiwA7$b{p76_9|5(rkuN|#0r>{xBap8^J_FmE z`t81?>|cUY6Jt`0K{3YE`xlO1K6dI)xcc=-Z&MymN#}YkAuQj6O*pZh%U0$Cqw96G zV7mbMJLLC}|HJW)^8x1z&L=D{)%$^@_%-MQcSzMc6Q=U1)qc(8F?H6?G zhr`i4KV*A=@X=XkyYl<;ITXUHhwhug>loIb+A&Mad*PEi+_>e-dxV@*Ax!7fs^>lG zfkP(`(dYGE*dOAzp?$4Su>J9FTZ|s!2YSosQG4B%+=hlepYL;Q~7q5@VM<8E;d(Nim`4cen4^Ddr;b;+ zmFd?jgK*kdlL22;<49mRk1*l6wTvG#uI=k4Jtb^=DsLm(M=cFv3UdiZulVspnXt_W zUw9JMl`&tr_J*+Wg+q(k-sgVHq|L9 z`PHrX2%ScR%WbZd+u1K{>aLMji%v8su@1 z=RqC_^)IN8LH!KsYfyiK`W)2npuPw7KR&@r5)&ho`-!x=wr@jbFWVazp7#qrPPk}B zN{>#2vHhtZpGb;MS7^MRCYXeC+X=2+aOvESLZ@5(g~b%+-J7`-j^Q|&oR5RBopFPA zY!@&1ed4wSs&5^d?6r*b;-B*z2mhq4tS3Xg8S?nZ^J5$U%R}{gDk=M|&?=f%AEPOx zI!Dr0axGk^wN&r7*>z7psZQ_O71_4pbrf}usDnhEB+fgWmpG45*NM7M)PRxlUpIz!PmmFh3)F(n}|8b^%UoQu)W;1&jyPJyu`v3H&LMMzmV$>O<4jFaIsAEQ*GwPsGCyhF4Tz|eZKc7oV-c-Sb?oRJ- z?nBT1^YxP6hfp2I&EwWm8Mny)9=hw|Qk8J{ym3}MKOLi|9{xtZJ&-@31NYMe`}8`c zDn9wd;8o8U=TAG|lspG|VO^LT_L`kTU|6Wy=CRGydpCNq2w=md{ z-k0w%B^(};=fu46^C_qFA_)g3*6KN3RhOO*D+N;$ znL{}HQ@29qX*rGhJi>2AobQ&dsmv22kBmGs^3cdrBae+dH}c@fb7Ed=%zKUT35;K0 zd;{Yj-{JRjB}K;~_Re)a<*hgtB{&NaV^-@}0xm81EYZ7VOSjbFaq+%OP7vQ`F8ml- z??X6e>??O3-<+;`5aAtv6b<6}g!?qcvr%7x`U~VkkS{?#1^E`_WBwmsBiaJ%OYN2? zDZHlGEAPeb+{|2lH~;wIhgEy8n%BhhA>v(L)_EPA!op3$6OEkS@cfeVqpH4*`!ep^ zxUb{Bk9Gl`N5S(dSYE343rWc%B4SJOSw2l=uAA#E@`!NS8NOe0bCX8?zVz<9!p2n+ z2uBaLtJX`S+*z*rR@>>eH8_q{#n3r<w8x;TI{_Z1}w8%vhVc51H5IbD5gTaW0I5 zVVn%(Xc%Y1I2_gud4A`eFTe2n83)g&@_4G5bUAqm;rW(+cUln++uR`3kFbABm!n)B z&%(H(0K#?&o*Q!sCyl%x6~?@M&gcdw32!f3G(4EFeakVc_i%eW?o>C5aHQ4hz;MFY zp42b-lERZNJe%sx9BN;h8nftGY3&gkTveQ{nkPj+NW7a7-8PcT#c7%*vtQ#j%3Agd zW*246B^)-Xd2mRI>aVyCAeWs3+q%pEX2im++sXNv&Be8oKT$tlO9JR%5RS)FyA^Hz%Z zjf+9WxK#eV-GsoqgysD9gkLlaO5*t<+QMr9d5D_I{4(;-$WJ4Gjr=z9-^h<+d>`AJ z`mI1x;@qN-t%i3u7^%_4s>B#m$GI_%^;_|&gFoBl5(q)p^Sx;LXr3P z?Dy>VoX^vJ|LBizd!Mz}Uc+9`dY<1}Yi8ZK_ZJlM!p8$XUhwgRf4}+sn$N%a`=DGZ zBr-pMsFC$iy7b|dRPF;4eO!uu0PY_f9E>+3KWE)eW#SZc=QM@1xc-*wbGcrH>sh$J zjr-$xe(+wE64^M`_TG|ibMVf&MGJl*Z4{Yc-{R%AiQ+iM?EpHyg>;&t|FXN|x zMV-}7N|%MM(;;p$7WFVr5sX+IM@)m%NYWoc7?3b*69oyYA! zZYTbSUG-if+t-?xg{XlLZ8WMEabIh$&*0_8)8ggM>xI`FuUB60{5`n+$n8rW$Kr7= z9w*}QWv=(&dJwJ`;d&CTH{p5|u2UdKg|GsMik?nO|6((>2=Gzpp5f+kWDl zMA0wI?ZRes04#W#H2H}xSnFcuXFAtiOv}bwP4^$Vo}SaTJFYu>*k7joU>`3zcH~#^ zis@62)Bdu1J1(EyQ!3jRlggpjbeopocT0zK=>&eSF?T)f)4}JTe16L3uY7*X=f8Y@ z%;(R1e$D6KeE!DuTU_78?P6{>bGw?`-Msu!k00^(mFiJEJEp<9`hH@OjrFg~L*wZz zbJ2H4^*CHsj|u6+zEPa#s^#K>qqw)qq`y{ce2?k#p9J1HtH!)7IK>r)3^=O%%5^oc zoL1!& z`5K(>JEaxby^qg6?N~wOL+iG{PBuCV%D~qT-U^Ka_djvAEB*fU;OE}Ez~_HEp;H2W zGuNOlmihrru)&h7eItm4{cFJ5^OK8df0;F--sVw${7R2kj04+`mfpV(jvVo22V z@B_6zp$_1@3FYcRG#=j{(~8(7pp)l3aO3nP<)gv<&J~QC3%>o%Bi9jJczDzsilgd3 z+xL1bcvN&U96HL<2!Dmch9?4AVAbM(CsaU2}E zv|Nqi;pa3q7S^J@mW|hcPC9z!83A7wfl~^8X|n*oH{R|ayAV87ukL{*xLL=`ONM|~ zMh=^=16J$TYP4ywyf13LJDX_)J~eRV8REFG;4$aXKRgedzf1S4z&xe?n0eUuz6qFK zlbH8c^!X}@Y~O3qM$H_zp)<|tM4Lgh38>$T`(AVVqGa^HI>g@owvE(I474_2jvsiaMHYkc0#=jD9f z&ff>+QZ13`iA3#3%Y~y4D*eZ^6!kCT5R2AN9BHCd4ZY2yV0@tcHqX9x5Ao(Rp?+lu=?9eXNdXxp`2)U=^ga`OW_3L8tbL`*IdaDn(>}b%!Rp95X-TDQCh4Dw) z)E~wDRotJ&{axH2#{Fg7zr%G0T$jLg3tZR0bq`|M9C~`aJ=q1@ZY8dw-wW&2=zS(+ z&!clOenz?v(v33CM7pmJa^%rrnnv;KVtbc0L5R+30wgu1|Te+_$wt+Fa+ubwFGv#C1em zXT)_#T&Ki!OkC&0bx>R<#dTD?fAI1^xzwmiO*}tq(gz3;Q5u zf161J{fSJV8cvLSH0I-XxS{<5~vzDS=AK0Z_b2aWGZ8K!M}D!jW`7S%Qu!|6JI zUzFPyiKImlm0R*$^;f}h-s!q8PSubNveAH%)}(+{N49q&{`e}X{S~U4J{`g+eX;HD7&Aw|4d4q}ZxSgz*Sg$CYrx?}KlIbVC#Jt$5dt2bSh)Wt_|x9F+L^KP z`V=(wwCCse*`8m(!WmlNH9isAY2cmv-5dS@NBeuXr!nTQLAVpF+g&Z?3Ak6jy^0@| zN3V(`vLWVMhhAO;J{Hiwk@6FedChnsc$u57*#&S5S~N=KVS8g{KBZS5Gjtj_D96E# zzQuudUrx>gulW0KUt!HqD^tH9n4lZWk^q5Jf$tT}CSvtZR{4{CJa_U>OmGn?> zq5u8*Xs~D6uDJf-oHYCZJiCptl0MjY;y`_}P1~4<>Qj10^cMte1q;4-uvz@n@U>u@ z*uXbN;3Vl8r4?X7>i|y15JP?axS>jFU$Dkv$Hz1lZ!6p2)Cb&u@^MwVUaEEau{KyW zMPn>o*SZw9zdN|2THoD^z$4WzF35=(c(k!6zka|=z06>LRV{mcW2EQNOJ|@ ztRwJ_wZl{CdTl|vN1Ir=Z6KWaL;2Z0Adzebi|mZ~O7#BDje7L^dYjuzf5yn~cUtkG zMMI4Iy1)L-KA*s~wJYvX{`86_j{XMrD>tm11HL-xl*?DJu*MX8KfoyJIap)!sRX)y zCntXLGw`N|i&d%rfAF%gd;`9J^N-%-dkKBA%jPv$cT)0KnsX0sk>ytcwoWjaGeIi< z{%JSHpBxX~@@%!izu*N!GKSFo7;$gY@7G#=|Nf;!c4ijd50<4~F*w%4_63#qkmugJ zF3}t{B~_W8uTPUpun@Ze7iMIX-Yk)Qt8u?`&gg4L!L*gH9@wXkqxxyE^|h{M)L-dn zv$x>%WdB_1f0n1)buI%7+B9%(*beV}uwja$y)UIlK02B+Q!EyIb$ffY8Q@KM_<&J* z8`pK60Dd#(>`!Xn^?Aknw}4GkKb#s3#(#$_p!Yi%Y0(Var{s6{t|hXwufWfYwkLeW zc+u0)*LDc_*v%#32DmOc(Z_+(>*%1p(GaZb9vDLXtvelx0)9R!yNe?@ZN`C-Dl}d+ zNDd7K9}G@YsX}@ersVu?4xZa7^6oou!20f0RR7rlvpydLpRQRL`-9rY-s#Z^;9ssB zJuwXT3u|e?OJ6Q4b^$kDyt?Qb*w?2=mKr$T=CxTcI75=Tp+l^Eyi@*l#?vveva<@o zm)}{qPXG^`-Mbk*FM5#WU2m|B^0drEa1V2TJNiD6#B>i>nCnsgqt#Cy2e+B$TNw&Y zO7otP0WMus>r3NB!~FqH55U?#1{59ue>EN-nh(A)YmMqT@VUZNt5R^k9QCZf!3G&G z0_lAw-CJyT9ZW|hz6bx2*Kn&4Z1pnE@B=-M{!i(98roME%WOEXrq$NvHQ;R%opL{e zzZID{E1|qU`G=gRJ)1+?Zu>#?qeEg`u(eBO*l_TaM_0=_fhmMIrbMQd0j~;5a+(4T zuM6qj0~|h}s4NUD`0BtbC>RNDO9MTP_j_%-k`Jce^anOHo=1J(I6WC$)@}bC+LK!6 zh+T(kB{E+zu6G-pU4IXJwk*w>_Nc~J_Z0Of+LE8r&o}Vv`U31oo6m!9TFrm^5KJa) z$2i$pY+%6$4c@cqt<6dBsvqjz4dY}!81QvWm4<RG!v?s4+|WY({x)EgYAV$j(gtTHIpo%V<>aPJZ} z4b1H&!~PN3u6TdTb64ilc+oILsfxy*mJ1errPxtINy^9Z3fKAlDK1c48 z`eR!Pji?H50sEdA;*?!P^b5FVuUzM5YxtCP5~}S)3;p zQQzLW%kCQO7b326Rn&?H)1ig97c=jSa9sO$dhl3n@XA*CyJ?($xD%5&{I;-OC(%eM zPpe>|?h#e+nD|!qHF5H1*>~(ale7w^Y4Ocl;JTO>pX~Hz^!t3hD>vv&THy>RX;ZBS z*Me}Z2-iaJHN1T9lt?Sh5Lz>Q%%XhOWpLlm^-;7YxWOy78)+{2`=cBiBr@Nz7{?If z3St`)+k~R;n8!%ChJd#x-rjh7W$fDmzlY6o1=#;@mo7W0)f=z*~2Bn{5g9Qk$+zXCw<}41kwudhOi<-t)c7 zUWz$sXjXKO0}DPCu-Z(2mAwji6ZSv_m#BsKNTjkoaKXcxxrVlrHudRqpFfWY@R$LQ zDR3V>*XD8U9@qA9?H|_$^72HzG)iP^;zYlw=m+I~F{&4FO&s?r9rUv66a~(>+0&kU zrrf8>eXe{h8eglypZy;`te+B@#xJyXb$il9m@N32P3LlmdUjEduBh?5*E=bU_C%f9 zLlQ*ar?-zKhv`gKVcq~HbK(NHyGHn52!!J@de$P1ovl0q4EE_ng*DjVpJ|Gn2|RJK%vNUIX{Y zQrkHS{7bv8+i3ownm@B@Ao$O}W}hNEgU1qhtbxZOxShf65N@Y%J0^AaQHydgjJYVX zn?DcgsZMJ$!yQ)-p!98f#hO=xJAA#7OLj$?`l3==)2Xs9>(Za#7bBEoXwBAG?Jjf4 zzFhC2=ie7hM_N(;)F#mv_)O)x3@Q&^{-{T462kXO{I>O}Ym=ZUmFw0-otonJi)-5E z$0dHEGXVcA4tr$*7S38$NQ-|r`FE9T;&}SVCuLDs8zYXjVjYWhCXS7i&$hCB^7cSS z8V7)HbvhX|80=A)7#|7F%k=9^EbQG0wmWoW8jXj1T<7C3k2Uf3!`l~cf4qJ2{Nlao z7(ij3BgR#$`|hj?rGEA_^Y2f4Nc?w8TRd_fPEHZKEGJvAXk2;+`a2)A49725PX;l!`4>9)e#TJn>NG6C3b$r{sflW+WZ4Gy)vi zYihGFaLwsu>EtK%Be5#Q(mh?~TY?3<1l;1}#8h2yLC+bQ6ss2V#Hkg zaa=pcwRK#3$Ngm7FT?$T++WAF23(84WAj{_!Zkr$Gt^XbqeQOD(Nxc(uSfLdh_<3= z8&W-sXN7XRk=vErFU0*u+^^Ks@1jJ@F@!Z?HMe`V9gaNzzCE=y#Ztt%p{Prue2Htq z_`I>Ar=4***hi<-;wOH4&3*pe3h>tV7ZWJ1l=FC-EA2V9k`7@7CnOabDdAbEm4$mh zl*r;D|3lZ6hvk@s{g+Z1SsF{0i7eTdQP!f6K|`jIB{9q>Tc|995oIZilyxX2YbZm6 zs1Z?8BgdFc9^!sovi z5ccVj+}Mb&I~V=AJD+g1@4xo?f^gV2qy8KhTH`~ElklP$9_v#G6ASgMOIWe{b!uFX zutQeKh5dvB{ci25r1l4KQ9t4HLo45Mdv3p$G#*Ddq*cN74up$LoUO(ZE+3h*q&vSK z1vYaT*S;{fNpHg0EguxIUmV8@bFwgJ3v;?K=L>V^&<@A(rg`Jz5)?m<-~ct5MC$au z7QsnmKhB{?rbn5793Ifcq;7#4Pm}Jgo*VxI=Zfqb8*%O~;p1z6TEjKvjef1^^Im7j zH;|7YUqL>DdspN0Mz%(cT@ zJj~TYUV^;kzj%${J;;lYH{p2ExYyCBIatESS=`{?>8%U&wz05PID$GIAU@ z5T>_M*Pig;QMGKgaGYW9HJvlzZr!&%;j@zye#rOtAbhCDlxe#N|5;h*8@4A)2fGa0 zPdGB@jq47=6I8d-z53dCJ7E^}wn zU~PB8M|8Dvz97s;KaC(Vw7^ZMde@p)h625W@C3+bw@2 z+%RYqb%p6_lO?Z3Qwek*xC%1b$btdB$Xa20udTPa!lfH!Cd_QEOhOlyWccdCG zp}BG@Tv07pn!7=fL$-tx_T!D2evk7-^Ug~^vE#(vI-t>B=R%!6CLs1^*^WE)xms>K zuZLFU-&)hPEm@9Pe5Qb3ox47~FZXjh*e`{!X{~lMKk>d*>Q&=B;X3tek1FHm`mHd& zBs~lFb=>z+FQDGQcm>8YP+sact5oG|Be8a7`jv%nj*76Ag>B6J7H1ow9sT_JH_n+m z)Nhi}y%%R*2tCJkcdqXroL}R1DQrTH)HbeD^xvUB3H`t5A4WSK<)eOb`mW+n7e0X* zThiO@Bw5N+U4!05>TP=2pDwQPc7BR}8=HE;vaNLQFkjacKHJ%IcR|ZbIzxX0`U|iI zPt?F!EvUKXo+OKS9?8w7vr;1=Y)LMA;XOjw;FwUYPGFsnP><^6#Qw4?Z2+o4Ju7ZQedaqs8_}E)HoZ`-q5be|xj%7C*YiuWE?IrR04C# zE6$IZYvky(p76o!^{0O$Je`yH3A?dDB;j?{zI5gMna7{U3=NlLu{X2#yhFGoYtywf zonagv?J?wmC@=N9k?8lFxnbA6S*OTlHVm+!`m=d*Ky_F47*C_Ovlq~G%d!b~qr=z8~C?-DoqQnkuAvvZu4_&>wCBWsV+e2YOG@r8^#$dnep_l(|BTpM|4Vk+KZE_meHr&{ zX8YCk>4Yz|2>cX4xNb_YvmfCfO}qy0CH(iz zeQ_~_Plm_0U8_^S*|9@CLz?i;RJ;6m>DhC`?d^~9v+w3@3?kfZZ)rpd;VzCf(l~$Y z;jh-$(h0Y@Z63$%b6PpaOJd8tJfo`UCyoQ^OVp>R&rr{x9>VdUaplmNVh;!%B)FyE zn*U#SuF=~A$U`R&=%!01Ji@M^g#8g-0bPo@CjHpPWZOf8_be~{k!#kg<&QmaO=qaj zP~V|G#F}-iX~&v(tck~(dE~{&n~_&ze`(y!D%bXIuBGhtGb5@4lMHq++UTN zZ|Pp-$HV70- zJYf!x-e$kT!N&!B9sPyqPegws`XkX_iT+IVccMQO{iWznMSm;$V-50rAP)%rLg+Wb z@uYcap;7a8G3G1gT=)oiUPRt5z8{OYu!XSG!;33660T@>#)IQ$oKDSg9Bdo?kLaI7 z|0TYE2JgD2y0u1K2ZB3dEtueH@;bmgXyld1JCTHLAZ?#CGmDt@X~* z>V3~5)*$`@-LW-!uDu!7u6F(ptqKj2E)uOSpa6NXPzC z+e#e?;RamzLHB2S%=yG|kiZQUB@GF8HSXJG0 zYnQRM8U5_&hetm>_MgVFl}4Nmuj<&W6IV`i%xlw-8Y7b=9W3wfFUw+#uF$n?=DxMNv9%Ev@nQ)!*=_W4;n=g+1iO&*2eUADb`GAn+g~RI0frQPr zx+Y&F+^7+)Si(!$(ZuZ^8F|f(Fv>^$Y^_nh-6__xSi7ki9tS2%Yn%I7L+z)y#YnRCW2Y;O&K6D<2savO3y4&R{$3a&W}(c)|)VCS1>> z@5wB}dvCq=?M%36+gRrZgwJ>QeY6|lS<$XTH6(9Q&cYB!!p&wlKK3On#$r;JMblPl z_4!x_hPwBUB%EhDzR?K6mUrKect<$4pxBG=FHV~mY))fk@zKx5fq6}&_rF}f^R~o(N0CX3+)NCH_#qIdj;(ow0F=RLVF4ADFb_J`I*Dx2*(7{ zLeuHrt&)sKi)#=*aO0P-A9ko`7}9u7<3GYvEzOT66MpEfSIWBh=)?Z3^1Sf#-`0yDggq3eh6TY{Fh=f+<6@+h}dgnNXFs=t$S8X+_ zouKG&n!7K#cvGk6%z_Kbc0xf!%rW-Y-kD%Df%gM(uT%4i=Nzv^UW&XD`M5h5JQGeD zmLJCZ`B)2I+jvP9d>+Z&PNVwK#2zU2Jdukc_C(o_hIuLtN;~dn{P{%D<;gn3{S)_B zj9*oe_tIXYp2aBMt)D(*H*TTR>nx#zST1oEBff`d2c!N%{f7Dv_2bwTp61OZSrS96 zO>GD(^^{e-_b3nbtAlt?#5qW!Mo{FYh+Gu;J;A&crB07<>Y;)Jt{*qbObHw|79IxmzBylL=&iv6h!r=={hD_2K#xF2m z80|l_57B-^S#ex&+!T9*u=i2(_}YZ;H?F?iOX|CsCcJ+DVY`n9n{j_a8!v3k^3EDc zOn|U1Z(Q^Jyw?xUp2zLsc+j|Z)u`)V#AcOqk+gaaD|}h<`bU0yG-*muUWESMif?LG z)S|W&KQUpm%bf%Go1P_K871B&?CI@r|2x9Nn$k$<4CBHWH^#U!#+}jchI|_NHu7=o z4~Ma)X*G+9q6c`TiIJe1!X_bVX@NhoV2`<7(O;9Ein71# zSQqsMJh9OV%NOde+g`NeMW-yO*;TIg36y&96RZ3kn*~<>Q&T|25H3yLtkSkEJ)UQ( z3d;;uwXWvn)|CCfiBHJnN1E>Vn`fjtH`~XP>8(4>3i{b1SsV+;vDmmUQz{b4WvohD zzu?j9mb6H-P!RTvlMK~8KB(1fG}<=wim!jI5rx+H^|0tvnPoq@`BM@xC+y>FXFX%9 zsz+FLb>N4SCkHBpTG!}lOmrr489bOTO}GHf0GHht`NDN(sBn2z$7%j9MSpktEK_KX z0r_0dGa#D1Nj-4WWYzZdE+|?)Vj?$`Zy|Mwg$GA*^;Jq5Iqj~^g(pww7L0Ag?=J|u z7gdx_%nq~h=DrFYEtXXue%R(WrrFD`Bbs}kQPc77$GW#J*|^B=I<{smI@z~yEm$>o z$}0lhxE2%>mQ4Prgavxutp^y)894iPbVBGl+k1}0TqQ&y6eS`DIUz^*90gbDTi zRFIb6MQl?27H>Ez!{b@t>lw}YE5u(x-Tf~+?cQ!yR~Uj^w*?R!(E%zAt#5~ksmWcX z)_38B@|Un5eH({W|43~M!0|u3Lrlb3-97ziZbG5%|3X=sN4w{;)1ZPdHRcetiPhU)LBSLq)&%n$3O96+T?^`S3qBi_76!Xis zbDJyQT6~A*m#4naYR^eBxn|$XeEQ@&K8%wGz46=Hw4eOOEkp#a*O~<3Unzi+{+3aW zdq+JO_1rni=p%@E&dPiOi<~&Yc{xHe42j=GbfFM~3C_(sGiBXwC&AOX_kKUq9G`UlKh^*a$djT3;T@_;6n9vweSoy0Mvel#I5{w>>xu{c7cgf zG|~VsJ5lV+efzCV;9dE{rAz99wZU(78)E7mdy=9FRcD@PK!MbnKzJ*B`6 zx876;yVQ2WVk=h}s3HH!H*oA`BIH|$KR{NZ(>CAESk>ta`vYl3&v5HyyjlvH>rl)> zV`D$<@zb;d!$aP@1$%X}QJ1p-;())Zza!CHFHwyty&F%H*p)6{YJO%nIr*vPbhkxJ zCh4$w=m^LqHv_wNWVBgd0JVFBxOzu|fICoAk z07F-C{u4Q-F z9ZU!Yu^AFdU9~Z~;OoH#e>a?6oJ>}NTuQ2>KNT_VbzF*$YN;nx>s#&?UEK~EcU%Vk zGuJcvCP*lM;Eatdk6s%66-G8hH`yJzOV1O>fO1NXjf3pZEF04AmG;?+5A`WT|2)x8 z${ji)&bbS9*X+Aef z)n-nImLw=uxi2b}{sGId&rb`WPyS!HZn*x#mSJC<7M*mdiuJ1bovdm2UOl693t(WZ z$js95S?^BWFQm&eL5e)^d*DZw=!&qy{A!Rl%zLhNpeciQ!-k^ZDp?ktx;)#J$5ex6Kp#RF6)lIk-7 zz*86PLJjFnOxVInzHRmDPfgK`S!gKfIaqJqD%15H_|mKH^}OggC$=Y5o8ScMT?ofw z-j|j7vY~3wevWPg z741a)o-6b&zx9_a0yBM|lxF*1o88!h;^Ek*B->G`Rc^c>mbG?&krRCtsGxK-n*97{S&nx7ATDJ3<3 z)Q`KdL^!FG%{EY0P6{&&nzO04;$JbI)D*4b@1;JU+Zo!nnn zxLwOnlTHBMrIs5Uy&RE7CZCoKQ7L1Lf_yJ1x>W&VwXVGrSthUK3Il<;p5{s8m_ zEIuD@e3)MPv5yE4@iE$h=K8+du60%K4En&YwhJx+iwn&j-bL>DwsH40z!L1yA*;K9 zAaoMxolBP2Ls)YN<;#~)fRO6xfe_nh8R>Wor3Ktk)vYud-%!h}86az1BOR|x%EMj% z)_t+t<`4Pn)ABHdQTsUj13fb!dN$~HWw8AsFlmOv?Xz~~6xOqM(ds-;fSlr)Nd9iG zq(Wls$%SR-{>jhi+gNSQj}T7s-94k_qJE2HwDMHb5#n5@m6(eBE?{5$=Okwpj1n(7 z#QY^l?-*zU6z+}n89t4@HPm-^|KamPL-(p5rGYv5PclOlgOnU|g|l5|OX$dw6r-Q=EAH3+oE|{s8al6gi2~S`ZwM$O8%dcs z4U5td!Mv|OqgEQR?JcXb zAqF(m@$ynel8@#InTFesLCep>ZZN05j#DiuE0<{g>{2LO>}N15pV0g z7re05JDY}3C-TnwAc5fU5xG>CxUdO-sLF9rzkN^s`r;dS{s`N5yKW7SzyzpZzL7wq zvjo{_87fBe>5bg0@WutUkz>|c1!kjVQ)i+u7@)da6dIG7Ch-C$WcOP6>0af4E8+^@ zxq7XC_jI#bbs8f(B#W*DGDYf4J3ahC;W(#aCZs4j(VROUa7Wb(aOF~sQBnALvJMCT z>cLylg{SDT^*|q^*G9$z^@~0v>#8IFmQ1QjZP=jiKP+3s8oTH|1>SDgh!}-Np95PouxPO>-Kj5Efu!M! zZww%GtU6CN&dMZ{gY|g=Ea_OZ1e_zc=>;v}zf8q%r+U zAqw{K?&)KzZD+1*y$`Y?T1WNt<(GLd>(yrQ>_RFU-Vg#%s|)*1%QWF)H04B8aM(Y(BwF@i{wYsW)F22Qyx$z=p=-=GS&O#OHRp9@kA`a`yblvD^G8q$5(8H~ zyBp|mC0;U%laNzN2njWEEC`Z*zPT6Z=f$VDnoedp4~y|XHlIZjSrvXPt4yKQd0@;Tln1A zPboC{3~gKE-JrzkDB7&8{XVfsDER*SQ|(WTWc%sD)!%nIOXWzgod8jo+)!ZF<-`;v z)U8&_uQN~lLSM!wMh#=%PLGiPb;ffUd>pV1NC!*;sYjo!QckPiH~zkwd+4-n9;#^y zj(v1)>c5_$6cBoG)4HiT9Bzn@7QwkK4OFML%crr*N~(Arp}OR4Q~s6YoN+&h4#G{B z7;RgqAmE?%rrrW6_~O4k@JTX=QYww{`+FkgyT-;r$*c$8Bovq}zueDewHH#~+>^h50rP z(7A0-e97G_eacH5Z;4CS$xqsQIojrLlMjXzOFq$h!zI+3ial+O_xHZqv)})D`fKms zkkyEeR>+^7TQ}tbO$*`;mjJdt371AOe{TYswb!J=cVf}Pg-sDbJO|C{*8%xgbOxF; zzMGvmvUrEcJ=Npgq!X?)nAWh0W`4y=|0z7FHsTzQrwTUawQpVWc7^Dn^CR9azi4q; z$?pB)W8ZzOGXy-|{yvZ4CaqG>r{6I8?R(MHE+<1oOI|mU$J6asW%O|aYCSPfEB$@- zf`4{M6fk!S@@S8CnBb+HiqX{lmYh#%a>_=4CDZFcTRu_A3H zVY{ZkRO*ESV2qk&n;J2Te9kIB8|`4lB>tU-3rXrb4HuJab{d$l==LM^9r{&B+eNHN z$1E>>S;Dj;V^QYo8_;L|0Re?KPc|Pl+3)R^w7{Oek6MP28y^dW;QUyG5I8?Jp(C6h zrzVtqyt)KG3rXBv)8m|O+iT%+P8v?0hIAtcWCz@jmxT90=6$JYvxvEq6+a1~(nUWR zO?xtEmGr1tH6ARpS6w{?c9N)ce5`WyVPc?A0R25d#rAZ8!Z`_VfcB8CR+TO%NLa>xWtMP1v1nL5_vK1p|Y3-U>I;*nM z%xE$c$gO1#KWMQz`gtyjw^qp37_75R6^p(ev2v97&I2QzIL9RXd@Sto(QO%uDN$sA zGiYXqJztlX7KuoLO~2G1O$Q+8u?yuUBxXGyYqhN_magNymW#qtroX;xBE$chDE0u9 ztH!scIXy;{7Y}(6 z=mvVdqv4|&gubyn*-hNTS)xHG4n2b?^-@FQn6SNGQY40;@ z6`rg3fj8Lb9ZU+&6fv!kXXnwFOeSg+OG0^uN$Rn)dEX2IpRQ91H)uGqE#_pre2-7h z>E&+^hT%Ja&pcOrZDvsujSdDmpi}jwk4cJ}>}1syimb3Og!ZwiBKzb{!XK4hCvshb z#&FQeSWElA_r3-}5H0WJzrKc=H~TMPCObM%$!1b3IlZJH1#6n&{JCK_wnNmN)k%H5%SwOfr3=KN*raWLY)xAL)3?sa^v zT?6FMFAVpXkl2>vdVO3v>=?;!oD!1OY6LYnN(!UbKD@)>S^R>B^S@B%n3Swy*S(o3SL0I%`(xod7ckgciCh0;@^&p;g(Sos z7Lk))_8og+keE<{KdB;F;kxYT7FH4X(Tfb&f%`KibLg$VHIH{HmZZH(->vuoYAS>L zZ>)&_NVJFBa41`_uWNGJYFOvA{7q2q^`THjE6 z1nLMO#~AXP_$w4}9GLqiH6(XY0MJqmjFaEZY}on*beqF}xGQr$Rdt6^of!VL_A+fY z8hAglebNLiT|^=WK%(EOTEd*3zPXs04OUkjbJ_6TvyoqieAm*LR8zsNd*8FOL9lN= z;{6gOnO816RlZGzj54DVf1vHp&HoyaSiY)S;fs5iRJaN#<+~x4?=Z&T)$}b=8$xNM zTn{IRN}a@Vi#HPL6H5Sx36Oh#2i$uuTQH zmOa1}JLY88wY1v!gS4_)3fUQTjPF`&-Jj+yAELJtPa7Xl7#d1EqF&yb+Oz|~Zq8@$ z&W3C`Wos!LB5fj9z5% zY2ePG8e%*699$s@WOKg0v{(Qq^ySM9r11F21p>-1Z-U8r?6JH5KM7wdOeHIjx%4O; zE~!l?%H5|Ma^?P7bSsqy+3!`KmDwLmBt&%qqp&jU17Fp%mct@Cn*WrxWHaXt-4coLQLGr`6QuhzCL18Du%z4w{-^%n^OpELN{?j z(}}BZGfPoYI~{+rv_|t5O13LIoy$%W&6CEMO#c*i;ga-8H@k0|B7O3iLw+Y-Dr~M@ z31NvM`bfX!d-ls?Dx?0WBOW2H!WTJaq8lQ0zHhB9??0Kg=IfrGHVq#@em>$hL7(6s ze|%*TX=kO#`QBs~GRW~=ysq}8U2=9%`)U1Jtxsc^oF$a`?!d3$S7FF@(qMwDzWIx| zwi1VjZ`b)s`==SV?-f?2@n%+qvYtbzr-sD%$FtWq7uMZGt{%tT2l~F7=`5~vsB80= zOZA)tPfAa+3*1zftCn3&r5URZkqVq++z&3EI!*dI$y*Mo7zk!FR2{8j2yCn00O?VU z?tkx(<3*3PFh$BtxPIo7CATwNw+SXg4p$y?zt9aGoxBhZQC*I@gC{vuV2k zai#3ppU2&I{e5_H?VId&54xzWaH8S3vEry2L1_Rtrr73l2q_i)cE^kq?T%(* zw9Fl_ZP0wL@(sv1zE|PZPAaa8cOru0Vpd%d9>b?+f16yxAr`FXTf%-(Ez@k99k-)m z>XQQCYj)hXpoEwFiMtda<@0{w(&8-2dz`DC=j2DrNA_pEP9M-;@%js;Q@SjicA%{JmH7QA&YHcd zsqED$hpM6EjPK3N`gdPmhQs^l&s>+Pt9v^y=C}OSM)OxZT*bgva9z~&N*c?YnNQ0W zE6D#VT_@z;`-Axile-U_nE4(Ep-HRIpGi}4RM&mVz!HkU4JZ`Z+mG(qh{ z|3Yo<3I4r%NGT3RU7(c()J@y@_JKLKxyo8Ld4P?K?7yz~Xou{crV0F@sWeDBmUZ3Q zd7mu}{g=-X?0qE2F1M~?Q~k8_w3INk6l&0>dXiS@^f^{W|L+$in`es8N(x@Hq}G1K zIvB*?@3pqR`{!l9d>E^XprMrY^OSy`7e9QWd(Cg_v+~h2@zkaxQcJaIn-;b@tPM*A z;B)bSv!@X)D12|V`hJQ9g*z(QA@!4N!arey?_yDk@*X#*I_*6ke_~Ds%z4jb3NmOZ z-vouR9b*QU@sD^ zbiMM@++b=uZ$*D~l;&z#nOhB~GC4QmPo#T&vCVG>As(r00C-9tOYKTmU7>C*M2|0bqPg50n=V=g+i6IogX#UE6udrP@nIQ0A2 z)b-i!t_SD?mZIH9yZ5%(`X2^$Fw^`F5|vkQKbLW9M@mJH#IcvH?q?VXo-ZC~E; zTM$Tp&u3Ut)zc%_$3*VemZwbypNS_J3pEl=i>(k^fq$4k>L@W#yTje{COzcVG=&4qXjy--@2)MEq_tMAKWt-o371B*ueF6_tnclf;Ob*A_CpNS zAWe79ylGFpoMD5UYMp&PM&Q0huEu|a2PR{khp8qxOJ^o!a_lSeA4Y^w2zI}^-ZpVL%#ASwq=P{Z@Oi8R<@tp; z_;8edtag;hiF(Qu0M_=&zrSFY_0Iez?4`yx@7}J@S=Vwn35vxC_S3$T>tQ!U+r~-! zzCL=jH7Ew?J=BKUxcPS=YVYAd~nq~ zi9bDBu_^+rdm5x2~dOb9fo2IBaD3It=2?; ztgd8`T%KOp7s7|IW_}JMf$2zSBW&>`o~qI+t^-jP>3qT9_$h@OnjAP{g`KK$BMc>(O581FvyC^j$-Jpm5q7*fHDO zLsrc$i{B2{8^TyILv z*D)c&A!m{m5C-n0RNlS_lb*L?;3zuxWkNP&11k#dYe8*43!~21+^u{i&E2}od`KOc z{mKgpe>RT|>G&OLFFoe(FBFMZPYR_bi*XIJWg_WY}L&h|E| zb*}a~t92gsv#WJJ_Wby|0DBvJU5I@SzAnsu7GDQzRe47g#D%dQ&oi{DM9lJU27iC{ zv9w$5$$>&4`f7O5gZ#x4Hz>%zL<%~ac7^#!=ubGFl+~-Amu5Btfi6Nbs4m;p4O&Yl ziB#=*&4YdUpYX-GzVPxXWp}McVPz#&LLtMvkP~&U1W85?;9qGH_rO_$?*|hG(~ja1 z9CTYTuEYD-v75nbm#bvWF`?2%Rk=|;H=ZN5>-T=7bIV3l`ycu7LYbyxLMpF6;QaaS8P_i5PC zVeoFb^I3x?{d1Rp*5}eV1>&hk&I6Mb`c6RvN50$ZYY-M%(mF8zsKWz>{h>`0t=)E1 z0F54e1nSGBe=s#xilm2ID~&w7n1lcWP_v!zBxuEF7VwWu{*#tqqfc43H^br^zn#6% zujTtbFiD~cOJ9LJdazE&m~4^o886a~T>0}GWb~W)7Z-&zM;G%&% ziCuM9iA*W+`xUZ*=C7W_sGDFT^vu*M3x3zEjWrecFKp`T+l1*}Q4PCRk%?`OBeC5} z^Q!C^N6gylGsA5sb}0bxK1m>-cORLB9|sUu!D{GPuu#{&KtA&>Aa;;H)Fu|x9(^!D zcscy~k3KC=jHxM2!kPJRy1ox3avnsd`lkQMPyXBaP*D}ot{Mk=Hk<5>c!zxr`9x*h zd~wr`^fxOBUm(X45nD4GXMA4xM3cNfN*huHyl>TZraXuw^)AY0>A z;%IjBn8f?+9xm9lfO99yM(JmF(VGL>n>c88(o;$l>YyKLMvt`Q7*j~tpLegcn7bGs zF0ACV-OKFn*vdRed@wT_%Jl!1a`gV?{E!`FG+q`^eFh<=hHL}Dxu_+O5bs`#E=21B zwz~aDafi+h(YlD>ox(_E?QCI%uFEXV#D^`oCN9i?Ge(jMu34pGVzDPHp$Gd~O7CgE zixPBPm}?egBx=^TmnM{st3~!-zS1`#ZwLww-aW14S8CyyPM&F7sg~2v7i2}iS?U$D zNhE>e(OZ>|{?+G9_w?X9oNOuu-mI9VUvf1|&KsS!bm+MW#^nj#Zojs$$?E&w19#r( z=r3hF7WYXD=wed18?vvj3$XNCy>`4&8F`?((?uki_E+zbKcPeBzx zo$7Ha=@$R&qN_ps8ry}f+YNT(dW$yt@{8(mi*;Ytt`90Vtd5;_ky>#;AAmeE3Y(r| zvZ0wvdtMrqy5Fv)4hhrQbe?I71Kk%y35aZ}iK(4Xt&*mo7CoPrudPf==vESGx?a-? z)ipCho6W}))=l##C*vaO9foi5GNpua(~9(B{Tb+ZaE`*R0PEOgwJE>ajbE$^ozr^` zKdS}TmKNPkQ&PU14>X_7sp422IpNhb*#SqR6(K^4``6)p$ACWkBRSyOfS!O>p$V^- zS?x_f?~Fuv0xzVQ)ZJo}2LnJjk0uWF+KuUtRZr@R$pIksV_L@&laR$uLsXwAzl9~v1{ zAMWS#_~oDf1Z~TOAMCl>`Brw6#MWXrCTeh;^mY|J=f{ktJc)3ol!$;&>gDQ4Vw^W_W z2ZXyL;KXeLYvL@)UwNFonnA#G27n)Jd%S);e|O@WnVX{V&tDUw6II1vuIi{tzGMX8 z{G9s_gxIi$w^t}HFzywlZ;lcI_lXjJkbeMR4VPc{bTkf9*tOy+U3=EXIB!KLHaDL` z8ut?1kf>gQFEV_s6#h(=LAzpiC9{5XQ~oE*3;aKm-78nTP12(NtjeX(%$Lue48|i-3<-@_P90V`@FoPwC>4jJvG2uUE z>||maLCQV87In)$r)lN)iPRkb;osGIdDT%}SQ4}9-^16{q?FTNR*Gbl*uC%zQ`{9T zl)0i792i!1F*=HuP3TaPC)etsqLk2_U(A^$NKGeudr*;2V|Ns6Oa1jiwcB7Tgx;-< zt7v4a_Oc!kuO9So^luDk@on*I`KC5>C73zPv&?p1a0)QEo+~~e;)*I4cdI5R2W-c8 zoM^Rky^G)6nhkx&5d!!0H9Je9p(EPo_TDEIGyBPSS}S(96^?Yy9h(2eLsMFlg?d>+ z`-RL;7cNzmglWW{#)WZHk?mk^a|!1|B-=C~SWu`yihZY;=3-BRk<-X~of?2@~w^C3hu8!1E)oTU#NU zuQeX{OJ$~KVLHSDL4byXWmi}EnvGl)wnSVfYxyuzKVOO8djurpU->cI5Y2G6tSYkI$6UKH0G%D&TH`^nm(_%(SNYX*rn^$M>gD*)3o&)Y4;{)7#Q?ZyOBl*!Ryz z>?8B>bO3CLEQme@L8l(K{x%oe?BWVvkgzFjmlXYTLpwLBn7YI6$-?sc4jntxUr1u< zndWwQC^g6QOz+c_{#oMuV%xP*comvW_1ngiAp=Vy{1geEsl&j8WS*%wO(7|=*1T}P z=u@%fh(#q1G)tHIf^~~Wf$)m8lZ@Cf16W9Go`4{>S%-CmbYA$hE<@<=(lJ`*6*e;N zZ)P$+XjKiqJGD8*Go14UcmpypBEyN=iG86t`>W-ICZ0kKNzWaWD59E97Mn1SB}axk zz4x(;3R_E%RyyxvJ2`gvOn?9EH1DhCr?#j1rSCf+am7zADGDs~XWuNp&!7C*gz&nv zsT}0BADfdE<+o*Df=GSZ$^z>{0<}szXSl{$pG{bIrJP* z9tV~{n}X-Z(=^|5%&WH-zAY&x20rPr^xf(AWsr^agreE5jEXjTKg4ug5%38u;;5V4 zBtH*Z{5jd=Zq;*%aDszL-NTh>WY6-iHMMs9^nbW-AEXogUIb)4hvW;X>6q}d`V4ndtizn#5<-Xg+6{9IfLTT31(Iw7$7sS^5=$y?j)a6&+@S zCU-pIpPYBgcT*9zO-o{r%CP76eoFY9INuNHh*`SEZyxa*+Q_f|VI~>rTrb=}n>1?f zjR?r4{hN#=NzHBcoA{mnq00j^RtWVFyNqh;UXWv}_s}E@Im}`JypZlAFuqC0&%C*J;-SVz>G5x$ z0scw=EXS9%#~}#)N;Obo!3()*whXO<279sG+ovwO`}?)#DXDJDMq#aOiivjVe3i8? zMxEs!B|$K|S$2Oj%N_D6pcxmQn&^LcRLjm;&|1?4sxhz|vsipgitM$=CGY~xRwBon zHDx^P&LBHYygxLmm!@0$3=c<|3|}5J7fs%!)sIYvscv(iDm=c@_3hc~6PI1XujL+& zPIpS*iCXb$XL78PGs3w7M_ZpGztgFMKLg*ia}LJoyuvls-n;V6h`a=Pqj-M?F$KP;Fd+hkElt%LNX#d(IEZ z4DYpM-T!|x36;6kyK55MsQGo0tv?`8zj|@5%93Ai*7NN*Zkf0jD9K_AjYri`9%9~olWS)lw=Hjzwh{Z(4U>G?P&IsHj;KHudF@h3f`qS6O)IqzPb)<65|V*|L7HT{0`XuFnf81}+eL~dUWrD}L^pG1%_$j!Nr3&*ISjy_@7HW6MwKPW(v6NX0wPZ_*7;9~MUcq@ z!$LMobxAkyo#VJy#&_vJ%0!7pb!13JPFk|CtwF5p)S~g23fImc(!UhZGfWpdDxV|z zw++#ij|g+beQ-ou^&l26=oEwjd{|z8v$)7cevu8noSSRQS!s+s34b&LE%APk*zCdm zt|cdMBVPCtNhbCz2A*f_M`AU2lXos*N3rT z?0UpzofAh?Lgkk>iTQoTwyE$&=5e1pu8{h#u14(-gt#gp9I2Xw_AU9D{y@PEc>vv)ciyaSt*F0-p$sao&IZDMeC0u>aZeRhOr?wS!VP z(yrbQz8)iTS^S@L)?(3Ge{Ru8NHsnbP6)47#|obu+xg5dOnX$<9nN@QbN0DVK;UY{~BI_fp_vLY@~A-?>3 zZ+%3-FzvB`m%xX_e4HDj`G!F#*5!l~5p>OmW0m8r&1LTuZW{?aFo~Yl^7YOM)L~}h z+ixZ7Feac(kmfe~ywAp}nIRD&IkSyJv+~&I{rH=o#LTf_hW7jR%~KYErLN%+(QyeSy4zq@@3xw)SO=Hz2)iAIpaB0@?B*C$F~^b}ADiL{{IKp8m87y-Gu! zwMZVvc4-h+Hkp%t9o6%(c-PAp4Y<@erWJo)z%g&#;ZSK0;Xb;BpR#*7`Xg&2{OD+$ zk9!c(95PXqimW=2jpV{pu)Kn7E5>)gn0h4jve7g$Z$A`81>3a~nCvZfnxZB}k=_eI zY<=p9F#_^x`Toci(9rJ3$*9~TU;Az_7yealh@X8gm>(bH=~FX%YpU{*Xp34NtnCE* zO35Ys{ZwTrUO1_l+N_aLEbkS2)=k0=eu;4ojFz((w96hf+@4Bz-o|wFFbETQ+cHKL z%CgqDB=}}S;h5!_04kl+ntpYsNLFpD7*>c7xOd@{z`f(Ga%_zz3F<}ltLgL5^?BXhC!52~_3=a8Tbo7$;7FP9~C-ga=#V>waxKPXq!m|7AZ0G~WB zV4=G0YrELcJS9zzFzO2VLhHkeS+}NIe}Z9-M#)6^ zz3DqP&sne~cf%pYJ4+wzo!=6|5qb$puay}&z|IeK0^?G+jAX3erKvZzV*ptD&#M2* zgPRw?xOMxY&^pHE>%=+iiy{pm`@GUp?wgu#o^zeOV;Ap)L#Nc%g}^-;!vZ>Y|x+ zALTPr_K#tLG=;sb?!;2yLRFss(mJ>Ai6`L>nJV3uzsJ?Wnq0xgpbi(@)nV{H+R8|7 zZVw19X8Y{7q4H)8cBf-}i60arh9a4=&cCzA^%-xouj9g9 z^VO>UeHo8&pkJEEaG^eYpS4s^B&yaSzm;>dx{F~RIezdFI| zNavgoccfpNP;sPlP3Sq&uTNMw(zz#G9qBw1A&zw3i5N%vjfo6L`pt<_M>=0Vap$JZ zKfoi5jm6QgGsS)o5vXN?(~J=6!ucc=$%M*G2jGy)ap#gz$SG4s|Y%8!m6#I(P9*RSS za4*HFLaUeZx&qisc~b%FrMOkVdns=#+IlIT71&;icg1Nh#kWGZkK$jU)kg`e0QOOW zD`0&TPzAh?5?ayLM}bse`zX+g(>}_(3gLcAWQA5gCAtFGPx(**>!*Cw8o^)Ig_uzq z##eIFxw4MLufS{lF^^QYSbE*UGSCNNhcef0BAIASx;cNM+QYId z_k2^rzr4s?z)8Nk>eq2QSaLnS-JtdEZfKdsCoRi*ah})dn3#odzWKg|aG{AH7mUTk zdl!u5M4Ai6YNEsiV?9ylg0Y$CalzP5jJsg$CRSW9_7fx*3~+++4aQ-D`whl%Li7#B zX+r4@#(6?#l^h917!4ba&$#8pY4Q&p9OC|2XF%;K2fppzjn1o6-+KCva6W>c9)brj z6IhX6K_t7-&%ce&5Bb{?z%C*s=?@Y`+Evw{O`=ZMp!C{QRQ@$-(wB1jbuh{6h zSlGTE8Y3QJEKOp79FA)M3Gbt}_)4C6vU{@!Bz<}KrX=^=fJuY#V32LqzQ155q1#q( zwMm%Bybo0%0u7oLV<+`&gQ{gHQ$e;H)wu|Zql$Q2Jvkt|oLjcWcUDlE^Th4H3!wQ^ z2=}h`kL}+69lkN>g}%E=18M4cKqGIu`@`d{xpn^K+~(3Y{SOCSQUqmR%l7r00S8vU zejJSsR~aAxpfyofry@$GBCJiD9?bR*OB-7JHutb|VwSB7ZYOb8Y5V7;5HfA?%MT?c zryHOs63LvYq`=?)@^nm$r0Ov7Ng3NzCoOoAcpoe0eK{=vxbbkG+Ni#;cM20a*!foB ze0EQ1k=&f>Vu_Aoc3oK=r0VoOH2aKPcS;%_j^?I|wM?cpB~Mkllf?HWoM# zxVeyOJ6ebNqk8V_>Uxqwue~%m z`hF4C$72g^y9DurG5Vrxf}lnpg>>0_Ge+wb+FGVg(1;$e(GS~j9z}3y8nCLqPy!@@PjA>NU(fe ziM#LJijKbqH$L&tU{|nfv+#58!QI0g{Ui=ATXWf0_OB|AT~c27mA&W6uX_LADn8jl zKF{jg+7lDO%g+wqTpoNi^3a@dV5LtIeB5O6no;0&X;yP&|7_K7>DwjmQ0|xlmn+JM zv6lHR>y}7e-hphtN_B8ae7L0%IPbuXZo-WV^^qS@S zP&n&(s9zX(Ymt45{JzO1w;PFHNV0zv=M1iv*Jy_135IX$4H^O7J^>*6RgA;uvJ5Y*fU_e;xJ?B ztKQzartd~D&o|85?U=WUPKNqh)Ysx(F5OoUq5JJJZ`)|+t@>K(?e%RB;cw+QsOSW~ zIsDK!3aqRL!FD1%1D?6;qdS9xvbT+?1ul1KeQjHCi;6fv;pulGmvV&iV9Yy)K&6WK2`cRK= z;G>2iPoIH5Wu-V9;kha2nZaXU7WOa&_fGrpq!4_gJXUbvXP&ogjPTvo5APA|3ciur zd{HfMTu7%ni@5D?JO{5++$gX+^CF+jyU|b{p&r_uW_ju zff^hek#1isb~MO8=f1>sxik)Z#ThF~aE*YPV{d||eth6C_O9-;2H)S*`vpGx`k{_N zqJx>57&Ub-c$oV#+kEhf{58cpz+Jah%&nsLU89c$?lX+g_UV9cBqYT(1-ELn|4AFX z|B)drOQb)_;-8$s{lUSjX4I5@^u>OyZ71E;`d{$6ia~9?!I^z08;c#T2(4A$5A10b zc&RP;QiEX2li;Cp8M?fGNuGz~If^}jUyZMMy#$=t`Lu)V`>T1A+5WjRMb{xY%yxWT zu=9)|1>WEjZ$BkUo>FRvOak0mF2@AtT6Fs){bn6b+;R^E@2%@(BK>6RjvieY10I+^ z^VLFdWt+1buYlFD!zjdE1@H8^a8Gn4KE}9jzYRY3Fl~ho*j@zbGIjlE|DEn=^ER_= ze$V+ouMc?r@c-5q>iUD%Cp@ot-m_m|zrlWm{SNyj_FL@N*zd7lWWULNmFHFaqRGoM zzzOS%5~SXx?E8b2eHJj!pZ@_+O9KQH000080EVWrQlOf?$fXJZ02~zn01p5F0Ag%! zV{2z}Z*_2UE^}yjZC8I()#Vv~-YXen#FUvKk`W;yUJ=2NP!T~<5fu>;k*?@Gh^TZ$ zMMOn3WQ2%FXwG@;&Kxr$Bc_g_b2l_^v|WNXBg3A{OjF^U5EN@7W=-!wf2fnqar`)jBb2bX|Xq+9T+I= zjf(v7`2YJ0CNkY58s^Hs!x$GZvyI649%BKKo0aV~L?gY46zkouG3F7Ciej`AjULW% zg3XMzL{H_jo_RbPSk53Ci>mWPL=PxFjATswep$+{0fvC^_03+Kcx*=|2w#J*_4@l5>196iAz%%JM8GV>N z;cw1|-P{5FWDDfU4X_7}L%zUl=mRz1lmO_b==doe;17xcPf#=RPmO_n>KXV??FVmg z3K{DXTm?Bq&pAZTIpjY4r%62bIZdzA^RiAS7-h~qM4{)w6FP`|({qq-dK>t{LJ=2M z!t-Q%_;B!rS0K-f(eRs*hxi$~zL_bIXX<&*l6hJguY*6r2X#bTh5u|H_{}~|#vCGD zG;%$PxYB%XtQg)975 ztw$5M89Bu zQ#(=m9@Lf2`DI-;NIkVo=?{H|%rBDBK}NkBg`dyV#y0S0E@9+7ohiI0h&D;yG{$b! zwK*R0X1#B=c$2XXTdqOQ3PQfDZuq^l0C``!0=re};JU4a$Zu_hywwbzty<1DBQBeD z(tq}M&~J-}yzMOFxAj5ZF6+egZ?_}Q4m0xaC@L@GH*ilF8FlQ@@p~km>)tyP@q5paF|Yho_~qNl z=yRVJH+=HQp6qQdKCYxkaJK@^lCYHDy1K;zf$tqh>mS0 zV=<5QzugUxt@K&D--e2)=nbXNpWbA{Jt%(11D)>)1^E~()b~+z? zr{#OW{l1hEuz#Mcu2{ycauL?Qo$BKTeCf_%{rbzbD}vDAN2`0PZN8eqRP1phzC_cxwV_;~&5 zQ{Z2J9r{0dYLxeaji|vLazi>9^SEpR-{lzOyIig1UgWz{2mPPq``^yU>#If({h8kf zCdT(X;s2fm`5X23yfFv*#s*iiT)z~ z@w|2Q`===jeob}o`!E!FKRg3_^Kgxsh-=pGkB@wi_oFP0QlFKmB@lis2f)+P3;vIT zHReG7v8<1c=tdFzZ*%}Zk@!B|@;=DZs@JoX{T0Wz`60fo0(@;ZfuG9!8W|n%|4i=9 zdd30RKNp$T>2sdF?8}>c4=RrNA{+i+$UBJp_|g;nUlzfyL(jD%Mq>%;?6^fnzkf~8 zcpW^Qy6#Siw-NmmA@A3Ni0g@fUr!0@{fFc)C%P;9 zq=2!EjCuYumXT+APv%j}IEZ@xm87u_`FkS}*V_pGZ)6|w{J)Xs_b>tWhnEmH5RCud z{pTj|`#kV|e--ve;i&u3Rp1X%u>Vj5c}VKzxFK0DuK&NW8YQ2dKMgqdih2z{r7Dd4 zO7)Yhn=-YLtiKwTZ{$y#v<=X+0RX++$)gx z=UJ$86wi<6t43V~?~?)Wds6!AAvL-Sd7t8VH9%^NtbZ*ZwH(BaHKG2o$4S;pjlGL_ zuS=NA)9X;j)7-C92Pq$UfARdDizL~1%6BIE@O6N9d?jSRFz`%pLjM!eP_Mr)^7!YX zzKQEe-u-H#4Rr<-!XCh9O8TCZ2wt-@^k(^<^L!`Alk7t^S>9(nkHB2yo#F-k6y9rm zK2(q|>JPG`-l8!Ywl+=FXSUx@JYJVGiFAL4-Dv{a4l$p5@qV*wfS2{nU1vjRv7A zex57h=M|&A`O`?=Uur=Z^b0P4XW z(E+q5LniDSrx!tS0zdb2Q#XA6v7)yR{9x*?bT2`&Dhz_ri9$7kC~! zN+9PXk+GgT-NCa{?q%*H*MvH9^}UlP_YTixcOd%O-2k3FWyrHv`gM@XUqZ%u@8f%4 zd6O!zK;9pVIqV-o-UH3Rm*w8#`4xtvuY)Yh{wd;qWu1S?{3Z`luT(={!u^;y|6%dx zy36{ZKf?FE@+Wna?`6gHyvp?}o z?EnDhoC5$50001DY;R+0XL4_KaC0&)WMXFQy-AWSIhLjuB&&pt6enDPt-u7(UWc9$ zo)s<`9X%p5q((lVa3Nd;w@U!$|9&W7_qs*0YFPJ)JQ%crssab6Z~mwM`#=1r|M!3V z&2Rpn|M-9X55JjzfB(&Ie)##vAJqF({qO(ykK-l(^e_MUmw);3ztlf}TmSn{-jtV^4I_Kk3Yrv|807U-~ahv|N7(a|NMvF{q^D~Q*{@d?={5k%7dH(l5{q-+D{OPCPzB~WJfBx~8fBn<%e*AfVe}4ZZpTBm0 zzJ6KmUpc>~U$$R6zo%c0?N`np`!E0cmpAAC^y9z%`12os`1$Am^7?!|_0x~PYnRsl z=JomOkAL~$=O6x7uXs8CfB)%sfByU9{(1c0{q%2t{`t4IV3?AO7%q{5W4niSz$qI^W*? zm;AdQ|Mq%(o&Vu)e|tTCJHNC)-=AN9xqtKK``Y>3Ho*JyWdjrdfBpS`{->Y*P!QN3 ze|-J?|NZ0fOP}{~9yuN9+*3a9wA}6Zwy(Lh$F+Q(aqWGk)-Femi}Ib9IC5`m`{P`W z)~<2Onc{q2;`DmOjYn>S=d`r*d0pD|dCzg($DX78h;hoR#W>|9V}Ka$(A@zu|BuaBhh_&?fCx4&)QjsFkcKQ`aJZF+s^>(Mt?sq?v{J0F_jI@yAs{ceD= zTxT(|YwV~USH#oHNgy`-E! zW5As6c%$XeJ}j%FBX{iFa=X4IZrPZkD?WYG#@+9@?20X!w<8e6acO~XRxGvVOtH92 zTJ(CF6z$mTrPO^}-1l+D@p~T-h2A1BIt=I>?f81GYXP1zA7zSH4ICI~jioOj8P~G_ z+q9x;)cH*Naj!t}Vkq9uHfRCj3n(r)m_PWU1b{EE5e3jgpEu4ER13@JUAQ%C+)KxA z^)uT>jb_}qc>#)f9rbzhagVJzUT+ho*MhBOEAACTW)qX~&YZM)c1S?_c%1$+#RY^e zrg%A+;;iSL=e7!pKTe3rzH4T@rHsON@3FW=x3Ysg#hQA7(V{Qe1rAx@k#+sX6t25o zK~uLvcLAewYz5VT-82Q4=2Q#0Y_X8nv3ZIQt*xHBpU+;_=2}H<7pQcMr(c2Mdo#JK zQygRFrS0W1(bxK^@4GU1`e4#m7Ua-3Wj6?`|v*S@3&M8nDxPTYo%msuY^0#UquKJSef}o0VI7ISKed(bKPRJkN1VUoNrD!!X z>}0(bn19ubX|F7Cd`X2uXo@!=j_t5UN3So^vGLm1uvzpgQ@mXkJu11=#{?11Mcg<) z1!||Jxa?=G;;xr1pY(F8Z=rQ6IiQ>o~hOAFZUaAm+#d~+uCvQ*~r~i&V903AS#(DHd0>JX)e`l6N)x;K^-m3 zL{~HDsoMZMHpw;05KP@Rk-IN*kcO_B%qCPL>XomKi;rbc>jk1%?gtbD zPYvJh<-m;qeKU`D*Ve$j!0SQBQgonBkU2?r7HG{M$MK#0D0;d{8E~NQJ%o$3RGCHh zQX&(iIG@2Qx@{e|NT|@F`!ey}2;Ank^;3}$I)HqEs#Idbs2S-Lx* zr-;gNg*H`2=3`U7o8o*Q>jP2fBV&scB)J(EFR+1-3FFXrQu;Qt%VxG9oZw#2lir_v-x5)m8<_SN5Gshr@BSd$$hJVbUD(OQ0xlMHAewl!I|)JKq&}lANpUU$kUV7 z&O)|>m>~zFK&u}E(*{&o#~=TTWbiqx3B*wst5c>p-5`o8-N8{bG`1DS;(#wUc|F(| z{RrF{3~F3(%>1f#3R(%YN7#!5%_u1`ORPXK{5MP-xOkhM0|x;j8kGku09FgkS%G46 z1x|1=z@#;m8CM8m<;HzlQ8nt+DPFG!xr2bTw=3XtpKuh1%{eA_r=aP!Y%n4{Gtm3g z*L~0pO?4OE)Q6BGomHuz{gUp3+)fC|WDkIOiHot9vjz3kt8>xEgaCyvtmqTZ`NqPh zPSvz6&nfnfZ}WK;f(Nyb1C5Lpletw^=?$QgzwMIT(d zOkgyTJ5Qpz5Erz-@N(Kag%vDRq>%o?`0EZ-f$=TK&W|OVLPZukFj4P>5gW{*?!OOQl*5g<=n6?Y~;(%#85Z03wx&y96 z#cuM%+Azi9{oz$MgNJ5P49aPPlWv4rvuQ0we>PlU>e~>RpGS)<6}O`Xl02PILX{~t z26|4Og+`Hm(0(r zJ2lX9@7Dtt18)uR3f5U|SlXbprt6zEuXaL9aYZy%zgTwwZ>Qr63#xr6gpd)Sg@4u? zJR~-WFE(>Fkpe?8sB~o7G{u|n9Oy>;NktS$cXs#?izCdyZV)Lko=QWbPLb};Y+T&^ zD7H5ERVUqiF-n({FFG&^?6Zy{uDsCG0$mvSL8(&nEV^zN4#vI$^jSXNOe!=E94$)+ zCj)1qC8HlR1Wca-U!ki-N}j5sU1hs7EAvE9Y>w?<_=(!8QKvw0zOKg<>l@BS#Lx4% zk55(-4(8tdj^Ie^-k%I;UT55hlJR0{MD7F*n=HwzkR1Bx9kv_8i#Zuh-Heb}Ql0~c z5vSoWk!TPZV{c_Mr|H8^nuw8Fa!t4$S-wLQ>k7H60<`AyZhL*bw|t7DDBtI8Y1Cn; z1X1W=sr|ni2$-Vu@jMR+#+zpa>QDoT7hHkTbrNm1iLW+44Ae8lFGUYDhPWyS9i0UY z6*^ym?Bv0lXTAP(;R@zNGWwM%wi?K;Duu_dU$>P}Zj_lDda&KD8Wug^ipGZ=++p1T z^dZjUB!Yrz1v+VA-fT7nDMR%%zExeb$RV7*3^N2eK^(`YNyPXn0I`MJ;0{WJ4#xnz zHtO)%$w`emg)d&rv{fTN*c0rtUkK1kG~oZndGrW@wRb2vJcFWwe7imQ8OHb5%qsfZqsf4f&fJr;8&7;0m+mV!jtvM12sCMU8oU^|$dhnD~2O+Tcspt}#8+h-Kq_ZD{}(&!j+&I+ba= zZRB6O+hE)J+fsxaaPeV&z+$X@hh96sB9fYqHJhoAL40-c3dEe+?lq$ z!As$u4)nzt%vl5ocrYC87MuMc@o^le?N>H{N|?EwnVk(d!pI zw3Zer5w}F(N4+3Zi)fk1U6Z=D)R?y0%ts7_Cy9=-(&FWK%nL-3?MHE&X zMeh>W8rCI1FNR`_llDSrT{hh!P+Pw9%v@Hxs-$in4MW6sEyrom0|L75`~lXww-IL{ z-NDV6X@duXpN{^D`>t^_QzGcbH3jgt_xrR%ztAD=Ci!O|BIqnmf%+Wud1dEz=T~;8 zAWuskpR+C?if=fIW!awkVtriL+Y6StZREFGWX507`j2h4AgMt{vE^CsvW!!|;1g}J zQTIXa!0Gc=WSm)HJ9}onHjkq5x8g&BP}vib?(m~G5xJii+KprOj#Q&gC3j1Ha1_8r zqex};FYAjpbah63n^kT`vI9Bl>KU^jYGG2q{MxZHBiKrzecEkz$W^=vh-CsJI1s}t zLep?`!y|^hsJ(P`3p6xlRMH|2;Nt?xc{j!Dwww<{0U>GVs{rwJYKjZL0meY9a%Z1n z4hJ58vwN$#?M!->TH7_eCaKW!c>O=nd-2#clFWAzkt3p-Cu(e!W{ zhg<;7F&^4a?5Sw}-^F^A?*oe0^pNiA?SZ_E3YYB6CBtrP|?nOF-rm6 z0jDBB3qc&9dfb1kK~r~`b}B1voIUb-I!ja?9EGUZRb~*Y2T;ZL#rvTr#wTu{K1+={ z1yNl0Q-Icj-1W8^L7NwoI}y&jijo#khYUf&m*-Yoj@cRk*;(1|0!ji|AUv9C;^lU$ z^tEOL5ZTpb)YiZZBKj;Qm(jo%;|-*@QB++upcM*Mbrh@3G+NUbUn{#J_vi1X_&AX6 zQg<8N+FS1Hd2i?_c6Q4FE;{XMZL%;RihDNA+NLJ*W*wpADluoMur_gr){bnNYfv%> z#Bq633;ztszlVl63PJHAS@G)jYMwW#w=kCCEo%wv9irIx^gt9~t%lB)Bkc#$ogFea z|6v|#cE?e3PshL;E z?E=(l|2tj^o?i3>{(2v+^%gm1zS!hW;k1>YQxDb`Dc z%62J2v%TbvfQq5&ytV%@aRtp zI?&9CkAcvU_ENQXZ|7Y@T2EvkeIL>Ef(#A2VDov4D0Vx)R$Qzx?>(USx_0AYu)zke zw%b$pjr%7S7sw4G7-8rgiLZkU5*ncGVpkPsXP_@I0$0ya{2>qkp{3y}JjhTcX~vH3 z`*=^vOe4U!0i4W=zn$Xav`W7FQCtmOZugaL5XB9ZyDWOxr_A9|1B-snwmTG8K&7A@ z+dWPLi0bS>QysJ;(0ok6CU=uGiHkXk-Sc_2+R@q{0#&VF*+NVAFV=&!Dlz$ZqHlW5 z)r{4XW#!k*qdh3BJ6r{~e;$=-(;WvddO&4vm?bMCfRi8#j`a6K)#671v?3@AS^?IB zNLcU?uD_Uo4c#zn%!rnjWDCde?N-X#nMhZ+sjp@Trg-7O(vljnMNgX#;c}T==hUf) z;#wYvg4t`cPy9({Y?r=dCU0)*(s@v0wyqqwFQjw|rVMZ$Tb1XHK^7c<3qw_!<^?&F~b>Iq)V zBf-{1-SU;T+eUtj9i)x;*dS-uo3JQ*W^x)zuaT@j7BtJv2-g*-4Cwh|Vy^66 zC#*V4ur@SBf6{>>_z<~`#|prCk&hyGF+oyE;9^Jn#CTuUh;DSMN2!`iK$vnL=TZYA&!lxQuEb>0BFhpGFtn;>pVUsAl(?2w`Ox7X3I0P?j>10 zY{;_asQs_ah3mG{QN4xY#0fY*cv3(&G31A{7(b#4e-4i(- zvZqF!YP-8_fspZxKopFp)`&f)xU${BBMP0D7YFf zdr$Zm_ghWC`(SB2!|{J-J97qK+W8~?o$c6sH(Gjq=%ljssF1*Dv@=B0M52AQg&1cY+L~Ozk(3 z2*S+u8cvFWb3S`1_=Uo#R@-`2107S^7u~7HVu0VibGRzsvpsOJw&)V!H2aYcTvaZR z$icqc*=e@UufvY~lEeTh3pEgYtEd=G>4cXPGx+ef6&8fd>H68bZ+0S>d;`>6l4#IT zIPT7f;%2SvQ5{!mlJwXeVWLO&K7JKZq#Kp|+7s7=j-q^PUQo&7c3_p1^}B^HeZ?1d zs|UE)E%ylu^^prtI7h)48{fy2)6SYZlRNb-K&ze1qr5&jKD2ji*0PbGENGa@O@s+W%-SVgc=~i((bz{t{AxU#fYwLsn5bT zIS}E(W!wtYiw$a~ZAea;^9WGlXrX4+HKkcazw!tw<~c? z*BAE;SK09qsX>EFX2FQ6sCRY_yd~thf&fTf! zn2`MFEsNQS*K~ws`gr`(XASVM0R0FG3qZQhb3uT%rfqjpA{fDqoec_!TkKBn{1F<; zDe53RA|v+8$>VYR&S`+f&yDt;rWo99&SjJd)Znr^*=FpIo+`N?PR(E%tzEgN9OUYJ zrh7lp7oSJ6gI#=8L9#1T>|{&illjP<3De+{7zOj>QD2*80+V!`KKPG=EFKGIb`StY_`^G8zsXEmHePi{=-Qg;nm(Sxox@V@%NQfS%-Swb5 z!$YzYna=NoWf`-nk88W9JmTD8+6a9AFuS`u1`G=my7tumcN{jj z7yYiu6QV<0kIKrWRB)Yi{?93N5@>c32CjqC&~+oZv!jbLID+6cid}M2HySc)k~u^& zw0Tfx+ZkUMt5Zb}Cpur9OFrKX=!*oKF5%*A4*R+x*q##m1^~?(1+s*Q04u_qi<6LO zKyE3gj#B?}&N(6vw6Rb!%m~S3Rl5a;he1`5k!+lZFJ}DgAbY;nQJ{(!1YuvZkjYKa zscInS%*Xt=(VmB29Qu0n%~k4rrv1$K z15s$}2c=rJbUGE@WuG=s>4^xjyw11xrF4q-!H7WMD0U0XIu6Oks)3^(j(?E7$;8%| z6yiOSJM}K%D|<7y!Sgehyj6*MfN(Jo5iM@kcDz!fPIcjS4D{NIPJ~r8Uj>CbtBM(V zO9Ix)yfF~Y8Sd{~#u$N`3pJ0EE#eJzRVDU3HDNhjhPQ^VsfeD}~sVw$XkFl}*1*ACmU`7+aPR&(NuC(fN6H6=43?I^*TBzUCMz}ZuKXbHz1>O6=> zAoOAGMp7S5RwVucSjC>nJiS~-D)V{rw8_N99=JPCNe$Jhh~hM&=qaMFw!&qncYU$( z!)oW8ZYKmh2hOu=W;xB2>pplPeH1yuT*QP5f;}SuOn&rDfSHMj>e5d6i**#AHvFgX zlyhB=GCp(&0v9)E6WVR?J4CTN%slrpR*_@zxQir5&dhZ2eawJEcM=3}uwLcGkw$t` zXLc3zYC&D>2uCX$tWu2Q1djH$j`L1W!BVDZA&=sx^JtDBa+}0#!WS|#FH2WQ*y;g2 zjw|&!WVAjfAKtG}yqx$Kue|`!(KbQei>&VCy4@-O)v{Bm0}(VADVi_gEii2Wg|H$a zKt$%V@j)CtC8x&Mc}JC|XpJb?B^r<1nGCP9)<(4kZFNmyHd{S(3!YYNHhl(E{2de* zjv_q}h2Sz6v$c>oClNbg`@FUUjTYJZCC;*Lz@H8_*Hqh}ECv%5x}F4Iy?ZK8=;3g` zb>Wk*95{R8i@EAba0IOZ5nf%oGZ}ZC+15x{+^m{^DHU++vpP@MJnAs>98oys*b`k5NXWa(Hv&d*ytnFVMtnR^@w+MC0#@hmrl{1#?#U6j2vs3PaML-mWmF*>#{@I)#j>ABP!agu>AuhR{Sm)bOI? z2+E>jJ1a!UqEumaqP5d>iay2KOwvJ$ASjW=F=L1Eg8?IMb7( zurfPvapCIi(}oaZHwP;T7fZ^+PBJe1@-7<5d~#AFU|~3yMTRLGL-IT4p#D5Q{b>ht zc7!^ogwOlTQCQN~022rC%@pUflPqC-28G33pGS7pMrU2Z?$eSfx8H0GSJMOZ(%8a@ zbj4B}M(0K5G?$}-z9P;+HhGcxo6S|WX4=6v^Fmx=p^k28n5UQ*n<6XUO*P%-ANSA6 zEY)~Vu$SWa+10-L8=-i8l?I<6X$m@}+Amut-W479rr7!u3ZZIkF44u(ID06Z$GBTCToJ|)PhB(` z$x{`fU6?ilV})e?ZohF3}kquMbUL;3fcJUuuJSj`=vS!*TZXV!)Y~(eFa*xqJzoF`eN2{M8c?C z<}8EnaPhYEK!onX9mKteS-S&tZEAO>4+r4g)>01Z*nQ0)Ke`dkmkVLW_0|$tNqXou zFcXY0(xR@PL$D3af?m*HobHvvVkNY0R9>rf9-O#FYejH&ESc`ZB`?46OI7Ey`u3qO zuI5pFTm)>^e6e=8x-G&vAfzYPWe(H=g)mim2j}1gC&zg-?Y5~q;8vg1ebj^*5NSlH z95TfCBeRG#-l#cxlDnN5I8Nsp%U)GuWsbYU)yPVy@pcgUnlcxuQ*p65inZ4s4PVQ3 zDbk1o5m^1pGhy|u4L)Kebo@&ofVrO7^y;uQSQ}HY&zcMVrLU{ zyi1A}B*h(k@{BXpnyH(S8(cbsodKuwcJSr?5sE)19VyHy3&XPiq!43QE7AOr2?8ZWg)n7RF#M-w(aeZ=jdu%D8*s8i$ax~s~O zEb{i1`R_W4FIP@S-(00mK@|HXHPH6J?-5y97{NA7LDD@>+lkB10bl4u#+R$8je_PJgE5EKh_A(e7_UGxZ6b%RCPi6c zf18%XMc<|+or_r{b)yHS#UQAw?vundJYIP65 zV_#`=2>Q4*obUd`I_~GFMQT(R{)Qwjakm343m3kmtLEi%7H(4B#0*%@kMXhtJJZmp zQ>WPa;?%d~-7Js=nQjLhg)6RYCU-2~j&6QTmSDxQ)2ku8h;8x|ib-R`Baspi>s*`6 zCEG~j+r-9HgS(B$qMxE`Q500(8lGN_y67leRa7!k+~71Ad|rz7ExF4lqQ~C-D6Y0( z`M&eGn$5-PQs8dyS38dt}47@stwHh^9`RoHOFv4Mq#92!a;Rq>${(ayC?=8C$| zfato)hzpUm2EBU)9LSx+QwOOP&vM>os#!Tt@p?Pfqj1GtD0jS<^~L2Ft(j+z%$`na zzOCSurxlZ?9Wye!aO-VRP?^kuD8vj+MbPzD zM8T5$DF$y06Hx5^DjKlH{kp-)5GP#B9*Set>fvyj%Czy3Z4;e&cP{yyQ0|bFwnat6 z5m*P};v`u*IrqX4(MK~Y33L-L#*(0ic9B2)FR);mF&D>?rm3AhGkXkD>uP~ixX0o1 z$_->@IQ8(@*V`a4OSUfcn)X<9TD?0L05UGF8O}c{uG|mD-I3U?hMvbC=9H=auvpRC z8azvI%p>f|uK!w*UGIv&GF5L>g1f#~+$Wa9Dekm%PBLaMKX`_?j$JX%&>}8$XAi{S z%i3LKw>R||)rhzgT=rI(x$e7NRa^&J&XP;oFY71}t$J2pM~Ci+khmP_0_=rW%K&Xm zg*J!{%WPrwT}KsB!lfvq%M!n1)<7H+c&XX!DXy#HDYcxZ5C!FO`~h*NW7o8IvAE5d zWTR6{r{G7?aIxS)4mQV~ZS^qAW&Z;g8$wL`@(~jdI2)~I%07~C9C^IXDLlZnV?pOH zwmK^{CmJvX#PQY+tc}LedCtO(W8p+&tRk5hm+9-(sj2YN^Jw(s zi1#d%WV`lOLAOWN$DM(v5IGeML)QEZReqv0@@t5-g*D$eTQxP2E%+w9ge zVxu|ptIg@~CUG2Zct@MsP9^M*N}hOe`$_oKqMgBMPC=!^MpvWgfd|3y#Z?8?1vdbw zs>b^cijRGLdILePq@yVK>eKTG>Ty&IIPkv5DYg=k4bIlo#{qrzPmbHS1Z9;-D^r~l zJpj&gaxnX-g29rmXPi;!)LAgCX6hn1EIH9Rl^y_aiXQ9p>{$*fO+%wjwcR-=Z11ri zN1L5O0JEXk;dYA^$98y1F{}xBciaMx}p~9)Rx*ps(=KF_jpE8TQo#J(MTGHLI9@Riqpn9V zW)DMd4>muOhaJ`Yiz#;8-D0L~i3&8;8TJ-mT+oQH{39oxPC<;9LHAu41mjsYZZjicKWr4`;K8h0a}2*=9Y~*y!`PY8}&F=+`(3BZ~bI zX5Ln0x$||~;R?=dvvI;dAU5dd*e5d-pht)o0~xmKi|9u?XEmI?gT|tuj2;Pu9|BUGrpRpRlBc_Ghi9+5)*&7a zE2&>IEUo854WtDM8&CB;wt4gbcx?qgtpk_}#)BxFP83l?eH2*mC?x42Z69i94NKHj zk?xRD)K9uj=a;E<$rL0Ab=3pq!^eo>=$f{}X5aXLK(;0oK*XG9U5z@Qsrh&U#kbR= zQ~-?vB3~V@?4EBoK#t7Vi1wV?>AY`eyy?7E?DI#^z8QCJ$L8&5kHaqxeLec-Ds`Ik z>-8XaLj7S*Uyj04xYTx!?9dl`OKk@<0Kh;$zm=V&G6O*nv1BiK-PhAu#&t#*kc*_2 zrPO%G_*#62b*Qb`#THeiZ9%I|M*+`}p3EY>#me<>5XE_3PmTgO%Aup!_SIDzJ)x-F zE|iT1JMS7~4jfD&Da;O<3als&a}%5BitGog%yYrnT61_u`@Ctqv7V;GA;^Xj zFMm2un^p2B+E!G9!q#GR3?bi4@sS277FQHyi`F9e^*{tZPXij(m0U7+cqdQqr=2Wfrxv)*5@Vg`s()AZsa=VYp zbf0h(vG&r%6B7WVV`zRi#rv8GL@08eCC1=vmV#$cW;#f`QzdieR&S16jax(z5C=QV z%$UxDOCf(C6rN*@qwC+0$8YEmM_GxHX?s)wv3Jhv0eJ1#{1nHk=&>fCxTlDYREFzS z2pB5)lleQ@?>7?TWp|wc;a?yrb`o5U5Cy7ojQmtHUrCfDy|GpQ2X(LXO3qZSB{PEH zxgwj^OGj64L2h8tG?{L4)o7G`R7DRnZJ8Hs9csm)bNw!>N|{ajQ9P>C?13n*`-G#| zEP6P#JAdHrhGT@y=0K}X?-MkyATv!V(w_Cf;!M~iPA|wSL7Y>x@1Pg+Y8sEC=o?wS zqsOxEZuR5CUw$oAOq67C;3zlFv>G;4n14Wz|9K$_68mExoj0)D)xOVv7k#WbJ=P z;puhXIJBr!Ju?&L(bSXcrZx+8ie2x{Ir%sC`;JX|PPZ+n-Dk&Jhh4J6;-cu0nG2!kNV=cUkb|s)}7Dq3U-E?5)*>{fe_6?=@{M zDY#hEwuMFi-nT7_XZN$^HhUtd)SA1V&svGt09SaVCrmrqZ)MzqPX%? znW>k%+t)5@nO7V6+1@Ma+1(t0W`7^k`Z+MxP>ft9G6i0NA4Wrh&Ywkva{z4N4d72f-w#0ww=Qd?tjjipj&rnzT&j>TJ*w-LdB;(7^M+?Zf7xU||yDBT4F% zlVahqqyQ^xJ2KuQCZIkV$q}vX)m7>g>27t=i6ixhrKWW#67Y2kiu2apo7fo6$tuA?Ftj#dg1>r08(5dt{63=j~~9h?Qab1!W)aaC3bH+zO;7q#Ns zy3};p1$fyWKv(oe;*Qh9J!;FjrUfEcy6X;CcSBH1f#%dj4{$NYiMQ&&%;#pQ4 zIXhrdU#(we6iI;g6CDIg1yhJ6+XY5av>&hAIct-e3sNy+^1CP1_)@{>8hVbP6qSBg zon|{%duH}T=UYP*)!#UwX**0j;EQc{IqdExJQL4yP^rCTM}gS6mWk;=cY!N6G15E` z7RF9NAlJCx(OJ%J$S$KF4GWIyLPS;UO5MQAy;gE}n8FL|wsD}cF3miu%)7W)rxucIO^K;w%G6> z(_T}4h<+Y8OW1jjq7oS`l+8;~ji`v=T%aLu?TcuacDf%c5<5Bg>lfUh^dNrSNqaQqdnaSh4g2Agc@AggI?ls8 z3`o+6Ys3q}GCH@*QJrNfM{)Av@Z+svCC#kOuH0(W8LBq!PD@%i*!uVaho_xi9d2hy zpw|{;1CJJ*Y$c=)PXP$_U?5Zki{JuDtUc$Y5=g5t$Wz8Wc8?JaySLlK+`&!X>%G;wdfA0 zT8>gv~li7K$cgIv({eUwb}Yve8&QFOjIG%{sl z-W!O*C1`At>m{(sPuoM*Vw4HEUH4Js%FL9e%p8aALn-Q8D9E!_H3?0uwes>dLgutl+5++MD8GyP$WbW=ey7=G6h{>72}NL&Ms*rHI$4g z2B9X`DEp~mEy9FQvWVPK)y77bU+0TcVT7qrx1age^MX#Z^P>Qh0=`gQ- zK~~$A&Br|&B9$mBvdz>mI+bZ#?9=9Onvc5y-m+}lS0g{dSgU~1e)cOKBl!<+XdMQ% zO+tQ8qM$j@a8%CirL+;mgjk$%b>f8V#2pk0=7f=@LQo;r99 zomQtB`8NdUY919E6ix*-9mwwFy4?>Fi~(VAxhHmTjB?=1=?tw*i8iokI7tLu%^XtC zI4lkR`8Idz8(pkT*Ew^BM30FIgZa=R#VE>CnQLW>!elj96|b=fTDy|aZ19iERKH`| zmWN9I>WORGS1yG}I>VJk9a}LsGflz>>qxWn7j+NI&VAxE(C^v#MpH$^r1igA8~Y_q zP;Tf2H^c0)w9$hII*LbU5sd#ZDy}`CNpSLArc_JL^U&CJn{xY^*U}0LmAa7FQd!+<9tAB+YL!UT zvqSN?*BD!!&!dL##}t?U%op3BkT=R$bs@&dWP92pgzT3R=9l(MoE%GVjK}RStp1l| z?*Cx>IvQql59=J~^D-_?ubOu)#5|4_j-p5s4>gcpCbGLOsVt{6TsgN1U+#<;E8NlO z6SB?PA#(=sxiE8aJsg6q=orVG-_1AZewa62$WoH}N$0g&#=DJ+g?+RqDv_?3xIl5& z7i%DqWoT0N&SXmAs{6N4Kn8ZJOGv@wLP7#a1$^wZI#FGP6=A#7?dFxOoaK-$yg2 z#G7|4+ii@mWdVq|)Ql~f#~Q(+h$Rzt`(n0^(-ndz2ifJz6z3)?#uQ&RkK%ouj~<|l zg2@Un8|gduK4k=UxUc#~9FRRY1x=~LZ9w+tc%3apFlF#k(@u2?5c(tV!+gR%u|S&Y z%L}r-j?wRm^Juy1Z2_PSzPRZqEHBkzmRg%0m3-G1qtfNv)v(f;=~ZoA)%vv2`1{T zMxBC-tIvJsC{~~9m&}KL<&X5T``@hnuN;4Dz8fvQKJ@kIo2%5R4p*+Ad-OCSsR7t> zZ8;kkyY3H$rS4`x+5s_dWYe~j5abL#I)+56gCLFMVkjo#hC@ljC4z%VYibv8S~y=2 z$pFRB=5+*a1fQBGqL8J^7n71!mrQ}ajye0Lq+pF$vVU=p9#zn3nSYBO-rn{^^rz(M z+hznoI~P5lT9*c#&pY3f4$R|!GwwSeBs0~7aQV*EeO!JWiudmj#dW0z6bmj?7;`V= z6}Q2|QI~MRSFhXA-YQ!$3wMMV1Rso4mRdvFV?0n+WC03F2}*ZY(3QyBBekP7GpHFk zrkMeSx2}~@_`tK*f^Eoa*VNDElqs7x&P<}>E}W)Do$A7EhpWo8>0?5PR%C&@R|<0? zJJ{6C!CHuA(AL!cCq=X$YHf-}vfBXclBO7z#VN=kcX)2` zv$j>~PB-d{``W->PSz!ImNie}cV zeW}|q?lk)&yKZ_6i=UOj(xQj}Vm7G)B-yC(@O$PSiE{T01*;iu;_M0dk65~lnhfh8 zUB@B1Lb3baOQ*mqpfG9!u+TjrWQz9P6c;FV7VaJc9jVKgf;<+2!g|vD9xH0N1|tmM z;YNY76=I7kkCF*$;I5U=*wG1c4m&JHgO%P|Zm2GpO#C%~BkIZB`VQ*! zDqCEG;yuzYx#R;c+D4_4f_?TUUQ~@b&Ee{49u+Q*++)>=r5DEh;v9cYXanlILCI35o&I!Hv0Yl5GRDJPh{=7nBUor@k> zFPTFghLt!)fDYqUWE4`Z)gl>L*p2TDHqwYH&0T2?0^hwrfm>2f<|VY z-8j^!Q#Ebri6}rbsb06HEpMpgH#_V*oCeNdvEcUvmz;omlPBRu=Wc=T73W|Q9oG}# z-x+a`Hc;y4N9*TkN${PU5;`))!b3PGieCJj9eqL@`+~SI!8Cc%IOGH+$5bs#ox&I2rwhiP7N8XeS^##j1sbAa zv*79gTpQg4h9Cm&NV)+^5BU;WvRkd69>>)>p*ry6yl;p;DO!IVORuROnKol=cusgX z7UHb-|GJMaOJX8$Vn#I%^nX^7s8OdO3Iym!?a@edR0!*K1I5mLbTYG-%^$AmC-96b z@4f_MOISJl@Cm_&nbQW>m)XN}$5@=yhjQq=If+T+m`VzQ=O`;8L=oLwIkdtuM^+Ws zJWb0TSBN?zAt8MV&Lq0=@ju~gUdw9yz26fhRT#bw{OyxHl4YB6xaVl14$ z8C*O~u^M#>)8_K7+i4v|j=JH?Rq!s--GS`nFu2Qv)~U}2>F#uL4LAU;1k4udU%e{{ z;84k96|n%lp^gDx==$y<8Z9W)(qoEN4QKtB*1#53E%=t#NK2~k(hJ0{wb03Hd}q5W zLgF*Sm0mhR-HM2F+xeB;0=-(XJtnC$MU)sj5NQpeo(+rIhs3`^h@lnV5#h+?PSU13W*6t`Jg zbJ@!dZ8WczGzQ45pboC_+qLr`3Ib&zKb8u`s8Tu*b&wsKVmK#D*pMO_FGUM7bRl28 z29|FdtXjiXJA{7(2*kQxW#N~5Yo$}B7mZ!vxM9>kGta0-ovLZ;P<&YpBxme>$>u1W zRL|9@%n(}THa|qIW0EI6*~n2)?HoWOZnbClyYc_gc5ImWN&dz0s&x0)EGRa)v_e?i)4GVF!NOP6dmS{|SmUoGsWdVVz^2>2_U@t*89RM+3CNPQR^Z^M) zkBb5suExo{1ij8JC7{R3F7(thB!UREG3_d@xim)s0)g(RKlvHwkzKb4r9Vy2Ghhrt7-U7h5&q`1S+N+|j>dto&ta!ABt$ z#(C^eFmsf9vu~UHB(~0^>7(Fn^yM}b$Nff3#8_)wJYRIxj@3iBSm@|FYfxDA1a`u> zQU624ezu)e1HPN$<#v(cqh}jD8baESeA+yE^%U}&xf`BFTvjG+fF5FKbcB(n4#N@P zK)NMC9XvginVm}>*WcOQ&_;i?%#8W(;kA(UZc@m^)pDB8ZL2KJOWsNt-N}+gk3a;X zhSu>h`ZaR5KLZgo#b@IY*1a&|<|u&T+o@BL9B*+H$bEph)AI9bDf&bz3A%__1Yu;K z7k0#Lkm!t_aaPysJp3@a6U?Wt6P-IpVvM51BZZaQD-~!0G?PZ1wl?Fe=xVo*8248Y zh3nnzy&^*F;bpIp{2&T2DO%fts?1Dj)G=bo)fQ3jSdSaWZKDI4SFobalZ6}6V$Rl% z4kAxe%z547GyB1fo5GQ-RM+TmFyzLPUt9gK}~@9kG3xPSuyN3s#r`XxkM{mxJVc%|sO01(;%dm)*_)%ojv-#WZA9nG|Jv zuT;9vD!j3w)oX84N)dHFQ$ck3fr~}s1C=iYu5XujB@)A##@OHmtFR0M6g!y$+CTfA z!Tz=DGK;r51Xynodn%tjkO%HB8Y3$B;iT)B8TfWBrDk4N;fTVX(p5D-L6I|Ca$W0Q z;!a7KW{5Pv;ZSR{c8@EYjxy#q2S1noZ7)SIu7>M*gnw7WUOrAnDQMQ5s48_))b=$rjr^HU5xKt*M0*Z#rsSi0rsw0mvJ|M(CYg16%!pPhD zX2>X0tjR+pF^4fwVaJqWQ~`=(&ph%_zfl8W)x~%NByGO&@k=fJ5=Q=G?cP8k-4zk{ z{*pv&>%y8&Et6u`{P2X6o$5KxJ4ph`!q8TuC6ILI`cMRYoPHBs&ra3&4w&IR1RUvk z*T-sZEgDg+iXHNKHR*0rc8sZFbGQBsSACh{ZQqEyJ8d4#dsv{?DthP+>qHKK>H-Cm z9&mExb?%^!{i4Me67fn3#noIiRnGCw zn|i1?Ol>ZK!3p`aQ*7``PN_$Rbb}8JjA??7Lmt&$!xY2PCE;Q+3@N$pSyM!(=0{;$ zn)&0nL3EK+pWmfl+Kh{vjzZHIj&cQzw$#ZT^xO7DNNEpENE%n?b)mz_6W2!{vZpC< z26YleU}$n}CLAmbhtb;ml;`nYqD!NzimUWZad-Omqb%66Z_U5h@>@)G0CP9CXxMMb z-Lg7yO&2{PqjaG|`RGAmU{cqb;0V(GvjxD^jSRQ7!CgCnpN^X6?abAx4)Pq z)u>aXyX3kahw~TbyCM4JxDOloZ*!wg2}G191)QCAFvW2vMG#`>=|y#1hyZ2?=T}=v z?ij`&uSCb)@h`5k10^^Os0QtUfSy;CJrt+yd(_?{AI-lwrkGtbW?LYA>WT*o4QdG;Swm^sfRXD6UKc%FM2k54OBW z$cKH}9Cl!#?l6G;=^qiSaALEE;dtR>I zdjk|3QGi+O+p#c!jz??nQN~5;L$t8MIeiQ*d@WV2xH_$?>M|o+^W6wLmq+wpieGuOdCl%A?0Echg7pnark9L`2*NkM){uZG6 zI1BMKUo4zlE?a8seVJmwR$`>qgr%{GaN3+|)M;v<^#R4OOAR3{%e@|7_Nas|unCaa%pr-N-q7K@iT9tZ_&77(Xw;K9!c&!hvpE zt9M7V8fz5HVYXDq=Y7MpRS9rq{GA9LTp{&GX|w#d`l;e zcTjw~QrOW8V@6V!8i-(5m4oj)VNxhtT##ja)6R}W_(vqrvb&Ivrj`%@%n!tPP`_DI ze7bH2{)Ev-+1canEE92koJW*_v5Dr?N`Mo@#Wg4etK(RH6jB*UG_BLTW62uI^MPm`9w^*xw0$OcoLqH*|5G(d=6 zpDfBsuvlZ0*IbiQb*l$9gczSFAZIX%v;N%Z>emcQhjkQdj~;DbUnpVTdU;nS)YeOr z9Zl^qTA+;}Am#Q2fNBYPVRv0>0q7T%v1>PGdA)$$0!OCJhyy7R*M$^aFrQ!)DOnYr zYCuxHYNZ}WJ6f%=Ja2$$!|!WMq{S~ZZO=di;G+$?Y)3BuWEWIB2~v)=E9u9rVvht4 zTQ$!@3JUe=*tj`v1C#wFaIj$GPdn9`H^56v$r8c9L<9ZSXbfJx#@3^Tj~1p-mr_Km z-QegQw)J<_%+IweGi~)KSfLGb-p7KD;vp_;jGh~)tHPqyOt?@obO8=POM^oKygXCq z04O1huI7OntFPm55VIsZzg9F3&Y=hnfG`r>a`nEA+eHJg(2foGhTN@t_mc0q zI{V#A-We`%VmCNbmz8W_%*5Fl>#S{CZK7sYOZ1HbU>%tHv8IV-QtA%HVcngpH**n& zDlRrL8Lcf2u+)+n)1;wMry`2uejo~7x>1~MIrr0|hqDbr_)pY1*gd0YY|^C(j|aws3O1)A3xJu{t!Nz5m?fmU%81@kYprg`e&uMn32 zW_>p99bd|ds8Q!L<(leTQ+zpMDSVh}<`287d>B-Xp{#VYNX^#K@$~C0imYyS*LgNR zoC7;?{)ma3fo0!io*f%I+mBa0s(^gaV~vfIDCU<}sZ&J{mrkirY+<1ezSIoe7Cj)G zwgVeG_iE-z77vP8P?7;j@ig(z4M zp|2WSjsWda3`bD;HoG;a6E4 zK7Bk+_5oLCoYE+f>BCkPt9d3S@7?a{j)2dG9B1AualDc{a4`@57}m(8qQpOa7qN6Y z5MfE#h$8AhS9PVQ7^bEt5wt6!Yb0oH9V|AsCdIa`flE`gK%+|n0w!_3>)4r6J>O|d zxo(2$G1kLVjI9Rbs0A$#$&qbv^V-EN_Wy{3uJR|c$0pTjb!s3&dL~N{Ee}Iop?2#d zzy0c?D60julmVdiK%9026R zjHHTl<@OlGu^`BW8l4DND&&$P8l8nhqT+fRu!#P$wSyfxA{IvoSdP>AILzCSVGkBj zS=j97nYyQ>2YwFF1FNE4Ms1UR;hAZxM;ARJ%wj3bhM6`Dblt{bf@_R1uA@CIdk%nT zA%BFI^Xm5Smvkq}K;}g&ZY&)NH#)78j)N%B^H>iZhv8Q!v#Exp6R9S2Jep4%7Gb@Z zbS$W|(F53nJPnOHm7_>czE}%!HTGe>i|B{wVZp%BVUEqf<8H3X;FKTWOnCH>v!Jw) z-7!3c@ix0xa17dTVwySdV2;unvwK

f3YWn6Xku!SAtqtk3gM-xBAOUzVNouvH-Xdy$mE1L4>_q1kiiLE-*J-`a zZMRAu?$YHOtr;T;?TSh{X%wU_5QBy?KO4t!wKi<^+VtY>$AwL^B#zlxi< zLjXrp?>-}`ISvm0V!bP=)XlVsx3{TyA2n?~b)H%$I_JE0#c1*Af>AtHuz6EEwrSdO z)3l+l((Fqhu$6aa$J5x2P74aN0Nv9sMSyjg^qw=*0fx7INuB&aNOlKYq4b(6L0K;V z1euBjCGX8)b+cN{=*>3~3~e8BEtP}MKxO)NCmBo8kH!n2O@NzmyhYxs!_^jE@(wlN zL2*Moo_sq0K<3x;eoV3M3Z`u>NTlZm!iCiP*31->P9Vz*((Ki_#rMo=gFEBHe!od7(@LXBRh&#-t#rr@y_Hh&b$`tR* z0~a%&ZExjk%g#sPY~~g#%?M)TH$%!+UyfHi>5HzBEb*iRqb>`QeZ7>X;Tj3}#ruZ~* zb7Cncpuwa}pe}GS@jMQN1Yv+EgyX=i_Kj}$DO&Q<^A|gRjL^5fOPi7$FP45{ZlK0^+=HoN`ivMu&^01Bfe z73Pi)EeJ!R#nqGOYLb%1(N1MaX3}m(cwlt6`yg2+gd~pN1rQpwOFiscbX4yx1hGLn zzEQ~+;gf8GN3z4!o|hd z%sL>A=`asv!#j3Eh=L^V=H=NqaUZ35K5*EZUFg0bis`w~gfuinRN_rVV1E&a)}y8C zcS?6>k8aHdqJa0DHjx^23ZmHd?SUwe7*oA&E%?di(cNCYu${fOpdC6vveB@U9uaNr z2M#BPyt5C0+gYOcGG~Y*)1%8XBQM{+j4U1Gzh>62M)p&8f^Q>G~aE2#XUP za5|z3k4r9_x3QLVaF+p8Nteszk^ z?wQ$faj1d|3$WVZ%GFREsoT{v_!+oxM>LRHpvtb;v?9s)r{knLrBT}KZsQyy<8`j< z&V3+`X{uB7SRgX-3D!}1@Afag97H0S zS_P|3$QC4KX0wt1vgv!|_eDCO<};pBqfV3VRz#2NIOotpt@m+kF2)8wa5>Z1mn34^ zNy6ILQE|kzkL&@@k5H%$2z%|43-O?;x{VWJ&7HAINYOQ%^vxh53mLCw$YTHKFO_pg zE8EQRYE7btJuA;XzG~E|qQ`2Vwq9yG0;aa5U}_tdY({dHT?CcHoY@=tL;Yw8n*q8U zv83As-Iw*d8b*?aC3Z5zIS^M=$k~3N0g%VI+&Sw;-i?3?EyO|MnnF;@zN#6nE-(=8 zNbLp!bSX*rtxwyr^ho|*j4k-$0%i%OEhkLnjwD3Wmf_x}r0rR<5BX_UeY` zbN1|ZJg@eR5sP6ZDc3{(06J6)kVExhVB#*~7+|)8rq$|yWzi$d+}0d@PRNFEbGtrF$u zMDE-v=ahYv(5GV2aUE&+Zx9Tuyw1bx@wn&_at%<%0xva*!J-UTbLQ70h7n$a;W?(2 zP9Kk7wR#i*?g7QDaMro+rh0b4e#P9g5W8E6Y4sm^{4_9Bh*SUv1urTZ_}YPyF>F)x6+ z$-E;|4i45nKc9_JJOH4$yQ+~bQdko`(7xj48VwQrb{|X{KvzdszdFVD3e$Eb^Tkoj zV9A9ku%^ukHsHNn*aG{(l=7n|^HSeQ#dH}-yM;J*bQIuT=|Eg@XsR~sATTEu9f7X9 zE5dQ88_f=SoA{oqiyp{UHt*E`Fhn~g^mmzGJ1%YP4@}U<)-hhSU z?V!R7g-f2U|>{NFLQd)@)GkE)MUc$tfHK zD*0J&)vm;ayXQdB0=%2z~vUdPl3$AEwxu!NkvEv=HT}Q5DKZ;mlnib+Hn9 zZAWUFHbt909={?$rz0N^M8Vw+@#Z`2r2NQ6Ije;=pzelFVM1oc*|53+@<+I(rVjs! z8}?e)%gZ)9;>emP$gIWz7dv7J4g+3m(xS~N}Ni#5Oy6|&k$3lj)j zzT+qk0uk0^E16i)rHqz($`7`$y#QU{eWFi%ggFRy6ciqgA+Ez(KGz;a*?Dx!H9Wfd zT4K9&>;B2X!PSJ*(2&Uw&o~7xrqa*r*+Lun0NZ=p|KzbCyXrbV?kg@%xNtXI3^r^4 zSLD9sV2WM6%DC8NJbKlo0bCr2;9x?%F^n~VEM((CT!KuxNU=GH6o07c*)P=xDMHtv z6(f~2s6e*V6&fgga4{^jcm=(mNQAv2-$aC{Q#lG;xEs@kRM9p=Rc7`|VQjaqny^QL z8CiW3&;`;?twDI{6d%4gj@vifni7#g^G?V*alH#@T42^D@<*y23z&JKQD&+k|3GqcdE=p0x&COa$h4g)#SgcYto!7t4N8cBV62nVao}Ai?u*vqq{V>y{HPfI61ty#Z+4a*YO1?jpOz;g`UKc6poxJq;4AH zOjB$ZmJx5|kr4sgBvKEFJCCdK(Q&a$!WgNyEAUAmFAk(;%%{$s)#`!1xbelnN7I(C z)i`YYi%s=xy-&JIk2+(5?I2GMtZP$xuZiX?t@*E0Q)qOmi9`qOd0hk1x- zczu{QEvN>+3cP?Q?7ozqcjES}#~L5LLllc6`P&r3hP4$b67A*OKu1BQCNIhJ9N zZ_M&L2Y{|O?UqV|RCwqbtYgp|*cZ+v5Qg(!S$`bJQM-(77pFaMSPIlohO<0f*z|vrXf=9ovmz>2jV|r?w=EmKCyg4{HDS?AaRChDip9 z>o$VI2oS;%6292p@K9rrA7qg!W+@=6DVi}^f&+4?^`?ak4N0znNL$VMUZp!&oVZh| z(76v$cy_5%qfVLPYG&>n1@IPStd=s#wm_eTS&gxIs+teswE4tD|i(s&x+fM82<+3+t05$J8ae+WA@S<_>k)ljcGlfBX5swb|2 zfr&1ap3WK+cC>_!#$53L@)7Da9o_y76z^LWU%YnduDS@7W;yqQi!Sp-9FOBv{vsyn7Q+LjSS4!DbAGIUY71~6%k9htY(I3BVlD*=J><7(D_02_9+_c zb+vG=+YB^AE(OKTEjyA)7zsN>*jEmEqxS&kyNn`Bk)jFrWN0G)Fxw8+d z$ZQZqB%kh+8|}L(zP9apOfiHg{wTQEmBJR6q;{%G5QVYPoRMK_XB(Sy2WcN7heIwg z&b#&lf><24KtAW9GopY72%0s#&RX*?rj5d1)yRL}6^hCH3g!}7?OA1_{Vpi%yzwt? zhyp^?o>yy;CLFFDj_WM^7eJL~y-YOJbvB2AoyN=_+)rGO9f!qS3Ec06r!*UYky`IB zmQXE~FF{o4dAG}0Yj2?juS()|t<{7bjV9MBq)q#>shwArZgd()k(uHLqG)@zh=z+r zkHuzYdyl$2i+TUyTh=)}^{kr5FobRb{V(U8_Ey7^=Wxy<_@%}vgjvTCdE&HLKy(d4 z5CD0(dfl#YxY7$@mWdl|x0(>dyD2V^u{;n3dm#4cc^+GzVr@r4zq+rOT{NeMICGWy zHrBI7Fk|u2u882YqI@*>jo{cdc1-a+)gYviFIK~fq8-8)X{+8qHJ9_p1xmOE3_;BE z>>d9Wii?oK6kn-}Y4y5X=5B{Cc5+bMi?1SMJWQPLyNaVbWl@@i;+*j)Sb=cL53)00M3#!eab4XQ7Yob@O6U z;0>*qVhQxBv->(PoQ7r{ldZ6RRbVRnsX?)KCls+=h{@0jzHj*A?L3~i7?RdT%X^`^ z@WuB1aXlX6T4!z>AA(@)jc>nxU53|&m6y|TqC=fAcJjh^r0^T0NKnS8WAzlL5xDUO z-CNbhhKrGD6j-Y7y{51I4pHpY!!@RO@BYQX`z_@oZS`<^w%sVy(w*&>17GaIJvPdZ zlpl_s-9R`E`dwU6oFZ>a<0QeZI$BW2z27v&r1pW$j=YAbgEQNG3#i_ij-r|V2y9=}U37H3VL6tK8Px;2Lcq|~fgRG_~bXPnOzk38? z$T0tqddvwI@!SdbBBmCeY9e>e=7KnBO=vE7OJ_g=@IzJ@uMM zc|-%fb5%Jif6~bvG(8r6yL!${XH&FSpF`NKDrcvwndyL`40=gl{Izu$a3bov4v!gX zT?cftTgIvF{(K`YHfA68oGYFdCb&RRbGUk4@6P3~;SDB6MvXcZQLN~T_pUDvZhtxM zeQ}sMA8*+JTQ)aH`eLSolaGG0i6!*D;i=95E=V5X_ z3Y%62xY%crz}e{ak)oTBMI!q;z7a0&(cZ^64rDCG@pGJ$6M=kqEgDD#1_7KK3*sou zMhnoj{Wq?ZnHQHS3((&{@x3kPiyff*fkC2r10funH?dcE&-*Z9gm+@kl;prtn3=CP z_gS|we}vk}R_Af&>&C_(r2g!^ksblMafw5Fb@U$;plc3_ht)&F9}Uke=~~UStxnC= zS}r<~hO16g4so^Y-?`StDcHaHw1L#e zyrvXzfsgtoU4P+G_9wa13 zu8y-?V8l~2woLQ*={0a`9fLo)YBlfI8X~|d54J?b)0W|uXkApzad&X^-WRRu{t(7Qaon+4F#EdB?u0X<;JvP~ zjnf_G^YgGhGz(Ucmpm+vWv6ItCsX^~6c?r;KM(~A+tA>Wm!%h-z(~1)!@Akh`oUqD z9VCp}$KVe>fop=6>*<&ku-(CdtP`R@l6QifX{ynE4xt*Io96Li9Yr*&f6AJ|>H)D4 zY>*TL`~&{_hG{E88=^5lggZ$b8?L&>u-crGQSMxAONU5$$$*#_I!R)6DzDYnbcZEK}< zRwx~yXGm)>(Bo8gIV!b=C>i{f(VQtecQ1yFWbK%0VNno}19K;4am=*X9nYE5I2<0? zxf%$o`1~YyL=v|FP_b;NP}nqMNQr(GQSA5rm|{IXGKLk5d{{?u%4Aiz4Nx5%`5dZ> zH;?O|L+02Ayi;7aTGg%ND7dsaZnKNlCq*BjihqC-~wR&$#(5xx1J3VOWA` zYkPD#*2}oq20F{dhfT4svqtXJbq0U9_6;~x)yYa=`ifMCt=IN{7PVu$EQS4m}6e^Bdi_MxgXBj`x z>Ks+EYib~irKvTz0SE#dUj7Y7v7M)l{M*Ak+63tJE_|`>IIxJFuxK~|b&_u* z9T(^@q6f^Ej$^hIM{rnI!IZ>scJp240Ns1IzJDA{o0jsmN}hTL)W_6bt3hGw8i5FK zgW9e^a`5?Gyz<{63ajLsjzVx0879`kydB-Jqz^S(xSS`gJJ4&~_P;gEPHw=|>(j}# zY(HXf>nNHSAyJjW<&t4c&D2HfBneuoG3XTZLOD<53hk+yWn-%udr~(niD?Ugpeq1@ zuy4rSx^$+^bv>4Fs5sJ{d%ZgZ2Inrg5L_uHVC`bk9U|G3b8vZ~IKNOnT1*usQZV>p z!EuFpoX5dS4lMy!!=! ztQvKiboUIWfh&siOItOM>JBQ6bf(Q&cF$Qctf_VJHQtm@2NA^Ou+>I9WC#$HI_1X- z51=Uq>St?-9l_W=x-RMRXvo>C1>L>S)f;GSan`b%)IH!yuoffJv>@9I3sb?q0y;=%_5?b8aoWiHb5umdXa zR*b`V0~L=_gc72F|TnB?d18*9@wnVi!QY!3fWV{ z5+R%T!w1$jqBI{R2zWQe1;619)Gg5EqZ>zY6w=l+T!8^y5zqwC6*7l!acLF1YH?#s z4Ys*O9|yT}$ra+cd-Yh&nE_#J9e1be(YYt}qv<6u;QiuaflxyfDPlcPuHr;Uaqwv3QZn_EuLdLnRPW2o>HSu zW!hFO&`Ym(mm*?m+iw@fB%ZbBH{b26F-N>d<4mt?bUZ8}YoxvtT-jL;%dw-AkqS{d zi0auHK=0ucAUqdx2TZj8E!|-r)l6exDtl%v^sYj&BhuTz_Q3;DOke$OiVMv$F5bI; zaodZ9V?H+*V{>kjo=;IwYR}BcDq%*08+6%Jkp#xl1|%ms7r*RGS#V?EC9Y#?!SO)# zh})+raKU&jBsECe6mJoT02$X*i!UA_<6F_AeAiPY&r3C2T=9jSUl+Fd+BXOr)AdzT zG}^$Ncj0zuxsE#tn4l5?x~Dsh)+HDSMvVJxP?|T9V?9_xc(3T1wcDRpTl-xrB5Z4Q z1h!TzuIzg3I66b`yD2_vrlD@+*Eg)8%sk7_k^FXzvENaTqtlMGT{F7yyFwIboY7S* zsC%@bZH7Sl(^T5!1-j>)BOnl_7-o)LqW2h6L_0VK(IG}(g~98`0`zq~UAV!;ZL$gm*%n)%*`-c|;ZJvpx(OFErPf*KGzwR2Yv{NUd{FhHPqvr* zl&8&7ocbLF4DIaY3h{KjMEn0RXO=z|B}=eoxZOgQ7$*wQK;J>}UbjStVu54e;&m&+ zM`zlg<1SDNPCc#H8TeMxjfiw-l$Ia>IBlY>JEg2YAM37l#UXaIG~T;;G@fXjc9)ud zm)v%19g6NA^^HY+<2w*kj^#Bzui}YNSat0~++skjdN?Wp{N-wp2DQSy$XU=wZUuopYU!L>G>E|aYiXv~xD0%uQiJA|;f4DYJ( zhv%U(`k+CDpt+p4Jjc=T^pAJfK_9sO^vx6(sAMTW9i-Ag=SYd#brx`Oul_<8y_TquU z9d^oc9N7|uaiH;N)yw#YLscf$JV}i33cGoO;Yd;9{GwXzXoc6oIj#&a1*cG{k6& z&>fv6iowL5V#-yKsf@YJvm+%Zh%DDwa?y(aEVNaUaK3Y(8R9Tzrsr`Ew3B0Q6vu01 z=8GvKeB$y2gb=KQ! zl{xHzGOd6su(}|QA{-BeGFT?Wv}y4gIsi6n8w6~U)yxi#>ugrirqR(v;HT(?T=-`L zu8H7Ra~;Q`_S*oE4pj7l{Oa7IIQE^++h(9fi&x*NZJf zr_gf$vs|3^y6+(rBPr|&1v=kn9_~?AvCY1gF&us~5xs#WuOVCV;RZYsQ=(M|W{`x! z!F3R#^i4c}E!E|Ed3v1%@F~1OR&iw^q&5~; zGq0SieMKc=_w7u66Q&WA&OiPww%BlFs{nJO(-t5bBg0~4)Hk?xAAoK=#t3}#CK}IU zYRmiQksgdV+W(&B09#|!Jt>UuQcfdd`+-1w8sf{yubmca{lvnm-+EnEpohqAQfCeh zF-*E|{EjN%z)eJvb868@DG$QX+AwPpHOt*rF_4-T0Cgk}l+R@dc4BSgD#|*vx7kb2 z9=(V)kF~;78_0Pf5Fb}@BH*f<qO+)eHI6_(%`B9bJ`?t zhyp8HSbYfkuqig0GHNJ9yQVZ6VwzPvsT|&khPQTX47-OGLZQATUlt+fO^prwF;ORO zt~!F-ejG2y5>t!ADo*^^(v42D7XwS$y&k&P-4(J{Y1?u!5op6(;L@Bf4hr#&t^u2% z!HYmiY@1`;>@Z@3>pbJZS>RP80+20=Hqq7z%E#ZVw}Jv13?F4lJ3;PWazl4-HM9wl}1xu0ox zJ#On>EWYG~S{|ZbC>1~`i5xP?A=;wN+7}?i+HWL|0KlW85_iJtMIs5Su$RLUZ?v#a z2#@HHhS(Z2i#a&LUEex~>S0la2SgW~NGx^Ez?^4NoffKcW1~1mWM%}emwT()9lXUb zc{XTa8?dH4hgdtj!hoN;JM4_0RPc-E$dE7R-LZeLDmcD4MQe{URF)RnuIuA;kDC*1 zdvj`p8a8OT&WOxJD(nv|ysr%i(Ymrrni_R_)y8+;9m+x94Eaf;_9zg_ezlUte_67oWrXb~RMbe1PfPa%-JQoa4&nnb}m zM-rAve#w2#Yg~mIb$WvC8zP!@)W0q_|B59FqouKU9R-U8YzZ5*Rl_y~Yu<4f*imu> z?Q_vK0UO8`v^fFhYYhFD4n(scUoB9Z#?_ibb;4`Bo1YnHOeiXVsg zfKYS~w8W>Ue|;VPQFP*RsWc)$48S;`tm1O=F*VIX&M1zO*P9>uMlAZo@!@DLNc>LQ z(Lb;|OZYR2zvXFGw}_;y51L^oyHguI8adYMdOI3IT(1L7SkmMQfXiFmxB(GGsC zw7;E~>+qipF%@Q=vixOOQrrFWvLm6rY5tiZ#M}c-MhfEHagI3(Z2{LEm_gC5z%^^o zZ5+0#b5{DmMr*mORlh9nn6}_Pp2`md;=>R({M>hZu>`;X0BCp=ha`&ZsvBgFX5hH9 zY;SpS@`D{j<`IyWfFIy_K9nf$NE8RBhZqH%|JR8hULj17t5HPSt7Jo$bYki?Q|6g>4Y?bs+3*C+HfemBW@>p(~mzXev$(x1tLpfM$}u21wZll?Gm6%!6oK7`D3ZZ^|4Gbb(FFu1?b?g#& z0D`ajDZ0oVKz1VE#M7?SJkT98^SY)r;CMk@m*Rf+3Zke+otDY}yn$=Xh}v`aN-0J< z4P@c88OYfm@PVc1gd_Gv2po8@%Dr*kPC%B~Ui|Jvo@}G3e)nKSe~rrbZkkxcaF2>q zOWLJA?x?Zk_~Pq5N5m!+yPcNJsYab9w2|6a@(Uum4_bqW9(i|$!gDMa62oJ#t!W4h z!)Lr=eY(R1k(#0foy^hknpBf|izu)&gusPPIT22@c(LTOG&RF|8>;QKaLg@i6ci~& z5EuIup|m)@TDR1w(}gxlZ67b3wk|W4y)JTuHdmt?Sv0PAuzJ}wG;7ErLuD0YmTNbR zm`-^V1Nz~H)qO3Lp?bh1pvAh6gZSexdJ+x>uopk)wpsNc4)YwQ3H@}TXwKPJ9%6#%SroS8it-b?MkETtmebF5{XxvP z?#s-&%Hu*X2vx!RqD9Rnl#nG#eIL-|r`apI*Mry^g&xadNB|4;?l&mBeJ|IGP-tTA zGlsaXaR>#0Bm?1!5bWU$UmwD%Vr%NtZEQsTjd$KXGzgm7!e)~TXJ@s#xG}FWf3qW_ z)#W?LpVPc)g7?yqUwg)qGa2FqL*^J_`7*R0SMf19`E}0#j&BzEGNR-)0H+gx?3;6% zSc+Ce4hxv^C^Qt9Q$QQw<8b&wtKmn^zIKF{8r`3DX@aB|BnpTr*3YaNqN1b!=&Bap zwe`9lW=&Erks0mG8B*TV(v40xW}@BYGBn0MXeDp^W_z)NfCh30t9a3j{i$m4{TusI zeZu-QM8^_vg*j=roNF~N8g{-V4u%}|2MwNtHX2e$fOODP+McPO-Af9RDJ;j5)|T;$ zX^|1r)Tr~F&THgA56sMX>wKQK-J?6s$ipUiKE*(bY{ht$1NqcGIfizY1Qe|8z?CEAt&NHtDAEfpeDQ+#iYb#L^!G%HknXcGiLK$uTZHQX})EHu` zwta~2eAx`-x*og5UCX&Cal?0Wu8J*j!${v)-0bLOg5fffD6o`Ka2%nK$GR9BS|C%Y z=h+wdzIwQEQXD0dzcSNpy90%r=k+TgSZtcV)>zt}%U+Mit2ojZ_pOr2As6e7T=n@f zxPfC6dHep?)y$PboEG;dzvI;)s*J!U<5U>dmzXF`5n(w$u!xfS(K_`$PIo*h8V>?e zf2(|4t&COASaKd5yR+X1SrU{%!lgg2V!KDTGKM$+mGYSea1Cys7k)9uiXCIZ3}0f3 z;;pF`RUE^!V?VSy4Qm?b+5EC|f(U?3ukarT2CE|J^l7k zHNI;ztZFpt>ismtd)oFFyVDrmDTKEBIL+>0QszD*a>Q=`nRPo5O6?lswqW;AS8C+> zYPqlXdFXtudL3}&FjRKy;UC_dhA@D!eM2ihrhW;%W;vQo6|^L z?^C*++nqhcP9!v0AVlO`%b>znW;4x(d~0D1iGp>6aL4r;dW1OJ_Ia+z+FClr1v%l% z>HV`S0zy;gwcZk+^YcXB9nzn+TYo=jF9}yaHY?re^fYs$4d#Ij)JLUqz0=r0n{zu& zp;i!shZ@Hp!-p2&?c z6D%8fP|M-~_hz$(!v=w3h@~C7X7S#vCOwViR3D&51gf7bA+S<0vMH0-Abg@jdpLi@hx&+RoD>tXIp!DN;bg8s=|i z0sdx}v4XZkZR4m#!2Nxetk$`q!*d9eYZWup z`k4>X3c-n?wiOSqB&sXW5OoCcknaiCz~Gmc&8kM72IzR_*AQEpZkO%bb0ph~M~DX$ z3iak(v~)(iAnOFLb`g83(U5mXDgdjOmZVhJBp{rgW6pzt!7VHV#qYD}#7-OHxuU^R z`fM$e|LT>(7ClaJ6c`9s>(j>}ezyBH#M%*2hp`8-V52yUEr=yO8Px>gIitJ4BrLDTc{75Z-OA)YL|-Ye0r_!vge#W- z)i#p~Lrku*gMVRnXS46im^l!xA|^4Hau{6KAz&L;+u`K5ks!SrdtU4a($5ZQq}BOM z0S-*^03aN$ip1hVE8-jV8dj*eALmCG>Dj1I{qH%DOqzC=-cj;+s?yZZe!w7C=ex3$ z%XxSA%U<06(MYm!+I9@;PR+U?Li@`<-p`2cwF(-xq+HD$-<>0A7%h)Eb79hWS^AYH~jd_#Wd_=t;uRz-tQxW;R&m3!y9M0StD z?&2B|CTiV)asBf~3JPES%PM~I^-iZ@9R+!NwtN_;%?Ootg%Oj6YnjL= ztt!J*1Fyfpxn+}Zu|Fh@Ad+N^@yF?W7R5EqJi6!RAfxD_zBfX# zbwEcKL7kyvS3=>ij(t8Hou)u1JNeUq>+kEO`Ts4nS>teBFvq;w$-lgVvp?gL4=i4b zr+J$(rUn~3R=F6XMvA@>v(z^&wpbQjYn5>n`GXjPxC^3V1Mu2g_-U0WES71##|+bh z%ihZjt5K&JGoQCHQ!gEsmMS%!#pPX*C=UC5AQax=czU$T)`D;*5Lz$bRuICC!c05` zxaMYSnC4RSokO*7+Xbr=U!Z;-;7-T;Y=d&w1yJ|X{$h7ppN=|;`+RKaMyF*go#{o3 z5rZPWxLmt2GaWEu`;)B}_VzD{2u5f{1%NF<)mep-Oc&G@$0^%!v`teu98Aj)F9c(i zi+MV)6^CKAZEtRAi)!Y4vTk(8^_pn(gI|1iTY7d$6fHf;SkL2aUA6J+5C2I2?EcT% z|Kt7V=C`}0e;@jJ^ut-|v})$r(LmX%M^OQw%4RLJ+1cSNaf93b8y)9daUyJFR4Ykf zlh#M(Qd!p3Zr>f1IH2Wdmyk>(2`v!Sj6y`)=7mGP(BUutVK3He zkZEvFm!Vs3Rwm=5jKEP9=&D@TAwG>t*2fmeYNHx|_&mDNX@tTBfRd}zP$u+w0XiDn z#Bu)iVr*;JU^Ir>u-S%5Qp|l%jrykN%hpv9{dDH(q|ns_^3@)PBnKSlhYz zbhr26e;oRG^ut-|d{+vL>d}pvko<1NKF+heN~dV{A2JJ*gHW;8IPOoE#O#o0gmHr$ zkzLE-&{I$L5E6p8&E*XJR|NnUZ4~r0rv7BX| zI`Zy5+~7k?H#${lyGEt3&0dcbaQ%C}i=prgI_*RRv@8d8&kxyG*Q^r-lDc{twhBV7 zF>V^Z6n3!07ZZYFVQ^vbj?(oo5w9Q#ix*(-7N_6dvE68yQke+iAEo<~lBn$AU+dR~Dj1oo1sbIF|BDXzNV5 z?CCy7lstUh#Szio4hz7ubVPs^rUfSp>okS{TNjD!3y`@>b2<9d%0skkbs8@(XmyIN z8l-F>iPW%0>kw~G54dt@sdOYE;u)Bh0a;eF8g*Lm>-Dy@X%$DQ?c74Uu(WyG56iiw zH=`m$;OWlGOLwq=?#f+Ne{MZ;VuVO2GND`*0 z(SqJi^+r~^lg1=3vlBPds%XHQFmXiWgf_D)81m_A+@nN$NIp3mEiM7qPy7TZz`cuw zt$c#YryHG0iz{h=32hq2TMBe4kF`5T`5M`d4QMEN{j6wXsfkiqJP9d&ei z^C7iyBMd`ak6hMzxSXxj_6sZ_B#ISZ=|f95IxWrodB_On1dBSM~S-} z3MgxpCXgsx7ClrR@dU`n3Lf@pi1$`~UbJ{rLv^fXbu%x@IPp~}geUBci z7iT*%5V?Wm6_By$nxqg6hMskY=ZT?A(OpY**&&V%L+>GqzzQL0H4cM(eblE{mA5D8 z8pJbN0R8ovEb3qDdgSvx#PHtEX{tmqoc!iBI~u3~9ZrVUXa_nIId$F8^!2WeX*2tb z7O-|U35;e%lEo6o8=BgxT~JkYH!v@W;=)w}kwQ8#7(t)kfNE9NK9r}#rkI1n5urz zCOJa5HHUMlM3Q=3T|mEn8shsR8fY7snK@9+^L}mFs>jeKp(aT;yN-E2NfNZUtkvr3 zG+M1NSFKX#8j_%(FLb65Dl3T$j_F@kv9&&t(isHNniJ;eepMcLSyj6`a`)X)V^^W2 zqElE()}Ysqt2mc;-W`mnFXz2#ch2N54wrJu539}*cgE+^T{PXg@+7W-MUR+7=00t;g)Mky)j28KAl#zh)jl9ZV*dq!5ObQlt)MhsDo3*i#l=uMk%Uh_m!| z4VMC;4Sw$U#yCS?Ie1dEpN6<99xhTmYLCYJmF-Lqsf`XIcJ1t-O^iwBl`1nHNv%5)6zK%W?5u4wIA8(=Aw;!ib}klq~aOtcmN*-_p# z`ZfdYpz^@}^n8q@R?vB!<+&-k>XFF-ri&)3VUg}Zi%IeZu_mr`ogybp{X&bId+ue- zWDugp(%vfQA_=(=!U&v%aiD|D53!TN^&S}-R0e&4D}=Eh<6}Wwv^Sol4@*l7rCyPt z=QS3u%Cd@$zi{iYk#++A7;9jHwqs`Nw4hR$DF9MnkDTP_UiZ zKNo$mR|6}70nGKF-LWyu1@bVvV3muRTK0KN8Ab>wAI_HeKoYSk`;n#1lu+s=;3`JN zSZMI4A%4pJ9%9X~RN_|A(e`3qjSn5h3Xor^)2fHqHix3TEz=HbCXN`b&uD~@K;37v z0p?35MvFE$gu7^Y4o24$jgFSN_NWoVD&Z|H-!r);P{zBj_xdkYk8`_RbYj$43iPK^ zs@P`uC5u|NFtMBu8$|Tb)c@X=e_8EFAfk~d$l@EA-kllu)ag<3u4cXuLeUpql|zr)PJa6k z;9{4BrbSE7@MdTvqBR>_`;QQ9J=GW-2o6}_Je3O}vNFjKFW*dp(;PPF(umNpezjBV z8`PH zn}glsynzj*^QbLhkOiJIqaN7Vj}vXp`^F7B53%iivvugUG4uZF2oiOO4d2~g#6UaH zBYpKRVT0w^A3OP75upg3@<|);OPPVlE@|{2=74xsoFCI013p4i9gjTA&B$U8j!L{D zx()<27j1~qCdSzko9asi;z(8kkp*;fA{(hjuI1%RN%tU7H-lFL}7yL|xB z7-|n;P(wMu&7zAnCq-8;>Ezcqe1T(AzjMp^olYZuNqMbL1mY7d-me?{;-d^&+~==6 z_lw=x{$+euJC;V0vhEvqaRDDO6b!9IoDlR5SPJ<0Xm_IZr_HvSWrnUyBk<*{)B#=; z{aL#k5HJWdz2URkS5=9>hj2T`Qp_WSHg8^Zu{i7F5FbZD^*FXyCV#tW6>E}J59@L+ z=6X4Y*_Gq8j5LHdbR+flws8Z=LDbJ^gE|h#ANhJ#RgAh2zuPy5Km(D4b|d_~3589Z z%pA#JA#qmmB()%!4kG67iYtL7Ws~XgXh5Hac*|gBmh56|Ibxu;qm{AJIPOkF7%02Q zw;ltvIzhIFEZR$b8(RUv1r^^RRNGY+k42)uyW*e$R2hUdUANDK!&zLqz0M*}A0xE( zOe@x2o+tohOcR~b&#==5gWy^qQ;j-JF5aG(jY4|>oVLA;$V?~jLt^cU_Mp!M-@rCM zh!$)w`o?7=Iv%eH+L<3{T&FmWVCu)KwalRVxt?Aeg%;!djI(a`#?x#R&6qiq-FT5L zO`rF7TAW6})#1FmC^B88rt5Sff}b^y7+A%iF}U@0P+|IT67_tjbYUut<&uayo!5)7t>o z{pUj*lxiqCNH!E-qz>mknE^(mnrW%??wBe&l$If89r^V1{@FUw!cP*W27g#AlisvgGx)S`dvfHDgG` zQNZfsL174RqLnw-e-_&6Cc5&A7N7pfr}&CL{3HFd`#)>{kN2OO-|m+Fedy=W4`->< zay?G8yLTc&CluwZWMpJ4@ec$E!*RP(7$gLR5H(O6*8Qa4QIn)!5!H^ZT$VbgqY=|) zFG^CEWdse@aeZu_H5Pw|v@;Ovi6A)k7K_!Z(=5Po6bxhaLOFjG+8miVa-egN^nBN? z;zR`KgDvf+Rch=oGftZ^H5n2MS$cCIJB*O1oojfe7>vz1)wX=84?9IE;x(9hDbBcC zQ#2l-iLzhB>Q}P1?fV436r{n%*AHy&(-7~EZ4}3VUwZmm)o(AZ+UPg3DPhE{P)%5jyLe_vQ~&-_gcF`V7G&v1I^ z3ad~OzO9W~ec)Ie9%3$x#)>tB0xe1JWdy7geKjaRJYKxa8E1R*HTQrkZ2X!Ghn9a$ zH*&Upni_S!)4id3^dUA+@0Z{EF>*bu)WK(s>v^zK2`pw6@-7SOb)XcIwubVVhtvrP zE`P=HOwst0QJAi|we4e83ZdATr&AoYY4&QlR&Qe_afdT%|KACP73eOsF*u!!m8x9q z!z9lD850jp;4yS_(tV?WdgD)IC>&ZX8^z5!f^g_lmLhFG47N-3BIiM09!jnp%kW3g7=D)Ovkq zgfm$9_3!(CihQD-!v@FQC;7)8ako&FyD89=rC4M2pnE#{+YoQpWG~j$ch_x8KKECG zt|=-1a2)44pV2t67W(0eU(q@#3?CjyS18hk>@degJ&eBZhp@&zGkc7~i+j{$2YMA< zr0_bS+g^G}!IX4^te@h123~9KH!S(84l~4!{)h*s&dI9gdF(#|t_JKNCVBg$xw~F^ z4P8WLx5-_?zNW%e%v~5$LrlEJzN}(|K&EnC{YWJEFXLxN$XO89$?0Qeb=tc8?*gZXWpurR!)GdW5! zMQAGx24^VHd_#Zx2BY9a1OPck@Sf91FCMmF&LM<}bsLNqF9nPNOQ}Fd+rq<* zFs=n*`Fzp(kR)b=D@R>uGa(=le^sAa_SDnNN9agz2msScuxPRfGHTTMt^%N|nQuc7 zyy9!`N=C3zxYnuD=}tpkg`p{DMhJKR zs&b@k_o##OM)^kPy{)k#YFx)dAHkx4m9IW@HadDMz%yQVlHLdwK+d*gvuKY@#iBB( z!LFsRz)jX7^|r2hR07D0a-;s&W^DN8Z?yQj9A7-@KnIpguB&*&7o&?E&eSo|)W0iR zxHhT7`1CHQ94XGDaHXN>jlS(YrR(8`$UO@ou#kru2SI}HOwG==)LubsI2^)FjU^HL zLZ~?s1?=uW6N*Z7lf54IFlL5C(UNyfi-+FK;&HC&H7_HuD$ix)ZJC3_NyV^jT!cju zDzHfek2(I33`*qaHAB|tM}NViSkoF<5KL$#YkMWkF9mvA;y2W+L;GJQgui3qDxsq-4SIZl#cvE{=nbPlgON_c?HLy3%y|CP@=Q#~s zQ%Ia&95%2tuEW^=uASa3ZBcvF(q+HIxEOICgSD*2O*QIN?e5s$QSzdWk>pcljAuYZ zTad7;z#ksf8e+a-fRD?}Q~{q(VW# zWf)hJ6x;GA3w1qUCcz0c#149eF8wmZ&vTzILctb~q_BFt3=g#K=*4*xnQ|MeZd%2o z%#~;?`Zd+e8R7#LtyN42i-b9644gA~ufqndW?Axx)*kI?_3^SNFoRmfAotdh-x~UR z^6pfgk3-6RgJ^#t6m?4&eyJBp@5f8%HC5m&MV7WqiOs6s>K~(^EygN`h4$vMgGl7Z z>`VfwR;Rq4nUr`ZB51WfE`LRoEbCAb$7;cIZ3>8QQa^r0lmqptU!9e&+ic{`Oxp~gLf})QPAdSk zld&}9;<^AkyK9*?_ImIe>1VxSa{q6)$7p7`204JT%rw(>6e-wXXjvGe1}WAb6GK!B zU2haG-Uqe^FVO3yxQdqrkwgPW5aQjc)9h1fqt=MN#{lQ7=3i8gx>VlwV!f2W64JeG zxJT`xcl?qwi3WJjyvml=cQDL9WL~W!!SxmZ-Pq*5SlSF~w+J+=bf8w+mM$OLW{551 zv12uaDA3T%b6z|^fDDizW>hU&o`;lH_nE_kjUY6a6CyIR5yVourR@<(q!@&jEuXbI zls*md3st4jV)6Wtiz^??j-%KO#%5V8>8I=8!ncv#IK0C1kogAZvC6Lqj?=c1d?pE5cwmgMrS(-pDp3;1^RmXqF5qUID}Rv*&c*6-mbS znu$d~$w@RO-ws`}>KR+U!d{HD8CM3uVnvjdi+>#A=fDHK4X}iOGHfVJ*)|HR!$xMd zAfW|*vZGV~>(VJ}vM`1#Bm(C`Lmc%DHm$i4-KAifg(+0<6T zK~U*nrT&fG5xoMS1wcKz{fdD7X^4+TABLrkb zmHiS>QC+20?Jp+zmgNjBP9q08RMp%THumDv>G~`ls-Na5G)Njeb{YOGrQP84Z| zAjECRV<$4jxzs0ev8DpTvV;kmfRI8t*B-T$OqP0Vf7JCBkJH*A#b&#+jMa#nsz3#!_|bHpCO;HE>Z1}|pZH^W+4Dq0y|C~qgY>XVuX>fYm#1ZoJbmQpjKB$wU%!B&z`>@CG z&HS$W%%!#+95L4&yTB8u3t{WHq+but#}gep&ai^;^}fO9ReZRbc^*)Bu>ebhQt&Ds z)vHW`Eqt-}G)a8 z5jX)CZ*Q@66x_P|SOX&0y+KLMs|okxDz1G0wTeY3BILJKFit;wcLVB*II9EC&0G!m zurQ?|a4?)C1#1vh3@CLW%V7Fh}NjR*?%SxGM~U*#8YIC+gc)|Dk1>p zDZyIy>>~OGGyGbOV34gi*5u;dDBSlj1I61t&xoTiyzB1L2&|6tT;?+xXZWD}Er2ry zIk1Hd_7v9__7uV6W(TOi5Jla8T~5$qV2Jf4x(c#G-8n?eN=Vj{f=kI3HJ@6#(Wyhc z-54|9p(>rc<^8@a7dzv^F|R;$eC_{^Bsj}5@{4lsa#f(YBX@!&q_^3eg}NZexCp9- ze2L7oZ;y2qhpm`cMCyNu)@VMGQn^cA#Sb@*(Kq0F+~==DoGX1J2YMUex}nSF7F*$@ zFzjEhe_#+X03WV7!R;K;?Qz-&Ope1M6d+i+NCl?)6!&q|5m5lRM_pczZN-SNOLU!7 zW1KPi^+5bi{YUJ1t;%OrdKxW8rIIV$Au)W`hs{GbIxVIxW1|>2ZIxHI3CqotJW#mx z4*9!|gsPdN0nrlptTX>k;nD|L#3_4hPs|8p_6{Epyls`Oyi=c&MBlBx02;FAGv)TE3Lo+7M6?A736Bm4J=|-o84L$s!f=NxOR7EZ`rmla}WdLMRhAyRML9p7uSWo_HmB?{LH z4qY`!O`b0JtLkxXmmNzU;u6%SMF?7Gdu-^$ zUWz1;F(sp>=^-{LSj*CBRAa=NC=)!cGBAV?3U~YZ$R5@GY&Oz!90A3yNO8R-l{gGR z$J*4-u3K4T%URIlJ z6dGbyAK9Zz5#uWLF$(IZXjggIp(S6T!QBI2GJbjCiU+t9Fg?4`;R7rZm5Cglzf9VhxSDA!re7R-5B= zjU@~Ee9>)*05xr9xsHo))G~L_P_lv9fPnQJ^ZA>FJB%87E>P2Ko{@H=R`){-jnf=+ z4~Y+*4K2BGh$b?d_3v0NuKR`vx;wT*mHUn zSnXqdNv~!TUG%Z);HklEAjh=nloUNQ zR3rsQ@5Jv;{@P)8y3T|}L(jJm!(u!N*ro0Zw{^IVuA4QMQQJ{{?IDn^>fS6z4;!>i z5!l0if$`OC{?XTe8se%!8|eHVs>dl>{1j{yL*uZOW}qhMu5;MnNafK5Op+56*accn z7)Px&@-5KX1uVf-6?S(lZPMwmllRe8ktxl}$>BO^EQH`h9)@rjdkRrf1PSvF_GgCJ zMo!qAo{wcOsT*fqw*2=WvA7&z2I|?PF2~-_+#OOLH~1qhPR}tgGoO(?8lvixUzRo- zx*co-o1r+L)ixcsc?O|tk#{-Wn3>VKf}h1~R0jwV`xilG5lm?b3CG8W5)}!()!yJpamN`M(ISe?n(_uYzL~h zK_FHK`=?dBWiT`QZ5gz#h}E5V-KNC|`j~gU;YY;rY>F~4Bec;(40BJ?&zd~sTn874 zA{i{#I0xz@oaw&)IMykoo3k82tqfmu#2(H57~YYErvuNV?U8N0O5tKcFMi}h!(hez3(9juZomC6l)6@|wi>W_u zGvcJ;u%z%uPrK_?Rb>w>dGTN3&_a(!X(TZ87x<-0)ARWnVpF#e+K#eAC|oZ$8RI}h zRprk32hpw?$_tB{Nc3e}o!%J9LhFaplt@!Z7G^}0%fhXSe(P#9DO$`+$aoXji^&ej z9YOK4V)84UXuvg32N5IJBSaeHd~6#7Y%$tTtN3ZoA?VGWqv3|z+&e}kGb2^RQ3#@}B_!WVO+_kvr zuJ3CQF;(^Gu%s@X8MB~G>I5n_&B6-Q#DC>GpZkF8e^qVN+nrZth#%JMg|P<|?jb1? zwxgjT{%Y8jqYs0S<2~QE?*&%&QhwaxTz%>U^i;-mO5pj1>V_$8#HP&>$pEWPE|^Zv3SC z_P?Zo+tWO((a~a)z;B7UhE@B(?)0Uk2BYCPK4~F_h|h*2jW>r)>nxy(#7s{Eo|oni z?IGL_?~faxD(N#;Wa^KEqK@xN_0Y>}i`@H2r?K8_SZ)Z=9H1bI({2C!F(b@ye5XX6@zUneTqYM8UjpL2D)HqLZUd#Ju6cTKu;E23ZIQCugs|I7@AvVgIv+NACcsc-hRt=a7N0{iiLtL~|){R{?|I`T3F+GDLjPg6c_w?h|j~RjU(4X)#&q9($Dg) z7SW7v?pW<*6&uB0hs!b~MqrNLfx|a@vYgAD&H-I6iGs=gYiaQrLfLfLvQ#v*wp>=p zVmqJvy^7;OOR?iW5Ao4#JzB+sP&^?Q-^Xb)5W3n>wsr)F({ZtCqw)S)ff^k#DT3e} zLsmD(#lamWNH77~9IF#5s%2>hsCL0(#nN;uV9dj8m$+_U2FAF_ggcU z)Tr})Uv+Sii$|p}{P%kr_3rr1Ma0W6xkFT^X?9^eZ(t1xiZ}j6jE&F%3{GCf?rT}X zfpwhw@f@boFFJ2E8w0a6`3?n4K=Y|Y{R%?hXh$mf#khXlQy(U_OQ>pFYM71W} z|DNU?PhFS!nb=)C7s3|z`7@!oT^O?uv8iQ0@2p}HLYocbHYplLbX%8e(iN*z!}-uq z`t#7T1B+KN5{2tc&&Pd#o`(>GoITS}?l#v~aCB8&+}kr*+AOfo1m~|qd^B`0ndA%Z z(JHiccGsx0^X_bkW-=|bSrcB20jn&x+I0=~1>e!Cb!7zg+3009GuguC2u)TsLkw+a zO5#`cx$&!dLo8Bbx+QlT7f}Z=2O#^{#c|=ULww%leyw7tqe`b#$zo(IvHgrb;h2>* z6CfH;v`sth9u?_EHNiGv@BDqZEMi0Ng7jzNvX z3nRj6idF^MwUriv;cQh1#UxITLM+n|UoSYxN*{X;H1=C%5R<>h%&Prmh;s|Te<{#> zT<1Xb)>lEI7`7g)nnZzBT8D0sbl?8BIKEJao$9FNP5Ih6erCLl} zX7xxcnlc1~Xe^zl_kzfH7@K^v@AsSCxj?}rUypW~VGc*9vAcvskxeLalnuNQi4Z{dlHY;l)?Rk!myBv+G^+XIAs>7i9DJ^qOt=!_;jBsMTkTGO{b{IKt&Utw(|ufN!GxkrtrK|TXL|x?>(B+^ZJGRg z2d=r9}nN2xn=&j`icZcZ=}F?|FUT{QIvvce#wCAMW-({EtIFkN!5q z_sau)4AmnhzS8>wyUUJ$bfS-shOfnK<>fXs| zl(Eu_yZ*teLZ-%INo@o>p86cdiGbZ{Xtl8sdxu=CsWB!MC-7VpC4@tE4PyswpEQ;c z{5nY(g#NVXjVe*};8$GeAxglOSM2!TR`F@oqYG{D;J%?J8&o}}obSZk{~j>73S zai0B2uI|PQSSyNlO_@agW-Q_{2G=EQFwVM(Zmx1l+3#Kvq5j{`2$Etmm2Tj0kY%XV zsPny@$)!`8T#T3%Uw59DeRl|nl`NP-NyGzZ3A>M09U2LrSQcNKUO796mAHz878PH% zIhhQ%gU%<4-e9{aS_hl)yZX^M>u;)V1zG8}kM^eCCTk;hIq30lX}zX1pHduGqt18Q zo&mq)+M_x3Q7LEI9l~9lhHcVlc~o2Oo-yY}dW-rCyCVd}=qXmwXTsu$NU-RLpKzsw zMc5;N(}Sn;G(zkN7me)AMfg|!JwHd!yJL-nj$>Gg6gT)IyQ}mtzs*1zlqdH3b=}X8 zXdoiXMk!sZ1WSDJ3;9gHM~iL4q+6>EfJX?3wywh`2;t--?0$vsEd0lWC%q3_SG=aX z-PrrW?be^L;HyqU)%PUi?x3Ct~ixcc3ax0m-BUwoyMwTxy(*};D*5;cB&IX zoAoL2A)Nc#c}1&rl&XJbcE=92TNGU%wwiSMw7Gc6-PWl77XZHIwxq@qlq+7?@y`FH zc2~#YO(+<>Za=Kc>9l*a5Q0h_)Vhj!mdLb?aVZ*WYv^?Aix?T+87}a z2!;}Nx9}e%iMg<^4f!aQaTaKBE&r~n+&vM&uJCwKh_7w{*ZpmXn~nG-v}x;xxKgE^ z#{pM65(R)}m5d+`JM@vA8HX(%q0n%la!2DYh3l|75#eF4oQ9O= z7zU>Qbv;XxSo>2l*e=aMSe2l+?+!#aP1&)mm^CL_jXK}yI4Jl1 z(LfC@=uqdG=#gZMN!+e5Y9nEE0#1}H(+w?8_p!yF;7LRpy)D8aAGhT5WygE;zavZx zI@kZAKQ&8RDXDusP(QVuKt^AN^cT4PvY)5jqnj;lVqE)CYzFdn9W~gD|DbO?X0L}M zO9($^{jmR#@yL?`sBx(W?d)>uKpTdi`$2;>cn)D<40S(If~2z$HKUJ1pdpo2rDyN7 zSQkpNxMxD~Ns*=-ohr25BTD{w;Zd}^<@??)gC#h|#zkpHB^*6$_J*0Q5e%~O3DRm% zH9&-5N|*v93dVjZIB)7|H!M3C0yDEaOBB$nILV->sb!LOv_bOV^xSLyyu3X2BfGoP z+g=PK>OyeI&;A->#9=!jaA{e?ol_fKd(=bC^4C+Ss7tXU7oTA0b==_8Momzo9qOsm zYv}pN%h|d@bdj3jAX=i%a%dG1u8s}F8c;kvE&^!r9~I~-2!RdMENxJ?K6-T-ZJRA^ zUbAczvRf)qp1+OdVyGZ(c=SVdD2^v+GpY5kLFa@Z%aE3#w_J)?`0>tgiq>&j(Y0cN z?=Je!D-o$|SC69rI8LynbNJ!MmTq*u>jV{|aidL;qnU>!2nit0q zYv^3OP5aN7@fu=BYU)Y$nrN2u64tX!p;eoKVHGWACsA@HdQM?G?UPAO*LZ`7iO;c$ zSC8{=t9Y*}^h+*=f~&s5c3Oe<+8F!NX_VX*9h)BZid410E`+D7{`^=3~ zMYy|;kB_+5K#epte;wkh2N8RSVFe+gZs(Srh+xqOF*Q5j3jQ=#cQ7*Rk9W~xcfPHT zv*Df4&Ypr0%&7x-Wq*KII&xFz{TqdQ6xfZ%2%vX;fjvy}I@Ohm-uL~n*%wdU>0`4To|pU&~eMKQ9af{ z*zx-q!-*oecm`ZH2<=V*r^*~l%ce>GK=}wDWVX4df46j_(;Q1g$@d|SZ^(P+M3q{V zVJ~K_oWlVeKUH=Di=POE@z{*?z@pH)aV(pZD6&GSc0`qPlsa?}%FsEX!Tak=7pg@r z7ez>M8O(Ev2C82p?pMdNY`tpZZs%aoVyvG~(`EB~8se%(mY2|`v3mMjR}t~Jh>|yy zmqjPrD8Nf{t&?~&AnouvIK_|%5S;w_R*aSfhm_G)ARGv~u)`FsL+T(j>bpM3%p#bu zxkAE4EseVN>;CE0X-J}u7soFBU#{ZH)lG{JLw+eQlGwFH~P7XkHPMaYv8o?(P4H$-n8H`Mbpw?0A5`dC`0Ixf$f z8z=0dnqu)NU*vkQJ>~=pzy1e;K{q8_;W#qO{s^gULtdvisE)9E`-p0Q`fpz_+; zVsC)U#k6PVujnbnN8sGYR!IRLYOlFEBQrM#2^z}X)n8!!&WoA4{$wLkrTE=J;fTAUiiSDT zc}B6H5zD_UG(u>Yay@4$AFFSNgDkZ8F*MoPf=@d(kk$ZaexQTDt>UBXZ)2vuA&gX2 zXxm1>70ks3HfJ=NW*gI70``NbMl{W-(B%f8p6FqY7Ueh(Q4<} zi4S2taHi8F$y$N_v7DUd16zc$MOSB$tEokKy+pmOrEv{2&^F8a|LqWOu1-^q`{h__ zH!b&mp2M+(=w%z_Nb(X@o6UpP{yc^GY@!tHhaqmzNtl7Q0l$<&k$H}nL}B%+cdv1+*`%3qqI%yi#1K zTEneiVecOr+8bxT(`(}V$1$NQiiS!7N+FBes9>5R2Xcu}gvy*A)=|ov+2QW-q?q+MS4MSZd03rOoy346<+E{V?l5ohJeG#3!%G zu?%E)x@fT05%toka>_Tj-~zERM9~v5Aj%fZac@ocxl22oQ_B>BTZsiXuUI!D70QSM`h zXklSvLLDBVDT8*pPM+mn?Ns$KF5>qYwU~51GUL{ikC5ybXrJ7z+orf6vKZiqI6 z(>5?JwW^7WAgkDiQ)nky&|y}~ zM>-rwVelaXeAv}AU<2pnvgDh%KqUcChV9Z&+xMm?8AaQ+2hD}P(K#K9;*3PWYM#T_ z4TgqmP!kDLZ0^ys+0N@yFl~%8^>}@@V;ugo87N%?uKyhAG{MBnRT=A8#ZY-C3YqWm zFyk!shAQLO7?3bbW06P!(dB$HnM9L~nMuHo1zOFhQz-SVIK&-}Jkc++5`%g7lSv+I zc$Jm0^&DtJ>xV=^^wPpze+}JhZzgjCtSJX|IQq#D|)PybHyc;|*S}sQA^v z(^|!b^Jj6!bxt$Kc<7x;K_2y4-Al!GyYUG>bYOb?>OC@z81l?#%;&+CC^fgBV>2yr%s2=2gV5CI5 zGvr5}2F2N&jz(oQXb_!-KCNO;#Oww;aUj$c)H#2p#rRhR`C&hkZlLRbS;cL)yAJdy zQv8%y#dYBs@&k(Z7}dx{hGI;zUCg~}8Ouf6Fv*k7hTg3^LlC?nNqKbSgZ@D{Grm3c z*Ffuzmgn)F(RJ)DB~Sa=85?a&hse*<@hFJu4t8D~ivBgVtFvE?I+Yfu+o_FCM5y{u zyIVP`kU>nFQ#Yw)STzpItML$*pGk3|3;8f~tWvRH?R!*{!|5+tPdJv0PC!x-drd=( z1=xT!kOFp3(s^-onJ`7kCoPBu&RtUO)yz>n;!GnB#O+4z^CXh|L!zki^=pVt-TErt z)3aNmFzgH_1ece>_^`ltI`rCEri%msm;oxS17)D`sW&DRIO9CE8cJsdAiP2IS=|=H z`c+8Jh?;TsPKw#pqU5KNf@Fi?f@1Zif46j_(?YoK^crHG+V^7FuV-_qZG+;o?`+j{ z9XgB&N!^*{8i&o2h2GpA9(^RnOzPkbh-i&zir*12*PUyYz}Fn_%SM_4bgMVi0%&`# ziU1uV8vBxL6c~(HwR)}JhPZ0MWRK>Nh!EOcX_b3Ne6giWL<>7i^^a?glFzG#$toVT zS9u#nr5FScC|Lt<`rkXiXJ#<3qfg;y!;~ z#ru}iYl!tSSHLe__cTP0d5AaDL({9R=rNQMMSdLwI0_;J6+xQ{_5-Z z)dl<`d{EC77u8wVeRLI7?;Ams>hTc%6ST#)6W!piLwsJq^>@{StZCq0&cg1jSc{!5;T?$e%(!$?*-(Jno zTEiDc*J9+tck=q&N%b(~t`iBTvyIzTwLAQ;^ZFm)q0#*}KsLv!TzonQ`h3;9>kFXn z8MX|P`4!i-uvkN-Q01wlY zVGMOXUvF&hldLG!<8wG zg9PrzhF`t;(Lih2QDrr>I)ppUCvzX$1P<9zoyGyn(Kn1g%Se4EDj-p)ov*f&Kl@mv4sX9pmpChWrp2%+<52MFoDL1vMs_wSpCXCFiNHJ%p^PmL zyFjo(CDD0?KaHzk!dQo9f@@r!N{eAO`e{Zjv`zJwu)$W#{2fQ3k4;_uFI(k?BiDm9 zXvyB#lp33TW_O#DLbNIemQeJuO=3JiyECF}oNxFt49x5X2gNR|-JvX+!a4ihoVFG>`;xlb;le|7YDyo*VS=w~PZhsPS6d0nujJ`c1LEVJs z!rmO&tD$43N^=<)92$C1EV(UaR1*jdwG$DLSlD77?xxGs(>$DGGmyfu_B&bke~&{U5eCI477DRG}k?Ef<@uDcU# zpr$~h7xmF=5_54~4@a=^52NfNy@7V1hm2xudNsQ_Q5a$I8UieD*o&7q9mn4qIct%c ztl2Up(DsRb8Eue{6)!W^QV-$oLrhq|QuAg{_MeA%tm00K_0nPQueA7dsLIeU%;iQ* zn<&9-vo>}z;RyDt(u$qI0njY$4bf10^%G2>>zQH)ekHXUVk~T~ncM$b_1LDjb)rQ> z8{9fXG?^0UP}UaX27evmI+*1}C^R?`V^F{K*+&5&Xfbc>8hX%Tqku)1R0*(vh|IJ( zg+dA{=+}gKfC|4_WyYQx%usG>EDNb9{q5ZIt?4>27YOvaOc2_ zZxqC;$72k3B>e}x2SfsAYRB<{!~r{kVUl0~graD)B?@VMB={Y!<3TDDdU}fUQ7#>9 z7ROZe*y(UTzDn(?f9b;hP&7kPL0y2ub2#U+OlFvv9O6HVP36haKp5cmpPUoA@Vo zhlzod?6|2Bu39ulRiK+{Nr7_#D-(NXgC4AAR#4U$IUc%bg-J}Fv5@~Q7-#T4-T_t7tdg6k^w9_Fs0 zdLRwjmZF2aCIZqVvg*Io>UwyH^N6Deu+@B)`!ODc1$`n;C{p}IzWB8)7spR%sL;f3oZr z_xZCivr?qD(1uvmcT=U#IS~!CyS|t6=`FOmoXqqsAY3_U)S$WyxrR_PLv#@|Zx9TI z%yXtb`WW)LMfhm#w%1hZF%0pPh>(qn(JXDLs~(`L$ccz%V9v8BlOKn8ckpXl#cb8i zVVcu_AY38nld|kdwtd7kBfFN8Cgbjr(9WvXdWxbfcC*gj4kG6W5NnpsFcA zw^&k8ED&f0;w|i`tK+Ifgd5LSJm`hpyO9Y5xMP2a-mGfuIgn&bD) z1VjYGr3CdB#8F@tvKHwVi1SuNE4Y+V33XmP&e6*@f%Lz|M7$cRO4sgO07#kqOBreh z<+FLx{Bv}^Q+X`3wISwXLV@1vR{;3AzjYMylp?jFZaVERc0gFOftnwUg)O)S ztIib>Xyg11iGq|70;>= zY+;+;vq)!YZs|tnyDBcn@gfv_WQ<0o_ZzB*J+rU6Kf2ikjNt5qckwk4?2K@wiNsmL z>R?FuSP{#C=VGT`TtC1X)Y8|`S~;7>mb3XF?8Tah<_0d^u>10u_Lix)>Y>LW%Y9tM zbvwR>STBF~8Lsl&ezS^QV&Y+gQ26QV{NNt7r7g}Qc^YFTss_FT(GyqnCKqnnvZeN{Zh(GcKCh5}8Q+!lLO#mHVdg)xn_;mwNjpf&efl>C`SG|=v% z6Okd>gJN8C!Z78K*qeX~L}@w)>jd5=YSvwVHOFB@3$ z+63{I%H;3DeQAJ6>5IZfNS7-_^s;(s5j5ghUB#{L*jU9HjKDCfq+>sD@*8asG}5|C zVM8p(3Heoq4)=#AnYan!j5RY9JRpI=-VgQ<#NDeD5fd>?$6ft~1*7Lm9`Uw>nZ-%E z`s_p86=>oW<(_e31l$!uk>-|ebehn1zvC$MQmS{?06`dHM@`sW94;i33_Z(JzM$x=eIGI#4T`TpX4*H1OcR zNInMrX45Q^g&K9fD@i!taTJ=^qjRcU1(<}Be;=j^J>qf*39jU&Bp0d$w9`6^_zcx& zDD*>`o6D$*$MZnKRWYhND2=I{ztzuOO69UArqGpaO_AcK+&>VmTy1qX>>y*kq?tQMIq41vQ;;0`B6;M|xsbeQ@-XeOs&w5VteFbV zQq_o&i?bnbFzGn!!hql8;=Q8{J{;O5bWET3F`j~MbXw7g;U0CUN@Wo3@ueL5W5<%C zc5NYd#1gE1ehA4FW;YPAW$2)}nC1y~Wr#P^SO$f4s26c{G=w+al>4b4r#T78c@Vt; zLbGWk<+!^U$kx;l+L&S8;I9gF6LNDA_XU}n@r>lrOO35a!aoc+xt z|6_>HJHNdi2<@RjpXYP`sAg_^vEv&Y(>4R5?RH=4<&DatkwQLBah^3=40l|I(z9>N zATeb+f8Dtj7ImH;%Y?ZKR{wip0J&15kloS-`_}f7Y-;2iRTqp z*EI?Njl!6KXxZ>(s0z}o;snyri7??Ka3Y}90l9fMO)Q(C(10?dfI) zn4%Pi=cF)9nNUor za5Z@2F*yBukT=~oerK7Ge`ixUt6HmAL*rBcRFcHz(0w*a((wYUVznk*3?j=^ZHixE zE@&ok(@Sf9PYvO!!!HqQqiu%*jYQ#MP5)VFONSjxeHH8Df>4xv?jyd~v+ra~SB`T5 z4Fr-n(KDngv(VneTL_1b5rZQ?Sndh(77o86OiTrC2s6CYrAyhn7QeBK=WXu8J4 zmE)L%Hi;y2O^rX(;_KYsHVPD;&Y3EQdkpC4x*pB}yzS(-abaR0_Zo@? zHpG?CJ+D=)b#-*6U0VK`RS#nkF_|}n!1~@2N5L`?0oa^h%PNlJpa%j7FlrMp^eng8 z{c1If{mc%w=m7iF!eM50_FQ`Sx#1iQxaR7{OaSFnFdpLlU#cEg6_H-6SX=h#gLdru z^BB+(tBJ8joTeh7t!hzXNAX6xX=R)T#D{d3%Jt%-_>#wl7}!eO#~=&J6)>6#DvN2n z*rel_Me8;6npp$>#0*O@$y-cR)#|q8D z>H{p{+OKQGw6V<%IByRxI)I^8<1ZF;@r47;f#4xR)If1})O?EbY@^_|`T-h0WP@mp z=?ble>@n5-FK*s#76ETfQ1kVcuJaBNNWd#%r}+B+s(RG%-Cjd1MiU_n`Oep2_oz+T z1NnuYj65}MWc;W&>B-o)N`YlfG>%A495^`t4IN?|zS(TFc0B0~E#RmnfGb4<<#xfB z-ds2eDzPl3M8K8S1UO@`;kdyc3B`3^Eu$kfHM(KIBJxo^J>Rw$W53vKtiVnSc*fW4 zSlaBf)86nT>D#D-Cmv4ePBglo(+U4M#76_y?b=-*;_M*?GOcbKgf@&bU&bdV7VXPWh7e6%`~w?< zyQ^;xwmuF^87hR?nuiV|tUeMAgo0N^P(`|&W`0;QCMh0@-E_q*9liD_Af9QufsL4d zBNV0F$ITEAGmwf*U)PiESTZCvWBs^V5!S>RyXPT}7}L5@PNFrWkZA4cXdAJq3wCAx zBJJRu&NDEL6J?-enmQAd{@0cbl*6C`#9g+!!1=i+?Jl;1VWO59{bh)A-4gF1W@`r( zy7Hc#v4oG~bV!-Q`N$lY3s)LT8pABw8zC&V4NxuXnz>DF_NwQ)8NAopoj;1ztiFw>(-51CIcUHCHBN0M zt$R)rh}eQqpypFcH#*<@b98$#L#&Tep7VB=>>5i@L??Y1ov0WlMPruwU;9a5O9=f= zyj4qi=M%Ok2?K8kHi*kMuKw3Go1Cnu=ee@3*y(HlbSx3@$sv(#_IIadR_%lWTvWpQ zbzkTayLn+9YSj5ojTke;m*a~=M9q7{qky-tmK;Di7@$+>ry(8yG)x@A$;_s_+R+A~ z@%AwL_9DKlH->ikMl&?^XIawm#cWxTWJCNO^%MILQ)(N5yS(S*ikkbewusWkje zDA*aHs#evne0yo2E<*}&;v3@Z$12tpUcC^GxFr$<#(sd%G2Mg8y*aS}ej}O)FYnXbfZ&MkKE%ZSjGAVIr;B$97Cc& zjpd7OA|6jyfSQONnSns!x&Aub5$(>|<472~om_%D!l6OLw3t(xTF391p=t5W5cf90 z$^=5O32}z2<=u5-f>jR%QfISI-2lO5ku21x^PTS3D!v@Ttt^KpUx~=fGMEVan8-*k zCwqY6cdHm0GDn-Te3$}lKsZ151tZAesw8h{v!J&dKp53n=c7=g{l#e(>u0YAKHipa zSz0V*YMVIjgYiR4VBy{?E`=I(8ctge;bw^W`2HT{e6~>-lMg>xs}w}Fu$FBrkG~i# zwfL-1lZ}NwY_MGkYX-8>btpurlaANpID)GB&Pmd$oL1TXAvjibR8M5NLHXnG|`PON)G>_-2x4FU;5 zzeDnjU#$HJIyZ!XN*vBD)DSWS*7{hzS}@Bh=7VrO1{FBO&Rh0q9pbi%9|E3*Ht6EY zU+??-)Q zudZ{{`|^#3{($jA9L>;r!$(a!9kxw%ZN_aE*EDe<|ogkgDO8^r{%nzz_lMjX+N%0noXt z*r*FNq|Q9#n>F`rDlB;ReoSZGlliwQbkL2X`Mi78MlBt=f0yvXQ43D}PqcW?&+%Ht zj8(Wtud~?e;mXv;Cj}kQnr|_k>5W0Ty_#UADNY0b$c`lSofIZzfN0yzp(D|ECcpX) zbJh^su&o!4pPfH|lomI=QFuyYcO5em`z9JV5|3{1M?#U#>vE=s&=Jo0G-2t zjnU+!bO-S2loVGG1E!(6jXSI%2aiIpPT(aOjD)V(R(j!IU<$OIaKB>ca|ky>qFphu zH%E*sG7}$f^CXtiOA3PRE;A53W*VCl>78MZ zS~eRqS)F7ix%9T9-1YlXQEcF^A=K%(ld1JewkxY;Dm;iYP3GGnD+URUE>X^{NO9?w zwhI|n!juS}@zp=DJ-X3pLR)#O9#GHzb#*FBcE*yOouj4$Y{zhZ)3;m(IYokiM(Q~3 zPY4T=1R92H6Lx8VUy9`o!ehr0%WEbiMvhH7JsO8IYmbStw;JuG>hyJpZy8Sn8|0j9 z78H;DMJ|5s(?XjIW0oj7QJ!<7FlIK2=Vo0Fb~dU*AX)V0VJImof%r@~ppN4ryG7)H z%mdKoc7&x7aH3D@V@f)#_gOGH_gU#gO2)CRx7cHdo725cdiQvo=lme=P92SLAphQ} zENayGZly;(#D-tm!|ar+tU&N<#>Y_{7J-vKlNe{n)_zGLY>?GTK@e&)-5N1f6sqEK z+=f`W4HyFkg>+O_JIdD}Skc%1hWj2Kspx8=G3bS&vng^erxw$8cDeW_z&T$0z(oML z5MFjn73kBeSlV3`9!5+XU`sfZv*QyC`aT;2E^H49Lr6}Tl@O;z56r~n zP!(vi^ex!rrH>;m$LZsm0#-9&!9*P)Q^sL?6ddguC&$&f*B;$EHV`4>ifLmpGZ2W| zi}wTjqmF%7?%hjmw;_Jj^^mrlx3b%JXP)MOZ6mfU7#u78r-g>D$5+!iAt6{BZBv|S z{Wz}o@N*Uk!*R^LG34cJ;5Wr@LfdgpUtmTBuIEISaq@>L}OQa+!27Ko>JJAqp(K=N829_J9Jd3R(a~5`~F?GU3 z|LaIQO_+Gup*_?P66!|n_F}@8f}$1De~`{KSHA?m=5FyA>`qj0?_{U4v19v&x!F~3 z%>fJft|5lw$3v>*FSf?ZD_#nz@6eukPAN~0=1I{i{y&WfuOQB1i{P}mj=XC`u(~D5 zprmPL_0}XBvpz!Z-?qB{8yZC$Vuyr^xI@LG_rOvZw0W(o^Idi13)Q1>QPUC5OaDLG z;EywxqaV&vr$x!zn3-+&5HNmA=zr{ic7TWz5s*tAaCJ@dh*R7Tbrg?Qo5et}H;kRm zz(rsl6hTxs!ph#|94 zQm{&<*?D)ciPL2>h;O)!QZNm{j)G036C0R)2OK{@Hket6*o3rWStA7kH>KIF294uP zB|-a6uZdq#Jtin%mv?QVUj6(IORDF&_+WZn@Ue9yOC0+?D=$bdLZO$sgM97{GZUo_ zk&CSF?7Ba|jX-o`Nb`vQ74b4K+AORA75<>70KHuu{qE>)g?sUED4{=98_uHw=u2BdSml;J?x zv07H7%V08xAF%2y*GhuG6z>^=07$ZMT>DbS>V@W`-=pzoq5l6Y3@vGu6nJKA3 z;q?MQhOU%Rh2#!ilbO{pd>Z1T1tAVXp_dDvQC+a->5L^ucJM_z&)C+IV9_`w$blDp zI;&sXfoLJTBFB6@55}%_m(+*mTGEXcD+IzF33jl6__fTGoy?V{OO`9Y;rf>||4Uk2 zHI@xa+pC(n2JNo8j^X+ZzcjEv^wYKSwP=oks?ZyPT@9XqN)G&zOQ~oqTt0>;rxEP9x;P-K3O+B$$Bwt-BS-4=UGVJ)Je5KMrwv0*`_rj(e4`W|yY8kEAeN z`ap|~2SN77;=8+TYlx2m2#cX685HOKxzE2tYaNe)=?+4}V;u^XqIF?RJts{=LsSzh z1go-gp&Q|?N_5K;z*o4|D?!{AxBd;M?P<9=gBI)KlxBYJmvf+Zm$!5z0MR`cV?F0$ zoZCDEgnWAyQ&2U<`L-^?7Hx0Q5K+UB#vUHM5Fh8nIPDVj`}o;W@;DM=XpNa!_l~kh z@#o6jL137JUJ;md!%u`_8zJ1UOny}gOUIoCP8-6ngL7Pz2KbZ(zu1wOQlyPHtaXDk z-;73m^exK2I*u5PnjwTxXbSi^+m}&HC)0^j$?W3m4YtUu!}WKQJoYE!ql!K2D_y%3 z7LcY!ol1+Z^KAwagOKz1ey+pS%pC;e=s5$^tXlfg9=}Avx#xR3KiC`69}pP*E_l$;c1Z=#XxY}_V};(jle zOlZdu!kPP|#~dI*1YyXy**6?cni^x=l2+;>C*n6F(I;9`E@kp3Fbqnd?;!j_#-=Oo zR-e%%il&f#omj?W)cH&z-Ig#APaz8^j<_`U@}I5aAm+ylER?r17;_FcT$*NaJtV*i;>>qZVyp}xq&4# zEGo;zJ~K_tp9n=nX1?WO1}zBFbMHHG6s{S*S$229cn6hDL+pGx9?B|1%(Qz`Lu>Gb zSwL}0kaZIE5zt+LPpy{~R99{M?7aV3%%$8}lXI#99WiZei#OHw=Qvzr5zE!6(}wtb zUaMF;BeD*wZjg*e;nHhPGk2)UX_FUHl6tIrXeV?eMN5=CQ9H(v7a<@%*v|U72(mrT zw+$N>gGRg;Z7ybvTynh~=GOXDn}~R^Ny+u?934?`s7*VeC zp4eS%!v&ARkulmNp9sZs?9RJ;MSBJrz4y(D2t%nOkC&G zB|>2gAq^pLrH0fZ`Ge)Bp>t4nQoBvRJBuxTX3O2UJ3?3^4(4ca6#LP0ptUP0GN-9C znE2A_{*Kv?W8dj&7%jsj53i5Hn2i-0`PDWGED=`oj?*i>H`@5OHBAkj!wkjVjFqd^ z3r|OZ#zgN3Pa9s;hfpEeAd&DKtztByIGu@b{8zs!qa*Gu*W-BRRjeCN1m|N*H#*-{ z0JlVuY%i``yTA2Qu2B)eu5`3JqTDS`ukT<`Nt1JRHH4UnblepQ9U86?9lL>bqdxRW zL(b!u*fv*>OmUQ}*)(zYivXFs*^2{~RD5^F0<|H}8JcnU(-7Acobh@TJC?G@SCw2( zqi`GO9Cg`?*KzZF1kwP%3a@M6iq{h8kwb7NuYDt%x+bj+9OsY@c0{o!?W)y2`xKn};(mD*)I zj>o6Dr5l~^vK6ztQO2qStVf&K!Ya1dP^@&Ze;$Kvy=kSB1>pxy9z-zE5L1hfTo1}2 zQ*7dLAh6gS@-wS+L9{ab5^^{`K$usY1w>ffy%1Q_A~d&F%yO(^*LKpF&g^ZB{3HZ& zPQ#KP_TprrZST9Lu9~N?iciPwLxODqy8$uK> zWIfE4h7z}@i%w`tom?hbjNMvv2SsKwT{PvO_u5C)Rs4>lI308Ty5Mt5H#*JI*2==i z5ZmjaxYb;bo*rV*uZ+6ys!Kqh=gAmQ^(5qCpn)(`mu1QY-O00;nv zrm|AR(R$-I5dZ+R8UO$g0001DY;R+0XL4_KaC0&)b7F3_m!jfer)^t&Ot1H8T2Sb6@0aT_*r>nTP^V^Rkf~;cvDfMZXnLJ)VDPghg4!UI4Bdh zNr^gHb6X2hCX=?c5^I%BYEY<@Yuku9%2ss;F;1z{YKRvV9aNnBM;Xl96`veEWgqCq*O0lSqm znt7r^Ioq{JtXIr;UL#g37CM)RMT*7F6=HVlHQg#Pqjgz#otV(Ns#_;U%GY!^iNT6> z?IzK;WxZ{S=%Ko)1zlyEn!Cg!iY?8P#J!Ry)GrVpR^6KbA5x7yc)+lEi(Ef3C0T8! z)A$w1J@_HIM_~k`GzvW!X^@SA;bz5*ni#q$S%ZIE2OGvZiB1c$dp$&GDKw#hD=&p# zvu#@K!K~D}A~3VCkq>4>HKl>+6>=e%c0m#braCEH!4!eK0rN?ASNMZTe)3CTqO?^7 zCWN*|V?MFFl(t}uwbCApIMQ+yyj-CWf?-Z7SIqa4yUHI7$x;-6!TGJFU{H~YkM%xZ zqiWC+&($kspwB}Mwy@75N*NEHik4l0oi2~7j)KQd$vwf3HPq^M{F^0o{=ru6ONh&- zuUEYwBT|f6G}te=EgJ8+5Zn=s=eY-Kqq~R)Iok3;`u$gdhH%8sTfwIAQR3$V&6g2J z&xDzyCx}m99E+GD&R?7ipCOtrPKVDC+b_;WED#%A=L+s``ySfG_hsUbqP7QFXOd2G z%t0<`q&J+Npi|ML4;*!ncT6x*ddWL3gxDM!7itZLl>(K%^-sNLLXM5m0(fUQ|H3bfhc2C3FIW(4;6r6a=J;2q>W=y+*o}&^sjb z5+I?5mgM7p|L$7%*ZFtWI&;=M&z?Oqd%u=_R1X#5EJPbq6^z=TJJRr}h zJFkBsT>jn?tbqC~DIO>fK|Gm1@!Gy=RAuC}wN|ys<(bV2bDNWOsUf`Xe9k&3VE=ge z%x}3Xy)$#BQ!2kto2Ij;yPdS6SUrebJB zhqVV^jYTHCLRB1TG%+P68*?a7JN39tQmx$N=k|JtK3Kd^2( zqEcM>maQzLt(j!+4D9D6JD$ZuH&;_G3m$Jea0NCnp5Gm`7DeC7*;srO3kcp=coIvV zKa}m?yUE*7_wPF#?h8(P&QGwOc^n$^)}FCu3|YBw2fMZV%Udl+X_h5RdW6vCEuGV@ z4BS=TrVq6ZF_6dI!LBxH);KzjWm}6DfaGte69-dD=*e{hG=-_+s&)&&uP^ za<>{jD3{DdH{S+K4k8{^v!3}%3na$|Hvoa zS5ZX_5M50Cj0x2^a_dK<)~Z2RVqENH9+&$TCC>vZqtE0T>jz*jLru+rIs`esgd8 zBpAhWFTshV zQSCb$2ld?jw)gz9k4{(^nL5NNuw4hS3wBF~q`bZG!=^Or9w@}VY4+hIosU_Nl6&jQ zpKy3SC$#ofgkFL=Ql6deFO)&0&T|6q)`Edna^gK9bRUHg?EsRo%6e&8CJ3qgwaWF* zqJ(JXt!3h>y*4iJfsZo%ROV<81CsPjv%dlGR+*aMK33%8-L`!Ik={eZXMLiHrkC2X z(;e4&;CH<-b~XUB`d)YsckoR<_QD@v6!Cq1`m6Awgm*6eHId0D7jfB5-SB0F2Qdr! z=4NX$_iV_9Ikt4bW{H1k$VEcN4dYD$tgk|)(!>MC4kL#`V61-IMf++&aYeXiJFOkF z(bxzy&`%UkN%pG6P@Oh~Baj#{XMjY-SR(d4ftdc5AUxUQsV@MEQQnEVbtS}o0vkv9 z2BYL-U-J)*NbQguH(+wH_Y{ln{@D>7ZwwMx&WAt(XtDn$#4_5g7G&6tgp8UT{+oa3 zo_5jxvg6?Ck)lnVBt`d;MCSLor5A`~jN`5w|J`C+sUKhl=@O|yG(75@RQA_oWqC66&k>3 zz(yu-3?Clh8KronWV<7kn2&BKmthJ=ZRrYZhJaiLREB4`t@CL&cXUwroAP;lxSadT zGt+gutu`bbl@>zxyFsRLiEZMO3;Ec!)lwddDK_qO!gs`w?-n-b<;BFOx#={X=9EKe z2&Q|YY16Ev%({jCFKCBcpOFMQ5=Cz>A3q3d%UdBlp8`w`;^=Hg#~I_|0_V=GG1;wd zQhuQ77t`>wlA8GQyuj)f$NYrO{npuAUL`L|q5zqHmO;bcIk>+^wNSs4njRC}i{^Fn zG?MVEG(bC0aO*JT|8!OABo4l?3k^wT4t`Vm<@mWogNh{ED_M(^(l4I3LMt8g4fH#o zn%l*3X+Lyw%|A!#gdW}8HVn4Cl;1Y|Bs&z>=oj?RiHlK6C@~KZy_wu28AlQjG5Tf1 zr}Dc4kC?MNKfSZ;Z8Ul9GWe%h2SpfQF-_+Exg(-q=FY7^$sLlJjg%!z=*{cSnct;M z5`4w%qW$!up`s-=F3)q;Qcw(^o!?AMaT!dFakHoNRvY&vMQaL*ru;fIkP%JjMO-IU z-DG4de}&W@MBG?4dA;U;>!8mT(n6_h7SKX_^xHP=Uha@|d0k}AgdBF5zkUMLi!>_W zmgyBvi_uj$=xKGU<~#GL52(JSZ0v)enwMx@h-|JDYcip>&;}zu14AHz*c`#V;>NK9 zo{l}r3LJll3x^#)M%dLTuT5UmQ2PsTh&6%rLT8T4pY6Z}Txk)mJZrQlvMIRdHm-@( zH$ik^I+DZ%&k@;w^+Zlzr?m2&ofuey4=MJ`SzA~`Cu0*@#4s0*p;UO5iO}Osdzi$w zJ5`wIt~>9;Rx{u|YP9Fmf1ithk7SJR1KaxL#v^PIGO~#`ZP{2fk!D&kFMH=Cv~_&& zj(KlBwr&=%`pTSgj>KI%yKq>mxDNf{_lGM8Y9#-dZYm?z5_xA4a_1nZ(Wiu+hwW3m za~wpN#INvK)-n#_+M6Nq68iP$kYiNy`)H3&P1yRo`^)d&jT`{A+)U{>6xY}b5@LZY zoxhFRiRrV@(+Ne*Oqw=8#z8Qqq`Z9E=FxqBi?30_^9*L;@Q;;<~L` z?>OpEw0&{;7fviMO21)8NRu2mtHAw!&u0%DX&UmqW#Zm;PfKr^-F%WO&a1XZ2YCGl`Foem(2{ zvdwnUw+d@d**FvhHXvj;ENzzdP|>xtRwIkAZX5Wi{w#YToci)G-#VrRLar-iyg-)E zaj`^zc_jI|q}txeZN7(`mZSs$FTJL^q1T%|<+iVZlsy(>g9aptAXlmO9BTxt zVzbQ~v2K!6L#ycxajln+HxHD{^}+#u#^w@qv1i8*Ho>{C=dT6GN!NyFcj?v)ubjlJ zv+roH{ashzto-@XkcN22Sj$bd^}pFTSd-NgPfG2dVvj!yyQTb&+hqBj>+~RA;M(xY z-(s(4C-i5Rj|`}uY201Bp`s_2a7U0Wxp=v27>${|CUQi8zIi9M*`v+=U#$LAQLieh zc${`~|M$ldi*W@F)tGC+JNN#5c>!mUaeSoOR4jTt&0&$Ye%)Y$&vBYezwkFm^B1_> zc3t=#|Gt%<3D@?tDHZuKM6^tZ4rWQu(HW)v<;TO*JTcR+48T`X*e4!ZNlxEMx1a5h z6F+z_%{)8GS^g7eHQkr+;U9%>wE#npW>&RwvF-v?w9VAa(0RXJTi9eVJ=c6*LAt}|6IKE&O;{tFI1{e%PjjrX zb5mVBP`MIx^veAiUm-QDw5B|%(5})&cT!LHkmjv5yrIx0T&0Qgggj&3^iFuSPohMN z`5ylwz>d1Ae15@=;i7jVmHgpKWi>}o zW!>+hF(zrzyV1%DWzYXxVS`f(w(+M4a+<_1?^y&5jr>qmy?For%MWQ`y@Kyn$Q1vZ zWKnt69UwzVLBT`yf08T^&yoADsJ(CZ>~AzLWFOwX6&2Te|Hr$e`wz5Nr0>4eq5VRw z`{2QY!uuAfR|X}I?snR-KZ%!QXMaMAbYLBejC;#XyFq9pfDci~4Zc7eA&db0^4l13 z9CD8rfv|n(ZITGaZr~DPJ&p_?f!Fl=y(nQZ)W z=J^*%);B4)SUEL&L9cJ5e~G)T^?o3UQ{>iT0ZUo2lrOJmaJXO+DyRu9iX$Ixk@tyN z7l1>>DftcMjnqCyV@L9N`7Co$pq6C1B#G0O6!7BBSEG;UViA%11TnEaaecCgI@abN zu;2=YQ)gXb4i+idlyPi@%y9$msZh7cx46Awhh!t8vjdTXTDb902EGY{z);0g)y`iM z%(y3F=RC)~JUr`PmwnEg&>hdUDt(d)@i%Is1HOOn@T)rD?dk9@x#Du~w|fH@AMR zKYFO8J$me2+gYTHlAz5)8zQpZk+XpA4Y6|OOJl05GmGZ5dSV%Zz~VOOawzh8L3DPfGN0qD=M8 zmAnulB)OdiL#sy_P`XJ>`nA*5d0#Hx;?+O!x5NI)o6xYZC^f)W@{Hg}u-!3go9$O9 zF%sG;O$|(!+@UMb?|))l!jzMAXusuCVGZ42^K8$oVeveo*6`RO8*p5jyBpeXqq?pX zBDbSjrsSrw82~%nhigpTa!2k(MlHw~T7BLUWDCcJ;I{~2`RuS6>Jl3>=k)va>aXUN zsqt=i#!PmR+}OITF`j1M-YCUTq`p)PDeq_*&=*5Q)@8=Zb43OwST+5OPVA!aCz{aV{p^CT;3jEf{2#P0h%79ndwvj;Z@Y(Y55ez` za{cZ=%7K6(&y`1y{<;Q}z@975SlY24Ge2ct2Y{dz-6j<#pB;N4c+=e=bxpe|&+fL^ zNFeYWCd-x;Xd(6GG!gsdGdD)XUoQF+4gZ_V0Hm5%`|>(*2g$w8DXv5<3jrNDGRiMN zN8=&*U*#fG*+{XCGI|~A*iw}cB~E4gm&b9@#^m-hm8rXtV6%5Vp$lt#1{&h`s-|nLW@-mzCFD5kDDX54I1zw!4ZFV5m|w zFy33BcjC~D<<^_1H)IJl_54=rI^O?KLsEJc1Qk( z0LvrjT=;Wl`I^g9W>u>=2-Rb@+>wDYy>e|#e3nfk8D*GGTon5PC81%mV&ASJd3_*) zrJbo(E%rRzw#mj!n-Rf+%w>{l?VBBw+(ubaGEdF5 z?ov&c*^N5`@qL_QksoRl$1}GWgsT0Sc|yf|Qcq(E1)N{We>S-6)7**AnI* zJMwjZj)4}2^A6f<6`lF10q%CYdL`JsE#3LNpGyqI%zBH8dDPA zJ}6mI*bTgu9#X9d$VUeb2!Ixxa~QlUJYBiB`Rl|Ld^gXkRC^S~=s2dW!TMI<+(cm& z@Z{zU$)&<%ZwlOLs{!d`<1Rf0>Y@52Z3K6zGsE8C-<#)OEKt1@#L3l}MOl($gLsH6 zL%Vnwdmk2Kmk9}m^{f*w3QB64!QB=W6U))Ls7Q{_E7U_wP)BVm0i%5FiuYk%j8=LF zQ_TT&!qQ=da%CZx%G2Z%*j%g~ID`aO-(Hvr%rizL3oMIqPK=0WCO#0hQq%h%B^0T4c9ke&$3-zRMHc&d?{G z^IYC^JD@!6mOUmJ=PJYkK@Bu}t%rx{A$Cp4O{NRfEWG?K=W*x#?tOuy8`h)XPhnJg zO7p-SPRR07NCID!u!P*jIn|}6b01|!F0sgSr0D#Fr}DI0%uC%YS>`LrPuqY$11=Mp zYoklYQIx;~yD@(yk^PMU16|Ozpl3a?wXnF$LQ(|x;9lbKA#IBM)N*%$b9iaUo{d1l z3%kKz)N}BN-*e27@lW_>cq!Y45nKFRW%wB+UVSenJX0ub`X>dYhyrjU@~YK;2_22T3Y?RO05F9bxY2**z5o%C&pK=f?p+ANWa3t~>ZR1#J#N0$~A zUsAyy4-+!NKnQoG{8=DVnHl|1WVs9%pAfNO>$HU<9=W%Vaxy$a5etuPu1(JE zwncAixP=PJce#@+x6##l1T)%jY|ikZA~Unto3&NCy_%KXw^ali22{d6B`Pb!JU55n zF74MZ={283OJm%&dY_PQg)B(+H+CWY+<9fKKn;C}97#X&-;4JAFxFnj+bWHI@HUin znkqVssg-=-&&vgG{rS4R&Z4KRaK9A2-M7();S^c%{6$t~lwQ0k3@k%u%^Eq+v{&n4 z9E)_UU6jR5US_g6f3kS{%1SQZ^7JJ>RzmmSS6jk`)$SD!K6j_$;83E?DZ=(&V{0R0 zz^~0Rbn$Yy|+}lp_k;48&K$N+oFI;!!;mQIMXQ;8v&ytCK9mKRj(Br4x+cH47 za6=v{e8vpX2U^9Y?QY5S@a;HA{q7gqCYQXvQm?jLc<>=VC-+SH<3UK_t%o1~C+7{97e+AoSC2yIMLSX6%xjS6Cp+rChH*a{IgCP z6tXP&WbI9O=8*UB!_YhVBgaLYr=3HN^v10TV;~MKbWm9E2Ek=re|0yi7e!+7=qqN3V!mCyaK6tc>4pmD7VUv;gTM7uzQv{4mGY|6~G zjA3sUzsp{g+jq;i+H&l)PRds>Wct#>+(D}11xGp&ikC0&jL=0YVC8l!DTc=9Ra$P< zYnpc)JMiO*?p=1F#3Z+7XuVZP;|8#%{-|)TU8qP3C3r3MvdOx z-lc8P4=4P}5j|zDW!h{AyIrrnRP>D%|7SlNkW9YwCSL>TUNPGpuhC~K+4!gKA$N&h z1b;ogj2H*SN4ZYr%!EgoxeY;XFn@H}o=xkvtX6Gv$0XJ?vkX#}-@T?wqX%sy5&ZD$ zKqV(M4S@w7xT{M{pLCe_ujqIM`HUfg$somRiSs{LSFK)eg#ezskEEG9E?uf%$%5iS zH0kgNP=DIb@QxE0-)sJzDg1G?rIKi44|_#JRb34!JR|lW<|;4F@+IFJF|m zgrd5?d@jJR(0;%l6VYK8^+6mCgp#6->`3zEru_|I@FBw4)_E^L>rLK>XN*%$f!f~# zZnnfIbc5O41rv_zo8RwL#=T7|;*LheVePNgC-{}OX;p{FhBXzKbChMQ9;kc z7&44+-75GxC~er*HUw^@m3Gs&-x4DVpFf<9%x(4LN@oT*VVB2lT^8U9FS#+X_cPi3 zsK^S0rmv%GST@X4=B+ByF-`k|wrJI;sD`hX6EuFJf-*3}ZU`q%e8^ zn0S9R@7ZvIJ|qzm{Pk*@uk8WbcU`%r^`)v%j`+p57o#7Pep_=w??CIi&%Moj@AwEW zO(Ecp&f#kZ418>#Pu7J}pQVGV4>KJQ>sKhG_IH9r83$8`1$>hBshjk6w!4oYcOr_ki}a(=Z~lY+KW* zu9%l78P*1iC_=}PO*!WG$Nzdc_Bz=eONq*~!>1f!rZiLLS(W9Sr$5m-8UD!rS$=6S z1ACRS+ubKDr~lF;lqTAHCgP)bkeMuyz_a*Er4xRKO0H%J$m}g~l&cq96vW8BvZh z2q}-Xo@VB&dNBWGb!lag%WNnrgk=0rfN$8&9d*0nysT{GA&|Prmi~%Uu9u>Ok2e-xk{@sF;bYHIL7Pin$`8idB4&*LP?iOnX+H!W10p*^ zx$C25%U?ubYPG5#Ts{pYBUA1qAR@xCWJIOo!JK1>3b zm;Ag;y2NKi9d4XOmS!>mGH54#_z2FNr*)-E;kWUL3F5&3JKV_mf_}t{y}P^nv=WfT zvMvKJ(oe8x^RKHR7U?)4l{R3ZAAL$)^&;p%idOYRInYtYC z^Ag3Twe+I)_l`+P499ip$JY-I*CkS|1w&f*W;Qf!)D}UwaAziYm&Fp*i*4OzCWkP~?7maO5QxHgD~LtU8XWj(r+92C z=0X!_CLMhHrFYqa;Y%;f-xCR;!E4-1Au^UUJZu#tyu-h?F>7AOiuqhBInsHRravB$ zwt!}$amEg9pHZKa*L#jcQ|%CoP6$Ahb6~UU3|-0Gks6tR5f4MF`BC?m`TK{`*~o3p zR40z3pSCGry8iq}0c*m%J8r_n2IrXSBAwhDr;8#ca5HO33oXHJi#=?1h=z-n)oOUHk)szfTP|zRrNPt{Q_N$c6NJpckNLANugMKZxmMfo5d*o{C9Ghj0Fa1 z&j3t9KkuJ9ZdV-Y$qAtA2*H&wF3uaf7eA{{Gx$SdnLc*}!1Hz5X(klEvPYrmhGvFo z=6{Eln6g8Lg)eUVdVLA>^L|{P<8)L-!c5l?VzVgc7=O9wToMZP(DD_{yqI$tkV9A0 z+_a6coWs0hM2L#80v(7h$#IGhY(h@F2D69_qk?S8q!xM?|!@e zN~E&>73yir-{*yvUrYuWli-TiF-Rrt7*gwXn=hNTL^g9!8giEdMjuQEm?+NPyMv!m z^;$&^X|uIi(d19K=Y;F;k^Jyn@(}e{{2ay;L8~mdXHVE$mcjd?abu(HiK6|yuX5oP z!x_)d68blNWcaN7E<@WL53*@%^nf>*B|F0-7BY?|R47P|Lmsal)Z_D>I7vW$_-vGn zVbG}R+Fe>~nJ?E%qT?${cKN`y9Lrdwt{ZBrChEu^(~YdelzN3cXb&r7T!2zsYS*^) zK)uKp8R{49@ZbPN;Kv=^;n*<)%=q23IqSaG&%t>l9%s2$%IR1k_6f2D#;Pi?3L7#I z7+$nt1@fa*CKW^l--RFpkN;NNHP}$0Po+0Bu1Ze-e*Yt=*cB%Sj}(hf{TgjZP7^2k zUB46wFq@IB=xG7PEZO0(yTP&H{a5zZJK1Ji?&8^$@zjYt<(z7}^z^Qr^0dm%dGT_6 zbLW9@{sao=-;=y#s(Dc4Vyr4=H2FN?al2-~#J|DzoPy|m-uvjTiPmd%{YINg6>@(M z*d55}`Whsj#x~cYDS<Rl7|>+e?jth)n}2A<$b8bnRa?5il6-Q{O^>ag zW%?%`gXd>qM*@#`XQl~49E|PG?rF|e*KpYCfIuaD-<_J=F~zYmbq+MA+M`u!sF$YQ zlQnX1nz|0_=?Hd>xf{dQU(4}&9?ZjIGNSNf6hNmztGh#QW4)QLzICj~*!os=*B@&4 z9~P!@W!X}KOoLnF6&Z)xd`*KMokCHoA`Za5P(F5p24>_1ynH48nIGeH{qs9JB^Or( zC;s2F)@3?1)!kBG_h&Qll>q(iM@C`W=6X9cHa-=o>)Yu0^FxkN022TExaXM4d1A3C z=_pNm?s8umu;R(@u1iJ7$6UQdH_6X!`<4NeIxbzzZ5}dzj4~Y$%P#cGCyDwm;v<(| zYtPDG1KwrSX55>6)~aoU&zrZ_-#lxQs~a+B>owRlvqk=)!8u9b(PJ##LyZmeVSkt<& zh6x1xWF6sxe)au)v|G8}L7qpzYrbYjZJd9V)EPczIUyt3b0N6KT_w`i7YJ7&aoIG0 zjs}k_C{xZ0qaIu;=)SPOhFToh$#wB$eHd-I)dgmp7T@|oH(9&g z|A;ZP&(@Ih@aZ8NWF%G**9-h-YNK!=AU}C}?01m+S1~#kMiH37C6e!7RH2TJd3~-i zvF3e5;ycpzpc1}A%rl^$;4K+y zdplCsMfI*ni#O_;mfYg0Ohz{x=er;Jv{k=*gWuReH@zeS+9uxCoker!u4w$Kez~~e zlQFp#HF%tswFZ_k`_8$^Pn8P33<4zzWTAMP!QC?VX!hgI2_iJC*(_?}-9NwFNJ})= zl&2hI8re1YNPKp!?2q(~CzhWZx5cN2`dn}{Pk(%FyX}0&xGQtk@>6_GO(6sr!DO8p zEf}%Dwk*>YuIuaoE|Aw956yH6?~ub29$L0l#c8R$<2-q?r2sKPLj@1)-Rv{EBXJs} z+DQt_PyZ5?C>B%P@^!FEY3N7puN%$Vf^3{@{HUNPffa>aw1)v<&-?wT^A1VpLZ;X; znPD@uvh~mV+u~dIotvmE_%oFbHYyjAj?U*+2*nQx;& z9hQGl_ePf85=-=;X1P3h6n*r`$_6RhYNr2*TDXR%7A93+U)RDr$R_Aqof2UuHoHl! zk9Z5_qS&+A=n%I+hrD^cq{zQhO+MiHc<~&S)g;R{zi9?X{7e%X+&!|p0l^Kt{}GMZ z4$%wxRCLmzTXfu&??mzru=7dN)K~jtaGZM`RQVn2J8SD{ znap^&5x8PDJA4>4q*6She8d~iN!w~@f&X+Ow}$iNMwZ!_a$DtsBjSw&EsnT7Ze{ z_(9j9xoiu&QF`U|5`x!kQ%TC}CL=oh3}tuWIQ!T{Uh!_ANh*gt?Ii7vk5dNqaSP(C zD!cPtx%nP8s(;oxS3Oj_?C=$S&W7!YOF}zQFLt)G+s~ZdW61_G#pfY8TfyA*S==v< z*2;6R_imEdA|K$2I|dmhZzB|>SJWt{6WAvn5+`)*SN`Q;;uHD7h6B!OOf(wK*_YEd zN_Z_n`tuGOANxGpxz!s*=OU+ezz+E=0FuK&(k;wYYFmwG`RCe;E3FdRx$#R2=*PQS#m+qUal7 z@1@l|!Yhb*R;f2+oMt^&0{*!)lz?9*^!@ zrFmQT_}`yOu}VAGe}5hE--*%JeU@AB50F=%3O>_R-Cwv<1thlr2F`s+Ror=Vps9Q@ zrVNws5=t#aOwC=u%|G^7D6_9ra>3UiB|Y}4e4+>DNj(|L>}!>e;f_Hi{q}G9L=Vj~ zdS;c`H!2n3Ye6NbDJmzfbSV5x$jK99QM4qb@|jE@Q3V@kcKzY7M0 zJuPrs(Fd?}!3>Au#r9XjJ`kT&0@V&H^4{^WTX2&LS~|;hB^bY-K|}Q13^@+^Snm3r zG6I@Z7NSlR*8q1n7Px!IwwE^7(X;GWY>xERaaWVq3PN zwzBO%_D-?#v6WEO%KM|{OAnR_u={|(GC;Lx$5v}G?DvYxOP|rVy*cl++5*4-a+Ixa zK5jm|9kN%_=GFT`6a9gtnl=%!@Fmy#w*4d9u>UNa6~7D2pbKD=Mn_WU3nHTo4}%Rq ztA}og_#YD8ATKlJguNGS|4Zg-O;A6Xb|EESyxyNVfHd9iE|%seugbYcvmxIl{^w z20qA{e0F#8{RwsS9@~Z~LgXtYvFG^5`OxU3AFW5u}Ui-y+Yjj<^7i_0^H z<822g`@wP`+h!^*NZ}_x~$JgW3+gmv+;L9FuR1fHyM5JpN>-?=MBLX6g~m zjYi-P1|hIA;Gi!E-9X$RQNr^fut(2%!^(f#{B?SxSI_IKC+XbDlNanNy4|%gc4V9k zwr!7c+tR%sf?kfPv-Fv2Px#NRUgZ z1{{TyX`gL>vJDOVTBFJuv6tRsfg)^-R2jH^0?Oi zYs=Bu4;;+e0oB>?@$UztjSEFJLKo5({542h3w}2(D+{GLMEXzMbC3eml{vu0YBYLr zgG52#s0Sj6Ol9Q|vi+;=6;xEW!Ii58AwBd>_#du8K4A{+cT!wEiXXjiyWTDvRW>Go zS8UmEi+Amk{|kOY%B0h@`EUnya#U~g?^X3ky11&$lq}EJmHl#uw>N8aYl;ER9{$cZl1ih($|yOPc6Z3GTMoLM@>Z z@iD-QyqB$;&;d&dT$%dXHI}j1mFJ~WB zo{p~-+I*3GmdgTd^&4T`tvaFi|$?iI`}-yhd4xh zvxoBu`vw<|ssEyrCl?KV0IihSQ%s&0loX!Ge6Z^fTXEx~=;{g+$aGyQWpZq`$g{DQ z@X^Q66G@aM-8tn}dNtw~oYzvgB=n zGU2Z34s}jCU0Qck`Ff*n(p1nJxlCS6M${PmwX&hTPD|pS91B~=FC?CdM{{_iM66K7 zc3P^GE4bU&PSfYnH@>2lY_sgaf2;?HJFd9Fd_%_E96O>C?b59KYRsa5EJqD@pY+9-EBUr%&Iy3Z>s40P^0jpLIdpb! z$_DcBcK$cp$ij~p!C_uLdAa-A?9Ypzyn*TRxyz7vvny)>aL%N9Luf($oG1}2zU!H$ zVB>}^l=OX zH`82G>_z80>RIKk}BqZPI+&w>Ym z=b3Q2DV!CV`~q0_S!DTUrJ2A`4L$$s0TEZ8zr>DbQL`@-Y1#&c=T&&KzN3G=Q<=Ue zgU3u?7CWz>rYpAUcWy}K;;i`bXaBBF1eAXg_Wn}8G*>}QvxJIvCIu^6qd4{@m!}-l zf3s-bYFrZf^@7~1a$tfPivR6)QgeN7C-Kpqvo}x&KyGh~OM>rGCJ19BKAtF}Bv9?W>Z2wSU(}I;W zC0=X6KEwJ@fXMeT)yG8_7yO^wZ6e7{bWAJ-uhDugwEgoxKtS)Pg#z*(W~Yw07g;O7(pm z$yB9d3+=cmi{tCGO?+)&mD^A9X~R1*9AJW=w)+#`%whc0r^DDJijS&8el|&3TdG&Q z`hm>YVx>^0o&_PJ>{>3#!0+2RDv|j$F~9XLD{uPqjq3_GSD?XqY-|0jVK&9SFD=NO z!bR!=x@X0UFAoHxlJ$AHC~Lv93QNoojlGYWwPz-das7AGuJAqHJhF#tK5)$)+1%># z-2HyX->{#eT(lcz|Gwje8yI~#WkQyYQ(^gXVyBTGty|w^XLTR7*Y?O_(*6FUXeRe~ zvb{S4KYF<4O&mCun@XEUula_fZUJH;#0DL&^d-qI$He}JX>Y{Gtk%!6FupOU-(kHK zWjd9MPr5@%e@|wsF0a&2DvRz}gV!%^9iVk0!#qoj`jgJL4!6?hL||IQak6xTe$8VR z+BAtck1|GP`6HuRTSN9}d%9ObOgJkK=ED4_KfrzesP(CCOr2U)4M)2~il?zsxV@=@ z(!&VnZMlX8mA2wfKAh_pyinkKTpFHuyA}O+4leF0U^FfKw&}cS6E3OB#Y;Vqe0pkl z(YZpo@3Da&W-+znu2HDsOKRo|1i*%F^VIz+pBcU^4oE7`#~-Wlf$;~9WY3X4BK;D= zFH7D@YwGe}gD{l)HxRi|a0$AHk6!3M?3L{etJd?;p{62v8hHt-Cdm=v>(QOW$9sX^ zZJ)3-HbCQsQXNxIu^OY^AD4lzgYf=2f4K8$_c$y~H-EbnRsP6^+U^-MG!={?)j}OB zeP*4TgR07*-=_OYn#J7!>o{cq+R)XQA*)!ZECc*ah`)3hBd-}sN~fi1J7)IIxqMl z4V^ABSC^`ciJEXQW;j6+)@KBhH2*7=Gnk=5G5_bjG(TiCrBRg@Q_s$wdpBG-ga$W4 z{B)dgc$w<;U0%%tF6k z+7=MA$WrB1t-Q3l8ASSKv5GA>l?n@s_@IKIlw*ZE&C4J@d4FS917ELS!Q@z6d+6lv z%YyTflXtSGXP+tWBp|_Z8fch!5MblKLA(-%VVfOfVJBy?NtGWMTC;UF$t_SGv0zdp z=6WsXKcL>VIR{->5vBNqD5HK_uU2T|s&-OtqD^+i?Wdm36V!6Rt+q#e(B1!j6$}k& zy~#xT)cblSyKnMoGpu=OzR#^Kn-_`N|^sC4uGP(>VuX-gOrkVQ@ z@U<-JkOUf;yBw3L@ZIyXEZ(5b-XK_@I?EL4@YCzwQc+hziGe-RHyykxZCeI z+B|$E@EM5pIT7_QXh+Jjrl;TO`tFlUIpFR=^ZhID{{PjytI9Ule;XF@*zFfo@`+uk-q0;u6?Yjd%&=tM7byb@l8z$~a^Q6Fp!9&0Z*rCd# zj6FFgg6S+Uq!yk!*B;Pg4Qfs9>1gaqmO0)I1ISjxD99(5M??q~l$6w*k zWD+k*{o7TCgNfX>d-EAL+`6mUtz~HEzS5&Tw_8C>z}(=s52l~C8)xqns+X^=`vvNJ z)LSB+oS6`B@onJc<9alenU~xt|L2(17y;d?8#b+1nuEXjP&d&$+l|<2N z&j7a6824++scV(u@aP6x6cNV9fj|F8@?BUBww?Y-(PTO)Ay_5spjk|4umbGw`gkU+ zF6d1H^+v$J^*>g=XJ$4gAw6qf`=6!x+VB zR7Hk$3r-a+zggffYWu?S*rU3l%P>@N@YymKkr{*hZ({2wq38AYkAYh^J{Q?3!lqS| zI3&`h;^#v5I3U@dhDl7d4g71ftONZTDUH3i54BJ4`mKs;U)5<@pNAv>xu0C^O%KYH zVRV6DoOjY{%!R}}8FL6n>0f>Puu0+P7jG@2#qRj3577VSIXE*`^3-8pP&IoR{DZpB z`cQVpbF(gdW4XHSb_BO6H)%`kbiKix48=1vrZ6|p{)NCmHYQ3#yUKMP^XOHQ%N_EU zLBiwn|AeqY-TDI)A2`uPhC70OEfx1i_g4b!vb*H`8@WZhstaeq&6($jw`rAEXoU}R zk~}90GJ^zN#p3UST;Ox{HG=pn2hHA(ek3o2e9`rsa4|zA1taC6t&cfhR=d`+QFH*? z`Ya!X^()k=;&6j(^T&INC4O`+D5WyjoGtmBpe#P`p{V=&^?^7}0>p6^%ncU}B0Z`q z(z!4Ee2PyLe6p1Fa^pI$Knhz~TEpV{`3G!ytQ@aNDKhBz0cidjnDD1}QAi{c-Sv8{ zj5dA1c-*oV<|Mb>(gGnS2I8D&C14kaGfPvdNjf|IG)e) za{#g0l{!b^BMPOt7X-b&Xqx_MZ znv3edlEzW+yP{FS>>v{&fRBIwG`c6K8Sv{zy3X6F&guucy+1#z{K0 zs;rB0zO!(r0~;@Nlp?a8KdjjU#6k6|MApB3Ga5asUt6kFIl3sXf$8tbhr^J483}vaFgk}$SwIByF|!Xi=(WQKR-2M5>gUsTpddHLF^Cuh@I<5fUR-5CjnsdGmeW z-}U?db3NB{J78ZaW6Xxeofv~TxLe)L{ z&N2A!{h48O23JED4#Vgu)+pTjTgf%3q_uw6&vIUq!1XJar^XZ55LT^IlEMY zR*%E*d1FQh+1ET{p)C2Ih2I@Q5xizbleZmAg%nwf>Vq{-ftMbd%CW~Aj>phi3t19G z_v3feT%5tR8OJ7lZy(9#9ET5D^^ZZHJK3dM5R7zmT+t^O&SUkx#Zw7VSPdVRoYnRG zal3qdb=c;=QsvDDYDV{5*5wt7!X~$r4|oL$LPy?P3YRsJY44aok8500gr_8aC1t_P z#(}*@={6?=Qh~x;D5+>neg`#xk8vk(i5{I9BX{W|j1N`ToJvbxaDJ=LS?W9pc@zA? zT%P}}$9R_5GDh0Hj9RJ|$64io-gZ-LC91?u95H42UE%d!b4_{`R8Nm9-7D~?^ z0LA}y2RP!JJrh^%7c-i+FgfG@rB~k3aSIbl201OWoQ_*U4{%uH=B-KiML_C-`>9{? zDLT|pys11*ZI!>J*7x1ji$G}Lkg}F;Rm9Zc+(ww#cHBV09~i)In&$VFghNI47krYf z=EVlyB(Yvi;jI9+oW+NE37GT;iaMgl|MD|2mU<)pLxI0f z3cF$DsU#+X?0iu@2BKI)>!1R+X>PRd1mU6>^M85{wjXD0Mi|akulC-YQE4(y=D8H(j(_DJ| z*T2QPr-*pi!kf)_WAg9uKKFWx67AMe5R$iV{cp(r`gr+(I0Mj*+4ngP8q;H@z={^0 zuog)V>yq-FLTqzI&1U93Hh63hpz!de%;T@fdyWqfq6-eHRCWm%8sq`~+RKkH%m75( zy06#9+2Z|s7;YGw+mQd$A)#$Tb%`nVuspv*xwI&+Zwx%*mvO>PZ(cSpD;So2WQHzv zc)pjwA+!9PS8cvb`PItEoHJLmkU#G9Oqnsd(5>t0nVx^V9}^Kz?o#L)`{ytDI1 zb+1$r2QDf7OiK3d#mUsgY2%B7;O`BWO5WMm8UJ4t#~T%fLFjQ06f8{Y4ADV(4~-l{ z?XF&_^(+!!SIP%>P|Ov?P*s;s3?~nSw!kao!f+wzua{SJ<7DB0qvJCGFsSiAFRRx4 z(D@P>eL6)t#@4F?45x17^DdpboZ!apF2wmjXvEzGYWLPndIB5sz57r1s)~ya)miBw z;)!$loOP(&_Q)ye&xN%pqfQgfZQU_FbUO#=7k#;vsxjF6q>Mq87z4d=cbCGRw)B5iE}90uYjOMv=Yk39~Y#Q zMxT;Jnc1nOO=%XZsbl67U=t}j?Em|v|ivRABME2V{Yvm^m+!ygS=`uSk^qAtxi+f+;^ z@|Ry1)z3Bfb;WcW(yv|Gg*g`qUe^V#yX)*M`j|`VDw_E88EaE|-8^kQ3r>O@n^X=TnJz_rX$oax)N; z=m5A^`Mo1H!1N`^yvblmEb!?_86v|pjdeaXZ9H^aemii&-Q>G~OQ6qVxSlUh>kSybe=O{DH~T5P_>JY?uj1D$jW=knz%1M8m2SD>S8?8?Zmj)RgJ}CX zpZRu>X~*XZjG~h!=ECSUG54S7yDH;nuOCfqLD~wmA#ZU}y?3jSXw>2X_i)ej`TC~L(?BM*#7Z~Xd}lJvztlF z+C(irntIRTVd|{;cG2G68$rfLftK2rQw1jTZ%oI=01#zCv8i=Kr+G(*T}G?#tZHqC zvz(B8*2tG;dzgxQgzthB85kosW-7z*YURvc$U*ipn`qbYc*w01KM%4=AWZmtp&x0`8}9=P&C!ft9JYFUS!yl4C$-uv zlRtlM(F9BfGSeZHjaSxTGFqFrl}N(gg+S-C)4Zz&b!-}f5I_Y$ZiD+>ptfYuhUxxE zp$%5DT0SC8qLU>)|~DvzbNiXZTr@Ev2D`rNS@W4Rn+kGM=iHWRbnXbLGVeVhO1O9 zPwLEv_lFq+x4Q_4=a4-YnONE^e$@Op>1{etX>={svL7$OM`Cb{o4G@n*KVh#W3$Ow ztv$`#DPlJ&gTxUm)8ns4IO`kM&Z(rl05GM{)<0IgdOITXi?fu{5V0Y9P zIs#O22kV_WDevs_r)>Sfi8l6M$i)u@W`XE1y5(hxCBUrf9MlFVROK$N+QnC4yxB_h z%DkPvghIyG_u?XYc@Y{CRVIZsXd+}6?p2_cX}ajoHQJ{`6Y2Rk7XE@!ef9v`i)IPk z7iT%nJ(D5MbL|>XX>WVy#w;ZPF;sM7%zI+YcVY}Mp}A8vJ9(ma6rjhokCG=D-+I0< zk*wl3IvC((jr3F}OI38$#n^Dwnj-&27Wsb+WbB?vi=N+{XQNaY0Z}5!^9ggzP*A2!Qx7IF83>b3-vhh5W ztakyps_kFqh4>Y)NElc=F7j#K9VFBk1#^dS`ebVC-L> z(s=fy-w#)oXF+Sx^Dz9v$dM8@&*-lSS*T%GK-Z8;Y_VXyLCvhgQSWj95GZloy z%4HEjXB+Ba4Ht|XBe_0Z2`ql#dAnh7DWH+1Y4UP4vYYyv?#$Chxy8suqgWxw%;F$j zO7|9S;p{Zq<0hROfZyLUCJ(3h;ut|U=Zd(e@0v*zagvZVu>LJK4uA1@tys~+%P)Tz zn&;dbx!A&Zqtc*Or-_;+$Q>Oet2UoVQL;dU$;*P54a5<%ZuDd>`M%y!){Cl}m?`(v z#$a;o=>j7`u-0$`9#L*!{)Zfo9y+WpTsHk*nD3WP!Fh@g2|qL?nmovl6k&bq8Y{Z| zqF!ud*_J_|u~=V%UK{wf0?ns_TZr287dun7k56|1xE;S8zrCX`lm)cTDxGl{wJ556 z4Q!in`RX6JLh!KAYy4EZdDTN*?NEm`vwp4ci%f*~kRY%7?Pv1h(xhi*1j8*~>KT(# zn3s+JL#X$P;k%E40Zu7Jio^>0M(_T~O7e`XxdV?jz%Fr&HV&^wgf$H`o7=uI=e=Ar zjF`ATxCxT_&ERVqu6Cw@z&Yh1vsJ;d;bS0o<@EFSKRjtZvLZ3_F6jXGWNYY3n3UIV z>K<^ki7j}3c4%gkn!WIf-T0+(LuJf4^M6^uACBMF2KBYPS}*N{az3=g{^a-*9Net< z=iq?cilC;7 z-d8nuqL|Cm&LqL|c+oKu?U{$=#>Iy`@7}g5wV(Z)_;g>q!X=@ubnA8TiT|$;5g5nM zjr7|gB5?_MN=}#$fIC;Yp>yQqfawQ=4hS~!@b}y z9N_Ym(6G~RyV0kWHis4?|QbF`3gkx0iFJ?ZEr-XH`8q7dHbmqv%Q!bb*Vn3?Q zM?>XhE%>I!^XI?n)V#HlXgnN*GHmO)B7^Byc})*{rGDGnSHi6s58|WpzjxVcWaDaVW6k(@tzbjcjiIlZS6+7fA(CJ4oAu9{ z5StIv{l%qWLFSuns`Q$E#goHTcT3#E2SU1g&b=5Rc$S*PnzpKIC>5tfY4*4M$CTLl zQj%3V+hu6qA9yIz-bOlKgwArA=^|hU|8W%%-(_?jn@H54{{uN?A0x>3PLvjenNS)> zMkC}FXsKhqB(Jm_emdX20MH6KCo?Fvy$vE z$SX90XoMq$oWkgH^EkO*J^D~!Yij0m27fdxdS)#(NzLW>%V6j$875j7+O=lUy%YL! zTZx`1<;Z37TJqX^6ajU-RjoC;zR!Gc!zI-bb~2GnPy&DB;4WbT>vl3EW(rrpWuMixb{oaBe9`uXbe zDVzQOHgsHJ!344^1WUhL_#U^op%+v4v|=afF7y4j?E7)DZf$JQBz zWP?t~ozV`1>lay|?(*xe3Kvto-XuC?^9OtPjbE@ua{YVZAj0pd7ytIRg1#)EUZO?9 zlp$AVITpZ$zv;S`XYIHTy87wh;sf|rGs0^80Hiim-x|CV;M!_q?xzPmFI!OzW2($A zYhAc}^wTOmav$maDClxW2gvoJ<@6!oD3rE|`28YMkbG z)#T@<23s6^0=jcf{P(b&J~MMaPvc-!JZVgia!zp$HUV1EMK!z9a*Z~&quZuNm#VY& zPB9zUm<*pzhTx)`PTTsNX(N&yp&1Cmo8Z9-Y2F_!fd_}t5b=iy+iyn!DT`OzDGj~w z#tyWLZs&c3^})yEX1uLHZOF>kr%KHSF?Bt;eI6EMqh)lD&uF4;QUZTb#x`5!M~yvY z>r?z~U#q;J)w%`pwk;oHJ^EiYh3!PyDM@i0hvoIW^lt3mMD|#NZS#3khbR75o#j5c zEJ9qJA#h9r3_p|~Y`--JG1hm#d9+)sF)d(dBDr^*rN(4^MN!z%KV5XLYP7cC9qM|e z(Vx{em#eiM+i&?PDjMbb_GHaaDFvxhET zZ!2SWj~n2i_*(LY&%DtXW@+r?T(1szG{>P^yt5Q1u(RJfaG2GMjOK>TGoOCM6tBNm zo3A$u=#N;1-{b6VOLx5jcyV;~o(xBc$hh9$uU!A^6QJDo;pT-B*{7x^iY7U?=S|fC z19bO+xza+4ICd)p_!x;#YjkE7PWQRL94r-f#3ElezOG1UY?rl5X}-E4{2$0D(R5SU zALY`jB+Uj-z4oc(BD22;{o1DsZ08*|IfeT?k+T2hW5w?;6P4r6g695kB?(5n-ba*h zaclp2RDRez5!Ni^QYw^uy-1Bqjk@#Ddi0An7Q7mW$PI>1*B*IZfUVbwA{Qsb;1<{> z>kN?w(-$zPlPkTaR)Y)kqg*8Fm=Ue~n+HXWPr)12ZSU8h_eE1Zb%-re1toD+4sR6Q8I z*h^`KPs+<8RsC71r)Yk;B7BWU56BfFc1vLAo>-kA_)tG7$HQ-K0*U>0u>djR``6IV z@Ra)jZN<)cyx~eCV)(|!rr6U$i$m`psAh^^`h$y{CQjsid0+QxXZ5?)xi-Op)+)&V z-(zdbDy`8v_bZG$kmk)OP|C)vMGu)LJ-y?q_ zP14TwqHvcp2=8t{&uJQN3=#Jr0ub6>i;l~SrppVR%p%&QbzVj;8c`!w1E6^B{)$jg!beoJ9>aKH=bkrKW9W?&vvT z->1CtXBZvrrWCJgF5KC5$ZB&b*M0~Z+JD0}<%Q=sKOz~-6ewNIA_F~CaAZwxN#eE$ zVNY{l|zh9ZT`O4^D=r zKH1P2_uhrbHpZ;L!lE_X?IQ76X)${1@dKbIP>5=d^-52hIwc=CVg3Uw%CAHVm%MeGR3&&@csZwb<&<(yZNi+wrQdIJkGZG$cU>krkAL6z1R8* z%HXJ;MW~x(Kd2Ed;hA{cR;rFlqU0|cIaD=_{zf5Kbc(C*bUU>FZ1L~LP7VAcs>M{p z`l%)v;0O~5y|(N3v=RgdQZ57DajEP`*;R@PSFQ#1&(g@{H`4&`6~eZcool`QCZ%b1 zj75y3$r|t=br+TvL`)PtOb>~=l)?!WI1ZV)dzkJ^Gs4-vRJ=&o7$I_01P=m0sA`2h z-v~G(UA(XpFM6U{5-R&t2jfJC)+X0Io^Pn^LB?ET2d{CuPB^ck%D3;C!_I;wj2|Z) z1MTNaS%HF(L9fW;MzI%e;6Uf`1Eogo{#8L_RXu2|;&FT6k8cp0p+$&ujx%R%!c5LD zJI+bUqN5`URK#Xan@R(LSe#8TZ_*Ee+$#O+W}4m$TDzNSHHrSKzkmelPwMctXLxe9 zBOlDIVc-B%#e{Ztt!vq0snS3@yVZ5j^+dafa3DLoywLXXnbeT9o(7*1S%Gw9fH|m| zI1=+ukkErVdnUIa9*CVQ76VW&d@0gweMwKQ29H4O7}65ulumPtKFdu;az@U%d@rg- zyZuBuIOE<&eEXM8j4vvCQXs3Zc3jxio9pbwA7`~4wpShBnWIp+M27=nySC~Fr?kVy z_W7sdb)lK_0p@9_UeY+N1m38gd&}oK|HxpcqlegPX>!4c+bS^)RHK1{l;knwCf&H`+L#d5U4-rIw%1ulJMAkU;;gH@vKa2QsF@1PY%=LGb&NdMCJp>FAXXXbhs>n}(jY4GTj3jzTmZsXen{LPfEnD-GWiS4LRj--TG+1g!+pNdXG&WuqzsyF(XY(*gEfP&KpKNgJSI zc6DxIugafJd`$Bj&xzgro$%C-6@zI1>VTcS*I()Ob7K6+>%BbG)@zbJnl48!u`zRp zIfn?R#Quo>u-jaRnv%{taAe!UPkaQ55xG=iuJ7?x_vi#qBwE=-Zz}sdD?Fb0$(cTQ z{iDvb-Q4Gyb{JC=RiB>1muu(lD82ey#an2klr35}`AJV`oh=`5e`F-sG@>F_89Dz+ z5`yRqSBP1r_IC!;vxmt@zbi;F_tAq|f!3B)syV<=S7)15=UbVJ$vyf>AR4(uACWrf zdn)1{tXWcY-*T$y5rY(StoKrD%ylb)N4(>Dn*|Y12v6$zpA5YEC5#_&`S_%QFTwKy z$*a_?OgRqm-|UgeAXvY{Y#!rL`c~5+ce6Y6nY(T-#gpxbtdFV5hWje?FFEnK?0L1% z7#fu40O!*Sm`7z2>1tF?ttpWXmCc$6#Sg!NL$qUKSSNJ?z$pZbJGJeAbJ9ft#(rBs zZ;Jc6N85o}F^X>E=5K zq?)i6WzEbivkq>^qpv8~x)oLKa~E>N5;5;S!)1KZCKylFsx?ng~=Uw=h_0eB`SXP;o2{j9c zV-fbJr1h==cFqeGDEGqKz8~@n4K5#rz+-a_oZkXFx9-4|eA8N%ZvCeR`dkFxB@Y~& zrO&xV?$8@rF7~ohj9bEhuChM&w}$VJ-ch#%ZrGNfawcB7)bNjdNgGp^c{Nj?65sHJ zu8W6#r+dCL&Mo_jbXvwB%VFx-!z938FLgOX@zU|1Chd)^)z7DP7Wv|8dj_?1>x`(c zapFh4ncfkl+UQyv54Or`g3RQ8+74}Ypd-Q?gaPJwTpw8hh($U?Jt2d{eI1Gq%C21xd!m#EX@`&!ol93`UBdRpyIcc02Uzj(cR*>oH31`F?OPyn-+yv-eIwbU_7yM3*(<|##B zycO+Ic0!8azbYD}Bc65$-_Awps^!tReWTpbRkKVt z(*z^<9>v%8=eTsSkrEte-b64nv-jtHa9n!iLOjvjQ7J$$HPTzkv?v~&3QOekOnzqM z=syeRUCTctJr}KRnCm|^vfwDw7W*Aox90rDwd*Kb3?M-0T}@nu=5h3LUN@ZdO?~cn z|0H+y!UmGVR{Y$&`mtC8WaaBUH42RnRfgxD>N)M_wNxCBX@@o4tmGAD54MNIFB*ER zCYkOvrEIVfPs9F+!SRnMr*PBC61~!o;u`nrx*k_PPrC6Td-E>-osw0r_2VQvVnzAS z(y#Qh+){(ov(UgU<||I zk$JqrOlS0}#%FW%`zoC6eI!WX3Xin+%$1o*EfndA2}5A%l3$8_)AsqRt&(RD$0U-txpa3fH-umZj8L1}RBlv~!{0{i(3_yw6L2#tUBs=sT;XDnDvspU;JYMC!gw zzOhhW%7H#x!E~P}q@Zj~gg+BU3!la}f{c$7<V^Ydu#rc04 zS7bpWLE2|d#P0}x$>1hQSx7R4{R<0n0zWArop2)u4Fwbc&MutT zp|2@yRp-FRRm~YM{xZ5ZG~ZY*S`TERxVOT%sV=v>Cd#UePu$yWB!7uwSlA8~X@`9| z3*23_iX8kL;6Jv4Vb*m5_~_XBKS zyqxNGmzsQfpl2f3BmL3%yA$}Wv%T=jKM{ZMt*33I7c&32Sv_PVA}+{egkR)SM;zY& zm^y^hXhK;U^EVpprHyPS96S#>qXppXqdu%^lmEc`d+Ei7#-47RN}NK@@}r!_kL2Hv zzaR9=4WldMPGc(FKD`ngqQMa)V_70lvdM3I=}MB zmV%-|kA4#w`-}t`h0_9}Y>O-pQCHtQRgOy~2Wz7o`{YAxovQTf4|q_5QjeK^Ctmiw z#0n?Mg9i zEz`%`du3Q<)%Sip5Se;+zx8#RY^*})vaBFY6d!!4?g=!bR2;nR?1vZ)&AfGUc4b2$ zara+pG;87Pm6KIWYM5?KD5p1Wjr-T^p^C~-qo-RKabZ+_dc@^>;O7T`x2HOz)N=zt z1B&>kkpYS;+9_g!a?_IE>;ITy|Bw>Q^+6>EdmBxhF3ijsjG8Jf_TUC<=c*Al-|jjt zT-RyuKbuj<0$oI3UJ`lYF~E4mp*KLRo2U*M4w?HAI0^80KCb94-ffGm>G6o2>Gz>_ zLwIKSKk5lCs*EU;gydY3?CWayi!ry%!)`R?jB>*_@)Hz+R5+!L->Wjc6t&R1sF1Ln zF8~*WNOT9QWoQvPhOrJ!%coUjrB*;zlwNF$%kQHKOeU>sW7tH#i{U(JgjI6ZgT z`dG;gs67K2VM*}LEa%Tj7u|YopQjEqn5h|INm?~omb(SfR?f(>pC(vZsbK5o7O!Ed*#oI#bqdjhy55dz%LL(9UA`SF@+3160>U0Mhd6AWzsvpU!Wl_W>arR! z2?u_k`F@7^BGM(bIHE(b*QLasRN)bNkL(g-tPj5NbZ6LsyB1?%9brqnWKs9?uRssC zTr6>x__ir$yFBgL(t+CuF-ao`EEBqP@kFIg-D>4LFsH*T2SX#)WBgeymSoq@9n?7l ziN_4?$DRj!{hKMju|z-8IW$`9H{hMlPG>oi@8c!oDc8*i=LybtjNf88B;gROZI`?=o{1MCxo z28s|*9~aAzwz4iZL6h40>M|21Yn&(E_-T6*2Ad9;QRI=MS)YKBA?t_J6NTby5Se$z6CI z{s&p+pEV95(mc-|ZRHeyIfspX>z@W@Oq&&|HPilaDsF61aFL9%9r7#7Brw%FOw9() zG+eUCQ>>VD{CR4MABXbqq!dBaP-ih4$pN;PcTRP!c-I=El6Hf9WW^4^e@}F_M4OhR z7!WZRPQ$->TWk&Gq0^fR0`5=pCFLS@t_*GISimRZZCrF8PF4+%2L#AsHykA9??7*( z)N;o<@&9t|fBoQ-{eW?5&8v?~Ahy|dO&Lo3;%L{ZH0O#%e6`hJFiA~;V}wrLzguLi zpCwK`r14-Y>d>do7oz5%2dE~qZk)Q0UXR2|6%)$rm>S3VJ+NMZAcPC<`tT!gJH~2K zZk@4U$gEPfT_!Km(*F&RjOGPe#VUTu9W zs!hcg?Bz}d!TAbZG0eWB34{GzMP!GSCVd~Qj(=|Yoxl-a!kJ=n$xNL_rn9W{Mslacd&q*zJXAEd+0fzHBHi8O+?ekbFF$lIKSHw6vzl`LSW`TF&lbki_zX( zm7>(c7)x3joL@uWL5h?eg;hw59+nPeh^A{2hE@5(sy&nk>`+?DIu za94$P)$5Q8%aPeoLAnx%akmP-y!dYWj@7lZ{>GF3x$IfX$)a-SEJ{mmU&&Kmw)24bu7ALX*+jbtC;4_@bhXh9V3m@|dc{ltq6uuVNj z;p4y>Z&$lZ{R=Wd+ZyRXlCM}<#h$Rk6?<R=L6p(qGNfo%!nET0ZGG$W?ne75DkEa1Y6)i)AaBO-53%KLR`TGt z8%ZS|w~Y}dIm?d)Ng}vcY?(V%i8K8Hm|hR5JQD-Y9{KD?Z8bmk{qvRbt)>}E;mZ{F zs1wfzo_uqFQQW#X4%W*1*`YN7yUA`xB??(sk zy2bSFGVV5X9j+>ddf3=S>5qE}l8QRtq{^l-#3%pM$RwmVbSuURy8DC1ModQJ7Z`+1=jsNxuOm(~=b4rmKeyhTJDiut*(5pOKlF z4PA5yF;QCP;$JOaZV-?Z!UcU(sfJB;SfxrRij~OC^|zqYXTT?p>QGdx{y;7i=a(!gigpC9yDC9273A%_Z@sPQ`BzpQ)It z$aMyuv{-N^cx#~_4|@i3_z}N`6zx#FUDN15qE?*4(hRd0!?48%i0(X^VsPd-o;}l zdw7HuiSpfp=s;=o9nERWpe4*-L$E znJht3>EO4nf6*ajU9Z%kWDV;%O1bN;%HgWpLMsqK3V9d|BGs}^tyt+I0`&$RDK z*-H{#WCy(t4gU0^Z0KT0?#>Ud6{lS^n;ng*$veB|*=; zMUJcrmd&28_V|!*nD@DX%OJl|M^xijas(B78oK}MBlOx`?a{4s^W4#xT`6`qWyj!n z^tfjY4s@T&v<_3Hy`&$VN1UWD7fk?Nwsy}{Z$!69Ja6I`2F&;ap6&+srsJCOu6+8$ zfPIy-n(^*jTACGiG80dooV4BD3gDcevfj*n62zWS75Kaoa6f$Y)Yh5gHKsvo56vv; zuu|KC$+3`dhXu#)A+lB-?aC=l2Mo3}RX5XaZVfY|7-P9Y`Wr6%%`IB$GrEn!7d+zS3PZ}NNF zdpyph^UI7C6sMkWbR*Ro&GyK;lDeR80otQPlczp;bNd~FFA{5OBt8kR)~MEq%uO&( zp}|Mbp6g`UV~J))-|Z+LG%QQ)a*36lLT{|9zZzyoBK*J6iw>By)8V zOQTl1gYqPuzN?d$AG2z1m?y#SOMW^&ZI8KZwKV3y<=5QB)Px*t;HA z^!+#im(|nzW5De((jjqPB-pY@j(AV=^z!}1+iKb?PX&dI!dbY^82@mLBAY^d8n-?V ziv`)wOsGsBya+HDsR<^t3`81>d8tVlx%bCKCZUTIzyfl*qLM$p|6KRJLzx)WHgkL? zvlbuG%@L^YslH_c+zCjI?meU6;oXoS{hqw_Jz5Kqat?EA0{^*4H)%I@x=C$jry!ei zy;Gx6eb1;A_L27AUCg0HQhDla7j>OG!cn$z{I}^QT(!>mB=a~nsi!V+^$;}9^)x?~ zeBr$?4C3dsaR!^N=HY*BQgSIFZZ%fndpY-i!Rb#f!D_QE4dj;H`RrBRU!_ls1S?(4 zc5_UnXp?oQF0gVi&39R?bNB7;j zDob8jsx$6Y$Yr!t-mQr5{1sKv6j5%*bkfs%BGk@AdXJ>|DT`{%9E`9aynmPLB{SR8xjnBmN#p=t{+7b_)?wd zRwi+ODfe;V{iQ;8bdQ@jJy1?cLrrbD!$q$3n99YaH!S5?X1%WSHAQ&ep?Qm3-)PZGXYFNjb7uE_9JngNElQ z3U1vs0{yA~wM%{mjh2}w+lrLBB@>0@AT%RwIw6})SDTj&!$#tLTV2{IWSnkaSgKm49+eapFY8~l~5|vZ*{MNjWWpGz_ zZ`oqL&GbXEpg#@|fFZWC1>^LN+rgQAX;?giW3^w+Cqt~)tPk+!Ig}}Q7O|O>FKyBp zaNg_@)`yK7o87gSu9aB(;N)h17DcTP%6n~?)7Qus-?-AmQSgp3ADWf>Pyzd&c)D?8e>&82{&EzC7t{w$UKKM(cI2bYKhnDP z-r$^);+M{AEo%h30^A^XM&pl>tiPRbxywqfImQhcau6M ztOEK?QWW9C`N%|>_%sE;QHs~Q7v_s@=QA*pRUFl0v|%sY2RR$3lW^;6rSbnPt%YC4 znm&#b>@ip<6YRB)Yz!~4xqX*GOM1Gq@g@6hD_%|S8&(CR=zB&j!f&7?s>vX=Ver6z zm9j)#@=+vs3_u5JNFD>!CsEr5;jaC1k@WVUnVy4p5c0!?LI<6GN6jf%@!W7$2&vB7 zVQZHaA4QDD2jRc&Ukk6YK5b`=ay41j9k$yWZf6`F1RoR3+*C4IH|DiU<>yHc7nGtI zuG&(+oC+MLt`R;^#&Axr>R9j9cyuR57Tz@N_3VLO8(Vrqp7o&<8dva85AIw2#O-86 zXZ_RdS!^TAHU-;wZRTP*x1Hh8HrChfn~ybBfX)}?Zl&n%N4+h0vzmpU)X8X2BMTzv zVSl$cNZO0Aof@w{nY0rE=eSX0-j|g{gYTZL)G?jskZ)&v2N{=C9JJ_}{s#Y<$3~P3 zGHvkx%4UEfsrW)wn2H2LWNVHMZ9zsQ!{W|ag--jjLxASP{9gT6kxZ}hJR)|pngt5( z`D^C2eU+eZG2vP_3M1l(={M(V7Yo|U5ycdj>EPJ9-qMNE zq+_x&sL6kD3zXpr(0WR+y;2{&LIHLOcd1N)yi#)QAfnyFjj2ybzY~YcR|Wl!30N^jroRQTQx#!$e^Mh^>5^`0xgnqYl_dy&3t&j;pp08**ExokkqK)vDrU| zXM+ziw4sYH25XH6d&E@;$JF(=8Du6ZU>`nY-W+i47{4}{MT?^UK2~-oR9({UiP!+t z#?-`3q|Kt1c&|o|53%Xf3yU{HCl8W19dB+UMVAX!V=v3D?>-J0WZn!wJ_@+LaEkIXc_8HIgnWC%zhHVm zs6`0+L37 zRfx*v7Cs5_mHB&VHyhpku2?){a3~_#V>vgcu5N=!(Ys2>h;TT>r=s`!@x4(LvXEJd|FW8sT(M=$LM|eFskl} zCo?9@?)Hlt4o~2tZYV|~TQaKYpyf0?yE7uUQ!uZ%HLsni^6ZPq{r;tEiZPyl4iJ}$ zwg|M8gBbkUFTBtCOiRGU6)D#=x&@G54j;X=M9RseGZ0OAO1@fB_5;3nyHCs+kEVMO z=;gQZ-%5WE(@p)Vux%4U0W<^Zgxtb@glQzO^T(o6RNc_FCG2I3-m4|HU9$N~KunZ>LGa8m(;SoG(%7(Y-;eX|wm zw^LvUKTLGhaL|sAWMLBGCee|f9M*LD?LzRqgVz;PdWZ7XP9McnoMZJ&NE2>z{x|7P z`pV@AMz*>7=91YmwP&+cU+OzsEp;vwazRg z+^q?Gw3`yKf>LuXcn<4id=S|(+ES*Vy^Hyd(UJG!Ydv5Fo~%rr@GeLU46oo=$695U4*yxpwXnk0!?|Fb9p=gN+Ux z`}RnQl@+(}G^+p!+SYu_pG96j(rh$X7;{G<%Ybn;HH3IBrlNbOB6^pn!~Yh>>I6<@ zQyX0ON$I>RhYbuCHw_$oxcjBeQ6Xky=IM%gxl?`y2ZnNgI%rLoP;}$e-u+#cxETi?r5zRxvvetN89uJiyPp}W&Ti;NyE|iJ@W!B8$M~53RXuh4K@adR|`~_ zo4BJ`C$sYF9V61g3*WstK#vc#X1N+-iXA+IZA>O*9ddl&ts%gbt7g!zJD>d9zfv!H z8*X3AFz`CEo)}FgbR4mh`EZ#7y>eDUY<%T%W#=&b1E}hL%8=YLX+y+wON8MEd`9Q+lq3*)CLs%Tj0igw>9e}>;JAw zCPW5>ro@oE2pJ`S($%vIfMXg(l<4+p?R$~VIn^MxUhwVXsGW+0N63vE2B=h(r*mSviOdViAl8Pb zjgRZ6T-$!^WPVG_16-yBIuCQkILucLM3ZkgZOl5gB+0xAvGR%W5LX&()%&4ca&Lx< zq0O{N`JJ8Obp0F3v9jLDMD9~yZu+o7MyoIDdfwfJ?~w24SZY^vn69UTfJY&c(FB#S zjJQd-TvR|SoK|dk>yf&Bq+acwbI)gjGrBd#@b^y#pu|tL2<8P7d^0~pag4x!Z9duJ zcmMHu;=5|v7m8FDpbOk(t_o&e7o>U<6~1kq;;4ThhF4cSdWf%$QW;HjDo&p+{H|mz z;28QJmcGTGssE3^%cl?#a>+G!av8}jY?V+6<&wLFgk0u+w^df|mLzgpNbdLhbv5_v zLhhF}!(8Vw472U$`}_U=f^**IydJOfyu8ly)e=}yOvE2h7Axy6Q36y>SWc}?C+nMq zA0IWW;<8Vne_#TDhO)TU^MZO1$s-Z5#bPlfL}PE)t^GZ^QaYl)_xDnD2Lsh9Rm z_G={`&%6Q8f{&sCIs>|W^5*jF@3p=2jR`!zb$N!XR#P2zC%@vlA;iGrW>s`&B}d8b z-ROnxBUL|~GXnr^&uJuhMgvzjjSG0#7hX+;!8hbi&HPF0q3D40c#kx9MMRjQ!tX{- zyx#xn#rz8gBt*a@xlW2lcu4V#<0=OWh}HQN`Uq;r9nzO(Kh4~LDFv%;7nCb0Y|Osh zQD{g`Ddq(FiOEb2e;;QPn`;PL{22(JH)R`I+%})9+wFrGs0VZ;XsMw|Ps-1>G#>4A zxn)E!Qsly34IS`7-@w-3JUF$;hzm{HMw7}wwGdOvU3dg&CBRW&#%C3i!USroRIL{t ztC2c>q#@)I6Bb5gqD*holaT;zp$&~J@9}BOhSFi^U;pC==#YjsnzK&Y5D*CwJn*Ex zf`Vv+f2=g%vS&-Ttz*4Y>=6bejgiZdgHj0dFG3#Xzw|-%W6QBhDVkS-z0V|>`rYW*D++gl@R7f z&2qb>zoF(p_rYbh^1zXIUBdQ`OPzRVR|a39O7Ne4hi4N`_GXPondp`CYU_7!l3wpb z5KO{WbCcT~I6GRW`i-BY2WP1s{=vN%?Wk~Y_C&j4)4*UDJZRh6?`>xBdPPt}Y8L6L%oTI!v^~qb47rIN`AJR!|AEGO*qJoZYg&7d)b>&#B zj@Z=9iG&>Z3m(KGOEw-_mSJBjVuSRK?;k%n);VSga34`gs{|NFCkEyq9ziQyH^jmo z(rc>Hucl;vfkylh!qYg2I!;jLt(tGt%ap`3s3?5h5Y@M!Wx+U`o8k9O=cmot1YuN1 z?AwK1IA`{8*{fql!Q;iLi*`2T+tnFBNe}FDWzxZ2a9r4vqm{NA7pwAJ+jHf@<$!X~ zsE#=Fi%-l@lbu=U6i`rpG!<(5h;Y)@l(5INUA{j)Zjwk{J=%_N~(&{9JQu9ujsM#f{&ec+3r& zsUdi`DAJdQ*hcCOn)*NPg#%AFh&yO?^w$!3&w^`#PCdOZhw0M7(x5`N=ipqRZbaPv z*e9TjW2%bqdjlR{76o@vzj82^T<-VzqN5>x{Wrsi|Mp6Qwo14XPA3P*IgQk#|2N4w z$$y+P*8(h_0F`Hct zvbu0}!7O->6;}dLGj`JcK$9v5?J=BjMsDf!HVW42TKSDshvI`r(^gNOgaYyC(3kBqL%=%j?a^OZs;fsh^I%M zXC=`7r8nkMbX|7Uw`zU*VdL9Le`cLV#LW+ajjjisgH{27I!u1 zEON)2_DK{Ms?xGdBB4FMe$euoR3cnx%FfyDTiU?ECpU$TrVu+F`4~-K=+$NBWwvF` zWu61=nTvlhuH^d6wf*CZxO0K6jL2^hK3p(xJ&++Dp0E{a?iBWiTu(aL{w7qOp-T;b zZrq7SHl(kQW^Q=TEV32)L;$k=zb{{W2p?|elvu*Jt zlS^MeasA0rH`)dJSJd_+^T@S@Ej~W0kKXT zr!Q@nGW8ITv;zNgpj@^YHoxt9z-I|OIu&pLwhxkhHq+HJAy0TGZJvLrh<%L`4@|av z`pWc`F$AUMqH6Q`31$L3O_Igv94_vfRx|PZx6g8@oYoU?)?saw#x#nB7dmauaQWDWaI&o+sUEB(~CK+~iUlBe=2NCG)|Qx8koXj9UCM+l_0q zJN`pFK>9xcuI%5(&fB#p6idv+`YwAJG;ki9Fg`+?nBL>q#uo?pv#e0c8v${Y`o@Yl zN_!(9p3)s`&yG=E4AIwOiy=ttYDr`_bdu77?K!vP%7sa9b0ZjRUfI90^+@jJrklQz z&7D7Sn=ZK9!6Pf0S-%&==CNRG#g#rH)G?tEUf+Ys9CmD#ou9l#xTSTFUKpzN&Ui#XUH66WFXg; zLLy=%CaU73Zjpbl;L6z@j)(1UC;?^V!dyd9+~nCMl&7Ya9W8yqd?WQ?#!RSRl^#(O zopr3^uuo6qC;a&Oqdn9d`Kr)By=jEih1l}=*HKaARY_1Ctxvw7XQT3{Y;|&xCP>`I z(S(U?i@~n;jY~h9v9j*|zuY(32JEA z>*JjYln`O*(V2r_0o=7KHJL0wLqCo3>@n=I?eXjh?@8?e_SE(mP6AfRIpAn$UK7&c z`RAW*am|SGHK_1H`0cbFJ*|qA+K{fsJeP-vfDWgpCtCoH)SKuD=z%0z^0epu+aKQs zg*mk%Lg+(|&PxsP-`dW)s+{!3?*skmvmtAx1Dd)+yMk$Ur83X0iIKy*>#u5Fp-D#< z1upxwdL=U~hD zzH%Pb#;?IC1a#f~kq%D=k6qZ9S!gfMyM*o0^jSNs{(6~obPcZ`51=Cj;xhAu?uEL| zX}vNB$5i}Fy*(_U&{6xbS~4`^!-gj6A%20MDT)VktB-=r51TkJ6y1F0y(zZM01c2o zIDS{|S*M_l+Z&TiZMi=c$%%sxynr4xink#_-#dQ!qdli^s;~9$O8eHpk`ZQm(ADzOD?|{e6d+_Uy@o<`;po`By(wecoIeTx(+jVJn?Yi z(TXL6;6rtk()Wze4_;*>4=91eC8u7{&S1kuBg+|}RS3?2wh*63cxPP4L^viNK%5j2 zbVXq25j);s-!BRD3HAx~iS8YK$2fE51)eXaZ?Rv}Ibv9GTA)hlr13IdEq?nC_8$B&yRIgIT1d-Cp2Z67yZm5C)a(>v}12Y=wIbL5VQ`#%ufeKwBk5sFo7i^;uK zhTn9A3g#F({4!TD-(hbFE<1Bl_4@uPDUD0!1Me0*BC|NdSmOSy@!n>hZV0TzL$ zmg7h`Vi>ZqWE{Npqo}?Va98H~@ip4wgyy~m4)sF9>*Zk2{RPgiP0uE^JG3zGLaq%a zzZAMel1q!auc51ym%xt;r}}N z_};MmK+TPdm;-!BTaCY^$RuG1qU_pdhyJ#0K`hp9Z0TudZ(!nSE8m!l-Z@{eDG{FS z>@r}Tda`;_9mksWn-KR}@|fn0+^LSgOkX!h`{BlmL@^Z$9f8}+wG?_bw?N_sz3Khe zP3mR7dFW1D>3B7uAQ96$!N~p@`ncch>;1kLxBtF+`sfv+ljTZE^}d!~HN@&?)qYDk zp$$XHB+rH~0FksKD3Op!xjWf3tTB0@J*g3NlWxC1n;Mn~&4hiK`FR+_mcD-cD6Im1 z{4{MFe*7#A@Zs1j4f5gGGOgkR>GH5_q47G8Jx3iG9<8zAQ~^!q6wkO0lsk)ymiljt zjL+>#Jqi<_#s=-;TMI}~)iHH8e8l2s<;!L-1ikiVZ=*}p**|47q+Vr-6%XH8>M++b zo?|TB{!MGCM5ftKLLe!x`ix~m8!{>l9PRI73_hr&w)kq@48E5MQELBnbP>{J28q zw&Adm?L9V3*VR!Mv+SFj)z~e?9y8AJ%Z-_mt^Tu7CEz>#^U3f80h{vWrZ*#dIb(=x z3NZCTZNiU3`N~R+q(IveaYHVlJp6F*)5#h<1H^CBl)SSf$P_lER!wyWZv~@~7#p@_ z4Tp`2BwB{}>14jAl?@}p(=F(zdEfS*I;7)|D;oY2BB|vV-4Bf2i9bkSg`{}De%S$= zVkmSY9Zp*_f&C1OUs765m#mz%a4yBsr8n28hp%nkFc_eCFqfc7&*|%qMd6EwfD)c3 zmRdZhGeE5$10s_PaXKNa2jIJZx{NaIwA zCng484kd>S^8!udxu5(H$5Wz)w$p!;5L@&)h+jXjkDC<`y@t~|BuH8Wnl|}o9`U8L+t?s+dY3K_sJ({Y*`>% z>31yQ!+!xJ3Qs9WQ))NH+QR;>rP@WU()i?*1XeH5;JFBGct$)3KUaivr zzXyeyP2M3_>IFfKcmB+IC6PY3Q23TY+ZSu(a^-xV_qvG@5|qTd;YYyFEk&z<-+po} z=`)(gSsE{5h6L0@0M znEm_49RE&H56yeUNiP0(rS=aVR^?jTkLoCgp19<{+#)4|&M!3&*6W1=AKr>{xnDV7 z$Ww|~x@{t((Z4v?Ylp1*sWIB}a9%F8_qm>iy}j^KrcUFacbEc&U-N~tHb8VxK@zW< z#R{dwRAQTvBtIqw>e0<{+fbfttKZ73LH?(Y=GYyu?RvZ~sTL=WQDl z(4digx#D^vS7(b#6c2?IyzHESDfWHBPhnTbE{4aGguCN;O&teglw`U~dB;AMy%~*= z#P#Z{cr=DLZy(%%!YQPmN;m~(mN;IQ(dx4=Us-8Bl|TxIS%TuJZ)*@(;GUEgFmL3x zJ>WDo%Kjhk-~C0ja4=0{2ZNbB;?F^2`V7gT*OI^65T4WjBD!x$q~6ce34P{{9pd~v z#K@oIcjHfXvr%(Pe^ljRDLc*-Ty}Da1Iq64<2BuDMJ8Ex<45!EAZK`6X!vFN_0aIBw~A;GBVuJm+#C3^_)Vc3&0 zt`tH2qh7q=Wx1%YV^XDUelgygMHKMDwS|bB@c%HJV2hQ~k>rIBE}J_nLNl`M$e9t7 z{3YMmRy2bf7xPqVHdOp>e%p15kLE*#g5U{16BF49o+zS-iPhlqPIV6a(|DaK=w}jt zO0`04FlvhWBwtONd3O04hg_S1Jx^Cn0t~2vG{%JPrS};wExrjX(zN{ZK6?+I*^ zamHD-uyR=uolh5NMj^e+KJGo$?6Wb53?%AeX#oj5e^FBNisf)eLcn~`-Waq{p$$C1WOP0dZ ${lh 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 z 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 0 + + # test no files found + url = "https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/README.md" + with pytest.raises(shapefile.ShapefileException): + with shapefile.Reader(url) as sf: + pass + + # test reading zipfile from url + url = "https://biogeo.ucdavis.edu/data/diva/rrd/NIC_rrd.zip" + with shapefile.Reader(url) as sf: + for recShape in sf.iterShapeRecords(): + pass + assert len(sf) > 0 + + +def test_reader_zip(): + """ + Assert that Reader can open shapefiles inside a zipfile. + """ + # test reading zipfile only + with shapefile.Reader("shapefiles/blockgroups.zip") as sf: + for recShape in sf.iterShapeRecords(): + pass + assert len(sf) > 0 + + # test require specific path when reading multi-shapefile zipfile + with pytest.raises(shapefile.ShapefileException): + with shapefile.Reader("shapefiles/blockgroups_multishapefile.zip") as sf: + pass + + # test specifying the path when reading multi-shapefile zipfile (with extension) + with shapefile.Reader("shapefiles/blockgroups_multishapefile.zip/blockgroups2.shp") as sf: + for recShape in sf.iterShapeRecords(): + pass + assert len(sf) > 0 + + # test specifying the path when reading multi-shapefile zipfile (without extension) + with shapefile.Reader("shapefiles/blockgroups_multishapefile.zip/blockgroups2") as sf: + for recShape in sf.iterShapeRecords(): + pass + assert len(sf) > 0 + + def test_reader_close(): """ Assert that manually callcin Reader.close() From 0cf1565f1c67eae336980253132d99c6ebc76e0c Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 13 Sep 2021 12:53:36 +0200 Subject: [PATCH 083/235] Fix py2 urlretrieve not raising HTTPError by switching to urlopen --- shapefile.py | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/shapefile.py b/shapefile.py index cbb8de1..6dcba95 100644 --- a/shapefile.py +++ b/shapefile.py @@ -80,20 +80,15 @@ izip = zip from urllib.parse import urlparse, urlunparse - from urllib.request import build_opener, install_opener, urlretrieve - opener = build_opener() - opener.addheaders = [('User-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36')] - install_opener(opener) + from urllib.error import HTTPError + from urllib.request import urlopen, Request else: from itertools import izip from urlparse import urlparse, urlunparse - from urllib import urlretrieve - from urllib2 import build_opener, install_opener - opener = build_opener() - opener.addheaders = [('User-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36')] - install_opener(opener) + from urllib2 import HTTPError + from urllib2 import urlopen, Request # Helpers @@ -950,10 +945,14 @@ def __init__(self, *args, **kwargs): if zpath.startswith('http'): # Shapefile is from a url # Download to a temporary url and treat as normal zipfile - dpath, headers = urlretrieve(zpath) - src,dst = dpath, dpath+'.zip' - os.rename(src, dst) - zpath = dst + req = Request(zpath, headers={'User-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'}) + resp = urlopen(req) + zfile = os.path.basename(zpath) + dpathdir = tempfile.gettempdir() + dpath = os.path.join(dpathdir, zfile) + with open(dpath, 'wb') as f: + f.write(resp.read()) + zpath = dpath # Open the zipfile archive archive = zipfile.ZipFile(zpath, 'r') if not shapefile: @@ -987,20 +986,22 @@ def __init__(self, *args, **kwargs): urlpath = urlinfo[2] urlpath,_ = os.path.splitext(urlpath) shapefile = os.path.basename(urlpath) - dst = None + dpath = None for ext in ['.shp','.shx','.dbf']: try: _urlinfo = list(urlinfo) _urlinfo[2] = urlpath+ext _path = urlunparse(_urlinfo) - dpath, headers = urlretrieve(_path) - dpathdir = os.path.dirname(dpath) - src,dst = dpath, os.path.join(dpathdir, shapefile+ext) - os.rename(src,dst) - except: + req = Request(_path, headers={'User-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'}) + resp = urlopen(req) + dpathdir = tempfile.gettempdir() + dpath = os.path.join(dpathdir, shapefile+ext) + with open(dpath, 'wb') as f: + f.write(resp.read()) + except HTTPError: pass - if dst: - path = os.path.splitext(dst)[0] + if dpath: + path = os.path.splitext(dpath)[0] else: raise ShapefileException("No shp, shx, or dbf file found at url: %s" % path) # Load and exit early From 2a4e29a3a9a3766fc12f7400ddb2547860d5e91f Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Mon, 13 Sep 2021 13:13:24 +0200 Subject: [PATCH 084/235] Fix py2 zipfile.open() not allowing seek by switching to extract()+open() --- shapefile.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/shapefile.py b/shapefile.py index 6dcba95..e4283ef 100644 --- a/shapefile.py +++ b/shapefile.py @@ -971,12 +971,16 @@ def __init__(self, *args, **kwargs): path to the shapefile you would like to open.' % shapefiles ) # Try to extract file-like objects from zipfile shapefile = os.path.splitext(shapefile)[0] # root shapefile name - try: self.shp = archive.open(shapefile+'.shp') - except: pass - try: self.shx = archive.open(shapefile+'.shx') - except: pass - try: self.dbf = archive.open(shapefile+'.dbf') - except: pass + tempdir = tempfile.gettempdir() + for ext in ['shp','shx','dbf']: + try: + # Note: archive.open() would be easier, but loads file into memory + # and cannot always use .seek() + temppath = archive.extract(shapefile+'.'+ext, tempdir) + fileobj = open(temppath, 'rb') + setattr(self, ext, fileobj) + except: + pass else: # Direct path to a shapefile given if path.startswith('http'): From 8547ccefca4c64008b4342a88d2bafa29c519a25 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 14 Dec 2021 14:17:30 +0100 Subject: [PATCH 085/235] Add readme docs for new features --- README.md | 109 ++++++++++++++++++++++++++++++++++++++-------- test_shapefile.py | 2 +- 2 files changed, 93 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index e985ade..8f27fad 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,12 @@ The Python Shapefile Library (PyShp) reads and writes ESRI Shapefiles in pure Py [How To's](#how-tos) - [3D and Other Geometry Types](#3d-and-other-geometry-types) -- [Working with Large Shapefiles](#working-with-large-shapefiles) +- [Reading Large Shapefiles](#reading-large-shapefiles) + - [Iterating through a shapefile](#iterating-through-a-shapefile) + - [Extracting attribute values](#extracting-attribute-values) + - [Attribute filtering](#attribute-filtering) + - [Spatial filtering](#spatial-filtering) +- [Writing Large Shapefiles](#writing-large-shapefiles) - [Unicode and Shapefile Encodings](#unicode-and-shapefile-encodings) [Testing](#testing) @@ -199,23 +204,36 @@ OR OR any of the other 5+ formats which are potentially part of a shapefile. The library does not care about file extensions. -#### Reading Shapefiles Using the Context Manager +#### Reading Shapefiles From Zip Files -The "Reader" class can be used as a context manager, to ensure open file -objects are properly closed when done reading the data: +If your shapefile is wrapped inside a zip file, the library is able to handle that too, meaning you don't have to worry about unzipping the contents: - >>> with shapefile.Reader("shapefiles/blockgroups.shp") as shp: - ... print(shp) - shapefile Reader - 663 shapes (type 'POLYGON') - 663 records (44 fields) + + >>> sf = shapefile.Reader("shapefiles/blockgroups.zip") + +If the zip file contains multiple shapefiles, just specify which shapefile to read by additionally specifying the relative path after the ".zip" part: + + + >>> sf = shapefile.Reader("shapfiles/blockgroups_multishapefile.zip/blockgroups2.shp") + +#### Reading Shapefiles From URLs + +Finally, you can use all of the above methods to read shapefiles directly from the internet, by giving their url instead of their local path, e.g.: + + + >>> # from a zipped shapefile on website + >>> sf = shapefile.Reader("https://biogeo.ucdavis.edu/data/diva/rrd/NIC_rrd.zip") + + >>> # from a shapefile collection of files in a github repository + >>> sf = shapefile.Reader("https://github.com/nvkelso/natural-earth-vector/blob/master/110m_cultural/ne_110m_admin_0_tiny_countries?raw=true") + +This will automatically download the file(s) to a temporary location before reading, saving you a lot of time and repetitive boilerplate code when you just want quick access to some external data. #### Reading Shapefiles from File-Like Objects You can also load shapefiles from any Python file-like object using keyword arguments to specify any of the three files. This feature is very powerful and -allows you to load shapefiles from a url, a zip file, a serialized object, -or in some cases a database. +allows you to custom load shapefiles from arbitrary storage formats, such as a protected url or zip file, a serialized object, or in some cases a database. >>> myshp = open("shapefiles/blockgroups.shp", "rb") @@ -228,6 +246,17 @@ file. This file is optional for reading. If it's available PyShp will use the shx file to access shape records a little faster but will do just fine without it. +#### Reading Shapefiles Using the Context Manager + +The "Reader" class can be used as a context manager, to ensure open file +objects are properly closed when done reading the data: + + >>> with shapefile.Reader("shapefiles/blockgroups.shp") as shp: + ... print(shp) + shapefile Reader + 663 shapes (type 'POLYGON') + 663 records (44 fields) + #### Reading Shapefile Meta-Data Shapefiles have a number of attributes for inspecting the file contents. @@ -235,6 +264,7 @@ A shapefile is a container for a specific type of geometry, and this can be chec shapeType attribute. + >>> sf = shapefile.Reader("shapefiles/blockgroups.dbf") >>> sf.shapeType 5 @@ -1052,12 +1082,18 @@ its roof: For an introduction to the various multipatch part types and examples of how to create 3D MultiPatch objects see [this ESRI White Paper](http://downloads.esri.com/support/whitepapers/ao_/J9749_MultiPatch_Geometry_Type.pdf). -## Working with Large Shapefiles +## Reading Large Shapefiles -Despite being a lightweight library, PyShp is designed to be able to read and write -shapefiles of any size, allowing you to work with hundreds of thousands or even millions +Despite being a lightweight library, PyShp is designed to be able to read shapefiles of any size, allowing you to work with hundreds of thousands or even millions of records and complex geometries. +### Iterating through a shapefile + +As an example, let's load this Natural Earth shapefile of more than 4000 global administrative boundary polygons: + + + >>> sf = shapefile.Reader("https://github.com/nvkelso/natural-earth-vector/blob/master/10m_cultural/ne_10m_admin_1_states_provinces?raw=true") + When first creating the Reader class, the library only reads the header information and leaves the rest of the file contents alone. Once you call the records() and shapes() methods however, it will attempt to read the entire file into memory at once. @@ -1082,9 +1118,48 @@ through them while keeping memory usage at a minimum. >>> for shapeRec in sf: # same as iterShapeRecords() ... # do something here ... pass - -The shapefile Writer class uses a similar streaming approach to keep memory -usage at a minimum. The library takes care of this under-the-hood by immediately + +### Extracting attribute values + +By default when reading the attribute records of a shapefile, pyshp unpacks and returns the data for all of the dbf fields, regardless of whether you actually need that data or not. To limit which field data is unpacked when reading each record, you can specify the `fields` argument to any of the methods involving record data. For instance, if we are only interested in the country and name of each admin unit, the following is a much faster way of iterating the file: + + + >>> fields = ["geonunit", "name"] + >>> for rec in sf.iterRecords(fields=fields): + ... # do something + ... pass + +### Attribute filtering + +In many cases, we aren't interested in all entries of a shapefile, but rather only want to retrieve a small subset of records by filtering on some attribute. To avoid wasting time reading records and shapes that we don't need, we can start by iterating only the records and fields of interest, check if the record matches some condition as a way to filter the data, and finally load the full record and shape geometry for those that meet the condition: + + + >>> filter_field = "geonunit" + >>> filter_value = "Germany" + >>> for rec in sf.iterRecords(fields=[filter_field]): + ... if rec[filter_field] == filter_value: + ... # load full record and shape + ... shapeRec = sf.shapeRecord(rec.oid) + ... shapeRec.record["name"] + +Selectively reading only the necessary data in this way is particularly useful for efficiently processing a limited subset of data from very large files or when looping through a large number of files, especially if they contain large attribute tables or complex shape geometries. + +### Spatial filtering + +Another common use-case is that we only want to read those records that are located in some region of interest. Because the shapefile stores the bounding box of each shape separately from the geometry data, it's possible to quickly retrieve all shapes that might overlap a given bounding box region without having to load the full shape geometry data for every shape. This can be done by specifying the `bbox` argument to any of the record or shape methods: + + + >>> bbox = [] + >>> fields = ["geonunit","name"] + >>> for shapeRec in sf.iterShapeRecords(bbox=bbox, fields=fields): + ... shapeRec.record + +This functionality means that shapefiles can be used as a bare-bones spatially indexed database, with very fast bounding box queries for even the largest of shapefiles. Note how, as with all spatial indexing, this method does not guarantee that the *geometries* of the resulting matches overlap the queried region, only that their *bounding boxes* overlap. + +## Writing large shapefiles + +Similar to the Reader class, the shapefile Writer class uses a streaming approach to keep memory +usage at a minimum and allow writing shapefiles of arbitrarily large sizes. The library takes care of this under-the-hood by immediately writing each geometry and record to disk the moment they are added using shape() or record(). Once the writer is closed, exited, or garbage collected, the final header information is calculated and written to the beginning of diff --git a/test_shapefile.py b/test_shapefile.py index 193b4ca..2958d37 100644 --- a/test_shapefile.py +++ b/test_shapefile.py @@ -321,7 +321,7 @@ def test_reader_zip(): def test_reader_close(): """ - Assert that manually callcin Reader.close() + Assert that manually calling Reader.close() closes the shp, shx, and dbf files on exit. """ From 60b7aed05a0cd01e6c02bec0c5377d5988913571 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 14 Dec 2021 15:56:52 +0100 Subject: [PATCH 086/235] Remove null-padding at end of character fields, fix some readme doctest fails Example of a file where the null-padding shows up is https://github.com/nvkelso/natural-earth-vector/blob/master/10m_cultural/ne_10m_admin_1_states_provinces.shp. A little weird this hasn't been fixed before. Maybe because the null pads get ignored when printing, or maybe because it only shows up in some files. Could also be it's a recent bug, though it doesn't seem that way... --- README.md | 40 +++++++++++++++++++++++++----- shapefile.py | 2 +- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes 15 files changed, 35 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 8f27fad..db80ad5 100644 --- a/README.md +++ b/README.md @@ -214,7 +214,7 @@ If your shapefile is wrapped inside a zip file, the library is able to handle th If the zip file contains multiple shapefiles, just specify which shapefile to read by additionally specifying the relative path after the ".zip" part: - >>> sf = shapefile.Reader("shapfiles/blockgroups_multishapefile.zip/blockgroups2.shp") + >>> sf = shapefile.Reader("shapefiles/blockgroups_multishapefile.zip/blockgroups2.shp") #### Reading Shapefiles From URLs @@ -1128,6 +1128,9 @@ By default when reading the attribute records of a shapefile, pyshp unpacks and >>> for rec in sf.iterRecords(fields=fields): ... # do something ... pass + >>> rec + Record #4595: ['Birgu', 'Malta'] + ### Attribute filtering @@ -1135,12 +1138,18 @@ In many cases, we aren't interested in all entries of a shapefile, but rather on >>> filter_field = "geonunit" - >>> filter_value = "Germany" + >>> filter_value = "Eritrea" >>> for rec in sf.iterRecords(fields=[filter_field]): ... if rec[filter_field] == filter_value: ... # load full record and shape - ... shapeRec = sf.shapeRecord(rec.oid) + ... shapeRec = sf.shapeRecord(rec.oid) ... shapeRec.record["name"] + 'Debubawi Keyih Bahri' + 'Debub' + 'Semenawi Keyih Bahri' + 'Gash Barka' + 'Maekel' + 'Anseba' Selectively reading only the necessary data in this way is particularly useful for efficiently processing a limited subset of data from very large files or when looping through a large number of files, especially if they contain large attribute tables or complex shape geometries. @@ -1149,12 +1158,31 @@ Selectively reading only the necessary data in this way is particularly useful f Another common use-case is that we only want to read those records that are located in some region of interest. Because the shapefile stores the bounding box of each shape separately from the geometry data, it's possible to quickly retrieve all shapes that might overlap a given bounding box region without having to load the full shape geometry data for every shape. This can be done by specifying the `bbox` argument to any of the record or shape methods: - >>> bbox = [] + >>> bbox = [36.423, 12.360, 43.123, 18.004] # ca bbox of Eritrea >>> fields = ["geonunit","name"] >>> for shapeRec in sf.iterShapeRecords(bbox=bbox, fields=fields): ... shapeRec.record - -This functionality means that shapefiles can be used as a bare-bones spatially indexed database, with very fast bounding box queries for even the largest of shapefiles. Note how, as with all spatial indexing, this method does not guarantee that the *geometries* of the resulting matches overlap the queried region, only that their *bounding boxes* overlap. + Record #368: ['Afar', 'Ethiopia'] + Record #369: ['Tadjourah', 'Djibouti'] + Record #375: ['Obock', 'Djibouti'] + Record #376: ['Debubawi Keyih Bahri', 'Eritrea'] + Record #1106: ['Amhara', 'Ethiopia'] + Record #1107: ['Gedarif', 'Sudan'] + Record #1108: ['Tigray', 'Ethiopia'] + Record #1414: ['Sa`dah', 'Yemen'] + Record #1415: ['`Asir', 'Saudi Arabia'] + Record #1416: ['Hajjah', 'Yemen'] + Record #1417: ['Jizan', 'Saudi Arabia'] + Record #1598: ['Debub', 'Eritrea'] + Record #1599: ['Red Sea', 'Sudan'] + Record #1600: ['Semenawi Keyih Bahri', 'Eritrea'] + Record #1601: ['Gash Barka', 'Eritrea'] + Record #1602: ['Kassala', 'Sudan'] + Record #1603: ['Maekel', 'Eritrea'] + Record #2037: ['Al Hudaydah', 'Yemen'] + Record #3741: ['Anseba', 'Eritrea'] + +This functionality means that shapefiles can be used as a bare-bones spatially indexed database, with very fast bounding box queries for even the largest of shapefiles. Note that, as with all spatial indexing, this method does not guarantee that the *geometries* of the resulting matches overlap the queried region, only that their *bounding boxes* overlap. ## Writing large shapefiles diff --git a/shapefile.py b/shapefile.py index e4283ef..0eb2e0d 100644 --- a/shapefile.py +++ b/shapefile.py @@ -1577,7 +1577,7 @@ def __record(self, fieldTuples, recLookup, recStruct, oid=None): else: # anything else is forced to string/unicode value = u(value, self.encoding, self.encodingErrors) - value = value.strip() + value = value.strip().rstrip('\x00') # remove null-padding at end of strings record.append(value) return _Record(recLookup, record, oid) diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index 5106b233c702b82062fd94d5044d008c0323c9ca..a076499c2ea7d70acd571fea8c6b98aaa3c9bd23 100644 GIT binary patch delta 13 UcmZ3&wuFs^xsr!(BZ~qv02dts#{d8T delta 13 UcmZ3&wuFs^xssD>BZ~qv02cQGzyJUM diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index f87e9166d25768318fad78d39e7d68bcea9da926..539865588201b38bfceb9358d440756236397487 100644 GIT binary patch delta 10 RcmZ>CWMQu4;hV@}3jhjK0q+0+ delta 10 RcmZ>CWMQu4YGz_#uH@mH$nqZm5w8O| delta 12 TcmZo>YGz_#uH@vJ$nqZm5s(8i diff --git a/shapefiles/test/line.dbf b/shapefiles/test/line.dbf index 665e5cba50b7aea89907bf71ae300f6de1d63586..72ded1a5b62b2a3d5fefa0d89e257ab2e74f28bf 100644 GIT binary patch delta 10 RcmXRZVPUT1;hV@(000h90*C+r delta 10 RcmXRZVPUT1CWMQu4;hV@}3jhjK0q+0+ delta 10 RcmZ>CWMQu4CWMQu4;hV@}3jhjK0q+0+ delta 10 RcmZ>CWMQu4CWMQu4;hV@}3jhjK0q+0+ delta 10 RcmZ>CWMQu4 Date: Tue, 14 Dec 2021 16:55:52 +0100 Subject: [PATCH 087/235] Readme reorganizing, prep for new version --- README.md | 352 ++++++++++++++++++++++++++++++--------------------- setup.py | 2 +- shapefile.py | 4 +- 3 files changed, 208 insertions(+), 150 deletions(-) diff --git a/README.md b/README.md index db80ad5..6cd3297 100644 --- a/README.md +++ b/README.md @@ -12,27 +12,69 @@ The Python Shapefile Library (PyShp) reads and writes ESRI Shapefiles in pure Py [Version Changes](#version-changes) -[Examples](#examples) -- [Reading Shapefiles](#reading-shapefiles) - - [The Reader Class](#the-reader-class) - - [Reading Geometry](#reading-geometry) - - [Reading Records](#reading-records) - - [Reading Geometry and Records Simultaneously](#reading-geometry-and-records-simultaneously) -- [Writing Shapefiles](#writing-shapefiles) - - [The Writer Class](#the-writer-class) - - [Adding Records](#adding-records) - - [Adding Geometry](#adding-geometry) - - [Geometry and Record Balancing](#geometry-and-record-balancing) +[The Basics](#the-basics) +- [PyShp](#pyshp) + - [Contents](#contents) +- [Overview](#overview) +- [Version Changes](#version-changes) + - [2.2.0](#220) + - [New Features:](#new-features) + - [Bug fixes:](#bug-fixes) + - [2.1.3](#213) + - [Bug fixes:](#bug-fixes-1) + - [2.1.2](#212) + - [Bug fixes:](#bug-fixes-2) + - [2.1.1](#211) + - [Improvements:](#improvements) + - [Bug fixes:](#bug-fixes-3) + - [2.1.0](#210) + - [New Features:](#new-features-1) + - [Bug fixes:](#bug-fixes-4) + - [2.0.0](#200) + - [Major Changes:](#major-changes) + - [Important Fixes:](#important-fixes) +- [The Basics](#the-basics) + - [Reading Shapefiles](#reading-shapefiles) + - [The Reader Class](#the-reader-class) + - [Reading Shapefiles from Local Files](#reading-shapefiles-from-local-files) + - [Reading Shapefiles from Zip Files](#reading-shapefiles-from-zip-files) + - [Reading Shapefiles from URLs](#reading-shapefiles-from-urls) + - [Reading Shapefiles from File-Like Objects](#reading-shapefiles-from-file-like-objects) + - [Reading Shapefiles Using the Context Manager](#reading-shapefiles-using-the-context-manager) + - [Reading Shapefile Meta-Data](#reading-shapefile-meta-data) + - [Reading Geometry](#reading-geometry) + - [Reading Records](#reading-records) + - [Reading Geometry and Records Simultaneously](#reading-geometry-and-records-simultaneously) + - [Writing Shapefiles](#writing-shapefiles) + - [The Writer Class](#the-writer-class) + - [Writing Shapefiles to Local Files](#writing-shapefiles-to-local-files) + - [Writing Shapefiles to File-Like Objects](#writing-shapefiles-to-file-like-objects) + - [Writing Shapefiles Using the Context Manager](#writing-shapefiles-using-the-context-manager) + - [Setting the Shape Type](#setting-the-shape-type) + - [Adding Records](#adding-records) + - [Adding Geometry](#adding-geometry) + - [Geometry and Record Balancing](#geometry-and-record-balancing) +- [Advanced Use](#advanced-use) + - [Shapefile Language and Character Encoding](#shapefile-language-and-character-encoding) + - [Reading Large Shapefiles](#reading-large-shapefiles) + - [Iterating through a shapefile](#iterating-through-a-shapefile) + - [Extracting attribute values](#extracting-attribute-values) + - [Attribute filtering](#attribute-filtering) + - [Spatial filtering](#spatial-filtering) + - [Writing large shapefiles](#writing-large-shapefiles) + - [3D and Other Geometry Types](#3d-and-other-geometry-types) +- [Testing](#testing) +- [Contributors](#contributors) -[How To's](#how-tos) -- [3D and Other Geometry Types](#3d-and-other-geometry-types) +[Advanced Use](#advanced-use) +- [Shapefile Language and Character Encoding](#shapefile-language-and-character-encoding) - [Reading Large Shapefiles](#reading-large-shapefiles) - [Iterating through a shapefile](#iterating-through-a-shapefile) - [Extracting attribute values](#extracting-attribute-values) - [Attribute filtering](#attribute-filtering) - [Spatial filtering](#spatial-filtering) - [Writing Large Shapefiles](#writing-large-shapefiles) -- [Unicode and Shapefile Encodings](#unicode-and-shapefile-encodings) +- [3D and Other Geometry Types](#3d-and-other-geometry-types) [Testing](#testing) @@ -75,6 +117,12 @@ part of your geospatial project. # Version Changes +## 2.2.0 + +### New Features: + +### Bug fixes: + ## 2.1.3 ### Bug fixes: @@ -168,7 +216,7 @@ Users of the previous version 1.x should therefore take note of the following ch - Enforce maximum field limit. [@mwtoews] -# Examples +# The Basics Before doing anything you must import the library. @@ -183,6 +231,8 @@ repository of the PyShp GitHub site. ### The Reader Class +#### Reading Shapefiles from Local Files + To read a shapefile create a new "Reader" object and pass it the name of an existing shapefile. The shapefile format is actually a collection of three files. You specify the base filename of the shapefile or the complete filename @@ -204,7 +254,7 @@ OR OR any of the other 5+ formats which are potentially part of a shapefile. The library does not care about file extensions. -#### Reading Shapefiles From Zip Files +#### Reading Shapefiles from Zip Files If your shapefile is wrapped inside a zip file, the library is able to handle that too, meaning you don't have to worry about unzipping the contents: @@ -216,16 +266,16 @@ If the zip file contains multiple shapefiles, just specify which shapefile to re >>> sf = shapefile.Reader("shapefiles/blockgroups_multishapefile.zip/blockgroups2.shp") -#### Reading Shapefiles From URLs +#### Reading Shapefiles from URLs -Finally, you can use all of the above methods to read shapefiles directly from the internet, by giving their url instead of their local path, e.g.: +Finally, you can use all of the above methods to read shapefiles directly from the internet, by giving a url instead of a local path, e.g.: >>> # from a zipped shapefile on website >>> sf = shapefile.Reader("https://biogeo.ucdavis.edu/data/diva/rrd/NIC_rrd.zip") >>> # from a shapefile collection of files in a github repository - >>> sf = shapefile.Reader("https://github.com/nvkelso/natural-earth-vector/blob/master/110m_cultural/ne_110m_admin_0_tiny_countries?raw=true") + >>> sf = shapefile.Reader("https://github.com/nvkelso/natural-earth-vector/blob/master/110m_cultural/ne_110m_admin_0_tiny_countries.shp?raw=true") This will automatically download the file(s) to a temporary location before reading, saving you a lot of time and repetitive boilerplate code when you just want quick access to some external data. @@ -606,6 +656,8 @@ interest. Many precision agriculture chemical field sprayers also use the shp format as a control file for the sprayer system (usually in combination with custom database file formats). +#### Writing Shapefiles to Local Files + To create a shapefile you begin by initiating a new Writer instance, passing it the file path and name to save to: @@ -625,23 +677,6 @@ one or more file types: In that case, any file types not assigned will not save and only file types with file names will be saved. -#### Writing Shapefiles Using the Context Manager - -The "Writer" class automatically closes the open files and writes the final headers once it is garbage collected. -In case of a crash and to make the code more readable, it is nevertheless recommended -you do this manually by calling the "close()" method: - - - >>> w.close() - -Alternatively, you can also use the "Writer" class as a context manager, to ensure open file -objects are properly closed and final headers written once you exit the with-clause: - - - >>> with shapefile.Writer("shapefiles/test/contextwriter") as w: - ... w.field('field1', 'C') - ... pass - #### Writing Shapefiles to File-Like Objects Just as you can read shapefiles from python file-like objects you can also @@ -661,6 +696,23 @@ write to them: >>> w.null() >>> w.close() >>> # To read back the files you could call the "StringIO.getvalue()" method later. + +#### Writing Shapefiles Using the Context Manager + +The "Writer" class automatically closes the open files and writes the final headers once it is garbage collected. +In case of a crash and to make the code more readable, it is nevertheless recommended +you do this manually by calling the "close()" method: + + + >>> w.close() + +Alternatively, you can also use the "Writer" class as a context manager, to ensure open file +objects are properly closed and final headers written once you exit the with-clause: + + + >>> with shapefile.Writer("shapefiles/test/contextwriter") as w: + ... w.field('field1', 'C') + ... pass #### Setting the Shape Type @@ -983,104 +1035,46 @@ most shapefile software. -# How To's - -## 3D and Other Geometry Types - -Most shapefiles store conventional 2D points, lines, or polygons. But the shapefile format is also capable -of storing various other types of geometries as well, including complex 3D surfaces and objects. +# Advanced Use -**Shapefiles with measurement (M) values** +## Shapefile Language and Character Encoding -Measured shape types are shapes that include a measurement value at each vertex, for instance -speed measurements from a GPS device. Shapes with measurement (M) values are added with the following -methods: "pointm", "multipointm", "linem", and "polygonm". The M-values are specified by adding a -third M value to each XY coordinate. Missing or unobserved M-values are specified with a None value, -or by simply omitting the third M-coordinate. +PyShp supports reading and writing shapefiles in any language or character encoding, and provides several options for decoding and encoding text. +Most shapefiles are written in UTF-8 encoding, PyShp's default encoding, so in most cases you don't +have to specify the encoding. For reading shapefiles in any other encoding, such as Latin-1, just +supply the encoding option when creating the Reader class. - >>> w = shapefile.Writer('shapefiles/test/linem') - >>> w.field('name', 'C') - - >>> w.linem([ - ... [[1,5,0],[5,5],[5,1,3],[3,3,None],[1,1,0]], # line with one omitted and one missing M-value - ... [[3,2],[2,6]] # line without any M-values - ... ]) - - >>> w.record('linem1') - - >>> w.close() + >>> r = shapefile.Reader("shapefiles/test/latin1.shp", encoding="latin1") + >>> r.record(0) == [2, u'Ñandú'] + True -Shapefiles containing M-values can be examined in several ways: +Once you have loaded the shapefile, you may choose to save it using another more supportive encoding such +as UTF-8. Assuming the new encoding supports the characters you are trying to write, reading it back in +should give you the same unicode string you started with. - >>> r = shapefile.Reader('shapefiles/test/linem') - - >>> r.mbox # the lower and upper bound of M-values in the shapefile - [0.0, 3.0] - - >>> r.shape(0).m # flat list of M-values - [0.0, None, 3.0, None, 0.0, None, None] - -**Shapefiles with elevation (Z) values** - -Elevation shape types are shapes that include an elevation value at each vertex, for instance elevation from a GPS device. -Shapes with elevation (Z) values are added with the following methods: "pointz", "multipointz", "linez", and "polyz". -The Z-values are specified by adding a third Z value to each XY coordinate. Z-values do not support the concept of missing data, -but if you omit the third Z-coordinate it will default to 0. Note that Z-type shapes also support measurement (M) values added -as a fourth M-coordinate. This too is optional. - - - >>> w = shapefile.Writer('shapefiles/test/linez') - >>> w.field('name', 'C') - - >>> w.linez([ - ... [[1,5,18],[5,5,20],[5,1,22],[3,3],[1,1]], # line with some omitted Z-values - ... [[3,2],[2,6]], # line without any Z-values - ... [[3,2,15,0],[2,6,13,3],[1,9,14,2]] # line with both Z- and M-values - ... ]) - - >>> w.record('linez1') - + >>> w = shapefile.Writer("shapefiles/test/latin_as_utf8.shp", encoding="utf8") + >>> w.fields = r.fields[1:] + >>> w.record(*r.record(0)) + >>> w.null() >>> w.close() -To examine a Z-type shapefile you can do: - - >>> r = shapefile.Reader('shapefiles/test/linez') - - >>> r.zbox # the lower and upper bound of Z-values in the shapefile - [0.0, 22.0] + >>> r = shapefile.Reader("shapefiles/test/latin_as_utf8.shp", encoding="utf8") + >>> r.record(0) == [2, u'Ñandú'] + True - >>> r.shape(0).z # flat list of Z-values - [18.0, 20.0, 22.0, 0.0, 0.0, 0.0, 0.0, 15.0, 13.0, 14.0] +If you supply the wrong encoding and the string is unable to be decoded, PyShp will by default raise an +exception. If however, on rare occasion, you are unable to find the correct encoding and want to ignore +or replace encoding errors, you can specify the "encodingErrors" to be used by the decode method. This +applies to both reading and writing. -**3D MultiPatch Shapefiles** -Multipatch shapes are useful for storing composite 3-Dimensional objects. -A MultiPatch shape represents a 3D object made up of one or more surface parts. -Each surface in "parts" is defined by a list of XYZM values (Z and M values optional), and its corresponding type is -given in the "partTypes" argument. The part type decides how the coordinate sequence is to be interpreted, and can be one -of the following module constants: TRIANGLE_STRIP, TRIANGLE_FAN, OUTER_RING, INNER_RING, FIRST_RING, or RING. -For instance, a TRIANGLE_STRIP may be used to represent the walls of a building, combined with a TRIANGLE_FAN to represent -its roof: + >>> r = shapefile.Reader("shapefiles/test/latin1.shp", encoding="ascii", encodingErrors="replace") + >>> r.record(0) == [2, u'�and�'] + True + - >>> from shapefile import TRIANGLE_STRIP, TRIANGLE_FAN - - >>> w = shapefile.Writer('shapefiles/test/multipatch') - >>> w.field('name', 'C') - - >>> w.multipatch([ - ... [[0,0,0],[0,0,3],[5,0,0],[5,0,3],[5,5,0],[5,5,3],[0,5,0],[0,5,3],[0,0,0],[0,0,3]], # TRIANGLE_STRIP for house walls - ... [[2.5,2.5,5],[0,0,3],[5,0,3],[5,5,3],[0,5,3],[0,0,3]], # TRIANGLE_FAN for pointed house roof - ... ], - ... partTypes=[TRIANGLE_STRIP, TRIANGLE_FAN]) # one type for each part - - >>> w.record('house1') - - >>> w.close() - -For an introduction to the various multipatch part types and examples of how to create 3D MultiPatch objects see [this -ESRI White Paper](http://downloads.esri.com/support/whitepapers/ao_/J9749_MultiPatch_Geometry_Type.pdf). ## Reading Large Shapefiles @@ -1184,6 +1178,8 @@ Another common use-case is that we only want to read those records that are loca This functionality means that shapefiles can be used as a bare-bones spatially indexed database, with very fast bounding box queries for even the largest of shapefiles. Note that, as with all spatial indexing, this method does not guarantee that the *geometries* of the resulting matches overlap the queried region, only that their *bounding boxes* overlap. + + ## Writing large shapefiles Similar to the Reader class, the shapefile Writer class uses a streaming approach to keep memory @@ -1199,43 +1195,105 @@ process and write any number of items, and even merge many different source file large shapefile. If you need to edit or undo any of your writing you would have to read the file back in, one record at a time, make your changes, and write it back out. -## Unicode and Shapefile Encodings -PyShp has full support for unicode and shapefile encodings, so you can always expect to be working -with unicode strings in shapefiles that have text fields. -Most shapefiles are written in UTF-8 encoding, PyShp's default encoding, so in most cases you don't -have to specify the encoding. For reading shapefiles in any other encoding, such as Latin-1, just -supply the encoding option when creating the Reader class. +## 3D and Other Geometry Types + +Most shapefiles store conventional 2D points, lines, or polygons. But the shapefile format is also capable +of storing various other types of geometries as well, including complex 3D surfaces and objects. - >>> r = shapefile.Reader("shapefiles/test/latin1.shp", encoding="latin1") - >>> r.record(0) == [2, u'Ñandú'] - True +**Shapefiles with measurement (M) values** + +Measured shape types are shapes that include a measurement value at each vertex, for instance +speed measurements from a GPS device. Shapes with measurement (M) values are added with the following +methods: "pointm", "multipointm", "linem", and "polygonm". The M-values are specified by adding a +third M value to each XY coordinate. Missing or unobserved M-values are specified with a None value, +or by simply omitting the third M-coordinate. + + + >>> w = shapefile.Writer('shapefiles/test/linem') + >>> w.field('name', 'C') -Once you have loaded the shapefile, you may choose to save it using another more supportive encoding such -as UTF-8. Provided the new encoding supports the characters you are trying to write, reading it back in -should give you the same unicode string you started with. + >>> w.linem([ + ... [[1,5,0],[5,5],[5,1,3],[3,3,None],[1,1,0]], # line with one omitted and one missing M-value + ... [[3,2],[2,6]] # line without any M-values + ... ]) + + >>> w.record('linem1') + + >>> w.close() + +Shapefiles containing M-values can be examined in several ways: + >>> r = shapefile.Reader('shapefiles/test/linem') + + >>> r.mbox # the lower and upper bound of M-values in the shapefile + [0.0, 3.0] + + >>> r.shape(0).m # flat list of M-values + [0.0, None, 3.0, None, 0.0, None, None] - >>> w = shapefile.Writer("shapefiles/test/latin_as_utf8.shp", encoding="utf8") - >>> w.fields = r.fields[1:] - >>> w.record(*r.record(0)) - >>> w.null() + +**Shapefiles with elevation (Z) values** + +Elevation shape types are shapes that include an elevation value at each vertex, for instance elevation from a GPS device. +Shapes with elevation (Z) values are added with the following methods: "pointz", "multipointz", "linez", and "polyz". +The Z-values are specified by adding a third Z value to each XY coordinate. Z-values do not support the concept of missing data, +but if you omit the third Z-coordinate it will default to 0. Note that Z-type shapes also support measurement (M) values added +as a fourth M-coordinate. This too is optional. + + + >>> w = shapefile.Writer('shapefiles/test/linez') + >>> w.field('name', 'C') + + >>> w.linez([ + ... [[1,5,18],[5,5,20],[5,1,22],[3,3],[1,1]], # line with some omitted Z-values + ... [[3,2],[2,6]], # line without any Z-values + ... [[3,2,15,0],[2,6,13,3],[1,9,14,2]] # line with both Z- and M-values + ... ]) + + >>> w.record('linez1') + >>> w.close() - >>> r = shapefile.Reader("shapefiles/test/latin_as_utf8.shp", encoding="utf8") - >>> r.record(0) == [2, u'Ñandú'] - True +To examine a Z-type shapefile you can do: + + >>> r = shapefile.Reader('shapefiles/test/linez') -If you supply the wrong encoding and the string is unable to be decoded, PyShp will by default raise an -exception. If however, on rare occasion, you are unable to find the correct encoding and want to ignore -or replace encoding errors, you can specify the "encodingErrors" to be used by the decode method. This -applies to both reading and writing. + >>> r.zbox # the lower and upper bound of Z-values in the shapefile + [0.0, 22.0] + + >>> r.shape(0).z # flat list of Z-values + [18.0, 20.0, 22.0, 0.0, 0.0, 0.0, 0.0, 15.0, 13.0, 14.0] +**3D MultiPatch Shapefiles** + +Multipatch shapes are useful for storing composite 3-Dimensional objects. +A MultiPatch shape represents a 3D object made up of one or more surface parts. +Each surface in "parts" is defined by a list of XYZM values (Z and M values optional), and its corresponding type is +given in the "partTypes" argument. The part type decides how the coordinate sequence is to be interpreted, and can be one +of the following module constants: TRIANGLE_STRIP, TRIANGLE_FAN, OUTER_RING, INNER_RING, FIRST_RING, or RING. +For instance, a TRIANGLE_STRIP may be used to represent the walls of a building, combined with a TRIANGLE_FAN to represent +its roof: + + >>> from shapefile import TRIANGLE_STRIP, TRIANGLE_FAN + + >>> w = shapefile.Writer('shapefiles/test/multipatch') + >>> w.field('name', 'C') + + >>> w.multipatch([ + ... [[0,0,0],[0,0,3],[5,0,0],[5,0,3],[5,5,0],[5,5,3],[0,5,0],[0,5,3],[0,0,0],[0,0,3]], # TRIANGLE_STRIP for house walls + ... [[2.5,2.5,5],[0,0,3],[5,0,3],[5,5,3],[0,5,3],[0,0,3]], # TRIANGLE_FAN for pointed house roof + ... ], + ... partTypes=[TRIANGLE_STRIP, TRIANGLE_FAN]) # one type for each part + + >>> w.record('house1') + + >>> w.close() + +For an introduction to the various multipatch part types and examples of how to create 3D MultiPatch objects see [this +ESRI White Paper](http://downloads.esri.com/support/whitepapers/ao_/J9749_MultiPatch_Geometry_Type.pdf). - >>> r = shapefile.Reader("shapefiles/test/latin1.shp", encoding="ascii", encodingErrors="replace") - >>> r.record(0) == [2, u'�and�'] - True # Testing diff --git a/setup.py b/setup.py index 64c1f62..0bb57f2 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ def read_file(file): return data.decode('utf-8') setup(name='pyshp', - version='2.1.3', + version='2.2.0dev', description='Pure Python read/write support for ESRI Shapefile format', long_description=read_file('README.md'), long_description_content_type='text/markdown', diff --git a/shapefile.py b/shapefile.py index 0eb2e0d..6d4d5c3 100644 --- a/shapefile.py +++ b/shapefile.py @@ -2,11 +2,11 @@ shapefile.py Provides read and write support for ESRI Shapefiles. author: jlawheadgeospatialpython.com -version: 2.2.1dev +version: 2.2.0dev Compatible with Python versions 2.7-3.x """ -__version__ = "2.2.1dev" +__version__ = "2.2.0dev" from struct import pack, unpack, calcsize, error, Struct import os From acdfe19ff464a8e50ad3eba98bbba8115c595dc7 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Fri, 7 Jan 2022 15:34:32 +0100 Subject: [PATCH 088/235] Update latest changes --- README.md | 27 +++++++++++++++++++++++++-- changelog.txt | 22 ++++++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6cd3297..9fb9c45 100644 --- a/README.md +++ b/README.md @@ -19,13 +19,14 @@ The Python Shapefile Library (PyShp) reads and writes ESRI Shapefiles in pure Py - [Version Changes](#version-changes) - [2.2.0](#220) - [New Features:](#new-features) + - [Improvements:](#improvements) - [Bug fixes:](#bug-fixes) - [2.1.3](#213) - [Bug fixes:](#bug-fixes-1) - [2.1.2](#212) - [Bug fixes:](#bug-fixes-2) - [2.1.1](#211) - - [Improvements:](#improvements) + - [Improvements:](#improvements-1) - [Bug fixes:](#bug-fixes-3) - [2.1.0](#210) - [New Features:](#new-features-1) @@ -121,8 +122,26 @@ part of your geospatial project. ### New Features: +- Read shapefiles directly from zipfiles. +- Read shapefiles directly from urls. +- Allow fast extraction of only a subset of dbf fields through a `fields` arg. +- Allow fast filtering which shapes to read from the file through a `bbox` arg. + +### Improvements: + +- More examples and restructuring of README. +- More informative Shape to geojson warnings (see #219). +- Shape object information when calling repr(). +- Faster ring orientation checks, enforce geojson output ring orientation. + ### Bug fixes: +- Remove null-padding at end of some record character fields. +- Fix dbf writing error when the number of record list or dict entries didn't match the number of fields. +- Handle rare garbage collection issue after deepcopy (https://github.com/mattijn/topojson/issues/120) +- Fix bug where records and shapes would be assigned incorrect record number (@karanrn) +- Fix typos in docs (@timgates) + ## 2.1.3 ### Bug fixes: @@ -1192,7 +1211,9 @@ the file. This means that as long as you are able to iterate through a source file without having to load everything into memory, such as a large CSV table or a large shapefile, you can process and write any number of items, and even merge many different source files into a single -large shapefile. If you need to edit or undo any of your writing you would have to read the +large shapefile. + +If you need to edit or undo any of your writing you would have to read the file back in, one record at a time, make your changes, and write it back out. @@ -1325,6 +1346,7 @@ Ignacio Martinez Vazquez Jason Moujaes Jonty Wareing Karim Bahgat +karanrn Kyle Kelley Louis Tiao Marcin Cuprjak @@ -1341,6 +1363,7 @@ Razzi Abuissa RosBer97 Ross Rogers Ryan Brideau +Tim Gates Tobias Megies Tommi Penttinen Uli Köhler diff --git a/changelog.txt b/changelog.txt index 7a185c6..7d102a3 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,26 @@ +VERSION 2.2.0 + +2022-01-07 + New Features: + * Read shapefiles directly from zipfiles. + * Read shapefiles directly from urls. + * Allow fast extraction of only a subset of dbf fields through a `fields` arg. + * Allow fast filtering which shapes to read from the file through a `bbox` arg. + + Improvements: + * More examples and restructuring of README. + * More informative Shape to geojson warnings (see #219). + * Shape object information when calling repr(). + * Faster ring orientation checks, enforce geojson output ring orientation. + + Bug fixes: + * Remove null-padding at end of some record character fields. + * Fix dbf writing error when the number of record list or dict entries didn't match the number of fields. + * Handle rare garbage collection issue after deepcopy (https://github.com/mattijn/topojson/issues/120) + * Fix bug where records and shapes would be assigned incorrect record number (@karanrn) + * Fix typos in docs (@timgates) + VERSION 2.1.3 2021-01-14 From 7013add09574bab75084f3268cd8a3ef6c9b0a07 Mon Sep 17 00:00:00 2001 From: Karim Bahgat Date: Tue, 18 Jan 2022 21:29:16 +0100 Subject: [PATCH 089/235] More docs on writing large shapefiles --- README.md | 60 +++++++++++++++++++++++++++--- shapefiles/test/balancing.dbf | Bin 804 -> 804 bytes shapefiles/test/contextwriter.dbf | Bin 65 -> 65 bytes shapefiles/test/dtype.dbf | Bin 259 -> 259 bytes shapefiles/test/edit.dbf | Bin 0 -> 11368 bytes shapefiles/test/edit.shp | Bin 0 -> 208572 bytes shapefiles/test/edit.shx | Bin 0 -> 5404 bytes shapefiles/test/line.dbf | Bin 116 -> 116 bytes shapefiles/test/linem.dbf | Bin 116 -> 116 bytes shapefiles/test/linez.dbf | Bin 116 -> 116 bytes shapefiles/test/merge.dbf | Bin 0 -> 2355059 bytes shapefiles/test/merge.shp | Bin 0 -> 2084820 bytes shapefiles/test/merge.shx | Bin 0 -> 53140 bytes shapefiles/test/multipatch.dbf | Bin 116 -> 116 bytes shapefiles/test/multipoint.dbf | Bin 116 -> 116 bytes shapefiles/test/onlydbf.dbf | Bin 65 -> 65 bytes shapefiles/test/point.dbf | Bin 116 -> 116 bytes shapefiles/test/polygon.dbf | Bin 116 -> 116 bytes shapefiles/test/shapetype.dbf | Bin 65 -> 65 bytes shapefiles/test/testfile.dbf | Bin 65 -> 65 bytes 20 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 shapefiles/test/edit.dbf create mode 100644 shapefiles/test/edit.shp create mode 100644 shapefiles/test/edit.shx create mode 100644 shapefiles/test/merge.dbf create mode 100644 shapefiles/test/merge.shp create mode 100644 shapefiles/test/merge.shx diff --git a/README.md b/README.md index 9fb9c45..591d652 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,8 @@ The Python Shapefile Library (PyShp) reads and writes ESRI Shapefiles in pure Py - [Attribute filtering](#attribute-filtering) - [Spatial filtering](#spatial-filtering) - [Writing large shapefiles](#writing-large-shapefiles) + - [Merging multiple shapefiles](#merging-multiple-shapefiles) + - [Editing shapefiles](#editing-shapefiles) - [3D and Other Geometry Types](#3d-and-other-geometry-types) - [Testing](#testing) - [Contributors](#contributors) @@ -1208,15 +1210,61 @@ are added using shape() or record(). Once the writer is closed, exited, or garba collected, the final header information is calculated and written to the beginning of the file. -This means that as long as you are able to iterate through a source file without having -to load everything into memory, such as a large CSV table or a large shapefile, you can -process and write any number of items, and even merge many different source files into a single -large shapefile. +### Merging multiple shapefiles -If you need to edit or undo any of your writing you would have to read the -file back in, one record at a time, make your changes, and write it back out. +This means that it's possible to merge hundreds or thousands of shapefiles, as +long as you iterate through the source files to avoid loading everything into +memory. The following example copies the contents of a shapefile to a new file 10 times: + >>> # create writer + >>> w = shapefile.Writer('shapefiles/test/merge') + >>> # copy over fields from the reader + >>> r = shapefile.Reader("shapefiles/blockgroups") + >>> for field in r.fields[1:]: + ... w.field(*field) + + >>> # copy the shapefile to writer 10 times + >>> repeat = 10 + >>> for i in range(repeat): + ... r = shapefile.Reader("shapefiles/blockgroups") + ... for shapeRec in r.iterShapeRecords(): + ... w.record(*shapeRec.record) + ... w.shape(shapeRec.shape) + + >>> # check that the written file is 10 times longer + >>> len(w) == len(r) * 10 + True + + >>> # close the writer + >>> w.close() + +In this trivial example, we knew that all files had the exact same field names, ordering, and types. In other scenarios, you will have to additionally make sure that all shapefiles have the exact same fields in the same order, and that they all contain the same geometry type. + +### Editing shapefiles + +If you need to edit a shapefile you would have to read the +file one record at a time, modify or filter the contents, and write it back out. For instance, to only keep a subset of relevant fields: + + >>> # create writer + >>> w = shapefile.Writer('shapefiles/test/edit') + + >>> # define which fields to keep + >>> keep_fields = ['BKG_KEY', 'MEDIANRENT'] + + >>> # copy over the relevant fields from the reader + >>> r = shapefile.Reader("shapefiles/blockgroups") + >>> for field in r.fields[1:]: + ... if field[0] in keep_fields: + ... w.field(*field) + + >>> # write only the relevant attribute values + >>> for shapeRec in r.iterShapeRecords(fields=keep_fields): + ... w.record(*shapeRec.record) + ... w.shape(shapeRec.shape) + + >>> # close writer + >>> w.close() ## 3D and Other Geometry Types diff --git a/shapefiles/test/balancing.dbf b/shapefiles/test/balancing.dbf index a076499c2ea7d70acd571fea8c6b98aaa3c9bd23..2de44247ac582bc26985f226161ff7bb17c1352c 100644 GIT binary patch delta 13 UcmZ3&wuFs^xr$L}BZ~qv02cNF!2kdN delta 13 UcmZ3&wuFs^xsr!(BZ~qv02dts#{d8T diff --git a/shapefiles/test/contextwriter.dbf b/shapefiles/test/contextwriter.dbf index 539865588201b38bfceb9358d440756236397487..50c237e81e82c5adf1cdc4a0ae70899e70299d9e 100644 GIT binary patch delta 10 RcmZ>CWMQsi6q?9l3jhi;0qFn$ delta 10 RcmZ>CWMQu4;hV@}3jhjK0q+0+ diff --git a/shapefiles/test/dtype.dbf b/shapefiles/test/dtype.dbf index a3edc796f49c461fc5fe229c9feda2777636ebea..d3299c4a3f32485045821309828c760a4af26b3e 100644 GIT binary patch delta 12 TcmZo>YGz_#u3{9L$nqZm5sm{h delta 12 TcmZo>YGz_#uH@mH$nqZm5w8O| diff --git a/shapefiles/test/edit.dbf b/shapefiles/test/edit.dbf new file mode 100644 index 0000000000000000000000000000000000000000..44a7afc5e3dbf14262379af639a600e5d5b5de02 GIT binary patch literal 11368 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 bdB{M-Q>`zWvmGM9v9w|?!vSnAc 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ӄp<_8X} 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�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

w6h{;QrmNst!$M+y*V0pry@-h6&6$e>vFpdwZ%V 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

#G*-btL;S0giLyYrm~wP#7ZK8uU>h}8FB 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�QQ1a`O3dCer-e#I-~>3ZAM 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 H_k929y6Vzi=YD?N_x(KQ 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