<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Ditto for the MacPorts version. Would love to see PostGIS 2.1 under MacPorts soon!<div><br><div><div>On 2013-08-23, at 9:42 AM, Mathieu Basille <<a href="mailto:basille.web@ase-research.org">basille.web@ase-research.org</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hello,<br><br>This is great news! Congrats to all PostGIS developers, you're providing us with an amazing tool!<br><br>Any idea weather the new 2.1.0 will be made available in the PostgreSQL<br>APT repository for Debian and Ubuntu? [1]<br>I'm a happy user of this repository under Debian Jessie (which currently hosts PostGIS 2.0.3), and I'd be happy if the new PostGIS would be released there!<br><br>Thanks again!<br>Mathieu.<br><br><br>[1] <a href="https://wiki.postgresql.org/wiki/Apt">https://wiki.postgresql.org/wiki/Apt</a><br><br><br>Le 08/17/2013 09:46 PM, Paragon Corporation a écrit :<br><blockquote type="cite">The 2.1.0 release of PostGIS is now available.<br><a href="http://download.osgeo.org/postgis/source/postgis-2.1.0.tar.gz">http://download.osgeo.org/postgis/source/postgis-2.1.0.tar.gz</a><br><br>The PostGIS development team is proud to release PostGIS 2.1.0. As befits a<br>minor release, the focus is on speed improvements, more features, and bug<br>fixes.<br><br>If you are currently using PostGIS 2.0+, you can go the soft upgrade path:<br><br>ALTER EXTENSION postgis UPDATE TO "2.1.0";<br><br><br>If you are running 2.1.0 of beta or an unreleased version (and the above<br>step fails with error "extension postgis has no update path from version<br>x.x.x to version 2.1.0") , you need to first copy the file in<br>share\extensions\postgis-2.0.3-2.1.0.sql and change the 2.0.3 to the x.x.x<br>noted in the error you are running. Then follow the above upgrade step<br>again.<br><br>Users of 1.5 and below will need to go the hard-upgrade path documented in<br>manual:<br>http://postgis.net/docs/manual-2.1/postgisinstallation.html#hardupgrade<br><br>Best served with a bottle of GEOS 3.4.1 and PostgreSQL 9.3beta2 (planned<br>9.1.0 release is September).<br><br>http://download.osgeo.org/postgis/source/postgis-2.1.0.tar.gz<br><br>html doc: http://download.osgeo.org/postgis/docs/doc-html-2.1.0.tar.gz<br>pdf doc: http://download.osgeo.org/postgis/docs/postgis-2.1.0.pdf<br>epub doc: http://download.osgeo.org/postgis/docs/postgis-2.1.0.epub<br><br>This release contains a ton of speed improvements, function additions, and<br>super sexy new features. It has been over a year in the making.<br><br>New functions itemized in<br>http://postgis.net/docs/manual-2.1/PostGIS_Special_Functions_Index.html#NewF<br>unctions21<br><br>Important / Breaking Changes<br><br>     #1653, Removed srid parameter from ST_Resample(raster) and variants with<br>reference raster no longer apply reference raster's SRID.<br>     #1962 ST_Segmentize* As a result of the introduction of geography<br>support, The construct: SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);<br>will result in ambiguous function error<br>     #2026, ST_Union(raster) now unions all bands of all rasters<br>     #2089, liblwgeom: lwgeomsethandlers replaces lwgeominitallocators.<br>     #2150, regularblocking is no longer a constraint. column of same name in<br>rastercolumns now checks for existance of spatiallyunique and coveragetile<br>constraints<br>     ST_Intersects(raster, geometry) behaves in the same manner as<br>ST_Intersects(geometry, raster).<br>     point variant of ST_SetValue(raster) previously did not check SRID of<br>input geometry and raster.<br>     ST_Hillshade parameters azimuth and altitude are now in degrees instead<br>of radians.<br>     ST_Slope and ST_Aspect return pixel values in degrees instead of<br>radians.<br><br>Deprecated signatures<br><br>     #2104, ST_World2RasterCoord, ST_World2RasterCoordX and<br>ST_World2RasterCoordY renamed to ST_WorldToRasterCoord,<br>ST_WorldToRasterCoordX and ST_WorldToRasterCoordY. ST_Raster2WorldCoord,<br>ST_Raster2WorldCoordX and ST_Raster2WorldCoordY renamed to<br>ST_RasterToWorldCoord, ST_RasterToWorldCoordX and ST_RasterToWorldCoordY<br>     ST_Estimated_Extent renamed to ST_EstimatedExtent<br>     ST_LineInterpolatePoint renamed to ST_LineInterpolatePoint<br>     ST_Line_Substring renamed to ST_LineSubstring<br>     ST_LineLocatePoint renamed to ST_LineLocatePoint<br>     ST_Force_XXX renamed to ST_ForceXXX<br>     ST_MapAlgebraFctNgb and 1 and 2 raster variants of ST_MapAlgebraFct. Use<br>ST_MapAlgebra instead<br>     1 and 2 raster variants of ST_MapAlgebraExpr. Use expression variants of<br>ST_MapAlgebra instead<br><br>New Features<br><br>         #310, ST_DumpPoints converted to a C function - much faster (Nathan<br>Wagner)<br>         #739, UpdateRasterSRID()<br>         #945, improved join selectivity, N-D selectivity calculations, user<br>accessible selectivity and stats reader functions for testing (Paul Ramsey /<br>OpenGeo)<br>         toTopoGeom with TopoGeometry sink (Sandro Santilli / Vizzuality)<br>         clearTopoGeom (Sandro Santilli / Vizzuality)<br>         ST_Segmentize(geography) (Paul Ramsey / OpenGeo)<br>         ST_DelaunayTriangles (Sandro Santilli / Vizzuality)<br>         ST_NearestValue, ST_Neighborhood (Bborie Park / UC Davis)<br>         ST_PixelAsPoint, ST_PixelAsPoints (Bborie Park / UC Davis)<br>         ST_PixelAsCentroid, ST_PixelAsCentroids (Bborie Park / UC Davis)<br>         ST_Raster2WorldCoord, ST_World2RasterCoord (Bborie Park / UC Davis)<br>         Additional raster/raster spatial relationship functions<br>(ST_Contains, ST_ContainsProperly, ST_Covers, ST_CoveredBy, ST_Disjoint,<br>ST_Overlaps, ST_Touches, ST_Within, ST_DWithin, ST_DFullyWithin) (Bborie<br>Park / UC Davis)<br>         Added array variants of ST_SetValues() to set many pixel values of a<br>band in one call (Bborie Park / UC Davis)<br>         #1293, ST_Resize(raster) to resize rasters based upon width/height<br>         #1627, package tiger_geocoder as a PostgreSQL extension<br>         #1643, #2076, Upgrade tiger geocoder to support loading tiger 2011<br>and 2012 (Regina Obe / Paragon Corporation) Funded by Hunter Systems Group<br>         GEOMETRYCOLLECTION support for ST_MakeValid (Sandro Santilli /<br>Vizzuality)<br>         #1709, ST_NotSameAlignmentReason(raster, raster)<br>         #1818, ST_GeomFromGeoHash and friends (Jason Smith (darkpanda))<br>         #1856, reverse geocoder rating setting for prefer numbered highway<br>name<br>         ST_PixelOfValue (Bborie Park / UC Davis)<br>         Casts to/from PostgreSQL geotypes (point/path/polygon).<br>         Added geomval array variant of ST_SetValues() to set many pixel<br>values of a band using a set of geometries and corresponding values in one<br>call (Bborie Park / UC Davis)<br>         ST_Tile(raster) to break up a raster into tiles (Bborie Park / UC<br>Davis)<br>         #1895, new r-tree node splitting algorithm (Alex Korotkov)<br>         #2011, ST_DumpValues to output raster as array (Bborie Park / UC<br>Davis)<br>         #2018, ST_Distance support for CircularString, CurvePolygon,<br>MultiCurve, MultiSurface, CompoundCurve<br>         #2030, n-raster (and n-band) ST_MapAlgebra (Bborie Park / UC Davis)<br>         #2193, Utilize PAGC parser as drop in replacement for tiger<br>normalizer (Steve Woodbridge, Regina Obe)<br>         #2210, ST_MinConvexHull(raster)<br>         lwgeomfromgeojson in liblwgeom (Sandro Santilli / Vizzuality)<br>         #1687, ST_Simplify for TopoGeometry (Sandro Santilli / Vizzuality)<br>         #2228, TopoJSON output for TopoGeometry (Sandro Santilli /<br>Vizzuality)<br>         #2123, ST_FromGDALRaster<br>         #613, ST_SetGeoReference with numerical parameters instead of text<br>         #2276, ST_AddBand(raster) variant for out-db bands<br>         #2280, ST_Summary(raster)<br>         #2163, ST_TPI for raster (Nathaniel Clay)<br>         #2164, ST_TRI for raster (Nathaniel Clay)<br>         #2302, ST_Roughness for raster (Nathaniel Clay)<br>         #2290, ST_ColorMap(raster) to generate RGBA bands<br>         #2254, Add SFCGAL backend support. (Backend selection throught<br>postgis.backend var) Functions available both throught GEOS or SFCGAL:<br>ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance,<br>ST_3DDistance New functions available only with SFCGAL backend:<br>ST_3DIntersection, ST_Tesselate, ST_3DArea, ST_Extrude, ST_ForceLHR<br>ST_Orientation, ST_Minkowski, ST_StraightSkeleton postgissfcgalversion New<br>function available in PostGIS: ST_ForceSFS (Olivier Courtin and Hugo Mercier<br>/ Oslandia)<br><br>Enhancements<br><br>     #823, tiger geocoder: Make loadergeneratescript download portion less<br>greedy<br>     #826, raster2pgsql no longer defaults to padding tiles. Flag -P can be<br>used to pad tiles<br>     #1363, ST_AddBand(raster, .) array version rewritten in C<br>     #1364, ST_Union(raster, .) aggregate function rewritten in C<br>     #1655, Additional default values for parameters of ST_Slope<br>     #1661, Add aggregate variant of ST_SameAlignment<br>     #1719, Add support for Point and GeometryCollection ST_MakeValid inputs<br>     #1780, support ST_GeoHash for geography<br>     #1796, Big performance boost for distance calculations in geography<br>     #1802, improved function interruptibility.<br>     #1823, add parameter in ST_AsGML to use id column for GML 3 output<br>(become mandatory since GML 3.2.1)<br>     #1856, tiger geocoder: reverse geocoder rating setting for prefer<br>numbered highway name<br>     #1938, Refactor basic ST_AddBand to add multiple new bands in one call<br>     #1978, wrong answer when calculating length of a closed circular arc<br>(circle)<br>     #1989, Preprocess input geometry to just intersection with raster to be<br>clipped<br>     #2021, Added multi-band support to ST_Union(raster, .) aggregate<br>function<br>     #2006, better support of ST_Area(geography) over poles and dateline<br>     #2065, ST_Clip(raster, .) now a C function<br>     #2069, Added parameters to ST_Tile(raster) to control padding of tiles<br>     #2078, New variants of ST_Slope, ST_Aspect and ST_HillShade to provide<br>solution to handling tiles in a coverage<br>     #2097, Added RANGE uniontype option for ST_Union(raster)<br>     #2105, Added ST_Transform(raster) variant for aligning output to<br>reference raster<br>     #2119, Rasters passed to ST_Resample(), ST_Rescale(), ST_Reskew(), and<br>ST_SnapToGrid() no longer require an SRID<br>     #2141, More verbose output when constraints fail to be added to a raster<br>column<br>     #2143, Changed blocksize constraint of raster to allow multiple values<br>     #2148, Addition of coverage_tile constraint for raster<br>     #2149, Addition of spatially_unique constraint for raster<br>     TopologySummary output now includes unregistered layers and a count of<br>missing TopoGeometry objects from their natural layer.<br>     ST_HillShade(), ST_Aspect() and ST_Slope() have one new optional<br>parameter to interpolate NODATA pixels before running the operation.<br>     Point variant of ST_SetValue(raster) is now a wrapper around geomval<br>variant of ST_SetValues(rast).<br>     Proper support for raster band's isnodata flag in core API and loader.<br>     Additional default values for parameters of ST_Aspect and ST_HillShade<br>     #2178, ST_Summary now advertises presence of known srid with an [S] flag<br>     #2202, Make libjson-c optional (-without-json configure switch)<br>     #2213, Add support libjson-c 0.10+<br>     #2231, raster2pgsql supports user naming of filename column with -n<br>     #2200, ST_Union(raster, uniontype) unions all bands of all rasters<br>     #2264, postgis_restore.pl support for restoring into databases with<br>postgis in a custom schema<br>     #2244, emit warning when changing raster's georeference if raster has<br>out-db bands<br>     #2222, add parameter OutAsIn to flag whether ST_AsBinary should return<br>out-db bands as in-db bands<br><br>Fixes<br><br>     #1839, handling of subdatasets in GeoTIFF in raster2pgsql.<br>     #1840, fix logic of when to compute # of tiles in raster2pgsql.<br>     #1870, align the docs and actual behavior of raster's ST_Intersects<br>     #1872, fix ST_ApproxSummarystats to prevent division by zero<br>     #1875, ST_SummaryStats returns NULL for all parameters except count when<br>count is zero<br>     #1932, fix raster2pgsql of syntax for index tablespaces<br>     #1936, ST_GeomFromGML on CurvePolygon causes server crash<br>     #1939, remove custom data types: summarystats, histogram, quantile,<br>valuecount<br>     #1951, remove crash on zero-length linestrings<br>     #1957, ST_Distance to a one-point LineString returns NULL<br>     #1976, Geography point-in-ring code overhauled for more reliability<br>     #1981, cleanup of unused variables causing warnings with gcc 4.6+<br>     #1996, support POINT EMPTY in GeoJSON output<br>     #2062, improve performance of distance calculations<br>     #2057, Fixed linking issue for raster2psql to libpq<br>     #2077, Fixed incorrect values returning from ST_Hillshade()<br>     #2019, ST_FlipCoordinates does not update bbox<br>     #2100, ST_AsRaster may not return raster with specified pixel type<br>     #2126, Better handling of empty rasters from ST_ConvexHull()<br>     #2165, ST_NumPoints regression failure with CircularString<br>     #2168, ST_Distance is not always commutative<br>     #2182, Fix issue with outdb rasters with no SRID and ST_Resize<br>     #2188, Fix function parameter value overflow that caused problems when<br>copying data from a GDAL dataset<br>     #2198, Fix incorrect dimensions used when generating bands of out-db<br>rasters in ST_Tile()<br>     #2201, ST_GeoHash wrong on boundaries<br>     #2203, Changed how rasters with unknown SRID and default geotransform<br>are handled when passing to GDAL Warp API<br>     #2215, Fixed raster exclusion constraint for conflicting name of<br>implicit index<br>     #2251, Fix bad dimensions when rescaling rasters with default<br>geotransform matrix<br>     #2133, Fix performance regression in expression variant of ST_MapAlgebra<br>     #2257, GBOX variables not initialized when testing with empty geometries<br>     #2271, Prevent parallel make of raster<br>     #2282, Fix call to undefined function ndstatsto_grid() in debug mode<br>     #2307, ST_MakeValid outputs invalid geometries<br>     #2309, Remove confusing INFO message when trying to get SRS info<br>     #2336, FIPS 20 (KS) causes wildcard expansion to wget all files<br>     #2348, Provide raster upgrade path for 2.0 to 2.1<br>     #2351, ST_distance between geographies wrong<br>     #2359, Fix handling of schema name when adding overview constraints<br>     #2371, Support GEOS versions with more than 1 digit in micro<br>     #2383, Remove unsafe use of ' from raster warning message<br>     #2384, Incorrect variable datatypes for ST_Neighborhood<br><br>Known Issues<br><br>     #2111, Raster bands can only reference the first 256 bands of out-db<br>rasters<br><br>Happy querying,<br>Team PostGIS<br><br><br>_______________________________________________<br>postgis-users mailing list<br>postgis-users@lists.osgeo.org<br>http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users<br><br></blockquote><br>-- <br><br>~$ whoami<br>Mathieu Basille, PhD<br><br>~$ locate --details<br>University of Florida \\<br>Fort Lauderdale Research and Education Center<br>(+1) 954-577-6314<br><a href="http://ase-research.org/basille">http://ase-research.org/basille</a><br><br>~$ fortune<br>« Le tout est de tout dire, et je manque de mots<br>Et je manque de temps, et je manque d'audace. »<br> -- Paul Éluard<br>_______________________________________________<br>postgis-users mailing list<br>postgis-users@lists.osgeo.org<br>http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users<br></blockquote></div><br><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="font-family: Helvetica; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-weight: normal; "><div style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-size: medium; font-weight: normal; border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-family: Helvetica; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="color: rgb(0, 0, 0); font-size: medium; font-weight: normal; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="font-style: normal; color: rgb(0, 0, 0); border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="orphans: 2; text-indent: 0px; widows: 2; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px; -webkit-text-size-adjust: auto; border-spacing: 0px; word-spacing: 0px; white-space: normal; text-transform: none; line-height: normal; letter-spacing: normal; font-variant: normal; border-collapse: separate; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="font-weight: normal; font-family: Helvetica; color: rgb(0, 0, 0); "><br></div></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></span></div></span></div></span></div></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></div></div></div></div></div><br class="Apple-interchange-newline">
</div>
<br></div></body></html>